Как стать автором
Обновить
16
0
Евгений Табацкий @jatx

Программист

Отправить сообщение

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

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

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

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

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

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

Приступим.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии19

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

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

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

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

Читать дальше →
Всего голосов 16: ↑9 и ↓7+2
Комментарии19

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

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

Задача


Все началось с того, что я захотел установить на планшет 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 (нашел здесь).

Решение

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

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

Время на прочтение1 мин
Количество просмотров36K
Навеяно публикацией «Github опять заблокирован».

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

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

И это действительно оказалось несложно.
Читать дальше →
Всего голосов 60: ↑56 и ↓4+52
Комментарии42

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

Время на прочтение3 мин
Количество просмотров16K
В предыдущей статье «Транслируем звук по сети с помощью Java» я описывал способ приема и трансляции звука по сети встроенными средствами Java.

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

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

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

Всех заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 5: ↑3 и ↓2+1
Комментарии4

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

Время на прочтение5 мин
Количество просмотров35K
Стало мне интересно поэкспериментировать с передачей звука по сети.
Выбрал для этого технологию 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, можно транслировать музыку на другие устройства, и, таким образом, слушать музыку одновременно в нескольких комнатах квартиры (при наличии соответствующего количества девайсов).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать дальше →
Всего голосов 23: ↑15 и ↓8+7
Комментарии62

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

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

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

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

Время на прочтение2 мин
Количество просмотров7.7K
В первой части статьи я писал о статистической обработке данных по ценам на товары за более чем 30 лет.
Здесь я попробую отследить взаимосвязи между отдельными товарами.
Если быть более точным, под катом немного matlab-кода и изображения графов.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии8

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

Время на прочтение4 мин
Количество просмотров22K
Пару лет назад мне попалась интересная статья о взаимосвязи цен на золото и нефть.

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

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

Все данные я обрабатывал в MATLAB.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии47

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

Время на прочтение3 мин
Количество просмотров16K
Началось все с того, что около трех или четырех лет назад я написал на Java собственный парсер и калькулятор математических выражений — jExpressions.

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

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

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

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

Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии14

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

Время на прочтение5 мин
Количество просмотров8.7K
В этой статье я описывал создание веб mp3 плеера и домашней аудиосистемы.
Сам плеер можно увидеть здесь.

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

Итак, начнем.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии2

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

Время на прочтение2 мин
Количество просмотров34K
Статья о том, как за несколько минут своими руками сделать Dynamic DNS с помощью Perl, Yandex DNS API и роутера D-Link.

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

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

Этим сочетанием мы и воспользуемся.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии28

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

Время на прочтение11 мин
Количество просмотров7.1K
Сразу оговорюсь, что я понимаю под домашней аудиосистемой.

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

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

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

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


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

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

Читать дальше →
Всего голосов 24: ↑10 и ↓14-4
Комментарии11

Информация

В рейтинге
Не участвует
Откуда
Комсомольск-на-Амуре, Хабаровский край, Россия
Дата рождения
Зарегистрирован
Активность