to post messages and comments.

В 16.04 (и говорят 17 тоже) опять сука сломали xorg — переключение раскладки на Ctrl+Shift ломает глобальные хоткеи везде, Ctrl+Shift+T — отмена закрытия вкладки в мозилле, Ctrl+Shift+F — глобальный поиск в IntelliJ IDEA.

Фикс (для 16.04) лежит вот тут — github.com

Но йобана блядь, я *впервые* столкнулся в этой хуйней с 2007 году, ДЕСЯТЬ ЛЕТ НАЗАД КАРЛ!! Патч тот же самый.

Linux is ready for desktop, ага.

```
for tbl in `psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" YOUR_DB` ; do psql -c "alter table \"$tbl\" owner to NEW_OWNER" YOUR_DB ; done

for tbl in `psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" YOUR_DB` ; do psql -c "alter table \"$tbl\" owner to NEW_OWNER" YOUR_DB ; done

for tbl in `psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" YOUR_DB` ; do psql -c "alter table \"$tbl\" owner to NEW_OWNER" YOUR_DB ; done
```

Свершилось! Сегодня впервые в жизни взял деньги за деинсталляцию антивируса. Это вопрос принципиальный — юзер расписался в том, что он не рулит своим компом вообще никак. Кроссавчега зовут Cezurity Antivirus. Вместо деинсталляции — заглушка. Сервис неотключаемый. Всякие вендовые Администраторы ему не указ. Оно и правильно, а то вдруг дойная корова вообразит, что она хозяйка своего компьютера? Деинсталлятор доступен по урлу cezurity.com <vk.com> temp, блеать! temp!!! аааа... они сделали мой вечер... Это прелестно.

Надо было залогиниться на тестовую железку неинтерактивно через ssh по паролю (по паролю!), коллеги нашли для этого sshpass
Оказалось что он не работает с freebsd, потому что фреебсд спрашивает пароль не в виде "Password:", а в виде "Password for [email protected]:"
Сделал strings `which sshpass`
Сменил хостнейм фряшной машины на assword
Теперь промпт выглядит как "Password for [email protected]:"
УМВР НИНУЖНО

stack из Stackage пытается билдить пакеты прям в /tmp, что ubuntu например по умолчанию сделать не дает, симптом — вот такая ошибка:
: runInteractiveProcess: exec: permission denied (Permission denied)Пока решил костылём — перемаунтил /tmp
sudo mount -o remount,exec /tmp

Продолжение #2789871.
Доделал ещё автоматическое переключение профилей планшета (привязок кнопок планшета к кнопкам клавиатуры или мыши, которые можно настроить в KDE-шном systemsettings) в зависимости от активного окна. Т.е. можно настроить отдельные профили для gimp, krita, mypaint, и они будут автоматически переключаться при переключении окошек. Сделал в двух вариантах — для XMonad и для KWin (на егоном js). Мне тут уже указали на некоторый бред в js-варианте, но оно как-то работает, а переделать пока руки не дошли.
И ещё сделал возможность привязывать режимы express ring к профилям планшета. Т.е. для каждого профиля можно иметь четыре набора настроек для кольца.
Код всё там же — github.com

Вот андроид — это я понимаю. Стремление к техническому совершенству. Включаешь телефон чтоб куда-нибудь позвонить, а там написано "оптимизация приложения 1 из 237", потому что умные посоны из гугла угорают по оптимизации. Во время этого принудительного процесса телефон неработоспособен, вплоть до отсутствия в углу экрана кнопки "экстренный вызов". Энергетическая катастрофа заканчивается минут через пятнадцать, когда ведрофон понимает, что успел стать причиной пожара на соседней электростанции, а ява в его составе работать быстрее от всех оптимизаций ничуть не начала.
Гугл тоже наконец заметил, что "это устройство может работать быстрее" и решил отказаться от dalvik в пользу разрабатываемого ими art, который обязан улучшить юзер экспиренс и продлить время жизни от одного бесперебойника за счёт трансляции явы в нативные инструкции не in time, а прекомпилингом.
Пока что прирост производительности получился мизерный (я вообще отличий не заметил), но зато для проведения компиляции телефон превращается в тыкву уже не на те пятнадцать минут, а почти на час, при этом яростно греясь и разряжая батарею. Конечно, девелы многое починят к выходу 5.0, но пугает сама тенденция решать проблемы через жопу. Рано или поздно они перепишут всё на эрланг, и для плавной отрисовки меню нужно будет всего лишь купить ещё два телефона и сделать из них портативный кластер для отрисовки UI

В продолжение #2458058
gpxe, к сожалению, поддерживает не все сетевые карты. В ipxe картина не сильно лучше, и нужно заморочиться со сборкой образа.
Пока что виртуальные машины Hyper-V, в такой конфигурации, могут грузиться только на 100 мбит/сек...

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

Грузить винду по iscsi, без возможности использования pxe — весело.
Примерно так: загрузчик gpxe, с прописанным iqn на флешке/дискете/диске. По DHCP отдается опция 175, 0x03=1 (не отключать SAN после загрузки).
IQN тоже можно (и нужно) перенести в dhcp, создав отдельную опцию 201 или 202 (резервный).

Полный список опций и форматов можно найти в gpxe/src/include/gpxe/dhcp.h

Вот есть еще SlimerJS — аналог PhantomJS, только Gecko.
Сам еще запускать не пробовал, но в ближайшее время попробую, потому что с PhantomJS у меня не получается.
SlimerJS это не полноценный безголовый браузер, хоть какие-то иксы ему нужны. Да мне всё равно, у меня дома иксы есть.

Есть список адресов, записанных в произвольной форме, человеческой, свободной форме. Нужно каждому адресу сопоставить район.
Есть много всяких сайтов, например, mosopen.ru, но там предполагается какое-то строгое написание, не в свободной форме.

Как быть? Что-то мне подсказывает, что для большинства адресов достаточно одной только улицы, чтобы определить район, дом уже не важен. Хотя для тех районов, где граница проходит по улице, я получу половину домов в одном районе, а половину — в другом.

Попробую найти какой-то список ВСЕХ улиц Москвы, и для тех из них, которые в одном районе, определить район по адресу, отбросить уже все эти дома, строения, корпуса будет относительно легко.

А ты с какого района?

Большое спасибо няше @Annoynimous за то, что ткнул в phantomjs, как раз то, что нужно, сейчас вот сижу, пробую костылить, даже получается что-то.
Не будь я толстый и ленивый, можно было бы попробовать специальный плагин для Firefox сделать, чтобы вот мышкой по странице потыкал, а он автоматически бы костыль смастерил.

Вот есть какой-то код, в котором команды ассемблера mips записаны в форме, не подразумевающей каких-то подстановок или улучшений, предполагается, что ddivu s,t это именно одна команда ddivu s,t.
Вот GNU as, похоже, не умеет в ассемблер без улучшений. Я пока ничего такого не нашел.
Можно поискать другой ассемблер, но чтобы он умел в MIPS64R2, есть такие?
Можно написать «препроцессор» на sed, чтобы он заменял команды на версии, не предполагающие улучшений, чтобы скармливать вывод в GNU.
Можно написать на sed свой ассемблер с нескучными обоями.

Три варианта костылей… какой лучше… что-то меня не хочет ничего этого делать, а чего хочет, даже не знает.

минутка вечерних костылей.
HOST=$1
PORT=$2

export `echo version {} | netcat $HOST $PORT | sed 's/^version//;s/":"/=/g;s/[{},"]/ /g'` 2>/dev/null
eval "echo \$$3"

Принимает строку вида
version {"ver":"1.0.0","build":"0xe361aa46901b7e6107f88d1ab2fcfcd80ed4729d"}
и возвращает или ver, или build, или что ещё угодно, что будет в JSON
script.sh 192.168.123.123 32768 ver
1.0.0
script.sh 192.168.123.123 32768 build
0xe361aa46901b7e6107f88d1ab2fcfcd80ed4729d

думал, как извернуться поизящнее, но не придумал.

l29ahZl29ah-home ~/tmp/l4d2ds ‰ ./steam -command update -game left4dead2 -dir ./
Checking bootstrapper version ...
Getting version 50 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .
Steam Linux Client updated, please retry the command
l29ahZl29ah-home ~/tmp/l4d2ds ‰ ./steam -command update -game left4dead2 -dir ./
Checking bootstrapper version ...
Getting version 50 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .Steam Linux Client updated, please retry the command
l29ahZl29ah-home ~/tmp/l4d2ds ‰ ./steam -command update -game left4dead2 -dir ./
Checking bootstrapper version ...
removing stale semaphore last operated on by process 32024 with name 0eBlobRegistryMutex_7F7962A00798C321B29EFAB51590D659
removing stale semaphore last operated on by process 32024 with name 0eBlobRegistrySignal_7F7962A00798C321B29EFAB51590D659
Updating Installation
Determining which depot(s) to install/update...
3 depot(s) will be installed/updated

Запускаем задачу раз в 30 секунд

/1 * root /home/mybin/script.sh; /bin/sleep 30; /home/mybin/script.sh



Запускаем задачу раз в 20 секунд

/1 * root /home/mybin/script.sh; /bin/sleep 20; /home/mybin/script.sh; /bin/sleep 20; /home/mybin/script.sh


Запускаем задачу раз в 15 секунд

/1 * root /home/mybin/script.sh; /bin/sleep 15; /home/mybin/script.sh; /bin/sleep 15; /home/mybin/script.sh; /bin/sleep 15; /home/mybin/script.sh

пиздец. мои глаза.
пиздец. мои глаза.
пиздец. мои глаза.
пиздец. мои глаза.
пиздец. мои глаза.
пиздец. мои глаза.

Благодаря тому, что веб аудио API предоставляет разработчикам прямой доступ к аудио буферу, вы можете изменять формат данных на лету и передавать их напрямую веб аудио API для воспроизведения. Например, если вы закодируете mp3 файл в base64 строку, то потом сможете его раскодировать в ArrayBuffer и конвертировать сырые аудио данные.
А потом говорите, что в линуксе/ведроиде костыли, а iOS — отлично работает. Пиздец какой.