Pull to refresh
3
0

Full Stack Developer

Send message

Отказ от create-react-app и создание собственного шаблона для React-приложений

Reading time9 min
Views44K
Автор статьи, перевод которой мы сегодня публикуем, предлагает React-разработчикам отойти от использования create-react-app (CRA) и создать собственный шаблон для React-приложений. Здесь речь пойдёт о преимуществах и недостатках CRA, а так же будет предложено решение, которое способно заменить create-react-app.


Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments12

Распространённые заблуждения о временах жизни в Rust

Reading time27 min
Views20K

(прим. переводчика: времена жизни (lifetimes) — это одна из самых запутанных вещей в Rust, которая часто вызывает затруднение у новичков, даже несмотря на официальную документацию. Разъяснения по отдельным аспектам времён жизни есть, но они все разбросаны по разным источникам и ответам на Stack Overflow. Автор статьи собрал в одном месте и разъяснил множество связанных с временами жизни вопросов, что и делает эту статью столь ценной (я и сам почерпнул новое для себя отсюда). Я решил перевести её, чтобы дать возможность прочитать её тем, кто не владеет английским в достаточной степени, чтобы свободно читать оригинал, а также для того, чтобы повысить известность этой статьи среди русскоязычного Rust-сообщества)


19 мая 2020 г. · 37 минут · #rust · # lifetimes

Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments5

Модифицирование преобразователя USB-UART на чипе CP2102 для использования в качестве программатора Arduino

Reading time2 min
Views86K
Данный метод требует прямых рук наноботов — используйте описанное на свой страх и риск.

Ко мне в руки попал преобразователь USB-UART на чипе CP2102, который шел в комплекте с Arduino Pro Mini и заявлялся как программатор для него:

image

Подключив к Arduino и попробовав залить скетч, я обнаружил, что заливка не происходит. Выдается ошибка:
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments14

Raspberry Pi + CentOS = Wi-Fi Hotspot (или малиновый роутер в красной шляпе)

Reading time15 min
Views40K
UPD 14.03.2020:
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (или малиновый роутер в синей шляпе)

В Интернете огромное количество информации по созданию Wi-Fi точек доступа на базе одноплатного ПК Raspberry. Как правило, подразумевается использование родной для «малинки» операционной системы — Raspbian.

Являясь адептом RPM-based систем, я не мог пройти мимо этого маленького чуда и не попробовать на нем мою любимую CentOS.

В статье представлена инструкция по изготовлению 5GHz/AC Wi-Fi роутера из Raspberry Pi 3 Model B+ на базе операционной системы CentOS. Будет несколько стандартных, но малоизвестных трюков, а в качестве бонуса — чертеж подключения к «малинке» дополнительного Wi-Fi оборудования, позволяющего ей одновременно работать в нескольких режимах (2,4+5GHz).

image
(микс изображений из свободного доступа)
Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments39

Менеджер пакетов opkg. Offline инсталляция пакетов в образ корневой файловой системы

Reading time9 min
Views48K
pinguin_packet_dry

Широко известный в узких кругах легковесный менеджер пакетов opkg получил распространение в embedded Linux не случайно. Opkg используется во многих встраиваемых дистрибутивах и проектах, например, в OpenEmbedded, Yocto Project, OpenWRT, Ångström, Arago Project и некоторых других. Менеджер прост в эксплуатации, для полноценной работы вполне достаточно встроенной справки, а на просторах всемирной паутины множество статей о том, как устроен сам пакет ipk (opkg работает с таким форматом): как его создать, как установить и т.д и т.п. Однако подавляющее большинство информации посвящено тому, как работать на уже установленной на целевую платформу (target) системе в online-режиме, но специфика Embedded подразумевает, что образ корневой файловой системы, а также ядро готовятся заранее на некоторой инструментальной платформе (host), отличной от целевой. Иными словами, собираем ядро и файловую систему на рабочем компьютере, упаковываем в образ, образ тиражируем на железо. Эта статья посвящена тому, как с помощью менеджера opkg установить пакеты в подготавливаемый образ rootfs.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments15

Как найти скрытую камеру в съемной квартире или номере отеля

Reading time4 min
Views197K

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

Случаев, когда постояльцы обнаруживают в своих комнатах и номерах скрытые камеры, становится все больше. Согласно результатам исследования, скрытые камеры находит 1 из 10 пользователей Airbnb. Не меньше таких устройств в отелях и хостелах. Представим масштабы проблемы, если учесть, что постояльцы обнаруживают далеко не все камеры, а только те, что установлены небрежно. Как обезопасить себя от шпионажа? Как минимум можно внимательно обследовать помещение, прежде чем поселиться в нем. В статье мы расскажем, что, где и как искать.
Total votes 129: ↑112 and ↓17+95
Comments164

Почему я не буду пользоваться онлайн-кинотеатрами

Reading time6 min
Views100K
Всем привет! Меня зовут Леонид, я — разработчик сайта Поиск VPS. Некоторое время назад ко мне в обратную связь писало немало пользователей, которые просили помощи в подборе виртуального сервера для организации онлайн-кинотеатра. Естественно, планировалось использовать VPS только под сайт без хранения контента, но набор требований был всегда примерно одинаковый: абузоустойчивость, оплата биткоинами, круглосуточная поддержка и размещение не в России. В последнее время число таких запросов снизилось почти до нуля, как мне кажется потому, что большую часть рынка поделили между собой легальные онлайн-кинотеатры. У меня оформлено некоторое количество подписок, и на мой взгляд у таких сервисов есть некоторые существенные недостатки, о которых я сегодня хочу рассказать.


Чем же мне так не угодили онлайн-кинотеатры?
Total votes 162: ↑157 and ↓5+152
Comments455

Переводим на DoH домашнюю сеть, или еще один щелчок по носу фильтрации

Reading time8 min
Views123K

После сравнительно недавнего анонса компанией Mozilla запуска поддержки DNS-over-HTTPS (DoH) в продакшн в сети не утихают споры, зло это или благо. По моим ощущениям, позиция "зло" базируется в основном на том, что при этом манипуляция вашими DNS-запросами даже в полезных для вас целях будет затруднена, поэтому я пока что остаюсь на позиции "благо".
image


В Российской Федерации операторы связи, поставленные в очень жесткие условия нашим законодательством, вынуждены строить изощренные многоуровневые системы блокировок доступа к запрещенному Роскомнадзором на территории РФ контенту, на одном из уровней которых более-менее успешно работает перехват DNS-запросов. Использование DoH позволит обойти этот уровень, что в совокупности с использованием VPN может несколько облегчить вам жизнь. Обратите внимание, само по себе решение не может избавить вас от блокировок, потому что вряд ли в России есть провайдер, полагающийся только на фильтрацию через DNS. Вам нужен еще какой-то вариант обойти блокировки, например VPN, один из описанных в моих предыдущих статьях.


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


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

Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments67

Домашний кинотеатр на Raspberry

Reading time6 min
Views117K
Так случилось, что решил я упростить себе вопрос он-лайн просмотра фильмов, вариант стандартного смарт ТВ меня не устраивал, а постоянно торчащий кабель HDMI для подключения к ноутбуку раздражал. Решение моей проблемы я увидел в приобретении Raspberry Pi 4, который можно аккуратно спрятать за корпусом телевизора.
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments164

Сопоставление с образцом, изменения и перемещения в Rust

Reading time14 min
Views11K

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



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



В этой статье мы рассмотрим, как работает match в Rust. Вот основные элементы, которые match и его дополнение, enum, объединяют в единое целое:


  • Структурное сопоставление с образцом: анализ вариантов и удобство использования гораздо лучше, чем при использовании switch в C или Java.
  • Исчерпывающий анализ: match гарантирует, что ни один вариант не пропущен.
  • match поддерживает и императивный, и функциональный стили: вы можете и дальше использовать оператор break, присваивания и прочее, и вам совершенно не нужно переучиваться на стиль, основанный на выражениях;
  • match умеет как «заимствовать», так и «перемещать»: Rust поощряет программиста думать о владении и заимствовании данных. Выражение match спроектировано в том числе с возможностью только заимствования части структуры вместо её перемещения. Это нужно для того, чтобы не передать право владения какими-либо данными раньше, чем нужно.

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


Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments11

Как переписать код на Rust

Reading time39 min
Views8.7K
В предыдущей статье мы говорили о том, как избежать переписывания библиотеки на Rust, когда вам это не нужно. Но как насчёт тех случаев, когда это действительно необходимо?

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

Однако у Rust есть убийственная особенность, когда речь заходит о таких вещах. Он может вызывать код на языке С без накладных расходов (т. е. среда P/Invoke в C#), и он выставляет функции, которые можно использовать в C так же, как и любые другие функции на языке С. Это открывает дверь для альтернативного подхода:

Портировать библиотеки на Rust по одной функции.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments16

Пора обновить ваш монитор

Reading time16 min
Views174K

Иллюстрация: Юлия Прокопова

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

Поэтому я оптимизирую настройки, чтобы показывать действительно, действительно хорошие буквы. Для этого необходим хороший монитор. Не просто нужен, а ОБЯЗАТЕЛЕН. А под «хорошим» я имею в виду настолько хороший, насколько это возможно. Это мои мысли, основанные на моём собственном опыте того, какие мониторы лучше подходят для программирования.
Читать дальше →
Total votes 181: ↑148 and ↓33+115
Comments991

Как клеить по 13 девушек в час, используя машинное обучение и Tinder

Reading time7 min
Views150K
*Исключительно ради изучения Machine Learning, разумеется. Под немного недовольным взглядом любимой жены.

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

Я решил, что это неплохой способ немного пощупать машинное обучение на новой видеокарте. Останется только объяснить жене, что мне не нужна новая женщина потолще, а я просто тренирую нейросети.


Читать дальше →
Total votes 152: ↑144 and ↓8+136
Comments139

Как заработать на веб-скрапинге

Reading time5 min
Views33K
А вы знали о том, что то, что вы сейчас читаете, это — данные? Вы видите слова, но на серверах всё это хранится в виде данных. Эти данные можно куда-то скопировать, можно разобраться в их структуре, с ними можно сделать что-то ещё. Собственно говоря, только что мы привели упрощённое описание веб-скрапинга. Скраперы просматривают код, из которого созданы веб-сайты (HTML-код), или работают с базами данных, и вытаскивают отовсюду те данные, которые им нужны. Практически каждый веб-сайт можно подвергнуть скрапингу. На некоторых сайтах применяются особые меры, которые мешают работе веб-скраперов. Но тот, кто достаточно хорошо знает своё дело, способен успешно собрать данные с 99% существующих сайтов.



Если вы не знали о том, что такое веб-скрапер, то теперь вы, в общих чертах, об этом знаете. А это значит, что мы можем заняться тем, ради чего вы, вероятно, начали читать эту статью. Мы сможем приступить к разговору о заработке на скрапинге. Такой заработок, кстати, не так сложен, как может показаться на первый взгляд. На самом деле, все методы и примеры, которые я собираюсь вам показать, укладываются в менее чем 50 строк кода. А изучить всё это можно буквально за несколько часов. Собственно говоря, полагаю, что сейчас вы вполне готовы к тому, чтобы узнать о трёх способах заработка с помощью веб-скрапинга.
Читать дальше →
Total votes 58: ↑49 and ↓9+40
Comments69

GitHub Actions как CI/CD для сайта на статическом генераторе и GitHub Pages

Reading time7 min
Views15K


Немного прошерстив Habr удивился тому, что очень мало опубликовано статей на тему (beta-)фичи GitHub'а — Actions.


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

Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments14

Как жить и работать с психиатрическим диагнозом: расшифровка эфира, часть 1

Reading time24 min
Views24K

И снова привет, Хабр.

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

Поэтому перед публикацией расшифровки я хочу сказать спасибо за поддержку и доверие. Я постаралась ответить на все вопросы во время эфира — вышло длинно, поэтому расшифровка выйдет двумя частями: в целом о жизни с БАР и практические вопросы, вроде как найти врача.

Под катом часть первая — о жизни с БАР.
Total votes 65: ↑58 and ↓7+51
Comments43

Как жить и работать с психиатрическим диагнозом. Часть 2: практические вопросы

Reading time14 min
Views27K

Кэрри Фишер, известная ролью принцессы Леи всю жизнь сражалась с биполярным расстройством — ей не помогали лекарства, только электрошок. Она — мой любимый биполярник, поэтому и иллюстрирует эту статью

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

В этой части расшифровки все практические вопросы про ментальные расстройства, которые задавали читатели Хабра во время эфира: как найти врача, как помочь близкому человеку с заболеванием и могут ли вас насильно госпитализировать и поставить на учет в современной России.
Total votes 53: ↑46 and ↓7+39
Comments122

Событийно-ориентированный бэктестинг на Python шаг за шагом. Часть 1

Reading time9 min
Views27K


Ранее в нашем блоге на Хабре мы рассматривали различные этапы разработки торговых систем (есть и онлайн-курсы по теме), среди которых одним из наиболее важных является тестирование на исторических данных (бэктестинг). Сегодня речь пойдет о практической релизации событийно-ориентированного бэктест-модуля с помощью Python.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments3

Прокачиваем свои CSS-анимации

Reading time10 min
Views79K


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


Разумеется, нет. Главные сложности начинаются тогда, когда речь заходит о чем-то более хитром, нежели изменение цвета или прозрачности у элемента, тогда, когда мы сталкиваемся с дизайнером с широкими взглядами, который придумыват всякие разные штуки, не особенно заботясь о том, как их потом верстать. И вот тут многие фронтендеры начинают спотыкаться. Мои наблюдения показывают, что разработчикам, причем не только начинающим, не хватает широты взглядов, не хватает каких-то дерзких идей, ломающих привычный порядок элементов на странице, чтобы реализовать что-то более-менее сложное. И мне кажется, что нужно с этим что-то сделать. В связи с этим мы сегодня посмотрим на некоторые примеры CSS-анимаций с CodePen, которые могут стать триггерами, заставляющими задуматься о широте возможностей простых казалось бы инструментов, и дадим сами себе несколько советов по поводу того, что стоит попробовать сделать при изучении этого класса анимаций. Надеюсь кому-то это поможет взглянуть на CSS-анимации под новым углом и немного прокачать свои навыки их использования.

Total votes 18: ↑18 and ↓0+18
Comments3

Запрещаем говнокод, или полезные плагины для ESLint

Reading time4 min
Views58K

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


Сегодня я хочу затронуть тему ESLint'а, прекрасного инструмента для проверки JavaScript проектов на наличие ошибок.


Я не буду писать в этой статье об очевидных моментах, вроде настройки eslint'а для вашего проекта: надеюсь, вы сможете самостоятельно прочесть документацию по этой части и подключить его к себе. А здесь мы обсудим, какой дополнительный «обвес» можно подключить к изначальному инструменту и как его можно настроить, чтобы заставить работать его с наибольшей пользой для вас.

Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments20
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity