Pull to refresh
0
0
Олег@motakuji

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

Send message

Разрешаем доступ к веб-серверу только через CloudFlare (iptables)

Reading time2 min
Reach and readers21K

Cloudflare — отличная штука для защиты сайтов от разных компьютерных жуликов — хацкеров. Однако, если они всё же узнали как-то оригинальный IP веб-сервера, на котором расположен сайт, они как минимум будут пробовать атаковать его по IP, минуя прокси. Можно городить редиректы, слать NGINX-ом ресеты кодом 444 при попытке зайти на несуществующие домены, но самый железный выход из ситуации такой: открыть http/https трафик на сервер только для IP адресов нашей защитной прокси.
Читать дальше →

Введение в смарт-контракты

Reading time23 min
Reach and readers75K
В этой статье мы рассмотрим, что такое смарт-контракты, какие они бывают, познакомимся с разными платформами смарт-контрактов, их особенностями, а также обсудим, как они устроены и какие преимущества могут в себе нести. Данный материал будет очень полезен для читателей, которые недостаточно хорошо знакомы с темой смарт-контрактов, но хотят приблизиться к ее пониманию.
Читать дальше →

Шесть экспериментов от Skyscanner, которые принесли рост мобильному приложению

Reading time6 min
Reach and readers4.6K
Главный growth менеджер в Skyscanner Катерина Тониоло (Caterina Toniolo) рассказала на Epic Growth Conference о том, как команда проверяла гипотезы и проводила эксперименты, чтобы увеличить рост мобильного приложения.


Смотрите видео и читайте заметки под катом.

Как машины анализируют большие данные: введение в алгоритмы кластеризации

Reading time13 min
Reach and readers17K


Перевод How Machines Make Sense of Big Data: an Introduction to Clustering Algorithms.

Взгляните на картинку ниже. Это коллекция насекомых (улитки не насекомые, но не будем придираться) разных форм и размеров. А теперь разделите их на несколько групп по степени похожести. Никакого подвоха. Начните с группирования пауков.


Закончили?

Как устроен поиск

Reading time15 min
Reach and readers44K
Привет, юзернейм! Каждый день мы сталкиваемся с поиском различных данных. Почти на каждом веб-сайте с большим количеством информации сейчас есть поиск. Поиск есть в домашних компьютерах, в мобильных телефонах, в различного рода программном обеспечении. Конечно, если спросить любого разработчика про поиск с точки зрения технологий, на ум сразу придет elasticsearch, lucene или sphinx. Сегодня я хочу заглянуть с тобой «под капот» полнотекстового поиска и разобраться в первом приближении, как же он работает, на примере hh.ru.

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

Истерия вокруг GDPR

Reading time12 min
Reach and readers35K
Статья опубликована 18 мая 2018 года

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

Эта статья является попыткой успокоить нервы тех, кто чувствует, что (их) мир на грани краха. Вообще, когда дело доходит до каких-либо законов, в том числе этого, главный принцип — Don't Panic. Статья предназначена конкретно для владельцев маленьких и средних компаний, которые активны в интернете и сейчас оказались немного в шоке.

Немного о себе: я около десяти лет занимаюсь технической экспертизой для сделок M&A (с командой из восьми человек). Этот опыт, а также убеждённость, что за конфиденциальность в интернете стоит бороться, привели меня к детальному изучению политики конфиденциальности в Сети. В итоге я сейчас отлично понимаю воздействие GDPR и вижу, как компаниям реагировать на новые правила.
Читать дальше →

Истерия вокруг GDPR, часть 2. Полезные советы

Reading time25 min
Reach and readers18K
Статья опубликована 21 мая 2018 года

Первая часть статьи здесь. Если не читали её, пожалуйста, ознакомьтесь для контекста.

Разобравшись с самыми распространёнными заблуждениями о GDPR, давайте посмотрим на реальное влияние GDPR. Затем рассмотрим наиболее важные полезные советы для владельцев сайтов.

В любом законе кроме его буквального текста есть ещё дух закона, его предназначение. В данном случае предназначение GDPR состоит в том, чтобы обуздать корпорации, которые проявляют худшие практики ведения бизнеса в интернете с нарушением конфиденциальности пользователей. Законодатели стремятся вернуть контроль над данными обратно владельцам этих данных — частным лицам, которые здесь являются субъектами (отсюда термин «субъекты данных»). Есть бесчисленное множество примеров таких нарушений. Не собираюсь их здесь перечислять — на это просто не хватит времени. Но будьте уверены: положение дел таково, что регулирование не начнёт действовать быстро. Постоянные читатели моего блога знают, что тема конфиденциальности мне дорога, поэтому я приветствую GDPR и надеюсь, что закон приведёт к желаемому эффекту. Судя по количеству писем от компаний, которые почти умоляют меня разрешить им присылать спам и дальше — вероятно, это единственный закон, который явно положительно повлиял на мою жизнь ещё до того, как вступил в силу. (По иронии судьбы, эти компании нарушают закон, рассылая такие сообщения…).
Читать дальше →

Навигация с архитектурными компонентами от Google. Часть 1. Знакомство

Reading time8 min
Reach and readers21K

Одной из проблем, с которыми сталкивается разработчик немного подразросшегося приложения — навигация между экранами. Когда сценарии становятся нелинейными, уже тяжело обойтись стандартными startActivity и changeFragment. Эту проблему каждый решал по-своему: делал какое-то свое решение для навигации, использовал стороннее (к примеру, Cicerone) или же оставлял все как есть и городил кучу флагов и if else. Это очень огорчало инженеров Google, и вот уже на Google I/O 2018 появилось решение Navigation, которое идёт в комплекте с остальными Архитектурными компонентами!


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


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

Правдоподобная реконструкция Инстаграм-подобных фильтров

Reading time4 min
Reach and readers11K

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


https://github.com/homm/color-filters-reconstruction


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


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



Для сравнения, это результат применения того же фильтра из коммерческого набора «Инстаграм-подобных фильтров», который вы без труда сможете нагуглить:


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

Proof-of-Proof-of-Work на пальцах. На пути к разумному блокчейну

Reading time4 min
Reach and readers8.8K
Блокчейн-протоколы должны обеспечивать консенсус среди нод децентрализованной системы. Пожалуй, самым известным алгоритмом консенсуса можно считать «тормозунутый, но надежный, потому что тормознутый» алгоритм Proof-of-Work: каждая нода, имея набор новых транзакций перебирает некоторое число nonce, являющееся полем блока. Блок считается валидным, если валидны все транзакции внутри него и хэш-функция от заголовка блока имеет некоторую общепринятую особенность (например, количество нулей в начале, как в Bitcoin):

Hash(  Block{transaction,nonce,…} ) = 000001001...

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

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

Анализ данных — основы и терминология

Reading time6 min
Reach and readers112K
В этой статье я бы хотел обсудить базовые принципы построения практического проекта по (т. н. «интеллектуальному») анализу данных, а также зафиксировать необходимую терминологию, в том числе русскоязычную.

Согласно википедии,
Анализ данных — это область математики и информатики, занимающаяся построением и исследованием наиболее общих математических методов и вычислительных алгоритмов извлечения знаний из экспериментальных (в широком смысле) данных; процесс исследования, фильтрации, преобразования и моделирования данных с целью извлечения полезной информации и принятия решений.
Говоря чуть более простым языком, я бы предложил понимать под анализом данных совокупность методов и приложений, связанных с алгоритмами обработки данных и не имеющих четко зафиксированного ответа на каждый входящий объект. Это будет отличать их от классических алгоритмов, например реализующих сортировку или словарь.
Читать дальше →

Операционные системы с нуля; уровень 1 (старшая половина)

Reading time22 min
Reach and readers42K

Настало время следующей части. Это вторая половина перевода лабы №1. В этом выпуске мы будем писать драйверы периферии (таймер, GPIO, UART), реализуем протокол XMODEM и одну утилитку. Используя всё это мы напишем командную оболочку для нашего ядра и загрузчик, который позволит нам не тыкать microSD-карточку туда-сюда.


Младшая половина.
Начинать чтение стоит с нулевой лабы.

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

Слушайте! 50 лучших подкастов для разработчиков

Reading time12 min
Reach and readers19K
Развиваться, узнавать о технологиях и быть в курсе последних подходов – для ITшника особенно важно. Читать книгу не всегда удобно, смотреть видео-обзоры любят не все и времени много занимает.

Держите 50 IT-подкастов о технологических новинках в сфере ИБ, облачных технологий, IoT, тестирования и управления проектами. Все подкасты на английском языке, для прослушивания нужно знать его на уровне upper intermediate и выше.


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

Написание Telegram-бота для Habrahabr

Reading time4 min
Reach and readers28K

В этой статье я хочу рассказать о том, как происходило написание Telegram-бота, который мог бы отправлять статьи с Habrahabr, сначала на Python, а потом и на Go, и что из этого вышло.

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

Blockchain на Go. Часть 2: Proof-of-Work

Reading time7 min
Reach and readers19K
Привет, Хабр! Представляю вашему вниманию перевод статьи "Building Blockchain in Go. Part 2: Proof-of-Work".

Содержание
  1. Blockchain на Go. Часть 1: Прототип
  2. Blockchain на Go. Часть 2: Proof-of-Work
  3. Blockchain на Go. Часть 3: Постоянная память и интерфейс командной строки
  4. Blockchain на Go. Часть 4: Транзакции, часть 1
  5. Blockchain на Go. Часть 5: Адреса
  6. Blockchain на Go. Часть 6: Транзакции, часть 2
  7. Blockchain на Go. Часть 7: Сеть


Вступление


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

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

Операционные системы с нуля; Уровень 0

Reading time11 min
Reach and readers140K

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

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

Что я хотел бы знать до того, как стал техническим директором

Reading time5 min
Reach and readers17K


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

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

Как пробиться на вершину Product Hunt

Reading time10 min
Reach and readers5.9K


Прежде чем рассказывать, как забраться на вершину рейтинга Product Hunt, я, пожалуй, покажу, что пытается сделать БОЛЬШИНСТВО — терпя при этом неудачу и обрекая себя на глухие рыдания в подушку.

Как неудачники выходят на Product Hunt


  1. Гуглят «Как попасть в топ Product Hunt».
  2. Читают 2–3 статьи, в каждой из которых по 5–10 советов.
  3. Используют 5 самых простых советов.
  4. Ждут…
  5. Терпят неудачу (т. е. даже не попадают на первую страницу).
  6. Плачут.
  7. Не имеют ни малейшего понятия, что они сделали не так.

На 100% максимально совершенно абсолютно надежный способ попасть в топ Product Hunt (и получить шанс станцевать победный танец)


Будем смотреть правде в глаза: Product Hunt — игра с нулевой суммой. Варианта здесь только два: ты либо попадаешь на первую страницу и пожинаешь плоды, либо не попадаешь — и отваливаешь. Поэтому обязательно нужно попасть на первую страницу — как минимум, — а лучше в топ-3.

ВНИМАНИЕ! Если продукт совершенно отстойный, ему ничто не поможет. Но если он местами неплох, то мои подсказки могут сработать.

Переведено в Alconost
Читать дальше →

Изучение Spring Framework 100% через практику. Активные туториалы и язык разметки KML. Проект KciTasks (beta)

Reading time15 min
Reach and readers112K


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

В результате, мы получаем целенаправленное обучение, но БЕЗ ступоров, проблем непонимания вида «а где это использовать», а также без скучного и пассивного чтения теории. Совсем.

В рамках статьи представлено 5 учебных задачек, которые покрывают Spring Jdbc/Transactions на 50% от необходимых для сертификации знаний. Главная задача статьи — массово протестировать саму идею, а также вместе с вами разработать большое количество уникальных задачек по всем темам.
Читать дальше →

Игра за час или убиваем время в Unity

Reading time2 min
Reach and readers29K
Привет, Хабр!

Сегодня вечером у меня появилось свободное время и в процессе бесполезного путешествия по просторам своего ноутбука обнаружил установленную Unity3d, до которой так и не дошли руки.
Ну и решил что-нибудь простое намутить.
Читать дальше →

Information

Rating
Does not participate
Location
Noord-Holland, Нидерланды
Date of birth
Registered
Activity