LINUX.ORG.RU

Сообщения proofit404

 

Открытая/free to use система электронного хронометража

 

Существует ли сабж в природе?

proofit404
()

Растянуть окно в awesome

 ,

Хочется чтобы свежеподнятый emacsclient -c растягивало поверх всех окон аля maximize без пустых пикселей по краям экрана. Гуглил долго, но похоже имакс сам не даёт своими фрэймами ворочить. How to fix?

proofit404
()

Как сделать чтобы при логине через какой-нибудь dm использовался ~/.zprofile вместо ~/.profile?

 ,

$SUBJ

proofit404
()

подружить zsh c rvm

 , ,

Сейчас добавил следующее в ~/.zshrc:

[ -d $HOME/.rvm/bin ] && PATH=$PATH:$HOME/.rvm/bin
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . $HOME/.rvm/scripts/rvm
Но теперь шелл стартует ощутимо дольше. ~/.zprofile при логине в иксы не запускается как я понял. Вопрос: куда его положить чтобы работало и через иксы и через рлогин? Тормоза достали.

proofit404
()

Common Lisp для мобильных OS.

 , , ,

Бегло нагуглил поддержку iOS в ECL и Android'да в CCL. Если у кого имеется опыт использования - поделитесь.

proofit404
()

dmenu коряво запускает приложения.

 , , , .xsession

Начнём с начала.
Вот если запустить имакс, открыть файлик hello-world, написать туда фразу «Привет мир!», сохранить и закрыть. То это даёт нам большую почву для зармышлений на тему: «Почему в терминале запущенном из dmenu он отображается некоректно, а из другого bash всё работает?»

Вызываем команду из dmenu:

sakura -x '/bin/zsh'

% cat hello-world 
������������ ������!

Вызываем команду из другого bash:

$ sakura -x '/bin/zsh'
% cat hello-world 
Привет мир!
Тоже самое творится с urxvt и запущенном в нем bash. Как его лечить?

Далее имеется непонятная ересь с переменной $PATH приложений запускаемых из dmenu. Пути добавленные в .bashrc и .bash_profile не работают из него. В том же имаксе 'exec-path ничего не видет кроме системных. Пофиксилось добавление путей внутри .xsession. Ниже конфиги для полноты.

.xsession

#!/bin/sh

export PATH=$PATH:$HOME/bin

xsetroot -cursor_name left_ptr

setxkbmap -layout 'us,ru(winkeys)' -model pc105 -option grp:caps_toggle,grp_led:caps

while xsetroot -name "`date`"
do
	sleep 1
done &

feh --bg-scale wallpaper.jpg &

/home/proofit404/bin/dwm

.Xdefaults

*font: -*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*
*boldFont: -*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*

URxvt*foreground: #000000
URxvt*background: #EEE9E9
URxvt*scrollBar: false

.bash_profile

[[ -f ~/.bashrc ]] && . ~/.bashrc

.bashrc

if [[ $- != *i* ]] ; then
	return
fi

export LANG="en_US.UTF-8"
export LC_COLLATE="C"

### Nyan-cat prompt.

PS1="\`if [ \$? = 0 ]; then echo \[\e[35m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\` \$ "
proofit404
()

Статусбар к dwm как внешняя программа.

 , ,

Всем привет. Наткнулся тут на следующее profil-dwmstatus-1.0.c.
У меня появилось большое желание прикрутить туда же pwd окошка в фокусе, статут от mutt и irssi.
dwm по своей сути перехватывает события иксов и обрабатывает их определённым образом, т.е. именно в этом месте и можно впихнуть отсылку информации о текущем окошке, чтобы потом найти его cwd. К mutt и irssi тоже нотификаторы прикрутить можно.
Хочется узнать самый кошерный способ асинхронного взаимодействия для выше указанных утилит, позволяющий обновлять статусбар не только раз в секунду, но и сразу же при смене фокуса и т.д.

for (;;sleep(1)) {
    ...      
    datetime = getdatetime();
    ...
    snprintf(status, 200, "%0.2f, %0.2f | %d%% | %s", cpu0, cpu1, bat0, datetime);

    free(datetime);
    setstatus(status);
}

Сабж, нанодесу.

proofit404
()

Musthave для конфига к etl сервису.

 

Имеется festful http сервис обменивающийся с клиентами структурами json.
Так вот. Хочется сделать для него конфиг на родном языке программирования. Сервис сам по себе включает простейший etl. Принял запрос, обработал данные в соответствие с конфигом, отослал обратно.
Покачто в конфиге объявлена функция обработки, хуки на запуск/остановку сервиса, хуки на приём отправку json клиенту.
Что ещё можно закинуть в конфиг?

proofit404
()

Настроить все соединения на прокси.

 

Погуглил и нашёл таки tsocks. Надо настроиться на виндовый tmg сервер, на котором раздают http на 8080 порту и socks4 на 1080 соответственно. Конфигурация приведена ниже.

local = 131.0.0.0/255.0.0.0

path {
  reaches = 150.0.0.0:80/255.0.0.0
  reaches = 150.0.0.0:443/255.0.0.0
  server = wintmgname
  server_type = 4
  server_port = 8080
  default_user = blahblahblah
  default_pass = blahblahblah
}

server = wintmgname
server_type = 4
server_port = 1080
default_user = blahblahblah
default_pass = blahblahblah
Дело в том, что git и emerge работают при этом нормально. Leiningen, использующий curl нифига не качает из реп. Браузеры очень медленно грузят странички и часто теряют коннект. C https вообще беда в этом плане.

Два вопроса:

  • Как таки его правильно настроить, чтобы всё работало с приемлемой скоростью?
  • Как его запускать глобально? Чтобы любой залогиневшийся пользователь (неважно через rlogin или xsession) мог свободно пользоваться им без этого $ . tsocks on.
proofit404
()

Statusbar мне запили.

 ,

Хочется лицезреть в топе своего терминальчика pwd и date. Прекрасно знаю, что это тривиальщина в tmux и в screen. Хочется сделать это средствами bash.

proofit404
()

Видимость extend-type для протокола.

 

По мотивам предыдущей темы хочу полюбопытствовать как оно работает. Имеется модуль А, содержащий

(defprotocol MyProt
  (bar [a b]))

(defn foo
...
  (bar ...)
...)

Имеется модуль Б, использующий модуль А следующим образом

(extend-type clojure.lang.IPersistentMap
  MyProt
  (bar [a b] ...

(defn what-else
...
  (foo ...)
...)

Так вот. Если загрузить модуль Б в nREPL и вызвать функцию what-else, то сыпется на следующем

No implementation of method: :bar of protocol: #'user/MyProt found for class: clojure.lang.PersistentArrayMap

Но если загрузить в nREPL ещё и модуль А, не меняя при этом область видимости, и повторить вызов what-else, то всё замечательно заработает.
lein test естественно тоже валится на этом.

Вопрос: как так устроен этот чудо extend-type, что твориться такая ересь?

proofit404
()

Мультиметоды и типы.

 

Решил вот тут использовать алгоритм, анализ в котором основан на типе определения, в языке с динамической типизацией и неявным приведением онных.
А именно есть мультиметод принимающий х. Если х мапа, вектор или список, то вызывается один метод. Если х попадает под определение :default, то возвращаем х как есть.
Все вроде бы хорошо на примерах с последовательностями небольшого размера, а вот с чем-то большим кложа заботливо переводит PersistentArrayMap в PersistentHaspMap в целях производительности. Да, я прописал class как функцию выбора метода.
Как это сделать полюдски?

proofit404
()

flyspell-buffer

 

Совсем себе уже мозг сломал:

flyspell-mode
flyspell-buffer
Всё нормально работает, послонстью проверяет весь буфер и подсвечивает все ошибки. Хочу в лисп-моде:
flyspell-prog-mode
flyspell-buffer
Подсвечивает слов 5 на экране, остальное побоку. Если поместить курсор на слово - естественно перепроверит. Как сделать нормальную проверку коментов в исходниках?
ЗЫ: хук на лисп-мод:
(defun comments-hook ()
  (flyspell-prog-mode)
  (flyspell-buffer)
  (turn-on-auto-fill)
  (setq comment-auto-fill-only-comments t))

proofit404
()

Различается exec-path в зависимости от способа запуска.

 

При логине использую gdm.
В пользовательском .bashrc поправлена переменная $PATH.
Если запустить имаск из терминала, то естественно exec-path соответствует $PATH и всякие там clojure-swank и nrepl стартуют из имакса нормально.
Если запустить имакс из меню/панельки/what-else, то пропадают пути добавленные непосредственно в .bashrc - сильно бесит.
Как это починить без костылей в ~/.emacs?

proofit404
()

Создание проекта не под EPL

 ,

Когда делаешь $ cabal init , то предлагается на выбор десяток лицензий, под которыми можно выпускать новый проект. А вот $ lein new ничего подобного не предлагает. Видел ли кто-нибудь какой-либо плагин для подобных нужд, а то править все это руками как-то лениво. Или оно кроме меня никому не надо, и все кложуристы придерживаются EPL?

proofit404
()

Провайдеры для auto-complete-mode

 

Очень часто встречаю, что всякие там слаймы, роупы и прочие делают автокомплит в отдельный буфер *Completion*
Кто-нибудь пытался сделать этот буфер провайдером к auto-complete-mode?

proofit404
()

Посоветуйте графический тулкит

 ,

Вот есть нодные редакторы в софтинах наподобие Гудини и т.п.
В каком графическом тулките есть нормальный набор виджетов для реализации подобного, пофиг как они реализованы изкаропки и сторонними компонентами.
Желательно ткнуть в примерчик сразу, а то гугл в понедельник утром ко мне не дружелюбен.
Софтина просто мордой для сети будет, так что пофиг что там за язык.

proofit404
()

Vlc вешает систему.

 ,

Столкнулся с рядом проблем:

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

Первое по-моему какой-то аппаратный баг, т.к. проявляется в разных дистрах: debian stable, xubuntu, arch.
Сейчас на борту ноута asus k50in xubuntu 12.04 с последними обновлениями.

$ vlc --version
VLC media player 2.0.3 Twoflower (revision 2.0.2-93-g77aa89e)
VLC version 2.0.3 Twoflower (2.0.2-93-g77aa89e)
Compiled by buildd on roseapple.buildd (Jul 24 2012 22:39:41)
Compiler: gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

proofit404
()

Перенаправить stdout и stderr в разные буферы для сабпроцесса

 

Вот в обычном баше можно следующее:

$ command 2> error_file 1> output_file

Как можно в имаксе для сабпроцесса получить такое же поведение, только для буферов а не для файлов?

proofit404
()

Возможно ли использование GPL в условиях оккупации?

 ,

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

    +-------------------------+      +--------+
    | Data transformation app | <=== | Config |
    +-------------------------+      +--------+
          ^         |                             
          |         v             
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                 
            Network                         
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  
     |    ^         |     ^                       
     v    |         v     |
  +----------+     +----------+
  | Client A |     | Client B |
  +----------+     +----------+
Сдонжив в догонку ещё и никсовый сервак под эти нужды, подумалось о полезности этой реализации другим. Поскольку непосредственно наших корпоративных решений касаются только конфиги и N-ное число фронтендов, то само приложение можно и в свободный доступ выложить не нарушив таинства.
Можно ли выложить его в GPL, чтобы потом Столлман самих не покарал?

proofit404
()

RSS подписка на новые темы