Как стать автором
Обновить
1
0.2
Артем Иванов @follow39

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

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

Российская микроэлектроника — два года спустя

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

За эту статью попрошу благодарить патриотично размороженных граждан в целом, и @WebPeople (регистрация 2012, разморожен с первым комментарием 8 июл 2023 в 20:47) в частности. Глобальное потепление, ничего не поделать.

В мае 2022 в комментариях @hippohood отметился не имеющим аналогов текстом:
Примерно опишу мыслительный процесс позитивно (патриотично) настроенных граждан.

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

Читать далее
Всего голосов 564: ↑539 и ↓25+599
Комментарии451

Как создать Мету, которая затянет играть сутками

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров20K

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

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

Читать далее
Всего голосов 25: ↑16 и ↓9+9
Комментарии12

Гений 21 века. Чем сейчас занимается Фабрис Беллар

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров55K
Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре двенадцать лет назад…

… Но по просьбам молодых читателей мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.
Читать дальше →
Всего голосов 157: ↑154 и ↓3+198
Комментарии49

Почему RISC-V? — лекция Станислава Полонского

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

Здравствуйте! Меня зовут Станислав Полонский. Я представляю Samsung Advanced Institute of Technology (SAIT) - научно-исследовательский центр, специализирующийся на передовых технологиях будущего.

Сегодня мы поговорим о том, что такое архитектура RISC-V (читается, как «РИСК-Пять»). Я расскажу вам о прошлом и будущем этих процессоров, о том, почему эта архитектура так подходит для Интернета вещей, а в конце скажу, как можно продолжить своё образование в этом направлении.

Читать далее
Всего голосов 31: ↑27 и ↓4+32
Комментарии43

Запуск ОСРВ Embox на Banana Pi M1

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.1K

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

Тщательно изучив список поддерживаемых одноплатников, остановил свой выбор на Banana Pi M1 с ARM-процессором Allwinner A20. Плата была заказана на Aliexpress, и когда она прибыла, настало время экспериментов. Но всё, как и ожидалось, оказалось не так просто...

Читать далее
Всего голосов 14: ↑13 и ↓1+16
Комментарии12

Знакомство с упорядочиванием в Emacs на примерах

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.5K

В этой статье мы разберём использование в Emacs различных команд для упорядочивания строк, абзацев и страниц. В руководствах к Emacs и Elisp эти команды описаны достаточно подробно, так что мы просто познакомимся с практическими примерами их применения.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+52
Комментарии2

Как написать свой режим для GNU Emacs и опубликовать его в MELPA

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

Некоторое время назад я разработал режим GNU Emacs для редактирования конфигурационных файлов операционной системы Embox. Кроме всестороннего изучения Emacs Lisp мне потребовалось разобраться со структурой модуля режима, а также процессом и требованиями к публикации пакетов в MELPA, наиболее популярном архиве пакетов для GNU Emacs. В этом руководстве я расскажу, что нужно знать, чтобы написать свой собственный режим, и как опубликовать свой собственный пакет.

Запускаем свой Emacs!
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Мультиплеер в быстрых играх (части I, II)

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


  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)


Предлагаю вашему вниманию перевод статьи Fast-Paced Multiplayer (Part I): Introduction.

Разработка игры — само по себе непростое занятие. Но мультиплеерные игры создают совершенно новые проблемы, требующие разрешения. Забавно, что у наших проблем всего две причины: человеческая натура и законы физики. Законы физики привнесут проблемы из области теории относительности, а человеческая натура не даст нам доверять сообщениям с клиента.
Читать дальше →
Всего голосов 136: ↑132 и ↓4+128
Комментарии109

Чем заняться тимлиду, если не кодить? Рассказываю о своих задачах

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

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

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

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

Читать далее
Всего голосов 17: ↑15 и ↓2+17
Комментарии13

Человек человеку — человек: на работе без общения не получится

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

На своей первой «большой» работе я совершила глупую ошибку: увидев токсичного руководителя и хор активных подпевал, я не уволилась. В свои 22 года «вузовско-тепличная» я решила, что главное — хорошо работать, и тогда никто тебя не тронет. Ну то есть ты сидишь в роли компьютера, чётко выполняешь задачи, не косячишь и считай, дело в шляпе, а заботиться о выстраивании отношений не нужно. Ну это же работа! Между тем, оказалось, что работа — это отдельный социум со своими законами и правилами, все сотрудники — люди и характер на крючок рядом с курткой не вешают, а при желании можно найти провалы и пробелы в абсолютно любой задаче. На усвоение довольно строгих и важных уроков у меня ушло 4 года, которые закончились увольнением…из-за чисто человеческого конфликта на уровне «кто кого выживет». После такой практики вот уже 11 лет практически ни одного рецидива, не считая мелких и чисто личностных стычек. Главные выводы тех лет: 1) общаться придётся; 2) над отношениями нужно работать; 3) работать на фоне конфликта нереально тяжело и непродуктивно; 4) конфликты сажают здоровье. 

Позже выяснилось, что таких исследователей отношений в коллективе немало — так почему бы с высоты социально опыта не собрать пачку лучших статей. Учитесь на чужих ошибках :-)

Читать далее
Всего голосов 17: ↑14 и ↓3+20
Комментарии10

Налоговый и валютный резидент РФ —последствия приобретения и утраты статусов — полный FAQ с примерами

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

Друзья, всех приветствую и предлагаю ознакомиться, как мне кажется с довольно полным FAQ по теме налогового и валютного резиденства РФ. По ходу материала есть некоторые примеры, а внизу вопросы & ответы.

Читать далее
Всего голосов 43: ↑38 и ↓5+41
Комментарии47

История о том как я переехал в США и искал тут работу. Офферы от MAANG и не только

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

В феврале 2022 года я наконец переехал в США по рабочей визе О1. Этому предшествовало 2.5 года работы над укреплением кейса, ожидание аппрува.

За 1.5 года до этой даты я начал готовиться к интервью на позицию Front End. Сейчас работаю Senior Front-End Engineer в Roku.

Мотивацией для данного поста и создания телеграмм канала по интервью Front-End инженеров стало отсутсвие подробной информации о том, как же выглядит этот процесс в США.

Читать далее
Всего голосов 33: ↑29 и ↓4+33
Комментарии25

Как я полюбил vim, Emacs и клавиатуру

Время на прочтение13 мин
Количество просмотров75K
В какой-то степени эта статья ответ — или, скорее, дополнение — к публикации «Зачем vi-топор программисту 21-го века». Я увидел, что в комментариях люди по-прежнему удивлялись: какой смысл в этих редакторах, когда есть полноценные IDE; статья приводила немного реальных примеров и, понимая, что мне есть, что сказать, я решил поделиться собственным опытом. Написано в художественном стиле, так как думаю, если бы люди хотели сухую выжимку, они бы просто пошли читать мануалы. Так же предупрежу, что в мануалах по Емаксу клавиша «Alt» упоминается как «Meta». Я буду говорить «Alt», так как для многих это название привычней.
Читать дальше →
Всего голосов 51: ↑41 и ↓10+31
Комментарии191

Ошибки, которые не ловит Rust

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

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

В конечном итоге, возможности того, что можно сделать при помощи языка программирования, редко ограничены самим языком: нет ничего, что можно сделать на C++, но нельзя повторить на C, при наличии бесконечного количества времени.

Если язык полон по Тьюрингу и компилируется в ассемблерный код, каким бы ни был интерфейс, вы общаетесь с одной и той же машиной. Вы ограничены возможностями оборудования, количеством его памяти (и её скоростью), подключенной к нему периферией, и так далее.

На самом деле, достаточно лишь команды mov.

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

Кроме того, есть такие аспекты, как производительность, отладкопригодность (если такого слова нет, то его стоит придумать) и дюжина других факторов, которые стоит рассмотреть при «выборе языка».
Читать дальше →
Всего голосов 57: ↑53 и ↓4+66
Комментарии12

Эффект Google: как справиться с цифровой амнезией

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

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

Знакомый сценарий? Можете вспомнить случаи, когда вы искали факт, но почти мгновенно забывали полученную информацию? Если да, возможно, вы стали жертвой «эффекта Google».

Уже забыл, что выше написано
Всего голосов 34: ↑31 и ↓3+38
Комментарии114

Лучшие бесплатные коллекции векторных иконок

Время на прочтение2 мин
Количество просмотров334K
Привет, Хабр! Сегодня я хочу представить вам огромную коллекцию из 51 набора бесплатных векторных иконок. Да, есть потрясающие ресурсы Flaticon или Iconfinder, но бывают случаи, когда необходима именно группа иконок в едином стилистическом оформлении. Определиться с выбором, вам поможет эта подборка. Я старался собрать не как можно больше, а действительно самое лучшее.

Среди веб-разработчиков существует много споров о том, что лучше: иконочный шрифт или SVG спрайты? Четкого ответа на этот вопрос нет. Каждый выбирает свое. Данные наборы иконок вас неограничиывают в выборе, поскольку представлены в различных форматах: @font-face, SVG, EPS, AI, PSD, Sketch.

В целом данная подборка содержит более 10 000 иконок, охватывающих множество категорий: интерфейсы, технологии, наука, спорт, маркетинг, среда, транспорт и тд. Полые, заполненные, цветные, во Flat, Material, Elegant, Cartoon, Hand drawing стилях.

Responsive Icons (100 иконок, PSD, AI, EPS, SVG)


Responsive Icons

Читать дальше →
Всего голосов 91: ↑82 и ↓9+73
Комментарии23

Процедурная генерация случайных игровых подземелий

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

В посте подробно рассматривается техника генерации случайных подземелий. Основной алгоритм генерации, пример работы которого можно посмотреть здесь, используется разработчиками игры TinyKeep. Оригинальный пост от разработчика был размещён на reddit.

Оригинальное описание алгоритма


1. Сначала я задаю нужное количество комнат – к примеру, 150. Естественно, цифра произвольная, и чем она больше, тем сложнее будет подземелье.

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

Вместо равномерно распределённых случайных чисел (какие выдаёт генератор Math.random в большинстве языков), я использую нормальное распределение Парка-Миллера. В результате вероятность появления маленьких комнат превышает вероятность появления больших. Зачем это надо, объясню позже.

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

3. И вот у нас есть 150 случайных комнат, расположенных на небольшом пространстве. Большинство из них наезжают друг на друга. Теперь мы осуществляем их разделение по технологии separation steering, чтобы разделить прямоугольники так, чтоб они не пересекались. В результате они не пересекаются, но находятся достаточно близко друг от друга.

4. Заполняем промежутки клетками размером 1х1. В результате у нас получается квадратная решётка из комнат различного размера.

5. И тут начинается основное веселье. Определяем, какие из клеток решётки являются комнатами – это будут любые клетки с шириной и высотой, превышающими заданные. Из-за распределения Парка-Миллера мы получим сравнительно небольшое количество комнат, между которыми есть довольно много свободного пространства. Но оставшиеся клетки нам также пригодятся.

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

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

8. Дерево получается аккуратным, но скучным – никаких вам замкнутых ходов. Поэтому мы случайным образом добавляем обратно примерно 15% ранее исключённых рёбер графа. В результате получится граф, где все комнаты гарантированно достижимы, с несколькими замкнутыми ходами.

9. Чтобы превратить его в коридоры, для каждого ребра строится серия прямых линий (в форме Г), идущих по рёбрам графа, соединяющим комнаты. Тут нам пригождаются те клетки, которые остались неиспользованными (те, что не превратились в комнаты). Все клетки, накладывающиеся на Г-образные линии, становятся коридорами. А из-за разнообразия размеров клеток стены коридоров будут неровными, что как раз хорошо для подземелья.

И вот пример результата!

Осторожно — под катом много монстров анимированных гифок!
Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии16

Кинетическая скульптура «Сизиф» из LEGO Technics

Время на прочтение2 мин
Количество просмотров19K
image

Джейсон Аллерман, давний энтузиаст конструирования необычных вещей из Lego, представил на суд общественности кинетическую скульптуру «Сизиф». Она изображает героя древнего мифа, толкающего камень. Благодаря хитроумной системе шестерёнок и рычагов, фигура достаточно правдоподобно двигается, оставаясь при этом на месте – строго в соответствии с сутью мифа.

Фигура находится на красивом постаменте, у которого даже есть барельефы, отражающие разные периоды жизни мифического героя. Для изготовления фигуры используется 475 деталей. Джейсон конструировал своего «Сизифа» при помощи специального ПО, поэтому на сайте имеется как список деталей, так и сгенерированная в красивом виде подробная инструкция по самостоятельному изготовлению скульптуры.


Ролик о скульптуре и подробное пояснение схемы работы
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии4

Открытка-лабиринт. Подарок, который невозможно открыть, не разгадав головоломку

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


Лабиринт в процессе прохождения.
Читать дальше →
Всего голосов 151: ↑151 и ↓0+151
Комментарии51

Алгоритм Эллера для генерации лабиринтов

Время на прочтение5 мин
Количество просмотров152K
Это топик-перевод статьи Eller's Algorithm. В ней рассказывается о способе программной генерации лабиринтов. Дальнейшее повествование идет от лица автора.

 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __  
|__   |__       __ __|__   |   __|  |  |  |  |
|__   |__   |__|   __ __|   __ __      |     |
|        |  |  |     |  |__      |__|  |  |  |
|__|__|  |  |   __|   __|__   |   __|__|  |__|
|   __|  |     |__ __ __|  |  |__|  |     |  |
|  |  |  |  |__|  |__   |  |   __|__ __|  |  |
|  |__    __    __ __    __|  |   __   |  |  |
|  |  |  |  |      __|  |   __|  |  |__|  |  |
|  |     |     |__   |  |  |  |  |  |__    __|
|  |  |__|__|__ __|  |     |  |  |      __|  |
|__ __|  |  |  |__   |__|   __|     |   __ __|
|   __|  |   __|__      |__   |__|  |__    __|
|  |  |     |  |     |__|  |   __    __|   __|
|   __|  |__ __|__|      __|  |  |     |  |  |
|   __ __   |      __|__|  |__   |  |  |__|  |
|__ __ __|__ __|__ __ __ __ __|__|__|__ __ __|


Алгоритм Эллера позволяет создавать лабиринты, имеющие только один путь между двумя точками. Сам по себе алгоритм очень быстр и использует память эффективнее, чем другие популярные алгоритмы (такие как Prim и Kruskal), требуя памяти пропорционально числу строк. Это позволяет создавать лабиринты большого размера при ограниченных размерах памяти.

Читать дальше →
Всего голосов 122: ↑117 и ↓5+112
Комментарии35
1

Информация

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