Для начала необходимо добавить код intent_filter в файле AndroidManifest для той Activity которая будет отвечать за обработку открытия файла с расширением .vnnt. Расширение может быть любым, желательно чтобы оно было уникальным.
Читать далее «Получение файла из e-mail и чтение его содержимого через android-приложение»Очистка логов journalctl в Ubuntu
Для очистки логов по условиям: до даты или обрезать до такого-то размера (в кол-ве записей или в Мб) можно использовать встроенные команды:
journalctl --vacuum-size=128M journalctl --vacuum-time=1d
Записки ученика iOS программиста
Все знания полученные здесь взяты из книги «Swift разработка приложений в среде Xcode для iPhone и iPad».
Исходный код можно получить с сайта GitHub https://github.com/Apress/beg-iphone-dev-w-swift-3
- для изменения иконки приложения лучше воспользоваться сервисом https://appicon.co Находим изображение размером 1024х1024 и передаем этому сервису? он сам вернет архив с нужными иконками.
- Создание кода при помощи которого можно форматировать текст через swift:
Sailfish
Список поддерживаемых моделей телефонов
https://wiki.merproject.org/wiki/Adaptations/libhybris#Others
Блокировка ipv6 запросов к vsftpd
При настройке vsftpd и включении ufw происходит блокировка.
Если в файле vsftpd.conf установлены следующие параметры
- listen=NO
- listen_ipv6=YES
и еще включен firewall и у Вас не работает подключение к ftp, то можно попробовать следующее.
В файле vsftpd.conf установить следующие параметры:
- listen=YES
- а listen_ipv6=YES закомментировать.
Android. Добавление надписи и метаданных к фото.
Следующий метод нарисует на фото текущую дату и время в нижнем правом углу:
public static Bitmap signBitmap(Bitmap background) {
background = background.copy(Bitmap.Config.ARGB_8888, true);
Paint paint = new Paint();
paint.setColor(Color.YELLOW);
paint.setTextSize(18f);
Date date = new Date();
String dateString = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss", Locale.getDefault()).format(date);
Canvas canvas = new Canvas(background);
canvas.drawText(dateString, background.getWidth() - 180, background.getHeight() - 40, paint);
return background;
}
Читать далее «Android. Добавление надписи и метаданных к фото.» Оптимизация запросов из базы данных для мобильного приложения
- Основным механизмом этого процесса является trigger в PostgreSql.Создается функция которая обновляет информацию о том, в каком состоянии находиться таблица. Состояние — это переменная в которой храниться время с типом данных double precision.
INSERT INTO core.sd_table_change (c_table_name, n_change) VALUES (_c_table_name, (SELECT EXTRACT(EPOCH FROM now()))) ON CONFLICT (c_table_name) DO UPDATE SET c_table_name = _c_table_name, n_change = (SELECT EXTRACT(EPOCH FROM now()));
- Далее создается триггер, который изменяет «состояние таблицы»
CREATE OR REPLACE FUNCTION core.cft_change_version() RETURNS trigger
LANGUAGE plpgsql
AS $$
BEGIN
IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE') THEN
select core.sf_table_change_update(t.c_table_name_ref) from (select TG_TABLE_NAME as c_table_name_ref UNION select c_table_name_ref from core.sd_table_change_ref where c_table_name = TG_TABLE_NAME) as t; END IF; RETURN NEW;
END
$$;
ALTER FUNCTION core.cft_change_version() OWNER TO mobnius;
COMMENT ON FUNCTION core.cft_change_version() IS 'Триггер. Обновление справочной версии';
- Для хранения информации о состоянии, создается 2 таблицы:
- Состояние таблиц — имя таблицы и её числовое состояние
- Таблицы зависимых состояний
CREATE TABLE core.sd_table_change ( c_table_name text NOT NULL, n_change double precision NOT NULL ); ALTER TABLE core.sd_table_change OWNER TO mobnius; COMMENT ON TABLE core.sd_table_change IS 'Изменение состояния таблицы'; COMMENT ON COLUMN core.sd_table_change.c_table_name IS 'Имя таблицы'; COMMENT ON COLUMN core.sd_table_change.n_change IS 'Версия изменения'; ALTER TABLE core.sd_table_change ADD CONSTRAINT sd_table_change_pkey PRIMARY KEY (c_table_name);
CREATE TABLE core.sd_table_change_ref ( id smallint DEFAULT nextval('core.sd_table_change_ref_id_seq'::regclass) NOT NULL, c_table_name text NOT NULL, c_table_name_ref text NOT NULL ); ALTER TABLE core.sd_table_change_ref OWNER TO mobnius; COMMENT ON TABLE core.sd_table_change_ref IS 'Зависимость таблиц состояний'; COMMENT ON COLUMN core.sd_table_change_ref.c_table_name IS 'Таблица'; COMMENT ON COLUMN core.sd_table_change_ref.c_table_name_ref IS 'Зависимая таблица'; ALTER TABLE core.sd_table_change_ref ADD CONSTRAINT sd_table_change_ref_pkey PRIMARY KEY (id); ALTER TABLE core.sd_table_change_ref ADD CONSTRAINT sd_table_change_ref_c_table_name_fkey FOREIGN KEY (c_table_name) REFERENCES core.sd_table_change(c_table_name) NOT VALID; ALTER TABLE core.sd_table_change_ref ADD CONSTRAINT "sd_table_change_ref_cTable_name_ref_fkey" FOREIGN KEY (c_table_name_ref) REFERENCES core.sd_table_change(c_table_name) NOT VALID;
Установка pgAdmin4 in Ubuntu
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
Установка pgAdmin4
sudo apt install pgadmin4Читать далее «Установка pgAdmin4 in Ubuntu»
PostgreSQL: преобразование строки в число
В базе данных доступны следующие строки:
Требуется в колонке c_house_number, которая является типом text, найти число и сохранить преобразованное значение в новой колонке:
Читать далее «PostgreSQL: преобразование строки в число»Bash-скрипт для переименования БД в PostgreSQL
#!/bin/bash psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() AND datname = 'vote-dev';" psql -c 'ALTER DATABASE "vote-dev" RENAME TO "vote-dev-db";'