В свете недавних статей об обработке изображений я хотел бы немного рассказать об алгоритмах выделения контуров: методы Робертса, Превитта и Собеля (эти методы взяты для рассмотрения как самые известные и часто используемые).
Виктор Наумик @vicnaum
User
Apple Developers Community #3 — GameDev
2 min
5.9KВ Питере наконец-то заканчиваются лютые морозы и мы выходим из зимней спячки. Встречайте весну вместе с Apple Developers Community!

3 марта в 19:00, когда безошибочный (за 2 недели-то) гисметео обещает нам 0 на градуснике, мы встречаемся в новом месте, в самом сердце Санкт-Петербурга, чтобы послушать интересные доклады о разработке под iPhone и iPad, обменяться опытом, завести полезные контакты и просто хорошо провести время.
Третью встречу мы решили посветить таинствам разработки самых популярных приложенией в AppStore — играм.
А пока вы регистрируетесь, под катом я расскажу подробнее о докладах.

3 марта в 19:00, когда безошибочный (за 2 недели-то) гисметео обещает нам 0 на градуснике, мы встречаемся в новом месте, в самом сердце Санкт-Петербурга, чтобы послушать интересные доклады о разработке под iPhone и iPad, обменяться опытом, завести полезные контакты и просто хорошо провести время.
Третью встречу мы решили посветить таинствам разработки самых популярных приложенией в AppStore — играм.
А пока вы регистрируетесь, под катом я расскажу подробнее о докладах.
+12
Google может убрать адресную строку в Chrome
4 min
21KTranslation
Google работает над «основным» тщательным пересмотром пользовательского интерфейса (UI), своего браузера Chrome. Cреди возможных вариантов изменений, является исключение адресной строки (URL bar), которое может быть наиболее значительным изменением в пользовательский интерфейсе веб-браузера с момента его изобретения. Другая особенность, которая, кажется, уже одобрена является поддержка нескольких профилей пользователей, которые могут использоваться параллельно.
Браузер Chrome, а также интерфейс Chrome OS могут постигнуть некоторые большие изменения в ближайшем будущем. Гуглер Джеф Чанг (Jeff Chang ) сказал, что разработчики Chrome предпринимают «ряд UI/frontend» изменений по этому поводу. Он намерен предоставлять еженедельные сводки о ходе работы, «пригодных для общественного потребления.»
Браузер Chrome, а также интерфейс Chrome OS могут постигнуть некоторые большие изменения в ближайшем будущем. Гуглер Джеф Чанг (Jeff Chang ) сказал, что разработчики Chrome предпринимают «ряд UI/frontend» изменений по этому поводу. Он намерен предоставлять еженедельные сводки о ходе работы, «пригодных для общественного потребления.»
+49
О структурном программировании
2 min
15KМногие в комментариях к посту об операторе goto высказывали одно и то же мнение, которое звучит примерно так: «За n лет написания программ мне ни разу не понадобился goto, и использовать его в будущем я тоже не собираюсь». И они абсолютно правы, уже давно доказана теорема о структурировании, в которой говорится, что любая простая программа функционально эквивалентна структурированной программе составленной с использованием функций и предикатов исходной программы, а также с использованием дополнительного счетчика. Доказательством является алгоритм составления той самой структурированной программы:
- пронумеровать все узлы схемы, при этом порядок обхода произвольный;
- пронумеровать все дуги схемы следующим образом: выходной дуге схемы припишем номер 0, всем остальным дугам присвоим номер вершины, в которую данная дуга входит;
- для каждого функционального узла исходной программы, имеющего номер i и выходную дугу j, составить новую простую последовательную программу Gi с номером входной дуги i
- для каждого предикатного узла с номером i составить новую простую программу
- построить программу типа while do с do-частью в виде структры, проверяющей значения L.
+67
Одежда для принцессы
3 min
4.9KКак законы физики помогли создать наряд для новой звезды Диснея.


+111
Детектирование округлостей на изображении (на примере микрофотографий)
3 min
18KВсем привет! По своей профессии (строго говоря- будущей профессии) я вообще-то химик. Относительно недавно появилась интересная работа и объявилась необходимость много работать с цифровым микроскопом, делать большое количество фотографий и определённым образом их обрабатывать. А именно: находить линейные размеры частиц (чаще круглой формы и изначально- на глаз) и скрупулёзно заносить их в лабораторный журнал.
Неудивительно, что после первой же сотни изображений я крепко задумался о хоть какой-нибудь автоматизации этого процесса, но была одна загвоздка: я прекрасно знал, что «объектно-ориентированное программирование — это очень хорошо», но… Но я на тот момент владел только школьным TurboPascal, университетским VB и быдлокодингом на PHP в процедурном варианте. Потыкавшись по форумам, и учтя факт, что за день я успеваю поработать как минимум на двух ОС (Mac/Windows/Ubuntu существуют в эйфорическом симбиозе), я особо не задумывался и решил писать на Java.
Опуская подробности примерно недельной, в свободное от работы время, долбёжки своей головы об объектно-ориентированную парадигму программирования и бессонных ночей с мыслями наподобие «да как же, блин, это работает», я постараюсь максимально вкратце рассказать о том простом и быстром «алгоритме», который у меня родился. Стоит сразу сказать, что он годится только для достаточно четких изображений.
А вот, кстати, и типичный представитель (вернее, его примерно десятая часть), которого нужно обработать:

Неудивительно, что после первой же сотни изображений я крепко задумался о хоть какой-нибудь автоматизации этого процесса, но была одна загвоздка: я прекрасно знал, что «объектно-ориентированное программирование — это очень хорошо», но… Но я на тот момент владел только школьным TurboPascal, университетским VB и быдлокодингом на PHP в процедурном варианте. Потыкавшись по форумам, и учтя факт, что за день я успеваю поработать как минимум на двух ОС (Mac/Windows/Ubuntu существуют в эйфорическом симбиозе), я особо не задумывался и решил писать на Java.
Опуская подробности примерно недельной, в свободное от работы время, долбёжки своей головы об объектно-ориентированную парадигму программирования и бессонных ночей с мыслями наподобие «да как же, блин, это работает», я постараюсь максимально вкратце рассказать о том простом и быстром «алгоритме», который у меня родился. Стоит сразу сказать, что он годится только для достаточно четких изображений.
А вот, кстати, и типичный представитель (вернее, его примерно десятая часть), которого нужно обработать:

+94
Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать
20 min
317K
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?
Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.
Клиенту неважно насколько красив ваш код, но ему важен результат. Качественный код нужен фирме, т.к. он надёжней и в будущем его будет легче поддерживать.
Требования должны были быть такие, что соблюсти их легче, создавая качественную вёрстку, а не говнокод. Я составлял такой чек-лист в течении полутора лет. За последние полгода в него не добавилось ничего. Значит самое главное учтено.
Итак что же это за список?
Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.
История обновлений:
- 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
- 2015/08/10: актуализирован список исключений для CSSLint
- 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
- 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
- 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
- 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
- 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
- 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
- 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
- 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.
+301
Любовь и секс в поисковых запросах или «Не хочу учиться, хочу жениться!»
3 min
26KВ рамках пятничного фана мы решили рассказать вам о нашем поисковом исследовании ко дню всех влюбленных. Нам стало интересно, что же наши пользователи думают о любви. Мы вооружились методикой анализа долгосрочных логов, о которой мы рассказывали месяц назад и выяснили, например, что пикап приводит к свадьбе на 30% быстрее, чем классические знакомства. А еще нам удалось посчитать, сколько людей женятся «по обстоятельствам», а сколько – по любви. Или какие шансы, что ваш курортный роман закончится серьезными отношениями. Или стоит ли идти с девушкой в театр сразу после знакомства.
+69
Впечатления от общения с людьми-роботами
4 min
2K
Нередко в жизни бывает, что когда пытаешься решить какой-то вопрос, то попадаешь на людей-роботов и добиться того, что тебе нужно, практически не получается. Понятно, что «успешность» человека определяется как раз тем, умеет ли он даже в таких ситуациях получать, что ему нужно или нет. Но, тем не менее, проблема с людьми-роботами скорее всего реально существует. Под катом пара наблюдений натуралиста за роботами в их естественной среде обитания. Думаю, читатель легко сможет вспомнить свои аналогичные примеры.
Я опишу два свежих примера, относящиеся к общению с такими людьми из компаний «Parasoft» и «Лаборатория Касперского». Цель поста не пожаловаться на мир, как кому-то может показаться, а привлечь внимание к проблемам, когда из-за того, что на определенной должности находится человек-робот, какие-то вопросы не решаются. Причем я думаю из-за этого нередко теряет не только клиент/покупатель/пользователь, но и та сторона, которую представляет человек-робот в качестве интерфейса.
+35
Китайцы — они такие китайцы
10 min
63KСей пост навеян неожиданным для меня интересом хабранаселения к посту уважаемого Milfgard из Мосигры про производство в Китае. Дело в том, что один из моих интересов как раз в производстве батарей – Denaq. И производство расположено ну конечно же в Китае. Я не стану рассказывать про организацию производства, там свои замечательные фокусы есть. Я расскажу именно про заказ чего-то под себя и покупку всякого опта. Что-то вроде алгоритма украшенного реальными историями из личного опыта. Это все будет про электронику, так как я сам именно ею занимаюсь. Истории и иллюстрации я буду выделять курсивом. Кому скучно читать общие выводы – читайте только их.
+294
Оценка вредоносности файлов с помощью песочниц: Часть 1. Онлайн-сервисы
6 min
33KВ практике исследования исполняемых файлов с возможным вредоносным функционалом имеется богатый арсенал инструментария — от статического анализа с дизассемблированием до динамического анализа с отладчиками. В настоящем обзоре я не буду пытаться дать информацию по всем возможным приёмам, поскольку они требуют некоторых специфических знаний, однако я хотел бы вооружить неискушённого пользователя набором приёмов, которые позволяют довольно быстро провести анализ неизвестного файла.
Итак, ситуация: у нас есть странный файл с подозрением на вредоносность, при этом существующий мультисканеры типа VirusTotal не дают никакой информации. Что же делать?
Итак, ситуация: у нас есть странный файл с подозрением на вредоносность, при этом существующий мультисканеры типа VirusTotal не дают никакой информации. Что же делать?
+83
Защита идеи: типичные заблуждения
3 min
12KУважаемый Хабрахабр вновь обсуждает, нужно ли защищать идеи и как это делать. RMA решила предоставить слово профессиональному юристу и преподавателю программы «Менеджмент в сфере интернет-технологий» Павлу Шинкаренко. Под катом — разбор нескольких «граблей», на которые многие почему-то натыкаются.
+19
Как воруют данные с банкомата
2 min
21KОдним февральским днём, пользователь славного банкомата славного американского Bank of America в Калифорнии обнаружил странное серебристое устройство из оргстекла, приделанное к слоту приёма карт. Устройство напоминало специальную заглушку от воровства карт.
Однако наш герой не растерялся и обратился в банк, в результате чего было обнаружено ещё одно устройство: камера, работающая от батареек и включаемая датчиком движения. Эта камера была спрятана в специальную коробку и прикреплена к углу банкомата в месте, где можно удобно наблюдать за вводимым ПИН-кодом.
Однако наш герой не растерялся и обратился в банк, в результате чего было обнаружено ещё одно устройство: камера, работающая от батареек и включаемая датчиком движения. Эта камера была спрятана в специальную коробку и прикреплена к углу банкомата в месте, где можно удобно наблюдать за вводимым ПИН-кодом.
+53
Учимся правильно бенчмаркать 2: как компилятор бьет в спину
5 min
1.7KПолучить годные цифры бенчмарка это полдела, однако вторая половина их правильно интерпретировать, узнать что-то новое, и суметь применить. 100x отличия промеж дебажным и нормальным билдом удивили, решил копнуть глубже. По итогам получше узнал, что происходит в дебаге; поискал отличия между 2005 и 2008 студией (не нашел); выяснил, как ускорить дебажный билд в 3 раза за пару минут (ставим блок против удара в спину); методом «взять и запустить» получил результаты, отличающиеся от авторских в 3.5 раза (адская сила x64 в действии!); и для смеха замерил плохой, негодный недовектор против хорошего (плохой оказался до 100 раз быстрее). Подробности под катом.
+72
Китай: как заказывать производство или поставку
7 min
188K
В топике — основы аутсорсинга производства в Китай:
- Как выбрать производителя и сделать заказ
- Как убедиться, что сделают именно то, что вам нужно
- Про предоплату, документы, гарантии
- Как наиболее выгодно доставить
- Что делать с потерянными поставками
- Грабли в ассортименте
Да, если же вы уже заказывали в Китае, то ничего шокирующе-нового в топике вы не найдёте (и, может быть, порадуетесь за то, как нас красиво однажды развели).
+202
100 пользователей действительно генерируют 75% трафика в P2P-сетях
2 min
1.6KПримерно месяц назад было опубликовано странное исследование, из которого следовало что 100 самых активных пользователей генерируют 66% всех загрузок и 75% всех скачиваний с торрентов, причём делают это ради финансовой выгоды.
Естественно, такое исследование вызвало массу вопросов, так что его авторов нашли и допросили, то есть взяли интервью. Оказывается, это не какое-то бредовое исследование, а серьёзный научный проект, над которым уже полгода работают учёные из Испании, Германии и США. Они проанализировали 50 000 торрентов с трекеров Pirate Bay и Mininova.
Естественно, такое исследование вызвало массу вопросов, так что его авторов нашли и допросили, то есть взяли интервью. Оказывается, это не какое-то бредовое исследование, а серьёзный научный проект, над которым уже полгода работают учёные из Испании, Германии и США. Они проанализировали 50 000 торрентов с трекеров Pirate Bay и Mininova.
+36
Изоляция служб в Windows
5 min
42KКак известно, службы Windows представляют собой одно из наиболее излюбленных мест для атак на операционную систему. В худшем (для нас, конечно) случае атакующий получает возможность действовать на атакованном компьютере в контексте учетной записи, от имени которой запущена взломанная служба. И если эта учетная запись обладает административными правами, то фактически злоумышленник получает полный контроль над компьютером. От версии к версии в Windows появляются новые механизмы, обеспечивающие дополнительную изоляцию служб и, как следствие, усиливающие безопасность системы в целом. Я хотел бы вкратце рассмотреть, что принципиально изменилось в этом направлении за последние несколько лет.
+48
2 заброшенных проекта
2 min
746
Крыс — персонаж для музыкальной энциклопедии.
В этом посте я расскажу о двух проектах, которые так и не были запущены мной в прошлом году, а вы можете позаимствовать идеи или просто вновь вспомнить об одних популярных граблях.
+40
MindDecider. Сколько стоит ваше решение?
3 min
2K
Ситуация
Принятие решений
Ежедневно каждый из нас принимает решения. Принятие решений — это один из важнейших видов деятельности человеческого мозга и большая проблема на пути создания искусственного интеллекта.
Решение – это процесс и результат выбора цели и способа действий. У решения можно выделить:
- Стоимость (затраты) решения — негативные факторы, связанные с решением.
- Выгода (выгодность, прибыль) решения — соответственно, позитивные факторы, связанные с решением.
- Цена решения — соотношение стоимости и выгоды, при которых решение принимается.
+16
«Атака на банк-клиент...». Взгляд со стороны работника банка
8 min
17KМеня очень заинтересовала статья Атака на банк-клиент или Охота на миллион в связи с тем, что я явлюсь непосредственным участником процесса дистанционного банковского обслуживания (далее — ДБО) со стороны банка. Чуть позже появилась статья Кому я нужен?, поэтому мыслей на эту тему накопилось очень много и хочется поделиться со всеми (а еще я давно хотел зарегистрироваться, но подходящего момента не было). По возможности буду краток и не буду сыпать научными терминами.
+175
Information
- Rating
- Does not participate
- Location
- Беларусь
- Date of birth
- Registered
- Activity