Category: it

Нюансы восприятия.

Читаю кликбейтный заголовок "79-летний дед научился программировать и прошел в финал конкурса программистов".

Думаю: О, какой крутой дед.

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

Думаю: Нашел чем хвастаться, старый хрыч.

переустановка удаленного системного приложения под android

С год назад я в очередной раз перепрошил свой планшет (Samsung SM-T285, Android 5.1.1) стоковой прошивкой и после этого запустил (из-под TWRP) скрипт, удаляющий bloatware. Теперь, год спустя, я обнаружил, что скрипт оказался несколько слишком агрессивный и удалил некоторые нужные приложения. В частности VpnDialogs, необходимый для работы orbot. За прошедшее время я в системе много что нагородил, поставил app2sd , поместил в rom несколько программ и накатил туда же кучу апдейтов - словом перепрошивка заново не вариант.

Рассказываю, как я достал нужные файлы из прошивки и записал их в планшет. Авось кому пригодится, там есть несколько не вполне прямолинейных моментов.

1) Распаковываю файл прошивки T285XXU0APE1_T285OXE0APC1_T285XXU0APF1_HOME.tar.md5 . Естественно, tar-ом

tar xvf T285XXU0APE1_T285OXE0APC1_T285XXU0APF1_HOME.tar.md5

2) получается куча файлов, в частности нужный мне system.img . Этот system.img не является еще образом диска, он пожат некоей технологией под названием sparse image file. Его нужно распаковать командой

simg2img system.img system.raw

программа simg2img в моем дистрибутиве (debian testing) находится в пакете android-sdk-libsparse-util

3) полученный образ system.raw все еще нельзя смонтировать, потому что что у него обрезан конец - незначащие последние блоки данных. Нужно добить файл пустыми блоками до двух гигабайт. Возможно, для этого существует более элегантное решение, но я поступил в лоб, использовав dd

dd if=/dev/zero of=sys.raw count=524300 bs=4096
dd if=system.raw of=sys.raw conv=notrunc

Необходимые числа можно посмотреть в dumpe2fs и/или в ругани dmesg при попытке подмонтировать system.raw

4) теперь можно смонтировать образ диска куда-нибудь в файловую систему, бо это обычный ext4

sudo mount -o loop sys.raw /mnt/01/

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

6) По какой-то причине файлы нельзя записать прямо на их место в /system/priv-app/. Нужно сначала записать их в пользовательское пространство, чтобы затем шеллом под adb переместить их на место. Нет, и после перемонтирования /system тоже нельзя.

adb push /mnt/01/priv-app/VpnDialogs/ /sdcard

7) теперь запускаем шелл и перемонтируем /system для записи
adb shell
>su
>mount -oremount,rw /system

8) Теперь можно копировать. Из под той же сессии adb shell
cp -r /sdcard/VpnDialogs /system/priv-app/

