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

Введение

В данной статье мы рассмотрим датчики, которые входят в базовый комплект Lego Mindstorms NXT 2.0, а именно: два датчика касания, датчик цвета, ультразвуковой сенсор (сонар). Рассмотрим сервисы, которые обеспечивают доступ к данным датчикам (рис. 1), напишем простые приложения, которые демонстрируют получение информации с датчиков.

image
Рисунок 1 — Сервисы датчиков
Читать полностью »

Когда я был моложе, мне казалось, что люди работают не ради того, чтобы превосходить кого-то в чем-то, руководить кем-то или зарабатывать больше денег. Мне казалось, что все люди имеют свое любимое дело, что им просто нравится быть пожарными, врачами, инженерами, художниками. Они делают что-то полезное для общества, у них есть идея, они строят свой мир вокруг этой идеи, и конечно же разбираются в том, что делают. Эти люди искренне рады таким же как они. Они добры и счастливы. Многие из нас стали разработчиками именно потому, что чувствовали эту энергию в людях, которые готовы копаться в сложных системах, разбираться в проблемах и стоить вокруг себя мир из сложных системных архитектур и взаимодействий не смотря ни на что.
Читать полностью »

один из шедевров неизвестного программиста
Всем привет. Недавно на просторах интернета наткнулся на очень занимательную вещицу, имя которой Instacode. Чем же занимателен данный сайт — а тем, что он работает по принципу Instagram, только вот изображения генерируются из вашего исходного кода. Не верите? А вы попробуйте. В общем, кому интересно — милости прошу под кат.

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

ТЗ или о чем пойдет речь

Данный пост будет, как правило, интересен студентам, так как подобное задание было получено в качестве лабораторной работы по дисциплине «Лингвистические основы информатики».
Итак, давайте же рассмотрим техническое задание подробнее. Что нам требуется? А требуется нам создать анализатор, который будет разбивать заданный текст на языке Java по классам — ключевым словам, идентификаторам, операторам, пунктуаторам (сепараторам) и т.п., и выводить результат работы в таблицу. Таблица будет содержать следующие столбцы:

  • Токен
  • Спецификатор
  • Описание
  • Позиция
  • Длинна

Напомню, что токен — это последовательности символов в лексическом анализе в информатике, соответствующий лексеме.
Спецификатор описывает к какому классу относится токен. То есть, например, для токена «boolean» в таблице выведется «Keywords».
Ну описание, позицию и длину описывать, я думаю, не стоит.
Вроде бы задание понятно. Теперь разобьем его на подзадачи.
0) Изначально я бы посоветовал изучить спецификацию языка, для которого вы будете писать анализатор. Далее нам нужно:
1) Загрузить массив данных о наших ключевых словах, операторах и пунктуаторах, так как они уникальны.
2) Распарсить заданный текст на токены и определить их классы. (Распарсить — то же самое, что и разобрать, т.е. выбрать эти элементы из текста в переменные)
3) Занести данные о токенах в массив и отсортировать его.
4) Вывести данные в таблицу.
Читать полностью »

Здравствуйте, хочу рассказать о проблеме с которой недавно столкнулась наша команда и о том как нам пришлось учавствовать в подтасовке результатов лотереи.
Читать полностью »

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

Для организации процесса работ над проектом мы решили выбрать популярную методологию Scrum. Отчасти это дань моде, отчасти большое количество публикаций в сети Интернет на тему «Scrum сделал за нас все!».
Читать полностью »

Хотелось бы немного рассказать о подходе повествования в данном посте. Всё описанное имеет реальные случаи произошедшие из моей личной практики, в большинстве своём это популярные проекты, поэтому в тексте буду их упоминать. Главное на что я хотел бы обратить внимание — эта статья может показаться не интересной специалистам ИБ, т.к. она не содержит никаких новых векторов атаки и супер крутых подходов. Вся информация ориентирована на разработчиков и проект-менеджеров.
Проводя заказы на аудит целью ставиться аналитика максимального ущерба при минимальных действиях и знаниях злоумышленника. Как показывает практика в суровых условиях производства ПО такие нюансы продумывают единицы проектов.

Заметки о безопасности. Восстановление пароля

Одной из популярных проблем является восстановление пароля и получение доступа к учётным записям пользователей. Сейчас наверное не существует ни одного сайта где бы не была функция восстановления пароля. Я их поделил на несколько типов, чтобы рассмотреть каждый из них:

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

И так, рассмотрим слабые места каждого из пунктов выше.
Читать полностью »

Введение

Здравствуйте, глубокоуважаемые хабрачане! В первой статье мы рассмотрели в общих чертах программирование в платформе MRDS на примере набора NXT. В данной статье мы узнаем, как управлять непосредственно микрокомпьютером NXT. Напишем несколько простых приложений, демонстрирующих «общение» на программном уровне с управляющим блоком NXT, заставим издавать NXT звуки (приличные и не очень), реагировать на нажатие клавиш, узнаем сколько осталось жить вашему NXT.

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

Превращаем Sublime Text 2 в Notepad++

Сейчас огромную популярность набирает текстовой редактор Sublime Text 2. Я же в давние времена перешел на Notepad++ и много лет им активно пользовался, радуясь и восхищаясь. И когда стали появляться слухи, что Sublime теснит Notepad++, то решил проверить и попробовать на него перейти. Но, к сожалению, обнаружил, что много фишек, которым мне так нравился Notepad++ (не все идут в исходных настройках) я не вижу, несмотря на обилие новых других интересных возможностей. И было решено попробовать настроить Sublime так, чтобы им можно было пользоваться также, как и Notepad++ (с плагинами), имея попутно возможности Sublime Text 2, коих нет в первом редакторе. И да, Sublime Text 2 настраивался в Windows 7.
Читать полностью »

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

Условно проблема выглядит вот так:

###
My awesome class
###
class Awesome
  doFoo : (arg, cb) ->
    unless arg is 42
      return cb Error """
                      only The Answer may be an argument, but got:
                      |arg| = |#{arg}|
                      """
    cb null, "#{arg} is The Answer"

  doBar : (arg, cb) ->
    # hm... arg must be The Answer too

У нас есть кусок кода (тот, что с проверкой), который во-первых похоже потребуется повторить в новом методе, да и вообще отвлекает от основного действа в методе.

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


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