Monthly Archives: Май 2013

Установка Virtual Box (для Windows)

Virtual Box (Oracle VM VirtualBox) — программный продукт виртуализации для операционных систем.

Скачаем бесплатно Virtual Box с официального сайта https://www.virtualbox.org/wiki/Downloads

Запустите файл VirtualBox-4.2.12-84980-Win.exe
01
В окне приветствия нажмите Next

02
Выберите директорию установки. Нажмите Next

03
Здесь можно выбрать в каких местах установить ярлыки на программу. Можно оставить все по умолчанию и нажать Next

04
Далее идет предупреждение, что сеть временно будет отключена, поэтому нужно закрыть все программы, работающие по сети и с интернетом. После этого можно нажать кнопку Yes.

05
Для установки все готово, нажимаем Install

05-2
Дождитесь окончания процесса установки, это займет несколько минут.

06
В процессе установки будет запрошена установка дополнительно ПО от Oracle. Отметьте флажок Always trust software from «Oracle Corporation» и нажмите Install.

07
Установка завершена! Нажмите Finish

08
Потребуется перезагрузка операционной системы. Нажмите Yes для незамедлительной перезагрузки.

09
Virtual Box запускается следующим ярлыком.

Настройка Eclipse для разработки под Android

В данной статье будет описано как настроить Eclipse для разработки Android приложений.

Перечислю все необходимое ПО:
1) JDK 6 (Java Development Kit — Набор для разработки на Java)
2) Eclipse Classic
3) Android SDK (Software Development Kit — Набор средств разработки ПО)
4) ADT (Android Development Tools — Инструменты для Android разработки) — плагин для Eclipse

JDK

Процесс установки JDK описан в статье: Установка JDK (Windows)

Eclipse

После установки JDK переходим к установке Eclipse.

Скачаем свежую версию Eclipse с официального сайта eclipse.org.
Кликните на закладке Downloads, вам будут представлены различные сборки Eclipse.
Для наших целей нужен классический Eclipse — Eclipse Classic (на момент написания статьи последняя версия была 4.2.2). Распакуйте скачанный архив в директорию c:\eclipse (или куда вам удобнее)

Для удобства создайте ярлык на исполняемый файл eclipse.exe.

Запустите eclipse. При первом запуске будет предложено выбрать директорию вашего рабочего пространства.
Рабочие пространства группируют проекты. Если вам достаточно одного рабочего пространства, то можно установить флаг «Use this as the default and do not ask again». Установив этот флаг, eclipse не будет выводить это окно в следующий раз, и сразу откроет ваше рабочее пространство, заданное по умолчанию.
Выбор рабочего пространства

Android SDK

Перейдите на страницу загрузки http://d.android.com/sdk
На данной странице предлагается сказать сборку, в которой есть все необходимое для android-разработки. Но мы пойдем другим путем. Скачаем только Android SDK. Выберите пункт «DOWNLOAD FOR OTHER PLATFORMS» (скачать для других платформ), в таблице под названием «SDK Tools Only» (только SDK) скачайте установщик SDK для Windows (*.exe). Прочитав и согласивших с лицензионным соглашением, скачайте этот установщик.

Перед установкой Android SDK нужно убедиться, что настроена переменная среды JAVA_HOME (Как прописать системную переменную JAVA_HOME), иначе установщик ругнется, не найдя JDK.
Запустите установщик installer_r21.1-windows.exe. В окне приветствия нажмите Next
welcome

На следующем шаге установщик определяет расположение JDK по системной переменной JAVA_HOME. Если JDK найдено, нажимаем кнопку «Next».
jdk-found

В окне выбора пользователей укажите опцию «Install for anyone this computer» (установить для всех пользователей компьютера). Если же хотите установить только для себя, то выберите вторую опцию «Install just for me». Нажмите «Next».
choose-users

В окне выбора места установки оставьте все по умолчанию и нажмите «Next».
choose-install-location

В окне создания ярлыка в меню можно также оставить все без изменения и нажать «Install».
install

После успешного завершения установки нажмите «Next».
installation-complete

В финальном окне установщика оставьте галочку «Start SDK Manager», чтобы запустить SDK Manager, после нажатия кнопки «Finish».
start-sdk-manager

После запуска SDK Manager предложит установить последную версию API. Если вам нужны предудыщие версии укажите их и нажмите кнопку «Install packages…»
sdk-manager

Согласитесь с лицензией «Accept License» и нажмите «Install»
sdk-accept-license

Начнется скачивание выбранных вами пакетов из интернета.

ADT
Установка плагина ADT для Eclipse.
Запускаем Eclipse.
В меню Help выберите пункт «Install New Software…».
Нажмите кнопку «Add…» (Добавить)
Появиться окно добавления хранилища:
add-repository
В нем укажите название «Android Development Tools» и адрес расположения «https://dl-ssl.google.com/android/eclipse/». Нажмите «OK»
После нескольких секунд ожидания в списке должна появиться запись «Development Tools», отметьте ее галочкой и нажмите «Next».
В следующем окне также нажмите «Next».
В обзоре лицензионного соглашения согласитесь с ней и нажмите «Finish».
В процессе установки выйдет окно Security Warning, просто нажмите в нем OK.
По завершению установки плагина ADT будет предложено перезагрузить Eclipse, согласитесь с этим.

