4 ноября 2010 г.
Карл Фогель "Создание Свободного Програмного Обеспечения"
Карл Фогель книга "Создание Свободного Програмного Обеспечения" (русский перевод, неполный) http://producingoss.com/ru/index.html
97 вещей, которые должен знать каждый программист
Нашел переводы отличной статьи "97 вещей, которые должен знать каждый программист" ("97 Things Every Programmer Should Know").
16 октября 2010 г.
Разрыв соединения VPN в Ubuntu
Сталкнулся с такой проблемой: если в Ubuntu настраивать vpn соединение с провайдером (есть локальная сеть + выход в интернет по vpn) через "Connection manager", то после нескольких минут работы соединение разрывается. При чем это наблюдается только когда соединение используется (идет трафик), когда простаивает - держит.
Оказалось, что Connection manager делает не правильные настройки для моего провайдера. Решилось все путем добавления соединения vpn вручную.
Создал файл freedom в каталоге /etc/ppp/peers/ (предварительно настроив доступ к нему командой
Содержимое файла:
USERNAME - имя пользователя vpn (Ваш логин),
PASS - Ваш пароль.
Убеждаемся, что в файлах /etc/ppp/options, ~/.ppprc, /etc/ppp/options.ppp0 нет
незакомментированных параметров, которыми бы система могла затереть наши настройки. Если
есть - комментируем.
Поднимаем тестовое соединение VPN командой
pppd call freedom debug nodetach
Если есть необходимость запускать соединение от простого пользователя, добавьте в файл /etc/sudoers строку:
запускать и прерывать соединение командами
Все. готово, работает и соединение не рвется.
Оказалось, что Connection manager делает не правильные настройки для моего провайдера. Решилось все путем добавления соединения vpn вручную.
Создал файл freedom в каталоге /etc/ppp/peers/ (предварительно настроив доступ к нему командой
chmod 747 freedom).
Содержимое файла:
pty "pptp 192.168.149.1 --nolaunchpppd" name USERNAME user USERNAME password "PASS" defaultroute replacedefaultroute remotename PPTP +chap noauth ipparam freedom mtu 1300,где: 192.168.149.1 - адрес сервера vpn моего провайдера (замените на свой или укажите url),
USERNAME - имя пользователя vpn (Ваш логин),
PASS - Ваш пароль.
Убеждаемся, что в файлах /etc/ppp/options, ~/.ppprc, /etc/ppp/options.ppp0 нет
незакомментированных параметров, которыми бы система могла затереть наши настройки. Если
есть - комментируем.
Поднимаем тестовое соединение VPN командой
pppd call freedom debug nodetach
Если есть необходимость запускать соединение от простого пользователя, добавьте в файл /etc/sudoers строку:
username compname = NOPASSWD: /usr/bin/pon, /usr/bin/poffСоответственно, замените username и compname на имя вашего пользователя и его машины. Он сможет
запускать и прерывать соединение командами
sudo pon corbina sudo poff corbinaДелаем ярлык на рабочем столе с командой: sudo pon corbina
Все. готово, работает и соединение не рвется.
23 августа 2010 г.
27 июля 2010 г.
UML редактор NClass
Нашел UML редактор с открытым исходным кодом для C# - NClass
Cам редактор написан на C# и использует второй фреймворк.
Cам редактор написан на C# и использует второй фреймворк.
15 мая 2010 г.
Проблема при обновлении до Ubuntu 10.04 LTS
Обновился я на днях до новой версии Ubuntu, все бы ничего, но пропали заголовки окон и при нажатии кнопки "свернуть все окна" вылетало сообщение о недоступности менеджера окон. У меня стоял Compiz. Начал копать форумы что и как и хочу поделиться полученным опытом.
Заметил, что после команды
Потом нашел информацию, которая мне помогла, оказывается вот что нужно сделать:
Оказывается подобные проблемы бывают из-за профилей, которые были в предыдущей версии и при установке с "нуля" они не возникают.
У меня после проведенных команд обнулились настройки многих программ (но не всех, в основном браузеры и торрент клиент), это минус, зато все стало как должно быть. Compiz работает как прежде, заголовки окон не слетают.
Заметил, что после команды
compiz -- replaceзаголовки окон возвращаются, но все нормально до первой перезагрузки.
Потом нашел информацию, которая мне помогла, оказывается вот что нужно сделать:
gtk-window-decorator --replace compiz --replace sudo apt-get install emerald
Оказывается подобные проблемы бывают из-за профилей, которые были в предыдущей версии и при установке с "нуля" они не возникают.
У меня после проведенных команд обнулились настройки многих программ (но не всех, в основном браузеры и торрент клиент), это минус, зато все стало как должно быть. Compiz работает как прежде, заголовки окон не слетают.
10 апреля 2010 г.
Добавление Меню в Android программу
Переведено мною отсюда.
Меню опций.
Меню открывается нажатием кнопки на устройстве MENU. При открытии, меню содержит первые шесть пунктов. Если в меню более чем шесть элементов, то пять из них добавляются в меню опций, а затем те, которые не могут поместиться в меню Icon выявляются в расширенном меню, с помощью пункта меню "еще..". Расширенное меню будет автоматически добавлено, когда существуют более шести пунктов.
В меню опций Вы можете включить основные функции приложения и все необходимые элементы навигации. Вы также можете добавить подменю.
При создании меню, система Android будет вызывать метод onCreateOptionsMenu(). Вам необходимо переопределить этот метод в своем Activity и добавить в теле метода собственные пункты Меню. Вы можете заполнить меню с помощью с помощью ресурсов, которые были определены в XML файле, или вызвав метод add() для каждого добавляемого элемента. Этот метод добавляет элемент меню, и возвращает новый объект MenuItem для вас. Вы можете использовать возвращенный MenuItem, чтобы задать дополнительные параметры, как иконка, клавиши быстрого доступа и другие параметры для данного элемента.
Есть несколько вариантов вызова метода add(). Как правило, вы будете использовать один, который принимает Itemid аргумент. Это уникальное целое число, которое позволяет однозначно определить нажатый элемент меню.
Событие при выборе элемента меню опций можно отловить в методе onOptionsItemSelected(). Этот метод передает вам пункт меню, который был выбран. Вы можете определить пункт, по Itemid, с помощью getItemId (), которая возвращает целое число, которое было установлено для элемента в методе add(). Как только Вы определите нажатый пункт меню, Вы сможете описать реализацию действий в Вашей программе.
Вот пример такой процедуры, в которой мы создаем меню и обрабатываем выбор пункта меню:
Добавление иконки.
Для добавления иконки к пункту меню необходимо вызвать метод setIcon() :
Меню опций.
Меню открывается нажатием кнопки на устройстве MENU. При открытии, меню содержит первые шесть пунктов. Если в меню более чем шесть элементов, то пять из них добавляются в меню опций, а затем те, которые не могут поместиться в меню Icon выявляются в расширенном меню, с помощью пункта меню "еще..". Расширенное меню будет автоматически добавлено, когда существуют более шести пунктов.
В меню опций Вы можете включить основные функции приложения и все необходимые элементы навигации. Вы также можете добавить подменю.
При создании меню, система Android будет вызывать метод onCreateOptionsMenu(). Вам необходимо переопределить этот метод в своем Activity и добавить в теле метода собственные пункты Меню. Вы можете заполнить меню с помощью с помощью ресурсов, которые были определены в XML файле, или вызвав метод add() для каждого добавляемого элемента. Этот метод добавляет элемент меню, и возвращает новый объект MenuItem для вас. Вы можете использовать возвращенный MenuItem, чтобы задать дополнительные параметры, как иконка, клавиши быстрого доступа и другие параметры для данного элемента.
Есть несколько вариантов вызова метода add(). Как правило, вы будете использовать один, который принимает Itemid аргумент. Это уникальное целое число, которое позволяет однозначно определить нажатый элемент меню.
Событие при выборе элемента меню опций можно отловить в методе onOptionsItemSelected(). Этот метод передает вам пункт меню, который был выбран. Вы можете определить пункт, по Itemid, с помощью getItemId (), которая возвращает целое число, которое было установлено для элемента в методе add(). Как только Вы определите нажатый пункт меню, Вы сможете описать реализацию действий в Вашей программе.
Вот пример такой процедуры, в которой мы создаем меню и обрабатываем выбор пункта меню:
private static final int MENU_NEW_GAME = 0; private static final int MENU_QUIT = 1; /* Creates the menu items */ public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, MENU_NEW_GAME, 0, "New Game"); menu.add(0, MENU_QUIT, 0, "Quit"); return true; } /* Handles item selections */ public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case MENU_NEW_GAME: newGame(); return true; case MENU_QUIT: quit(); return true; } return false; }
Добавление иконки.
Для добавления иконки к пункту меню необходимо вызвать метод setIcon() :
menu.add(0, MENU_QUIT, 0, "Quit") .setIcon(R.drawable.menu_quit_icon);
4 апреля 2010 г.
Подписаться на:
Сообщения (Atom)