Pull to refresh
-1
0
Shamrik Dmitriy @ShDm

Разработчик ПО

Send message

Божественный подход к аутентификации

Reading time8 min
Views25K
Я закончил курс в университете Вирджинии в 1992 году по теме “Компьютерные науки в упрощенном виде”. Причина, по которой я выбрал именно упрощенный курс, была в том, что обычный курс CS в университете Вирджинии требует прохождения инженерной школы и я был абсолютно не готов к такому количеству математики и физики. Красота упрощенного курса была в том, что я мог посетить все интересные мне предметы, пропустив остальные.

Одним из моих любимых предметов, по крайней мере он запомнился мне больше всего, был “Алгоритмы”. Я всегда говорю людям, которые меня спрашивают об этом, что этот предмет повлиял на мое становление, как программиста, больше всего. Я точно не знаю почему, но несколько лет назад у меня появилось странное предчувствие, и я почему-то перешел на страницу Рэнди Пауша (автор той самой книги). С удивлением для себя я обнаружил, что он набирает студентов к себе на курс. Время было идеальным: университет Вирджинии, осень 1991, CS461 Анализ алгоритмов и 50 студентов на курсе. Я был одним из них.

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

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

И одна из самых крутых вещей, которой нас обучил Рэнди Пауш, была необходимость задать себе следующий вопрос перед выбором алгоритма:
А какой бы алгоритм выбрал Бог?



Читать дальше →
Total votes 45: ↑31 and ↓14+17
Comments36

Как писать отличные пулл-реквесты

Reading time3 min
Views22K
С ростом компании, люди и проекты меняются. Для продолжения развития культуры, которую мы хотим иметь в GitHub, мы сочли полезным напомнить самим себе цели, которые преследуем в коммуникациях. Мы недавно представили эти гайдлайны, чтобы помочь самим себе быть лучше, когда мы взаимодействуем через пулл-реквесты.
Читать дальше →
Total votes 55: ↑46 and ↓9+37
Comments10

Памятка: Как стартапам обеспечить защиту данных в облаке

Reading time5 min
Views12K
image

Примечание переводчика: За последние несколько лет тема информационной безопасности окончательно перестала быть уделом гиков и специалист и теперь интересует всех. После разоблачений Сноудена пользователи разнообразных онлайн-сервисов стали задумываться о безопасности своих данных. Теперь компании, которые эту безопасность не обеспечивают, могут столкнуться с огромными имиджевыми и финансовыми потерями в случае хакерской атаки. Часто учетные данные пользователей похищают через сторонние сервисы (как было в случаях с Dropbox и «Яндексом»), но даже в такой ситуации на компанию падает тень, а ее клиенты остаются недовольными.

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

Стивен Коти, главный евангелист по безопасности ИБ-компании Alert Logic, написал материал о том, как стартапам подходить к организации информационной безопасности при использовании облачных сервисов.
Читать дальше →
Total votes 24: ↑18 and ↓6+12
Comments7

Большая подборка функций хеширования на Github

Reading time1 min
Views29K
image

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

В репозитории можно найти, к примеру, реализации CRC/MD5/ГОСТ 34.311-95/SHA-3. Каждая хеш-функция представлена исходником на языке С и make-файлом для его сборки. Алгоритмы предполагается использовать в целях обучения — в реальных проектах рекомендуется в целях безопасности использовать существующие библиотеки (например, Crypto++ для C++, BouncyCastle для Java и т.д.), список которых есть в репозитории.

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

Github
Читать дальше →
Total votes 47: ↑43 and ↓4+39
Comments13

Плоттер на основе конструктора Makeblock

Reading time7 min
Views94K
Фотография плоттера с листом бумаги, на котором рисунок

О конструкторе Makeblock я узнал уже после того, как завершилась его кампания на кикстартере. А жаль, поскольку был шанс приобрести наборы конструктора по достаточно низкой цене. После удачной кампании авторы продолжили развивать свои идеи и создали набор для плоттера — XY-Plotter Robot Kit v2.0. Мне он обошелся в $300 с бесплатной доставкой через EMS в рамках акции «накупи на $500».

Плоттер заинтересовал меня по двум причинам: возможность рисовать ручкой Circuit Scribe с токопроводящими чернилами и возможность проапгрейдить плоттер лазерным резаком. В этой статье я расскажу о своих впечатлениях от плоттера в его оригинальной конфигурации.
Читать дальше →
Total votes 68: ↑68 and ↓0+68
Comments65

Ранги разработчиков

Reading time2 min
Views18K


Конечно ранг разработчика — это достаточно абстрактное понятие, но я выскажу свое мнение по данному вопросу, оно не привязано ни к какой теории, а базируется лишь на моём опыте.
Читать дальше →
Total votes 117: ↑104 and ↓13+91
Comments114

Разработка веб-приложения

Reading time19 min
Views94K
Привет, Хабр!

При изучении технологий Ext JS и Java, написал web-приложение «Каталог автомобилей». Хочу поделиться с Вами этим опытом.

Вид и функциональность приложения


  • Добавление;
  • Удаление;
  • Редактирование;
  • Поиск;
  • Валидация данных;


Читать дальше →
Total votes 77: ↑34 and ↓43-9
Comments19

Фильтрация и проверка данных PHP. Частые ошибки

Reading time6 min
Views187K
Материал предназначен в основном для начинающих веб-программистов.

Введение.


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

Здесь я постараюсь описать как можно подробнее частые ошибки при фильтрации данных в PHP скрипте и дать простые советы как правильно выполнить фильтрацию данных.

В сети много статей по поводу фильтрации данных, но они как правильно не полные и без подробные примеров.
Читать дальше →
Total votes 52: ↑19 and ↓33-14
Comments80

Хэширование паролей в PHP 5.5 с использованием нового API

Reading time3 min
Views77K
Использование BCrypt является общепринятым и лучшим способом для хэширования паролей, но большое количество разработчиков по-прежнему используют старые и слабые алгоритмы, вроде MD5 и SHA1. Некоторые разработчики даже не используют соль для хэширования. Новый API хэширования в PHP 5.5 ставит своей целью привлечь внимание к BCrypt, упрощая работу с ним. В этой статье я расскажу об основах использования нового API для хеширования в PHP.

Новый API хэширования паролей предоставляет четыре простых функции:
  • password_hash() — используется для хэширования пароля.
  • password_verify() — используется для проверки пароля на соответствие хэшу.
  • password_needs_rehash() — используется для проверки необходимости создать новый хэш.
  • password_get_info() — возвращает имя алгоритма хеширования и различные параметры, используемые при хэшировании.

Читать дальше →
Total votes 30: ↑21 and ↓9+12
Comments13

Безопасный метод авторизации на PHP

Reading time9 min
Views362K
Примечание: мини-статья написана для новичков

Давайте посмотрим вокруг: форумы, интернет магазины, гостевые книги и т.д. используют регистрацию и последующую авторизацию пользователей. Можно даже сказать, что это почти необходимая функция каждого сайта (только если это не домашняя страничка Васи Пупкина или не визитная карточка, какой-нибудь небольшой компании). Сегодня я хочу поделиться со всеми новичками информацией, о том, как лучше это все реализовать.
Читать дальше →
Total votes 37: ↑28 and ↓9+19
Comments229

Как правильно писать код?

Reading time5 min
Views68K
На протяжении свой карьеры программиста, я неоднократно сталкивался с тем, что программисты не умеют писать код. Причем это может касаться как начинающих так уже и очень опытных людей. Честно говоря, по моему мнению существуют единицы, которые действительно умеют это делать. Я не претендую на полноту освещение проблемы и на то что мое мнение правильное, а рассмотрю ее со своей точки зрения.
На мой взгляд не существует и не может существовать единого стандарта и каждый человек волен выбирать и адаптировать свои собственные подходы к программированию. Но есть некоторый набор практик, который помогает в подавляющем большинстве случаев.
Читать дальше →
Total votes 147: ↑83 and ↓64+19
Comments174

Запрет хранения данных россиян на зарубежных серверах: что будет после 1 сентября 2016 года?

Reading time3 min
Views247K


Сегодня состоялось событие которого все так долго ждали, теперь не будет никаких полумер, с 1 сентября 2016 запрещено хранение любых персональных данных за пределами РФ.

Что произошло?
Что попадает под запрет?
Что будет с интернетом?
Что всё это значит?
Что делать?


На эти вопросы я постараюсь ответить внутри поста.
Читать дальше →
Total votes 270: ↑226 and ↓44+182
Comments1006

Как сверстать веб-страницу. Часть 1

Reading time13 min
Views1.2M
Уважаемый читатель, этой статьей я открываю цикл статей, посвященных вёрстке.
В первой части будет описано, как это сделать с помощью стандартных средств на чистом HTML и CSS. В последующих частях рассмотрим как сделать тоже самое, но с помощью современных фреймворков и CMS.

Часть 1. Верстка стандартными средствами


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

Итак, давайте приступим. В качестве нашего подопытного мы возьмем бесплатный psd шаблон Corporate Blue от студии Pcklaboratory.
Читать дальше →
Total votes 155: ↑120 and ↓35+85
Comments110

Лучшие практики и рекомендации по защите php-приложений от XSS-атак

Reading time5 min
Views70K

Лучшие практики и рекомендации по защите php-приложений от XSS-атак


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



Большинство уязвимостей связано с неправильной обработкой данных, получаемых извне, или недостаточно строгой их проверкой. Одной из таких уязвимостей является межсайтовое выполнение сценариев (Сross Site Sсriрting, XSS), которая может привести к дефейсу сайта, перенаправлению пользователя на зараженный ресурс, вставке в веб-ресурс вредоносного кода, краже COOKIE-файлов, сессии и прочей информации. Противостоять XSS своими сила поможет применение лучших практик и рекомендаций по безопасному программированию, о которых и пойдет речь ниже.
Читать дальше →
Total votes 52: ↑35 and ↓17+18
Comments35

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

Reading time3 min
Views71K

Довольно часто (постоянно) мне приходиться проводить собеседование людей желающих устроитсья в мой отдел на должность «junior PHP developer» и «PHP developer». И, с завидным постоянством, я и team-lead отдела задаем одни и те же вопросы…
Читать дальше →
Total votes 86: ↑70 and ↓16+54
Comments515

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

Reading time3 min
Views44K


После прохождения собеседования (ох и бурное обсуждение получилось), для разработчика наступает испытательный срок. Это один из самых тяжелых этапов для человека на новой работе — идет адаптации с новым коллективом, нескончаемый поток новых знаний, которые с трудом успеваешь усваивать, да еще и тестовое задания, и оно не из простых…
Читать дальше →
Total votes 50: ↑34 and ↓16+18
Comments105

ТЗ для web-разработчика

Reading time4 min
Views20K

Написание хорошего ТЗ для разработки сайта еще та проблема, и я поделюсь своим опытом по созданию «человеко-понятного» описания для заказчика для разработчика.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments43

Wordpress тема за 15 минут

Reading time5 min
Views5.5K
Дизайн за 15 минут

Поскольку время dial-up соеденений постепенно уходит в историю, то всё популярней становятся дизайны сайтов использующих большие картинки в качестве фонового изображения. Примеров тому множество, включая мой блог ;)
Читать дальше →
Total votes 34: ↑20 and ↓14+6
Comments14

Information

Rating
Does not participate
Location
Омск, Омская обл., Россия
Date of birth
Registered
Activity

Specialization

Software Developer, Backend Developer
Middle
From 100,000 ₽
Git
OOP
SQL
PostgreSQL
.NET Core
.NET
ASP.Net
ASP.NET MVC