Pull to refresh
29
0
Send message

Заблуждения Clean Architecture

Reading time 15 min
Views 406K
Превращаем круги в блоки

­­ 


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

Читать дальше →
Total votes 58: ↑56 and ↓2 +54
Comments 203

XMonad + XMobar = ❤

Reading time 10 min
Views 69K
Многие слышали про тайловые оконные менеджеры, некоторые даже слышали о XMonad. А ребята из Google даже променяли Unity/Gnome на XMonad. Что же это такое, как это настраивать и как с этим жить? Краткий workaround для любителей кастомизировать всё подряд.


Подробности
Total votes 42: ↑36 and ↓6 +30
Comments 94

Обработка аннотаций в процессе компиляции

Reading time 10 min
Views 34K
magicМетапрограммирование — вид программирования, связанный с созданием программ, которые порождают другие программы как результат своей работы (в частности, на стадии компиляции их исходного кода), либо программ, которые меняют себя во время выполнения.

Аннотации, как инструмент метапрограммирования появились вместе с релизом Java 5 в далеком 2004 году. Вместе с ними появился инструментарий Annotation Processing Tool, на смену которому пришла спецификация JSR 269 или Pluggable Annotation Processing API. Что интересно, этой спецификации без малого 10 лет, но свою популярность в Android разработке она начала обретать только сейчас.

О возможностях, которые открывает эта спецификация мы поговорим чуть позже (будет мнооого кода), а сперва, не хотите ли поговорить о компиляции Java кода?
Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 17

Простой USSD-запрос в Android 4.0+

Reading time 3 min
Views 38K
В Android до сих пор нет API для USSD-запросов. Баг висит уже 6 лет!
Я находил разные способы создания и получения информации из USSD запросов, но в итоге ни один не устроил.
Затем я нашел упоминания о том, что с помощью обновленных в Android 4.0 служб спец. возможностей можно легко получать содержимое окон и так получить текст из окна и результатом USSD запроса. Попробовал — получается отлично! Без перезагрузок и надежно.
Читать дальше →
Total votes 61: ↑54 and ↓7 +47
Comments 11

Принцип экономии мыслетоплива

Reading time 15 min
Views 77K


Представления, на наш взгляд, излишни. Под катом доклад гуру прокрастинатологии Максима Дорофеева, в котором он расскажет, как сделать больше, а устать меньше. Узнаем немного про обезьяну, эффективность и многое другое. Возможно даже, что после прочтения половина всего, что вы слышали ранее о мышлении, обесценится.
Total votes 40: ↑40 and ↓0 +40
Comments 30

Трёхмерная графика с нуля. Часть 1: трассировка лучей

Reading time 42 min
Views 129K
image


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

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

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


Читать дальше →
Total votes 90: ↑90 and ↓0 +90
Comments 53

Android: динамически подгружаем фрагменты из сети

Reading time 5 min
Views 15K
В этой статье мы рассмотрим, как загружать классы (в том числе, фрагменты) из сети во время выполнения программы, и использовать их в своем Android-приложении. Область применения подобной технологии на практике — это отдельная тема для разговора, мне же сама по себе реализация данной функциональности показалась довольно интересной задачей.

Приступим.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 19

Исследуем RxJava 2 для Android

Reading time 25 min
Views 210K

enter image description here


Меня зовут Аркадий, я Android-разработчик в Badoo. В последнее время в нашем блоге много постов про Go, PHP, JS, QA, и я решил разбавить их темами по мобильной разработке. Как раз занимался портированием одного Android-проекта с RxJava 1 на RxJava 2 и читал всё, что можно найти на эту тему в интернете. В частности, доклад Джейка Вортона с конференции GOTO Copenhagen 2016. Мне показалось, что это достойный кандидат на перевод – думаю, многие Android-разработчики задумываются о переходе на RxJava 2, и им интересно, что изменилось по сравнению с первой версией.


Джейк сделал достаточно объёмное введение о реактивном программировании, так что знание RxJava 1 не требуется для понимания статьи. Доклад был подготовлен, когда RxJava2 ещё только готовилась к выпуску (на текущий момент уже выпущена версия 2.1.0).

Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Comments 5

Введение в RxJava: Почему Rx?

Reading time 3 min
Views 192K

Этот цикл статей предназначен для знакомства начинающего реактивного программиста с мощью библиотеки RxJava ˜— реализации принципов реактивного программирования для JVM. Это перевод обширного туториала по RxJava Крисса Фруссиоса, основанного на IntroToRx для Rx.NET.


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


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

Читать дальше →
Total votes 35: ↑23 and ↓12 +11
Comments 10

Необъятные масштабы бытия. Часть 1. Межпланетные дали

Reading time 11 min
Views 33K


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

В данном обзоре я ознакомлю вас с историей постижения человеком масштабов мироздания с эпохи изобретательных греков и до современной эры высоких технологий. Вы узнаете, почему «плоская Земля на трех китах» вызывала смех еще у древних римлян, как современники короля-солнце определили межпланетные расстояния и каким образом космические катаклизмы помогают постигать вселенские масштабы.
Читать дальше →
Total votes 62: ↑61 and ↓1 +60
Comments 19

Большой список научно-фантастических сериалов

Reading time 20 min
Views 413K
image
Кадр из заставки сериала «Грань»

Предисловие

На Geektimes и Habrahabr уже были статьи со списком Sci-Fi сериалов (Фантастические сериалы — обзор от фаната, Фантастические сериалы и др.). Но все они либо содержали достаточно мало сериалов и/или поверхностную информацию о них самих, либо были предвзяты в отношении тех или иных сериалов.

В данной публикации я постараюсь предоставить большой список научно-фантастических сериалов. А благодаря голосованию — узнать какие сериалы на самом деле нравятся пользователям Geektimes.
Читать дальше →
Total votes 58: ↑47 and ↓11 +36
Comments 189

Почему автомобильный аккумулятор нельзя использовать в ИБП?

Reading time 7 min
Views 356K
Предыстория

На тот момент, когда я первый раз попробовал заменить в ИБП старый аккумулятор ёмкостью 7Ач на старый автомобильный аккумулятор номинальной ёмкостью 65Ач, я ещё не знал, почему этого нельзя делать, и как это может навредить здоровью аккумулятора, самому ИБП и людям, проживающим в одном помещении с ним.

Доработка бесперебойника не заняла много времени, но профит был заметен сразу же. Сто-ватная нагрузка в виде домашнего «сервера» продержалась порядка двадцати часов без внешнего питания, хотя раньше 10 минут — это был предел, которого хватало разве что на корректное завершение работы. Более длительных отключений за время эксплуатации данной модификации замечено не было, а подключение интернета по технологии GPON позволяло серверу оставаться в сети даже при масштабных отключениях электроэнергии.



Но это было давно. А год назад мне случайно попалось на глаза объявление о продаже нескольких бывших в употреблении ИБП APC 3000 за смешные деньги, 4000 рублей за штуку, без аккумуляторов, но рабочие. Немного подумав, решил что надо брать, причём сразу два, правда к моменту покупки цена успела подняться до 5000 рублей за штуку, но меня это не остановило, ведь в магазине за те же деньги предлагали лишь варианты на 1кВт, да и то от всяких noname фирм с не очень лестными отзывами и модифицированным синусом.
Читать дальше →
Total votes 61: ↑54 and ↓7 +47
Comments 183

AI для «Дурака»

Reading time 11 min
Views 35K
Знал бы прикуп — жил бы в Сочи.

       Народная мудрость. 

Под игрока — с семака, под вистующего — с тузующего.

       Ещё одна народная мудрость. 


Похоже, в этом посте всё смешалось. "Дурак" в заголовке, преферансные поговорки в эпиграфе и КДПВ, не имеющая отношения ни к тому ни к другому. Впрочем, само понятие "джокера", к предмету сегодняшнего разговора, отношение имеет самое непосредственное.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 7

Налоговый суслик. Особенности упрощенной системы налогообложения при работе по договорам с Apple, Google и другими

Reading time 46 min
Views 53K
В данной статье я постараюсь провести краткий юридический ликбез для разработчиков по некоторым положениям Гражданского кодекса, имеющим значение в контексте деятельности индивидуальных предпринимателей и организаций, применяющих упрощенную систему налогообложения, в работе по договорам с Apple, Google и другими компаниями, а также обратить внимание на некоторые не всегда очевидные налоговые нюансы, которые, как показал личный опыт изучения данной темы, довольно часто ускользают от внимания разработчиков или вызывают множество вопрос и споров.

Прочтите внимательно эту статью, если вы применяете упрощенную систему налогообложения с объектом налогообложения «доход» по ставке 6 процентов и продаете игры или приложения в Google Play, Apple App Store, а также прочий цифровой контент — например, 3D-модели — в Steam, Unity Asset Store или на других площадках, в условиях договоров с которыми фигурируют комиссии, агентские вознаграждения и прочие формы разделения выручки между сторонами.

Из материала вы узнаете:

  • Почему разработчику желательно обладать хотя бы базовой юридической грамотностью
  • Чем с точки зрения Гражданского кодекса являются игры и приложения и какие права на них есть у разработчиков помимо авторского права
  • Что такое агентский договор и почему все это важно при работе по договору с Apple или Google
  • Кто такой налоговый суслик и почему он может превратиться в пушного зверя
  • Какой «подвох» существует для применяющих «упрощенку» в части определения налоговой базы
  • Почему налог на добавленную стоимость (НДС) продолжает преследовать нас, даже когда мы не являемся его плательщиками
  • Как, с точки зрения Федеральной налоговой службы, облагаются НДС внутриигровые покупки (InApp Purchases)
Покажите мне суслика!
Total votes 40: ↑36 and ↓4 +32
Comments 84

Домашний сервер на неттопе Zotac

Reading time 5 min
Views 77K
После прочтения статьи на хабре о хитрой сборке серверов на атомах давно витавшая идея домашнего сервера была подстёгнута мощным пинком и, в конечном итоге, вылилась в реализацию. Но не всё так быстро: вначале нужно было определиться, какое железо использовать.

Под домашним сервером чаще всего имеют в виду файловый сервер (файлопомойку), который удобен для хранения фильмов или обмена файлами между домашними устройствами. Меня же в первую очередь интересовал сервер в другом смысле: чтобы можно было удобно поиграться в apache + php, а то и захостить небольшой https-сайтик (с бесплатным сертификатом класса 1) или AS типа Tomcat или JBoss, поднять SVN, вобщем, для всего того, что сразу не отобъётся, зато на чужом хостинге будет стоить неоправданно дорого даже при паршивых ТТХ. Эти соображения повлияли на выбор ОС, а уже это повлияло и на требования к железу: безиксовый linux в любом случае требует меньше ресурсов, чем винда, при прочих равных. С другой стороны, раз уже есть сервер, почему бы и не раздать неиспользуемое место на диске в сеть?
Под катом -- фотки...
Total votes 31: ↑24 and ↓7 +17
Comments 39

Phylo: онлайновая игра помогает генетическим исследованиям

Reading time 1 min
Views 3.4K
Несколько дней назад состоялся официальный запуск новой интернет-игры Phylo. Это проект, в котором учёные пытаются использовать естественные способности мозга игроков к распознаванию образов и решению головоломок (компьютеры справляются с этим пока очень плохо). Головоломки в виде игры помогут определить происхождение генетических болезней.



Phylo — не первая игра такого рода. Она стоит на плечах таких краудсорсинговых игр как Foldit (свёртывание белков) и Galaxy Zoo (сортировка галактик).
Читать дальше →
Total votes 54: ↑50 and ↓4 +46
Comments 31

Разрабатываем свой Sidebar Gadget

Reading time 7 min
Views 21K
image
Как часто вы пользуетесь гаджетами боковой панели Windows? А хотелось бы написать свой? Не простой гаджет «Hello World», а действительно полезный, который помог бы оптимизировать затраты времени на определенный кусок работы. Тогда давайте рассмотрим случай, когда вам нужно мониторить нагрузку 10-20 серверов.
Читать дальше →
Total votes 83: ↑73 and ↓10 +63
Comments 35

Как получать доход с Google Play на расчётный счёт ООО

Reading time 3 min
Views 55K
Эта статья будет интересна российским компаниям, которые продают приложения через Google Play. У меня такая компания, и на своём опыте расскажу, как мы настроили денежные потоки с GP, чтобы они были легальными. Если вы не белые и не пушистые, т.е. считаете, что налоги можно не платить, то смело закрывайте эту статью.

Проблема:
Доходы с Google Play – такие же доходы, с них нужно платить налоги. Не все разработчики знают, как настроить получение доходов так, чтобы удовлетворять требованиям НК РФ.

Решение:
Получать доход на ИП либо на ООО и официально платить подоходный.
Если интересно про ИП читайте здесь и здесь.
В этой статье про получение доходов на счёт ООО.

Исходные данные
У вас есть аккаунт разработчика на Google Play – как его создать, читайте здесь
У вас есть приложение, которое генерирует доход – как его создать, одним линком не отделаешься.
У вас есть ООО.

Настройка
Google Play ведёт расчёты в USD, поэтому вам понадобится валютный расчётный счёт. Открыть валютный счёт можно в любом нормальном банке. Позвоните туда, Вам объяснят процедуру. Открыть счёт обойдётся в 2-3 т.р.
Когда Вам откроют валютный счёт, Вы получите реквизиты счёта. Вам понадобятся:
1. Название банка по-английски
2. БИК
3. Номер открытого счёта
4. BIC банка (или ещё его называют SWIFT)
Читать дальше →
Total votes 34: ↑32 and ↓2 +30
Comments 15

Как накормить мозг программиста… или feed your brain

Reading time 12 min
Views 370K

Введение


Из всех наслаждений, отпущенных человеку в жизни,
самое изысканное — шевелить мозгами.
(Борис Акунин)


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

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

В данной публикации мы рассмотрим, как правильно питаться для жизнеобеспечения мозга и как его разогнать ноотропами (в случае аврала необходимости).
Читать дальше →
Total votes 213: ↑163 and ↓50 +113
Comments 145

Information

Rating
Does not participate
Location
Пятигорск, Ставропольский край, Россия
Date of birth
Registered
Activity