В поисках пятого угла

  • ↓
  • ↑
  • ⇑
 
20:43 

Хер кого выманишь

Который раз я вечером пятницы пытаюсь хоть кого-нибудь вытащить в бар в центр.
Который раз ответом мне лишь тишина.
Я конечно понимаю что я нахер никому не сдался и меня мало кто читает))
Сижу на работе, вожусь с ноутбуком - потом поеду в бар, даже если один.
Скорее всего в "Цветочки" на Рубинштейна.

15:12 

Про программирование

Будучи в командировке на Белом море, я прочитал книгу под названием "Совершенный код" Стива Макконнелла.
Я считаю, что это книга, которую начинающий программист обязан прочитать в самом начале своей карьеры.
Это реально Главная Настольная Книга программиста, в которую надо периодически заглядывать, чтобы освежить память.

Так вот - я нашёл ВТОРУЮ главную книгу - и к огромной удаче, она выложена автором бесплатно в виде online-версии. Я тут попытался выразить, что я думаю по поводу этой книги - но так и не смог подобрать слова)) Поэтому приведу на примере.

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

В книге есть глава, которая рассматривает в качестве примера фэнтези-игру, где у пользователя есть возможность добавлять свои заклинания без доступа к исходным кодами игры и перекомпиляции. Как можно реализовать такой функционал? Вариант 1 - добавить самописный интерпретатор, который будет считывать файл с описанием заклинания и исполнять. Сложно? Я думал, что сложно - нихуя. В статье на пальцах расписывается, как написать интерпретатор - и при прочтении осознание обрушивается на тебя, как будто архангелы затрубили в свои трубы. И это ещё цветочки на окраине поля, маленькие запыленные цветочки в пыли на обочине.

Интерпретатор медленный и жрет память. Более быстрый способ - написать виртуальную машину, которая будет считывать из файлов байт-код и его исполнять. Сложно? НИХУЯ !!! Пока ты удивлялся цветочкам, архангел размахнулся и хорошенько приложил тебя Волшебной Трубой Осознания прям по голове. Виртуальная машина? Делается просто, бах бах, вот так. Интерпретатор держит в памяти древовидную структуру объектов, байт-код линеен и потому быстр (труба осознания прилетает в голову), чтобы хранить данные по мере движения по байткоду используется стек (ещё удар). Реализовать цикл в байткоде? Просто goto на нужный элемент, с сохранением счетчика цикла в стек (труба осознания ревёт над ухом). Тут автор вкрадчиво подбирается к теме исполняемых процедур. Вызов процедуры - это тот же оператор goto с сохранением текущего места в байткоде в стек возврата. На словах про "стек возврата" ты буквально слышишь, как сраный архангел набирает в лёгкие воздух, и лавина осознания накрывает тебя с головой. Работа процессора, вызов функций, точка входа, хранение данных в стеке, хранение параметров в регистрах, стек возврата — всё это складывается в цельную картину. Ты читал про разработку игры? Поздравляю - теперь ты знаешь, как работает реальный процессор.

И это была всего одна глава из книги. Вот она на русском.

08:49 

Про религию

Есть такая нашумевшая книжка про Анастасию и кедры, которая у нас в стране переросла в очередную религию.
И вот тут в одном чятике скинули книжку "Анти-Анастасия". Решил мой ответ с того чятика сохранить в дневнике, для потомков.


Итак, суть книги - православный "активист" взялся разоблачать секту, используя в своей риторике те же некрасивые приёмы, в которых обвиняет основоположника секты.

Есть довольно подробные исследования феномена "веры", суть которых (если своими словами и не вдаваться в детали) такова: логические размышления процесс для мозга трудозатратный, и если что-то позволяет его избежать, то мозг радостно этим пользуется.

Представьте, что вы сидите дома и делаете домашнее задание, перед вами сложнейшее уравнение с логарифмами и прочим говном, и стоит задача получить ответ (ход решения не важен). И тут появляется более старший товарищ, смотрит в тетрадь и говорит: "Пятьдесят! Пошли в футбол гонять." Да, возникают опреленные сомнения, что товарищ всё правильно посчитал (и что вообще считал). Тем более что у товарища есть очевидный интерес вытащить тебя на улицу, и никакой заинтересованности в том, чтобы у тебя в тетради был правильный ответ. Как поступит в данной ситуации "среднестатичтический" человек? Представьте - позади пара часов мучительных попыток решения, впереди - неизвестно сколько ещё, и тут появляется человек с готовым ответом. Просто принять решение "поверить" - и мало того что задача решена, так ещё и ответственность за правильность решения лежит на ком-то другом!

Отсюда появляется феномен "веры" - перед человеком в жизни появляется очень много сложных этических вопросов, равно как и банальный "в чем смысл моей жизни". Человек может не думать об этим вопросах, но это не значит что их нет и они не висят на душой. Религия предлагает готовый ответ. И даже если корыстные цели налицо, а агрументация не выдерживает критики - люди с готовностью обманываются, искушение слишком велико.

"Анастастия" - это такая "сказка для взрослых". Она не выдерживает критики в принципе, подход с позиции критического мышления немедленно сказку разрушает. Но по причинам выше люди "выбирают поверить". Так же, как и с религией.

И в этом плане автор "разгромной" книги ничуть не лучше, потому что разрушает чужую веру не с позиции здравомыслия в целом (типа люди, включите голову и примените логику - это ж бред!) - он это делает, апеллируя к таким же бредовым и алогичным понятиям своей веры, т.е. к понятиям "бесов", "искусителей", "змеев" и прочей нечисти. Ну и да, слово "Бог" всегда пишет с большой буквы )

09:39 

На сейчас

Вроде начал режим выравнивать, и снова обнаруживаю себя в 9 утра не ложившимся ))
Ночь провёл в отладчике, разбираясь в причинах падения программы. Очень собой горжусь.
Вот только последняя линяя обороны упорно держится - а коммитить разом всю работу за ночь, не выловив баг — очень не хочется.

10:51 

№%?&

Вместо тысячи слов



читать дальше

03:50 

Внезапное

Почти 4 часа утра. Ловлю себя на мысли, что снова пялюсь на объявления о продаже пленочных фотоаппаратов.
В частности, Canon EOS 650.

14:44 

Ладога

Со вчерашнего дня собираюсь на Ладогу на неделю минимум (а то и на 8-9 дней).
В планах обойти под парусом весь северо-запад, возможно дойти до Сортавалы.
Парус — одна из причин, почему я не пытался организовывать ещё людей: за нами будет не угнаться.

Едем вдвоём с Котом. Где-то внутри меня возмущается мой внутренний мужик - ему интереснее ходить в поход с девушкой, с которой хоть теоретически что-то может быть)) С другой стороны - Коту я давно обещал, и опыт у неё есть, и человек надёжный. Так что мы закупили еды и алкоголя на двоих на 4500р, и теперь как в адекдоте - со всем этим говном попробуем взлететь.

Для байдарки я купил тележку, она повезет основной груз. Но большой рюкзак всё равно придётся взять.
А ещё я распечатал крутые карты))

02:08 

Мысли вслух

После неудачи с яхтой у меня снова налицо потеря жизненных ориентиров.
Была цель — и нету. На права отучился, экзамен не сдал. Что делать дальше — снова неясно.

00:15 

Пятница-развратница

Вру, никакого разврата, только алкоголизм)
Взял разливного белорусского пшеничного, сижу у пялюсь в комп.
Очень сильное ощущение, что пятницу можно провести куда интереснее.

Завтра вроде как ДР у Вараныча, типа выезд в Заходское. 6 км пешком от станции, потом тусить.
Но я чёт хз вообще, я бы лучше рванул на байде по Ладоге. С другой стороны, ребят не видел очень давно.
Сегодня перевез байдарку с работы домой - она там лежала после несостоявшегося похода. Впервые задействовал для этого тележку, и вот вердикт - ОХУЕННО. Тележка - это фактически ключ к продолжительным соло-походам. Фактически, я могу утащить и 20+ кг байды (со всей хурмой), плюс рюкзак со снарягой на спине, до точки старта - и уйти в поход по периметру Ладоги в гордом одиночестве. Единственный косяк - тележка чужая, и её пришлось отдать :)

Денег за прошлый год так и не поступило. В Ейск я не поехал. 5000р предоплаты коту под хвост.
Всё ещё надеюсь, что деньги дойдут - я тогда продам свою "Щуку" и куплю "Хатангу Travel".
С ней ваще никакие катаклизмы не страшны ))

21:55 

Пишу мало, молчу много

Восток уехал сегодня в 6 вечера.

Можно сказать, что запланированное удалось за одним исключением - посидеть за бутылкой виски чисто вдвоём, потереть за жизнь и за баб. Ну как оно бывает, когда старые друзья давно не виделись. Но и без этого вышло очень неплохо - с виски мы посидели в итоге втроём. Помимо Лёхи в Питер приехали ещё один мой очень старый товарищ и с ним - мой бывший коллега с Тольятти. С этой компанией мы затусили в парке у Лиговского - мне довелось наконец на практике доказать им тезис о том, что нормального пива в Тлт нет :)

А потом я успел стаскать Востока в антикафе на Казанской (это которое как дворец, только антикафе), выпить там кофе и пофоткаться.
А потом - взял отгул на пару дней, и мы рванули в Петяярви по грибы. И там прошли пешком от станции "78 км" (это между Сосново и Петяярви) сквозь лес до Лебяжьего озера, набрав грибов. А потом - до фестивальной поляны, до качелей. Это была такая моя старая и казалось, что несбыточная мечта - показать Востоку местную природу - совершенно сказочный лес с толстенным слоем мха, изумрудный в косых солнечных лучах и переполненный черникой и брусникой так, что ногу некуда поставить. Вообще полный вариант включал в себя поездку на байдарке по Ладоге, но это по времени уже совсем нереал, и кроме того вы видели погоду? Какие уж там байдарки...

На днях перешел на Теле-2 с Мегафона. Там получился такой распиздец, что я отдал мегафону 1000р и получил ровно нихуя, а не интернет, и это стало последней каплей. Я устал от грабежей этого оператора. Попутно выяснилось, что мой старый убитый "Мегафон Логин 2" залочен, и симки других операторов в нём не работают. Сегодня разобрался, разлочил. Мой старый мегафоновский номер тоже переведут, но это случится чуть позже, пока я доступен по новому, который выложен на моей стене вконтакте.

По финансам швах. Крупную сумму денег, которую мне должны были выплатить в мае, до сих пор задерживают.
В Ейск на неделю учиться управлять яхтой не еду. Там сейчас уплачена предоплата 5000р, ещё надо доплатить 10.000р, у меня нет ни этих денег, ни на проезд. Если кто хочет - можете воспользоваться случаем и потусить неделю на яхте всего за 10к. Иначе предоплата просто сгорит.

А ещё пора покупать отрывной календарик "Х дней без женщины")

05:36 

C++ псто

Итак, задача - при выборе цели посчитать и показать, чем закончится битва.
Для этой цели я копирую объекты игрока и монстра, провожу между ними битву, сохраняю результаты, ненужные больше копии удаляю. Возникла мысль - а если не удалять? Должна быть утечка памяти! Копии игроков и монстров будут множиться при каждом выборе новой цели!

Комменчу код удаления, компилю прогу, тыкаюсь мордой в монстров и слежу за потреблением памяти. Ничего не меняется! Нет утечки? Может она настолько ничтожна, что не отображается в мониторе ресурсов?

Оборачиваю код создания копий и их схватки между собой в цикл из 1000 итераций. Запускаю - есть контакт! При выборе монстра потребление памяти увеличивается на считанные килобайты, загрузка процессора всё ещё ноль, даже если я выбираю новую цель несколько раз в секунду, создавая несколько тысяч копий игрока и монстра и просчитывая несколько тысяч битв.

"Лаадно", - сказали сибирские мужики и поменяли количество итераций с 1000 на 100.000 :)
Процессор наконец заметил нагрузку - сотни тысяч копий игроков, монстров, и просчёта битвы поднимают загрузку одного ядра до 15% при моём должном рвении.... И утечка памяти оказалась весьма заметной - за 5 секунд моя текстовая консольная программка выжрала 300 Мб :)

21:38 

Следующие выходные - на Ладогу на байдарке!

На данный момент есть два гарантированных человека и два места в моей байде.
А кто ещё едет и едет ли вообще, откуда они возьмут байдарку, как взять байдарку в аренду, где взять столько денег сколько они требуют залога (без прописки - полная стоимость байды) - меня чёт это всё утомило.

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

Если у нас появится гарантированный третий человек - тогда мне придется брать в аренду "трешку", и моя байда освобождается.
Ещё есть вероятность появления дополнительных байдаркомест - тогда нам СРОЧНО НУЖНЫ БУДУТ ЛЮДИ ))

В общем, если вы читаете этот пост и хотели бы поехать (но ничего не понимаете в этом всём и не хотите организовывать байду) - отпишите в комментариях.

05:04 

C++ псто

Плюнул на возможность компиляции моей игры на андроид-устройствах и вплотную занялся выводом графики через ncurses.
Оказалось, анимацию сделать - совершенно плевое дело, а некоторые фишки вообще сами собой получились (например, подсветка противника, который в данный момент выбран в качестве цели) . Несмотря на то, что игра ещё на очень ранней стадии - я регулярно ловлю себя на том, что раз за разом пытаюсь её пройти, т.е. зверская реиграбельность её прародителя начинает проявлять себя даже на таком раннем этапе. Пройти её, к слову сказать, пока решительно невозможно - баланса нет в принципе)) Надо будет плотно засесть за формулы генерации характеристик монстров.

Опробовал технику Pomodoro - это такая система, чтобы за работой не отвлекаться и не прокрастинировать. Реально работает!

18:09 

Уж полночь близится, а Германа всё нет

Байдарка моя всё ещё где-то на северах, а я тем временем придумал такую штуку.
Сперва смотрим прогноз погоды на виндгуру для юго-запада Ладоги.
Видим там южный — юго-западный ветер на пятницу и без осадков.
Приезжаем на станцию "Ладожское озеро", ставим парус и на попутных ветрах мчимся на север!

До моего любимого острова 130 км, это прям вызов!

14:00 

C++ псто

Три дня борьбы - и мне удалось вытащить весь вывод графики в моей недоигре в отдельный класс.
А всё почему? Потому что изначальные ошибки конструирования (нарушение абстракций) классов потом обходятся сильно дороже.
В основном всё уперлось хранение игрового фрейма, который из себя представляет вектор строк. Почему-то не хочет этот сраный вектор храниться в качестве закрытого члена класса, а я не умею заставить. В итоге психанул, закрытый член класса сделал ссылкой на вектор, а сам вектор создал оператором New в конструкторе. А я такой охуенный программист, что деструкторов у меня нет в принципе, посему память просто утекает. Ну и хуй с ней, в современных компьютерах её много!

Сам факт того, что я дошёл до понятия "игровой фрейм", говорит о многом. В частности, о попытке реализовать уже какой-то работающий в реалтайме движок, а не просто реагирующий на ввод через консоль.

А теперь внимание - следующая задача. Вот у нас есть клетка игрового поля, на которой одновременно лежит какой-то предмет и находится персонаж. Необходимо, чтобы игра показывала значок персонажа попеременно со значком предмета. И в это же время ожилала от игрока консольный ввод. На данный момент я нашёл такой вариант решения - запускается отдельный поток, который отсчитывает 700 мс скажем, после чего прибивает объект std::cin, ожидающий ввод. Выполнение программы продолжается, рисуется следующий фрейм, снова запрашивается ввод и запускается поток.

17:58 

Байдаркопсто

03:01 

Поездка на Белое море - фотоотчет

Так как до нормального текстового отчета руки не дошли и вряд-ли дойдут, то вот вам фоточки ))

12:13 

Пост-недопост

На работе аврал - изготавливаем приборы для научной экспедиции на Белое море. Приборы пока не готовы, но выезд назначен на понедельник. Это должно примерно дать представление о степени моей занятости. Так что я тут на пару недель сваливаю за Полярный круг. Поставлю лагерь на острове, установлю датчики, через 10 дней все сворачиваем и едем домой.

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

Нас было трое - я, Юля-кот и замечательная Лена. И надувная байдарка "Щука-3", мою "двушку" по такому делу пришлось оставить дома.
Поездка принесла кучу опыта и впечатлений.

1. Если вы опаздываете не Финбан на электричку - вы можете обогнать её на метро и сесть в Девяткино. Даже если электричка скорая.
Проблема только в том, что надо успеть купить в Девяткино билет чтобы пройти турникеты, а это может быть невозможно. Я опоздал)

2. На Ладоге есть такой остров, который стоит в стороне от основной переговой гряды. Я все мечтал до него доплыть, но расстрояние по открытой воде казалось слишком большим для байдарки, а затея - опасной. Ну чтож, в этот раз у нас сел навигатор, проебался доп. аккум, плюс было туманно, и мы заблудились и приплыли на этот остров случайно. Мы даже не знали, что это остров, пока я не пошёл по берегу и снова не увидел заходящее солнце уже с другой стороны. Этого острова даже не было на нашей бумажной карте, я тупо не включал его в район плавания, когда её печатал год назад.

3. Я научился нормально пользоваться компасом. Взяв пару азимутов на известные мне ориентиры и построив на карте пару линий, мы выяснили, что точка их пересечения находится сильно за краем бумаги. Теперь без нормальной карты, компаса, транспортира и карандаша - никуда!)

4. На обратном пути мы провели первый боевой тест моего паруса. Результат - ошеломительный успех! Да, выяснилось много проблем и необходимость в доработках, но кто бы сомневался? Главное, что прототип выдержал, и весомую часть пути назад мы пролетели под парусом, не тратя силы на греблю. А сейчас я спешно делаю шверц и увеличенное перо руля перед Белым морем.

00:31 

Поход на выходные

Группа вконтакте.
Повод - мой ДР.
Поход на байдарках по Ладожским шхерам, в планах - ночевка на двух разных островах и походная баня.

00:25 

Вечер виски и стихов

Сегодня наткнулся и подумал вот что. Есть простой карандаш - графтитовый стержень и деревянная оболочка. Я могу погрызть его, сунуть в ухо или написать "хуй". А в руках иного человека - получится невероятная картина, настоящий шедевр. Так же и слова - нам всем они даны одинаково, но кого-то хватает максимум на "Вася, ёба, плесни-ка мне ещё!", я лично могу иной раз выдать какой-то связный интересный текст, а есть люди - настоящие маги, у которых простые слова складываются и вспыхивают так, что смотришь и не можешь оторваться.

Шелли танцует, и тень от ее волос накрывает клуб, как волна накрывает порт
Кэвин курит и молча стоит в углу, неподвижный и невидимый до сих пор.
Через две минуты глаза их встретятся, мир померкнет, сирена взвоет и все трамваи пойдут в депо,
Только он, она, эта музыка и больше нет никого уже;
Да, как видите, это очень простой сюжет.

Шелли танцует, и Кэвин танцует с ней, и ветер танцует там, им что-то двоим шепча
Музыка осязаема, как первый снег, как электричество, как теплота плеча
Контур огней сплетается в витражи; Шелли молчит, колеблется как свеча
Над потолком сверкает, гремит гроза.
Кэвин танцует, темны у него глаза.

Шелли танцует, и в танце она выражает то, что не может выразить в тишине.
"Тишина в два удара громит меня в решето, тишина поедает меня извне.
А тут вдруг она отступает, трусливо прячется в пустоту, и это все по твоей вине."
Пахнет лесным костром сигаретный дым.
Поздно уже назад отыскать следы.

Шелли танцует, и оба танцуют так, как будто жара и вестерн, текила со свистом пуль
Танцуют, не замечая, что вот уже час пустует диджейский пульт
Танцуют, как будто от всех дверей найдутся вот-вот ключи.
(Пожалуйста, музыка, только звучи, звучи.)
Прошу тебя, эй,
звучи.


Сегодня у меня вечер стихов и виски. И кресла на балконе. И трубки с табаком, который невероятным чудом не высох, лёжа на балконе. И вечер новой музыки. Давно я не сидел вот так, наедине с собой. Не хватает костра и шумящих над головой сосен. Но скоро они будут. Бесконечно хорошо и правильно.

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

P.S. автор стиха - Джек-с-фонарем

главная