Как стать автором
Обновить
6
0.3
Иван GiB$ON @gibson_dev

Пользователь

Отправить сообщение

Принципы организации учёта IP-трафика

Время на прочтение11 мин
Количество просмотров141K
Любой администратор рано или поздно получает инструкцию от руководства: «посчитать, кто ходит в сеть, и сколько качает». Для провайдеров она дополняется задачами «пустить кого надо, взять оплату, ограничить доступ». Что считать? Как? Где? Отрывочных сведений много, они не структурированы. Избавим начинающего админа от утомительных поисков, снабдив его общими знаниями, и полезными ссылками на матчасть.
В данной статье я постараюсь описать принципы организации сбора, учёта и контроля трафика в сети. Мы рассмотрим проблематику вопроса, и перечислим возможные способы съема информации с сетевых устройств.
Много текста с картинками следует...
Всего голосов 37: ↑36 и ↓1+35
Комментарии19

Иерархия контроллеров

Время на прочтение3 мин
Количество просмотров12K
В большинстве встречавшихся мне rails проектов, структура контроллеров не имеет никакой организации и проект растет как придется. В больших проектах это приводит к тому что контроллеры становятся огромными (с десятками actions), а условные фильтры растягиваются на весь экран. Разобраться в таком коде бывает очень не просто.

Поработав с большим количеством rails проектов, у меня был сформирован подход к организации иерархии контроллеров, которая позволила унифицировать их структуру и упростить код.

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии29

impress.js — презентации на CSS3, рвущие шаблон

Время на прочтение4 мин
Количество просмотров19K
Даже хорошие презентации, не содержащие списков из двадцати пунктов восьмым кеглем и вызывающих рвотный рефлекс картинок из бесплатных сборников клипарта “встречи и партнёрство” или “офисная жизнь”, следуют давным-давно заданному стандарту, без изменений перенесённому в офисные пакеты из мира старинных диапроекторов. Презентация всегда представляет собой набор прямоугольных картинок одинакового формата и размера. Иногда между ними добавляют переходы и анимацию, раздражающую не меньше разноцветных надписей и бессмысленно улыбающихся абстрактных офисных работников. Стандартом де-факто для хорошей презентации давно стала последовательность статичных слайдов без всякого мельтешения, с очень коротким текстом крупным шрифтом и несколькими тщательно подобранными фотографиями или скриншотами.

Основанный на трансформациях и переходах CSS3, javascript-фреймворк для создания презентаций impress.js выходит за рамки понятия “слайд” и позволяет строить презентации в открытом, неограниченном трёхмерном пространстве. Источником вдохновения для него послужил сервис prezi.com. Репозиторий impress.js на Гитхабе появился меньше месяца назад, но уже стал одним из самых популярных. Нетерпеливые могут посмотреть небольшую демку здесь, а остальные — создать пример необычной презентации прямо сейчас.
Читать дальше →
Всего голосов 101: ↑96 и ↓5+91
Комментарии46

Постраничная навигация с MySQL при большом количестве записей

Время на прочтение7 мин
Количество просмотров41K
Рано или поздно многие крупные проекты сталкиваются с проблемами производительности при постраничной навигации по записям. Некоторые из них решают эту проблему ограничением количества доступных для просмотра записей (скажем, не больше 1000). Вполне приемлемое решение. Но в этом случаем могут возникнуть проблемы с индексированием сайта сторонними поисковиками, которые и представляют наибольшую угрозу. В этой статье я хотел бы отказаться от привычной для всех панели навигации вида «1..2..3..4..» в пользу простой «вперед… назад» (будет проще объяснить), но это не проблема реализовать подобное и с первым вариантом.
Более точно определить тему, назвав, какое количество записей считать достаточно большим для появления тормозов, не получится, так как эта цифра для всех разная и сильно зависит от того, насколько быстрые у Вас жесткие диски, сколько памяти, и какая часть Ваших данных уже закеширована в ней и тд. Но если Вы и Ваши сервера ощущают, что n-ная страница при выводе даётся тяжелее первой, и при этом не знаете, что с этим делать – статья для Вас. Но для начала, я хотел бы на пальцах объяснить, почему ОНО работает медленно.

