По случаю выхода версии 0.11.0 языка Zig я решил написать статью о том, что привлекло меня в языке, что мне в нём нравится. В Zig есть ряд интересных решений. И я рассматриваю его, как альтернативу языку C. Так собственно его позиционируют его создатели. И не без причин. Причина, по которой я решил изучать Zig - я не захотел полноценно учить C. Многое в C исторически устарело. И Zig для меня, как глоток свежего воздуха.
User
Понимая, как используется дисковое пространство в Linux
Сколько пространства занимает этот файл на жёстком диске? Сколько свободного места у меня есть? Сколько ещё файлов я смогу вместить в оставшееся пространство?
Ответы на эти вопросы кажутся очевидными. У всех нас есть инстинктивное понимание работы файловых систем и зачастую мы представляем хранение файлов на диске аналогично заполнению корзины яблоками.
Однако в современных Linux-системах такая интуиция может вводить в заблуждение. Давайте разберёмся, почему.
Каково это — быть операционной системой?
Pier-Luc Brault придумал забавную игру, которая превращает вас в... операционную систему. Некий пользователь загружает нас процессами, которые нужно распределять по свободным CPU. Если мы будем плохо справляться с задачей, пользователь выйдет из себя и перезагрузит нас. Game over.
Распаковка ретро-компьютера «Парус ВИ-201»
Данная распаковка была записана мною ещё в 2016 году. В связи с внезапной деградацией одного из известных ресурсов, на котором она была опубликована ранее, было принято решение перенести статью сюда, чтобы избежать её утери.
Этот компьютер, клон ZX Spectrum 48K в полном комплекте я обнаружил у знакомого инженера, работавшего на заводе СПЗ "Парус" в период 1990-1995 гг. Такие коробки в какой-то момент раздали всем сотрудникам вместо зарплаты, перед закрытием предприятия. На момент съемки она пролежала в таком виде более 20 лет на одной из полок гаража знакомого.
Мечтали про интерактивные книги, когда читали фантастику? Я знаю человека, который делает их прямо сейчас
Каково же было мое удивление, когда в прошлом году я наткнулся именно на такие пусть и не книги, но довольно подробные статьи. Делает их калифорнийский iOS-разработчик польского происхождения Бартош Цехановский (Bartosz Ciechanowski). И каждая его статья — штучный товар.
Простой комплект для изучения сантиметровых радиоволн (СВЧ)
Добрый день, решил написать статью про изготовление простого демонстрационного комплекта для изучения СВЧ радиоволн из максимально доступных компонентов, при этом не ставя под угрозу здоровье любопытствующих. Когда я учился в школе, ходил заниматься в радиотехнический кружок, и на уроках физики все ждал - когда можно будет потрогать руками школьный СВЧ передатчик и приемник, который был представлен в учебнике физики.
WordsFromText: как читать на английском с удовольствием
Цель нашего сервиса — решить эту проблему.
Несколько лет назад мы писали на Хабре об этом сервисе. Идея нашла отклик, сайт приобрел постоянных пользователей, хотя в то время сервис мог только показывать статистику слов из текста. За последние месяцы сервис стал умнее.
Ключевая цель сервиса — дать людям возможность читать и смотреть в оригинале то, что им интересно. И при этом максимально упростить работу с незнакомыми словами.
Эволюция понимания ООП
Язык программирования, помещающийся на почтовой открытке
Ральф Джонсон, один из членов "Банды четырёх", однажды показал, как синтаксис языка Smalltalk-80 можно уместить на почтовой открытке. Сейчас, спустя почти 30 лет после появления первой версии Smalltalk, самым быстроразвивающимся диалектом Smalltalk является Pharo, почтовую открытку которого далее и разберём.
Как делать чистые градиенты
На одном внутреннем мероприятии Илья Полянский рассказал о градиентах и цветовых моделях, а я записал и отредактировал его рассказ.
В работе над редизайном приложения Почты России мы пробовали разные способы подчеркнуть в визуальной коммуникации нашу уникальность. В том числе думали о градиентах. Под градиентами мы понимаем любые объекты, в которых один цвет переходит в другой. К ним можно отнести и тени. Оказалось, с градиентами связано много вопросов (вроде использования их в тёмной теме), и часть из них мы рассмотрели в этой статье.
Полное понимание асинхронности в браузере
- Цикл событий
Задачи, тики и Web API
Очередь задач
16,6 миллисекунды на задачу
Обработка больших задач
Микрозадачи
requestAnimationFrame
requestIdleCallback
Сравнение очередей
Цикл событий в Node.js - Функции обратного вызова
Ад обратных вызовов
Не выпускайте Залго
Жёсткая сцепленность
Проблема доверия - Обещания
Цепочки обещаний и проброс отказа
Неявное поведение
Возвращение нового обещания
Спрятанный try/catch
Thenable-объекты
Статические методы
Promise.all
Promise.race
Promise.any
Promise.allSettled
Промисификация
Обещания или функции обратного вызова?
Корутины - Async/await
Верхнеуровневый await и асинхронные модули
Обработка ошибок
Не все await одинаково полезны - Заключение
WebGL для всех
Идея данной статьи родилась после нескольких мучительных недель изучения WebGL. На личном примере выяснилось, что люди, не сталкивающиеся до этого с 3D-графикой, имеют в основном ошибочные представления о работе данной технологии. К тому же была проблема с поиском информации в интернете.
WebGL, в отличие от Javascript, имеет высокий порог вхождения, его до сих пор мало кто использует, а ещё меньше тех, кто об этом пишет. Большинство руководств или статей перепрыгивают сразу на использование какой-нибудь библиотеки. Но мы-то с вами знаем, что большие универсальные инструменты не всегда пригодны для наших задач или, возможно, делают это на неприемлемом уровне: проигрывают в скорости, поставляются с ненужным багажом и т.д.
Этой статьёй хочется облегчить порог вхождения в чистый WebGL, дать начальное представление и подсказать, куда двигаться дальше.
Настоящий многопоточный веб-сервер на ассемблере под Linux
Сегодня я вам расскажу как написать свой настоящий веб-сервер на асме.
Сразу скажу, что мы не будем использовать дополнительные библиотеки типа libc. А будем пользоваться тем, что предоставляет нам ядро.
Уже только ленивый не писал подобных статей, — сервер на perl, node.js, по-моему даже были попытки на php.
Вот только на ассемблере еще не было, — значит нужно заполнить пробелы.
Создание операционной системы на базе ядра linux. С нуля
Я хочу создать ОС на базе Linux.
Сразу предупреждаю: был бы XVIII век, всех тех, кто для основы своей будущей системы выбирает другой развитый дистрибутив (и, не дай Бог, популярный...) ждала бы виселица. Пост именно про создание системы с нуля, а значит, всякие Slax и Linux Mint мы трогать не будем.
Как собирать, хранить и поставлять водород
В прошлый раз мы выяснили , что в обозримой перспективе себестоимость производства водорода снизится настолько, что этот газ станет конкурентоспособным энергоносителем на транспорте и в энергетике. Но есть ещё одна потенциальная проблема водородной экономики: хранить, транспортировать и поставлять H2 не так просто, как кажется. В этот раз мы расскажем, какие технологии решат эти задач и не «съедят» ли транспортные издержки прибыль будущих водородных магнатов.
Десять уроков от математика Джан-Карло Рота, которые он сам хотел бы усвоить
Сегодня, 27 апреля, могло бы исполниться 90 лет Джан-Карло Рота* — итальянскому математику и философу, выдающемуся специалисту в области комбинаторики и основателю ежегодного издания Advances in Mathematics. Имя Рота и результаты его трудов (главным из них стали «Основы комбинаторики» — серия из десяти работ) хорошо знакомы не только в академических кругах, но и многим ИТ-специалистам. В том числе сотрудникам департамента разработки МойОфис.
Вместе с коллегами мы перевели лекцию, которую Джан-Карло Рота прочитал в апреле 1996 года в Кембридже. Позже лекция была опубликована в виде статьи и перепечатана с разрешения издательства Birkhauser Boston в 1997 году журналом Notices of the American Mathematical Society. Под катом вы найдете ее полный текст. Изложенные в ней советы ориентированы не только на математиков и будут полезны всем, кто время от времени участвует в обмене специальными знаниями. А именно: читает лекции, проводит мастер-классы, публикует доклады и исследования.
*Обращаем ваше внимание, что позиция автора не всегда может совпадать с мнением МойОфис.
Пишем эмулятор Game Boy на OCaml
Введение
Последние несколько месяцев я работал над проектом под названием CAMLBOY — эмулятором Game Boy, написанным на OCaml, который работает в браузере. Протестировать его можно на следующей странице демо:
Страница демо
Я добавил в демо несколько неофициальных ROM, поэтому в них можно поиграть (рекомендую Bouncing ball и Rocket Man Demo). Также можно поиграть в них в мобильном браузере, на современных смартфонах эмулятор работает с частотой 60 FPS.
Репозиторий
Репозиторий находится здесь:
https://github.com/linoscope/CAMLBOY
My4TH — домашний компьютер без процессора
Этот обзор посвящен открытому проекту компьютера My4TH по информации от разработчика: Авторский сайт проекта:
My4TH (произносится как "мой четвертый") - это четвертый домашний компьютер без процессора после MyCPU, MyNOR и TraNOR. Автор хотел и построил максимально простой компьютер с дискретным процессором, использующим как можно меньше элементов и компонентов, под управлением операционной системы Forth.
Основные приемы работы с Canvas [Part 1]
Привет! Сегодня я хотел бы начать цикл статей на тему того, как работать с canvas в HTML5 и как применять знания в области матанализа для реализации необычных и интересных эффектов.
Все навыки и умения, которые мы получим здесь, являются фундаментальными принципами и могут быть использованы для создания различных эффектов в играх и приложениях.
Сегодня мы рассмотрим, как рисовать различные фигуры, и реализуем алгоритм fibonacci flower, также известный как golden ratio или phyllotaxis.
Strace в Linux: история, устройство и использование
В Unix-подобных операционных системах общение программы с внешним миром и операционной системой происходит через небольшой набор функций — системных вызовов. А значит, в отладочных целях полезно бывает подсмотреть за выполняемыми процессами системными вызовами.
Следить за «интимной жизнью» программ на Linux помогает утилита strace
, которой и посвящена эта статья. К примерам использования «шпионского» оборудования прилагаются краткая история strace
и описание устройства подобных программ.
Information
- Rating
- Does not participate
- Registered
- Activity