Google Docs: текущий курс валюты

Текущий курс валюты (в примере — курс доллара ЦБ РФ) можно получить с помощью следующей функции:

=IMPORTXML("http://www.cbr.ru/scripts/XML_daily.asp"; "//ValCurs/Valute[CharCode=""USD""]/Value")

То же самое на любую дату:

=IMPORTXML("http://www.cbr.ru/scripts/XML_daily.asp?date_req=01/01/2011"; "//ValCurs/Valute[CharCode=""USD""]/Value")

Дополнение от 7 янв. 2015:
Спасибо Илье Кочеткову за упрощение формулы. Старый вариант под катом. Возможно, кому-то пригодятся и решения из него. А можно даже ещё проще, т.к. буквенный код валюты уникален:
=IMPORTXML("http://www.cbr.ru/scripts/XML_daily.asp"; "//*[*=""USD""]/Value")
Спасибо Михаилу.
Читать далее Google Docs: текущий курс валюты

Монтирование NTFS во FreeBSD

В режиме чтения и записи, без проблем с кодировкой:

ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad10s1 /mnt/ntfs/

Для этого нужно сначала установить fusefs-ntfs.
После установки прописываем в rc.conf строку:

fusefs_enable="YES"

Без перезагрузки можно запустить командой:

/usr/local/etc/rc.d/fusefs start

Проверяем, загружен ли модуль:

kldstat | grep fuse.ko

По материалам раз и два. Если что-то не работает — ищем там.

Пароль mysql в командной строке

Чтобы безопасно не интерактивно передавать пароль (а попутно и другие данные) в mysql, нужно поступить так.

  1. Создаём файл в недоступной по http директории; в примере назовём его def.cnf
  2. Добавляем в него такие строки:
    [client]
    user = имя_пользователя
    password = пароль
    host = хост_бд
    [mysql]
    database = имя_бд

    (Можно дополнить файл и другими директивами.)

  3. Даём файлу минимальные права, например 400 или 600.
  4. Используем вместо такой записи
    mysql --host=хост_бд \
    --user=имя_пользователя \
    --password=пароль имя_бд \
    --execute="SELECT NOW();"

    такую:

    mysql --defaults-extra-file="/path/def.cnf" \
    --execute="SELECT NOW();"

    Важно: --defaults-extra-file должен быть первым ключом.

  5. Хинт. Добавляем путь к файлу def.cnf в переменную окружения, и нам больше не нужно вводить его при наборе команды, например:
    mysql --defaults-extra-file=$DEF \
    --execute="SELECT NOW();"

По материалам man mysqld_safe и http://www.opennet.ru/tips/info/1313.shtml

Считывание переменных из файла в Bash

Вместо

for var in $(cat file.txt) # или for var in `cat file.txt`
do

done

можно (и часто удобнее) использовать

cat file.txt | while read var
do

done

Особенности:

1. Во втором варианте применение пайпа изменяет область видимости переменных. В приведённом примере за пределами цикла while переменная var не будет видна, т.к. она выполняется в новом процессе.

2. При использовании варианта с пайпом (вариант 2) в переменную будет писаться вся строка, даже если в ней есть пробельные символы. Такое же поведение в варианте 1 можно спровоцировать, установив переменную окружения IFS=" " (равной пробелу; хотя на своём опыте я убедился, что использование в качестве разделителя пробельных символов может повлечь за собой массу неудобств).

Android: как установить два одинаковых приложения на один телефон

Стол заказов — в конце статьи.

Для установки двух (или больше) одинаковых приложений на один телефон нужно сменить значение package в файле AndroidManifest.xml, находящемся внутри apk-билда.
Например, имеем:

<manifest
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.e_num"
xmlns:android="http://schemas.android.com/apk/res/android">

Для того, чтобы установить это приложение ещё раз, нужно сделать примерно следующее:

<manifest
android:versioncode="20110420"
android:versionname="1.8.0"
package="ru.e_num.test"
xmlns:android="http://schemas.android.com/apk/res/android">

После такого изменения заново собранный apk-файл придётся подписать сертификатом. Информацию о том, как распаковывать, запаковывать и подписывать apk-файлы, можно найти в любом поисковике по запросу SmartApkTool. Вот ссылка на приложение: v.2.2 (распакуйте содержимое архива в пустую директорию). А вот более правильный способ работы с apk-файлами: Использование apktool.

Совет. Устанавливайте одну из копий неизменённой, чтобы знать об обновлениях в Маркете.

Под катом описаны некоторые встречающиеся проблемы, а также находится Стол Заказов. Читать далее Android: как установить два одинаковых приложения на один телефон