Кстати, тест происходит на виртуальной машинке, работаю я с СУБД под рутом, версия MySQL – 5.0.32.
Читать дальше →
Всего голосов 139: ↑135 и ↓4+131
Комментарии81

Почему программисты работают по ночам

Время на прочтение3 мин
Количество просмотров108K
Мозг шимпанзе в лондонском музее наукиСогласно поговорке, программисты — это устройства, преобразующие кофеин в код.

Если спросить первого попавшегося программиста, когда он наиболее продуктивен, — скорее всего, он назовёт ночь. Кто-то пораньше, кто-то попозже. Популярен вариант встать в 4 утра и сделать работу до начала дневной суматохи. А некоторые предпочитают ложиться в 4 утра.

Цель всего этого — избавиться от отвлекающих факторов. Но можно было бы просто закрыть дверь… Что же такого особенного в ночи?

Я думаю, что всё сводится к трём вещам: расписанию творца, сонному мозгу, и яркому экрану компьютера.

Читать дальше →
Всего голосов 300: ↑270 и ↓30+240
Комментарии287

AzaThread — многопоточность для PHP с блэкджеком

Время на прочтение6 мин
Количество просмотров18K
В сети гуляет довольно много решений для эмуляции многопоточности в php. Чаще всего они основываются на форках, но есть и вариации на тему с использованием curl, proc_open и т.п.

Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
  • Использование форков;
  • Синхронный режим с сохранением интерфейса при отсутствии необходимых расширений;
  • Многократное использование дочерних процессов;
  • Полноценный обмен данными между процессами. Т.е. запуск с аргументами и получение результата по завершении;
  • Возможность обмена событиями между дочерним процессом-«потоком» и основным процессом во время работы;
  • Работа с пулом потоков с сохранением многократного использования, передачи аргументов и получения результатов;
  • Обработка ошибок выполнения;
  • Таймауты на выполнение работы, ожидание работы потоком, инициализацию;
  • Максимум производительности;

В результате получилась библиотека AzaThread (старое название — CThread).
Подробности
Всего голосов 156: ↑146 и ↓10+136
Комментарии66

1С: Предприятие 8.2 в Ubuntu 11.10 с локальным ключом HASP

Время на прочтение3 мин
Количество просмотров43K
upd. vdovin_ds пишет:
недавно вышла 1С 8.3, и у неё есть клиент под linux. Работает лучше чем через wine
Так что возможно содержание статьи устарело.

Передо мной была поставлена задача установить последнюю версию 1С на Ubuntu. К концу первого дня чтения форумов я познал всю сложность бытия. К концу второго — заработало!

Интернет полнится различной информацией по этому поводу, однако большая ее часть нерелевантна: описывается установка серверной части 1С, установка устаревшей версии или версий с сетевым ключом.

Вначале я пытался установить 1С на "чистый" Wine версии 1.3 (в том числе и с USB патчем), однако танцы с бубном вокруг компьютера не привели к положительным результатам, поэтому пришлось перейти на WINE@Etersoft. Собственно, пошаговая инструкция установки под катом.
Читать дальше →
Всего голосов 80: ↑75 и ↓5+70
Комментарии55

Intercepter-NG 0.9

Время на прочтение1 мин
Количество просмотров5.5K
Intercepter-NG: многофункциональный снифер паролей и переписки.

В новой версии сильно переработан интерфейс, максимально автоматизирован процесс проведения сетевых атак и внесено множество изменений в код.

Нововведения:
1. NAT интегрирован в Intercepter.

2. Функция 'Smart Scan', автоматически определяющая:
a. действующий шлюз в сети
b. Stealth IP для MiTM атак
c. операционную систему найденных хостов (по значению TTL)
После сканирования значения шлюза и stealth ip прописываются в соответствующих полях NAT'а.

3. Raw Mode переделан под стиль Wireshark.
Доступна функция «Follow TCP Stream» для анализа отдельно взятой TCP сессии, кроме этого можно отображать только пакеты с данными, скрывая «служебный» tcp трафик.

При отключении спуфинга, любую атаку можно провести в среде WiFi.

Краткий обзор можно посмотреть здесь

Если вдруг что-то не работает, есть мини FAQ на сайте, а так же README в архиве с программой, с описанием функций и возможных проблем. Если решение не найдено, пишем на intercepter.mail@gmail.com или на форум.

http://sniff.su
Всего голосов 71: ↑51 и ↓20+31
Комментарии18

Поиск по PDF, DOC, DOCX файлам с помощью Sphinx и PHP

Время на прочтение5 мин
Количество просмотров28K
Доброе время суток.

Хочу поделиться своим опытом написания скрипта на PHP для поиска по файлам форматов PDF, DOC и DOCX, используя Sphinx. Все ниже изложенное написано для людей, которые уже имели опыт работы с связкой Sphinx и PHP. Если нет, то в свое время мне очень помогла статья Мартина Стрейчера «Создание собственной поисковой системы с помощью PHP», опубликованная на сайте IBM.

Совсем недавно на одном из проектов, который является веб-интерфейсом для базы пользователей, я получил задание организовать поиск по документам. Проект был написан до меня и уже использовал Sphinx.

Задача вроде тривиальная, но погуглив немного, я не смог найти внятную инструкцию с конкретным примером поиска по файлам форматов PDF, DOC и DOCX, что и стало причиной написания этой статьи.
Читать дальше →
Всего голосов 65: ↑62 и ↓3+59
Комментарии4

Быстрая реализация инкрементального бэкапа на Amazon S3

Время на прочтение6 мин
Количество просмотров23K
После переезда моего сайта с shared-хостинга на виртуальный сервер в облаке вплотную встал вопрос об архивации данных: если раньше о ежедневном бэкапе беспокоился хостер, то теперь эти заботы целиком легли на плечи администратора. Так как хранить большие архивы на своем сервере не только небезопасно, но и (иногда) накладно, было решено копировать основную массу файлов на сервис S3 от Amazon. Под катом описывается мой способ реализации инкрементального бэкапа. Способ достаточно нубовский, но желающие повторить его без труда найдут пути тонкой настройки под свои нужды.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии23

Что кешировать?

Время на прочтение8 мин
Количество просмотров12K
Всё. На этом можно было бы статью закончить, так как эта аксиома повторяется из года в год на форумах и конференциях и кочует из текста в текст на всех технических ресурсах. Однако это ёмкое «Всё» не поясняет деталей. Ведь существует достаточно широкая прослойка программистов, движки и проекты которых справляются с задачей без мемкеша и шардинга. Но момент нагрузки приходит, и приходится разбираться.
Для таких людей я и разобрал на запчасти это универсальный ответ высоконагруженных проектов.
Ограничимся изучением системы для веба. Попросту говоря, на привычном обычном сайте. Используете ли вы готовую CMS, или уже выросли до каркаса, или написали «с нуля» код для нестандартного проекта – основными элементами процесса приёма-отдачи данных всегда будут одни и те же узлы. Я их рассмотрю с точки зрения «Где что можно закешировать».
Этапы выдачи
Читать дальше →
Всего голосов 66: ↑42 и ↓24+18
Комментарии25

Основы LibCanvas — теория

Время на прочтение8 мин
Количество просмотров15K


Добрый день. Один из самых частых вопросов про LibCanvas сейчас — «С чего начать?». Согласен, порог вхождения в эту библиотеку чуть выше, чем в более простые canvas-библиотеки, потому в этом топике я раскрою основы LibCanvas — базовые понятия и принципы, отрисовка примитивных фигур, события мыши, клавиатуры, анимация, расширенный контекст, поведения. Постараюсь описать всё это с множеством примеров и максимально доступным языком.

