Как стать автором
Обновить
0
@Alex_Reefread⁠-⁠only

Digital advisor

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

Функции: эта ошибка дороже, чем «null»

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

Имя этому шаблону — функция.

Если конкретнее, то это интерфейс, который обычно является набором функций.


Какие из языков вы узнали?

Одним из первых при изучении программирования мы узнаём принцип многократного использования логики. Это неизменно приводит нас к функции — строительному блоку каждого программного проекта. Сами по себе функции не так уж плохи, но именно из-за использования их в качестве многократно применяемого компонента написание, поддержка и масштабирование ПО становятся такими затратными.

Почему?
Читать дальше →
Всего голосов 51: ↑24 и ↓27+3
Комментарии34

Чем поживиться айтишнику на барахолке?

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


Приезжая в Питер, нужно обязательно посетить Эрмитаж, Русский музей и блошиный рынок на Уделке. Я бываю там не менее пары раз в год и хожу в это уникальное место, как в музей. Там можно найти не просто всё, а вообще всё, даже то, чего искать не собирался. Антикварную посуду и копаные старинные монеты, советские документы и виниловые пластинки, самовары и пионерские горны, а еще — кучу всевозможного барахла, которое слегка помятые граждане продают прямо с разложенных на земле клеёнок.

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

Читать дальше →
Всего голосов 88: ↑80 и ↓8+96
Комментарии120

Наиболее полное руководство по практическому использованию Web Speech API

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

В этой статье я хочу поделиться с вами результатами изучения основных возможностей Web Speech API (далее — WSA).


Введение


WSA — это экспериментальная технология, состоящая из двух интерфейсов: SpeechSynthesis (интерфейс для перевода текста в речь) и SpeechRecognition (интерфейс для распознавания речи).


О том, что из себя представляют названные интерфейсы и что в себя включают можно почитать на MDN или в рабочем черновике (данный черновик, в отличие от большинства спецификаций, написан более-менее человеческим языком).


Что касается поддержки, то вот что об этом говорит Can I use:



Всего голосов 20: ↑18 и ↓2+20
Комментарии1

Найти и не обезвредить: пишем пентесты с Kali Linux

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

Kali и другие подобные инструменты помогают обнаружить уязвимости в вашем ПО. И лучше, если первыми их найдёте вы, а не злоумышленники.




Шило в мешке не утаить: по неведению (правда, в некоторых случаях — умышленно) даже крупные корпорации оставляют дыры в своей системе безопасности. Жизненно важно как можно быстрее (1) локализовать их и (2) пофиксить. К счастью, существует множество различных продуктов, которые помогают с первым пунктом. Среди них можно выделить Kali, дистрибутив Linux, разработанный для тестирования систем безопасности. В этой статье я расскажу, как использовать Kali Linux для исследования вашей системы и поиска слабых мест, имитируя атаку злоумышленника.

Дистрибутив Kali включает множество инструментов, каждый из которых имеет открытый исходный код. Достаточно запустить установку дистрибутива и все эти инструменты будут доступны из коробки.
Читать дальше →
Всего голосов 21: ↑14 и ↓7+12
Комментарии3

14 Python-пакетов, про которые вы скорее всего не знали

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


Язык Python предоставляет всем пользователям возможность создавать свои пакеты и делиться ими со всем сообществом. Так появлялись очень популярные библиотеки для работы с данными (Pandas, Numpy, Matplotlib), для машинного обучения (TensorFlow, PyTorch), для веб разработки. Но есть много смешных, полезных или интересных пакетов, про которые вы вероятно никогда не слышали. Именно про них и пойдёт речь дальше.

Читать дальше →
Всего голосов 37: ↑30 и ↓7+32
Комментарии6

Самая серьёзная проблема HTML? Разработчики, разработчики, разработчики

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

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

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

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

Если в двух словах, разработчики воспринимают HTML недостаточно серьёзно, но что произойдёт, если вы укажете им на их слабость? В ответ мы дождёмся только бесконечный поток бессмысленных оправданий того, почему их нельзя отвлекать на его правильную реализацию!
Читать дальше →
Всего голосов 33: ↑23 и ↓10+22
Комментарии34

Трюки в консоли. Крутые однострочники

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


Много говорилось об удовольствии, которое испытываешь при работе в консоли. Это не случайно: так задумано отцами-основателями Unix. Возникает странное ощущение, что это самый правильный способ взаимодействия с компьютером.

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

В чём же дело?
Читать дальше →
Всего голосов 42: ↑25 и ↓17+19
Комментарии17

Программные зонды Elecard Boro – Мониторинг IPTV

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


Boro реализует мониторинг и контроль качества потоков прямых трансляций (IPTV). Проект разработан компанией Elecard, основанной в России. Среди их клиентов и партнёров такие корпорации, как Intel Corporation, Netflix, Huawei, Cisco Systems, Samsung и многие другие. В этой статье будут рассмотрены главные особенности проекта и описан механизм его работы.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+22
Комментарии0

Как использовать GraphQL Federation для инкрементальной миграции с монолита (Python) на микросервисы (Go)  

Время на прочтение6 мин
Количество просмотров10K
Или как поменять фундамент старого дома, чтобы он не обвалился



Лет 10 назад мы выбрали 2-ю версию Python для разработки нашей обучающей платформы с монолитной архитектурой. Но с тех пор индустрия существенно изменилась. Python 2 был официально похоронен 1 января 2020 года. В предыдущей статье мы объясняли, почему решили отказаться от миграции на Python 3. 

Каждый месяц нашей платформой пользуются миллионы людей. 

Мы пошли на определённый риск, когда решили переписать наш бэкенд на Go и изменить архитектуру. 

Язык Go мы выбрали по нескольким причинам:

  1.  Высокая скорость компиляции.
  2. Экономия оперативной памяти.
  3. Достаточно широкий выбор IDE с поддержкой Go.

Но мы применили подход, который позволил минимизировать риск.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+19
Комментарии6

Как ИТ перестали быть скучными

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


Невысокого роста, седые волосы, усы, склонность к облысению, клетчатая рубашка с короткими рукавами. В его офисе (без окон) стоит книга O’Reilly про XSLT с цаплей на обложке. Пусть его зовут Гордон (мужчину в клетчатой рубашке, не цаплю).

Некоторые факты о Гордоне:

  1. Он любит, чтобы в файлах VBScript были комментарии. А если вы не оставляете комментарии в нужном формате, скрипт будет удалён.
  2. Нельзя писать код, пока вы не знаете о принципах работы сетей. И пакетах установщика Microsoft. И Configuration Manager. Он начнёт с обучения вас Windows NT 4.0, несмотря на то, что её выпустили в 1996 году.
  3. Или делай, как он тебе сказал, или убирайся. «Сисадмин дал, сисадмин взял». У него есть такой магнитик на холодильнике. Вы можете класть свой обед в холодильник, но после трёх часов дня пятницы его обязательно выкинут. Он обращается с холодильником точно так же, как и с папками temp на своих серверах.
  4. Вам не дадут прав администратора на вашем компьютере.

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

Dear Haters. За что хейтеры травят юзеров, и как с этим бороться

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


Чуть больше недели назад в Фейсбуке прогремела история, на которую откликнулось множество популярных блогеров и простых пользователей. Питерский программист с ДЦП Иван Бакаидов, занимающийся, в том числе, тематикой голосового управления, написал программу для людей с дефектами речи, чтобы помочь им нормально общаться с окружающими. Некоторые пациенты с ДЦП страдают дизартрией — нарушением, делающим речь неразборчивой. Существует и множество других патологий, сопровождающихся речевыми нарушениями, которые не связаны с ДЦП, а вызваны, например, травмами, врожденными и наследственными заболеваниями. Все эти люди хотят говорить, но не могут. Иван решил им помочь. Программу заметили, с Иваном связался вице-президент Google Джейсон Титус и пригласил принять участие в гугловской конференции, а также рассмотреть возможность интеграции его разработки в Google Meet — это облегчит использование приложения для людей с ограниченными возможностями. Иван поделился новостью в социальных сетях. И его начали травить. В первую очередь — «свои», то есть, участники сообществ, страдающие, как и он, детским церебральным параличом. Случай, к сожалению, не единственный и весьма характерный. Откуда же все-таки берутся хейтеры и существуют ли методы борьбы с подобными явлениями природы?
Читать дальше →
Всего голосов 36: ↑27 и ↓9+31
Комментарии36

5 приемов по разделению «бандла» и «ленивой» загрузке компонентов в React

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

image


Разделение Javascript-кода на несколько файлов называется разделением «бандла» или сборки (bundle splitting). Это позволяет загружать только тот код, который который используется приложением в данный момент, другие части загружаются по необходимости (по запросу пользователя).


Распространенные случаи разделения сборки и «ленивой» или отложенной загрузки (lazy loading) включают в себя следующее:


  • Загрузка дополнительного кода при переходе пользователя к новому представлению (view — слой, отвечающий за визуальное отображение)


  • Загрузка такого кода может быть связана с определенным действием, таким как прокрутка или нажатие кнопки


  • Также можно реализовать предварительную загрузку определенных ресурсов, которые представляют потенциальный интерес для пользователя


  • Это приводит к тому, что когда пользователь захочет получить доступ к определенной функциональности, она уже будет готова

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

Как собрать свой собственный прибор ночного видения за $50 из смартфона

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


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

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

В древности, этими средствами выступали разнообразные костры, факелы и другие способы подсветки окружающей среды.

С ходом ускорения научно-технического прогресса, средства обеспечения видимости органов зрения человека, в темное время суток, -  становились всё более изощренными и совершенными. Теперь, в их качестве выступали уже разнообразные средства подсветки, в числе которых основную роль играли способы, которые обеспечивали человека непрерывной подсветкой в течение продолжительного времени и минимальным контролем за ней.
Всего голосов 44: ↑28 и ↓16+21
Комментарии15

Когда уходят на покой программисты? 35 — это конец карьеры?

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

Почему мы не наблюдаем вокруг большого количества седоволосых разработчиков ПО? Куда деваются все программисты, когда становятся старше? Увольняют ли компании программистов в возрасте?

Если программист в свои пятьдесят собеседуется на вакансию вместе с людьми, которым 20-30 лет, сколько компаний наймёт его? Об этой проблеме существует множество мифов, как и несколько жестоких истин.

Да, иногда шокирует, что 40-летних, иногда даже 35-летних называют «старыми». Под «старыми» здесь подразумевается то, что программисты на этом этапе планируют уходить на покой или менять место работы.
Читать дальше →
Всего голосов 53: ↑30 и ↓23+19
Комментарии630

История нефтеперевозок. От танкеров с бакинской нефтью до современных монстров

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


В 1847 году английский химик Джеймс Янг был занят перегонкой нефти, которая, в очень скромных количествах, выделялась в угольных месторождениях. Янг хотел получить легкое ламповое масло (сразу скажем, что до керосина дело у него так и не дошло), но получил масло тяжелое и вязкое.

Для лампового масла эта субстанция не очень годилась, зато она отлично подходила для смазывания деталей механизмов, которых к тому времени в Англии было довольно много, и спрос на «нефтяной воск», предотвращающую порчу металлических деталей, вдруг скакнул до небес.

Правда, новое производство Янга и его компаньонов Мелдрама и Бинни испытывало постоянные проблемы с поставками сырья, потому что «естественного просачивания нефти» было явно недостаточно для удовлетворения спроса на парафин. Янг проявлял чудеса изобретательности (например, догадался получать нефть из горючего сланца), но в конце концов новые фабриканты неизбежно встали перед проблемой завоза нефти.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+72
Комментарии21

Превращаем одноплатник Cubietruck в Wi-Fi Hotspot с Captive portal, VPN-шлюзом и Ad block

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

Для построения Wi-Fi сети обычно используют готовые маршрутизаторы, функциональность которых всегда ограничен прошивкой. А если необходимо добавить блокировщик рекламы, VPN шлюз и красивый Captive portal, покупать новую железку? Стоимость устройства с такими возможностями будет уже весьма высока. Можно взять Linux с Hostapd и сделать точку доступа с Wi-Fi, но в отличие от готовых маршрутизаторов не будет наглядного Web-интерфейса. И для решения этой задачи был создан проект RaspAP, который на базе устройств с ОС Debian создает Wi-Fi Hotspot с Captive portal, VPN-шлюзом, Ad block. Для RaspAP в отличие от OpenWrt не требуется непосредственная поддержка устройства, достаточно поддержки последней версии Debian. RaspAP работает поверх уже установленных ОС: Raspberry Pi OS, Armbian, Debian, Ubuntu. Как сделать Wi-Fi Hotspot на RaspAP прошу под кат.
Всего голосов 25: ↑23 и ↓2+31
Комментарии19

Пиринговые мессенджеры — враг государства?

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


В случае полного отключения интернета одна из главных проблем — общение с товарищами и родственниками. Опыт Гонконга показывает, что для этого хорошо подходят децентрализованные P2P-мессенджеры, которые работают без интернета, используя mesh-сеть по протоколам Wi-Fi Direct, Bluetooth, Apple Multipeer Connectivity Framework, ANT+, LoRa и др.

Для эффективной коммуникации приложение нужно скачать максимальному количеству человек до начала блокады интернета. Иначе придётся искать файлы после блокады. Человек с нужными файлами станет настоящим авторитетом в офисе или в классе (как это было в Беларуси в августе 2020 года — за файлами Psiphon люди реально приезжали из других микрорайонов города).

Вообще, вся история сетей wireless mesh намекает на то, что эта технология крайне не нравится правоохранительным органам.
Всего голосов 86: ↑79 и ↓7+104
Комментарии213

Расчёты гравитационных манёвров в космосе или зачем человечеству нужны компьютеры

Время на прочтение10 мин
Количество просмотров12K
Что вы делаете, когда вдруг выясняется, что задача, над которой вы работаете не имеет решения? Принципиально не имеет, можно даже не пытаться. Правильно, откладываете до лучших времён, а лучше, забываете о ней, чтоб не портить себе аппетит и психику.

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

К рубежу 19-20 веков прогрессивное человечество столкнулось с доказательством невозможности создания волшебных и точных математических формул, описывающих наше бытие. Например, к 1899 году французский математик Анри Пуанкаре доказал, что существует бесконечно много частных решений задачи трёх тел. Другими словами, существует бесконечно много разных формул, описывающих движение, например, космического тела в поле тяготения двух других. Для каждого объекта, момента времени, положения в пространстве надо всё считать отдельно, и пока считаешь, задача потеряет актуальность, комета улетит, а мы облажаемся с гравитационным манёвром и эта чёртова консервная банка с надписью NASA станет нашим гробом. А чтобы описать поведение системы множества тел, потребуется время, сопоставимое с возрастом Вселенной. Распаковывай чемоданы обратно, мы никуда не летим, дорогая.


Приблизительные траектории трёх одинаковых тел, находившихся в вершинах неравнобедренного треугольника и обладавших нулевыми начальными скоростями
Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии13

В поисках упорядоченного множества в Python: разбираемся с теорией и выбираем лучшую реализацию

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


Множество (Set) — структура данных, которая позволяет достаточно быстро (в зависимости от реализации) применить операции add, erase и is_in_set. Но иногда этого не достаточно: например, невозможно перебрать все элементы в порядке возрастания, получить следующий / предыдущий по величине или быстро узнать, сколько элементов меньше данного есть в множестве. В таких случаях приходится использовать Упорядоченное множество (ordered_set). О том, как оно работает, и какие реализации есть для питона — далее.

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

Разукрашиваем вывод в консоли: теория и практика

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


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

Читать дальше →
Всего голосов 32: ↑31 и ↓1+40
Комментарии20

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность