Архив за 14 мая 2012 - 5

«В образовании точно что-то назревает. Начали поступать предложения выпускать учебники на iPad, но кажется, что это уже вчерашний день, и будущее за онлайн-курсами» [народный фольклор].imageЧитать полностью »

Привет. Меня зовут Александр. И я хочу поделится своей историей работы над одним крупным и сложным проектом.

В этой статье не будет кода и схем, в ней будет только история создания «от и до» самого проекта. Думаю, многим будет интересна данная статья. Итак, поехали!

Начало

Все началось летом 2011. На тот момент я был 3 года чистокровным фрилансером. То есть моя работа — это фриланс. Работал и работаю до сих пор только с западными заказчиками. Основная специализация — разработка проектов связанных с распознаванием образов, текста и т.д.

Все началось с того, что я, как всегда, с утра проверял почту, чистил спам, занимался рутинной работой. Обычно я не смотрю, что у меня в спаме, но тут я увидел письмо, с вполне реального адреса. Я открыл письмо, в котором одна компания искала программиста для допиливания крупного западного проекта. Причем эта компания требовала программиста именно из моего города и обязательно с опытом работы в области распознавания. Я ради любопытства ответил на это письмо. Буквально через час мне пришел ответ. А через два мы уже созвонились с менеджером проекта. Поначалу мне показалось, что ничего сложного в доработке нет, обычный набор функционала. После непродолжительного разговора с менеджером я огласил свой прайс, то есть ставку в час. И на этом мы попрощались. На следующий день мне сказали, что согласны на мой ценник и дали тестовое задание. Я его успешно выполнил в течении часа, и мы двинулись дальше. А здесь начинается самое интересное. Во-первых, меня пригласили в офис для того, чтобы подписать договор о неразглашении (Non-Disclosure Agreement). Во-вторых, и это логично, исходники проекта мне обещали отдать только после подписания договора. Если честно, меня это смутило, не знаю даже почему. И интуиция меня не подвела. Я потребовал хотя бы часть исходного кода, чтобы оценить сложность работы и попросил рассказать подробнее о проекте. Как оказалось проект на тот момент велся уже три года и я был 4 (!) исполнителем. До меня работала американская компания, потом индусы, потом компания, которая наняла меня, пыталась реализовать проект силами одной девочки-программиста, а потом это все чудо предложили разгребать мне. Меня это не просто удивило, а очень насторожило. Потом я узнал множество удивительных вещей, например о том, что заказчик 2 года не видел программу, а видел только скриншоты, а индусы кормили обещаниями этого заказчика. У меня не укладывалось в голове, как такое можно реализовать. Менеджеру индусов надо дать медаль «За находчивость».

После того как я выслушал удивительную историю, мы договорились с менеджером о том, что он мне отдаст исходный код и я оценю масштаб трагедии. Чтобы было более понятно, я расскажу более подробно о проекте. Этот проект — это инструмент для инженеров, архитекторов, электриков и других людей, которые занимаются строительством домов, небоскребов, одним словом зданий. Он служит для подсчета различных элементов на строительных планах, расчета площадей, измерения длин и составления смет. Грубо говоря есть строительный план и на нем есть розетки. Нам надо распознать и посчитать сколько этих розеток. Для распознавания использовалась библиотека написанная другим программистом. Сам проект написан на C#. Моя задача была собрать все воедино и доработать дополнительный функционал, а также привести программу к более менее стабильному состоянию. Кажется все просто и элементарно. Я тоже так подумал. Но не тут-то было.

После того как я получил исходники, я попытался скомпилировать проект. Это мне не удалось. После краткого анализа, я исправил ошибки и все же запустил проект. Но, к сожалению, он не заработал так как нужно. После нескольких часов анализа кода я пришел к выводу, что вся проблема в библиотеке распознавания. На тот момент у меня стояла 64-битная «семерка», а у менеджера 32-битная. У него все работало, у меня нет. Я попросил, что бы мне скомпилировали библиотеку под 64-битную платформу. Но разработчик библиотеки с пеной у рта доказывал, что не в разрядности дело. Я не мог ему ничего доказать, так как он дал очень немного информации о своей библиотеке и вообще берег ее как зеницу ока. Время шло и мне надо было хотя бы полностью провести процесс поиска. Я плюнул на все и поставил себе 32-х битную версию ОС. И о чудо! Все заработало. Отвлекаясь, хочу сказать о библиотеке, в будущем дело все же оказалось в ее разрядности.

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

1. Компоненты и контролы.

Проект очень сильно связан с графикой, но для ее вывода и обработки использовался обычный PictureBox. Самый маленький размер плана — 5400x3600 пикселей. Знающие люди поймут, что для PictureBox -это достаточно проблематичная тема с выводом больших картинок и их обработкой. Не стоит забывать, что помимо самих планов выводится еще много информации (площади, текст, найденные символы и т.д.). При запуске проекта с 5 маленькими планами, программа непременно падала с ошибкой «Out of memory». Что было очень большой проблемой, так как основной задумкой было то, что инструмент должен был работать по принципу «запустил и забыл».

2. Логика архитектуры исходного кода программы.

Читать полностью »

Введение

Прочитав пост HeavyRazzer (Опыт использования аккумулятора на 3600 мАч для смартфона HTC Sensation ), было решено провести тестирование аккумулятора для моего смартфона HTC Desire S.
Читать полностью »

Этот снимок был сделан с высоты 35 т. километров отечественный гидрометеорологическим спутником «Электро-Л» №1.

Earth by Electro-L No. 1

Читать полностью »

image

Измерение радиационного фона под Медным всадником

Я решил проверить, как работает ДО-РА в путешествии.

ДО-РА это компактный прибор для измерения радиации. Втыкается в аудио-вход iPhone и телефон начинает работать, как бытовой дозиметр. Разумеется, Вам становятся доступны красивые экраны, качественные шрифты и куча дополнительной информации и сервисов iOS.

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

Читать полностью »

Компания Panasonic сообщила о пополнении ассортимента портативных компьютеров моделью Let’s Note J10, сочетающей мобильность и высокое быстродействие: аппарат, даром что наделен экраном диагональю 10,1 дюйма, комплектуется процессорами Core i3 и i5. Правда, как результат, при небольшой длине и ширине корпуса (251,9 х 171,7 мм соответственно) аппарат получился не тонким: минимальная толщина корпуса — 27,3 мм, максимальная — 35,1 мм.

Panasonic Let’s Note J10

Читать полностью »

Здравствуйте.
Предлагаю вам уделить несколько минут для прослушивания нового выпуска Piano podcast.
Piano podcast — spring atmosphere

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

Читать полностью »

Команда LinguaLeo едет в Черногорию на 2 месяца. На борту 5 свободных мест! Миссия команды — выпустить важнейшие релизы

История лингвистического веб-сервиса LinguaLeo началась с 6-ти месячной разработки на этом острове в Таиланде. Именно там маленькая команда выпустила бета-версию сервиса. Море и Джунгли помогли!

Прошло два с лишним года. Сегодня на LinguaLeo 1.300.000 зарегистрированных пользователей, суточная аудитория — около 80.000 человек. Но пока LinguaLeo доступен только для русскоязычных пользователей… Есть iPhone-приложение и бета-версия WinPhone-приложения, но нет Android приложения… Есть Джунгли, удобный личный словарь и тренировки для расширения словарного запаса, но почти нет инструментов для освоения грамматики и работы с фразами… А все это так близко, так нужно и так важно для человечества качественного изучения иностранных языков. Кроме того, у миллионной аудитории сервиса еще нет возможности общаться между собой вживую и практиковать английский язык…
Читать полностью »

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

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

Продолжаем познавать тайны тестирования видеокодеков. На этот раз поговорим про энкодеры.
Ссылка на первую часть.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js