Как стать автором
Обновить
36
0
Сергей Рывкин @Juggler

Пользователь

Отправить сообщение

Динамический email :: практическое применение

Время на прочтение8 мин
Количество просмотров7.5K

Концепция "динамический email" представлена в одноимённой статье. Решил поделиться своим опытом использования этого метода защиты от спама.

Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии17

Внедрение Scrum'a технарем: реальный опыт, подводные камни, tips&tricks

Время на прочтение8 мин
Количество просмотров18K
В последние годы внедрение agile-методологий в разработку ПО стало целой индустрией: по этой теме выпускается специальная литература, собираются тематические конференции, устраиваются тренинги. На рынке труда возникли совершенно новые профессии, такие как agile-коуч или скрам-мастер. Появились целые компании, которые специализируются на внедрении гибких методологий в других компаниях.

В таких условиях кажется совершенно логичным заказать внешний консалтинг и «призвать» в свою компанию профессионального скрам-мастера на несколько месяцев. И это идеальный случай, просто мечта.

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

В таких условиях у разработчика есть два пути: продолжать терпеть или брать инициативу в свои руки.

Я выбрал второе и сегодня расскажу об опыте внедрения скрама в компании будучи не менеджером, а техническим специалистом. Под катом реальный опыт, подводные камни и практические советы тем кто отважился.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии11

Препарирование файлов .XLSX: введение, стили ячеек

Время на прочтение5 мин
Количество просмотров25K
Не так давно по долгу службы понадобилось редактировать файлы MS Office (в первую очередь MS Word и MS Excel) средствами PL/SQL, то есть языка, с .NET не связанного практически никак. В связи с этим возникла проблема, что в руководстве от Microsoft про редактирование этих файлов, что называется, «руками» не сказано практически ничего, а единственный вменяемый сайт-справочник по этому делу, видимо, не обновлялся года этак с 2010. Понимание необходимости свести воедино все, что я по крупицам собрал со Stackoverflow и собственных экспериментов, пришло почти сразу.

Сразу хочется сделать несколько замечаний.

Первое. В основном говорить буду про то, с чем сталкивался лично. Претензий на стопроцентное знание «изнанки» формата у меня нет.

Второе. Как многие, вероятно, знают, файлы MS Office 2007 и выше представляют собой архив, который можно открыть с помощью любого архиватора (WinRAR, 7zip и так далее).

Третье. «Под капотом» у этих файлов — в основном XML-разметка, гордо именуемая OOXML или просто OpenXML. Поэтому, в принципе, для понимания принципов редактирования файлов «руками» достаточно будет Блокнота (или, что удобнее, Notepad++).

Итак, начнем с формата MS Excel как наиболее употребимого для генерации всевозможных отчетов, выгрузок из БД и иже с ними.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии10

Исправляем опечатки с учётом контекста

Время на прочтение10 мин
Количество просмотров26K

Недавно мне понадобилась библиотека для исправления опечаток. Большинство открытых спелл-чекеров (к примеру hunspell) не учитывают контекст, а без него сложно получить хорошую точность. Я взял за основу спеллчекер Питера Норвига, прикрутил к нему языковую модель (на базе N-грамм), ускорил его (используя подход SymSpell), поборол сильное потребление памяти (через bloom filter и perfect hash) а затем оформил всё это в виде библиотеки на C++ со swig биндингами для других языков.

Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии2

Обнаружение лиц на видео с помощью Movidius Neural Compute Stick

Время на прочтение6 мин
Количество просмотров11K
Не так давно в свет вышло устройство Movidius Neural Compute Stick (NCS), представляющее собой аппаратный ускоритель для нейронных сетей с USB интерфейсом. Меня заинтересовала потенциальная возможность применения устройства в области робототехники, поэтому я приобрел его и задумал запустить какую-нибудь нейросеть. Однако большинство существующих примеров для NCS решают задачу классификации изображений, а мне хотелось попробовать кое-что другое, а именно обнаружение лиц. В этой публикации я хотел бы поделиться опытом, полученным в ходе такого эксперимента.

Весь код можно найти на GitHub.

image

Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии12

Своя СУБД за 3 недели. Нужно всего лишь каждый день немного времени…

Время на прочтение13 мин
Количество просмотров34K
Своя СУБД за 3 недели. Нужно всего-лишь каждый день немного времени уделять архитектуре; и всё остальное время вкалывать на результат, печатая и перепечатывая сотни строк кода.

По закону Мерфи, если есть более одного проекта на выбор — я возьмусь за самый сложный из предложенных. Так случилось и с последним заданием курса о системах управления базами данных (СУБД).

обложка /dropSQL

Дропнуть студентов
Всего голосов 71: ↑67 и ↓4+63
Комментарии31

Защита от DDoS на уровне веб-сервера

Время на прочтение5 мин
Количество просмотров47K
Статистика DDoS-атак показывает неизменный рост и смещение вектора с сетевого уровня на уровень приложений.

image

Если у Вас есть небольшой сайт на сервере с минимальными характеристиками, то положить его можно любым вполне легальным средством стресс-тестирования. (Не рекомендую этого никому делать т.к. IP-адрес легко вычисляется и экспериментатор может влететь на возмещение ущерба.) Поэтому сайт без защиты от DDoS очень скоро будет выглядеть так же дико, как компьютер с Windows-98 без анивирусника.
Читать дальше →
Всего голосов 28: ↑25 и ↓3+22
Комментарии4

16 тонн. Как я спасал гибнущий под нагрузкой сайт на WordPress, имея весьма поверхностные знания в области этой CMS

Время на прочтение8 мин
Количество просмотров42K
Статья будет короткой и сумбурной — я пишу ее с целью скоротать пару часов перед тем как начать откатывать сайт к предыдущему «нормальному» состоянию.

Эта история началась пять часов назад. Ко мне обратился владелец одного тематического новостного сайта. Тематика — спортивные соревнования. У сайта есть две проблемы. Во-первых, в моменты крупных и сильно ожидаемых состязаний количество посетителей на сайте увеличивается на порядок. Вторая проблема — он сделан на WordPress, причем довольно небрежно. Думаю, что изначально это был обычный WP-сайт. Но потом он многократно «дорабатывался»: куда ни попадя втыкались разные рекламные блоки, вводились новые «решения», ставились всякие плагины для «оптимизации» и расширения возможностей. Кроме того, каждый день, на протяжении нескольких лет, появлялось около десятка постов. Размер БД — несколько гигабайт, ‘upload’ идет на десятки гигабайт. Со временем сайт превратился во что-то похожее на это:

image
Читать дальше →
Всего голосов 118: ↑98 и ↓20+78
Комментарии92

Платформы для экспериментов по обучению с подкреплением и не только

Время на прочтение6 мин
Количество просмотров7.9K
Мечта исследователей о создании универсального искусственного интеллекта привела к появлению массы сервисов, где можно попробовать новый алгоритм на совершенно разных задачах и оценить насколько он универсален. С какими задачами справляется, а какие представляют для него трудности.

В этой статье приведен краткий обзор двенадцати подобных сервисов.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Двадцать лет с юзкейсами: выжимаем практический опыт

Время на прочтение12 мин
Количество просмотров83K
У нас в QIWI регулярно проводятся встречи аналитиков и проектных менеджеров, где мы рассказываем друг другу о своем опыте, делимся знаниями и полезными приемами. На одной из таких встреч я рассказал о методике Use Case и о своем опыте работы с ней. Рассказ был встречен на ура, и я решил поделиться им с хабрасообществом.



Я буду использовать разговорное «юзкейс» вместо неуклюжей кальки «прецедент использования». Надеюсь, уважаемая публика меня за это простит.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии2

Как я определял провайдера по IP

Время на прочтение4 мин
Количество просмотров20K
Постановка задачи достаточно тривиальна: нужно по IP адресу пользователя определить провайдера. Эти данные далее должны использоваться в своей системе аналитики, а также должна быть возможность сверить их с данными, например Google или Ripe.
Читать дальше →
Всего голосов 16: ↑12 и ↓4+8
Комментарии9

Парсим мемы в питоне: как обойти серверную блокировку

Время на прочтение26 мин
Количество просмотров102K

Новогодние праздники — прекрасный повод попрокрастинировать в уютной домашней обстановке и вспомнить дорогие сердцу мемы из 2k17, уходящие навсегда, как совесть Electronic Arts.



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

Читать дальше →
Всего голосов 76: ↑70 и ↓6+64
Комментарии42

Обучаемый Telegram чат-бот с ИИ в 30 строчек кода на Python

Время на прочтение6 мин
Количество просмотров352K
image

Сегодня мне в голову пришла мысль: «А почему бы не написать Telegram чат-бота с ИИ, которого потом можно будет обучать?»

Читать дальше →
Всего голосов 82: ↑68 и ↓14+54
Комментарии106

Подбираем пароли с помощью Google Chrome

Время на прочтение6 мин
Количество просмотров153K

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


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


В случае, если мы имеем какой-либо портал, где пользователи – это люди, то бОльшую часть уязвимых слабых паролей можно отнести к одной из 4 групп:


  1. Пароли, входящие в топ самых популярных фраз (такие как «123456», «password», и т.п.).
  2. Пароли, представляющие собой сочетание клавиш – так называемые keyboard-walks пароли (например, «qwerty», «qazwsx», и т.п.).
  3. Пароли – искажённые логины («user123», «user321», и т.п.).
  4. Либо использование в качестве пароля популярных русских слов или имён в «перевёрнутой» раскладке («ljcneg», «fylhtq»)
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии15

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

Время на прочтение11 мин
Количество просмотров31K
Паркер: А чем Вы занимаетесь в выходные?

В типичной реализации генетический алгоритм оперирует параметрами какой-то сложной функции (диофантовые уравнения в статье "Генетический алгоритм. Просто о сложном" mrk-andreev) или алгоритма ("Эволюция гоночных автомобилей на JavaScript" ilya42). Количество параметров неизменно, операции над ними тоже изменить невозможно, как генетика не старается, потому что они заданы нами.

Хьюстон, у нас проблема


Сложилась странная ситуация — прежде чем применять генетические алгоритмы (ГА) к реальной задаче, мы сначала должны найти алгоритм, которым эта задача в принципе решается, и только потом его попытаться оптимизировать с помощью генетического алгоритма. Если мы ошиблись с выбором «основного» алгоритма, то генетика не найдет оптимум и не скажет, в чем ошибка.

Часто, а в последнее время и модно, вместо детерминированного алгоритма использовать нейронную сеть. Тут у нас тоже открывается широчайший выбор (FNN, CNN, RNN, LTSM, ...), но проблема остается той же — выбрать нужно правильно. Согласно Википедии "Выбирать тип сети следует, исходя из постановки задачи и имеющихся данных для обучения".

А что, если...? Если заставить ГА не оптимизировать параметры, а создавать другой алгоритм, наиболее подходящий для данной задачи. Вот этим я и занимался ради интереса.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии34

Open Source проекты Cisco по кибербезопасности

Время на прочтение5 мин
Количество просмотров17K
Когда речь заходит об open source проектах, развиваемых компанией Cisco в области кибербезопасности, то большинство специалистов вспоминает только популярный Snort, возможно еще ClamAV, да описанный на страницах Хабра инструмент OpenSOC. На самом деле Cisco, являясь достаточно открытой компаний (у нас куча API для работы с нашими решениями по ИБ), очень активно работает в сообществе open source и предлагает пользователям несколько десятков проектов, из которых немалое количество посвящено кибербезопасности. В этой заметке мне бы хотелось собрать воедино все open source проекты компании Cisco, которые имеют отношение именно к этой теме.
image
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии14

Подборка ресурсов для соискателя на вакансию программист

Время на прочтение2 мин
Количество просмотров18K



Занимаясь с 2013 г. обучением Java и трудоустройством выпускников, я накопил достаточно большую коллекцию ссылок на темы составления резюме, онлайн тестов, подготовки к собеседованию и прохождения интервью, поиска работы и советов новичкам. Часть подходит всем кандидатам, часть (по подготовке) специфична для Java. Предлагаю Вашему вниманию эту подборку:

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии3

Чем распознавать на мобильных платформах?

Время на прочтение3 мин
Количество просмотров17K
image

image

Как-то так вышло что на какой бы я бирже фриланса не начинал первый проект — всегда с распознаванием, поэтому в создании приложух с подобным функционалом у меня много опыта, которым я хотел сегодня с вами поделиться.
Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии9

Как я писал собственную ERP систему и что из этого получилось

Время на прочтение7 мин
Количество просмотров22K
Некоторое время назад ко мне обратился знакомый, хозяин одного из филиалов крупной сети по доставке суши и пицц. Их нынешняя ERP его вообще не устраивала, так как не было контроля за кухней и доставщиками, а так как кухонь по городу у него 5, то это была серьёзная проблема. Он предложил мне написать под него новую систему.
Читать дальше →
Всего голосов 37: ↑20 и ↓17+3
Комментарии139

Git снизу вверх

Время на прочтение27 мин
Количество просмотров127K
У этого перевода не совсем обычная история. Системы контроля версий далеки от моих профессиональных интересов. Для рабочих проектов они мне требовались нечасто, причем, разные, так что, каждый раз, когда возникала такая необходимость, я заново вспоминала, как в них делается та или иная операция. А для личных проектов мне хватало возможностей Dropbox, хранящей историю версий файлов.


Изображение из твиттера @girlie_mac

Но вот однажды я на три незабываемых дня попала в роддом — это иногда случается с женщинами. Из развлечений у меня были новорожденная дочь и телефон с большим экраном. Дочь поначалу развлекала плохо (дома она быстро исправилась), а на телефоне помимо книг и фильмов обнаружился текст «Git from the bottom up», который оказался более чем годным… С тех пор прошло почти 3 года, подросшей дочке уже пора самой начинать использовать Git Git стал мейнстримом, если не сказать стандартом в современной разработке, а я с удивлением обнаружила, что перевода на русский этого чуда, полезного не только начинающим, но и продвинутым пользователям Git, до сих пор нет. Исправляю эту ситуацию.
Читать дальше →
Всего голосов 104: ↑102 и ↓2+100
Комментарии32

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность