====== Elan Ruusamäe ======
[[http://cia.vc/stats/author/glen|{{http://dev.gentoo.org/~spock/img/icons/cia-stats.png?}}]]
===== Useful links =====
* [[#PLD Linux VM Images]]
* [[http://www.emacswiki.org/emacs/MovingTheCtrlKey|Moving The Ctrl Key]]
* [[::developingpld|Developing PLD Linux]]
* [[:developingpld:advanceddeveloping:fixingasneeded|fixing --as-needed]]
* [[:people|user homepages in www.pld-linux.org wiki]]
* [[http://carme.pld-linux.org/~megabajt/docs/devel_cvs_wstep.html|cvs new account (in Polish)]]
* [[http://rescuecd.pld-linux.org/download/|http://rescuecd.pld-linux.org/download/]]
* [[http://ftp3.pld-linux.org/~pldftpac/isos/iso/2.0/|http://ftp3.pld-linux.org/~pldftpac/isos/iso/2.0/]]
* [[http://marcansoft.com/blog/2009/01/using-amarok-and-other-itunesdb-compatible-software-with-the-iphone-2x/|http://marcansoft.com/blog/2009/01/using-amarok-and-other-itunesdb-compatible-software-with-the-iphone-2x/]]
* [[http://www.cvsnt.org/manual/html/Substitution-modes.html|http://www.cvsnt.org/manual/html/Substitution-modes.html]]
===== Some ideas to do in PLD Linux =====
* generate /etc/profile.env from /etc/env.d and make it possible to merge env from two different files.
* modularize rc-scripts, so the portions could be reused for example by initng.
===== Detect X application locale =====
xprop -id $WINDOWID -notype WM_LOCALE_NAME
===== Detect PuTTY =====
old=$(stty -g)
stty raw -echo min 0 time 5
echo -ne '\005'
read xapp
stty $old
echo "xapp: $xapp"
===== Kmail & Crypto =====
* install packages
poldek -u gpgme gnupg-agent keychain pinentry-qt
* setup gpg-agent to use pinentry-qt
$ cat ~/.gnupg/gpg-agent.conf
pinentry-program /usr/bin/pinentry-qt
* make ~/.bash_profile to use keychain:
keychain -q --agents gpg
if [ -f ~/.keychain/$HOSTNAME-sh-gpg ]; then
. ~/.keychain/$HOSTNAME-sh-gpg
fi
* start new shell and start kmail/kpg/whatever
$ bash -l
===== irssi & screen =====
i've configured my screen and irssi that they use utf-8 internally but are able to display other encodings properly.
* make screen default window encoding iso8859-15. ''~/.screenrc'':
defencoding iso8859-15
* irssi configuration
/set term_charset utf-8
/set recode_autodetect_utf8 ON
/set recode_fallback iso8859-15
/set recode ON
/set recode_out_default_charset iso8859-15
/set recode_transliterate OFF
/recode add #linux.ee utf-8
/recode add #metal iso8859-15
/recode add #pld iso8859-2
* configure your terminal (putty, konsole, xterm) to be in utf-8
* start screen with -U option (or be sure that you have utf8 locale active)
* to change encoding of some screen window: type to screen command prompt, which can be activated with '''^A:''' (screen default) or '''^O:''' (my screen escape)
:encoding utf-8
===== controlling screen window encoding from scripts =====
first you need to enable interpreting of commands, add to ''~/.screenrc'':
# disable all screen commands but encoding
addacl :window: -rwx #?
# allow 'encoding' command
addacl :window: +x encoding
and to set encoding from script:
$ echo -ne '\033]83;encoding utf8\007'
for example my ''~/.bash_profile'' on [[:machines:carme|carme]] contains:
# force screen utf8 encoding
if [[ "$TERM" = screen* ]]; then
echo -ne '\033]83;encoding utf8\007'
echo -ne "\033k$HOSTNAME\033\\"
fi
===== PHP via FastCGI in Apache =====
# the server name is bogus actually, to satisfy mod_fastcgi
FastCgiExternalServer /bin/true -socket /var/run/php/fcgi.sock
ScriptAlias /php-fcgi /bin/true
SetHandler fastcgi-script
Allow from all
AddType application/x-httpd-fastphp .php
Action application/x-httpd-fastphp /php-fcgi
unfortunately ''/php-fcgi'' will be available for download (''/bin/true'' binary in this case)
===== Capture desktop as video.ogg =====
Using gstreamer:
$ poldek -u gstreamer-ximagesrc gstreamer-theora gstreamer-vorbis
$ gst-launch -v ximagesrc ! video/x-raw-rgb,framerate=10/1 ! ffmpegcolorspace ! theoraenc ! oggmux ! filesink location=desktop.ogg
thx Patrys for this :-)
also worth to check: cankiri and istanbul
===== mysql comments out =====
perl -pe 'undef $/;s#/\*!\d{5} ([^*]+)\s?\*/#$1#gs'
===== Chrome Killing your EARS =====
Ever having headphones on and listening your favourite music, and hitting button on url location and wondered wtf beeped so loud that you can't hear for next five minutes anything!? It is chrome bell reaching to speaker, which on recent hardware is connected to soundcard with MAX volume, ARGH!
TURN THE BEEP MIXER ON MUTE on some mixer to save your ears!
$ amixer set 'Beep' 0% mute
$ sudo alsactl store
===== Resubmit POST data =====
Such pity happened to me, that I filled bunch of form fields and found that Chrome does not download the result. I fired up Wireshark and captured the POST data (Export Selected Packet Bytes) and resubmited it with curl.
$ curl -H 'Expect: ' http://example.org/posthandler.php -d @postdata.raw > result.zip
===== Kernel modules used by network drivers =====
lspci to get kernel module and pci description:
$ lspci | awk '/Ethernet/{print $1}' | xargs -l1 lspci -k -s
03:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
Subsystem: IBM Device 0342
Kernel driver in use: bnx2
Kernel modules: bnx2
06:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
Subsystem: IBM Device 0342
Kernel driver in use: bnx2
Kernel modules: bnx2
or with ethtool:
# ethtool -i eth0
driver: e1000
version: 6.3.9-k4-NAPI
firmware-version: N/A
bus-info: 0000:03:07.0
===== Growing WinXP VirtualBox image =====
I needed to grow WinXP disk, as 2GiB was too short for it. It's all pretty basic, but with few quirks. VBoxManage can extend disks, but only it's VDI format ([[http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi|here]] and [[http://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi|here]]). WinXP can grow NTFS partions, but only non-boot ones ([[https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/dm_extend_basic_volume.mspx|here]]).
So first is to clone image and extend it
$ VBoxManage clonehd winxp_1-disk1.vmdk --format VDI winxp_1-disk1.vdi
$ VBoxManage modifyhd winxp_1-disk1.vdi --resize 4096
now boot with both disks attached and run ''diskpart''.
DISKPART> list volume
DISKPART> select volume 2
DISKPART> extend
now remove the old disk and voila!
===== PLD Linux VM images =====
See [[.:glen:vm-info]] for more details
===== Upgrading PHP 5.3 -> PHP 5.4 =====
poldek --sn carme --up -u $(rpm -qa --qf '%{N} %{V}-%{R}\n' | awk -vv=$(rpm -q php-common --qf '%{V}-%{R}') '$2 == v {sub(/php/, "php54", $1); print $1}')
===== Dropbox as picture share service =====
Any file saved to ''~/Pictures/Screenshots'' gets renamed based on timestamp and moved to ''~/Dropbox/Public'' folder.
When the move is done, URL for the image is copied to clipboard and image viewer is opened so you can see your image before you paste the url to IM, e-mail, etc...
See: https://github.com/glensc/dropbox-watch
===== PLD svn and Subversion under ac =====
[[/AcInfo|Ac]] has old openssl that can't do [[wp>Server Name Indication|SNI]] properly, therefore accessing svn over https gives errors:
svn: OPTIONS of 'https://....': Certificate verification error: certificate signature failure (https://svn.pld-linux.org)
A [[http://jamescrisp.org/2010/06/05/workaround-for-subversion-svn-certificate-verification-error-insecure-algorithm-on-ubuntu-1004-lucid-lynx/|Workaround]] possible:
[groups]
pld = svn.pld-linux.org
[pld]
ssl-trust-default-ca = no