Обновить

Компания Инфопульс Украина временно не ведёт блог на Хабре

Сначала показывать

С днём тестировщика!

Время на прочтение1 мин
Охват и читатели15K
Уважаемые специалисты Quality Assurance!

Мы искренне поздравляем вас с профессиональным праздником — днём тестировщика. Ваша работа стоит на страже качества программных продуктов, бережёт нервы пользователей и делает весь наш мир чуть-чуть более упорядоченным и логичным. Спасибо вам за это!

Чек-лист преодоления CAP-теоремы

Время на прочтение2 мин
Охват и читатели7K
Итак, вы ☐ твитнули, ☐ написали в блог, ☐ опубликовали пресс-релиз, ☐ написали в комментариях о том, что знаете способ преодолеть CAP-теорему. Ваша идея не сработает. И вот почему:

☐ вы предполагаете, что сбоев софта\железа\сети никогда не случается
☐ вы на самом деле всего-лишь перенесли проблему на другой логический слой
☐ ваше решение эквивалетно одному уже существующему, которое не преодолевает CAP-теорему
☐ вы на самом деле построили AP-систему (доступность и устойчивость к разделению, но не постоянная согласованность данных)
☐ вы на самом деле построили CP-систему(согласованность данных и устойчивость к разделению, но не постоянная доступность)
☐ вы на самом деле построили нераспределенную систему

А особенно в ваших планах плохо следующее:
Читать дальше →

Шпаргалка по параллелизму в С++

Время на прочтение1 мин
Охват и читатели26K

Бесплатный тренинг-практикум по Software Packaging в Житомире

Время на прочтение1 мин
Охват и читатели3.3K
В Житомире 5 августа 2013 года стартует первый тренинг-практикум по Software Packaging. Обучение по программе будет проходить на базе компании «Инфопульс» при поддержке BIONIC University. Приглашаем всех желающих!

image

О курсе


Программа направлена на максимально быстрое и эффективное обучение основам Software Packaging: 173 учебных часа в течение 20-ти учебных дней. Для начинающих программистов. Занятия будут вести главные эксперты «Инфопульса» по этому направлению. Будет немного теории и очень много практики. Слушатели смогут увидеть и попробовать, как все работает в реальных поставках, а также узнать об использовании и разработке инновационных решений для автоматизации рутинных задач.

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

А почему бы не перестать страдать по мелочам?

Время на прочтение3 мин
Охват и читатели47K


Вот ждёте вы важное письмо от коллеги. 5 минут, 10, 20 — а нет его! Блин, а проверю-ка я спам. И точно — есть, 19 минут назад пришло. Чёрт, я же вроде уже добавлял этого человека в whitelist — почему письмо в спаме? Надо разобраться, проверить правила… Но сейчас нет времени, это мелочь, письмо срочное, а в эти правила как закопаешься, так на полчаса, еще и админов может быть придётся дёргать. Нет, потом…
А завтра письмо от коллеги опять в спаме.

Так, заходим на сайт… Блин, не сохранилась авторизация. Вот на всех сайтах сохраняется, а тут нет. Почему? Может быть почистить куки? Может сохранился старый пароль? Надо разобраться… Нет, ну это сейчас и в настройках рыться, и не дай бог, сохранённые пароли для других сервисов потру, нет, потом. Это ведь, в сущности, мелочь, а мне надо работать…
А завтра снова раздражение от не сохранённой авторизации и минута на размышление о причинах.

О, вот библиотека, которая делает то, что мне надо. Хм, на Python, а мне надо на С++. А на С++ такой нет. Ну ок, почитаю питоновский код, пойму общую идею и перепишу на С++. Ух ты, у моего редактора нет подсветки кода на Python! Может быть есть какой-то плагин? Или поискать другие редакторы? Ай, ну ладно, это ведь одноразовая задача, не буду тратить время — сейчас полдня потрачу на сравнение десятка IDE и редакторов кода на Python, а у меня ведь задача совсем другая, плюну, это ведь мелочь…
А завтра к библиотеке на Python выходит обновление и его снова приходится читать.

Почему бы не перестать страдать по мелочам?
Читать дальше →

Выход за границы контейнера Modern-приложений Windows 8

Время на прочтение7 мин
Охват и читатели28K
Ещё в операционной системе Windows Vista компания Microsoft добавила средство создания «песочниц» — так называемые Integrity Levels:
Untrusted < Low < Medium < High < System.

Всё в операционной системе (файлы, ветки реестра, объекты синхронизации, пайпы, процессы, потоки) имеет свой Integrity Level. Процесс, имеющий, к примеру Low Integrity Level не может открыть файл с диска, имеющий Medium Integrity Level (уровень по умолчанию).

Именно на этом механизме работают UAC и «Run as administrator», повышая Integrity Level запускаемого процесса. Именно на этой технологии работает песочница в Google Chrome: все процессы вкладок имеют самый низкий Integrity Level — Untrusted, что делает невозможным взаимодействие процесса вообще ни с какими файлами, процессами, ветками реестра и т.д.



Этот одна из сильных сторон безопасности Хрома — ведь даже найдя в нём какой-нибудь stack overflow вы упрётесь в систему безопасности ОС, которая не даст выйти за границы процесса. Кстати, сама Microsoft такой механизм организации песочниц для браузера применила лишь 4 года спустя в Win8.1 + IE 11 (было в выключенном состоянии в Win8 + IE 10 — но кто же пойдёт это искать и включать, так что не считается).

С выходом Windows 8 компании Microsoft понадобилось сделать механизм изоляции Modern-приложений, аналогичный применяемым в других мобильных ОС. Нужно было дать понять как пользователю, так и разработчику, что программа из магазина никак не достанет приватные данные юзера без его согласия, никак не сломает его систему и не нарушит работу других приложений даже при собственном крахе. Для реализации этой идеи был снова использован механизм Integrity Levels. Microsoft придумала такую штуку как «AppContainer». Читая доки в Интернете и даже глядя на описание процессов в Process Explorer, можно подумать, что AppContainer — это ещё один Integrity Level. Правда, непонятно где он — между Low и Medium? Между Untrusted и Low? Что тут можно сказать: и доки в Интернете и утилита Process Explorer — врут. Я себе не представляю как это маркетологи должны были задурить голову программистами, чтобы поля данных из официальных структур отображались намеренно неверно, но так оно и есть.

Правильное положение дел показывает сторонняя утилита ProcessHacker. Как мы видим из неё, AppContainer — это не новый Integrity Level. Это всего-лишь специальная метка, которая добавляется к работающему в общем-то под Low Integrity Level процессу. При этом эта метка уникальна для каждого приложения и используется как дополнительный барьер, ограничивая доступ не только к приложениям с более высокими Integrity Levels, но даже между процессами с Low Integrity Levels, но разными AppContainer-метками.

До этого момента всё было ещё более или менее логично. А вот отсюда начинается мракобесие.
Читать дальше →

Умение видеть абстракции

Время на прочтение9 мин
Охват и читатели86K


Моему сыну, как и многим мальчишкам, нравятся автомобили. Причём чем они больше и необычнее — тем больше нравятся. Когда мы идём по улице, а мимо проезжает эвакуатор или снегоуборочная машина, он неизменно дёргает меня за руку, указывает на заинтересовавший его объект и говорит: «Папа, б-р-р!». Говорит он так потому, что ему один год и вышеуказанные два слова составляют 40% его словарного запаса. Тем ни менее, в общем мысль понятна — обратить внимание на автомобиль. Давайте подумаем, каким образом ребёнок в возрасте 8-10 лет сказал бы своему сверстнику то же самое. Что-то вроде «Ух ты, смотри какая крутая тачка!», да? Мысль та же, но обратите внимание — уже шесть слов вместо двух. И, наконец, представьте, каким образом то же самое скажет человек лет в тридцать: «Эй, смотри, да это же Ferrari California 2008-го года выпуска с двигателем V8 мощностью в 454 лошадиных силы и 7-ми скоростной коробкой-автоматом! Она до сотни разгоняется за 3.9 секунды!». Да, здесь уже больше деталей, но, если вы не автомеханик или фанат Ferrari — они вам скорее всего не нужны и не важны. Основная же мысль — всё та же, что и в «Ух ты, смотри какая крутая тачка!» или «Папа, б-р-р!». Но выражена она уже в 30 слов.

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

Облака — ещё дешевле

