Как стать автором
Обновить
26
0
Сергей Толмачев @Tolsi

Scala разработчик

Отправить сообщение

Вороной, Манхэттен, рандом

Уровень сложностиПростой
Время на прочтение34 мин
Количество просмотров16K

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

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

Осторожно, очень много картинок!

Читать далее
Всего голосов 160: ↑160 и ↓0+160
Комментарии53

Как вылечить зубы на год вперёд перед долгой поездкой

Время на прочтение9 мин
Количество просмотров47K
Пришёл к нам ИТ-специалист и сказал, что уедет на год в азиатскую страну, где с медициной есть определённые вопросы. И он хотел бы заранее вылечить зубы так, чтобы как минимум год не обращаться к стоматологу.

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


Пациент внезапно уехал в парусную кругосветку без того, чтобы поставить коронки на импланты. Под ними снизилась трофика, через 3 года (!) кость уменьшилась и образовалась дыра в челюсти.

Классическая модель подразумевает кратность визитов: 2–4 раза в год нужно ходить к стоматологу на профессиональную гигиену, и это позволит не покупать новые зубы в зрелом возрасте.

Тем не менее мы умеем лечить и «на год вперёд». И вы можете заказать это в любой региональной клинике тоже. Это называется «протокол полярника», когда мы готовим людей к арктическим экспедициям и подобным приключениям.

Кратко: нужна глубокая санация, чтобы убрать все источники инфекции, в том числе постоянные в каналах, которые так не любят кардиологи. Мы снижаем нагрузку на иммунитет, убирая постоянные воспаления. Затем убираются все восьмёрки (зубы мудрости — это частое требование страховых и контрактов полярников). Затем проводится глубокое ТО имплантов и других конструкций.

В дорогу полярникам мы даём наборы бактерий-антагонистов стрептококков. К счастью, сейчас они очень хорошо протестированы и доступны во многих крупных аптеках. Вам нужен Blis M18.
Читать дальше →
Всего голосов 99: ↑91 и ↓8+83
Комментарии62

Две цивилизации. Почему пользователи технологий из мегаполисов и небольших городов живут на разных планетах

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров62K


Этим летом ко мне приезжал погостить дальний родственник из небольшого городка. Полюбоваться на белые ночи и разведенные мосты, а заодно — пообщаться вживую с коллегами по удаленной работе. Мы оба айтишники, и я не был удивлен тем, что у нас отыскалось много общих интересов. Гораздо больше меня поразили различия в нашем отношении к привычным технологиям: порой складывалось ощущение, что мой гость и я — обитатели разных планет. Я решил разобраться в причинах этого явления, и чем больше погружался в изучение вопроса, тем сильнее убеждался: мне очень многое неизвестно о жизни таких же, как я сам, технарей за пределами мегаполисов.
Читать дальше →
Всего голосов 98: ↑89 и ↓9+80
Комментарии529

Как работает компьютер: глубокое погружение (на примере Linux)

Уровень сложностиСложный
Время на прочтение48 мин
Количество просмотров133K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


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


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


Более удобный формат статьи.

Читать дальше →
Всего голосов 152: ↑152 и ↓0+152
Комментарии36

Проблемы накапливаются. Софт тормозит. Везде некомпетентность и хаос

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров52K


Закон Старджона гласит: «Ничто не может всегда идти правильно». Рано или поздно всё ломается.

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

Взять недавний случай с багом в Windows Defender, который вызывал тормоза Windows. Крайне показательная история. Да, этот баг обнаружили, но в кодовой базе остались такие же. Мы этого не знаем наверняка, но вполне логично предположить, что количество скрытых багов растёт пропорционально кодовой базе. Поэтому софт всё больше тормозит со временем. Это естественный процесс, почти как закон природы.
Читать дальше →
Всего голосов 175: ↑133 и ↓42+91
Комментарии396

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

Время на прочтение8 мин
Количество просмотров76K


Никакой воды в этой статье, только описание конкретного плана действий в случае если вы перегорели, у вас дедлайн, прокрастинация, депрессия, а также методики и советы, помогающие привести этот план в действие.

Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии55

Это норма: что такое карты нормалей и как они работают

Время на прочтение6 мин
Количество просмотров75K
На протяжении нескольких лет я пытался разобраться в картах нормалей и в проблемах, которые обычно возникают при работе с ними.

Большинство найденных объяснений было слишком техническим, неполным или чересчур сложным для моего понимания, поэтому я решил попробовать объяснить собранную мной информацию. Я понимаю, что эти объяснения могут быть неполными или не совсем точными, но всё равно попробую.

Первые созданные человеком 3D-модели выглядели примерно так:

image

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

Наиболее очевидное решение: добавить больше полигонов, сделав поверхность более равномерной и гладкой, вплоть до того, чтобы полигоны казались единой гладкой поверхностью. Но оказывается, для того, чтобы сделать поверхности наподобие сфер гладкими, нужно огромное количество полигонов (особенно сегодня).
Читать дальше →
Всего голосов 72: ↑69 и ↓3+66
Комментарии6

Эй-Яй, крипта, MLOps и командный пет-проджект

Время на прочтение16 мин
Количество просмотров9.5K

В этой статье я расскажу, как мы командой пилили пет-проджект в рамках курса ODS по MLOps. Покажу не только финальный результат, но и немного расскажу про процесс работы, какие были сложности, как организовывали эффективную работу в команде. Может оказаться полезным для тех, кто хочет окунуться в Machine Learning и сделать свой пет-проджект, но пока чего-то не хватало. Также будет полезно тем, кто уже работает в области Data Science, но пока не окунулся в атмосферу DS, нет крутых коллег и разгвооров про фреймворки у кофемашины, а опыт командной работы именно в области DS получить хочется.

Сразу про то, что получилось на выходе: https://cryptobarometer.org/

Читать далее
Всего голосов 24: ↑23 и ↓1+22
Комментарии9

Цифровое хомячество и цифровой минимализм — противоположные концепции и стили жизни

Время на прочтение7 мин
Количество просмотров22K
Отбракованные фотографии на блошином рынке средней школы Фэрфакса, Калифорния. Иллюстрация из статьи про вещизм и скопидомство в Los Angeles Times (2014 год)

Имея в своём распоряжении петабайтные диски, появляется соблазн сохранять абсолютно всё. Все интересные фильмы и музыку, которые мы видели и слышали, семейные видео и фото. Прочитанные книги, написанный код. Письма, полученные и отправленные. Документы, мысли, заметки в Obsidian или Evernote (система типа «второй мозг»). Действительно, зачем удалять хоть один файл, если места хватает?

Противоположный подход — изначально ограничивать себя в потреблении информации, игр, фильмов, любого контента, чтобы не захламлять диск (и сознание) ненужной информацией. И хранить только самое лучшее, в минимальном количестве.
Читать дальше →
Всего голосов 104: ↑104 и ↓0+104
Комментарии92

Слепые капитаны ищут дно: почему российский бизнес – это болото, в котором барахтаются идиоты-«менеджеры»

Время на прочтение12 мин
Количество просмотров142K

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

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

Читать далее
Всего голосов 301: ↑225 и ↓76+149
Комментарии1361

Английский, которому меня не учили

Время на прочтение14 мин
Количество просмотров74K

Или максимы Английского языка, которые бы я хотел знать 20 лет назад.

Чем отличается хороший геймер от плохого? Хороший геймер сидит и изучает игру. Он знает каждый закуток. Он может без запинки назвать все характеристики всех юнитов в Star Craft. А самый крутой игрок знает все пропускные способности желтых, красных и синих конвейеров. А плохой игрок использует чит-коды или assistant apps. 

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

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

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

Okay, let's go...
Всего голосов 135: ↑133 и ↓2+131
Комментарии174

Как я создавал эргономичное рабочее место для себя и теперь предлагаю другим. Часть 1

Время на прочтение12 мин
Количество просмотров87K

Привет, Хабр! Меня зовут Денис Захаров. Я занимаюсь разработкой веб приложений на протяжении уже 14 лет, но история будет не об этом. Расскажу о том, как и почему я создавал эргономичное рабочее место, которое в последствии превратилось в проект Easyworkstation. Эта штука уже несколько лет полностью заменяет мне и еще нескольким десяткам пользователей привычное компьютерное кресло и рабочий стол.

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

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

А теперь ретроспектива
Всего голосов 300: ↑300 и ↓0+300
Комментарии206

Созданы ли люди для конфликтов?

Время на прочтение10 мин
Количество просмотров32K

Военный танец племени Оббо

Если вы жили на планете последний год, наверное, вас тянет сходу сказать «да». Эволюция. Выживание сильнейших! Даже неандертальцев на планете мы не оставили, потому что они были слишком непохожими на нас.


А самые начитанные из нас могут вспомнить, как об этом отлично рассказывает знаменитая книга «Повелитель мух», выигравшая Нобелевскую премию и все возможные награды. Она была написана в 1954 году, вскоре после Второй мировой. О том, как на острове случайно оказываются шесть обычных благовоспитанных мальчиков, и, лишившись надзора со стороны общества, постепенно начинают бороться друг с другом за ресурсы и власть, в конце концов скатываясь до своих примитивных, животных инстинктов. Книга напоминает нам, как легко мы можем превратиться в дикарей, и насколько он на самом деле тонкий, этот налёт цивилизации.


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

Читать дальше →
Всего голосов 145: ↑139 и ↓6+133
Комментарии524

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

Время на прочтение23 мин
Количество просмотров227K

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

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

Это было бы смешно, если бы от способности быстро в уме прикинуть результат не зависела способность быстрее создавать сложные алгоритмы. 

И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека. 

Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!

Читать далее
Всего голосов 411: ↑395 и ↓16+379
Комментарии795

Заражённый разум

Время на прочтение15 мин
Количество просмотров30K

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

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

Читать далее
Всего голосов 209: ↑199 и ↓10+189
Комментарии146

Почему я перешёл на фултайм в НКО

Время на прочтение6 мин
Количество просмотров32K

Привет, Хабр!

Люди, обладающие практическими навыками в сфере IT, востребованы в некоммерческом секторе все сильнее. В ОВД-Инфо, независимом правозащитном проекте, спрос на таких людей постоянно растет. В своей работе мы применяем много интересных инструментов и технологий, некоторые из которых разрабатываем сами, например, наш самый известный сервис — правовой бот для помощи задержанным OvdInfoBot. Мы считаем IT одной из своих важных и сильных составляющих.

Меня зовут Костя, я представляю IT-команду ОВД-Инфо, и начиная с этой статьи мы с коллегами хотим делиться с сообществом нашей внутренней технической кухней, разработками и практиками, которые мы используем, чтобы получить полезную критику и привлечь к нашему и другим некоммерческим проектам дополнительную экспертизу.

Начать хочется с личной истории — расскажу вам о том, как случился крутой поворот в моей карьере и как решение стать участником IT-команды ОВД-Инфо изменило мою жизнь к лучшему.

Читать далее
Всего голосов 390: ↑355 и ↓35+320
Комментарии91

Система типов — лучший друг программиста

Время на прочтение8 мин
Количество просмотров31K

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

Значение в string не лучший тип для записи адреса электронной почты или страны проживания пользователя. Эти значения заслуживают гораздо более богатых и специализированных типов. Мне нужно, чтобы существовал тип данных EmailAddress, который не может быть null. Мне нужна единая точка входа для создания нового объекта этого типа. Он должен валидироваться и нормализироваться перед возвратом нового значения. Мне нужно, чтобы этот тип данных имел полезные методы наподобие .Domain() или .NonAliasValue(), которые бы возвращали для введённого foo+bar@gmail.com значения gmail.com и foo@gmail.com. Эта полезная функциональность должна быть встроена в эти типы. Это обеспечивает безопасность, помогает предотвращать баги и существенно повышает удобство поддержки.
Читать дальше →
Всего голосов 120: ↑118 и ↓2+116
Комментарии90

Рабочее время: кошелек или жизнь?

Время на прочтение33 мин
Количество просмотров18K

Проблемы учета рабочего времени обсуждались не раз и не два. При этом мнение о необходимости таймтрекинга разделяет сотрудников на два противоположных лагеря. Как правило, исполнители всячески осуждают и указывают на неэффективность проектов, в которых необходимо вести учет рабочего времени и ежедневно отчитываться о проделанной работе. Напротив, многие правильные руководители приводят множество доводов в пользу таймтрекинга своих сотрудников. Это противоречие порой вызывает у меня приступы сильной головной боли, которую я попытался унять написанием этой статьи в блог ЛАНИТ. Есть такое лекарство – мышление письмом...

Читать далее
Всего голосов 120: ↑114 и ↓6+108
Комментарии24

Подпись на эллиптических кривых: всё, что нужно знать, чтобы подписать транзакцию в Bitcoin с полного нуля

Время на прочтение18 мин
Количество просмотров26K

Это - полный разбор алгоритма подписи на эллиптических кривых (ECDSA), который является ключевым элементом большинства блокчейнов (типа Bitcoin, Ethereum, ...). С примерами кода и реализацией с полного нуля. Всё сведено к уровню школьной математики, а читать код не обязательно!)

Читать
Всего голосов 83: ↑83 и ↓0+83
Комментарии35

Раздувание кода стало астрономическим

Время на прочтение5 мин
Количество просмотров97K

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

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

… но по сути, речь идёт о том, что нужно зарегистрировать несколько файлов, считать их, загрузить, а затем закрыть соединение и записать в файл лога, всё ли прошло успешно, а если нет, то что именно случилось. В этом нет ничего сложного, и даже я писал с нуля подобный код при помощи Wininet API и PHP на сервере, общающемся с моей базой данных MySQL. Наверно, моя система была не такой надёжной, как системы уровня энтерпрайза, однако поддерживала сотни тысяч загруженных файлов, их верификацию, скачивание и логирование. Наверно, это работа для одного кодера на две-три недели?

Специальный инструмент загрузки на сервер, которым я пользуюсь сегодня, суммарно имеет 230 МБ клиентских файлов и задействует 2,7 тысяч файлов для управления этим процессом.
Читать дальше →
Всего голосов 413: ↑399 и ↓14+385
Комментарии864
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность