Обновить
33
0.4
ionicman@ionicman

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

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

Считаем «a=1; b=2; x=pi/3; abcos(x)»

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели3.8K

В предыдущей серии мы научились считать выражения вида -2.1+ .355 / (cos(pi % 3) + sin(0.311)). Один из комментариев там предложил посчитать то, что я вынес в заголовок этого поста. Что ж, вызов принят. Как и в предыдущем посте, мы "на пальцах" разбираем устройство простейшего интерпретатора.

Считать далее

React starter (Webpack + Typescript + Css modules + Jest)

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели22K

Хочу поделиться своим видением сборки для быстрого старта разработки на React.

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

Что‑то я подглядел здесь же, на Хабре, к чему‑то пришёл сам, ну и «ангажировал» немного на просторах «необъятного».

Что «под капотом»

Webpack 5
React v.18
Redux (Redux Toolkit)
Typescript
Css modules
Jest
VS Code

Читать далее

Как мы учились обходить блокировки VPN в Китае, чтобы быть готовыми к РКН

Время на прочтение7 мин
Охват и читатели106K

В понедельник 7 августа пользователи VPN-сервисов из России заметили проблемы с подключением к серверам. По собранной в соцсетях и Телеграме информации, ограничения затронули наиболее распространенные VPN-протоколы OpenVPN,  L2TP, PPTP и WireGuard. На сбои в работе VPN-сервисов жаловались клиенты мобильных операторов — Мегафон, МТС, Билайн, Tele2, Yota, Тинькофф Мобайл. 

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

Читать далее

DIY-программатор ST-Link V2.1

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели68K

Привет, Хабр!

Предлагаю вашему вниманию самодельный программатор ST-Link V2.1.

Особенности: интерфейс SWD, функция виртуального COM-порта, поддержка SWO, функция MSC (mass storage class), низкая цена.

Перейти к статье

Установка Firefox 116 под Windows 7

Время на прочтение1 мин
Охват и читатели55K
Тема навеяна публикацией «Пиратим» Google Chrome для Microsoft Windows 7.

Дурной пример заразителен, и одновременно с Google Mozilla объявила, что очередная версия её браузера — номер 116 — под Windows 7 работать не будет. Если вы попытаетесь скачать и запустить инсталлятор FF под этой ОС, он пожалуется на необходимость обновления. Можно ли это как-то предотвратить? И насколько сложно это сделать по сравнению с Google Chrome? Судите сами.
Читать дальше →

«Пиратим» Google Chrome для Microsoft Windows 7

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели103K

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

На абордаж!

Читать далее

Круглосуточная трансляция CCTV IP Камеры на Youtube

Уровень сложностиПростой
Время на прочтение30 мин
Охват и читатели23K

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

В моём случае — реализована трансляция CCTV камеры, но контент можно выбрать любой, какой пожелаете.

Читать далее

Чего хотят пользователи, нажимая цифры на телефоне?

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели7.4K

Поднимите руки те, у кого есть номер телефона... Вау, лес рук! Но знаете ли вы, что скрывается за этим набором цифр?

Читать далее

Swipe sidebar — отдельный Typescript сервис и обработка touch событий на Vue

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели2.7K

Приветствую, друзья технологии!

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

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

В этой увлекательной статье мы окунемся в мир свайп-сайдбаров, расскажу, как они работают, как создать свой собственный сервис для свайпов, прикрутим все это дело к Vue + Typescript. Не волнуйтесь, если вы новичок в программировании или разработке, я проведу вас через каждый шаг, чтобы вы могли освоить это волшебство свайпов!

Читать далее

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

Время на прочтение9 мин
Охват и читатели15K

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

Казалось бы, что между ними нет ничего общего, но это не так. Абсолютно все эти компоненты объединяет одно — языковая модель. Чем выше её качество, тем выше скорость ввода, а значит, и пользователь будет чуточку счастливее.

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

Читать далее

Считаем 2+2×2

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели8K

Статья-туториал для тех, кто хочет узнать, как из заголовка получается «6» методом рекурсивного спуска. Начнём с самого простого и дойдём до вычисления -1.82 или около того из строки -2.1+ .355 / (cos(pi % 3) + sin(0.311)).

