Search
Write a publication
Pull to refresh
17
0

Пользователь

Send message

Прекратите скручивать — 2. О способах крепления кабеля

Reading time7 min
Views564K
По заявкам слушателей, так сказать. Правильно соединить кабель — половина дела, но если он будет свободно болтаться, то долго он не проживет — или заденут, или порвут, или откусят(необязательно со злыми намерениями). А может просто под своим весом выскользнуть из соединения. А может не выскользнуть, что еще хуже — поди-ка найди место пропадания контакта. Так что эта статья расскажет о том, какими способами можно закрепить кабель так, чтоб он никуда не делся.
Да и вот такие крепления некрасивы, неудобны, и выдают непрофессионала:

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

Как я покупал квартиру

Reading time11 min
Views62K
Я хотел написать статью про линейную регрессию, но потом подумал, да ну её, лучше куплю квартиру. И пошёл искать, что предлагают. А предлагают, как оказалось, много чего. В подходящий мне ценовой диапозон попало больше 500 квартир. И что, мне теперь все это просматривать? Ну нееет, программист я в конце концов или не программист. Надо это дело как-то автоматизировать.
Читать дальше →

Динамическая визуализация геокодированных данных (Twitter) с помощью R

Reading time9 min
Views10K
«Новый год шагает по стране»

Я являюсь ярым фанатом геосоциальных сервисов. Они позволяют наглядно увидеть физическую реализацию социального пространства. Это то, о чем писал Бурдьё, но что для него было доступно лишь в виде мысленного конструкта. Foursquare вообще является моей безответной любовью. Но об этом как-нибудь в следующий раз, а сегодня поговорим о Twitter.
Незадолго до конца предыдущего, 2012-го, года мне захотелось увидеть, как выглядит «волна» новогодних твитов-поздравлений. Посмотреть, как она проходит через часовые пояса. Сказано — сделано. Использованные инструменты: R, Python и ffmpeg.

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

Как вставить печать в документ, чтобы боги не убили котёнка

Reading time6 min
Views137K
Была у пользователей Эльбы мечта — вставлять изображения печатей и подписей в счета, акты, накладные и прочие серьезные документы. Отчего бы не порадовать мечтателей, подумали мы. Оглядевшись по сторонам, мы поняли, что обычно в таких случаях всю грязную работу сваливают на пользователя (ну, вы знаете: «картинка должна быть 300 на 400 пикселей, с высоким контрастом, хорошим разрешением и идеально белым фоном»). Но судя по опыту нашей команды, которая бывает в колл-центре, даже простая загрузка изображения с фотоаппарата повергает пользователей в глубокую депрессию, и вызволять их приходится богопротивными способами, а-ля «вставьте картинку в Ворд». Конечно, не может быть и речи о том, чтобы заставлять пользователей чистить печати в фотошопах — пусть фотографируют как умеют, а Эльба выполнит за них все остальное!



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

256 цветов в терминале ⇒ уровень nightmare

Reading time2 min
Views61K


Я тут строю некоторый велосипед с длинным отладочным выводом в stdout и меня взволновал вопрос серьезной расцветки лога. Современные терминалы xterm умеют и любят 256 цветов, но вот люди, которые придумывали escape-последовательности для этой палитры, стреноженные обратной совместимостью и латентной склонностью к криптографической эмпирике, все сделали так, что у меня ушло несколько часов, чтобы со всем этим разобраться. Интернет тоже не изобилует подробными разъяснениями, как оно там устроено.
Вкратце, текст в иксовый терминал можно нынче выводить кучеряво. Я набросал некое подобие сервиса, типа визивига для генерации escape-последовательностей. Выбрал цвета, начертание шрифта — получи набор закорючек. Тех же, кому интересны потроха — прошу под кат.
Читать дальше →

История одного Crash-а, и NSLog'а его лечившего

Reading time11 min
Views31K
Лечу Crash'и NSLog'ами. Недорого. Многолетний опыт. 100% гарантия.

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

Все началось с того, что на одном из относительно больших проектов начало стабильно вываливаться исключение при авторизации пользователя. «Ну и что тут такого? У всех бывает. Проверку на nil забыли поставить или где-то накосячили. „Тоже, мне, большое событие — crash на проекте“, — подумает большая часть программистов. В принципе — абсолютно согласен. Crash — не такое уж и редкое явление в программировании под iPhone, и с ним сталкиваешься по десять раз на день. Но этот был особенным. От него уже начало попахивать „магией“, когда мне сказали про его некоторые параметры и особенности:

  • Воспроизводимость на симуляторе: 100%
  • Воспроизводимость на устройстве: 0%
  • Путь к крэшу (после локализации крэша): ~ 40 секунд
  • Настройки оптимизации при компиляции (-O1,-O2...) не влияют на воспроизводимость
  • XIB'ы в проекте не используются


Да выглядел он довольно безобидно:

// Code
UITextView * textView = [ [UITextView alloc] initWithFrame:CGRectMake(0, 150, _width, _height)];

// Exception
*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', 
    reason: 'CALayer bounds contains NaN: [0 0; nan 200]'


»Ну тут же и ежу понятно, что width — после вычисления — NaN!", — подумал я. Бегло поглядев где и как вычисляется ширина вьюхи, и не найдя ничего особого опасного, я, для утверждения своей догадки, поставил перед созданием вьюхи NSLog. А вдобавок, и точку останова на строке с созданием элемента.
// Source:
NSLog(@"width = %f", _width);

//Output:
width = 200


«Гм», — подумал про себя я, и продолжил выполнение программы после точки останова. И крэша не произошло…

Что было дальше? Читайте во второй части сразу под катом...

История реверс-инжиниринга одного SMS трояна для Android

Reading time20 min
Views63K
image
Все началось с жалоб одного моего доброго друга, по совместительству владельца устройства на Android. Он жаловался, что оператор постоянно снимает с него деньги неизвестно за что. После звонков оператору выяснилось, что средства снимали за премиум SMS, которые мой друг якобы отправлял. Я сам неоднократно нарывался в Интернетах на подозрительные сайты, которые предлагают скачать apk с игрой/программой/Live Wallpaper, при установке которого выясняется, что это всего лишь программа, которая отправляет SMS на премиум номера. Но в этом случае если нажал кнопку, то «сам дурак», потому что правила в таких программках явно говорят, что последует отправка SMS на платные номера, да и ссылки они в итоге предоставляют на реальные программы.

Так или иначе, ко мне закралось подозрение, что здесь ситуация тоже завязана на таком роде деятельности, и я взялся разобраться, куда же все-таки утекают денежки.
Читать дальше →

Подделываем вашу подпись при помощи шарнирного механизма. Теорема Кемпе

Reading time5 min
Views223K
В этом посте я расскажу про программу, которая подделывает любую подпись при помощи шарнирного механизма. Программа основана на теореме Кемпе, доказанной в середине 19-го века.

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

Электронная система управления подвеской горного велосипеда

Reading time10 min
Views258K
Уважаемое сообщество, представляю вашему вниманию отчет о проделанной работе по скрещиванию моих двух хобби: горный велосипед и микроэлектроника.

Итак, в этой статье речь пойдет об отечественной разработке электронной системы управления подвеской горного велосипеда. Не буду мучить длинным вступлением, сразу к фото и видео:


Подробностей о том чего удалось достичь. Видео и фото под катом.

Игра «Жизнь». Опять. На этот раз в 3D

Reading time5 min
Views44K
За последнюю неделю Хабр пополнился сразу несколькими статьями об игре «Жизнь». Что ж, тогда и я поделюсь своими наработками по этой теме.

Предисловие


Минувшим летом мне довелось побывать на летней школе по параллельному программированию, проводимой НГУ. В рамках школы каждый студент должен был подготовить какой-либо проект по одной из тематик, озвученных на лекциях. Меня заинтересовали клеточные автоматы. У меня первая ассоциация при фразе «клеточный автомат» это именно «Жизнь».
Я понимал, что никому не будет интересно наблюдать за черными клеточками, живущими на экране. Да и слишком просто это для такого проекта. Нужно было придумать что-то принципиально новое. Я решил расширить диапазон своих мыслей и выйти за пределы двухмерного пространства. В прямом смысле. Я подумал, а почему бы не сделать эту игру трехмерной? Ведь это гораздо интереснее!
Подробности под катом

«Он видел их семью своими глазами»

Reading time6 min
Views66K

Можешь выбрать подходящую к заголовку поста картинку?





Тогда научи робота! Он тоже хочет.


Команда проекта Открытый корпус просит хабралюдей помочь разметить свободно доступный (CC-BY-SA) корпус текстов. Под катом мы расскажем о том, что такое корпус, зачем он нужен, как обстоят дела с корпусами в России и за рубежом, почему так плохо и какой у нас план.

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

Опыт создания системы управления сборкой и тестированием

Reading time1 min
Views6K
14 июля при нашей поддержке прошел семинар SPB SQA Group — независимого сообщества тестировщиков Санкт-Петербурга.


Презентация и расшифровка

С докладом выступил ведущий инженер компании Петер-Сервис — Олег Ладыгин. В своем выступлении Олег рассказал о своем опыте создания системы управления.

Зачем нужна структура? Что обеспечивает логика ресурсного планирования? Какие должны быть требования к интерфейсу? На эти и многие другие вопросы ответил Олег в ходе своего выступления.

«Критическая цепь» Голдрата. Конспект книги

Reading time1 min
Views9.1K
Для того, чтобы познакомиться с общей идеей CCPM (Critical Chain Project Management), нужно обязательно прочесть книгу автора — Элияху Голдрата.
Она написана как художественное произведение, а не как учебник, и по-настоящему заставляет проникнуться идеей. Я попробовал сделать конспект книги в виде mindmap (щелкните на рисунок, чтобы увидеть полноразмерную карту).

Также вы можете ознакомиться с конспектом в формате mmap
Попробуйте его рассмотреть — поможет ли он вам понять основные мысли книги?

Оригинал данной записи опубликован в блоге «Управление проектами в картинках»

Метод критической цепи

Reading time10 min
Views59K

Метод критической цепи: эффективное управление проектами с использованием буферов времени и ресурсов


Работа стремится занять все время, отпущенное на нее.
Закон Паркинсона.
Если какая-нибудь неприятность может произойти, — она случается.
Закон Мерфи.

Немного статистики


Одной из причин выделения управления проектами в отдельную область знаний является неопределенность. То, как мы управляем неопределенностью в проекте (в том числе и рисками), напрямую влияет на длительность проекта, на его успех.
По данным многочисленных исследований Standish Group1 для традиционных методов управления проектами, только 44% проектов обычно завершаются вовремя. В среднем проекты занимают 222% процента от изначально запланированной длительности, 189% от начального бюджета. 70% проектов сокращают исходный объем работ проекта, 30% проектов закрываются досрочно.
И хотя в последнее время, с развитием инструментов и техник управления проектами, эти цифры стали уменьшаться, общая картина говорит о том, что мы как менеджеры проектов плохо делаем свою работу.
Данная статья рассматриваем использование относительно новый метод управления проектами, метод критических цепей (МКЦ), сравнивая его с традиционным подходом к управлению проектами.
Читать дальше →

Python-неизвестный

Reading time4 min
Views27K
На Хабре уже есть несколько статей\переводов, в которых рассказывается о неизвестных фичах\тонкостях\возможностях Пайтона. Я буду пытаться не повторять их, а дополнять, но если уж так случилось, что вы это уже где-то видели — не огорчайтесь. Я уверен, что найдется что-то интересное и для вас.
Читать дальше →

Объединяем twitter.com и vkontakte.ru

Reading time8 min
Views6.8K
Пользуетесь ли вы twitter’ом? Если ответом является «Да», то милости просим под кат, где будет рассказано про способ автоматического репостинга сообщений из twitter’а в статус сообщения на сайте vkontakte.ru используя python.
Мне интересно

Шаблоны проектов на основе PasteScript

Reading time3 min
Views1.6K
С увеличением количества проектов встала проблема автоматизации создания каркаса под новые приложения. До недавнего времени новые проекты мы создавали путем копирования заготовленного шаблонного проекта и изменения различных настроек в разных местах проекта. Само собой это убивало достаточно много времени.

Попытки решить эту проблему вывели меня на проект под названием Python Paste. В общих чертах — это набор утилит для создания веб-приложений, к примеру можно создать свой фреймворк (в Pylons используют именно его). Помимо утилит для веба Python Paste содержит модуль Paste Script, с помощью которого можно создавать шаблоны-заготовки и на основе них генерировать проекты.
Читать дальше →

Алгоритм: Как оформить баг на ядро Linux

Reading time4 min
Views2.3K
Мой опыт в разработке и отладке Parallels Virtuozzo Containers позволил обобщить и сформулировать список пожеланий к описанию проблемы пользователя, который позволяет существенно уменьшить время диагностирования и решения проблемы в ядре операционной системы Linux. Прошу отметить, что при всей очевидности некоторых рекомендаций многие участники open-source сообщества по-прежнему пренебрегают ими. Алгоритм представлен подкатом.
Читать дальше →

Каждому хостингу по аудиоплееру

Reading time2 min
Views6.1K
Хорошие художники копируют, великие художники воруют.
Стив Джобс
Пабло Пикассо

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

Автоконфигурация сетевых интерфейсов в Debian GNU/Linux

Reading time6 min
Views19K
Решил рассказать о вариантах решения достаточно часто встречающейся проблемы для обладателей мобильных устройств. Проблема заключается в том, что зачастую лаптопы подключаются к достаточно большому количеству разных сетей, в которых далеко не всегда есть DHCP-сервер, либо же DHCP-сервер «отдаёт» не все необходимые настройки, либо же отдаёт неверные.
Читать дальше →

Information

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