При запуске Eclipse может выйти следующая ошибка:
1
Eclipse не может найти SDK, потому что мы установили SDK по умолчанию в директорию: C:\Program Files (x86)\Android\android-sdk. Чтобы переназначить путь к SDK откройте меню Windows -> Preferences. В окне Preferences в поле SDK Location укажите путь к Android SDK и нажмите OK.
2
Всё Eclipse готов для разработки Android-приложений.

Установка и настройка SQuirreL SQL Client

Рассмотрим установку моего любимого sql-клиента SQuirreL SQL Client на Windows 8

Скачиваем свежую версию файла squirrel-sql-<версия>-install.jar с официального сайта http://www.squirrelsql.org/#installation

Начнем с того, что SQuirreL SQL Client написан на java. Поэтому на компьютере должна быть установлена Java (см. статью Установка JDK (Windows)). Не удивляйтесь, что установщик представлен jar-файлом, это все благодаря IzPack.

Установщик нужно запустить с правами администратора, иначе установщик не сможет создать папку и записать данные в папку C:\Program Files. Можно, конечно, установить в папку, на которую у вас есть доступ, но мы все же установим в папку C:\Program Files. Нажмите кнопку Windows, затем наберите cmd, должна появиться строка запуска командной строки. Вызовите на ней контекстное меню и выберите пункт Запуск от имени администратора. Наберите следующую команду, указав полный путь к jar-файлу.

java -jar c:\temp\squirrel-sql-3.5.0-install.jar

Если в пути есть пробелы, то заключите путь в кавычки:

java -jar "C:\Program Files\Java\jdk1.6.0_43\bin\squirrel-sql-3.5.0-install.jar"

Должно появиться окно приветствия:
1
В окне приветствия просто нажмите Next.
2
В следующием окне также нажмите Next

3
Директорию установки оставим без изменения, нажмем Next. Установщик сообщит, что будет создана новая директория, согласитесь с этим, нажатием кнопки OK.

4
В окне выбора пакетов можно выбрать дополнительные плагины для СУБД, которые планируем использовать. Я выбрал плагины для MySQL, Oracle, Microsoft SQL Server и DB2. Также выбрал плагин русского языка.

5
После копирования и установки файлов нажмите Next.

6
Можно разрешить установку ярлыка на рабочий стол и нажать Next.

7
Установка завершена, нажимаем Done.

Установка драйверов
«Голый» squirrel содержит только драйвер «JDBC ODBC Bridge».
Для подключения драйвера скопируйте файл драйвера в директорию C:\Program Files\squirrel-sql-3.5.0\lib в соответствии со следующей таблицей:

СУБД

Файл драйвера

MySQL

mysql-connector-java-5.1.5-bin.jar

Oracle

ojdbc14.jar

Microsoft SQL Server

sqljdbc.jar

DB2

db2java.zip
db2jcc.jar
db2jcc_license_cu.jar
(нужны все три файла)

Для проверки подключения драйверов откройте Squirrel, выберите вкладку Drivers и нажмите кнопку Показывать только загруженные драйверы. Вы увидите список доступных драйверов:
8

Подключение к базе данных

9
Выберите вкладку Aliases и нажмите синий плюс для добавления нового подключения.
Выберите произвольное название для подключения, выберите нужны драйвер из списка, укажите строку подключания, пользователя и пароль. Также вы можете установить флаг «Auto logon«, чтобы при открытий, созданного подключения, автоматически происходила авторизация. Нажмите OK.
Созданный alias появиться в списке:
10
Подключение устанавливается двойных щелчком по alias. При успешном подключении с базой данных можно работать в двух режимах: Objects (работа с объектами базы данных) и SQL (режим sql-запросов).

11

Ниже приведены примеры для создания подключений к некоторым СУБД:

СУБД

Драйвер

Строка подключения

MySQL

MySQL Driver

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF8

Oracle

Oracle Thin Driver

jdbc:oracle:thin:@localhost:1521:TEST

Microsoft SQL Server

Microsoft MSSQL Server JDBC Driver

jdbc:sqlserver://localhost:1433;characterEncoding=UTF8;databaseName=test

DB2

IBM DB2 Net Driver

jdbc:db2://localhost:50000/TEST

Microsoft Access

JDBC ODBC Bridge

jdbc:odbc:test

Перемешивание букв в словах

Не имеет значения в каком порядке расположены буквы в слове …

По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, в кокам пряокде рсапожолены бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы не чиатем кдаужю бкуву по отдльенотси, а все солво цликеом:))

Сегодня я приведу примеры реализации таких перемешиваний букв в словах. Первая реализация будет на языке Java, а вторая реализаций будет на JavaScript.

