Рубрика «Программирование» - 734

В статье содержится описание опыта использования конструктора Lego Mindstorms EV3 для создания прототипа робота с его последующим программным и ручным управлением при помощи Robot Control Meta Language (RCML).

Далее будут рассмотрены следующие ключевые моменты:

  • Сборка прототипа робота на базе конструктора Lego Mindstorms EV3
  • Быстрая установка и настройка RCML для Windows
  • Программное управление роботом на базе контроллера EV3
  • Ручное управление периферией робота с помощью клавиатуры и геймпада

Забегая немного вперед, добавлю, что для реализации управления Lego-роботом с помощью клавиатуры требуется создать программу, содержащую всего 3 строки программного кода. Подробней о том, как это сделать написано под катом.
Читать полностью »

image

Интерфейс можно считать своеобразным договором между системой и внешним окружением. В рамках компьютерной программы «система» — рассматриваемая функция или модуль, а «окружение» — весь остальной проект. Интерфейс формально описывает, какие данные могут передаваться между системой и окружением. А «реализацию» можно охарактеризовать как «система минус интерфейс». В языках наподобие Haskell интерфейсы могут быть крайне специфическими. А в языках вроде Python они, напротив, очень обыденны. Выбранный тип интерфейса может повлиять на размер созданного технического долга и производительность программиста. О том, как это посчитать, написано ниже. Также будет предложен метод для оценки и сравнения разных интерфейсов. На основании этих сравнений вы сможете сами понаблюдать за способами использования языка или программного инструмента.
Читать полностью »

GitHub и NPM библиотеки.

Агрегат для node.js - 1
какой-то неведомый агрегат, никак не связанный с node.js. Но на хабре считается хорошим тоном приложить картинку

Некоторое время назад я задумался, почему же в node.js работа с реляционными БД, такими как *SQL, и некоторыми noSQL типа Mongo, сложна, и сделал альтернативное решение, заточенное под скорость работы программиста (в сравнении с классическими решениями, заточенных под скорость работы с БД) и прямолинейность и компактность API для минимального порога вхождения. Первым источником вдохновления стал доклад "минимальная поверхность API", вторым — знаменитая цитата Дональда Крута:

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

Читать полностью »

«Интерфейс не должен вредить человеку или своим бездействием допустить, чтобы человеку был нанесен вред». Азимов-Раскин
image
На фото: Джеф Раскин. То чувство, когда ты один знаешь, как сделать интерфейсы правильно, а весь мир делает не так.

Для тех, кто еще не знает Джеф Раскин (Jef Raskin) — специалист по компьютерным интерфейсам, автор статей по юзабилити и книги «The Humane Interface», сотрудник № 31 фирмы Apple Computer, наиболее известен как инициатор проекта Макинтош в конце 70-x.

image

В день рождения (9 марта) старика-бунтаря Раскина, решил поделиться мыслями про интерфейсы в своей жизни. Какой интерфейс помогает лично вам в жизни, служит «усилителем интеллекта»?

Мой первый интерфейс, где я был максимально продуктивен на то время (и под задачи молодости) — DOS Navigator, затем его сменил Total Commander.

Возможно, мой мозг засох после выпуска из универа, но мне кажется, что все, что связано с интерфейсами, с тех пор стало только хуже (субъективно). Я даже перестал искать и пробовать, стал пользоваться первым, что под руку попадется (например, встроенный редактор в Хабре). Но если надо взяться за серьезный проект, где «думать надо», я спрыгиваю из гамака и снимаю лыжи открываю… CorelDraw X3.

Corel — самая крутая штука после белой доски на всю стену и десятка цветных маркеров. В Corel есть ZUI. Стабильный и рабочий ZUI. Для моих задач и того типа информации (много текста и много картинок) которым я оперирую, чтобы «думать», Corel подходит почти идеально (лучшего пока не нашел). Хотя, нет, вроде бы Palantir тоже имеет ZUI. (Радует, что и читатели шевелятся в этом направлении — icefall с его «Тектограммы — новое поколение майндмапов»)

Под катом немного наследия Джефа Раскина.
Читать полностью »

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

«Напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово Fizz, а вместо чисел, кратных пяти — слово Buzz. Если число кратно пятнадцати, то программа должна выводить слово FizzBuzz. Задача может показаться очевидной, но нужно получить наиболее простое и красивое решение.»

Под наиболее простым и красивым решением я понимаю наиболее компактный алгоритм, который использует наименьшее количество условных операторов и операций сравнения. Такой алгоритм будет иметь наименьшую временную сложность, к нему и будем стремиться.Читать полностью »

В Google Summer of Code 2016 вместе с KolibriOS - 1

В этом году проект KolibriOS во второй раз принят к участию в Google Summer of Code. Напомним, что Google Summer of Code (сокращённо GSoC) — инициативная программа компании Google, в рамках которой ежегодно проводится отбор проектов с открытым исходным кодом, в которых могут принять участие студенты. Проекты сами отбирают студентов из всех подавших заявки, а Google выплачивает студентам стипендии за их работу.
Читать полностью »

Захвати и визуализируй! Или гистограмма с микрофона средствами Web Audio API - 1

Я очень люблю «живые» графики. Смертельная скука — смотреть на статичные картинки с цифрами. Мне хочется, чтобы график завораживал, чтобы заставлял человека, который смотрит на него, взаимодействовать и открывать для себя новые грани всех данных на нем. Поэтому любой пример, что попадает мне в руки, и любая библиотека визуализации, которой не повезло оказаться на моей машине, проходит испытание “оживлением”. Вот и в очередной раз, раздумывая, как же еще я могу раскорячить визуализационные виджеты из DevExtreme библиотеки, я задумалась об отображении звука. «Интересно и живо» — подумала я в тот день, запаслась чаем с печеньками и засела за эту задачу. Что у меня в итоге вышло — узнаете под катом.
Читать полностью »

Почему я НЕ являюсь фанатом TypeScript - 1Вашему вниманию предлагается перевод статьи, мнение автора которой я не разделяю абсолютно. Но статья уже собрала множество комментариев, включая поддерживающие. Было бы любопытно обсудить ее на Хабре, благо она небольшая.
Читать полностью »

Привет!

Мы с 2012 года проводим всероссийские чемпионаты по программированию вместе с Codeforces. Участвовать можно с 18 лет. Гражданство в целом не важно, у нас всегда были гости из Казахстана, Украины, РБ и других стран, но язык турнира – русский. Например, в 2013 году было 3500 человек, и первое место взял «терминатор» tourist, а пятое – вот этот парень rng_58 из Японии:

image

Правила – «олимпиадные» задачи, которые нужно решить, плюс «взломы» чужих решений за счёт подбора своих нестандартных наборов данных. Индивидуальный зачёт, в призах 100 тысяч рублей за первое место, 70 тысяч и 50 тысяч — за второе и третье. Как обычно, будет отдельный игровой раунд в финале – нужно будет написать AI для сражения с AI других участников (в прошлом году был хоккей, до этого – битва магов). Приз игрового раунда – ноутбук.

Читать полностью »

Практически все проекты сталкиваются с проблемами, вызванными неправильной обработкой и хранением даты и времени. Даже если проект используется в одном часовом поясе, все равно после перехода на зимнее/летнее время можно получить неприятные неожиданности. При этом мало кто озадачивается реализацией правильного механизма со старта, потому что кажется, что с этим проблем быть не может, так как все тривиально. К сожалению, в последствии реальность показывает, что это не так.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js