Pull to refresh
381
0.1
Олег Чирухин@olegchir

Основатель Anarchic AI, продакт GigaIDE Cloud

Send message

Фотобанки, фотобанки…

Reading time1 min
Reach and readers5.7K
Открываем новый новостной проект, идея вроде интересная, движок уже готов, тех. дизайн тоже. Осталось дело за малым — подпилить напильником, добавить картинок к дизайну, и счастливого плавания!

И вот тут, на последнем этапе, появляется проблемка, с которой раньше не встречались — картинки и иллюстрации. Где их брать? Данный дизайн требует массу иллюстраций (фото). Сама концепция проекта так же — иллюстрации к новостям. Конечно, нарушением авторских прав у нас в стране уже давно ни кто не занимается. Поэтому начали выбирать фотобанки. Вот, что мы нашли:
Читать дальше →

GWT приложение за 30 минут

Reading time2 min
Reach and readers13K
Буквально на днях вышла новая (пока нестабильная) версия Spring-Roo одной из основных фич которой является поддержка генерации пользовательского интерфейса на GWT.

Мне стало интересно, сегодня поэксперементировал, под катом перевод моего блога (для тех кому лень читать на английском) с описанием как сделать GWT приложение менее чем за 30 минут. Надеюсь хабровчанам это покажется интересным и полезным.
image
Читать дальше →

Вышел релиз Django 1.2

Reading time1 min
Reach and readers777
Свершилось, товарищи! Несмотря на почти двухмесячную задержку и постоянные переносы даты релиза, сегодня, 17 мая 2010 года, финальная версия 1.2 великолепного фреймворка увидела свет.

Кратко напомню, какие же произошли самые заметные изменения и дам ссылку на более подробную информацию.

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

InType: текстовый редактор мечты!

Reading time1 min
Reach and readers3.8K
InType мощный, интуитивный редактор для программеров под MS Windows с возможностями подсветки, поддержкой дополнительных скриптов и плагинов, позволяющий превратить рутинные операции программирования в увлекательный и главное эффективный, и удобный процесс. Самая главная фишка состоит в поддержке bundles, коих планируется великое множество, а также поддержка bundles из Text Mate.

К сожалению на данный выпущена только alfa версия, но она вполне работоспособна.

Все остальное, на мой взгляд, только плюсы.

Официальный сайт InType: InType

P.S.
Ах да, еще — в итоге он будет платным, но я его куплю! :)

Способ вертикального выравнивания блока с помощью настоящего vertical-align

Reading time4 min
Reach and readers70K
Сегодня, верстая один макет, я, кажется, изобрел очередной небезынтересный способ вертикального выравнивания блока относительно родительского. Он не основан на превращении блоков в ячейки таблицы и не использует css-свойство position.

Требования

— Должна быть известна начальная высота родительского блока;
— Дочерний блок может иметь произвольный размер как по высоте, так и по ширине.

Возможности

— Работает в IE6+, O9+, FF2+, webkit;
— Тру vertical-align выравнивание со всеми допустимыми значениями;
— Одинаковое поведение во всех браузерах (незначительные отклонение при некоторых условиях в ие6 будут оговорены ниже);
— При вырастании дочернего блока выше «папочки», родительский блок расширяется;
— Ни грамма JavaScript.
Читать дальше →

Sun убрало Swing Application Framework из Java 7

Reading time2 min
Reach and readers8.1K
Я думаю на Хабре существует много разработчиков, которые так или иначе связаны с такой технологией как SWING. Недавно, я прочитал новость, означающую неопределенность его дальнейшего существования, и был удивлен, что здесь про это ничего не написали. Поэтому — читаем.
Читать дальше →

Загрузка и переименование файлов

Reading time4 min
Reach and readers8.3K
Статья написана для тех, кто уже хоть немного знаком с архитектурой Zend Framework. Если кому-нибудь будет интересно — опишу работу с формами более подробно в отдельной статье.

Для загрузки файлов на сервер с помощью форм в Zend Framework Form есть элемент Zend_Form_Element_File. У него есть фильтр «Rename», который позволяет переименовать закачаный файл. Но есть минус — мы не можем просто указать новое имя для файла, чтобы сохранилось его расширение. Как это сделать? А как быть, если мы используем setMultiFile?

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

Собеседование. Сегодня

Reading time5 min
Reach and readers24K
Interview
В сферу моих профессиональных обязанностей входит проведение собеседования для соискателей на должность PHP разработчика. И дальше речь пойдет о собеседовании…
Читать дальше →

Code Game Challenge

Reading time4 min
Reach and readers5.7K
Достаточно часто студенческие олимпиады состоят не только из соревнования в формате ACM ICPC, но и сопровождаются другими соревнованиями, которые ни как не влияют на общий результат, и служат для повышения интереса к соревнованиям.

Среди таких соревнований я хочу остановиться на соревнованиях Code Game Challenge.
Читать дальше →

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Reading time16 min
Reach and readers41K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:

0. Зачем вообще что-то оптимизировать?
  
1. Оптимизация ОС (FreeBSD)
  1.1 Переход на 7.х 
  1.2 Переход на 7.2
  1.3 Переход на amd64
  1.4 Разгрузка сетевой подсистемы
  1.5 FreeBSD и большое кол-во файлов
  1.6 Softupdates, gjournal и mount options
  
2. Оптимизация фронтенда (nginx)
  2.1 Accept Filters
  2.2 Кеширование
  2.3 AIO
  
3. Оптимизация бэкенда
  3.1 APC
  3.1.1 APC locking
  3.1.2 APC hints
  3.1.3 APC fragmentation
  3.2 PHP 5.3
  
4. Оптимизация базы данных
  4.1 MySQL 
  4.1.1 Переход на 5.1
  4.1.2 Переход на InnoDB
  4.1.3 Встроеный кеш MySQL - Query Cache
  4.1.4 Индексы
  
4.2 PostgreSQL
  4.2.1 Индексы
  4.2.2 pgBouncer и другие.
  4.2.3 pgFouine
  
4.3 Разгрузка базы данных
  4.3.1 SphinxQL
  4.3.2 Не-RDBMS хранилище
  4.4 Кодировки
  4.5 Асинхронность
  
Приложение. Мелочи.
  1. SSHGuard или альтернатива.
  2. xtrabackup
  3. Перенос почты на другой хост
  4. Интеграция со сторонним ПО
  5. Мониторинг
  
 6. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...

Как я учил английский

Reading time3 min
Reach and readers39K
Добрый день!

На хабре уже имели место несколько статей о том, как нужно учить английский, напомню:
Хочу дополнить этот список своими наблюдениями по поводу эффективных и не очень методов изучении английского языка.
Читать дальше →

Древнейший стресс-менеджмент

Reading time2 min
Reach and readers5.7K
Хочу поделиться с вами одной интересной медитацией (медитация как известно — древнейший способ стресс-менеджмента), которой поделился со мной мой учитель в ту светлую пору, когда я увлекался разными духовными практиками.
image
С моим учителем ей поделился в своё время один лаосский монах. И дошла она до нас в неизменном виде (не считая перевода) через много столетий.

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

Я — специалист, или «водить машину и лечить людей умеет каждый»

Reading time5 min
Reach and readers14K
Жена готовит яичницу на завтрак.
Вдруг на кухну вбегает муж:
— Осторожно, — он говорит, — ОСТОРОЖНО! Положи больше масла!
Боже мой! Ты жаришь очень много яиц сразу! СЛИШКОМ МНОГО!!!
Переверни их! ПЕРЕВЕРНИ ИХ ПРЯМО СЕЙЧАС!!! Нужно больше масла! О Боже мой!
ГДЕ нам взять БОЛЬШЕ МАСЛА? Сейчас они ПРИЛИПНУТ!!!
Осторожно! ОСТОРОЖНО! Я сказал — Осторожно!
Ты НИКОГДА меня не слушаешь когда делаешь яичницу!!! НИКОГДА!!!
Переверни их! БЫСТРО!!! Да ты что, психованная?!!!
Ты совсем спятила?!!! Не забудь посолить!
Ты всегда забываешь посолить! Используй СОЛЬ!
ИСПОЛЬЗУЙ СОЛЬ! С-О-О-О-О-ЛЬ!!!

Жена удивленно смотрит на мужа:
— Да что с тобой сегодня?!
Ты думаешь я не в состоянии приготовить элементарную яичницу?
Муж спокойно объясняет:
— Я хотел показать тебе, что Я испытываю, когда вожу машину…


Навеяно вот этим постом «95% сделано».
За четыре года работы фрилансером (переводчик и программист) у меня только один или два раза были недовольные заказчики.

Что для этого нужно делать

Хакерский квест

Reading time1 min
Reach and readers5.8K
image

Недавно обнаружил в сети очередную убивалку времени. На этот раз вашему вниманию предлагается интересный хакерский квест, сделанный с юмором. В рунете упоминания о нем практически не встречаются. Состоит из 5 «разгревочных» уровней и 50 посложнее, для прохождения которых придется применить знания из самых разных областей.

После решения первых 5 уровней предоставляется возможность зарегистрироваться и получить в качестве приятного бонуса shell аккаунт на сервере с Debian Lenny. Дисковая квота до 2 Гб, подробнее про сервер можно узнать тут.

Желаю удачи :)

Реализация паттерна декоратор на JS

Reading time10 min
Reach and readers6.8K
Суть паттерна в том, что есть класс с фактической функциональностью (компонент) и опциональными классами-обертками, которые дополняют основной функционал (декораторы). А фишка в том, что декораторов может быть сколько угодно, совмещаться они могут в произвольном порядке и (поскольку требуют от компонента только интерфейса) — могут работать с разными компонентами.

Безусловно, реализовать что-то похожее можно даже за счет только лишь того, что функции в JS являются объектами первого уровня, но мне бы хотелось поделиться реализацией весьма близкой к ГОСТу GoF'у.

UPD: ссылка на рабочий пример, спасибо Barttos.

Перед хабракатом: в скрипте присутствует инкапсуляция, наследование (по сути) осуществляется через call, jQuery отсутствует — если Ваша идеология не позволяет принять такие ограничения, пожалуйста, не пишите об этом в комментах и, еще лучше, не читайте эту статью. Конструктивная критика и вопросы приветствуются.

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

Хабра-RSS и Akregator

Reading time1 min
Reach and readers1K
Где-то около, недели назад решил немного изменить рабочее окружение, и поставил вместо gnome, KDE.
Естественно сделал OPML со списком фидов из Liferea и импортировал его в Akregator.

И каково же было моё разочарование когда я обнаружил что лента Хабра не обновляется.
У меня около 20 фидов в ридере и именно с Хабром случилось непонятное.

Ну да ладно, полез удалил, фид. Собрался его добавить руками. И что вы думаете? Не добавляется.
Пишет: Нету там ленты.

Ну и собственно вопрос: Глюк ли это Акрегатора или Хабра?
Я грешу на хабр, ибо это единственная проблемная лента среди всех моих подписок.

З.Ы: Прошу всех пользователей Akregatora проверить и поделится информацией.
KDE-3.5.9
Лента: /rss/new

UPD: Остальные хабра-рсски работают как надо.

Разворачиваем nginx + mod_wsgi на сервере

Reading time8 min
Reach and readers29K
Здрасти. Долго-долго я присматривался к замечательному фреймворку django, читал книгу, изучал статьи, пробовал писать hello world'ы (со встроенным в джангу сервером это было легко и приятно). А вчера я попробовал настроить от начала до конца боевой сервер, и как оказалось, это не так просто, и мне даже показалось, что будь я моложе и неопытнее, я бы плюнул на это дело. Вот я и решил поделиться с читателями полной инструкцией, снабдив её некоторыми рассуждениями и конфигами. Статья расчитана на начинающих, но будет интересно всем, обещаю.
Читать дальше →

Ежедневный Git

Reading time3 min
Reach and readers98K
Уже были статьи про основы гита (0, 1, 2), были и статьи про внутреннее устройство репозитория. Сегодня поговорим, как простому смертному работать с гитом на автопилоте и не морочить себе голову.

Во-первых, шорткаты (в порядке убывания популярности):

alias gst='git-status'
alias ga='git-add'
alias gc='git-commit -m'
alias gp='git pull && git push'
alias gull='git pull'
alias gush='git push'
alias gb='git-branch'
alias gco='git-checkout'
alias gd='git-diff'

Во-вторых, отображение текущей ветки в командной строке:
export PS1='`__git_ps1 "%s"` \w \$ '

Выглядит так:
lazy-args-in-futures ~/Work/io/oleganza-io.git $

(Как установить: ericgoodwin.com/2008/4/10/auto-completion-with-git)

Типичный поток работы в одной ветке
Читать дальше →

TextMate средствами gedit

Reading time3 min
Reach and readers7.2K


Так вышло, что в офисе я работаю за Маком, а вот ноут — «17 MacBook Pro — не самый лучший, на мой взгляд, вариант в разрезе производительность/цена. Anyway, это тема другого разговора. Ноут под Ubuntu.
А теперь вопрос: если кодить на Ruby/RoR — кто ваш лучший ТекстовыйПриятель? Все верно, Textmate — Великий Фетиш и Идол всех программистов на Ruby под Mac. Итак задача была предельно проста — найти инструмент под Linux, максимально приближенный к Textmate по тому объему функционала который я использую в работе.
Читать дальше →

резервное копирование rsync-ом

Reading time4 min
Reach and readers147K
Если у тебя на компьютере не хранится дорогих тебе фотографий или
документов, эта заметка будет тебе не интересна. Если ты уже делаешь резервные копии и механизм работы с ними тебя полностью устраивает, эту заметку тоже лучше пропустить. Если ты считаешь, что хорошо разбираешься в linux, то вряд ли почерпнёшь в ней что-то новое. Для остальных — делюсь
своим опытом
12 ...
49

Information

Rating
4,224-th
Location
Россия
Works in
Date of birth
Registered
Activity

Specialization

Технический директор, Генеральный директор
Ведущий
From 2,000,000 ₽
Управление продуктами
Управление проектами
Маркетинговые исследования
Разработка игр
Веб-разработка
Разработка программного обеспечения