Яндекс.Метрика

    Реклама

    Новости на букву «хэ»

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

    Мои друзья из Новосибирска начали очень интересный проект — Хобости. Это русский Onion News — пародийные новости. На Хабре временами появляются их новости, например, вот и вот.

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



    Песочница

    Мифы о CMMI, или кому и зачем она нужна

    Вначале об аббревиатуре: Capability Maturity Model Integration (CMMI) — модель оценки зрелости компании, основанная на ее производстенном, техническом и управленческом потенциале. Разработана она Software Engineering Institute. Подробно о ней писалось в хабрастатьях: Модель CMMI
    и Как наша компания получила 3 уровень CMMI. .

    Будучи «внедренной» в CMMI вот уже 5 лет, я часто сталкиваюсь с запросами и суждениями относительного этого фрэймфорка, которые, в целом, можно свести к следующему «Это конечно хорошо, но невозможно в реальных условиях». Кто-то скептически настроен с самого начала, кто-то разочарован (прежде всего, из-за чрезмерных ожиданий). Я не являюсь ни «апологетом», ни фанатом CMMI, но моя непосредственная работа заключается в поддержании соответствия компании CMMI Level 3. Это требует, прежде всего, очень серьезных моральных усилий. Связано это, на мой взгляд, с распространенностью ряда мифов о CMMI, которые появились в силу логических доводов о пользе модели (которые приводятся во всей «рекламной» литературе), примеров повышения эффективности работы в таких «монстрах» как «Боинг», попыток внедрения в отечественных компаниях (после чего в них «ничего не изменилось»), и опыта работы с индийскими компаниями, которые позиционируют себя как соответствующие CMMI Level 5. И еще с непониманием того, как и когда стоит использовать модель, чтобы она приносила пользу.

    В статье я попытаюсь «развенчать» некоторые мифы, развеять скептицизм, и, возможно, мне удастся помочь тем, кто хочет использовать CMMI, но не знает как.

    Язолъ

    Потерянные во времени

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

    Девайсы с автоматическим переводом времени выпускались вплоть до 7 августа 2011 года, но согласно действующему законодательству ответственность за приборы учета энергии возложена на их собственников, а случае с населением — на самих граждан. Они же должны отвечать за перепрограммирование устройств.
    Раздобыть шнурок USB -> Com и перепрошить счетчик — плевое дело, тем более для хаброюзеров, которые с легкостью шьют linux в журналы. Однако, все порты счетчика закрыты пломбой, и не нарушив ее ничего сделать не получится. Энергосбытовые компании в один голос утверждают, что двухтарифные счетчики отныне годятся лишь для общего подсчета потребленной энергии, а некоторые из них, уже готовятся выставить в декабре владельцам двухтарифных счетчиков счета по «общему» тарифу.

    Юмор

    Самая лучшая просьба о помощи разобраться в ошибке



    Разве можно отказать после такой просьбы о помощи?

    И подробное описание проблемы, и картинка для настроения

    Update: Здесь я не приследую задачу посмеяться над коллегой, наоборот, он на мой взгляд описал проблему очень оригинально, при этом заставив улыбнуться, но улыбнуться по доброму

    Юмор

    Самая лучшая просьба о помощи разобраться в ошибке



    Разве можно отказать после такой просьбы о помощи?

    И подробное описание проблемы, и картинка для настроения

    Язолъ

    Неожиданный переезд

    Привет, Хабр! 15го октября я заказал с интернет-аукциона eBay плеер Sansa Clip+ и с тех самых пор ожидал посылку, ежедневно отслеживая её по трекинг-номеру.

    Реклама

    Мое первое приложение для iPad – раскраска на тематику Хэллоуина

    image

    Сразу напишу что я вполне в курсе что подобных приложений и так навалом в AppStore, но:
    • прототип был разработан сразу после выхода айпада, на конкурс – www.iappcontest.com/apps/2010/06/coloring-book-by-componentix.html, потом к сожалению долго пылился
    • решено было делать нишевый, тематический контент – версия на Хеллоуин тому пример
    • дизайн у существующих приложений часто хромает, как правило слишком много всяких наворотов, хотелось простоты
    • реализована киллер-фича – когда рисуешь в определенной области, краска не вылазит за границы. Мне этого очень не хватало в детстве :)


    Приложение в AppStore.

    Заранее спасибо за конструктивную критику.

    Юмор

    ПГМ + математика



    ВНИМАНИЕ!
    Пост не рекомендуется к прочтению ярым сторонникам «церковной науки», беременным и кормящим матерям и особо впечатлительным людям.

    Язолъ

    Конкурс от HP — чудеса в решете

    Не совсем негодую, просто остался какой-то неприятный осадок от одной истории, связанной с компанией HP. Косвенно или напрямую — решать вам.

    C 20 сентября по 9 октября компания HP проводила на хабре конкурс под названием «Рабочее место мечты». Условия у него были достаточно простые — нужно было всего лишь рассказать, чего жизненно необходимого не хватает на рабочем месте айтишника и хорошенько пропиарить свою идею среди друзей и в социальных сетях. Победитель выбирался исходя из рейтинга — простой суммы всех лайков и ретвитов.

    Призы были обещаны аж для 20 лучших идей, в том числе самые вкусные — неплохой ноутбук Probook 4720s и монитор.

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

    Ни о чём

    Пинг-понг на чистом CSS, без картинок и Javascript

    По ссылке можно посмотреть не только пинг-понг, но и лого Макдональдса, Пепси и других компаний на чистом CSS.

    Ни о чём

    Создание своего «телевидения» на основе torrent-трекеров

    Сразу хочу сказать что под словом «телевидение» не имеется в виду прямой эфир.
    Я не смотрю телевизор, совсем. Но каждый день выбирать что смотреть я тоже не могу — нет сил.

    Поэтому хочу иметь папку (RSS канал, список, как угодно назовите)
    чего-то новенького, что я могу посмотреть сегодня.

    Предлагаю на ваше критическое обсуждение такую идею.

    Песочница

    Использование TDD и MVP при создании приложений для Android. Часть 1 — Введение

    Писать программки для смартфонов — мое хобби. Все началось с того, что я купил свой первый смартфон Nokia E51 на Symbian и мне очень нравилось что его функционал можно было расширить через установку дополнительных программ.
    Но однажды я не нашел необходимой программы и решил написать ее сам. Так и началось мое увлечение программами для смартфонов.

    После того как глава Nokia заявил, что дни Symbian сочтены, я решил изучить платформу Android.

    Для лучшего усвоения материала я решил написать полезную, хотя бы для себя, программку. Но написать ее не по детски, когда куски примитивного кода копируются из документации, а по взрослому с разработкой архитектуры, и использованием современных технологий программирования TDD, MPV и IoС.


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


    Мое первое приложение для Android — T-Alarm. Найти его можно на Android Market по названию. На данный момент в программе нет дизайна и она выглядит немного некузяво, но вскоре дизайн появится.

    Это просто программа будильник, но с одной функцией, которой нет в других программах.

    Обычно я встаю в 6:45 утра, но пару раз в неделю мне надо встать в другое время, например для утренней пробежки. Для этого надо изменить время в будильнике на завтра, а так же не забыть вернуть потом расписание в исходное. Все остальные будильники на Android не позволяют быстро поменять время на завтра, для этого надо долго ходить по настройкам, а так же никто из них сам не возвращает время в исходное состояние после срабатывания по измененному.
    Поэтому я решил, что основной фишкой моей программы будет возможность однократного изменения времени следующего срабатывания, а также общий принцип, что для внесения изменений в расписание надо как можно меньше времени тратить на блуждание по настройкам.

    Более того, будильник является отличной задачей, чтобы по глубже изучить платформу Andorid. Здесь затрагиваются такие части как:
    — Пользовательский интерфейс. Надо сделать несколько окон для задания настроек.
    — воспроизведение музыкальных файлов. Можно изучить возможности встроенного медиа-проигрывателя
    — Сохранение расписания в БД. Теперь я знаю как пользоваться базой данных SQLIte на Android
    — Реализация сервисов для отработки будильника. При наступлении часа Х надо запрограммировать следующий момент срабатывания, с учетом нескольких дреманий (snooze), и сыграть побудку. Прекрасный повод разобраться в том какие сервисы есть в Android и какой надо использовать.
    — Получение различных сигналов от ОС. Сервис будильника должен срабатывать по системному будильнику и при загрузке смартфона.

    Этой статей я открываю ряд статей, где хочу поделиться своим опытом разработки. Причем я хочу сосредоточиться на использовании MVP и TDD при разработке моего приложения. В интернете я нашел все это по кускам и смог собрать во едино. Это позволило мне сделать приложение в котором все основные алгоритмы протестированы с помощью UnitTest-ов, а так же я обраружл несколько других вкусностей, которые будут интересны Andorid разработчикам.

    Общая архитектуры проектов и приложения


    С самого начала я хотел разобраться как можно использовать современные подходы и шаблоны проектирования при разработке приложений для Android и поэтому много времени у меня ушло на изучения различных Framework-ов. Вроде бы в Android SDK уже встроен JUnit для организации тестов и есть много статей в интернете как им пользоваться, но как дело доходит реального проекта сразу появляются подводные камни. О том как их преодолеть я и расскажу в этом цикле статей.

    Итак, я решил использовать TDD для того, чтобы быть уверенным, что все основные алгоритмы моего приложения протестированы. Так я остановился на шаблоне MVP при проектировании пользовательского интерфейса.

    Организация проектов


    Мои исходники разделены на два проекта — основной проект с исходниками и тестовй проект с тестами.

    Проект с исходниками состоит из нескольких пакетов. Как правило один пакет это одно архитектурное звено, то есть одна форма или сервис.

    Каждое звено состоит из презентера (Presenter), представления (View) и, порой, из вспомогательных классов как правило для организации нескольких потоков. Хочу отметить, что представление это не всегда пользовательский интерфейс порой это классы для работы с системными сервисам, но для того, чтобы иметь возможность имитировать эти системные сервисы я выносил их во View, у которого есть интерфейс, а этот интерфейс легко имитировать в тестах.

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

    Архитектура приложения


    Поскольку мое приложение маленькое, то в нем нет слоев, а есть только несколько звеньев:

    1. Главное окно
    2. Окно редактирования будильника
    3. Окно выбора мелодии
    4. Окно при звонке
    5. Модель данных, в моем случае это список будильников, и репозиторий для сохранения модели в БД.
    6. Сервис для обработки системных сообщений: наступление часа Х и загрузка смартфона.

    Все окна и сервис работают только с моделью, которую получают из репозитория. Благодаря этому получается архитектура состоящая из слабосвязанных звеньев. Каждое звено можно тестировать отдельно от других имитируя модель.

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

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

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

    Читайте в следующих статьях


    — Реализация пользовательского интерфейса, многопоточность, MVP
    — Реализация серверной части, RoboGuice, тестирование
    — Сохранение данных в БД, модель данных и репозиторий
    — Небольшие задачи, настройки, логирование, ProGuard

    Юмор

    Идея для выражения своей благодарности



    Нам часто приходится благодарить кого-либо за что-либо. У меня возникла идея о том, как можно благодарить админов или айтишников, которые любят пиво (а это определенно большинство)…

    Юмор

    Microsoft for Mac

    Твиттер, конечно, неофициальный, но доставляет:



    Юмор

    Microsoft for Mac

    Твиттер, конечно, неофициальный, но доставляет:

    Песочница

    Steam и русский support

    Сегодня в Steam запустили русскоязычную ветку в форуме community, пока там есть всего два русских модератора отвечающие на любые вопросы (кроме тех что о эпизоде три). Это огромный шаг для Российского рынка. Сама форумная ветка находиться здесь http://forums.steampowered.com/forums/forumdisplay.php?f=1257 .

    P.S. Не забывайте завтра начнутся хелоувинские распродажи с большими скидками.

    Песочница

    NodeJS + SMPP и очередь сообщений Memcacheq

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

    it_bigraphy

    Райдер Ричарда Столлмана

    Если вы хотите пригласить Ричарда Столлмана для выступления на конференции, придётся учесть его требования. Разумеется, как у любой звезды мирового масштаба, у основателя движения свободного ПО есть райдер, то есть длинный документ с подробными условиями организации мероприятия. Зная характер Столлмана, можно предположить, что райдер у него необычный. Так и есть: ознакомьтесь с последней версией этого документа (от 18 октября 2011 года).

    Основатель проекта GNU, Фонда свободных программ и Лиги за свободу программирования, автор концепции «копилефта» очень внимателен к деталям. Очень важно, чтобы на конференции были правильные напитки. Желательно чай — у Столлмана всегда в кармане несколько пакетиков любимого чая. Он согласен и на другие марки, потому что «с молоком и сахарам любой чай вкусный». Если Ричард чувствует себя сонным, то ему хотелось бы видеть две баночки или маленькие бутылочки недиетического «пепси». Ни в коем случае не «кока-колы», потому что, напоминает Столлман, сейчас действует международный бойкот компании Coca-Cola за убийство лидеров профсоюзного движения в Колумбии и Гватемале.

    Реклама

    Brainteaser – сайт веб-квестов

    image
    На Хабре регулярно публикуются различные головоломки и квесты, как свои, так и чужие. Я хочу предложить вашему вниманию целый ресурс головоломок и веб-квестов.

    На сайте еженедельно появляется задание веб-квеста. Зарегистрированные пользователи могут оставлять решения в скрытых комментариях. Они раскрываются в момент запуска таймера обратного отсчета (в левом верхнем углу страницы), который отсчитывает время до старта следующего квеста. Победителем становится первый правильно ответивший в комментариях участник. Он получает приз и баллы рейтинга.

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

    Первый квест стартует сегодня.
    Главный приз — вертолет GYRO-Vizor XL.

    Квест публикуется на Хабре до официального старта на Brainteaser.

    Язолъ

    Tut.by на страже морали, нравственности и добра

    image

    Думаю, многим известно, что в Беларуси где-то с начала века функционирует локальная копия Yahoo, «портал №1» — tut.by. Занимаются в основном тем, что копируют сервисы которые «прокатили» в большом интернете, стараясь как можно быстрее увешать их рекламой и продажными статьями. Такая вот нехитрая бизнес-модель, которая, кстати сказать, вполне успешно работает. Есть ещё хостинг и регистрация локальных доменных имён, но это не очень важно, не будем считать чужие деньги. Вчера с tut.by произошла история, которая и послужила поводом к этой статье.