Как стать автором
Обновить
80
0
True Engineering @true_engineering

Создаем цифровые продукты

Отправить сообщение

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

Время на прочтение7 мин
Количество просмотров24K
Привет Хабр!

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



Мораль проста: если вы еще не используете promise-ы, начните это делать!
Читать дальше →
Всего голосов 39: ↑24 и ↓15+9
Комментарии27

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

Время на прочтение21 мин
Количество просмотров19K
Привет, Хабр!

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

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

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

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

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



Чтиво получилось весьма объемистым, но надеемся, что настолько же полезным.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии8

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

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

Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии5

CRM в облаках

Время на прочтение11 мин
Количество просмотров7.1K
Привет, Хабр!
В этой статье мы хотим поделиться своим опытом работы с программным продуктом Microsoft Dymanics CRM 2013 Online – для чего и как его можно использовать, возможные проблемы типового развертывания, типовой функционал – достоинства, недостатки и пути решения проблем с наименьшими затратами.

Все изложенные тезисы основаны на практическом опыте внедрения системы у конкретного заказчика. Поэтому мы постарались опустить описание типовых задач, а сконцентрировать внимание на нюансах, с которыми может столкнуться большинство компаний при настройке системы и адаптации под требования бизнеса. Итак…
Читать дальше →
Всего голосов 11: ↑4 и ↓7-3
Комментарии2

Законный backdoor в распространении корпоративных Windows Store приложений

Время на прочтение6 мин
Количество просмотров16K
Привет, Хабр! В этой статье мы делимся опытом по распространению корпоративного приложения для Windows Storе.

Есть у нас клиент. Отличный клиент, для которого мы создали, внедрили и продолжаем развивать большое портальное решение по дистанционному обслуживанию агентов. Примерно год назад было принято решение о создании мобильного рабочего места сотрудника на базе Windows 8 планшетов.
Но создать приложение — это лишь одна задача. Необходимо было продумать следующий шаг: оно должно быть установлено на планшеты компании-заказчика и разойтись по России, потому что конечные пользователи —это представители компании в различных регионах. При этом должен присутствовать механизм обновления приложений, так как без этого, сами понимаете, никуда.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии7

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

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

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

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

Тестирование верстки новостного сайта c адаптивным дизайном

Время на прочтение16 мин
Количество просмотров24K
Одна из самых примечательных задач, которая когда-либо стояла перед QA-отделом EastBanc Technologies, заключается в создании автоматизированной системы тестирования сайта www.washingtonpost.com. Это электронная газета, реализованная в виде информационного и новостного портала.

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

Перед нами не стоит задачи проверить все страницы на соответствие нашим тестам. Наша задача — выявить баги PageBuilder’a, проверить надежность верстки страниц, созданных свежеиспеченным PageBuilder’ом, обратить внимание редакторов Вашингтонпоста на те ньюансы наполнения конкретной страницы контентом, которые могут повлечь за собой потенциальные проблемы в отображении страниц.
Создание системы тестирования находится в стадии активной разработки, но некоторые, интересные на наш взгляд, моменты уже можно представить на суд широкой публики.

Прежде чем мы это сделаем, необходимо отметить одну особенность проекта: все тестирование у нас происходит «снаружи». Т.е. мы, как и любой другой юзер, используем для тестирования боевую версию сайта.

Читать дальше →
Всего голосов 19: ↑11 и ↓8+3
Комментарии4

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

Время на прочтение7 мин
Количество просмотров89K

Во время посещения 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 запросы?
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии10

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

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

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

Читать дальше →
Всего голосов 49: ↑34 и ↓15+19
Комментарии21

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

Время на прочтение6 мин
Количество просмотров15K


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

Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии2

Адаптация Microsoft Project Server 2010 под специфику системы управления проектами компании

Время на прочтение11 мин
Количество просмотров16K
Мы хотим поделиться своим опытом доработки Microsoft Project Server 2010 под специфические требования заказчика.

Данная статья может быть интересна как бизнес-пользователям, которые могут узнать о новых возможностях платформы применительно к собственной компании, так и техническим специалистам, которые могут подчерпнуть из статьи новые знания о методах доработки Microsoft Project Server 2010.

Небольшое введение


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

Информационная система управления проектной деятельностью в идеальном случае должна обеспечивать следующий функционал (далеко не полный, но, в общем, достаточный):

Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии1

Полезный Open Source и как мы научили Zxing разговаривать на другом языке

Время на прочтение12 мин
Количество просмотров11K
В одной из наших статей мы рассказывали о том, как можно использовать функции входящей почты в SharePoint 2010 для приема и обработки документов, содержащих отсканированные талоны. При выполнении этого проекта нам пришлось решить несколько интересных задач. И сейчас мы хотим подробнее остановиться на одном моменте.



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

То, что мы увидели на сканах талонов, сильно напоминало штрих-код Codabar, с которым нам уже приходилось сталкиваться на других проектах.

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Кроссплатформенная разработка на Titanium – это ужасный конец или ужас без конца?

Время на прочтение13 мин
Количество просмотров22K
Image and video hosting by TinyPicВ этом топике мы хотим поделиться нашим опытом создания мобильных приложений на платформе для разработки кроссплатформенных приложений Titanium. Примерно с 2011 мы начали работы с кроссплатформенными фреймворками. Сначала это был PhoneGap, потом Titanium. Сделали десяток приложений, работающих и по сей день, как в России, так и в США. Мы сознательно хотим отойти от оценок — плохо это или хорошо разрабатывать кроссплатформенные приложения, а сосредоточиться на тех трудностях, с которыми предстоит столкнуться с точки зрения разработки и сопровождения этих приложений.

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

Итак, начнем со списка проблем, с которыми вам придётся столкнуться.

