Прочитал как‑то на Хабре заметку «Что делать с детьми летом, если ты айтишник?» Ответил на нее двумя своими заметками (раз и два). А теперь предлагаю взглянуть на поднятую тему немного с другой стороны: с точки зрения «борьбы с цифровым неравенством»? С тем самым, которое проявляется в ограниченном доступе к информации. По мнению некоторых отечественных экспертов, для ее преодоления, якобы, достаточно всего лишь «100% обеспечение образовательных учреждений, учреждений здравоохранения, органов государственной власти и местного самоуправления современными услугами цифровой связи»... Про борьбу с «цифровым неравенством» учреждений здравоохранения и органов госвласти промолчу... А вот про образование скажу — «Хошь, как хошь, а маловато будет!» А что, по‑вашему, уважаемые эксперты, получат «преодолев цифровое неравенство» наши «рядовые» школьники? Складывается стойкое убеждение, что единственное, что они получат — это игромания. Где те ресурсы, которые помогут расширить их знания, разовьют полезные навыки? Где (адаптированные на соответствующий возраст) методические материалы, которые сделают доступными нашим детям хотя бы уже имеющиеся в сети Интернет полезные ресурсы, созданные в других странах?
User
Математическая продлёнка. Это же элементарно, Ватсон?
Какие функции принято называть элементарными и почему? И при чём тут Ватсон? Разберёмся со всем по порядку. Обещаю, будет понятно и интересно, хоть и не совсем элементарно.
Когда я был школьником, то моим хобби была охота за функциями, для того чтобы рисовать на миллиметровке их графики, собирая своеобразную коллекцию. Тогда я был вооружён мощным оружием: калькулятором МК-52. До компьютера с графическим, а не текстовым дисплеем (ZX-Spectrum + домашний телевизор), нам всем ещё надо было дорасти, и мне, и доступным мне компьютерам.
Линейная алгебра для разработчиков игр
Как написать эмулятор компьютера
Если вы давно хотели написать свой эмулятор компьютера, самое время начать. Мы нашли полезную статью, написанную уже давно, но всё ещё актуальную.
Пишем виртуальную машину (интерпретатор) простого байткода + JIT компиляция
На Хабре есть две статьи, автор которых пишет виртуальную машину для исполнения простого байткода, а потом применяет различные оптимизации для ускорения этой виртуальной машины. Кроме того, есть и компилятор простого С‑подобного языка в этот самый байткод. Ознакмившись со статьями и этим компилятором, я подумал, что будет интересно изучить, как написать виртуальную машину этого языка, которая сможет делать JIT‑компиляцию байткода с помощью библиотеки libjit. Опыт этого я и описываю в настоящей статье. В интернете есть статьи, описывающие испльзование этой библитеки, но все, что я видел, описывают генерацию машинного кода с помощью libоit для конкретных программ, а не произвольного байткода: есть официальный tutorial, серия статей и ещё серия сравнений на Хабре.
Весь мой код приведён в моём репозитории.
Как я делал внутренний cookbook по тому, как писать код (и результат можно скачать)
Авокадо с зубами подсказывает, что так код легче поддерживать, дописывать и рефакторить. Мы всё теперь пишем только так.
Привет, Хабр! У нас была проблема: каждый писал код как хотел. Было очень тяжело это поддерживать и ревьюить. Мы сначала думали, что достаточно написать стандарт кода. Оказалось, недостаточно, ему ещё надо обучить. Чтобы обучить, мы открыли для ревью эталоны кода, чтобы покрыть ими самую частую логику взаимодействия с компонентами. Тоже не хватило. А заодно я узнал, что мои же «золотые» образцы противоречили моему же стандарту кода (сначала было смешно, а потом пришлось переписывать).
В итоге я сделал кукбук с большим количеством примеров, чтобы объяснить культуру и методологию не через абстракции, а очень предметно. Начал вроде как просто для себя, оказалось полезно — и внедрил в работу команды.
Всё это было нужно для того, чтобы мы все в команде понимали, что такое наш стандарт кода, делали одинаковые вещи примерно одинаково, имели набор готовых шаблонов на системные или платформенные обращения и уменьшили объёмы как самого ревью, так и диалогов после.
Началось с того, что однажды я увидел очередной большой кусок кода, где логика из одного сервиса ушла в другой, а интеграционных тестов было аж 54 штуки. Исправленная опечатка в одном из запросов потребовала трёх часов работы, хотя я заранее знал с точностью до строчки и знака, где именно эта опечатка.
В общем, тот результат, который нас устроил, — это сочетание стандарта, библиотеки шаблонов и книги, как написать приложение. В ней мы делаем демоприложение и через все этапы показываем, почему принималось то или иное решение для реализации кода.
На сегодня ни в одной компании в России я не видел целостного подхода в сборке с кукбуком. Какие-то части встречаются, в сборке — нет. Вот я и хочу рассказать, как мы это сделали у себя в банке.
Посвящается всем, кто коллекционирует элегантные решения без привязки к языку, фрэймворку, Фаундлингам и Software Craftsmanʼам.
Погнали.
Байт-машина для форта (и не только) по-индейски
Да-да, именно «байт» и именно по индейски (не по индийски). Начну по порядку. В последнее время тут, на Хабре, стали появляться статьи о байт-коде. А когда-то давным-давно я развлекался тем, что писал форт-системы. Конечно, на ассемблере. Они были 16-ти разрядными. На x86-64 никогда не программировал. Даже с 32 поиграться не удалось. Вот и пришла такая мысль — а почему бы нет? Почему бы не замутить 64х разрядный форт, да ещё с байт-кодом? Да еще и на Linux, где я тоже ничего системного не писал.
У меня есть домашний сервер с Linux. В общем, я немного погуглил и узнал, что ассемблер на Linux называется GAS, а команда as. Подключаюсь по SSH к серверу, набираю as — есть! Он у меня уже установлен. Ещё нужен компоновщик, набираю ld — есть! Вот так, и попробуем написать что-нибудь интересное на ассемблере. Без цивилизации, только лес, как у настоящих индейцев :) Без среды разработки, только командная строка и Midnight Commander. Редактор будет Nano, который висит у меня на F4 в mc. Как там поет группа «Ноль»? Настоящему индейцу нужно только одного… Что еще нужно настоящему индейцу? Конечно, отладчик. Набираем gdb — есть! Ну что же, нажмем Shift+F4, и вперед!
Создаем свой собственный язык программирования с использованием LLVM. Часть 2: Семантический анализ
В предыдущей статье мы закончили на том, что мы написали лексический и синтаксический анализаторы для нашего учебного языка. В данной статье мы продолжим начатое и рассмотрим следующую стадию анализа исходного кода программы — семантический анализ.
Как создать игру в 2022. Моя история создания игр
Привет. Меня зовут Саня и мне 14 лет, я учусь в 9 классе в Москве. В этой статье я расскажу, как создал свою игру и поделюсь своим опытом в разработке. А также расскажу, как создать игру новичку в 2022 году.
Information
- Rating
- Does not participate
- Date of birth
- Registered
- Activity