понедельник, 31 октября 2011 г.

iphone и переход на зимнее время.

Как и многие владельцы  iphone 4 столкнулся с проблемой отмены перехода на зимнее время.
Суть в том, что при включении iTunes при подключеном iphone у одних время переходит на час вперед у других на час назад, в общем - полный бардак.
Немного порывшись в инете, нашел версию решения, связанную с выставлением часовых поясов в Windows и на iphone.
Так как я нахожусь в г.Пермь, у меня и было в телефоне выставлено - Пермь.
В Windows же Перми нет, поэтому там стоит Екатеринбург. Включай, не включай функцию автоматически выбирать время в настройках на iphone, ничего не выйдет - он упорно будет ставить время на час назад.
В итоге решил вопрос следующим образом:
  Выставил в Windows пояс (UTC+05:00) Исламабад, Карачи.
  Выбрал в iphone Исламабад, Пакистан
Естественно Windows автоматом выставила часы на час назад, что я сразу же вручную исправил.
Подключил iphone, включил iTunes и хоп - все встало так как надо.
Единственный минус, который я вижу, это синхронизация времени с интернетом в Windows, которую придется отключить, ибо с Пермским временем оно не совпадает.

суббота, 8 октября 2011 г.

Запуск Eclipse Indigo на Windows 7

Относительно долго решал вопрос с такой элементарной задачей как запуск Eclipse под Window 7 на своей домашней машинке. Поэтому оставляю маленькую заметку по этому поводу.
И так.
Скачиваем архив с Eclipse, распаковываем в какую-нибудь папку. Обычно для программ, которые запускаются без установки я создаю на диске C папку Programs и копирую их в нее.
Распаковали архив, получили следующее положение программы:
C:\Programs\eclipse\
Пытаемся запустить файл eclipse.exe и сразу получаем ошибку:



Не может Eclipse найти папку с нужными библиотеками JRE.
Чтобы ему помочь можно прописать путь к JRE в переменную окружения PATH.
Но мне больше нравится другое решение:
Рядом с файлом запуска лежит файл конфигурации Eclipse - eclipse.ini
В нем добавляем пару строк:
-vm
../../../Program Files/Java/jre7/bin/javaw.exe
Если вдруг кто не в курсе - две точки подряд означают переход на директорию выше.
А так как файл запуска Eclipse находится по пути C:\Programs\eclipse , то и пишем две точки трижды.

Теперь Eclipse запускается и можно приступать непосредственно к программированию :)

среда, 28 сентября 2011 г.

Ext GWT в Eclipse, с последующим запуском на Tomcat 7

Пару дней назад, вынуждено появилось свободное время и дабы не тратить его попусту, решил начать осваивать новый для меня веб-фреймворк java - Ext GWT.
Обычно я работаю в IDE Netbeans, но давно поглядывал в сторону Eclipse'a.

И так начнем по порядку:

1. Для того чтобы создать простенький проект в Eclipse с использованием Ext GWT, необходимо установить плагины для работы с GWT. Какие именно и как это сделать, смотрим здесь.
В статье выберите ссылку на детальное описание добавления плагинов (с картинками :)), в зависимости от версии вашего Eclipse'a

2. Добавим Ext GWT в Eclipse. Скачиваем последнюю версию Ext GWT (другое название - GXT). Распаковываем в любую папку на ваше усмотрение.
Запускаем Eclipse переходим в меню Window -> Preferences. В открывшемся окне в списке слева выбираем Java -> Build Path -> User Libraries.
Жмем кнопку New, пишем название, логично написать GXT, жмем ок.
Теперь добавим в нашу библиотеку необходимые jar-файлы. Жмем Add jaRs...
Переходим в распакованную папку Ext GWT и выбираем там jar с именем "gxt-2.2.5-gwt22.jar"























3. Создадим новый проект. File -> New -> Web Application Project.
введем его имя, например, Nix. Укажем имя пакета "главного" пакета. Проверим Google SDK, тот ли выбран по-умолчанию, который нам нужен. Уберем галочку с Use Google App Engine, ведь он нам не нужен, так как проект будет запускаться в Tomcat.
Жмем Finish. Проект создан.























4. Добавим в проект нашу библиотеку GXT. Для этого щелкаем правой кнопкой по корневой папке проекта и выбираем самый нижний пункт Properties. В открывшемся окне выбираем в списке слева Java Build Path.
Справа выбираем вкладку Librires и жмем Add Library, выбираем пункт User Library, жмем Next и ставим галочку напротив нашей GXT. Finish. Получаем такую картину:
















5. Из распакованой папки GXT скопируем папку "resources" и положим ее в папку проекта war. Есть сомнения, на счет того, что название war есть стандартное (вроде как я где-то это прописал, но уже не помню). Ориентируемся на папку в которой лежит папку WEB-INF, рядом с ней и кладем "resources". Вот изображение структуры проекта:























6. Добавим пару обязательных строк в несколько файлов.

а. Автоматически созданный файл в главном пакете Nix.gwt.xml
В него добавим строку
<inherits name="com.extjs.gxt.ui.GXT" />
сразу после
<!-- Other module inherits -->

б. В файле Nix.html добавим пару строк:
<link rel='stylesheet' type='text/css' href='resources/css/gxt-all.css' />
и
<script language='javascript' src='resources/flash/swfobject.js'></script>


7. Откроем файл Nix.java, его можно найти в пакете com.nix.main.client
Отредактируем его оставив лишь:

package com.nix.main.client;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.google.gwt.core.client.EntryPoint;
/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Nix implements EntryPoint {
@Override public void onModuleLoad() {
   MessageBox.info("Message", "Hello World!!", null);
 } 
}

8. Откомпилируем проект щелкнув по нему правой кнопкой мыши и выбрав в меню Google -> GWT Compile. Насколько я понял это нужно сделать лишь один раз, для того, чтобы в папку war упали необходимые файлы GWT. В дальнейшем, при редактировании файлов,  Eclipse автоматически обновляет папку war.

9. Берем папку war и копируем ее в папку webapps Tomcat'a. переименуем ее в nix.
Теперь наше приложение открывается в любом браузере по адресу http://localhost:8080/nix/
Конечно же все зависит от настроек вашего Tomcat.
















П.С. Файлы из пакета com.nix.main.client кроме Nix.java можно удалить. Надо заметить, что информация о них автоматически удалится из WEB-INF/web.xml , что есть хорошо, ибо не нужно делать это вручную.

П.П.С В дальнейшем очень желательно написать скрипт сборки для Ant и собирать проект сразу же в папку веб-сервера или контейнера сервлетов. Хотя на первом этапе и при небольшом проекте можно просто копировать файлы каким-нибудь шеллом, наподобие far или mc.

понедельник, 11 июля 2011 г.

Vaadin separator (Разделитель)

Для того чтобы визуально отдалить(отделить) один компонент от другого в одном лайауте в Vaadin ранее я пользовался таким способом: добавлял между элементами, которые нужно разделить компонент Label cо значением 255-го символа (в Windows чтобы его получить, как и другие символы - нужно зажать Alt и набрать число 255), почти тот же пробел, но не совсем :) .
получается что-то типа этого:

VerticalLayout mainVL = new VerticalLayout();
mainVL.addComponent(myTable1);
mainVL.addComponent(new Label(" "));
mainVL.addComponent(myTable2);

Сегодня случайно наткнулся, что можно не извращаться с 255-м символом а использовать следующую конструкцию:

addComponent(new Label("<hr />",Label.CONTENT_XHTML));

Сегодня попробую :)

пятница, 6 мая 2011 г.

Vaadin, Set Table Row Background Color / Раскрашиваем таблицу в Vaadin

И так - задача:
Раскрасить строки в таблице, чтобы получить примерно вот такой результат:

Тривиальная задача, казалось бы, но решения в интернете быстро найти не удалось. Поэтому выкладываю сюда разжеванное решение.



Решение:
Все делается через стили (файл styles.css).Найтифайлик со стилями можно в папке "VAADIN\themes\reindeer". Если Vaadin используется в виде jar'ника, то меняем файл styles.css по указанному пути прямо в архиве.
Выкладываю то, что я дописал в конец styles.css (оставил только 3 цвета которые использовал: lightgreen, lightorange и lightblue иначе получится очень длинный пост):
/* Basic style for all cells. */
.colored-table .v-table-cell-content {
    white-space: nowrap;
    overflow: hidden;
    padding: 0 6px;
    border-right: 1px solid #aaa;
}
.colored-table .v-table-cell-content-lightgreen {
    background: #C1FFAC;
    color:      black;
    border-bottom: 1px solid #AAAAAA;
}
.colored-table .v-table-cell-content-lightorange{
    background: #F9B34A;
    color:      black;
    border-bottom: 1px solid #AAAAAA;
}
.colored-table .v-table-cell-content-lightblue {
    background: #8CE0EC;
    color:      black;
    border-bottom: 1px solid #AAAAAA;
}

/* Basic style for all selected cells . */
.colored-table .v-selected .v-table-cell-content {
    border-right-color: #466c90;
}

.colored-table .v-selected .v-table-cell-content-lightgreen,
.colored-table .black .v-selected .v-table-cell-content-lightgreen{
    background: #4d749f url(common/img/sel-bg.png) repeat-x;
    color: #fff;
    text-shadow: #3b5a7a 0 1px 0;
}
.colored-table .v-selected .v-table-cell-content-lightorange,
.colored-table .black .v-selected .v-table-cell-content-lightorange{
    background: #4d749f url(common/img/sel-bg.png) repeat-x;
    color: #fff;
    text-shadow: #3b5a7a 0 1px 0;
}
.colored-table .v-selected .v-table-cell-content-lightblue,
.colored-table .black .v-selected .v-table-cell-content-lightblue{
    background: #4d749f url(common/img/sel-bg.png) repeat-x;
    color: #fff;
    text-shadow: #3b5a7a 0 1px 0;
}

В java же добавляем стиль к таблице:
requestsTable.addStyleName("colored-table");
И устанавливаем свойства для ячеек, точнее сказать для строк:
requestsTable.setCellStyleGenerator(new Table.CellStyleGenerator() {

            @Override
            public String getStyle(Object itemId, Object propertyId) {
                Requests r = (Requests) itemId;
                /*lightgreen, lightorange, lightblue, yellow, green, pink, lightgray, darkgray, red*/
                if (r.getStatus().getId() == 1) {
                    return "lightgreen";
                }
                if (r.getStatus().getId() == 2) {
                    return "lightorange";
                }
                if (r.getStatus().getId() == 3) {
                    return "lightblue";
                }
                return null;
            }
        });
Вот и все,теперь делаем редеплой проекта и смотрим раскрашенные по вашим условиям в CellStyleGenerator'e строки.

четверг, 14 апреля 2011 г.

Netbeans, добавление кнопки Deploy на панель быстрого запуска (Adding a Deploy button to the toolbar)

Жаль, что такая частая операция, хотя возможно лишь для меня, как Deploy не вынесена по-умолчанию на панель быстрого запуска в Netbeans. Приходится прокручивать в навигаторе проекта все дерево, если оно конечно не свернуто, чтобы дойти до корневой "папки" и щелкнув правой кнопкой мыши выбрать в появившемся меню Deploy.
Мне это надоело, нарыл метод позволяющий добавить кнопку деплой туда же где расположена кнопка Run, Debug и прочие нужные.
И так что делаем. Находим в окне Files файл build.xml. Если кто не в курсе, этот файл содержит таргеты для сборщика, который используется в Netbeans по-умолчанию - Ant'а.
Выделяем build.xml видим в другом окне - navigator список таргетов. Ищем в списке run-deploy.




















Далее щелкаем правой кнопкой мыши по run-deploy и выбираем Create Shortcut. Ставим галочку Add a toolbar button. Жмем Next, выбираем в списке &Run. То есть ту панель куда мы кнопку хотим добавить. Пишем название и жмем Finish.














Результат:
 

вторник, 12 апреля 2011 г.

Vaadin word-wrap in Table cell (Перенос слов в ячейке таблицы)

