Pull to refresh
-2
0
Send message

Фантастический OpenRISC и где он обитает, или недетский разбор детской камеры

Level of difficultyMedium
Reading time12 min
Views16K

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

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

Да простят меня подписчики хаба фототехники.

Читать далее
Total votes 151: ↑151 and ↓0+151
Comments26

Точечная маршрутизация на Mikrotik: BGP и Address lists + Mangle. Реализация через домены

Level of difficultyMedium
Reading time17 min
Views35K

Как загрузить список из 500 доменов на mikrotik, чтоб он их преобразовал в IP-адреса?

Как заставить Mikrotik резолвить домены по wildcard?

Как поднять Shadowsocks\VLESS на ROS?

Никак

Я задался этими вопросами, достал hAP ac lite из шкафа и посмотрел, на что способна ROS 7 в конце 2023 года. Потестил всем известные способы, а также попробовал запихать много доменов в address-lists.

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments34

nocc — распределённый компилятор для гигантских проектов на С++

Reading time8 min
Views13K

У нас есть задача постоянно компилировать тонны плюсового кода. Наш проект — почти 200 000 cpp- и h-файлов, множество Git-веток, сотни разработчиков, десятки билд-агентов: его нельзя единожды скомпилировать, приходится перекомпилировать постоянно, параллельно, разные версии.

Наш проект необычный. Потому что эти 200 000 файлов — это результат автогенерации. Потому что пишем мы на PHP, а потом через KPHP все PHP-исходники превращаются в плюсы. Именно так разрабатывается бэкенд ВКонтакте.

Компилировать тысячи объектников долго. Локально это занимает много часов. Мы использовали distcc — но всё равно медленно. Мы даже пропатчили distcc для поддержки precompiled headers — но даже тогда медленно. И решили написать своё — чтоб стало, наконец, быстро.

В итоге мы написали замену distcc — компилятор nocc. Он не имеет никакого отношения к PHP и даже к KPHP, а просто предназначен для компиляции .cpp.o в промышленных масштабах.

Это техническая статья про параллелизацию, демоны и специфику С++. Ссылки на GitHub и видео приложу в конце статьи.

Читать далее
Total votes 110: ↑108 and ↓2+106
Comments69

Геоанализ этажности Санкт-Петербурга алгоритмом KDE, или Как меняется облик города

Reading time4 min
Views3.6K

Всем привет, меня зовут Максим Шаланкин, в Ситимобил я занимаюсь машинным обучением. Мы используем множество крутых алгоритмов для оптимизации наших сервисов и улучшения бизнес-процессов. В этой публикации я расскажу, как использовать в геоаналитике алгоритм ядерной оценки плотности (Kernel Density Estimation) и строить полигоны на карте, основываясь на распределении географических данных.

Врууум
Total votes 30: ↑28 and ↓2+26
Comments3

Чемпионаты по программированию: развлечение для студентов или способ устроиться на работу мечты?

Reading time5 min
Views6K

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


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


Расскажем, как отличить такие коммерческие чемпионаты от спортивных, кто и зачем вообще проводит такие чемпионаты, и почему стоит в них поучаствовать. Даже если вы пока не планируете менять место работы.



Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments15

Книги с необычными вымышленными эпидемиями

Reading time6 min
Views20K

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

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

Читать далее
Total votes 24: ↑23 and ↓1+22
Comments44

Ахтунг: «бесплатный» антивирус от RU-CENTER (NIC.RU)

Reading time1 min
Views27K

Астрологи объявили очередной сезон развода на деньги клиентов RU-CENTER (nic.ru). Схема развода примитивна, неоднократно описана (в том числе здесь же на Хабре!), но может сработать при вашей невнимательности:

Читать дальше →
Total votes 85: ↑83 and ↓2+81
Comments80

Сетевая подсистема в ОС

Reading time7 min
Views15K

В данной статье будет проведено исследование сетевой подсистемы ОС Windows и Linux, а также предложен план изучения подсистем операционной системы. Основная задача исследования - понять, из чего состоит сетевая подсистема; какие поддерживает протоколы из коробки; какие дополнительные механизмы использует в своей работе.

Disclamer: Статья описывает данные, которые с точки зрения автора помогут понять, как работают операционные системы с моделью TCP/IP, и не претендует на полноту.

Читать далее
Total votes 19: ↑12 and ↓7+5
Comments3

Интеграция пользователей сайта и форума на phpbb 3

Reading time4 min
Views14K
Совсем недавно возникла необходимость быстрой интеграции сайта и форума phpbb3. Погуглив, нормального примера не нашел. Пришлось писать самому. Возможно, кому-то пригодится.

Итак, пусть есть сайт, с собственной системой авторизации. Необходимо добавить форум phpbb с быстрым (и возможно даже правильным) решением проблем с интеграцией существующей пользовательской базы. Авторизация и регистрация новых пользователей по-прежнему будет происходить на сайте, в форум будут попадать уже зарегистрированные пользователи. Регистрация и авторизация на форуме будет закрыта.

Для начала отключим возможность регистрации новых пользователей:
Для этого в администраторском аккаунте перейдите на вкладку “Общие”, и в левом меню выберите “Регистрация пользователей”. Далее отключаем регистрацию:
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments1

Программистское везение

Reading time3 min
Views15K

Более двух десятков лет назад мы разрабатывали устройство, передающее и принимающее данные, используя телевизионный сигнал. Это сейчас все избалованы гигагерцами и гигабайтами, а тогда, имея компьютер типа IBM/PC-AT, на таких скоростях можно было работать только с помощью встроенного контроллера прямого доступа к памяти (ПДП), реализованного в виде микросхем 8237А-5. Это устройство позволяло писать или читать данные, не привлекая центральный процессор.

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

И вот, при заключительном просмотре текста, я вдруг увидел глупую описку в программировании ПДП. Адрес в 16-разрядной 8237А-5 приходилось задавать по частям и при задании номера «станицы» (т.е. номера куска памяти в 128 Кбайт) вместо команды

Читать далее
Total votes 44: ↑40 and ↓4+36
Comments21

Прадедушка ноутбука

Reading time6 min
Views13K


Если семидесятые годы считаются эпохой сексуальной революции, то восьмидесятые ознаменовались революцией технологической. Компьютеры перешли из категории диковинных игрушек для ученых в разряд привычной домашней техники. На рынке появились персоналки Atari, Commodore 64, первые ПК от Apple. Тогда же разработчики озаботились не только увеличением производительности ПК, но и уменьшением их габаритных размеров, чтобы компьютер мог взять с собой в самолет любой банковский клерк. Одного из пионеров в области портативного компьютеростроения звали Адам Осборн.
Total votes 52: ↑48 and ↓4+44
Comments19

Тестирование это просто. Или история одного велосипеда

Reading time2 min
Views3.7K
Однажды мне нужно было протестировать ответ сервера и я решил что использовать для этого тяжеловесные швейцарские ножи вроде PhpUnit — обременительно. Осложнялось все тем — что инфраструктура была разбита на множество веб-микросервисов, которые в свою очередь работали на разных бэкендах(PHP, NodeJS, Python, GO). Посему я решил набросать простой класс, который на удивление оказался очень удобным инструментом для приемочного тестирования системы.
— Нам нужно быть уверенными что при каждом пуше у нас не сломается вся инфраструктура, сможешь сделать? -Легко!
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments4

Законы программирования

Reading time20 min
Views57K

Законы, теории, принципы и закономерности, полезные для разработчиков


Введение


Перевод репозитория github.com/dwmkerr/hacker-laws

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

Здесь содержатся объяснения некоторых законов, принципов и закономерностей, но нет никакой агитации в их пользу. Применять их или нет – это всегда вопрос спорный, и всё зависит от того, над чем вы работаете.

Законы


Закон Амдала


Закон Амдала — это формула, демонстрирующая потенциал ускорения вычислительной задачи, которого можно достичь при увеличении количества ресурсов системы. Обычно он используется в параллельных вычислениях, и может предсказать наличие реальных преимуществ от увеличения количества процессоров с учётом ограничений параллелизуемости программы.
Читать дальше →
Total votes 84: ↑82 and ↓2+80
Comments21

В самом популярном фрагменте кода за всю историю StackOverflow ошибка! 

Reading time7 min
Views70K
Недавнее исследование «Использование и атрибуция сниппетов кода Stack Overflow в проектах GitHub» внезапно обнаружило, что чаще всего в опенсорсных проектах встречается мой ответ, написанный почти десять лет назад. По иронии судьбы, там баг.

Давным-давно…


Еще в 2010 году я сидел в своём офисе и занимался ерундой: развлекался код-гольфингом и накручивал рейтинг на Stack Overflow.

Моё внимание привлёк следующий вопрос: как вывести количество байт в удобочитаемом формате? То есть как преобразовать что-то вроде 123456789 байт в «123,5 МБ».


Старый добрый интерфейс 2010 года, спасибо The Wayback Machine
Читать дальше →
Total votes 164: ↑162 and ↓2+160
Comments79

«Люди думают, что бесплатное — значит бесполезное. Мне казалось, я смогу их переубедить» — Юрий Ярцев о школе Russol

Reading time8 min
Views8.7K
image

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

О своем опыте создания онлайн-школы мне рассказал Юрий Ярцев. Он создал школу стартапов Russol. Она особенная, потому что бесплатная. И конечно, это приводит к недоверию всех видов: и «бесплатное равно бесполезное», и «бесплатный сыр только в мышеловке».
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments3

Подборка полезных слайдов от Джулии Эванс

Reading time1 min
Views52K
Перевели новую порцию слайдов. Права доступа в Unix, файловые дескрипторы, потоки, магия proc. И на закуску пара советов о том, как общаться, когда ты не согласен. А вдруг пригодятся =)



Читать дальше →
Total votes 115: ↑111 and ↓4+107
Comments42

Moral Machine: беспощадный или бессмысленный?

Reading time12 min
Views21K

Данную статью я решил написать по следам вот этого поста.




Напомню краткую суть: в журнале Nature были опубликованы результаты исследования, проводившегося при помощи вот этого теста.

О чем же хочу написать я?


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


Во-вторых, как стоило бы расставить приоритеты в подобном исследовании.


И в-третьих, попробовать провести симуляцию различных вариантов ДТП в рамках заданных тестом условий.

Читать дальше →
Total votes 57: ↑50 and ↓7+43
Comments256

Information

Rating
Does not participate
Registered
Activity