Про дизайнеров!

Увидел смешное

Никогда не спорь с дизайнером — только насилие.

2015.06.01 23:21

Про фильм “Эффект Лазаря”

Посмотрел весьма посредственный фильм “Эффект Лазаря“. Но в этом фильме настолько забавное объяснение религии что я чуть не уверовал к концу просмотра.

The Lazarus Effect

2015.05.29 22:45

СРОЧНО В НОМЕР!

Я тут недавно восторгался неким А. А. Зализняком, а тут, оказывается, сама википедия(викисловарь) использует его словарь! Вот это да! Шок! Удивление!

2015.05.28 08:39

Филолог Андрей Анатольевич Зализняк

Мой новый кумир — Андрей Анатольевич Зализняк. Удивительная профессия.

И, конечно, БЕЛАРУСЬ СТРОНГ!

2015.05.25 21:41

Ассоциации северокорейских граждан в Японии

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

В 1952 году, когда Япония подписала мирный договор с союзниками, согласно которому она признавала независимость Кореи. Следствием этого договора стало то, что подавляющее большинство корейцев не получало японского подданства и должно было выбрать между гражданством Северной и Южной Кореи. Южная Корея, находившаяся в то время под властью диктатора Ли Сынмана, настроенного радикально антияпонски, не поддерживала никаких отношений с бывшей метрополией. Таким образом, японские корейцы отказались брошенными сеульским правительством на произвол судьбы. Северная же Корея, напротив, проводила активную кампанию среди «соотечественников в Японии», призывая их брать гражданство КНДР. С учетом того, что тогдашняя Северная Корея была более богатым и не сильно менее свободным государством, чем Юг, кампания имела большой успех. Ее кульминацией стало создание в 1955 году Ассоциации северокорейских граждан в Японии (АСГЯ) – той самой организации, о которой речь шла в первом абзаце.

2015.05.20 16:26

Про игру agar.io

Злые люди прислали ссылку на игру: agar.io. И я не могу оторваться от неё.

Если вы играли в игру Spore и видели первый уровень — вы сразу всё поймёте. Если вы не играли, то вы — нормальный человек и тоже поймёте всё сразу.

20150511_030522

Вы начинается играть чем-то круглым, предположительно клеткой (кругла клетка! оксюморон! (примитивный лингвистический юмор (очевидное объяснение очевидного (лингвистический фрактал (примитивный математический юмор))))).

Как клетка вы можете двигаться и поглощать более другие клетки. Начинаете жить размера 10 и питаться подножным кормом который добавляет по +1 к вашему размеру. Как только вы отъедаетесь на размер ~20 у вас появляются суперспособности.

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

На карте находитесь вы, другие игроки, некоторое колличество подножного корма и зелёные мины (вирусы?).

Вот, собственно и всё, но за этими простыми правилам скрывается потрящающая игровая механика.

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

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

Шутка в том что вы не можете поглотить клетку сходного с вами размера, но можете тех кто меньше. Кто больше может вполне успешно поглотить вас. Но клетки меньше вас быстрее вас — вы никогда её не догоните.

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

Из этого исходит два нюанса этого способа. Во-первых, очень хорошо когда вы стреляете в больше колличество клеток размера ~45% от вашего. Во-вторых, рядом очень нежелательного иметь клетки размер которых >60% вашего размера. Но при этом если вы уверены что после разделения вы нормально поглотите других клеток, то ваша вторая половина вполне может быть больше вас до разделение + остается вторая ваша половина.

То есть выгодно, но опасно. При этом разделившись вы не можете сразу соединиться обратно — вам нужно какое-то время поплавать, а размера вы уже меньще и поэтом вы хорошая жертва.

Во-вторых на карте есть вирусы съедая который вас разрывает на части. Одно крупная размера ~50% и много мелких. А ещё в вирусы можно стрелять своей плотью и после поедания ~60 поинтов оно стреляет в противоположную сторону другим вирусом.

У вирусов сразу два назначения: во-первых они опасные и все стараются их избегать. Поэтому в них хорошо как прятаться/убегать в панике, так и вести жертву к скоплению вирусов чтобы они не могли от вас никуда убежать. БВА-ХА-ХА.

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

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

Это вот про механику, при этом есть ещё одна потешная составляющая — социальная. В игре нет никакого общения кроме как выбрать ник. При этом от ника может зависить ваш скин. Например, игроки с ником Russia полосатые, которые Poland так там кантри-бол, Польша стронг! Stalin с усами, USSR с серпом и молотом.

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

Забавная игра в общем-то.

2015.05.12 00:25

Как жаль что я не программист

Ведь если бы я был программистом я бы понимал что тут происходит:

And now as one allocation, sliced into lines:

// Allocate the top-level slice, the same as before.
picture := make([][]uint8, YSize) // One row per unit of y.
// Allocate one large slice to hold all the pixels.
pixels := make([]uint8, XSize*YSize) // Has type []uint8 even though picture is [][]uint8.
// Loop over the rows, slicing each row from the front of the remaining pixels slice.
for i := range picture {
	picture[i], pixels = pixels[:XSize], pixels[XSize:]
}

2015.05.08 15:02

Личный пост Евгения Дорохина

Эти ваши интернеты очень-очень странное место, вот Bolk написал Личный пост Евгения Дорохина в своём блоге, а оказывается, Евгеша не давал разрешение делать Болку личный пост у себя в блоге! Это восхитительно!

С нетерпением жду у себя в блоге гневного комментария, Евгеша!

2015.05.06 21:20

Что происходит с людьми в этих наших интернетах?

За последнюю неделю мне дважды хотелось написать разработчикам / саппорту двух разных сайтов. Один большой, а второй нет. И в обоих случаях не нашёл ничего подобного на developer@example.com или support@example.com.

Или багтрекеры с обязательной регистрацией, или какие-то социальные сети, но не e-mail, о боже, только не e-mail.

Мир катится в неправильном направлении, неудобненько.

2015.04.30 10:40

Да здравствуют объекты!

Такое всякое интересное можно найти в этих интернетах!
20150428_214832

2015.04.28 22:50

Future Crew – Second Reality

Если когда-нибудь у меня заведётся своё кафе или какое-нибудь подобное злачное место, то целыми днями на 117 мониторах будут крутится только демки.

2015.04.27 18:39

Про код-стандарты и всякие именования

Код должен быть оформлен как минимум одинаково. Лучше — красиво, но как минимум одинаково. Но хочется красиво. Но проблема в том что “красиво” у всех своё и это немного проблема. Понапишу про то что я считаю красивым.

1. Табы или пробелы?

Википедия нам сообщает следущее:

Горизонтальная табуляция (HT, TAB) — управляющий символ таблицы ASCII с кодом 0916, используется для выравнивания текста в строках. Встретив этот символ, терминал перемещает каретку (или курсор) вправо на ближайшую позицию табуляции. Традиционно эти позиции располагаются каждые 8 знакомест, в колонках 1, 9, 17, 25… Вводится при помощи клавиши Tab ↹, во многих языках программирования обозначается как \t.

По непонятной мне причине я пока не встречал по работе людей которым нравятся табы. Всем нравятся пробелы потому что у всех выглядит всё одинаково. Я не совсем понимаю почему преобладают идиоты которые не могут осознать что “одинаково” != “удобно”.

Желаю всем любителям пробелов умереть в агонии.

2. CamelCase или Snake_Case?

По непонятной мне причине в мире восторжествовал CamelCase. Печалька. Я люблю Snake_Case. Возможно, дело в том, что я люблю всё что не мейнстрим?

3. Именование переменных

Несмотря на то что я пишу на пхп и прочем мусоре с динамической типизацией, я полюбил венгерскую нотацию (вы не поверите, но она тоже не мейнстрим):

a_var -- array
b_var -- bool
i_var -- int
f_var -- float
s_var -- string
o_var -- object
f_var -- function (lambda)

Помимо базовых типов, можно по ходу дополнять всяким своим, к примеру я пишу m_var и наивно полагаю что там лежит модель.

Главное удобство не в том, что я знаю какой тип (с динамической типизацией там может быть что угодно), а в том что я избавился от главной проблемы — именования! Сравните вот:

ids = array();
id = 12;

pet_name = 'MALAMUTE';
pet_model = get_model(pet_name);
is_pet_model_loaded = (bool)pet_model;

И что-нибудь типа такого:

a_id = array();
i_id = 12;

s_pet = 'MALAMUTE';
m_pet = get_model(s_pet);
b_m_pet_loaded = (bool)pet_model;

Я готов принимать любые аргументы по данному вопросу (например, что это неудобно, глупо и по-идиотски), но у меня есть ровно 1 контраргумент: я никогда, никогда, никогда, никогда, никогда не должен буду больше писать это идиотское ids, потому что если у меня написано a_id, то это значит что это массив. Массив — это всегда много. Мне не нужно писать это идиотское ids. Вам просто не передать как же я сильно ненавижу это ids.

2015.04.27 09:30

SelkBag: человеко-спальник

Увидел страшную штуку в интернете — человеко-спальник! Спальник в форме человека. Не знаю насколько это удобно, тепло или хорошо, но с трудом сдерживаюсь чтобы не купить. Я не знаю зачем, он просто сам по себе прекрасен. Самый идиотский спальник что я видел. Не говорите мне что вы можете удержаться от его покупки.

MU002GRA

2015.04.27 03:44

Выключение монитора в линуксе

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

Радует, что больше не нужно сходить с ума от того что по VGA кабелю передаются управляющие команды, но всё же.

Традиционно в линуксе говорят что чтобы выключить монитор надо сделать вот такое:

# xset dpms force off

Но, знаете, у меня после этого монитор все равно включался и это немного, самую малость, бесило. Прошли годы и я всё же решил попробовать все ЧЕТЫРЕ ВОЗМОЖНЫЕ ОПЦИИ. И, вы не поверите, одна из них работает как надо! Вот уж неожидаемо!

# xset dpms force standby

Удачи! Выключайте монитор! Проваливайте из интернета!

2015.04.26 21:35