У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Величко Антон @tonyvelichko
User
Рабочий метод разрыва конкретного активного соединения из командной строки linux (drop/kill/cut/close ESTABLISHED connection)
1 min
40KИногда бывает необходимо принудительно разорвать активное соединение. Самый распространенный способ:
Проблема в том, что один воркер может одновременно обслуживать несколько соединений, поэтому правильнее будет убить соединение а не воркер. Для этого на многих форумах рекомендуют использовать tcpkilll, cutter или awk+hping3. Однако, хоть эти утилиты и находятся в официальных репозиториях, мне не удалось заставить их разрывать соединения.
После продолжительных поисков был обнаружен perl скрипт killcx, разрывающий соединение по удаленному хосту и порту.
netstat -na
kill PID
Проблема в том, что один воркер может одновременно обслуживать несколько соединений, поэтому правильнее будет убить соединение а не воркер. Для этого на многих форумах рекомендуют использовать tcpkilll, cutter или awk+hping3. Однако, хоть эти утилиты и находятся в официальных репозиториях, мне не удалось заставить их разрывать соединения.
После продолжительных поисков был обнаружен perl скрипт killcx, разрывающий соединение по удаленному хосту и порту.
killcx 94.133.119.242:4403
+31
Разработка приложения для Racios.com
1 min
737iPhone приложение для Racios (http://habrahabr.ru/blogs/i_am_advertising/90750/) разрабатывает один из уважаемых пользователей Habra, имя его называть не буду, т.к. он реализовав более 70% работы, по неведомым для меня причинам пропал и на связь не выходит…
+6
MapReduce: более продвинутые примеры, попробуем без зауми
9 min
33KЧтобы не откладывать в долгий ящик сразу порассказываю несколько других примеров для MapReduce, обещанные в топике "MapReduce без зауми". (Если не понимаете полностью что такое MapReduce — прочитайте тот топик сначала! Без него не разберетесь)
Поговорим тут о подсчетах национальностей в городах, средних оценках и приводах учеников, ТИЦ, PageRank, входящих ссылках, нишевых ключевых словах, словах-синонимах, социальных сетях и общих друзьях. Постараемся обойтись без математических знаков и зауми.
Однако тема сама по себе сложная и все же напрячь мозги придется. Когда поймете — будет очень просто.
Допустим у нас есть Интернет. В Интернете есть исходящие ссылки.
Допустим на входе у нас есть такие данные об ИСХОДЯЩИХ ссылках, собранные нашим паучком:
Т.е. мы знаем, что Хабр ссылается на Apple, MS, Ubuntu и Яндекс но кто ссылается на Хабр? Да, вопрос примитивный, но все же разложим на MapReduce. Дальше будет интереснее и этот пример понадобится.
Поговорим тут о подсчетах национальностей в городах, средних оценках и приводах учеников, ТИЦ, PageRank, входящих ссылках, нишевых ключевых словах, словах-синонимах, социальных сетях и общих друзьях. Постараемся обойтись без математических знаков и зауми.
Однако тема сама по себе сложная и все же напрячь мозги придется. Когда поймете — будет очень просто.
Входящие ссылки
Допустим у нас есть Интернет. В Интернете есть исходящие ссылки.
Допустим на входе у нас есть такие данные об ИСХОДЯЩИХ ссылках, собранные нашим паучком:
habrahabr.ru -> thematicmedia.ru, apple.ru, microsoft.com, ubuntu.com, yandex.ru
thematicmedia.ru -> habrahabr.ru, autokadabra.ru
autokadabra.ru -> habrahabr.ru, yandex.ru
Т.е. мы знаем, что Хабр ссылается на Apple, MS, Ubuntu и Яндекс но кто ссылается на Хабр? Да, вопрос примитивный, но все же разложим на MapReduce. Дальше будет интереснее и этот пример понадобится.
+78
Методы применения алгоритма нахождения максимального потока в сети
7 min
47KВведение
Задача о максимальном потоке является классической и имеет множество применений. Напомню постановку проблемы. Дан взвешенный ориентированный граф с неотрицательными весами (пропускными способностями). Выделены две вершины: исток S и сток T такие, что любая другая вершина лежит на пути из S в T. Потоком назовем функцию F: V x V с такими свойствами
- Ограничение пропускной способности. Поток по ребру не может быть больше его (ребра) пропускной способности.
- Антисимметричность. Для каждого ребра (u, v): F(u, v) = -F(v, u).
- Сохранение потока. Для каждой вершины (кроме S и T), количество входящего потока (отрицательного) равен количеству исходящего потока (положительного). Тоесть, алгебраическая сумма потоков для каждой вершины (кроме S и T) равна нулю.
В этом посте вы можете ознакомиться с реализацией поставленной проблемы.
Перейдем непосредственно к типичным задачам, которые сводятся к алгоритму нахождения максимального потока в сети. Часто выявить в таких задачах поток очень не просто.
+38
Введение в Nitrode — выделенный HTTP-сервер
2 min
1.1KTranslation
Рад представить вам описание Nitrode.
Node.Js не включает в себя модуль FastCGI или аналогичные модули для интеграции приложений, в отличие от других HTTP-серверов, например, nginx.
Nitrode призван устранить этот пробел, предоставляя быстрый и универсальный HTTP-сервер, построенный на основе Node.JS. Он рассчитан на поддержку большинства основных возможностей nginx, но обладает дополнительным преимуществом, так как Nitrode написан на JavaScript и предоставляет API для существующих приложений, который позволяет осуществлять им полный контроль над сервером, не выходя из текущего процесса.
Проблема:
Node.Js не включает в себя модуль FastCGI или аналогичные модули для интеграции приложений, в отличие от других HTTP-серверов, например, nginx.
Решение
Nitrode призван устранить этот пробел, предоставляя быстрый и универсальный HTTP-сервер, построенный на основе Node.JS. Он рассчитан на поддержку большинства основных возможностей nginx, но обладает дополнительным преимуществом, так как Nitrode написан на JavaScript и предоставляет API для существующих приложений, который позволяет осуществлять им полный контроль над сервером, не выходя из текущего процесса.
+18
CUBRID
4 min
3.5KПоследнее время, в области баз данных, внимание сконцентрировано на интенсивно развивающихся NoSQL решениях. Складывается обманчивое впечатление, что в секторе реляционных СУБД затишье: основные продукты давно известны, все ниши заняты. Казалось бы, новому игроку сюда так просто не попасть. Только если речь идёт не о проекте с пятнадцатилетней историей, не о развитой объектно-реляционной СУБД с открытым кодом, оптимизированной для использования в веб-приложениях, не о системе, которая имеет поддержку хранимых процедур, партиционирование, опции высокой доступности, репликацию и распределённые транзакции. Имя этой «тёмной лошадки» — CUBRID. И, судя по заявлениям создателей, она претендует на лавры MySQL.
+56
Что такое генетический алгоритм?
1 min
24KВ рамках проекта Computer Science Student сегодня я постараюсь дать короткое наглядное объяснение: что такое генетический алгоритм? В самой простой и общей формулировке для решения самой простой задачи. Исходные коды решения (код не самый качественный, потому что писался на скорую руку; но код и не важен в этом курсе) и текст самих заданий доступен на CS-Student Wiki.
Первая часть
Вторая часть — под катом.
Первая часть
Вторая часть — под катом.
+68
Некоторые аспекты разработки платежных систем. Часть I. Трехзвенка без трехзвенки
2 min
3.6KМир тебе, %username%!
В этой серии постов я хочу рассказать о некоторых аспектах реализации платежной системы(а если повезет и двух), реально имевшей честь работать с середины 2000х в одном из городов нашей необъятной родины.
Что вообще такое ПС, и по каким принципам она должна работать? Я, как и заказчик, имел об этом представление лишь как пользователь WebMoney и платежных терминалов. Тем не менее, желание+деньги сделали своё дело и разработка началась.
Для начала, что вообще понималось под платежной системой и с чего началась разработка.
UPD:
Вторая часть!
+22
Каким надо быть руководителем? Секреты профессии
4 min
9.6KСкажу сразу — «Америку не открываю», так же как не «изобретаю велосипед». Статья базируется на модели ситуационного лидерства Херси-Бланчарда. Сама модель в значительной степени изменена в применении к управлению именно ИТ-командами в нашей стране и подкреплена практическим опытом управления командами в Майкрософт Рус и в собственном бизнесе.
Выбирая между «академическим» и «популярным» стилями изложения выбрал «академический». Все таки разговор о серьезных вещах. Так что если эта тема Вам прямо сейчас не супер-актуальна — смотрите диаграммы, их достаточно для понимания идеи. Остальное — для достаточно узкой аудитории.
Выбирая между «академическим» и «популярным» стилями изложения выбрал «академический». Все таки разговор о серьезных вещах. Так что если эта тема Вам прямо сейчас не супер-актуальна — смотрите диаграммы, их достаточно для понимания идеи. Остальное — для достаточно узкой аудитории.
+79
Twitter публикует свой FlockDB
1 min
3KПриятно, что многие крупные компании продолжают традицию выкладывать серьезные вещи из внутренней разработки в Open Source.
Недавно Twitter выложил FlockDB
" FlockDB это база данных, которая хранит данные о графах. В то же время это не база данных, оптимизированная для операций обхода графа. FlockDB оптимизирован для работы с очень большими списками смежных вершин графов, быстрого чтения и записи и постраничными арифметическими операциями над запросами (page-able set arithmetic queries)."
Основной задачей проекта было решить проблемы Twitter с работой с очень большими графами соц данных пользователей (followers, операции mention, etc.). Миграция завершилась 9 месяцев назад и вроде бы они всем довольны сейчас.
В настоящий момент система хранит 13 миллиардов рёбер графов и поддерживает 20 тыс. операций записи и 100 тыс. операций чтения в сек.
Более детально с продуктом можно ознакомиться по ссылке.
Исходники доступны на github.
Недавно Twitter выложил FlockDB
" FlockDB это база данных, которая хранит данные о графах. В то же время это не база данных, оптимизированная для операций обхода графа. FlockDB оптимизирован для работы с очень большими списками смежных вершин графов, быстрого чтения и записи и постраничными арифметическими операциями над запросами (page-able set arithmetic queries)."
Основной задачей проекта было решить проблемы Twitter с работой с очень большими графами соц данных пользователей (followers, операции mention, etc.). Миграция завершилась 9 месяцев назад и вроде бы они всем довольны сейчас.
В настоящий момент система хранит 13 миллиардов рёбер графов и поддерживает 20 тыс. операций записи и 100 тыс. операций чтения в сек.
Более детально с продуктом можно ознакомиться по ссылке.
Исходники доступны на github.
+58
GRASP паттерны проектирования
4 min
236KПочитать описание других паттернов.
GRASP (General Responsibility Assignment Software Patterns) — шаблоны проектирования, используемые для решения общих задач по назначению обязанностей классам и объектам.
Известно девять GRAPS шаблонов, изначально описанных в книге Крейга Лармана «Применение UML и шаблонов проектирования». В отличие от привычных читателю паттернов из Банды Четырех, GRAPS паттерны не имеют выраженной структуры, четкой области применения и конкретной решаемой проблемы, а лишь представляют собой обобщенные подходы/рекомендации/принципы, используемые при проектировании дизайна системы.
Рассмотрим характеристики основных GRASP шаблонов.
GRASP (General Responsibility Assignment Software Patterns) — шаблоны проектирования, используемые для решения общих задач по назначению обязанностей классам и объектам.
Известно девять GRAPS шаблонов, изначально описанных в книге Крейга Лармана «Применение UML и шаблонов проектирования». В отличие от привычных читателю паттернов из Банды Четырех, GRAPS паттерны не имеют выраженной структуры, четкой области применения и конкретной решаемой проблемы, а лишь представляют собой обобщенные подходы/рекомендации/принципы, используемые при проектировании дизайна системы.
Рассмотрим характеристики основных GRASP шаблонов.
+33
Приложения iPhone с открытым кодом
4 min
31K В данной статье речь пойдет о приложениях с открытым кодом, которые размещены в App Store. Мы будем рассматривать только приложения которые одобрены компанией Apple и опубликованы. Начинающие разработчики могут изучать их код для повышения своих навыков.
+105
Обновление контента IPhone приложения
3 min
11KМногие мобильные приложения показывают пользователю контент с сервера, и этот контент можно показывать в онлайне и оффлайне. Работа в онлайне тривиальна — при определенном UI событии, приложение читает данные с сети и показывает их пользователю. Работа в оффлайне может быть гораздо интереснее — возможность работы с документами в метро и тп. Но работа вне сети приносит и проблемы: теперь необходимо проводить синхронизацию данных и этот процесс не должен блокировать интерфейс пользователя.
— доступ к сетевым ресурсам
— обработка xml
— доступ к файловой системе
— работа с потоками
Элементы в исходном коде
— доступ к сетевым ресурсам
— обработка xml
— доступ к файловой системе
— работа с потоками
+25
Пользовательские типы в Hibernate
4 min
11KHibernate — это прекрасный ORM инструмент, который можно настроить практически под любые свои нужны. В этом топике я покажу, как можно хранить поля произвольного типа. Для примера, возьмем массив строк (String[]) и POJO объект, который мы хотим хранить в БД:
Для того, чтобы хибернейт мог сохранять в базу поле типа «массив строк» необходимо (и достаточно) написать класс, который реализует интерфейс UserType, а также сослаться на него в мэппинге (файл hbm.xml).
- public class StringArrayContainer {
- private Integer id;
- private String[] tags;
- // Место для геттеров и сеттеров.
- }
Для того, чтобы хибернейт мог сохранять в базу поле типа «массив строк» необходимо (и достаточно) написать класс, который реализует интерфейс UserType, а также сослаться на него в мэппинге (файл hbm.xml).
- public class StringArrayCustomType implements UserType {
- // TODO: написать реализацию.
- }
+29
Советы по портированию iPhone-приложений на iPad
4 min
4.6KБуквально несколько дней назад мне пришлось портировать одно небольшое приложение с iPhone на iPad. В целом все прошло довольно безболезненно, но было несколько граблей, на которые я не преминул наступить. Поэтому хотелось бы представить несколько советов по упомянутому выше портированию. За основу взята эта небольшая статья, дополненная некоторыми моими собственными советами и замечаниями.
+24
Всплывающие окна. Работа с UIPopoverController
4 min
6.8KTranslation
В iPhone SDK 3.2 было добавлено несколько новых элементов интерфейса, таких как UIPopoverController и UISplitViewController.
В этом посте я покажу как пользоваться UIPopoverController.
В этом посте я покажу как пользоваться UIPopoverController.
+12
Realaxy Actionscript Editor
2 min
3.2KRealaxy ActionScript Editor, пожалуй один из самых ожидаемых ActionScript редакторов.
Создатели наши, небезызвестные люди в RuFlash сообществе — Иван Дембицкий и Евгений Потапенко.
Бета-версия казуального редактора Realaxy ActionScript Editor (RE) будет представлена разработчикам на конференции Creative Future в Москве 23 апреля.
+43
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity