Search
Write a publication
Pull to refresh
28
0.2
Михаил @Flammar

Java (+Javascript) fullstack developer

Send message

Визуализация многомерных данных с помощью диаграмм Эндрюса

Reading time2 min
Views30K
В эпоху Big Data графическое представление многомерных данных является весьма актуальной задачей. Однако результат визуализации не всегда соответствует ожиданиям. Вот пример не самого наглядного графика для изображения многомерных данных «Ирисы Фишера»:

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

Вся правда о модели Пропасти: Ранние рынки и как быть, если вы совершили ошибку

Reading time9 min
Views31K

Модель пропасти


Всем привет, я бы хотел поговорить о такой вещи как Модель пропасти, Джеффри Мура, которая многим известна, но мне хотелось бы привести примеры и поговорить о нюансах модели.

Сейчас, куда не посмотри, все стали учёные: литературой запаслись, интернеты читают. Кого не спроси, и о кривой принятия технологии знают, и вообще всё им понятно: «… да-да, знаем! Есть Новаторы, Ранние последователи, есть рынок ранний, а есть поздний, отщепенцы и увальни — ну куда без них? Да-да, между рынками, ранним и основным, есть пропасть, которую нужно перепрыгнуть!» Знают. Прыгают. Только, бывает, пикируют. А всё почему? Потому что аннотацию прочли, а содержимое не осилили. Поэтому я написал эту заметку. Речь пойдёт о том, что важные вещи, которые нужно знать о модели Пропасти, не всегда лежат на поверхности.
image

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

Особенности русской разработки

Reading time8 min
Views285K
image

По роду занятий я часто общаюсь с различными русскими и западными командами. Очень частый вопрос — есть ли какая-нибудь специфика в работе наших и как это влияет на разработку?

Есть очень неплохая книжка о специфике работы русских вообще. Она называется «Русская модель управления». Ее написал А.П.Прохоров (другой, не олигарх). Не буду ее пересказывать. Основная идея в том, что русские по своей природе могут работать только в двух модах. В нестабильном состоянии они могут свернуть горы. В это время мотивация очень высокая. В стабильном расслабленном состоянии — когда никто не пинает — русские вроде как работают плохо и не сильно утруждаются.

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

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

Я буду приводить влияние разных факторов в порядке их важности и силы влияния. Чем выше — тем сложнее это изменить и тем больший эффект это оказывает.
Читать дальше →

Встраиваем бэкдор в публичный ключ RSA

Reading time4 min
Views113K

Привет, %username%!
Когда я увидел, как это работает, сказать, что я был в шоке — ничего не сказать. Это довольно простой трюк но после прочтения этой статьи вы больше никогда не будете смотреть на RSA по-прежнему. Это не взлом RSA, это нечто, что заставит вашу паранойю очень сильно разбухнуть.
Читать дальше →

Алгоритм поиска неисправности в драйвере LED лампы или Эркюль Пуаро отдыхает

Reading time7 min
Views311K
Недавно один знакомый попросил меня помочь с проблемой. Он занимается разработкой LED ламп, попутно ими приторговывая. У него скопилось некоторое количество ламп, работающих неправильно. Внешне это выражается так – при включении лампа вспыхивает на короткое время (менее секунды) на секунду гаснет и так повторяется бесконечно. Он дал мне на исследование три таких лампы, я проблему решил, неисправность оказалась очень интересной (прямо в стиле Эркюля Пуаро) и я хочу рассказать о пути поиска неисправности.
Читать дальше →

Что-то издали похожее на монады

Reading time5 min
Views22K
После прочтения десятков «самых понятных введений в монады» и чтения (тоже) десятков обсуждений на разных форумах я пришёл к выводу, что существует группа абстрактных ОО-программистов, которым моя интерпретация «чего-то похожего на монады» может помочь немного приблизиться к правильному пониманию.

