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

User

Send message

Механический дисплей на Arduino — работа над ошибками

Reading time6 min
Views29K
Механический дисплей из лего и Arduino, о котором я писал в начале января оказался, по-моему, довольно неплох для конструкции собранной за вечер. Однако в комментариях справедливо указали на возможности его улучшения. Заодно, читая отзывы, я узнал что такое «POV», спасибо всем откликнувшимся!

Выявленные недостатки


  • Малый размер «экрана», недостаточный для написания слова «Хабрахабр»
  • Монохромность
  • Неравномерность шага пикселей, расчитанного простым делением времени цикла на разрешение
  • Разочарование ожидавших увидеть видео хаброюзеров
  • Необходимость вручную побитово кодировать изображение каждой буквы
  • Общая нестабильность конструкции — «дисплей» при работе сильно раскачивается
  • Холостой обратный ход планки со светодиодами. Они подсвечиваются только во время движения справа налево

За прошедшие четыре недели конструкцию удалось доработать, и вот что получилось в результате:

Улучшенная модель дисплея
Читать дальше →
Total votes 149: ↑148 and ↓1+147
Comments18

Знакомимся с PayPal Standard Checkout

Reading time8 min
Views45K
Подключение PayPal Standard Checkout

В данном руководстве последовательно описан мой опыт внедрения PayPal Standard Checkout с использованием языка Java на платформе Google App Engine. Данная статья рассчитана на людей уже имеющих опыт работы с облачной платформой GAE.

Задача

Потребовалось мне интегрировать платёжную систему PayPal на сайт собственного проекта который будет предоставлять сервис по подписке. Начав работу с PayPal Express Checkout API через некоторое время пришло осознание того что система приёма платежа становится слишком громоздкой, в то время как у готовых кнопок Standard Checkout отсутствует необходимая гибкость, которая требуется в случае интеграции сайта с другими платёжными системами.
Выход был найден в использовании инструментов Standard Checkout которые предоставляет PayPal разработчикам сторонних “корзин” для сайта.

Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments8

Arduino на производстве*

Reading time3 min
Views15K
Со школьного возраста меня всегда интересовало устройство заводов и фабрик. Сейчас я очень жалею, что школьных экскурсий на действующие промышленные предприятия было так мало. Поэтому, чтобы занять время по вечерам и расширить кругозор, я решил построить собственную фабрику.

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

На Хабре уже было много замечательных постов, в которых авторы рассказывают о конструировании и программировании роботов на базе микропроцессорной платформы-конструктора Arduino. В основном это статьи про мобильных роботов на колесном или гусеничном шасси, автономных или с дистанционным управлением. Про промышленное применение почти ничего нет. В связи с этим предлагаю свои «пять копеек» в виде описания процесса конструирования и программирования небольшой автоматизированной системы, которой управляет Arduino.

Читать дальше →
Total votes 71: ↑54 and ↓17+37
Comments42

Оптимизация JavaScript для ускорения загрузки веб-страниц

Reading time2 min
Views16K
Инженер из компании Google, автор трёх книг по веб-производительности и оптимизации, Стив Содерс (Steve Souders) опубликовал презентацию "JavaScript Perfomance" о том, какие методы нужно применять, чтобы скрипты меньше тормозили загрузку страниц.

По статистике WebPagetest, блокировка загрузки файлов .js на сайтах из Alexa Top 100 снижает среднее по медиане время загрузки страницы c 3,65 с до 2,487 с, то есть на 31%. Если вы видите медленную загрузку веб-страниц и хотите улучшить этот показатель, то, по мнению Стива Содерса, первым делом нужно посмотреть на JavaScript.
Читать дальше →
Total votes 40: ↑31 and ↓9+22
Comments12

Как Google тестирует ПО

Reading time9 min
Views40K
Прослушав вебинар «How Google Tests Software» я был так вдохновлен, что решил записать некоторые тезисы. Эта статья и есть мой конспект. Прежде всего, я должен внести ясность относительно ее содержания. Это не дословный перевод. Здесь описаны только те вещи, которые показались мне важными. Проще говоря, здесь описано не все, что прозвучало в вебинаре. Так же существует вероятность, что я понял что-то не до конца или даже понял неправильно. Поэтому горячо рекомендую прослушать вебинар самостоятельно.
Его ведет Джэймс Витакер, который в данный момент занимает пост технического директора по тестированию ПО в Google. Джэймс совместно с коллегами готовится выпустить одноименную книгу. В ней можно будет получить исчерпывающую информацию о том, как проводят тестирование GoogleMaps, Google+, ChromeOS, Android и т.д…
Читать дальше →
Total votes 224: ↑217 and ↓7+210
Comments52

CINEMA 3D — технологические особенности и возможности применения

Reading time5 min
Views87K
Привет всем!

Сегодня мы расскажем вам, друзья, про передовую технологию от LG Electronics – CINEMA 3D. Наши разработчики – LG Display – называют ее «пассивной» 3D-технологией. Почему?
Читайте дальше.

image

Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments28

FTBB программатор для minimalist Arduino

Reading time3 min
Views19K
Не так давно я рассказывал, как дешево собрать Arduino-совместимую плату.
Единственное, чего не хватало для полноценного комплекта — это программатора. Денег на полноценный программатор обычно жалко, особенно если он нужен время от времени в основном для прошивки бутлоадера в новый чип.
Большинство схем программаторов не решают проблемы курицы и яица — программатор тоже нужно чем-то прошивать. Свою минимальную Arduino я тоже прошивал имевшейся под рукой другой платой Arduino. Но ведь не у всех же она есть, верно? Значит нужен программатор, не требующий прошивки.
Изобретать велосипед я не стал и изготовил программатор на основе схемы, опубликованной у DIHALT. На самом деле им можно прошить любой AVR микроконтроллер или использовать как USB-UART адаптер. В общем, пригодится.

Читать дальше →
Total votes 45: ↑38 and ↓7+31
Comments80

Новые смайлы в Skype 5.5

Reading time1 min
Views88K
В дополнению топика Скрытые смайлы в Skype допишу новые смайлы которые появились в обновленном скайпе версии 5.5

Итак, вот они:

image «это провал» или «о нет» = (facepalm) или (fail)
image«работаю из дома» = (wfh)
image«скрестил пальцы» (на удачу) = (yn), (fingers), (fingerscrossed), или (crossedfingers)
image«ляляляляля, я тебя не слушаю» = (lalala), (lala) или (notlistening)
image «заждался» или «ну сколько можно» = (waiting), (forever), or (impatience)
image«дай пять» = (highfive), (hifive), or (h5)
image«перекати поле» = (tumbleweed)

Взято из официального русского блога скайпа

UP: Разработчики указали что спрятали еще 2 смайла, про которых нигде не упоминалось. Один смайл нашелся =(wtf)
Другой тоже = (hollest) (спасибо dazran). Думаю это не все
Total votes 91: ↑51 and ↓40+11
Comments58

Минимальная Arduino своими руками

Reading time4 min
Views378K
Arduino — это хорошо, когда хочется быстро реализовать идею, не заморачиваясь мелочами. Но когда идея проверена, лишняя функциональность начинает просто мешать.
Собирая робота на гусеничном шасси, я столкнулся с тем, что бутерброд из Arduino + MotorShield + Sensor Shield плюс ко всему аккумулятор и прочие компоненты обросли проводами и стали с трудом помещаться на не самом крошечном шасси. Городить еще кучу шилдов, чтобы избавиться от лишних проводов не хотелось.
Появилась идея избавиться от всего, что в Arduino не требуется в готовом девайсе. Попутно хотелось снизить стоимость робота.
Многих интересующихся электроникой отпугивает еще и стоимость Arduino в магазинах. С ebay и китайских магазинов посылка идет долго, изобретательский пыл успевает остыть, поэтому приобретение откладывается «на потом», «когда сын подрастет». Поэтому я решил собрать Arduino-совместимую плату из деталей, которые всегда можно купить в городе.
В итоге я получил Arduino-совместимую плату, стоимостью в 210 рублей на макетной плате и в ~270 рублей в готовом для наращивания функционала виде.
Minimalist Arduino
«Minimalist Arduino»
С нуля до полной готовности собирается с дешевым 40Вт паяльником за 1 выходной без каких-то особых навыков.
Читать дальше →
Total votes 133: ↑131 and ↓2+129
Comments74

Использование связки HSQLDB+DBUnit для Unit-тестирования Java-кода, работающего с базами данных

Reading time6 min
Views22K

Предисловие


Считается, что unit-тесты не должны использовать реальных объектов (т.е. подключений к базам данных, сетевых сокетов и подобного рода ресурсов). На этой почве развилось очень много холиваров — надо тестировать код, работающий с базами данных, или это плохой тон. Если тестировать, то можно ли это называть Unit-тестирование или это функциональное тестирование (или интеграционное, т.к. мы тестируем совместную работу двух программных сред/модулей). Споры и баталии не утихают. Я же попрошу читателей не отвлекаться на священные войны, а принять этот материал как пищу для размышления. Давайте не будем забывать, что описанное мною лишь инструмент, его применимость определяется задачей.

Выбор инструментов


Пожалуй самое сложное в Unit-тестировании — это проверка кода, работающего с подключениями к базам данных (по большому счету, проверка кода, работающего с внешними объектами). Да, можно использовать mock'и взамен подключений, но если у вас более одной операции с JDBC-провайдером, то вы с большей вероятностью сделаете ошибку в mock-объекте, чем отловите ее в коде при помощи последнего. Что же остается? Использовать реальные базы данных тоже нехорошо, ведь сервер БД в репозиторий не положишь… А если я скажу, что очень даже положишь, и он уже там находится? Решение нашей проблемы — HSQLDB.

HSQLDB — это реляционная база данных полностью написанная на Java. При этом, что очень примечательно, сервер базы данных может подниматься как отдельным инстансом, так и создаваться внутри Java-приложения. Небольшой размер и возможность полностью хранить всю базу данных в памяти (по умолчанию) делают HSQLDB идеальным сервером БД для Unit-тестирования. С учетом того, что с точки зрения JDBC и ORM реализация СУБД не имеет значения (если вы придерживаетесь стандарта SQL и не злоупотребляете расширениями движков СУБД), то мы с легкостью сможем подменить подключение к PostgreSQL или Oracle на соединение с HSQLDB при Unit-тестировании.

Хорошо, предположим, что у нас есть база данных, полностью размещающаяся в памяти и потребляющая минимальное количество ресурсов. Перед проведением тестов ее нужно заполнить данными, и желательно это делать методом более универсальным, чем написание SQL-запросов. Нам так же нужно проверять состояние базы данных после проведения операций над ней. Получать из нее данные и сверять их с эталоном вручную, согласитесь, идея крайне плохая. Поэтому, для решения проблемы инициализации и проверки результатов операции была создана библиотека DBUnit, идеально подходящая для автоматизации инициализации базы данных и последующей сверки наборов данных.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments13

GitLab: open source версия Github

Reading time1 min
Views88K
Хотите поднять клон Github на своём собственном сервере с приватными репозиториями за корпоративным файрволом? Теперь вы можете это сделать благодаря появлению open source проекта GitLab. Он является хорошей альтернативой для корпоративной версии Github стоимостью до $5000 в год.

По сравнению с Gitorious, система GitLab отличается приятным интерфейсом и гораздо проще в установке.

13 октября вышла версия 1.0, через неделю обещают выкатить 1.1, а затем новые релизы GitLab 1.2, 1.3 и т.д. будут выходить каждый месяц.
Читать дальше →
Total votes 98: ↑95 and ↓3+92
Comments62

12+ полезных Google Chrome chrome:// команд

Reading time2 min
Views397K
Все знают, что для того чтобы попасть в меню у Хрома, нужно нажать на Гаечный ключ в правом верхнем углу.

Однако есть несколько особенностей, которые не доступны из меню, которые вы можете увидеть только с помощью chrome:// команд.

Под катом приведены 12 самых полезных chrome:// команд, которые должны знать все.
Читать дальше →
Total votes 217: ↑196 and ↓21+175
Comments55

Состоялся релиз subversion 1.7

Reading time1 min
Views3.9K
После двух с половиной лет разработки свет увидел новый major релиз централизованной системы управления версиями subversion: что нового, видео обзор.

Краткий список нововведений под катом
Total votes 78: ↑76 and ↓2+74
Comments299

Характерные особенности языка Dart

Reading time8 min
Views20K
Dart был разработан так, чтобы выглядеть знакомо для программистов на таких языках, как Java и JavaScript. Если постараться, можно писать на Dart практически так же, как на одном из них. Если очень постараться — можно даже превратить его в Фортран, но при этом вы упустите множество неповторимых и классных особенностей Dart.

Эта статья поможет вам научиться писать код в стиле Dart. Так как язык всё ещё активно развивается, многие идиомы тоже могут измениться в будущем. В некоторых местах мы пока сами не определились, что является наилучшей практикой (может быть вы нам поможете?) Тем не менее, вот несколько моментов, на которые стоит обратить внимание, чтобы переключить свои мозги из режима Java или JavaScript в режим Dart.
Читать дальше →
Total votes 79: ↑70 and ↓9+61
Comments100

Особенности локализации текста

Reading time5 min
Views7.4K
Эта статья была опубликована в блоге w3c в 2007 году, но складывается впечатление, что большая часть разработчиков ПО даже и не задумывается о проблеме длины текста. Сколько раз вы видели сообщения, не умещающиеся в алерт?

Читать перевод про перевод
Total votes 82: ↑78 and ↓4+74
Comments49

Risk Management: предотвращение проблем vs. ведение регистра рисков

Reading time7 min
Views25K
Странно, но факт

  • Абсолютно все стандарты управления проектами и компаниями говорят о необходимости управления рисками. Предлагаются различные модели, инструменты и термины. Каждый ПМ понимает, что это важно. И проходят тренинги. И даже пытаются выполнять такую практику (или процесс) как Risk Management. Но не все (большинство) видят в этом смысл и пользу на практике. В лучшем случае заводят регистры рисков (про которые скоро забывают), в худшем говорят, что управление рисками происходит в ходе ежедневной коммуникации (непонятно, правда, что имеется ввиду под рисками и управлением.
  • При наличии на проектах Risk register-а менеджмент компании считает что есть недостаток в про-активном управлении проекта и в коммуникациях с заказчиком, который регулярно жалуется на неожиданные проблемы на проекте.
  • Проджект менеджеры и Проектные команды жалуются на большие затраты времени на работу с рисками (и, очевидно, отсутствием эффекта, а то бы не жаловались.

Эти и многие подобные наблюдения были сделаны мной в ходе внедрения системы управления качеством и проведения аудитов процессов в IT компании. В частности, процессов управления проектом. Как и любое нововведение, внедрение правил работы должно сопровождаться обоснованием зачем это нужно. Для этого, в дополненение к навыкам убеждения, необходимы знание теории и практических примеров — как негативных, так и позитивных. На них и основаны мои выводы о секретах эффективного Управления Рисками.
Читать дальше →
Total votes 37: ↑30 and ↓7+23
Comments18

Бесплатные книги

Reading time3 min
Views60K
Несколько книг по разным темам, которые находятся в открытом доступе.

Основы программирования
Читать дальше →
Total votes 243: ↑239 and ↓4+235
Comments32

Подсветка синтаксиса Midnight Commander: добавляем свой синтаксис

Reading time3 min
Views26K
Всем хорош exim но его конфигурация не похожа ни на что соответственно и подсветка в нем скучно-серая (см.ниже)и чтобы исправить эту досадную ошибку решено было покопаться в недрах гугла на предмет Midnight commander syntax highlight.
Краткий конспект поисков представлен ниже
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments15

Grab — python библиотека для парсинга сайтов

Reading time13 min
Views149K
Лет пять-шесть назад, когда я ещё программировал преимущественно на PHP, я начал использовать библиотеку curl для парсинга сайтов. Мне нужен был инструмент, который позволял эмулировать сессию пользователя на сайте, отсылать заголовки обычного браузера, давать удобный способ отсылки POST-запросов. Сначала я пытался использовать напрямую curl-расширение, но его интерфейс оказался очень неудобным и я написал обёртку с более простым интерфейсом. Время шло, я пересел на python и столкнулся с таким же дубовым API curl-расширения. Пришлось переписать обёртку на python.
Читать дальше →
Total votes 80: ↑79 and ↓1+78
Comments53

Разработка простого расширения для google chrome

Reading time6 min
Views47K
imageРасширения для браузеров очень популярны в наше время. Повод написать какое-либо расширение всегда найдется, и их напашется еще много.

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

Если поискать, то на русском языке нет ничего толкового по разработке расширений для chrome, только лишь эта статья доступно описывает самые основы.

Данный пост будет более продвинутой версией.
Читать дальше →
Total votes 115: ↑106 and ↓9+97
Comments26

Information

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