Pull to refresh
45
@Mirowindread⁠-⁠only

User

Send message

Алгоритм Хафа для обнаружения произвольных кривых на изображениях

Reading time4 min
Views48K
Преобразование Хафа — это метод обнаружения прямых и кривых линий на полутоновых или цветных изображениях. Метод позволяет указать параметры семейства кривых и обеспечивает поиск на изображении множества кривых заданного семейства. Мы рассмотрим его применение для поиска на изображении прямолинейных отрезков и дуг окружностей.

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

Язык Go с точки зрения PHP-разработчика

Reading time4 min
Views18K
Go — это язык, придуманный Робертом Гризмером (Robert Griesemer), Робом Пайком и Кеном Томпсоном, который был анонсирован в ноябре 2009 с версиями под Linux и Mac OS X. Сейчас разработчики работают в Google, но и задолго до этого были очень известными и уважаемыми людьми (к примеру, кодировка UTF-8 была изобретена Томпсоном и Пайком для использования в качестве основной кодировки в Plan 9).

Лично я решил посмотреть, что это за язык после того, как тут опубликовали вот это видео выступления Роба Пайка. Я изучаю Go не очень долго, но даже за те две недели, что я потратил на его изучение, я успел сделать несколько проектов на нём, например backend для библиотеки JsHttpRequest (JsHttpRequest; мой backend на Go). Я до сих пор использую JsHttpRequest из-за её удобства (как со стороны JS, так и со стороны PHP). В статье я хочу рассказать исключительно о моих ощущениях после программирования на PHP и JavaScript, практически без примеров кода.
Читать дальше →

Как сделать облачный (кластерный) хостинг за пару копеек*

Reading time3 min
Views6.4K
Три года назад у меня была интересная задача. Необходимо было собрать платформу, объединявшую несколько стоек с серверами в единое целое, для динамического распределения ресурсов между сайтами написанным для LAMP платформы. Причем так, чтоб вмешательство в код сайтов было минимальным, а еще лучше — вообще отсутствовало.
При этом никаких дорогих решений вроде Cisco Content Switch или дисковой полки с оптоволокном использовать нельзя — не хватало бюджета.
А кроме того, разумеется, в случае выхода одного из серверов из строя — это не должно было влиять на работу платформы.
Читать дальше →

Эскалация привилегий в десктопном линуксе: Получение рутового доступа из GUI-приложений

Reading time4 min
Views2.2K
Пару месяцев назад Rafal Wojtczuk придумал серьёзный эксплойт, позволяющий получить права суперюзера из непривилегированного процесса, имеющего доступ к X-серверу (то есть, из GUI-приложения, работающего под обычным пользователем). Другими словами, любая GUI-программа (например, читалка PDF-файлов), если она скомпроментирована (например, специально подготовленным PDF-файлом), может пробить все барьеры защиты на пути к полному обладанию компьютером. Не спасает даже песочница SElinux (SElinux «sandbox -X»). И проблема существует много лет — по-видимому, с первых версий ядра 2.6.

Обзор этой уязвимости вышел 17 августа в [2], и я хочу о ней рассказать местами в упрощённой, местами в развёрнутой форме.

Как это работает


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

Пишем свою ОС: Выпуск 1

Reading time6 min
Views280K
Данный цикл статей посвящён низкоуровневому программированию, то есть архитектуре компьютера, устройству операционных систем, программированию на языке ассемблера и смежным областям. Пока что написанием занимаются два хабраюзера — iley и pehat. Для многих старшеклассников, студентов, да и профессиональных программистов эти темы оказываются весьма сложными при обучении. Существует много литературы и курсов, посвящённых низкоуровневому программированию, но по ним сложно составить полную и всеохватывающую картину. Сложно, прочитав одну-две книги по ассемблеру и операционным системам, хотя бы в общих чертах представить, как же на самом деле работает эта сложная система из железа, кремния и множества программ — компьютер.

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

Неприступный почтовый сервер, или жизнь без спама

Reading time11 min
Views201K
Борьба со спамом — это головная боль всех ответственных администраторов почты. Чего только они не изобретают, чтобы любимым пользователям лучше жилось. Однако, как показала практика общения со многими системными администраторами, почему-то далеко не все представляют как правильно фильтровать спам.

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

А ведь всё так просто, для спокойной жизни достаточно всего лишь пристально присматриваться к трём заголовкам входящей SMTP сессии. Порывшись на Хабре и в закоулках интернета так и не нашёл исчерпывающей статьи на тему правильной настройки SMTP сервера с точки зрения противодействия спаму. Поэтому решил расписать всё, что знаю на эту тему сам и чем успешно пользуюсь.

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

Итак, если вы хотите обезопасить своих пользователей от спама или наоборот, хотите чтобы кто-то случайно не обезопасил пользователей от ваших писем — добро пожаловать под кат.

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

Распознавание цифр с помощью простейшей статистики и анализа топологии

Reading time2 min
Views25K
Дело было на третьем курсе, появился у нас предмет ИИС (интеллектуальные информационные системы). Так как я давно интересовался распознаванием образов, удалось выпросить тему «распознавание рукописных цифр». Я решил не возиться с нейронными сетями и придумать что-то свое, простое, но достаточно эффективное.
Читать дальше →

Опубликовано доказательство P ≠ NP?

Reading time1 min
Views22K
Vinay Deolalikar разослал некоторым ученым свое доказательство, что класс сложности P ≠ NP.

Само доказательство на ~100 страницах.

Можно почитать более или менее адекватный комментарий на ycombinator.

Добавить нечего, читаем и/или ждем мнений специалистов в этой области.

P.S. На всякий случай, ссылка о том, что такое NP и P. (спасибо, SMiX)

Целебное зелье для IE5+ или IE7.js

Reading time2 min
Views7.1K
Разбирая код очередного проекта внутри тега 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, но не тут-то было!
Читать дальше →

LNKpokalipsis или новая багофича от MS (CVE-2010-2568)

Reading time2 min
Views5.4K
На хабре уже писали о Win32/Stuxnet и раскрывшейся вместе с ним уязвимостью. Но самой уязвимости уделяется почему то мало внимания, в основном весь шум вокруг Win32/Stuxnet и использованных валидных сертификатов для подписи компонентов этого зловреда. А тем временем эта уязвимость уже появилась в публичном доступе. Сначала в виде PoC, а потом и в виде модуля для Metasploit. MS, как в прочем и обычно, пофиг на критичность этой уязвимости и она вероятнее всего выпустит патч не раньше 10 августа. А для WinXP SP2 патча вообще не будет, хотя как не странно на ней еще есть пользователи и их не так мало, как хотелось бы. Подтверждение тому распределение угрозы по оконным версиям от Symantec, где именно WinXP SP2 имеет большую долю зафиксированных инцидентов.

image

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

Высшее образование

Reading time4 min
Views15K

Объявление: Требуется сотрудник технической поддержки. Обязанности: ответы на звонки клиентов, помощь в погрузо-разгрузочных работах. Требование: высшее образование, опыт работы от 5 лет на аналогичной должности.

Немного утрирую. Но что значит высшее образование в применении к IT? Безусловно, выпускник MIT или Berkley со специализацией в Computer Science — это реально круто.

… но мы же про Россию, да? Менеджер по продажам с дипломом по морской навигации, финансовый директор с диссертацией по органической химии, лингвист-сисадмин…

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

Зачем айтишнику высшее образование? Зачем айтишнику какое-нибудь высшее образование (т.е. зачем галочка «есть хоть какое-то в/о»)?

Я слышал несколько аргументов, и ни один из них меня не устроил.

Итак, аргументы от адвоката дьявола:
Читать дальше →

Проверка счета Киевстар модема в Linux

Reading time2 min
Views6K
Навеяно этим топиком. Однажды у меня случился переезд и на новом месте проживания и мне потребовался срочно интернет. Насмотревшись рекламы Киевстара модем за 199 грн, я приобрел данный набор. Настройка в Ubuntu через NetworkManager не потребовало никаких усилий. Но мне не хватало проверки денег на счету (не через браузер). Представляю вам скрипт, который мне помог это решить.

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

2000 часов в одиночестве, или как был сделан RSS reader / Я робокоп

Reading time14 min
Views6.7K
I. Am. Robocop.Всем привет,

Собираюсь поделиться с вами технической стороной того, как я за 16 недель сделал новый вебовый rss ридер, и чуть не сошел с ума.
Отходя от долгой предыстории, будем считать, что все началось в феврале этого года, когда мы с Дэвидом (dmiloshev, UI-дизайнер) решили сделать прототип нашего детища вдвоем.
«В одиночестве» — потому, что не было никаких скрамов, совещаний, «коллективного разума», а всю техническую часть, довелось делать самому.

Если бы меня попросили описать всю статью в одном предложении, то получилось бы:
No-SQL, mongodb, node.js, фак мой мозг, Evented I/O, очереди, выводы, git, nginx, memcached, Google Reader, Atom, TTL, PHP, ZF, jQuery, выводы.
Читать дальше →

Доменные имена как инструмент Competitive Intelligence

Reading time3 min
Views1.7K
Конкурентная разведка… Один из ключевых инструментов современного бизнеса, даже если сам бизнес заключается в банальном вендинге семян подсолнечника около ближайшего супермаркета. И если в оффлайне сбор таких данных может граничить с законностью и моралью, то в online все гибче и многограннее. В качестве примера небольшой кейс:

