ITOA Project – инструмент портирования iOS приложений на Android

Итак у Вас есть iPhone приложение, и Вы хотите портировать его на Android. Какие есть варианты? Если только Вы не писали приложение изначально на чём-нибудь кросс-платформенном (PhoneGap, etc), то вариант у Вас только один — всё переписать. На другом языке программирования, в другой среде, и с использованием другого API.



Или… использовать ITOA Project! Это плагин для XCode (плюс компилятор и набор библиотек), который позволит Вам перекомпилировать существующее iOS приложение под Android. Или разработать новое, но с использованием знакомой среды, языка и API.

Посмотрите на скриншот. Это простейший “Hello world”, без изменений компилирующийся и работающий на обеих платформах (код).


Читать дальше →

Обработка больших потоков трафика в Linux

В этой заметке я опишу методы увеличения производительности линуксового маршрутизатора. Для меня эта тема стала актуальна, когда проходящий сетевой трафик через один линуксовый маршрутизатор стал достаточно высоким (>150 Мбит/с, > 50 Kpps). Маршрутизатор помимо роутинга еще занимается шейпированием и выступает в качестве файрволла.

Читать дальше →

NodeJS vs PHP. Тест на производительность

Недавно очень заинтересовался NodeJS. Чем больше с ним разбирался – тем больше он мне нравился, вплоть до идеи «отныне пишу все на NodeJS». Но перед переходом мне стало интересно, на сколько серверный js выигрывает в производительности, в сравнении с php.


Читать дальше →

UNIX-shell и telnet для работы с оборудованием или забота о tech-support'e

Преамбула

Компания, в которой я работаю, предоставляет клиентам такие услуги как:
  • доступ в Интернет
  • телефония
  • хостинг
и много-много чего другого.
Т.е. вполне такой нормальный Интернет-провайдер с целой куче дополнительных плюшек.

Магистральными линиями связи является оптоволокно, тогда как «последняя миля» — витая пара от управляемого коммутатора.
Коммутаторов много и для мониторинга используются две вещи: Nagios и Cacti.
Так же каждый клиент, которому предоставляется доступ в Интернет, в биллинге имеет привязку IP-адреса к MAC-адресу. На порту коммутатора есть указание работать только с теми MAC-адресами, которые указаны в конфигурации текущего коммутатора.
SNMP-трапами мы отлавливаем изменения MAC-адреса и среды в целом.
В один интересный день оказалось что коллегам из службы технической поддержки приходится руками заходить на коммутатор и перепрописывать конфигурацию.
Посмотрев на внутренности биллинга (на ту часть, что отвечала за информацию о клиенте), стало понятно, что именно сюда можно будет включить свою модификацию.

Читать дальше →

Краткий словарь терминов применяемых в Твиттере

Многие пользователи сети считают, что пользы от сервиса микро-блогов Twitter нет никакой. Они только отвлекают от тех задач, которые так или иначе они себе поставили. Я думаю, что они ошибаются.

Я не так давно зарегистрировался в данном сервисе и уже приобрел более 200 подписчиков на мою ленту. От том, как зарегистрироваться в Твиттере, читайте в заметке "Twitter – прекрасный инструмент интернет маркетинга".

Так какие же преимущества получает владелиц своего микро-блога? Смотрите сами.

Читать дальше →

Смог зарегистрироваться на сайте и дойти до мероприятия © CodeFest

С чего все началось?
Все началось с того, что мой начальник бросил мне ссылку на сайт Сибирской интернет-недели и спросил, есть ли там что-то интересное для меня. Я работаю в Барнаул, у одного Интернет провайдера, и такие мероприятия обычно не волнуют наше руководство. Я как-то просился на Highload++, но получив отказ смирился. После оглашения вопроса в моих глазах загорелся оптимизм, и я вспомнил тему на Хабре. И вот, начальство разрешило мне командировку на конференцию. Отправился на первом автобусе до Новосибирска, но т.к. дорога 4,5 часа + пробки, начало конференции я пропустил, о чем очень жалею, ну да не буду уходить от темы…

Читать дальше →

Squid, Python и external_acl_type

В популярном прокси-сервере Squid реализована замечательная возможность проверять доступ пользователя к Интернет-ресурсам, используя сторонние программы. Отвечает за сие действо директива external_acl_type. С помощью неё становится возможным прикрутить к сквиду свои скрипты, написанные, например, на питоне. Обзор такого скрипта и самого механизма дальше.


Читать дальше →

Sliding Expiration в memcached

PHP
Разрабатывая в основном под .NET столкнулся с тем, что в memcached отсутствует Sliding Expiration вариант хранения данных.

Первым шагом что бы решить эту проблему было написание «менеджера» дописывающего к данным, которые кладутся в кэш тип (Абсолютный или Sliding) и время хранения, что бы при последующих чтениях из кэша брать эти дополненные данные, смотреть на тип хранения и в случае Sliding перезаписывать данные.

Будут рассмотрены только Get и Set операции, т.к. остальные делаются по аналогии. Increment / Decrement тут не поддерживаются.

Выглядело это примерно так:

Читать дальше →

.Net: События в С#

Введение
Концептуальная роль событий заключается в следующем: Если какой-то объект хочет оповестить других о смене своего состояния, он запускает событие (или сигнал). Это событие может быть отловлено любым количеством объектом. Реакцией на событие, как правило, является вызов метода в отлавливающем объекте.
В языке C# события являются более развитой системой использование групповых делегатов.

Читать дальше →

Компактная система водяного охлаждения, или Сага об интеркулере

Предыстория

Два года назад собрал я компьютер. Вполне по тем временам приличный компьютер, Core2Duo 2.00GHz, разогнанный до 2.66 ГГц, MB ASUS P5B Deluxe, видеокарта ASUS-Reference ATI Radeon X1300 512 Passive cooling, 3ГБ памяти DDR2 800, 80 + 400 ГБ дискового пространства и тому подобное. Все честь по чести. Эта конфигурация исправно отработала целый год, и продолжила бы работать дальше, если бы не две вещи. Во-первых, моим вычислительным задачам перестало хватать двух ядер, и я задумался о четырехъядерном процессоре. Во-вторых, мне понадобился CUDA. Я отправился в магазин, и вернулся оттуда с процессором Intel Core2Quad Q9650 3.0 GHz и видеокартой XFX-reference nVidia GeForce 9800 GTX, а заодно — со стоковым набором водяного охлаждения Thermaltake BigWater 770.
image
Думал сразу решить несколько задач, а именно: ускорить вычисления, охладить греющийся под старым кулером до 70 градусов процессор, устранить тормоза в Warhammer 40'000 Dawn of War II, а главное — устранить раздражающий шум от вентиляторов, которых к тому времени в корпусе набралось уже 5 штук. Но… Господь бог, как известно, располагает, посему сборка новой системы вылилась в целую эпопею продолжительностью в полгода, результатами которой и хочу поделиться с уважаемыми читателями.

Читать дальше →