Pull to refresh
21
0
Roman Gomolko @Romanych

User

Send message

Домашний тлен: токсины черной плесени

Reading time13 min
Views51K

Если бы из всех существ, животных, грибов, бактерий и вирусов нужно было бы выбрать один, который соответствовал бы слову Тлен, пожалуй, победила бы именно плесень. Именно её мы видим в заброшенных домах Припяти, она поглощает пищу, к которой уже никто не притронется, ею обрастают старые погреба, сырые доски и вещи, брошенные на свалку, сырые обои и гипсокартон в вашем туалете.

Читать далее
Total votes 116: ↑112 and ↓4+108
Comments134

Comedy. Акторы в Node.JS для гибкого масштабирования

Reading time14 min
Views16K

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

Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments36

Управление задачами на разработку. История из жизни

Reading time6 min
Views13K
О том, когда задач больше чем ресурсов на их выполнение, очередь задач со временем увеличивается и часть из них можно смело назвать «дурацкими».
Дурацкая задача – когда ожидаемая от реализации польза не оправдывает количества необходимых ресурсов, но Заказчик настаивает на необходимости её выполнения.
О
  • управлении потоком задач на разработку,
    Как избавится от «дурацких» задач?
  • управлении расходами на разработку,
    Как определить и выбрать самые выгодные задачи?
  • распределении ограниченных ресурсов.
    Как сделать так, чтобы все Заказчики были довольны, а количество ресурсов при этом осталось тем же?

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments36

Переход от монолита к микросервисам

Reading time5 min
Views36K

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


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

Читать дальше →
Total votes 36: ↑30 and ↓6+24
Comments30

Это маленькое чудо — алгоритм Кнута-Морриса-Пратта (КМП)

Reading time9 min
Views172K
Алгоритм Кнута-Морриса-Пратта используется для поиска подстроки (образца) в строке. Кажется, что может быть проще: двигаемся по строке и сравниваем последовательно символы с образцом. Не совпало, перемещаем начало сравнения на один шаг и снова сравниваем. И так до тех пор, пока не найдем образец или не достигнем конца строки.
Читать дальше →
Total votes 69: ↑67 and ↓2+65
Comments57

Удивительная история document.write

Reading time3 min
Views49K
Метод document.write — один из самых странных методов. Он вставляет HTML-код на страницу сразу после себя. Точнее говоря, сразу после тега <script>, внутри которого он расположен. И только в том случае, если документ еще не был загружен полностью. А если был? Тогда страница очищается и заменяется на, что было указано.

Можно вставить строку, которая явно сломает остальную страницу:

document.write('<plaintext>')

Или можно поиграть в русскую рулетку:

if (Math.random() > 0.9)
  document.write('<!--')
Читать дальше →
Total votes 86: ↑82 and ↓4+78
Comments36

Пакет-географ – первая рабочая версия

Reading time6 min
Views24K

Прежде всего хотел бы поблагодарить за более, чем 80 звёзд на GitHub, которые мне дали читатели Хабра по результатам предыдущего поста. И это несмотря на то, что репозиторий был почти пустой, а ссылка была неочевидна. На лицо полезность этого пакета!


Для тех, кто пропустил первый пост, маленькое повторение. Если у Вас в приложении есть что-то вроде:


Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments42

Как Spotify масштабирует Apache Storm

Reading time4 min
Views11K
Spotify — шведский сервис потокового воспроизведения музыки с которым сотрудничают такие компании как Sony, EMI, Warner, и Universal. Сервис Spotify был запущен в октябре 2008 года, сейчас он предоставляет более 30 млн композиций. Многие считают его попыткой повторить успех Napster и легализовать его модель. Шведам все это удалось едва ли не лучше всех в мире.

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


/ фото Sunil Soundarapandian CC
Читать дальше →
Total votes 21: ↑16 and ↓5+11
Comments3

Определяем ключевые товары с помощью линейной регрессии

Reading time6 min
Views10K
Ритейл, все-таки, штука интересная. Особенно, если разрабатываешь сервис для его аналитики. Каждый поход в магазин превращается в мини-исследование. Идешь себе вдоль полок и думаешь:
“С чем лучше сосиски коррелируются с кетчупом или мариноваными огурцами? А черт, ладно, беру и то, и то!”
“Hoegaarden почти раскупили, а ведь до вечера пятницы еще целых полдня. Эх, че ж так плохо спрос то спрогнозировали? ”

Интересно, а что применяют управляющие для прогнозирования продаж?

А иногда приходишь с этим вопросом к ритейлерам, а тебе в ответ люди говорят «Нууууу, обычно как-то так ...» и начинают делать широкие жесты руками. Да вот, приблизительно, такие, как на картинке.

image


Так вот, мы в Datawiz.io, решительно не согласны с таким подходом.
Читать дальше →
Total votes 17: ↑10 and ↓7+3
Comments8

Человеческий фактор в разработке программного обеспечения: психологические и математические аспекты

Reading time8 min
Views27K
Разработка программного продукта — это процесс, в котором человеческий фактор играет очень важную роль. В статье поговорим о различных психологических и математических законах и принципах. Некоторые из этих принципов и законов вам хорошо известны, некоторые — не очень, а некоторые помогут объяснить ваше поведение или поведение ваших сотрудников и коллег.

Разработка ПО – нелинейный процесс

Разработка программного обеспечения — нелинейный процесс. Если на проект выделено 5 разработчиков, которые за 5 месяцев должны разработать продукт (25 чел./мес.), то 25 разработчиков не смогут сделать эту же работу за 1 месяц (те же 25 чел./мес.).


image
Читать дальше →
Total votes 51: ↑39 and ↓12+27
Comments14

Nokia Firmware Cooker — конструктор прошивок для 5800

Reading time2 min
Views6.4K
Обещал написать обзор таковой программы для 5530, но ссылки на неё тайно пропали. Пусть это останется интригой, пока не свяжусь с автором. А пока, встречайте: редактор прошивок для 5800!

image
Nokia Firmware Cooker — программа, созданная специально для любителей оптимизировать и модифицировать свой телефон. С помощью этой программы Вы сможете собрать себе личную прошивку для 5800 (и только!). К сожалению, настолько хорошо разработанная программа написана пока только для 5800, в процессе написания уже Конструктор прошивок для 5530, для других телефонов и вовсе не видел. Но, надеюсь на то, что владельцев 5800 не меньше, чем 5530.
Под катом: скрины, инструкция, описания, ссылки.
Читать дальше →
Total votes 61: ↑55 and ↓6+49
Comments34

Где искать примеры для WPF и WCF?

Reading time1 min
Views2.4K
Установил давно Windows Software Development Kit (SDK) for Windows Server 2008 and .NET Framework 3.5 для того, чтобы использовать стандартные профайлеры для WPF. А сегодня подсказали, что там установлено примеров на 240 мегабайт: одних только сжатых WPFSamples на 70 мегабайт, так же там есть и WCF примеры и FrameworkSamples (и с использованием ClickOnce). Для студентов и школьников есть пример калькулятора на WPF. Так же очень сильный пример notepad под WPF.
После установки я обнаружил примеры у себя в папке C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\.
P.S. Найти бы нормальный список этих примеров… А то все не пересмотреть ;) А так, думаю, полезно будет каждому.

Total votes 11: ↑8 and ↓3+5
Comments4

Качества перспективного работника

Reading time4 min
Views4.1K
Не могу сказать, что с первого своего рабочего дня я был отличным исполнителем. Я был зеленый и не понимал многого, что от меня ожидалось, делал не то что нужно. Встречая хороших менеджеров, работая с отличными руководителями а, впоследствии, руководя другими, я научился многим ценным привычкам. Я начинал работать помощником ректора в коммерческом вузе и, по странному стечению обстоятельств, в последующих двух компаниях, мне также приходилось тесно работать с топ-менеджментом. А еще с точно такими же, каким я был вначале. Рефлексируя, я начинал понимать что ценится в работниках, с точки зрения руководителя.

Решил выписать самое основное — советы, зная которые с самого начала, я думаю, достиг бы сейчас много большего. Применяя их вам будет легче понимать начальство, а с вами будет проще работать, вам будут доверять, делегировать, поручать руководство другими (в которых вы, к слову, станете ценить то же самое).
Читать дальше →
Total votes 116: ↑107 and ↓9+98
Comments66

Основы основ: акции (часть два)

Reading time6 min
Views50K
Итак, в предыдущем топике мы обсудили, что такое акции, зачем они нужны и откуда они берутся. Если вы не читали его и не ощущаете себя полностью знакомыми с этими вопросами — возможно, имеет смысл прочитать. А пока мы плавно переходим к тому, что с этими акциями происходит после IPO.

Замечание автора: как и в предыдущих топиках, я не ставлю целью объять необъятное, и постараюсь лишь «на пальцах» объяснить некоторые базовые вещи. Если вы считаете, что информация не полна или не точна — я в высшей степени приветствую развернутые комментарии (которые я постараюсь инкорпорировать в текст статьи) — или, что еще лучше — самостоятельные топики. И еще — огромное спасибо всем тем, кто читал, комментировал, уточнял, задавал вопросы — мне приятно видеть, что людям это интересно. Мне приятно было получать ваши комментарии, и я постараюсь ответить на все возникшие вопросы.

Как торгуются акции


Большинство акций так или иначе продается на биржах (альтернативой являются внебиржевые сделки, так называемые over-the-counter). Биржа (вообще-то биржи бывают разные, а здесь речь пойдет о фондовых биржах — stock exchange) — это, в самом простом понимании, место где покупатели и продавцы встречаются и договариваются о цене. Какие-то биржи очень похожи на то, что вы видели в голливудских фильмах — люди стоят в торговом зале и кричат «Продаю…! Покупаю!!» — таковой до последнего времени (начала 2007) была биржа NYSE — знаменитый New York Stock Exchange.

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

Читать дальше →
Total votes 105: ↑93 and ↓12+81
Comments62

Как загрузить большую карту с Google Maps — два

Reading time1 min
Views935
В предыдущей записи этого блога обсуждалась загрузка больших фрагментов карт с Google Maps.

Я сделал новую версию своей программы BoobleMaps, которая как раз этим и занимается. Вы выделяете интересующий регион в Google Earth, сохраняете его в kml-файл и используете BoobleMaps для загрузки фрагментов и их сшивки. Загруженные фрагменты сохраняются в кэше. Программа имеет анти-бан защиту, но за её работу, понятное дело, не отвечаю. Кстати, замечено, что, во всяком случае раньше, банили только за спутник, но не за карты и оверлеи.

Небольшую статью посвященную краткому описанию, как хранятся данные на Google Maps я здесь перенабирать не буду, даю ссылку: ->

По описанию Google Maps в этой статье не актуальны только имена серверов с которых подгружаются спутниковые снимки и версии карт (меняются весьма часто).
Приводится описание первой версии программы. Вторая, вы увидите, очень похожа на первую, только чуть проще в использовании.

Архив с программой и библиотекой найдёте здесь: ->

Исходные коды программы маринуются на google.code здесь: ->

Ошибки, пожелания, замечания по коду (если кто снизойдёт) — приветствуются, буду рад.

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

UPD.
Совсем забыл, хотел обратиться к сообществу, может кому будет не лень присоединиться к проекту: нужно научить программу читать настройки из внешнего файла, сейчас они забиты в классе Settings.
Также было бы неплохо реализовать автоматическое определение текущей версии фрагментов карт и спутника.

Total votes 31: ↑31 and ↓0+31
Comments34

Непроходимые дебри бизнеса, ч. 2

Reading time4 min
Views709
Это вторая часть заметки о том, как мы делали магазин www.Smart-Masses.ru. Если не читали первую часть — милости просим часть 1. Тем кто читал — поехали дальше.

Капитал /К. Маркс/


Чтобы сделать магазин, нужны деньги. Зачем они нужны?
о бабках и рекламе
Total votes 36: ↑30 and ↓6+24
Comments32

Яндекс.Склонятор

Reading time2 min
Views25K
Яндекс выпустил XML-склонятор русских имен. Сервис по адресу export.yandex.ru/inflect.xml?name=Вася%20Пупкин берет имя и выдает его склонения в такой форме:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <inflections>
  3.   <original>&#1042;&#1072;&#1089;&#1103; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;</original>
  4.   <inflection case="1">&#1042;&#1072;&#1089;&#1103; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;</inflection>
  5.   <inflection case="2">&#1042;&#1072;&#1089;&#1080; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1072;</inflection>
  6.   <inflection case="3">&#1042;&#1072;&#1089;&#1077; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1091;</inflection>
  7.   <inflection case="4">&#1042;&#1072;&#1089;&#1102; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1072;</inflection>
  8.   <inflection case="5">&#1042;&#1072;&#1089;&#1077;&#1081; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1099;&#1084;</inflection>
  9.   <inflection case="6">&#1042;&#1072;&#1089;&#1077; &#1055;&#1091;&#1087;&#1082;&#1080;&#1085;&#1077;</inflection>
  10. </inflections>
Пользуйтесь на здоровье :)

Склонятор стал 17-м мини-проектом сборника Яндекс.Нано.

P. S. Обнаружил на Хабре единственную девушку-участницу разработки проекта :)
Total votes 119: ↑114.5 and ↓4.5+110
Comments64

Коллекции иконок? Легко! Тысячи иконок в сетах.

Reading time2 min
Views39K
В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
Читать дальше →
Total votes 159: ↑135.5 and ↓23.5+112
Comments36

О первом долларе, заработанном в Интернете

Reading time3 min
Views1.5K
Хочу рассказать о том, как и когда я заработала первую копеечку в сети. Нет, это не будет очередной пост на тему «Как я заработал в месяц 3 бакса вместо обычных двух просто перевесив адсенс в левый верхний угол блога и удачно подобрав цвета» :)

Было дело в начале 2005 года. Уже тогда я активно интересовалась хендмейдом и лазила по буржуйскому Интернету в поисках вдохновения и единомышленников. Не помню как, но наткнулась я на сайт http://bead-patterns.com/. Они продают файлы в формате pdf, в которых находятся инструкции, как изготовить то или иное украшение. Вдоволь налазившись в поисковике и навозившись с графическими программами, словарем и фотоаппаратом, я сотворила первый в жизни пдф-файл со схемой и описанием изготовления своего браслета, и отправила заявку на сайт: мол, хочу продавать свои схемы у вас. Потом я нарисовала еще несколько схем, и закачала на их сайт. Полазив по схемам других дизайнеров я была просто шокирована ценами, которые они выставляют на свои пдф-файлы: от 4 до 7 баксов за схему, в которой и без заглядывания внутрь понятно, как оно делается. Я назначила цены в соответствии с общими тенденциями, и была вне себя от радости, когда на следующий день, зайдя в статистику, увидела, что одну мою схему, которую я оценила в 5 баксов, купили: 2 доллара отошло хозяевам сайта, 3 досталось мне. За месяц от продажи 5 пдф-файлов набежало 90 долларов. Это были целое богатство для меня, невиданная сумма, и мне казалось, что получила я их на халяву, без особых усилий: один раз сделал, а потом сиди и пожинай плоды стараний всю жизнь. Через 2 месяца продажи стали падать, потому что мои схемы ушли из категории новых. Пришлось рисовать что-то еще, чтобы люди, просматривающие новинки, заметили меня и снова стали покупать, заодно просматривать остальные пои схемы и покупать что-то из старого. Тогда произошла мини-революция в моем сознании. Я никогда не могла бы подумать, что кто-то будет платить такие деньги за возможность один раз распечатать мой пдф-файл.

Читать дальше →
Total votes 113: ↑109 and ↓4+105
Comments51

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity