понедельник, 30 ноября 2009 г.

Linux Debian (Ubuntu) - прописываем CLASSPATH для java

Как известно, CLASSPATH - это такая переменная, в которой содержатся пути, по которым компилятор и интерпретатор JAVA пытаются найти файлы и *.class для их обработки. Рассмотрим все это на примере.
Будем хранить все наши java проекты в директории /home/username/workspace. В моем случае username заменяется на alexwinner и эта директория выглядит так: /home/alexwinner/workspace. Конечно, можно было бы перемещаться в эту директорию командой cd, создавать там файлик с кодом java, например, /home/alexwinner/workspace/blabla.java, далее выполнять
javac blabla.java
затем
java blabla
и получать результат. Но что делать в случае, когда наш класс принадлежит какому-либо пакету? Например, у нас есть 2 класса в двух файлах. Первый файл - test.java:
package for_testing;
public class test{
     public static void main(String s[]){
        aga A = new aga();
        System.out.println(A.aga);
        };
};
Второй файл - aga.java, в нем будет храниться class aga:
package for_testing;
class aga{
     String aga="aga";
}
Что же мы делаем? Мы создаем папку /home/username/workspace/for_testing, причем имя этой папки должно совпадать с именем пакета, которое задается в строчке  "package for_testing;". Далее добавляем путь к папке workspace в переменную CLASSPATH:
export CLASSPATH=$CLASSPATH:/home/username/workspace/
После этого перемещаемся в папку /home/username/workspace/for_testing и компилируем наш пакет:
javac test.java
После этого остается только запустить его. Запускать можно абсолютно из любой папки, так как путь к ней содержится в глобальной переменной CLASSPATH:
java for_testing.test
и получаем результат:
aga
Стоит заметить, что путь к этой директории будет содержаться в CLASSPATH только до конца текущего сеанса. Чтобы добавить его туда перманентно, надо выполнить следующее:
echo "export CLASSPATH=$CLASSPATH:/home/username/workspace/" >>/home/username/.bashrc

пятница, 27 ноября 2009 г.

Отключение картинок в Google Chrome - How To?

Если у вас медленный интернет или не безлимитный трафик, то, возможно, вы захотите лазать по интернету с отключенной загрузкой изображений. Я тоже столкнулся с этой проблемой и первым делом полез в настройки Google Chrome. Но, к своему удивлению, не нашёл нигде даже упоминания опции "Не загружать картинки". Как же так? Неужели в таком хорошем браузере нет такой примитивной возможности?? Отвечу вам - она есть! Для того, чтобы изображения в Chrome не открывались и не загружились, забивая ваш канал, надо в строке для запуска Chrome добавить такую строчку: "--disable-images". 
На этом видео показывается, как это сделать:





Кроме того, возможно отключить javascript, java и плагины:

Отключить выполнение JavaScript: --disable-javascript
Отключить Java: --disable-java
Отключить плагины: --disable-plugins
Отключить кэширование: --disk-cache-size=1 --media-cache-size=1

четверг, 26 ноября 2009 г.

Debian Linux - Evince - просмотровщик djvu

В этом посте постараюсь написать про то, чем просматривать книги в формате djvu под операционной системой Linux (для Debian и (K)Ubuntu), то есть про djvu-reader.
Для этой цели мной был выбран Evince. Это приложение позволяет показывать и печатать файлы PostScript (PS), Encapsulated PostScript (EPS), DJVU, DVI и Portable Document Format (PDF). Из полезных фишек стоит отметить возможность поиска, копировния в буфер обмена, переход по гиперссылкам и создание закладок. Конечно, это доступно только в тех случаях, когда формат просматриваемого документа это поддерживает.
Для установки достаточно набрать
sudo aptitude install evince
И все, можно пользоваться и просматривать свои любимые книжки в djvu :)
P.s. А также надо отметить, что еще я выбрал его потому, что при его создании использовалась библиотека GTK, то есть в моем Gnome мне не придется качать и устанавливать дополнительные библиотеки типа qt.

среда, 25 ноября 2009 г.

Как открыть архив rar в Debian (Ubuntu) Linux

В Windows - WinRar &  WinZip & 7z. А что в Linux?
Столкнулся с необходимостью распаковать архив rar, находясь в Linux Debian.
Для этого решено было использовать пакет p7zip-full. Сам по себе он предоставляет возможность распаковывать архивы ZIP, CAB, ARJ, GZIP, BZIP2, TAR, CPIO, RPM and DEB, кроме того, он умеет сжимать в формате 7z на 30-50% лучше, чем в старом формате ZIP.

вторник, 17 ноября 2009 г.

Что такое маска подсети (Network mask) и для чего она нужна.

Под маской подсети (или маской подсети - это равнозначно) понимается битовая маска, позволяющая определить шлюз подсети,  к которой принадлежит опеределенный IP-адрес. Чтобы легче понять все это, попробуем рассмотреть следующий пример:
У нас есть роутер, к которому снаружи приходит определенный пакет на адрес 192.168.1.199. Роутер хочет понять, в какую из внутренних подсетей надо его отправить. Для этого он производит побитовую коньюнкцию данного ему IP-адреса и маски подсети из таблицы маршрутизации (например, 255.255.255.192). Представим их в двоичном виде:
11000000.10101000.00000001.11000111 - IP адрес места назначения
11111111.11111111.11111111.11000000 - Маска подсети
Производим коньюнкцию и получаем:
11000000.10101000.00000001.00000000 - Адрес подсети. Переводим обратно к привычному десятеричному виду и получаем 192.168.1.192. Далее, роутер проверяет свою таблицу маршрутизации и находит адрес шлюза, на который надо отправить данный пакет , исходя из его соответствия адресу сети.
Должно так же заметить, что маску возможно записать двумя способами:
1) В десятичной форме - например, 255.255.255.0
2) В двоичной  - 11111111.11111111.11111111.0000000. Но такое утверждение не совсем правильно, так как обычно используется запись вида 192.168.1.0/24, где 192.168.1.0 - это адрес сети, а 24 - количество единиц слева направо в двоичном представлении маски.

четверг, 12 ноября 2009 г.

JavaScript - GetElementById - что это такое, и как это кушать?

GetElementById - это метод объекта document  в языке JavaScript. Он предназначен для того, чтобы возвращать ссылку на какой-то элемент (element) страницы по его id.
Например, мы хотим, чтобы пользователю в определенном месте страницы выводилось время его захода на нее. Будем выводить это время в определенном теге <div> с id 'now_time':
<div id='now_time'></div>
Теперь, чтобы обратиться к этому элементу, мы должны использовать метод GetElementById вот так:
<script type="text/javascript">
//Присваиваем переменной time_element ссылку на наш div:
var time_element = document.getElementById('now_time')
//Получаем в переменную time Значение времени

  var time = new Date()
  var hours = time.getHours()
  var minutes = time.getMinutes()
  var seconds = time.getSeconds()

  if (seconds < 10) seconds = "0" + seconds
  if (minutes < 10) minutes = "0" + minutes

  var time = hours + ":" + minutes + ":" + second

  //Выводим нашу переменную в содержимом нашего тега div,
  //используя метод InnerHTML
  time_element.innerHTML = time
</script>
Вот и все, ничего сложного:)
Разумеется, метод innerHTML  я привел только для примера. Вообще говоря, с этим элементом теперь можно проделывать все, что угодно. Подробнее о элементах, их свойствах и методах можно почитать вот здесь.

понедельник, 9 ноября 2009 г.

Как создавать и использовать функции (function) в Javascript

Приведу пример создания Javascript функции, которая по щелчку на определенной области будет изменять эту самую область.
Итак, выглядит все это дело следующим образом:
1) Реализация функции

<script type="text/javascript">
function my_function(){
var elementik=document.getElementById('output')
elementik.innerHTML='aaaa';
};
</script>
2) Кусок кода HTML, тот самый элемент, который  у нас будет изменяться:

<div id="output" onclick="my_function()">
Here we will see answer..
</div>
Собственно, это все.
Теперь разберем по порядку. 
1) Тегом <script></script> мы объявляем область, в которой содержится код javascript. function my_function(){} - Этим мы говорим о том, что объявляем функцию с именем my_function, запускающуюся без параметров (об этом свидетельствуют пустые круглые скобки. В фигурных же скобках заключены операторы функции. Первой строчкой мы получаем элемент с id = 'output', второй - заменяем содержимое этого элемента на 'aaaa'.
2) Мы описываем блок с id='output' и говорим, что при клике мышкой по нему должна выполняться функция my_function. 
Подробнее все возможности функций javascript, DOMdocument и HTML постараюсь описать в следующих постах.


Hello World на C++ под Linux Debian или Ubuntu

Кратенькая инструкция по созданию приложения "Hello World" в Linux Debian.
Передо мной вдруг встал вопрос, как программировать на С++ в консоли линукса. Как это сделать в Eclipse - понятно, а вот как в консоли, я не знал.
Но, разобравшись, я понял, что ничего сложного в этом нет.
Во первых, надо установить компилятор - программа, которая из кода C++ будет делать исполняемый файл.
Для этого в терминале/консоли пишем следующее:
1) Очень важно обновить репозиторий, а то у меня из-за этого компилятор не запускался и не установился толком:
sudo aptitude update
2) Устанавливаем компилятор:
sudo aptitude install g++
3) Пишем нашу программу, скажем в vim'е:
vim test.cpp
и вводим следующее:

