Pull to refresh
1
Олег Сорока @oleg40aread⁠-⁠only

User

Send message

Hivext: Платформа веб-сервисов

Reading time5 min
Views1.5K
Hivext Technologies

Продолжаем знакомить читателей хабра с разработкой в области платформенного построения приложений. Освежая память, напомним что Hivext — это платформа веб-сервисов для веб-приложений, цель которой предоставить набор сервисов для полноценной и удобной разработки Web, Desktop и Mobile приложений.

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

Также в настоящей статье мы рассмотрим и расскажем про основные изменения и доработки с момента последней публикации статьи. В платформу добавились два «вкусных» сервиса.
Поехали ...

АВЛ-деревья

Reading time9 min
Views436K
Если в одном из моих прошлых постов речь шла о довольно современном подходе к построению сбалансированных деревьев поиска, то этот пост посвящен реализации АВЛ-деревьев — наверное, самого первого вида сбалансированных двоичных деревьев поиска, придуманных еще в 1962 году нашими (тогда советскими) учеными Адельсон-Вельским и Ландисом. В сети можно найти много реализаций АВЛ-деревьев (например, тут), но все, что лично я видел, не внушает особенного оптимизма, особенно, если пытаешься разобраться во всем с нуля. Везде утверждается, что АВЛ-деревья проще красно-черных деревьев, но глядя на прилагаемый к этому код, начинаешь сомневаться в данном утверждении. Собственно, желание объяснить на пальцах, как устроены АВЛ-деревья, и послужило мотивацией к написанию данного поста. Изложение иллюстрируется кодом на С++.

Читать дальше →

Сжатые префиксные деревья

Reading time8 min
Views61K
Тема префиксных деревьев поиска уже неколько раз поднималась на хабре. Здесь, например, кратко описывается, что такое префиксное дерево и зачем оно нужно, и рассматриваются основные операции над такими деревьями (поиск, вставка, удаление). К сожалению, ничего при этом не говорится про реализацию. В этом недавнем посте рассматривается «питонья библиотека datrie», являющаяся Cython-оберткой библиотеки libdatrie. По последней ссылке имеется хорошее описание реализации частично сжатых префиксных деревьев в виде детерминированных конечных автоматов (с использованием массивов). Я решил внести свои пять копеек в эту тему, рассмотрев реализацию на языке С++ префиксных деревьев с помощью указателей. Кроме того, была и еще одна цель — сравнить между собой поиск строк с помощью сбалансированного двоичного дерева поиска (АВЛ-дерево) и сжатого префиксного дерева.

Читать дальше →

DesktopGap для Windows

Reading time2 min
Views2.4K
В течении пробного заплыва в териториальные воды HTML5 разработчиков с целью ознакомления, я разработал небольшое приложение. С помощью PhoneGap его удалось успешно запустить на андроиде, а возможно (не тестировал) и еще на нескольких мобильных платформах. Но, к сожалению, PhoneGap не собирает приложения для настольных ОС (вроде что-то есть под Mac OS). Я решил исправить это упущение для Windows.



Читать дальше →

5 вещей, которых вы не знали о многопоточности

Reading time10 min
Views294K
Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.

В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
Читать дальше →

О стандартах документации

Reading time4 min
Views98K
Документация – такая штука, к которой мало кто питает тёплые чувства: скучно, занудно, однообразно. И, тем не менее, иногда не возникает сомнений в её необходимости: ведь кому-то после вас этим пользоваться или, тем паче, модифицировать. И тогда появляется вопрос: как сделать документацию правильно?

Существует тьма статей на тему «как писать документацию», но если вы решили взяться за неё в первый раз, то в новой для вас области не сразу понятно, дело ли пишет автор, или отсебятину выдумывает.

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

Читать дальше →

Русские субтитры в курсах Coursera

Reading time3 min
Views32K
Это уже не первая на хабре статья про курсы, предоставляемые командой профессоров Coursera. Были и в целом про ресурс, и про отдельные курсы.
Но мне кажется, это настолько замечательная организация, что лишний раз про неё вспомнить не грех.

Большой преградой на пути к знаниям является то, что все курсы проводятся на английском языке. И это отталкивает. Я сама не так давно думала, что изучать незнакомый материал на малознакомом языке — это что-то невообразимо тяжёлое. Но ребята из Coursera и этой проблеме придумали решение — студентам предоставлена возможность в довольно удобном сервисе создавать субтитры к лекциям. И на русском, несмотря на не очень большое русскоязычное сообщество, уже тоже появляются.

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

Как я решил потихоньку учить питон, а попал в дебри CS188.1x Artificial Intelligence

Reading time7 min
Views98K

Привет Хабр, или введение


image

Расскажу свою небольшую предысторию.

Как то в очередной раз надоело ковырять очередной контроллер, схему и pcb, и удрученный средней по рынку зарплатой рядового электронщика решил — хочу опять в программисты.

Не могу сказать, что я уже был в программистах, но образование получил 3 года назад по специальности «Информационные системы и технологии» в Военмехе. А судьба занесла в схемотехники-электронщики еще во времена универа. Раньше спасали частые командировки на объекты (пока молод и холост — интересно), а последний год все окончательно надоело.
Читая Хабр, выбрал себе Python.
Читать дальше →

Подборка сервисов для расширения возможностей вашего Dropbox

Reading time1 min
Views80K
Сервис Dropbox любим многими хабровчанами, поэтому предагаю вашему вниманию подборку полезностей для работы с этим облачным сервисом.

Backup Box умеет синхронизировать разные облачные сервисы, а также делать бэкапы сайтов (FTP и MySQL).

Читать дальше →

Функциональное и экономическое сравнение российских операторов предоставляющих облачные услуги

Reading time12 min
Views16K

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

Итак, операторы, предоставляющие облачные услуги, с которыми велась данная работа:
Читать дальше →

Онлайн чат для сайта через джаббер (GTalk)

Reading time2 min
Views41K
image
Великолепная веб-программа позволяющая разместить на вашем сайте панель с чатом для ваших клиентов сообщения которого будут прилетать в ваш джаббер клиент.
Другими словами это способ организовать общения с посетителями сайта.

Написать подробную инструкцию меня сподвигнула обзорная заметка на сайте dikiy.com
Под катом так-сказать пошаговая инструкция как запустить онлайн чат на своем сайте
Читать дальше →

Sciter — встраиваемый HTML/CSS/scripting engine

Reading time6 min
Views34K
Попросили вот здесь про Sciter слово замолвить… Собственно вот рассказываю.

Sciter есть встраиваемый HTML/CSS/scripting engine для создания UI десктопных и мобильных приложений, классических так и [occasionally-]connected.

В принципе поддерживаются разные парадигмы приложений ограниченные лишь фантазией разработчиков. Например одной фирмой была сделана телефонная система со smart desktop phones на которых работал Sciter-based client — фактически специализированный browser загружающий UI (HTML,CSS, scripts и images) с системного контроллера станции по специализированному протоколу.

Другой пример: фирма Symantec использует sciter как UI для их consumer продуктов — Norton Antivirus со товарищи (since 2007).

image
На картинке: sciter.exe demo проект из SDK + открытое окно DOM inspector'а, живет в inspector32.dll (исходники в SDK). inspector.dll можно использовать в своем проекте для отладки UI. Естественно что inspector UI есть опять же HTML/CSS/script + толика native code.

Читать дальше →

Математический подход к созданию сайтов

Reading time8 min
Views66K
«Математика прекрасна». Это может показаться абсурдным, для людей которые при одном только упоминании математики вздрагивают. Однако некоторые из самых красивых вещей в природе и нашей Вселенной — это проецирование математических свойств, от самых маленьких до крупнейших галактик. Один из древних философов, Аристотель сказал: «математическим наукам свойственно выстраивать все по порядку, в симметрии и ограничениях, они являются главными формами прекрасного».

Из-за своей природной красоты, математика является частью искусства и архитектуры. Но она практически не применяется  для дизайна сайтов и приложений. Это наблюдается из-за того, что многие не сопоставляют математику с дизайном. Хотя, наоборот, математика может быть инструментом для производства, поистине волшебных конструкций. Тем не менее, вы не должны полагаться на математику для каждого своего творения. Дело в том, что вы должны рассматривать математику как вашего помощника. Для наглядности мы создали пару сайтов, которые представляют математические принципы, обсуждаемые в этой статье. Мы также создали рекомендации, которые можно использовать в дизайне.

Читать дальше →

zfsonlinux — легко и просто

Reading time4 min
Views30K
zfsonlinux

У пользователей Linux с некоторых пор появилась возможность использовать ZFS не прибегая к FUSE, т.е. в ядре.

Множество ограничений, которые накладывает FUSE (в первую очередь ограничения по производительности; об остальных можно спросить google) не позволяют использовать ZFS через FUSE в большинстве возникающих задач.

Помимо прочего, код ZFS не может быть включен в дерево исходных кодов ядра Linux, как уже многие знают, из-за несовместимости лицензии CDDL с GPL, а это очень сильно повлияло на проникновение ZFS на Linux-системы.

Но с недавних пор развитие проекта zfsonlinux, разработчики которого портировали код ZFS из Solaris в виде модулей ядра для Linux, достигло такой точки развития, при которой можно использовать ZFS в Linux без особых усилий и с достаточным уровнем стабильности.

Как именно воспользоваться zfsonlinux (на примере rhel/centos/scientific linux 6) можно узнать в статье далее.
Читать дальше →

Установка OTRS и интеграция с Active Directory

Reading time4 min
Views117K
Сейчас на Хабре мало обзоров helpdesk-систем, правда, имеется сравнительный обзор SaaS-helpdesk (с хорошей ссылкой в комментарии от dude1phoenix), обзор OTMS-helpdesk и Request Tracker (как и OTRS написан на Perl).
Предлагаю вам поближе познакомиться с системой поддержки клиентов OTRS, с ее установкой на Debian и интеграцией с Active Directory предприятия.
Читать дальше

Восстановление расфокусированных и смазанных изображений. Повышаем качество

Reading time5 min
Views211K
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и смазанных изображений». Первые две вызвали заметный интерес — область, действительно, интересная. В этой части я рассмотрю семейство методов, которые дают лучшее качество, по сравнении со стандартным Винеровским фильтром — это методы, основанные на Total Variaton prior.
Также по традиции я выложил новую версию SmartDeblur (вместе с исходниками в open-source) в которой реализовал этот метод. Итоговое качество получилось на уровне коммерческих аналогов типа Topaz InFocus. Вот пример обработки реального изображения с очень большим размытием:


Читать дальше →

KPI, или пособие по командному самоубийству

Reading time11 min
Views449K
Для написания этой заметки  было затрачено:

  • 68338 километров на поездки.
  • 72 человеко-часа на почтовую переписку.
  • 423 человеко-часа на эксперименты с коллективом в 30 человек.
  • 88 часов на подготовку докладов и выступления на конференциях.
  • 17 чашек кофе на беседу с мудрыми людьми на афтепати.
  • Порядка 25 часов на набор этого текста и правку багов в нем :).
  • До смерти замученный копирайтер, который был вынужден разбирать мои черновики, аудиозаписи и вообще ему спасибо.


Много денег и времени. Пожалуй, самым затратным (по нервам, времени и деньгам) был эксперимент над собственной командой, о котором мне безумно неловко вспоминать. Но об этом — ниже.

Рано или поздно, наверное, у каждого директора возникает желание платить по справедливости. За выполенную работу. И очень многие сейчас пытаются внедрять KPI (ключевые показатели эффективности). Работает так: вы, как владелец бизнеса, назначаете конкретные цели для сотрудников. Они достигают или не достигают поставленных целей в процессе работы. Тем, кто достиг — выдается плюшка (денежная премия).

Смысл такого подхода: платить по справедливости. На сколько наработал — столько и получил. Это честно, это логично, это — прекрасно!



Ну, логично же, что:

  • Продажникам  нужно назначать процент с оборота. Волки должны быть голодными. (Да, есть альтернативное мнение, что применить такой подход — значит «обложить себя дополнительным налогом». Но как по мне — тут все справедливо :-)).
  • Офисному планктону — ставить оклад. Стабильность для них — ооочень важное условие существования.


А вот с творческими единицами (дизайнерами, программистами) — все значительно сложнее.

Мы недавно провели опрос руководителей ведущих диджитал-агентств и веб-студий страны на тему «а как вы используете KPI по отношению к труду творческих единиц», в результате получили вот такую картинку:



Некоторые компании (15%) применяют KPI для оценки эффективности труда программистов и дизайнеров.
Читать дальше →

Тестируем хостинг нового поколения

Reading time6 min
Views22K
image

Привет, Хабр!


Сегодня мы хотим рассказать о своем новом виртуальном хостинге четвертого поколения (мы его так у нас называем), который мы не так давно внедрили, и который до сегодняшнего дня находился в закрытом тестировании.
Сразу хочу сказать, что данная система разработана нашими коллегами из компании Parallels.
Наша заслуга в том, что мы первые, кто внедрили этот солюшн в России.
Читать дальше →

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Chief information officer (CIO)
Lead