Как стать автором
Обновить
0
0
Роман Давыдкин @Beholder

Java-разработчик

Затыкаем рот Windows 10

Уровень сложности Сложный
Время на прочтение 33 мин
Количество просмотров 90K


Windows 10 очень любит Интернет. Обновления, синхронизации, телеметрия и ещё куча разной другой очень нужной ЕЙ информации постоянно гуляет через наши сетевые соединения. В «стандартном» сценарии использования, когда Windows 10 управляет домашним или рабочим компьютером, это, в общем-то, терпимо, хотя и не очень приятно.

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

Для того чтобы подобного не происходило, необходимо «заткнуть рот Windows», то есть сделать так, чтобы она самостоятельно перестала «стучаться» в Интернет, устанавливать обновления и заниматься прочими непотребствами. Вот именно этим мы с вами и займёмся.
Читать дальше →
Всего голосов 217: ↑207 и ↓10 +197
Комментарии 304

Kotlin Multiplatform перешёл в stable. Что это значит?

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

1 ноября состоялся релиза Kotlin 1.9.20, beta компилятора k2. 

Но для нас интереснее глобальное изменение статуса KMP. Мы используем эту технологию в мобильной разработке и написали про неё несколько статей.

В статье подробнее рассмотрим, что изменилось в технологии с переходом в релиз.

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

Философия Compose

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

Всем привет! Недавно я начала изучать Jetpack Compose. Всё, что я изучаю по иностранным гайдам, я обычно перевожу, чтобы при повторном прочтении, мозг снова не тратил время на перевод. Мне кажется, этот фреймворк становится всё более популярен, поэтому хочу поделиться своим переводом Thinking in Compose с другими начинающими :)

Jetpack Compose — это современный декларативный UI Toolkit для Android, упрощающий написание и поддержку UI (пользовательского интерфейса) вашего приложения, и в этом гайде рассказывается за счёт чего это достигается.

Читать далее
Рейтинг 0
Комментарии 5

Как типизировать Vuex Store

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

Всем привет!

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

You are welcome!

Хочу типизировать Vuex
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 2

Koin: Простой и легковесный фреймворк для внедрения зависимостей

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

Принцип внедрения зависимостей становится все более неотъемлемой частью процесса разработки. Без него сложно представить себе достижение желанного разделения обязанностей в коде или обеспечение должного уровня тестируемости.

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

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

Веб-приложение на Kotlin + Spring Boot + Vue.js

Время на прочтение 40 мин
Количество просмотров 45K
Добрый день, дорогие обитатели Хабра!

Не так давно мне представилась возможность реализовать небольшой проект без особых требований по технической части. То есть, я был волен выбирать стек технологий на своё усмотрение. Потому не преминул возможностью как следует «пощупать» модные, молодёжные многообещающие, но малознакомые мне на практике Kotlin и Vue.js, добавив туда уже знакомый Spring Boot и примерив всё это на незамысловатое веб-приложение.
Посмотреть, что из этого вышло
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 21

Kodein DI для Android. Основы API

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

Android разработчики обожают DI. Куда ни посмотри, куча статей и выступлений про Dagger 2, Hilt или Koin, но очень мало про Kodein. Даже на Хабре всего пару неплохих статей, но и те от 2018 года. Но с тех пор Kodein бурно развивался, и вышло много мажорных версий, API значительно изменился.

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

Итак, погнали
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 4

Колоночная база данных в PostgreSQL 15 и факты о территории России по данным OpenStreetMap

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

Продолжим тему из публикации «Как поместить весь мир в обычный ноутбук: PostgreSQL и OpenStreetMap».

Сегодня визуализируем 15 мест где в России больше всего зданий. В этом нам поможет мой проект openstreetmap_h3 и PostgreSQL 15. На данный момент OpenStreetMap H3 единственное решение для импорта OSM данных партиционированных по H3 геоиндексу в PostgreSQL и Citus massive parallel processing. Сохраним данные в колоночное хранилище и посмотрим на план запроса для него.

В этой публикации мы будем агрегировать данные в большой таблице где нас интересуют для этих операций лишь два столбца и сможем извлечь пользу от этой модели данных на NVMe накопителе. Раньше я работал с колоночными базами данных AWS Redshift, Dremio, QuestDB и HeavyDB, но не смотря на их производительность, до функционала/протестированности и стабильности PostgreSQL им еще пока еще ох как далеко. Вот и отлично, попробуем получить все плюсы экосистемы PostgreSQL и колоночного хранилища citus. Вперед, к заветной цели на самых свежих версиях программ нашего аналитического стека!

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

Условные выражения в CSS

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

Мне нравится думать о CSS как о языке дизайна с условными выражениями. На протяжении многих лет CSS был известен как способ стилизации веб-страниц. Однако сегодня этот язык эволюционировал настолько, что в нём уже есть правила условных выражений. Любопытно то, что эти правила реализуются не напрямую (например, в CSS всё ещё нет if/else).

Инструменты дизайна наподобие Figma, Sketch и Adobe XD сильно облегчили жизнь дизайнеров, однако им всё равно не хватает той гибкости, которая есть у CSS.

В этой статье я расскажу о некоторых возможностях CSS, которые мы используем каждый день, и покажу, насколько они условны. Кроме того, я приведу несколько примеров, в которых CSS гораздо мощнее, чем инструменты дизайна.
Читать дальше →
Всего голосов 68: ↑66 и ↓2 +64
Комментарии 4

Математическая продлёнка. Квадратные уравнения во всей красе

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

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

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

Обо всём этом читайте далее
Всего голосов 77: ↑77 и ↓0 +77
Комментарии 41

Английский, которому меня не учили

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

Или максимы Английского языка, которые бы я хотел знать 20 лет назад.

Чем отличается хороший геймер от плохого? Хороший геймер сидит и изучает игру. Он знает каждый закуток. Он может без запинки назвать все характеристики всех юнитов в Star Craft. А самый крутой игрок знает все пропускные способности желтых, красных и синих конвейеров. А плохой игрок использует чит-коды или assistant apps. 

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

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

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

Okay, let's go...
Всего голосов 135: ↑133 и ↓2 +131
Комментарии 174

Что нового в Java 20?

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

Версия Java 20 должна быть выпущена в марте 2023 года, и ожидается, что в ней появится целый ряд изменений и новых функциональных возможностей. Мы подготовили обзор, описывающий, какие JEP с наибольшей вероятностью будут приняты в JDK 20, и какие из них, как мы надеемся, будут приняты в ближайшей перспективе!

Последняя версия JDK (Java Development Kit) 19 была выпущена 20 сентября 2022 года. Следующая версия, Java 20, планируется как релиз без LTS, а следующая версия 21 — как релиз с долгосрочной поддержкой (LTS). Ожидается, что грядущая версия 20 принесет ряд замечательных обновлений, поэтому мы с нетерпением ждем марта, чтобы получить ее в распоряжение!

Но прежде чем перейти к рассмотрению JEP, запланированных для Java 20, давайте сделаем краткий обзор процесса обновления Java и концепции предложений по улучшению, чтобы целиком представлять картину происходящего.
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 13

Оформляем большие документы по ГОСТам в MS Word и не только

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

Продолжаем тему оформления документов по ГОСТам, начатую в статье «Оформляем приложения по ГОСТ 7.32 в MS Word и не только». На этот раз рассматриваем подходы к автоматизации форматирования больших текстов (более 500 страниц) в редакторе MS Word. Предлагаемые подходы применимы также в других редакторах, использующих стили, в частности, LibreOffice Writer.

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

Kotlin Symbol Processing. От теории до практики

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

Я расскажу в этой статье о Kotlin Symbol Processing, также известном как KSP.

Сначала обсудим теоретические основы работы KSP, после, конечно же, перейдём к практике. На примере небольшой задачи, подобной той, что мы решаем с помощью KSP в нашей компании, покажу, как анализировать код с помощью KSP, генерировать файлы, соблюдать контракты, описанные разработчиками KSP. 

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

Детальное рассмотрение поведения при использовании INCLUDE

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

Некоторые базы данных такие, как Microsoft SQL Server, IBM Db2, а также PostgreSQL начиная с 11 версии – предлагают прибегнуть к оператору include для генерации индекса. Представление данного функционала в PostgreSQL (исходная статья вышла 30.04.2019) послужило поводом для этого объёмного рассуждения о работе с оператором include.

Содержание:

1)    Напоминание: btree-индексы

2)    Напоминание: Index-only сканирование

3)    Оператор include

4)    Фильтрация по полям в include

5)    Уникальные индексы при использовании include

6)    Сравнение

7)    PostgreSQL: Никакой фильтрации до проверки области видимости

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

Добавляем поддержку Flatpak в Compose Desktop

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

Те, кто делали мультиплатформенное приложение с помощью Compose Multiplatform, наверное уже сталкивались с тем, в как публиковать приложение. Для Linux на текущий момент доступны следующие форматы: Deb - "нативные" пакеты для Debian-подобных дистрибутивов; Rpm - такие же пакеты для Fedora, RHEL; AppImage - portable приложения(одним файлом). Недостаток первых двух - заточенность только под одну платформу(Debian и Fedora соответственно), второго - отсутствие пакетного менеджера в абсолютном большинстве дистрибутивов. Негодуя с этого, я решил внедрить compose-приложение в Flatpak - пакетный менеджер для sandboxed приложений. Sandboxed apps - приложения, которые по умолчанию не имеют доступа к файлам пользователя и другим настройкам. Flatpak дает уверенность, что та или иная функция/бинарник присутствуют в системе и могут быть использованы. Также с помощью Portals, которые встроены в Flatpak, приложение может безопасно и независимо осуществлять некоторые операции вроде доступа к камере, показа уведомлений и другого. Как вы могли видеть ранее, поддержки Flatpak в Compose Multiplatform нет.

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

Человеческим языком про метрики 3: перцентили для чайников

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

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

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

Готовим Window Inset под соусом Jetpack Compose и щепоткой View

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

Обожаю запах свежей мобильной разработки по утрам, дням и вечерам 🍕📱

Все примеры из статьи можно посмотреть в этом репозитории.

Вот только почему, почему ещё не все используют режим edge2edge? Разве для того я покупал огромный безрамочный телефон, чтобы смотреть на траурные черные полоски с кнопками?!

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

Сегодня я надену специальный мобильный фартук и расскажу, что такое режим edge-to-edge в мобильных приложениях и как работать с insets в Android. А ещё мы разберём примеры обработки insets не только во view, но и в compose. Если статьи о работе с insets в view еще можно найти на просторах интернета, то информацию про работу с ними в compose можно найти только в официальной документации.

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

Глубокое погружение в Java Memory Model

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


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

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

Как ускорить работу PostgreSQL с помощью конфигурации базы и оптимизации запросов

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

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

Администратор баз данных в Southbridge и ведущий инженер компании Data Driven Lab Иван Чувашов занимается базами данных 15 лет и сегодня хочет поговорить про оптимизацию запросов. Разбирать все будет на примере PostgreSQL, так как именно с этой базой он сейчас работает плотнее всего.

Эта статья — конспект бесплатного вебинара об оптимизации PostgreSQL от «Слёрма». Если вам удобнее смотреть, а не читать, переходите на YouTube.

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

Информация

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