Pull to refresh
16
0
Евгений Табацкий @jatx

Программист

Send message

AStA: собираем APK на самом устройстве

Reading time6 min
Views4.4K
Что такое AStA? Это акроним от «Android Studio on Android». Это метод, позволяющий собирать проекты Android Studio на Android устройстве с помощью chroot/Debian, JDK, Android SDK и Gradle.

Зачем это вообще нужно? Да мало ли, зачем… Бывает, например, хочется проверить какую-то идею, а декстопа под рукой нет. В общем, пусть на вопрос «зачем» каждый ответит для себя сам.

Какие существуют альтернативы? Из существующих решений мне известно только AIDE, но у него есть свои минусы. Во-первых, постоянно выскакивает окошко с предложением проапгрейдить версию за 600 рублей, а если этого не сделать, то нельзя сохранять проекты, состоящие из более чем 5 файлов. Во-вторых, AIDE не поддерживает сборку проектов Android Studio, состоящих из более, чем одного модуля.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments9

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

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

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

Java: автоматически формируем SQL-запросы

Reading time4 min
Views27K
В этой статье я опишу создание фреймворка для автоматической генерации SQL-запросов на основе классов и объектов Java. Я понимаю, что уже существует множество готовых подобных решений, но мне захотелось реализовать это самому.

Для создания фреймворка будем использовать Java-аннотации и Java Reflection API.

Итак, начнем.

Читать дальше →
Total votes 16: ↑9 and ↓7+2
Comments19

Патчим прошивку Android за 5 минут

Reading time2 min
Views30K

Задача


Все началось с того, что я захотел установить на планшет Digma Optima 7.61 игру GTA San Andreas. К сожалению, виртуальная SD-карта планшета имеет объем менее 1 Гб, а кэш игры весит порядка 2-3 Гб. На планшете установлен Android 4.4.2 и возможность просто взять и сменить память по умолчанию в нем отсутствует. Так же в нем отсутствует файл /etc/vold.fstab (он есть на более старых версиях андроида, и изменив данный файл с root-правами, можно поменять местами виртуальную и реальную карты памяти).

Необходимые инструменты


1. Компьютер или ноутбук с ОС Linux.
2. Утилиты adb и fastboot (входят в состав Android SDK, так же, как заметил tmnhy, входят в репозитории как отдельные пакеты).
3. Набор утилит bootimg_tools (нашел здесь).

Решение

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments28

Краткая инструкция: GitHub через I2P

Reading time1 min
Views35K
Навеяно публикацией «Github опять заблокирован».

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

Почему-то сразу пришла в голову мысль об I2P.

И это действительно оказалось несложно.
Читать дальше →
Total votes 60: ↑56 and ↓4+52
Comments42

Java: IP-телефония с нуля

Reading time3 min
Views15K
В предыдущей статье «Транслируем звук по сети с помощью Java» я описывал способ приема и трансляции звука по сети встроенными средствами Java.

Здесь я продолжу развивать эту идею, и расскажу, как сделать с помощью Java простую систему IP-телефонии.

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

Полностью исходники можно посмотреть на github.

Всех заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 5: ↑3 and ↓2+1
Comments4

Транслируем звук по сети с помощью Java

Reading time5 min
Views34K
Стало мне интересно поэкспериментировать с передачей звука по сети.
Выбрал для этого технологию Java.
В итоге написал три компоненты — передатчик для Java SE, приемник для Java SE и приемник для Android.

В Java SE для работы со звуком использовались классы из пакета javax.sound.sampled, в Android — классы android.media.AudioFormat, android.media.AudioManager и android.media.AudioTrack.
Для работы с сетью — стандартные Socket и ServerSocket.

С помощью этих компонент удалось успешно провести сеанс голосовой связи между Дальним Востоком России и Нидерландами.

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

Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments26

ВВП, денежная масса и динамическое равновесие

Reading time2 min
Views7.1K
В статье «Сбалансированная денежная единица и многосторонний клиринг» я описывал модель международных расчетов, построенную на клиринге и СДЕ — сбалансированной денежной единице.

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

Начну с описания численной модели.

Пусть в экономике страны участвуют 20 независимых субъектов.
Каждый производит некий абстрактный продукт — на сумму 100 СДЕ в единицу времени.
Задана начальная сумма денег у каждого субъекта.
Будем проводить три испытания — с начальными суммами соответственно 50, 100 и 150 единиц национальной валюты.
Начальный курс СДЕ к национальной валюте положим равным 1.
В каждую единицу времени каждый субъект может продать от 0 до 15 процентов (случайное число) продукта за границу и заработать на этом денег.
Остальной продукт потребляется.
Так же субъект может потратить от 0 до 15 процентов (случайное число) своих денег на приобретение импортных товаров.

Начальный баланс страны в клиринговой системе равен нулю.

Рассмотрим три случая:
1. Курс СДЕ фиксирован.
2. Между клиринговым балансом страны и курсом СДЕ существует обратная связь, не зависимая от времени.
3. Зависимая от времени обратная связь.

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

Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments23

Сбалансированная денежная единица и многосторонний клиринг

Reading time2 min
Views16K
В статье «Деньги, товар и немного статистики» я описывал метод построения диверсифицированного продукта (набора товаров с минимальной дисперсией относительной цены) и ввел понятие привязанной к нему СДЕ — сбалансированной денежной единицы.

Здесь я попробую описать модель международных расчетов, основанную на СДЕ.

В этой статье википедии можно найти данные по внешнему долгу всех государств. Суммарный долг всех стран составляет более 70.6 триллионов долларов США, или 98% ВВП планеты Земля.
Кому же все должны? Очевидно — друг другу.
Возникает вполне естественный вопрос — зачем?

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

Читать дальше →
Total votes 23: ↑15 and ↓8+7
Comments62

Деньги, товар и немного статистики. Дополнение

Reading time2 min
Views4.6K
В статье «Деньги, товар и немного статистики» я описывал метод статистического анализа долгосрочной динамики цен и построения диверсифицированного продукта — некой корзины товаров, для которой стандартное отклонение его относительной цены за определенный период времени минимально.
Напомню, в начале вычисляются относительные цены товаров, затем их матрица ковариаций и с помощью метода множителей Лагранжа вычисляется условный минимум.

В этой статье я попробую исследовать еще несколько зависимостей.
Под катом графики.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments6

Деньги, товар и немного статистики. Часть вторая

Reading time2 min
Views7.7K
В первой части статьи я писал о статистической обработке данных по ценам на товары за более чем 30 лет.
Здесь я попробую отследить взаимосвязи между отдельными товарами.
Если быть более точным, под катом немного matlab-кода и изображения графов.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments8

Деньги, товар и немного статистики

Reading time4 min
Views22K
Пару лет назад мне попалась интересная статья о взаимосвязи цен на золото и нефть.

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

После долгих поисков по интернету, я нашел этот сайт, с которого скачал архив цен (скачать XLS) на товары за 35 лет.

Все данные я обрабатывал в MATLAB.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments47

Рисуем графики онлайн

Reading time3 min
Views16K
Началось все с того, что около трех или четырех лет назад я написал на Java собственный парсер и калькулятор математических выражений — jExpressions.

И вот, относительно недавно, в свете осваивания технологии Java EE, возникла идея сделать на основе этого парсера онлайн рисовалку графиков.

Парсер на тот момент обладал довольно экзотическим синтаксисом для вызова функций (напр. exp#3 вместо exp(3); beta#1:2 вместо beta(1,2)).
Также время от времени вылетали баги.

После нескольких часов допиливания и обезглючивания появилась на свет версия jExpressions 1.0.

После этого можно было приступить к делу.

Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments14

Голосовое управление web-плеером, или скрещиваем CMU Sphinx с Selenium WebDriver

Reading time5 min
Views8.6K
В этой статье я описывал создание веб mp3 плеера и домашней аудиосистемы.
Сам плеер можно увидеть здесь.

Возникла идея — прикрутить к плееру голосовое управление.
После часа-другого поиска в интернете решение нашлось:
CMU Sphinx — для распознавания речи + Selenium WebDriver — для программного управления браузером.

Итак, начнем.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments2

Самодельный Dynamic DNS

Reading time2 min
Views34K
Статья о том, как за несколько минут своими руками сделать Dynamic DNS с помощью Perl, Yandex DNS API и роутера D-Link.

Многие роутеры D-Link поддерживают встроенную функцию Dynamic DNS.
К сожалению, бесплатно доступны лишь домены вида example.dlinkddns.com.

Есть также очень удобное DNS API от Яндекса.

Этим сочетанием мы и воспользуемся.
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments28

Создание домашней аудиосистемы

Reading time11 min
Views7.1K
Сразу оговорюсь, что я понимаю под домашней аудиосистемой.

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

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

И так, поехали.

1. Готовим базу данных


В качестве базы данных будем использовать MySQL. База данных содержит две таблицы: mp3 — данные об аудиофайлах и mp3_tmp — таблица используется при обновлении базы данных. По структуре обе таблицы идентичны.

Таблицы содержат следующие поля:

Читать дальше →
Total votes 24: ↑10 and ↓14-4
Comments11

Information

Rating
Does not participate
Location
Комсомольск-на-Амуре, Хабаровский край, Россия
Date of birth
Registered
Activity