Варианты объединения двух массивов в Java

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

Чтение CSV-файла в Java

Для некоторого круга задач автоматизации обмена данными между различными приложениями необходимо работать с форматом CSV. Рассмотрим способы работы с этим форматом в Java.
Читать далее »

Изменение названия картинки в django при загрузке в админке

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

Обновление sqlite базы данных в андроид-приложении из assets

Интересная задача: как обновить базу данных приложения, если мы ее используем в качестве источника данных и не храним никаких пользовательских данных? Сходу можно предложить вариант использовать текстовый дамп таблицы или при поставке обновления приложения полностью перезаписывать данные в приложении на новые. Рассмотрим второй вариант в применении к SQLite базе данных.

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

Изменение логики работы полей в админке Django

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

Тонкая настройка Apache для работы с Django

Иногда на хостинге нет возможности поставить дополнительное программное обеспечение (nginx, mod_wsgi и т.п.), но есть возможность править конфигурационный файл сервера apache. Применительно для Django, без дополнительных настроек конфига это нам грозит повышенным расходом памяти для отдачи статики, и, в том числе, задержки при работе файловой системы на подгрузку дополнительных исполняемых файлов фреймворка Django.
Читать далее »

Скрипт определения размера таблиц в oracle и очистка данных

Часта ситуация когда в Oracle размер таблиц достигает больших величин и мы оказываемся в положении когда прикладное приложение просто не может записать что-либо в базу данных. Пришлось столкнуться с такой проблемой в Oracle XE, когда размер уперся в лицензионное ограничение этой бесплатной версии oracle.
Читать далее »

Регистронезависимый логин в django

По моему мнению логины на сайте должны быть регистронезависимыми, так как регистрация на одном сайте пользователей с логином «Django» и «django» может привести к неприятным конфузам. Будем отучать джанго от этого.
Читать далее »

Жадный оракл или как найти и очистить место для нужных данных

На одном поддерживаемом сервере с oracle «неожиданно» кончилось свободное место, после изысканий обнаружил, что софт генерировал отладочную инофрмацию и оракл сохранял инциденты (INICIDENTS) в системный раздел. Для их корректной очистки воспользуемся утилитой adrci. Это стандартная утилита, которая идет в поставке оракла.
Читать далее »