9) После копирования пермишены по какой-то трансцедентной причине портятся. Поэтому нужно файл за файлом их восстановить.
>chmod 755 /system/priv-app/Vpn/Dialogs/
>chmod 755 /system/priv-app/Vpn/Dialogs/arm/
>chmod 744 /system/priv-app/Vpn/Dialogs/*.apk
>chmod 744 /system/priv-app/Vpn/Dialogs/arm/*.odex

10) перемонтировать /system обратно в ro мне было лень, тем более что он все равно туда сбросится при перезагрузке.

11) Обратите внимание, что приложение должно быть извлечено из того же самого образа, который был прошит. Приложения в /priv-app вроде как подписаны, и приложение из другой сборки может не заработать.

Линусосрач

Подумалось, что весь этот феминистический срач в LKML вовсе не так бессмысленен, как кажется на первый взгляд.

Смотрите, скандал в этот раз (как, кстати и в прошлый, с glibc и Столлманом) закатила тетка, которую Intel нанял, чтобы она пилила какие-то там интеловские драйвера для Линукса. Нанял, как я понимаю, не из сообщества с уже длинным портфолио, а с университетской скамьи, занедорого.

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

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

Но проблема в том что Линус - не ее начальство и не ее наниматель, совсем. И нянчиться с посредственными кодерами просто потому что бизнес-гиганты вроде Интела пожмотились на нормальную зарплату и вместо уже состоявшегося ядреного хакера (который стоит дорого и вообще плевал на вас с Эйфелевой башни) наняли школоту по обьявлению - он не обязан. У него своя работа есть. Но тетка тоже не виновата в том что начальство требует от нее коммуникации с Линусом в стиле, который ей неприятен (и любому неприятен, кого не заботит совершенство кода). При этом понятно, что разрулить вопрос с Интелом у Линуса не получится, потому что если Линус будет жаловаться Интелу - понятно кто сразу же окажется крайним.

Вот такая коллизия между идеалами Free Software и капиталистической экономикой. При этом понятно, что такие ситуации будут чем дальше тем чаще, поскольку для все большей доли людей Free Software - это не идейное увлечение, а работа на зарплату. И это именно то, за что боролись.

Менеджер библиографий

Какой сейчас самый правильный менеджер библиографических ссылок под Linux?

Требования - импорт из BibTeX, экспорт в plaintext, сортировка по дате, типу итд.

Импорт из Google Scholar и elibrary приветствуется.

Пока что нашел следующие:
zotero (но это вроде как менеджер не столько библиографий, сколько вырезок)
JabRef
Bibus
KBibTex (это вроде как просто заполнялка форм для BibTeX, не?)
Bibfilex (тоже?)
Pybliographer (Понятия не имею, что это)
Referencer (Понятия не имею, что это)
refbase
RefDB


Что вы про них можете сказать плохого/хорошего?
По описаниям склоняюсь к JabRef.

хозяйке на заметку: xkb

Когда прописываешь раскладку клавиатуры в в xorg.conf, клавиатуру надо описывать как 'Section "InputClass"' а не как 'Section "InputDevice"'.

Тогда раскладка не будет слетать при саспенде-гибернации.

Рационализация тут такая, что при гибернации система "выдергивает" клавиатуру из X-сервера, и обратно вставляет уже как другую, новую.

Хук в интернет

А вот кто-нибудь знает, есть ли в линуксе (конкретно дебиане) хук, на который можно повесить действие, которое бы выполнялось при смене внешнего IP-адреса?

Самое близкое что я пока вижу - это /etc/network/interfaces

Но вроде адрес на роутере может поменяться и без участия компьютера? И вроде как компьютер может это отслеживать?

Хозяйке на заметку - сброс кэшей.

Если вы копируете много файлов на USB- диск (и, подозреваю, вообще если вы копируете много файлов), в какой-то момент скорость копирования может упасть в несколько раз.

Но если вы сбросите дисковые кэши командой

sync;sync;
echo 3 > /proc/sys/vm/drop_caches

то скорость копирования восстановится до нормальной.

Можно сделать маленький скрипт с такой командой.

FS для файлопомойки

В какую файловую систему посоветуете разметить внешний диск для файлопомойки (коллекции фильмов, грубо говоря)?

Граничные условия
1) Оно будет использоваться в основном на Linux-машине.
2) Но в случае чего желательно иметь возможность прочитать его и из-под винды (возможность записи не столь важна, но неплохо бы и это тоже)
3) Нагрузка небольшая, необходимая производительность небольшая, все равно оно будет втыкаться в USB-хаб.
4) Сам диск сомнительного качества и будет использоваться вплоть до физического разрушения. То есть Data Recovery есть _ожидаемый_ этап его будущей жизни. Там нет ничего такого, что нельзя бы было в принципе восстановить из интернета, но количество подлежащего такому восстановлению хотелось бы минимизировать. Соответственно, средства для Recovery должны иметься в ассортименте.
5) Размер диска 2 TБ, размер файлов может быть в несколько гигабайт, так что FAT не очень.

Я пока что склоняюсь к ext2, вроде бы под виндой есть к нему драйвер, но может у кого есть другие соображения?

Дискоремонтные Linux-инструменты.

Низкоуровневое форматирование под Linux

https://tinyapps.org/docs/wipe_drives_hdparm.html

--
аналог Spinrite под Linux

badblocks -n

а лучше (если на диске нет данных/есть куда их переписать)

badblocks -w

--
Соскребание данных с битого диска (в т.ч (и даже преимущественно) CD/DVD). Не работает (ожидаемо) с FUSE

GNU dd-rescue (на данный момент актуальна именно GNU версия)

--
Более аккуратное (щадящее диск) соскребание данных с диска, но - только разделов целиком, один файл не стащишь.

whdd

--
Восстановление таблицы разделов/восстановление файлов с разрушенной файловой системы

gpart/testdisk/photorec


Кто знает еще, добавляйте (Меня интересуют главным хардкорные трюки уровня MHDD/Victoria. Восстановить случайно удаленный файл можно десятком способов и тут вопрос в основном в интерфейсе).

UPDATE:
ddpt http://sg.danny.cz/sg/ddpt.html
sg3-utils http://sg.danny.cz/sg/sg3_utils.html

Замена russian.el

Какая правильная последовательность действий в GNU Emacs 24+, если я хочу в разных буферах редактировать тексты в разных кодировках?

Когда кодировка одна, я просто запускаю Emacs в соответствующей локали, что действительно намного удобнее чем в прежние врем ена. А когда их несколько?