Search
Write a publication
Pull to refresh
21
0
Filipp Frizzy @MrFrizzy

devops

Send message

Как ты реализуешь аутентификацию, приятель?

Reading time10 min
Views126K


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


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


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

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

Объясняем современный JavaScript динозавру

Reading time15 min
Views267K


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Выбираем файловую систему независимую от ОС

Reading time4 min
Views97K
Всем привет. Недавно я задался вопросом как организовать обмен файлами между операционными системами. Предположим, я хочу установить сразу три основные ос на своём ноутбуке: линукс, виндовз и хакинтош. Каждая ос предназначается для своих задач: Линукс — для работы и программирования, винда — для игр и хак — просто для разных экспериментов.

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



Так вот, задача стоит такая: нужен раздел на системном накопителе, причём с такой файловой системой, которая поддерживается на чтение и запись всеми перечисленными операционками. На этом разделе будут храниться скачанные из интернета файлы и меж-операционные проекты.
Читать дальше →

Тащим музыку из ВК без публичного music API

Reading time6 min
Views91K

Как все начиналось


Дело было вечером, делать было нечего… Точнее, я просто хотел загрузить аудиокнигу перед парами и тут меня ждал сюрприз. Кэш в кейт мобайле отключили. Как так? Что делать? Конечно же писать свое приложение с кэшем и аудиозаписями. Но для начала нужно понять, как вк превращает ссылки вида audio%user_id%_%track_id% в прямые ссылки на mp3. Что из этого вышло приложения я не написал и как скачать определенный плейлист можно прочитать под катом.
Читать дальше →

НАСА предлагает избавить мир от угрозы Йеллоустонского супервулкана за $3 млрд

Reading time3 min
Views63K


Сейчас в различных СМИ часто появляются новости, имеющие отношение к Йеллоустонской кальдере. Этот геологический объект представляет собой вулканическую кальдеру в Йеллоустонском национальном парке на северо-западе США. Объект часто называют супервулканом. В 60-х 70-х годах прошлого века ученые определили размер кальдеры. Он составляет 55*72 км, это примерно треть территории одноименного национального парка. Сам регион располагается над так называемой горячей точкой. Здесь расплавленная порода мантии движется в сторону поверхности.

Ранее здесь уже происходили извержения. Так, в те же 60-е годы прошлого века ученые обнаружили руины древнего кратера. Под ним в наше время расположен громадный пузырь раскаленной магмы, причем глубина этого пузыря составляет более 8 километров. На данный момент известно о трех извержения вулкана Йеллоустоун, которые неоднократно приводили к природным катаклизмам, природа которых близка к ядерной зиме. Ученые считают, что если нечто подобное произойдет в наше время, то это может спровоцировать глобальную катастрофу — не только природного, но и социального характера.
Читать дальше →

Как фрилансеру открыть фирму в Латвии и какие преимущества это дает

Reading time23 min
Views53K

1. Введение


Всем привет, меня зовут Владислав, я из России, и я фрилансер-программист. Сейчас на Хабре очень популярная тема — юридические и налоговые вопросы при работе с Upwork, как получать и декларировать плату от зарубежных заказчиков, и так далее.



Я тоже довольно долго изучал эти вопросы. Российское законодательство по этим вопросам сильно зарегулировано, и все эти законы и правила причиняют массу проблем фрилансерам, работающим на зарубежный рынок. В итоге я принял решение перевести свой «бизнес» в другую юрисдикцию. Изучив все возможные варианты, я выбрал такой путь — зарегистрировать фирму ООО в Латвии, и принимать платежи от заказчиков на эту фирму. То есть просто переместить свой бизнес из России в Латвию.

Я уже год работаю в таком формате, я сталкивался с разными проблемами и оценил плюсы и минусы. В итоге я решил, что в сумме я выиграл от такого решения. В комментариях к статьям о фрилансе я периодически читаю вопросы типа «как работать на заказчиков из США», «Как платить налоги на платежи с Upwork-а», и поэтому я решил поделится своим опытом, тем более что подобных статей я еще нигде не видел.
Читать дальше →

В Университете Огайо разработали чип, который может восстанавливать поврежденные ткани в считанные дни

Reading time3 min
Views22K


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

Дело в том, что в Государственном Университете Огайо разработана технология, которая позволяет быстро восстанавливать пораженные ткани. Эта технология получила название «тканевая нанотрансфекция» (англ. tissue nanotransfection или TNT). Заключается технология в специальном чипе, который «впрыскивает» генетический код в клетки кожи, провоцируя трансформацию клеток из одного типа в другой.

Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

Reading time7 min
Views757K
Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Существует два распространенных типа подключения DPI: пассивный и активный.

Пассивный DPI

Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.
Читать дальше →

Офшоры и внешнеэкономические сделки: преимущества и подводные камни

Reading time10 min
Views45K
Привет, Хабр! Продолжаю публикацию своей книги о юридических аспектах IT-бизнеса. Сегодня — об офшорах.



Книга «Закон стартапа»:

  1. Стартапер vs. предприниматель
  2. Выбираем форму
  3. Регистрация
  4. Корпоративное управление
    Как юридически строится компания
  5. Текущая работа
    Договоры и как они работают
    Как проверить партнера по открытым источникам
  6. Налоги
    Что платит IT-бизнес в России?
  7. Государственная поддержка
  8. Цикл стартапа
    Как (в общем) работает венчурное инвестирование
  9. Венчурные сделки
  10. Венчурные фонды
  11. Интеллектуальная собственность
  12. Офшоры и ВЭД
    Преимущества и подводные камни офшоров

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

Децентрализованная биржа — уже полгода в строю

Reading time5 min
Views31K
Привет! Сегодня я расскажу вам про децентрализованную криптовалютную биржу. То есть, технологию, с которой вы можете торговать напрямую с другими пользователями, без необходимости доверять свои средства посреднику-бирже. Да-да, она уже реализована и работает аж с апреля. Называется Asset Exchange.



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

Про NXT уже многие слышали. Вкратце: это не форк Bitcoin, а отдельно написанная криптовалюта, работающая на принципе Proof-of-Stake. Ей уже около года, и подробнее я о ней уже рассказывал почти год назад. На блокчейне NXT уже построены многие интересные фишки:
  • Alias-ы — аналог идеи Namecoin;
  • можно слать и получать шифрованные сообщения на NXT-адрес прямо в клиенте;
  • Asset Exchange — децентрализованная биржа активов, о которой я сегодня расскажу;
  • и даже Digital Good Store — децентрализованная торговая площадка, о которой я расскажу в другой статье.
Читать дальше →

Легальный вывод средств с Upwork в РФ

Reading time8 min
Views66K
На Хабре уже написано достаточно много статьей по теме, в частности:


В ответ на повторяющиеся просьбы написать статью, в которой:

  • разбросанные по разным статьям крупицы будут собранны в единое целое
  • всевозможные противоречия будут устранены
  • все сведения будут иметь актуальный характер
  • будут учтены пожелания такие как «а можно с картинками? :)»

родилось следующее руководство.

Мой опыт переезда в Европу (из Азии)

Reading time6 min
Views49K


Это не пошаговая инструкция как эмигрировать в Европу или куда-нибудь еще. Это просто, по возможности, веселая и, надеюсь, поучительная рассказка как я переезжал из Бангкока в Прагу.


Почему ехать?


Если для вас стоит вопрос “Почему я должен куда-то ехать?” дальше можете не читать. Для меня он не стоял, и ехать было решено окончательно, причем не в первый раз. И не так, как в старом анекдоте про “хочу в Париж, и в прошлом году уже хотел”. Один раз уже решил и уехал в Таиланд. Прожив там 7 лет, решил что надо ехать дальше, остался только вопрос “куда?”.


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

Автоматическая визуализации python-кода с использованием блок-схем

Reading time17 min
Views103K
Речь пойдет о технологии, которая дает возможность реализации инструментов разработчика, подобных показанному на картинке ниже.

image

Общий вид среды с альтернативными представлениями кода

Здесь окно среды разработки разбито на две части. Слева — привычный текстовый редактор, а справа — автоматически генерируемая диаграмма, по возможности приближенная к традиционным блок-схемам алгоритмов. Генерация и перерисовка диаграммы производится по ходу набивки текста. Среда разработки определяет паузу в действиях разработчика и обновляет диаграмму, если код остается корректным. В результате появляется возможность работы не только с текстом программы, но и с его графическим представлением.
осторожно, далее много картинок

Как флитком управляет людьми в онлайновой игре с зашкаливающим уровнем паранойи

Reading time15 min
Views43K


— Слышал, Слон флотом теперь командует?
— В смысле?
— Ну, помнишь, он админил?
— Да.
— Так ты сейчас обсмеёшься, его навыки управления оказались идеальными для управления кланом.

В общем, мне всегда очень хотелось перенять опыт командира флота в Eve Online. Есть такой феномен: люди объединяются в большие корпорации и альянсы, при этом ничего не получают за игру материально, но каким-то чудом все вместе делают общие задачи. Уроки управления местами покруче MBA. И первый — понимание, что Eve — это не космическая игра, а, скорее, соцсеть, к которой прикручена игра про космос. И вести себя надо именно как в соцсети. То есть управление корпорацией — это правильная подача контента.

Очень, очень многое у флиткома перекликается c тем, что нужно знать руководителю. И мне очень жаль, что этот диалог у нас не состоялся лет пять назад.
Читать дальше →

Что нужно знать, уметь и понимать, чтобы не иметь проблем с поиском работы питонистом

Reading time10 min
Views179K
Язык — лишь малая часть того, что вам нужно знать. Может быть около 5%, а то и меньше.

Эта статья повторяет и дополняет содержание моего выступления «Что отличает джуниора от сеньора или как питонисту не иметь проблем с поиском работы» на последнем MoscowPython Meetup 39. Многие обращались ко мне после выступления с вопросами и я обещал опубликовать статью на Хабре и обсудить в комментариях.

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

no problem

Таки что же?!

Мгновенный запуск почти любой OS под Linux используя libvirt + qemu

Reading time7 min
Views30K

По ходу работы над CoreOS и Kubernetes мне приходилось часто воспроизводить окружения пользователей, чтобы помочь им решить проблему. Согласитесь, что при запуске OS при помощи контейнера, не всегда можно добиться полного функционала OS, т.к. часто приходилось решать вопросы, связанные с systemd.


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


  • Ubuntu
  • Debian
  • CentOS 6/7 + atomic
  • Fedora + atomic
  • CoreOS

Частично:



Публикации поспособствовал коллега, который случайно увидел, как я тестирую код. А теперь о преимуществах перед Vagrant. Первое преимущество — время. Например, три виртуальные машины создаются всего за 20-30 секунд.


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

Патчим gnupg или пара RSA-32768 за 106 минут

Reading time10 min
Views15K
security

На самом деле патчим gnupg и libgcrypt…

Когда-то давным давно, чтобы использовать 8192 и 16384 RSA ключи я правил размер в keygen.c и размер SECMEM буффера по соседству. Дела давно минувших дней, теперь SECMEM вынесена в config.h и именуется SECMEM_BUFFER_SIZE.

В итоге после скачивания верии 2.0.29 под свежий debian 8.3, за место убитой 12й убунты апдейтом на 14ую, я быстренько подкрутил размер ключика и размер буфера и радостно сгенерировал на 5200U 16кбит ключ за 18 (или 19) минут, что раньше занимало 45-50 минут на P6200.

Но вот 32кбит дали мне пачку ошибок. Свободное время есть — разбираемся.
Читать дальше →

СКУД, малина и чайник

Reading time5 min
Views21K
imageОсновные действующие лица перечислены в заголовке, а в результате мы получим прототип простой системы контроля доступа на основе точно такого RFID модуля RC522, которую можно использовать не только для открывания двери, но и выполнения любого аналогичного действия путем подачи и прекращения подачи управляющего сигнала.

В виде наличия множество разнообразной информации в интернете с не совсем рабочими примерами, постараюсь описать все пошагово и подробно. Данный модуль работает с RFID картами на частоте 13,56 МГц и легко понимает кроме карт и чипов с такой частотой, ещё и единые проездные билеты Москвы (я использовал использованный одноразовый единый билет), а также NFC-метки.
Читать дальше →

Пишем shell скрипты на Python и можно ли заменить им Bash

Reading time6 min
Views130K
В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

if [ $# -ne "$ARGCOUNT" ]
then
    echo "Usage: `basename $0` filename"
    exit $E_WRONGARGS
fi

Элементарно правда? Интуитивно понятный синтаксис. :)

Тем не менее в python эти конструкции намного проще. Каждый раз когда я пишу что то на баше, то непременно лезу в поисковик чтобы вспомнить как писать простой if, switch или что-то еще. Присвоение я уже запомнил. :) В Python все иначе. Я хоть и не пишу на нем круглые сутки, но никогда не приходилось лезть и смотреть как там сделать простой цикл, потому что синтаксис языка простой и интуитивный. Плюс ко всему он намного ближе к остальным мейнстримовым языкам типа java или c++, чем Bash/Sh.

Также в стандартной и прочих библиотеках Python есть намного более удобные библиотеки чем консольные утилиты. Скажем, вы хотите распарсить json, xml, yaml. Знаете какой я недавно видел код в баше чтобы сделать это? Правильно:

python -c "import json; json.loads..." :)

И это был не мой код. Это был код баше/питоно нейтрального человека.

То же самое с регексом, sed бесспорно удобная утилита, но как много людей помнит как правильно ее использовать? Ну кроме Lee E. McMahon, который ее создал. Да впринципе многие помнят, даже я помню как делать простые вещи. Но, на мой взгляд, в Python модуль re намного удобнее.

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

Велкам под кат.
Читать дальше →

Вы зарабатываете на информации (зачем нужен API и как его грамотно спроектировать)

Reading time10 min
Views24K
Здравствуйте, меня зовут Александр Зеленин и я веб-разработчик.
Информация — основа любого приложения или сервиса.



Более 10 лет назад я общался с владельцем покер-рума, и он показал мне страницу, приносившую около 10 000$ в день. Это была совершенно банально оформленная страница. На ней не было ни стилей, ни графики. Сплошной текст, разбитый заголовками, секциями и ссылками. У меня просто не укладывалось в голове — ну как вот это может приносить такие деньги?

Секрет в том, что «вот это» было одним из первых исчерпывающих руководств по игре в покер онлайн. У страницы был PageRank 10/10 (или 9, не суть), и в поисковой выдаче это было первое, на что натыкались.

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

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

Я не рассматриваю магазины, продающие «на эмоциях», и покупки, о которых пользователь может потом пожалеть.

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

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

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

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

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

Видео-сервис — видеозаписи
В какой-то момент youtube набрал критическую массу видеозаписей и стал лидером рынка. У них был не самый удобный сайт, не самые лучшие условия. Вообще многое было не так, но именно обилие контента привлекало посетителей, и как следствие, контента становилось только больше.


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

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

Я расскажу, как организовать работу с информацией так, чтобы это было:
1. Масштабируемо — репликация, шардирование и т.п. настраивается БЕЗ вмешательства в работу приложения.
2. Удобно для пользователей — легко документировать, понятно как использовать.
3. Удобно для ваших разработчиков — быстрое прототипирование, возможности оптимизации только необходимого.

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

Как же правильно работать с информацией?

Information

Rating
Does not participate
Registered
Activity