Как стать автором
Обновить
28
0.1
Евгений А. Симоненко @easimonenko

Любитель

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

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

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

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

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

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

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

Кто-то из вас наверняка задавался вопросом: а нельзя ли программировать 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);
    }
}
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии24

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

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

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


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

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

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

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

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

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


В декабре 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#
Читать дальше →
Всего голосов 4: ↑2 и ↓20
Комментарии21

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

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

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


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

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии49

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

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

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


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


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


  • Полная компиляция: компиляция кода на Haskell для встраиваемого назначения.
  • Ограниченная компиляция: компиляция некоторого ограниченного подмножества кода на Haskell для встраиваемого назначения.
  • Хостинг EDSL и компилятора: хостинг в Haskell, EDSL и компилятор для встраиваемого назначения.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии3

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

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

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


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


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


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

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

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

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

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


Neo4j Browser: home screen

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии3

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

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

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


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

Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии11

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

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

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


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

Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии34

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

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

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


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


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


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

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

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

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

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


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


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


Читать дальше →
Всего голосов 49: ↑43 и ↓6+37
Комментарии119

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

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

Что такое Makeblock


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

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

Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии18

Информация

В рейтинге
3 331-й
Откуда
Краснодар, Краснодарский край, Россия
Зарегистрирован
Активность

Специализация

Embedded Software Engineer, Application Developer
Linux
Git
Database
Embedded system
Programming microcontrollers
C
System Programming
Assembler