Pull to refresh
0
0

Архитектор ПО

Send message

Представляем библиотеку right-angled, конструктор гридов для angular2

Reading time7 min
Views7.4K


Сегодня хотим рассказать о том, как мы решили отдать долг open source сообществу и создали библиотеку right-angled. Только вчера мы перевели ее в статус beta и решили поделиться этой отличной новостью с Хабрасообществом c самым первым.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments9

100% онлайн-авиапроездной или Как укротить систему бронирования

Reading time8 min
Views7.9K
Путешествие между Петербургом и Москвой за последние годы из события превратилось в рутинную задачу. Кто-то еженедельно мотается из Питера в Москву или наоборот на работу, по работе. У кого-то там девушка, родители, друзья… Перелет на самолете занимает чуть больше часа. Между двумя столицами в день летают более 40 рейсов.

Да и не только Москва и Питер генерируют постоянный трафик. Появляются и другие экономические и культурные центры. В Казань летает свыше 10 рейсов в день. В Краснодар – более 20.

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



Сегодня расскажем, как реализовали онлайн-покупку, оформление и изменение билетов в рамках авиапроездного или multipass. И дали активно путешествующим возможность курсировать между городами максимально легко. Если вам интересны технические аспекты укрощения систем бронирования, или вы один из путешественников – наша статья для вас.
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments4

IoT-решение за 1,5 часа

Reading time13 min
Views28K
Или как мы зажгли лампочку со смартфона через облачную службу на глазах изумленных студентов НГУ.

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

Глава 1. Лирическая


Практически все наши сотрудники получили высшее образование, и очень многие именно в Новосибирском государственном университете. Кто-то буквально недавно, кто-то – 10-20 лет назад, и все сталкивались с выбором будущей профессии. На последних курсах студентами мы выбирали кафедру, на которой проходили специализацию и защищали дипломы. И была такая замечательная традиция как Дни открытых дверей в институтах, лабораториях и компаниях, где сотрудники рассказывали, чем они занимаются, какие вопросы сейчас стоят перед наукой и технологиями и как можно в этом поучаствовать.

Что самое интересное в Днях открытых дверей для студента? Ходить, задавать вопросы, смотреть на реальных людей, которые занимаются настоящим делом, которое кому-то нужно.
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments21

Съемки корпоративного календаря: как создавалась история с сотрудниками EastBanc Technologies в ролях

Reading time5 min
Views11K
Тема корпоративного календаря – извечный источник холиваров. Многие не понимают, зачем они нужны, но каждый раз под новый год тема поднимается в новостях и разгораются ожесточенные бои. А мы сняли и не пожалели! Хотя это было очень тяжело.

Календарь 2016
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments4

Рецепты под Android: IoC со вкусом Gradle

Reading time10 min
Views11K
Android-проекты бывают большими. Иногда действительно большими. Один из наших проектов — новостное приложение, которое разрабатывается одновременно под две альтернативные платформы: Android и FireOS, что от Amazon. Это позволяет расширить круг читателей новостей, ведь пользователи читалок Kindle Fire любят почитать:). Однако, это же накладывает обязательство считаться с особенностями каждой из платформ. Например, если в Android вы используете GCM для push-сообщений, то в FireOS вы должны использовать для этого Amazon AWS. Аналогично и для систем покупок внутри приложения: Google in-app billing vs. In-App Purchasing. Но большой размер проекта != большой размер приложения!

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

Что готовим?



Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments2

Битовое кунг-фу, или Как оптимизировать трафик между мобильным приложением и сервером

Reading time7 min
Views13K

Старо как мир…


Люди всегда стремятся быть в курсе последних событий. Благодаря этому стремлению возникло много media, которым необходимо собственное мобильное приложение для доставки контента своим читателям. Так в магазинах появилось великое множество новостных приложений. Сотни приложений для чтения новостей, газет и журналов.


Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments9

Как заставить дженкинс сделать вашу жизнь проще и стать счастливым

Reading time7 min
Views34K
Когда разработка мобильных приложений в компании переходит на промышленные рельсы, неизменно всплывает вопрос об автоматической сборке. Continuous Integration — это то, что является неотъемлемой частью процесса. Итог этого процесса — сборки для тестирования на устройствах компании для OTA распространения заказчикам и удаленным тестировщикам.

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

Итак, эта статья о том, как реализовать копирование сертификатов и профилей для iOS сборок и свойств, и ключей для Android сборок на все слейвы дженкинса в рамках Continuous Integration. Такая автоматизация экономит время и помогает избежать ошибок. Статья будет интересна разработчикам мобильных приложений и тем, кто администрирует Jenkins.

Поехали!


Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments2

Конструктор интерактивных упражнений для online-обучения

Reading time6 min
Views14K
Введение

Жизнь в современном мире развивается динамично, технологии появляются и умирают, а вместе с ними устаревают и наши навыки. 20 лет назад нужно было помнить функции Windows API, сейчас многие специалисты даже не знают, что это такое, и это не мешает им работать. На первый план вышли другие технологии, требующие совершенно другого опыта. Например, Java Script, HTML 5, CSS. Через 10 лет на смену, скорее всего, придут другие технологии и инструменты, другой способ мышления. Поэтому процесс обучения в современном меняющемся мире становится непрерывным и все более интенсивным. Это must have любого современного специалиста.



Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments7

Верстка email рассылок от А до Я для чайников

Reading time9 min
Views403K
Уже 3 с лишним года занимаюсь дизайном и версткой почтовых рассылок, которые ориентированы на англоязычных пользователей. За время работы перелопатили огромную кучу информации, перепробовали много вариантов верстки, набили достаточное количество шишек. Были найдены и исправлены типичные баги, которые в той или иной мере повторялись во всех почтовых клиентах. Также нашлись проблемы с некоторыми CSS свойствами — различные почтовые клиенты интерпретировали их по разному. Каждое письмо тестировалось на самых популярных почтовых клиентах: Gmail, Outlook, Yahoo, Android, iOS, MozillaThunderbird, Microsoft Outlook, The Bat. Рассылки ходят на сотни миллионов пользователей и приносят очень хорошие результаты. Итак, приступим к изучению.
Читать дальше →
Total votes 66: ↑62 and ↓4+58
Comments35

Работа в EastBanc Technologies — как, с кем и во имя чего

Reading time8 min
Views5.9K
Всем привет!

У хабраблога EastBanc Technologies юбилей — 2 года! Это были горячие годы, мы развлекали вас, как могли, и, считаем, заработали право на статью, посвященную себе любимым. Материал предполагается пригодным к прочтению молодыми и не очень соискателями, заказчиками в поисках ИТ-подрядчика, желающими подробно узнать подноготную наших процессов, и просто для всех, кто интересуется развитием ИТ-компаний в одной маленькой силиконовой тайге (т.к. мы во многом типичны для своего сегмента, пытливый читатель сделает много интересных выводов для себя).
В новосибирском Академгородке несколько десятков ИТ-компаний. Среди них есть гиганты типа ЦФТ и 2ГИС, есть небольшие оффшорные конторки с десяток человек, а есть крепкая середина стремительно развивающихся компаний со штатом 50-100 человек, к коей относимся и мы. Чтобы не плодить многа букав, большой экскурс в историю Академа и его ИТ-компаний делать не будем, но скажем, что здесь сотрудница EastBanc Technologies занятно рассуждает об особенностях академовской ИТ-тусовки.



Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments0

Безопасность мобильных приложений, или «Кто проверит проверяющих?»

Reading time6 min
Views9.1K
Поздравляю, Вы второй человек,
взломавший сегодня сейф Ван дер Водэ.
Таким образом, мистер Оушен,
Вы вступили в длинные ряды тех,
кто приложил титанические усилия,
чтобы добиться цели
и, в итоге, стать только вторым.
Вам неизвестны имена этих людей,
потому что они покрыты забвением.
Вам знакомо слово «забвение»?
Это означает, что о Вас
забывают все и навсегда".
Мистер Ночной Лис (к/ф «12 друзей Оушена»)




Привет, читатель Хабра!
Представь, что ты портной и ты сшил человеку костюм на заказ. Человек рассказал тебе, как он хочет выглядеть в этом костюме, куда в нем ходить и сколько примерно готов за него заплатить. Ты его внимательно выслушал, снял все мерки, с любовью шил этот прекрасный костюм мечты, используя все современные модные тренды. Соблюдал все пожелания своего дорогого клиента. И вот настал звездный час: костюм готов, человек его надел, и он счастлив, разглядывая себя в зеркале. Вечером он позвонил и сказал, что жене и гостям на его юбилее он тоже понравился. Но один из гостей сказал, что у этого костюма есть недостатки: он не желтого цвета, в нем нельзя тушить пожар, любой может украсть этот костюм, и (оба на!) – у него нет капюшона и в карман нельзя положить молоток или пилу.
Читать дальше →
Total votes 19: ↑12 and ↓7+5
Comments8

Совершенствуем управление мобильными проектами

Reading time6 min
Views5.7K
Всем привет! Сразу заметим: в этой статье не будет описано никаких принципиально новых подходов и решений. Все приёмы, так или иначе, известны опытным ИТ-менеджерам. Мы хотим поделиться нашим опытом и рассказать, какие составляющие проекта мы сочли для себя обязательными и почему.

Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments1

5 историй успеха, которые бы не случились без promises

Reading time7 min
Views24K
Привет Хабр!

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



Мораль проста: если вы еще не используете promise-ы, начните это делать!
Читать дальше →
Total votes 39: ↑24 and ↓15+9
Comments27

Мысли вслух о разработке javascript-приложений на примере небольшого Line Of Business фреймворка

Reading time21 min
Views19K
Привет, Хабр!

Не так давно мы сами себе поставили задачу — построить SPA-приложение. Сложное, большое, быстрое, с поддержкой множества устройств, без утечек памяти. К тому же, постоянно развивающееся, чтобы его было легко поддерживать. В общем, как мы и любим — всё и сразу.

Тема SPA-приложений и javascript-приложений в целом не нова, но нам не удалось найти даже на платных ресурсах основательных руководств по разработке приложений. Они являются скорее рассказом о той или иной MV*-библиотеке, чем примером для подражания. При этом не рассматриваются примеры разбиения по слоям, построения иерархий наследования и тонкостей наследования в javascript и т.д.

Мы попробуем зайти с другой стороны и описать, скорее, ход мыслей при разработке (с кодом и ссылками), чем какой-то конкретный инструмент. Начать мы вынуждены с уровня hello world, чтобы задать одну стартовую точку для читателей и писателя. Но уже со второго раздела повествование резко ускорится.

Мы считаем, что данная статья будет полезна:

  1. Front-end разработчикам, у которых уже есть небольшой опыт, но хочется вырасти.
  2. Back-end разработчикам, которым в какой-то момент пришлось начать заниматься js-разработкой и которые чувствуют некую неуверенность при работе с javascript.
  3. Верстальщикам, которые начали заниматься js-разработкой и хотели бы прокачать свои навыки.



Чтиво получилось весьма объемистым, но надеемся, что настолько же полезным.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments8

Использование angular-translate для локализации приложений AngularJS

Reading time9 min
Views29K
Привет, Хабр! В этой статье речь пойдет о применении библиотеки angular-translate для локализации приложения. Расскажем о возможностях этой библиотеки, опишем проблемы, которые могут возникнуть, и дадим советы по их решению (основываясь, конечно, на собственном опыте).

Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments5

Инъекция React JS в приложение на Angular JS или борьба за производительность

Reading time7 min
Views18K
Дорогие Хабролюбители, всем привет! Не откроем Америку если скажем, что существуют сотни плагинов и библиотек, которые облегчают специализированные задачи, связанные с построением современных web интерфейсов. Angular один из них, про его производительность писалось много и в большинстве случаев даются рекомендации чего не нужно делать, чтобы все было хорошо.

Основной аргумент сторонников — медленно работают неправильные приложения, а вот правильные не должны содержать более 2000-3000 элементов. Если содержит больше значит что-то не так. См. например http://iantonov.me/page/angularjs-osnovy.

Аргумент в общем вполне здравый, но всегда есть ситуации, когда нужно написать «неправильное» web приложение потому, что такие требования. В этой статье мы решили рассказать как раз про такую задачу, и как мы ее решили. На наш взгляд статья будет полезна в большей степени профессиональным веб разработчикам. Итак, наша задача была сделать календарь для системы бронирования для одного спортивного клуба. Календарь отображает семь 12–часовых блоков, каждый день из которых разделен на 15 минутные интервалы. В блоке может быть от 2-х до 10 DOM элементов. Вроде ничего не предвещало беды, верхняя граница ~3000.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments3

Вводная по сложным запросам в SQLAlchemy

Reading time7 min
Views89K

Во время посещения PyConRu 2014 я, с удивлением, узнал, что достаточно большая аудитория python-разработчиков не использует SQLAlchemy в качестве основного инструмента для работы с базой данных. Порассуждав на данную тему после Light Talks с коллегами было принято решение — во чтобы то ни стало написать статью о том, что же можно делать со всей мощью SQLAlchemy.


Обычно в написании сайтов не требуется чего-нибудь этакого от штатного ORM. А если и требуется, то хватает замены на нештатный или прочтения основной части документации. И, как правило, голову ломать над сложными запросами не приходится. Достаточно много различных ORM предлагают классические схемы One-2-Many, One-2-One, Many-2-Many, и т.д. Для обычных запросов и связей этого вполне достаточно. К сожалению, в больших проектах не обходится без частных случаев и программисты при сложных запросах пишут либо raw sql, либо полагаются на то, что им предлагает базовый функционал ORM. Это выглядит не совсем красиво или создает достаточно большую нагрузку на базу данных.

Понятно, что в погоне за скоростью выполнения сценариев, можно пожертвовать красотой кода, но что если скоростью можно пренебречь, а вот кроссплатформенностью — нет? Да и не хочется в python коде видеть что-то кроме python кода. А что если хочется на полную катушку использовать любимый ORM (для меня SQLAlchemy) и не писать raw sql запросы?
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments10

Программирование-по-Контракту в Java

Reading time31 min
Views51K
Добрый день.
В рамках детальной проработки курса удаленного образования «Java Core» я пишу серию публикаций и делаю несколько переводов наиболее популярных статей.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Сейчас я предлагаю Вам на рассмотрение мой перевод «Programming With Assertions» с некоторыми комментариями.

Оригинальная публикация не только детально объясняет варианты использования ключевого слова assert в Java и то, как реализована поддержка данного механизма на уровне загрузки классов, но также является достаточно неформальным введением в Разработку-по-Контракту (Design-by-Contract).




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



Программирование с утверждениями (oracle.com: Programming With Assertions)

Утверждение (assert) — это оператор (statement) языка программирования Java, который позволяет вам проверить свои предположения о программе. Например, если вы пишете метод, вычисляющий скорость частицы, можно «утверждать», что расчетная скорость меньше скорости света.

Каждое утверждение содержит логическое выражение, которое, по вашему мнению, будет верным в момент выполнения. В противном случае, система выбросит исключение. Проверяя, что логическое выражение на самом деле верно, утверждение (assert) подтверждает ваши предположения (ожидания) о поведении программы, увеличивая уверенность в том, что программа не содержит ошибок.
Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments2

Как мы разрабатывали «Спецкор» — супер-кастомное мобильное приложение для гражданских репортеров

Reading time11 min
Views11K
С удовольствием представляем хабрасообществу мобильное приложение для гражданских журналистов «Спецкор», с помощью которого можно снимать фото- и видеорепортажи и продвигать их под эгидой «Комсомолки». Главный создатель — ИД «Комсомольская правда», IT-приспешники и разработчики — мы, компания EastBanc Technologies. Проект анонсирован «Комсомолкой» в конце апреля 2014 года, тогда же запущены первые конкурсы. Мы же со своей стороны решили поделиться техническими деталями реализации приложения. На наш взгляд, это будет интересным для читателей, потому что редко в одном проекте возникает столько нетривиальных технологических и бизнес-задач одновременно.

«Спецкор» относится к многоплатформенным клиент-серверным приложениям с административным интерфейсом. Клиентская часть реализована на мобильных платформах iOS и Android и содержит следующий функционал:

Читать дальше →
Total votes 49: ↑34 and ↓15+19
Comments21

Простые правила реализации управления жестами в iOS, которые надо соблюдать, чтобы никого не бесить

Reading time6 min
Views15K


Уважаемые айфоноводы, бывает ли с вами такое, что вы скачали приложение, а там… всё не то и не так и не на своих местах? Когда ваш юзер-экспириенс подсказывает вам, что приложение устроено неправильно: нажимаете вы, например, кнопку, которая всегда в iOS означала «Поделиться», а вам вместо этого вываливается какое-нибудь «левое» меню… Возникает неприятная фрустрация, и вы, скорее всего, сносите приложение со своего смартфона.

Читать дальше →
Total votes 22: ↑16 and ↓6+10
Comments2
1

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Works in
Registered
Activity