Архив рубрики: Публикации

Запуск NettyJava на android эмуляторе

Сегодня 09.05.2012.
Сегодня произошла большая радость. Мне удалось откомпилировать и запустить мой тестовый консольный клиент, написанный на Netty, на android-эмуляторе!

Суть решения:
1. Создать в проекте папку «libs» и положить в неё netty.jar (ADT автоматически подгружает папку с таким именем)
2. Добавить программе разрешение на выход в интернет. В файле AndroidManifest.xml добавить запись

Просто рассказ:
Вчера я довёл до некоторого стабильного состояния классы Client и Server, основанные на NettyJava.
А сегодня утром написал короткое консольное приложение, которое может запускаться как сервер и клиент и цепляется к порту моего компьютера.
После отладки работы клиента и сервера под управлением JVM в Windows, я приступил к созданию тестового консольного приложения для Android.
Я думал, что меня встретят трудности, когда я попытаюсь использовать Client класс в android-приложении.

Так и произошло. Но на мою радость, я нашёл решение в google за один вечер.

Суть проблемы была в том, что хотя Eclipse и добавил JAR файл в текущий android-проект, но при запуске проекта на эмуляторе — библиотеку netty.jar не попадала на андроид.

Ответ оказался простым, во что я и верил, ADT плагин Eclipse не подгружал мой netty.jar.
Оказалось, что ADT подгружает внешние *.jar библиотеки только из папки «libs».
Я создал эту папку в своём проеке, поместил туда netty.jar и…
Мой клиент написанный на Netty заработал на Android эмуляторе!

Ниже пример клиент-серверной программы. (В данном состоянии пример не будет запускаться, т.к. здесь не хватает реализации классов Client и Server).

/**
* Пример клиент-серверной программы, написанной на NettyJava.

* Запуск сервера:

*
java -jar server.jar

* Запуск клиента: *

java -jar server.jar client

* На стороне клиента пишем сообщения и они отправляются на сервер в * пакете {@link Packet1Ping}. Сервер выводит пришедшие пакеты в стандартный поток * вывода. * * Клиент и сервер заточены для запуска с одного компьютера. * Сервер и клиент работают с localhost:8080 * @author Galiego710 * */ public class Main { public static final void out(String str) { System.out.println(str); } /** * @param args */ public static void main(String[] args) throws IOException { out("Program is started."); out("Print 'quit' or 'exit' to exit."); // запустить как клиент или сервер if ( (args.length > 0) && (args[0].equals("client"))) { ClientProgram(); } else { ServerProgram(); } out("Program is ended."); System.exit(0); } /** * Серверная часть * @throws IOException */ public static void ServerProgram() throws IOException { out("Mode: Server"); final Server server = new Server("MainServer", new InetSocketAddress("localhost",8080)); // Устанвить хук на завершение программы Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { // отключить сервер server.stop(); out("ShutdownHook done."); } }); // Установить слушателя серверу server.setListener(new ConnectorListener() { @Override public void connectionOpen(ConnectorHandler handler) { out("+++ SERVER: Client connected."); } @Override public void packetReceived(ConnectorHandler handler, Packet packet) { out("+++ SERVER: received " + packet); } }); // Запуск сервера if(!server.start()) { System.err.println("Server can't started!"); } else { System.out.println("Server is started"); } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // Обрабатывать ввод с клавиатуры String str; do { System.out.print("Enter: "); str = br.readLine(); out("str=" + str); } while (!(str.equals("quit") || str.equals("exit"))); } /** * Клиентская часть * @throws IOException */ public static void ClientProgram() throws IOException { out("Mode: Client"); final Client client = new Client("user","pass", new InetSocketAddress("localhost",8080)); // Установить хук на закрытие программы Runtime.getRuntime().addShutdownHook(new Thread() { public void run() {
// потушить сервер client.stop(); out("ShutdownHook done."); } }); // Запустить клиента if(!client.start()) { System.err.println("Client can't started!"); } else { System.out.println("Client is started"); } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // Обрабатывать ввода с клавиатуры String str; do { System.out.print("Enter: "); str = br.readLine(); out("str=" + str); // отправить пакет client.sendPacket(new Packet1Ping(str)); } while (!(str.equals("quit") || str.equals("exit"))); } }
Смотрите также: NettyJava — асинхронный событийно ориентированный сетевой фреймворк

Автор: galiego710

Индикатор языка клавиатуры в виде флага (Ubuntu)

По умолчанию, в Gnome3 в качестве индикаторов раскладки языка надписи en и ru. Как и в старом гноме, в третьей версии тоже можно сменить эти надписи на любые флаги или значки. Читать

Как выделить другим цветом комментарии автора блога

Доброго дня уважаемые посетители! В этой статье я хочу показать Вам, как подсветить и выделить комментарии админа, а также отдельных авторов. Когда все комментарии одним цветом, они сливаются, а когда комментариев много, то ориентироваться становится сложно.  Также, когда комментарии админа не выделяются, то кто-то может под ником админа оставить комментарий. Правда, если на сайте стоит функция публикации комментарив после проверки, такой комментарий не пройдет.

Плагин Simple Author Highlighter

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

Речь пойдет о плагине Simple Author Highlighter для выделения комментариев автора. На этом блоге я использую именно его. Результат его работы Вы можете увидеть на любой странице, где есть мои комментарии.

Плагин легок в установке и настройке.

Скачать плагин Вы можете с сайта wordpress.org. Далее установите и активируйте его. После этого можно приступать к настройкам.

Панель настроек плагина находится в админке в разделе «Параметры» — пункт Simple Author Highlighter. Перейдя на страницу настроек плагина, Вы увидите 5 полей для заполнения. Для того, чтобы выделялись комментарии автора поста, впишите в первое поле цвет фона для комментария, в во второе поле — цвет текста, выделяемого комментария.

По желанию можно настроить выделение комментариев определенных пользователей. Для этого нужно заполнить поля в пункте Global User Highlighter, добавив туда логины пользователей.

Как выделить комментарии автора записи в WordPress

Как Вы видите настроить выделение комментариев на блоге WordPress легко.

Как выделить комментарии админа без плагина

Плагин Simple Author Highlighter добавляет стили оформления комментариев, которые оставляет админ и зарегистрированные  пользователи. Это натолкнуло меня на мысль, а почему бы не добавить стили, которые генерирует этот плагин в файл style.css.

Увидеть код стилей, который генерирует плагин Simple Author Highlighter можно, если нажать CTR+U и открыть исходный код страницы. А потом его скопировать в файл style.css. И все. Как говорится, гениальное просто.

Последовательность действий, чтобы подсветить комментарии администратора сайта:

  1. Устанавливаем плагин Simple Author Highlighter и активируем его.
  2. Просматриваем исходный код записи и находим:

    Как выделить авторские комментарии на WordPress?
  3. Как видите начало и конец кода выделен закоментированными строками, которые подсвечены зеленым. Нам нужно скопировать те строки, которые выделены оранжевым на картинке выше.
  4. Копируем эти строки и вставляем в файл style.css. Добавляйте эти строки кода в то место, где начинаются стили комментариев. Сохраняем изменения.
  5. Отключаем плагин. И проверяем, как работает выделение комментариев без плагина.

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

Стиль bypostauthor задает оформление комментариев админа, чтобы задать оформление зарегистрированных пользователей используйте другой код byuser.



2012-04-23T18:53:33
Блог на WordPress

FreeRDP примеры подключения

решил сделать для себя пометку. Может кому ещё пригодится. Читать

FreeRDP параметры подключения

 

Я уже рассказывал про установку FreeRDP на Ubuntu. Теперь пришло время описать параметры подключения. Читать

Java от Sun (Oracle) в Ubuntu 10.04.3 Lucid Lynx

Думаю много кто, ещё столкнется с проблемой при установки JAVA от SUN, поэтому и решил описать установку. Перепробовал много вариантов, ломал голову не один час и никак не мог понять, почему при добавлении репозитория от canonical.com результата нет. Читать