Время на прочтение5 мин
Охват и читатели116K
Наверняка вы слышали о сервисах Amazon EC2, Rackspace и им подобным. Может быть даже пользовались. Лично мне бывает нужен иногда личный VPN-сервер. Для этих целей я уже давно держал микро-инстанс на Амазоне, предоставляемый им в течении первого года бесплатно. Плюс использовал для архивов Amazon Glacier, который с его ценой «1 цент за гигабайт в месяц» можно считать тоже почти бесплатным. Но вот год закончился и за EC2 стало нужно платить. Архивы мои тоже разрослись прилично и затраты на Glacier аналогично перестали радовать.

Случайно пробежавший мимо обзор сервиса DigitalOcean по-началу оставил меня равнодушным. Ну, облачный сервис, ну виртуалки. Ну да, чуть-чуть дешевле (но не так чтобы уж очень), чего-то аналогичного Glacier вроде бы нет да и вообще оно того не стоит.

Я сильно ошибался. Ниже будет рассказано как на базе DigitalOcean сделать себе VPN-сервер в пару десятков раз дешевле такого же на Амазоне и сервис хранения архивов, в бесконечность раз дешевле Glacier.
Читать дальше →

Ремонтируем онлайн-банкинг

Время на прочтение3 мин
Охват и читатели12K

На днях у меня перестал работать онлайн-банкинг моего банка. Нет, не то чтобы совсем перестал — вроде бы можно зайти и даже кое-что сделать, но вот одна из самых важных вещей (просмотр архива платежей) — просто намертво отказалась работать (а как раз было очень нужно). Выглядит это так: при открытии страницы со списком платежей браузер съедает всю доступную оперативную память и падает. В Chrome падает только текущая вкладка, а вот Firefox и IE умирают совсем. Баг воспроизводится на трёх разных PC, айпаде, в Safari под Mac OS и в Firefox под Linux. Ну это я просто так рассказываю, для того чтобы показать наивность советов техподдержки «поставить антивирус» и «перезагрузиться и зайти ещё раз». Давайте подумаем — можем ли мы что-нибудь в этой ситуации сделать?
Читать дальше →

Киевские ITSM встречи

Время на прочтение1 мин
Охват и читатели2.8K
image

Требования и зависимость любого бизнеса от IT-сервисов продолжает расти. В этой ситуации крайне важно, чтобы IT-департаменты и организации могли повышать свою эффективность и эффективность своих сервисов — только так бизнес может оставаться конкурентно-способным, а качество сервисов и продуктов — высоким.
ITSM говорит о том, что улучшать сервисы необходимо постоянно и каждый несёт ответственность за это. Мало кто поспорит с этим, но что происходит на практике, когда одни срочные задачи сменяют другие, как в IT-департаменте так и в самом бизнесе? Как обеспечить постоянное соответствие IT-сервисов стандартам, а не внедрять изменения уже после критического инцидента или как раз перед приходом аудитора?
Чтобы ответить на эти вопросы, а также обменяться знаниями и реальным опытом в этой области, мы организовали конференцию ITSM-Days.
Первый ивент будет проходить 30 мая, в 18:00, в коворкинге «Часопис».

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

BlackBerry MiniJam в Киеве 28-го мая

Время на прочтение1 мин
Охват и читатели3.7K
В Киеве нынче стоит хорошая погода, уже не холодно и ещё не пришла жара, цветут каштаны и сирень. И если этого не достаточно, чтобы заманить вас к нам в гости, так вот вам ещё аргумент: 28-го мая у нас пройдёт BlackBerry MiniJam. Это конференция, посвящённая продуктам компании BlackBerry — операционной системе BlackBerry 10 и устройствам на её основе.

Мероприятие для разработчиков — будет мало общих слов и много докладов по делу (разработка под BlackBerry 10, native приложения, Qt/Cascades, разработка на HTML5, портирование Android и Adobe Air-приложений, enterprise).

Будут устройства, которые можно покрутить в руках и люди, которые подскажут что и как именно в них можно крутить. Будет пара кофе-брейков и полноценный обед. Вход бесплатный.

Регистрация — тут (там же адрес и карта проезда).

Детальнее программа
09.00 — 10.00 — Registration / coffee break
10.00 — 10.30 — Keynote
10.30 — 11.30 — BlackBerry 10 Experience and Architecture Overview, Aaron Ardiri
11.30 — 12:30 — BlackBerry 10 applications architecture and packaging, Aaron Ardiri
12.30 — 13.30 — Lunch
13.30 — 14.30 — Cascades usage in BlackBerry 10 platform, Anton Chechel
14.30 — 15.30 — HTML5 with Native Capabilities and BlackBerry WebWorks, Lukasz Dzierzak
15.30 — 15.45 — Coffee break
15.45 — 16.30 — BlackBerry 10 applications repackaging for Android/Adobe Air, Lukasz Dzierzak
16.30 — 17.30 — BYOD and enterprise BlackBerry 10 applications, Dennis Reumer
17.30 — 18.00 — Questions and answers

Ждём вас.
Читать дальше →

Добавляем Web API для программы на C++ с помощью библиотеки POCO

Время на прочтение4 мин
Охват и читатели28K
В жизни любой достаточно большой программы наступает момент, когда нужно вывести наружу какой-нибудь API — для плагинов, для интеграции с другими системами, для автоматизации и т.д. Для этого есть много разных технологий, но как-то так исторически сложилось, что сейчас принято делать API в виде REST-сервисов. В принципе, если не гнаться за экономией каждого байта и микросекунды, то в этом есть смысл: HTTP-запрос сделать легко из любого языка, это хорошо работает и локально, и по сети, не нужно сильно глубоко погружаться в недры сетевых протоколов.
Давайте посмотрим, как к уже существующей программе на C++ можно быстренько прикрутить Web API, используя для этого библиотеку POCO.
Читать дальше →

Как начать писать тесты за 10 шагов по 10 минут

Время на прочтение7 мин
Охват и читатели80K
Дайте-ка угадаю: вы согласны с тем, что писать тесты — это хорошо. Это повышает надежность системы, ускоряет разработку, проект с хорошим тестовым покрытием поддерживать легко и приятно, а TDD — это вообще почти идеал процесса разработки. Но не у вас в проекте. То есть, оно клёво, но, к сожалению, сейчас столько работы — просто завал. Куча задач, одних только критических багов — два десятка, плюс надо срочно дописать этот модуль и еще написать письмо заказчику… Так что тесты, наверное, будем прикручивать уже в конце, если время останется. Или в следующем проекте. Нет, ну там точно полегче будет. Скорее всего.

Как, узнали ситуацию?

Так вот — чушь всё это. Сфера ИТ — бесконечна, как вселенная, куча работы будет всегда. Можно или начать писать тесты прямо сейчас, или не сделать этого никогда. Я тут набросал короткий план, как начать это делать за 10 шагов, по шагу в день, по 10 минут на шаг. И когда я говорю «10 минут» я имею в виду не «3 с половиной часа» и не «ну сколько-то времени, лучше побольше», а именно 600 секунд. Если у вас нету в день 600 секунд свободного времени — срочно меняйте проект, работу, профессию, страну проживания (нужное подчеркнуть), потому что это не жизнь, а каторга какая-то. Поехали.
Читать дальше →

Лень-driven development

Время на прочтение4 мин
Охват и читатели48K
Человек — ужасно ленивая зараза. Нет, ну я не о вас, конечно! Ну что вы! Я так, о себе. О 99% человечества. Но не о вас, нет. Вы сами за себя решайте. Но вот те 99%, так уж вышло — ужасно ленивы. Кто-то это отрицает, кто-то мирится, кто-то борется. А лично мне кажется, что это такая же неотъемлемая черта нашего вида, как, например, две руки и две ноги. Можно убиваться, что у нас нет крыльев или жабр — а можно научиться хорошо пользоваться тем, что есть. Так же и с ленью. Зачем её отрицать? Надо её использовать по-полной. И вот тут, поскольку мы с вами имеем кое-какое отношение к ИТ, давайте посмотрим, как с этим обстоит дело в нашей профессии.
Читать дальше →

Ближайшие события

Стивен Кинг «Как писать программный код»

Время на прочтение6 мин
Охват и читатели51K
«Что? Стивен Кинг „Как писать программный код“ ?! Нет такой книги! Да он вообще не программист ни разу!».
Да, так и есть. Тем не менее — книга с таким содержанием у него есть. Хотя он и не думал, что пишет её об этом. Хотя в результате написал. Хотя, наверное, и не знает об этом. О чём же я тут рассуждаю? О недавно прочитанной мною прекрасной книге «Как писать книги» (англ. — «On Writing»).

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

Как две недели?!

Время на прочтение2 мин
Охват и читатели106K
Как это вам надо две недели на эту задачу? Что, правда? Вот на эту элементарную формочку с тремя полями и двумя кнопками? Две недели? Да вы надо мной издеваетесь, наверное! Давайте разбираться.

Что? Нужна ли валидация данных при вводе? Ну, конечно, нужна! И вообще, вот это поле лучше разбить на два, так понятнее. А вот в это добавить маску. А вот это — заменить на выпадающий список. Где брать варианты для этого списка? В базе на сервере, конечно. Как это их там нет? А, ну да, это же в другом проекте они у нас были… Ну, значит надо добавить. Взять там и добавить сюда. Сейчас я дам вам контакт разработчика того проекта — обсудите с ним. Он, правда, у нас уже не работает, но я думаю, вполне можно спросить что и как — он расскажет, скорее всего.

Мы всё обсудили? Нет? Что ещё?
Читать дальше →

Настоящая жизнь

Время на прочтение3 мин
Охват и читатели57K
Всю неделю Пашка пахал, как проклятый: уроки в школе, работа по дому, домашка. Причём сделав основную, он ещё решал задачи повышенной сложности по математике и прочитал тот роман, что будет в программе по литературе только в следующем месяце. Даже сестрёнку из детсада подрядился забирать. Пашке было ради чего, Пашка старался. В конце-концов, родители сказали, что от его поведения будет зависить вопрос с доступом к компьютеру на выходных. Если он всё сделает верно — никакого компьютера целых два дня он видеть не будет.
Читать дальше →

А сложно ли работать программистом?

Время на прочтение4 мин
Охват и читатели153K


Этот вопрос мне часто задают вокруг. Задают родственники, друзья, дети друзей и вообще незнакомые люди. У всех своих цели — кто-то хочет сменить род деятельности, кто-то только выбирает куда пойти учиться, а кто-то желает в первую очередь убедить себя в том, что «вот еще и этим бездельникам ни за что деньги платят». Что же ответить на этот вопрос? Честно говоря, первым делом, конечно, хочется выпятить грудь колесом и двинуть речь о том, что, дескать, окромя нечеловеческого ума и 10 лет глубокой математической подготовки нужно еще иметь природный талант и пахать круглосуточно… Но где-то на третьей минуте этого увлекательного текста включаются мозги и здоровый скептицизм, требующий на время замолчать и немного подумать.

А и правда — сложно ли?
Читать дальше →

C++ в 2013 году

Время на прочтение3 мин
Охват и читатели36K
2013 год только начинается. Чего же мы можем ожидать в нём для языка С++?

Ещё в прошлом году стало заметно значительное оживление в мире С++. Язык становится более динамичным, это заметно. С++03 правил много лет, без нового cтандарта С++ почти целое десятилетие мы наблюдали за развитием библиотек, статического программирования, вещей типа мета-программирования на шаблонах — и всё это неплохо эволюционировало. Но вот сам язык при этом никуда не двигался.

В 2013 году это изменится. Во-первых, начиная с этого года новый стандарт С++11 наконец станет доступен широкой аудитории, в виду полноценной его поддержке в Visual Studio 2012, Clang 3.2 и GCC 4.8. Влияние нового стандарта на библиотеки и фреймворки ощущается уже сейчас, к примеру многое из него нашло своё применение в Qt5. Но стандарту С++11 не суждено стать фундаментом разработки на следующее десятилетие. Скорее, его можно воспринимать как хороший промежуточный этап, шаг в сторону эволюции языка, которая продолжится в 2013-ом году и позже.

Это одна из причин почему я думаю, что 2013 год станет особенным для С++. В этом году начнется работа над новым стандартом — С++14. В апреле пройдет встреча комитета по стандартизации С++ в Бристоне (Великобритания) и мы уже сможем представить себе наброски будущего стандарта. В октябре пройдет встреча в Чикаго, где должен быть уже сформирован более или менее чёткий черновик, который в начале 2014-го станет новым ISO-стандартом.

Что же нам предложит С++14?
Читать дальше →

Пример принципа DRY в Windows Phone 7

Время на прочтение10 мин
Охват и читатели6.6K

Я идеалист.


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

Но, отойдем немного от философии к практике. Разрабатывая приложения, я всегда стремился к идеалу, стремился следовать актуальным концепциям. По ходу разработки я всегда старался следовать принципу DRY. Некоторое время назад я начал заниматься разработкой под Windows Phone. В результате появились «обертки» для операций, которые используются чаще всего. Некоторыми из них хочу поделиться.
Читать дальше →