Итак, в этой публикации вы не найдете ответы на следующие вопросы:
1. Что такое монада?
2. Где и как использовать монады?
3. Почему монады лучше, чем их отсутствие?
Читать дальше →

Философия программирования — трёхнаправленное программирование

Reading time11 min
Views105K
Программирование рассматривается как процесс создания компьютерных программ. Слово процесс в этом определении не лишнее. Обычно рассуждают в духе «посмотрите, какую замечательную структуру данных можно описать на данном языке программирования». Философия программирования подразумевает оглянуться по сторонам, да и в глубь копнуть.

Собственно разделение на кодирование, и создание алгоритмов это уже специфика, сначала идёт жизнь, то есть человек опирается на некую мысль вроде «напишу-ка я фреймворк с такими-то свойствами». И вот это начальное направление это вопрос философии. Проблема в том, что часто жена программиста лучше его самого знает, на философском уровне, что он делает и почему. Элементарные философские категории: мышление, сознание, обусловленность программисту неведомы. И это странно, если сравнить способность программиста мыслить, например, читая статьи по функциональному программированию или алгоритмам поиска, вперемешку со статьями видных русских или европейских философов, окажется, что собственно навык мышления у программистов развит не меньше, а то и больше. Вот только язык программиста очень богат пока он рассуждает о паттерн-матчинге и жалок и органичен когда ему надо выйти из своей песочницы, оторваться от IDE и файлового менеджера.
Читать дальше →

Беспилотник на базе Raspberry Pi. Часть 1

Reading time2 min
Views113K
Привет, %хабраюзер%. Хочу поделиться историей о своем беспилотнике (БЛА) на малинке.

Перед тем, как начать делать беспилотник, стоял выбор, какую летательную модель брать за основу: квадракоптер или самолет? Так как с коптерами я в свое время наигрался, знаю их основной минус: чаще всего время полета составляет 10-20 минут. Лично для меня это очень мало, поэтому было решено взять за основу самолет.

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

О поиске недорогой замены престарелому SSD

Reading time4 min
Views18K
В канун нового года решил наконец-то обновить SSD в своем самосборном NAS. Если бы я был не автором, а читателем этого поста, сразу возникли бы вопросы. Зачем в NAS SSD? Какой смысл покупать что-то сейчас, когда цены скачут подобно блохам? Отвечу на все это, а также покажу результаты бенчмарков трех относительно бюджетных SSD емкостью 240-256 Гбайт производства ADATA, Kingston и Toshiba.

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

Замена чипсета на материнской плате

Reading time19 min
Views359K
Просматривая недавно архив своих фото, я обнаружил фотографии со своей прошлой работы, которые было бы интересно посмотреть многим. Фотографии сделаны для себя мобильным телефоном Samsung Galaxy S в разное время, некоторые смазаны, но, увы — что есть и других уже не будет.

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

Инфракрасная камера для Arduino / Raspberry PI за $350

Reading time1 min
Views19K


До недавнего времени инфракрасные камеры были очень дорогими игрушками – владельцы загородных домов, готовившие свои жилища к зимней теплоизоляции, знают о стоимости услуг по поиску утечек тепла. Однако электроника совершенствуется и дешевеет. Например, недавно компания FLiR предложила чехол для iPhone аж с двумя инфракрасными камерами, которые комбинируют изображения в весьма неплохую картинку, за $350 (кстати, в честь праздников у них идёт распродажа по $250). А теперь вот любители DIY могут приобрести подобную камеру для использования в своих проектах Arduino / Raspberry PI.
Читать дальше →

Анализируем вождение и состояние автомобиля с помощью eConomy

Reading time4 min
Views11K
eConomy – это комплект из автомобильного гаджета, приложения для смартфонов и персональной веб-странички для каждого автомобиля, которая подобно медицинской карте хранит полную историю авто, начиная с первого дня.

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



Это помогает экономить на бензине и нервах. Помимо вождения, приложение следит за состоянием автомобиля. Так, функция экспресс-диагностики определяет природу текущих неполадок мотора, а мониторинг следит за температурами и «электрикой» во время движения.
Читать дальше →

Перенос ОС Windows на другой компьютер средствами ОС Linux

Reading time9 min
Views50K
После прочтения статьи «Фривольное клонирование ОС MS Windows XP / Server 2003 своими руками, средствами GNU/Linux» возникло естественное желание дополнить ее в соответствии с реалиями конца 2014 года.

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

MBR, таблица разделов и сигнатура диска


Начнем с копирования данных. Какие же данные нам нужно скопировать? Для Windows XP это MBR (446 байт в начале диска, основная таблица разделов и завершающая сигнатура 55AAh), данные о расширенных разделах и собственно данные системного раздела Windows. Для Vista и Windows 7 добавляется еще и 100-мегабайтный системный раздел (GPT не рассматриваем). При этом нужно помнить, что первый раздел в Windows XP по-умолчанию начинается с сектора 63, а в Windows Vista/7 — с сектора 2048. Естественно, все операции мы будем проводить на незапущенной Windows, загрузившись с System Resque CD.
Читать дальше →

Как загрузить последний Office с сайта Microsoft без всякого App-V

Reading time4 min
Views83K
На прошлой неделе я написал заметку «Как загрузить виртуальный корпоративный Office 2013 с сайта Microsoft», где описал, как при помощи Office Deployment Tool загрузить последнюю корпоративную версию Office 2013 и сконвертировать её в формат виртуального пакета APP-V 5.0. Очевидно, что виртуализация приложений интересна для массового развертывания, для сценариев ферм терминального доступа, и для энтузиастов, часто обновляющих ОС на домашнем ПК, — например, устанавливая регулярные сборки Windows 10 по программе Windows Insider, и не желающих переустанавливать вручную все приложения. Для более простого пользователя существует совсем тривиальный сценарий установки Microsoft Office всё тем же Deployment Tool в режиме Click2Run. Отличий от способа, описанного в прошлой заметке два. Во-первых, не нужна конвертация пакета в формат APP-V, (соответственно, не нужен сам APP-V и махинации в PowerShell) – прямо после загрузки пакета мы его одной командой приготовим к Click2Run использованию. Второе отличие будет более печальным – для режима работы Click2Run доступны лишь Retail версии Office 2013, — следовательно, продукт потребуется активировать вручную. Рассмотрим процесс по шагам.
Читать дальше →

Как растаращить class-файл

Reading time4 min
Views45K
Обычно при компиляции Java-файла получаются .class-файлы примерно того же размера, что и исходник. Меня заинтересовало, можно ли по небольшому исходнику сделать .class-файл, который больше, сильно больше исходника.

Можно поискать какие-то короткие конструкции языка, которые компилируются в длинные цепочки байткода, но линейный прирост меня не устраивал. Я сразу подумал про компиляцию finally-блоков: про неё уже писали на Хабре. Если вкратце, то для каждого finally-блока при непустом try-блоке создаётся минимум два варианта в байткоде: для случая нормального завершения try-блока и для случая завершения с исключением. В последнем случае исключение сохраняется в новую локальную переменную, выполняется код finally, затем исключение достаётся из локальной переменной и перебрасывается. А что если внутри finally снова разместить try-finally и так далее? Результат превзошёл все ожидания.
Читать дальше →

Социальная инженерия на практике: «физический доступ» на закрытую конференцию Кевина Митника

Reading time8 min
Views125K
«Физический доступ — это проникновение в здание интересующей вас компании. Мне это никогда не нравилось. Слишком рискованно. Пишу об этом — и меня уже пробивает холодный пот.» Кевин Митник, «Призрак в Сети. Мемуары величайшего хакера»



Еще в студенческое время, когда проводились олимпиады и конференции по информационной безопасности меня бесило то, что не принимались методы и работы, включающие в себя социальную инженерию (СИ). Как так! Ведь легендарный уже в те времена Митник говорит, что 99% взлома происходит с использованием СИ.

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

Под катом отрывок из книги Митника про физический доступ и история про проникновение на конференцию Митника в Москве 2013.
Читать дальше →

Умный дом образца 1985 года

Reading time2 min
Views25K

Вот так выглядит «мозг» системы

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

Сейчас такие системы настраиваются с телефона или планшета, после чего все работает автоматически. Тем не менее, дома можно было сделать умными и 20-30 лет назад, при большом желании и еще большем количестве денег. И работают некоторые такие системы до сих пор, что доказывает их надежность. В продолжении — описание системы Unity, которая работает в доме одного американца до сих пор. Осторожно, трафик.

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

WFC и полицейское расследование

Reading time6 min
Views22K
Уважаемые клиенты, друзья и коллеги. Вашему вниманию предлагается История с продолжением.

История с арестом полицией наших серверов летом 2013 года весьма поучительна не только для нас, но и для всех хостеров, а также тех, кто интересуется работой хостинговых компаний. Поскольку расследование полицией дела практически завершено, мы считаем возможным опубликовать некоторые материалы, проливающие свет на причины и хронологию произошедшего. Сразу скажем, что произошедшее маловероятное событие стало стечением нескольких маловероятных обстоятельств. Мы просто попали под каток компании, проводимой ФБР США и «Майкрософт».
Читать дальше →

Gangnam Style сломал переменную количества просмотров

Reading time1 min
Views30K
Gangnam Style — это сингл южнокорейского музыканта Psy. Клип начал набирать миллионы просмотров сразу после выхода. Уже 21 декабря 2012 года видеоролик первым в истории набрал 1 миллиард просмотров.

Здесь этот медиафеномен можно было бы оставить в покое, если бы не маленький факт того, что недавно Gangnam Style вскрыл недостатки видеохостинга. Оказалось, что количество просмотров хранится в 32-битной целой переменной, и счётчик остановился на 2 147 483 647. Об этом разработчики сообщили в официальном аккаунте YouTube.

Видеосервис удачно обратил дефект в пасхалку: если на странице видео навести курсор на счётчик, то будет показана иллюстрация целочисленного переполнения.

Питание 9/12-вольтовых SOHO-маршрутизаторов от USB-источника

Reading time4 min
Views39K
Самодельный переходник-преобразователь для питания распространенных SOHO-маршрутизаторов, требующих напряжения 9/12 В, от любого 5-вольтового источника достаточной мощности с разъемом USB.



Предыстория


Несколько лет назад у меня завелась пара USB/WiFi-маршрутизаторов Sapido RB-1842. Один я таскал с собой в поездки, чтобы удобнее было раздавать отельный/квартирный/мобильный интернет, а второй поставил стационарно в сельском доме, где интернет доступен только мобильный. Довольно скоро выяснилось, что обоим нужно автономное питание: возимый с собой иногда приходилось ставить на балкон, чтобы ретранслировать WiFi из отельного холла или соседнего кафе, а в деревне регулярно отключают свет на 10-20-40 минут — ноутбуки и гаджеты работают, базовая станция тоже, а интернета нет.

Порадовавшись, что модель пятивольтовая, я отрезал кабели от блоков питания маршрутизаторов, поставив в разрыв разъемы USB «мама/папа» и при нужде запитывал их от обычных повербанков. При этом один из купленных у китайцев безымянных повербанков оказался способен при наличии входного напряжения одновременно заряжать батарею и давать энергию на выходе, а при пропадании — переключаться на батарею. То есть, получился прекрасный пятивольтовый UPS, которого хватало где-то на час-полтора (в том повербанке два аккумулятора 18650) и за которым не требовалось никакого присмотра.
Читать дальше →

Information

Rating
4,568-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity