Преобразование Хафа — это метод обнаружения прямых и кривых линий на полутоновых или цветных изображениях. Метод позволяет указать параметры семейства кривых и обеспечивает поиск на изображении множества кривых заданного семейства. Мы рассмотрим его применение для поиска на изображении прямолинейных отрезков и дуг окружностей.
@Mirowindread-only
User
Язык Go с точки зрения PHP-разработчика
4 min
18K
Лично я решил посмотреть, что это за язык после того, как тут опубликовали вот это видео выступления Роба Пайка. Я изучаю Go не очень долго, но даже за те две недели, что я потратил на его изучение, я успел сделать несколько проектов на нём, например backend для библиотеки JsHttpRequest (JsHttpRequest; мой backend на Go). Я до сих пор использую JsHttpRequest из-за её удобства (как со стороны JS, так и со стороны PHP). В статье я хочу рассказать исключительно о моих ощущениях после программирования на PHP и JavaScript, практически без примеров кода.
+23
Как сделать облачный (кластерный) хостинг за пару копеек*
3 min
6.4KТри года назад у меня была интересная задача. Необходимо было собрать платформу, объединявшую несколько стоек с серверами в единое целое, для динамического распределения ресурсов между сайтами написанным для LAMP платформы. Причем так, чтоб вмешательство в код сайтов было минимальным, а еще лучше — вообще отсутствовало.
При этом никаких дорогих решений вроде Cisco Content Switch или дисковой полки с оптоволокном использовать нельзя — не хватало бюджета.
А кроме того, разумеется, в случае выхода одного из серверов из строя — это не должно было влиять на работу платформы.
При этом никаких дорогих решений вроде Cisco Content Switch или дисковой полки с оптоволокном использовать нельзя — не хватало бюджета.
А кроме того, разумеется, в случае выхода одного из серверов из строя — это не должно было влиять на работу платформы.
+44
Эскалация привилегий в десктопном линуксе: Получение рутового доступа из GUI-приложений
4 min
2.2KПару месяцев назад Rafal Wojtczuk придумал серьёзный эксплойт, позволяющий получить права суперюзера из непривилегированного процесса, имеющего доступ к X-серверу (то есть, из GUI-приложения, работающего под обычным пользователем). Другими словами, любая GUI-программа (например, читалка PDF-файлов), если она скомпроментирована (например, специально подготовленным PDF-файлом), может пробить все барьеры защиты на пути к полному обладанию компьютером. Не спасает даже песочница SElinux (SElinux «sandbox -X»). И проблема существует много лет — по-видимому, с первых версий ядра 2.6.
Обзор этой уязвимости вышел 17 августа в [2], и я хочу о ней рассказать местами в упрощённой, местами в развёрнутой форме.
Обзор этой уязвимости вышел 17 августа в [2], и я хочу о ней рассказать местами в упрощённой, местами в развёрнутой форме.
Как это работает
+85
Пишем свою ОС: Выпуск 1
6 min
280KДанный цикл статей посвящён низкоуровневому программированию, то есть архитектуре компьютера, устройству операционных систем, программированию на языке ассемблера и смежным областям. Пока что написанием занимаются два хабраюзера — iley и pehat. Для многих старшеклассников, студентов, да и профессиональных программистов эти темы оказываются весьма сложными при обучении. Существует много литературы и курсов, посвящённых низкоуровневому программированию, но по ним сложно составить полную и всеохватывающую картину. Сложно, прочитав одну-две книги по ассемблеру и операционным системам, хотя бы в общих чертах представить, как же на самом деле работает эта сложная система из железа, кремния и множества программ — компьютер.
Каждый решает проблему обучения по-своему. Кто-то читает много литературы, кто-то старается поскорее перейти к практике и разбираться по ходу дела, кто-то пытается объяснять друзьям всё, что сам изучает. А мы решили совместить эти подходы. Итак, в этом курсе статей мы будем шаг за шагом демонстрировать, как пишется простая операционная система. Статьи будут носить обзорный характер, то есть в них не будет исчерпывающих теоретических сведений, однако мы будем всегда стараться предоставить ссылки на хорошие теоретические материалы и ответить на все возникающие вопросы. Чёткого плана у нас нет, так что многие важные решения будут приниматься по ходу дела, с учётом ваших отзывов.
Каждый решает проблему обучения по-своему. Кто-то читает много литературы, кто-то старается поскорее перейти к практике и разбираться по ходу дела, кто-то пытается объяснять друзьям всё, что сам изучает. А мы решили совместить эти подходы. Итак, в этом курсе статей мы будем шаг за шагом демонстрировать, как пишется простая операционная система. Статьи будут носить обзорный характер, то есть в них не будет исчерпывающих теоретических сведений, однако мы будем всегда стараться предоставить ссылки на хорошие теоретические материалы и ответить на все возникающие вопросы. Чёткого плана у нас нет, так что многие важные решения будут приниматься по ходу дела, с учётом ваших отзывов.
+270
Неприступный почтовый сервер, или жизнь без спама
11 min
201K
Чаще всего встречается подход «добавим кучу RBL (DNSBL) и будем радоваться жизни». Подход не верный чуть более, чем полностью. Второй по популярности — контент-фильтры, зачастую купленные за бешеные деньги. Такой подход тоже в большинстве случаев совершенно неоправдан.
А ведь всё так просто, для спокойной жизни достаточно всего лишь пристально присматриваться к трём заголовкам входящей SMTP сессии. Порывшись на Хабре и в закоулках интернета так и не нашёл исчерпывающей статьи на тему правильной настройки SMTP сервера с точки зрения противодействия спаму. Поэтому решил расписать всё, что знаю на эту тему сам и чем успешно пользуюсь.
Кстати: эта статья конечно ориентирована в первую очередь на администраторов, желающих сделать качественный фильтр спама. Однако с другой стороны она содержит очень важные сведения для тех, кому приходится просто работать с почтой, но кто плохо разбирается во всех тонкостях процесса электронной пересылки корреспонденции.
Итак, если вы хотите обезопасить своих пользователей от спама или наоборот, хотите чтобы кто-то случайно не обезопасил пользователей от ваших писем — добро пожаловать под кат.

+122
Распознавание цифр с помощью простейшей статистики и анализа топологии
2 min
25KДело было на третьем курсе, появился у нас предмет ИИС (интеллектуальные информационные системы). Так как я давно интересовался распознаванием образов, удалось выпросить тему «распознавание рукописных цифр». Я решил не возиться с нейронными сетями и придумать что-то свое, простое, но достаточно эффективное.
+65
Опубликовано доказательство P ≠ NP?
1 min
22KVinay Deolalikar разослал некоторым ученым свое доказательство, что класс сложности P ≠ NP.
Само доказательство на ~100 страницах.
Можно почитать более или менее адекватный комментарий на ycombinator.
Добавить нечего, читаем и/или ждем мнений специалистов в этой области.
P.S. На всякий случай, ссылка о том, что такое NP и P. (спасибо, SMiX)
Само доказательство на ~100 страницах.
Можно почитать более или менее адекватный комментарий на ycombinator.
Добавить нечего, читаем и/или ждем мнений специалистов в этой области.
P.S. На всякий случай, ссылка о том, что такое NP и P. (спасибо, SMiX)
+277
Целебное зелье для IE5+ или IE7.js
2 min
7.1KРазбирая код очередного проекта внутри тега
Только одно слово «IE9» меня пустило в замешательство. Первое что пришло мне в голову — это то, что при помощи этого .js кода браузеры под печальным клеймом Internet Explorer можно заставить работать используя свойства многообещающего IE9. Больше всего я ожидал что будут доступны свойства CSS3.0, но не тут-то было!
head
наткнулся на интересный код:<!--[if lt IE 9]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta3)/IE9.js"></script>
<![endif]-->
Только одно слово «IE9» меня пустило в замешательство. Первое что пришло мне в голову — это то, что при помощи этого .js кода браузеры под печальным клеймом Internet Explorer можно заставить работать используя свойства многообещающего IE9. Больше всего я ожидал что будут доступны свойства CSS3.0, но не тут-то было!
+92
LNKpokalipsis или новая багофича от MS (CVE-2010-2568)
2 min
5.4KНа хабре уже писали о Win32/Stuxnet и раскрывшейся вместе с ним уязвимостью. Но самой уязвимости уделяется почему то мало внимания, в основном весь шум вокруг Win32/Stuxnet и использованных валидных сертификатов для подписи компонентов этого зловреда. А тем временем эта уязвимость уже появилась в публичном доступе. Сначала в виде PoC, а потом и в виде модуля для Metasploit. MS, как в прочем и обычно, пофиг на критичность этой уязвимости и она вероятнее всего выпустит патч не раньше 10 августа. А для WinXP SP2 патча вообще не будет, хотя как не странно на ней еще есть пользователи и их не так мало, как хотелось бы. Подтверждение тому распределение угрозы по оконным версиям от Symantec, где именно WinXP SP2 имеет большую долю зафиксированных инцидентов.

В качеcтве векторов использования этой уязвимости могут быть не только USB-накопитили, но и сетевые ресурсы. Например, в Metasploit эксплуатация происходит через WebDAV.

В качеcтве векторов использования этой уязвимости могут быть не только USB-накопитили, но и сетевые ресурсы. Например, в Metasploit эксплуатация происходит через WebDAV.
+30
Высшее образование
4 min
15K
Объявление: Требуется сотрудник технической поддержки. Обязанности: ответы на звонки клиентов, помощь в погрузо-разгрузочных работах. Требование: высшее образование, опыт работы от 5 лет на аналогичной должности.
Немного утрирую. Но что значит высшее образование в применении к IT? Безусловно, выпускник MIT или Berkley со специализацией в Computer Science — это реально круто.
… но мы же про Россию, да? Менеджер по продажам с дипломом по морской навигации, финансовый директор с диссертацией по органической химии, лингвист-сисадмин…
Впрочем, нет, не лингвист. Прикладная математика и физика. Кафедра гидрогазодинамики. Уравнение Навье-Стокса, эпюры перерезывающих сил… Это очень важная информация, когда мы начинаем обсуждать особенности работы ядра гостевой системы в паравиртулизированной среде. Ну или, хотя бы, ковыряться в питоновском коде, развлекаясь с фрагментами функционального программирования.
Зачем айтишнику высшее образование? Зачем айтишнику какое-нибудь высшее образование (т.е. зачем галочка «есть хоть какое-то в/о»)?
Я слышал несколько аргументов, и ни один из них меня не устроил.
Итак, аргументы от адвоката дьявола:
+141
Проверка счета Киевстар модема в Linux
2 min
6KНавеяно этим топиком. Однажды у меня случился переезд и на новом месте проживания и мне потребовался срочно интернет. Насмотревшись рекламы Киевстара модем за 199 грн, я приобрел данный набор. Настройка в Ubuntu через NetworkManager не потребовало никаких усилий. Но мне не хватало проверки денег на счету (не через браузер). Представляю вам скрипт, который мне помог это решить.
+25
2000 часов в одиночестве, или как был сделан RSS reader / Я робокоп
14 min
6.7K
Собираюсь поделиться с вами технической стороной того, как я за 16 недель сделал новый вебовый rss ридер, и чуть не сошел с ума.
Отходя от долгой предыстории, будем считать, что все началось в феврале этого года, когда мы с Дэвидом (dmiloshev, UI-дизайнер) решили сделать прототип нашего детища вдвоем.
«В одиночестве» — потому, что не было никаких скрамов, совещаний, «коллективного разума», а всю техническую часть, довелось делать самому.
Если бы меня попросили описать всю статью в одном предложении, то получилось бы:
No-SQL, mongodb, node.js, фак мой мозг, Evented I/O, очереди, выводы, git, nginx, memcached, Google Reader, Atom, TTL, PHP, ZF, jQuery, выводы.
+204
Доменные имена как инструмент Competitive Intelligence
3 min
1.7KКонкурентная разведка… Один из ключевых инструментов современного бизнеса, даже если сам бизнес заключается в банальном вендинге семян подсолнечника около ближайшего супермаркета. И если в оффлайне сбор таких данных может граничить с законностью и моралью, то в online все гибче и многограннее. В качестве примера небольшой кейс:
MyBrute — игра формата Zero Player Game отнявшая у Рунета немало времени в апреле-мае 2009 г. Принесший «инфекцию» с Лепры nafigator надолго закрепился в топе игроков, прославив Хабр на этой мировой ярмарке тщеславия. Можно много рассуждать о причинах взрывной популярности игры, защитить диссертацию по теме или написать пару статей. Мой пост о другом — о доменных именах…

+29
Снова про формы: значения по умолчанию
3 min
11KjQuery дает практически безграничные возможности по обогащению пользовательского интерфейса, а самое интересное зачастую связано с элементами управления на страницах, в частности с формами.
Современные интерфейсы часто стремятся к минимализму. При изяществе дизайна, вэб-технологи стремятся к изяществу решений, принимаемых в процессе реализации. Я часто занимаюсь разработкой интерфейсов, версткой и клиентским программированием — и постоянно ищу новые решения для старых задач.
В статье речь пойдет о значениях в полях формы по умолчанию, когда название поля является его изначальным содержимым. А также об изящном решении этой задачи на практике.
Современные интерфейсы часто стремятся к минимализму. При изяществе дизайна, вэб-технологи стремятся к изяществу решений, принимаемых в процессе реализации. Я часто занимаюсь разработкой интерфейсов, версткой и клиентским программированием — и постоянно ищу новые решения для старых задач.
В статье речь пойдет о значениях в полях формы по умолчанию, когда название поля является его изначальным содержимым. А также об изящном решении этой задачи на практике.
+35
Начало закрытого тестирования облака
1 min
6.6KСеть дата-центров Selectel объявляет о начале первичного тестирования вычислительного облака (IaaS) на базе Xen Cloud Platform.
Это облако позволит предоставить клиентам возможность работы в виртуальной машине без искусственных ограничений производительности, с оплатой по фактически потреблённым ресурсам.
Конечная наша цель — реализовать «идеальное облако», о котором на хабре писали чуть ранее.
Для обеспечения высокого качества сервиса во время штатной эксплуатации мы планируем подробное тестирование при различных типах нагрузки, включая реальную.
Своими силами мы не сможем обеспечить всё многообразие нагрузок, потому мы предлагаем всем желающим принять участие в тестировании. Для вас это возможность бесплатно посмотреть как выглядят облака изнутри, потестировать ваши проекты и посмотреть, какие ресусры они на самом деле потребляют.
В настоящий момент мы поддерживаем два дистрибьютива Linux: Debian и CentOS, поддержка других операционных систем в работе (включая Windows Server).
Тестирование закрытое, для участия в нём нужно заполнить анкету на сайте. Тестирование будет производиться на ограниченном по размеру облаке, и мы хотим найти наиболее интересные примеры эксплуатации, так что к тестированию мы сможем принять не всех. По окончанию тестирования мы попросим вас дать развёрнутую оценку. Те, кто существенно помогут нам (заполнением анкеты, багрепортами, предложениями) получат плюшки. Какие — пока сами не знаем, уточним в процессе.
Это облако позволит предоставить клиентам возможность работы в виртуальной машине без искусственных ограничений производительности, с оплатой по фактически потреблённым ресурсам.
Конечная наша цель — реализовать «идеальное облако», о котором на хабре писали чуть ранее.
Для обеспечения высокого качества сервиса во время штатной эксплуатации мы планируем подробное тестирование при различных типах нагрузки, включая реальную.
Своими силами мы не сможем обеспечить всё многообразие нагрузок, потому мы предлагаем всем желающим принять участие в тестировании. Для вас это возможность бесплатно посмотреть как выглядят облака изнутри, потестировать ваши проекты и посмотреть, какие ресусры они на самом деле потребляют.
В настоящий момент мы поддерживаем два дистрибьютива Linux: Debian и CentOS, поддержка других операционных систем в работе (включая Windows Server).
Тестирование закрытое, для участия в нём нужно заполнить анкету на сайте. Тестирование будет производиться на ограниченном по размеру облаке, и мы хотим найти наиболее интересные примеры эксплуатации, так что к тестированию мы сможем принять не всех. По окончанию тестирования мы попросим вас дать развёрнутую оценку. Те, кто существенно помогут нам (заполнением анкеты, багрепортами, предложениями) получат плюшки. Какие — пока сами не знаем, уточним в процессе.
+14
Переводим раздачу контента на BitTorrent
5 min
6.2KПод катом описан пример перевода файловых серверов на BitTorrent.
+59
Facebook начал использовать BitTorrent
2 min
1KBitTorrent — это идеальный способ передать много информации, тысячам получателей, в сжатые сроки. Это относится не только к фильмам и музыке, которые скачивает среднестатистический пользователь BitTorrent, компании тоже могут использовать эту технологию себе во благо! С помощью BitTorrent, Facebook сможет передавать сотни мегабайт нового кода всем серверам по всему миру в течение минуты, вместо нескольких часов.
Крупные веб-проекты нуждаются в тысячах серверов, чтобы справиться с активностью миллионов пользователей. Обновить все сервера — это довольно трудоёмкое занятие, которое может отнять очень много времени.
Tom Cook: “BitTorrent шикарен, он воистину великолепен. Эта технология сильно облегчила нам жизнь."
Крупные веб-проекты нуждаются в тысячах серверов, чтобы справиться с активностью миллионов пользователей. Обновить все сервера — это довольно трудоёмкое занятие, которое может отнять очень много времени.
Tom Cook: “BitTorrent шикарен, он воистину великолепен. Эта технология сильно облегчила нам жизнь."
+60
Домашний linux сервер своими руками
5 min
191KХочется поделиться с хабросооществом информацией о том как я собирал домашний сервер.

Из софта на домашнем сервере будет «крутиться» следующий набор:

Из софта на домашнем сервере будет «крутиться» следующий набор:
- torrent клиент с web-мордой
- DHCP — раздаем ip адреса и сетевые настройки
- TFTP — для сетевой загрузки
- OpenVPN — для хождения в сеть с нетбука из недоверенных сетей
- FTP/Samba/NFS — сетевые шары для доступа с домашних машин
- Radius — для WPA2 авторизации
- DigiTemp — мониторинг домашней температуры
+77
20 терабайт своими руками
5 min
50KНе столь давно в ЖЖ одна компания киношная спросила, как-бы так хитро им сделать 20 терабайт сетевого хранилища, а то ролики не влезают…
На что им народ насоветовал какие-то супер-пупер профессиональные решения на сотни тысяч рублей, что, конечно, круто, но…
Я-же со своей стороны — дал раскладку по тому сервачку, который сделал для себя сам года три назад и успешно его юзаю…
Сервер содержит 11 жёстких дисков, из которых один — загрузочный и 10 — файлопомойка.
Как не сложно посчитать, 10 дисков по 2 терабайта — дадут искомые 20 терабайт!
Как этого достичь?
Сейчас расскажу!
ПыСы Это перенос моей статьи из Песочницы. С момента её написания выяснил пару «весёлых» вещей, которые тут и были добавлены.
ПыПыСы Это именно самодеятельное решение по запихиванию такой оравы дисков в один комп.
Надёжность реализуется исходя из того, что при ТАКОМ числе дисков — можно часть поставить в RAID, а при необходимости — легко и непринуждённо заменить вылетевший!
На что им народ насоветовал какие-то супер-пупер профессиональные решения на сотни тысяч рублей, что, конечно, круто, но…
Я-же со своей стороны — дал раскладку по тому сервачку, который сделал для себя сам года три назад и успешно его юзаю…
Сервер содержит 11 жёстких дисков, из которых один — загрузочный и 10 — файлопомойка.
Как не сложно посчитать, 10 дисков по 2 терабайта — дадут искомые 20 терабайт!
Как этого достичь?
Сейчас расскажу!
ПыСы Это перенос моей статьи из Песочницы. С момента её написания выяснил пару «весёлых» вещей, которые тут и были добавлены.
ПыПыСы Это именно самодеятельное решение по запихиванию такой оравы дисков в один комп.
Надёжность реализуется исходя из того, что при ТАКОМ числе дисков — можно часть поставить в RAID, а при необходимости — легко и непринуждённо заменить вылетевший!
+140
Information
- Rating
- Does not participate
- Registered
- Activity