щотчег


Вот есть такой счетчик – прикольная штука, только знает ли хоть кто-то – как его интегрировать в ленту сообщений? Чтобы не приходилось раз в сколько-то времени его обновлять?

Каменец-Подольский

Каменец-Подольский

Прошедшие выходные ознаменовались поездкой в Каменец-Подольский – интересное историческое место. (рассказ приведу с цифрами, чтобы желающие туда попасть могли знать порядок цен)
Выехали в субботу вечером на хитром поезде номер 623, хитрый – потому что едет туда целых двенадцать часов, хотя судя по знакам, туда 450 километров. Ехали не очень удачно, было два верхних места в одном купе и еще одно верхнее в другом, в результате из-за отсутствия нижних полок пришлось гулять в корридоре.
По приезду оказалось, что наш пляжный прикид несколько не соответствует действительности – было всего 15 градусов тепла и шел дождик. Хорошо, что я взял джинсы и кофту.
До гостинницы решили пройтись пешком, чтобы по дороге осмотреться, могу сказать, что особо интересного ничего не увидели, потому что вокзал и гостинница находились в новом городе, который ничем не отличается от других современных городков. Через какое-то время нас начал преследовать “странный” запах, сначала мы думали, что кто-то вступил в экскремент, но потом поняли, что это несколько не так.
На следующий день мы узнали, что рядом находится спиртзавод и запах шел с его отстойников, т.е. когда ветер дует в сторону К-П, в городе становится не очень весело. В гостинницу мы пришли где-то к десяти часам утра и сразу поселились, ждать 12 не пришлось. Жили в двухместном номере с доп. диваном, чтобы можно было разместиться втроем, обошлось это удовольствие нам в 230 грн. (около 45$) за номер в сутки, при этом у нас был нормальный душ, туалет, телевизор и холодильник с водичкой внутри.
Поселившись мы отправились пообедать, но так как даже приблизительно не догадывались куда надо идти, то пошли в сторону самой большой дороги и предположительного центра. В ларьке купили карту города и начали выяснять что к чему. Решили идти к предполагаемому центру нового города, пока мы передвигались опять пошел дождь, Саня начал злиться, что мы зря не вызвали такси, а решили ходить пешком. В конце концов, когда мы пришли к центру, то уже передумали есть там и отправились к таксистам.
Приехали в старый город, водитель нас высадил возле небольшого кафе с названием “Ника” и взял целых 4 грн. В кафе цены тоже приятно порадовали, очень хорошо наевшись мы заплатили приблизительно по 30 грн. каждый. Теперь можно было идти в саму крепость – главную достопримечательность города. Вход в крепость – 4 грн. со взрослого человека. Внутри много всего интересного – башни, казематы, колодец, зиндан и прочая прочая.
Обойдя крепость мы вернулись в старый город и пошли в ратушу. Там расположены музеи денег, развития города и пыток. В подвале ратуши находились различные приспособления и детальные описания их применения на человеке для извлечения из него информации. В нашу эпоху гуманизма все эти вещи вызывали мурашек по коже и некоторый ужас.
Вечером придя в гостинницу мы поиграли в бильярд и поехали в сауну. Очень приятное и полезное место для ужасно уставших тел, единственным недостатком которого были шурупы, которыми были привинчены деревянные доски в самом жарком помещении. Я заработал ожог на мягком месте. Но это все-равно не омрачило нашего пребывания там, отдохнули просто прекрасно, за два часа заплатили 126 грн.

Хотин

Утром следующего дня мы позавтракали, повалялись немного в номере и выехали в следующее примечательное место – Хотинская крепость. Древняя крепость на берегу Днестра, построенная приблизительно в 11 веке и в 18 веке “усовершенствованная” Турками. Они построили новую крепость вокруг старой. Очень красивое и грандиозное сооружение, но к сожалению пока еще находится в не очень хорошем состоянии, хотя реставрационные работы ведутся, поэтому нужно будет попробовать съездить туда годика через два.

Вернувшись назад мы столкнулись с проблемой – куда деть столько оставшегося времени – к двум часам дня мы были опять в Каменце, а поезд был в половине восьмого вечера. С этой задачей мы справились – просто побродив по старому и новому городам, покатались на колесе обозрения, вид довольно интересный открывался, хоть и не сильно грандиозный.

Вечером мы сели на поезд и поехали обратно и вот, сегодня в половине восьмого утра вернулись в Киев отдохнувшие и полные сил 🙂

После увиденного у меня появилась мысль поехать по пути Богдана Хмельницкого во времена восстания. Да и просто поездить по стране и своими глазами увидеть историю.

Подведя итог скажу следующее – нужно путешествовать, чем больше мы видим, тем большие просторы открываются нашим мыслям…

Ghost in the shell:SAC 2nd GIG

Начал смотреть второй сезон сериала, мне показалось или он действительно стал более атмосферным киберпанком? Вообще пока нравится, прикольно так, затягивает зрелище, первый сезон не было такого желания смотреть как сейчас второй. Начинает мешать работать 🙂

Четвертьфинал

Сборная Украины прошла в четверть финала ЧМ мира по футболу 2006, урраа!!!
Столько позитива я не получал со времен известных событий 2004 года 🙂
Машины ездили и постоянно сигналили, народ на обочинах подсвистывал и покрикивал. Все-таки такие мероприятия – это великая сила!

Снова пьянка

На выходные ездили на дачу к нашей малой, формально – праздновать защиту магистров, реально – просто “погулять”.
На этот раз было прикольнее чем прошлые пьянки – там есть футбольное поле. Мы посидели на пляже и пошли играть в футбол. Хорошая игра, тем более на фоне ЧМ 🙂
Отбегались так, что когда вернулись назад, то и пива с водкой не хотелось даже, пили минералку и чай пока не отошли.
Начали бухать, но опять нормальную пьянку испортил футбол – Аргентина с Мексикой играли дополнительное время, из-за этого во время не могли даже к столу подойти.
Зато потом нагнали 🙂
Меня начали учить петь правильно – “звук должен идти от живота”, а я, оказывается, согласился 🙂 Гадкий Макс еще и записал этот кошмар на диктофон, теперь мне страшно.
На следующий день на нас напал вселенский облом, расписали пулю и валялись на земле, на лавочках. Некоторые, правда, ушли на пляж, купаться, но меня на этот подвиг не хватило.
Сегодня утром встал, оделся, пошел на кухню готовить завтрак и внезапно что-то так свело спину, что пришлось доделывать завтрак в полусогнутом положении. Потом чуть полегчало и я даже смог дотопать до гаража и приехать на работу, но что-то пока еще спина побаливает, но не думаю, что это что-то серьезное 🙂

Самое главное, что вчера Саныч предложил мне стать свидетелем на его свадьбе, а я согласился!

уфф

Я наконец-то начал высыпаться и возвращаться к нормальной жизни, вчера даже удалось часик поиграть в X3 🙂
Ненавижу говнопрограммера, который оставил мне в наследство софт управления сервером. Ну какому нормальному человеку пришло бы в голову кинуть конфиг и библиотеку часто-используемых функций в каталог с установленным перлом??? Это как кинуть myshit.h в какой-нить c:\msvc8\vc8\include
Благодаря этому магическому действию этот файл никогда не попадал в бекапы и теперь его надо восстанавливать руками, что есть полный пэ…
К счастью удалось восстановить какой-то бекап, который когда-то остался от редактирования этого файла, и хотя бы 50% контента восстановилось.
Но в большей своей части это восстановилось и теперь появляется время на другие занятия 🙂

По эту сторону взлома

Блин, неприятно оказываться взломанным… Злые хацкеры из Бразилии поломали мне хостинги – дефейснули, точнее, через очередную дырку в пхп-софте клиентов, в принципе, это фигня, но вот дальнейший разбор полетов показал, что взлом зашел слишком далеко – на серваке обнаружился rootkit. Штука весьма неприятная, но тоже лечимая – поскольку удалось вычислить кто и как им управляет и я это дело быстренько закрыл, но потом оказалось, что половина системных файлов уже пропатчена для того, чтобы руткит нельзя было вычислить. Помогла штука под названием busybox – она включает в себя практически все файлы, которые обычно подменяются. С ее помощью я начал вычищать и восстанавливать файлы. Хакеры (или руткит) использовали очень интересную штуку – аттрибуты файлов (у ext2 файловой системы есть набор некоторых аттрибутов, которые так просто и не увидишь). Когда я пытался удалить “зараженный” файл, система сообщала мне, что Operation not permitted. И это при том, что я был рутом! Спасли команды lsattr, chattr – которые как раз и показывают и меняют эти хитрые аттрибуты. В общем процесс более-менее наладился, пока я не напоролся на файл ifconfig – он не удалялся никак… Дальнейшие проверки показали, что файловая система повреждена – inode файла был отрицательным. Я попробовал запустить fsck – меня предупредили о неприятностях и я ребутнул машину. Больше я ее удаленно не видел. Звонок к провайдеру обрадовал – на консоли висела надпись Unable to mount root file system.
Пришлось ехать на площадку к провайдеру, большое спасибо товарищу apl, за содействие в последующем. На месте оказалось, что fsck после 2х часовой работы не принес никаких результатов и linux пришлось снести… Хорошо, что были бэкапы юзерских данных и конфигов. Правда я уже вторые сутки занимаюсь восстановлением сервера и спал за это время только часа четыре, но все-равно, могло быть и хуже.
Теперь там вместо линукса стоит FreeBSD и я надеюсь, что с безопасностью будет полегче, все ж под фрю ставить необходимый софт и его потом апдейтить значительно легче, чем под линух. Да и саму фрю держать в свежем виде легче.
Из всего произошедшего можно сделать следующие выводы:
-Паранойя в среде админов – это правильное явление.
-Самое большое внимание надо уделять php – именно тудой происходит большинство “пролезаний” в систему.
-Нужно ставить системы мониторинга целостности системы и регулярно читать их отчеты.
-Вполне неплохим решением может быть установка системы обнаружения проникновения или осуществления попыток.
-Фаерволл должен находится в режиме default to deny и держать открытым ограниченное количество портов. В идеале не должны быть вообще доступны непривилегированные порты.
-/tmp должна быть отдельной системой, смонтированной как nodev, nosuid, noexec – т.е. даже если “плохие парни” выполнят код, скачают в темп какой-нить эксплойт, то запустить его им не удастся.
Наверняка найдется еще куча советов, но сейчас я очень хочу спать и вряд ли их вспомню 🙂

