Чтобы не искать
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
Михаил Иванов's LiveJournal:
[ << Previous 20 ]
| Saturday, November 21st, 2009 | | 4:53 am |
Командная работа в Git
Во всем множестве статей по git'у, которые я смог найти в сети, не хватает одного существенного момента - описания командной работы. То, что обычно описывают как командную работу, на самом деле является просто работой с удаленным репозиторием. Ниже я хочу описать свой опыт командной работы над проектом с использованием git'а. ( Изучить ) | | Tuesday, September 22nd, 2009 | | 10:41 am |
| | Friday, June 12th, 2009 | | 12:45 am |
| | Tuesday, June 2nd, 2009 | | 11:57 pm |
Выключение компа средствами XFCE
По умолчанию XFCE 4.6 под FreeBSD 7.2 не дает непривилегированному пользователю выключить или перезагрузить компьютер. В диалоге "Выйти" доступна только кнопка "Выйти из системы", т.е. можно только разлогиниться. Кнопки "Перезагрузить", "Выключить", "Ждущий режим" и "Спящий режим" неактивны. ( Как их активировать? ) | | Sunday, May 24th, 2009 | | 12:47 am |
Лайфхакеры
В детском садике у меня был друг Сережка Тарасов. Однажды мы с ним разработали и осуществили хитроумный побег из садика. Было так: После прогулки все дети строятся парами, чтобы идти обедать. Мы с Сережкой встали в конец строя. Воспитательница пересчитала всех по головам, встала впереди строя и повела группу в сад. В этот момент мы с Сережкой сделали резкий рывок назад в сторону и сныкались в кустах. Когда группа ушла с площадки, мы вылезли из кустов, спокойно перелезли через заборчик садика и были таковы. Сережка пошел к бабке в соседнюю деревню, а я пошел домой. За день до побега родители купилы колбасы, которая тогда была большим дефицитом и потому редким лакомством. На колбасе я и спалился. Меня, вылезающего из-под калитки с куском колбасы, застукал папа. С тех пор прошло 26 лет. За это время ни один ребенок в городе не смог повторить нашего подвига. Испытываю по этому поводу определенную гордость. Но вот недавно, наконец, появился толковый мальчишка, сумевший найти еще одну дыру в системе. Он, похоже, не разрабатывал планов, а импровизировал на ходу. Было так: Мама привела его в садик, раздела в раздевалке, чмокнула на прощание и пошла на работу. Мальчишка сообразил, что, пока он находится в раздевалке, он вне системы - мама ушла, а воспитательница его еще не заметила. Не долго думая, он оделся и слинял из садика. Спалился он из-за того, что вышел на открытую местность без маскировки - кто-то обратил внимание на шлявшегося без врослых малыша. В общем, теперь жду, провернет ли такую операцию мой собственный сын:) | | Tuesday, April 21st, 2009 | | 12:09 am |
Контексты в Perl
В предыдущей заметке про разделение числа на разряды коллега frenzytechnix предложил альтернативный способ решения этой задачи. Способ основан на буквальном выполнении "ручного" способа - идти с конца числа и ставить запятые после каждых трех цифр. Алгоритм довольно прост: 1. Развернуть число задом наперед 2. Разделить получившееся на отдельные тройки цифр 3. Собрать все получившиеся части вместе, вставив между ними запятые 4. Развернуть получившееся задом наперед, т.е. теперь передом назад Вот реализация этого способа на перле: print scalar reverse join ",", reverse ($a) =~ /\d{1,3}/g; Однострочник для проверки: $ perl -e '$a=1234; print scalar reverse join ",", reverse ($a) =~ /\d{1,3}/g; print "\n";'
При попытке понять, как это работает, можно порвать мозг. ( Давайте, однако, разберемся, как же это все-таки работает. ) | | Friday, April 17th, 2009 | | 10:08 pm |
Разделение числа на разряды с помощью регулярного выражения
Время от времени возникает задача разбить большое число на разряды. Например, число 1234567890 будет легче восприниматься, если разделить разряды запятыми: Было: 1234567890 Стало: 1,234,567,890 Интуитивно понятно как решить эту задачу вручную, на бумаге. Нужно просто идти справа налево и через каждые три цифры ставить запятую. А можно ли сформулировать это решение на языке регулярных выражений? Сразу же возникает затык - регулярные выражения не умеют ходить справа налево. Значит, нужно переформулировать решение так, чтобы задача решалась в обычном для регулярных выражений направлении - слева направо. Но так вот, запросто, идти слева и отсчитывать тройки цифр не получится. Ведь разряды по определению отсчитываются справа, супротив математики не попрешь. Значит, идти, как велят регулярные выражения, нужно слева, а разряды считать - справа. ( Что эта фигня значит? ) | | Wednesday, April 15th, 2009 | | 12:19 pm |
Буду краток
Делать ping ya.ru и ping x.org - это слишком длинно. У некоторых стран, однако, TLD имеют A-запись в DNS: uz, tm, pn, io, ac, cm, pw, ai, mn, bi ping bi - каково, а? :) | | Friday, April 10th, 2009 | | 8:01 pm |
Южнокорейский антивирус
Оказывается, в Южной Корее делают не только телевизоры и холодильники, но и антивирусы. Перед вами интерфейс южнокорейского антивируса ALYac. Антивирус используется в генеральном консульстве Южной Кореи в России. Обратите внимание на персонажей, изображающих вирусы - это феерия, я считаю:)  Интересно, ловит ли он все вирусы без разбора, или для "своих" делает послабления? :) | | Thursday, April 9th, 2009 | | 4:32 pm |
FastCGI-приложение на Perl. Дополнение 1
Как мне тут верно подсказали, при демонизации приложения я допустил существенную ошибку в обеспечении безопасности. Как известно, каждый процесс характеризуется не только пользователем, из-под которого он работает, но и группой. Соответственно, права, которыми обладает процесс, зависят не только от прав пользователя, но и от прав группы. Демон, которого мы написали во второй части статьи, запускается от пользователя root. При этом группа, от которой запускается демон, также является группой root. Вызвав setuid и сменив пользователя на nobody, мы забыли, что автоматической смены группы при этом не производится. Процесс продолжает работать с правами группы root, а это, понятно, сводит на нет всю безопасность. ( Как починить? ) | | Monday, March 23rd, 2009 | | 4:55 pm |
| | Wednesday, March 4th, 2009 | | 2:54 pm |
FastCGI-приложение на Perl. Часть третья.
В предыдущей статье был продемонстрирован способ демонизации FastCGI-приложения. Получившийся демон успешно обрабатывает запросы, но у него есть один существенный недостаток - он не умеет обрабатывать несколько запросов одновременно. Более того, в плане обработки нескольких одновременных запросов ситуация с демоном даже хуже, чем с обычным CGI-приложением. Если CGI-приложение может быть запущено веб-сервером в нужном количестве экземпляров (например, по экземпляру на каждый поступивший запрос), то демон, работающий в одном единственном экземпляре, будет вынужден ставить поступившие запросы в очередь. Пока предыдущий запрос не будет выполнен, все остальные запросы должны будут ждать. Для того, чтобы FastCGI-приложение могло обслуживать несколько запросов одновременно, оно должно уметь создавать собственные копии. В этом случае одновременно пришедшие запросы будут обрабатываться параллельно несколькими экземплярами приложения. ( А как создавать копии? ) | | Saturday, February 28th, 2009 | | 10:10 pm |
FastCGI-приложение на Perl. Часть вторая.
Написанное в предыдущей статье FastCGI-приложение сковано одной цепью с тем терминалом, из которого его запустили. Приложение будет работать ровно до тех пор, пока открыт терминал. Как только вы закроете терминал, приложение будет немедленно убито. Причина в том, что всякая программа, запущенная из терминала, становится потомком этого терминала, а терминал, соответственно, родителем этой программы. Существование же потомков, не имеющих родителей, не допускается. Соответственно, при закрытии родителя-терминала немедленно закрываются все зависящие от него потомки и, в частности, наше FastCGI-приложение. Для того, чтобы FastCGI-приложение перестало зависеть от родительского терминала, оно должно быть преобразовано из простого скрипта в демон. ( Что это еще за чертовщина? ) | | Thursday, February 26th, 2009 | | 2:38 pm |
FastCGI-приложение на Perl. Часть первая.
Некоторое время назад мне поручили написать движок для онлайн-аукциона. Передо мной встал выбор - сделать движок как обычный CGI или же сделать что-то поинтереснее. Я принял решение применить в разработке движка технологию FastCGI. FastCGI - это клиент-серверный протокол, обеспечивающий взаимодействие между веб-сервером и приложением. FastCGI является дальнейшим развитием протокола CGI. ( В чем разница? ) | | Sunday, February 1st, 2009 | | 1:38 pm |
| | Tuesday, January 20th, 2009 | | 10:17 am |
Подпись в письмах
Согласно RFC 2646 подпись в письмах должна отделяться от тела письма последовательностью "-- ". По-русски говоря - два тире и пробел. Пример: Привет, вот тебе мое письмо!
-- Иванов mailto:ivanov@example.com Почему-то мало кто соблюдает этот RFC. А зря. Подпись, отделенная этой последовательностью, обладает, как минимум, двумя полезными свойствами: 1) При чтении письма такая подпись выделяется цветом, как правило, она становится бледно-серой. Это помогает визуально отделить тело письма от подписи. 2) При ответе на такое письмо подпись автоматически отрезается и не загромождает письмо бессмысленным оверквотингом. Всем добрым людям рекомендую соблюдать этот RFC:) | | Wednesday, November 5th, 2008 | | 4:04 pm |
Петерхост зажигает
Пришел спам от Петерхоста: "Добро пожаловать в зону .KZ! Теперь у вас появилась возможность зарегистрировать домен в этой зоне по максимально доступной цене – 650 рублей. " Курсив мой. Чем дороже, тем круче, ага. "Максимально доступная цена " - это вообще феерично. Типа, есть такие несчастные, которым максимальная цена недоступна, им приходится довольствоваться минимальной ценой. Страдивари делал скрипки только для лохов. Для настоящих пацанов он делал БАРАБАНЫ! (с) анекдот | | Tuesday, September 30th, 2008 | | 4:06 pm |
Устанавливаем Windows в QEMU под FreeBSD
Процесс установки QEMU освещен в сети довольно смутно. Все более-менее подробные статьи, которые мне удалось найти, имеют неприятные особенности: Во-первых, эти статьи устарели. Так, например, для поднятия сетевого моста в новой 7-ой FreeBSD вместо устаревшего bridge следует использовать if_bridge. Во-вторых, авторы этих статей как-то невзначай упускают некоторые важные моменты, без которых пошаговое выполнение описываемых процедур не дает эффекта. Например, нет внятного указания на то, что для запуска QEMU нужны либо права root'a, либо настроенный sudo. В третьих, в статьях излагаются какие-то лишние процедуры, не относящиеся напрямую к делу. Например, рассказывается о том, как экспортировать окно QEMU, устанавливаемого на сервере, на локальную Windows. Попросту говоря, эти статьи не работают. Поэтому я решил написать свою статью, с блекджеком и шлюхами. ( Поехали. ) | | Wednesday, September 3rd, 2008 | | 4:11 pm |
| | Thursday, July 31st, 2008 | | 11:39 pm |
SSH через SOCKS
На новой работе локальная сеть отрезана от мира комплектом прокси-серверов – http-прокси, ftp-прокси, pop3-прокси. Даже ssh не имеет прямого выхода наружу – только через socks-прокси. Стандартный ssh-клиент, однако, сам по себе через socks ходить не умеет. Поэтому пришлось поискать враппер, который организует для ssh-клиента туннель до socks-сервера. ( Что еще за враппер? ) |
[ << Previous 20 ]
|