Как стать автором
Обновить
24
0
Frozik @Frozik

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

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

Tinkoff Pro Open Source

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

Мы в Тинькофф активно инвестируем в образование. Развиваем Поколение, Финтех, Академию и другие программы. Open source — наглядный способ передать экспертизу на конкретных примерах и дополнительная возможность развивать наши образовательные программы.

Открытая разработка инструментов позволяет расширить свою экспертность и развить саму область вокруг, проводить митапы и конференции и развивать dev-комьюнити. В прошлой статье мы рассказали про центр технологий искусственного интеллекта — Tinkoff.AI. А сегодня поговорим про развитие AI open source: как мы развивали ETNA, релизили CORL, открывали свои AI-исследования. Все самое интересное про насыщенный 2022 год — в этом посте.

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

Лонгрид по полезному чтению в 2023 году: 39 книг, которые помогут писать красивый <код>

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

≀И эта статья ответит на вопрос, зачем вообще читать книги в 2023 году при великом разнообразии онлайн-курсов.

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

Каждое издание из подборки расширяет знания по целому ряду тем, связанных с разработкой.

Для вашего удобства добавил рейтинг, ссылки на переводы и картинки для тех, кто просто добавляет статью в закладки, не читая. Enjoy на новогодних праздниках или прямо сейчас.
Читать дальше →
Всего голосов 33: ↑30 и ↓3 +27
Комментарии 12

Generative adversarial networks

Время на прочтение 12 мин
Количество просмотров 26K
В прошлой статье мы рассмотрели простейшую линейную генеративную модель PPCA. Вторая генеративная модель, которую мы рассмотрим — Generative Adversarial Networks, сокращенно GAN. В этой статье мы рассмотрим самую базовую версию этой модели, оставив продвинутые версии и сравнение с другими подходами в генеративном моделировании на следующие главы.


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

Как россиянину открыть счет в банке Грузии?

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

Много было уже было написано про Армению, хотелось бы немного остановиться на Грузии.

В Армении, в разрезе открытия счета в банке главный плюс, актуальный на 14 июня 2022 года - наличие банков, подключенных к СПФС. Главный минус - невозможность удаленного открытия.

В Грузии свои минусы, например нереально отправить SWIFT в РФ, но есть и плюсы, например более лояльные требования к открытию счета в банке. В большинстве банков требуется личное присутствие клиента, однако есть исключения (BoG, Liberty) когда открыть счет в банке удается удаленно по доверенности через знакомого или посредника. Основные банки работающие с россиянами, это Bank of Georgia и его «подразделение» банк SOLO, а также банки Credo, TBC, Liberty и некоторые другие.

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

Основным документом, который заполняется желающим открыть счет является анкета-заявка KYC (Know your client), которую требуют практически все банки. Существует много случаев, когда банки открывают счет или отказывают только после предоставления KYC и загранпаспорта. Пакет документов зависит от банка, его конкретного офиса и даже сотрудника, с которым ведется взаимодействие. В первую очередь следует внимательно отнестись к документам подтверждающим доход, так как это основное требование помимо загранпаспорта.

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

Используем клиентский процессор по максимуму. Часть 2: SIMD + мультипоточность

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

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

В предыдущей части мы нарисовали фрактал Ньютона с помощью WebAssembly на Rust. В этой части мы задействуем SIMD команды и параллельные вычисления, чтобы добиться ещё большей производительности.

Вживую увидеть прирост скорости можно на онлайн-демо. На моём компьютере она составляет ~900% по сравнению с обычной реализацией на wasm.
Читать дальше →
Всего голосов 70: ↑70 и ↓0 +70
Комментарии 11

Создание telegram web apps и взаимодействие с ними в телеграм ботах

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

В обновлении Bot API 6.0 телеграм-боты получили много новых функций. Из них для разработчиков самая примечательная - Telegram Web Apps (Веб-приложения внутри телеграм). С этим нововведением разработчики могут подключать к своим ботам web-приложения, которые открываются в дополнительном окне, что сильно расширяет инструментарий, а, следовательно и функционал ботов в телеграм.

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

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 5

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

На прошлом уроке я рассказал о том, как повысить контрастность изображения и как выделить на изображении особе точки. Затем мы попробовали работать с найденными особыми точками. В частности, превратили эти точки в список  координат и попытались объединить близкие точки в одну, так как у нас получилось очень много точек рядом. В статье был предложен следующий алгоритм: при составлении списка, перед добавлением в список очередной точки проверять, находится ли она близко от последней, если да, то добавлять в тот же список, если нет, то начинать новый список.  Только проблема в том, что обход точек был через развертку, и могло получиться так, что близкие точки попадают в разные списки. Поэтому объединение точек получилось «криво».  Сегодня мы исправим этот недочет.

Для начала, почему мы вообще начали все эти хитрости с алгоритмом? Дело в том, что если решать задачу «в лоб», то время работы алгоритма у нас будет пропорционально квадрату размера списка. Собственно, давайте сначала проверим, насколько критично будет время работы алгоритма «в лоб» при разных ситуациях. И так, нам нужно перебрать все точки и сравнить их расстояния со всеми точками:

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

Service Workers

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

В этой статье я хотел бы поговорить о Service Workers (SW). SW позволяют нам сделать наше приложение готовым к работе в автономном режиме, чтобы оно работало, даже если у нас нет подключения к Интернету. Они также позволяют нам использовать множество других расширенных функций, таких как push-уведомления или фоновая синхронизация. SW продолжает работать даже после закрытия браузера, то есть Service Workers продолжают работать. Это фоновый процесс. Итак, давайте зарегистрируем нашего первого Service Worker’a.

(В этой статье я реализую функциональность, связанную с SW, на простом JS, поскольку код написан на простом JS, мы можем интегрировать в любые JS-фреймворки, такие как Angular, React или Vue)

В качестве первого шага добавим файл sw.js в корневую папку проекта. В app.js мы должны проверить, доступен ли SW в навигаторе, то есть поддерживаются ли SW данным браузером. Теперь, когда мы знаем, что SW доступны, мы можем выполнить метод navigator.serviceWorker.register (), указывая путь к файлу, в котором находится наш SW, чтобы его зарегистрировать. Этот метод фактически возвращает Promise. Итак, чтобы получить информацию, как только это будет сделано, мы можем присоединиться к нему.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 8

Универсальный метод обхода запрета Yota раздавать интернет с телефона или собираем модуль ядра Android

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

Старые методы и их недостатки


Я думаю, никому уже не интересно читать во второй раз (а может быть и в третий), о том, как Yota определяет, пользуется ли человек телефоном в режиме модема или точки доступа. «Зачем нам ещё одна статья?» — спросите вы.

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

Именно эти причины мотивировали меня копать дальше в поисках ответа на вечный вопрос «Как же всё-таки нахаляву раздать интернет всему офису?». И найти такой ответ удалось (только для android, у меня нет яблока).
Читать дальше →
Всего голосов 59: ↑57 и ↓2 +55
Комментарии 42

Компьютерное зрение на WebRTC-сервере с аппаратным ускорением от Intel OWT

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

WebRTC упростил (в большинстве своем) получение и отправку видеопотоков в реальном времени. А значит, можно немного поразвлекаться с ними при помощи машинного обучения. В прошлом месяце я показал, как запустить компьютерное зрение (Computer Vision – CV) локально в браузере. Как я уже упоминал, локально – это, конечно, хорошо, но иногда требуется более высокая производительность, и для этого нам понадобится удаленный сервер. В данном посте я расскажу о том, как запускать серверные модели OpenCV с аппаратным ускорением на чипсетах Intel с помощью Open WebRTC Toolkit (OWT) с открытым исходным кодом.
Читать дальше →
Всего голосов 38: ↑38 и ↓0 +38
Комментарии 1

3D-аркада в браузере: как мы сделали игру на React + Redux

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

Привет, Хабр! В не такие уж далёкие годы, на первом курсе «программистского» факультета, мне нравилось задавать товарищам по учёбе вопрос: «Зачем вы вообще пошли сюда учиться?» Точной статистики ответов я, конечно, не вёл, но доподлинно помню: больше половины хотели делать игры. Большинство тех, кто так отвечал, оказались не готовы к обилию разных видов «математик» и «физик», которыми нас завалили в первые два года учёбы. Выдерживали не все — уже к концу второго курса из пяти переполненных групп осталось три неполных.


Не так давно нашей фронтенд-команде предоставилась возможность попробовать себя в роли gamedev. Очень коротко, задача такая: сделать самую настоящую 3D-игру, да так, чтобы можно было поиграть, просто открыв браузер. Даже мобильный. Даже в WebView.



В этом посте я постараюсь рассказать о том, как мы спроектировали архитектуру игры, с какими проблемами столкнулись, используя один из самых популярных и актуальных технологических стеков — React + Redux, и какими «хорошими практиками», вероятнее всего, придётся пожертвовать, если вы для схожих задач выберете этот же стек.

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

Реализация WebRTC в медиа сервере – практика и политика

Время на прочтение 11 мин
Количество просмотров 13K
1. Стриминг в браузеры в реальном времени – решения нет. Или есть?

Вот уже примерно как 20 лет пропускная способность сетей и вычислительные возможности компьютеров позволяют сжатие и транслирование звука и видео по IP протоколу в режиме, близком к реальному времени. За это время центральными стандартизирующими организациями, такими как W3C и IETF, а также множеством больших и малых компаний, разработаны сотни стандартов и протоколов для эффективного сжатия, упаковывания, пересылки, синхронизации и проигрывания аудио-видео контента на компьютерах и мобильных устройствах. Видеозахвату, сжатию и трансляции по IP в реальном времени было уделено особое внимание, так как, во-первых, именно IP наиболее дёшев и общедоступен на всех уровнях, а во-вторых, технологии видеоконференций и видеонаблюдения жизненно необходимы и пользуются огромным спросом.
Читать дальше →
Всего голосов 12: ↑8 и ↓4 +4
Комментарии 4

Средства консоли Chrome, которыми вы, возможно, никогда не пользовались

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



Материал, перевод которого мы сегодня публикуем, посвящён рассказу о некоторых возможностях консоли Chrome, которые известны не так широко, как они того заслуживают.
Читать дальше →
Всего голосов 94: ↑94 и ↓0 +94
Комментарии 27

Запись звука JS c микрофона или голосовые комментарии

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

Запись звука JS c микрофона или голосовые комментарии


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

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

Постановка задачи


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

Бэрримор, что за шум вокруг Voximplant? Внедрили веб-сокеты, сэр

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

WebSocket — это прогрессивный стандарт полнодуплексной (двусторонней) связи между клиентом и сторонним сервисом в режиме реального времени. Веб-сокеты используются для организации непрерывного обмена данными без дополнительных HTTP-запросов.

И мы рады сообщить вам, что все это стало возможным в Voximplant благодаря новому модулю VoxEngine, который называется – сюрприз – WebSocket. Отныне вы сможете передавать текст и аудио, пользуясь преимуществами веб-сокетов в полной мере. Проще говоря, у вас появился еще один инструмент, чтобы прокачать ваше приложение.

Из этой статьи вы узнаете, как создать исходящее WebSocket-соединение, передать через него аудиопоток и преобразовать его в текст с помощью Google Cloud Speech-to-Text API.
Читать дальше →
Всего голосов 32: ↑31 и ↓1 +30
Комментарии 9

Как создать и развернуть Full-Stack React-приложение

Время на прочтение 8 мин
Количество просмотров 14K
Привет, Хабр! Представляю вашем вниманию перевод статьи «How to Build and Deploy a Full-Stack React-App» автора Frank Zickert.

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

Хотите стать full-stack разработчиком? Full-stack приложение дополняет интерактивный веб-интерфейс React сервером и базой данных. Но такое приложение требует гораздо больше настроек, чем простое одностраничное приложение.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Делаем крутой sticky-эффект для слайдера на React

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

Есть много разных библиотек для реализации слайдера со всеми возможными эффектами. Для React одни из лучших это: ReactSlick и Swiper. Но когда для моего проекта потребовался горизонтальный sticky-эффект, то ничего подходящего не нашлось.



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

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

Как проводить Code Review по версии Google

Время на прочтение 5 мин
Количество просмотров 126K
Вопросы код-ревью меня интересуют очень давно. Много раз возникали те или иные проблемы то с качеством кода, то с климатом в коллективе. И действительно, code review — это если не единственное, то одно из самых главных мест для возникновения конфликтов в коллективе разработчиков.

И вот недавно при подготовке к очередному выпуску подкаста "Цинковый прод" я узнаю, что Google опубликовал свод правил по проведению Code Review, битком набитый ценными мыслями. Весь материал довольно объемный и не влезет в одну статью, поэтому я постараюсь выделить наиболее интересные (мне) мысли.


Итак, поехали

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

Full-stack TypeScript Apps

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

Привет, Хабр! Представляю вашему вниманию перевод статьи "Full-Stack TypeScript Apps — Part 1: Developing Backend APIs with Nest.js" автора Ana Ribeiro.


Часть 1: Разработка серверного API с помощью Nest.JS


TL;DR: это серия статей о том, как создать веб-приложение TypeScript с использованием Angular и Nest.JS. В первой части мы напишем простой серверный API с помощью Nest.JS. Вторая часть этой серии посвящена интерфейсному приложению с использованием Angular. Вы можете найти окончательный код, разработанный в этой статье в этом репозитории GitHub


Что такое Nest.Js и почему именно Angular?


Nest.js это фреймворк для создания серверных веб-приложений Node.js.


Отличительной особенностью является то, что он решает проблему, которую не решает ни один другой фреймоворк: структура проекта node.js.

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

Современный валютный рынок

Время на прочтение 19 мин
Количество просмотров 46K
Маринус ван Реймерсвале. Меняла и его жена. 1539 г. Музей Прадо, Мадрид.
Маринус ван Реймерсвале. Меняла и его жена. 1539 г. Музей Прадо, Мадрид.

Я начал работать в Deutsche Bank программистом на Java в 2009-м году (последствия кризиса, чудо на Гудзоне, «Миллионер из трущоб», свиной грипп, поражение сборной в Мариборе). На собеседовании мне сообщили, что я буду работать в проекте AutobahnFX.

FX? Foreign eXchange? Мои знания о валютном рынке не отличались от знаний среднестатистического обывателя. На углу возле дома есть обменник, но от разницы курсов покупки и продажи дёргается глаз. В вагонах метро висит реклама форекс-контор «Чувствуешь разницу? На этом можно заработать!» Газеты описывают инвестиционные банки то как всезнающих спекулянтов, предсказывающих курсы валют на годы вперёд, то как сборище бездарных рвачей, обрушивших мировую экономику. «Ну ладно, — подумал я, — разберёмся в процессе».

Эта статья — часть того, что я выяснил, работая то над одной системой, то над другой. Почему вам стоит прочитать её? Во-первых, это интересно. Современный валютный рынок — сложная распределённая система из множества независимых акторов. Во-вторых, если вы работаете в финансах, вы можете увидеть сходство и с другими рынками, от рынка облигаций до рынка деривативов на погоду. Наконец, в-третьих, если в следующий кризис опять грохнется какой-нибудь инвестиционный банк, вам будет проще читать разбор полётов в прессе.
Читать дальше →
Всего голосов 98: ↑97 и ↓1 +96
Комментарии 62

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Работает в
Дата рождения
Зарегистрирован
Активность