Концепция "динамический email" представлена в одноимённой статье. Решил поделиться своим опытом использования этого метода защиты от спама.
Пользователь
Внедрение Scrum'a технарем: реальный опыт, подводные камни, tips&tricks
В таких условиях кажется совершенно логичным заказать внешний консалтинг и «призвать» в свою компанию профессионального скрам-мастера на несколько месяцев. И это идеальный случай, просто мечта.
В реальной жизни чаще по-другому: команда разработки давно устала от хаотично поступающих со стороны менеджмента задач, а менеджмент страдает от непрозрачности разработки, постоянных срывов сроков и низкого качества продукта. При этом высшее руководство слышать не хочет о выделении бюджета на услуги профессиональных скрам-мастеров.
В таких условиях у разработчика есть два пути: продолжать терпеть или брать инициативу в свои руки.
Я выбрал второе и сегодня расскажу об опыте внедрения скрама в компании будучи не менеджером, а техническим специалистом. Под катом реальный опыт, подводные камни и практические советы тем кто отважился.
Препарирование файлов .XLSX: введение, стили ячеек
Сразу хочется сделать несколько замечаний.
Первое. В основном говорить буду про то, с чем сталкивался лично. Претензий на стопроцентное знание «изнанки» формата у меня нет.
Второе. Как многие, вероятно, знают, файлы MS Office 2007 и выше представляют собой архив, который можно открыть с помощью любого архиватора (WinRAR, 7zip и так далее).
Третье. «Под капотом» у этих файлов — в основном XML-разметка, гордо именуемая OOXML или просто OpenXML. Поэтому, в принципе, для понимания принципов редактирования файлов «руками» достаточно будет Блокнота (или, что удобнее, Notepad++).
Итак, начнем с формата MS Excel как наиболее употребимого для генерации всевозможных отчетов, выгрузок из БД и иже с ними.
Исправляем опечатки с учётом контекста
Недавно мне понадобилась библиотека для исправления опечаток. Большинство открытых спелл-чекеров (к примеру hunspell) не учитывают контекст, а без него сложно получить хорошую точность. Я взял за основу спеллчекер Питера Норвига, прикрутил к нему языковую модель (на базе N-грамм), ускорил его (используя подход SymSpell), поборол сильное потребление памяти (через bloom filter и perfect hash) а затем оформил всё это в виде библиотеки на C++ со swig биндингами для других языков.
Обнаружение лиц на видео с помощью Movidius Neural Compute Stick
Весь код можно найти на GitHub.
![image](https://habrastorage.org/getpro/habr/post_images/eb2/ef3/d2b/eb2ef3d2bcc492a8f77cf195143cf4d6.jpg)
Своя СУБД за 3 недели. Нужно всего лишь каждый день немного времени…
По закону Мерфи, если есть более одного проекта на выбор — я возьмусь за самый сложный из предложенных. Так случилось и с последним заданием курса о системах управления базами данных (СУБД).
![обложка /dropSQL](https://habrastorage.org/webt/rc/0n/pg/rc0npgm2cp9pwpwb6hpcknftmd0.jpeg)
Защита от DDoS на уровне веб-сервера
![image](https://habrastorage.org/getpro/habr/post_images/386/69d/f2d/38669df2d031858fe828c6446dce22d8.jpg)
Если у Вас есть небольшой сайт на сервере с минимальными характеристиками, то положить его можно любым вполне легальным средством стресс-тестирования. (Не рекомендую этого никому делать т.к. IP-адрес легко вычисляется и экспериментатор может влететь на возмещение ущерба.) Поэтому сайт без защиты от DDoS очень скоро будет выглядеть так же дико, как компьютер с Windows-98 без анивирусника.
16 тонн. Как я спасал гибнущий под нагрузкой сайт на WordPress, имея весьма поверхностные знания в области этой CMS
Эта история началась пять часов назад. Ко мне обратился владелец одного тематического новостного сайта. Тематика — спортивные соревнования. У сайта есть две проблемы. Во-первых, в моменты крупных и сильно ожидаемых состязаний количество посетителей на сайте увеличивается на порядок. Вторая проблема — он сделан на WordPress, причем довольно небрежно. Думаю, что изначально это был обычный WP-сайт. Но потом он многократно «дорабатывался»: куда ни попадя втыкались разные рекламные блоки, вводились новые «решения», ставились всякие плагины для «оптимизации» и расширения возможностей. Кроме того, каждый день, на протяжении нескольких лет, появлялось около десятка постов. Размер БД — несколько гигабайт, ‘upload’ идет на десятки гигабайт. Со временем сайт превратился во что-то похожее на это:
![image](https://habrastorage.org/getpro/habr/post_images/680/d7b/d62/680d7bd62a2b52fba127670a0e8eda5b.jpg)
Платформы для экспериментов по обучению с подкреплением и не только
В этой статье приведен краткий обзор двенадцати подобных сервисов.
Двадцать лет с юзкейсами: выжимаем практический опыт
![](https://habrastorage.org/getpro/habr/post_images/ee3/9ee/93d/ee39ee93d3081e20f660a12d34062b7d.png)
Я буду использовать разговорное «юзкейс» вместо неуклюжей кальки «прецедент использования». Надеюсь, уважаемая публика меня за это простит.
Как я определял провайдера по IP
Парсим мемы в питоне: как обойти серверную блокировку
Новогодние праздники — прекрасный повод попрокрастинировать в уютной домашней обстановке и вспомнить дорогие сердцу мемы из 2k17, уходящие навсегда, как совесть Electronic Arts.
![](https://habrastorage.org/webt/qr/lg/rw/qrlgrwehvwohaffw-qe5reaxm6e.jpeg)
Однако даже обильно сдобренная салатами совесть иногда просыпалась и требовала хоть немного взять себя в руки и заняться полезной деятельностью. Поэтому мы совместили приятное с полезным и на примере любимых мемов посмотрели, как можно спарсить себе небольшую базу
данных, попутно обходя всевозможные блокировки, ловушки и ограничения, расставленные сервером на нашем пути. Всех заинтересованных любезно приглашаем под кат.
Обучаемый Telegram чат-бот с ИИ в 30 строчек кода на Python
![image](https://habrastorage.org/getpro/habr/post_images/3aa/c1f/318/3aac1f3187f0ccca7f43ee34699dfc32.jpg)
Сегодня мне в голову пришла мысль: «А почему бы не написать Telegram чат-бота с ИИ, которого потом можно будет обучать?»
Подбираем пароли с помощью Google Chrome
Согласно многочисленным исследованиям в области компьютерной безопасности, в ТОП-3 уязвимостей информационных систем входит подбор пароля.
Почти для каждой информационной системы сегодня существуют свои дефолтные учётные записи, которые широко распространены в сети Интернет. Например, их можно взять отсюда.
В случае, если мы имеем какой-либо портал, где пользователи – это люди, то бОльшую часть уязвимых слабых паролей можно отнести к одной из 4 групп:
- Пароли, входящие в топ самых популярных фраз (такие как «123456», «password», и т.п.).
- Пароли, представляющие собой сочетание клавиш – так называемые keyboard-walks пароли (например, «qwerty», «qazwsx», и т.п.).
- Пароли – искажённые логины («user123», «user321», и т.п.).
- Либо использование в качестве пароля популярных русских слов или имён в «перевёрнутой» раскладке («ljcneg», «fylhtq»)
Генетический алгоритм построения алгоритмов
![Паркер: А чем Вы занимаетесь в выходные?](https://habrastorage.org/webt/v3/dq/hn/v3dqhnbpl521torvctmyeifcqey.png)
В типичной реализации генетический алгоритм оперирует параметрами какой-то сложной функции (диофантовые уравнения в статье "Генетический алгоритм. Просто о сложном" mrk-andreev) или алгоритма ("Эволюция гоночных автомобилей на JavaScript" ilya42). Количество параметров неизменно, операции над ними тоже изменить невозможно, как генетика не старается, потому что они заданы нами.
Хьюстон, у нас проблема
Сложилась странная ситуация — прежде чем применять генетические алгоритмы (ГА) к реальной задаче, мы сначала должны найти алгоритм, которым эта задача в принципе решается, и только потом его попытаться оптимизировать с помощью генетического алгоритма. Если мы ошиблись с выбором «основного» алгоритма, то генетика не найдет оптимум и не скажет, в чем ошибка.
Часто, а в последнее время и модно, вместо детерминированного алгоритма использовать нейронную сеть. Тут у нас тоже открывается широчайший выбор (FNN, CNN, RNN, LTSM, ...), но проблема остается той же — выбрать нужно правильно. Согласно Википедии "Выбирать тип сети следует, исходя из постановки задачи и имеющихся данных для обучения".
А что, если...? Если заставить ГА не оптимизировать параметры, а создавать другой алгоритм, наиболее подходящий для данной задачи. Вот этим я и занимался ради интереса.
Open Source проекты Cisco по кибербезопасности
![image](https://habrastorage.org/webt/-7/nz/qq/-7nzqq-ejhzk0e2iubr-45awija.png)
Подборка ресурсов для соискателя на вакансию программист
![](https://habrastorage.org/getpro/habr/post_images/0d9/49b/b85/0d949bb85e63559f5dda30dd75f71c9a.jpg)
Занимаясь с 2013 г. обучением Java и трудоустройством выпускников, я накопил достаточно большую коллекцию ссылок на темы составления резюме, онлайн тестов, подготовки к собеседованию и прохождения интервью, поиска работы и советов новичкам. Часть подходит всем кандидатам, часть (по подготовке) специфична для Java. Предлагаю Вашему вниманию эту подборку:
Чем распознавать на мобильных платформах?
![image](https://sigmoidal.io/content/images/2017/08/import1-2-fs8.png)
![image](http://i.imgur.com/YukmNOz.png)
Как-то так вышло что на какой бы я бирже фриланса не начинал первый проект — всегда с распознаванием, поэтому в создании приложух с подобным функционалом у меня много опыта, которым я хотел сегодня с вами поделиться.
Как я писал собственную ERP систему и что из этого получилось
Git снизу вверх
![](https://habrastorage.org/webt/ui/bv/vs/uibvvsfvqcnj_9js2a-u23mh8do.jpeg)
Изображение из твиттера @girlie_mac
Но вот однажды я на три незабываемых дня попала в роддом — это иногда случается с женщинами. Из развлечений у меня были новорожденная дочь и телефон с большим экраном. Дочь поначалу развлекала плохо (дома она быстро исправилась), а на телефоне помимо книг и фильмов обнаружился текст «Git from the bottom up», который оказался более чем годным… С тех пор прошло почти 3 года,
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность