Pull to refresh
1
0
Send message

Невыносимая тяжесть серверов: к вопросу перехода на модель IaaS

Reading time8 min
Views8.3K
В 2010 году в журнале «Forbes» было опубликовано интервью с Джоном МакКулом, вице-президентом Cisco, в котором он рассуждает о скором будущем виртуальных дата-центров и даёт удивительно точный прогноз на 2015 год. Действительно, тенденция переносить серьёзные процессы на виртуальные сервера продолжает расти, несмотря на постоянное тиражирование мифов об опасности хранения данных в облаках. Причины такого роста кроются не только в факторах, описанных МакКулом (рост потребления видео-контента, распространение новых типов устройств и стремление компаний выбирать для приложений только необходимые мощности) — существуют не менее интересные составляющие успеха виртуализации.


Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments1

Пятничный формат: Как писать код, который никто не сможет сопровождать

Reading time16 min
Views95K


Благодаря советам экспертов в области Java вы научитесь писать код, который будет настолько сложно сопровождать, что любому, кто будет с ним работать после вас, потребуются годы, чтобы внести даже малейшие правки. Более того, если будете неизменно следовать этим правилам, вы сможете гарантировать себе пожизненное рабочее место, так как никто кроме вас не сможет разобраться в вашем коде.
Читать дальше →
Total votes 89: ↑74 and ↓15+59
Comments119

Li-ion АКБ: еще один шаг к экономии

Reading time4 min
Views23K
Как мы уже отмечали, преимущество архитектуры OCP для ЦОД – не только в упрощении развёртывания системы и управления ею, но и в значительной экономии, позволяющей предоставлять клиентам сервисы по приемлемым ценам, создавая при этом высокоэффективные серверы. Ещё один способ сэкономить – использование Li-ion аккумуляторов для ИБП.


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

Проектирование программного обеспечения

Reading time5 min
Views126K
Если бы мы запланировали статью, которая не будет никому интересна, то наверное написали про важность проектирования зданий перед их постройкой. Но, к счастью, любой человек понимает, почему не стоит строить дома на глазок, добавляя фичи прямо в процессе строительства. При разработке же программного обеспечения по-прежнему полезно напоминать о том, что начинать её следует с проектирования — т.е. с полного планирования того, что непосредственно нам придётся разрабтывать, в какие сроки, с какими исходными данными и ожидаемым результатом.



За 13 лет опыта компании «Эдисон» в аутсорс-разработке для средних и крупных компаний из России, США, Европы и Австралии мы выработали собственную схему проектирования ПО, о которой в этом посте и расскажем.
Читать дальше →
Total votes 31: ↑18 and ↓13+5
Comments21

Инструкция к спецификации SMPP

Reading time4 min
Views39K
Различные сервисы, использующие SMS уведомления или SMS авторизацию, с каждым днем набирают популярность, т.к. это действительно очень удобно с точки зрения пользователя и достаточно безопасно с точки зрения разработчиков. Большинство компаний, предоставляющие сервис SMS рассылок, предлагают свои API для реализации процесса отправки (как правило на основе HTTP), но у всех есть стандартный вариант подключения — протокол SMPP. Мой опыт работы с пользователями SMPP протокола показывает, что они испытываю довольно много сложностей. Причиной этого (по моему мнению) является бездумное использование готовых библиотек и в результате полное непонимание что происходит «под капотом».

В этой статье я опишу один из самых частых вопросов от клиентов — «Как прочитать текст входящего сообщения? Я нашёл on-line декодер, но он показывает абракадабру». Дело в том, что у некоторых сервисов есть не только возможность отправки сообщений, но и получения на них ответных сообщений. Однако алгоритм, описанный мной, применим к любому действию в SMPP протоколе, т.к. по сути является инструкцией к спецификации протокола.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments7

Обзор IP-телефонов Escene ES330-N / ES330-PN с модулем расширения Escene ESM 32

Reading time24 min
Views17K
Телефон 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 блок питания в комплект не входит, но при необходимости его можно приобрести отдельно. На этом различия между моделями заканчиваются.
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments4

Бинарные деревья поиска и рекурсия – это просто

Reading time8 min
Views594K
Существует множество книг и статей по данной теме. В этой статье я попробую понятно рассказать самое основное.

Бинарное дерево — это иерархическая структура данных, в которой каждый узел имеет значение (оно же является в данном случае и ключом) и ссылки на левого и правого потомка. Узел, находящийся на самом верхнем уровне (не являющийся чьим либо потомком) называется корнем. Узлы, не имеющие потомков (оба потомка которых равны NULL) называются листьями.

image
Рис. 1 Бинарное дерево
Читать дальше →
Total votes 43: ↑32 and ↓11+21
Comments9

Аудит системных событий в Linux

Reading time11 min
Views127K
Linux Audit

Одним из инструментов, позволяющих повысить уровень безопасности в Linux, является подсистема аудита. C её помощью можно получить подробную информацию обо всех системных событиях.
Она не обеспечивает никакой дополнительной защиты, но предоставляет подробную информацию о нарушениях безопасности, на основании которой можно принять конкретные меры. Особенности работы с подсистемой аудита мы рассмотрим в этой статье.
Читать дальше →
Total votes 51: ↑50 and ↓1+49
Comments5

