Pull to refresh
45
49
Евгений А. Симоненко @easimonenko

Любитель

Send message

Создание режима GNU Emacs для C-подобного языка

Level of difficultyHard
Reading time6 min
Views1.2K

Недавно я разработал ещё один режим GNU Emacs для C-подобного языка программирования C2. Если в предыдущий раз для другого C-подобного языка я написал код с нуля, то в этот раз решил воспользоваться возможностью так называемого наследования режимов. В этой статье хочу поделиться с вами как это делается, и что у меня из этого вышло. (Предполагается, что читатель ознакомился с материалом предыдущей статьи Как написать свой режим для GNU Emacs и опубликовать его в MELPA или имеет собственный уникальный опыт разработки режимов GNU Emacs.)

Читать далее

Свободные инструменты для программирования FPGA

Level of difficultyMedium
Reading time4 min
Views2.8K

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

Читать далее

Программирование FPGA Gowin с использованием свободных инструментов

Level of difficultyMedium
Reading time3 min
Views3.3K

Краткая инструкция, о том, как запрограммировать чип FPGA Gowin с использованием только свободных программных инструментов и комплекта Sipeed Tang Primer 20K Dock.

Читать далее

Ретро Linux на ретро-ноутбуке

Level of difficultyEasy
Reading time9 min
Views9.2K

Недавно мне захотелось поностальгировать, освежить ощущение от Linux спустя 25 лет, как я с ним познакомился. Я нашел в закромах старые диски с Linux, взял из своей коллекции старый ноутбук тех лет и поставил на него такой же старый Linux.

Читать воспоминания и смотреть кучу фото

Как организовать свой Zettelkasten в GNU Emacs

Level of difficultyEasy
Reading time6 min
Views2.5K

Вам нравится пользоваться GNU Emacs, но вы ещё не используете его для ведения своего Zettelkasten? В статье мы немного поговорим о собственно Zettelkasten, а затем о том, как настроить и использовать Org-roam с этой целью. На снимке выше вы видите Emacs с двумя связанными друг с другом заметками и визуализуцию графа в браузере, в котором выделен узел одной из открытых заметок и все связанные с ним. Интересно? Тогда читайте дальше.

Читать далее

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

Level of difficultyHard
Reading time13 min
Views2.6K

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

Запускаем свой Emacs!

Программируем Arduino Uno на Rust: настраиваем среду и моргаем светодиодом

Level of difficultyMedium
Reading time8 min
Views19K

Кто-то из вас наверняка задавался вопросом: а нельзя ли программировать Arduino на чём-то более современном и удобном? Вот и я задавался. И нашёл Rust (не то, чтобы я о нём не знал). И на нём можно программировать микроконтроллеры AVR и платы Arduino, построенные на них. И здесь я расскажу о том, как настроить среду разработчика на 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);
    }
}
Читать дальше →

Обзор языка функционального программирования Koka

Level of difficultyMedium
Reading time5 min
Views8K

Как-то заглянув на GitHub, обнаружил Koka — язык функционального программирования со статической типизацией. Koka разрабатывается с 2012 года Daan Leijen в Microsoft Research, USA. Его исходники выкладываются на GitHub под лицензией Apache 2.0. Как признаются его авторы, он ещё не готов для промышленного применения: у него нет библиотек, менеджера пакетов и полной поддержки в средах разработки. При этом сам язык достаточно стабилен, а компилятор полностью разработан. Отдельными моментами язык напоминает Rust, Haskell и Scala. Сам же по себе он интересен контролем побочных эффектов. Это его основная фишка. Приглашаю познакомиться с Koka и обсудить его свойства.


fun main(): console ()
  println("Hello, World!")

Сначала пробежимся по свойствам языка, а затем рассмотрим один небольшой пример.

Читать дальше →

Как мы узнаём, какой язык программирования самый популярный

Level of difficultyEasy
Reading time6 min
Views10K

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


В декабре 2021 года Python остается одним из самых популярных языков программирования. Об этом мы узнаем из рейтингов IEEE Spectrum, TIOBE, PYPL. Однако рейтинги GitHub Octoverse и Stack Overflow Annual Developer Survey сообщают нам, что Python на 2-м месте, а GitHut, что лишь на 3-м. А самым популярным является JavaScript. Дело в том, что у разных рейтингов разные задачи и методики подсчета. А значит пора разобраться, как устроены эти рейтинги и для чего они нужны.


Место TIOBE IEEE Spec. PYPL GitHub Oc. Stack Overf. GitHut
1 Python Python Python JavaScript JavaScript JavaScript
2 C Java Java Python HTML / CSS Java
3 Java C JavaScript Java Python Python
4 C++ C++ C# TypeScript SQL CSS
5 C# JavaScript C / C++ C# Java PHP
6 Visual Basic (.Net) C# PHP PHP Node.js Ruby
7 JavaScript R R C++ TypeScript C++
8 Assembly Language Go Swift Swift C# C
9 SQL HTML Objective-C C Bash / Shell Shell
10 Swift Swift Matlab Ruby C++ C#
Читать дальше →

Как учиться в университете, чтобы было интересно и полезно

Level of difficultyEasy
Reading time8 min
Views20K

Этот пост изначально должен был быть ответом на пост "Честный рассказ об образовании в IT. Стоит ли оно того?", однако, по-видимому, вышел за эти пределы и может рассматриваться как самостоятельное произведение.


Нам часто приходится читать в подобных постах, а также слышать из уст студентов и выпускников, что их ожидания от учёбы в университете не оправдались. Эту проблему можно рассматривать с разных сторон. Я коснусь лишь некоторых аспектов. А именно, тех, которые относятся ко взаимодействию университетов и студентов. Итак, давайте разберём сетования автора исходного поста, сформулируем причины происходящего, и дадим вновь поступающим советы о том, как отучиться в университете, и не пожалеть, о том, что это было скучно и бесполезно.

Читать дальше →

Встраивание Haskell: компиляторы и компиляция компиляторов

Reading time5 min
Views4.2K

Эта статья является переводом поста Chris Hodapp Embedding Haskell: Compilers, and compiling compilers В своём посте автор рассматривает различные подходы к использованию Haskell для написания кода для встраиваемых систем. Предоставим слово автору.


В моем последнем посте упоминалось, что некоторые вещи требуют лучшего объяснения, потому что я всегда пытаюсь объяснить и уточнить.


Этот блог посвящен использованию Haskell со встраиваемыми системами. Что это хотя бы значит? Мы видим пару широких категорий (которые отражают слайды на последней странице, а также наша страница ссылок):


  • Полная компиляция: компиляция кода на Haskell для встраиваемого назначения.
  • Ограниченная компиляция: компиляция некоторого ограниченного подмножества кода на Haskell для встраиваемого назначения.
  • Хостинг EDSL и компилятора: хостинг в Haskell, EDSL и компилятор для встраиваемого назначения.
Читать дальше →

Введение в язык запросов Cypher

Level of difficultyMedium
Reading time10 min
Views20K

Язык запросов Cypher изначально разработан специально для графовой СУБД Neo4j. Целью Cypher является предоставить человеко-читаемый язык запросов к графовым базам данных похожий на SQL. На сегодня Cypher поддерживается несколькими графовыми СУБД. Для стандартизации Cypher была создана организация openCypher.


Основы работы с СУБД Neo4j описаны в статье Основы работы с Neo4j в браузере.


Для знакомства с Cypher рассмотрим пример генеалогического дерева заимствованный из классического учебника по Прологу за авторством И. Братко. На этом примере будет показано как добавлять узлы и связи в граф, как им назначать метки и атрибуты и как задавать вопросы.


Генеалогическое дерево в Neo4j, отредактированный вид

Читать дальше →

Основы работы с Neo4j в браузере

Level of difficultyEasy
Reading time3 min
Views18K

В статье рассматривается как начать работать с графовой СУБД Neo4j, используя Neo4j Browser. Это руководство может быть полезным как дополнение к книге Редмонда и Уилсона "Семь баз данных за семь недель", так как рассматриваемый веб-интерфейс был полностью переработан, а также к книге "Графовые базы данных" (Робинсон, Вебер, Эифрем), так как в ней этот вопрос вообще не рассматривается. Статья рассчитана на приступающих к изучению Neo4j. Те, кто уже знаком с этой СУБД, могут смело её пропустить.


Neo4j Browser: home screen

Читать дальше →

Инструменты разработчика на языке Elm

Reading time7 min
Views8.3K

С момента публикации статьи Основы разработки на языке Elm (руководство по инструментарию для начинающих) прошло полтора года. За это время в инструментарии для языка разработки веб-интерфейсов Elm произошли многочисленные изменения: появилась более удобная система сборки с возможностью генерации нового проекта; для редактора Atom набор дополнений в некоторых отношениях теперь лучше, чем для популярного тогда среди разработчиков на Elm редактора LightTable; заработал инспектор состояния приложения. Давайте пройдёмся по этому набору на простом примере.


Инструменты разработчика на языке Elm: обложка

Читать дальше →

Обзор пакетов Node.js для разбора опций командной строки

Level of difficultyMedium
Reading time9 min
Views25K

Node.js, как и другие среды разработки, предоставляет базовые средства работы с опциями командной строки. В нашем случае это массив process.argv. Но обычно, кроме простейших случаев типа A + B, обрабатывать опции командной строки вручную очень неудобно. Для этого есть несколько популярных пакетов. Автор написал небольшую программу, которая построила сводную таблицу по этим пакетам, выбрал из них три самых популярных и рассмотрел их поближе.


(Материал статьи на 7 января 2020 года по прежнему актуален, сводная таблица обновлена и дополнена.)

Читать дальше →

Основы разработки на языке Elm (руководство по инструментарию для начинающих)

Reading time4 min
Views23K

От автора: вместо этой статьи рекомендую прочитать более актуальную Инструменты разработчика на языке Elm.


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


Эта статья представляет из себя шпаргалку для начинающих по основам разработки на языке Elm, а именно, здесь рассматривается организация проекта, инструментарий Elm и среда разработки Light Table.


LightTable с запущенным приложением на Elm

Читать дальше →

Памятка начинающего преподавателя, или почему не стоит работать преподавателем в вузе

Level of difficultyEasy
Reading time18 min
Views163K

Примечание.Прошло пять лет, как было опубликовано это эссе. Перед его прочтением читателю нужно знать следующее: эссе было написано вскоре после ухода из вуза и ощущается негативным, к тому же в нём много личного. Коллега с другим характером и другим опытом работы, наверное, о том же самом написал бы по-другому. Я с удовольствием продолжаю периодически читать лекции, развивать образовательные программы, учить современным вещам. Но так же я вижу, что за эти пять лет ситуация с преподавательской работой не стала лучше. И мне очень жаль, что я по прежнему не могу сказать молодому выпускнику: иди преподавать в университет. Правда, жаль! О том, почему так, и было написано это эссе. 3 июля 2020.


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


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


Читать дальше →

Обзор Makeblock Starter Robot Kit V2.0. Часть 1. Распаковываем

Level of difficultyEasy
Reading time4 min
Views48K

Так случилось, что сегодня я стал обладателем конструктора для продвинутых Makeblock Starter Robot Kit V2.0. Так как в Рунете не нашёл ни одного обзора этого не совсем обычного и, на мой взгляд, интересного конструктора, решил поделиться своими впечатлениями об этом продукте. Сегодня расскажу о том, что такое Makeblock Starter Robot Kit V2.0, и что входит в его комплектацию, попутно сопровождая немногословный рассказ фотографиями.



Что такое Makeblock


Makeblock — это открытая платформа для конструирования, разработанная в Шэньчжэнь, Китай. Выпускает и продаёт Makeblock одноимённая компания. Кроме открытости для Makeblock также характерны:



  • прочные анодированные алюминиевые детали двух цветов (голубого и золотистого);
  • электроника на базе контроллера, совместимого с Arduino;
  • возможность использования деталей LEGO Mindstorms, включая моторы.

Читать дальше →

Information

Rating
197-th
Location
Краснодар, Краснодарский край, Россия
Registered
Activity

Specialization

Embedded Software Engineer, Content Writer
Linux
Git
Database
C
System Programming
Assembler