Here I will tell you how to do it.
Некоторое время назад я разработал режим GNU Emacs для редактирования конфигурационных файлов операционной системы Embox. Кроме всестороннего изучения Emacs Lisp мне потребовалось разобраться со структурой модуля режима, а также процессом и требованиями к публикации пакетов в MELPA, наиболее популярном архиве пакетов для GNU Emacs. В этом руководстве я расскажу, что нужно знать, чтобы написать свой собственный режим, и как опубликовать свой собственный пакет.
;;;###autoload
(define-derived-mode mybuild-mode prog-mode "Mybuild"
"Major mode for editing Mybuild files from Embox operating system."
:syntax-table mybuild-mode-syntax-table
(setq-local comment-start "// ")
(setq-local comment-end "")
(setq-local indent-tabs-mode nil)
(setq-local indent-line-function 'mybuild-mode-indent-line)
(setq-local font-lock-defaults '(mybuild-highlights)))
Короткий туториал о том, как создать зашифрованный /home
в уже установленном Linux, если вы не сделали это во время установки. Здесь будут описаны необходимые действия в среде Ubuntu Desktop, но большинство информации должно быть актуально и в других вариантах Linux. Мы будем использовать тот де метод, что и установщик системы: связку Device Mapper и LUKS.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: автор этого туториала не даёт гарантии, что повторение описанных в нём действий, не причинит вреда. Используйте его на свой страх и риск!
Полгода назад я вёл в Телеграме канал о языке Rust. Канал я закрыл, и сделал выжимку из материалов, опубликованных в нём. Здесь я расскажу о том, как настроить среду разработчика на Rust в Linux, GNU Emacs и Visual Studio Code и как запрограммировать Arduino Uno на моргание светодиодом.
#![no_std]
#![no_main]
use ruduino::Pin;
use ruduino::cores::current::{port};
#[no_mangle]
pub extern fn main() {
port::B5::set_output();
loop {
port::B5::set_high();
ruduino::delay::delay_ms(1000);
port::B5::set_low();
ruduino::delay::delay_ms(1000);
}
}
В недавно вышедшем Ubuntu Linux 22.04 LTS Ruby был обновлён с версии 2.7 на 3.0. Если вы обновили систему на новую версию без переустановки, то ожидаемо ранее установленные gem перестали работать. В этой статье будут описаны начальные шаги по реанимации после обновления Ruby.
Язык запросов Cypher изначально разработан специально для графовой СУБД Neo4j. Целью Cypher является предоставить человеко-читаемый язык запросов к графовым базам данных похожий на SQL. На сегодня Cypher поддерживается несколькими графовыми СУБД. Для стандартизации Cypher была создана организация openCypher.
Основы работы с СУБД Neo4j описаны в Основы работы с Neo4j в браузере.
Для знакомства с Cypher рассмотрим пример генеалогического дерева заимствованный из классического учебника по Прологу за авторством И. Братко. На этом примере будет показано как добавлять узлы и связи в граф, как им назначать метки и атрибуты и как задавать вопросы.
В статье рассматривается как начать работать с графовой СУБД Neo4j, используя Neo4j Browser. Это руководство может быть полезным как дополнение к книге Редмонда и Уилсона “Семь баз данных за семь недель”, так как рассматриваемый веб-интерфейс был полностью переработан, а также к книге “Графовые базы данных” (Робинсон, Вебер, Эифрем), так как в ней этот вопрос вообще не рассматривается. Статья рассчитана на приступающих к изучению Neo4j. Те, кто уже знаком с этой СУБД, могут смело её пропустить.
С момента публикации статьи Инструменты разработчика на языке Elm прошло полтора года. За это время в инструментарии для языка разработки веб-интерфейсов Elm произошли многочисленные изменения: появилась более удобная система сборки с возможностью генерации нового проекта; для редактора Atom набор дополнений в некоторых отношениях теперь лучше, чем для популярного тогда среди разработчиков на Elm редактора LightTable; заработал инспектор состояния приложения. Давайте пройдёмся по этому набору на простом примере.
В статье рассматривается как установить, настроить и запустить графовую СУБД Neo4j в среде Linux.
Это руководство по утилите командной строки oai-pmh, предназначенной для получения информации с серверов с интерфейсом OAI-PMH. Эта утилита выводит информацию в формате JSON, который может быть более удобен при использовании с языком JavaScript. Для примеров используется arXiv.org. Результаты выполнения команд приводятся на момент написания этой статьи.
Node.js, как и другие среды разработки, предоставляет базовые средства работы с
опциями командной строки. В нашем случае это массив process.argv
. Но обычно,
кроме простейших случаев типа A + B, обрабатывать опции командной строки
вручную очень неудобно. Для этого есть несколько популярных пакетов. Я написал
небольшую программу, которая построила сводную таблицу по этим пакетам,
выбрал из них три самых популярных и рассмотрел их поближе. (Материал статьи на
7 января 2020 года по прежнему актуален, сводная таблица обновлена и дополнена.)
В статье рассматривается как начать работать с Iskra JS в среде Linux, как настроить доступ к плате по USB, как установить и использовать среду Espruino IDE.
В этой статье рассматривается как начать использовать PlatformIO с Atom для разработки скетчей для Arduino в среде Linux.
Elm это функциональный язык программирования для разработки веб-приложений, работающих в браузере. Elm строгий, статически типизированный. Elm похож на Haskell, однако это лишь поверхностное сходство, ведь Elm изначально заточен для быстрой разработки веб-приложений. Эта статья представляет из себя шпаргалку для начинающих по основам разработки на языке Elm, а именно, здесь рассматривается организация проекта, инструментарий Elm и среда разработки Light Table. Часть шагов, если не актуально или не применимо, можно пропустить.
Без лишних слов маленький пример различия результов одного и того же кода на JavaScript и TypeScript.
const a = [1, 2, 3, 4, 5];
var s = 0;
for (var v in a) {
s += v;
}
console.log(s);
JavaScript выводит (WTF? Неожиданно? Для специалиста JavaScript нет…):
001234
TypeScript даже не компилируется (и это хорошо!):
sample.ts(5,3): error TS2322: Type 'string' is not assignable to type 'number'.
Шпаргалка по ручному созданию проекта JavaScript или TypeScript с использованием Visual Studio Code.
В этой заметке рассказывается как добавить синтаксическую подсветку в Hakyll для файлов в формате Markdown .
Эта заметка дополняет предыдущую, в которой я описываю работу с сервисами Git в качестве хостингов для статических сайтов, и содержит два замечания для тех, кто использует Hakyll.
Предыдущую заметку я закончил словами о том, что статические сайты можно публиковать на Git-сервисах.
Если Вы знакомы с системами управления версиями, то преимущества данного подхода Вам должны быть понятны. Если же Вы не знакомы, то вот они:
Отдельное преимущество Git-сервисов заключается также в том, что Ваш сайт обновляется автоматически с обновлением соответствующего хранилища файлов сайта (репозитория).
В заметке описывается процесс подготовки к использованию Hakyll для создания статических сайтов.
В этой заметке даётся краткий обзор статических генераторов, с которыми автор познакомился за последние несколько дней, окончательно решив перейти с доморощенной системы генерации на промышленную (см. об этом мой пост Два точка ноль).
Я потратил несколько дней на ознакомление с различными системами управления статическими сайтами. Здесь же хочу выделить особо:
Несколько слов о каждой.