Рубрика «разработка» - 277

Начну с истории о программистах, которую мне приходилось слышать неоднократно.

Я попросил Джо написать простенькую программу, которая делает &ltxyz&gt. Работы там было на несколько часов, в худшем случае на день. Ему понадобилось несколько дней, за который он написал гораздо более сложный фреймворк, чем требовалось. Почему он снова так намудрил?

Возможно, дело в том, что Джо – Абстрактно ориентированный программист (АОП) .Читать полностью »

«Проект без рисков – удел неудачников. Риски и выгода всегда ходят рука об руку» (с) Том Демарко, Тимоти Листер.

Руководителю проекта разработки ПО надо уметь делать немногое. Надо лишь уметь управлять рисками. Рисками не уложиться в срок. Рисками сделать не то, что требуется. Рисками перерасходовать проектный бюджет. Всё остальное – производные активности.

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

image

Таким большим оптимистам можно дальше и не читать. Для остальных продолжу.

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

Оговорюсь сразу, что самый значимый риск в разработке ПО – неадекватный РП. Но сейчас не об этом.
Читать полностью »

Для того чтобы быть крутым программистом нужно много программировать.

Но еще и важно пополнять свои знания через чтение интересного и нового. Получать информацию можно из многих источников, раньше для меня это были блоги и RSS канал. Но с течением времени, я пришел к выводу, что почти что всю самое интересное я получаю из 3 мест: twitter, github, stackoverflow.

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

В ведении операторов связи с советских времён находится своеобразное «наследство» – линейно-кабельное хозяйство, связывающее коммуникациями как городские, так и сельские объекты по всей России. С начала 90-х годов прошлого века начались массовые хищения медного кабеля и чугунных крышек кабельных колодцев. И тема охраны и контроля линейно-кабельных сооружений стала актуальна как никогда. К сожалению, свою актуальность она не потеряла и сейчас.

Контроль линейно кабельных сооружений оператора связи

Наша система – АПК «Ценсор-Технотроникс» — начиналась много лет назад именно с контроля ЛКС. Этой спецификой в мире занимается всего несколько производителей. И скажу без ложной скромности, Технотроникс здесь занимает передовые позиции, что подтверждено многочисленными патентами.

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

image

Эта заметка является косвенным продолжением моей первой публикации Сборка Android под Mac OS X и имеет аналогичную цель — решение проблем сборки относительно старых версий Android 4.0.x.

Коротко вводная. В одном из проектов я занимаюсь доработками оригинального кода Android для создания прошивки под специфичную железку. Версия для сборки была выбрана уже относительно старая — AOSP 4.0.4, но на ней базируется стабильная ветка кода от производителя железки. Первоначально я работал на MacOS, но для этого проекта решил переключиться на Linux для удобства разработки. Итак волею судеб я перешел с MacOS на более менее свежий Ubuntu Linux 12.04.3, рекомендованную на данный момент версию Linux для сборки Android.
Читать полностью »

В начале прошлого года мне пришла в голову идея написать собственный язык интерфейсов (IDL), который был бы похож на Protobuf или Thrift, но предназначался бы для веба. Я надеялся закончить его где-нибудь месяца за три. До первой стабильной версии прошло чуть больше года.

Pdef (пидеф, protocol definition language) — это статически типизированный язык описания интерфейсов, который поддерживает JSON и HTTP RPC. Он позволяет один раз описать интерфейсы и структуры данных, а потом сгенерировать код для конкретных языков программирования. Пидеф подходит для публичных апи, внутренних сервисов, распределенных систем, конфигурационных файлов, как формат для хранения данных, кеша и очередей сообщений.

Основная функциональность:

  • Развитая система пакетов, модулей и пространств имен.
  • Поддержка циклических импортов и зависимостей типов (с некоторыми ограничениями).
  • Простая система типов, основанная на четком разделении интерфейсов и структур данных.
  • Наследование сообщений (аналог struct'ов) и интерфейсов.
  • Поддержка цепочек вызовов, например, github.user(1).repos().all().
  • JSON как формат данных и HTTP RPC для передачи данных.
  • Возможность использовать другие форматы и RPC.
  • Подключаемые кодогенераторы (официально поддерживаются Java, Python и Objective-C).
  • Опциональность кодогенерации, т.е. Пидеф позволяет сериализовать данные и отправлять запросы руками.

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

Пример описания сообщения:

message Human {
    id          int64;
    name        string;
    birthday    datetime;
    sex         Sex;
    continent   ContinentName;
}

Примеры использования (примеры сгенерированного кода):

Json

{
    "id": 1,
    "name": "Ivan Korobkov",
    "birthday": "1987-08-07T00:00Z",
    "sex": "male",
    "continent": "europe"
}

Java

Human human = new Human()
    .setId(1)
    .setName("John")
    .setSex(Sex.MALE)
    .setContinent(ContinentName.ASIA)

String json = human.toJson();
Human another = Human.fromJson(json);

Python

human = Human(id=1, name="John")
human.birthday = datetime.datetime(1900, 1, 2)

s = human.to_json()
another = Human.from_json(s)

Objective-C

Human *human = [[Human alloc]init];
human.id = 1;
human.name = @"John";
human.sex = Sex_MALE;
human.continent = ContinentName_EUROPE;

NSError *error = nil;
NSData *data = [human toJsonError:&error];
Human *another = [Human messageWithData:data error:&error];

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

Многие знают о возможности публикации книг в Apple iBookstore.
Даже в рунете можно найти статьи, посвященные этому вопросу. Но при внимательном их изучении, они оказываются просто переводом общедоступных западных материалов и форумов.
При реальной же попытке создать и опубликовать книгу в iBookstore, на многих этапах приходится сталкиваться с нигде не описанными проблемами, осложненными тем, что мы являемся жителями СНГ.

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

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

«Звонок в один клик» или Push2Dial (P2D) — ещё одна функция, которая была анонсирована с новым 2ГИС. Суть проста — выбираете организацию, кликаете на номер телефона — и он готов к набору на вашем смартфоне.

Фича избавляет от необходимости самостоятельно набирать номер телефона, а значит шансы ошибиться и попасть не туда стремятся к нулю.

Делаем звонок в один клик
Читать полностью »

Продолжая публикации о CES 2014, команду компании Telebreeze заинтересовал еще один весьма интересный экспонат от компании Induct Technology.

Корпорация Google не первый год разрабатывает проект по автоматизации управления автомобилем. Но, несмотря на заметные успехи, разработка еще далека от завершения. Оттого вдвойне более впечатляющей выглядит разработка французской компании Induct, которая была представлена в Лас-Вегасе на CES-2014.

image

Французский проект Navia представляет собой автомобиль без водителя. Электромобиль от Induct рассчитан на восьмерых пассажиров, но главным его достоинством является то, Читать полностью »

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

Уровень слова

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

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


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