Vi iMproved

Напишу-ка я про один из самых интересных текстовых редакторов. Идея появилась после того, как я нашел аддин – интегрирующий основную функциональность в студию.
http://viemu.com/
В связи с моим администраторским увлечением (я занимаюсь небольшим саппортом нескольких серверов фирмы моих знакомых) мне пришлось познакомиться с консолью юникса, а там и с текстовыми редакторами – конфиги-то надо править 🙂
Почитав доки я узнал, что один из самых используемых редакторов – это vi (vim). Запустил я vim httpd.conf, после нескольких нажатий кнопок на клавиатуре я чуть не угробил весь конфиг и крыл матом весь свет – они вызывали совсем не те действия, о которых я думал. С горем пополам я вышел из редактора и решил сначала прочесть по нему доку. Прошло некоторое время и я понял, что для технической работы с текстом – это просто лучшее что есть в мире 🙂
У него есть два режима работы – командный и непосредственно ввод текста.
Первый режим – это именно то, что в виндовсе мы делаем при помощи мышки и иногда клавиатуры – перемещение по тексту, поиск фрагментов, замена, разметка и еще множество всего. Второй режим – это привычный всем ввод текста.
Вся прелесть редактора именно в этом первом режиме. Нажатиями нескольких кнопок можно сделать огромное количество действий, с мышкой – это займет больше времени.
Небольшой пример:
У меня курсор стоит на названии переменной m_vertex; и тут я понимаю, что мне бы хотелось заменить его на m_firstVertex.
Все просто, я нажимаю : и вписываю: %s/m_vertex/m_firstVertex/g
В обычном случае мне пришлось бы сделать следующее: Ctrl-H, клик мышкой в поле ввода искомого текста, ввод слова, Tab, ввод слова, .
Минус второго способа не только в том, что надо работать обоими инструментами ввода, но и в том, что кнопки, которые надо нажимать расположены не очень удобно и по этому приходится отвлекать руки от привычного положения (начальная позиция).
Или очень тривиальный пример. Надо добавить две переменные:
float m_dx;
float m_dy;

в vim – надо набрать первую строку
float m_dx;

перейти в командный режим и нажать yyp (скопировать в буфер строку и вставить ее следующей)
float m_dx;
float m_dx;

после этого перейти в конец слова m_dx и заменить на m_dy.

Подведя итог скажу, что в большинстве своем набор текста программы – это постоянные повторения и замены, используя vim с ними можно справиться значительно быстрее чем используя мышку с клавиатурой в обычном режиме.
Кстати, плюсом этого плагина еще и является то, что можно использовать и привычные средства, которые есть в студии (Ctrl-C, Ctrl-V итд).
Стоимость плагина правда впечатляет, но пока что evaluation period, а там посмотрим 🙂

Многопоточность

Я всегда боялся многопоточности, старался избегать ее всеми возможными путями. Еще в институте, когда у нас на занятиях по программированию началось изучение оной, я старался избежать расплаты 🙂 страшные названия мьютекс, семафор, критическая секция и прочие ввергали меня в панику.
Это первая часть вступления, теперь вторая 🙂
Меня давно манили сети, те, которые компьютерные, мне было интересно читать рассказы про хакеров, описания эксплойтов и прочую “околобезопасностную” байду, возможно именно поэтому я когда-то согласился саппортить несколько юникс-серверов. Я изучал юникс, сетевую безопасность и вообще работу сетей на практике, и наверно это и пнуло меня согласиться на участие в разработке сетевой части в нашем текущем проекте. И тут я понял – сетевой код без многопоточности – это практически нонсенс… И мне пришлось изучать потоки и все те страшные вещи, которых я так боялся. Результат меня несколько поразил – оказывается, насколько проще можно было бы реализовать то многое, что я когда-то делал, если делать его в несколько потоков. Многопоточность – это очень полезный инструмент и теперь я его пытаюсь ткнуть куда только можно, пройдет некоторое время и придет понимание – где это надо, а где нет 🙂

Собсно выводом из этого всего можно сделать следующее: “Знание сила, и если есть возможность что-то узнать или чему-то научиться, то надо это сделать”. Не надо бояться или говорить “я как-нить без этого справлюсь”, как вы можете так утверждать, если вы этого не знаете, или не умеете? 🙂