Проблемы:

  1. Проблема дабл-кликов.
  2. If’ный код.
  3. Управление памятью на Android.
  4. Недостаточная реализация отдельных функций, в том числе стандартных.
  5. Javascript — отсутствие типизации замедляет процесс написания кода и усложняет сопровождение.
  6. Отсутствие InterfaceBuilder — замедляет процесс написания приложения, весь UI пишется в коде.
  7. Titanium SDK обновляется позже SDK операционных систем.
  8. Каждая версия SDK содержит исправление старых ошибок и привносит новые ошибки.


Примеры, на которых мы столкнулись с этими проблемами.

Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии55

Сервис управления заявками на отпуска для SharePoint 2013 в интеграции с БОСС-Кадровик

Время на прочтение8 мин
Количество просмотров12K
Полгода назад мы рассказывали о том, как реализовали сервис бронирования переговорных комнат у крупного заказчика с территориально разнесенными офисами и штатом несколько тысяч человек. Мы продолжаем работать с SharePoint-порталом этой компании, в рамках его развития специалисты EastBanc Technologies создали еще один модуль — сервис управления заявками на отпуска в интеграции с автоматизированной системой управления персоналом БОСС-Кадровик.

Назначение этого сервиса, как нам кажется, не нуждается в пространном разъяснении: попросту говоря, сервис автоматизирует учет отпусков в компании. Гораздо интересней, какие практические задачи стояли перед нами в данной конкретной компании, об этом — дальше.

Читать дальше →
Всего голосов 7: ↑4 и ↓3+1
Комментарии8

Миграция порталов с SharePoint 2010 на SharePoint 2013. Что изменилось и как с этим жить

Время на прочтение6 мин
Количество просмотров11K
В этом топике мы делимся нашим реальным опытом в миграции порталов с 2010 на 2013 SharePoint. Вопрос давно решен, нужно мигрировать, и наверняка руководство уже поставило сроки, когда это должно быть сделано. Вот тут наш материал может оказаться полезным для понимания того, с какой стороны к этому делу подойти. Чтобы не делать огромную статью с кучей специфических вставок технической информации мы сосредоточились на главном — на различиях в миграции с 2007 на 2010 с миграцией 2010 на 2013 и на основных этапах.

Если перед вами стоит еще более сложная задача мигрировать 2007 на 2010, а потом на 2013, почитайте наш прошлогодний материал, там мы уже рассказывали про миграцию портала SharePoint 2007 на SharePoint 2010.

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Об открытости данных в Android-приложениях

Время на прочтение6 мин
Количество просмотров38K
Немного информации о том, какие данные в вашем приложении могут быть доступны для других программ и какие меры можно предпринять, чтобы это предотвратить.


Читать дальше →
Всего голосов 43: ↑40 и ↓3+37
Комментарии17

Как настроить Google Analytics для отслеживания поведения пользователей c разбивкой по User ID

Время на прочтение5 мин
Количество просмотров27K
В работе компании EastBanc Technologies часто встает задача не просто анализа статистики посещаемости и поведения по географическим, платформенным и демографическим признакам, а по принципу, что делает конкретный пользователь на портале, в мельчайших подробностях. Для нас, как для разработчиков корпоративных систем, эта информация бывает критически важной с точки зрения развития системы.

Например, сейчас у нас в работе есть SharePoint-портал, который используется для дистанционного расчетно-финансового обслуживания контрагентов компании-заказчика. У каждого контрагента имеется несколько пользователей — от 1 до 10. Мы хотели понять, как они обращаются с тем или иным функционалом. Чтобы обрисовать для себя их поведение, мы задействовали средства Google Analytics.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии8

Снижение производительности SharePoint при увеличении уникальных Security Scopes на больших списках

Время на прочтение4 мин
Количество просмотров5K
Всем привет!

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

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

Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии0

Как использовать функцию обработки входящей почты в SharePoint 2010 — пример из практики

Время на прочтение5 мин
Количество просмотров6.9K
Нередко бизнес-процесс компании включает в себя необходимость обработки документации, содержащей штрих-коды, с последующим занесением их в некую учетную систему. Это актуально, например, для сферы ЖД-перевозок и авиакомпаний: в штрих-код купона, присылаемого на электронную почту агентами компании, зашиты номера билетов. Операционисты вынуждены ежедневно обрабатывать и заносить во внутреннюю учетную систему тысячи таких купонов.

Работа рутинная, человеческий фактор провоцирует ошибки. Как автоматизировать процесс и избавить оператора от необходимости ручной обработки писем и их вложений? Мы нашли простое решение с использованием MS SharePoint. По своему обыкновению, мы постарались по максимуму задействовать имеющийся функционал систем, существующую библиотеку и немного своей программистской магии.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии1

Создание инструментов проектного офиса на базе Microsoft Project Server

Время на прочтение10 мин
Количество просмотров12K
Привет!

Сегодня мы расскажем о своем опыте использования Project Server для планирования и учета трудозатрат по проектам, о том, как мы его оперативно настроили под свои задачи и добились в итоге четкой картины: менеджеры видят, как работает компания, насколько успешно сдаются проекты, какова эффективность каждого отдельно взятого сотрудника за запрашиваемый период времени и т.д.

История и статистика использования Project Server в EastBanc Technologies

Мы используем Project Server c 2005 года для учета рабочего времени и планирования работ в рамках группы компаний, состоящей из двух офисов в разных часовых поясах — в России и США. Также учитываем в системе временно привлекаемых подрядчиков.

Примерная статистика:

Всего проектов в системе — 603,

Сотрудников — 216,

Табелей учета рабочего времени (они же time sheets, они же таймщиты) на проверку еженедельно — 140,

Задач в неделю 260.

Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии5

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность