Pull to refresh
0
@MorrisDeckerread⁠-⁠only

User

Send message

Разбор каптчи Xakep.ru

Reading time8 min
Views8.3K
Разбор каптчи xakep.ru

Предисловие


В статье будет рассмотрен пример распознавания реальной каптчи, которая используется на сайте xakep.ru для защиты от спама в комментариях и создания ботов на почте. Я хочу показать, что зная минимум вычислительной математики можно решить эту частную задачу. Более того, не подразумевается знание концепций нейронных сетей. В статье приводятся ссылки на другие статьи с Хабра для сравнения, но при создании программы я не пользовался ими вовсе.
В изложении я постараюсь не вдаваться в тонкости алгоритма и рассматривать то, что следовало бы сделать для более общего случая. Интересующийся читатель может задать вопросы мне лично, посетить блог или обратиться к моей курсовой работе по этой теме. На момент написания курсовая еще не готова.

Читать дальше →
Total votes 161: ↑150 and ↓11+139
Comments37

Интервью как процесс с точки зрения собеседующего

Reading time8 min
Views9.4K
Волею судеб так сложилось, что кроме повседневных обязанностей по написанию кода, исправлению ошибок, бесчисленных митингов и stand-up-ов, и всего прочего-прочего, я оказался вовлечён в процесс проведения собеседований.

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

Отработав в компании более 4х лет в нескольких смежных больших проектах я участвовал в собеседовании более чем 50 человек, из которых было нанято только 5.

На данный момент я покинул компанию о которой я описываю, и по согласованию сторон, могу поделится с тем как устроен этот процесс немного изнутри.

По большей части буду говорить о техническом интервью — том самом этапе, где мы проверяем компетентность кандидата как инженера. Процесс сложный и дорогой, в нём нет единственно правильного подхода. По своей сути, цель диалога понять — какой остаточный набор знаний есть у кандидата, его способность думать и соображать и личностные качества, ну и ответить на самый главный вопрос вселенной и всего такого — готов ли я с этим человеком работать бок-о-бок в проекте.
Читать дальше →
Total votes 28: ↑18 and ↓10+8
Comments74

Переезд на работу в Данию

Reading time11 min
Views132K
(Продолжение серии рассказов про Данию)

В данной статье я изложу свою историю устройства на работу, получения визы и переезда в Данию. История во многом субъективная, но не это ли делает такие рассказы интересными?

О себе: мне 31 год, я из Севастополя (да, на Хабре земляков всё больше), окончил СевНТУ. У меня красавица-жена и семилетний сын. Занимаюсь образовательным проектом. До переезда в Данию мы 6 лет жили в Киеве.

Причины переезда


Мы не «поравалитики». В целом, нам отлично жилось вна Украине. Конечно, мы понимали, что кругом многим не сладко. Так или иначе, сбежать из страны, прихватив трактор, не тянуло.

Вся идея изначально исходила от жены, её доводы были таковы:
  1. посмотреть мир,
  2. дать сыну возможность выучиться в мультиязычной среде.

Доводы хорошие, но меня убедили совсем другие вещи:
Читать дальше →
Total votes 188: ↑171 and ↓17+154
Comments186

Пасхальные яйца Google I/O

Reading time1 min
Views9.5K

Пасхальные яйца на странице Google I/O:

  • ASCII: OIIIIIII
  • Бекон: IOOIOOOO
  • Боулинг: OIIIOIOI
  • Бургер: OOIIIOOI
  • Кошка: IIIOOIII
  • 8 бит: OIOIOOII
  • Пинг-понг: IOOOOOOI
  • Ракета: OIOOOIOI
  • Игра: IIOIOOII
  • Песня: IIOIIOII
  • Космос: OOIOIOIO
  • Синтезатор: IOOOIOOO
Total votes 74: ↑55 and ↓19+36
Comments14

Зачем я написал очередной генератор статических сайтов

Reading time4 min
Views5.7K
Сначала, думаю, нужно представиться. Я не программист, программирование для меня скорее хобби, да и из современных языков на момент написания моего велосипеда я знал только Java Script (и немного Java). Так что делюсь не программистскими наработками, а взглядом на генераторы статических сайтов с пользовательской стороны.

Откуда есть пошла


У меня был сайтик, с небольшой посещаемостью и статьями в стиле “я и моя… славная кошка”, который я регулярно пополнял. И, конечно, пытался прикрутить к нему какую-нибудь CMS. Сначала это был wiki-движок, потом — нечто более блоговое. При небольшой посещаемости и слабеньких ресурсах хостинга я, конечно, задумался о переводе сайта на 100% статику.

И понеслась

Читать дальше →
Total votes 31: ↑16 and ↓15+1
Comments15

Добавляем WDS универсальности

Reading time6 min
Views140K
Добрый день, уважаемые хабра-жители!

Целью данной статьи является написание небольшого обзора возможностей по развертыванию различных систем через WDS (Windows Deployment Services)
В статье будут приводиться краткие инструкции для развертывания Windows 7 x64, Windows XP x86, Ubuntu x64 и добавление таких полезных инструментов в загрузку по сети как Memtest и Gparted.
История будет рассказывать в порядке приходящих мне в голову идей. И начиналось все с Microsoft…
Читать дальше →
Total votes 27: ↑22 and ↓5+17
Comments9

Кен Нортон. Как работать с программистами

Reading time5 min
Views3.6K
Я работаю в сфере IT 20 лет, последние 13 — в качестве руководителя проектов. Так получилось, что за это время я заслужил репутацию менеджера, эффективно работающего с программистами. Благодаря этому навыку я вошел в историю как один из трех величайших руководителей проектов и направлений – наряду с Николо Маккиавели и Стивом Джобсом.

Долгие годы я держал свои профессиональные секреты при себе. Но время пришло: сегодня я поделюсь с вами «Десятишаговой инструкцией по работе с программистами». Или, если ближе к сути, назовем ее так: «Как заставить программистов делать то, что вы хотите».
Как заставить программистов делать то, что вы хотите
Total votes 115: ↑86 and ↓29+57
Comments50

Эффект Даннинга-Крюгера

Reading time3 min
Views133K
Открыв сегодня Хабр с утра, я обнаружил там статью в хабе Human Resources, «У Вас много денег? Тогда мы идем к Вам!»
Мне по работе не раз приходилось встречаться с ситуацией, описанной там, да, уверен, большинству читающих ситуация хорошо знакома.
Однако буквально на днях, бродя по Википедии, я нашел ответ на вопрос «Что же за phukinglyphuk приосходит с этим миром?», мучавшим меня на протяжении многих лет. Своей находкой я хочу поделиться здесь:

Эффект Даннинга — Крюгера — когнитивное искажение, которое заключается в том, что люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации (выделение мое, track). Это приводит к возникновению у них завышенных представлений о собственных способностях, в то время как действительно высококвалифицированные люди, наоборот, склонны занижать свои способности и страдать недостаточной уверенностью в своих силах, считая других более компетентными. Таким образом, менее компетентные люди в целом имеют более высокое мнение о собственных способностях, чем это свойственно людям компетентным, которые к тому же склонны предполагать, что окружающие оценивают их способности так же низко, как и они сами. (выделение снова мое, track)
Читать дальше →
Total votes 167: ↑127 and ↓40+87
Comments107

Генератор случайных котов за 8 шагов

Reading time8 min
Views76K

Доброго времени, Хабр!
Я всегда очень любил котов, и любил их рисовать, особенно морды кошачьи. Чуть изменишь форму, линию — и совершенно другое выражение, другое настроение. У меня листы А4 были изрисованы под предел. И тут мне недавно стукнуло в голову — а что если сделать генератор морд котов? Чтобы нажал на кнопочку и тебе выкинется случайная морда кота. Как можно более случайная и интересная. Давайте же посмотрим, как же сделать такую штуку.
Прошу под кат, любители котов.
Читать дальше →
Total votes 194: ↑178 and ↓16+162
Comments69

Русское издание книги Programming Interviews Exposed

Reading time2 min
Views8.9K
Добрый день!

Сегодня мы представляем одну из последних новинок нашего издательства — книгу «Работа мечты для программиста. Тестовые задачи и вопросы при собеседовании в ведущих IT-компаниях». Русское название, возможно, оказалось слишком «маркетинговым», но содержание от этого не страдает — книга переиздается на Западе уже более 10 лет и заслуженно все эти годы возглавляет рейтинги IT-литературы.

image

Предлагаем вашему вниманию информацию о книге, а также тестовое задание, которое вы можете попробовать решить самостоятельно.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments10

Рендер ландшафта в WebGL — 2

Reading time3 min
Views16K

Часть вторая


Приветствую в серии статей о WebGL рендринге ландшафта, используемом в игре Trigger Rally!

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

В этой статье я расскажу об структуре данных вершин, а так же о морфинге.
image

От переводчика: в статье много косноязычия и технических неточностей. Помогите их исправить!
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments18

Рассказы участников о недавнем хак-квесте

Reading time6 min
Views25K

«Этичный хакер», участник хак-квеста

Вот здесь лежит отчёт с конференции по информационной безопасности, на которую приезжал Митник. Параллельно шла оффлайн-игра – CTF в симуляторе корпоративной сети, Symantec Cyber Readiness Challenge. Онлайн этап состоялся летом, а это был завершающий, его победитель едет на международный турнир в Ниццу защищать честь нашей страны.

Скорость взятия флагов нашими участниками удивила и порадовала технических экспертов Symantec из Англии.

Ниже — рассказы участников.
Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments8

TogetherJS: добавь на сайт коллективизма

Reading time1 min
Views15K
Mozilla Labs выпустила открытую библиотеку TogetherJS, с помощью которой на сайт легко добавить возможность коллективной работы в реальном времени.

Библиотека написана на JavaScript, не требует от посетителей установки никаких плагинов или программного обеспечения, всё работает сразу в браузере.

Для установки достаточно скопировать и вставить библиотеку и HTML-сниппет. TogetherJS дружественна к существующей структуре сайтов: скрипт ничего не меняет на сайте, только добавляет небольшую кнопку . По нажатию открывается дополнительное меню и появляется уникальная ссылка для отправки коллегам. Каждый, кто откроет эту ссылку, присоединится к групповой работе над данным документом.
Читать дальше →
Total votes 57: ↑53 and ↓4+49
Comments9

Прямые в гексагональном растре

Reading time4 min
Views11K
Данное исследование не претендует на оригинальность, я полагаю, что на самом деле изобретаю велосипед, но никаких деталей от него при (признаю, довольно поверхностном) изучении интернета мне найти не удалось.

Понаблюдав за разнообразными игрушками, передвижение персонажей в которых производится на плоскости, вымощенной правильными шестиугольниками, меня зацепил вопрос — а как должна выглядеть прямая на такой плоскости. Собственно, задача оптимального перемещения персонажа из шестиугольника A в шестиугольник B (подразумеваю, что на плоскости нет препятствий, под оптимальным перемещением подразумеваю такое, чтобы оно происходило через наименьшее количество шестиугольников) может быть решена кучей разных способов, маршрут далеко не единственен, так же, как, впрочем, и на плоскости, покрытой квадратами. Но мне хотелось бы, чтобы маршрут был приближен к отрезку прямой, как приближено к отрезку прямой изображение, построенное по алгоритму Брезенхэма, и в то же время реализация должна быть достаточно прозрачной и простой.
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments23

Semantic UI — почти альтернатива Bootstrap

Reading time1 min
Views81K
image
Наткнулся сегодня на одну интересную штуку.
Semantic UI — это фреймворк для создания переносимых интерфейсов, который поможет повторно использовать элементы UI в своих проектах. Такая себе альтернатива Bootstrap.
Небольшой пример — если вы хотите добавить в свой проект что-то похожее на кнопку

просто воспользуйтесь следующими элементами:
semantic add button
semantic add icon
Читать дальше →
Total votes 85: ↑79 and ↓6+73
Comments40

Git rebase «по кнопке»

Reading time9 min
Views23K

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

В нашем случае налицо лимит по времени: релизы формируются, тестируются и выкатываются на продакшн-сервер два раза в день. При ограниченных сроках в жизненном цикле релиза процесс удаления (отката) из релизной ветки задачи, содержащей ошибку, имеет важное значение. Для её выполнения мы используем git rebase. Так как git rebase ― это полностью ручная операция, которая требует внимательности и скрупулезности и занимает продолжительное время, мы автоматизировали процесс удаления задачи из релизной ветки.
Читать дальше →
Total votes 73: ↑72 and ↓1+71
Comments13

Подготовка к сдаче экзамена Oracle certified JAVA associate

Reading time3 min
Views66K
Поиск русского гайда по сдаче на OCAJP 7 не увеньчался успехом, так что я решил написать свой.

Что это за сертификат рассказывают в этом видео. Сдавать или нет каждый решает для себя сам, но этот сертификат является базовым в иерархии Oracle для интересующихся Java.

Для себя я решил сдавать на OCP чтобы во-первых систематизировать знания, а во-вторых поднять привлекательность для работодателей.

Началось как обычно с чтения CodeRanch. Когда я начинал готовиться книг посвященных OCA 7 еще не было в природе. Сейчас уже появился официальный гайд. Но учитывая ценник (30$), я все же воздержался бы от покупки. Сейчас расскажу почему.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments58

GWT-Platform основы работы с презентерами

Reading time12 min
Views17K
Всем хабражителям доброго времени суток!

Я начинающий Java-программист и так уж получилось, что свою карьеру я начинаю с разработки серьезного приложения на GWT. На хабре довольно много статей на тему GWT, однако почему-то совсем нет информации о замечательном фреймворке GWT-Platform. Подробно познакомиться с данным фреймворком можно тут, а я расскажу вкратце об основах работы на примере простого приложения.
Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments2

Trove 4.0? Примитивы в стандартном каркасе коллекций из Java 8

Reading time5 min
Views9.7K
Около месяца назад на Хабре была статья про Trove — самую часто упоминаемую библиотеку, когда спрашивают про структуры данных с примитивами на Java. Примерно за пару дней до этого я сел эту библиотеку переписывать. Время решительно кончилось, поэтому делюсь поиском с вами, хотя не очень-то надеюсь, что кто-то продолжит это дело.

На данный момент сделаны хеш-таблицы 6 типов: множества примитивов, объектов и все 4 варианта мапов: примитив — примитив, примитив — объект, объект — примитив и объект — объект, над которыми нависает туча обобщающих интерфейсов.

Меня всегда удивляло, почему все подобные библиотеки создают еще одну иерархию типов, а не встраиваются в давно уже зарекомендовавший себя стандартный каркас коллекций Явы. Никаких принципиальных проблем с этим я не видел и не вижу. Поэтому над моей тучей интерфейсов, как на пантеоне, возвышаются java.lang.Iterable, java.util.Collection и java.util.Map. Я не зря дал ссылки на документацию по Java 8. Реализованы почти все методы из будущих интерфейсов, кроме spliterator(). Можно начинать привыкать.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments31

Шаблоны проектирования в адвенчурах: часть первая

Reading time7 min
Views39K
Предлагаю к прочтению очередную статью из блога Дэна Шулера о паттернах, которые можно использовать при разработке адвенчур. В свое время мне приходила в голову идея классификации загадок, но я лишь делал небольшой обзор, а не объемную статью. Естественно, я был удивлен и рад тому, что тема была кем-то поднята. Ниже приводится описание самих паттернов, следующим постом будут более развернутые примеры их использования, а в этот решил их не включать, по причине слишком объемного перевода. Также я добавил несколько поясняющих иллюстраций и несколько комментариев от себя.

«То, что мы называем хаосом — это всего лишь закономерности, которые мы не сумели распознать. То, что мы называем случайностями — это всего лишь закономерности, которые мы не в состоянии расшифровать.»
— Чак Паланик

Как насчет абстрактного подхода к разработке адвенчу? Или, хотя бы, для загадок в адвенчурах — это может оказаться полезным!

Читать дальше →
Total votes 58: ↑58 and ↓0+58
Comments32

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity