Нахождение числа Фибоначчи по индексу

Числа Фибоначчи — это последовательность, в которой каждое последующее число равно сумме двух предыдущих чисел. Многие помнят задачу о вечноживущих и плодовитых кроликах. А как найти нужное число из последовательности, зная только его индекс?

Вот так можно определить n по счёту число из последовательности Фибоначчи в языке PHP:

function fibonacci($n)
{
    return round(
        pow((sqrt(5)+1) / 2, $n) / sqrt(5)
    );
}

Continue reading

Установка Composer в *nux

Задача: установить менеджер зависимостей Composer в Ubuntu / Debian.

Решение:

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Установим команду «composer» в окружение, чтобы можно было обращаться к функционалу Composer из командной строки:

export PATH=$PATH:~/.composer/vendor/bin

В примере описаны действия в домашней директории пользователя.

Эмулятор Android-устройств на VirtualBox в Ubuntu

Подробная пошаговая инструкция по установке и использованию эмулятора VirtualBox для использования совместно с Android Studio в ОС Ubuntu. Основная задача: использовать виртуальное устройство в VirtualBox для разработки и запуска приложений из Android Studio.

Особенно актуально использование интерфейса Bluetooth в виртуальном устройстве VirtualBox, т.к. большинство эмуляторов его не поддерживает. С помощью этой инструкции можно подключить виртуальную машину к интерфейсу Bluetooth компьютера.

1. Установка VirtualBox

VirtualBox можно установить через «Центр приложений Ubuntu». После установки через терминал следует добавить текушего пользователя в группу vboxusers, это нужно для того, чтобы иметь доступ к реальным USB-устройствам через VirtualBox:

sudo adduser имя_пользователя vboxusers

имя_пользователя — имя текущего пользователя Ubuntu.

После этого следует перезапустить сеанс пользователя или перезагрузиться.

Continue reading

Установка Oh My ZSH! в Ubuntu

Oh My ZSH! — это фреймворк с открытым исходным кодом, предназначенный для управления конфигурацией оболочки ZSH.

Z shell, zsh — одна из современных командных оболочек UNIX, может использоваться как интерактивная оболочка, либо как мощный скриптовой интерпретатор. Zsh является расширенным bourne shell с большим количеством улучшений.

Вот так преображается терминал, если используется оболочка ZSH в купе с Oh My ZSH!

oh-my-zsh-example

Continue reading

Error:(28, 0) Gradle DSL method not found: ‘runProguard()’

Такая ошибка может возникнуть после обновления Android Studio, которая рекомендует использовать свежую версию Gradle. Исправим это недоразумение.

Мне помогло следующее решение — нужно удалить строку в build-файле Gradle для модуля app (/app/build.gradle), причём номер строки указан первой цифрой в тексте ошибки (у меня это строка 28):

buildTypes {
  release {
    runProguard false // эту строку нужно удалить
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
  }
}

После удаления строки запускаем синхронизацию «Sync Project with Gradle Files».

Continue reading

Шаблон полного отображения в списке объектов NetCat CMS

При работе с системой управления контентом NetCat CMS может возникнуть потребность вывести данные полного отображения объекта, используя функцию nc_objects_list(), она же s_list_class(). Изначально функция расчитана на вывод информации списка, а не отдельного объекта.

Решение, в данном случае, очень простое — в компоненте, в поле «Объект в списке» нужно вписать код:

<? /* данные из полного отображения объекта */ ?>
<? include_once (
    $nc_core->CLASS_TEMPLATE_FOLDER
    . $cc_env['Class_ID']
    . ($cc_env['Class_Template_ID'] ? "/" . $cc_env['Class_Template_ID'] : "")
    . "/RecordTemplateFull.html"
); ?>

В результате, вместо отображения объекта из списка, будет выведено содержимое поля полного отображения объекта.

Такой же подход может быть полезен при желании использовать одинаковый шаблон при выводе объекта списка и полного отображения объекта.

AJAX-авторизация в CMS NetCat

AJAX-авторизация в CMS NetCatПопулярная отечественная CMS NetCat имеет в своём составе модуль «Личный кабинет», который, помимо прочего, позволяет организовать регистрацию и авторизацию пользователей на сайте. Авторизация нас как раз и интересует, а именно организация ajax-авторизации, без назойливой перезагрузки страницы, которая инициируется отправкой формы с данными.

Готового решения для этого у системы управления контентом NetCat пока ещё нет, но его можно легко реализовать стандартными средствами. Ниже представлена инструкция по шагам.

1. Макет дизайна и форма авторизации

На этом шаге нам нужно расширить стандартную форму авторизации. Форма может находится в настройках модуля «Личный кабинет» — «Форма авторизации», а может быть выведена непосредственно в макете дизайна. Рассмотрим ситуацию, когда форма выведена в макете.

Continue reading

Установка плагина Mercurial для Eclipse

MercurialEclipseИспользование Mercurial совместно с Eclipse можно настроить установкой одного единственного плагина MercurialEclipse. MercurialEclipse позволяет организовать полноценное взаимодействие между Eclipse и удалённым (например BitBucket) или локальным репозиторием hg.

Процесс установки очень прост:


Continue reading

Установка Android SDK, Java JDK, Android Studio в Ubuntu

1. Установка Java JDK
2. Установка Android SDK
3. Установка Android Studio
4. Дополнительные опции установки Java JDK

Установка Java JDK

В центре приложений Ubuntu предлагается воспользоваться OpenJDK Java 7 Runtime (JRE), это не подойдёт для работы Android Studio (для Eclipse кстати тоже), нам нужно именно Java JDK, тот самый от компании Oracle.

Возможная ошибка в случае несоответствия пакета Java:
«tool.jar is not in Android Studio classpath. Please ensure JAVA_HOME points to JDK rather than JRE»

Continue reading

Динамические идентификаторы строк из XML русурсов в Android

Частая задача в программировании — получение строковых ресурсов, не зная их точных идентификаторов, или получая идентификаторы из других данных. Программирование под Android не является исключением, вот небольшая инструкция по теме составления динамических идентификаторов строковых переменных из XML ресурсов в Android.

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

getString(R.string.somevalue0);

В общем случае файл строковых ресурсов, например res/values/somevalues.xml, будет таким:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="somevalue0">Zero string</string>
    <string name="somevalue1">First string</string>
    <string name="somevalue2">Second string</string>
</resources>

Но как получить это же значение, если нам известен префикс somevalue и переменная со значением 0? Или больше — получить последовательно в цикле несколько динамических строковых значений? Например так:

"somevalue" + intVariable.toString()

Continue reading