Реализация на Java

Цель: создать метод turn, который принимает строку, а возвращает строку со словами, в которых перемешаны все буквы, кроме первой и последней.
Например, turn(«По результатам исследований») вернет следующий текст: «По рзлуаьаттем иаслсеодинвй»

Необходимо подключить следующие пакеты для работы с регулярными выражениями:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

Самое главное — регулярное выражение.
\p{L} — означает unicode символ
{4,} — задает количество от 4 до бесконечности

//регулярное выражение поиска unicode-последовательности из более 3-х символов
static final Pattern p = Pattern.compile("\\p{L}{4,}");

Реализация функции turn:

//функция принимает строку в обычном виде,
//а возвращает в перемешанном
static String turn(String str){
	//разбор строки
	Matcher m = p.matcher(str);
	//обработанные данные будем добавлять в переменную sb
	StringBuilder sb = new StringBuilder();
	//перебираем все фрагменты, которые нужно перемешать
	while(m.find()){
		//создаем массив из номеров позиций букв в массиве,
		//которые нужно перемешать
		int size = m.end() - m.start() - 2;
		int[] a = new int[size];
		int ndx = 0;
		for(int j = m.start() + 1;j < m.end() - 1;j++){
			a[ndx++] = j;
		}		
		//просто копируем все символы, которые не нужно перемешивать
		for(int i=sb.length();i<=m.start();i++){
			sb.append(str.substring(i, i+1));
		}
		//перемешиванием массив
		mix(a);
 
		//добавляем в переменную sb перемешанные буквы
		for(int el : a){
			sb.append(str.substring(el, el + 1));
		}
	}	
	//добавляем последние символы, которые перемешивать не нужно
	for(int i=sb.length();i<str.length();i++){
		sb.append(str.substring(i, i+1));
	}		
	return sb.toString();
}

Ниже приведена функция перемешивания массива:

//функция перемешивания массива
static void mix(int[] arr){
	for(int i=0;i<arr.length;i++){
		int rnd1 = (int)(Math.random() * arr.length);
		int rnd2 = (int)(Math.random() * arr.length);
		int swap = arr[rnd1];
		arr[rnd1] = arr[rnd2];
		arr[rnd2] = swap;
	}
}

Реализация на JavaScript
Из-за особенностей JavaScript реализация будет немного отличаться.
JavaScript поддерживает регулярные выражения, но не поддерживаются класс unicode-символов, а нам нужен класс символов \p{L}.
Для решения этой проблемы будем использовать плагин XRegExp.
Скачаем плагин с официального сайта http://xregexp.com/plugins/ или отсюда

Подключаем плагин к странице:

<script src="xregexp-all.js"></script>

Регулярное выражение создается с помощью функции XRegExp, в которую первым параметром передаем шаблон регулярного выражения(описание шаблона см.выше), а вторым параметром флаг g, означающий поиск всех совпадений.

var exp = XRegExp('\\p{L}{4,}','g');

В реализации функции turn есть несколько ньюансов:
1) Вместо ресурсозатратной операции конкатенации(склеивания) строк мы будет добавлять символы в массив с помощью метода push. В конце мы сольем все элементы массива с помощью функции join, которая параметром принимает разделитель между элементами, а в нашем случае это пустая строка.
2) В JavaScript при использовании такого синтаксиса: for(el in arr), в переменную el кладется не элемент массива, а ключ. Чтобы получить элемент нужно получить его из массива по ключу: arr[el].

//функция принимает строку в обычном виде,
//а возвращает в перемешанном
function turn(text){
	//обработанные данные будем добавлять в массив res
	var res = [];	
	//перебираем все фрагменты, которые нужно перемешать
	while(match = exp.exec(text)){	
		//создаем массив из номеров позиций букв в массиве,
		//которые нужно перемешать
		var first = match.index + 1;
		var last = match.index + match.toString().length - 2;
		var arr = [];
		for(i=first;i<=last;i++){
			arr.push(i);
		}
 
		fix(arr);//перемешиванием массив
 
		//просто копируем все символы, которые не нужно перемешивать
		for(i=res.length;i<=match.index;i++){
			res.push(text.substring(i,i+1));
		}
 
		//добавляем перемешанные символы
		for(el in arr){
			var ndx = arr[el];
			res.push(text.substring(ndx,ndx+1));
		}	
	}
	//добавляем последние символы, которые не нужно перемешивать
	for(i=res.length;i<text.length;i++){
		res.push(text.substring(i,i+1));
	}
	return res.join('');
}

Код перемешивания элементов массива:

//функция перемешивания массива
function fix(arr){
	for(i=0;i<arr.length;i++){
		var rnd1 = Math.floor(Math.random() * arr.length);
		var rnd2 = Math.floor(Math.random() * arr.length);
		var swap = arr[rnd1];
		arr[rnd1] = arr[rnd2];
		arr[rnd2] = swap;
	}
}

Готовую реализацию можно увидеть на странице: Перемешивание букв в словах (Пример)