#include <iostream> 
int main()
{
    std::cout << "Hello, world!" << std::endl;
}
и сохраняем.
4) Компилируем:

g++ -o exetestcpp  -Wall test.cpp
где exetest.cpp - имя исполняемого файла, test.cpp - имя файла, который мы компилируем.
5) Запускаем:
./testcpp.exe
Получаем:
Hello, world!

Вот и все. Как видите, и впрямь ничего сложного.

пятница, 6 ноября 2009 г.

Как удалить ubuntu linux.

В этом посте хочу рассказать про то, как правильно и грамотно удалить Ubuntu с компьютера.  Надеюсь, Вы удаляете Убунту не потому, что решили вообще отказаться от линукса, а потому, что вас заинтересовал какой-то другой дистрибутив, например  - Gentoo Linux.
Итак, приступим. Рассмотрим два варианта - Ubuntu работоспособна и не работоспособна.
1) Удаление работоспособной Убунту. Здесь тоже 2 варианта - а) Кроме Ubuntu  у вас установлена какая-то другая операционная система, например Windows. б) Ubuntu единственная операционная система на вашем компьютере
а) Для начала нам надо загрузиться  в нее. После чего выполняем команду
sudo gedit /boot/grub/grub.cfg
и удаляем там строки, относящиеся к Ubuntu
Перезагружаемся и видим - Ubuntu пропала из списка доступных операционных систем. Считайте, вы удалили ее. Чтобы использовать место, которое она занимала, вам надо отформатровать диск, на котором она была установлена, в файловую систему NTFS. После форматирования надо будет восстановить загрузчик Windows. Сделать это можно, например, так:
-- Запустить Windows Recovery Console (Например, так, как описано на сайте Microsoft
-- Выполнить команды fixmbr и fixboot c: .
б) Если же Ubuntu единственная система, вам достаточно установить, например, Windows на ваш компьютер.

среда, 4 ноября 2009 г.

Об установке программ для Ubuntu (а так же Kubuntu) и Debian Linux

Эта запись предназначена для тех, кто не знает, откуда скачать и как установить программы для Убунту и Дебиана. В линуксе все приложениясодержатся в пакетах. Чтобы установить пакет, вам не надо самим ничего качать с интернета или вообще делать что-либо. Для установки вам достаточно лишь запустить терминал, и в нем ввести команду
sudo aptitude install imya_packeta
Только imya_packeta необходимо заменить на название пакета, который вам нужен.
К примеру, чтобы установить OpenOffice, вам всего лишь надо набрать
sudo aptitude install openoffice
После того, как пакет установится, вы сможете пользоваться нужной вам программой.
Если вы не знаете, какой именно пакет нужен, но надо всего лишь немножко погуглить. А если есть какие-то идеи по тому, как он называется, то можно выполнить команду
sudo aptitude search idea
где idea - это то слово, которое, по вашему мнению, должно быть в имени пакета. В результате этой комманды будет выведен список пакетов, соответствующих вашей идеи и их примерное описание.
Удалить же программу можно, удалив пакет, в котором она содержится. Для этого надо в терминале набрать
sudo aptitude search packet_name
где packet_name - имя пакета, который вы хотите удалить.
Ну а если же Вы не хотите пользоваться терминалом, то для ваших целей есть Synaptic - красивый графический менеджер пакетов. Пользоваться им еще проще:)

Основные команды Bash (Linux Debian - Ubuntu)

Такая маленькая шпаргалочка по самым частоиспользуемым командам командной строки Bash :)

1. Команды, предназначенные для работы с файлами и директориями.


ls /path/ - вывести содержимое директории /path/. Например, ls /home/username/ выведет все файлы и директории, содержащиеся в папке /home/username/ . Просто ls выведет содержимое текущей директории. Так же очень часто используется ls -lh  - с такими параметрами эта команда выведет содержимое и укажет его размер в "человеческом виде" - human-readable, кроме размера так же будет указаны права доступа на файл, время его редактирования и пр.


cp /path1/file1 /path2/file2 - скопировать файл file1 из директории /path1/ в директорию /path2/ и назвать его там file2. Если не указывать file2, то он будет назван так же, если не указывать path2, то он скопируется в текущую директорию. Так же замечу, что очень использовать эту команду в виде cp /home/username/file{1,2} - она подействует точно так же, как "cp /home/username/file1 /home/username/file2". 


mv /path1/file1 /path2/file2 - переместить file1 из директории /path1/ в директорию /path2/ и назвать его там file2. При использовании аналогично команде cp.


du /path/- подсчитывает место в байтах, занятое директорией, действует рекурсивно, то есть выводит место, занятое каждой  из поддиректорий, их поддиректорий и т.д. Очень удобно использовать эту команду в виде du -sh /path/ - будет выведено только место в человеческом формате, занятое директорией /path/, без вывода поддиректорий. 


df  - выводит свободное место на всех дисках, с указанием, куда смонтированы диски. Используется чаще всего в виде df -h, тогда место выводится в человеческом виде.


2. Команды, предназначенные для чтения и редактирования текстовых файлов


cat /path/file- выводит содержимое файла /path/file на экран, после чего завершает свою работу, снова становится  доступен ввод команд.


less /path/file - просмотровщик файлов. Он запускается, отображает файл. Можно перемещаться по файлу вверх/вниз, осуществлять по нему поиск и многое, многое другое.


vim /path/file  - очень мощный, гибкий, многооконный редактор файлов. Сначала он отпугивает своей непривычностью, по сравнению, например, с блокнотом, но потом уже невозможно представить своей работы без него.


3. Прочее

ps - выводит информацию об процессах, запущенных из-под пользователя, активных на данный момент. Используется в виде ps -aux, тогда она выводит все процессы.


kill uid - послать процессу сигнал. При использовании без всяких опций посылает процессу с uid сигнал TERM. Так же часто используется kill -9 uid, тогда процессу посылается сигнал KILL, который никак не может быть заблокирован, и гарантированно процесс выключается.


echo "AAA" - выведет строку AAA на стандартный поток вывода (standart output).


grep "string" /path/file - поиск по файлам и не только. Ищет "string" в файле /path/file и выводит строку с ней на экран. В нем есть очень важные опции -i -o -с : -i - ищет строку без учета регистра, -o - выводит только "string", -с - выводит количество строк, содержащих "string". Кроме того, очень удобно использовать grep в комбинации с другими командами, например, ps aux | grep "process_name" покажет, запущен ли на данный момент процесс с именем process_name. Необходимо заметить, что в "string" могут быть регекспы.


sudo  command - запустить комманду command с правами супер-пользователя или другого пользователя. Чаще всего используется без всяких параметров, тогда осуществляется запуск с правами супер-пользователя, например, sudo less /home/another_user/secret_document.txt. Настройки, кто эту команду может использовать и как, лежат в файле /etc/sudoers


>>,> - эти команды перенаправляют поток вывода. Например, при команде echo "AAA" >> /home/username/bbb.txt в файл bbb.txt добавится строка AAA. Если же было бы >, а не >>, то тогда весь этот файл был бы заменен этой строкой. Еще пример - grep "aaa" /home/username/file1 >> /home/username/file2 - все строчки из file1, содержащие "aaa", будут добавлены в file2.



воскресенье, 1 ноября 2009 г.

Обновление Ubuntu c 9.04 (Jaunty Jackalope) до версии 9.10 (Karmic Koala)

Только что вышла новая Убунта, 9.10. Естественно, хочется обновить свою старую убунту до новой версии. Встает вопрос - как это сделать?
Все очень просто. Есть несколько способов:

1) Обновление через сеть (рекомендуемый и самый простой способ)
а. Проходим по следующему пути - система-администрирование-менеджер обновлений.
б. Нажимаем на кнопку "Проверить обновления".
в. Если предлагается установить какие-либо обновления, то устанавливаем их, затем еще раз нажимаем на проверить.
г. Появится сообщение о том, что доступен новый релиз Убунты.
(К сожалению, нет скриншота на русском)






















д. Нажимаем на кнопку Апгрейд.
е. Следуем появляющимся на экране инструкциям.




















2) Обновление по сети для Ubuntu Servers - серверов на базе Убунты.
а. Устанавливаем update-manager-core, если он еще не установлен:






sudo apt-get install update-manager-core

 б. Запускаем инструмент для обновления:






sudo do-release-upgrade

в. Следуем появляющимся на экране инструкциям.
3) Обновление с использованием диска CD / DVD
Этот метод следует использовать в том случае, если компьютер не подключен к интернету, или качество соединения не позволяет апгрейд через сеть.
а. Вставляем диск в дисковод.
б. На экране появится сообщение, уведомляющее о возможности обновиться:









в. Нажимаем на "запустить обновление" и следуем появляющимся на экране инструкциям.
г. Если это сообщение не появляется, то выполните следующую команду, нажав Alt+F2:






gksu "sh /cdrom/cdromupgrade"

Наслаждаемся Кармической Коалой)