Для того, чтобы изменить поведение текста в таблице фреймворка Vaadin достаточно изменять параметры в файлах css.
В частности мне понадобилось, чтобы в ячейках таблицы происходил перенос по словам - всем известный word-wrap.
В общем меняем в файле  класс styles.css
.v-table-cell-wrapper {
    /* Do not specify any margins, paddings or borders here */
    white-space: normal;
    overflow: hidden;
}
Напомню, что тема по-умолчанию называется "reindeer", то есть именно в ней нужно менять styles.css

В результате получим что-то подобное:

понедельник, 11 апреля 2011 г.

Firefox 4 на Ubuntu 10.04

нашел тут. Всего дно действие в терминале:

sudo add-apt-repository ppa:mozillateam/firefox-stable; sudo apt-get update; sudo apt-get install firefox


От себя добавлю как русифицировать:
Скачиваем архив отсюда http://www.mozilla.com/ru/firefox/  и заменяем все файлы в дирректории /usr/lib/firefox-4.0/  файлами из архива.
кроме файла firefox.sh
хотя вроде в архиве его и нет, но мало ли что измениться.


Способ грубый, но работает )) 

п.с. прочитал где-то на форуме убунты.

Установка PostgreSQL 8.4 на Ubuntu 10.04

Давненько не ставил PostgreSQL на Ubuntu, сразу же нашел статейку, благодаря ей все быстро вспомнил и установил.
Хоть и писывается установка на Ubuntu 9.04/9.10 инструкции от 9.10 с легкостью подошли и к 10.04-2 LTS

четверг, 7 апреля 2011 г.

Удобный плагин для Netbeans "Copy and paste history"

Плагин позволяет по комбинации клавишь ALT+V  получить список недавно побывавших в буфере обмена значений причем даже довольно-таки больших кусков кода.
Доступен через меню Netbeans'a Tool->Plugins-> вкладка Available Plugins в списке в категории Editing. Так и называется "Copy and Paste History".
выглядит в работе примерно так:












Последнее вставленное или последнее скопированное в буфер, поднимает верх списка.
Очистить его как я понял не получится, но можно настроить кол-во сохраняемых значений, то есть длину выпадающего списка и размер шрифта этого же списка.
Настройки доступны через меню Tool->Options-> Miscellaneous - вкладка Copy and Paste History
Для Netbeans 7, который пока что не зарелизился, можно скачать версию тут, ну или поискать его в плагинах в самом Netbeans.

добавлено 17.07.2014: Ссылка сверху рухнула(убрал), сейчас актуален этот адрес

Установка Apache Ant (Windows)

Описание того, как установить и запустить Ant под Windows (в моем случай Win 7).


Скачиваем с http://ant.apache.org/  последнюю версию Ant.
Прямой путь к последней на данный момент http://www.sai.msu.su/apache//ant/binaries/apache-ant-1.8.2-bin.zip
Распаковываем куда угодно, лично я распаковал прямо в корень на диск С.
Получилось "C:\ant"  в которой присутствует папка \bin

Собственно все, с Ant можно работать, но для того, чтобы вызывать его из любого каталога через командную строку, нужно прописать "переменные среды".
Заходим в "панель управления" -> "Система", слева щелкаем "Дополнительные параметры системы" и жамкаем кнопку переменные среды.
Переменные можно прописать как в переменные среды пользователя, так и в системные переменные. Чтобы не перезагружаться, я лично прописываю в переменные пользователя.


и так создадим переменную ANT_HOME  и присвоим ей значение "С:\ant\bin"


Создадим еще одну переменную PATH со значением %ANT_HOME%;  Надо сказать, что она просто содержит в себе то же значение что и ANT_HOME, но чтобы не менять в двух местах значения, сделаем ее как ссылку




Открываем  командную строку CTRL+R  пишем в поле cmd жмем Enter
открылась командная строка, пишем
ant
и
ant -version
если получили то, что видите на картинке ниже, значит Ant установлен правильно и работает.

















Обо всем этоми многом другом читайте на http://ant.apache.org/manual/index.html