imageMyBrute — игра формата Zero Player Game отнявшая у Рунета немало времени в апреле-мае 2009 г. Принесший «инфекцию» с Лепры nafigator надолго закрепился в топе игроков, прославив Хабр на этой мировой ярмарке тщеславия. Можно много рассуждать о причинах взрывной популярности игры, защитить диссертацию по теме или написать пару статей. Мой пост о другом — о доменных именах…
Читать дальше →

Снова про формы: значения по умолчанию

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

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

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

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

Начало закрытого тестирования облака

Reading time1 min
Views6.6K
Сеть дата-центров Selectel объявляет о начале первичного тестирования вычислительного облака (IaaS) на базе Xen Cloud Platform.

Это облако позволит предоставить клиентам возможность работы в виртуальной машине без искусственных ограничений производительности, с оплатой по фактически потреблённым ресурсам.
Конечная наша цель — реализовать «идеальное облако», о котором на хабре писали чуть ранее.

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

Своими силами мы не сможем обеспечить всё многообразие нагрузок, потому мы предлагаем всем желающим принять участие в тестировании. Для вас это возможность бесплатно посмотреть как выглядят облака изнутри, потестировать ваши проекты и посмотреть, какие ресусры они на самом деле потребляют.

В настоящий момент мы поддерживаем два дистрибьютива Linux: Debian и CentOS, поддержка других операционных систем в работе (включая Windows Server).

Тестирование закрытое, для участия в нём нужно заполнить анкету на сайте. Тестирование будет производиться на ограниченном по размеру облаке, и мы хотим найти наиболее интересные примеры эксплуатации, так что к тестированию мы сможем принять не всех. По окончанию тестирования мы попросим вас дать развёрнутую оценку. Те, кто существенно помогут нам (заполнением анкеты, багрепортами, предложениями) получат плюшки. Какие — пока сами не знаем, уточним в процессе.

Facebook начал использовать BitTorrent

Reading time2 min
Views1K
BitTorrent — это идеальный способ передать много информации, тысячам получателей, в сжатые сроки. Это относится не только к фильмам и музыке, которые скачивает среднестатистический пользователь BitTorrent, компании тоже могут использовать эту технологию себе во благо! С помощью BitTorrent, Facebook сможет передавать сотни мегабайт нового кода всем серверам по всему миру в течение минуты, вместо нескольких часов.

Крупные веб-проекты нуждаются в тысячах серверов, чтобы справиться с активностью миллионов пользователей. Обновить все сервера — это довольно трудоёмкое занятие, которое может отнять очень много времени.

Tom Cook: “BitTorrent шикарен, он воистину великолепен. Эта технология сильно облегчила нам жизнь."
Читать дальше →

Домашний linux сервер своими руками

Reading time5 min
Views191K
Хочется поделиться с хабросооществом информацией о том как я собирал домашний сервер.

image

Из софта на домашнем сервере будет «крутиться» следующий набор:
  • torrent клиент с web-мордой
  • DHCP — раздаем ip адреса и сетевые настройки
  • TFTP — для сетевой загрузки
  • OpenVPN — для хождения в сеть с нетбука из недоверенных сетей
  • FTP/Samba/NFS — сетевые шары для доступа с домашних машин
  • Radius — для WPA2 авторизации
  • DigiTemp — мониторинг домашней температуры

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

20 терабайт своими руками

Reading time5 min
Views50K
Не столь давно в ЖЖ одна компания киношная спросила, как-бы так хитро им сделать 20 терабайт сетевого хранилища, а то ролики не влезают…

На что им народ насоветовал какие-то супер-пупер профессиональные решения на сотни тысяч рублей, что, конечно, круто, но…

Я-же со своей стороны — дал раскладку по тому сервачку, который сделал для себя сам года три назад и успешно его юзаю…

Сервер содержит 11 жёстких дисков, из которых один — загрузочный и 10 — файлопомойка.
Как не сложно посчитать, 10 дисков по 2 терабайта — дадут искомые 20 терабайт!
Как этого достичь?
Сейчас расскажу!

ПыСы Это перенос моей статьи из Песочницы. С момента её написания выяснил пару «весёлых» вещей, которые тут и были добавлены.

ПыПыСы Это именно самодеятельное решение по запихиванию такой оравы дисков в один комп.
Надёжность реализуется исходя из того, что при ТАКОМ числе дисков — можно часть поставить в RAID, а при необходимости — легко и непринуждённо заменить вылетевший!

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

Information

Rating
Does not participate
Registered
Activity