По просьбам трудящихся написал статью на Хабр о хакатоне и проекте нашей команды. Ссылка: http://habrahabr.ru/company/epam_systems/blog/164201/
Sunday, December 30, 2012
Tuesday, December 11, 2012
Доклад на JUG KPI
В прошедшую
субботу мы вместе с Олегом Тымчаком выступали на встрече Java User Group KPI с докладом о своем хакатон-проекте и делились полученным
опытом веселого и полезного времяпрепровождения на таком мероприятии. Слайды
презентации доступны по ссылке.
Среди
прозвучавших докладов отдельно следует выделить захватывающую дух облачную
платформу Jelastic, которую представлял Константин Александров.
Сама встреча
проходила в очень уютной атмосфере офиса компании EPAM, с печеньками и другими
ништяками.
Wednesday, December 5, 2012
Unicode transformation format
Волей случая пришлось разобраться в том, где и когда применяются кодировки UTF-8 и UTF-16, и в чем же их отличия.
Привожу тезисно свои выводы:
1) Сначала было слово, и записывалось оно в кодировке ASCII – 256 символов (1 байт), предполагалось наличие латинского и одного регионального алфавита (семейство ASCII-совместимых кодировок, например, КОИ-8). Все еще применяется в критичных к размеру сообщений сервисах и в вебе, но морально устарела, полагаю что место этой кодировки – в музее
2) Кодировка UTF-8 содержит 2^16 = 65536 символов и обратно совместима с ASCII.
Каждый символ может кодироваться в 1-4 байта. Символы русского алфавита и некоторые другие алфавиты имеют длину 2 байта
3) Кому-то и такого количества символов показалось мало, и был введен стандарт UTF-16. Иногда пишут UTF-16LE или UTF-16BE (little-endian/big-endian) для указания порядка байтов.
Количество символов: 1112064. Каждый символ кодируется в 2 или 4 байта. Совместимость с UTF-8 и ASCII: нет
4) Для передачи данных по сети гораздо выгодней использовать UTF-8 (что в большинстве случаев и делается) – короче длина сообщений. Еще аргумент в пользу UTF-8 – при потере одного байта остальной текст может быть восстановлен, а вот для UFT-16 в таком случае возможно полное искажение текста
5) Есть еще кодировка UTF-32, которая кодирует символы только в 4 байта и используется в специфичных случаях
6) В Java все символы кодируются в UTF-16, вопрос применения кодировок в той или иной версии ОС – тема для отдельной дискуссии
Источники:
1) На удивление толковая статья в английской википедии
Sunday, November 25, 2012
Всеукраинский хакатон
Пару недель назад
очень интересно провел время на хакатоне, который проводило наше предприятие
среди своих украинских офисов. 24-часовой программистский марафон закончился
для моей команды третьим местом в общем зачете и призом за лучший стартап.
Важную роль в
таком результате сыграла эффектная презентация (в которой я принял активное
участие) и возможность пользователям дать что-то пощупать. Мы залили версию
приложения для Android в сеть, что позволило к концу моего выступления уже
услышать первый фидбек (пусть он и звучал как “а чего так тормозит..”), который
повлёк за собой бурное обсуждение в зале.
Немного удивил
факт того, что тема (“Green planet”) была оглашена заранее. Такой
поворот событий позволил более-менее продумать идею и распределить задачи.
Общий тренд по
хакатону – применение геолокационных сервисов, не удержалась от такого соблазна
и наша команда.
Friday, September 28, 2012
No passwords any more
Очень интересную концепцию беспарольной аутентификации описал блог IT-компании Xoxco. Суть идеи в том, что зарегистрированный пользователь вводит вместо связки логин+пароль или электронная_почта+пароль только свой адрес электронной почты. Письмо с генерируемой ссылкой, в которую, вероятно, входит ключ для аутентификации, высылается на этот адрес, пользователь через эту ссылку заходит в защищенную зону. Сеанс может длиться сколько угодно долго. Когда необходимо завершить сеанс - просто делаем логаут. И в следующий раз повторяем все сначала.
Конечно, такая схема подойдет не везде и не всегда. Но в большинстве случаев все гениальное просто, не правда ли?
Конечно, такая схема подойдет не везде и не всегда. Но в большинстве случаев все гениальное просто, не правда ли?
Sunday, September 9, 2012
IT-индустрия через 10 лет
IT-специалисты и программисты в частности сейчас сильно востребованы на рынке труда стран СНГ. Да и на Западе за хорошего специалиста дорого готовы дать. Но как долго это будет продолжаться? Не является ли социальной несправедливостью факт того, что зарплата адекватного Java-разработчика может в 3-4 раза превышать средний уровень по стране? Имею некоторые соображения по этому поводу.
1) Дефицит кадров в индустрии не может быть постоянным. Вот уже сейчас университеты круто меняют свои учебные программы в сторону увеличения числа выпускаемых технических специалистов. Но многие ли из этих будущих специалистов знают, что такое быть хорошим инженером или программистом? Поп-культура навязывает образ легкой жизни и быстрых подъемов без больших усилий, а такой поворот в IT вряд ли возможен. Потому полагаю, что после «расширенных» выпусков ВУЗами технарей число специалистов увеличится, зарплаты и конкурсы на вакансии могут снизиться на 15-20%, но взрыва рынка не произойдет.
2) Информатизации во многих отраслях сейчас продолжает бурный рост, рано или поздно должен начаться спад или хотя бы замедление. Что-то вроде перегрева дот-комов в начале 2000-х. Гарантированно останется поддержка и доработка под новые требования существующих решений. Хватит ли места для всех специалистов? Можно предположить возможность небольшого спада в индустрии, но учитывая ее гибкость и легкость миграции между технологиями (переход на другую платформу/язык программирования у хорошего спеца вряд ли займет больше 3 недель, хотя возможны нюансы), сложно считать такой поворот событий большим риском.
3) А не перехватит ли эстафету бурного развития какое-то другое направление в науке/технологиях? Эти вехи, кажется, повторяют вехи развития общества: индустриальное-постиндустриальное-информационное. А что последует дальше? Быть может, биотехнологии в интеграции с информатикой? То есть, эта биоинформационного общества, где изделия T-800 и T-1000 из культового голливудского фильма станут нормой жизни? Такое счастливое событие нам вряд ли грозит в ближайшие лет 10, а что уж будет дальше – это тема для футурологов.
4) Как заметил в своей статье на Forbes.ua Андрей Колодюк, в IT основным инструментом производства являются люди. Т.е., абстрактно говоря, они во многом заменяют собой станки на фабриках, а финансовые потоки текут в гавань высококлассных специалистов и их менеджеров или инвесторов.
Saturday, August 4, 2012
Четыре дня Одессы
В конце июля посчастливилось вырваться в краткосрочный отпуск и посетить Южную Пальмиру.
Благодаря сухости климата жара почти не ощущалась. Мы даже сделали небольшой велопробег вдоль набережной, арендовать велосипед можно всего за $4.5 в час.
Очень много дорогих машин, люди одеваются со вкусом, а вот некоторые учреждения не утруждают себя работой даже в рабочее время, или работают только до 16-00. Много отдыхающих из России. На двух экскурсиях, которые удалось посетить, численно преобладали именно они.
Что больше всего удивило в городе:
1) Героическая история и бесстрашные люди. Герцог Ришелье в борьбе против чумы, «красный» Котовский, оборона Одессы в 1941 году, многочисленные подпольные группы во время оккупации.
2) Очень красивые девушки. В центре города они почти повсюду. Нигде еще такого не видел.
И вот еще что. Город полностью русскоязычный, как современный город и гавань был основан русской императрицей, а известная политическая сила небезосновательно призывает с бигбордов (у нас в Киеве таких пока не видел): "Говори и думай на своём языке".
Friday, July 27, 2012
Simple Player 1.0
На прошлой неделе наконец выложил на Google Play своё первое приложение - Simple Player.
Простой музыкальный проигрыватель, навигация по трекам - согласно папкам с аудиофайлами. Абсолютно бесплатен.
Идея написать приложение возникла благодаря аудиокнигам, которые временами имеют кривые ID3-теги (исполнитель, название и т.д.) и потому слушать их стандартными плеерами очень неудобно.
Сам компонент плеера вынесен в отдельный сервис, который очень бережно относится к батареи телефона – в отличие от многих других проигрывателей, он находится в памяти только когда открыто его окно или идет воспроизведение в фоновом режиме.
Регистрация на Google Play заняла времени едва ли не больше, чем собственно разработка приложения – ждал 10 дней валидации документов и еще непонятно чего. Пока не начал слать приветы их техподдержке – дело с места не двинулось. Причиной, скорее всего, была неотлаженная работа платежной системы Google Checkout, которую пока никак нельзя обойти – все денежные переводы (и регистрационный взнос $25) делаются только через нее.
Tuesday, July 17, 2012
Брюс Эккель - Философия Java
Шлифуя свои знания по Java Core, недавно прочел (местами – пролистал) рекомендуемую многими книгу Брюса Эккеля «Философия Java» / Bruce Eckel - Thinking in Java. Объем материала большой, с монитора такое читать не хотелось, посему приобрел за $25 на книжном рынке наиболее актуальное, четвертое, издание, 2012 года.
Оригинальный текст был написан автором в 2005 году, и с тех пор успешно издается практически без изменений. Естественно, описана Java SE5. Не самая древняя версия, для глубокого понимания уровня Core вполне достаточно.
Мне очень понравилась первая половина книги – концепции ООП, их развитие и применение в Java. Именно здесь, пожалуй, и применим авторский «разговорный» жанр изложения.
Альтернативой этой книге может быть двухтомник Хорстмана – «Java 2. Библиотека профессионала».
UPDATE
Старшие товарищи подсказали, что купленное мной издание книги сильно урезано по сравнению с оригиналом - особенности "локализации" российского издателя. Некоторые главы и вовсе отсутствуют.
Оригинальный текст был написан автором в 2005 году, и с тех пор успешно издается практически без изменений. Естественно, описана Java SE5. Не самая древняя версия, для глубокого понимания уровня Core вполне достаточно.
Мне очень понравилась первая половина книги – концепции ООП, их развитие и применение в Java. Именно здесь, пожалуй, и применим авторский «разговорный» жанр изложения.
А в целом материал вышел действительно философской. Как и труды Ницше, для понимания сути нужно перечитывать местами 2-3 раза. Отчасти это объясняется и тем, что здесь нет таблиц, а число диаграмм можно сосчитать на пальцах.
UPDATE
Старшие товарищи подсказали, что купленное мной издание книги сильно урезано по сравнению с оригиналом - особенности "локализации" российского издателя. Некоторые главы и вовсе отсутствуют.
Friday, July 13, 2012
Про стартапы
На Хабре опубликован перевод интереснейшей статьи Майкла Чёрча (Michael O.Church) с ёмким названием «Не тратьте своё время на дерьмовую работу в стартапе». Повествование о специфике работы в стартапе с точки зрения инженера с описанием некоторых финансовых/инвестиционных деталей. Имея опыт работы наёмным проджект-менеджером в производственном стартапе, полностью соглашаюсь с предложенной автором точкой зрения.
Переведенная статья на Habr: http://habrahabr.ru/post/147675/
Оригинальная статья на сайте автора: http://michaelochurch.wordpress.com/2012/07/08/dont-waste-your-time-in-crappy-startup-jobs/
Переведенная статья на Habr: http://habrahabr.ru/post/147675/
Оригинальная статья на сайте автора: http://michaelochurch.wordpress.com/2012/07/08/dont-waste-your-time-in-crappy-startup-jobs/
Friday, July 6, 2012
В удивительной стране мы живем
Вот очередной фокус: 993,6 млн гривен на систему для записи и трансляции видео веб-камерами на парламентских выборах. Около 34 тысяч избирательных участков. На каждом по две веб-камеры.
Сделаем простые подсчеты:
- ДЛЯ КАЖДОГО УЧАТСКА:
- 1 * Нетбук Samsung 305U1Z с быстрой видеосистемой http://hotline.ua/computer-noutbuki-netbuki/samsung-305u1z-np305u1z-a01ua/ = 3600 грн
- 2 * хороших веб-камеры Microsoft LifeCam HD-3000 http://hotline.ua/computer-web-kamery/microsoft_lifecam_hd-3000/ = 550 грн
- 2 * активный USB-хаб http://hotline.ua/computer-usb-koncentratory/belkin_f5u404perblk/ + USB-удлинитель, каждую камеру можно поставить на расстоянии до 10 метров от нетбука = 400 грн
- 1* модем МТС-Коннект (покрытие 97% страны в режиме EDGE/GPRS, кое-где понадобится внешняя антенна, но это уже погрешности) + плата за большой объем трафика = около 700 грн
- Операционная система: на базе Linux = бесплатно
ДЛЯ ВСЕХ УЧАСТКОВ: 34000 участков*5250 грн = 178,5 млн грн
Здесь наиболее сложный вопрос – передача видеопотока при низкой скорости интернета. Проблему можно решить путем трансляции на центральный пункт видеопотока в низком качестве, а локально на жесткий диск сохранять HD-видео. При необходимости – после выборов нужную запись несложно найти.
- ДЛЯ ЦЕНТРАЛЬНОГО ПУНКТА: задача обеспечения трансляции с такого количества веб-камер далеко нетривиальная, разработка программного обеспечения потребует немало сил. Потому считаем приблизительно и округляем в бОльшую сторону:
- Разработка серверной стороны системы + веб-сервера (должно получиться что-то вроде упрощенного YouTube) = 19.5 млн гривен
- Разработка клиентского ПО + установка образов на всех нетбуках = 0.5 млн гривен
- Оборудование для дата-центра, коммуникационные услуги (здесь посчитать очень сложно, берем по максимуму, хотя ведь можно использовать и часть имеющихся ресурсов) = 80 млн грн
- Обустройство офиса, офисная техника, комната для прессы = 10 млн грн
- Аренда ресурсов для хранения всех видеозаписей в сжатом формате в течение года (тоже очень приблизительно) = 0.25 млн грн
- Дополнительные расходы:
- Обучение сотрудников избирательных участков (брошюра + лекция), что может обойтись в 200 грн на каждый из 34000 участков = 6.8 млн грн.
- Транспортировка техники к каждому участку, прикручивание веб-камер к потолку и прокладывание шнуров – вот это я не берусь оценивать, но прикинем что обойдется сие действие тоже в 200 грн на каждый из 34000 участков = 6.8 млн грн.
Подводим смету: 110.25 млн грн + 178,5 млн грн + 13.6 млн грн = 302.35 млн гривен. И это по розничным ценам при самом грубом подсчете. Вывод: около 70% выделяемой суммы можно сэкономить.
А вспоминая выборы президента России в марте этого года с веб-камерами на 90% избирательных участков, возникают очень большие сомнения в необходимости этих веб-камер на выборах вообще :)
Sunday, July 1, 2012
Блог Insight IT
Очень познавательный блог Ивана Блинкова Insight IT об архитектуре больших высоконагруженных систем. Рассмотрены компоненты таких гигантов, как Facebook, Вконтакте, Stack Overflow и Instagram.
В последних своих постах автор развивает еще одну интересную тему – интерактивные сайты. Стиль изложения и глубина понимания Иваном предметной области приятно удивляют, выделяя его проект среди сотен похожих ресурсов.
Tuesday, June 26, 2012
Бесконтактные измерения
Группа ученых из MIT и Quanta Research Cambridge опубликовали занятнейшую статью, где
представили схему фильтра для выделения мелких скачков в видеопотоке. Основная
идея заключается в усилении малейших перепадов цвета и крошечных перемещений на
входной серии изображений. При подстройке под определенную точку на теле
человека этот фильтр может быть применим для измерения частоты сердечных
сокращений и дыхания. Такое решение сулит большой шаг вперед для массовой медицины,
компетентных органов и игроков в покер :)
Порой такие новости
заставляют задуматься о скором наступлении того дня, где на расстоянии можно
будет читать мысли и воспроизводить образы из головного мозга, что, вероятно,
приведет к значительным переменам в жизни человечества.
В сети материалы и
матмодели стали доступны больше месяца назад. Исходные коды обработчика обещают
открыть в ближайшее время.
Friday, June 22, 2012
Java EE 6 Tutorial
Осваивая JavaEE-программирование, столкнулся с большим
количеством статей и записей в блогах о частных случаях использования тех или
иных технологий. Картину «в целом» собрать оказалось сложно. Не слишком
эффективны и официальные мануалы к той или иной технологии (напр., JPA или EJB3) из-за
акцентирования внимания в них именно на свои продукты.
Спасибо Гуглу,
который привел меня на блог австрийского разработчика по имени Andreas
Manessinger. Вот здесь http://programming.manessinger.com/tutorials/an-eclipse-glassfish-java-ee-6-tutorial/ он приводит очень подробный учебный курс
по Eclipse / GlassFish / Java EE 6. Размах проекта впечатляет, автор не
поленился добавить работу с протоколом REST и СУБД PostgreSQL.
Thursday, June 21, 2012
Hello, world!
Запускаю этот
блог как удобное средство для хранения технической информации, идей и впечатлений.
Буду скромен и скажу, что я пока не эксперт в сфере своей профессиональной деятельности – разработке программного обеспечения. Отлично понимая это, хочу постоянно повышать свою квалификацию, осваивать новые технологии и делиться некоторыми своими находками на этих страницах.
Буду скромен и скажу, что я пока не эксперт в сфере своей профессиональной деятельности – разработке программного обеспечения. Отлично понимая это, хочу постоянно повышать свою квалификацию, осваивать новые технологии и делиться некоторыми своими находками на этих страницах.
Subscribe to:
Posts (Atom)