Игры на CSS. Часть 2: StarCraft

Reading time4 min
Views47K
Доброго дня, хабровцы.
По результатам прошлой статьи я понял, что тема интересна общественности, поэтому подготовил еще один материал, чуть сложнее.
По прежнему нет скриптов, только HTML/CSS.

Смотрите видео и под кат.

Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments20

Перенаправление данных из COM-порта в web. Доработка

Reading time10 min
Views23K
Недавно я опубликовал статью «Перенаправление данных из COM-порта в web», в которой описал прототип системы, транслирующей строки из последовательного порта компьютера в веб-браузер. В той статье я указал направления, в которых надо доработать прототип, чтобы приблизить его к продакшен-стадии:
— никакой дизайн веб-страницы
— в каждый момент времени данные получит только один веб-клиент
— очень ограниченный набор браузеров, с помощью которых можно получить доступ. Например, не работает ни в Internet Explorer 8, ни в браузере из Android 2.3.5
— требуется установка python

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

Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments13

О пользе железа, или знакомство с GPS/ГЛОНАСС трекерами

Reading time8 min
Views39K
Основное направление деятельности нашей компании – разработка ПО для спутникового мониторинга. В связи с чем мы вплотную сотрудничаем с производителями GPS/ГЛОНАСС оборудования. Поэтому мы решили поделиться опытом и выпустить цикл тематических статей, посвященных GPS/ГЛОНАСС трекерам, в которых расскажем, как классифицируем навигационное оборудование, и подробно рассмотрим технические особенности устройств, наиболее популярных среди пользователей нашего продукта.

Первая статья посвящена базовым понятиям: что такое GPS трекер, как он работает и каким бывает. Цель ‒ познакомить читателей с принципами работы навигационного оборудования и классификацией GPS трекеров по назначению и особенностям технической реализации.

image

Что такое GPS трекер?


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

GPS трекеры могут быть как самостоятельным электронным устройством, так и соответствующим программным обеспечением.

Софт трекер – программное обеспечение, позволяющее использовать смартфоны, планшеты и другие приборы в качестве аппаратной платформы GPS трекера. Приложение получает доступ к штатному GPS приемнику, а обмен сообщениями с навигационным сервером осуществляется посредством GSM и Wi-Fi модуля портативного устройства. Примером софт трекера может служить мобильное приложение для контроля выездных сотрудников WiaTag.

За счет отсутствия аппаратной части программные трекеры выигрывают по стоимости у своих электронных собратьев. Однако функциональные возможности трекера-программы значительно уступают специально разработанным электронным устройствам и ограничиваются в основном определением и передачей местоположения. Поэтому мы подробно остановимся именно на аппаратных устройствах.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments12

Apache vs Nginx: практический взгляд

Reading time12 min
Views363K
Apache vs Nginx

Введение


Apache и Nginx — 2 самых широко распространенных веб-сервера с открытым исходным кодом в мире. Вместе они обслуживают более 50% трафика во всем интернете. Оба решения способны работать с разнообразными рабочими нагрузками и взаимодействовать с другими приложениями для реализации полного веб-стека.

Несмотря на то, что у Apache и Nginx много схожих качеств, их нельзя рассматривать как полностью взаимозаменямые решения. Каждый из них имеет собственные преимущества и важно понимать какой веб-сервер выбрать в какой ситуации. В этой статье описано то, как каждый из этих веб-серверов ведет себя при различных условиях.
Читать дальше →
Total votes 89: ↑69 and ↓20+49
Comments184

Статический анализ кода Mozilla Thunderbird c помощью PVS-Studio

Reading time13 min
Views20K
В этой статье хочу рассказать о проверке проекта Mozilla Thunderbird статическим анализатором PVS-Studio. Пользуясь Thunderbird, я иногда сталкивался с зависаниями и странным поведением программы. Возможно, нам удастся найти хотя бы некоторые причины этого в исходном коде. Приглашаю посмотреть, какие ошибки могут прятаться в таком популярном проекте.
Читать дальше →
Total votes 46: ↑37 and ↓9+28
Comments34

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

Reading time9 min
Views16K
Примечание переводчика: В нашем блоге мы уже неоднократно рассказывали о создании интерактивных email-рассылок с помощью CSS и HTML. Сегодня мы представляем вашему вниманию адаптированный перевод материалов из блога Fresh Inbox о том, как создать слайдер изображений в email-сообщении, который будет отображаться на мобильных устройствах, а также в вебе и на десктопе.



Данная статья описывает процесс создания слайдера из эскизов изображений для email-рассылок. Сначала мы сконцентрируемся на реализации слайдера под мобильное ПО, а в частности под родные email-клиенты iPhone и Android. Затем мы добавим поддержку стационарных платформ.

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

Слайдер будет рассчитан только на одну ссылку, что хорошо подойдет в случае описания продукта с разных ракурсов (или, как в нашем случае, номера в отеле), но категорически не подходит при описании разных продуктов, где для каждого изображения требуется отдельная ссылка.
В данной статье будет использоваться ряд техник, описанных в «Интерактивных изображениях для мобильной Email-рассылки», поэтому если у вас возникнут вопросы, вы всегда можете обратиться к вышеописанной статье за разъяснениями.
Читать дальше →
Total votes 20: ↑14 and ↓6+8
Comments6

Распознавание речи с помощью CMU Sphinx

Reading time4 min
Views83K
CMU Sphinx сейчас является крупнейшим проектом по распознаванию человеческой речи. В инструментарий входят следующие программы и библиотеки:

  • Pocketsphinx — небольшая программа, которая принимает на вход произвольные акустические модели, грамматики и словари, а также звуковой поток(либо звуковой файл, либо сам берет поток с микрофона). На выходе получается распознанный текст. Написана на C, работает быстро.
  • Sphinxbase — библиотека необходимая для работы Pocketsphinx
  • Sphinx4 — гибкая библиотека для распознавания, написана на Java.
  • Sphinxtrain — программа для обучения акустических моделей.

Для работы со CMU Sphinx важно запомнить несколько определений и понять их отличия.

  • Акустическая модель — отвечает за сопоставление звуку произнесенной фонемы. Акустическую модель для русского языка можно скачать на сайте проекта. Русская акустическая и языковая модели. А также словарь.
  • Словарь — это файл, в котором написаны сопоставлены лексемы и фонемы (слово и его транскрипция). Например, калькулятор (k ay ll k u ll ja t ay r). Он необходим для преобразования фонем, распознанных акустической моделью в лексемы.
  • Грамматика — это формальные правила, которые описывают простые правила построения предложений. Лексемы, полученные на предыдущем шаге пытаются сопоставиться с грамматикой и если удачно, то выводится результат.
  • Языковая модель — это статистическая модель языка. Она описывает вероятности слов и их комбинаций. Таким образом распознавание лексем — это максимизация правдоподобности распознанной фразы.

Чем сложнее язык, чем обширней правила и размер словаря, тем хуже точность распознавания. Поэтому, для минимизации ошибки, имеет смысл создания упрощенных правил, которые будут описывать конкретную задачу.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments2

Brotli — новый алгоритм сжатия веб-данных от Google

Reading time2 min
Views29K
image

Так как веб-сайты и онлайн-сервисы с каждым годом становятся все «тяжелее», возрастает необходимость и сжатия данных в вебе. По этой причине Google выпустил новый алгоритм сжатия данных для веб-сайтов — Brotli, что в переводе с швейцарского немецкого означает «маленькая булка хлеба». Алгоритм уже доступен широкой аудитории на GitHub.
Читать дальше →
Total votes 36: ↑24 and ↓12+12
Comments12

О безопасности UEFI, часть четвертая

Reading time6 min
Views33K
Продолжаем говорить о безопасности UEFI, на этот раз речь пойдет об атаках на NVRAM и защите от них.
Неплохая, казалось бы, идея о том, что на микросхеме SPI можно хранить настройки практически вечно, не полагаясь на ненадежную и зависящую от батарейного питания CMOS SRAM, сыграла с разработчиками UEFI весьма злую шутку, теперь NVRAM с каждой новой версией стандарта обрастает все большим количеством костылей и подпорок, и конца этому процессу не видно. Если вам интересно, что именно пытаются подпереть костылем — эта статья для вас.
По традиции, всех, кто еще по каким-то причинам не читал первые три части — рекомендую начать с них, остальных с нетерпением жду под катом.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments14

Мифы и рецепты Docker

Reading time5 min
Views90K
Вокруг постоянно говорят про Docker. Я знаю что вы отвечаете: «Это что-то про контейнеры, виртуализацию, облака», «У нас все и так работает», «Это все баловство», «Он не запустится на нашем старом ядре линукса», «Точно так же можно подготовить образ для облака и запустить его», «Можно просто настроить LXC, chroot или AppArmor». Вы знаете, что он вам не нужен. Очередная модная штука. В конце концов, просто лень разбираться. Но любопытно! Тогда, читайте. Это серия из шести заметок.

Если вы не слышали о контейнерах в Линуксе, вот список страниц, которые надо прочитать, чтобы понимать о чем речь:


Поставьте 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.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments99

Подборка полезных ссылок от команды дизайнеров e-Legion

Reading time2 min
Views23K
image

Привет! Мы команда дизайнеров, которые проектируют и создают дизайн приложений для Android, iOS и Windows.

image

За 10 лет работы в e-Legion мы сделали проекты разной сложности: от интернет-магазина до мобильного банка. Идеи архитерктуры приложения / дизайна мы искали в разных источниках, что-то придумывали сами, искали интересные решения в интернете. И за время работы у нас накопилось достаточно полезных ссылок, которыми мы хотим поделиться.
Читать далее
Total votes 22: ↑15 and ↓7+8
Comments5

Information

Rating
Does not participate
Registered
Activity