Pull to refresh
0
@CrazyTimonread⁠-⁠only

Front-end developer

Send message

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

Reading time10 min
Reach and readers135K


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


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


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

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

Так зачем же внедрять ERP-системы

Reading time8 min
Reach and readers44K
Казалось бы, этот вопрос давно уже решен и всем всё ясно. Нет, ребята, все не так, все не так, ребята. Я сам писал на эту тему несколько лет назад, но прошли годы, ситуация изменилась. Да и страна у нас сильно изменилась, это тоже важно.

Я постоянно веду переговоры с собственниками бизнесов и могу сказать однозначно — понимание, зачем внедрять ERP-системы, пришло далеко не ко всем.

Когда ты задаешь такой вопрос, то можно услышать много разных вариантов ответов.
Например:

  • чтобы автоматизировать бизнес-процессы
  • чтобы избавиться от бардака
  • чтобы сделать единую монолитную систему
  • чтобы внедрить в компании современные технологии
  • чтобы сократить штат


И реже (но все чаще и чаще) звучат такие ответы как:

  • чтобы улучшить качество планирования
  • чтобы снизить запасы
  • чтобы увеличить скорость потока и оборачиваемость
  • чтобы производить точно в срок
  • чтобы повысить прибыльность проектов

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

Проектирование Web API в 7 шагов

Reading time14 min
Reach and readers87K
7steps Разработка веб API это нечто большее чем просто URL, HTTP статус-коды, заголовки и содержимое запроса. Процесс проектирования – то, как будет выглядеть и восприниматься ваш API – очень важен и является хорошей инвестицией в успех вашего дела. Эта статья кратко описывает методологию для проектирования API с опорой на преимущества веба и протокола HTTP, в частности. Но не стоит думать, что это применимо только для HTTP. Если по какой-то причине вам необходимо реализовать работу ваших сервисов используя WebSockets, XMPP, MQTT и так далее – применяя большую часть всех рекомендаций вы получите практически тот же API, который будет хорошо работать. К тому же полученный API позволит легче разработать и поддерживать работу поверх нескольких протоколов.

Хороший дизайн затрагивает URL, статус-коды, заголовки и содержимое запроса


Обычно руководства по проектированию Web API фокусируются на общих концепциях: как проектировать URL, как правильно использовать HTTP статус-коды, методы, что передавать в заголовках и как спроектировать дизайн содержимого, которое представлено сериализованными данными или графом объектов. Это всё очень важные детали реализации, но не настолько в смысле общего проектирования API. Проектирование API – это то, как сама суть сервиса будет описана и представлена, то что вносит значительный вклад в успех и удобность использования Web API.

Хороший процесс проектирования или методология предоставляют набор согласованных и воспроизводимых шагов для создания компонентов сервисов, которые будут доступны в виде Web API. Это значит, что такая прозрачная методология может быть использована разработчиками, дизайнерами и архитекторами для координации своих действий по реализации ПО. Использованная методология так же может уточнятся со временем по мере того, как улучшается и автоматизируется процесс без ущерба для деталей методологии. На самом деле, детали реализации могут меняться (например, платформа, ОС, фреймворки и стиль UI) независимо от процесса проектировки, когда эти две активности полностью разделены и задокументированы.
Читать дальше →

Интервью со skype-мошенником

Reading time4 min
Reach and readers292K
Несколько дней назад Сергей Доля рассказал о том, как мошенники взломав скайп его друга, начали рассылать сообщения по контакт-листу с просьбой перевести денег. За несколько часов злоумышленникам по оценкам самого Доли удалось получить более 250 000 рублей. Об этом также писал tjournal.



Схема развода далеко не нова. Одна из самых известных историй на эту тему описана почти два года назад. Стыдно признавать, но около года назад я сам стал жертвой таких же (тех же самых?) мошенников. Один из старых знакомых, от которого давно не было ничего слышно, внезапно написал с просьбой перевести немного денег, потому что «очень надо». Да-да, я знаю, «как так можно», «ну что за лох» и всё такое. В общем, просто желаю вам не попадаться.

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

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

Что на самом деле происходит, когда пользователь вбивает в браузер адрес google.com

Reading time19 min
Reach and readers476K


Эта статья является попыткой ответа на старый вопрос для собеседований: «Что же случается, когда вы печатаете в адресной строке google.com и нажимаете Enter?» Мы попробуем разобраться в этом максимально подробно, не пропуская ни одной детали.

Примечание: публикация основана на содержании репозитория What happens when...

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

Мы перенесли перевод в репозиторий GitHub и отправили Pull Request автору материала — оставляйте свои правки к тексту, и вместе мы сможем значительно улучшить его.
Читать дальше →

Батяня-комбат для разработчика: специально обученные чуваки, которые как консильери в мафии

Reading time10 min
Reach and readers17K


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

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

Сейчас расскажу, как такие вещи помогали в разработке и около неё. Вообще, главная беда психологии программистов, ушедших в бизнес — фокус внимания на постоянной текучке и непонимание приоритетов.
Читать дальше →

Бонд. Джеймс Бонд. Роботизированная подделка почерка для маркетологов и социальных инженеров

Reading time2 min
Reach and readers46K


Маркетологи быстро выяснили, что в «системе принятия решений о доверии» есть уязвимость — люди охотнее доверяют рукописному тексту, чем печатному. Очень быстро появились рукописные шрифты и подписи в объявлениях/письмах, но они легко распознавались. Теперь же есть возможность автоматизированного написания «от руки» настоящей ручкой (даже перьевой), с учетом всех отступов, расстояний неровностей, несоблюдением пропорций, нажима и углом наклона (осталось следы от шоколадки и кофе автоматически эмулировать).

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

У сервиса Bond, который предоставляет услуги по отправке реальных писем, есть все шансы пройти «рукописный тест Тьюринга» (т.е. человек не сможет отличить, писал ли этот текст человек или робот).

Я часто говорил, что достаточно знаю ИТ, чтобы не доверять ИТ, теперь же рухнуло и доверие к «реальным документам». Достаточно несколько школьных сочинений скормить нейронным сетям, чтобы они смогли писать за меня (и даже лучше чем я). Кстати, сервис Bond предоставляет услуги по улучшению/тьюнингу вашего почерка.

Итак, что же нам нужно, чтобы на нас оставили завещание?
Шаг первый. Создаем 3d принтер, который эмулирует письмо от руки
Шаг второй. Создаем самообучающуюся программу и скармливаем ей несколько листов рукописного текста жертвы клиента
Шаг третий. Profit

Под катом краткий обзор оборудования, примеры писем, знакомство с проектами Maillift (письма «от руки»), Bond (письма от руки и распознание и эмуляция почерка), Herald (как студенты свой принтер спаяли)

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

Почему научиться программировать так чертовски тяжело?

Reading time14 min
Reach and readers433K
Привет, Хабр!

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

  • С чего начать обучение программированию?
  • У вас есть курс по Java для новичков, но я слышал, что нужно изучать Python, правда ли это?
  • На других сайтах все просто и понятно, а у вас какие-то компиляции и тесты!
  • Непонятно зачем нужен этот ваш курс по алгоритмам, в реальной жизни все алгоритмы уже реализованы в стандартных библиотеках

Но сложнее всего объяснить новичку, грубо говоря, во что он ввязывается. Благодаря очень простым, игровым образовательным проектам многие считают, что программирование это очень легко, а наши виртуальные машины, где нужно запускать тесты и компилировать код – это надуманная сложность. Давно хотелось найти такой материал, который бы подготовил новичка к длинному и сложному пути к карьере программиста. И недавно наши коллеги из Viking Code School такой материал написали! А мы его перевели для вас.




Квинси Ларсон был просто “офисным парнем в костюме”. Он решил научиться программировать. Начал спрашивать людей вокруг. Изучил немного Руби, потом быстренько посмотрел на другие языки вроде Scala, Clojure и Go. Он изучил Emacs, а потом Vim, а потом раскладку Dvorak. Он втыкал в Линукс, копался с Лиспом и кодил на Питоне, и жил при этом в командной строке больше полутора лет.

Его швыряло туда-сюда как листочек в торнадо. Каждый совет, который он слышал, тащил его то в одну, то в другую сторону, до тех пор пока он не прошел “каждый онлайн-курс по программированию во вселенной”. В конце концов, не смотря на то, что он получил работу разработчика ПО, Квинси:

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

Ох. Звучит знакомо?
Читать дальше →

USB killer

Reading time2 min
Reach and readers445K
Было обычное хмурое зимнее утро, мы с коллегами по обыкновению пили утренний кофе, делились новостями, ничто не предвещало беды. Но тут приятель рассказал… далее цитата из скайп чата:

Как-то читал статейку как парень в метро вытянул у чавака из сетчатого кармана сумки флеху, на которой 128 было написано. Пришел домой, вставил в ноут -> спалил пол компа… Написал на флехе 129 и теперь носит в наружном кармане своей сумки...

Картинка для привлечения внимания:



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

Потрясающая коллекция бесплатных шрифтов за 2014 год

Reading time1 min
Reach and readers123K
Привет, Хабр! Многие уже знают о моей страсти к попытке собрать самое лучше, что может быть полезно для веб-разработчиков или веб дизайнеров. И шрифты — не исключение. Программное обеспечение для работы со шрифтами постоянно развивается. Количество дизайнеров желающих опробовать себя в типографике растет с каждый днем. А сегодня я хочу представить вам их наработки — 30 потрясающих бесплатных шрифтов, которые мне удалось собрать за последний год.

Polar



Polar

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

Лучшие плагины для Sublime Text

Reading time5 min
Reach and readers654K

WebInspector


Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



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

Youtube

Reading time1 min
Reach and readers225K
Приходится ждать загрузки видео >360p по несколько секунд, обрывы на середине просмотра стало уже обыденным делом и это с достаточно широким каналом.

image

Причина в занижении провайдерами скорости к серверам кеширующим видео, всё что нужно сделать это заблокировать доступ к ним.

Для того чтобы запрос шел мимо cdn серверов ютуба надо заблокировать диапазон ip адресов (в роутере или на компьютере).

173.194.55.0/24 и 206.111.0.0/16
Читать дальше →

Взгляд изнутри: мир вокруг нас – 3

Reading time6 min
Reach and readers125K

Посвящается всем, кто любил, помогал,
верил, поддерживал, несмотря ни на что,
и с кем я не мог быть рядом …


Всё хорошее когда-нибудь заканчивается. Мне безмерно жаль, что данный пост будет заключительным в серии увлекательного – по крайней мере, я надеюсь на это – путешествия в микро- и иногда даже наномир, о котором 50 лет назад без преувеличения великий физик Фейнман сказал: “There is plenty of room at the bottom”. Действительно внизу гораздо больше места, чем мы могли бы себе представить. Там, внизу, живут бактерии, размножаются растения и животные, работают наши повседневные приборы от кофеварки до Ватсона (Watson, IBM), там протекает невообразимое множество процессов, которые зачастую не дано понять и осмыслить человеку, но которые определяют наш мир.

Многое, конечно, осталось за пределами нашего рассмотрения в данной серии публикаций, однако даже того материала, который был представлен и будет сегодня пожалован на суд общественности с лихвой хватит для того, чтобы даже самого скептически настроенного обывателя заставить оглянуться вокруг и узреть многогранность мира. Не вдаваясь глубоко в философию Канта, моя максима такова: я желал бы видеть большую часть русскоговорящего населения, способного прочитать данный пост (будь то украинцы, россияне, прибалты или кто-либо ещё), заинтересованной и увлечённой – в моём случае, наукой и исследованиями – и, думаю, что немного преуспел на этом поприще.

Вояж в глубины нашего мира начинается прямо сейчас

Автомобильная телеметрия за 100$

Reading time4 min
Reach and readers82K
Так вышло, что я довольно давно интересуюсь автомобилями и автоспортом, однако моя основная работа непосредственно связана с разработкой под мобильные платформы — и мне всегда были интересны возможности для связи технологий из этих разных миров. К счастью, последнее время для этого стало гораздо больше возможностей. В этой заметке хочу коротко поделиться своим опытом работы с автомобильной телеметрией.

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

image

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

Racing technologies: Electronic Control Unit

Reading time3 min
Reach and readers8.8K
Привет, коллеги! image
Сегодня я немножко отклонюсь от традиционных для меня тем информационной безопасности и расскажу про электронику, с которой я работаю в свободное время: системы управления двигателем гоночных автомобилей.
Но начнем с описания ситуации в целом. В автоспорте, как собственно и во многих других технических видах спорта, довольно часто результат зависит не только от спортсмена, но и от «снаряда» который он использует. Поэтому требуется профессиональный подход к подготовке и настройке болида. Конечно же, нюансов очень много. Но если грубо разделить его на части, то это будет настройка шасси и настройка двигателя. Сегодня хотелось бы рассказать вам, какая электроника используются при работе с «сердцем» гоночных автомобилей.
Читать дальше →

Sqimitive.js — Frontend Primitive или «Backbone без фантиков»

Reading time31 min
Reach and readers20K
Уже довольно давно большинство сайтов перестало быть набором HTML/PHP/CSS/JS-файлов, которые достаточно просто загрузить на сервер. Bower, Grunt, Component.js, AMD, Require.js, CoffeeScript, Clojure, Composer, npm, LESS и ещё 100500 инструментов — всё это сегодня применяется для сборки проектов, обновления компонентов, загрузки зависимостей, сжатия кода, компиляции из одного JavaScript в другой, подтасовки карт, прополки огорода и даже готовки яичницы.

Многих людей это вдохновляет. Да что там — 95% моих знакомых в один голос твердят, как подключив всего пару-тройку библиотек с особой, уличной магией можно забабахать сайт на over-9000 зелёных австралийских долларов — и всего за один вечер, с перерывом на кофе и бублики.

А я — странный человек. Не люблю смешения языков, технологий, библиотек. Angular, Knockout, React — они все хороши, но каждая — по-своему сложна. А ведь есть и «гибриды», где сходится сразу несколько миров — как Ember и Knockout.Bootstrap. Вдобавок, многие построены на jQuery — впрочем, к ней даже у меня претензий нет; наверное, таким и должен был быть JavaScript.

Как бы то ни было, реальность беззастенчиво входит в контакт с мечтами и расставляет точки над «i». Мне так же приходится писать на «new & popular» — а когда пишешь, душа томится и просится создать очередной велосипед… а ей разве откажешь? Она ведь как дитя малое.

Велосипед был создан. Велосипед без фантиков. Такой же простой, как автомат Калашникова, и многогранный, как швейцарский нож, где вместо наследования — события, вместо моделей, коллекций и представлений — один класс, с неограниченной вложенностью и полной свободой действий, почти в два раза меньший Backbone.js, использующий Underscore.js и, необязательно, jQuery/Zepto.

Добро пожаловать в Sqimitive.
Zen Book: введение в нирвану

Собеседование на должность JavaScript разработчика

Reading time4 min
Reach and readers290K


Недавно прочитал неплохой пост на тему поиска работы QA и подумал, что похожий пост был бы полезен для JavaScript разработчиков. В конечном счёте, веб движется вперед семимильными шагами, и соискателей на позицию JavaScript программиста хоть отбавляй (разумеется, хороших всегда меньше).
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика #24

Reading time5 min
Reach and readers59K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webhook


image

Webhook — это платформа для создания сайтов. Важно не путать со статическими генераторами, потому что это именно «CMS builder». Проект успешно завершил кампанию на Kickstarter 14 мая этого года, где смог собрать сумму в два раза большую, чем было необходимо. А буквально недавно состоялся релиз первой версии продукта. Webhook построен с использованием NodeJS, Grunt и Firebase для реалтайма, работает на Windows, Linux и Mac, внутри целая система виджетов со множеством вариаций на выходе, «Django-like templating» с помощью Swig JS, кроссплатформенная админ панель и еще целый ряд плюсов.
Читать дальше →

Изучаем Three.js.Глава 1: Создаем нашу первую 3D-сцену, используя Three.js

Reading time13 min
Reach and readers118K
Всем привет!
Хочу начать вольный перевод замечательной книги «Learning Three.js- The JavaScript 3D Library for WebGL». Я уверен, что эта книга будет интересна не только новичкам, но и профессионалам своего дела. Ну не буду долго затягивать вступление, только приведу пример того, что мы совсем скоро сможем делать:



Будущее начинается здесь

Отладка асинхронного JavaScript с помощью Chrome DevTools

Reading time6 min
Reach and readers37K

Вступление


Возможность асинхронной работы с помощью callback-функций(далее просто возвращаемых функций) — отличительная особенность JavaScript. Использование асинхронных возвращаемых функций позволяет вам писать событийно-ориентированный код, но так же добавляет кучу проблем, ведь код перестает выполняться в линейной последовательности.

К счастью, теперь в Chrome Canary DevTools вы можете отслеживать весь стек вызовов асинхронных функций в JavaScript!
Под катом 10Mb трафика

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity