LINUX.ORG.RU

Сообщения kawaii_neko

 

Не поделится ли кто ебилдом firefox 38-й версии

Форум — Desktop

Сижу на 24-м ESR, некоторые сайты уже перестают работать. Набрался смелости перейти на 38-й ESR с австралисом и ужасным интерфейсом, но ебилдов пока не видно (ну или я плохо в багзилле искал)

P. S. firefox-bin не предлагать — оно сходу выжрало почти 300 метров, не открывая ни одной страницы. Планирую собрать лису с -Os

 ,

kawaii_neko
()

Opensource & bydlocode

Форум — Talks

Захотел сделать свою приблуду для глобальных хоткеев, полез в сырцы xbindkeys (y u no docs, opensource?), а там...

static void
my_grab_button (Display * dpy, unsigned int button, unsigned int modifier,
		Window win)
{
  modifier &= ~(numlock_mask | capslock_mask | scrolllock_mask);

  XGrabButton (dpy, button, modifier, (win ? win : DefaultRootWindow (dpy)),
	       False, ButtonPressMask | ButtonReleaseMask,
	       GrabModeAsync, GrabModeAsync, None, None);

  if (modifier == AnyModifier)
    return;

  if (numlock_mask)
    XGrabButton (dpy, button, modifier | numlock_mask,
		 (win ? win : DefaultRootWindow (dpy)),
		 False, ButtonPressMask | ButtonReleaseMask,
		 GrabModeAsync, GrabModeAsync, None, None);


  if (capslock_mask)
    XGrabButton (dpy, button, modifier | capslock_mask,
		 (win ? win : DefaultRootWindow (dpy)),
		 False, ButtonPressMask | ButtonReleaseMask,
		 GrabModeAsync, GrabModeAsync, None, None);

  if (scrolllock_mask)
    XGrabButton (dpy, button, modifier | scrolllock_mask,
		 (win ? win : DefaultRootWindow (dpy)),
		 False, ButtonPressMask | ButtonReleaseMask,
		 GrabModeAsync, GrabModeAsync, None, None);

  if (numlock_mask && capslock_mask)
    XGrabButton (dpy, button, modifier | numlock_mask | capslock_mask,
		 (win ? win : DefaultRootWindow (dpy)),
		 False, ButtonPressMask | ButtonReleaseMask,
		 GrabModeAsync, GrabModeAsync, None, None);

  if (numlock_mask && scrolllock_mask)
    XGrabButton (dpy, button, modifier | numlock_mask | scrolllock_mask,
		 (win ? win : DefaultRootWindow (dpy)),
		 False, ButtonPressMask | ButtonReleaseMask,
		 GrabModeAsync, GrabModeAsync, None, None);

  if (capslock_mask && scrolllock_mask)
    XGrabButton (dpy, button, modifier | capslock_mask | scrolllock_mask,
		 (win ? win : DefaultRootWindow (dpy)),
		 False, ButtonPressMask | ButtonReleaseMask,
		 GrabModeAsync, GrabModeAsync, None, None);

  if (numlock_mask && capslock_mask && scrolllock_mask)
    XGrabButton (dpy, button,
		 modifier | numlock_mask | capslock_mask | scrolllock_mask,
		 (win ? win : DefaultRootWindow (dpy)), False,
		 ButtonPressMask | ButtonReleaseMask, GrabModeAsync,
		 GrabModeAsync, None, None);
}

Интересно, если бы лампочек на клавиатуре было больше трех, сдесь бы была портянка из 15 копипастнутых if'ов?

Чем больше я вижу открытого кода, тем больше недоумеваю, что за криворукие индусы его пишут.

 ,

kawaii_neko
()

Вопрос по git merge

Форум — Development

Допустим, есть бранч develop, от которого сначала отпочковывается бранч release, а спустя еще несколько коммитов — feature branch. Фича доводится до ума и мержится в develop. Однако фича получается настолько хорошей, что ее страшно хочется пропихнуть в release.

Как это правильно сделать?

То есть, грубо говоря, нужно влить в release все коммиты, которые показывает git log develop.., будучи сделанным из feature-branch'а. Очевидно, что можно сделать кучу cherry-pick'ов, или заsquash'ить все нужные коммиты в feature и перенести их уже за один cherry-pick, но это не очень хорошо, т. к. коммиты будут разными, что вызовет немало проблем.

По манам выходит, что можно сделать

git checkout release
git merge-base feature develop # запоминаем "точку ветвления" $BASE
git merge -s ours $BASE # делаем вид, что в release есть все, что в feature на момент ее "отпочковывания" от develop
git merge feature

Чисто теоретически это должно работать, но напрягают дополнительные «левые» merge. Может я чего-то не знаю или делаю что-то не так?

 

kawaii_neko
()

Захожу в иксы, запускаю стимосы, а игорей-то нету!

Форум — Talks

Решил было попробовать хваленые «игры под Linux». Запустил ваш говностим (отдельный вопрос о том, сколько 32-битной параши пришлось для этого пересобрать с abi_x86_32) и решил предаться игромании, благо список тайтлов выглядел внушительно (аж целых 35 штук!).

№1: Symphony (http://store.steampowered.com/app/207750/). Запустилсь. При попытке просканировать директорию с музыкой закрашилась, видимо слишком много треков, ниасилило. Позасовывал альбомы по отдельности, чуть-чуть повозил мышкой — вроде бы работает.

№2: Borderlands 2 — запустилась, в коопчик с друзяфками нипаиграть, а в соло оно мне надо, как плавающая точка в финансовых вычислениях

№3: Age Of Wonders 3 — ох, какие у меня были хорошие предчувствия, только поганое Qt5 (для которого нет ебилдов с поддержкой multilib) все испортило. Ну ладно, вытащил недостающие 32-битные либы из дебиановских репозиториев, ldd показывает полную готовность, запускаю — какой-то assert на multibyte string. В общем, дальше ldd дело не продвинулось.

№4 Xenonauts — к новому икскому испытываю стойкое отвращение, а тут «дух старой школы™», да и по скринам понравилось. Качаю, запускаю, а оно мне в консоли выдает:

which: no wine in (/mnt/media/steam/ubuntu12_32:/mnt/media/steam/ubuntu12_32/steam-runtime/amd64/bin:/mnt/media/steam/ubuntu12_32/steam-runtime/amd64/usr/bin:/usr/lib/colorgcc/bin:/usr/lib/colorgcc/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.4://home/inferno/exec/bin:/opt/xmms/bin)
WINE not found. Please install before running.

И тут я понял, что несмотря на всю проделанную Valve работу, поиграть в Linux по-прежнему можно только в тарый добрый Unreal Tournament 2004, линуксовую версию которого в стим почему-то не завезли.

P. S. при всем этом линуксовый стим жрет непотребно много ресурсов, скорость скачивания примерно в 4 раза, чем в винде, ну а к вылетам и нештабильншти я, в принципе, был вполне готов — это же коммерческое ПО под Linux, тут по-другому никак.

P. P. S. зато теперь я точно знаю, что steam machines и steamos просто пустой звук, там ведь будет полторы инди-казуалки, два с половиной AAA-тайтла через wine и куча кривых портов, которые только и могут, что в библиотеке присутствовать без возможности запуска.

 ,

kawaii_neko
()

Навигация по длинным строкам в vim

Форум — General

Решил сделать в vim нормальную навигацию по тексту при включенном wrap-е длинных строк. Сделал это как-то так:

noremap  <down> gj
inoremap <down> <C-o>gj
noremap  <up>   gk
inoremap <up>   <C-o>gk
noremap  <home> g^
inoremap <home> <C-o>g^
noremap  <end>  g$
inoremap <end>  <C-o>g$
В итоге в airline при использовани стрелок вверх/вниз постоянно мигает индикатор режимов INSERT/NORMAL.

Существует ли workaround, чтобы избежать такого мигания кроме как «не показывать индикатор/не использовать airline»?

 

kawaii_neko
()

Вспомогательный высокоуровневый ЯП

Форум — Development

Уже лет 10 как использую для большинства задач сишку или кресты. Однако время от времени бывает натуральная халтурка типа «перелопатить полтерабайта логов и кое-что посчитать». По природе я очень нетерпелив и ждать, пока awk сделает это, меня не хватает.

Есть ли какой-либо удобный язык, которым можно перемалывать гигабайты логов, время от времени рисовать GUI к перемалывалке логов, который бы был лаконичным, эффективным и вот с такенными здоровыми аккумуляторами?

Первым делом на ум приходит perl, но как-то он мне не очень приятен. python и ruby выглядят неплохо, но до лаконичности perl'а им далековато.

Какие еще есть варианты? Слышал много хорошего про haskell, но так и не понял, можно ли на нем писать быстро и «на коленке».

 , , ,

kawaii_neko
()

pointer-or-integer

Форум — Development

Какой грязный трюк посоветует многоуважаемый $all, если нужно передать параметр, который может означать либо целочисленный интервал (допустим <= 10000000), либо указатель. Переносимость не требуется. Linux x86/x86_64, userspace.

Навскидку хочется сравнивать переданный параметр с какой-то константой. Для 32 бит вроде как можно передавать константу как x < 1G, т. к. нижняя часть адресного пространства отдана ядру. Валидна ли подобная магия для 64 бит?

 

kawaii_neko
()

Проблемы с сочетаниями клавиш в vim

Форум — Desktop

В консольном vim, как я понял, Alt-$KEY (M-$KEY) назначить крайне затруднительно, так как, например, M-k приходит как «^[k», что прибавит мне проблем при пользовании <Esc>.

Ок, я почти смирился с вариантом «использовать gvim и не кукарекать», как вдруг оказалось, что gvim не различает «C-.» и «.», и что меня совсем убило: <C-[> для него то же, что и <Esc>.

Если я хочу настроить большое число хоткеев, но без чейнинга, есть ли у меня другие варианты кроме emacs+evil? С vim уходить крайне не хочу.

 

kawaii_neko
()

Библиотека для организации пайпов для C

Форум — Development

Нужна библиотека, которая бы реализовывала внутри себя понятия source/sink/filter и позволяла связывать эти компоненты весьма произвольным образом, чтобы затем можно было гонять данные по получившейся цепочке преобразований. Вроде бы видел давно нечто подобное, но не могу нагуглить.

Результаты поиска по слову «dataflow library» выдают не то: мне не нужна параллельность, мне нужна простота и эффективность.

kawaii_neko
()

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