Как стать автором
Обновить
5
0
Денис Ченцов @chenamob

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

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

OAuth 2.0 простым и понятным языком

Время на прочтение7 мин
Количество просмотров790K
Логотип OAuth 2.0

На хабре уже писали про OAuth 1.0, но понятного объяснения того, что такое OAuth 2.0 не было. Ниже я расскажу, в чем отличия и преимущества OAuth 2.0 и, как его лучше использовать на сайтах, в мобильных и desktop-приложениях.

Что такое OAuth 2.0


OAuth 2.0 — протокол авторизации, позволяющий выдать одному сервису (приложению) права на доступ к ресурсам пользователя на другом сервисе. Протокол избавляет от необходимости доверять приложению логин и пароль, а также позволяет выдавать ограниченный набор прав, а не все сразу.

Читать дальше →
Всего голосов 168: ↑153 и ↓15+138
Комментарии44

Пять простых шагов для понимания JSON Web Tokens (JWT)

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

jwt


Представляю вам мой довольно вольный перевод статьи 5 Easy Steps to Understanding JSON Web Tokens (JWT). В этой статье будет рассказано о том, что из себя представляют JSON Web Tokens (JWT) и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

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

Docker. Зачем и как

Время на прочтение6 мин
Количество просмотров501K
Есть множество прекрасных публикаций для тех, кто уже пользуется docker-ом. Есть хорошие статьи для тех, кто хочет этому научиться. Я пишу для тех, кто не только не знает, что такое docker, но и не уверен стоит ли ему это знать.

Я сознательно опускаю некоторые технические подробности, а кое где допускаю упрощения. Если вы увидите, что docker – то, что вам нужно, вы легко найдете более полную и точную информацию в других статьях.
Читать дальше
Всего голосов 62: ↑60 и ↓2+58
Комментарии159

Как «выучить» английский за один год самостоятельно или статья для тех, у кого не сложилось с английским

Время на прочтение6 мин
Количество просмотров118K
С проблемой необходимостью изучения английского сталкивался почти каждый: кто-то долго и упорно учит его в школе (иногда, кстати, успешно), кто-то ищет подходящие курсы, кто-то пользуется онлайн-ресурсами или услугами репетитора. Вопрос, почему за годы изучения английского в школе, результата добиваются немногие, и то те, чьи родители позаботились о наличии хорошего репетитора и возможности уехать в английский лагерь?

Читать дальше →
Всего голосов 45: ↑25 и ↓20+5
Комментарии175

Как оценить уровень владения английским языком

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


На Хабре много статей о том, как самостоятельно изучать английский язык. Но вот вопрос, а как оценить свой уровень при самостоятельном изучении? Понятно, что есть IELTS и TOEFL, но эти тесты почти никто не сдает без дополнительной подготовки и эти тесты, как говорят, оценивают не сколько уровень владения языком, а скорее умение проходить эти самые тесты. Да и использовать их для контроля самообучения будет накладно.

В этой статье я собрал различные тесты, которые проходил сам. При этом я сверяю свою субъективную оценку владения языком с результатами тестов. А также сравниваю результаты между разными тестами.
Читать дальше →
Всего голосов 99: ↑95 и ↓4+91
Комментарии62

Профессиональное выгорание айтишников: 15 ответов психиатра Максима Малявина

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

Burn out нечаянно нагрянет, когда его совсем не ждёшь. Когда человек впервые сталкивается с профессиональным выгоранием, у него возникают вопросы:


— Что со мной: осенняя хандра, депрессия или профессиональное выгорание?
— Что с этим делать?
— К кому идти за помощью?


Мы боимся признать, что у нас проблема. Тянем с походом к врачу, откладываем разговор с руководством. Пока синдром не разворачивается в полную силу, и всё летит кувырком — работа, карьера, семья.


Поэтому так важно разобраться в проблеме заранее, понять, что проблема решаема — и решаема разными способами.


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


Я обратился за разъяснениями к психиатру Максиму Малявину. Хобби Максима не раз спасало меня от плохого настроения, а быть может и от начала профессионального выгорания. Его «Психиатрические байки» способны спасти от серости и печали будней не хуже, чем волшебная пилюлька бромдигидрохлорфенилбензодиазепина. А книги Максима «Записки психиатра, или Всем галоперидолу за счёт заведения!» и «Новые записки психиатра, или Барбухайка, на выезд!» давно прописались на моей книжкой полке.



Читать дальше →
Всего голосов 104: ↑97 и ↓7+90
Комментарии152

Руководство по проектированию реляционных баз данных (7-9 часть из 15) [перевод]

Время на прочтение6 мин
Количество просмотров510K
Продолжение.
Предыдущие части: 1-3, 4-6

7. Связь один-ко-многим.


Я уже показал вам как данные из разных таблиц могут быть связаны при помощи связи по внешнему ключу. Вы видели как заказы связываются с клиентами путем помещения customer_id в качестве внешнего ключа в таблице заказов.

Другой пример связи один-ко-многим – это связь, которая существует между матерью и ее детьми. Мать может иметь множество детей, но каждый ребенок может иметь только одну мать.

(Технически лучше говорить о женщине и ее детях вместо матери и ее детях потому, что, в контексте связи один-ко-многим, мать может иметь 0, 1 или множество потомков, но мать с 0 детей не может считаться матерью. Но давайте закроем на это глаза, хорошо?)

Когда одна запись в таблице А может быть связана с 0, 1 или множеством записей в таблице B, вы имеете дело со связью один-ко-многим. В реляционной модели данных связь один-ко-многим использует две таблицы.

image
Схематическое представление связи один-ко-многим. Запись в таблице А имеет 0, 1 или множество ассоциированных ей записей в таблице B.
Читать дальше →
Всего голосов 15: ↑11 и ↓4+7
Комментарии27

Еще раз про обещания

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

Про обещания (promises) уже много написано. Эта статья — просто попытка собрать наиболее необходимые на практике приемы использования обещаний с достаточно подробными пояснениями того, как это работает.


Общие сведения об обещаниях


Сначала несколько определений.


Обещания (promises) — это объекты, позволяющие упорядочить выполнение асинхронных вызовов.


Асинхронный вызов — это вызов функции, при котором выполнение основного потока кода не дожидается завершения вызова. Например, выполнение http-запроса не прерывает выполнение основного потока. То есть выполняется запрос, и сразу, не дожидаясь его завершения, выполняется код следующий за этим вызовом, а результат http-запроса обрабатывается после его завершения функцией обратного вызова (callback-функцией).


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


Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии28

Очередная node.js-библиотека…

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

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


Все началось примерно 6 лет назад, когда я познакомился с node.js. Около 3 лет назад я начал использовать node.js на проектах вместе с замечательной библиотекой express.js (на wiki она названа каркасом приложений, хотя некоторые могут называть express фреймворком или даже пакетом). Express сочетает в себе node.js http сервер и систему промежуточного ПО, созданную по образу каркаса Sinatra из Ruby.

Читать дальше →
Всего голосов 29: ↑22 и ↓7+15
Комментарии40

Краткая шпаргалка по tmux (менеджеру терминалов)

Время на прочтение1 мин
Количество просмотров415K
tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen, только лучше (в первую очередь потому, что использует модель клиент—сервер).

image

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

Читать дальше →
Всего голосов 59: ↑53 и ↓6+47
Комментарии50

Telegram. Безлимитный сетевой диск. Бесплатный

Время на прочтение3 мин
Количество просмотров184K
Привет, Хабр.

Наверняка многие об этом задумывались, возможно у кого то эта идея лежит в TODO. У меня она пролежала примерно год, но таки удалось ее реализовать в виде работающего прототипа.

TgCloud:


  • Виртуальная файловая система с открытым исходным г****кодом.
  • На локальном диске — только метаданные: имена, размер, структура папок и т.д.
  • Данные хранятся в Telegram и загружаются только при работе с файлом
  • Размер и тип файлов не ограничен, можно использовать с любой ОС

Подробности реализации и ссылка на репозиторий под катом.
Читать дальше →
Всего голосов 211: ↑175 и ↓36+139
Комментарии232

IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там

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

Поехать работать в Австралию или Таиланд, когда тебе 25 и нет семьи, не так и сложно. И таких историй большое количество. А вот переехать, когда тебе под 40, жена и трое детей (8 лет, 5 лет и 2 года) — задача другого уровня сложности. Поэтому хочу поделиться своим опытом переезда в Германию.



Про то, как искать работу за границей, оформлять документы и переезжать – было много сказано, повторяться не буду.


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

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

Получить работу в Германии станет проще

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

19 декабря 2018 года кабинет министров Германии согласовал закон о квалифицированной трудовой иммиграции (Fachkräfteeinwanderungsgesetz). Благодаря ему будет легче мигрировать квалифицированным работникам из стран, не входящих в Европейский Союз. Но эти изменения коснутся только квалифицированных рабочих. Немцы рассчитывают, что специалисты из России, Украины, Индии, Китая и других стран восполнят дефицит кадров. Сразу отмечу, что речь не идет о неквалифицированной или низкоквалифицированной работе.

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

how to: Как и зачем работать с svn через git

Время на прочтение3 мин
Количество просмотров58K
Добрый день!

В статье я расскажу, как мы работаем с svn через git и почему не выбрали чистый git.

SVN


Subversion — это централизованная система контроля версий. Это главный ее минус и главный ее плюс :)

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

Главный минус — это merge… Те, кто часто делает мерж средствами svn, понимает о чем я.
Это медленно (даже меееееееедлееенно), требует постоянного соединения с репозиторием, а еще эти svn-properties, которые мешают читать diff.
Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии41

Самые маленькие Linux-компьютеры

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


Несколько дней назад активисты движения за свободное аппаратное обеспечение выпустили вторую версию крошечного Linux-компьютера VoCore2 размером 25,6×25,6×3,0 мм, то есть с крупную монету (почти вписались по площади в квадратный дюйм). В спичечный коробок поместится примерно восемь таких компьютеров.

Это потомок того самого VoCore, на который собирали деньги через Indiegogo. Всё-таки собрали, и проект живёт. Это абсолютно открытый компьютер, который кто угодно может собрать из указанных комплектующих (или купить плату в сборе за $17,99). Компьютер работает на прошивке OpenWrt/LEDE, то есть идеально подходит на роль портативного маршрутизатора.
Читать дальше →
Всего голосов 60: ↑57 и ↓3+54
Комментарии75

Mozilla разработала открытый шлюз для Интернета вещей

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


Apple, Google, Amazon, Samsung — у каждой из этих компаний собственные стандарты и программы для управления «умными» устройствами собственной марки. В результате они зачастую могут общаться только со своими «родственниками» производства той же фирмы. Смарт-колонка Apple HomePod откажется делать резервную копию данных в облако Amazon или Google и не будет выполнять команды с Andrioid-смартфона. Получается, что для полной интеграции вся техника в доме должна быть от одной компании. Это явно ненормальная ситуация.

В прошлом году организация Mozilla объявила, что работает над созданием единого свободного фреймворка — программ и сервисов для Интернета вещей, работающих по открытому стандарту Web Things API, который использует JSON, REST и WebSockets API.

Фреймворк должен стать единым шлюзом для взаимодействия «умных» устройств разных производителей (Things Gateway). Сейчас организация официально объявила о запуске проекта Mozilla IoT, выложила стек программ и опубликовала руководство по построению системы «умного дома» с использованием Raspberry Pi. Заявка на стандартизацию Web Things API подана в консорциум W3C 2 февраля 2018 года.
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии13

Async/await: 6 причин забыть о промисах

Время на прочтение7 мин
Количество просмотров160K
Если вы не в курсе, в Node.js, начиная с версии 7.6, встроена поддержка механизма async/await. Говорят о нём, конечно, уже давно, но одно дело, когда для использования некоей функциональности нужны «костыли», и совсем другое, когда всё это идёт, что называется, «из коробки». Если вы ещё не пробовали async/await — обязательно попробуйте.

image

Сегодня мы рассмотрим шесть особенностей async/await, позволяющих отнести новый подход к написанию асинхронного кода к разряду инструментов, которые стоит освоить и использовать везде, где это возможно, заменив ими то, что было раньше.
Читать дальше →
Всего голосов 55: ↑48 и ↓7+41
Комментарии182

Строим свой full-stack на JavaScript: Основы

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

Строим свой full-stack на JavaScript: Основы



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


В этом цикле статей я хочу поделиться своим практическим опытом построения JS стека.


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

Заблуждения программистов о трудоустройстве

Время на прочтение3 мин
Количество просмотров92K
Это перевод. Статья опубликована в июне 2018 года

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

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

В стиле известной статьи Патрика Маккензи об именах, вот список главных заблуждений, которые могут быть у программистов (особенно начинающих).
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии442

Slack. Небольшой обзор отличного сервиса

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


Некоторое время назад после волшебного пендаля под названием Tolstoy Summer Camp я начал пилить свой стартап.
Сначала у меня в команде было два разработчика и дизайнер. Потом один разработчик ушёл пилить свой проект. Затем появился другой разработчик. И всё бы ничего, но я сходил с ума от того что не мог найти простых и понятных средств ведения дел в таких маленьких компаниях как моя.
Я перепробовал тучу всяких Basecamp, Asana, Redmine, Trello, Мегаплан и прочих, массу мессенджеров в разных сочетаниях c он-лайн файлопомойками типа Dropbox и GoogleDrive — ничего мне не нравилось. «Ну, не то это всё, не то!».
Но, в конце-концов, решение было найдено.
Всего голосов 64: ↑55 и ↓9+46
Комментарии65

Информация

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