В 2010 году в журнале «Forbes» было опубликовано интервью с Джоном МакКулом, вице-президентом Cisco, в котором он рассуждает о скором будущем виртуальных дата-центров и даёт удивительно точный прогноз на 2015 год. Действительно, тенденция переносить серьёзные процессы на виртуальные сервера продолжает расти, несмотря на постоянное тиражирование мифов об опасности хранения данных в облаках. Причины такого роста кроются не только в факторах, описанных МакКулом (рост потребления видео-контента, распространение новых типов устройств и стремление компаний выбирать для приложений только необходимые мощности) — существуют не менее интересные составляющие успеха виртуализации.
User
Пятничный формат: Как писать код, который никто не сможет сопровождать
16 min
95KTranslation
Благодаря советам экспертов в области Java вы научитесь писать код, который будет настолько сложно сопровождать, что любому, кто будет с ним работать после вас, потребуются годы, чтобы внести даже малейшие правки. Более того, если будете неизменно следовать этим правилам, вы сможете гарантировать себе пожизненное рабочее место, так как никто кроме вас не сможет разобраться в вашем коде.
+59
Li-ion АКБ: еще один шаг к экономии
4 min
23KКак мы уже отмечали, преимущество архитектуры OCP для ЦОД – не только в упрощении развёртывания системы и управления ею, но и в значительной экономии, позволяющей предоставлять клиентам сервисы по приемлемым ценам, создавая при этом высокоэффективные серверы. Ещё один способ сэкономить – использование Li-ion аккумуляторов для ИБП.
+12
Проектирование программного обеспечения
5 min
126KRecovery Mode
Если бы мы запланировали статью, которая не будет никому интересна, то наверное написали про важность проектирования зданий перед их постройкой. Но, к счастью, любой человек понимает, почему не стоит строить дома на глазок, добавляя фичи прямо в процессе строительства. При разработке же программного обеспечения по-прежнему полезно напоминать о том, что начинать её следует с проектирования — т.е. с полного планирования того, что непосредственно нам придётся разрабтывать, в какие сроки, с какими исходными данными и ожидаемым результатом.
За 13 лет опыта компании «Эдисон» в аутсорс-разработке для средних и крупных компаний из России, США, Европы и Австралии мы выработали собственную схему проектирования ПО, о которой в этом посте и расскажем.
За 13 лет опыта компании «Эдисон» в аутсорс-разработке для средних и крупных компаний из России, США, Европы и Австралии мы выработали собственную схему проектирования ПО, о которой в этом посте и расскажем.
+5
Инструкция к спецификации SMPP
4 min
39KРазличные сервисы, использующие SMS уведомления или SMS авторизацию, с каждым днем набирают популярность, т.к. это действительно очень удобно с точки зрения пользователя и достаточно безопасно с точки зрения разработчиков. Большинство компаний, предоставляющие сервис SMS рассылок, предлагают свои API для реализации процесса отправки (как правило на основе HTTP), но у всех есть стандартный вариант подключения — протокол SMPP. Мой опыт работы с пользователями SMPP протокола показывает, что они испытываю довольно много сложностей. Причиной этого (по моему мнению) является бездумное использование готовых библиотек и в результате полное непонимание что происходит «под капотом».
В этой статье я опишу один из самых частых вопросов от клиентов — «Как прочитать текст входящего сообщения? Я нашёл on-line декодер, но он показывает абракадабру». Дело в том, что у некоторых сервисов есть не только возможность отправки сообщений, но и получения на них ответных сообщений. Однако алгоритм, описанный мной, применим к любому действию в SMPP протоколе, т.к. по сути является инструкцией к спецификации протокола.
В этой статье я опишу один из самых частых вопросов от клиентов — «Как прочитать текст входящего сообщения? Я нашёл on-line декодер, но он показывает абракадабру». Дело в том, что у некоторых сервисов есть не только возможность отправки сообщений, но и получения на них ответных сообщений. Однако алгоритм, описанный мной, применим к любому действию в SMPP протоколе, т.к. по сути является инструкцией к спецификации протокола.
+12
Обзор IP-телефонов Escene ES330-N / ES330-PN с модулем расширения Escene ESM 32
24 min
17K Телефон Escene ES/GS 330 флагман в корпоративной линейке. Три линии, встроенная панель BLF, возможность подключать дополнительные панели расширения, делают ES/GS 330 мощным инструментом коммуникаций. Аппарат станет отличным решением для всех, кто сталкивается с необходимостью быстро переключать звонки или работать с несколькими линиями одновременно.
Рассматриваемый телефон — продвинутая модель в ряду корпоративных IP-телефонов Escene. По сравнению с младшей моделью Escene ES320 аппарат имеет дополнительную третью линию, а также возможность подключения до 6 консолей расширения Escene ESM 32. К телефону можно подключить гарнитуру, причем двумя способами. К старшей модели рассматриваемого телефона можно отнести модель Escene ES410 о которой мы рассказывали в одном из предыдущих обзоров. Компания представила три модели: аппараты Escene ES330-PN с поддержкой PoE (питание через Ethernet) и Escene ES330-N без поддержки PoE (комплектуется блоком питания Escence AD200) имеют сетевые интерфейсы Fast Ethernet 100 Мб/с, модель Escene GS330-N получила сетевые интерфейсы Gigabit Ethernet работающие на скорости до 1 Гб/сек и поддержку PoE. Для модели с PoE блок питания в комплект не входит, но при необходимости его можно приобрести отдельно. На этом различия между моделями заканчиваются.
Рассматриваемый телефон — продвинутая модель в ряду корпоративных IP-телефонов Escene. По сравнению с младшей моделью Escene ES320 аппарат имеет дополнительную третью линию, а также возможность подключения до 6 консолей расширения Escene ESM 32. К телефону можно подключить гарнитуру, причем двумя способами. К старшей модели рассматриваемого телефона можно отнести модель Escene ES410 о которой мы рассказывали в одном из предыдущих обзоров. Компания представила три модели: аппараты Escene ES330-PN с поддержкой PoE (питание через Ethernet) и Escene ES330-N без поддержки PoE (комплектуется блоком питания Escence AD200) имеют сетевые интерфейсы Fast Ethernet 100 Мб/с, модель Escene GS330-N получила сетевые интерфейсы Gigabit Ethernet работающие на скорости до 1 Гб/сек и поддержку PoE. Для модели с PoE блок питания в комплект не входит, но при необходимости его можно приобрести отдельно. На этом различия между моделями заканчиваются.
+7
Бинарные деревья поиска и рекурсия – это просто
8 min
594KСуществует множество книг и статей по данной теме. В этой статье я попробую понятно рассказать самое основное.
Бинарное дерево — это иерархическая структура данных, в которой каждый узел имеет значение (оно же является в данном случае и ключом) и ссылки на левого и правого потомка. Узел, находящийся на самом верхнем уровне (не являющийся чьим либо потомком) называется корнем. Узлы, не имеющие потомков (оба потомка которых равны NULL) называются листьями.
Рис. 1 Бинарное дерево
Бинарное дерево — это иерархическая структура данных, в которой каждый узел имеет значение (оно же является в данном случае и ключом) и ссылки на левого и правого потомка. Узел, находящийся на самом верхнем уровне (не являющийся чьим либо потомком) называется корнем. Узлы, не имеющие потомков (оба потомка которых равны NULL) называются листьями.
Рис. 1 Бинарное дерево
+21
Аудит системных событий в Linux
11 min
127KTutorial
Одним из инструментов, позволяющих повысить уровень безопасности в Linux, является подсистема аудита. C её помощью можно получить подробную информацию обо всех системных событиях.
Она не обеспечивает никакой дополнительной защиты, но предоставляет подробную информацию о нарушениях безопасности, на основании которой можно принять конкретные меры. Особенности работы с подсистемой аудита мы рассмотрим в этой статье.
+49
Игры на CSS. Часть 2: StarCraft
4 min
47KTutorial
Доброго дня, хабровцы.
По результатам прошлой статьи я понял, что тема интересна общественности, поэтому подготовил еще один материал, чуть сложнее.
По прежнему нет скриптов, только HTML/CSS.
Смотрите видео и под кат.
По результатам прошлой статьи я понял, что тема интересна общественности, поэтому подготовил еще один материал, чуть сложнее.
По прежнему нет скриптов, только HTML/CSS.
Смотрите видео и под кат.
+32
Перенаправление данных из COM-порта в web. Доработка
10 min
23KНедавно я опубликовал статью «Перенаправление данных из COM-порта в web», в которой описал прототип системы, транслирующей строки из последовательного порта компьютера в веб-браузер. В той статье я указал направления, в которых надо доработать прототип, чтобы приблизить его к продакшен-стадии:
— никакой дизайн веб-страницы
— в каждый момент времени данные получит только один веб-клиент
— очень ограниченный набор браузеров, с помощью которых можно получить доступ. Например, не работает ни в Internet Explorer 8, ни в браузере из Android 2.3.5
— требуется установка python
Через некоторое время я решил не оставлять его в таком виде и доработать. Под катом результат доработки и описание того, как я устранил все перечисленные недостатки.
— никакой дизайн веб-страницы
— в каждый момент времени данные получит только один веб-клиент
— очень ограниченный набор браузеров, с помощью которых можно получить доступ. Например, не работает ни в Internet Explorer 8, ни в браузере из Android 2.3.5
— требуется установка python
Через некоторое время я решил не оставлять его в таком виде и доработать. Под катом результат доработки и описание того, как я устранил все перечисленные недостатки.
+10
О пользе железа, или знакомство с GPS/ГЛОНАСС трекерами
8 min
39KОсновное направление деятельности нашей компании – разработка ПО для спутникового мониторинга. В связи с чем мы вплотную сотрудничаем с производителями GPS/ГЛОНАСС оборудования. Поэтому мы решили поделиться опытом и выпустить цикл тематических статей, посвященных GPS/ГЛОНАСС трекерам, в которых расскажем, как классифицируем навигационное оборудование, и подробно рассмотрим технические особенности устройств, наиболее популярных среди пользователей нашего продукта.
Первая статья посвящена базовым понятиям: что такое GPS трекер, как он работает и каким бывает. Цель ‒ познакомить читателей с принципами работы навигационного оборудования и классификацией GPS трекеров по назначению и особенностям технической реализации.
Аппаратный трекер — устройство, предназначенное для удаленного контроля передвижения автотранспорта, людей и других объектов, на которых оно установлено. Для точного определения местоположения объекта трекеры используют спутниковую навигацию.
GPS трекеры могут быть как самостоятельным электронным устройством, так и соответствующим программным обеспечением.
Софт трекер – программное обеспечение, позволяющее использовать смартфоны, планшеты и другие приборы в качестве аппаратной платформы GPS трекера. Приложение получает доступ к штатному GPS приемнику, а обмен сообщениями с навигационным сервером осуществляется посредством GSM и Wi-Fi модуля портативного устройства. Примером софт трекера может служить мобильное приложение для контроля выездных сотрудников WiaTag.
За счет отсутствия аппаратной части программные трекеры выигрывают по стоимости у своих электронных собратьев. Однако функциональные возможности трекера-программы значительно уступают специально разработанным электронным устройствам и ограничиваются в основном определением и передачей местоположения. Поэтому мы подробно остановимся именно на аппаратных устройствах.
Первая статья посвящена базовым понятиям: что такое GPS трекер, как он работает и каким бывает. Цель ‒ познакомить читателей с принципами работы навигационного оборудования и классификацией GPS трекеров по назначению и особенностям технической реализации.
Что такое GPS трекер?
Аппаратный трекер — устройство, предназначенное для удаленного контроля передвижения автотранспорта, людей и других объектов, на которых оно установлено. Для точного определения местоположения объекта трекеры используют спутниковую навигацию.
GPS трекеры могут быть как самостоятельным электронным устройством, так и соответствующим программным обеспечением.
Софт трекер – программное обеспечение, позволяющее использовать смартфоны, планшеты и другие приборы в качестве аппаратной платформы GPS трекера. Приложение получает доступ к штатному GPS приемнику, а обмен сообщениями с навигационным сервером осуществляется посредством GSM и Wi-Fi модуля портативного устройства. Примером софт трекера может служить мобильное приложение для контроля выездных сотрудников WiaTag.
За счет отсутствия аппаратной части программные трекеры выигрывают по стоимости у своих электронных собратьев. Однако функциональные возможности трекера-программы значительно уступают специально разработанным электронным устройствам и ограничиваются в основном определением и передачей местоположения. Поэтому мы подробно остановимся именно на аппаратных устройствах.
+9
Apache vs Nginx: практический взгляд
12 min
363KTranslation
Введение
Apache и Nginx — 2 самых широко распространенных веб-сервера с открытым исходным кодом в мире. Вместе они обслуживают более 50% трафика во всем интернете. Оба решения способны работать с разнообразными рабочими нагрузками и взаимодействовать с другими приложениями для реализации полного веб-стека.
Несмотря на то, что у Apache и Nginx много схожих качеств, их нельзя рассматривать как полностью взаимозаменямые решения. Каждый из них имеет собственные преимущества и важно понимать какой веб-сервер выбрать в какой ситуации. В этой статье описано то, как каждый из этих веб-серверов ведет себя при различных условиях.
+49
Игра на голом HTML / CSS
3 min
89KСегодня речь пойдет о том, как создать игру не используя js и прочих скриптов. Только HTML / CSS, только хейткор.
+40
Статический анализ кода Mozilla Thunderbird c помощью PVS-Studio
13 min
20KВ этой статье хочу рассказать о проверке проекта Mozilla Thunderbird статическим анализатором PVS-Studio. Пользуясь Thunderbird, я иногда сталкивался с зависаниями и странным поведением программы. Возможно, нам удастся найти хотя бы некоторые причины этого в исходном коде. Приглашаю посмотреть, какие ошибки могут прятаться в таком популярном проекте.
+28
Как создать слайдер изображений в почтовом сообщении
9 min
16KRecovery Mode
Translation
Примечание переводчика: В нашем блоге мы уже неоднократно рассказывали о создании интерактивных email-рассылок с помощью CSS и HTML. Сегодня мы представляем вашему вниманию адаптированный перевод материалов из блога Fresh Inbox о том, как создать слайдер изображений в email-сообщении, который будет отображаться на мобильных устройствах, а также в вебе и на десктопе.
Данная статья описывает процесс создания слайдера из эскизов изображений для email-рассылок. Сначала мы сконцентрируемся на реализации слайдера под мобильное ПО, а в частности под родные email-клиенты iPhone и Android. Затем мы добавим поддержку стационарных платформ.
Как вы можете видеть на скриншоте сверху, наша цель – слайдер с миниатюрами, расположенными выше основного изображения. В неподдерживаемых email-клиентах миниатюры отображаться не будут.
Слайдер будет рассчитан только на одну ссылку, что хорошо подойдет в случае описания продукта с разных ракурсов (или, как в нашем случае, номера в отеле), но категорически не подходит при описании разных продуктов, где для каждого изображения требуется отдельная ссылка.
В данной статье будет использоваться ряд техник, описанных в «Интерактивных изображениях для мобильной Email-рассылки», поэтому если у вас возникнут вопросы, вы всегда можете обратиться к вышеописанной статье за разъяснениями.
Данная статья описывает процесс создания слайдера из эскизов изображений для email-рассылок. Сначала мы сконцентрируемся на реализации слайдера под мобильное ПО, а в частности под родные email-клиенты iPhone и Android. Затем мы добавим поддержку стационарных платформ.
Как вы можете видеть на скриншоте сверху, наша цель – слайдер с миниатюрами, расположенными выше основного изображения. В неподдерживаемых email-клиентах миниатюры отображаться не будут.
Слайдер будет рассчитан только на одну ссылку, что хорошо подойдет в случае описания продукта с разных ракурсов (или, как в нашем случае, номера в отеле), но категорически не подходит при описании разных продуктов, где для каждого изображения требуется отдельная ссылка.
В данной статье будет использоваться ряд техник, описанных в «Интерактивных изображениях для мобильной Email-рассылки», поэтому если у вас возникнут вопросы, вы всегда можете обратиться к вышеописанной статье за разъяснениями.
+8
Распознавание речи с помощью CMU Sphinx
4 min
83KCMU Sphinx сейчас является крупнейшим проектом по распознаванию человеческой речи. В инструментарий входят следующие программы и библиотеки:
Для работы со CMU Sphinx важно запомнить несколько определений и понять их отличия.
Чем сложнее язык, чем обширней правила и размер словаря, тем хуже точность распознавания. Поэтому, для минимизации ошибки, имеет смысл создания упрощенных правил, которые будут описывать конкретную задачу.
- Pocketsphinx — небольшая программа, которая принимает на вход произвольные акустические модели, грамматики и словари, а также звуковой поток(либо звуковой файл, либо сам берет поток с микрофона). На выходе получается распознанный текст. Написана на C, работает быстро.
- Sphinxbase — библиотека необходимая для работы Pocketsphinx
- Sphinx4 — гибкая библиотека для распознавания, написана на Java.
- Sphinxtrain — программа для обучения акустических моделей.
Для работы со CMU Sphinx важно запомнить несколько определений и понять их отличия.
- Акустическая модель — отвечает за сопоставление звуку произнесенной фонемы. Акустическую модель для русского языка можно скачать на сайте проекта. Русская акустическая и языковая модели. А также словарь.
- Словарь — это файл, в котором написаны сопоставлены лексемы и фонемы (слово и его транскрипция). Например, калькулятор (k ay ll k u ll ja t ay r). Он необходим для преобразования фонем, распознанных акустической моделью в лексемы.
- Грамматика — это формальные правила, которые описывают простые правила построения предложений. Лексемы, полученные на предыдущем шаге пытаются сопоставиться с грамматикой и если удачно, то выводится результат.
- Языковая модель — это статистическая модель языка. Она описывает вероятности слов и их комбинаций. Таким образом распознавание лексем — это максимизация правдоподобности распознанной фразы.
Чем сложнее язык, чем обширней правила и размер словаря, тем хуже точность распознавания. Поэтому, для минимизации ошибки, имеет смысл создания упрощенных правил, которые будут описывать конкретную задачу.
+18
Brotli — новый алгоритм сжатия веб-данных от Google
2 min
29KТак как веб-сайты и онлайн-сервисы с каждым годом становятся все «тяжелее», возрастает необходимость и сжатия данных в вебе. По этой причине Google выпустил новый алгоритм сжатия данных для веб-сайтов — Brotli, что в переводе с швейцарского немецкого означает «маленькая булка хлеба». Алгоритм уже доступен широкой аудитории на GitHub.
+12
О безопасности UEFI, часть четвертая
6 min
33K Продолжаем говорить о безопасности UEFI, на этот раз речь пойдет об атаках на NVRAM и защите от них.
Неплохая, казалось бы, идея о том, что на микросхеме SPI можно хранить настройки практически вечно, не полагаясь на ненадежную и зависящую от батарейного питания CMOS SRAM, сыграла с разработчиками UEFI весьма злую шутку, теперь NVRAM с каждой новой версией стандарта обрастает все большим количеством костылей и подпорок, и конца этому процессу не видно. Если вам интересно, что именно пытаются подпереть костылем — эта статья для вас.
По традиции, всех, кто еще по каким-то причинам не читал первые три части — рекомендую начать с них, остальных с нетерпением жду под катом.
Неплохая, казалось бы, идея о том, что на микросхеме SPI можно хранить настройки практически вечно, не полагаясь на ненадежную и зависящую от батарейного питания CMOS SRAM, сыграла с разработчиками UEFI весьма злую шутку, теперь NVRAM с каждой новой версией стандарта обрастает все большим количеством костылей и подпорок, и конца этому процессу не видно. Если вам интересно, что именно пытаются подпереть костылем — эта статья для вас.
По традиции, всех, кто еще по каким-то причинам не читал первые три части — рекомендую начать с них, остальных с нетерпением жду под катом.
+30
Мифы и рецепты Docker
5 min
90KВокруг постоянно говорят про Docker. Я знаю что вы отвечаете: «Это что-то про контейнеры, виртуализацию, облака», «У нас все и так работает», «Это все баловство», «Он не запустится на нашем старом ядре линукса», «Точно так же можно подготовить образ для облака и запустить его», «Можно просто настроить LXC, chroot или AppArmor». Вы знаете, что он вам не нужен. Очередная модная штука. В конце концов, просто лень разбираться. Но любопытно! Тогда, читайте. Это серия из шести заметок.
Если вы не слышали о контейнерах в Линуксе, вот список страниц, которые надо прочитать, чтобы понимать о чем речь:
Поставьте Docker, он небольшой. Для Windows и Mac можно просто поставить Toolbox: www.docker.com/toolbox. Создавать виртуальную машину и настраивать лучше из командной строки, а не через графическую обертку. Прочитайте несколько уроков из мануала. Здесь я пишу о том, чего в документации нет.
Вот какой у меня линукс:
Запускаю CentOS:
Docker — это не chroot, их функционал частично совпадает. Это не система безопасности вроде AppArmor. Docker использует те же контейнеры, что и LXC, но интересен он не контейнерами. Docker — это ничего из того, что я думал о нем до того, как прочитал документацию.
То же ядро, память, файловая система, а дистрибутивы, библиотеки и пользователи — разные.
Регулярно возникает вопрос, является ли конфигурация nginx частью веб-приложения. Системные администраторы спорят с разработчиками. Но недавно в мире появились devops и захотели вместо последовательно-процедурного вызова команд из bash думать привычным OOP. Docker дает инкапсуляцию, наследование и полиморфизм компонентам системы, таким как база данных и данные. Это значит, что можно провести декомпозицию всей информационной системы, выделить приложение, web-сервер, базу данных, системные библиотеки, рабочие данные в независимые компоненты, внедрять зависимости из конфигов, и заставить все это работать одной группой, одинаково на разных компьютерах.
Такой подход можно использовать, чтобы снизить потери рабочего времени дорогих front-end разработчиков на настройку базы данных и Nginx. Чтобы уйти от vendor lock-in. Не обломаться когда openssl на сервере не поддерживает cipher, используемый в API госучреждения. Чтобы приложение работало независимо от версии PHP или Python на сервере заказчика. Создавать open source не только в виде кода, но и настройкой пакетов из нескольких приложений, написанных на разных языках, работающих на разных слоях OSI.
Если вы не слышали о контейнерах в Линуксе, вот список страниц, которые надо прочитать, чтобы понимать о чем речь:
- en.wikipedia.org/wiki/LXC
- en.wikipedia.org/wiki/UnionFS
- habrahabr.ru/post/253877
- www.docker.com/whatisdocker
Поставьте Docker, он небольшой. Для Windows и Mac можно просто поставить Toolbox: www.docker.com/toolbox. Создавать виртуальную машину и настраивать лучше из командной строки, а не через графическую обертку. Прочитайте несколько уроков из мануала. Здесь я пишу о том, чего в документации нет.
Docker — это не виртуализация.
Вот какой у меня линукс:
Welcome to Ubuntu 15.04 (GNU/Linux 3.19.0-15-generic x86_64)
Last login: Tue Aug 18 00:43:50 2015 from 192.168.48.1
gri@ubuntu:~$ uname -a
Linux ubuntu 3.19.0-15-generic #15-Ubuntu SMP Thu Apr 16 23:32:37 UTC 2015 x86_64 x86_64 x86_64 GNU/ Linux
gri@ubuntu:~$ free -h
total used free shared buffers cached
Mem: 976M 866M 109M 11M 110M 514M
-/+ buffers/cache: 241M 735M
Swap: 1.0G 1.0M 1.0G
Запускаю CentOS:
gri@ubuntu:~$ docker run -ti centos
[root@301fc721eeb9 /]# uname -a
Linux 301fc721eeb9 3.19.0-15-generic #15-Ubuntu SMP Thu Apr 16 23:32:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@301fc721eeb9 /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@301fc721eeb9 /]# free -h
total used free shared buff/cache available
Mem: 976M 85M 100M 12M 790M 677M
Swap: 1.0G 1.0M 1.0G
Docker — это не chroot, их функционал частично совпадает. Это не система безопасности вроде AppArmor. Docker использует те же контейнеры, что и LXC, но интересен он не контейнерами. Docker — это ничего из того, что я думал о нем до того, как прочитал документацию.
То же ядро, память, файловая система, а дистрибутивы, библиотеки и пользователи — разные.
Docker — это инструмент объекто-ориентированного проектирования
Регулярно возникает вопрос, является ли конфигурация nginx частью веб-приложения. Системные администраторы спорят с разработчиками. Но недавно в мире появились devops и захотели вместо последовательно-процедурного вызова команд из bash думать привычным OOP. Docker дает инкапсуляцию, наследование и полиморфизм компонентам системы, таким как база данных и данные. Это значит, что можно провести декомпозицию всей информационной системы, выделить приложение, web-сервер, базу данных, системные библиотеки, рабочие данные в независимые компоненты, внедрять зависимости из конфигов, и заставить все это работать одной группой, одинаково на разных компьютерах.
Такой подход можно использовать, чтобы снизить потери рабочего времени дорогих front-end разработчиков на настройку базы данных и Nginx. Чтобы уйти от vendor lock-in. Не обломаться когда openssl на сервере не поддерживает cipher, используемый в API госучреждения. Чтобы приложение работало независимо от версии PHP или Python на сервере заказчика. Создавать open source не только в виде кода, но и настройкой пакетов из нескольких приложений, написанных на разных языках, работающих на разных слоях OSI.
+29
Подборка полезных ссылок от команды дизайнеров e-Legion
2 min
23KПривет! Мы команда дизайнеров, которые проектируют и создают дизайн приложений для Android, iOS и Windows.
За 10 лет работы в e-Legion мы сделали проекты разной сложности: от интернет-магазина до мобильного банка. Идеи архитерктуры приложения / дизайна мы искали в разных источниках, что-то придумывали сами, искали интересные решения в интернете. И за время работы у нас накопилось достаточно полезных ссылок, которыми мы хотим поделиться.
+8
Information
- Rating
- Does not participate
- Registered
- Activity