Pull to refresh
19
0
Владимир Тарасов @Net_Rat

User

Send message

Программирование и JTAG-отладка микроконтроллера Atmega16 на языке C в среде IAR, часть 1

Reading time17 min
Views107K


Введение


По моему мнению, чтобы быстро научится программировать практически любой микроконтроллер, существующий в мире, нужно освоить язык C и пользоваться JTAG-отладкой, конечно, помимо изучения технической документации. Поясню свою мысль. Компиляторы языка C существуют практически для всех существующих микроконтроллеров. Поэтому язык С давно зарекомендовал себя, как кроссплатформенный ассемблер. Его знание освобождает от необходимости изучения ассемблерных команд для каждого нового семейства микроконтроллеров. JTAG-отладка, в свою очередь, обеспечивает не только возможность внутрисхемного поиска ошибок, но и помогает изучать микроконтроллер изнутри. Я думаю, что для всех очевиден тот факт, что при просто программировании без отладки даже простых микроконтроллеров мы подходим к изучению системы, как к черному ящику с входами и выходами. Такой подход, особенно на начальном этапе, затрудняет обучение. C другой стороны JTAG-отлдака позволяет забраться во внутрь, посмотреть как выполняется программа по шагам, посмотреть, что происходит в памяти и регистрах, запустить волнение до точек останова, выполнять дизассемблированный вариант программы. Эта возможность позволяет значительно ускорить обучение.
Читать дальше →

Linux для профессионалов: видео-монтаж (и немножко композинг)

Reading time9 min
Views85K
Привет коллеги. Думаю, пришло время продолжить начатый некогда цикл «Linux для профессионалов». Сегодня я бы хотел рассказать о монтаже видео на примере ролика, который мы сняли прошлым летом для нашей пражской затеи с электронным GPS аудио-путеводителем.

Собственно ролик (если быть точным, то это демонстрационный мини-фильм).



Весь цикл постобработки и монтажа выполнен с использованием программного обеспечения под управлением ОС Linux.

По-правде говоря, есть один нюанс. Я для подготовки титров сперва использовал AI, запущенный под Wine. Связано это было отчасти с тем, что я, будучи скован врененными рамками, не уделил должное внимание поиску native альтернатив. В действительности, как оказалось, такая альтернатива, вполне лежащая на поверхности, существует. Ниже расскажу подробнее.

Итак, по-порядку.
Читать дальше →

Интересные приемы программирования на Bash

Reading time6 min
Views133K
Эти приемы были описаны во внутреннем проекте компании Google «Testing on the Toilet» (Тестируем в туалете — распространение листовок в туалетах, что бы напоминать разработчикам о тестах).
В данной статье они были пересмотрены и дополнены.
Читать дальше →

Счет на оплату. Рабочее приложение на sails.js, ractive.js, Backbone.js

Reading time20 min
Views35K


Доброго дня, на выходных от скуки и отсутствия работы решил себя развлечь написанием небольшого приложения, которое сгодится в качестве учебного метариала для изучения возможностей двух замечательных библиотек — ractive.js и sails.js

Постановка задачи

По работе часто приходится после выполенения очередного задания (я — фрилансер) выставлять заказчику счет на оплату услуг. Тем более если имеешь дело с юридическими лицами. Для этого я использовал простой html-шаблон, в который данные заносил руками, исправляя очередные …

Выглядит примерно так
Читать дальше →

Huginn: агенты в стиле Yahoo Pipes и IFTTT на своём сервере

Reading time1 min
Views6.8K


Huginn — система программирования агентов и выполнения разнообразных задач в онлайне, сделанная по образцу Yahoo Pipes и IFTTT, но только для установки на собственный сервер. В Huginn мы сами контролируем собственные данные и не зависим от ограничений третьей стороны.
Читать дальше →

Интеграция Android Studio, Gradle и NDK

Reading time5 min
Views47K
В свете недавних изменений (начиная с релиза 0.7.3 от 27 декабря 2013) новая система сборки под Android становится очень интересной в том числе и для тех, кто использует NDK. Теперь стало действительно просто интегрировать нативные библиотеки в вашу сборку и генерировать APK для различных архитектур, корректно обращаясь с кодами версий.
Читать дальше →

Использование GPIO из Python на Raspberry Pi

Reading time2 min
Views120K
Делюсь своим опытом, полученным при изучении задачи вынесенной в заголовок. В статье рассматриваются два варианта работы, которые можно использовать в Python-программах, обращающихся к портами GPIO Raspberry Pi.

Порты GPIO Raspberry Pi выглядят следующим образом:

image

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

Нелицеприятный тест вашего Agile

Reading time5 min
Views54K


Когда-то мне доводилось участвовать в попытках внедрения Agile в команде, разрабатывающей ПО. В регулярных дискуссиях, стараясь, чтобы это внедрение не превратилось в карго-культ, я снова и снова цитировал пост в блоге Элизабет Хендриксон. Ему уже больше трёх лет, но мне он нравится, и я бы хотел представить вашему вниманию (и вашей борьбе с карго-культом) перевод этого поста.
Читать дальше →

Как сверстать веб-страницу. Часть 2 — Bootstrap

Reading time19 min
Views699K

Введение


Уважаемый читатель, эта статья является второй частью цикла статей, посвященных вёрстке.

В первой части мы верстали шаблон Corporate Blue от студии Pcklaboratory с помощью стандартных средств на чистом HTML и CSS. В данной статье мы попробуем сверстать этот же шаблон, но с помощью CSS фреймворка Bootstrap 3.
Читать дальше →

Удобная работа в консоли, или красим STDERR в красный цвет

Reading time7 min
Views21K

Работа в консоли


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

Практическое руководство по Jekyll

Reading time9 min
Views65K
Jekyll на Хабрахабре уже светился. Коротко говоря: это система генерации статических сайтов, ориентированная на блоги. Основная особенность: используется на Github Pages, что позволяет держать исходники сайта в репозитории на Github — а несколько кэширующих серверов его в пределах 10 минут после коммитов будут собирать и отображать посетителям. Если интересно больше и коротко: рекомендую к прочтению эту статью, часть материала которой я упомяну и здесь. А я расскажу о Jekyll поподробнее: как им можно пользоваться по назначению, для чего им пользоваться не по назначению, и на что он вообще способен. Статья ориентирована больше на тех, кто ни с чем подобным ранее не работал (как я, работавший ранее с WordPress), и в большей части статьи Jekyll будет рассматриваться именно как средство ведения блога, хотя ближе к концу будет нечто совсем другое.

Из всех существующих платформ для блогов (движков, сервисов, генераторов) Jekyll мне показался странно выделяющимся. Это скорее моя вина, потому что статическими сайтами я увлёкся не так давно и аналогов не знаю. Jekyll ориентирован на технически грамотных людей, которых больше интересует использование блога по его прямому назначению: публиковать посты в обратном хронологическом порядке, а также обеспечивать более-менее удобную навигацию. Если вам нужно больше, придётся либо попотеть, либо отказаться от большего (ну, или от Jekyll). И такой способ «общения» во многом определяет круг пользователей этой платформы: те, кому нужен сайт с предельно понятной им структурой и минимумом проблем в публикации новых постов.
Читать дальше →

Ruby: cheatsheet для изучения

Reading time14 min
Views60K
Это — статья-roadmap-cheatsheet для изучающих Ruby. Вместо того, чтобы рассказывать очередной how-to я постараюсь расписать все те вещи, которые, на мой взгляд, можно изложить кратко и емко, с упором на то, что программисту пришедшему с других языков и платформ может показаться не очевидным, антипоисковым и просто затратным по времени на изучение без подсказок — на остальное просто дам ссылки. Не смотря на то, что в природе существует множество туториалов/кастов/книг/чего угодно по чему угодно — именно такого формата мне самому всегда не хватает. И по сути, это те вещи, которые чаще всего рассказываю при вопросах «а как оно вообще?», «с чего начать?», «а как делается такая вот штука?», «а какой gem лучше?». Кстати, пока работал над этой статьей на Хабре появилась похожая про Python — видимо, идея витает в воздухе.
Читать дальше →

Несколько полезностей по работе с NPM

Reading time2 min
Views90K
image

NPM — пакетный менеджер для node.js, аналог GEM в RoR. В статье несколько советов по его использованию.

Установка пакетов


Все знают
# Устанавливает пакет express
npm install express

Какие варианты еще есть?
Читать дальше →

Разработчики из Google сделали эмулятор Amiga 500 для Chrome

Reading time1 min
Views13K


Portable Native Client от Google позволяет веб-приложению использовать аппаратное обеспечение ПК или ноутбука так же, как это делало бы нативное ПО. Таким образом, разработчики могут создавать веб-игрушки, сервисы и более сложное ПО, которое работает из браузера так же, как должны работать «обычные» приложения.

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

Создание собственных драйверов под Linux

Reading time24 min
Views210K


Многие мои друзья и знакомые крутят пальцем у виска или задаются вопросом: не жмёт ли мне череп, когда узнают, что я пишу драйвера под Linux. Слово “драйвер” окутано каким-то почти мистическим смыслом, и постичь Дао его написания способны лишь избранные гуру.
К счастью это не так. Не знаю, как обстоят дела с написанием драйверов под другие операционные системы, в т.ч. и наиболее популярные, но под linux, вне зависимости от аппаратной архитектуры драйвера пишутся очень просто. Для написания драйвера необходимы базовые знания языка си, представление о работе ОС линукс (базовые), понимание того, что мы хотим получить, желание чтения документации и исходных кодов, ну и усидчивость. Всё.
Вы хотите посмотреть как написать драйвер для своего устройства? Тогда ныряйте под кат!
Читать дальше →

Делаем USB-ключ из Arduino для обхода беспарольной авторизации

Reading time5 min
Views24K
Обход беспарольной авторизации уже давно будоражит умы компьютерных энтузиастов. При мыслях о биометрике по спине проходит холодок: ну а вдруг как отрежут палец или вырвут глаз? А самый гуманный и уже никого не удивляющий способ — это, конечно, USB-ключи.

На очном туре NeoQUEST-2013 мы предложили участникам взломать авторизацию на базе созданного нами USB-ключа, сделанного из Arduino. Для успешного прохождения задания участникам нужно было самим подделать USB-ключ, реализовав на Arduino довольно примитивный механизм авторизации, заключающийся в перемножении нескольких матриц. На первый взгляд, всё просто, однако задание было не без «подводных камней». О том, как тривиальная задача перемножения матриц на Arduino может вызвать затруднения у крутых специалистов, способных без проблем написать драйвер, хакнуть ботнет, и вообще обойти практически любую технологию защиты, читайте под катом.
Читать дальше →

Sublime + COLT. Добавь интеллекта своему IDE

Reading time3 min
Views21K
Мы сделали интеграцию COLT с Sublime. Изменения настолько значительные, что мы даже добавили после точки единицу и теперь COLT имеет версию 1.2.5.
Читать дальше →

Базы знаний. Часть 2. Freebase: делаем запросы к Google Knowledge Graph

Reading time24 min
Views41K
image
Больше года назад Google объявил, что отныне в их поиске используется таинственная Сеть Знаний (официальный перевод Knowledge Graph). Возможно, не все знают, что значительная часть данных Сети доступна для использования всеми желающими и доступна по прекрасно описанному API. Этой частью является база знаний Freebase, поддерживаемая Google и энтузиастами. В этой статье мы сначала немного подурачимся, а потом попробуем сделать несколько простеньких запросов на языке MQL.
Эта статья — вторая из цикла Базы знаний. Следите за обновлениями.

  • Часть 1 — Введение
  • Часть 2 — Freebase: делаем запросы к Google Knowledge Graph
  • Часть 3 — Dbpedia — ядро мира Linked Data
  • Часть 4 — Wikidata — семантическая википедия

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

Универсальный способ создания пакетов, для различных дистрибутивов GNU Linux

Reading time4 min
Views18K
Различные дистрибутивы предоставляют свои утилиты, для сборки и установки программ.
Например в Debian/GNU Linux — это debuild и dpkg. В Red Hat Linux — rpmbuild и rpm.
Не редко нам приходится собирать пакеты самостоятельно.
Устанавливать программы через make, в обход системы управления пакетами в дистрибутивах — является дурным тоном.
В случаях, когда мы имеем исходный код, и автор программы позаботился о создании Makefile, можно использовать checkinstall.
Но бывает и так, что автор java приложения, не выкладывает ничего кроме jar файла. Или мы хотим на коленке создать какой-то пакет, и положить в репозиторий, что бы в дальнейшем устанавливать/обновлять его на множестве серверов с различными дистрибутивами. В этом нам поможет утилита под названием fpm.
В чем же ее достоинство? Она из коробки позволяет нам собирать пакеты под различные дистрибутивы и даже операционные системы.

Сейчас поддерживаются:
  • deb
  • rpm
  • solaris
  • tar
  • directories
  • Mac OS X .pkg files (osxpkg)

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

Information

Rating
Does not participate
Location
Латвия, Латвия
Date of birth
Registered
Activity