Надеюсь, статья даст ответы на вопросы: Что такое LibCanvas? Зачем он нужен и какие его преимущества? С чего начать?

В этой статье будет только теория, а как применить эти знания на практике раскрыто в следующей статье
Читать дальше →
Всего голосов 79: ↑76 и ↓3+73
Комментарии28

Pinba — мониторим php в реальном времени

Время на прочтение4 мин
Количество просмотров57K
Как сказано на официальном сайте
Pinba is a realtime monitoring/statistics server for PHP using MySQL as a read-only interface.

И это действительно так. Она позволит вам в реальном времени получать статистику по работающему приложению, при этом не замедляя само приложение.
Что делать со статистикой — это уже ваше дело, например, мы выводим ее в заббикс и используем как для мониторинга стабильности (нет ошибок, мало число длинных запросов), так и для аналитики.
Удивительно, что про это действительно замечательное изобретение не было еще ни одной статьи на хабре.

Прочитать еще
Всего голосов 177: ↑176 и ↓1+175
Комментарии116

Микроэлектроника – мотивации псто

Время на прочтение8 мин
Количество просмотров50K
image

Дисклаймер


Мне нравится заниматься микроэлектроникой. Причем я даже не уверен, что я правильно использую слово «микроэлектроника» — может быть, я занимаюсь совсем не ей. Может быть я занимаюсь схемотехникой. Или программированием. Или программированием микроконтроллеров. Или сборкой электронных устройств. Или еще бог знает чем. Но для себя то, что я делаю, я называю микроэлектроникой – мне лень пойти почитать определение и сопоставить с тем, что я делаю — да простят меня сведущие и, возможно, обидевшиеся.
Несмотря на то, что я занимаюсь микроэлектроникой и уделяю этому занятию достаточно много времени на протяжении почти трех лет – я все еще начинающий с массой больших пробелов в знаниях. Но кое-что у меня получается и я стараюсь разобраться в вопросах, в которых все еще не разбираюсь.
Решил я написать этот пост потому, что вижу с одной стороны большой интерес к «ардуино-постам», трепет при виде мигающего светодиода, а с другой стороны какой-то непонятный мне страх самостоятельно взять и сделать что-то. Ребята, от страхов нам надо избавляться.
Читать дальше →
Всего голосов 208: ↑192 и ↓16+176
Комментарии92

Параллельные вычисления, класс-обёртка для pcntl_fork()

Время на прочтение3 мин
Количество просмотров7.2K
Хочу показать свой базовый класс, который я использую для PHP скриптов.
Приемущество его в том, что легко можно «распараллелить» работу.
Используется pcntl_fork() со всеми «вытекающими».

(тестировалось только на линукс)
Читать дальше →
Всего голосов 43: ↑33 и ↓10+23
Комментарии47

Реалистичный пейзаж в Ogre 3D

Время на прочтение25 мин
Количество просмотров18K
Привет.
Прочитав на хабре несколько интересных статей об одном из самых мощных рендер-движков Ogre3D, я решил поделиться своим опытом в деле моделирования с помощью него реалистичного пейзажа с атмосферными эффектами, водной поверхностью и буйной растительностью. Под катом — рецепт прикручивания к Ogre всех необходимых для этого библиотек.
Читать дальше →
Всего голосов 75: ↑70 и ↓5+65
Комментарии35

Simile TimeLine — библиотека для отображения событий на шкале времени

Время на прочтение3 мин
Количество просмотров5K
Время идет вперед. Годы летят, только успевай считать уж сколько прошло их с тех пор как в школу пошел, как поступил в институт, как женился да дети родились. А ведь помимо своей жизни есть еще много вещей которые изменяются, развиваются, появляются и исчезают с течением времени.

Так вот интересным инструментом для наглядного представления событий и периодов на шкале времени является Simile TimeLine.

Далее я расскажу, что сподвигло меня использовать данный инструмент, и в чем я нахожу его использование крайне удобным. В моем описании будет немного про Астериск, колл-центры и, собственно, javascript-библиотеку Simile TimeLine.
Читать дальше →
Всего голосов 62: ↑60 и ↓2+58
Комментарии13

Сетевой слой движка физики

Время на прочтение7 мин
Количество просмотров4.8K
Всем привет. Одним игровым проектом на физике box2d стало больше, закончили онлайн-файтинг на физике ragdoll. Хотелось бы сделать некоторые выводы и рассказать об основных технических проблемах, с которыми пришлось столкнуться, и о методах их решения. Статья заинтересует начинающих разработчиков [флеш-]игр с использованием физических движков. Фокус делается на сетевом слое для движка физики.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии10

Встать на рельсы за четыре месяца или Finance on rails

Время на прочтение4 мин
Количество просмотров52K

Обойдусь без копипастов и даже ссылок о том, что Ruby за зверь такой, ибо написано было уже сполна. В данном посте просто хочу рассказать о пути изучения Ruby (и, впоследствии фреймворка Ruby on Rails) человека далекого от программирования.

1. Любопытство

«Насколько далекого?», спросите вы, а я отвечу — «Чуть менее, чем полностью», так как в десятом классе в школе у меня были уроки программирования, парочка из которых были уделены Паскалю. Признаюсь, впоследствии о html узнал, и даже мог в Dreamweaver-e сверстать страничку или поставить готовый движок, да по инструкции налепить плагинов, но не более.
Хотя компьютеры мне нравились, пошел я учиться на экономиста* — бакалавриат, магистратура по бух. учету и аудиту, аспирантура по финансам, работа в банке, преподавание, страхование. Но не жилось мне спокойно в финансах, — финансовый калькулятор удовлетворял необходимости решения тривиальных задач, но не удовлетворял мой мозг. А ему хотелось посчитать не только будущую и приведенную стоимость актива, но и создать массив данных из исторических стоимостей этого актива за n лет, высчитать среднюю доходность, дисперсию и, в конце-концов построить красивый график!
Читать дальше →
Всего голосов 87: ↑79 и ↓8+71
Комментарии35

JavaScript Gaming: Часть 1. Box2d и основы Физики

Время на прочтение28 мин
Количество просмотров23K


Вместо предисловия.


Я всегда любил и буду любить компьютерные игры. Есть в них какая-то своя внутренняя магия, которая всегда привлекает и завораживает одновременно. За всю свою жизнь я переиграл в десятки игр, начиная с ветеранов Wolfenstein и Dune 2 и заканчивая современными блокбастерами. И теперь, добивая очередной хит и наблюдая за финальным роликом и титрами, в голове все чаще и чаще мелькает мысть «А что, если?..»

А ведь действительно, что если взять и написать собственную игру? Конечно же понятно, что ААА-тайтл сделать в одиночку не получится, и это годы работы и прочая и прочая, но ведь осилит дорогу идущий? Так уж получилось, что в Desktop-программироании я откровенно слаб, и вариантов для практикующего веб-разработчика не так уж много. Но за последние годы все кардинально изменилось, и теперь уже у браузера много общего с кофеваркой, а javascript может спокойно удовлетворять даже нужды военных ведомств, не то что мои собственные.

Вот как раз во время очередных раздумий и достаточно серьезной простуды мне попалась на глаза статья о Box2d в игрологе Ant.Karlov'а. Зачитавшись и замечтавшись я очень быстро нашел JS-порт этой библиотеки, и старая шальная идея сделать что-то маленькое и, главное — свое, начала донимать меня с новыми силами.

В общем, меньше патетики, больше дела. Надеюсь, вам будет интересно. Да простят меня суровые боги за использование Angry Birds в КПДВ ^_^
Читать дальше →
Всего голосов 153: ↑150 и ↓3+147
Комментарии35

Информация

В рейтинге
2 222-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность