dap: (Default)

Kcmsystemd — модуль параметров системы КДЕ для натыкивания кое-каких опций systemd. Из интересного нашёл только настройки формирования логов. Установка в openSUSE (пакет kcm_systemd в KDE:Extra).

Скачать с докачкой и ограничением скорости: wget -c --limit-rate=300k http://www.net.com/internet.zip А ещё можно просто скормить ссылки с провайдерского ftp плееру, играет :) 

Появились пакет продукта симбиоза LXDE и Razor. Пока не умеет рулить раскладками клавиатуры, так что неинтересно, но всё же (Razor — первое DE моей текущей инсталляции, отcюда странные автоматические чистки при его удалении):

sudo zypper rm -u '*razor*qt*'

sudo zypper in pam-modules xscreensaver xscreensaver-data openbox

sudo zypper ar -k -n provider-LXDE-Qt 'ftp://ftp.tcm.by/software/linux/opensuse/repositories/devel:/cloverleaf:/lxqt/openSUSE_13.1/' p-LXQt

А вот тут меня постигло недоумение, потому что паттерн lxde-qt удалось установить только из Яста, теперь я уже знаю, что надо тянуть пакеты lxqt-about lxqt-appswitcher lxqt-common lxqt-config lxqt-config-randr lxqt-globalkeys lxqt-notificationd lxqt-openssh-askpass lxqt-panel lxqt-policykit lxqt-power lxqt-powermanagement lxqt-qtplugin lxqt-runner lxqt-session.

Список пакетов в зависимости от времени установки: rpm -qa --last | less

Установка локального пакета без zyppersudo rpm -ip *.rpm Отобразит все поломанные зависимости, а не только первую.

Визуализация истории git-репозитория: gource -c 4 --highlight-users path/.git

Применение патча (серьёзно, только узнал, как сделать вручную): cat 5.patch | /usr/bin/patch -p1 --fuzz=0

Если вам не повезло, и osc валится с питоновскими трейсами, то придётся откатиться на предыдущую верcию и зафиксировать пакет:

sudo zypper in -f `locate osc-0.143.0-122.1.noarch.rpm`

sudo zypper al osc -r p-openSUSE-Tools

А питон возвращает синтаксическую ошибку на попытку импорта из файла с символом «-» в названии :( 

Обновление копирайтов (подскажете, как сделать рекурсивно; только с find?): sed -i 's/2013/2014/g' path/*

Не каждый читатель дойдёт до очередной зачистки: sudo zypper rm -u sudo zypper rm -u libavcodec54 libavformat54 libavresample0 libavutil51 libpostproc51 libswscale1 bkchem boost-license1_54_0 libboost_program_options1_54_0 libfftw3_threads3 libx264-135 nvidia-gfxG02-kmp-desktop-304.108_k3.11.6_4-31.2 nvidia-gfxG02-kmp-desktop-304.117_k3.11.6_4-28.1 smillaenlarger kernel-desktop-3.4.63-2.44.1 '*openarena*'

=-=-=-=-=
Powered by Blogilo

dap: (Default)

Если сборка на сервисе радует вас ошибкой "could not retrieve ssl certificate: 400 remote error: /usr/local/sbin/bssign  256", нужно ускорить присвоение вашему проекту ключа: osc signkey --create home:DarkSS:p4-clockmod

А если вас просят отправить запрос на add_role, самое время принять бразды правления в свои руки и стать споровождающим пакета: osc creq -a add_role DarkSS maintainer network libkqoauth Или просто ткните в веб-интерфейсе кнопку "Request role addition".

Тем временем google продолжает советовать, как писать код через хабр: 

Избегайте использования операторов + и +=, чтобы сконкатенировать строку при помощи цикла, т.к. строки — это неизменяемый тип данных, такой подход создает ненужные объекты и увеличивает время работы по квадратичному, а не линейному закону. Вместо этого просто добавьте каждую подстроку в список и используйте метод join после того, как цикл завершится (или записывайте каждую подстроку в буфер cStringIO.StringIO).

Тем временем Рандоратор внедрил описанный выше финт, оброс шелл-скриптами для сборки портативных сборок под вин. Была добавлена возможность выбора не только максимально возможного значения относительного стандартного отклонения (RSD), но и относительно точного. Значение RSD можно добавлять к выхлопу, даже если в ходе рандорирования оно не рассчитывалось. Интервалы значений по умолчанию теперь автоматически подгоняются в зависимости от заданных значений. Выводимые значения можно отсортировать заданным произвольным образом. Графический интерфейс tkinter под вин стал менее уродливым (впрочем, куда уж ему до линуксового ;) который обучился отображать иконку окна). Также я освоил gitignore. Несколько ошибок были ликвидированы, одна из них шлёт пламенный привет работе с юникодом в python2, а вторая благодарит byfly за любезно предоставленные ошибки сокета при работе с random.org. Вот с этим и вышел Randorator версии 0.2.3.

PS Количество коммитов линейно зависит от порядкового номера релиза с r= 0,999 и прямо пропорционально с r= 0,99 :D 

Posted via LeechCraft Blogique.
dap: (Default)

Adblockforopera — ещё один недопиленный блокировщик рекламы для opera, клянчащий донейты. Нет в мире совершенства. Debian blog опубликовал занятную статью о включении скроллинга по щелчку колёсиком мыши в браузерах. Имхо очень удобно, с год назад в опере было поломано, восстаналиваем справедливость: Настройки → Общие настройки → Расширенные → Управление → Настроить среднюю кнопку мыши → Включаем панорамирование.

Если вы хотите дать возможность простым смертным монтировать разделы, добавьте в /etc/fstab параметр user, однако учтите, что данный параметр прорписывает по умолчанию кучу параноидальщины, поэтому иногда надо не забыть добавить параметр exec, чтобы потом долго не втыкать в интересные ошибки (/bin/sh: Permission denied). ntfs-3g всё так же принципиально не работает, выдавая ссылку на свой сайт. Как поломали года 4 назад, так и не починено.

Тем временем я оттестировал свой скрипт по пинанию НМ при дисконнекте. Сделано топорно через перезапуск НМ, а не переподключение, потому что НМ не даёт скриптам из каталога dispatcher.d нормально отработать, прибивая их. Установка для зузеводов, собственно скрипт.

Сразу же после пакетирования обнаружился странный баг, что скрипт перестал логгировать свою работу и начал циклически перезапускать НМ. После баг воспроизвёлся ещё один раз, найти причину так и не удалось, так что используйте на свой страх и риск.

Если Network Manager не хочет запускаться, ругаясь по команде systemctl status NetworkManager.service на "Networking is disabled by state file", нужно открыть файл /var/lib/NetworkManager/NetworkManager.state в текстовом редакторе от рута и вбить true в нужные строки.

Узнать свой MAC-адрес можно по команде sudo ifconfig -a | grep HW | awk '{print $5}' или в свойствах подключения в НМ.

Если вы словите ошибку "Не найден подходящий модуль декодирования: VLC не поддерживает аудио или видео формат. К сожалению, вы не можете это исправить.", не переживайте! Всё вы можете ;) Просто установите пакет vlc-codecs, который заботливые мейнейтеры посчитали нужным выделить и не притянуть зависимостями.

Переживаете, что ваши шаловливые ручки порушили что-нибудь в каталоге бинарников? Проверьтесь по команде sudo rpm -Va | grep bin (очень долго)! Спасибо rioky :) 

А вот так можно узнать историю пакеты, выброшенного из openSUSE:Factoryosc log -D openSUSE:Factory removed_package

Огорчаетесь, что вывод strace нельзя направить в файл или погрепать привычным образом? Первое делается легко по хелпу: strace -o filename binary А о втором мне поведал EGDstrace prog_name 2>&1 | grep blah :D Кстати grep -y позволяет забивать на регистр.

Погадать на степень своего безумия по питонокоду можно с помощью утилит pychecker и pylint, которые можно установит по sudo zypper in pychecker python-pylint Если первый никакого криминала у меня не обнаружил, то второй не стесняется давать советы по переименованию переменных и неверному количеству пробелов в отступах. Это и другие ништяки на хабре.

Однажды вы можете сделать git commit и увидеть, что вот уже неделю, как вы находитесь в detached HEAD и по git push вас уверяют, что Everything up-to-date. Если коммитов прошло не очень много, можно просто стереть их из истории и закоммитить заново, но это же неинтересно ;) 

git checkout -b new_branch_name — создаём новую ветвь из текущего состояния.

git checkout master — переключаемся на основную.

git merge new_branch_name — пробуем объединить изменения. Если Automatic merge failed; fix conflicts and then commit the result, то смотрим список конфликтов по git status и разрешаем их.

git commit -a -m 'Merging…' — записываем объединение.

git branch -d new_branch_name — подчищаем. Спасибо Дедфуду за психологическую помощь:) 

Posted via LeechCraft Blogique.
dap: (Аватара+)

Решил автоматизировать процесс получения виндосборок без отрыва от производства. Осиливать заново написание батников желания не было никакого, поэтому решил установить wine и потыкать, взлетит или нет: sudo zypper in -l --no-recommends wineSvin-kun астоятельно не рекомендовал мне связываться с 64-разрядным вайном, посему (не должно быть профиля вайна: ls ~ | grep wine) создадим 32-разрядный префикс по умолчанию WINEARCH=win32 winecfg

Переходим в хранилище питонопотрохов и устанавливаем необходимые пакеты. Кое-какие вещи обновились с момента последней проверки (в разрабатываемом wxPython2.9 уже что-то поломали), перекачаем:

wget http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi && wine msiexec /i python-2.7.3.msi
wine wxPython2.8-win32-unicode-2.8.12.1-py27.exe

Содержимое архива pyinstaller-2.0.zip вбрасываем в ~/.wine/drive_c/Python27/Lib/site-packages

py2exe можно не устанавливать, потому что оно не работает, вылетая с ошибко The following modules appear to be missing ['Carbon', 'Carbon.Files', '_scproxy']

Содержимо http://upx.sourceforge.net/download/upx308w.zip помещаем ~/.wine/drive_c/Python27 оскольку я не нашёл адекватных способов сделать его видимым. До этого я догадался не сразу, а после ручного применения (при котором на exeшнике поперхнулось с дикой ошибкой) билд не запустился вне вайна :) Нужно будет ещё потестировать, чтобы делать окончательные выводы.

Сборка запускается из каталога с исходниками однострочником wine ~/.wine/drive_c/Python27/python.exe ~/.wine/drive_c/Python27/Lib/site-packages/pyinstaller-2.0/pyinstaller.py wx-randorator.spec а досуге планирую запилить какой-нибудь костыль на баше для полной автоматизации. Интерфейсы на тикле в дефолтном вайне распирает здоровенными шрифтами. Баг в стабильной версии по информаци Svin-kun-а не подтверждается.

Перед переходом к хвалебным одам напишу, что разукрасить различный вывод утилит git можно, добавив ~/.gitconfig секци [color] с параметро ui = true

Шаблон для списка изменений можно выцедить по команд git log --pretty="format:* %s" v0.2.1..HEAD | grep -v "^Merge " | sort за которую спасибо Дедфуду. Не забываем указывать свою предыдущую версию ;)

Реализовано два запроса пользователей: добавлена возможность вывода истинного значения RSD и добавления границ интервала к выхлопу, всё опционально, первое включено по умолчанию. Второй пункт не совместим с текущей реализацией подгона RSD, не осилил. К первому пункту дополнительно приложилось разделение выхлопа на помещаемый в буфер обмена (значения) и только отображаемый (ошибки и RSD на данный момент). Сделал простенькие тесты для отлавливания любимых уже хотя бы раз закрытых багов, чтобы не добавлять и не чинить их по много раз :) Для реализации второго реквеста добавил возможность добавлять в виджеты ввода информации комбобоксы, для первого — увеличил долю класса словаря в обмене данными. Право слово, он мне кажется просто созданным для этой задачи, жаль, я поленился осиливать это изначально. Переработана логика работы с иконкой, функционал проверки платформы запуска был перемещён в ядро. Начал добавлять кое-какой информационный выхлоп stdout. Как всегда, выловлено и прибито несколько багов.

Гитхаб в качестве новогоднего подарка решил убрать возможность создания загрузок, посему решил переехать частично на SorceForge. Освещу пару нюансов: при создании проекта, для него автоматически создаётся сайт с адресами вида projectname.sourceforge.net и projectname.sf.net, внешний вид дефолтного сайта внушает страх и трепет, но вместо него можно сделать переадресацию на любой другой. Главное, не забыть вписать свой адрес, но и это поправимо :) Для доступа к ftp у меня попросили пароль, на чём я подвис, поскольку заламывался через OpenID, и, емнип, пароль мне не выдавался… это тоже исправимо. Теперь у рандоратора есть крутой короткий адрес и новые загрузки для портативной шиндошс-версии. Силам Svin-kun-а приложение было протестировано под Вистой и Семёркой.

Posted via LeechCraft Blogique.
dap: (Default)

Снова о geany. Меня клеймили позором за то, что я не создал проект и не познал всех прелестей данной IDE. Что ж, теперь я не без приключений осилил создать проект, но толкового браузера переменных так и не выросло. Обнаружились только теги, но они и в подмётки не годятся возможностям kdevelop, где, например, можно в редакторе клацать по переменной и прыгать между её упоминаниями. Да и подсветка синтаксиса мне не понравилась.

Следующим под раздачу попал Ninja IDE — ещё одна питоническая IDE, написана на PyQt, хвалебная ода на хабре. Мне приложение показалось сильно забагованным. Я не понял, как открыть файл: жмаканье соответствующих контролов ни к чему не приводило в ряде случаев, а некоторые файлы вскрывались без проблем. Нет, спасибо. Хотя выглядит недурно.

Pudb — удобный отладчик для Python, ну-ну. Функции не разворачивает. По-моему удобен разве что для линейных программ без понятия о модульности и ООП. Феерия бобра и шаастья на хабре прилагается.

Поскольку псто восстанавливается практически по памяти, я не могу ничего вспомнить ничего о Codimension Python IDE, кроме того, что их rpm-пакет собран очень криво, о чём будет пасхалка в следующей записи в блоге. Программа примечательно тем, что планирует реализовать программирование мышкой. Наверно, она меня ничем (кроме пакета, аха) не впечатлила :) 

Posted via LeechCraft Blogique.
dap: (Default)

В ходе жарких форумных дебатов потребовалось заснять поведение окружения рабочего стола на видео. Не долго думая, решил заснять в опробованном когда-то gtk-recordMyDesktop, но не тут-то было: записанное видео не воспроизводилось ни в mplayer, ни в vlc. Что ж, решил я, не зря же у меня есть rss, отфильтровал записи по слову screencast и обнарушил Kazam, который… барабанная дробь… просто не запустился, крича об ошибке где-то в районе питоновых gtk-биндингов, вялый гуглинг мне не помог, и я уже, было дело, собирался сдаться и спросил у 0xd34df00d-а, как он проделывал сабж с помощью ffmpeg, как увидел по ссылке список других приложений. Если мне не изменяет память, Istanbul падал при попытке что-нибудь записать (снова в районе PyGtk), а вот XVidCap (есть в пакмане: sudo zypper in --no-recommends xvidcap) меня порадовал. Да, дважды отвалился со странными ошибками; да, невозможно просто записать весь экран или окно приложения; да, не записывается звук, что для меня скорее плюс, чем минус; да, поиск полученного видео представляет собой миниквест (в корне хомяка оно лежит), зато оно работает :) Видео можно скачать и оценить: ~ 2 МБайт.

Я даже начал понимать, почему недолюбливают приложения на питоне, нет, не сказал бы, что они тормознутые. Во-первых, просто всякие дебильные ошибки в компилируемых языках программирования отлавливаются мейтейнерами и патчатся собственно на этапа компиляции, а питона можно просто завернуть в пакет. А, во-вторых, программописатели (и я сам ничем не лучше) не удосуживаются обзавестись в установочном файле хоть какими-либо тестами.

Новости с фронта: последнее постоянно используемое мною gtk-приложение пало смертью храбрых. Товарищ brestows обул Xneur в кеды. Приложение полностью повторяет функционал своего старшего gtk-шного собрата и на данный момент не имеет хоть какой-либо странички в сети. Исходные коды могут быть найдены в общем репозитории xneur или в профиле автора. Пакет собран в моём домашнем репозитории. И по этому славному поводу: sudo zypper rm -u gxneur

Чтобы ваши личкарфты были мягкими и шелковистыми адекватно реагировали на ждущий режим, доставьте соответствующий модуль: sudo zypper in leechcraft-liznoo

Советуют добавить raid=noautodetect к опциям загрузки ядра, чтобы люто бешено ускорить загрузку системы. Добавил, хуже не стало, лучше тоже, решил оставить.



Posted via LeechCraft Blogique.
dap: (Аватара+)

Последним шагом в обновлении дистрибутива стала смена загрузчика. Ползём в соответствующий раздел Яста, выбираем GRUB2, соглашаемся на установку дополнительных пакетов и просим не лезть в MBR, потому что добрый Яст ставит загрузчик не на диск с зузей, а на первый. По результатам эксперимента загрузчик бунты был установлен из-под chroot. При перезагрузке нас радует рождественская заставка первого груба с веселящимися пингвинами и дополнительной опцией загрузки GNU GRUB2, жмём её и наблюдаем ошибку /boot/grub2/core.img — file not found, гуглим и узнаём, что файл-то лежит не там, где прописан, а по адресу /boot/grub2/i386-pc/core.img. Исправляем
эту оплошность (e, печатаем, Enter, b) и  загружаемся со вторым грубом. По завершении загрузки открываем дополнительные настройки загрузчика и определяем оставшиеся опции:

Устанавливаем загрузчика на диск и избавляемся от его предшественника:

sudo grub2-install /dev/sdb

sudo zypper rm -u grub

sudo rm -rf /boot/grub

Чтобы расстаться с русскоязычными каталогами в домашней директории пользователя, вбиваем LANG=C xdg-user-dirs-update --force и допиливаем получившийся ~/.config/user-dirs.dirs Read MOAR в зузеане alv.

Питоноплагин для kdevelop недавно зарелизился, а конфигуратор GTK прокрался в репы кде, так что ещё меньше пакетов нужно из моего хомяка: sudo zypper in -f --no-recommends kdevelop4-plugin-python kde-gtk-config (соглашаемся откатить версии остальных пакетов.)

Обретение дома заблудшими душами: sudo zypper in -f --no-recommends libsoprano4 libIrrlicht1_8 kde-gtk-config-lang kio_iso krusader soprano-backend-redland soprano shared-desktop-ontologies

Возможно, я раскаюсь по поводу удаления этих пакетов, посмотрим: sudo zypper rm -u java-1_6_0-openjdk fakeroot obs-service-download_url rpmdevtools

Личкрафты научились постить в ЖЖ, за что отдельное спасибо magog-у. Активно запрашиваю возможность проверки правописания и выставления html-тегов code. Кроме того по моим настойчивым просьбам появился простой плагин для воспроизведения звуковых уведомлений:

sudo zypper rm -u leechcraft-lmp

sudo zypper in --no-recommends leechcraft-blogique-metida leechcraft-dumbeep

Posted via LeechCraft Blogique.
dap: (Default)

Не было печали, да решил потестировать релиз (бггг) своей поделки под виндой (целевая платформа, аха). Узнал много нового об особенностях реализации тулкитов :)

Во-первых, виджет чекбокс не поддерживает перенос строк [1, 2], отображая на его месте квадрат.

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

Заодно наконец-то сделал проверку наличия (если точнее, то доступности для чтения) иконки перед попыткой загрузки, а то эти ваши питоны выдают вместо исключения неуловимую ошибку "python error | Can't load image from file file does not exist."

  • git --amend запишет добавленные изменения в последний коммит;
  • git log -S"whatever" --source --all позволит найти координаты появления текстового элемента в исходниках;
  • git blame filename покажет координаты появления строк выбранного файла;
  • git log --full-diff --name-only --diff-filter=A --since=11.days отобразит все новые файлы в коммитах за последние 11 дней;
  • git commit -p и git add --interactive предоставляют возможность занести различные изменения в одних файлах в разные коммиты. Само собой, между такими кусками должны быть неизменённые строки.

Сделал себе alias git-status='git status --untracked-files=no' чтобы не видеть огромный список файлов, не добавленных в репозиторий.

=-=-=-=-=
Powered by Blogilo

dap: (Default)

Давно уже у меня аплоадер перестал загружать картинки. Писал автору, осиливал новые модули личкрафтов, а ларчик просто открывался: при запуске демона он падал с ошибкой "ImportError: No module named glib", которая говорит об отсутствии python-gobject. Однако он был установлен, методом тыка было выяснено, что требуется именно вторая версия данного пакета. Пакет сабжа в зузе был исправлен. У меня он оказался установленным из моего хомяка, так что

sudo zypper ref
sudo zypper in -f -r KDE_Extra python-itmages-service
sudo zypper rm -u python-gobject

Список привычных алиасов для бота (%{reduce}* определяет передачу аргументов):

  • !alias add болтуны=talkers
  • !alias add передать=sayto %{reduce}*
  • !alias add пинг=ping %{reduce}*
  • !alias add версия=ver %{reduce}*
  • !alias add тык=poke %{reduce}*
  • !alias add член=member %{reduce}*
  • !alias add гугл=google %{reduce}*
  • !alias add повод = drink %{reduce}*
  • !alias add время = time %{reduce}*
  • Погода в Минске — !alias add Минск = gis Минск
  • Отсчёт до определённой даты по запросу — !alias add 4.9.4=todate 04/12/2012 До дня официального релиза KDE 4.9.4 осталось
  • Отображать заголовки страниц, ссылки на кототорые были опубликованы в чате — !config url_title on
  • Добавить ленту — !rss add http://kubuntu.ru/tracker/feed 30m head-url

Оказалось, что сделать комнату модерируемой означает запретить голос нечленам. Прелестно.

Просто перечислить изменённые файлы: git diff --name-only

Записать коммит от другого пользователя: git commit --author="Author Name <email@address.com>"

=-=-=-=-=
Powered by Blogilo

dap: (Default)

По наводке из rss открыл для себя Codecademy — интерактивную  онлайн-платформу для изучения языков программирования и разметки: например, HTML, CSS, Python и Javascript. Занятия в курсе питона на данный момент очень простые, но всё равно познавательные и интересные. Слегка сломал себе мозг главами с многоэтажной арифметикой и расчётами финансов. Курс безбожно лагает и не взлетел в опере, обоих конках и лисе. Первая подсказка рекомендует использовать хром. Ограничился хромиумом, о котором будет отдельная глава, однако, лагает и в нём. Если что: выделить всё, скопировать, обновить страницу, выделить всё, вставить. Заодно немного просветился в html.

Лучики ненависти в адрес хромиума (sudo zypper in  --no-recommends chromium):

  1. нелогичные ограниченные скрытые настройки (подробности будут дальше);
  2. даже при активной опции открытия при запуске домашней страницы открывает вместо неё страницу из скрытого списка страниц для автоматического открытия;
  3. закрывается при закрытии последней вкладки, решается плагином (да убейся же ты!) или фиксацией какой-либо вкладки;
  4. аляповатый внешний вид, который можно слегка причесать, если догадаться, как развернуть настройки;
  5. использует не системные шрифты и даже не гугловские (aka Droid), a почему-то адобовские;
  6. квадратные формы на страницах, когда во всех остальных браузерах всё нормально;
  7. при дабл-клике по свободному месту панели вкладок разворачивается или сворачивается, а не открывает новую вкладку;
  8. отвратительная панель закладок по умолчанию, напоминающая всеми любимый IE.

В общем, юзабилити на нуле, а я ещё на лису плевался.

А лису я поставил (sudo zypper in --no-recommends MozillaFirefox MozillaFirefox-translations-common) для прекрасного видео-чата. Скачать плагин для браузера можно здесь, при установке по умолчанию добавится репозиторий, в котором случаются обновления. Проверен чат на троих, загрузка канала регулируется на лету, тормоза случаются крайне редко. Замечена довольно сильная нагрузка на процессор. Помимо собственно кривлянья можно использовать на себе разные эффекты. Единственным минусом я назову отсутствие проверки микрофона на виду (вообще такая опция есть в дебрях настроек, но найти её сам я не осилю), так что проверял я его в скайпе, хе хе. Всем рекомендую =)

=-=-=-=-=
Powered by Blogilo

dap: (Default)

На прошлой неделе я выпустил версию 0.2.1 своей поделки. Собирать под шиндошс на данный момент нет времени и/или желания, и/или возможности. С релиза 0.2 прошло почти три месяца, за это время:

  • строки локализации GUI переехали в отдельный модуль, откуда и изымаются при запуске;
  • сменил лицензию с LGPL3+ на LGPL2+, менять в следующей версии не планирую =)
  • появилось возможность генерировать истинно случайные числа (используются атмосферные шумы, насколько я помню) через random.org c помощью стороннего модуля, сей процесс происходит значительно (порядка половины секунды на число) медленнее, чем генерация псевдослучайных чисел, поэтому опция отключена по умолчанию, если же опция активна, но имеются проблемы с интернетами, то используется генерация псевдослучайных чисел, при каждом выборе в терминал отправляется выхлоп об активированном модуле;
  • полученные списки случайных чисел перемешиваются перед дальнейшей обработкой (внимательными пользователями было замечено, что первое число чаще всего [~50%, что, очевидно, ненормально для выборки чисел в 10] является максимальным среди полученных);
  • элементы wx-морды стали переключаться по нажатию клавиши Tab (по этому поводу я забыл изойти на ненависть: элементы обязательно нужно натягивать на wx.Panel, напрямую на wx.Frame никак нельзя, весьма "очевидно" притом, что изначальный вариант выглядит нормальным за исключением этой мелочи);
  • добавлены сообщения об ошибках везде, насколько позволяет текущая архитектура программы, которая весьма убога, да, выхлоп ошибок по умолчанию включен;
  • исправлено over9000 других косяков, о которых уже успел забыть =)
  • ну и запилил сайтец!

Статья о тюнинге openSUSE на предмет времени загрузки получила продолжение. На мой взгляд, немного страшновато, поэтому ничего не пробовал. Хотя про mount-ы звучит интересно: проблема у меня такая (на них уходит много времени [по статье из-за того, что они все запускаются параллельно]) есть. Переубедите меня, пожалуйста ;-)

Фаршировал рабочую оперу жизненно важными плагинами и внезапно узнал, что один из моих погодных плагинов является неофициальным аналогом этого аддона. А он-то мне и нравится больше. Заменил.

=-=-=-=-=
Powered by Blogilo

dap: (Default)

В новостях проскочил интересный сайт: https://www.pythonanywhere.com, основной целью которого является предоставление удобной платформы для разработки на питоне, доступной через браузер. Я же нашёл его консоль полезной для ковыряния окололинуксовых ништяков, когда под рукой нет компа с линуксом. Из минусов: нет пинга и прочих сетевых утилит (ага, раскатал губу!), бесплатная версия заметно подтормаживает (от интернетов не зависит).

Хозяйке на заметку: чтобы получить список исполняемых файлов, известных шеллу, вбейте ls `echo $PATH | tr ":" " "`| less

Я не осилил установку утилит для работы с OBS в pythonanywhere, поэтому стал писать парсер веб-интерфейса, и по завершении меня озарило найти api.  Парсить его оказалось веселее =) В итоге мой сумрачный гений разродился таким скриптом.

Отдельные комрады обнаружили, что мой любимый баг с залипанием пропал в релизной бунте. Я решил качнуть xubuntu, потому что кеды у меня и так есть, я больше ни за что не полезу в unity, и я давно не тыкал крыску. Рвшку я посеял, запуститься с флешки не удалось, как я ни старался, поэтому я решил загрузиться прямо из образа. Нашёлся этот пост на хабре, который и был применён. Сначала я закинул образ на свой хомяк с btrfs, что было плохой идеей, если учесть степень любви груба и этой файловой системы. И я перекинул образ на корень. Epic win! Мне баг воспроизвести не удалось.

menuentry "Xubuntu 12.04 amd64" {
 set root='(hd1,msdos4)'
 loopback loop /xubuntu-12.04-desktop-amd64.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/xubuntu-12.04-desktop-amd64.iso noeject noprompt --
 initrd (loop)/casper/initrd.lz
}

PS Собрал у себя в хомяке тулзу для подсчёта хешев типа md5.

dap: (Default)

В новостях проскочил интересный сайт: https://www.pythonanywhere.com, основной целью которого является предоставление удобной платформы для разработки на питоне, доступной через браузер. Я же нашёл его консоль полезной для ковыряния окололинуксовых ништяков, когда под рукой нет компа с линуксом. Из минусов: нет пинга и прочих сетевых утилит (ага, раскатал губу!), бесплатная версия заметно подтормаживает (от интернетов не зависит).

Хозяйке на заметку: чтобы получить список исполняемых файлов, известных шеллу, вбейте ls `echo $PATH | tr ":" " "`| less

Я не осилил установку утилит для работы с OBS в pythonanywhere, поэтому стал писать парсер веб-интерфейса, и по завершении меня озарило найти api.  Парсить его оказалось веселее =) В итоге мой сумрачный гений разродился таким скриптом.

Отдельные комрады обнаружили, что мой любимый баг с залипанием пропал в релизной бунте. Я решил качнуть xubuntu, потому что кеды у меня и так есть, я больше ни за что не полезу в unity, и я давно не тыкал крыску. Рвшку я посеял, запуститься с флешки не удалось, как я ни старался, поэтому я решил загрузиться прямо из образа. Нашёлся этот пост на хабре, который и был применён. Сначала я закинул образ на свой хомяк с btrfs, что было плохой идеей, если учесть степень любви груба и этой файловой системы. И я перекинул образ на корень. Epic win! Мне баг воспроизвести не удалось.

menuentry "Xubuntu 12.04 amd64" {
 set root='(hd1,msdos4)'
 loopback loop /xubuntu-12.04-desktop-amd64.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/xubuntu-12.04-desktop-amd64.iso noeject noprompt --
 initrd (loop)/casper/initrd.lz
}

PS Собрал у себя в хомяке тулзу для подсчёта хешев типа md5.

dap: (Default)

Недавно организовалось немного свободного времени и я решил немного поковырять питон. Для начала я затагал версию 0.1 рандоратора, после чего приступил к реализации графической морды на wxWidgets (неквадратные элементы окна и иконка [а в Tk только под вин работает =( ] прилагаются), заодно исправил кучу ошибок, облагородил исходники (в том числе лицензионно), добавил в ядро возможность прямого использования из терминала. Собственно, вот они плюшки свежей версии 0.2 =)

Установка IDLE и wx: sudo zypper in --no-recommends python-wxWidgets-lang python-wxWidgets python-idle

Хозяйке на заметку: git show v0.1 позволяет просмотреть информацию о теге.

Что же можно почитать по теме?

  • Fullcircle. HOW-TO: Программа на Python, Часть 5 — для ознакомления.
  • Руководство по wxPython: первые шаги — уже интереснее и без навязывания ООП.
  • WxPython in Action в переводе сообщества python.su — настольная книга =)
  • The wxPython Linux Tutorial от сообщества  wxpython.org — другая настольная книга на английском.
  • wxWidgets 2.8.12 — официальная документация для C, к сожалению, документация по питонобиндингу уныла.
  • Сайзеры в wxWidgets / wxPython — об упаковке элементов.
  • Перевод главы 11: Буфер обмена — работа с буфером обмена на кошках снова на C.

Костыли, которые живы в памяти:

  • Единственным кроссплатформенным вариантом иконки окна wx является (Что бы вы думали? Нет, не волшебный кролик.) ICO — родной формат винды хранения значков файлов.
  • А Tk в принципе понимает только его и только под этой самой виндой.
  • Не забываем, что в винде вывод кириллицы не работает корректно при использовании raw_input().
  • У разных морд разные понятия об интеграции в систему.
  • Например, Tk настолько хорошо прирастает к цветовой схеме и шрифтам, что даже запуск из текущей сессии от другого пользователя не помогает.
  • А wx вообще не интересны системные шрифты, оно берёт их из не известных мне глубин gtk.
  • У wx есть два класса для работы с буфером обмена: TheClipboard удалось пинками завести, а способ использования Clipboard науке выяснить не удалось.
  • Этот самый буфер обмена используется точно так же как и в C.Open() .SetData() .Close() Вот такие вот извращения встречаются и в модулях питона. 

Заодно решил ещё повыбирать редактор себе, начну с того, что не понравилось:

  • Medit не впечатлил совсем, в наличии только подсветка синтаксиса.
  • Sublime Text оказался очень красивым редактором, но таким же малополезным.
  • Bluefish обладает кое-каким автодополнением из документации.
  • Komodo Edit показался очень неплохим вариантом, автодополнение порадовало.

И вот когда я уже бросил попытки собрать пакет с комодо и сделал десктоп-файл (ложить сюда: ~/.local/share/applications) для запуска из хомяка, в ленту совсем другой тематики прилетела радостная весть: питоноплагин Kdevelop уже готов к применению. Искомый пакет обнаружился только в репозитории нестабильных кедопакетов, поэтому был безжалостно форкнут и пересобран, для него понадобилось стянуть одну стабильную библиотеку (просто более новую, чем в релизе дистра) и нестабильный Kdevelop, который тоже был пересобран. Так что выйти должно было всё же получше, чем если брать из исходного репозитория. Установка: sudo zypper in kdevelop4-plugin-python

Kdevelop прекрасен: идеальная подсветка, автодополнение со справкой из документации, подсветка объектов класса, элементов, функций, переменных... Помимо прочего предложило интегрировать с гитом, сделало какой-то странный коммит, поэтому от этого я решил отказаться.

dap: (Default)

Недавно организовалось немного свободного времени и я решил немного поковырять питон. Для начала я затагал версию 0.1 рандоратора, после чего приступил к реализации графической морды на wxWidgets (неквадратные элементы окна и иконка [а в Tk только под вин работает =( ] прилагаются), заодно исправил кучу ошибок, облагородил исходники (в том числе лицензионно), добавил в ядро возможность прямого использования из терминала. Собственно, вот они плюшки свежей версии 0.2 =)

Установка IDLE и wx: sudo zypper in --no-recommends python-wxWidgets-lang python-wxWidgets python-idle

Хозяйке на заметку: git show v0.1 позволяет просмотреть информацию о теге.

Что же можно почитать по теме?

  • Fullcircle. HOW-TO: Программа на Python, Часть 5 — для ознакомления.
  • Руководство по wxPython: первые шаги — уже интереснее и без навязывания ООП.
  • WxPython in Action в переводе сообщества python.su — настольная книга =)
  • The wxPython Linux Tutorial от сообщества  wxpython.org — другая настольная книга на английском.
  • wxWidgets 2.8.12 — официальная документация для C, к сожалению, документация по питонобиндингу уныла.
  • Сайзеры в wxWidgets / wxPython — об упаковке элементов.
  • Перевод главы 11: Буфер обмена — работа с буфером обмена на кошках снова на C.

Костыли, которые живы в памяти:

  • Единственным кроссплатформенным вариантом иконки окна wx является (Что бы вы думали? Нет, не волшебный кролик.) ICO — родной формат винды хранения значков файлов.
  • А Tk в принципе понимает только его и только под этой самой виндой.
  • Не забываем, что в винде вывод кириллицы не работает корректно при использовании raw_input().
  • У разных морд разные понятия об интеграции в систему.
  • Например, Tk настолько хорошо прирастает к цветовой схеме и шрифтам, что даже запуск из текущей сессии от другого пользователя не помогает.
  • А wx вообще не интересны системные шрифты, оно берёт их из не известных мне глубин gtk.
  • У wx есть два класса для работы с буфером обмена: TheClipboard удалось пинками завести, а способ использования Clipboard науке выяснить не удалось.
  • Этот самый буфер обмена используется точно так же как и в C.Open() .SetData() .Close() Вот такие вот извращения встречаются и в модулях питона. 

Заодно решил ещё повыбирать редактор себе, начну с того, что не понравилось:

  • Medit не впечатлил совсем, в наличии только подсветка синтаксиса.
  • Sublime Text оказался очень красивым редактором, но таким же малополезным.
  • Bluefish обладает кое-каким автодополнением из документации.
  • Komodo Edit показался очень неплохим вариантом, автодополнение порадовало.

И вот когда я уже бросил попытки собрать пакет с комодо и сделал десктоп-файл (ложить сюда: ~/.local/share/applications) для запуска из хомяка, в ленту совсем другой тематики прилетела радостная весть: питоноплагин Kdevelop уже готов к применению. Искомый пакет обнаружился только в репозитории нестабильных кедопакетов, поэтому был безжалостно форкнут и пересобран, для него понадобилось стянуть одну стабильную библиотеку (просто более новую, чем в релизе дистра) и нестабильный Kdevelop, который тоже был пересобран. Так что выйти должно было всё же получше, чем если брать из исходного репозитория. Установка: sudo zypper in kdevelop4-plugin-python

Kdevelop прекрасен: идеальная подсветка, автодополнение со справкой из документации, подсветка объектов класса, элементов, функций, переменных... Помимо прочего предложило интегрировать с гитом, сделало какой-то странный коммит, поэтому от этого я решил отказаться.

dap: (Default)

В состав KDE SC входят плагины для Dolphin, добавляющие интеграцию с svn и git. Установка: sudo aptitude install kdesdk-dolphin-plugins. После этого требуемый модуль нужно активировать в диалоге настроек Dolphin, теперь привычные операции с вашей любимой VCS можно будет совершать с помощью пунктов контекстного меню:

А по значкам файлов станет возможным определить, какие из них были добавлены или изменены после последнего коммита:


dap: (Default)

Иногда может захотеться странного: например, сделать дистрибутив программы на python для простого использования в windows, чтобы им можно было пользоваться без установки интерпретатора. Быстрый поиск выдаёт информацию об утилите py2exe. Чуть более глубокое изучение наводит на PyInstaller. Я попробовал обе утилиты, у каждой оказались свои плюсы и минусы.

py2exe

Качаем с официального сайта последнюю версию для python 2.7 и устанавливаем. В папке с нашей программой создаём и сохраняем новый скрипт setup.py:
from distutils.core import setup
import py2exe
setup(console=['myprog.py'])

для консольного приложения, для графического:
from distutils.core import setup
import py2exe
setup(windows=['myprog.py'])

Запуск скрипта setup.py: python setup.py py2exe

В результате будут созданы каталоги "build" и "dist". Каталог build используется как рабочая область на время упаковки приложения, и его можно удалить после окончания работы сценария setup.py. Файлы в каталоге dist — это ваше практически  готовое приложение. Можно удалить файлы unicodedata.pyd, bz2.pyd, select.pyd, w9xpopen.exe. Приложение может отказаться запускаться из-за отсутствие библиотек Visual Studio. В качестве решения проблемы можно кинуть dll и файл манифеста в папку с программой: msvcr90.dll и Microsoft.VC90.CRT.manifest. Эти файлы можно найти в папке с python. Готово! Вес двух моих небольших программ составил 11,5 и 13,4 МБайт, или соответсвенно 5,2 и 4,4 в zip-архивах.

PyInstaller

Переходим к PyInstaller. Качаем с официального сайта последнюю версию Python for Windows extensions для python 2.7 и устанавливаем. Качаем с официального сайта последнюю версию PyInstaller, распаковываем архив в \python\Lib\site-packages\, выполняем в папке утилиты python Configure.py.

Создаём файл настройки для своей программы: python Makespec.py yourprogram.py. Его можно редактировать: например, в строке с console=True исправить на False, чтобы при запуске программы не запускалось окно консоли. Собираем программу: python Build.py specfile. Появится новая папка с портативной версией, копировать ничего туда не нужно, PyInstaller уже об этом позаботился, но можно удалить unicodedata.pyd, если это не повлияет на работу программы. Вес программ составил 9,4 и 8,1 МБайт, или 4,8 и 3,9 в zip-архивах.

Подведём итоги: утилита py2exe компактная и простая, подойдёт вам, если вы ограничены по времени или не можете много качать из интернета; утилита PyInstaller даёт возможность тонкой настройки и позволяет собрать компактную программу (особенно, если установлен upx). Выбор за вами!

PS Дополнительная информация: Облегчаем использование pyinstaller для создания exe и Немного про py2exe на хабре.


dap: (Default)

Иногда может захотеться странного: например, сделать дистрибутив программы на python для простого использования в windows, чтобы им можно было пользоваться без установки интерпретатора. Быстрый поиск выдаёт информацию об утилите py2exe. Чуть более глубокое изучение наводит на PyInstaller. Я попробовал обе утилиты, у каждой оказались свои плюсы и минусы.

py2exe

Качаем с официального сайта последнюю версию для python 2.7 и устанавливаем. В папке с нашей программой создаём и сохраняем новый скрипт setup.py:
from distutils.core import setup
import py2exe
setup(console=['myprog.py'])

для консольного приложения, для графического:
from distutils.core import setup
import py2exe
setup(windows=['myprog.py'])

Запуск скрипта setup.py: python setup.py py2exe

В результате будут созданы каталоги "build" и "dist". Каталог build используется как рабочая область на время упаковки приложения, и его можно удалить после окончания работы сценария setup.py. Файлы в каталоге dist — это ваше практически  готовое приложение. Можно удалить файлы unicodedata.pyd, bz2.pyd, select.pyd, w9xpopen.exe. Приложение может отказаться запускаться из-за отсутствие библиотек Visual Studio. В качестве решения проблемы можно кинуть dll и файл манифеста в папку с программой: msvcr90.dll и Microsoft.VC90.CRT.manifest. Эти файлы можно найти в папке с python. Готово! Вес двух моих небольших программ составил 11,5 и 13,4 МБайт, или соответсвенно 5,2 и 4,4 в zip-архивах.

PyInstaller

Переходим к PyInstaller. Качаем с официального сайта последнюю версию Python for Windows extensions для python 2.7 и устанавливаем. Качаем с официального сайта последнюю версию PyInstaller, распаковываем архив в \python\Lib\site-packages\, выполняем в папке утилиты python Configure.py.

Создаём файл настройки для своей программы: python Makespec.py yourprogram.py. Его можно редактировать: например, в строке с console=True исправить на False, чтобы при запуске программы не запускалось окно консоли. Собираем программу: python Build.py specfile. Появится новая папка с портативной версией, копировать ничего туда не нужно, PyInstaller уже об этом позаботился, но можно удалить unicodedata.pyd, если это не повлияет на работу программы. Вес программ составил 9,4 и 8,1 МБайт, или 4,8 и 3,9 в zip-архивах.

Подведём итоги: утилита py2exe компактная и простая, подойдёт вам, если вы ограничены по времени или не можете много качать из интернета; утилита PyInstaller даёт возможность тонкой настройки и позволяет собрать компактную программу (особенно, если установлен upx). Выбор за вами!

PS Дополнительная информация: Облегчаем использование pyinstaller для создания exe и Немного про py2exe на хабре.


dap: (Default)

Эксцстастик — это графическая программа для получения статистики из файлов microsoft excel. Программа подсчитывает и выдаёт количество упоминаний каждого элемента в выбранном столбце. Из-за ограничений модулей работы с электронными таблицами вывод результатов осуществляется в окно терминала.

Как обычно код лицензирован под LGPL и доступен на GitHub


dap: (Default)

Эксцстастик — это графическая программа для получения статистики из файлов microsoft excel. Программа подсчитывает и выдаёт количество упоминаний каждого элемента в выбранном столбце. Из-за ограничений модулей работы с электронными таблицами вывод результатов осуществляется в окно терминала.

Как обычно код лицензирован под LGPL и доступен на GitHub


January 2016

S M T W T F S
     12
34567 89
10111213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 16th, 2025 10:54 am
Powered by Dreamwidth Studios