Конечно, этот метод неоднократно описан на Хабре и зачитан каждому айтишному первокурснику. В своей версии я хочу изложить его очень просто, подробно и поэтапно, элементарной практикой на JavaScript. Ссылки на рабочий код — в самом низу.

Читать далее

Развлекаемся с электрофоретическими дисплеями

Уровень сложностиПростой
Время на прочтение21 мин
Охват и читатели29K

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

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

Читать далее

Ирина — опенсорс русский голосовой помощник. Offline-ready

Время на прочтение9 мин
Охват и читатели77K

- Ирина, таймер...
- Ставлю таймер на пять минут.

Вполне себе обыденная история из моего быта. Я таки сделал собственного автономного голосового помощника.

TL;DR> Ирина вполне неплохо работает дома 24x7.

Потребуется установить Python 3.5+ и зависимости через pip (немного знаний Python).

Скиллы "из коробки": таймер, погода, контроль медиа (громче/тише/дальше), контроль плеера MPC-HC, запуск медиа из папки, расписание ближайших электричек, "подбрось кубик/монетку".

Плагинами добавляются: другие скиллы, Text-to-Speech и Speech-to-Text движки.

Интересно? Поехали >

Использование Provider, Riverpod, Bloc(Cubit), Redux, MobX на одном простом примере

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели20K

Управление состоянием – это фундаментальная концепция всех фреймворков для разработки приложений, и Flutter не является исключением. Существует несколько техник и инструментов, которые можно использовать, и выбор наиболее подходящего из них часто зависит от сложности и требований приложения, которое вы создаете. В этой статье рассмотрено несколько отличных способов управления состоянием – (с помощью) Provider, Riverpod, Bloc(Cubit), Redux, Mobx.

Узнать

Почему работает алгоритм преобразования инфиксной записи в постфиксную

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели8.7K

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

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

Читать далее

6-шаговая коммутация BLDC моторов

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели43K

В нашем проекте контроллера сервоприводов применяется чип семейства Renesas Synergy S5D9. Чип содержит периферийный блок специально предназначенный для 6-шагового управления. Попробую показать как этот блок применить для управления BLDC мотором и какие грабли разложены на пути.

Читать далее

USB на регистрах: составные устройства

Время на прочтение13 мин
Охват и читатели11K


Еще более низкий уровень (avr-vusb)
USB на регистрах: STM32L1 / STM32F1
USB на регистрах: bulk endpoint на примере Mass Storage
USB на регистрах: interrupt endpoint на примере HID
USB на регистрах: isochronous endpoint на примере Audio device


Вот мы познакомились со всеми базовыми типами конечных точек, пришло время разработать какое-нибудь полезное устройство. Для примера пусть это будет программатор-отладчик STM-ок, работающий через стандартный UART bootloader.

Читать дальше →

Шпаргалка по SQL (postgres), которая выручает меня на собесах

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели273K

Привет, Хабр!

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

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

Читать далее

Введение в View Transitions API

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели13K


Новый View Transitions API, что можно перевести как "интерфейс переходов отображения", предлагает легкий способ анимирования перехода между двумя состояниями DOM — даже между загрузками страниц. Это прогрессивное улучшение, которое можно реализовать уже сегодня.

Читать дальше →

Движок для игры от первого лица в 265 строках Javascript

Уровень сложностиСложный
Время на прочтение6 мин
Охват и читатели27K
image

Сегодня окунёмся в мир, который можно потрогать. В этой статье мы исследуем, как с нуля, быстро и без особо сложной математики написать движок для игры от первого лица. Для этого мы воспользуемся приёмом под названием «бросание лучей» (raycasting). Возможно, вы видели примеры такой техники в играх Daggerfall и Duke Nukem 3D, а из более свежего – в статьях из «ludum dare» от Нотча Перссона. Что ж, для Нотча это неплохо, но не для меня! Вот демка (управление стрелками и тачпадом) [источник].
Читать дальше →

Информация

В рейтинге
2 283-й
Зарегистрирован
Активность