Как стать автором
Обновить
1
0
Даниил Третьяков @bodrov

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

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

Как быстро настроить email-аутентификацию в Django

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

Всем привет!


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


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


Django

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

Альманах пакетных менеджеров Linux

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

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


Управление пакетами

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

Читать дальше →
Всего голосов 24: ↑18 и ↓6+12
Комментарии44

Как правильно оформить Open Source проект

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

В свободное и не свободное время[1] я развиваю несколько своих проектов на github, а также, по мере сил, участвую в жизни интересных для меня, как программиста, проектах.


Недавно один из коллег попросил консультацию: как выложить разработанную им библиотеку на github. Библиотека никак не связана с бизнес-логикой приложения компании, по сути это адаптер к некоему API, реализующему определённый стандарт. Помогая ему, я понял что вещи, интуитивно понятные и давно очевидные для меня, в этой области, совершенно неизвестны человеку делающему это впервые и далёкому от Open Source.


Я провел небольшое исследование и обнаружил что большинство публикаций по этой теме на habrahabr освещают тему участия (contributing), либо просто мотивируют каким-нибудь образом примкнуть к Open Source, но не дают исчерпывающей инструкции как правильно оформить свой проект. В целом в рунете, если верить Яндекс, тема освещена со стороны мотивации, этикета контрибуции и основ пользования github. Но не с точки зрения конкретных шагов, которые следует предпринять.


Так что из себя представляет стильный, модный, молодёжный Open Source проект в 201* году?

Читать дальше →
Всего голосов 89: ↑84 и ↓5+79
Комментарии135

Часть 2: MVVM: полное понимание (+WPF)

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

