Search
Write a publication
Pull to refresh
0
0

User

Send message

Arduino LCD Informer

Reading time9 min
Views97K
Заинтересовавшись таким хобби, как Ардуино, я вскоре понял, что суть этого замечательного проекта — позволить таким, как я, ничего не смыслящим в схемотехнике, пайке и микросхемах, зато немного понимающим в программировании, заставить работать что-либо кроме персонального компьютера; прошить микроконтроллер, не имея программатора и каких-либо специальных знаний на эту тему.

Поэтому я хочу помочь пропаганде этого проекта — программисты, это прекрасное развлечение именно для вас!

Пока моторчики для моего следующего, мобильного проекта едут в кибитке, запряжённой тройкою самых быстрых брюхоногих скакунов Почты России, я задумал и, надо сказать, осуществил, другой (разминочный) проект под звонким названием “Arduino LCD Informer”. Суть проекта в том, чтобы Ардуино отображал на LCD данные, получаемые с компьютера. На компьютере их собирает и отправляет отдельная программа.


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

Массивы моделей в MVC — вкусно и тяжело?

Reading time5 min
Views5.1K

Парадигма MVC во многом позволяет упростить поддержку кода за счет разделения логики и создания абстракций, однако часто, следуя принципу Thick Model & Thin Controller (он же Fat Model & Skinny Controller), разработчикам приходится упираться в краеугольный камень использования любого объекта-модели, а именно — в потребление памяти. Что особенно актуально при работе с моделями, которые реализуют ORM (или ActiveRecord паттерн).
В данной статье хочу вкратце продемонстрировать стандартные подходы к решению данной проблемы.

Читать подробнее

PyS60: Сказ о том, как блокнот для Symbian писался

Reading time7 min
Views4.3K

Предисловие


Доброго времени суток, хабраюзеры!
Так уж получилось, что большую часть времени я нахожусь вдали от своего ПК, поэтому большинство его функций возлагаются на девайс, который всегда со мной — на смартфон на базе Symbian 9.4. Наряду с мультимедийными функциями мне очень часто бывает необходимо делать текстовые заметки, наброски статей для блога, а случается, что и приходится работать с (x)html и CSS. И если с мультимедийными функциями Nokia 5530XM справляется на ура, то работа с текстом осложнена отсутствием удобного для меня софта – мой привередливый нрав не признает те программные продукты, которые я имел возможность найти на просторах Интернета и протестировать на своем девайсе. Я нуждался в самом простом блокнотике, в то время как мне встречались текстовые редакторы, обремененные лишними для меня функциями. И когда я вспомнил, что спасение утопающих – дело рук самих утопающих, тогда и понял, что свои потребности удовлетворять придется самому.
Читать дальше →

ZFConf 2012 пройдет весной в Москве — открыта предварительная регистрация

Reading time2 min
Views3K
Главное новшество этого года — место проведения. В этом году конференция пройдет в Москве, а не в Санкт-Петербурге, как это было ранее.

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

Свое участие в качестве спикеров уже подтвердили ряд специалистов. Также ведутся переговоры с иностранными докладчиками, в том числе с Zend Framework Core Team.

Если вам есть что рассказать сообществу, напишите нам через специальную форму о предлагаемом докладе. Для иногородних докладчиков обсуждаются условия по компенсации расходов на поездку.

Наиболее актуальные темы и другие подробности

Что делать, чтобы проекты не занимали в 2-3 раза дольше, чем планируется? Часть 1

Reading time2 min
Views7.8K
На Хабре недавно была поднята очень важная тема — соблюдение сроков проектов. В качестве метафоры автор, Михаэль Вольф, использует метафору путешествия и прогнозирования сроков прибытия, но не дает практических советов по завершению проектов в срок. Чтобы раскрыть советы в более понятной форме, я вставлю несколько презентаций и слайдкастов в пост.
Позволю себе привести ряд конкретных рекомендаций, которые будут полезны для большинства проектов:
  • Грамотно обрабатывайте запросы на изменение требований
  • Урезайте лишний функционал
  • Управляйте рисками
  • Используйте гибкие методологии
  • Научитесь управлять Death March проектами
Подробности под катом

flotr2 — графики и диаграммы на HTML5

Reading time1 min
Views36K
flotr2 — это библиотека с открытым кодом для построения HTML5 графиков и диаграмм. Flotr2 — так как стала ответвлением от Flotr, но уже без привязки к Prototype JS и с множеством усовершенствований.


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

Udacity создаёт учебный план и будет выдавать дипломы

Reading time1 min
Views2.7K
Недавно онлайновый университет Udacity анонсировал два первых курса, которые начинаются 20 февраля. Курсы ведут стэнфордские профессоры Дэвид Эванс (David Evans) и Себастьян Тран (Sebastian Thrun).

CS 101: Строим поисковый движок (+ обучение Python)
CS 373: Программируем роботизированный автомобиль (требуется знание Python)

Это семинедельные курсы, которые рассчитаны на новичков. Однако, планы онлайн-университета гораздо амбициознее. Как они сообщили в почтовой рассылке, Udacity собирается разработать полноценную учебную программу по информатике и предлагать услуги сертификации. То есть они будут выдавать настоящие дипломы.

Список курсов, которые ожидаются в 2012 году:
  1. Теория алгоритмов
  2. Операционные системы
  3. Компьютерные сети
  4. Распределённые системы
  5. Компьютерная безопасность
  6. Алгоритмы и структуры данных
  7. Практика программной инженерии
  8. Разработка веб-приложений

Декорирование Ext JS4

Reading time4 min
Views11K
Используя ExtJS в своих проектах, приходится постоянно видеть один и тот же сине-голубой интерфейс, что не всегда хорошо. В 4й версии этого фреймворка появился удобный компонент для изменения внешнего вида вашего веб-приложения без ручной правки CSS, основанный на использовании метаязыка SASS. С его помощью можно получить интерфейс, внешне не похожий на стандартный, заменив всего пару строк в конфигурационном файле.
Читать дальше →

Dojo Build System, собственный опыт создания сборки

Reading time5 min
Views4.7K
Dojo — не самый популярный JavaScript фреймворк, несмотря на все свою мощь и положительные качества. Информация, которую я хочу донести сегодня до читателя, требуется для абсолютно каждого проекта, построенного с использованием этой технологии.

А поговорим мы о системе сборки.
Читать дальше →

Axis — интернет магазин своими руками

Reading time2 min
Views17K
Добрый день Хабр,

Хочу познакомить пользователей Хабра с проектом над которым работает наша небольшая команда. Axis — это CMS для создания интернет магазинов под открытой лицензией.

Репозиторий на GitHub: http://github.com/axis/axiscommerce
Сайт: http://axiscommerce.com

image

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

Facebook Timeline

Reading time4 min
Views8.6K
Facebook Timeline делает большую революцию в мире социальных сетей, придает новый вид для пользовательских профилей. Сегодня, посмотрим как просто можно реализовать этот проект с помощью jQuery и CSS.



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

Уроки Python от компании Google

Reading time1 min
Views120K
Отличный способ освоить Python — учебный класс Python в Google Code University. Уроки для этого класса написал Ник Парланте из Стэнфорда, и прошедшие курс люди отмечают не просто высокое, а фантастически высокое качество уроков.

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

Есть ещё скачиваемые задачки. Они довольно простые и созданы специально для начинающих. Курс идеально подходит для изучения Python программистами, имеющими опыт работы с другими языками программирования.

Учим Zend Memcache работать с тегами

Reading time6 min
Views2.6K
В проекте, где я являюсь разработчиком, используется кеш. Сразу хочу оговориться, проект высоконагруженный, порядка двух тысяч человек в сутки. Удобным решением снять нагрузку с базы данных стало использование мемкеша. Поскольку проект на Zend Framework'е реализацию работы кеша соответственно взяли его. Но как выяснилось не самая удачная реализация, поскольку полностью отсутствует работа с тегами, это не дает нам возможности чистить кеш выборочно.
Читать дальше →

HTML KickStart — еще один способ быстро создать интерфейс своего веб-приложения

Reading time1 min
Views27K
Не один раз в комментариях замечал что народ негодует по поводу того, что веб-разработчики стали злоупотреблять использованием Bootstrap от Twitter. Признаюсь, я и сам успел закончить несколько небольших веб-приложений с использованием этого набора скриптов и стилей. Я не против использования Bootstrap от Twitter, я против злоупотребления этим когда есть столько хороших альтернатив. Я почти каждый день натыкаюсь на интерфейсы, построенные на Twitter Bootstrap, и это начинает напрягать. Последней каплей для поиска альтернативы стало изменение интерфейса биллинг панели моего хостера на шаблон Bootstrap. В этой записи я хотел бы немного рассказать про одну из альтернатив — HTML KickStart.
Читать дальше →

Обзор NoSQL систем

Reading time5 min
Views56K
Беспрецедентные объемы данных заставляют разработчиков и бизнес приглядываться к альтернативам реляционных баз данных, используемым вот уже более тридцати лет. В совокупности все эти технологии известны как «NoSQL базы данных».


Основной проблемой является то, что реляционные базы данных не могут справляться с нагрузками актуальными в наше время (мы говорим о high-load проектах). Есть три конкретные проблемных области:
  • горизонтальное масштабирование при больших объемах данных, например как в случае Digg (3 терабайта для зеленых значков, отображаемых, если ваш друг сделал dugg на статье) или Facebook (50 терабайт для поиска по входящим сообщениям) или eBay (2 петабайта в целом)
  • производительность каждого отдельного сервера
  • не гибкий дизайн логической структуры.
Читать дальше →

Паттерны ООП в метафорах

Reading time17 min
Views575K
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →

Zendframework + ffmpeg + gearman + amazon = Видео encoder сервис

Reading time5 min
Views2.2K
Хочу поделиться с хабрасообществом опытом создания веб сервиса для конвертирования видео и сохранения в облачном хранилище. Сразу оговорюсь, сервис написан для внутреннего пользования одной европейской компании, и уже работает более 6 месяцев. Одним из направлений компании является продукт WebTv. Было очень проблематично на каждом новом сайте разворачивать структуру для конвертирования видео, и зачастую эти процессы очень тормозят работу сервера.
Было решено создать сервис, который бы удовлетворял следующим требованиям:
  • Легкая интеграция с любым сайтом.
  • Реализовать процесс конвертации более одного видео файла в одно и то же время.
  • Реализовать процесс сбора видео с ftp, IMAP и просто напрямую получать видео файл через HTTP POST.
  • Опционально при помощи дополнительных параметров, уметь вращать видео, вещать водные знаки и т.д.
  • Реализовать безопасную систему авторизации во фронте, где юзеры могут видеть, какие данные уходят на видео сервис помимо видео файла.
  • Отправлять готовые результаты на Amazon S3.
  • Хорошенько обрабатывать ошибки, и оповещать об этом клиентский сервис.

под катом взгляд изнутри в деталях

Codeception — тестирование по-новому

Reading time4 min
Views88K
PHP очень популярный язык программирования, но тестирование в нем, это скорее прерогатива экспертов, а не жизненная необходимость. Неужели это от того, что PHP-разработчики поголовно быдло-кодеры? Я считаю, что нет. Скорее всё от того, что системы тестирования порой излишне усложнены. А тесты, наоборот, должны были предельно просты: легко читаться, писаться, отлаживаться, и конечно же, быстро выполняться. Мое виденье того как это можно воплотить в PHP вылилось в проект под названием Codeception.

С ним тесты для ваших веб-приложений могут выглядеть так:
<?php
$I = new TestGuy($scenario);
$I->wantTo('create new blog post');
$I->amOnPage('/blog/posts');
$I->click('Create new post');
$I->fillField('Title','Codeception, a new way of testing!');
$I->fillField('Text','Codeception is new PHP full-stack testing framework.');
$I->click('Send');
$I->see('Congratulations, your post is successfully created!');


Согласитесь, такой тест понятен без дополнительных комментариев.
А теперь самое интересное: этот код без всяких изменений может быть выполнен как функциональный тест в фреймворках symfony, Symfony2,Zend Framework, а также в браузерном эмуляторе Goutte и даже через Selenium. Таким образом, вам предлагается единый интерфейс для написания функциональных тестов практически для любого сайта.
Читать дальше →

AzaThread — многопоточность для PHP с блэкджеком

Reading time6 min
Views18K
В сети гуляет довольно много решений для эмуляции многопоточности в php. Чаще всего они основываются на форках, но есть и вариации на тему с использованием curl, proc_open и т.п.

Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
  • Использование форков;
  • Синхронный режим с сохранением интерфейса при отсутствии необходимых расширений;
  • Многократное использование дочерних процессов;
  • Полноценный обмен данными между процессами. Т.е. запуск с аргументами и получение результата по завершении;
  • Возможность обмена событиями между дочерним процессом-«потоком» и основным процессом во время работы;
  • Работа с пулом потоков с сохранением многократного использования, передачи аргументов и получения результатов;
  • Обработка ошибок выполнения;
  • Таймауты на выполнение работы, ожидание работы потоком, инициализацию;
  • Максимум производительности;

В результате получилась библиотека AzaThread (старое название — CThread).
Подробности

Система настроек и смена версий программ: эволюция жизнеспособных форм

Reading time20 min
Views3.8K
Константно-переменный дуализм.

Настройки у программ существуют давно, от самых древних ассемблерных программ, имеющих в своём коде константы в качестве настроек. Обновление таких программ происходило с полной заменой кода, поэтому изменение системы настроек не влекло отрицательных последствий. В худшем случае, приходилось переучиваться пользованию интерфейсом. Положение стало меняться при преемственности типов данных и настроек программ. В своё время Microsoft уделяла огромное внимание совместимости программ и данных в операционных системах, в чём была их сильная сторона. Да и сейчас поддержка режима XP Mode — это продолжение политики совместимости. Применительно к веб, пользователям часто встречаются ситуации, когда данные и настройки у них остаются от прежних версий (в куках, в сторонних базах данных), а версия программы — на сервере или скрипт на клиенте — изменяется. Возникает проблема совместимости версий программ и данных и необходимость выработки некоторой политики поддержки совместимости. Новая версия может не устроить по совместимости с браузерами (из-за багов или неполной поддержки), тогда откат к прежней на время исправления багов не должен сопровождаться потерей или искажением настроек, при том, что количество их может меняться с изменением версии.

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

Information

Rating
Does not participate
Location
Северодвинск, Архангельская обл., Россия
Date of birth
Registered
Activity