Search
Write a publication
Pull to refresh
52
0.4
Дмитрий @bogolt

User

Send message

Что я не знал про образование

Reading time14 min
Views107K


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

Она не учит детей методам решения задачи, она учит их сначала найти саму задачу, потом прикинуть спектр вариантов подхода, а уже потом — как конкретно получить ответ.

Она относится к детям как ко взрослым во многих аспектах.

Она позволяет себе ошибаться, позволяет детям исправлять свои ошибки и аргументировано спорить с ней. Более того, она иногда специально допускает ошибки, чтобы дети не расслаблялись.

Она разрешает готовить шпаргалки и списывать. Разрешает детям «выпихивать» на ответ того, кто выучил тему. Использует понятную детям игрофикацию для мотивации.

В общем, всё настолько пропитано здравым смыслом, что просто не может и не должно происходить в школе. В чёртовой школе!
Читать дальше →

Сравниваем четыре опенсорсные альтернативы Disqus

Reading time4 min
Views8.7K


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

Прямоугольные тайловые миры

Level of difficultyMedium
Reading time17 min
Views28K

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

Огромное множество игр на самом деле содержат тайлы - так просто проще представлять игровой мир. Такая упорядоченность помогает геймдизайнерам строить игровые механики, упрощает жизнь художников и делает код программистов понятнее. Самих видов тайлов тоже огромное количество - сегодня поговорим о прямоугольных и изометрических.

Читать далее

HTML-теги и атрибуты, о которых вы, возможно, не знали

Reading time14 min
Views54K

image


Эта статья — шпаргалка по HTML-тегам. Поэтому не будем разглагольствовать, сразу к делу.


abbr


Тег abbr определяет аббревиатуру или акроним. Аббревиатура или акроним расшифровываются с помощью атрибута title.


<abbr title="HyperText Markup Language">HTML</abbr> был разработан британским ученым Тимом Бернерсом-Ли приблизительно в 1986—1991 годах.

abbr часто используется совместно с тегом dfn, идентифицирующим понятие или термин:


<p><dfn><abbr title="Cascading Style Sheets">CSS</abbr></dfn> - формальный язык описания внешнего вида документа (веб-страницы).</p>

address


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

Читать дальше →

Слабо поднять такой крошечный контейнер? Создаем контейнеризованный HTTP-сервер на 6kB

Reading time4 min
Views14K
TL;DR  я решил создать самый маленький образ контейнера, при помощи которого все-таки можно сделать что-нибудь полезное. Опираясь на преимущества многоступенчатых сборок, базового образа scratch и крошечного http-сервера на основе этой сборки, я смог ужать результат до 6.32kB!





Если предпочитаете видео, вот ролик по статье, выложенный на YouTube!

Раздутые контейнеры


Контейнеры часто превозносятся как панацея, позволяющая справиться с любыми вызовами, связанными с эксплуатацией ПО. Притом, как мне нравятся контейнеры, на практике мне часто попадаются контейнерные образы, отягощенные разнообразными проблемами. Распространенная беда – размер контейнера; у некоторых образов он достигает многих гигабайт!  

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

Задача


Правила довольно просты:

Манифест: почему я не делаю свой пет-проджект постоянной работой

Reading time10 min
Views15K


Когда доходы от продаж с моего сайд-проекта пробили отметку $100k, я, к собственному удивлению, обнаружил:

Не хочу бросать основную работу.

Никакого позыва написать, что наконец-то я бросаю «крысиные бега». Не написал ни единого твита о том, как я стал творить, и «изменил собственную жизнь. (И вам это под силу! Купите мой курс!)». Не написал письма в духе Джерри Магуайера.

Подумал, может со мной что не так. Зависая в соцсетях, я постоянно натыкался на фетишизацию трудоголизма, из-за чего меня подмывало бросить работу. Такая свобода подобна нирване, «все или ничего» и, как только вкусишь ее, пути назад не будет. Чем не киносценарий?  

Я хочу написать новый сценарий – о тех, кто Творит По Совместительству. Давайте определим, что это такое, почему этим стоит заниматься, как дать этому ход, а потом довести до ума.

Не просто деньги


Годовой заработок в $100k всегда казался мне планкой, с которой начинается успешный «независимый доход». В лучшие годы мои родители зарабатывали меньше, а в большинстве городов $100k хватает на самообеспечение и даже на то, чтобы прокормить семью. Еще лучше, если доход целиком пассивный – мечтал, каково путешествовать по свету, а деньги пускай зарабатываются, пока я сплю.  
Читать дальше →

Windows 95 — как она выглядит сегодня?

Reading time7 min
Views62K

Windows 95 была ОС Microsoft «следующего поколения»: переделанный UI, поддержка длинных имён файлов, 32-битные приложения и множество других изменений. Некоторые из компонентов Windows 95 используются и сегодня. Как она выглядит? Давайте протестируем и разберёмся.

Я не собирался делать обзор Windows 95, потому что на самом деле она появилась не так давно. Но посмотрев видео с названием в духе «Подростки реагируют на Windows 95», я понял, что есть не только подростки, но и целое поколение 20–30-летних взрослых, которые ни разу не пользовались Windows 95 или были слишком малы, чтобы помнить её. К тому же, Windows 95 стала очень важной вехой в истории компьютеров и значительным усовершенствованием по сравнению с Windows 3.1, отдельные части которого мы используем и сегодня.
Читать дальше →

«Я не робот»: история Яндекса о том, как победить ботов, а не людей

Reading time6 min
Views42K

Никто не любит капчу. Угадай слово по плохой картинке, собери пазл, отличи светофор от гидранта, сложи два числа и так далее. Формы бывают разные, но суть всегда одна: мы тратим своё время и нервы.

Чуть больше года назад моя команда взялась за модернизацию старой капчи Яндекса. Обычно в таких задачах стремятся повысить качество и полноту отсева ботов, оставив человеку шанс прорваться через капчу. Но мы зашли с другой стороны: решили сделать капчу более дружелюбной к людям, не ухудшив при этом защиту от ботов. Казалось бы, наивный подход. Но у нас получилось.

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

Я не робот

Невменяемый, необъятный масштаб браузеров

Reading time3 min
Views73K

Увидев вот эту публикацию про браузерные войны, я хотел бы представить альтернативное наблюдение за тем, как мы докатились до такой жизни. Но Дрю ДеВолт уже всё сказал за меня.

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

С помощью wget я скачал все 1217 спецификаций W3C, опубликованных на текущий момент. Существенная часть из них должна быть реализована в браузере, чтобы современный веб работал. Я подсчитал объём этих спецификаций. Как думаете, насколько сложен современный веб?

Читать далее

Миллион домашних фотографий: наводим порядок

Reading time5 min
Views36K

После покупки цифрового фотоаппарата и рождения детей стало появляться большое количество фотографий, а учитывая, что жена с фотоаппаратом почти не расставалась и старалась запечатлеть все «важные» детские моменты, фотографий стало появляться ОЧЕНЬ много.

Пришло время навести порядок.

Трюк с XOR для собеседований и не только

Reading time8 min
Views136K


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

Хоть и непривычно ожидать решения с XOR на собеседованиях, довольно забавно разбираться, как они работают. Оказывается, все они основаны на одном фундаментальном трюке, который я постепенно раскрою в этом посте. Далее мы рассмотрим множество способов применения этого трюка с XOR, например, при решении популярной задачи с собеседований:

Дан массив из n — 1 целых чисел, находящихся в интервале от 1 до n. Все числа встречаются только один раз, за исключением одного числа, которого нет. Найдите отсутствующее число.

Разумеется, существует множество прямолинейных способов решения этой задачи, однако есть и довольно неожиданный, в котором применяется XOR.
Читать дальше →

Как древние шумеры повлияли на значение скорости света, и почему Великая Французская Революция не смогла им помешать

Reading time8 min
Views42K

Из учебников физики нам известно, что скорость света в вакууме равна 299792458 метрам в секунду. Вы никогда не задумывались, почему такая фундаментальная физическая константа как скорость света имеет такое странное значение? Почему она равна приблизительно тремстам миллионам метров в секунду? Почему ни больше и ни меньше? В чем сакральный смысл этого числа?

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

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

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

Читать далее

Смертельная палитра: токсикология красителей

Reading time11 min
Views28K

Сегодня мы знаем об окружающем нас мире достаточно много, но далеко не всё. Об этом вам с интересом расскажет любой генетик, астрофизик, микробиолог или химик. Возможно сейчас открытие, которое бы изменило наши представления о мире, перевернув всё, что мы знаем с ног на голову, сделать нелегко. Возможно, это практически невозможно. Но что если бы вам однажды сказали, что то, что вы знаете, - ложь. Что один из продуктов современной химии, который мы используем везде и во всём многие годы, убивает нас, а исследования, ученые статьи и всё, что мы наоткрывали, напридумывали, понаписали в книгах - всё это полный бред, а каждый второй предмет в вашей квартире отравлен. И так во всём мире - от главы государства до последнего бедняка с его скудным скарбом. Именно это однажды и произошло, и сегодня мы ненадолго погрузимся в историю токсикологии и удивительное открытие доктора Генри Летеби, в которое никто из его современников не поверил.

Изумрудно-зелёный.

Зелёный насыщенный цвет на самом деле не был таким уж прямо новым и необычным. С глубокой античности мы использовали истертый малахит или пигмент «зеленая земля» из разных соединений кремния. Цвета были бледноваты, и на полотнах до конца 18 столетия увидеть яркую сочную зелень у вас не выйдет. Всё изменилось, когда смогли добыть настоящий изумрудно-зеленый цвет. Он был получен в 1775 году из красителя «Зелень Шееле». Краситель назван в честь шведского ученого - Карла Вильгельма Шееля, того самого, который открыл молочную кислоту и хлор, и о которых я писал в статье про молоко. К несчастью, в те годы, описывая открытые вещества, нужно было указывать в том числе и вкус. К 1786 году исследования тяжёлых металлов и различных их соединений стали комбинироваться у Карла в симптомы. У него появились поражения кожи - потемнения эпителия дополнились утолщениями и язвами, появилась страшная комбинация диареи и сонливости. Вскоре талантливый химик умер. Предположительно, причиной смерти стало поражение почек.

Слева: фреска в церкви св.Франциско в Монтефалько, Италия, авторства Пьетро Ваннучи. Справа: автопортрет Пьетро. Начало 16 в., зеленые пигменты: малахит и кремний.

Читать далее

Наша Зверская сущность

Reading time12 min
Views15K

На Хабре очень много статей про прокрастинацию, её уже закрывали, хоронили… но все они очень технические — конечно, это Хабр, сэр!


На мой взгляд, GTD и всякие планы спасения не работают, а чаще усиливают прокрастинацию. Они не решают фундаментальную причину, а пытаются сгладить последствия. Я же хочу предложить вам совсем другой взгляд, основные причины и другие методы решения.


zver


TL;DR> Наш мозг поделен между отдельными и самостоятельными Человеком и Зверем. Разлад между ними — причина прокрастинации, выгорания и случаев, когда мы выбираем не то, что хотим на самом деле. Зверь отвечает за очень многие процессы, а мы не привыкли его слушать.


Я поделюсь своими методами работы со Зверем. Если интересно — добро пожаловать под кат.

Читать дальше →

Как заставить руководство проникнуться техническим долгом

Reading time5 min
Views4.8K

«Руководство не даёт мне заняться рефакторингом legacy-кода!» Знакомая ситуация? Раздражает жутко. Большинство разработчиков рано или поздно сталкивается лбами с менеджером, который совершенно не заинтересован в том, чтобы совершенствовать уже готовое. То нужно реализовать что-то новое, то срочно потушить пожар, то исправить какой-то баг… В общем, причина отложить рефакторинг запущенной кодовой базы у них всегда найдётся.

И даже когда пытаешься им объяснять, какие преимущества даёт опрятный код, они то ли не понимают, то ли не хотят понимать. У них только затраты и сроки на уме, а до качества никому нет дела. И получается, что вы абсолютно бессильны что-то сделать с техническим долгом, который всё копится и копится. Программисты работают на прод, а прод – на запросы нетерпеливых пользователей. За рефакторинг никто платить не будет. Положение выглядит безнадёжным.

Попадая в такую ситуацию, многие толковые разработчики просто пакуют вещи и уходят из компании. И очень скоро из-за текучки в отделе уже двери не закрываются: одни уходят, другие приходят…
Читать дальше →

Пересадочный узел для птиц: раскаты Волги посреди пустыни

Reading time12 min
Views20K
Привет! На нашей офигенной планете есть такое место — низовья Волги. Если бы не Волга, там была бы натуральная пустыня, как в Монголии. Но там есть река, и течёт она не просто так, а по дну бывшего древнего моря.

В России далеко не все знают про это место, а вот для орнитологов всего мира это натуральная Мекка. Почему? Потому что тут огромный трансферный узел для птиц, и это роль места в планетарном масштабе. Птица, она как и самолёт, требует дозаправки. Если вы думаете, что они просто летят в тёплые края, то нет — им нужно где-то останавливаться, отдыхать, есть несколько дней (или даже недель) и лететь дальше. И обычное дерево на даче не подходит: нужно, чтобы было много места и много корма, и при этом хищники не особенно злобствовали. Чтобы вы понимали масштабы узла — просто знайте, что тут за год «пересаживается» около 20 миллионов особей.

Нормальные реки разбиваются на 2-3 протока, а вот Волга разбивается сначала на сотни, а потом вообще превращается в огромную водную поверхность глубиной около метра. Представьте: взяли кусок пустыни размером в полтора Кипра (13 900 км2) и залили его водой. Получилось вот так:



Глубина там небольшая, растительность спокойно торчит над водой, в местах, где ещё можно различить рукава — куча островков и чего-то похожего, а ниже уже всё это постепенно переходит в Каспийское море. Конвергентные вещи можно увидеть в дельте Меконга и в мангровых рощах на островах Микронезии. Поэтому да, в Астрахани, проплывая протоками, можно словить много вьетнамских флешбеков.



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

KPI. Или как руководители боятся посмотреть в глаза сотруднику при начислении зарплаты. (Исправлено)

Reading time4 min
Views28K
Будучи разработчиком и внедренцем более 25 лет, с некоторых пор, стал наблюдать тенденцию ухода работодателя и вообще руководства от ответственности при начислении заработной платы сотрудникам. Это касается любой сферы деятельности. В рознице — оплата продавцам, в опте — расчет заработка менеджерам, в кораблевождении, в логистике, в ЖКХ, теплоэнергетике и далее со всеми остановками.

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

Галя, сколько? Игра в шашечки на кассах Пятёрочки

Reading time3 min
Views68K
Заскучал? Хочется немного абсурда? Придумай людям KPI и объясни, как он считается.

Раньше я думал, что такой идиотизм только на заводах бывает. Оказывается, нет. Пятёрочка выручила. Она ж выручает.
Читать дальше →

Реализация маневрирования юнитов в играх (избегание столкновений)

Reading time6 min
Views16K
Задача движения юнитов в играх является одной из ключевых задач, стоящих перед разработчиками игр. От того, как двигаются игровые юниты, во многом зависит восприятие всего геймплея в целом.

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

На практике же мы имеем совсем другую ситуацию.

Алгоритмы поиска пути разобраны досконально.

Нужен поиск пути с весами? A*. Нужен поиск для большого количества юнитов? Flow Field или кластеризация.

По большому счету по поиску пути не осталось не разобранных вопросов.

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

Эти проблемы и будем сегодня решать.



Disclaimer
Данная статья не претендует на исчерпывающее решение обозначенной проблемы.
Я лишь рассказываю о том, как конкретно мне видится решение, над которым я работал. Это решение в оттюнингованном виде попало в один из зарелизенных в этом году РТС проектов, но осталось ли там на данный момент я не знаю. Комментарии и дополнения приветствуются.

fork() может потерпеть неудачу: это важно

Reading time1 min
Views26K
Эх, fork(). Одни процессы порождают другие. Кажется, у меня есть история об этом.

Форк может потерпеть неудачу. Понимаете? В самом деле, понимаете? Это очень серьёзно. Форк может завершиться с ошибкой. Так же, как и malloc. Нечасто, но когда такое происходит, нельзя просто взять и игнорировать это. Вы должны что-то предпринять в таком случае.

Похоже, всем известно, что fork возвращает дочернему процессу 0, а родителю некоторое положительное число — pid ребенка. Он выдаёт этот номер, который используется позже.

Угадайте, что происходит, когда вы не проверяете ответ на ошибку? Да, вы обработаете "-1" (ошибка форка) в качестве валидного pid.
Читать дальше →

Information

Rating
3,244-th
Registered
Activity