четверг, 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

пятница, 1 апреля 2011 г.

Разница между двумя датами Java

Понадобилось мне вычислять кол-во дней между двумя датами, в моем случае в днях.
Наткнулся на интересный класс вот здесь, вычисляет разницу в днях, неделях, месяцах и годах.
Выкладываю код здесь, на случай если ссылка станет нерабочей.


import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.Calendar;
import java.util.TimeZone;

public class Diff
{
public static void printDiff(String sdate1, String sdate2, String fmt, TimeZone tz)
{
SimpleDateFormat df = new SimpleDateFormat(fmt);

Date date1 = null;
Date date2 = null;

try
{
date1 = df.parse(sdate1);
date2 = df.parse(sdate2);
}
catch (ParseException pe)
{
pe.printStackTrace();
}

Calendar cal1 = null;
Calendar cal2 = null;

if (tz == null)
{
cal1=Calendar.getInstance();
cal2=Calendar.getInstance();
}
else
{
cal1=Calendar.getInstance(tz);
cal2=Calendar.getInstance(tz);
}


// different date might have different offset
cal1.setTime(date1);
long ldate1 = date1.getTime() + cal1.get(Calendar.ZONE_OFFSET) + cal1.get(Calendar.DST_OFFSET);

cal2.setTime(date2);
long ldate2 = date2.getTime() + cal2.get(Calendar.ZONE_OFFSET) + cal2.get(Calendar.DST_OFFSET);

// Use integer calculation, truncate the decimals
int hr1 = (int)(ldate1/3600000); //60*60*1000
int hr2 = (int)(ldate2/3600000);

int days1 = (int)hr1/24;
int days2 = (int)hr2/24;


int dateDiff = days2 - days1;
int weekOffset = (cal2.get(Calendar.DAY_OF_WEEK) - cal1.get(Calendar.DAY_OF_WEEK))<0 ? 1 : 0;
int weekDiff = dateDiff/7 + weekOffset;
int yearDiff = cal2.get(Calendar.YEAR) - cal1.get(Calendar.YEAR);
int monthDiff = yearDiff * 12 + cal2.get(Calendar.MONTH) - cal1.get(Calendar.MONTH);


System.out.println();
System.out.println("DateTime 1: " + sdate1);
System.out.println("DateTime 2: " + sdate2);

System.out.println("Date difference : " + dateDiff);
System.out.println("Week difference : " + weekDiff);
System.out.println("Month difference: " + monthDiff);
System.out.println("Year difference : " + yearDiff);
}


public static void main(String[] args)
{
String fmt = null;
String sdate1 = null;
String sdate2 = null;

fmt = "MM-dd-yyyy HH:mm:ss";
sdate1 = "12-31-2002 23:59:59";
sdate2 = "01-01-2003 00:00:01";

// Result is independent of format
// null will print in local timezone
// Print out 1 day, i month, 1 year difference
System.out.println("In your local time:");
printDiff(sdate1, sdate2, fmt, null);

// Beijing timezone, if you are not in +8 timezone, the resuls are all 0's
System.out.println("In Beijing time:");
printDiff(sdate1, sdate2, fmt, TimeZone.getTimeZone("GMT+08:00"));

// for testing the weekDiff
fmt = "MM-dd-yyyy HH:mm:ss";
sdate1 = "12-31-2002 23:59:59";
sdate2 = "01-06-2003 00:00:01";
System.out.println("In your local time:");
printDiff(sdate1, sdate2, fmt, null);

fmt = "MM-dd-yyyy HH:mm:ss";
sdate1 = "01-04-2003 23:59:59";
sdate2 = "01-05-2003 00:00:01";
System.out.println("In your local time:");
printDiff(sdate1, sdate2, fmt, null);

// something interesting here
fmt = "MM-dd-yyyy HH:mm:ss";
sdate1 = "12-31-1996 23:59:59";
sdate2 = "01-01-1997 00:00:01";
System.out.println("In your local time:");
printDiff(sdate1, sdate2, fmt, null);
}
}