Как стать автором
Обновить
75
0.1
Безверхий Олег @Bizonozubr

.Net программист

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

JavaScript: методы асинхронного программирования

Время на прочтение13 мин
Количество просмотров86K
Синхронный код на JavaScript, автор которого не стремился сбить с толку тех, кто этот код будет читать, обычно выглядит просто и понятно. Команды, из которых он состоит, выполняются в том порядке, в котором они следуют в тексте программы. Немного путаницы может внести поднятие объявлений переменных и функций, но чтобы превратить эту особенность JS в проблему, надо очень постараться. У синхронного кода на JavaScript есть лишь один серьёзный недостаток: на нём одном далеко не уехать.



Практически каждая полезная JS-программа написана с привлечением асинхронных методов разработки. Здесь в дело вступают функции обратного вызова, в просторечии — «коллбэки». Здесь в ходу «обещания», или Promise-объекты, называемые обычно промисами. Тут можно столкнуться с генераторами и с конструкциями async/await. Асинхронный код, в сравнении с синхронным, обычно сложнее писать, читать и поддерживать. Иногда он превращается в совершенно жуткие структуры вроде ада коллбэков. Однако, без него не обойтись.

Сегодня предлагаем поговорить об особенностях коллбэков, промисов, генераторов и конструкций async/await, и подумать о том, как писать простой, понятный и эффективный асинхронный код.
Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии17

Как не надо разрабатывать проект на Битрикс

Время на прочтение4 мин
Количество просмотров16K
За все время своей работы с Битрикс мне довелось поработать с очень большим количеством проектов, которые кто-то разрабатывал до меня. Тут и мелкие доработки, фикс различных багов и ошибки работы логики, редизайн сайта и глобальные изменения существующего функционала. И, как и любой другой разработчик, я терпеть не могу разгребать чужой мусор, костыли и «временные» заплатки, которые на деле помнят еще 8 редакцию продукта.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии29

Всё, что вы хотели узнать о RAID-контроллерах, но лень было искать

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


Дисковый массив с нотками ретро.

На плечах RAID-контроллеров лежит ответственная задача — управление дисковой подсистемой, то есть всей информацией, хранимой на сервере. Именно они отвечают за работу дисковых массивов, позволяя повысить производительность сервера или надёжность хранения данных. Поэтому давайте поговорим о RAID-контроллерах, установленных в серверы вендоров «большой тройки», об их возможностях и особенностях.
Читать дальше →
Всего голосов 27: ↑18 и ↓9+9
Комментарии74

Торрент с 427 000 000 паролей MySpace

Время на прочтение4 мин
Количество просмотров35K
Добрые люди выложили в открытый доступ базу паролей MySpace, которая некоторое время ходила по подпольным форумам и продавалась за большие деньги. Теперь она бесплатна и открыта для всех.

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

Myspace.com.rar (14,2 ГБ)
Пароль на RAR-архив: KLub8pT&iU$8oBY(*$NOiu

Скачать


SHA1: 8C7E FFE4 3486 C617 E1B4 E295 DBF7 9E10 01AC 86BD
SHA256: 5FA0 5F95 1EFD DA18 8A2E 3D50 8948 1A4F AACA 311E C559 205F EB15 B2BB F7DE EC61

Торрент
magnet:?xt=urn:btih:17E6FC94DAE0A3168301012C290A53A2BD314A28
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии39

Создаём установочный носитель с множеством версий Windows NT 6.0+ без использования стороннего софта

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

КДПВЗдравствуйте. Сегодня я расскажу как можно создать единый установочный носитель с множеством разных версий Windows не прибегая к использованию стороннего ПО. Таким образом вы будете полностью понимать какие манипуляции мы выполняем.


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


Кому интересно — прошу под кат.

А ну-ка, посмотрим
Всего голосов 34: ↑33 и ↓1+32
Комментарии108

Разбираемся с UEFI и GPT: установка Windows и Kubuntu на один диск

Время на прочтение4 мин
Количество просмотров612K
Помните те времена, когда BIOS был 16-битным с адресным пространством в 1 Мб, а вся информация о загрузчиках писалась в MBR? На смену уже давно пришли более гибкие технологии: UEFI (замена BIOS), и GPT (замена MBR).

Предыстория: Понадобилось мне недавно на свой домашний десктоп поставить 2 системы, чтобы разграничить окружение. Kubuntu для разработки на Ruby on Rails (ибо работаю удаленно), и Windows для всяких игрушек в свободное время. Хочу заметить, что несколько лет назад это было достаточно просто: один раздел для винды и один раздел для линукса, загрузчик записывался в MBR. Однако, технологии не стоят на месте, и оказалось, что настройка dual boot'а теперь несколько изменилась.
Читать дальше →
Всего голосов 26: ↑23 и ↓3+20
Комментарии42

Кто такие радиолюбители-ультракоротковолновики

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

Кто такие радиолюбители-ультракоротковолновики


Эта статья – небольшой add-on к заметке про радиолюбителей-коротковолновиков.

image

Антенны оператора EA5FUZ
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии39

Windows ПК как генератор ARP флуда

Время на прочтение3 мин
Количество просмотров22K
Доброго дня, %username%!

Хочу поведать поучительную историю, которая случилась сегодня у меня на работе. Работаю я в одной очень известной компании предоставляющей, в числе прочих, услуги доступа ко всемирной паутине. И суть моей работы заключается в поддержании нормальной работы сети передачи данных. Сеть эта построена по классической структуре Ядро, Агрегация, Доступ. Коммутаторы доступа приблизительно на половину производства D-Link, вторая (большая) часть от Huawei. Управление всем сетевым железом вынесено в отдельный вилан, через него же оно всё и мониторится.

И вот сегодня поутру стало твориться нечто неладное. Система управления и мониторинга железа стала выкидывать «портянки» событий «коммутатор *** офлайн»-«коммутатор *** онлайн». Причём сообщения эти приходили по сегментам сети, в которых установлены были коммутаторы производства Huawei. Беглый просмотр состояния шторм-контроля и загруженности интерфейсов на агрегации ничего не дал, ничего не сказали и логи. День обещал быть весёлым…
Читать дальше →
Всего голосов 29: ↑21 и ↓8+13
Комментарии46

Опыт SAMBA classicupgrade на Debian 8

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

Предыстория


Существует небольшая локальная сеть предприятия, в которой лет 10 назад на Debian 5 был поднят домен на 3-й «Самбе» + LDAP + BIND(на шлюзе). По сути от нее нужна была только аутентификация пользователей, да файловые шары. Все эти годы сервер без проблем апгрейдился до новых версий Debian. На данный момент на нем Debian 8 и Samba 4.2 из пакетов.

Со времен Windows 7 введение компьютеров в домен, без всем известного костыля с правкой реестра, не получалось. Тот же костыль работал в Win 8 и Win 10 до версии 1803. Помимо невозможности ввода компьютеров в домен, накопились и другие проблемы и в итоге было решено провести classicupgrade. Ввиду простоты структуры ЛВС было принято решение использовать внутренний DNS «Самбы».

Сразу хочу сказать, что статья не является точным руководством, а скорее опытом проведения данной операции. Стадия предварительного тестирования крайне рекомендуется. В моем случае для тестирования были сняты образы серверов и развернуты на виртуальных машинах VirtualBox.Также, для тестирования поведения существующих клиентов домена, были созданы клиентские машины Win XP SP3 и Win 10 1709 и 1803.

Также хочу заметить, что неоднократно ошибки были вызваны банальными опечатками. Будьте внимательны.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии1

Браузерный сетевой шутер на Node.js

Время на прочтение17 мин
Количество просмотров24K
Разработка многопользовательских игр сложна по множеству причин: их хостинг может оказаться дорогим, структура — неочевидной, а реализация — трудной. В этом туториале я постараюсь помочь вам преодолеть последний барьер.

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


Поиграть в готовую игру можно здесь! При нажатии клавиш W или «вверх» корабль приближается к курсору, при щелчке мыши — стреляет. (Если никого нет онлайн, то чтобы проверить, как работает мультиплеер, откройте два окна браузера на одном компьютере, или одно из них на телефоне, ). Если вы хотите запустить игру локально, то полный исходный код выложен на GitHub.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии7

Уменьшаем количество слоёв архитектуры с 5 до 2

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

Работая над несколькими open-source проектами, в один прекрасный день я решил упростить себе жизнь и разработал Upstream-модуль для nginx, который помог мне убрать громоздкие слои многослойной архитектуры. Это был забавный опыт, которым я хочу поделиться в этой статье. Мой код лежит в открытом доступе тут: github.com/tarantool/nginx_upstream_module. Его можно поднять с нуля или скачать Docker-образ по этой ссылке: hub.docker.com/r/tarantool/tarantool-nginx.

На повестке дня:

  • Введение и теория.
  • Как использовать эти технологии.
  • Оценка производительности.
  • Полезные ссылки.
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии7

Английский язык: взгляд инженера

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

ДИСКЛЕЙМЕР


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

Здесь приводится опыт, который выдернул меня из состояния «читаю со словарем».




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

Возьмем такой предмет, как английский язык. Там куча понятий: 12 времен глагола, страдательный залог, причастия и т.п. Кто их ввел? Видимо, некие ученые мужи, для которых английский язык был РОДНЫМ. Они жили себе в каком-нибудь Oxford’e или в Cambridg’e и вряд ли знали русский язык.

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

Вспомните, как вы в школе изучали русский язык. Подлежащее, сказуемое, дополнение, определение… и штук 200 правил, из которых куча исключений, которые все благополучно забывают, кроме собственно учителей русского. И которые потом нужны – максимум – при разборках с бюрократическими документами («казнить нельзя помиловать»).

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

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

Статья ориентирована именно на таких.
Читать дальше →
Всего голосов 95: ↑77 и ↓18+59
Комментарии288

Подключение bootstrap в Next.js

Время на прочтение2 мин
Количество просмотров9.5K
Категорически приветствую.

Столкнулся я тут с необходимостью подключить Bootsrtap в Next.js. Беглый гуглёж дал несколько тем на stackoverflow, парочку монструозных (всё в одном и все пакеты устарели ) шаблонов на гитхабе, и немножечко оффдоков. На деле же всё оказалось довольно тривиально, но, надеюсь, эта заметка сэкономит кому-то время.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии0

Памятки по искусственному интеллекту, машинному обучению, глубокому обучению и большим данным

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


В течение нескольких месяцев мы собирали памятки по искусственному интеллекту, которыми периодически делились с друзьями и коллегами. В последнее время сложилась целая коллекция, и мы добавили к памяткам описания и/или цитаты, чтобы было интереснее читать. А в конце вас ждёт подборка по сложности «О большое» (Big-O). Наслаждайтесь.

UPD. Многие картинки будут читабельнее, если открыть их в отдельных вкладках или сохранить на диск.
Читать дальше →
Всего голосов 51: ↑47 и ↓4+43
Комментарии9

Re: «Сравнение JS-фреймворков: React, Vue и Hyperapp»

Время на прочтение7 мин
Количество просмотров16K
Это небольшая ответная статья на публикацию «Сравнение JS-фреймворков: React, Vue и Hyperapp». Вообще я не большой фанат подобных сравнений. Однако раз уж речь зашла о таком маргинальном фреймворке, как Hyperapp, в сравнении с мастодонтами, типа React и Vue, я подумал, почему бы не рассмотреть все те же примеры на Svelte. Так сказать, для полноты картины. Тем более, это займет буквально 5 минут. Поехали!

image
Читать дальше →
Всего голосов 41: ↑31 и ↓10+21
Комментарии85

Зачем нужен Refresh Token, если есть Access Token?

Время на прочтение4 мин
Количество просмотров248K
Недавно мы в Voximplant улучшали авторизацию в SDK. Посмотрев на результаты, я несколько опечалился, что вместо простого и понятного токена их стало две штуки: access token и refresh token. Которые мало того что надо регулярно обновлять, так еще документировать и объяснять в обучающих материалах. Помня, что в OAuth два токена нужны в основном из-за разных сервисов, на которых они используются (даже вопрос на stackoverflow есть), а у нас такой сервис один, я несколько офигел и пошел на второй этаж вытрясать души из разработчиков. Ответ получился неожиданным. Его нет на stackoverflow. Зато он есть под катом.
Читать дальше →
Всего голосов 74: ↑70 и ↓4+66
Комментарии296

Подборка подкастов по программированию на русском и английском языках

Время на прочтение7 мин
Количество просмотров181K
Всем привет! В этой статье собраны одни из лучших подкастов по программированию как на русском так и на английском языках, которые позволят вам быть всегда в курсе последних новостей.

Подкасты представляют собой звуковые файлы, которые можно слушать в любое время на вашем компьютере или другом устройстве (IPod, IPad, смартфон и т.д.). Это самый портативный способ потреблять контент и узнавать что-то новое. Популярность подкастов росла на протяжении многих лет и теперь они охватывают очень широкий круг вопросов.

И да, есть много интересных и популярных подкастов для разработчиков и программистов. Подкасты невероятно полезны, они будут держать вас в курсе всего что происходит в интересующей вас сфере, а также помогут вам развить более широкий взгляд на постоянно развивающуюся область информационных технологий.
Читать дальше →
Всего голосов 74: ↑71 и ↓3+68
Комментарии63

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

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

jwt


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

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

Концепции автоматического тестирования

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

Здравствуйте, меня зовут Дмитрий Карловский и у меня, к сожалению, нет времени писать большую статью, но очень хочется поделиться некоторыми идеями. Поэтому позвольте потестировать на вас небольшую заметку о программировании. Речь сегодня пойдёт об автоматическом тестировании:


  1. Зачем мы пишем тесты?
  2. Какие бывают тесты?
  3. Как мы пишем тесты?
  4. Как их стоит писать?
  5. Почему модульные тесты — это плохо?

Правильная пирамида тестирования

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

ООП с примерами (часть 2)

Время на прочтение5 мин
Количество просмотров684K
Волею судьбы мне приходится читать спецкурс по паттернам проектирования в вузе. Спецкурс обязательный, поэтому, студенты попадают ко мне самые разные. Конечно, есть среди них и практикующие программисты. Но, к сожалению, большинство испытывают затруднения даже с пониманием основных терминов ООП.

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

Первая часть посвящена классам, объектам и интерфейсам.
Вторая часть, представленная ниже, иллюстрирует инкапсуляцию, полиморфизм и наследование

Читать дальше →
Всего голосов 50: ↑37 и ↓13+24
Комментарии37

Информация

В рейтинге
2 957-й
Откуда
Екатеринославка, Амурская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, System Administration
Middle
От 150 000 ₽
Git
SQL
Python
C#
.NET
PostgreSQL
APCS