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

Программист

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

Наиболее распространённые мифы о Scala: сеанс с разоблачением

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

В этом посте развенчивается ряд очень существенных мифов о языке Scala, которые, как нам известно, циркулируют в блогосфере. Для каждого развенчанного мифа мы представим альтернативную точку зрения, подкреплённую данными из надёжных источников.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии20

React и Typescript: Создание динамического компонента на примере кнопки

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

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

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

Мозг. Как он работает

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

Хочу поделиться в блоге ЛАНИТ впечатлениями о книге нейробиолога, профессора Стенфордского университета Дэвида Иглмена «Живой мозг. Удивительные факты о нейропластичности и возможностях мозга» (Москва, «Манн, Иванов и Фербер», 2022). Книга читается легко, она не содержит «страшных» медицинских терминов, которые могли бы отпугнуть читателя, и в то же время достаточно убедительно разъясняет природу мышления и причину довольно сложных случаев отклонений от нормального развития мозга.

Читать далее
Всего голосов 99: ↑98 и ↓1+97
Комментарии29

Однажды у нас будет полностью настраиваемый select

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

Сегодня я хочу рассмотреть предложенную функцию HTML, которая может в итоге заменить множество пользовательских компонентов ввода на основе <div>: <selectmenu>.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии15

Мощь декораторов TypeScript на живых примерах. Декорирование методов класса

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

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

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

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии6

Как мы обучили нейросеть генерировать тени на фотографии

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

Привет!

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

Ну что, погнали?

Читать далее
Всего голосов 29: ↑28 и ↓1+27
Комментарии17

Правило Хебба всё-таки не требует внешнего подкрепления

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

Само правило Хебба звучит следующим образом: «Если аксон клетки А находится достаточно близко, чтобы возбуждать клетку B, и неоднократно или постоянно принимает участие в её возбуждении, то наблюдается некоторый процесс роста или метаболических изменений в одной или обеих клетках, ведущий к увеличению эффективности А, как одной из клеток возбуждающих В». Взято здесь.

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии1

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

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


В одном своём гисте Андрей Карпаты сделал кое-что впечатляющее. Чуть больше чем в 100 строках кода на Python — без тяжеловесных фреймворков для машинного обучения — он прописал довольно полную реализацию языковой модели для обучения символьно-ориентированных рекуррентных нейросетей (РНС). Гист включает полное обучение методом обратного распространения с оптимизацией Adagrad. Подробности — к старту флагманского курса по Data Science.

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

Эксплойтинг браузера Chrome, часть 1: введение в V8 и внутреннее устройство JavaScript

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


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

Работая дверями в Интернет, браузеры в то же время создают существенные угрозы целостности персональных вычислительных устройств. Почти ежедневно мы слышим новости наподобие "баг Google Chrome активно используется как Zero-Day" или "Google подтвердила четвёртый эксплойт Zero-Day Chrome за 2022 год". На самом деле, эксплойты браузеров не представляют собой ничего нового, их находят уже долгие годы, начиная с первого эксплойта для удалённого исполнения кода, задокументированного как CVE-1999-0280. Первым потенциально публичным раскрытием браузерного эксплойта, используемого в реальных условиях, стал эксплойт Aurora браузера Internet Explorer, который атаковал Google в декабре 2010 года.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии3

React hooks, как не выстрелить себе в ноги. Часть 4

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

Использование ref в функциональных компонентах играет две роли:

1. С помощью них можно получить ссылку на dom элементы и react компоненты

2. ref можно использовать как стабильные переменные.

В этой статье сосредоточимся на первой роли, разберем, как с помощью ref получить доступ к dom элементам и компонентам react, включая такие какие способы как createRef, useRef и ref callback. Обсудим для чего нужны forwardRef и useImperativeHandle , и как с их помощью получить ссылку на функциональные компоненты, спойлер: нельзя так просто получить ссылку на функциональный компонент с помощью ref. А уже в следующей статье обсудим роль ref в качестве стабильной переменной, и как это облегчит нам жизнь при использовании useEffect, useMemo, useCallback.

Читать далее
Всего голосов 12: ↑11 и ↓1+10
Комментарии12

Как сделать свой собственный менеджер состояния в React всего с одним хуком

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

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

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

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

Postgres WASM от Snaplet и Supabase

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


Сегодня мы с нашими друзьями из Snaplet открываем исходники postgres-wasm — запускаемый в браузере сервер PostgreSQL с полным набором функционала, включая сохранение состояния в браузере, восстановление из pg_dump и логическую репликацию из удалённой базы данных.


Впервые Postgres в браузере запустили в Crunchy Data, их потрясающая версия выложена на HN месяц назад. Вместе со Snaplet мы решили сделать версию с открытым кодом. Посмотрим, как она разрабатывается и какой функционал мы добавили. Подробности — к старту нашего флагманского курса по Data Science.


Что такое Snaplet?

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

Создаём npm пакет, совместимый с CJS, ESM, написанный на TypeScript

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

Здравствуйте! Меня зовут Евгений, я бакенд разработчик в компании ClickON. Хотелось бы поделиться опытом создания npm пакета, который умеет встраиваться в CommonJS, ESModule проект. Опишем подводные камни, попытаемся сделать универсальный пакет, прикрутим алиасы.

Читать далее
Всего голосов 20: ↑19 и ↓1+18
Комментарии7

Raspbery Pi Pico для управления адресуемыми светодиодами

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


Если вам нужно сделать гирлянду, где переливается десяток-сотня светодиодов, то эта статья будет вам мало полезна. А вот если у вас несколько десятков тысяч светодиодов и вы еще собираетесь показывать кино с их помощью — тогда вам эта информация определенно сгодится. Тем более, что других источников вы, скорее всего, просто не найдете.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии17

TypeScript в React-приложениях. 2. Как понимать типы

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

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

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

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

Ученые нашли упражнение, позволяющее худеть, сидя по 10 часов в день

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


Недавно опять разгорелась дискуссия, как можно похудеть, работая в IT. Так вот, хороший (и научный) способ есть, и он на самом деле проще, чем можно было бы ожидать.


Конечно, если ничего не делать, то будешь только толстеть. Средний офисный сотрудник сегодня сидит больше 10 часов в день. Мы с вами, чувствую, ещё больше, особенно если на досуге играем, читаем Хабр или смотрим ютуб. Лично меня от компьютера вообще не оттащить. Хотя читал полно исследований, говорящих о больших проблемах со здоровьем, возникающих из-за малоподвижного образа жизни.


Например, было доказано, что независимо от уровня физической активности слишком много сидения увеличивает риск сердечных заболеваний, диабета, деменции и серьезных проблем со спиной. Более половины всех людей в мире сегодня уже страдают от этих проблем, и больше 80% людей в возрасте 60+.


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


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

Читать дальше →
Всего голосов 179: ↑165 и ↓14+151
Комментарии296

Анализ временных рядов, применение нейросетей (1 часть)

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

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

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

Читать далее
Всего голосов 16: ↑14 и ↓2+12
Комментарии8

Автоматное программирование: определение, модель, реализация

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

Термин «автоматное программирование» (АП) был введен в широкую практику в 90-х годах прошлого века [1, 2], хотя о применении автоматов в программировании шла речь задолго до этого. R первым упоминаниям уже начала 70-х годов можно отнести метод введения переменной состояния или, по-другому, метод преобразования неструктурированных программ Ашкрофта и Манны [3]. За прошедшее время сформировалось достаточное число его поклонников и не меньшее число критиков. Если говорить об их разногласиях, то в их основе отсутствие формального определения АП и поверхностное восприятие его возможностей. Из-за этого автоматное программирование формируется интуитивно, что и приводит к противоречивым его формам, порой, мало похожим на первоисточник – модель конечного автомата.

Читать далее
Всего голосов 12: ↑7 и ↓5+2
Комментарии41

Проблемы эгоистов: дорожные пробки и парадокс Браеса

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

Строительство более широких дорог может ухудшить ситуацию с дорожным движением. Обычно этот контринтуитивный и контрпродуктивный результат объясняют следующим образом: чем больше дороги, тем более крупные торговые центры они привлекают, что в свою очередь привлекает больше автомобилей. Но это ещё не вся история. В 1960-х Дитрих Браес обнаружил теоретическую конфигурацию дорог, в которой строительство новой соединительной дороги может замедлить движение каждого, даже если количество машин остаётся постоянным. И наоборот, закрытие одной дороги в сети Браеса позволит всем добираться домой быстрее. Такое явление настолько странно, что заслуживает собственного определения — «Парадокс Браеса».

Несколько лет назад Джоел Коэн сказал мне, что парадокс Браеса может стать хорошей темой для моей колонки в «Computing Science». Я засомневался. Опубликовано уже немало обсуждений этого парадокса, в том числе потрясающие статьи самого Коэна, а также книга Тима Рафгардена (обзор которой я написал для American Scientist). Я не считал, что смогу добавить что-то новое к дискуссии.

Однако недавно я начал рассматривать задачу визуализации парадокса Браеса — представлении его таким образом, чтобы мы могли наблюдать отдельные автомобили, едущие через дорожную сеть, а не просто вычислять средние скорости и время в пути. Возможность поэкспериментировать с моделью — понажимать рычаги и кнопки, попробовать разные алгоритмы маршрутизации — может привести к более чёткому пониманию того, почему хорошо информированные и имеющие собственный интерес водители могут выбирать маршрут, который в результате тормозит всех.
Читать дальше →
Всего голосов 85: ↑85 и ↓0+85
Комментарии713

Шевели элеронами: динамическая регрессия на замену объекта управления

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

Итак, вам нужно ускорить модель объекта управления в несколько раз. Вы попробовали рекуррентные сетки, а потом решили вспомнить Ляпунова и Понтрягина и сделать это без data science. Поехали!

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии3
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность