Powershell и объектный pipe
Я задумался над тем, чтобы показать как могла бы выглядеть обработка логов на PowerShell. Как я уже говорил, pipe в PowerShell объектный, то есть по нему идёт не монолитный текст, а набор объектов. Вот я и попробую на примере показать что это.
Для начала настроим лог Apache так, чтобы его было удобнее парсить. К примеру, можно ввести символы табуляций — в логе они не встречаются и вполне подходят на роль разделителя:
LogFormat "%h\t%l\t%u\t%t\t\"%r\"\t%>s\t%b" common
CustomLog logs/access.log commonВ логе у нас есть: хост клиента, его ident, имя пользователя (если была произведена
127.0.0.1 - - [03/Jan/2010:16:35:30 +0300] "GET /favicon.ico HTTP/1.1" 404 1976
127.0.0.1 - - [03/Jan/2010:16:35:32 +0300] "GET /a.html HTTP/1.1" 200 521
127.0.0.1 - - [03/Jan/2010:16:35:33 +0300] "GET /favicon.ico HTTP/1.1" 404 1976Предположим, наша задача — разобрать лог, отобрать только те запросы, у которых код ответа 200, отсортировать по размеру контента и вывести в табличном виде название метода, URL и размер контента.
cat access.log | %`
{
$o = "" | Select-Object host, logname, user, date, url, code, len, method
$o.host, $o.logname, $o.user, $o.date, $o.url, $o.code, $o.len = $_.Split("`t")
[datetime]$o.date = $o.date -replace '^.([^:]+):(.+).$', '$1 $2'
"logname", "user", "len" | %{ If ($o.$_ -eq '-') { $o.$_ = $false } }
$o.method, $o.url = $o.url.SubString(1).Split()[0..1]
$o
} | ?{ $_.code -eq 200 } | Sort-Object -property len | Format-Table method, url, lenИтак, что здесь происходит. Читаем лог, проходимся по каждой его строке (%{ }), внутри цикла странным хаком
Последней строкой цикла выводим получившийся объект. До цикла по pipe шли объекты попроще — всего лишь наборы строк («System.String»), теперь идут более интересные объекты («System.Management.Automation.PSCustomObject» с заданными нами полями).
Из этих объектов мы вибираем только те, у которых поле «code» содержит значение 200 («?{}» — это короткий алиас
method url len
------ --- ---
GET / 4701
GET / 4701
GET / 4701
GET / 4701
GET /a.html 521
GET /a.html 521Надо будет после праздников взглянуть на PowerShell 2.0, говорят, там очень много нового и интересного добавили.
«Чёрная молния»: product placement
Особенности перевода

Pure PHP class LZF decompression (lzf_decompress)
Разбирая архивы на старом компьютере в Казани, наткнулся на свою реализацию
Выкладываю в разделе «Храню», может
«Тщета, или крушение Титана»
В том же 1912 году, но раньше, чем произошла катастрофа, была издана книга Моргана Робертсона (Morgan Robertson) «Тщета, или крушение Титана» («Futility, Or the Wreck of the Titan»), действие которой происходило на борту пассажирского судна «Титан», схожего по описанию и водоизмещению с «Титаником». В этой книге «Титан» гибнет от столкновения в тумане с айсбергом во время плавания
из Нью-Йорка в Великобританию. Как следствие — появилась легенда о «предсказании» катастрофы «Титаника» Морганом Робертсоном. Этот факт подкрепляется тем, что несмотря на выход книги в печать в 1912 году, написана она была в 1898.
Цитата из статьи «Титаник» в «Википедии».
JavaScript: это IE?
Aleko придумал новый (более короткий, чем известный до этого)
if(-[1,]) {
// код для нормальных браузеров
} else {
// код для IE
}Подробный принцип действия хорошо описан в блоге у Aleko. Основан хак на старом баге JavaScript в IE, который Microsoft пока не исправила (и неизвестно будет ли исправлять), но с IE9, я считаю, надо быть осторожными — там грядут очень уж глобальные изменения, хак может и не работать.
Android
Денёк покрутил в руках HTC Hero, вывод: следующий телефон, который себе буду брать, будет на «Андроиде». Кажется, гугловский неплох и у «Моторолы»
«Андроид» на «Hero» не тормозит. Вообще. После Windows Mobile 6.1 на моём X7500, я в вышей степени был обрадован временем отклика. Интересно, модели с WiMAX на «Андроиде» появятся? Вроде как HTC около 15 новых телефонов на базе «Андроида» готовит.
Чудесный X-Wap-Profile и новые телефоны HTC на базе «Андроида»
Некоторые сотовые телефоны отправляют на сервер заголовок
Что нам это даёт? Ну, например, недавно в сеть утекла информация о кодовых названиях новых телефонов HTC на базе «Андроида» (впрочем, «утекла» громко сказано — в новой прошивке «Андроида» эти имена вшиты). Естественно, к моменту выхода телефона, его профиль компания уже размещает в сети
Помимо того, что это позволяет убедиться в том, что такая модель у HTC действительно скоро выйдет, можно поинтересоваться некоторыми (довольно скудными, правда) сведениями о будущем телефоне и примерно прикинуть ценовой уровень по разрешению экрана и наличию/отсутствию клавиатуры.
Например, «Supersonic». Что даёт нам профиль «Суперсоника»? Процессор — ARM11, нет внешней клавиатуры, разрешение экрана — 480×800, поддерживает GRPS (а значит это GSM телефон, что не исключает поддержки 3G, конечно же), умеет запускать
Liberty: ARM11, нет внешней клавиатуры, 320×480, GSM,
Espresso: ARM11, внешняя клавиатура с раскладкой «qwerty», 320×480, GSM, J2ME.
Paradise: ARM11, внешняя клавиатура с раскладкой «qwerty», 240×400, GSM, J2ME.
Bravo: ARM11, нет внешней клавиатуры, 480×800, GSM, J2ME.
Halo: ARM11, телефонная клавиатура, модель называется Tattoo, 240×320, GSM, J2ME.
Кстати, нет профилей для «Bahamas», «Huangshan», «Incredible». То ли кодовое имя телефона сменилось, то ли выйдет он ещё не скоро.
Устал я что-то
Почему мне кажется, что это красиво звучит, «Mонмартр» и обещает
Из неприятностей в новом году: два раза траванулся, прокололи шины шилом, два раза приходилось выкапывать машину из снега и по часу буксовать.
FAQ о праве на съёмку
Отличная статья появилась на сайте «Антирао» — «FAQ о праве на фотосъёмку», рекомендую прочесть полностью. Вот например:
Ограничения на доступ к музейным предметам могут быть установлены только в тех случаях, когда они находятся в неудовлетворительном состоянии, на реставрации или в хранилище музея. Сюда же относится и запрет на съемку со вспышкой, если это может повредить состоянию объекта.
Что же касается продажи музеями «права на съемку», то она также незаконна. Фактически музей сначала незаконно ограничивает права посетителей на сбор информации, а затем — убирает за плату данное ограничение.
Дейстивительно ли законодательно запрещена съёмка в магазинах, кафе, самолётах, метро, музеях и так далее. Очень интересный документ, составитель — Павел Протасов, профессиональный юрист.
Статистика браузеров и платформ
Решил чуть более подробно посмотреть на Google Chart API. Принцип понятен, хотелось больше посмотреть что сделано для сокращения длины URL. Его длина ограничена, а впихнуть данных хочется очень много.
Сделано немного, на мой взгляд — короткие имена параметров и перевод чисел в систему с основанием 64. Понятно, чтобы ещё больше сократить разряднось цифр, лучше их поделить на наибольший общий делитель (что я и сделал).
Наверное, для диаграмм этих шагов хватает, но почему не сделали упаковку подписей, неясно — русские буквы передаются как есть, то есть шесть знаков на каждую букву (например, «%D0%9F»).
Чтобы попробовать API


Мне не нравится очень спорный antialiasing (на мой взгляд, очень бледный) и то что проценты приходится выводить самостоятельно.
Популярность языков программирования: Java, C, PHP
Opera Turbo и ̶Т̶а̶й̶н̶а̶я̶ ̶к̶о̶м̶н̶а̶т̶а̶ ограничение по стране
Чем мне нравится режим «Оперы» «Турбо» (помимо экономии трафика), что он совершенно легально пропускает трафик через прокси в другой стране. Не удаётся скачать
(я знаю, что «Опера» покажет в заголовке квадраты, к сожалению, у неё всё довольно плохо с Unicode)
Что ты смотришь на сучок в глазе брата твоего, а бревна в твоём глазе не чувствуешь?
Эгегей, чего все так возбудились на «раздевающие» сканеры, которые будут установлены в аэропортах США? В аэропорту «Домодедово» такие сканеры уже третий год работают. Неужели никто из него не летал? Тогда что за толпы народу я там вижу каждый раз? Что, никто, кроме меня и Лебедева не любопытствовал что видно на экране этого сканера?
Google Nexus One
Купил себе Google Nexus One, как теперь перенести контакты из Windows Mobile?
Добавлено
Добавлено
Fring: SIP
«Мы, бояре — народ роботящий». Раз уж я весь из себя такой с «Нексусом Уан», то негоже мне звонить в другие города через обычную сотовую связь. Решил вчера посмотреть на SIP. В качестве клиента выбрал Fring, в качестве провайдера — SIPNet. Ничего сложного, регистрация крайне простая, единственное — Fring для «Андроида» не имеет пресетов для SIPNet, поэтому нужно руками указать прокси — sipnet.ru.
Сегодня позвонил родителям, качество приличное, не прерывается, стоимость низкая, пользоваться несложно. Рад.
Потрачу деньги буду переходить на СallWithUs, Каганов говорит, что тарифы там почти в два раза ниже. Рад в два раза больше.
Google (HTC) Nexus One

Для тех, кто не знает что же я купил, расскажу. Пост достоинств, о недостатках потом.
Это телефон, который для «Гугла» сделала известная фирма HTC, предыдущей телефон у меня был той же фирмы (X7500) и сделаны оба очень качественно. На борту — новейшая ОС «Андроид» версии 2.1, отличный интерфейс, управляемый пальцами.
Телефон очень удобно лежит в руке (он тоньше iPhone, но чуть длинее), у него металлический каркас и две пластиковые вставки, покрытые тефлоном. Экран — 3,7 дюйма, 800×480, AMOLED, время ответа — 1ms, в американской версии телефона (которая у меня) программно выключен multitouch.
Камера — 5 мегапикселей, довольно качественная, хорошо стабилизирует изображение, есть вспышка, съёмка видео — 720×480, 20 кадров в секунду.
Поддерживает GPS/EDGE, 3G, Bluetooth 2.1 с EDR и A2DP,
Время разговора — 7 часов (10 в сетях 2G), время ожидания — 250 часов (290 — в 2G). Процессор — Qualcomm QSD 8250 1ГГц, памяти — 512Мб Flash, 512Мг оперативной, в комплекте карточка на 4Гб (Micro SD, телефон поддерживает до 32Гб).
Из других фич — акселерометр, цифровой компас, зарядка от micro USB, два микрофона (для снижения шумов), датчик освещённости, датчик расстояния (для того, чтобы гасить экран, когда телефон подносят к уху и прочего подобного).
Покупал на сайте MaxApple, стоимость — 27 тысяч рублей.
Бег
Мда, пора заводить
Я очень давно, много лет не бегал, но играю
Воен упячки — Роджер Желязны
А Висс пусть усрётся кирпичами! — залился смехом Вонь Пань. — Большими, тяжёлыми, с острыми углами!
Роджер Желязны и Джейн Линдскольд. Лорд Демон. Охохо, в оригинале так и написано: «„Viss’ll shit bricks,“ laughed Wong Pang. „Big ones with sharp, square corners!“»
Сайт, RSS и браузерный XSLT
Мне последние три года не даёт покоя мысль: вот у нас есть RSS на сайтах, он же — XML, что мешает взять его за основу, наложить на него XLST через браузерный движок и получить оформленный сайт? Зачем делать аж два разные источника?
Листалки вперёд/назад, ссылки на комментарии — всё есть в расширениях, для остального RSS можно расширить самостоятельно. Никто ещё ничего такого не сделал?
Спелеотренировка №1
Надо бы рассказать, с чего вдруг я начал бегать, да ещё и зимой. Весной, вероятно,

Выносливость мы начинаем нарабатывать, снаряжение, знания и умения — приобретать. Приобретению знаний были посвящены шесть часов прошедшей субботы. За неё я научился быстро (но пока неаккуратно) вязать узел «восьмёрка», одевать и снимать снаряжение, быстро подниматься и (плохо пока) спускаться на «кроле» и «жумаре», быстро спускаться на «решётке», а так же проходить вверх и вниз точку перестёжки.
Не решился пока залезать на самый верх вышки — на морозе задубели пальцы правой руки, сгибались и разгибались с задержкой в полсекунды, в первый раз такое вижу.
Подробности можно посмотреть в фотоальбоме на «Яндекс.Фотках».
Френдик
У пушистой школоты, оказывается, новое слово в ходу: френдик. Пример употребления (регистр, видимо, важен): «Ти моЙ ФрЕндИк и я Тя ЛаФФки».
Френдики, я вас лаффки!
Принцип неопределённости Гейзенберга
Многие считают принцип неопределённости Гейзенберга
Чтобы предсказать, каким будет положение и скорость частицы, нужно уметь производить точные измерения ее положения и скорости в настоящий момент. Очевидно, что для этого надо направить на частицу свет. Часть световых волн на ней рассеется, и таким образом мы определим положение частицы в пространстве. Однако точность этого измерения будет не выше, чем расстояние между гребнями двух соседних волн, и поэтому для точного измерения положения частицы необходим коротковолновый свет.
Согласно же гипотезе Планка, свет невозможно использовать произвольно малыми порциями, и не бывает меньшей порции, чем один квант. Этот квант света внесет возмущение в движение частицы и непредсказуемо изменит ее скорость. Кроме того, чем точнее измеряется положение, тем короче должны быть длины световых волн, а следовательно, тем больше будет энергия одного кванта. Это значит, что возмущение скорости частицы станет больше. Иными словами, чем точнее вы пытаетесь измерить положение частицы, тем менее точными будут измерения ее скорости, и наоборот.
Одной строкой: чтобы измерить
10 км
Сегодня пробежал 10 километров, натёр ещё один палец на ноге, пластырем с первого. Стёр до крови (думаю —
Из ощущений: дыхание не сбилось (дышал через нос, равномерно), в боку не кололо, сустав почти не беспокоил, но последние километры было ощущение тяжести тела. Когда добежал и перешёл на ходьбу,
Единичные случаи: по одному в день
Заместитель министра внутренних дел Аркадий Еделев назвал убийство мирных граждан милиционером Евсюковым «единичным случаем». Esquire составил ежедневный календарь следующих единичных случаев, которые вскоре появились в новостях.
Сам календарь можно увидеть на сайте журнала «Esquire».
Эпическая швабра: +1 к бардаку
Спам пришёл: «легендарная паровая швабра». Легендарная!!! Где можно приобрести сборник «легенды о паровой швабре»? «Эпос древней греции о Паровой Швабре»?
Релиз FF 3.6?
На FTP Mozilla в папке релизов появился релиз Firefox 3.6. На самом сайте анонса пока нет.
10км: сегодня cancel, вопрос про фонарик
Сегодня не побежал:
Совмещу пост, чтобы не писать на каждый чих отдельный. Я знаю, что здесь были специалисты по фонарикам (выделяю, чтобы отвлечь внимания от моего нытья и привлечь вопросу). Посоветуйте дешёвый, но годный (в смысле использования батарей и светосиле) китайский налобный фонарик. Для пещер. Тратить деньги на некитайский я пока не готов: не знаю как у меня пойдёт со спелеологией, пока обойдусь чем подешевле.
30 января: я в Киеве, на PyCamp

Ребята, ну почему вы семинар не провели в Одессе? Очень хочется там побывать, совместил бы приятное с полезным. Правда, сейчас зима, и в Одессе довольно низкая температура, не погуляешь.
B.I.T.C.H.E.S
Что-то не припоминаю, чтобы меняили кого-то из моих друзей, хоть раз, хотя бы в шутку, в детстве обозвали принцем. Не слышал такого и в адрес современных парней. Случись такое, думаю, я счел бы это за оскорбление. Посчитать себя принцем, не по крови, не за достижения, а за красивые глаза и нарядный костюм или вовсе «за так» — к счастью мы, мужчины, до такого еще не дошли. Нас можно ругать за многое, но к счастью не за это…Женщины и здесь устроены совершенно не так. Если ты хочешь хорошей жизни, не делай ничего, просто с детства верь, что ты крутая и подороже продай себя. Не в этом ли кроется одна из причин женского одиночества? Не идти же «принцессе» замуж за пастуха?
Из статьи «Мужской взгляд: Кто вырастает
Спелеотренировка №2

Сегодня проводили вторую спелеотренировку. Было холодно — около 25°С «по ощущениям», если верить сайту «Real Meteo». Мои успехи: спуск в режиме кроль/жумар стал проходить быстрее, что мне помогло, когда я с первой попытки не смог взять себя в руки, чтобы подняться на самый верх вышки (сколько там не знаю,
В первый раз поднялся выше перестёжки и понял, что страшно: иногда крутит вокруг своей оси, а дотянуться до вышки уже нельзя.
На фотографии я как раз вишу, встегнувшись в точку, 14—17 метров над землёй.
Плохо, что у меня короткий «ус» настолько короткий, что приходится вставать в педаль двумя ногами, при попытке встегнуться. Наверху у меня замёрзли руки и, чтобы было проще встёгиваться, я слишком высоко поднял жумар и вогнал его в узер. Додумался, как освободить — надо чуть его повернуть.
Я молодец, что проверил снаряжение, прежде чем спускаться (но не молодец, что не сделал этого на земле) — рапид на «решётке» был не затянут; кроме того, увидел, что на верхней точке я «решётку» поставил неправильно — вверх ногами, переделал.
Чему научился: быстрее спускаться на жумаре и кроле, тщательно проверять снаряжение до любых операций, высвобождать жумар
За фотографию спасибо жене и iPhone.
Verbatim Game
У Экслера подсмотрел игрушку «全日本バーベイタム選手権» («Японский чемпионат Verbatim») — из флешек составляется монстр, которым потом можно драться с другими монстрами. От каждого боя достаётся немного гигабайт, увеличивается рост и улучшаются различные характеристики: мощность, оборона, скорость и живучесть. Скорость после 35 у меня больше так и не выросла. Если вам удаётся победить большую часть своих соперников, можно попробовать победить боссов — The IQ, The Captain, The Tank, The Queen и The Verbatim.
Характеристики прокачитаются довольно быстро, так что и на монстров можно идти
Обратите внимание, что ваш монстр, конечно, дерётся сам, но есть три кнопки, которые вы можете, по одному разу, нажать в любой момент боя — «кулак» (удар гигантской флешкой), «плюс с ключом» (добавить себе немного энергии) и «ракета» (выпустить в соперника
P.S. Моего монстра зовут HIW.
Multitouch в Nexus One
Как известно, в американской версии Nexus One нет не было multitouch, теперь есть. На форуме
«Реактивные веб-сайты»

Вышла электронная версия нашей (три автора — я, Николай Мациевский и Глеб Кондратенко) книги «Реактивные
К сожалению,
10 км: третий раз

Нормально пробежали, хоть и холодновато было. Ничего не стёр и вообще без особых приключений: только один раз остановился шнурки завязать и один — собаку отогнать, всё вместе не более
Немного болела связка на ноге, кажется не размялась — холодновато было на улице. Скорость не могу прикинуть, навигатор показывает странное (например, что лучшее наше время — 44 секунды на километр), но точно никак не ниже 6 минут на километр. Вторая половина бежалась
Болк ПЦ
Ну привет, в бороде появились седые волоски, в последний раз у меня такое было после сессии третьего курса КГУ, прозываемая «отсевочной», после которой я и получил свой ник. Последний крупный стресс я пережил в самом конце прошлого года, причём все те проблемы так и не решены.
Asus DSL-N13 и торренты
Решил настроить свой
Для начала, вам нужен внешний жёсткий диск, подключаемый через USB, у нас есть eGo Helium, вот я его и использовал. Можно использовать флешку, но, на мой взгляд, она очень уж быстро забьётся.
Следующий шаг — ставим альтернативную прошивку (прошивать нужно из браузера Internet Explorer, в других может не получиться), перезагружаем роутер, подключаемся telnet’ом к роутеру (для этого лучше всего использовать putty), логин — admin, пароль — ваш пароль для входа
Втыкаем винт в роутер и убеждаемся, что его стало видно в системе:
> sh -c 'ls /dev/scsi/*/bus0/target0/lun0/disc'
/dev/scsi/host0/bus0/target0/lun0/discЕсли не видно, то, вероятнее всего, нехватает питания. Покупаем внешний
Переразбиваем жёсткий диск, нам нужен раздел для свопа и для данных, раздел для данных можно сделать EXT3 (роутер его поймёт), я делал FAT32, чтобы видеть винт
Запускаем «sh -c ’fdisk /dev/scsi/*/bus0/target0/lun0/disc’» и переразбиваем (пишу что надо нажимать):
d, Enter — удаляем раздел n, Enter — создаём новый раздел (далее жмём p, Enter, 1, Enter, Enter, +256M, Enter) n, Enter — ещё раздел (p, Enter, 2, Enter, Enter, Enter) t, Enter — первый раздел будет Linux swap (1, Enter, 82, Enter) t, Enter — второй пусть будет FAT32 (2, Enter, c, Enter) w, Enter — пишем что получилось на диск
далее выполняем команду «sh — c ’mkswap /dev/discs/disc0/part1’», отключаем винт от роутера, подключаем к винде, идём в интернет и скачиваем программу fat32format. Она умеет форматировать винты большого размера в FAT32 (Windows это делать отказывается).
На винт, в корень диска нужно записать распакованный hdd.tar.gz (под виндой для распаковки можно использовать WinRAR или
Несём диск к роутеру, подключаем, роутер перезапускаем. Подсоединяемся браузером (обязательно FireFox!) на адрес http://192.168.1.1:18000 (логин — admin, пароль — admin), добавляем торрент за закачку. У меня в интерфейсе торренты
Возможно, будет время, разберусь с CTCS (это протокол по которому консольный клиент ctorrent, используемый в этой прошивке отдаёт статистику) и напишу собственную
Добавлено 28 января 2010 22:13: я понял, почему у ctorrent статус всегда «Stopped», чтобы всё работало нормельно, надо в файле /etc/dctcs.conf поправить строку
Вообще, мой файл конфигурации выглядит вот так:
torrent-directory=/var/harddisk/torrents/
download-directory=/var/harddisk/downloads/
user=admin
password=смени-меня-напиши-тут-пароль
exit-hours=168
exit-ratio=5.6
cache-size=5
restart-torrents=1
download-limit=0
upload-limit=0
check-interval=1
port=18000
ctorrent-args=-a
detail-url=ftp://192.168.1.1:1111/downloads/
write-stats=1
ctorrent=/bin/ctorrent
client-host=127.0.0.1:15000
htmlroot-directory=/var/harddisk/www/darkside.ctcs.gui/
wget-args=-cКстати, очень рекомендую сменить ещё и значение password, адрес вашего интерфейса для торрентов видно снаружи и будет очень неприятно, если
Альтернативный CTCS

Вчера слегка приболел и так как сегодня в дорогу (в Киев, на PyCamp), решил остаться дома, чтобы не заболеть серьёзнее. Пока болел, поковырял протокол обмена между
Предназначен YODCTCS для пуска «Enhanced CTorrent» и отображения его данных. «Enhanced CTorrent» — это консольный
В итоге накидал небольшую
Хабры осуждения псот

Вот такое висит сейчас на главной странице «Хабры». Тьфу, маркетолочья мерзость.
PyCamp Киев
Сижу на PyCamp Kyiv, зарегистрировался, всё хорошо. Единственное приключение (кроме того, что прогноз погоды промахнулся на 10 градусов), что в поезде чуть было не почистил зубы спортивным разогревающим кремом.
P.S. Вот и пригодилась
bigsync vs. rsync
Bigsync is a tool to incrementally backup a big file to a slow destination (think network media or a cheap NAS). The most common cases for bigsync are disk images or virtual OSes or encrypted volumes.
Bigsync will read the source file in chunks calculating checksums for each one. It will compare them with previously stored values for the destination file and overwrite changed chunks if checksums differ.
Насколько я понял идею, bsync не проходится по удалённому файлу, что ускоряет процесс, если на другом конце медленный накопитель.
Motorola Milestone
Покрутил в руках Motorola Milestone, что я могу сказать.
Производит приятное впечатление и для тех, кто любит в телефоне внешнюю клавиатуру, замечательное устройство (но клавиатуру надо русифицировать). По сравнению с Nexus One более тяжёлый, угловатый, менее яркий экран, джойстик мне показался неудобным — я никак не мог попасть аккуратно в центр, не сдвинув курсор. Но, тем не менее, аппарат очень хорош.
«Гопник» и «Гопник-2»
На «PyCamp Kyiv», на тех немногочисленных докладах, которые мне были не интересны, играл в текстовые игры «Гопник»
Действие первого «Гопника» (автор — V.P, июнь
Вам придётся (в текстовом режиме) шататься по окрестностям, воровать, покупать и продавать, ходит в качалку и клуб и так далее, а в конце — разобраться с ректором.
Доступны несколько «локаций» (некоторые открываются не сразу, а после
В течение игры нужно не забывать прокачивать характеристики: силу (увеличивает урон, даёт больше здоровья), ловкость (увеличивает шансы попасть по противнику), живучесть (так же увеличивает здоровье) и удачу (чем больше удача, тем успешнее воруешь и реже влипаешь в различные неприятности).
Шмотки дают различные бонусы, например, броня уменьшает силу вражеского удара, а тюремная наколка помогает реже влипать.

Сюжет второй части «Гопника»,
На улице надо выбирать, кем вы будете: «потсан» (есть девушка), «отморозок» (пускают качалку на Петроградской), «гопник» (разводит лохов на деньги) и «нефор» (бесплатно проходит в клуб на Сенной).
Игра несколько отличается от первой части, но самые большие отличия — есть метро, на котором можно ездить в другие районы города, а так же возможность сохраняться и загружаться. Кстати, сохраняться можно только 60 раз, небольшой намёк — счётчик расположен
Впрочем, вот вам небольшая строка, которая работает в Windows NT/2000/XP/Vista, которая установит счётчик в значение 255:
CMD /C "(ECHO e144 ff && ECHO w && ECHO q) | DEBUG GOP2_1.SAV > nul"Для Windows 7, из которой, оказывается, удалили утилиту DEBUG, я команды написал на PowerShell (в каталоге, где расположен файл сохранения нужно запустить powershell и выполнить следующие команды):
$var=Get-Content -Encoding Byte gop2_1.sav
[byte[]]($var[0..67] + 255 + $var[69..134]) | Set-Content gop2_1.sav -Encoding ByteКак всегда, в случае с PowerShell, расскажу что здесь происходит в этой небольшой програмке.
Файл читается в переменную $var, читается побайтово как массив чисел. Далее я формирую массив из элеметов с нуля до 67, значения 255 и элементов с 69
Получившийся массив разношерстных элементов (добавленное мною число «255» имеет тип Int32, остальные — byte) преобразуется к типу «массив байт» и записывается в тот же файл.
Так как мне хотелось продемонстрировать как происходит добавление элемента к массиву, преобразование типа массива и передача его по конвееру, я не стал заменять значение одного элемента, что было бы проще и нагляднее.
