Обновить
26

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

17
Подписчики
Отправить сообщение

Anki — настолько круто, что я даже представить не мог

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

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

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

Читать далее

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

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

Привет, дорогие читатели! В предыдущей моей статье "Как легко перейти с Java на Rust" я делился с вами советами по переходу на Rust и уменьшению количества "потерянной крови" на этом пути. Но что делать дальше, когда вы уже перешли на Rust, и ваш код хотя бы компилируется и работает? Сегодня я хочу поделиться с вами некоторыми идеями о том, как писать идиоматический код на Rust, особенно если вы привыкли к другим языкам программирования.

Читать далее

Основы полнотекстового поиска в ElasticSearch. Часть вторая

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

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

Несколько слов про анализ текста

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

Мы уже познакомились с некоторыми типами Elasticsearch, но в этом разделе будем рассматривать только два — keyword и text. Тип text анализируется для полнотекстового поиска. Тип keyword преимущественно остается без изменений для точного поиска, сортировки и агрегации.

Читать далее

Архитектурные антипаттерны в микросервисах и способы их избежания

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

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

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

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

Читать далее

Вложенная навигация во Flutter: что такое декларативный роутер и зачем он нужен

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

Hola, Amigos! Меня зовут Тимур Моисеев, я — Flutter Mobile Application Developer и Team Lead в компании Amiga. В разработке я уже более 20 лет, а последние 4 года плотно занимаюсь мобильной разработкой на фреймворке Flutter. Сегодня хочу поднять тему вложенной навигации во Flutter.

Читать далее

«Я пропагандирую коллегам переход на Rust». В статье — 6 основных причин

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

Мы побеседовали с руководителем направления системного программирования в «Криптоните» Александром Авраменко о карьерном пути Rust-разработчика, особенностях языка Rust и его применении к моделям машинного обучения в высоконагруженных системах.

Читать далее

Библиотека «Jetpack Compose» для начинающего Android-разработчика

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

Здравствуй, дорогой читатель. Каждому Android-разработчику во время разработки своего приложения необходимо сталкиваться с созданием пользовательского интерфейса. Для этого существует несколько способов, и сегодня будет рассмотрен один из них - Jetpack Compose UI.

Jetpack Compose - это библиотека, которую представила Google в 2019 году. Данная библиотека позволяет удобным способом создавать и организовывать интерактивный UI, облегчает тестирование и дает возможность грамотно использовать ресурсы устройства.

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

Читать далее

Книга «Современный подход к программной архитектуре: сложные компромиссы»

Время на прочтение23 мин
Охват и читатели22K
image Привет, Хаброжители!

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

Опытные архитекторы Нил Форд, Марк Ричардс, Прамод Садаладж и Жамак Дехгани обсуждают стратегии выбора архитектуры, подходящей для тех или иных случаев. История Sysops Squad — вымышленной группы специалистов — позволяет исследовать все аспекты выбора архитектуры: от определения степени гранулярности сервисов, управления рабочими процессами и оркестрации, разделения контрактов и управления распределенными транзакциями до оптимизации таких операционных характеристик, как масштабируемость, адаптируемость и производительность.
Читать дальше →

Инструменты Дата-сайнтиста. Универсальная база

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

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

Какие инструменты нужны для анализа данных

Как я перестал волноваться и полюбил ошибки в Kotlin корутинах: Мифы обработки ошибок в корутинах

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

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

Читать далее

Project Loom и Spring Boot: тесты производительности

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

В 2023 году джава-сообщество ожидает выхода нового LTS-релиза JDK 21. Одной из долгожданных фич, потенциально способных сделать джаву great again, является JEP 444: Virtual Threads.

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

Читать далее

Возвращаем 2007 год, или делаем Интернет без блокировок

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

Как известно, в 2007 году кроме того, что деревья были выше, а трава зеленей, еще и в Интернете не было особых ограничений - можно было открыть почти любой сайт и наслаждаться им. До ковровых блокировок Telegram оставалось ещё 10 лет... К сожалению, в наше время такой возможности уже нет. Причины тут всем известны, в частности, некоторые компании уже не предоставляют своих услуг в России.

Хорошо, что существует возможность в рамках домашней сети восстановить свободный Интернет таким, каким он был в 2007-м. Именно этим мы и займемся. Стоит отметить, что в 2007 году довольно часто можно было встретить подключения на скорости 64-128 Кб/с, а то и вовсе dial-up; Wi-Fi был редкостью, а мобильная связь - довольно дорогим удовольствием. Однако, эти особенности того времени мы постараемся не воспроизводить.

Представляю вашему вниманию Freeroute - простой маршрутизатор, который позволяет направлять трафик на разные шлюзы в зависимости от домена назначения. Free в названии, как водится, означает свободный, а не бесплатный.

Читать далее

Как подготовить PreLabeled-датасет при помощи CVAT, YOLO и FiftyOne

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

Представьте ситуацию: подходит к концу спринт, во время которого вы с командой планировали разметить десятки тысяч картинок для обучения новой нейросети (допустим, детектора). Откладывать задачи — не про вас! И вы обязались придумать способ как успеть в срок!

Сегодня я подробно расскажу:

как развернуть CVAT — популярный сервис для разметки данных;

как быстро и удобно предразметить датасет с помощью YOLO и FiftyOne;

как загрузить полученный датасет на CVAT для переразметки;

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

Читать далее

Введение в Java Process Memory Model

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

Каждое Java приложение, после запуска, создаёт десятки, сотни, тысячи объектов в памяти компьютера на котором оно запущено. Память, при этом, ресурс не бесконечный, и поэтому необходимо использовать его эффективно. Виртуальная Машина Java (Java Virtual Machine, далее JVM) умеет грамотно распоряжаться памятью и помогает нам, разработчикам, управляя ею автоматически.

О том, как именно JVM работает с памятью во время работы Java приложения мы поговорим в этой статье.

Читать далее

ClickHouse: полезные лайфхаки

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

Я начала пользоваться ClickHouse до того, как это стало мэйнстримом: первый раз я столкнулась c этой базой данных лет 8 назад. C тех пор я уверена, что это лучшая DB для аналитики. Большинство аналитиков, которых я знаю, в восторге от ClickHouse (иногда чтобы проникнуться, требуется немного времени: разобраться и привыкнуть к синтаксису).

В этой статье я расскажу что такое ClickHouse и почему я считаю его идеально подходящим мощным инструментом для аналитики. А также поделюсь tips & tricks из моего опыта. Поехали.

Поехали

Как ускорить написание кода: AI, генерация кода, плагины

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

Разработчики пишут много кода, очень много. И я задумался как сделать так, чтобы писать код быстрее. Надо научится быстрее его набирать и/или делегировать его написание другим. Хороший выход, но какое будет качество кода? Автор решил разобраться, какие есть инструменты для ускорения написания кода и что умеют AI технологии

Подробности

Как Литрес сделал из меня Flutter разработчика

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

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

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

С чего всё начиналось

Я большой любитель послушать аудиокниги, в особенности российскую фантастику, фентези, ужасы, постапокалипсис. Пока двигаешься на работу, идёшь в магазин, разбавляешь серость окружения погружением в виртуальные реальности. Но не все книги одинаково интересны, я как правило слушаю пару глав, понимаю, что мне не нравится и отправляюсь на поиск другой аудиокниги. С таким подходом покупать, каждый раз продукт, который не используется нерационально (и очень накладно — в день по парке аудиокниг). В итоге я пришёл к тому, что стал зависать в соответствующем разделе рутрекера, скачивать, закидывать на телефон, слушать в приложении. Естественно, такой алгоритм неудобен, отправился на поиски приложения, которые бы автоматизировало этот процесс, но такого приложения не было. И тут пришла мысль «я со школьных лет увлекаюсь программированием, неужели не смогу разобраться и сделать приложение?».

Ошибка: Идея не обдумана. Загорелся и стал сразу делать.

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

Читать далее

Стенгазета на Rust с E-Ink и ChatGPT

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

Самодельная автоматически обновляющаяся газета на E-Ink с использованием Rust и ChatGPT — как вам такой DIY?

Читать далее

Полезные TreeMap визуализации для MSSQL, Postgres и MySQL

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

Я очень люблю визуализации. Человек лучше всего воспринимает информацию через образы. Для трех часто встречающихся баз (MSSQL, Postgres и MySQL) я смастерил плагины к проекту Bell, хотя этот код на Python можно использовать и отдельно. Поэтому для каждой визуализации я буду в скобочках писать имя файла из репозитория GitHub - вы можете этот файл вытащить и использовать его отдельно от проекта (для этого нудны минимальные модификации).

Отмечу только, что я считаю себя экспертом только в MSSQL, а то что сделал с другими базами - сделал по наитию. Кроме того, в отличие от MSSQL у меня нет реальных баз под большой нагрузкой для Postgres и MySQL. Поэтому ошибки/пожелания для скриптов Postgres и MySQL очень и очень welcome!

В основном я задействовал TreeMap.

Читать далее

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность