Как стать автором
Обновить
0
@painkuterread⁠-⁠only

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

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

Что такое фаззинг и зачем он нужен?

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

Всем привет! Меня зовут Кирилл, я старший разработчик в группе «Полигоны и ограничения доставки» в Ozon. Cегодня я расскажу про фаззинг, встроенный в Go: что это такое, зачем он нужен в разработке программного обеспечения и как с его помощью найти баг в дикой природе open-source-коде (рассмотрим на примере).

Читать далее
Всего голосов 47: ↑45 и ↓2+49
Комментарии7

Как перевести деньги в Турцию?

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

Сегодня о всех возможных вариантах денежных переводов в Турции на текущий момент.

Читать далее
Всего голосов 12: ↑9 и ↓3+10
Комментарии1

Быстрый бэкап всех ваших репозиториев Github

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

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

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

И тут на тебе! Оказывается в любой момент, по не зависимой от меня причине, меня могут отключить от этого технологического чуда! :-)

Читать далее
Всего голосов 27: ↑20 и ↓7+24
Комментарии25

Атака Ферма на RSA

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

В 1643 году Пьер де Ферма предложил метод факторизации. Этот метод позволяет эффективно раскладывать целые числа на простые множители.

Алгоритм шифрования и подписи RSA основывается на том, что факторизация — это задача с высокой сложностью. Открытый ключ RSA содержит составное число (обычно называемое N), которое является произведение двух простых чисел (обычно p и q).

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

Я применил метод факторизации Ферма к большим наборам открытых ключей RSA. И я смог обнаружить небольшое количество уязвимых ключей, которые принадлежали принтерам Canon и Fujifilm (первоначально выпускавшихся под маркой Fuji Xerox). В этих устройствах используется криптографический модуль от компании Rambus.
Читать дальше →
Всего голосов 34: ↑25 и ↓9+25
Комментарии22

Как научиться чему угодно с помощью техники Фейнмана

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


Ричард Фейнман был физиком, удостоенным Нобелевской премии, который внёс значительный вклад в такие области, как квантовая механика и физика частиц. Он также стал пионером квантовых вычислений и ввел понятие нанотехнологии. Он был известным лектором, преподавал в Корнелльском университете и Калифорнийском технологическом институте.

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

Нет никаких чудо-людей. Просто случилось так, что они заинтересовались чем-то и выучили все про это. Ричард Фейнман

Ричарда Фейнмана Ричардом Фейнманом (по крайней мере, по мнению Ричарда Фейнмана) сделал не врождённый интеллект, а систематический способ, с помощью которого он выявлял то, чего не знал, а затем бросался постигать это.

На протяжении всей своей работы и жизни, Фейнман с элегантностью и простотой давал представление о своём процессе рассмотрения сложных концепций в мире физики и изложения знаний/идей. Многие из этих наблюдений о его процессе обучения были собраны в то, что мы сейчас называем «техникой Фейнмана».

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

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

В этой статье будет представлен обзор техники Фейнмана и того, как вы можете применять её для постоянного расширения своих знаний и навыков. Короче говоря, Фейнман научит вас не только тому, как учиться, но и тому, как по-настоящему понимать.
Приятного чтения!
Всего голосов 64: ↑53 и ↓11+63
Комментарии106

Автоматическое тестирование аналитики в браузере

Время на прочтение9 мин
Количество просмотров9.8K
Представьте себе такую ситуацию. Вы запилили мегакрутую фичу на странице сайта и через месяц решили оценить её эффективность. Начинаете считать — и понимаете, что своим релизом вы сломали метрики на странице: случайно удалили код, отправляющий важные события аналитики, или забыли покрыть новую фичу событиями. Знакомо?

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

Если события приходят некорректно, отчёт будет недостоверным.

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

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

Как строить диаграмму Гантта по Jira-тикетам

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

Статья для менеджеров, которым необходимо вести управление проектами в изменчивом мире Agile. Поделюсь опытом использования двух приложений Jira Roadmap и Structure Gantt.

Читать далее
Всего голосов 12: ↑10 и ↓2+11
Комментарии19

Византийская проституция: взгляд сквозь время и юбки

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

При словах Греция, многие вспоминают полисы, философов, геометрию, немногие озорные - торс Джерарда Батлера и фривольные халаты с фибулой, для кого то Македония - это фаланги, уникальные артефакты и мечта Александра о единой империи, а для кого то - это "горбатые горы" на побережье Эгейского моря и любвеобильный Гефестион. У ScinetaeVulgaris неделя Византии, и сегодня мы заглянем под юбки интимной жизни одной из величайших империй мира.

Читать далее
Всего голосов 29: ↑18 и ↓11+15
Комментарии6

Пишем простой шахматный движок на Go

Время на прочтение8 мин
Количество просмотров9.4K
Всем, кто сейчас смотрит нашумевший сериал «Ход королевы» (The Queen's Gambit), посвящается. Еще больше шахматных терминов в нашем новом переводе.

В данной статье мы постараемся разобраться, как работают шахматные движки путем портирования шахматного движка sunfish на Go. Sunfish примечателен своей простотой и небольшим размером, но при этом он все-таки способен сыграть достойную шахматную партию. Go в свою очередь известен как простой и хорошо читаемый язык программирования, поэтому я надеюсь, что вместе они составят отличную пару.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+9
Комментарии11

Планирование в Go: Часть II — Планировщик Go

Время на прочтение11 мин
Количество просмотров35K
Привет, Хабр! Это второй пост в серии из трех частей, которая даст представление о механике и семантике работы планировщика в Go. Этот пост посвящен планировщику Go.

В первой части этого цикла я объяснил аспекты планировщика операционной системы, которые, на мой взгляд, важны для понимания и оценки семантики планировщика Go. В этом посте я объясню на семантическом уровне, как работает планировщик Go. Планировщик Go — сложная система, и мелкие механические детали не важны. Важно иметь хорошую модель того, как все работает и ведет себя. Это позволит вам принимать лучшие инженерные решения.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+11
Комментарии4

Хакаем CAN шину авто. Виртуальная панель приборов

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


В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.

В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).

Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.

В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.

  1. CAN сниффер из Arduino Uno
  2. Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
  3. Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
  4. Софт панели приборов на Python и Kivy (UI framework)
  5. Видео работы цифровой панели приборов на базе Raspberry Pi

Под катом полная реализация проекта, будет интересно!
Всего голосов 195: ↑192 и ↓3+189
Комментарии224

Как мы автоматизировали большой интернет-магазин и стали сопоставлять товары автоматически

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

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

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

  • Работа с поставщиками. Чтобы продать что-то ненужное, нужно сначала купить что-то ненужное.
  • Управление каталогом. У кого-то узкая специализация, а кто-то продает сотни тысяч разных товаров.
  • Управление розничными ценами. Тут придется учесть и цены поставщиков, и цены конкурентов, и доступные финансовые инструменты.
  • Работа со складом. В принципе, можно и не иметь собственного склада, а забирать товар со складов партнеров, но так или иначе вопрос стоит.
  • Маркетинг. Тут наполнение сайта контентом, размещение на площадках, реклама (онлайн и офлайн), акции и много чего еще.
  • Прием и обработка заказов. Колл-центр, корзина на сайте, заказы через мессенджеры, заказы через площадки и маркетплейсы.
  • Доставка.
  • Бухгалтерия и прочие внутренние системы.

Магазин, о котором мы будем говорить, не имеет узкой специализации, а предлагает кучу всего от косметики до мини-трактора. Я расскажу, как у нас устроена работа с поставщиками, мониторинг конкурентов, управление каталогом и формирование цен (оптовых и розничных), работа с оптовыми клиентами. Немного затронем тему склада.

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

Так что рассматриваем отдельную систему, более-менее универсальную, с которой интегрирована остальная инфраструктура компании.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии33

Мотор в качестве электромагнитного тормоза

Время на прочтение4 мин
Количество просмотров23K
Я занимаюсь разработкой бесколлекторных моторов в компании Impulsor. В последнее время к нам часто обращаются для разработки мотора/генератора, который будет выступать в качестве тормоза. В данной статье я расскажу об особенностях такого применения моторов, какие при этом преимущества и недостатки, и как реализовать такой режим работы.


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

Как прогнозировать спрос и автоматизировать закупки с помощью machine learning: кейс Ozon

Время на прочтение13 мин
Количество просмотров38K
image
В интернет магазине Ozon есть примерно всё: холодильники, детское питание, ноутбуки за 100 тысяч и т.д. Значит, все это есть и на складах компании — и чем дольше товары там лежат, тем дороже обходятся компании. Чтобы выяснить, сколько и чего людям захочется заказать, а Ozon нужно будет закупить, мы использовали machine learning.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии22

Рефакторинг программы на Go: ускорение в 23 раза

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


Привет! Меня зовут Марко, я работаю в Badoo в отделе «Платформы». У нас довольно много всего написано на Go, и зачастую это критичные к производительности системы. Именно поэтому сегодня я предлагаю вашему вниманию перевод статьи, которая мне очень понравилась и, я уверен, будет вам очень полезна. Автор пошагово показывает, как он подходил к проблемам производительности и как их решал. В том числе вы познакомитесь с богатым инструментарием, доступным в Go для такой работы. Приятного чтения!

Несколько недель назад я прочитал статью «Хороший код против плохого кода в Go», где автор шаг за шагом демонстрирует рефакторинг реального приложения, решающего реальные бизнес-задачи. Она сфокусирована на превращении «плохого кода» в «хороший код»: более идиоматичный, более понятный, полноценно использующий специфику языка Go. Но автор также заявлял о важности производительности рассматриваемого приложения. Во мне взыграло любопытство: давайте попробуем её ускорить!
Всего голосов 94: ↑93 и ↓1+92
Комментарии26

Автоматизируй это немедленно или как бизнесу сегодня работать в интернете

Время на прочтение6 мин
Количество просмотров6.3K
image Владельцам бизнеса стратегически важно использовать интернет-технологии с максимальной выгодой. Если вы сделали сайт или приложение, то сегодня сами по себе они уже не будут конкурентным преимуществом. Бизнес должен быть знаком с последними технологическими трендами и уметь использовать их для своего развития, только тогда можно быть на шаг впереди конкурентов. Одним из таких трендов является автоматизация бизнес-процессов с помощью облачных веб- и мобильных приложений.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Живи. Умри. Воскресни. Повтори

Время на прочтение7 мин
Количество просмотров9.9K
Не так давно, вернувшись домой с работы, где я в течении дня занимался ведением проекта коттеджного поселка – размещал на плане дороги и игровые площадки, давал указания строителям где посадить деревья и где посеять газоны, я сел за компьютер, чтоб играя в компьютерную игру – немного отдохнуть от трудного дня.

В игре, я размещал дороги и кузницы, давал указания строителям где посадить деревья и где посеять хмель и как отразить набеги сарацин. То есть занимался тем же самым, что и на работе. Разница с реальной жизнью, конечно, существовала – но незначительная. Современные игры всё больше и становятся копией реальности.

Почти, да не совсем. Отличие игры от реала должно быть – ведь на работе я воспринимаю свои действия как труд, а в игре – как игру. Сформулирую вопрос так – что есть в игре, что делает её именно игрой?

Магия? Нет. Мало того, что как говорил Артур Кларк, магия не отличается от развитой технологии, так еще и большая часть игр никак на магию не завязана. Не буду тянуть: Для меня самым главным отличием мира игры от реальности – является концепция Save/Load. Именно возможность откатить время назад и переиграть, попробовав другую тактику – делает игру интересной. (Те игры, например MMORPG, где нет такого элемента, нравятся мне меньше).

Не могу сказать, правда, что мои предпочтения совпадают с предпочтениями большинства – любовь к перебору вариантов привела меня к тому, что я только три года назад наконец-то закончил сюжетную компанию в Heroes of Might and Magic II и сейчас играю в «Возрождение Эрэфии» и «Stronghold».

Ну, а вспомнил я всё это потому, что столь любимая мной концепция Save/Load появилась довольно давно. Раньше, даже, чем компьютерные игры.

В 1904 году. Хотите узнать больше? Мы продолжим:
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии56

Коротко о Shadowsocks, или OpenVPN не нужен (в каждом доме)

Время на прочтение6 мин
Количество просмотров267K
В наши дни, когда всякие нехорошие элементы так и норовят влезть в ваш трафик и как-то там напакостить, стало модным шифрование трафика. Начинание это благое и полезное, вот только делают его зачастую избыточно. Если шифрование трафика до доверенного сервера, типа своего VPS, — ваша единственная цель, то OpenVPN для такой цели слишком наворочен. Его долго настраивать, легко обнаружить, а главное — есть подводные камни, не зная которых можно получить такую ситуацию, что VPN стоит, а трафик идёт в обход. Всё это потому, что OpenVPN задумывался больше как средство доступа к маленькой сети через Интернет, а не для доступа ко всему Интернету.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии77

15 тривиальных фактов о правильной работе с протоколом HTTP

Время на прочтение7 мин
Количество просмотров233K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Всего голосов 191: ↑186 и ↓5+181
Комментарии120

Мониторинг с Prometheus в Kubernetes за 15 минут

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


Прим. перев.: Автор статьи Giancarlo Rubio — DevOps-инженер из ИТ-компании LINKIT (Нидерланды) — через онлайн-ресурс ITNEXT делится лаконичным рецептом по настройке мониторинга с Prometheus в Kubernetes с помощью Prometheus Operator. Инструкция появилась как следствие недавнего опыта выбора и внедрения системы проактивного мониторинга после миграции проекта с bare metal на облачную инфраструктуру. Рецепт отлично подходит для быстрого теоретического (первая половина статьи) и практического (вторая половина) знакомства. Для некоторых команд исправлены URL'ы, которые в оригинальном материале, по всей видимости, были преобразованы движком medium.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии5

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность