Scrapbook
- really!
git push origin :refs/tags/current_server
lynx -dump http://einstein.phys.uwm.edu/download/ | sed -n 's%.*/%%;s/.*\(einstein_[^ ]*\).*/\1/p' > download_files
for i in `git tag | fgrep einstein_S5GC1_`; do echo " | $i | `git log -1 $i | sed -n 's/^commit \(........\).*/\1/p'` |" `fgrep $i download_files` "|" ; done
awk: count identical lines
sorted:
awk '($0 == l){c++;next};(NR>1){print l,c};{l=$0;c=1};END{print l,c}'
unsorted:
awk '{ a[$0]=a[$0]+1; } END { for (l in a) { print a[l],l; } }'
awk: split log
awk '/^201[0-9]-[01][0-9]-[0-3][0-9] /&&(d!=$1){if(f!=""){close(f);};d=$1;f="log." d};(f!=""){print >> f}'
rename E@H run
sed=s/S6Bucket/GCS6LIGOBucket1105/g
cvs up -A
for i in *S6Bucket* ; do mv $i `echo $i | sed "$sed"`; done
f=`cvs diff 2>&1 | sed -n 's/.*cannot find //p'`
cvs rm $f
cvs add `echo $f | sed "$sed"`
sed -i~sed~ "$sed" *.C *.h *.m Makefile
cancel all workunits that have unsent results
update workunit set error_mask = error_mask | 16, transition_time = 0 where id in (select distinct workunitid from result where server_state = 2);
fix unable to look up public/pickup
touch /var/spool/postfix/public/pickup
git cherry-pick from different_branch HEAD down to commit (exclusively)
for c in `git log different_branch | sed -n '/commit/q;s/^commit //p' | awk '{c=$0" "c};END{print c}'`; do git cherry-pick $c; done
raise replication of remaining WUs for a run / application
update workunit set target_nresults = target_nresults + 2, transition_time = 0 where appid = 11 and canonical_resultid = 0 and error_mask = 0;
Jochen Hayek (IMAP Utils)
Blog Xing
Joel on Software
http://www.joelonsoftware.com/
Add a BOINC forum
insert into forum set category=1, is_dev_blog=1, title="Technical News", description="Technical News from this project", orderID=-1;
Einstein@home / BOINC: Re-validate (e.g. validate error results)
mysql> UPDATE result SET outcome=1, validate_state=0 WHERE outcome=6 AND appid=26;
mysql> UPDATE workunit SET transition_time=0 WHERE canonical_resultid=0 AND appid=26;
Einstein@home Development machines
denholm.aei.uni-hannover.de |
Debian Etch |
VMWare server (eth1) |
moss.aei.uni-hannover.de |
Mac OS 10.5 Intel |
Mac OS Intel build machine (to be) |
richmond.aei.uni-hannover.de |
Mac OS 10.3 PPC |
Mac OS PPC build machine (to be) |
roy.aei.uni-hannover.de |
Debian Woody "noupdate" |
compatibility Linux App build machine (VM) |
jen.aei.uni-hannover.de |
Windows XP SP2 w. VisualStudio .NET 2003 |
Windows build machine (VM) |
judie.aei.uni-hannover.de |
Mac OS 10.4 Intel |
Mac OS Intel test machine (small disk: 20 GB) |
192.168.0.x from n0:
192.168.0.10 |
denholm |
Debian Etch |
VMWare server (eth0) |
192.168.0.11 |
boincvm |
Ubuntu 7.04 server |
BOINC project server (EinTest) (VM, vmnet2) |
Her's a sniplet from my .ssh/config:
Host=denholm
HostName=192.168.0.10
Host=boincvm
HostName=192.168.0.11
Host=eintest
HostName=192.168.0.11
Binatone DECT: How to Register a Handset to a base station
Unplug power adaptor from rear of base station and reconnect. Make sure that you take out the correct lead as you could remove the line cord. You now have 3 minutes to carry out the following procedure. On the new handset press Menu button and press an arrow button until REGISTER shows in display. Press OK. Display shows “BS 1 2 3 4” Press “1” then the display shows PIN. Enter pin code (default 0000) and press OK. The display shows SEARCH while the handset is searching for a base station. When it finds one, the RFPI number is displayed. Press OK.
pref=/usr/local
vers=`pwd | sed 's%$%/%; s%.*/gcc-*\([0-9.]*\)/.*%\1%'`
../configure \
--prefix=$pref/gcc-$vers \
--with-local-prefix=$pref/gcc-$vers \
--program-suffix=-$vers \
--enable-languages=c,c++,objc \
--with-system-zlib
distribute data
# generate hashes - way too slow...
while read f ; do echo `echo $f | md5sum | gawk '{print ( strtonum ( "0x" substr($1,1,6) ) % 1342 ) }'` $f ; done < /atlas/data/d03/EatH/S5R1_files.lst > S5R1_files_dist.lst
# generate "node" files (paths for each node node) from hash files
cat ../hash_files/hash_files_* | awk '{ n = "0000" ( $1 + 1 ); f = "n" substr(n,length(n)-3) ; print $2 >> f }'
# distribute files in 1340 / 30 groups
awk 'BEGIN { for(i=2;i<=1342;i++) { printf "n%0.4d\n",i } }' > nodes
split -l 30 nodes nodes_30_
for f in nodes_30_* ; do
( for n in `cat $f` ; do
echo `date`:
; rsh
sh -c '"xargs cp -a -t /local/EatH_results/S5R1/results < /atlas/data/d03/EatH/S5R1_distributed/nodes/$HOSTNAME"'
done ) &
done 2>&1 | tee nodes.log
# distribute to peers
dsh -aF40 'mkdir -p /local/EatH_results/S5R1/results/second'
dsh -aF40 'screen -d -m cp -a `hostname | awk '\''{ printf "/atlas/node/n%0.4d/EatH_results/S5R1/results/*\n", ( ( substr($1,length($1)-3) + 670 ) % 1342 ) + 1 }'\''` /local/EatH_results/S5R1/results/second'
dsh -aMF20 'screen -m -d mv /local/distributed/spray/data/EatH/S5R1/second/* /local/distributed/spray/data/EatH/S5R1'
http://256.com/sources/md5/
# make directory (and second)
dsh -aMF10 'mkdir -p /local/distributed/spray/data/EatH/S5R3/second'
# initial copy
nohup dsh -MF30 -f ~/nodes 'rsync -a --no-relative --files-from=/atlas/data/d03/EatH/S5R3_dist/nodes/$HOSTNAME d04::EatH/S5R3 /local/distributed/spray/data/EatH/S5R3' &
# fetch from partners
dsh -aMF20 'rsync -Pvare rsh `hostname | awk '\''{ printf "n%0.4d\n", ( ( substr($1,length($1)-3) + 670 ) % 1342 ) + 1 }'\''`:/local/distributed /local'
# distribute rest
sed -n 's/^\(n....\):.*/\1/p' nohup.out | awk '{ printf "n%0.4d\n", ( ( substr($1,length($1)-3) + 670 ) % 1342 ) + 1 }' > nodes.bad
dsh -MF10 -f nodes.bad 'rsync -a --no-relative --files-from=/atlas/data/d03/EatH/S5R3_dist/nodes/`hostname | awk '\''{ printf "n%0.4d", ( ( substr($1,length($1)-3) + 670 ) % 1342 ) + 1 }'\''` d04::EatH/S5R3 /local/distributed/spray/data/EatH/S5R3/second'
dsh -aMF20 'screen -m -d mv /local/distributed/spray/data/EatH/S5R3/second/* /local/distributed/spray/data/EatH/S5R3'
# make fallbacks
bema@d04:/data/distributed/fallback/EatH/S5R3$ time ( for i in `ls ~/S5R3_nodes/` ; do ( echo $i && mkdir -p $i && cd $i && sed s%^%/data/EatH/S5R3/% ~/S5R3_nodes/$i | xargs -l1 ln ) ; done )
dsh -aMF40 'f=/tmp/countfiles ; ls /local/distributed/spray/data/EatH/S5R1 > $f ; ls /atlas/data/d03/distributed/fallback/EatH/S5R1/$HOSTNAME | fgrep -vf $f ; rm -f $f' 2>&1 | tee missing.log
# redistribute S5R1 files based on 'files_per_cache_node-dist'
for c in `grep $HOSTNAME /atlas/data/d03/EatH/S5R1_dist/files_per_cache_node-dist | sed 's%.* %%'`; do l=`~/bin/cache_length /local/distributed/clone/spray/EatH/S5R1/$c`; i=0 ; while [ $i -lt $l ] ; do rsync -a `~/bin/get_file -d -c $c -i $i` /local/distributed/clone/spray/EatH/S5R1n ; i=`expr $i + 1`; done ; done
# generate new S5R1 caches
for i in * ; do ns=`sed -n "s/ $i\$//p" ../files_per_cache_node-dist` ; n1=`echo $ns | awk '{print $1}'` ; n2=`echo $ns | awk '{print $2}'` ; echo $i
1
2 ; awk -F\; '{printf "%s;/atlas/nodes/'"
1"'/distributed/spray/EatH/S5R1n;/atlas/nodes/'"
2"'/distributed/spray/EatH/S5R1n;/atlas/data/d03/distributed/fallback/EatH/S5R1/%s\n",$1,$2}' $i > ../caches_new/$i ; done
# add overlapping for S5R1
for c in cache_* ; do echo $c ; f=`echo $c | sed 's/.*_//'`; while read l ; do ~/write_S5R1_search_params `echo "$l" | sed 's/;.*//'` | nawk '($1 == "Freq:") { f = $2 } ; ($1 == "FreqBand:") { if (f + $2 >= ('"$f"' + 0.5) * 0.999823179414003) {print "'"$l"'"} }' ; done < $c > ../caches_tmp/$c ; done
for i in 6 7 8 9; do ( for c in cache_14$i* ; do echo $c ; f=`echo $c | sed 's/.*_//'`; while read l ; do ~/write_S5R1_search_params `echo "$l" | sed 's/;.*//'` | nawk '($1 == "Freq:") { f = $2 } ; ($1 == "FreqBand:") { if (f + $2 >= ('"$f"' + 0.5) * 0.999823179414003) {print "'"$l"'"} }' ; done < $c > ../caches_tmp/$c ; done ) & done
120 wc -l * > ../files_per_cache
121 wc -l * > /local/bema/files_per_cache
123 wc -l * > /local/bema/files_per_cache
124 sort -n /local/bema/files_per_cache
126 grep -v total /local/bema/files_per_cache | sort -n
127 grep -v total /local/bema/files_per_cache | sort -n > /local/bema/files_per_cache_up
128 grep -v total /local/bema/files_per_cache | sort -nr > /local/bema/files_per_cache_down
528 history | grep files_per_cache
# generating cache files for S5R3
# sort_caches writes out the file followed by three node numbers (primary, secondary, fallback)
for i in cache_* ; do echo $i ; ~/atlas/S5R1_distribution/sort_caches < $i > ../caches_tmp/$i; done
cd ../caches_tmp
mkdir caches
for i in cache_*; do c=`echo $i | sed s/cache_// | awk '{printf "cache_%.2f",$1}'`; echo $c ; awk -F\; '{print $1 ";/atlas/node/" $2 "/distributed/spray/data/EatH/S5R3n;/atlas/node/" $3 "/distributed/spray/data/EatH/S5R3n;/atlas/data/d04/distributed/fallback/EatH/S5R3/" $4}' $i > caches/$c ; done
mkdir nodes
for i in cache_* ; do echo $i ; n=`awk -F\; '{print $2;exit}' $i`; awk -F\; '{print "/atlas/data/d04/distributed/fallback/EatH/S5R3/" $4 "/" $1;exit}' $i >> nodes/
; done
cd nodes
for i in * ; do cp $i `echo $i | awk '{ printf "n%0.4d\n", ( ( substr($1,length($1)-3) + 670 ) % 1342 ) + 1 }'` ; done
nohup dsh -aMF20 'date ; mkdir -p /local/distributed/spray/data/EatH/S5R3n ; cat /atlas/data/d03/EatH/S5R3_dist/caches_tmp/nodes/$HOSTNAME | xargs cp -a -t /local/distributed/spray/data/EatH/S5R3n ; date' & sleep 1 ; tail -f nohup.out
# trying to make randist work
for i in 20 200 800 1500; do
rm -rf .randist ; dsh -MF20 -m "`head -$i /etc/dsh/machines.list | tr \\\\012 , | sed 's/,$//'`" screen -d -m /home/bema/randist_run.pl
while [ `ls .randist/waiting/ | wc -l` -gt 0]; do
sleep 10
done
done
tar -xjvf subversion-1.4.6.tar.bz2
tar -xjvf subversion-deps-1.4.6.tar.bz2
cd subversion-1.4.6
./configure \
--disable-multi \
--disable-multilibs \
--without-berkeley-db \
--without-apache \
--without-apxs \
--without-swig \
--with-ssl \
--disable-shared \
--prefix=/usr/local
screensaver
fixed assimilator transcripts
for tr in *_transcript; do sed '/transcr/Q' $tr > $tr.head ; done
for tr in *_transcript; do awk '/transcr/{p=1;next};(p==1){p=2; print};(p==2){print}' $tr > $tr.tail ; done
for tr in *_transcript; do
rm -f $tr.fixes $tr.broken $tr.double
grep transcr $tr |
while read l; do
if [ "$l" = "$o" ]; then
echo "$l" >>$tr.double;
else
wu=`echo $l | sed 's/ [^ ]*$//'`
pattern=`echo $l | sed 's%^\([^ ]*\) \[WU#[0-9]*\] \([^ ]*/\)validate_error_results_transcript%\2\1_*_0%'`
files=`ls $pattern`
test -n "$files" && for file in $files; do
echo "$wu $file" >>$tr.fixes;
done
echo "$l" >>$tr.broken;
fi
o="$l";
done 2>$tr.fixes.err;
done
Visual Studio Express Editions
http://msdn2.microsoft.com/en-us/express/aa975050.aspx
http://www.codezone.de/VisualStudioExpressImageISO.Codezone (VS2005 Deutsch)
How to turn on automatic logon in Windows XP
http://support.microsoft.com/kb/315231
- Click Start, and then click Run.
- In the Open box, type control userpasswords2, and then click OK.
- Clear the "Users must enter a user name and password to use this computer" check box, and then click Apply.
- In the Automatically Log On window, type the password in the Password box, and then retype the password in the Confirm Password box.
- Click OK to close the Automatically Log On window, and then click OK to close the User Accounts window.
Mouse in VMWare Linux Guests X.Org 7.1 or Higher
- Install the vmmouse driver. Depending on the Linux distribution, the method for installing it varies. If the vmmouse driver package is not included in your distribution of Linux, check your distribution's Web site for a version of the vmmouse driver package you can download (the vmmouse driver package has vmmouse in its name).
- Edit the ServerLayout section of the file /etc/X11/xorg.conf so that it includes the following entry:
InputDevice "Mouse[0]" "CorePointer"
- In the same file, also edit the InputDevice section for the primary mouse as follows:
Section "InputDevice"
Identifier "Mouse[0]"
Driver "vmmouse"
Option "Device" "/dev/input/mice"
Option "Name" "VMware Pointing Device"
EndSection
Start BOINC on testnodes
for i in `cat testnodes` ; do rsh $i '( cd /local/bema/BOINC && screen -d -m /opt/boinc/bin/boinc_client --redirectio --no_gui_rpc )
./tools/make_project --project_root=$HOME/Projects/EinsteinAtHome --delete_prev_inst --drop_db_first EinsteinAtHome 'Einstein@Home'
PHP include avoiding warning
if (is_readable($file)) {
include $file;
}
css Zen Garden: The Beauty in CSS Design
http://www.csszengarden.com/
get installed debian package list on a machine
-
dpkg --get-selections \* > /tmp/`hostname`.packages
install packages from the list
-
dpkg --set-selections < dpkg.packages
-
apt-get -u dselect-upgrade
hostname in Yellow Dog Linux
edit
/etc/sysconfig/network
echo send host-name \"`hostname`\"\; >> /etc/dhclient-eth0.conf
find missing result files in cache files
cat cache_825 |
sed 's/;.*//;s/h1_[0-9]*\.\([0-9][0-9]\)_S5R3__\([0-9]*\)_.*/\1 \2/' |
sort -n -k1,1 -k 2,2 |
awk 'BEGIN { f = -1 };
( $1 != f ) { if ( $2 != 0 ) { print } ; f = $1 ; j = 0 ; next };
( $2 == j + 1 ) { j++ ; next };
{ j++ ; print f, j }'
extend PYTHONPATH within Python
sys.path.insert(0, "C:/Program Files/Apache Group/Apache/cgi-bin")
Install proprietary ATI & NVidia drivers on Debian / Ubuntu
Envy
Resolving murrine_style_draw_box: assertion `height >
-1'= (Ubuntu, gnome)
edit
/usr/share/themes/Ambiance/gtk-2.0/gtkrc
parameter
GtkRange::trough-under-steppers
change to
1
X Screensaver Construction Kit
xss
enscript
enscript --landscape --columns=2 --line-numbers --pretty-print --color --media=A4 --output=file.ps file.c
Locality scheduling tag files
Tag files (empty) are called "marker files" in the wokunit generator's code. These files bear the name of the data file (see above) concerned.
Names and purposes:
-
locality_scheduling/need_work
- Created (touched) by Scheduler as indicator
- Read by (trigger for) Workunit Generator
- Removed by Workunit Generator when done
- File name examples (S5R1):
-
grid_0060_l_T03_S5R1.dat
(TODO: what's the purpose of these files???)
-
h1_0215.5_S5R1
-
locality_scheduling/work_available
(advertise file names)
- Created (touched) by Workunit Generator if work is available for a certain data file
- Removed by Workunit Generator
- if
working_set_removal
exists
- if not advertising
- Read by Scheduler to get random file name
- File name examples (S5R1):
-
h1_0215.5_S5R1
(TODO: how can work be needed while available???)
-
locality_scheduling/no_work_available
- Created by Workunit Generator if it couldn't create more workunits for a requested (needed) data file
- Read by Scheduler. If file is found, don't even attempt to request more workunits for listed data files
-
locality_scheduling/working_set_removal
(no workunits left in database for a requested (needed) data file)
- Read by Workunit Generator. If file is found, don't advertise data file
- Created by Scheduler if no workunit exists for a given data file
PSS compilation
cvs -d ':pserver:LVC@cvs.ego-gw.it:/cvsroot' login
cvs -d ':pserver:LVC@cvs.ego-gw.it:/cvsroot' co pss
cd pss
cvs up
PREFIX="$HOME/cascina/install"
autoreconf --install --force
mkdir -p ../../build/pss
cd ../../build/pss
../../source/pss/configure CPPFLAGS="-I$PREFIX/include" LDFLAGS="-L$PREFIX/lib" LIBS=-lm --prefix="$PREFIX" --disable-shared
make uninstall && make clean && make && make install
( cd "$PREFIX/include" && sed -i~ 's%//.*%%' pss_*.h novas.h daspostare.h )
-
objcopy --only-keep-debug prog prog.gnu_debuglink.debug
-
objcopy --strip-all prog prog.gnu_debuglink
-
objcopy --add-gnu-debuglink=prog.gnu_debuglink.debug prog.gnu_debuglink
-
configure
with --disable-silent-rules
- see silent-rules for details
boot Linux from Windows XP Bootloader
http://www.highlandsun.com/hyc/linuxboot.html
double inclusion protection
for name in pss_math.h pss_snag.h pss_sfc.h ; do
header=`find . -name "$name"`
macro=`echo "$header" | sed 's%.*/%_HEADER_%' | tr a-z. A-Z__`
cp "$header" "$header~" &&
awk "BEGIN {print \"#ifndef $macro\\n#define $macro\\n\"};
{print};
END {print \"\\n#endif /* $macro */\"}" "$header~" > "$header"
done
Enable the login shell for the Gnome terminal
As shipped, the Gnome terminal does not spawn a login shell. To get the login shell for new Gnome terminal window, you need to edit your preferences. Go to Edit > Current Profile > Title and Command and then select the Run command as a login shell option.
Burn Double-Layer Video-DVD with custom layer break
add authorized public key on remote machine
ssh remote-machine mkdir -p .ssh ';' cat '>>' .ssh/authorized_keys < ~/.ssh/id_dsa.pub
Windows 7 (and Vista 32 Bit) God Mode
- create Folder named
GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
git reverse cherry-pick
for c in `git log pass_percentage_by_app_version_id | sed -n '/43562188dd702d2ae96affc478306d94b9b09fc0/q;s/^commit //p' | awk '{c=$0" "c};END{print c}'`; do echo $c; done
app selection add new app to users project specific preferences
UPDATE user SET
project_prefs = REPLACE(REPLACE(project_prefs,
"</app_id>","</app_id>
<app_id>29</app_id>"),"<app_id>29</app_id>
<app_id>","<app_id>") WHERE project_prefs LIKE "%<app_id>%";
gcc print include path
cc1=`$CC -print-prog-name=cc1`
dirs=`$cc1 -v < /dev/null 2>&1 | grep '^ */'`
Make diff Use Full Terminal Width in Side-by-Side Mode
alias diff='diff -W $(tput cols)'
Mac OS X
add username to group
dseditgroup -o edit -u adminname -p -a username -t user group
restart remote management / VNC
Apple Remote Desktop: Configuring remotely via command line (kickstart)
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart
-
-help
-
-restart -agent
-
-deactivate
-
-activate
view git diff with FileMerge
git config --global difftool.prompt false
git config --global diff.tool filemerge
git config --global difftool.filemerge.cmd 'opendiff "$LOCAL" "$REMOTE" -merge "$MERGED"'
VMWare Fusion: re-enable Boot Camp Partition
delete the
/Users/${USER}/Library/Application Support/VMware Fusion/Virtual Machines/Boot Camp
folder
list files installed by Installer, e.g. fro uninstalling (Qt)
If you installed Qt via mpkg (versus building from source), Look for the Trolltech or Qt4.4 pkg file under /Library/Receipts/.
Under Contents, you'll find a file called Archive.bom. In the terminal, do:
lsbom Archive.bom
This will print out the list the full pathnames of all files that were installed.
Eject and other menu bar icons
- Navigate to
/System/Library/CoreServices/Menu Extras
- Double-click on
Eject.menu
fink on SnowLeopard
cvs -d:pserver:anonymous@fink.cvs.sourceforge.net:/cvsroot/fink login
cvs -z3 -d:pserver:anonymous@fink.cvs.sourceforge.net:/cvsroot/fink co -P fink
cd fink ; ./bootstrap /sw64
sudo sed -i~ 's%Trees:.*%& unstable/main unstable/crypto%' /sw64/etc/fink.conf
source /sw64/bin/init.sh
fink selfupdate-cvs
fink -y update-all
fink scanpackages
Hit me when I tried to add a printer with
AddPrinter ("select a user in the _lpadmin group"). Solution:
dseditgroup -o edit -p -a admin -t group _lpadmin
results in
'_lpadmin' upgraded to new group format in order to support GUID membership.
switch MacOS boot volume
sudo bless --mount /Volumes/SnowLeopard
sudo bless --mount /Volumes/SnowLeopard --setBoot
Install a package from the command-line
sudo installer -package ~/Downloads/cudadriver_2.3.1a_macos.pkg -target LocalSystem
ldd replacement
otool -L
Ubuntu on MacBook Pro 5.3
- worked for me (so far) with
- Ubuntu 6.10 x64 alternate text installer
- keep Windows on last visible partition (only the first 3 are "visible" to the MBR emulation)
- install w/o swap (single partition), EXT3 FS, grub in Linux Partition (sda3)
- boot using rEFIt (on MacOS Partition)
-
sudo apt-get install bcmwl-kernel-source
then use STA wireless driver in "Hardware Drivers"
-
sudo add-apt-repository ppa:nvidia-vdpau
to add NVidia repository, then use Synaptic
- Features: howto & status
- Persistent Live
- (External) Disk
- Ubuntu Mac Forums
VMWare (fusion)
-
vmware-cmd -l | while read vmx ; do echo $vmx `vmware-cmd "$vmx" getstate`; done
- http://www.macuser.de/forum/f30/vmware-fusion-per-545742/
-
/Library/Application Support/VMware Fusion/vmrun -T fusion start /Volumes/Daten/Virtual\ Machines.localized/Ubuntu\ 10.04.vmwarevm/Ubuntu\ 10.04.vmx
Cygwin
rxvt console
C:\cygwin\bin\rxvt.exe -geometry 100x40 -bg white -fg black -fn courier -sr -sl 1000 -e /bin/bash --login -i
sshd setup
local copy of http://ncyoung.com/entry/389
change Unix / MSDOS line break mode
eval "`mount -m | grep -i cygwin | sed 's/-t/-b/'`"
change Unix / MSDOS line break mode permanently (system wide)
Registry:
HKEY_LOCAL_MACHINE/Software/Cygnus Solutions/Cygwin/mounts v2
change flags from 8 to A (Hex)
create /etc/passwd & /etc/group on Windows 98
echo `pwd|sed s%.*/%%`:`crypt mypasswd`:500:547:Windows98:$PWD:$SHELL >> /etc/passwd
echo user::547: >> /etc/group
sed -i~ s/:544:/:547:/ /etc/passwd
parse / convert environment
cat *.env | tr a-z A-Z | sort -u > win.env
env | sed 's/=.*/=/;s/^/^/' > not.env
echo ^PATH= >> not.env
echo ^LIB= >> not.env
echo ^INCLUDE= >> not.env
grep -vf not.env win.env | sed 's/\\/\\\\/g;s/\$/\\\$/g;s/"/\\"/;s/^\([^=]*\)=\(.*\)$/\1="\2"; export \1/' > setenv.sh
sed -n 's/;*$/\;/;;s/^INCLUDE=//p' win.env | tr -d \\012 | sed 's/^/INCLUDE="/;s/\\/\\\\/g;s/$/"\; export INCLUDE/' >> setenv.sh
sed -n 's/;*$/\;/;;s/^INCLUDE=//p' win.env | tr \; \\012 | grep -v '^ *$' | cygpath -u -f - | awk 'BEGIN{printf "CPPFLAGS=\"$CPPFLAGS"};{printf " \\\"-I%s\\\"",$0};END{print "\"; export CPPFLAGS"}' >> setenv.sh
sed -n 's/;*$/\;/;;s/^LIB=//p' win.env | tr \; \\012 | grep -v '^ *$' | cygpath -u -f - | awk 'BEGIN{printf "LDFLAGS=\"$LDFLAGS"};{printf " \\\"-L%s\\\"",$0};END{print "\"; export LDFLAGS"}' >> setenv.sh
sed -n 's/;*$/\;/;;s/^PATH=//p' win.env | tr \; \\012 | grep -v '^ *$' | cygpath -u -f - | awk 'BEGIN{printf "PATH=\"$PATH"};{printf ":%s",$0};END{print "\"; export PATH"}' >> setenv.sh