Pull to refresh
0
0
Перикл Фемиди @pfemidi

Домосед

Send message

Декомпозиция программных компонент

Level of difficulty Easy
Reading time 4 min
Views 2.4K

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

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

И тут начинаются нюансы..
Total votes 41: ↑23 and ↓18 +5
Comments 18

LINUX + FL Studio + платные VST (32+64)

Level of difficulty Easy
Reading time 8 min
Views 5.4K

Я смог запустить FL Studio и любые VST плагины в GNU Linux, при этом экранировав всё это дело от основной системы! Теперь я могу безопасно писать музыку, играть на гитаре с крутыми эффектами и крутить баст-бустед звуки друзьям в Дискорд и Телеграм. Хотите так же, но не проходя через боль и не теряя столько же времени и нервов, сколько потерял я?

Установить FL Studio на Linux
Total votes 19: ↑18 and ↓1 +17
Comments 13

Как протестировать Android-приложение, которому требуются разрешения

Level of difficulty Medium
Reading time 19 min
Views 2.2K
Часто для корректной работы приложению нужен доступ к определенным функциям мобильного устройства: к камере, записи голоса, совершению звонков, отправке SMS-сообщений и т. д. Приложение может получить доступ к ним и использовать только в том случае, если пользователь даст на это разрешение.

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



В этой статье мы покажем, как данные проблемы решает библиотека Kaspresso — популярный (1,7 тысячи звезд на Github) open-source-фреймворк для автотестов.
Читать дальше →
Total votes 22: ↑22.5 and ↓-0.5 +23
Comments 3

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

Level of difficulty Medium
Reading time 21 min
Views 17K



Hello world!


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



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


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

Читать дальше →
Total votes 35: ↑30 and ↓5 +25
Comments 12

Современный способ организации зависимостей в Android. Version catalog и Gradle convention plugin

Level of difficulty Medium
Reading time 18 min
Views 2.1K

Я — Денис, Middle Android-разработчик в «Лайв Тайпинге». В этой статье я расскажу о современном подходе организации зависимостей в Android. Вы узнаете как использовать version catalog и convention plugin в вашем проекте.

Читать далее
Total votes 14: ↑12 and ↓2 +10
Comments 5

Android TOML. Просто о каталогах зависимостей в Android Studio

Level of difficulty Easy
Reading time 4 min
Views 1.6K

Всем привет!

Меня зовут Евгений и я Android‑разработчик. Сегодня хотел бы поделиться своими знаниями и наблюдениями относительно нового способа добавления зависимостей в проекты, созданные на базе Android Studio Iguana.

Читать далее
Total votes 2: ↑2 and ↓0 +2
Comments 4

Рисуем эффект «Таноса» на Android (и не только)

Level of difficulty Medium
Reading time 32 min
Views 7.5K

Привет! Вопрос мобильным разработчикам: часто ли вам приходится работать с необычным UI? Если вы ответили утвердительно, то я по-доброму вам завидую. В своей повседневной практике мне в основном приходится работать со стандартным набором компонентов и их базовой настройкой. Абсолютно ничего не имею против, но хочется чего-то «эдакого»: кастомных компонентов, написанных с нуля, необычных анимаций и эффектов. Часто подобные вещи вызывают много споров (как среди разработчиков, так и конечных пользователей) а-ля «А на кой оно вообще надо», но лично для меня это ни что иное, как творчество. Кто-то красиво рисует, кто-то красиво поёт, а кто-то пишет красивые уникальные приложения, которыми интересно и приятно пользоваться. И мы, пожалуй, не можем обвинять авторов за бессмысленность «украшательств», как по-хорошему не можем судить художника за его работу.

К чему я – спросите вы. Я отвечу: настраиваю на нужный лад :) В рамках этой статьи мы коснёмся полезной темы и создадим что-то бесполезное в практическом смысле, но несомненно интересное и достаточно уникальное.

Уже интересно
Total votes 23: ↑23 and ↓0 +23
Comments 9

Android-приложение на Compose с нуля: Часть 1 (Прототипирование)

Level of difficulty Easy
Reading time 2 min
Views 3.8K

Здравствуй, дорогой читатель!

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

Читать далее
Total votes 3: ↑2 and ↓1 +1
Comments 21

Настраиваем кросс-обновления Android-приложений между сторами

Level of difficulty Easy
Reading time 8 min
Views 2.3K

Привет, Хабр! Меня зовут Тимофей, я Android-разработчик в Сравни. Давайте поговорим о кросс-обновлении Android-приложений без привязки к конкретному стору – так, чтобы пользователи могли устанавливать из одного источника, а обновлять – из другого, без необходимости удалять и ставить заново.

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

Но первые реальные практические шаги в этом направлении мы сделали в формате
“А что, так можно было?”: пошли выкладывать приложение в RuStore и попутно обнаружили возможности использовать аналогичные механизмы для настройки кросс-обновления.

Так что там дальше?
Total votes 15: ↑14 and ↓1 +13
Comments 5

Личные финансы в формате txt

Level of difficulty Easy
Reading time 4 min
Views 7K

Я давно подсел на Obsidian, и мне очень понравилась идея хранения данных в человеко-понятных форматах вроде TXT или Markdown. В таком виде вы не привязаны к конкретному инструменту и вам не надо делать экспорт данных для резервных копий. Данные сами по себе остаются готовые к чтению или модифицированию.
Чего мне не хватало, так это хорошего формата для хранения финансовых данных.
И тут, открыв очередную трэш-статью, начав читать гневные комментарии, наткнулся на человека, который ведёт расходы в TXT формате. Причём технический человек, со знанием программирования. Это показалось абсолютно тупейшим решением, но... в комментарии ниже, другой человек отписал, что тоже использует TXT для ведения личных финансов. И это уже было подозрительно.
Начал изучать вопрос и наткнулся на ledger-cli.

Читать далее
Total votes 23: ↑23 and ↓0 +23
Comments 29

Реверс-инжиниринг программ DOS как в старом добром 1990-м

Level of difficulty Medium
Reading time 5 min
Views 7.1K
На видео выше я записал наглядную реализацию процесса, описанного в разделе «Сборка и установка».

Эта статья посвящена запуску SoftICE, популярного отладчика для DOS и Windows, в эмулированной среде MS-DOS, а также обходу недостатка Bochs, эмулятора IA-32 (x86) PC.
Весь процесс выполнялся из-под Linux. Не знаю, получится ли проделать то же самое в MacOS, не говоря уже о Windows.
Читать дальше →
Total votes 61: ↑60 and ↓1 +59
Comments 11

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Level of difficulty Medium
Reading time 54 min
Views 74K

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

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

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

Читать далее
Total votes 125: ↑122 and ↓3 +119
Comments 7

«Отучаем» WinFXNet от жадности (часть 1)

Level of difficulty Easy
Reading time 18 min
Views 9.5K

Предыстория

В сфере АСУ ТП инженерам по работе приходится не только писать ПО, но и использовать готовое ПО от производителей оборудования. В связи с санкциями, многие поставщики покинули РФ, а оборудование и ПО необходимо продолжать эксплуатировать дальше.

В данной статье будет расмотрена WinFXNet - программа производителя Schneider Electric (ESMI) для конфигурирования станций пожарной сигнализации серии Esmi FX. К сожалению, из-за санкций, ключ USB Esmi FX FFS00393016 приобрести нельзя, а он, в свою очередь, имеет встроенный таймер, который настроен на 4-летний период. У многих данный ключ по времени уже закончился, плюс скоро закончится и лицензия на само ПО (файл формата lic). Поэтому достаем дизассемблеры и посмотрим, можно ли обойти данную защиту.

Disclaimer: Данная заметка написана в ознакомительных целях и не является руководством к действиям. Хотя, понимая всю безвыходность данной ситуации, как временное решение имеет право на жизнь, но решать только вам. Статья написана как туториал, поэтому постараюсь детально описать все шаги поиска нужных мест в программе.

Приступить к анализу
Total votes 101: ↑96 and ↓5 +91
Comments 28

Вопросы по SQL, которые часто задают на собеседовании. Часть 1

Reading time 14 min
Views 46K

SQL (Structured Query Language) – это язык программирования, используемый для управления реляционными базами данных. В этой статье я собрал вопросы по SQL, с которыми вы можете столкнуться на собеседовании. Их часто задают для проверки общих знаний и навыков.

Читать далее
Total votes 31: ↑26 and ↓5 +21
Comments 24

Самый простой способ обхода блокировок доступа к сайтам любых стран

Level of difficulty Easy
Reading time 4 min
Views 120K

Я понимаю, что пока, за использования VPN, аннонимайзеров и/или tor не применяют уголовные статьи, поэтому гораздо проще скачать какое нибудь приложение из магазина приложений и бесплатно воспользоваться им. Но где гарантия, что завтра они будут работать?

Я понимаю (программисты, сисадмины, DevOps'ы и т.д.) данный способ нельзя назвать уникальным, оптимальным и вообще, так лучше не делать, но согласитесь - это достаточно простой способ туннелирования трафика, который позволяет обойти (если не все), то огромное количество разнообразных сетевых блокировок.

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

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

Интересно?

Читать далее
Total votes 107: ↑78 and ↓29 +49
Comments 412

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

Level of difficulty Medium
Reading time 11 min
Views 24K

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

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

Читать далее
Total votes 75: ↑75 and ↓0 +75
Comments 28

1000+ часов видео по Java на русском

Reading time 7 min
Views 1.3M
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
  1. Java Core
  2. Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
  3. Multicore programming in Java.


Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

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

(GolovachCourses.com)


Здесь собраны несколько вариантов записи моего курса Java Core.
Модуль #1 (Procedural Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3, #4.
Читать дальше →
Total votes 120: ↑111 and ↓9 +102
Comments 38

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

Level of difficulty Medium
Reading time 29 min
Views 12K



Hello world!


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


Вторая часть.


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


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


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

Читать дальше →
Total votes 47: ↑45 and ↓2 +43
Comments 5

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

Reading time 9 min
Views 27K

Здравствуй, дорогой читатель. Каждый Android-разработчик сталкивался (или столкнётся во время своей профессиональной карьеры) с задачей, в которой необходимо хранить большое количество изменяемых данных. В данной статье будет разобрана библиотека от Google - Room.

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

Статья предназначена для новичков, не знакомых с данной библиотекой, но, желательно, имеющих базовые знаниях о SQLite, Kotlin Coroutines, Kotlin Flow, MVVM.

Читать далее
Rating 0
Comments 4

Переход на Gradle 8 Android проекта

Level of difficulty Medium
Reading time 7 min
Views 3.6K

Всем привет, меня зовут Карамышев Саша и я Android разработчик. Занимаюсь проектом связанным со страхованием.

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

И конечно документация мне не помогла.

Рассказываю, где документация меня запутывала и как я выпутался

Читать далее
Total votes 7: ↑5 and ↓2 +3
Comments 4

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity