Как стать автором
Обновить
9
0.1
Василий Банников @vabka

На дуде игрец

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

Googlим бесплатно (и Яндексим): open-source решение с API

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

Бесплатно? Конечно же никто у вас деньги за "пойти в гугл" не возьмет... А что если попытаться автоматизировать сей процесс? Вот тут то возникают проблемы и чернозём для бизнесов.

Как и в прошлой статье я полез доставать файлы из интернетов, на этот раз из Гуглов. История повторилась и я осознал, что где-то в закромах у меня был код для этого. С радостью начав его изучать, понял, что радости там не много и легче найти что-то готовое...

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

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

LAION и энтузиасты по всему миру разрабатывают Open Assistant — открытый аналог ChatGPT

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

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

Читать далее
Всего голосов 39: ↑38 и ↓1+37
Комментарии29

Интеграция с ЕСИА для .Net: запутаннее, чем кажется

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

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

Эта статья о том, как выполнить интеграцию с госуслугами и не запутаться.

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

Простое понимание замыканий в Rust

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

У вас бывало такое, что вы никак не можете скомпилировать код с замыканиями в Rust? Уже и все варианты Fn-трейтов перебрали, и move написали везде, где можно, а borrow checker все равно не унимается? И тут оказывается, что просто нужно внутри замыкания клонировать переданную переменную окружения! Сложно и непонятно. Дурацкий привереда Rust.


На самом деле довольно просто понять, почему так происходит и на что влияет move, а на что — клонирование. Но отсутствие подобного понимания я наблюдаю не только у начинающих программистов, но и у вполне зрелых. Хуже того, есть статьи, в которых это объясняется неправильно.

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

58 байтов CSS, которые выглядят красиво почти где угодно

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

При создании своего веб-сайта я хотел найти простой и разумный способ сделать его красивым на большинстве дисплеев. Для моих задач подошли следующие 58 байтов:

main {
  max-width: 38rem;
  padding: 2rem;
  margin: auto;
}

Давайте их разберём.
Читать дальше →
Всего голосов 55: ↑46 и ↓9+37
Комментарии11

Чего ждать от NeoVim: особенности редактора

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

Привет! Я Антон Губарев, инженер команды Platform as a Service (PaaS) в Авито. Долгое время я пользовался IDE от JetBrains, затем пересел на VS Code. Последние несколько лет работаю с кодом только в NeoVim — адаптировал его под себя и перестал использовать другие IDE.

Читать далее
Всего голосов 26: ↑23 и ↓3+20
Комментарии41

Разработка приложений на Typescript с использованием Nx

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

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

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

Улучшаем дизайн React приложения с помощью Compound components

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

Сегодня я хочу рассказать про один не очень популярный но очень классный паттерн в написании React приложений - Compound components.

Что это вообще такое

Compound components это подход, в котором вы объединяете несколько компонентов одной общей сущностью и общим состоянием. Отдельно от этой сущности вы их использовать не можете, тк они являются единым целым. Это как в BEM нельзя использовать E - элемент, отдельно от B - блока.

Самый наглядный пример такого подхода, который знают все фронты - это select с его option в обычном HTML.

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

Tarantool: ускорение разработки с Rust

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

Tarantool, как известно, поддерживает любой язык, который совместим с C и компилируется в машинный код. В том числе есть возможность реализации хранимых функций и модулей на Lua и C. Тем не менее, уже в двух своих проектах мы использовали Rust (в одном полностью перенесли Lua-код на Rust) и получили 5-кратное увеличение производительности по сравнению с Lua и сопоставимый результат, который дает по производительности C.

Читать далее
Всего голосов 51: ↑49 и ↓2+47
Комментарии27

Таймер в .NET с интервалом 1 мс. Windows

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

Вы пишите код на платформе .NET под Windows и вам нужно выполнять некоторые действия каждую миллисекунду. Возможно ли это? Какие есть варианты и насколько они надёжны? Разберёмся, что можно использовать, и какие есть гарантии по точности срабатывания. Статья сконцентрирована на поиске такого решения, которое работало бы и под .NET Framework, и под .NET Core / .NET, и в разных версиях ОС, и являлось бы механизмом общего назначения (а не только для программ с GUI, например).

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

Что нужно знать, чтобы быть синьором?

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

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

Ну-ка, ну-ка...
Всего голосов 190: ↑172 и ↓18+154
Комментарии258

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

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

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Всего голосов 435: ↑423 и ↓12+411
Комментарии300

Пишем с комфортом на Rust в Visual Studio Code

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

Хочешь писать на Rust, но не знаешь в чём?

Нет денег на CLion или Intellij Ultimate, но тебе нужно отлаживать код?

Очень нравится Visual Studio Code, но при виде кучи плагинов разбегаются глаза?

Если на любой из вопросов выше ты ответил "да" - залетай.

Залететь
Всего голосов 16: ↑11 и ↓5+6
Комментарии42

Программирование микроконтроллера PIC32 с помощью Rust

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

Простой проект для начинающих электронщиков, которые непрочь попрактиковаться в программировании микроконтроллеров серии PIC32MX на Rust. Здесь мы соберем макетную плату со светодиодом, напишем короткую программу, чтобы им помигать, и загрузим эту программу в микроконтроллер, попутно разобрав нюансы работы с контейнерами Rust и программатором.
Читать дальше →
Всего голосов 48: ↑39 и ↓9+30
Комментарии10

Как я начал писать макросы для Rust на Gluon

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

Во многих языках есть специальный механихм для кодогенерации - макросы. Иногда из реализуют на отдельном достаточно примитивном языке, основанном на простой подстановке текста (препроцессоры PL/I и C, m4), но даже в таком варианте удается делать интересные и полезные вещи. Другой популярный вариант - макросы реализуются на том же языке, что и программа, в которой они используются. Такой подход ведет свое начало из Lisp (удобный тем, что формат программ и данных там одинаков), активно применяется в Julia, OCaml(camlp4/5), Scala, Haskell, Rust, а наибольшего развития получил в Nemerle, где макрос может может запускаться как до, так и после проверки и вывода типов, и в последнем варианте иметь доступ к типам.

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

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

Мониторинг веб-приложения на Rust с использованием Prometheus и Grafana

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

В статье показано как настроить мониторинг веб-приложения на Rust. Приложение выставляет наружу Prometheus метрики, которые визуализируются с помощью Grafana. Мониторинг осуществляется для проекта mongodb-redis demo, детально рассмотренного здесь. В итоге получена следующая архитектура:


architecture

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

Открытый проект индуктивного абсолютного энкодера

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

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

Читать далее
Всего голосов 127: ↑126 и ↓1+125
Комментарии122

Применение Rust в разработке: страдания и высокий порог входа. Григорий Петров разбирается, когда этот язык необходим

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

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

Первая статья в серии - интервью с Григорием Петровым, DevRel из Evrone. Применять новомодный Rust в заказной разработке - решение, на первый взгляд, неочевидное. Готовых разработчиков мало, порог входа - высокий. Давайте узнаем, в каких условиях использовать Rust все-таки полезно? 

Гриша, расскажи, как вы в Evrone пришли к использованию Rust? 

13 лет назад, когда Evrone только начинался, мы специализировались на full stack Ruby решениях. Но с годами мы начали расширять палитру того, что предлагаем клиентам. Вначале у нас выделилось направление фронтенд - это React, Vue.js. Затем к нам приполз Python, как альтернатива Ruby, потому что многие клиенты выбирают стек технологий под уже существующие команды и процессы. 

И уже несколько лет мы используем Rust как комплементарную технологию, которая позволяет точечно ускорять наши решения на Python и Ruby в 10, а иногда и 100 раз. 

Теперь, когда к нам приходит бизнес и говорит: «Ну вы же знаете, что Ruby нетороплив, наша система уже 100 000 запросов в секунду, нам надо потратить еще вагон денег и переписать ее на Java. Да?» Мы такие: «Нет! Мы выделяем вот эти три точки, которые у вас под нагрузкой, и наши ребята переписывают их на Rust. У вас всё начинает работать быстро, надежно и при этом поддерживаемо, а бизнес фичи продолжают фигачиться с той же страшной скоростью». 

Читать далее
Всего голосов 60: ↑55 и ↓5+50
Комментарии163

Внутреннее устройство Pinned Object Heap в .NET

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

Как вам известно, в .NET 5 появился новый вид кучи — Pinned Object Heap (POH, Куча Закрепленных Объектов). В отличие от других видов кучи, эта доступна разработчикам явно (что не характерно для сборщика мусора). В этой статье я объясню внутреннее устройство POH, чтобы вы лучше понимали сценарии ее использования.

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

Структурное логирование и интерполированные строки в C# 10

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

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

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

Информация

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