Как стать автором
Обновить
6
0.4
Игорь @itmind

Fullstack

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

Фреймворки для работа с данными на Rust. Часть 1

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

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

Если бы мне сказали, что я однажды заменю привычный Python или Scala для работы с данными на Rust, я бы, пожалуй, ухмыльнулся и продолжил привычное дело. Но времена меняются, и Rust вполне уверенно пробивает себе дорогу в мир больших данных. Сегодня я расскажу вам о трех фреймворках, которые делают Rust конкурентом в обработке данных.

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

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

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

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

Можно было бы эти категории записывать на листик или куда-то в заметки, но я решил сделать iOS приложение, в котором можно добавлять выбранные категории кешбэка, а они уже будут выводиться в виде виджета.

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

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

ФНС vs фитнес-клуб. Кто выиграл в суде 1 млн рублей и причём тут самозанятые тренеры

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

Может ли клуб привлекать самозанятых тренеров? Казалось бы, почему нет: работают не по графику, выплаты получают раз в месяц, договор и акты подписывают — что могло пойти не так? Разбираю дело, в котором фитнес-клуб после камеральной проверки заплатил 1 млн рублей страховых взносов.

Читать далее
Всего голосов 43: ↑38 и ↓5+47
Комментарии63

Обзор LSP: что это такое, зачем нужно, как работает

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

Представьте: у вас есть N редакторов или IDE и M языков программирования. Получается, что для их корректной работы вам необходимо поддерживать N*M плагинов. Но что, если таких редакторов и языков много?.. Решением может стать LSP — единый интерфейс взаимодействия языкового сервера и редакторов, который помогает сузить проблему до N+М.

Меня зовут Денис Маматин, я работаю в отделе R&D СберТеха. Наша команда занимается разработкой и тестированием новых технологий. В этой статье я расскажу, что такое LSP‑протокол, как он поможет упростить разработку, и рассмотрю небольшой пример LSP‑сервера.

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

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

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

Привет! Я Олег Макаров, ведущий юрист ispmanager. Эта статья будет полезна всем, кто зарабатывает на ПО с открытым кодом. Расскажу, как безопасно работать с лицензиями Open source и что бывает с нарушителями — а уже попадались D-Link и Cisco Systems. Российский разработчик Антон Мамичев выиграл дело о нарушении его авторских прав на открытый код у Veeam Software, дочерней компании Amazon.

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

XML-RPC:  вызываем все, везде и сразу

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

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

Сделать вызов
Всего голосов 9: ↑6 и ↓3+4
Комментарии29

Применения Continuation-passing style в Go

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

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

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

Подбираем нужные автозапчасти: миллиарды комбинаций за 12 минут

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

Привет! Меня зовут Кирилл Егоров, я технический лидер двух юнитов Авито: «Запчасти» и «Строительство и ремонт». В этой статье рассказываю о том, как мы определяем, к каким автомобилям подходят запчасти из объявлений, как нам с помощью Golang удается перебрать миллиарды вариантов и какие трудности пришлось решить при реализации этого решения.

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

Go: жарим общие данные. Атомно, быстро и без мьютексов

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


Как правило, в Go для безопасного доступа к общим данным используются мьютексы. Да, каналы тоже можно приспособить для изменения общих данных, так как они потокобезопасны, но это усложняет и замедляет логику.

Но в этой статье мы поговорим о другом. Современные процессоры имеют поддержку атомарных операций, что позволяет на основе них организовывать работу с общими данными до нескольких раз быстрее, чем с помощью общепринятых вариантов. Так как мьютексы реализованы на основе ОС, каналы сделаны на основе внутреннего кода Go с использованием тех же мьютексов из ОС под капотом, а атомарные операции делает сам процессор аппаратно за существенно меньшее количество тактов.
Пожарим омлет по атомному?
Всего голосов 41: ↑40 и ↓1+52
Комментарии29

Учимся летать: симуляция эволюции на Rust. 5/5

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



Это заключительная часть серии статей по разработке симуляции эволюции с помощью нейронной сети и генетического алгоритма.





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

Блокировка Docker Hub для России. Без паники разбираемся как работать дальше

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

Главной новостью этой недели стала блокировка пользователей из России ресурсом Docker Hub. Она осуществляется по Geo IP.

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

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

Читать далее
Всего голосов 81: ↑77 и ↓4+93
Комментарии47

Практическое руководство по Rust. 4/4

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



Hello world!


Представляю вашему вниманию четвертую и последнюю часть практического руководства по Rust.



Другой формат, который может показаться вам более удобным.


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить ?

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

Практическое руководство по Rust. 3/4

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



Hello world!


Представляю вашему вниманию третью часть практического руководства по Rust.



Другой формат, который может показаться вам более удобным.


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

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

Прокси-сервер для Android на Go

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

Реализация простого HTTP CONNECT прокси-сервера на Go, квест с маркировкой сетевых пакетов и запуск программы в Android.

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

Практическое руководство по Rust. 1/4

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



Hello world!


Представляю вашему вниманию первую часть практического руководства по Rust.



Другой формат, который может показаться вам более удобным.


Руководство основано на Comprehensive Rust — руководстве по Rust от команды Android в Google и рассчитано на людей, которые уверенно владеют любым современным языком программирования. Еще раз: это руководство не рассчитано на тех, кто только начинает кодить 😉

Читать дальше →
Всего голосов 24: ↑19 и ↓5+22
Комментарии12

Большая шпаргалка по Rust. 2/2

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



Hello world!


Представляю вашему вниманию вторую часть большой шпаргалки по Rust.


Первая часть.


Другой формат, который может показаться вам более удобным.


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


Также настоятельно рекомендуется хотя бы по диагонали прочитать замечательный Учебник по Rust (на русском языке).

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

Курс «PostgreSQL для начинающих»: #3 — Сложные SELECT

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

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих", подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре".

В этой лекции углубимся в расширенные возможности команды SELECT : как можно "сложить" и "вычесть" выборки (UNION/INTERSECT/EXCEPT), или запомнить и использовать в рекурсивных запросах (CTE), что дают оконные функции (WINDOW) и соединения (JOIN).

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

Читать далее
Всего голосов 32: ↑31 и ↓1+34
Комментарии7

Компилятор за выходные: синтаксические деревья

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

Вам когда-нибудь приходилось задаваться вопросом, как работает компилятор, но так руки и не дошли разобраться? Тогда этот текст для вас. Мне тоже не доводилось заглядывать под капот, но тут так случилось, что мне нужно прочитать курс лекций о компиляторах местным третьекурсникам. Кто встречался с некомпетентными преподавателями? Здравствуйте, это я :)

Итак, чтобы самому разобраться в теме, я собираюсь написать транслятор с эзотерического языка программирования wend (сокращение от week-end), который я только что сам придумал, в обычный ассемблер. Задача уложиться в несколько сотен строк питоновского кода. Основной репозиторий живёт на гитхабе (не забудьте заглянуть в мой профиль и посмотреть другие tiny* репозитории).

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

Синхронизация локальных изменений с docker/kubernetes контейнером

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

Салют!

Хочу рассказать вам про такие замечательные инструменты как docker compose(быть точнее про новую возможность watch), skaffold, tilt.

Рассказать для чего они полезны, как пользоваться и с примерами.

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

Сжатие целых чисел

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

Цель статьи осветить state of the art методы сжатия целых чисел, чтобы сэкономить в будущем время исследования алгоритмов и терминологии. При этом описание части алгоритмов может быть упрощено для понимания. Сравнение алгоритмов тоже находится вне рамках этой статьи. Подробнее можно почитать в ссылках.

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

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

Информация

В рейтинге
2 085-й
Откуда
Хабаровск, Хабаровский край, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Fullstack Developer, 1C Developer
Lead
От 300 000 ₽
Rust
Golang
Kotlin Multiplatform
DevOps
Development management
Optimization of business processes