В этой статье в качестве примера у нас будет программа чуть посложнее, а именно — торговый автомат, реализация которого часто встречается в качестве тестового задания до собеседования. Будут рассмотрены взаимодействие нескольких View с одним VM и наоборот, будет показан подход «View first» и будет показан не итоговый код, с рассказом какая часть для чего нужна (ссылка для скачивания кстати Vending Machine (программный код), а будет продемонстрирован весь процесс создания и, самое главное, последовательный ход мысли.

Но перед этим я постараюсь еще раз ответить на вопрос, который обычно не задают люди, имеющие опыт отладки неструктурированных проектов, а именно: «Так зачем все-таки нужен паттерн MVVM?»

Если формально и коротко, то паттерн MVVM используется в первую очередь для разделения ответственности, для повышения читабельности, управляемости, поддерживаемости и тестируемости кода. Программный продукт состоит из модели (доменной модели и бизнес-логики) и инфраструктурного кода в соотношении, допустим, 20% на 80%. Инфраструктурный код должен быть простым, понятным, чуть ли не автоматным — как Scaffolding. А вот модель…
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии40

Как я проходил собеседования на позицию Junior .Net Developer

Время на прочтение8 мин
Количество просмотров270K
Приветствую всех. Сегодня расскажу вам как я проходил собеседования в Москве на позицию .Net Developer. Усиленно готовился к собеседованиям месяц, целыми днями сидел и смотрел вопросы и пытался отвечать на них, а также читал книжки по С#. В статье привожу интересные задачки и вопросы, которые мне задавали в разных компаниях в Москве. Заранее скажу, что я попал в ту компанию, в которую хотел. Я прошел 4 собеседования в этой компании и меня наконец то взяли! Много статей было прочитано в частности здесь и надеюсь, что эту статью тоже будут читать начинающие Net разработчики и спрашивать все в комментариях.

Кому интересна тема прохождения собеседований, прошу под кат!
Читать дальше →
Всего голосов 64: ↑51 и ↓13+38
Комментарии158

Погружение в разработку на Ethereum. Часть 1

Время на прочтение11 мин
Количество просмотров97K
Технология блокчейна завладела умами. Покупаются фермы, ICO собирают миллионы долларов. Наша компания тоже захотела приобщиться. Решили начать с малого. В серии статей будет описан наш путь от новичков в сфере блокчейна до общепризнанных гуру. На момент написания этих слов мы все еще на этапе новичков, предлагаем следить за нашим развитием и развиваться с нами.

Читать дальше →
Всего голосов 46: ↑34 и ↓12+22
Комментарии26

Пишем умный контракт на Solidity. Часть 1 — установка и «Hello world»

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

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


Smart Contract & Gas


Если на пальцах, "умный контракт" — это некоторый код, живущий внутри блокчейна. Любой участник сети может его вызвать за небольшую плату. Эта плата и называется Gas, дословно "топливо". Зачем это нужно? Для защиты майнера от злоупотребления мошенником его ресурсов.


Немногие знают, но даже в биткоине есть возможность писать эти самые контракты, но в силу некоторых причин этим мало кто занимается. Одна из главных проблем — язык Script не Тьюринг-полный и написать что-то более менее серьезное непросто (чтобы вы понимали масштаб проблемы — нет даже возможности добавить цикл). В случае с Ethereum все чуть по другому, языки Тьюринг-полные, и есть риск, что кто-то напишет контракт вида


// Это псевдокод
foo = 0;
while (True) {
    foo++;
}

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

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

Мириады запущенных задач на C#

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

Недавно на ресурсе Medium были опубликованы две статьи от одного и того же автора, затрагивающие функциональность C# async/await.


Основными выводами были:


  • рекурсивный вызов асинхронного метода в C# подвержен StackOverflowException
  • goroutine'ы лучше задач (тасков) в .NET в плане производительности

Но главная проблема вышеприведенных публикаций — абсолютное непонимание модели кооперативной многозадачности в C# с вводом читателей в заблуждение. Сами же бенчмарки — бессмысленные, как мы увидим позже.


Далее в статье я попытаюсь раскрыть суть проблемы более подробно с примерами решения.


TL;DR

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


NB: использоваться будут свежевыпущенный .NET Core 2.0 и Go 1.8.3.

Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии35

Погружение в F#. Пособие для C#-разработчиков

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

Этот пост будет не о том, как «перевести» код с C# на F#: различные парадигмы делают каждый из этих языков лучшим для своего круга задач. Однако вы сможете оценить все достоинства функционального программирования быстрее, если не будете думать о переводе кода из одной парадигмы в другую. Настало время любопытных, пытливых и готовых изучать совершенно новые вещи. Давайте начнем!



Все материалы из серии переводов русскоязычного сообщества F#-разработчиков вы сможете найти по тегу #fsharplangru.
Читать дальше →
Всего голосов 48: ↑47 и ↓1+46
Комментарии74

Сервис Goodreads опубликовал рейтинг самых читаемых книг в жанрах научной фантастики и фэнтези

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

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

29 июля в блоге Goodreads был опубликован рейтинг лучших научно-фантастических и фэнтези книг на основе оценок и отзывов читателей (на сервисе размещено более 50 миллионов отзывов).
Читать дальше →
Всего голосов 33: ↑28 и ↓5+23
Комментарии167

Взлом Wi-Fi

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

Взлом маршрутизаторов WPA/WPA2 Wi-Fi с помощью Airodump-ng и Aircrack-ng/Hashcat


Это краткое пошаговое руководство, которое демонстрирует способ взлома сетей Wi-Fi, защищённых слабыми паролями. Оно не исчерпывающее, но этой информации должно хватить, чтобы вы протестировали свою собственную сетевую безопасность или взломали кого-нибудь поблизости. Изложенная ниже атака полностью пассивна (только прослушивание, ничего не транслируется с вашего компьютера) и о ней невозможно узнать, если вы только реально не воспользуетесь паролем, который взломали. Необязательную активную атаку с деаутентификацией можно применить для ускорения разведывательного процесса. Она описана в конце статьи.
Читать дальше →
Всего голосов 77: ↑64 и ↓13+51
Комментарии51

У нас длинные руки: 7 зарубежных площадок, на которых можно найти удалённую работу

Время на прочтение3 мин
Количество просмотров134K
Развитие телекоммуникационных технологий — это win-win для работодателей и работников: компании могут находить таланты по всему миру, а люди могут работать откуда угодно, лишь бы был Wi-Fi. И популярность удалённой работы лишь растёт. К примеру, согласно отчёту Gallup, в 2015 году 37% респондентов ответили, что работают удалённо частично или весь рабочий день. Это было на 7 процентных пунктов больше, чем в 2008. И нет причин считать, что эта тенденция сегодня изменилась.

Чем больше людей обращаются к подработке, фрилансу или удалённой работе на полную ставку, тем чаще возникает вопрос: где именно мне найти работу, которая позволит отказаться от поездок в офис? Предлагаем вашему вниманию семь зарубежных площадок, на которых можно найти удалённую работу.
Читать дальше →
Всего голосов 50: ↑49 и ↓1+48
Комментарии35

Сайт-визитка студента без затрат

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

В жизни многих студентов it-специальности возникает желание устроиться на работу или стажировку в хорошую it-компанию. А для этого неплохо бы показать все свои скиллы на специально созданном сайте-визитке. Но студент, на то он и студент, обычно "бедный" и не хочет тратить деньги на покупку домена и хостинг, однако хочется всё по-взрослому (а не на Ucoze).


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


Что будет в этой статье:


  • про бесплатный пак от github для студентов
  • как получить бесплатный домен на год
  • как получить бесплатный хостинг
  • как связать домен и хостинг (DNS)
  • где взять шаблон
Читать дальше →
Всего голосов 35: ↑16 и ↓19-3
Комментарии26

Что читать о нейросетях

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


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


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


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

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

Руководство: как использовать Python для алгоритмической торговли на бирже. Часть 2

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


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

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

Jupyter notebook этого руководства можно скачать здесь.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии2

Руководство: как использовать Python для алгоритмической торговли на бирже. Часть 1

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


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

Среди наиболее популярных в сфере финансов языков программирования можно отметить R и Python, также часто используются C++, C# и Java. В опубликованном на сайте DataCamp руководстве речь идет о том, как начать использовать Python для создания финансовых приложений — мы представляем вам серию статей-адаптаций глав этого материала.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии4

Объяснение блокчейна для веб-разработчиков

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

Предисловие переводчика


Предлагаю читателям Хабрахабра перевод статьи «The Blockchain Explained to Web Developers, Part 1: The Theory» за авторством Francois Zaninotto. Эту статью я нашел в блоге компании Marmelab. Статья представляет собой отличное введение в технологию блокчейн «с нуля», но может оказаться интересной и для тех, кто уже «в теме». Она касается не только того, как работает блокчейн, но и перспектив его развития, а также с чего начать, если вы хотите создать свой проект, использующий блокчейн.

Объяснение блокчейна для веб-разработчиков, Часть первая: Теория


Блокчейн – это новая популярная технология. Даже если вы не слышали о ней, вы, вероятнее всего, знаете о Bitcoin. Блокчейн — это одна из фундаментальных технологий на которых основан Bitcoin. Эксперты говорят, что блокчейн вызовет революцию схожую с той, которую некогда вызвал Интернет. Но что это на самом деле и как его можно использовать для создания приложений? Эта статья является первой в серии из трех, рассказывающей о феномене Блокчейна. Мы обсудим теорию, покажем фактический код и поделимся своим опытом, основанным на реальном проекте.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии50

Git и Github. Простые рецепты

Время на прочтение7 мин
Количество просмотров380K
При разработке собственного проекта, рано или поздно, приходится задуматься о том, где хранить исходный код и как поддерживать работу с несколькими версиями. В случае работы на компанию, обычно это решается за вас и необходимо только поддерживать принятые правила. Есть несколько общеупотребимых систем контроля версий, и мы рассмотрим одну из самых популярных — это Git и сервис Github.

Система Git появилась, как средство управления исходными текстами в операционной системе Linux и завоевала множество поклонников в среде Open Source.

Сервис Github предоставляет хостинг (хранение) исходных текстов как на платной, так и на бесплатной основе. Это одна из крупнейших систем, которую любят Open Source пользователи. Основное отличие платной версии — это возможность создания частных репозиториев (хранилищ) исходных текстов и если вам скрывать нечего, то можете спокойно пользоваться бесплатной версией.

После того, как вы начали работу над проектом и написали какой-то работающий прототип, у вас появится желание сохранить результаты работы. Это так же может быть полезно в случае, если вы захотите продолжить работу на другом компьютере. Самое простое решение — это сохранить все на флешке. Этот вариант неплохо работает, но если есть подключение к интернету (а сейчас у кого его нет), то удобно воспользоваться системами Git/Github.

В этой статье будут описаны базовые сценарии использования систем Git/Github при работе над проектом в среде Linux с помощью командной строки. Все примеры проверялись на системе с Linux Ubuntu 14.04 и Git 1.9.1. Если вы пользуетесь другим дистрибутивом, то возможны отличия.
Читать дальше →
Всего голосов 35: ↑11 и ↓24-13
Комментарии15

Стратегии расширения Django User Model

Время на прочтение9 мин
Количество просмотров106K
В Django встроена прекрасная система аутентификации пользователей. В большинстве случаев мы можем использовать ее «из коробки», что экономит много времени разработчиков и тестировщиков. Но иногда нам необходимо расширить ее, чтобы удовлетворять потребностям нашего сайта.

Как правило возникает потребность хранить дополнительные данные о пользователях, например, краткую биографию (about), дату рождения, местоположение и другие подобные данные.

В этой статье пойдет речь о стратегиях, с помощью которых вы можете расширить пользовательскую модель Django, а не писать ее с нуля.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии15

Подборка полезных материалов по разработке на Xamarin

Время на прочтение3 мин
Количество просмотров14K
Делимся полезным контентом по разработке на Xamarin: видео The Xamarin Show на Channel 9, базовый курс Microsoft Virtual Academy для новичков, список обучающих материалов и первый в России Moscow Xamarin Meetup.


Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии8

Информация

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