Как стать автором
Обновить
0
0

Пользователь

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

Инспекция кода: заводим врагов

Время на прочтение4 мин
Количество просмотров2.6K
Бывает такое, что коллеги на работе вас раздражают и вызывают чувство, что надо бы как-то с ними расквитаться, отплатить за все те воображаемые обиды, которые они вам нанесли. Многим не представляется такой возможности. Однако если вы с ними – разработчики, то всегда есть верный способ. И этот способ – инспекция кода.

Когда всё делается правильно, инспекция кода – отличный инструмент для улучшения качества кода и распространения базовых знаний внутри команды. Но если делать всё неправильно, она может отравить человеку существование. Так что это отличный полигон для отмщения через пассивную агрессию. У коллеги всё слишком хорошо получается? Или он вечно выливает себе остатки кофе, а новый не заваривает? Или как-то раз три гола назад не поздоровался с вами, потому что не заметил, что вы в офисе? Пришло время отплатить за всё сполна при помощи инспекции кода!
Читать дальше →
Всего голосов 8: ↑6 и ↓2+6
Комментарии3

Загадочное дело о Raspberry Pi в шкафу для сетевого оборудования

Время на прочтение4 мин
Количество просмотров56K
Как-то я получил от своего отца (мы вместе с ним работаем на одного клиента) сообщение с приложенной фотографией.


Сообщение от отца

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

В тот момент ещё никто не думал, что оно может быть зловредным, скорее, все думали, что это экспериментирует кто-то из сотрудников клиента.
Читать дальше →
Всего голосов 120: ↑119 и ↓1+158
Комментарии51

Создаём личный «Архив интернета»

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


Как показала история, сеть из миллиардов связанных между собой документов — очень хрупкая и эфемерная система. Странички живут недолго. Если нашли интересную страницу, сайт или видео — нельзя просто сделать закладку и надеяться, что контент по ссылке останется доступен в будущем. Не останется. Информация исчезнет, ссылки изменятся, домены сменят владельцев, статьи на Хабре спрячут в черновики. У каждой страницы свой срок жизни. Ничто не вечно под луной, и ничего с этим не поделать.

К счастью, у нас есть инструменты, чтобы сохранить информацию на десятилетия. Свой персональный архив, полностью под контролем, со всеми сайтами и актуальными страницами. Отсюда никто ничего не удалит без вашего ведома, никогда.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+39
Комментарии44

Возрождение простых сайтов. Статика, 0kB JS, ничего лишнего

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

Как мы обсуждали в прошлый раз, удручающее ожирение сайтов и софта вернуло моду на простые, маленькие проекты. И сейчас происходит своеобразный ренессанс веба 90-х, вплоть до стиля Geocities (такой был бесплатный хостинг) и веб-страниц в виде PDF. Таковы примеры самореализации. У каждого человека — уникальный сайт, который отличается от остальных и отражает его личность.

Статический сайт можно выполнить в одном файле HTML, а динамический — в одном бинарнике (под катом). Тенденция видна везде. Современные фреймворки даже хвалятся «0кБ JavaScript» по дефолту, а браузеры внедрили технические усовершенствования, которые во многом аннулируют преимущества использования SPA.
Читать дальше →
Всего голосов 86: ↑80 и ↓6+95
Комментарии72

Моя борьба с санкциями или как появился умный VPN

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

Зачем людям ранее был нужен VPN (кроме мошенников конечно) - чтоб ходить на Linkedin и обходить всякие разные запреты РКН.

Когда ввели санкции и некоторые сайты перекрасились в сине-желтый цвет, то многие по старой памяти подумали - включим VPN и всё сразу станет как раньше, разве что русские сайты начнут открываться на 50мс медленнее.

Но не тут-то было. Вместе с перекраской сайтов, началась волна DDoS и хакерских атак на различные сервисы в РФ. В итоге, российские сайты закрылись от остального интернета. И с VPN стало очень некомфортно - хочешь пользоваться Terraform или там MatterMost скачать - включаешь VPN и сразу же не можешь сходить ни на Ozon ни на Госуслуги.

Интернет разделился на InnerNet и OuterNet.

Читать далее
Всего голосов 40: ↑33 и ↓7+32
Комментарии130

18 отборных однострочных команд Linux

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

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

Приступим!
Читать дальше →
Всего голосов 62: ↑42 и ↓20+37
Комментарии55

Doom. Часть 1. Топ 25 вадов, что не получили премию Cacowards

Уровень сложностиСредний
Время на прочтение28 мин
Количество просмотров5.8K
Оригинальный материал был опубликован в 2019 году. Перевод выкладывается с разрешения Not Jabba и Linguica.

Вносили точечные изменения для улучшения перевода и предлагали идеи (участники форума Old-Games.Ru — прим. пер.): Warmaster, drugon, Чёрный Думер. Помогали в вопросе редакторской правки elektroschwabra и Dub Star.

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

Doom-сообщество творило на протяжении 25 лет, поэтому трудно выбрать лучшую работу из такого внушительного списка. Осмелюсь сказать, что разные поколения судей Cacoward, бывало, ошибались. Мы это точно знаем, потому что вы напоминаете нам об этом каждый год! (ряд членов коллектива doomworld, проводящих ежегодную премию — прим. пер.).

Этот список призван исправить оплошности, когда история доказала нашу неправоту, а также выделить лучшие релизы, которым так и не посчастливилось стать вице-чемпионами. Он охватывает все прошедшие годы премии, а также первые 10 лет Doom (есть отдельный старый материал Doomworld — 10 Years of Doom. — прим. пер.). Сразу проясним один момент: мы не отменяем предыдущие врученные награды и не пересматриваем то, что уже получило признание в прошлом, — мы просто даем преданным поклонникам Doom дополнительные материалы, которые можно добавить в список «стоит поиграть». Считайте, что все вады из этого перечня удостоены почетной награды Cacoward.

Not Jabba, супермодератор doomworld.com, моддер Heretic, один из рецензентов ежегодной премии Cacoward.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+4
Комментарии2

Какие задачи не решаются bat-файлами?

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

Бат-файлы ведут свою историю со времен MS-DOS. Новые фичи добавлялись с сохранением обратной совместимости. Из-за этого многое в языке bat-файлов, как мы увидим далее, нелогично и неудобно.

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

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

Читать далее
Всего голосов 29: ↑27 и ↓2+32
Комментарии53

Как писать, чтобы тебя читали

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

Можно читать и не понимать, можно читать и понимать, а можно читать и понимать даже то, что не написано. Всё зависит от того, как, в какой форме и с каким настроением автор создал текст, передал ли он смысл, поделился ли ценной информацией или крутой историей. Ежедневно на Хабре выходит около 60-70 статей, не считая новостей — какие-то набирают десятки тысяч просмотров, какие-то еле дотягивают до тысячи. Иногда причины очевидны, а иногда даже мы, опытная команда Хабра, теряемся в догадках, что же не понравилось (или понравилось) читателям. Анализ чужих и собственных публикаций подтолкнул меня к этому лонгриду. Читать — не перечитать.

Читать далее
Всего голосов 41: ↑35 и ↓6+55
Комментарии59

Как вести переговоры с террористами… партнерами, детьми и вообще с кем угодно

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

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

Читать далее
Всего голосов 152: ↑149 и ↓3+185
Комментарии177

Как научиться писать статьи (для Хабра и не только)

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

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

Что может быть проще! Берёшь бумагу и ручку, или пишущую машинку, или что там у вас нынче в моде, и пишешь статью.

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

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

На самом деле знают, но почему-то превращают это знание в кучу эзотерических фактов о жизни фей в райских садах. Почему? Не знаю. Возможно потому, что сами такие люди ничего не знают о том, как что-то написать. А ведь это — достаточно просто. Посему, прошу под кат, я вам дам реальные советы по поводу того, как научиться хорошо писать интересные статьи.
Читать дальше →
Всего голосов 85: ↑70 и ↓15+83
Комментарии68

Как я восстановил данные после форматирования, создания разделов и установки системы на «не том» жестком диске

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

Здесь будет история о том, как я восстановил файлы и каталоги с жёсткого диска, который превратился в неразмеченную область, был частично отформатирован, разбит на новые разделы, на один из которых и была установлена новая система Linux. Если вам всё ещё интересно, вэлком под кат.
Читать дальше →
Всего голосов 95: ↑91 и ↓4+116
Комментарии100

Простая система ветровой эрозии на основе частиц

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

Полный исходный код этого проекта, а также объяснение того, как его использовать и читать, можно найти на Github [здесь]. Проект рендерится при помощи моего собственного [TinyEngine].

В прошлом году я много экспериментировал со способами реализации эрозии на основе частиц для генерации рельефов.

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

Один из самых хорошо известных и производительных алгоритмов улучшения генерации рельефов на основе шума — это гидравлическая эрозия на основе частиц [перевод на Хабре]. Этот алгоритм чрезвычайно прост и обеспечивает отличные результаты относительно малыми усилиями.

Его результаты убедили меня дополнить эту систему потоками воды и водоёмами, что привело к созданию процедурной гидрологической системы [перевод на Хабре]. Используя упрощённую модель, система успешно передаёт многие эффекты реального мира, поэтому я заинтересовался в дальнейшем исследовании симуляции геоморфологии на основе частиц.

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

Получившаяся система хорошо работает, позволяя моделировать движущиеся осадочные породы, а также сплошные неподвижные препятствия. Она воссоздаёт многие эффекты, наблюдаемые при реальной ветровой эрозии, например, серповидные дюны!
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии2

Дефицит есть, а денег не дают. Почему?

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

Мы уже выяснили, что у нас есть дефицит рабочих рук во всех отраслях. На примере СССР увидели, что дефицит легко закрывается деньгами и плюшками, что сейчас и происходит в IT. Однако при дефиците рабочих рук в остальных отраслях зарплаты остаются на уровне Румынии и никак не подтягиваются. Почему?

Читать далее
Всего голосов 512: ↑497 и ↓15+588
Комментарии1205

Тонкости левел-дизайна: как не «убить» свободу выбора игрока

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

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

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

Симуляция 4,5 миллиардов лет эволюции планеты на GPU

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

Введение

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

Всего голосов 47: ↑45 и ↓2+58
Комментарии18

Сетки из треугольников в играх

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

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

Все вычисления я выполнил в своём коде на github, однако стоит объяснить, как и зачем нужно использовать такие сетки.

Что такое «сетка треугольников»


Когда я говорю о сетке треугольников, то подразумеваю тайловую карту, в которой все тайлы являются одинаковыми равносторонними треугольниками, выстроенными в переменные строки (или столбцы).


Важно здесь то, что каждая ячейка имеет ровно трёх соседей. Иногда встречаются игры, где отрисована сетка треугольников, но на самом деле фигуры расположены в углах. Каждый угол соединяется с шестью другими, то есть на самом деле это сетка не треугольников, а шестиугольников.
Всего голосов 24: ↑24 и ↓0+24
Комментарии0

Из чего складывается цена физического товара, и зачем нужно локализовывать игры без слов

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

Локализованная игра. Слов тут нет.

Экономика — очень прикольная штука, которая часто заставляет делать странные вещи. Например, есть игра «7 на 9», в которой нет ни одного английского слова, только цифры. И всё же мы занялись её локализацией для того, чтобы иметь возможность продавать почти в два раза дешевле.

Вообще, в каждой сфере начиная от продажи железа и заканчивая косметикой, есть огромное количество мифов про настоящую цену товара. Например, многим вспоминается фраза, что себестоимость кроссовок Адидас — 2 бакса, а остальное они добавляют за логотип. Ещё некоторые не верят, что обычные налоги в нашей стране составляют больше 50%, потому что привыкли к «разрекламированным» 13%.

Вот про эти мифы я и поговорю на примере точного образования цены настольной игры.
Читать дальше →
Всего голосов 143: ↑137 и ↓6+131
Комментарии100

Персональный интернет-архив без боли

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


Каждый веб-разработчик, да и многие пользователи рано или поздно сталкиваются с Internet Archive и необходимостью сохранить или восстановить вид важного им сайта в определённое время. С каждым годом всё очевиднее, что поговорка «интернет помнит всё» ошибочна — форумы закрываются, старые сайты тихо исчезают, информация пропадает без следа (вот хорошая статья по теме). При этом пока не существует общепринятого способа на лету сохранять важный контент без лишних телодвижений (представьте, что будет с серверами archive.org, если, скажем, в следующем обновлении Chrome будет при загрузке страницы отправлять адрес на архивацию). Спасение утопающих — дело рук самих утопающих, поэтому в этой статье мы разберём инструмент, позволяющий не просто сохранять нужные сайты, но и встраивать этот процесс в повседневную работу.
Всего голосов 34: ↑34 и ↓0+34
Комментарии2

Как распознать рукописный текст с помощью ИИ на микроконтроллерах

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


Распознавание рукописных цифр с помощью TensorFlow и MNIST стало довольно распространённым введением в искусственный интеллект (ИИ) и ML. «MNIST» — это база данных, которая содержит 70 000 примеров рукописных цифр. Она широко используется как источник изображений для обучения систем обработки изображений и программного обеспечения для машинного обучения.

Хотя учебные пособия по ML с использованием TensorFlow и MNIST стали привычными, до недавнего времени они обычно демонстрировались в полнофункциональных средах обработки с архитектурой x86 и графическими процессорами класса рабочих станций. Однако сегодня можно создать полнофункциональное приложение для распознавания рукописного ввода MNIST даже на 8-разрядном микроконтроллере. Чтобы продемонстрировать это, мы собираемся создать полнофункциональное приложение для распознавания рукописного ввода MNIST, используя TensorFlow Lite для получения результатов ИИ на маломощном микроконтроллере STMicroelectronics на базе процессора ARM Cortex M7.

Приятного чтения!
Всего голосов 18: ↑18 и ↓0+18
Комментарии12
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность