<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7528908249044542022</id><updated>2012-01-26T17:58:41.119-08:00</updated><category term='install'/><category term='flash'/><category term='postgresql'/><category term='javascript'/><category term='lapp'/><category term='rsync'/><category term='latex'/><category term='libs'/><category term='printing'/><category term='thumbnails'/><category term='wodim'/><category term='adobe'/><category term='burning'/><category term='wine'/><category term='application'/><category term='dvd'/><category term='safety'/><category term='grammar'/><category term='firefox'/><category term='css'/><category term='rt61'/><category term='python'/><category term='netpkg'/><category term='browser'/><category term='reliability'/><category term='video'/><category term='gimp'/><category term='alsa'/><category term='fglrx ati xorg'/><category term='xvidcap'/><category term='ocr'/><category term='nfs'/><category term='toshiba'/><category term='hwclock'/><category term='c++'/><category term='messenger'/><category term='paperhater'/><category term='java'/><category term='mysql'/><category term='wifi'/><category term='php'/><category term='usb'/><category term='maths'/><category term='sqlite'/><category term='webcam'/><category term='configure'/><category term='voip'/><category term='ffmpeg'/><category term='root'/><category term='cell'/><category term='wpa'/><category term='nas'/><category term='pdf'/><category term='time'/><category term='gps'/><category term='geometry'/><category term='slackware'/><category term='grep sed'/><category term='CUPS'/><category term='text'/><category term='zenwalk'/><category term='drm'/><category term='ppc'/><category term='scanning'/><category term='kernel'/><category term='xfce'/><category term='lamp'/><category term='mp3'/><category term='network'/><category term='fail'/><category term='wicd'/><category term='webpage'/><category term='solar'/><category term='satellite'/><category term='screencast'/><category term='calculator'/><title type='text'>"X"...in a box</title><subtitle type='html'>slackware w/slices of unrelated tech</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>77</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-1208877733652631364</id><published>2012-01-13T23:33:00.000-08:00</published><updated>2012-01-14T01:32:12.572-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mp3'/><title type='text'>Slackware - mp3 tags, editing</title><content type='html'>In the past, I've exclusively used the editor EasyTag, but I'm always looking for a faster approach when doing computer projects. I'm not the CS guy who can write scripts so, as a simple enthusiast, sometimes faster turns-out to be a GUI approach, other times command line. So, when I heard about &lt;a href="http://eyed3.nicfit.net/"&gt;eyeD3&lt;/a&gt;, I thought I'd give it a whirl.&lt;h4&gt;installation&lt;/h4&gt; Standard, configure --prefix=/usr, make, make install. It likes to have python-magic for full functionality. Check the system by searching for &lt;tt&gt;libmagic&lt;/tt&gt;:&lt;blockquote class="mono"&gt;$ find -name libmagic*&lt;/blockquote&gt;The only thing I'll say about this program is it unfortunately, on its own, without being requested, adds a TXXX file that notes the latest time the tag was changed. That's useless and just takes up space.  &lt;h4&gt;Selectomagic&lt;/h4&gt;&lt;a href="http://som3000.sourceforge.net/"&gt;This project&lt;/a&gt; will apparently make playlists based on BPM or other criteria. &lt;h4&gt;bpm detection&lt;/h4&gt;EyeD3 has a bpm tag command, so it's all good, but I couldn't find a true linx BPM detector. I eventually went after &lt;a href="http://www.abyssmedia.com/bpmcounter/"&gt;Abyssmedia's BPM Counter&lt;/a&gt; to run it under Wine. This is supposed to be accurate. It probably is but I was getting all kinds of Wine stub errors so i couldn't really use it without tweaking Wine. Accordingly, just reverted to the manual browser-based &lt;a href="http://www.salsacity.com/text/beat-counter"&gt;Salsa City&lt;/a&gt; applet. Just hit space bar, for instance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-1208877733652631364?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/1208877733652631364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=1208877733652631364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1208877733652631364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1208877733652631364'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2012/01/slackware-mp3-tags-editing.html' title='Slackware - mp3 tags, editing'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-747331846218281582</id><published>2011-12-20T15:56:00.000-08:00</published><updated>2011-12-20T17:02:12.718-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='zenwalk'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><title type='text'>video editing - command line</title><content type='html'>Links: &lt;a href="http://www.kinodv.org/article/static/2"&gt;Kino site&lt;/a&gt;&lt;hr&gt;&lt;br /&gt;I attempted to do everything with &lt;tt&gt;ffmpeg&lt;/tt&gt;, but found there were some limitations with dissolving and so on that seemed to require scripts and sort of reinventing the wheel&lt;sup&gt;1&lt;/sup&gt;. Accordingly, looked at GUI's and Kino stuck out (GTK libs), but seemed to require a lot of dependencies. Nevertheless, jumped in. &lt;h4&gt;dependencies&lt;/h4&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-747331846218281582?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/747331846218281582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=747331846218281582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/747331846218281582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/747331846218281582'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/12/video-editing-command-line.html' title='video editing - command line'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-9157842799676283521</id><published>2011-12-18T21:29:00.000-08:00</published><updated>2012-01-13T23:33:10.862-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usb'/><title type='text'>usb external drive - misc</title><content type='html'>Occasionally, the problem of "stale nfs file handles" arises on an external drive. What to do? Well, to run &lt;tt&gt;fsck&lt;/tt&gt;, the drive can't be mounted, how do we even determine it's "dev" name in order to run &lt;tt&gt;fsck&lt;/tt&gt;? the answer is our old friend &lt;tt&gt;udevmonitor&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;Typically, the answer will be &lt;tt&gt;/dev/sdc1&lt;/tt&gt;, however it cannot be fscked when mounted. Secondly, they tend to have a FAT32 or NTFS file system mounted at the store, so that there's problems keeping it clean and organized, trouble free.&lt;br /&gt;&lt;br /&gt;I recently was able to clean this external hardrive with the following steps.&lt;br /&gt;&lt;br /&gt;1) Be certain it was unmounted &lt;blockquote class="mono"&gt;# umount /dev/sdc&lt;/blockquote&gt; &lt;br /&gt;2) A typical &lt;tt&gt;fsck&lt;/tt&gt;managed the rest.&lt;blockquote class="mono"&gt;# fsck /dev/sdc&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-9157842799676283521?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/9157842799676283521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=9157842799676283521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/9157842799676283521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/9157842799676283521'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/12/usb-external-drive-misc.html' title='usb external drive - misc'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-1519571053094486790</id><published>2011-11-21T15:29:00.000-08:00</published><updated>2011-11-22T19:06:54.317-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='libs'/><title type='text'>ffmpeg - x264 - video libs</title><content type='html'>Links: &lt;a href="http://code.google.com/p/x264-ffmpeg-up-to-date/issues/detail?id=6"&gt;forum post identifying lavf circular problem&lt;/a&gt; &amp;nbsp; &lt;a href="http://code.google.com/p/ffmpegsource/"&gt;ffmpegsource&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.tuxradar.com/content/ffmpeg-made-easy"&gt;ffmpeg usage&lt;/a&gt;&lt;hr&gt;&lt;i&gt;Edit: The order that works is 1) x264, 2) ffmpeg, 3) ffmpegsource and, 4) finally recompile and install x264 again.&lt;/i&gt; &lt;br /&gt;For humor, please see a previous post today in which I vent indignant rage. In this post, I get down to fixing the problem. I did a &lt;a href="http://xinabox.blogspot.com/2010/12/ffmpeg-update.html"&gt;relatively extensive post a year ago updating ffmpeg&lt;/a&gt;, but at that time, I didn't realize how much I had lucked-out by having a current version of &lt;tt&gt;x264&lt;/tt&gt; in place. This time, I found out the hard way, as I noted earlier today, about a circular &lt;b class="mono"&gt;lavf&lt;/b&gt; dependency. &lt;h4&gt;x264 install&lt;/h4&gt; &lt;blockquote class="mono"&gt;$ ./configure&lt;br /&gt;Platform:   X86&lt;br /&gt;System:     LINUX&lt;br /&gt;cli:        yes&lt;br /&gt;libx264:    internal&lt;br /&gt;shared:     yes&lt;br /&gt;static:     no&lt;br /&gt;asm:        yes&lt;br /&gt;interlaced: yes&lt;br /&gt;avs:        no&lt;br /&gt;&lt;b&gt;lavf:       no&lt;/b&gt;&lt;br /&gt;ffms:       no&lt;br /&gt;gpac:       no&lt;br /&gt;gpl:        yes&lt;br /&gt;thread:     posix&lt;br /&gt;filters:    crop select_every &lt;br /&gt;debug:      no&lt;br /&gt;gprof:      no&lt;br /&gt;strip:      no&lt;br /&gt;PIC:        no&lt;br /&gt;visualize:  yes&lt;br /&gt;bit depth:  8&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;The unfortunate process due to SHIATTY DESIGN is going to be 1) x264 without lavf, 2 ffmpeg , 3) uninstall x264, 4) recompile and reinstall x264 with lavf-enabled. NOTE: also updated to the latest &lt;b class="mono"&gt;libtheora&lt;/b&gt; (v.1.1.1) and &lt;b class="mono"&gt;libmp3lame&lt;/b&gt; (v.3.99.2). Lame went in standard:&lt;blockquote class="mono"&gt;$ ./configure --prefix=/usr --enable-nasm&lt;br /&gt;$ make&lt;br /&gt;# rm /usr/lib/libmp3*&lt;br /&gt;# make install&lt;/blockquote&gt;Now on to the big jobs. &lt;h4&gt;1 - x264 (v.20111120 build) &lt;/h4&gt;&lt;blockquote class="mono"&gt;$ ./configure --prefix=/usr --enable-lavf --enable-visualize --enable-shared &lt;br /&gt;Platform:   X86&lt;br /&gt;System:     LINUX&lt;br /&gt;cli:        yes&lt;br /&gt;libx264:    internal&lt;br /&gt;shared:     yes&lt;br /&gt;static:     no&lt;br /&gt;asm:        yes&lt;br /&gt;interlaced: yes&lt;br /&gt;avs:        no&lt;br /&gt;&lt;b&gt;lavf:       no&lt;/b&gt;&lt;br /&gt;ffms:       no&lt;br /&gt;gpac:       no&lt;br /&gt;gpl:        yes&lt;br /&gt;thread:     posix&lt;br /&gt;filters:    resize crop select_every &lt;br /&gt;debug:      no&lt;br /&gt;gprof:      no&lt;br /&gt;strip:      no&lt;br /&gt;PIC:        no&lt;br /&gt;visualize:  yes&lt;br /&gt;bit depth:  8&lt;br /&gt;&lt;/blockquote&gt;&lt;h4&gt;2 - ffmpeg (v. 0.8.6)&lt;/h4&gt;&lt;blockquote class="mono"&gt;$ ./configure --prefix=/usr  --enable-libx264 --enable-shared --disable-static --enable-pthreads --enable-x11grab --enable-swscale --enable-libfaac --enable-libmp3lame --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libxvid --enable-gpl --enable-postproc --disable-ssse3  --enable-yasm --enable-nonfree --arch=i686 --cpu=i686 &lt;/blockquote&gt;make, #make install. This was without incident. &lt;h4&gt;3 - x264 uninstall and recompile (fail)&lt;/h4&gt;&lt;blockquote class="mono"&gt;$ ./configure --prefix=/usr --enable-lavf --enable-visualize --enable-shared &lt;br /&gt;Platform:   X86&lt;br /&gt;System:     LINUX&lt;br /&gt;cli:        yes&lt;br /&gt;libx264:    internal&lt;br /&gt;shared:     yes&lt;br /&gt;static:     no&lt;br /&gt;asm:        yes&lt;br /&gt;interlaced: yes&lt;br /&gt;avs:        no&lt;br /&gt;&lt;b&gt;lavf:       no&lt;/b&gt;&lt;br /&gt;ffms:       no&lt;br /&gt;gpac:       no&lt;br /&gt;gpl:        yes&lt;br /&gt;thread:     posix&lt;br /&gt;filters:    resize crop select_every &lt;br /&gt;debug:      no&lt;br /&gt;gprof:      no&lt;br /&gt;strip:      no&lt;br /&gt;PIC:        no&lt;br /&gt;visualize:  yes&lt;br /&gt;bit depth:  8&lt;br /&gt;&lt;/blockquote&gt;So nothing has changed yet. Let's try &lt;b class="mono"&gt;ffmpegsource&lt;/b&gt;&lt;h4&gt;4 - ffmpegsource (v.2.16)&lt;/h4&gt;As if things are not unhelpful enough in ffmpeg installation, these dumbasses who created &lt;tt&gt;ffmpesource&lt;/tt&gt; decided to package their files in 7z compression. So, instead of using some universally installed compression like .tgz or bz2, they know &lt;i&gt;you will have to install &lt;/i&gt; &lt;b class="mono"&gt;p7zip&lt;/b&gt; just to get their files. &lt;h4&gt;5 - p7zip&lt;/h4&gt;But wait, there's a problem, what a surprise. &lt;b class="mono"&gt;P7zip&lt;/b&gt;, just like ffmpegsource, &lt;i&gt;also&lt;/i&gt; has a non-standard installation process and it doesn't work. It's one of those installations where they have premade makefiles and you copy over "makefile" and then use "make". The problem with their masterplan is, following their (shiatty) directions to the letter, it results in nothing but &lt;blockquote class="mono"&gt;make: *** No rule to make target `all2_test'.  Stop.&lt;/blockquote&gt;  The entire process appears headed toward 40 hours simply for the portion of the work updating. I looked at the code, and it's not configured properly. Accordingly, I just ran&lt;blockquote class="mono"&gt;$ make -f makefile.oldmake all2&lt;/blockquote&gt;This is just a generic bullshiat build, but at least the code in this makefile is more than just a set of processor optimizations without any instructions. &lt;h4&gt;6 - back to ffmpegsource (v.2.16)&lt;/h4&gt;Three hours later, now that it's extracted, I see that this source is nothing but Windows crap; a .dll and an .exe. It's advertised as "cross platform", but that's something I have yet to see. So I was finally able to unpack FFmpegSource 2.16. This began to compile, but then threw errors during &lt;tt&gt;make&lt;/tt&gt;:&lt;blockquote class="mono"&gt;src/core/lavfaudio.cpp: In constructor 'FFLAVFAudio::FFLAVFAudio(const char*, int, FFMS_Index&amp;, int)':&lt;br /&gt;src/core/lavfaudio.cpp:40: error: 'avcodec_open2' was not declared in this scope&lt;br /&gt;&lt;/blockquote&gt;So it could not successfully build. This was likely a problem in the FFLAVFAudio definition inside header &lt;b class="mono"&gt;src/core/audiosource.h&lt;/b&gt;, since when I commented out the lines in &lt;tt&gt;lavfaudio.cpp&lt;/tt&gt;, the same fail moved to &lt;tt&gt;lavfindexer.cpp&lt;/tt&gt;, which included the same header. Indeed, grepping, we can see that the variable &lt;b class="mono"&gt;avcodec_open2&lt;/b&gt; is nowhere used, let alone defined, in &lt;b class="mono"&gt;audiosource.h&lt;/b&gt;. So appears we're out of luck again. I'm no C programmer and the Linux version of ffmpegsource isn't even maintained anymore. After all of this, I'm really backed into a situation where my x264 is just not going to be compiled with lavf support. Very very very annoying.&lt;h4&gt;7 - x264 w/out lavf&lt;/h4&gt; In&lt;h4&gt;8 - tests&lt;/h4&gt;No xvid encoding. I have libxvidcore installed, but it appears a bit outdated. Will attempt to update libxvid. I was sure I had it in my configure line, but it doesn't appear in &lt;b class="mono"&gt;ffmpeg -options&lt;/b&gt; either. Encodes to mp4.  The latest download is &lt;b class="mono"&gt;xvidcore 1.3.2&lt;/b&gt;. Weird that it didn't pick it up in the ffmpeg &lt;tt&gt;./configure&lt;/tt&gt;. Conundrum and annoying, and I bet it comes back to the lavf issue again. Just have a feeling that's pivotal. For now though, will update xvidcore.&lt;h4&gt;9 - xvidcore&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;library note&lt;/h4&gt;During &lt;tt&gt;./configure&lt;/tt&gt;, I often run across libraries not being found. It's good to make sure they're all in &lt;b class="mono"&gt;$LD_LIBRARY_PATH&lt;/b&gt; which you can just check with an "echo", like any other variable. Sometimes, I do this to be sure, if it looks funky&lt;blockquote&gt;export LD_LIBRARY_PATH=/usr/local/lib:/lib:/usr/lib&lt;/blockquote&gt;Also, it's good to make sure any special paths are in &lt;b class="mono"&gt;/etc/ld.so.conf&lt;/b&gt; and then run a quick &lt;b class="mono"&gt;# ldconfig&lt;/b&gt; to update the list of libs in the system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-1519571053094486790?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/1519571053094486790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=1519571053094486790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1519571053094486790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1519571053094486790'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/11/ffmpeg-x264-video-libs.html' title='ffmpeg - x264 - video libs'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-2099698481496615534</id><published>2011-11-21T13:40:00.000-08:00</published><updated>2011-11-22T09:13:41.629-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='libs'/><category scheme='http://www.blogger.com/atom/ns#' term='fail'/><title type='text'>ffmpeg - x264  (FAIL)</title><content type='html'>Links: &lt;a href="http://code.google.com/p/x264-ffmpeg-up-to-date/issues/detail?id=6"&gt;forum discussion of circular dependency for lavf&lt;/a&gt;&lt;hr&gt;Full disclosure: This post is not a solution - it's a vent about program dependencies, one of those items where you're forced to waste a DAY or TWO for no good reason other than developers didn't use their heads around installation. Anyone who uses &lt;tt&gt;ffmpeg&lt;/tt&gt; knows it's linked to &lt;tt&gt;libx264&lt;/tt&gt; like a hand-in-glove. Yesterday, I came across a very unappetizing twist in this relationship. I was deep into shrinking some videos into &lt;tt&gt;qvga&lt;/tt&gt; format for a NAXA device (see previous post) and found that my 1 yr old &lt;b class="mono"&gt;ffmpeg&lt;/b&gt; release was concatenating video and audio streams into an AVI file in ways giving flaky playback. Video(libxvid) and audio(MP3) were stable individually but, once concatenated, could not reliably playback on every device. With MP2 audio, there was no problem, so that it appeared possible the problem was how MP3 streams were being packaged by &lt;tt&gt;ffmpeg&lt;/tt&gt;. To rule this out, I started an update on &lt;tt&gt;ffmpeg&lt;/tt&gt;.&lt;br /&gt;&lt;h3&gt;Catch-22&lt;/h3&gt; After deleting my old version of ffmpeg, I downloaded &lt;tt&gt;ffmpeg&lt;/tt&gt; version 0.8.6 and found during &lt;tt&gt;./configure&lt;/tt&gt; that my version of x264 needed updating. I blasted my old x264 and got on that, whereby I learned that I wanted yasm, of course, for an assembled (faster) version of x264. Yasm in, I returned to x264, and found that lavf support was not showing during ./configure. WTF? This is where I learned of a motherfarking CATCH-22 circular dependency that x264 developers had implemented. X264 LAVF support requires a version of ffmpeg already installed. But ffmpeg requires that x264 be installed. Each requires the other for lavf support, so where can you start? This means I could not install x264 or or ffmpeg with lavf support or, in other words, that they would both be USELESS CRIPPLEWARE. WTF?&lt;br /&gt;&lt;br /&gt;The only solution possiblity I can see for this GARBAGE is to install x264 without lavf support, subsequeently install ffmpeg without lavf (because it's not in the x264, because it's not in the ffmpeg, because it's not in the x264, because...), then turn around and blow out the x264 and reinstall it with the crippled ffmpeg already in place (and no LAVF support within) and HOPE that the x264 can somehow provide LAVF when it doesn't see any in the ffmpeg. Finally, blow out the ffmpeg again, and reinstall it with x264 support enabled. Altogether, this would be 4 installations, but I don't see any other way to get the LAVF in there. Thanks, guys.&lt;br /&gt;&lt;br /&gt;All I wanted was to get some videos down to &lt;tt&gt;qvga&lt;/tt&gt; size, which was already days, now I see I'm going to have to fix the thing that i need to fix the other thing, etc etc etc, in order to, days later, have a working ffmpeg again, in order to get back on the long road to making &lt;tt&gt;qvga&lt;/tt&gt; sized videos. What a bunch of shiat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-2099698481496615534?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/2099698481496615534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=2099698481496615534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2099698481496615534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2099698481496615534'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/11/ffmpeg-x264-fail.html' title='ffmpeg - x264  (FAIL)'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-7798791269515272832</id><published>2011-11-19T16:46:00.000-08:00</published><updated>2011-11-21T15:28:26.588-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='libs'/><category scheme='http://www.blogger.com/atom/ns#' term='usb'/><title type='text'>naxa nmv-155 :: slackware (mini-slack)</title><content type='html'>Links:&lt;hr&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-BXv0i--ymlw/TshQ8TW40JI/AAAAAAAAAME/Ovtj0RnGsnY/s1600/naxa-nmv155.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 256px;" src="http://4.bp.blogspot.com/-BXv0i--ymlw/TshQ8TW40JI/AAAAAAAAAME/Ovtj0RnGsnY/s320/naxa-nmv155.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5676876327219155090" /&gt;&lt;/a&gt;&lt;br /&gt;Let's see if we can get anywhere with this inexpensive media player. Sometimes they're in a bargain bin for $15, on up to $50 in other places (probably $5 of parts in the unit). I found it for $25, which was a bit steep, but worth the experiment. Reading around a bit first, it appears that the two largest issues are usb recognition and media formatting. It's got a 4GB internal, and room for a card as well. But it's a cheap player and it's accordingly picky about file formats. Videos supposedly have to be perfectly packaged to play. I was excited to see that it will apparently read PDF's (&lt;i&gt;Edit: this was misadvertised; it reads only basic text files)&lt;/i&gt; too, in addition to mp3's, movies, and photos. Battery life is reasonable so, if I can get this going, I may have a nice solution for watching movies while flying.&lt;h4&gt;unboxing&lt;/h4&gt;Unit comes without any cover but fits perfectly into a G1 holder (remaining after I had a G1 stolen). A USB -&gt; micro-USB connector cable, a 300mA AC-&gt;micro-USB charger, earbuds, stylus (a plastic dental pick also works), Windows disk, and a small manual. &lt;h4&gt;usb detection/connection&lt;/h4&gt;Threw out the Windows disk and plugged in the USB, and no auto-recognition took place in any file managers. Nothing in &lt;b class="mono"&gt;lsusb&lt;/b&gt;. Seeing nothing in &lt;b class="mono"&gt;udevmonitor&lt;/b&gt; either. I swapped USB cables with a known good one I have for a different device and suddenly it shows up in my file manager, no problems. It's identified there as "GENERIC USB DISK DEVICE Music Player" (3.5GB). We're already at less than the advertised 4GB. In &lt;b class="mono"&gt;lsusb&lt;/b&gt;, it appears as &lt;blockquote class="mono"&gt;10d6:1101 Actions Semiconductor Co., Ltd D-Wave 2GB MP4 Player / AK1025 MP3/MP4 Player&lt;/blockquote&gt; This is probably most accurate. It tells me I've been ripped off, essentially. Appears I have one of those Chinese 2GB devices that was hacked to show twice its real capacity. Another system check also shows 3.7 GB, but I'd bet against it&lt;blockquote class="mono"&gt;# df&lt;br /&gt;/dev/sdc               &lt;b&gt;3709840&lt;/b&gt;      2084   3707756   1% /media/disk&lt;br /&gt;&lt;/blockquote&gt; &lt;u&gt;Summary:&lt;/u&gt; Threw away the included USB-&gt;micro-USB cable and the Windows disk, lowered my expectation to a little less than 2GB for this (likely) piece of shiat.&lt;h4&gt;video&lt;/h4&gt;Let's upload something less than 2GB and see if it plays. &lt;ul&gt;&lt;li&gt;MKV - First-up, a 1.4GB sports vid coded in MKV. Result: the file is not even detected in the device file manager. Can't even be seen there.  &lt;/li&gt;&lt;li&gt;AVI - Second, we'll do a standard AVI, let's go. Here's the encoding and resolution&lt;blockquote&gt;Stream #0.0: Video: mpeg4, yuv420p, 608x336&lt;br /&gt;Stream #0.1: Audio: mp3, 48000 Hz, stereo, s16, 96 kb/s&lt;br /&gt;&lt;/blockquote&gt;Wondering if the reason the previous file couldn't be read was whitespace in its title, so this 676MB file contains no whitespace.&lt;br /&gt;&lt;br /&gt;This file appeared in the device. I attempted to play it, but the NAXA displayed a "file format error". Going to eject out of this process and research.&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;more video&lt;/h4&gt; Research will be making a short vid with the device and see if that can playback. If so, I'll duplicate its settings with &lt;tt&gt;ffmpeg&lt;/tt&gt; or &lt;tt&gt;mencoder&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;So I made a little vid on the device. It packages raw vid into AVI containers. It plays on the device - here's the skinny:&lt;blockquote class="mono"&gt; Duration: 00:00:17.93, start: 0.000000, bitrate: 551 kb/s&lt;br /&gt;    Stream #0.0: Video: mpeg4, yuv420p, 320x240&lt;br /&gt;    Stream #0.1: Audio: mp3, 16000 Hz, stereo, s16, 64 kb/s&lt;br /&gt;&lt;/blockquote&gt;So 320x240 and 551k bitrate, and only 64 k on the sound. These settings aren't sufficient for movies, but we'll see if we can get something into that. Here was the first shot, though I didn't do anything with B frames or so forth, just tried to shrink one:&lt;blockquote&gt;$ ffmpeg -i some.avi -target ntsc-dvd -vcodec mpeg4 -s 320x240 -b 1500k -acodec libmp3lame -ar 44100 -ab 192k -ac 2 -vol 300 dinky.avi&lt;br /&gt;&lt;/blockquote&gt;This encoded without errors but playback produced errors and was without video or a duration stamp, though audio was OK. Playback errors - many of these:&lt;blockquote&gt;MPEG: bad sequence header missing marker bit!&lt;/blockquote&gt;All of this I think is something to do with trying to match MP4, which is what the device encodes. Perhaps with Q scale...I'll keep playing with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-7798791269515272832?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/7798791269515272832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=7798791269515272832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7798791269515272832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7798791269515272832'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/11/naxa-nmv-155-slackware-mini-slack.html' title='naxa nmv-155 :: slackware (mini-slack)'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-BXv0i--ymlw/TshQ8TW40JI/AAAAAAAAAME/Ovtj0RnGsnY/s72-c/naxa-nmv155.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8135120198579738603</id><published>2011-11-13T08:24:00.000-08:00</published><updated>2011-11-17T22:56:22.005-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fail'/><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><title type='text'>pdfedit - pdf's etc (FAIL)</title><content type='html'>Links: &lt;a href="http://sourceforge.net/projects/pdfedit/"&gt;sourceforge - pdfedit&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.boost.org/"&gt;www.boost.org&lt;/a&gt; &amp;nbsp; &lt;a href="http://xournal.sourceforge.net/"&gt;Xournal&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;Like most blog posts, this one is born from annoyance. My current rage was with PDF books retreived from Project Gutenberg. Typical PDF book files should be a few hundred K and fast to load. Some are. Some are several MB and also open quickly. But a few are several megabytes and, while loading, push one's CPU to an unhealthy 100% for minutes, instead of for a few seconds. This subset of larger PDF's are of course impossible to open on portable devices. The problem is the Gutenberg volunteers make a normal PDF, but then add a 1200 lines of resolution photo of the book's cover to the first page of the PDF. It takes a lot of CPU and memory for PDF software to simultaneously render a huge photo down to a tray icon, display the huge photo full-screen, and load the first few pages of text. The fix is to edit such PDF's initial page, reducing the first page photo to a typical 75 or 150 lines of resolution photo.   &lt;br /&gt;&lt;br /&gt;So these PDFs need repairing or else one's CPU will need replacing, but is there a Linux program out there which does this? We can say "yes" definitively if we want to spend hundreds on the &lt;i&gt;Adobe Acrobat&lt;/i&gt;&lt;trademark&gt; solution. And there are well-proven Linux tools like &lt;b class="mono"&gt;pdftotext&lt;/b&gt; that quickly extract all the PDF's text unformatted. But what about a Linux program that just opens the PDF, allows us to edit, and then close the file? Based on this ideal, I decided to give &lt;a href="http://sourceforge.net/projects/pdfedit/"&gt;PDFedit&lt;/a&gt; a shot.&lt;br /&gt;&lt;h4&gt;installation (v.0.4.5)&lt;/h4&gt;Comes as a &lt;tt&gt;.bz2&lt;/tt&gt; because they have decided to pander to the Windows crowd, apparently. The README indicates "Boost" is the dependency. Boost is just a set of C++ libraries, so I ran &lt;tt&gt;configure&lt;/tt&gt; before doing any checks to see if they might already be installed. Nope:&lt;blockquote class="mono"&gt;checking for boostlib &gt;= 1.20.0... configure: error: We could not detect the boost libraries (version 1.20 or higher). If you have a staged boost library (still not installed) please specify $BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in &lt;boost/version.hpp&gt;. See http://randspringer.de/boost for more documentation.&lt;/blockquote&gt; &lt;h4&gt;boost (v.1.47) installation&lt;/h4&gt; &lt;i&gt;PDFedit's&lt;/i&gt; pretension of requiring &lt;i&gt;Boost&lt;/i&gt; is annoying. For example, 1) C++ libraries sufficient for compiling are already on people's systems, we don't need a redundant set, 2) installing them means bloating one's system for no reason and, worst of all, 3) they are on Sourceforge servers so add an hour to the installation timeline. (&lt;i&gt;Edit: indeed, the first download was 30MB and was a set of PDF documents mislabeled as source.&lt;/i&gt;) A half hour was already wasted, but it's a dependency, gotta get it in. Let's go directly to the &lt;a href="http://www.boost.org/"&gt;boost site to get the libraries&lt;/a&gt;. And...the &lt;i&gt;Boost&lt;/i&gt; site bounced me back to Sourceforge for another 53 frigging MB at Sourceforge 60K "speeds". Installing &lt;i&gt;PDFedit&lt;/i&gt; is starting to look like a 2 hour operation. &lt;h4&gt;bootstrap&lt;/h4&gt;So, opened the &lt;i&gt;PDFedit&lt;/i&gt; source. No &lt;tt&gt;configure&lt;/tt&gt; file, no &lt;tt&gt;README&lt;/tt&gt;. Great. Noting there are some bootstrap files however, so we're apparently dealing with frigging bootstrap. Now we have bad choices by both the &lt;i&gt;Boost&lt;/i&gt; and the &lt;i&gt;PDFedit&lt;/i&gt; developers. Also &lt;i&gt;Boost&lt;/i&gt; appears to require Python. So the real dependency tree is apparently: PYTHON--&gt;BOOST--&gt;XPDF--&gt;PDFEDIT &lt;blockquote class="mono"&gt;$ ./boostrap.sh&lt;br /&gt;$ ./b2 --prefix=/usr&lt;/blockquote&gt; This doesn't work. I finally located some installation instructions. They're &lt;a href="http://www.boost.org/doc/libs/1_47_0/more/getting_started/unix-variants.html"&gt;on the Boost website&lt;/a&gt; instead of in a simple README in the source. They appear partially inaccurate since they are without root. Let's start over and change it to a way it will work.&lt;blockquote class="mono"&gt;$ ./boostrap.sh --prefix=/usr&lt;br /&gt;# ./b2 install&lt;/blockquote&gt; &lt;h4&gt;back to pdfedit (hours later)&lt;/h4&gt; I've almost forgotten why I needed to install PDFedit in the first place, but here we go. Did a mostly standard &lt;tt&gt;configure -prefix=/usr&lt;/tt&gt;, however the results showed me that no tools or kernel tests would be included. Start over.&lt;blockquote&gt;$ configure -prefix=/usr --enable-tools --enable-kernel-tests&lt;br /&gt;&lt;/blockquote&gt; This went well except that kernel checks couldn't be configured due to some missing package apparently called &lt;tt&gt;Cppunit&lt;/tt&gt; for which it wants version 1.10 or later. Let's see if we can get that in.&lt;h4&gt;Cppunit (v.1.12.1) installation&lt;/h4&gt;This was a standard &lt;tt&gt;configure -prefix=/usr&lt;/tt&gt;, &lt;tt&gt;make&lt;/tt&gt;, &lt;tt&gt;# make install&lt;/tt&gt;. No problems.&lt;h4&gt;back to pdfedit&lt;/h4&gt;Attempted 3 ways&lt;blockquote class="mono"&gt;$ configure -prefix=/usr --enable-tools --enable-pdfedit-core-dev --enable-kernel-tests&lt;br /&gt;$ configure -prefix=/usr --enable-tools --enable-pdfedit-core-dev&lt;br /&gt;$ configure -prefix=/usr&lt;br /&gt;&lt;/blockquote&gt;All of these resulted in fatal errors during &lt;i&gt;make&lt;/i&gt;&lt;blockquote class="mono"&gt;make[2]: *** [cpagecontents.o] Error 1&lt;br /&gt;make[2]: *** Waiting for unfinished jobs....&lt;br /&gt;make[2]: Leaving directory `/home/foo/Download/pdfedit-0.4.5/src/kernel'&lt;br /&gt;&lt;b&gt; make[1]: *** [kernel] Error 2&lt;/b&gt;&lt;br /&gt;make[1]: Leaving directory `/home/foo/Download/pdfedit-0.4.5/src'&lt;br /&gt;make: *** [source] Error 2&lt;br /&gt;&lt;/blockquote&gt;Apparently the &lt;i&gt;PDFedit&lt;/i&gt; source has design and documentation flaws much deeper than one can suss out in the time required for reasonable installation. On the first account, it should run with normal kernel settings. On the second account, they left the little detail of kernel recompiling out of their hard-to-locate documentation, when it should be the first thing noted. Further, the documentation neglects any information regarding which kernel switches would need to be set. So really, users would have to guess among 2,600 kernel options in order to use &lt;i&gt;PDFedit&lt;/i&gt;. In short, &lt;i&gt;PDFedit&lt;/i&gt; will either work on one's PC or it won't, dealer's choice. Troubleshooting using &lt;i&gt;strace&lt;/i&gt; and finding the needle in the haystack of the entire &lt;i&gt;PDFedit&lt;/i&gt; source, goes far beyond the investment most people should have to make to simply install a program. I certainly have more appealing things to do with two weeks.&lt;br /&gt;&lt;br /&gt;I wasted half a day on the shiatty &lt;i&gt;PDFedit&lt;/i&gt; product and was unable to install it or edit my PDF's. In the end, I ran &lt;b class="mono"&gt;pdftotext&lt;/b&gt; on the particular PDF I wanted to fix. I'll format that basic text file with &lt;i&gt;LaTeX&lt;/i&gt; as I read it, and then recompile when finished -- the resultant PDF will be easily read on a portable device. This is extra work I'll first have to do with a desktop, so I guess I'll read the book at home.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8135120198579738603?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8135120198579738603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8135120198579738603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8135120198579738603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8135120198579738603'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/11/pdfedit-pdfs-etc.html' title='pdfedit - pdf&apos;s etc (FAIL)'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-868672511701324684</id><published>2011-10-15T09:14:00.000-07:00</published><updated>2011-10-30T13:16:31.584-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='text'/><category scheme='http://www.blogger.com/atom/ns#' term='ocr'/><title type='text'>OCR in mini Slack (Zenwalk)</title><content type='html'>Links: &lt;a href="http://www.splitbrain.org/blog/2010-06/15-linux_ocr_software_comparison"&gt;comparison of common Nux OCR software&lt;/a&gt; &amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Tesseract_(software)"&gt;tesseract CLI&lt;/a&gt; &amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/OCRFeeder"&gt;OCRFeeder GUI (frontend)&lt;/a&gt; &amp;nbsp; &lt;a href="http://code.google.com/p/leptonica/"&gt;leptonica&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.diybookscanner.org/forum/viewtopic.php?f=3&amp;t=825"&gt;tip for cleaner output&lt;/a&gt; &amp;nbsp; &lt;a href="http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3"&gt;training information&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;If a person cites text often in reports or attempts to create their own repository for a thesis, manually retyping many pages of text is time-consuming. Meanwhile, our computers and scanners are sitting there, supposedly waiting to be handy. But obviously they'd additionally need OCR software to pull text off the scans; that's this post.&lt;br /&gt;&lt;br /&gt;Based on accuracy figures at &lt;a href="http://www.splitbrain.org/blog/2010-06/15-linux_ocr_software_comparison"&gt;this site&lt;/a&gt;, and a standard Linux user's aversion to paying for software except as donations, it appeared &lt;i&gt;tesseract&lt;/i&gt; could be a solution.&lt;h4&gt;tesseract installation&lt;/h4&gt; &lt;i&gt;Tesseract&lt;/i&gt; source was at &lt;a href="http://code.google.com/p/tesseract-ocr/"&gt;Google Code&lt;/a&gt; (thanks,guys), and was version 3.0 as I wrote this. Per usual, I didn't bother with reading or dependency checks, just gave it a shot.  &lt;br /&gt;&lt;br /&gt;Standard &lt;i&gt;configure&lt;/i&gt;, &lt;i&gt;make&lt;/i&gt;, and &lt;i&gt;# make install&lt;/i&gt; seemed to go well, but I found on first run that it couldn't find its libraries. I &lt;i&gt;strace&lt;/i&gt;'d and saw  the wrong directories. Reaccomplished &lt;i&gt;configure&lt;/i&gt; as... &lt;blockquote class="mono"&gt;$ configure -prefix=/usr&lt;/blockquote&gt;...and all was fine. Or so I thought. I attempted to run the program and it couldn't open the jpeg file I was using for an input. Time to return to Google code and actually go through the &lt;a href="http://code.google.com/p/tesseract-ocr/wiki/ReadMe"&gt;ReadMe&lt;/a&gt;, apparently.&lt;h4&gt;tesseract installation pt 2&lt;/h4&gt; The ReadMe indicated two additional steps to the above would be required: 1) installing "Leptonica", if I wanted &lt;i&gt;tesseract&lt;/i&gt; to OCR image files other than TIFF's (eg, jpegs) and, 2) selecting language(s) to place into  &lt;b class="mono"&gt;/usr/share/tessdata&lt;/b&gt; following the build and installation.&lt;br /&gt;&lt;h4&gt;leptonica installation&lt;/h4&gt; The &lt;a href="http://code.google.com/p/leptonica/"&gt;main site for leptonica&lt;/a&gt; is another Google code site, but there are also many sites for users getting deeply into it as a physics analysis tool or so on. For my purposes, just downloaded the source (version 1.68 as of this writing) and performed a standard &lt;i&gt;configure&lt;/i&gt;, &lt;i&gt;make&lt;/i&gt;, and &lt;i&gt;# make install&lt;/i&gt;, with the small &lt;i&gt;configure&lt;/i&gt; modification of &lt;blockquote class="mono"&gt;$ configure -prefix=/usr&lt;/blockquote&gt;&lt;h4&gt;tesseract installation pt 3&lt;/h4&gt;With &lt;i&gt;leptonica&lt;/i&gt; apparently in without a problem, I built &lt;i&gt;tesseract&lt;/i&gt; again, in order to let the build process recognize that &lt;i&gt;leptonica&lt;/i&gt; was now in place. [Again, &lt;i&gt;leptonica&lt;/i&gt; was installed to provide &lt;i&gt;tesseract&lt;/i&gt; with the capacity to extract text from file types (eg. jpegs), other than TIFF's.] &lt;i&gt;Tesseract&lt;/i&gt; installed smoothly again with a standard &lt;i&gt;configure&lt;/i&gt;, &lt;i&gt;make&lt;/i&gt;, and &lt;i&gt;# make install&lt;/i&gt;, again using the slight modification &lt;blockquote class="mono"&gt;$ configure -prefix=/usr&lt;/blockquote&gt;&lt;br /&gt;&lt;i&gt;Tesseract&lt;/i&gt; language files were available at the same &lt;a href="http://code.google.com/p/tesseract-ocr/"&gt;Google code site&lt;/a&gt; where we initially retrieved &lt;i&gt;tesseract&lt;/i&gt; itself. I selected english and spanish (in order to demonstrate to students), but there appears to be roughly 50 languages available there. They all come as &lt;b class="mono"&gt;.gz&lt;/b&gt; files; simply unzip and then add or remove them as desired from &lt;b class="mono"&gt;/usr/share/tessdata&lt;/b&gt; (following installation of &lt;i&gt;tesseract&lt;/i&gt;). Most of us will only need to leave the english file in there -- &lt;b class="mono"&gt;eng.traineddata&lt;/b&gt;.&lt;h4&gt;tesseract summary&lt;/h4&gt;The program read text at 100% accuracy, from pages scanned at 300 lines in b/w, and took about 8 seconds (on my old system) per image to convert. Even adding scanning time, this should be significantly more efficient than typing speeds for most people, though maybe those in the 90+ wpm category can just retype, not sure. The installation steps in summary: &lt;ol&gt;&lt;li&gt;Unless only using TIFF inputs (eg faxes), verify installation of &lt;i&gt;leptonica&lt;/i&gt; before building &lt;i&gt;tesseract&lt;/i&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Download &lt;i&gt;tesseract&lt;/i&gt; source, compile and install&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Download language files, unpack, and move (requires root) to installed &lt;b class="mono"&gt;/usr/share/tessdata&lt;/b&gt; directory&lt;/li&gt;&lt;/ol&gt;If converting an image into English text, one needn't specify the language. It's simply...&lt;blockquote class="mono"&gt;$ tesseract inputfile.jpeg outputname&lt;/blockquote&gt;...which produces &lt;b class="mono"&gt;outputname.txt&lt;/b&gt;. For iterations, a simple script can roll through image after image. &lt;h4&gt;still to come&lt;/h4&gt; Time permitting, I will install the &lt;i&gt;OCRFeeder&lt;/i&gt; GUI frontend and see if that adds any pleasing advantages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-868672511701324684?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/868672511701324684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=868672511701324684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/868672511701324684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/868672511701324684'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/10/ocr.html' title='OCR in mini Slack (Zenwalk)'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-6180893182059897959</id><published>2011-10-15T01:07:00.000-07:00</published><updated>2011-10-17T11:25:30.476-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='configure'/><title type='text'>forcing lib location during configure</title><content type='html'>So many times I can't count, I'll compile and install an application and then the application, which compiles without errors, won't be able to locate its libraries. I know the dependencies are there, but why can't the package find its libraries when it installed them? Annoying as hell.&lt;br /&gt;&lt;br /&gt;So I run &lt;b class="mono"&gt;strace &amp;lt;app&gt;&lt;/b&gt;, find where the app is looking, run &lt;b class="mono"&gt;find&lt;/b&gt; to locate the libraries, and then create soft links. This solves the problem, but sux when I might have to create 10 or 20 softlinks.&lt;br /&gt;&lt;br /&gt;I'd much rather avoid softlinks entirely and use "configure" options to force libs go where they will be found, but there's an apparent Catch-22: I don't know in advance which directories the application will seek its libraries until after its installation. So, although I'd like to force "configure" to install libs to those directories, how do I know where the application will seek them until I install it and attempt to run it? Additionally, is the answer within &lt;i&gt;make&lt;/i&gt; or &lt;i&gt;configure&lt;/i&gt;?&lt;br /&gt;&lt;h4&gt;solution&lt;/h4&gt;The answer, it would seem, is to force &lt;i&gt;make&lt;/i&gt; to compile the app so that it both looks for its libs where I tell it to look, AND installs its libs into that location. Can it be done? &lt;h4&gt;&lt;i&gt;configure&lt;/i&gt; or &lt;i&gt;make&lt;/i&gt;?&lt;/h4&gt; Theoretically, it should be possible to change the installation directories either through manipulation of &lt;i&gt;make&lt;/i&gt; or through &lt;i&gt;configure&lt;/i&gt;. In &lt;i&gt;make&lt;/i&gt; it would presumably be through a configuration file &lt;i&gt;make.config&lt;/i&gt; or some such; in &lt;i&gt;configure&lt;/i&gt;, by forcing the prefix each time, eg.&lt;blockquote class="mono"&gt;$ configure prefix=/usr&lt;/blockquote&gt;The easier route appears to be to change it in &lt;i&gt;configure&lt;/i&gt;. By default, &lt;i&gt;make&lt;/i&gt; on my system appends &lt;b class="mono"&gt;/usr/local&lt;/b&gt;. This means, for example, that libs will install into &lt;b class="mono"&gt;/usr/local/lib&lt;/b&gt;. The easiest way to repair this is via &lt;i&gt;configure&lt;/i&gt; "prefix" command as noted above. Using the command above, libs would be installed in the &lt;b class="mono"&gt;/usr/lib&lt;/b&gt; instead of &lt;b class="mono"&gt;/usr/local/lib&lt;/b&gt;. It also means however, that the bin file will install into &lt;b class="mono"&gt;/usr/bin&lt;/b&gt; instead of &lt;b class="mono"&gt;/usr/local/bin&lt;/b&gt;.&lt;h4&gt;conclusion&lt;/h4&gt;Although there's very likely something like a &lt;i&gt;make.config&lt;/i&gt; file to change its settings, I was unable to locate such a file with some cursory searching. The fast solution appears to be forcing the issue in &lt;i&gt;configure&lt;/i&gt; using ,eg.&lt;blockquote class="mono"&gt;$ configure prefix=/usr&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-6180893182059897959?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/6180893182059897959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=6180893182059897959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6180893182059897959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6180893182059897959'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/10/forcing-lib-location-during-configure.html' title='forcing lib location during &lt;i&gt;configure&lt;/i&gt;'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-7512480882161183151</id><published>2011-09-15T17:09:00.000-07:00</published><updated>2011-09-18T14:15:14.983-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><title type='text'>Imagemagick - pdf, etc</title><content type='html'>A trail of crumbs for what's worked with turning jpgs into printable pdfs. The key is "printable", because we can move jpgs into a pdf without any issues, but what does it take to print? &lt;br /&gt;&lt;br /&gt;For example, suppose we have a simple two-page letter: we sign it and it's ready to mail so we scan it. We want to take the two jpgs, one for each page, and make it into a single 2-page pdf. This is trivial. Put them in a directory and&lt;blockquote class="mono"&gt;$ convert *.jpg output.pdf&lt;/blockquote&gt; We want this as close to copy quality, in case we have to print it later. Particularly so if we have a collection of handwritten notes from a class. Clarity is important. &lt;h4&gt;scanning resolution&lt;/h4&gt; I typically don't scan at more than 75 lines, because that makes a clean copy for a jpg and it isn't unreasonably large.&lt;h4&gt;merge pdf's into one&lt;/h4&gt;&lt;blockquote class="mono"&gt;$ gs -q -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf a.pdf b.pdf&lt;/blockquote&gt;Using GhostScript, quality is maintained, unlike if "convert" from ImageMagick is used. ImageMagick is good for going from one file type, say jpg's, and converting to another, say pdf's. If you run it with pdf's as the input and output, quality is diminished. Other pdf merge programs are not typically installed with a distro, but can be added...eg, &lt;b class="mono"&gt;pdftk&lt;/b&gt; and &lt;b class="mono"&gt;pdfconcat&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-7512480882161183151?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/7512480882161183151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=7512480882161183151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7512480882161183151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7512480882161183151'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/09/imagemagick-pdf-ets.html' title='Imagemagick - pdf, etc'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-6511269100610263030</id><published>2011-09-08T00:16:00.000-07:00</published><updated>2012-01-26T17:58:41.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUPS'/><category scheme='http://www.blogger.com/atom/ns#' term='printing'/><title type='text'>cups - hp office jet pro 8500a</title><content type='html'>Links: &lt;a href="http://www.openprinting.org/printers"&gt;open printing.org&lt;/a&gt; &amp;nbsp;  &lt;a href="http://hplipopensource.com/hplip-web/tech_docs/man_pages/setup.html"&gt;hp-setup options&lt;/a&gt;&lt;hr&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-X3oQAcDz5SQ/TmvKkan7WGI/AAAAAAAAAL0/BS2mCpK8TNs/s1600/hp8500a.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 130px;" src="http://2.bp.blogspot.com/-X3oQAcDz5SQ/TmvKkan7WGI/AAAAAAAAAL0/BS2mCpK8TNs/s200/hp8500a.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5650832884437309538" /&gt;&lt;/a&gt;Hey, I like printer installations the easy way, typically in about 10 minutes or less with &lt;b class="mono"&gt;lpadmin&lt;/b&gt; and CUPS from the command line. The 8500A, however, is an HP printer. HP documentation states that HP translation software (HPLIP), in addition to CUPS, is required for all HP printers operating with Linux. But I have encountered HP printers which work without HPLIP. So, I attempted to install this HP8500A without HPLIP, and it worked. The description for the process is in Part 1 below. Parts 2 and 3 document the installation of the printer using HPLIP. Some steps in Parts 2 and 3 are repeats from Part 1.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Pt 1 What worked (w/out HP software)&lt;/h3&gt;&lt;h4&gt;short version&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Download the &lt;tt&gt;.ppd&lt;/tt&gt;, even if it's inside a larger HPLIP release. Discard the remaining HPLIP software&lt;/li&gt;&lt;li&gt;Put the &lt;tt&gt;.ppd&lt;/tt&gt; into &lt;b class="mono"&gt; /usr/share/cups/model&lt;/b&gt; so &lt;tt&gt;lpadmin&lt;/tt&gt; can locate it&lt;/li&gt;&lt;li&gt;Add &lt;tt&gt;FileDevice Yes&lt;/tt&gt; to &lt;b class="mono"&gt;/etc/cups/cupsd.conf&lt;/b&gt; if it's not already there and restart CUPS to read the change&lt;/li&gt;&lt;li&gt;Add the user to group &lt;tt&gt;lp&lt;/tt&gt; and be sure the system can see the printer in basic user mode, eg, the printer should be visible in &lt;tt&gt;$ lsusb&lt;/tt&gt; &lt;/li&gt;&lt;li&gt;Using &lt;tt&gt;///dev/usb/lp0&lt;/tt&gt; seems to work better than &lt;tt&gt;usb:/dev/usb/lp0 &lt;/tt&gt; in the installation line&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;long version&lt;/h4&gt;1. Download the latest HPLIP source. Why? CUPS needs a &lt;b class="mono"&gt;.ppd&lt;/b&gt; (printer information) file for any printer it operates, HP or otherwise. In the case of newer HP printers, the ppd's are contained within the HPLIP source. After extracting the HP8500A ppd (&lt;b class="mono"&gt;hp-officejet_pro_8500_a910.ppd&lt;/b&gt;), discard the remaining HPLIP software.&lt;br /&gt;&lt;br /&gt;2. During install, &lt;b class="mono"&gt;lpadmin&lt;/b&gt; searches for &lt;tt&gt;.ppd&lt;/tt&gt;'s  in directory &lt;b class="mono"&gt;/usr/share/cups/model&lt;/b&gt;. Copy the HP5800A &lt;tt&gt;.ppd&lt;/tt&gt; to that directory so it will be able to find it. &lt;br /&gt;&lt;br /&gt;3. In order to use &lt;b class="mono"&gt;lpadmin&lt;/b&gt;, activate CUPS... &lt;br /&gt;&lt;blockquote class="mono"&gt;# service start cups&lt;/blockquote&gt;...then fire-up &lt;b class="mono"&gt;udevmonitor&lt;/b&gt;, plug the printer in to the USB, note its /dev ID, and add the USB printer to that /dev address&lt;br /&gt;&lt;blockquote class="mono"&gt;# lpadmin -p hp8500 -E -v usb:/dev/usb/lp0 -m hp-officejet_pro_8500_a910.ppd&lt;/blockquote&gt; Or, if the printer is on a network, find its net address and then...&lt;br /&gt;&lt;blockquote class="mono"&gt;# lpadmin -p hp8500 -E -v socket://192.168.1.101/printer -m hp-officejet_pro_8500_a910.ppd &lt;/blockquote&gt;&lt;br /&gt;4. The above is all that is typically required. However, this printer was not detected by CUPS following installation. The HP printer apparently broadcasts in such a way that it does not allow detection without root. That is to say, if one runs &lt;b class="mono"&gt;$ lsusb &lt;/b&gt;, the HP is not found. The printer is found with &lt;b class="mono"&gt;# lsusb&lt;/b&gt;. This is a group permissions issue, so I ran &lt;b class="mono"&gt;$ groups&lt;/b&gt; and, sure enough, I was not a member of the &lt;i&gt;lp&lt;/i&gt; group at the user level. Solution, uninstalled the printer...&lt;blockquote&gt;# lpadmin -x HP8500A &lt;/blockquote&gt;...and added myself as a user to the &lt;i&gt;lp&lt;/i&gt; group using the GUI invoked from &lt;blockquote&gt;# userconfig&lt;/blockquote&gt;There's some file that can be sourced after that to update the system, but I just rebooted so save effort. I installed again and the printer was detected.&lt;br /&gt;&lt;br /&gt;5. Attempting to print, however, the printer hung -- "processing" the file without printing it. I recalled I also had an installed USB Brother that had been working. A look at the list of the installed printers to see if there were differences revealed: &lt;blockquote class="mono"&gt;# lpstat -v&lt;br /&gt;device for Brother: ///dev/usb/lp0&lt;br /&gt;device for hp8500: usb://dev/usb/lp0&lt;br /&gt;&lt;/blockquote&gt;Note the Brother device shows a slightly different /dev URL than the HP. I uninstalled the HP again (&lt;tt&gt;lpadmin -x&lt;/tt&gt;), and reinstalled using &lt;tt&gt;///dev/usb/lp0&lt;/tt&gt;. This led to an error&lt;blockquote class="mono"&gt;# lpadmin -p hp8500 -E -v ///dev/usb/lp0 -m hp8500a.ppd&lt;br /&gt;lpadmin: File device URIs have been disabled! To enable, see the FileDevice directive in "/etc/cups/cupsd.conf".&lt;/blockquote&gt;Accordingly, opened the file &lt;b class="mono"&gt;/etc/cups/cupsd.conf&lt;/b&gt;&lt;br /&gt;and added the line&lt;blockquote class="mono"&gt;FileDevice Yes&lt;/blockquote&gt;Restarted CUPS so the conf file would be read. Uninstalled the printer and installed it again&lt;blockquote class="mono"&gt;# lpadmin -p hp8500 -E -v ///dev/usb/lp0 -m hp8500a.ppd&lt;br /&gt;&lt;/blockquote&gt;Prints without problems. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Pt 2 What worked (HPLIP and other HP software)&lt;/h3&gt;&lt;br /&gt;First, proceed the first part of Part 3 below to make sure HPLIP is properly installed. This may be an extensive project requiring software updates and other bullsh*t. &lt;br /&gt;&lt;br /&gt;Following HPLIP installation, you need to be certain the HP printer is detectable at the user level. Why? The program &lt;b class="mono"&gt;hp-install&lt;/b&gt; is necessary for installation and it must be run at the user level, not the root level. If &lt;b class="mono"&gt;hp-install&lt;/b&gt; cannot detect the printer, it cannot install it. But the HP printer broadcasts in such a way that it does not allow detection without group membership or root. That is to say, if one runs &lt;b class="mono"&gt;$ lsusb &lt;/b&gt;, the HP is not found, but it IS found with &lt;b class="mono"&gt;# lsusb&lt;/b&gt;. To correct the permission, run &lt;blockquote&gt;# userconfig&lt;/blockquote&gt; to invoke the groups and users GUI. Add the user to the &lt;i&gt;lp&lt;/i&gt; group and reboot. Check that the printer is detected at the user level:&lt;b class="mono"&gt;$ lsub&lt;/b&gt; If all is OK, note the USB address, which in this case was 002:003. Now you can install the printer:&lt;blockquote&gt; $ hp-install -i --auto 002:003&lt;/blockquote&gt; Ater the installation, there is a short authentication step requiring root, but this is the final step. It should print.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Pt 3 What DIDN'T work (HPLIP and other HP software)&lt;/h3&gt;&lt;h4&gt;HPLIP v.3.11.7 goes inta...&lt;/h4&gt;Who knows? Some directories somewhere in my system. Did a standard configure, which dumped-out and told me I couldn't do a network build without SNMP installed. Annoying and unnecessarily prohibitive, since all an Ethernet printer needs is a TCP/IP stack, which was already there, and I wasn't going to rearrange my SNMP installation just for HPLIP requirements. But what could I do -- the HPLIP programmers had hard-coded the SNMP requirement? Ok then, decision made: forget networking. So, disabled network capability, then completed a standard make and # make-install. Again, no telling into which directories. &lt;h4&gt; will HPLIP work?&lt;/h4&gt;Come on, you know it didn't. The first error looked like this &lt;blockquote class="mono"&gt;Filter "hpcups" for printer "HP8500A" not available: No such file or directory&lt;/blockquote&gt;A guy, &lt;b&gt;ccin1492&lt;/b&gt;, on &lt;i&gt;Linux Questions&lt;/i&gt; found that his similar problem was related to where HPLIP was putting its files:&lt;br /&gt;&lt;blockquote&gt;It appears that HPLIP is putting stuff in one directory /usr/lib64/cups/filter, but CUPS is putting stuff in /usr/lib/cups/filter. So to fix my problem I linked the following files into /usr/lib/cups/filter so CUPS can see them.&lt;br /&gt;&lt;br /&gt;hpcups*&lt;br /&gt;hplipjs*&lt;br /&gt;pstoraster*&lt;br /&gt;pstopxl*&lt;/blockquote&gt;And so on. In my installation, it appeared that the HPLIP was putting stuff in to &lt;b class="mono"&gt;/usr/lib/cups/filter&lt;/b&gt;, but that's not where CUPS was looking. CUPS was looking for shiat where it usually does, in &lt;b class="mono"&gt;/usr/share/cups/model&lt;/b&gt;. So I made soft links to that directory but I still had no luck. Next thing, I ran &lt;b class="mono"&gt;hp-check&lt;/b&gt;. Here are the errors it located (leaving out the successes)&lt;br /&gt;&lt;blockquote class="mono"&gt;&lt;b&gt;$ hp-check -t&lt;/b&gt; &lt;br /&gt;Checking for dependency: CUPS DDK - CUPS driver development kit...&lt;br /&gt;warning: NOT FOUND! This is an OPTIONAL/RUNTIME ONLY dependency. Some HPLIP functionality may not function properly.&lt;br /&gt;&lt;br /&gt;Checking for dependency: libnetsnmp-devel - SNMP networking library development files...&lt;br /&gt;error: NOT FOUND! This is a REQUIRED dependency. Please make sure that this dependency is installed before installing or running HPLIP.&lt;br /&gt;&lt;br /&gt;Checking for dependency: PIL - Python Imaging Library (required for commandline scanning with hp-scan)...&lt;br /&gt;warning: NOT FOUND! This is an OPTIONAL/RUNTIME ONLY dependency. Some HPLIP functionality may not function properly.&lt;br /&gt;&lt;br /&gt;Checking for dependency: PolicyKit - Administrative policy framework...&lt;br /&gt;warning: NOT FOUND! This is an OPTIONAL/RUNTIME ONLY dependency. Some HPLIP functionality may not function properly.&lt;br /&gt;&lt;br /&gt;Checking for dependency: PyQt 4 DBus - DBus Support for PyQt4...&lt;br /&gt;error: NOT FOUND! This is a REQUIRED/RUNTIME ONLY dependency. Please make sure that this dependency is installed before installing or running HPLIP.&lt;br /&gt;&lt;br /&gt;Checking for dependency: Reportlab - PDF library for Python...&lt;br /&gt;warning: NOT FOUND! This is an OPTIONAL/RUNTIME ONLY dependency. Some HPLIP functionality may not function properly. &lt;/blockquote&gt; How wonderful to have HPLIP working for me, right? &lt;h4&gt;removing HPLIP&lt;/h4&gt;Let's get this garbage out and try something else. To remove HPLIP, I first had to figure out where it was. Looking around (another half hour), the two main places appeared to be &lt;i&gt;/usr/local/bin&lt;/i&gt; and &lt;i&gt;/usr/local/share/hplip&lt;/i&gt;. Accordingly, I destroyed them. &lt;blockquote class="mono"&gt;&lt;b&gt;# rm -r&lt;/b&gt; /usr/local/bin/hp*&lt;br /&gt;&lt;b&gt;# rm -r&lt;/b&gt; /usr/local/share/hplip&lt;br /&gt;&lt;b&gt;# rm -r&lt;/b&gt; /usr/local/share/cups/drv/*&lt;/blockquote&gt; I left &lt;i&gt;hpcups&lt;/i&gt;, in case I needed that for the &lt;b class="mono"&gt;ppd&lt;/b&gt; I intended to retrieve from &lt;a href="http://www.openprinting.org/printers"&gt;open printing.org&lt;/a&gt;. I knew some of the HP ppd's at &lt;i&gt;OpenPrinting&lt;/i&gt;  were standalone instead of HPLIP dependent. Digging into the &lt;i&gt;OpenPrinting&lt;/i&gt; HP8500A documentation though, I was still eventually routed back to HPLIP. But I didn't give up. I figured that, if I could just edit an HP ppd enough to make it work with &lt;b class="mono"&gt;cupsd&lt;/b&gt; instead of requiring &lt;b class="mono"&gt;hpcups&lt;/b&gt;, I'd be set. And I would have been set, but no, inside the HP8500A ppd, it makes proprietary HP printer calls which CUPS does not independently recognize. Dang it, back to needing HPLIP or just getting a Brother printer (they all work like a charm with CUPS).&lt;h4&gt;hplip again&lt;/h4&gt;By this point, I had wasted more than 12 man hours configuring the "free" HP8500A I had access to, when I could have instead bought a network compatible Brother HL-2270DW for $100. Really smart. Anyway, the first step to returning HPLIP was deleting my manual installation of the ppd &lt;blockquote class="mono"&gt;# lpadmin -x HP8500A&lt;/blockquote&gt;Next, recompiling. This time, I didn't bother with fax, scanner, copier, or network capability, hopefully to make it a simple HPLIP install for basic USB printing. &lt;blockquote class="mono"&gt;$ configure --disable-network-build --disable-hpijs-only-build --disable-qt4 --enable-qt3 --disable-fax-build &lt;/blockquote&gt; After installation, received errors&lt;blockquote class="mono"&gt;&lt;b&gt;$ hp-setup&lt;/b&gt;&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;  File "/usr/local/bin/hp-setup", line 45, in &lt;module&gt;&lt;br /&gt;    from base import device, utils, tui, models, module&lt;br /&gt;  File "/usr/local/share/hplip/base/device.py", line 39, in &lt;module&gt;&lt;br /&gt;    import status&lt;br /&gt;  File "/usr/local/share/hplip/base/status.py", line 45, in &lt;module&gt;&lt;br /&gt;    import hpmudext&lt;br /&gt;ImportError: No module named hpmudext&lt;br /&gt;&lt;/blockquote&gt;Look for &lt;i&gt;hpmudext&lt;/i&gt;. &lt;blockquote class="mono"&gt;&lt;b&gt;$ find -name hpmudext*&lt;/b&gt;&lt;br /&gt;./usr/local/lib/python2.6/site-packages/hpmudext.so&lt;br /&gt;./usr/local/lib/python2.6/site-packages/hpmudext.la&lt;br /&gt;&lt;/blockquote&gt;It's in there, so for some reason HPLIP can't find the directory or doesn't recognize the version. Check python version.&lt;blockquote class="mono"&gt;&lt;b&gt;$ python -V&lt;/b&gt;&lt;br /&gt;Python 2.6.1 &lt;/blockquote&gt; Noting &lt;a href="https://answers.launchpad.net/hplip/+question/117046"&gt; here&lt;/a&gt;, that Python 2.6.1 goes with HPLIP version 3.5.10-4 , but I have HPLIP version 3.11.7 compiled and installed. It might be advisable to remove the newer version of HPLIP I have installed and replace it by compiling and installing the older 3.5.10-4 version of HPLIP, but the printer (HP8500A) is a new model and there is no &lt;i&gt;ppd&lt;/i&gt; support in the older 3.5 HPLIP. I'll need that newer HPLIP to interface with the printer. What to do? I could save the newer ppd and attempt to use it with the older HPLIP, I suppose. First lets make a soft link to where HPLIP is finding other modules and see if it can locate &lt;i&gt;hpmudext.so&lt;/i&gt; there.&lt;blockquote class="mono"&gt;# ln -s /usr/local/lib/python2.6/site-packages/hpmudext.so /usr/lib/python2.6/hpmudext.so&lt;br /&gt;# ln -s /usr/local/lib/python2.6/site-packages/hpmudext.la /usr/lib/python2.6/hpmudext.la &lt;/blockquote&gt;Better, but still errors.&lt;blockquote class="mono"&gt;&lt;b&gt;$ hp-setup&lt;/b&gt;&lt;br /&gt;warning: CUPSEXT could not be loaded. Please check HPLIP installation.&lt;br /&gt;&lt;/blockquote&gt; Look for &lt;i&gt;cupsext&lt;/i&gt;. &lt;blockquote class="mono"&gt;&lt;b&gt;$ find -name cupsext*&lt;/b&gt;&lt;br /&gt;./usr/local/lib/python2.6/site-packages/cupsext.so&lt;br /&gt;./usr/local/lib/python2.6/site-packages/cupsext.la&lt;br /&gt;&lt;/blockquote&gt;Appears same problem there as with &lt;i&gt;hpmudext&lt;/i&gt;, so lets make softlinks for &lt;i&gt;cupsext&lt;/i&gt; too.&lt;blockquote class="mono"&gt;# ln -s /usr/local/lib/python2.6/site-packages/cupsext.so /usr/lib/python2.6/cupsext.so&lt;br /&gt;# ln -s /usr/local/lib/python2.6/site-packages/cupsext.la /usr/lib/python2.6/cupsext.la &lt;/blockquote&gt; Also made similar links to &lt;b class="mono"&gt;scanext&lt;/b&gt; and &lt;b class="mono"&gt;pcardext&lt;/b&gt;, to complete the four Python extension links. Now let's try to run &lt;i&gt;hp-setup&lt;/i&gt; again.&lt;blockquote class="mono"&gt;&lt;b&gt;$ hp-setup&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;HP Linux Imaging and Printing System (ver. 3.11.7)&lt;br /&gt;Printer/Fax Setup Utility ver. 9.0&lt;br /&gt;&lt;br /&gt;Copyright (c) 2001-9 Hewlett-Packard Development Company, LP&lt;br /&gt;This software comes with ABSOLUTELY NO WARRANTY.&lt;br /&gt;This is free software, and you are welcome to distribute it&lt;br /&gt;under certain conditions. See COPYING file for more details.&lt;br /&gt;&lt;br /&gt;error: PyQt not installed. GUI not available. Exiting.&lt;br /&gt;warning: Qt/PyQt 3 initialization failed.&lt;br /&gt;error: hp-setup requires GUI support (try running with --qt4). Also, try using interactive (-i) mode.&lt;br /&gt;&lt;/blockquote&gt; Appears we have functionality using the softlink hack, but no GUI. We can live without a GUI: not into engineering a PyQt install. So let's attempt "interactive mode" for another half page printout of information.&lt;blockquote class="mono"&gt;&lt;b&gt;$ hp-setup -i&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;HP Linux Imaging and Printing System (ver. 3.11.7)&lt;br /&gt;Printer/Fax Setup Utility ver. 9.0&lt;br /&gt;&lt;br /&gt;Copyright (c) 2001-9 Hewlett-Packard Development Company, LP&lt;br /&gt;This software comes with ABSOLUTELY NO WARRANTY.&lt;br /&gt;This is free software, and you are welcome to distribute it&lt;br /&gt;under certain conditions. See COPYING file for more details.&lt;br /&gt;&lt;br /&gt;(Note: Defaults for each question are maked with a '*'. Press &lt;enter&gt; to accept the default.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Using connection type: usb&lt;br /&gt;&lt;br /&gt;error: No device selected/specified or that supports this functionality.&lt;/blockquote&gt; Have to read up on &lt;i&gt;hp-setup&lt;/i&gt; command options apparently. Here's &lt;a href="http://hplipopensource.com/hplip-web/tech_docs/man_pages/setup.html"&gt;a good page for hp-setup commands&lt;/a&gt; that I'll also put above in the links. Meanwhile, let's go purchase a USB cable - getting close.&lt;h4&gt;permissions&lt;/h4&gt;Along with its other problems, HPLIP brings a permission complication. The HP printer broadcasts in such a way that it does not allow detection without root. That is to say, if one runs &lt;b class="mono"&gt;$ lsusb &lt;/b&gt;, the HP is not found. The printer is found with &lt;b class="mono"&gt;# lsusb&lt;/b&gt;. But this means &lt;b class="mono"&gt;hp-install&lt;/b&gt;, which is run at the user level, cannot locate the printer and install it until this permission is addressed. I ran &lt;b class="mono"&gt;$ groups&lt;/b&gt; and noted I was not a member of the &lt;i&gt;lp&lt;/i&gt; group.&lt;blockquote&gt;# userconfig&lt;/blockquote&gt;Added the user to the &lt;i&gt;lp&lt;/i&gt; group -- there's some file you can source after that to update it, but it's easier just to reboot. Following the reboot, the user level &lt;b class="mono"&gt;$ lsub&lt;/b&gt; found the printer at 002:003. At that point, I simply ran &lt;blockquote&gt; $ hp-install -i --auto 002:003&lt;/blockquote&gt; This successfully added the printer, the only pause being to authenticate as root during the final step. I have a Brother also installed (CUPS only) and this is how the print options appeared when I selected "Print" in a document menu.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-y19vdlzz7rg/TmvqbdnMZxI/AAAAAAAAAL8/aGV5vNSdosI/s1600/printers.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 164px;" src="http://3.bp.blogspot.com/-y19vdlzz7rg/TmvqbdnMZxI/AAAAAAAAAL8/aGV5vNSdosI/s320/printers.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5650867914992805650" /&gt;&lt;/a&gt; On the CUPS side, &lt;i&gt;cupsd&lt;/i&gt; also apparently allowed HPLIP to write into the configuration file &lt;b class="mono"&gt;/etc/cups/printers.conf&lt;/b&gt;. The working configuration file (including the Brother):&lt;blockquote class="mono"&gt;&lt;b&gt;# cat /etc/cups/printers.conf&lt;/b&gt;&lt;br /&gt;Printer configuration file for CUPS v1.3.9&lt;br /&gt;# Written by cupsd on 2011-09-10 15:16&lt;br /&gt;&amp;lt;Printer Brother&gt;&lt;br /&gt;Info Brother&lt;br /&gt;DeviceURI file:///dev/usb/lp0&lt;br /&gt;State Idle&lt;br /&gt;StateTime 1303970446&lt;br /&gt;Accepting Yes&lt;br /&gt;Shared Yes&lt;br /&gt;JobSheets none none&lt;br /&gt;QuotaPeriod 0&lt;br /&gt;PageLimit 0&lt;br /&gt;KLimit 0&lt;br /&gt;OpPolicy default&lt;br /&gt;ErrorPolicy stop-printer&lt;br /&gt;&amp;lt;/Printer&gt;&lt;br /&gt;&amp;lt;Printer Officejet_Pro_8500_A910&gt;&lt;br /&gt;Info Automatically setup by HPLIP&lt;br /&gt;Location &lt;br /&gt;DeviceURI hp:/usb/Officejet_Pro_8500_A910?serial=3VN0DGP2XN&lt;br /&gt;State Idle&lt;br /&gt;StateTime 1315693016&lt;br /&gt;Accepting Yes&lt;br /&gt;Shared Yes&lt;br /&gt;JobSheets none none&lt;br /&gt;QuotaPeriod 0&lt;br /&gt;PageLimit 0&lt;br /&gt;KLimit 0&lt;br /&gt;OpPolicy default&lt;br /&gt;ErrorPolicy stop-printer&lt;br /&gt;&amp;lt;/Printer&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-6511269100610263030?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/6511269100610263030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=6511269100610263030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6511269100610263030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6511269100610263030'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/09/cups-hp-office-jet-pro-8500a.html' title='cups - hp office jet pro 8500a'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-X3oQAcDz5SQ/TmvKkan7WGI/AAAAAAAAAL0/BS2mCpK8TNs/s72-c/hp8500a.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-7173389361341916306</id><published>2011-08-25T11:06:00.000-07:00</published><updated>2011-08-28T00:29:00.591-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='messenger'/><title type='text'>pidgin hijinx</title><content type='html'>Links: &lt;a href="http://www.pidgin.im/"&gt;pidgin&lt;/a&gt; &amp;nbsp; &lt;a href="http://code.google.com/p/iptux/"&gt;iptux&lt;/a&gt;&lt;hr&gt; Note: &lt;i&gt;iptux&lt;/i&gt; and &lt;i&gt;giver&lt;/i&gt; are two other LAN messengers briefly considered here. &lt;i&gt;Giver&lt;/i&gt; has a Novell &lt;i&gt;mono&lt;/i&gt; dependency, which is to say "Microsoft mono dependency", and it was abandoned in 2009, around the time MSoft acquired Novell. Go figure. I didn't bother with that one. &lt;i&gt;Iptux&lt;/i&gt; looks pretty good. Current development. No WAN connection. Behaves itself by not attempting to jump outside the LAN. No server. Presence detection. Fast.&lt;hr&gt;&lt;br /&gt;I installed &lt;i&gt;Pidgin&lt;/i&gt; several years ago for simple local messaging on the home LAN using &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-EuVIEve8Vqo/TlbFqD44qUI/AAAAAAAAALk/9l-wWyMbH8I/s1600/logo.pidgin.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 107px; height: 185px;" src="http://1.bp.blogspot.com/-EuVIEve8Vqo/TlbFqD44qUI/AAAAAAAAALk/9l-wWyMbH8I/s200/logo.pidgin.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5644916509344573762" /&gt;&lt;/a&gt; a basic Bonjour protocol. It's worked great for simple text messages. This week I wanted to move files around the LAN in some easy way without mounting via NFS. Just need the occasional ad-hoc file transfer between systems. I attempted to use &lt;i&gt;Pidgin&lt;/i&gt; and found that my installation, which was v2.5, would open a file, but then stalled without transferring any of the file.I checked for MTU limitations, ran those down to 1400, but still could not do it. Attempts were made on two Linksys routers, a cheapo &lt;i&gt;e1000&lt;/i&gt; and an older &lt;i&gt;befsr41&lt;/i&gt; dug-out from the storage shed. Neither router could transfer. I only want this for a LAN, not going out over the Net, so it was annoying. I hate NFS mounts because they're persistent, must be configured, require mounting points, and a lot of other garbage. Fuse is similarly out. So, back to the drawing board with &lt;i&gt;Pidgin&lt;/i&gt; and Bonjour.&lt;br /&gt;&lt;h4&gt;ethernet/nic checks&lt;/h4&gt;Initial checks with &lt;b class="mono"&gt;ethtool&lt;/b&gt; and &lt;b class="mono"&gt;mii-tool&lt;/b&gt; showed all was fine and I was easily able to rapidly copy files between the two computers using &lt;b class="mono"&gt;scp&lt;/b&gt; as long as the &lt;b class="mono"&gt;sshd&lt;/b&gt; daemon was turned-on on both computers. Still, no file transfer with &lt;i&gt;Pidgin&lt;/i&gt;.&lt;br /&gt;&lt;h4&gt;version checks&lt;/h4&gt; The most recent, as I write, is version 2.10. Of greater interest to me is which dependencies will provide which sort of support, since I want to be sure and build-in file transferring. Libpurple is included in the build. For installation, I just made sure the old version 2.5 was removed and then did configure, make , make install. All went well and I had file transfer.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-7173389361341916306?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/7173389361341916306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=7173389361341916306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7173389361341916306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7173389361341916306'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/08/pidgin-hijinx.html' title='pidgin hijinx'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-EuVIEve8Vqo/TlbFqD44qUI/AAAAAAAAALk/9l-wWyMbH8I/s72-c/logo.pidgin.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-2739517661498344183</id><published>2011-05-30T21:12:00.000-07:00</published><updated>2011-07-20T20:32:05.405-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zenwalk'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><category scheme='http://www.blogger.com/atom/ns#' term='usb'/><title type='text'>wusb54g - ralink 2500</title><content type='html'>A family member running kernel 2.6.28.7 was having some problems with her older Linksys WUSB54G (Ralink 2500 chip). As seen in the photo, this is an external USB Wi-Fi card. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-3wdf__aHg0A/TeRvtFtJnHI/AAAAAAAAALY/4QoYx-SvAi8/s1600/wusb54g.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 220px; height: 220px;" src="http://4.bp.blogspot.com/-3wdf__aHg0A/TeRvtFtJnHI/AAAAAAAAALY/4QoYx-SvAi8/s400/wusb54g.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5612733856026827890" /&gt;&lt;/a&gt; When I installed her system (Zenwalk Slackware) back in 2009, &lt;b class="mono"&gt;ndiswrapper&lt;/b&gt; was the answer for this chip, which was posing problems for some Linux installations. It did fine, even with encryption and so on. Recently however, the relatives de-encrypted their network, probably so a visiting relative could use their network or during a Windows update, and the Linksys card was unable to associate with the LAN router once the network was keyless. This is a matter of opening or dropping the encryption configuration line and then ordering the remaining lines. However, over a telephone, implementing these kinds of changes required a lot of patience from my relative (thank you, Mom!). Ultimately, at least over the phone, it appeared there was no associating to this unencrypted network via &lt;b class="mono"&gt;ndiswrapper&lt;/b&gt; and using standard commands such as, say:&lt;blockquote class="mono"&gt;iwconfig wlan0 essid Foo&lt;br /&gt;iwconfig wlan0 key open  #(or using "off")&lt;br /&gt;iwconfig wlan0 ap 00:20:etc&lt;br /&gt;&lt;/blockquote&gt; So it was a conundrum. We tried several different permutations, as noted above, before giving-up for the weekend.&lt;br /&gt;&lt;br /&gt;Then I got to thinking about the old &lt;b class="mono"&gt;rt2500&lt;/b&gt; driver. This driver is anachronistic, as all of these legacy Ralink cards now are managed directly in the kernel. But it is less anachronistic than &lt;i&gt;ndiswrapper&lt;/i&gt;. Further, it would be a lot to ask a family member to update their entire system, a full Linux installation, with only telephone guidance. It looked like the middle ground would be to withdraw &lt;i&gt;ndiswrapper&lt;/i&gt; and install the last/latest rt2500 driver to see if it was less finicky. Would the source for this older driver still be available. Turns out it was no longer available at the Ralink site. Summary: I couldn't travel to Mom's place to make the changes and it had been going slowly over the phone.&lt;br /&gt;&lt;h4&gt;Solution: Linksys WUSB100&lt;/h4&gt; I locally purchased a &lt;b&gt;WUSB100&lt;/b&gt;, id &lt;b&gt;1737:0078&lt;/b&gt; ($15), to install onto my system, make configuration software, and then mail to her. There are two versions of WUSB100 &lt;h4&gt;Version 1 module rt2870sta&lt;/h4&gt; &lt;a href="http://wiki.debian.org/rt2870sta"&gt;This site&lt;/a&gt; indicates that the the &lt;b class="mono"&gt;rt2870sta&lt;/b&gt; works with the following Linksys USBs:&lt;blockquote class="mono"&gt;USB: 1737:0070 Linksys WUSB100 v1 RangePlus Wireless Network Adapter [Ralink RT2870]&lt;br /&gt;USB: 1737:0071 Linksys WUSB600N v1 Dual-Band Wireless-N Network Adapter [Ralink RT2870]&lt;br /&gt;USB: 1737:0077 Linksys WUSB54GC v3 802.11g Adapter [Ralink RT2070L]&lt;/blockquote&gt; Noting that my &lt;b class="mono"&gt;1737:0078&lt;/b&gt; is not on that list&lt;h4&gt;Version 2 - module rt2870 or rt3070?&lt;/h4&gt; Written on the back of the WUSB100 in my possession: &lt;i&gt;FCCID Q87-WUSB100v2&lt;/i&gt;. Still began with the rt2870 since some were having success with this. The kernel would recognize it and assign ra0, but would not assign memory resources or allow connection. During this process, found there are at least two chips in version 2, the Belkin &lt;b class="mono"&gt;050d:825b&lt;/b&gt; or what I have, the Ralink chip &lt;b class="mono"&gt;1737:0078&lt;/b&gt;. I'm on the right track but, for the Ralink chip, it appears will have to go to the &lt;b class="mono"&gt;rt3070sta&lt;/b&gt; which means a patch is necessary. That will be my next weekend project. Meanwhile, I've also left the Belkin stuff here for those who have Belkins.&lt;br /&gt;Ralink &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.friendlyarm.net/forum/topic/2461"&gt;part 1 (includes rt3070 source)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://paparazzi.enac.fr/wiki/Rt3070usb"&gt;part 2  the patch&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; This is supposed to take care of the patch stuff according to &lt;a href="http://xlcwu.wordpress.com/2010/07/09/build-rt3070-kernel-module-on-ubuntu-10-04-lucid-lynx/"&gt;this site&lt;/a&gt;&lt;blockquote&gt;I believe the fix is to replace all instances of usb_buffer_alloc with usb_alloc_coherent and all instances of usb_buffer_free with usb_free_coherent. The instances I replaced were in include/os/rt_linux.h and os/linux/rt_usb_util.c.&lt;/blockquote&gt;Belkin&lt;ul&gt;&lt;li&gt; &lt;a href="http://www.pclinuxos.com/forum/index.php?topic=68310.30"&gt;part 1&lt;/li&gt;&lt;li&gt;&lt;/a&gt; &lt;a href="http://forums.opensuse.org/network-internet/wireless/421405-rt2870sta-problem.html"&gt;part 2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;preinstalled driver attempts&lt;/h4&gt; Well before I compiled the &lt;i&gt;rt3070sta&lt;/i&gt; module, I had hoped for the good luck of a driver included with the distro working. In favor of such a dream, the WUSB100 was detected by &lt;b class="mono"&gt;udevmonitor&lt;/b&gt; and &lt;b class="mono"&gt;lsusb&lt;/b&gt;. However, no module was being loaded. Thus, I looked in the wifi driver directory for useful drviers included with the distro:&lt;blockquote class="mono"&gt;&lt;b&gt;$ls /lib/modules/2.6.28.7/kernel/drivers/net/wireless/&lt;/b&gt;&lt;br /&gt;[snip] rtl8187.ko rt2x00 (directory) rtl8180.ko&lt;br /&gt;&lt;b&gt;$ls /lib/modules/2.6.28.7/kernel/drivers/net/wireless/rt2x00&lt;/b&gt;&lt;br /&gt;rt2400pci.ko  rt2500pci.ko  rt2500usb.ko  rt2x00lib.ko rt2x00pci.ko  rt2x00usb.ko  rt61pci.ko rt73usb.ko&lt;/blockquote&gt; I tried loading some of these with &lt;b class="mono"&gt;modprobe&lt;/b&gt; but the card continued to go unreachable. That is, in spite of modprobing these drivers in, the command&lt;blockquote class="mono"&gt;#ifconfig ra0 up (or wifi0, etc)&lt;/blockquote&gt; was yielding nothing. Back to the Google machine.&lt;h4&gt;module rt2870sta attempts&lt;/h4&gt; Also before compiling the &lt;i&gt;rt3070sta&lt;/i&gt;, I'd noticed some had success with the &lt;i&gt;rt2870sta&lt;/i&gt; module and a few tweaks. It wasn't already onboard:&lt;blockquote class="mono"&gt;root[/]# find -iname rt2870*&lt;br /&gt;root[/]#&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;downloaded &lt;b class="mono"&gt;rt3070sta&lt;/b&gt;, now deprecated, cached &lt;a href="http://forum.vectorlinux.com/index.php?topic=11843.0"&gt;here&lt;/a&gt; (scroll down to "nightflier"'s post) and also &lt;a href="https://build.opensuse.org/package/files?package=rt3070sta&amp;project=home%3AAkoellh%3AKernelmodules&amp;rev=ef1e9c1a45bd36a09f4d515aab8deff3"&gt;here&lt;/a&gt;, along with some associated patches.&lt;/li&gt;&lt;li&gt;downloaded the &lt;b class="mono"&gt;rt2870sta&lt;/b&gt; source, now deprecated, &lt;a href="http://eng.ralinktech.com.tw/support.php?s=2"&gt;here&lt;/a&gt;.This provided me with version&lt;b class="mono"&gt;2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;downloaded the firmware, same location. File is &lt;b class="mono"&gt;RT2870_Firmware_V22.zip&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;The settings for &lt;b class="mono"&gt;rt2870sta.dat&lt;/b&gt; are explained &lt;a href="https://docs.google.com/document/pub?id=1RsszIlvVqL5GGUb4piXfN9l3u2N35pku3cFCFEJ7pY8"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;rt2870sta compiling notes&lt;/h3&gt;&lt;a href="http://www.cyberciti.biz/tips/linux-install-rt2870-chipset-based-usb-wireless-adapter.html"&gt;most comprehensive link&lt;/a&gt;&lt;br /&gt;Before compiling, be sure the card ID "1737:0078" is included in the card ID section. I located them by navigating to the top source directory and then&lt;blockquote class="mono"&gt;$ grep -r USB_DEVICE *&lt;/blockquote&gt; In my source, these statements were in &lt;b class="mono"&gt;/common/rtusb_dev_id.c&lt;/b&gt;. I added the line in there: &lt;blockquote class="mono"&gt;{USB_DEVICE(0x1737,0x0078)}, /* Linksys WUSB100v2 Pepsi */&lt;/blockquote&gt;(I like Pepsi, so whatever). In  &lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/350695"&gt;this fellow's source&lt;/a&gt;, they were in &lt;b class="mono"&gt;rt2870.h&lt;/b&gt;.&lt;br /&gt;Still within the source directory, I also made the following change&lt;blockquote class="mono"&gt;&lt;b&gt;$ geany /os/linux/config.mk&lt;/b&gt;&lt;br /&gt;HAS_WPA_SUPPLICANT=y&lt;br /&gt;HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y&lt;/blockquote&gt;Blacklist any modules that might attempt to load and conflict.&lt;blockquote class="mono"&gt;&lt;b&gt;# geany /etc/modprobe.d/blacklist&lt;/b&gt;&lt;br /&gt;blacklist rt2x00usb&lt;br /&gt;blacklist rt2x00lib&lt;br /&gt;blacklist rt2500usb&lt;/blockquote&gt;Backed-up the default &lt;b class="mono"&gt;/etc/Wireless/RT2870STA/RT2870STA.dat&lt;/b&gt; &lt;blockquote class="mono"&gt;# cp /etc/Wireless/RT2870STA/RT2870STA.dat /etc/Wireless/RT2870STA/RT2870STA.bak.def&lt;/blockquote&gt;Compiling is a basic $make/#make install operation. Unzip and install the firmware, although I noted no significant change from before the firmware was installed to after. &lt;blockquote class="mono"&gt;# cp Download/RT2870_Firmware_V22/rt2870.bin /lib/firmware/&lt;br /&gt;# chmod 555 /lib/firmware/rt2870.bin &lt;/blockquote&gt;After compiling, installation, and modprobing, it's good to run &lt;b class="mono"&gt;# depmod&lt;/b&gt;, so I did that as well. Zince I'm using Zlackware Zenwalk, added the MAC to &lt;b class="mono"&gt;/etc/iftab&lt;/b&gt;. Added the module and updated the kernel&lt;blockquote class="mono"&gt;# depmod&lt;/blockquote&gt;&lt;br /&gt;After all of this, the &lt;b class="mono"&gt;rt2870sta&lt;/b&gt; was a no-go. A deeper look, showed that it lacks product and bus information and was not even being assigned an IRQ or other resources. For example, compare it to the (working) Atheros card below&lt;blockquote class="mono"&gt;&lt;b&gt;# lshw -C network&lt;/b&gt;&lt;br /&gt;    *-network&lt;br /&gt;       description: Wireless interface&lt;br /&gt;       product: AR242x 802.11abg Wireless PCI Express Adapter&lt;br /&gt;       vendor: Atheros Communications Inc.&lt;br /&gt;       physical id: 0&lt;br /&gt;       bus info: pci@0000:05:00.0&lt;br /&gt;       logical name: wifi0&lt;br /&gt;       version: 01&lt;br /&gt;       serial: 00:2e:xx:xx:xx:xx&lt;br /&gt;       width: 64 bits&lt;br /&gt;       clock: 33MHz&lt;br /&gt;       capabilities: pm msi pciexpress msix bus_master cap_list logical ethernet physical wireless&lt;br /&gt;       configuration: broadcast=yes driver=ath_pci ip=192.168.1.2 latency=0 multicast=yes wireless=IEEE 802.11g&lt;br /&gt;       resources: irq:18 memory:f3100000-f310ffff&lt;br /&gt;  *-network&lt;br /&gt;       description: Wireless interface&lt;br /&gt;       physical id: 1&lt;br /&gt;       logical name: ra0&lt;br /&gt;       serial: 68:3e:xx:xx:xx:xx&lt;br /&gt;       capabilities: ethernet physical wireless&lt;br /&gt;       configuration: broadcast=yes driver=RALINK WLAN driverversion=2.4.0.0 multicast=yes wireless=Ralink STA&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;it was suggested &lt;a href="http://razcx.wordpress.com/2010/04/11/getting-a-linksys-rangeplus-wusb100-17370078-working-with-ubuntu-9-10/"&gt;here&lt;/a&gt;, that a change had to be made in &lt;b class="mono"&gt;/etc/udev/rules.d/10-wusb100.rules&lt;/b&gt;, or that the file had to be created. The rule then called &lt;b class="mono"&gt;rt2870sta&lt;/b&gt; and it would then work with the "0078" version.&lt;/li&gt;&lt;li&gt;creating a softlink worked for &lt;a href="http://ubuntuforums.org/showthread.php?t=960642&amp;page=20"&gt;this guy&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-2739517661498344183?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/2739517661498344183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=2739517661498344183' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2739517661498344183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2739517661498344183'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/05/wusb54g-ralink-2500.html' title='wusb54g - ralink 2500'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-3wdf__aHg0A/TeRvtFtJnHI/AAAAAAAAALY/4QoYx-SvAi8/s72-c/wusb54g.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4001765211847527048</id><published>2011-05-21T02:47:00.000-07:00</published><updated>2011-05-21T05:16:45.401-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='cell'/><title type='text'>ffmpeg - phone size</title><content type='html'>Links: &lt;a href="http://groups.google.com/group/ipodifier/browse_thread/thread/ffdd33d5d49843ab?pli=1"&gt;volume post&lt;/a&gt; &amp;nbsp; &lt;a href="http://howto-pages.org/ffmpeg/"&gt;general howto&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs"&gt;random settings&lt;/a&gt; &amp;nbsp;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;Mp4's and flv's are our friends, cell-phone sized (320x240 generic, 432x320 iPhone) viewables. Trick with &lt;b class="mono"&gt;ffmpeg&lt;/b&gt; is getting them there without pixellation and the right volume settings. This entry is just a collection of transcoding settings I've played with. There are plenty of good howto's out there forum information.&lt;br /&gt;&lt;h4&gt;audio :: volume and sync&lt;/h4&gt;Sometimes &lt;b class="mono"&gt;.flv&lt;/b&gt; files are the correct size but with sync or volume inconsistencies. Resampling to keep volume the same is done by leaving off volume settings, or using the default setting of &lt;b class="mono"&gt;-vol 256&lt;/b&gt;. Going to 512 will double it, and I've found that 768 works well if the original sound is faint. So, to resample with an increase in volume:&lt;blockquote class="mono"&gt;$ ffmpeg -i somefile.flv -vol 512 -acodec libfaac someout.flv&lt;br /&gt;&lt;/blockquote&gt;I find specifying "libfaac" avoids libmp3 and its playback oddities. Increases the output file size by maybe 10 percent, say from 5.8M to 5.9M, but stable playback. &lt;br /&gt;&lt;h4&gt;video :: pixellation&lt;/h4&gt; I think the pixellation that occurs shrinking videos is if the pixel size stays the same size as it was for the larger version. Also, 2 pass encoding is probably the best, sending the first pass to null, and turning off the audio ("an") and video (-y /dev/null) &lt;blockquote class="mono"&gt;$ ffmpeg somefile.avi -pass 1 -f rawvideo -y /dev/null -an &lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4001765211847527048?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4001765211847527048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4001765211847527048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4001765211847527048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4001765211847527048'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/05/ffmpeg-phone-size.html' title='ffmpeg - phone size'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8372622503452821600</id><published>2011-05-15T20:25:00.000-07:00</published><updated>2011-05-15T23:11:02.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cell'/><title type='text'>moto V3 - linux</title><content type='html'>Links: &amp;nbsp;&lt;a href="http://sourceforge.net/projects/moto4lin/"&gt;p2kmoto source&lt;/a&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://packages.ubuntu.com/source/lucid/moto4lin"&gt;moto4lin source&lt;/a&gt; &lt;br /&gt;&lt;hr&gt; My old HTC G1 was recently ripped-off at work and I didn't want to purchase a G2X, so it had me thinking. First I thought I'd pay the $120 insurance deductible and get a replacement G1 to take me to whenever I made a decision. Second though, I had an old V3 (device code ID 22b8:4901) sitting in a drawer --  why not activate it and see if I could live with WAP and a non-QWERTY keypad until I decided? Meanwhile, see if 2011 Linux access was enough to save contacts and photos.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-MSDztPPCOPQ/TdCbe8edjlI/AAAAAAAAALQ/PbL8HJTgesQ/s1600/motov3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 294px;" src="http://3.bp.blogspot.com/-MSDztPPCOPQ/TdCbe8edjlI/AAAAAAAAALQ/PbL8HJTgesQ/s320/motov3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5607152492008541778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h4&gt;activation - 10 minutes plus driving time&lt;/h4&gt; My G1 was T-Mobile, and I had served the two year plan. The V3 was a Cingular phone and I had also served the Cingular contract prior to switching to T-Mobile G1 in 2008. Before I switched to T-Mobile, I went to the Cingular store (by then, AT&amp;T) and they gave me the unlock code for the V3. I never used the code, so I brought it with me to the T-Mobile store last week with the old V3. At the T-Mobile store, a dude put in a new SIM and entered the code. The V3 fired right up. He switched the V3 onto the plan I had for the G1, and away I went. I sat in the parking lot and messed with the text and the WAP for awhile, and it seemed to work. It was a blast from the past.&lt;br /&gt;&lt;h4&gt;PC connection - a few hours&lt;/h4&gt;The part of the experiment Googling around for Linux access to Motorolas was uninspiring. It appeared the likely candidates were &lt;b class="mono"&gt;p2kmoto&lt;/b&gt; and &lt;b class="mono"&gt;moto4linux&lt;/b&gt;. These two pieces work together. Available at the links at the top of the page. &lt;br /&gt;&lt;br /&gt;Compile and install &lt;b class="mono"&gt;p2kmoto&lt;/b&gt;, which puts in &lt;b class="mono"&gt;libp2kmoto&lt;/b&gt;, and the CLI executable &lt;b class="mono"&gt;p2ktest&lt;/b&gt;. Then, hook-up the phone (it takes a micro-USB cable) and run &lt;b class="mono"&gt;# p2ktest&lt;/b&gt; to see if it's connecting in the right ways. I first ran &lt;b class="mono"&gt;# udevmonitor&lt;/b&gt; to be sure that HAL was doing the right things with the phone; also double-checked with &lt;b class="mono"&gt;# lsusb&lt;/b&gt;. All was good.&lt;br /&gt;&lt;br /&gt;Next compile and install &lt;b class="mono"&gt;moto4linux&lt;/b&gt;. The &lt;b class="mono"&gt;moto4linux&lt;/b&gt; is run simply as &lt;i&gt;user&lt;/i&gt;, but it won't find the phone. So the order is:&lt;blockquote class="mono"&gt;# p2ktest&lt;br /&gt;$ moto4linux&lt;/blockquote&gt;The above two commands are all that are needed to manage phone access and files. &lt;b class="mono"&gt;P2ktest&lt;/b&gt; apparently finds and opens the phone for access; &lt;b class="mono"&gt;moto4linux&lt;/b&gt; then does the file management. It (&lt;b class="mono"&gt;moto4linux&lt;/b&gt;) opens a GUI, so it's cut and pasty.    &lt;br /&gt;&lt;h4&gt;WAP access - ongoing&lt;/h4&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8372622503452821600?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8372622503452821600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8372622503452821600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8372622503452821600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8372622503452821600'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/05/moto-v3-linux.html' title='moto V3 - linux'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-MSDztPPCOPQ/TdCbe8edjlI/AAAAAAAAALQ/PbL8HJTgesQ/s72-c/motov3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-7027395387858519025</id><published>2011-04-27T20:45:00.000-07:00</published><updated>2011-04-30T13:19:44.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUPS'/><category scheme='http://www.blogger.com/atom/ns#' term='scanning'/><category scheme='http://www.blogger.com/atom/ns#' term='printing'/><title type='text'>cups - brother mfc-8840d</title><content type='html'>Links: &amp;nbsp;&lt;a href="http://www.openprinting.org/printer/Brother/Brother-MFC-8840D"&gt;Openprinting.org (Printing)&lt;/a&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.sane-project.org"&gt;Sane project (Scanning)&lt;/a&gt; &amp;nbsp; &amp;nbsp;&lt;a href="http://welcome.solutions.brother.com/BSC/public/us/us/en/model_top/monolasermfc/mfc8840d_all.html?reg=us&amp;c=us&amp;lang=en&amp;prod=mfc8840d_all"&gt;Brother (manufacturer)&lt;/a&gt; &lt;br /&gt;&lt;hr&gt; &lt;h3&gt;pt1: printing&lt;/h3&gt;A friend has an older Brother printer, the MFC-8840D (device code 04f9:0160), an all-in-one copy-print-fax machine. He mentioned that the machine is reachable via its USB port or via a built-in WiFi card, but neither were apparently operating consistently with his XP box. It piqued my interest because I hadn't previously configured a WiFi printer w/Linux. The MFC8840D seemed like a good place to start -- &lt;a href="http://www.openprinting.org/printer/Brother/Brother-MFC-8840D"&gt;Openprinting.org&lt;/a&gt; noted it has "excellent" performance with Linux. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-ELggatFCtyE/TbjngVMrhfI/AAAAAAAAALI/O15kQcvdgSU/s1600/brothermfc8840d.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 220px; height: 220px;" src="http://3.bp.blogspot.com/-ELggatFCtyE/TbjngVMrhfI/AAAAAAAAALI/O15kQcvdgSU/s320/brothermfc8840d.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5600480679267370482" /&gt;&lt;/a&gt; &lt;br /&gt;1. Accordingly, began at &lt;a href="http://www.openprinting.org/printer/Brother/Brother-MFC-8840D"&gt;Openprinting.org&lt;/a&gt; and retrieved the &lt;b class="mono"&gt;ppd&lt;/b&gt; file. Renamed the file "brothermfc8840d.ppd" for ease of use and copied it into &lt;b class="mono"&gt;/usr/share/cups/model&lt;/b&gt;. CUPS locates printer information files in that directory.&lt;br /&gt;&lt;br /&gt;2. In order to use &lt;i&gt;lpadmin&lt;/i&gt;, turned-on CUPS: &lt;blockquote class="mono"&gt;# service start cups&lt;/blockquote&gt; Added the printer:&lt;blockquote class="mono"&gt;# lpadmin -p Brother -E -v socket://192.168.1.101/printer -m brothermfc8840.ppd &lt;/blockquote&gt;Printer installed and the  &lt;b class="mono"&gt;/etc/cups/printers.conf&lt;/b&gt; file was properly generated. Only remaining task was to retrieve the HOSTNAME and TCP/IP info from the printer and update  &lt;b class="mono"&gt;/etc/cups/printers.conf&lt;/b&gt; in a text editor with this info.&lt;br /&gt;&lt;br /&gt;3. Walked to printer to retreive info but, ah-hah!, it turned out there was no WiFi in the Brother MFC-8840D. The networking capacity my friend apparently hoped was WiFi is only Ethernet. The printer has 3 ports: USB, Ethernet, and parallel. I went ahead and completed the install using USB so my buddy could determine whether his previous printing problems were in XP or the printer itself.&lt;br /&gt;&lt;br /&gt;4. Turned the printer on and connected the USB cable to my laptop, running &lt;b class="mono"&gt;# udevmonitor&lt;/b&gt; to get the port name "/usb/lp0". I then opened &lt;b class="mono"&gt;/etc/cups/printers.conf&lt;/b&gt; and changed the URI to a USB connection:&lt;br /&gt;&lt;blockquote class="mono"&gt;&lt;b&gt;# cat /etc/cups/printers.conf&lt;/b&gt;&lt;br /&gt;# Printer configuration file for CUPS v1.3.9&lt;br /&gt;# Written by cupsd on 2011-04-27 23:00&lt;br /&gt;&amp;lt;Printer Brother&gt;&lt;br /&gt;Info Brother&lt;br /&gt;DeviceURI file:///dev/usb/lp0&lt;br /&gt;State Idle&lt;br /&gt;StateTime 1303970446&lt;br /&gt;Accepting Yes&lt;br /&gt;Shared Yes&lt;br /&gt;JobSheets none none&lt;br /&gt;QuotaPeriod 0&lt;br /&gt;PageLimit 0&lt;br /&gt;KLimit 0&lt;br /&gt;OpPolicy default&lt;br /&gt;ErrorPolicy stop-printer&lt;br /&gt;&amp;lt;/Printer&gt; &lt;/blockquote&gt;&lt;br /&gt;5. Restarted CUPS so that CUPS re-read the &lt;i&gt;printers.conf&lt;/i&gt; file with the updated USB information:&lt;blockquote class="mono"&gt;# service restart cups&lt;/blockquote&gt; Prints without any apparent problems. Installation time: 10 minutes. Did not initialize or verify the printer's scanner operation.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;pt2: scanning&lt;/h3&gt; Links: &lt;a href="http://www.dennis-dominguez.de/ojo/MFC-7840W/index-e.html"&gt;Howto w/scripts&lt;/a&gt; &amp;nbsp; &lt;a href="http://ubuntuforums.org/showthread.php?t=590793&amp;page=38"&gt;Howto w/scripts&lt;/a&gt; &amp;nbsp; &lt;a href="http://forums.gentoo.org/viewtopic-p-3832567.html"&gt;Gentoo Howto&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looked through the &lt;a href="http://www.sane-project.org"&gt;SANE database&lt;/a&gt; and noted Linux compatibility with the MFC-8840D is listed as "good". That said, a person can go with a simple or a very involved scanner installation. Below, I include both but break it into two parts. For simple scanning using the &lt;i&gt;Xsane&lt;/i&gt; GUI, the simple installation will do. For OCR, specialized file handling, and so forth (all of this is possible), a complete install may be necessary. Before I start on these, some checks and the procedures which apply to both a simple of full install are provided.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Checks&lt;/u&gt; &amp;nbsp;The scanner portion of the Brother can be difficult for the system to detect. These checks provide confirmation of detection and useful information during any stage of the installation. Use freely:&lt;blockquote class="mono"&gt;$ scanimage --test&lt;br /&gt;$ scanimage - L&lt;br /&gt;$ brscan-skey -l&lt;br /&gt;$ sane-find-scanner&lt;/blockquote&gt;&lt;u&gt;Necessary&lt;/u&gt; &amp;nbsp;&lt;ul&gt;&lt;li&gt;Verify "brother" is in the list in the &lt;b class="mono"&gt;/etc/sane.d/dll&lt;/b&gt; file. If it is not, add it.&lt;/li&gt;&lt;li&gt;The sane configuration directory must have a "brother.conf". Check with &lt;b class="mono"&gt;ls /etc/sane.d/&lt;/b&gt;. If there is no &lt;b class="mono"&gt;brother.conf&lt;/b&gt;, make one. Get the printer device number using &lt;b class="mono"&gt;$ sane-find-scanner&lt;/b&gt; and then make the file:&lt;/li&gt;&lt;/ul&gt;&lt;blockquote class="mono"&gt;&lt;b&gt;# nano /etc/sane.d/brother.conf&lt;/b&gt;&lt;br /&gt;usb 0x4f9 0x16e&lt;br /&gt;option connect-device&lt;/blockquote&gt;&lt;br /&gt;&lt;u&gt;Preference&lt;/u&gt;: I run programs as "user", not "root", so I changed the permissions for this device by simply moving it into my user-level 'lp' (printer) group. First found the device in my rules:&lt;blockquote class="mono"&gt;&lt;b&gt;# cat /etc/udev/rules.d/30-scanners.rules |grep "Brother MFC-8840"&lt;/b&gt;&lt;br /&gt;# Brother MFC-8840D&lt;/blockquote&gt; Second, went to line 915 and changed permissions and groups. Before the changes:&lt;blockquote class="mono"&gt; &lt;br /&gt;ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="0160", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes"&lt;/blockquote&gt; After changes:&lt;blockquote class="mono"&gt;ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="0160", MODE="0666", GROUP="lp", ENV{libsane_matched}="yes"&lt;/blockquote&gt; With these in place, moved on to the software. &lt;br /&gt;&lt;h4&gt;A. Simple Installation ~ 10 minutes&lt;/h4&gt; A1. Proprietary Brother scanning software. This is supposedly freely available at &lt;a href="http://welcome.solutions.brother.com/BSC/public/us/us/en/model_top/monolasermfc/mfc8840d_all.html?reg=us&amp;c=us&amp;lang=en&amp;prod=mfc8840d_all"&gt;the Brother site&lt;/a&gt;. The Brother site maintains only &lt;b class="mono"&gt;.rpm/.deb&lt;/b&gt; files. I run Slackware, so I used &lt;i&gt;rpm2tgz&lt;/i&gt; to convert and then &lt;i&gt;installpkg&lt;/i&gt;:&lt;blockquote class="mono"&gt;&lt;br /&gt;$ cd downloads&lt;br /&gt;$ rpm2tgz brscan*&lt;br /&gt;$ mkdir brscan&lt;br /&gt;$ cp brscan-0.2.4-0.i386.tgz /brscan&lt;br /&gt;$ cd brscan&lt;br /&gt;$ su&lt;br /&gt;# installpkg brscan-0.2.4-0.i386.tgz&lt;br /&gt;# exit&lt;br /&gt;$ brsaneconfig (it works)&lt;/blockquote&gt;A2.Check scanner operation:&lt;blockquote class="mono"&gt;$ scanimage --test&lt;/blockquote&gt;A3. Open &lt;i&gt;XSane&lt;/i&gt; in the menu and scan sh*t.&lt;br /&gt;&lt;h4&gt;B. Full Installation ~ 8 hrs&lt;/h4&gt;B1. Install the 32 bit &lt;i&gt;brscan&lt;/i&gt;. &lt;blockquote class="mono"&gt;&lt;br /&gt;$ cd downloads&lt;br /&gt;$ rpm2tgz brscan*&lt;br /&gt;$ mkdir brscan&lt;br /&gt;$ cp brscan-0.2.4-0.i386.tgz /brscan&lt;br /&gt;$ cd brscan&lt;br /&gt;$ su&lt;br /&gt;# installpkg brscan-0.2.4-0.i386.tgz&lt;br /&gt;# exit&lt;br /&gt;$ brsaneconfig (it works)&lt;/blockquote&gt;B2. Install the 32 bit &lt;i&gt;brscan-skey&lt;/i&gt;. &lt;blockquote class="mono"&gt;&lt;br /&gt;$ cd downloads&lt;br /&gt;$ rpm2tgz brscan-skey*&lt;br /&gt;$ mkdir brscan&lt;br /&gt;$ cp brscan-skey-0.2.1-3.i386.tgz /brscan&lt;br /&gt;$ cd brscan&lt;br /&gt;$ su&lt;br /&gt;# installpkg brscan-skey-0.2.1-3.i386.tgz&lt;br /&gt;# exit&lt;br /&gt;$ brscan-skey (it works)&lt;/blockquote&gt;&lt;br /&gt;B3. Check it:&lt;blockquote class="mono"&gt;$ brscan-skey -l&lt;br /&gt; MFC-8840D         : brother:bus6;dev1   : USB                  Not registered&lt;br /&gt;$ sane-find-scanner&lt;br /&gt;found USB scanner (vendor=0x04f9, product=0x0160) at libusb:002:003&lt;br /&gt;$ scanimage -L&lt;br /&gt;device `brother:bus5;dev1' is a Brother MFC-8840D USB scanner&lt;/blockquote&gt; B4. At this point, the scanner scanned just fine, but the jpg was not saved and I was getting the error message:&lt;blockquote class="mono"&gt;ERROR: No such file or directory   [/usr/local/Brother/sane/brscan-skey-0.2.1-3.cfg]&lt;/blockquote&gt; B5. Must therefor create the file &lt;b class="mono"&gt; /usr/local/Brother/sane/brscan-skey-0.2.1-3.cfg&lt;/b&gt;&lt;blockquote class="mono"&gt;&lt;b&gt;# nano /usr/local/Brother/sane/brscan-skey-0.2.1-3.cfg&lt;/b&gt;&lt;br /&gt;password=&lt;br /&gt;IMAGE="sh /usr/local/Brother/sane/script/scantoimage-0.2.1-3.sh"&lt;br /&gt;OCR="sh /usr/local/Brother/sane/script/scantoocr-0.2.1-3.sh"&lt;br /&gt;EMAIL="sh /usr/local/Brother/sane/script/scantoemail-0.2.1-3.sh"&lt;br /&gt;FILE="sh /usr/local/Brother/sane/script/scantofile-0.2.1-3.sh"&lt;br /&gt;SEMID=b&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;B6. Must then create a script for each desired function. &lt;a href="http://ubuntuforums.org/showthread.php?t=590793&amp;page=38"&gt;This site&lt;/a&gt; has samples of all of them. There are limitless tweaks for file size, OCR use, etc etc etc. Can go crazy with this -- the scripts are entirely configurable for nearly any function. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;pt3: faxing&lt;/h3&gt; No phone available here, but this appears relatively straightforward and the software is likewise available at &lt;a href="http://welcome.solutions.brother.com/BSC/public/us/us/en/model_top/monolasermfc/mfc8840d_all.html?reg=us&amp;c=us&amp;lang=en&amp;prod=mfc8840d_all"&gt;the Brother site&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-7027395387858519025?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/7027395387858519025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=7027395387858519025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7027395387858519025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7027395387858519025'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/04/cups-brother-mfc-8840d.html' title='cups - brother mfc-8840d'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ELggatFCtyE/TbjngVMrhfI/AAAAAAAAALI/O15kQcvdgSU/s72-c/brothermfc8840d.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-5084395932174073585</id><published>2011-03-26T01:20:00.000-07:00</published><updated>2011-03-31T18:53:34.551-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cell'/><title type='text'>spring 2011 - celly status</title><content type='html'>I ultimately grabbed a T-Mobile G1 around the time I wrote a&lt;a href="http://xinabox.blogspot.com/2008/10/fall-2008-celly-status_03.html"&gt; cell status blog entry&lt;/a&gt; in 2008. I've been very happy with the phone and service. Currently, the plan's been paid since October of last year. T-Mobile unlocked the G1 and I've been considering a newer phone recently. I like T-Mobile service.&lt;br /&gt;&lt;br /&gt;But since 2008, I'm amazed at how significantly the landscape for considering a phone and service plan has changed. Stated simply, the Android G1 was a huge financial success and I hope Google can weather all of the lawsuits that appear to come with success in America these days. &lt;br /&gt;&lt;br /&gt;In my view, the success of Android/G1 was that it combined good HTC hardware with an excellent software scenario (for a 2008 phone). Android had some lockdowns, but compared to the garbage software in Windows phones, it was a different universe. The G1's only real competitor was the iPhone and, in that contest, the G1 also arguably carried an advantage. The Apple iPhone has proprietary lockdowns on its software and charged for most applications. Conversely, the G1/Android allowed open-source Android application development. This meant random developers created thousands of apps, many of them free. One could download these directly through the Google Market. Android continues to grow in relevance and anyone, eg you, can create an Android application.&lt;br /&gt;&lt;br /&gt;Below are my upgrade considerations of &lt;i&gt;provider&lt;/i&gt; and &lt;i&gt;hardware/software&lt;/i&gt;, but I'll also skip to the chase here and note that the T-Mobile G2 is my decision. Here is a &lt;a href="http://www.youtube.com/watch?v=knbp-PLczEg"&gt;reasonable video review of the phone&lt;/a&gt;. (11:44) &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-6Mz7r-2xzEg/TY48VqTyf0I/AAAAAAAAAK8/DBw5Xfmpj3s/s1600/g2optical.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 198px; height: 320px;" src="http://1.bp.blogspot.com/-6Mz7r-2xzEg/TY48VqTyf0I/AAAAAAAAAK8/DBw5Xfmpj3s/s320/g2optical.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5588470530445573954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;provider&lt;/h3&gt;&lt;br /&gt;I consider T-Mobile a customer-friendly and fair-priced cell service. Also T-Mobile is one of the two major US providers (T-Mobile, ATT) who's cell technology is moving from WCMDA to HSPA+. Phones with the WCDMA (legacy GSM) protocol can also be used in Europe. When traveling to Europe, just purchase a plan and a SIM upon arrival - no need to purchase another phone. That said, in the longer run, it appears both the US and Europe will eventually migrate to LTE, and this will likely be a standard across all of the big 4 carriers (Sprint, Verizon, ATT, T-Mobile). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;provider legal&lt;/b&gt;&lt;br /&gt;&lt;u&gt;ATT&lt;/u&gt; :: ATT is the licensed US provider of the iPhone. They must have noted that many potential iPhone/ATT customers turned instead to the reasonable pricing and customer service package of G1/T-Mobile. In response, ATT has apparently been unable or unwilling to compete. Instead, ATT appears poised to &lt;i&gt;buy&lt;/i&gt; T-Mobile. Following the purchase, ATT can simply raise the lower rates of T-Mobile customers to ATT rates, and needn't improve ATT customer-service or service plans. Very discouraging, and I hope this purchase does not pass FCC/DoJ muster. ATT would have both iPhone and Android phone accounts, as well as any WCDMA phone, and all without competition in pricing.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;hardware/software&lt;/h3&gt;&lt;br /&gt;Looking at Android phones, currently, the interesting processors are the Qualcomm Snapdragon and the Hummingbird, both of which are ARM Cortex A8 cores. The Hummingbird is faster, but HTC chose to produce the G2 with the 800 MHz Snapdragon. However, even though Hummingbird would have been preferable, the G2 runs Android OS 2.2 Froyo, which is optimized. In benchmarks, the G2 running the Snapdragon with Froyo appears to be faster than other phones running the Hummingbird. This may be in part to the G2's GPU. Whatever the reason for its performance, I'm pleased with the G2's second generation. &lt;br /&gt;&lt;br /&gt;The G2 ships with about 1.2GB available internal memory, and an 8GB SD card (can take up to a 32GB sd card). Since it's running 2.2, applications can be saved to the SD card. There's a 5 megapixel camera, and it takes 720P video.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;hardware/software legal&lt;/b&gt;&lt;br /&gt;&lt;u&gt;Oracle&lt;/u&gt; :: Following Google/Android's success, Oracle decided to buy Sun-Java in 2010. Initially, this seemed odd, since it only seemed to provide Oracle with some relatively unprofitable IP rights to Java, Open-Office, and MySQL. It turns out that the Android OS arguably uses a portion of Java not perfectly protected by Google's previous release agreement with Sun-Java. Oracle was thereby immediately able to &lt;a href="http://www.guardian.co.uk/technology/2010/aug/13/oracle-sues-google-over-android-os"&gt;sue Google for remedies ($$$) under US software patent laws&lt;/a&gt;. Little need to wonder why Oracle purchased Sun-Java.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Microsoft&lt;/u&gt; :: Current US software patent law also apparently allows preemptive coercive strikes. Microsoft attorneys recently found a way to make the G1's hardware manufacturer, HTC, &lt;a href="http://www.engadget.com/2010/04/28/microsoft-says-android-infringes-on-its-patents-licenses-htc/"&gt;pay licensing fees to Microsoft&lt;/a&gt;. This was so that HTC, &lt;i&gt;which uses no Microsoft software&lt;/i&gt;, could continue to build Google's phones without risking legal harrassment from Microsoft. Microsoft seems to argue these days that the entirety of open-source software is ultimately based on Microsoft's code. This has never been proven anywhere, but who can afford to take on Microsoft legal gunslingers? Cheaper to just pay the license.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Apple&lt;/u&gt; :: Apple simply decided the best strategy was &lt;a href="http://www.informationweek.com/news/hardware/handheld/showArticle.jhtml?articleID=223101180"&gt;to sue HTC&lt;/a&gt;. Apple appears to claim G1 technology really belongs to Apple. Give me a break.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;summary&lt;/h3&gt;&lt;br /&gt;Taken together then, HTC is being sued (by Apple) for what it does produce, and being legally pressured for what it doesn't produce (by Microsoft). Meanwhile, Oracle is suing Google, and ATT is attempting to buy out T-Mobile. God help organizations that attempt to innovate and produce a successful product in today's America. I will buy the G2 just to help HTC and Google's legal defense funds, if for no other reason. The G1 was a great phone and the litigation is about greed, not about commonly held views of justice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-5084395932174073585?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/5084395932174073585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=5084395932174073585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5084395932174073585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5084395932174073585'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2011/03/spring-2011-celly-status.html' title='spring 2011 - celly status'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-6Mz7r-2xzEg/TY48VqTyf0I/AAAAAAAAAK8/DBw5Xfmpj3s/s72-c/g2optical.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4401567615293344619</id><published>2010-12-20T18:38:00.000-08:00</published><updated>2010-12-24T09:48:32.659-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dvd'/><title type='text'>backup data disk</title><content type='html'>Links: &lt;a href="http://nixcraft.com/getting-started-tutorials/280-dvd-copy-howto.html"&gt;command line howto&lt;/a&gt; &lt;br /&gt;&lt;hr&gt; It seemed there should be an easy way to back-up copies of data disks. Of course, one can just copy the files to the system, and then create another DVD, but it makes sense there should be a more efficient way to duplicate data disks for back-ups. I found a way that takes only two commands. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;terminal commands&lt;/b&gt;&lt;br /&gt;It appears difficult to get started without at least copying the DVD data to the drive in the form of an &lt;b class="mono"&gt;.iso&lt;/b&gt;. Still, an &lt;b class="mono"&gt;.iso&lt;/b&gt; is more efficient than copying over all of the files and creating a new iso. Start by putting the data DVD into the drive and unmount it if it auto-mounts. Next,eg: &lt;blockquote class="mono"&gt;$ dd if=/dev/hdc of=somename.iso&lt;/blockquote&gt; On some systems, this might be&lt;blockquote class="mono"&gt;$ dd if=/dev/sr0 of=somename.iso&lt;/blockquote&gt; Now that we have the &lt;b class="mono"&gt;.iso&lt;/b&gt;, we can just burn as many copies as we'd like.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4401567615293344619?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4401567615293344619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4401567615293344619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4401567615293344619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4401567615293344619'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/12/backup-data-disk.html' title='backup data disk'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-5407269525725201486</id><published>2010-12-19T17:48:00.000-08:00</published><updated>2011-11-21T19:35:54.957-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><title type='text'>ffmpeg update</title><content type='html'>Links: &lt;a href="http://juliensimon.blogspot.com/2008/12/howto-compiling-ffmpeg-x264-mp3-xvid.html"&gt;Ubuntu tutorial&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;&lt;b&gt;&lt;i&gt;2011-11-21 update&lt;/i&gt;: NEVER blow out your old ffmpeg when compiling a new ffmpeg until you first determine if you need to update your x264 to compile the newer ffmpeg version (during ./configure). x264 requires that ffmpeg (eg. your old version) already be installed to provide lavf support during x264 assembly, a mind-bendingly stupid developer Catch-22. Without lavf, ffmpeg is as useful as a text editor when it comes to AV files. After updating the x264 SUCCESSFULLY, then you can blow-out your old ffmpeg version.&lt;/b&gt;&lt;br&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;2011-09-01 update&lt;/i&gt;: mencoder will not open without libdirac present. That's the BBC one I talk about below. A good time to build it is when doing the ffmpeg compile. Then both ffmeg and mencoder can use it. For this, add "--enable-libdirac" to the stuff I have below in the ffmpeg configure line. &lt;/b&gt;&lt;hr&gt; I recently upgraded/replaced an installed &lt;span style="font-style:italic;"&gt;ffmpeg&lt;/span&gt; package. The idea was cell phone interoperability. The previously installed &lt;span style="font-style:italic;"&gt;ffmpeg&lt;/span&gt; package wasn't apparently compiled with &lt;span style="font-weight:bold;"&gt;amr, 3gp, or 3gpp&lt;/span&gt; file support, so  that I couldn't translate these files generated by my cellphone. Upgrading &lt;span style="font-style:italic;"&gt;ffmpeg&lt;/span&gt; turned-out to be a trip down the rabbit hole, so posting here for posterity. &lt;br /&gt;&lt;br /&gt;Note: Zenwalk installs lib modules in &lt;i&gt;/usr/lib&lt;/i&gt;. The newly compiled libs installed to the standard &lt;i&gt;/usr/local/lib&lt;/i&gt;. Solution: I left the old Zenwalk modules in &lt;i&gt;/usr/lib&lt;/i&gt; but removed softlinks in &lt;i&gt;/usr/lib&lt;/i&gt;. I then made new softlinks in &lt;i&gt;/usr/lib&lt;/i&gt;, but these one point to the new modules in &lt;i&gt;/usr/local/lib&lt;/i&gt;. To restore the original Zenwalk installation, just recreate softlinks in &lt;i&gt;/usr/lib&lt;/i&gt; that point to the old modules in &lt;i&gt;/usr/lib&lt;/i&gt; and delete the ones pointing to &lt;i&gt;/usr/local/lib&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;libx264&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.videolan.org"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 100px; height: 47px;" src="http://4.bp.blogspot.com/_5jQYc4kk6YI/TQ64L41Ug9I/AAAAAAAAAJ8/Sghohhal1mA/s200/videolan-logo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5552577904968500178" /&gt;&lt;/a&gt; VideoLan's &lt;span style="font-style:italic;"&gt;libx264&lt;/span&gt; is the backbone of &lt;i&gt;ffmpeg&lt;/i&gt;. When compiling &lt;i&gt;ffmpeg&lt;/i&gt;, if &lt;i&gt;ffmpeg&lt;/i&gt; doesn't detect a recent version of &lt;i&gt;libx264&lt;/i&gt;, it will exit and request that a more recent version be built. Daily &lt;i&gt;libx264&lt;/i&gt; builds are available for download at the &lt;a href="ftp://ftp.videolan.org/pub/videolan/x264/snapshots/"&gt;VideoLan site&lt;/a&gt;. The difference between &lt;i&gt;libx264&lt;/i&gt; (and &lt;i&gt;libxvidcore&lt;/i&gt; below) and most other modules is in being assembled, rather than compiled. Assembly takes advantage of machine-level instruction efficiency when encoding video. Accordingly, I &lt;a href="http://www.tortall.net/projects/yasm/wiki/Download"&gt;downloaded and installed&lt;/a&gt; the &lt;i&gt;yasm&lt;/i&gt; assembler before configuring &lt;i&gt;libx264&lt;/i&gt; . My configure line for &lt;i&gt;libx264&lt;/i&gt; then looked something like: &lt;blockquote class="mono"&gt;&lt;br /&gt;$ ./configure --mandir=/usr/man --enable-yasm --enable-visualize --enable-shared&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;libxvidcore&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.xvid.org"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 111px; height: 31px;" src="http://3.bp.blogspot.com/_5jQYc4kk6YI/TQ7pep-0StI/AAAAAAAAAKM/n3NoLCGwhEk/s200/logo_xvid.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5552632103469075154" /&gt;&lt;/a&gt;&lt;i&gt;Libxvidcore&lt;/i&gt; is a codec with similar importance to &lt;i&gt;libx264&lt;/i&gt;. The source for it was easily located at &lt;a href="http://www.xvid.org/"&gt;xvid.org&lt;/a&gt;, and then downloaded. After untarring on my drive, I located Linux source a couple directories from the top, in &lt;i&gt;build -&gt; generic&lt;/i&gt;. Googling around, I found conflicting information about whether or not &lt;i&gt;libxvidcore&lt;/i&gt; could be assembled or compiled. Running &lt;b class="mono"&gt;$ ./compile --help &lt;/b&gt; also did not provide a solid answer. Eventually, I just compiled it without any selected configuration options, though I would have preferred to assemble it, if it had been clear how to do so.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;libschroedinger&lt;/b&gt;&lt;br /&gt;This is for the BBC's Dirac encoder. Even though I was using the most recent &lt;i&gt;ffmpeg&lt;/i&gt; from an svn repository, I couldn't get &lt;i&gt;ffmpeg&lt;/i&gt; to properly recognize libschroedinger. Eventually, I took &lt;b class="mono"&gt;libschroedinger&lt;/b&gt; out of my &lt;i&gt;ffmpeg&lt;/i&gt; configure line.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;other updates&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.theora.org"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 50px;" src="http://1.bp.blogspot.com/_5jQYc4kk6YI/TQ69ycxnXPI/AAAAAAAAAKE/GSs-4ANj844/s200/fish_theora_org.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5552584065009802482" /&gt;&lt;/a&gt; During configuration of &lt;i&gt;ffmpeg&lt;/i&gt;, prior to the &lt;i&gt;make&lt;/i&gt; phase, other updates were also requested by &lt;i&gt;ffmpeg&lt;/i&gt;.  These were the &lt;i&gt;libtheora&lt;/i&gt; open-source encoder,  &lt;i&gt;swscale&lt;/i&gt;, and &lt;i&gt;opencoreamr&lt;/i&gt;. &lt;i&gt;Opencore&lt;/i&gt;&lt;br /&gt;is a &lt;a href="http://sourceforge.net/projects/opencore-amr/"&gt;downloadable Sourceforge project&lt;/a&gt;, &lt;i&gt;swscale&lt;/i&gt; comes inside &lt;i&gt;ffmpeg&lt;/i&gt; source, and &lt;i&gt;libtheora&lt;/i&gt; source is found in the &lt;a href="http://www.theora.org/downloads/"&gt;downloads portion&lt;/a&gt; of their site. It appeared that I didn't need to update &lt;i&gt;libspeex&lt;/i&gt; during this particular &lt;i&gt;ffmpeg&lt;/i&gt; upgrade. Another nice thing is that &lt;i&gt;libfaad&lt;/i&gt; and &lt;i&gt;libfaad-bin&lt;/i&gt; are nowadays incorporated into &lt;i&gt;ffmpeg&lt;/i&gt; and no longer need to be separately compiled. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ffmpeg &amp; configure line&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ffmpeg.org"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 51px;" src="http://4.bp.blogspot.com/_5jQYc4kk6YI/TQ_TtmIMNUI/AAAAAAAAAKU/uHNPQ0t1Xow/s200/ffmpeg-logo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5552889645853586754" /&gt;&lt;/a&gt; Finally, after completing all updates to supporting modules above, I located the &lt;b class="mono"&gt;svn&lt;/b&gt; URL at the &lt;a href="http://www.ffmpeg.org/download.html"&gt;the ffmpeg download page&lt;/a&gt;, and retrieved the most recent &lt;i&gt;ffmpeg&lt;/i&gt; source code:&lt;blockquote class="mono"&gt;$ svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg&lt;/blockquote&gt;&lt;br /&gt;The final &lt;i&gt;configure&lt;/i&gt; line, the configuration which resulted in a working &lt;i&gt;ffmpeg&lt;/i&gt; installation, is below. It's long and will wrap several lines in this blog, but it's actually a single terminal command:&lt;blockquote class="mono"&gt;$ ./configure --mandir=/usr/man --enable-shared --disable-static --enable-pthreads --enable-x11grab --enable-swscale --enable-libfaac --enable-libmp3lame --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-gpl --enable-postproc --disable-ssse3 --enable-libopencore-amrwb --enable-libopencore-amrnb --enable-yasm --enable-version3 --enable-nonfree --arch=i686 --cpu=i486&lt;/blockquote&gt;&lt;br /&gt; &lt;b&gt;updated library list&lt;/b&gt;&lt;br /&gt;I had to manually link these to &lt;i&gt;/usr/local/lib&lt;/i&gt;. &lt;i&gt;Ffmpeg&lt;/i&gt; sought them in &lt;i&gt;/usr/lib&lt;/i&gt;&lt;br /&gt;libpostproc&lt;br /&gt;libavcodec&lt;br /&gt;libavcore&lt;br /&gt;libavdevice&lt;br /&gt;libavfilter&lt;br /&gt;libavformat&lt;br /&gt;libavutil&lt;br /&gt;libpostproc&lt;br /&gt;libspeex&lt;br /&gt;libswscale&lt;br /&gt;libtheoradec&lt;br /&gt;libtheoraenc&lt;br /&gt;libx264&lt;br /&gt;libxvidcore&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Edit: this easily could have been avoided by adding a line in &lt;tt&gt;/etc/ld.so.config.d&lt;/tt&gt; and then running &lt;tt&gt;ldconfig&lt;/tt&gt;, or by adding &lt;tt&gt;--prefix=/usr&lt;/tt&gt; to the &lt;tt&gt;$ ./configure&lt;/tt&gt; of ffmpeg&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;final tally&lt;/b&gt;&lt;br /&gt;The entire &lt;i&gt;ffmpeg&lt;/i&gt; update process took most of a weekend, but &lt;i&gt;ffmpeg&lt;/i&gt; seemed to work without a hitch following completion. In fact, it seemed to run faster, perhaps due to using an assembler for &lt;i&gt;libx264&lt;/i&gt;. After the update, I quickly converted a &lt;b class="mono"&gt;.3gpp&lt;/b&gt; cell phone file to a &lt;b class="mono"&gt;.wav&lt;/b&gt;:&lt;blockquote class="mono"&gt;$ ffmpeg -i recording36180.3gpp -vn -acodec pcm_s16le -ar 44100 -ac 1 lecture_03.wav&lt;/blockquote&gt; A list of the required actions to update &lt;i&gt;ffmpeg&lt;/i&gt;:&lt;ul&gt;&lt;br /&gt;&lt;li&gt;yasm - download, compile, install&lt;/li&gt;&lt;br /&gt;&lt;li&gt;libx264 - download, assemble, install&lt;/li&gt;&lt;br /&gt;&lt;li&gt;libxvidcore - download, compile, install&lt;/li&gt;&lt;br /&gt;&lt;li&gt;libopencore - download, compile, install&lt;/li&gt;&lt;br /&gt;&lt;li&gt;libtheora - download, compile, install&lt;/li&gt;&lt;br /&gt;&lt;li&gt;ffmpeg - svn download, compile, install&lt;/li&gt;&lt;br /&gt;&lt;li&gt;library linking (likely avoidable for those with "ld" knowledge)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-5407269525725201486?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/5407269525725201486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=5407269525725201486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5407269525725201486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5407269525725201486'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/12/ffmpeg-update.html' title='ffmpeg update'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5jQYc4kk6YI/TQ64L41Ug9I/AAAAAAAAAJ8/Sghohhal1mA/s72-c/videolan-logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-5513502478766817</id><published>2010-11-25T09:46:00.000-08:00</published><updated>2010-11-25T10:27:21.875-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gps'/><title type='text'>Garmin Nuvi 295w Linux</title><content type='html'>Links: &lt;a href="http://www.tigerdirect.com/applications/searchtools/item-Details.asp?EdpNo=6426497&amp;sku=G145-0376"&gt;Tiger Direct pricing&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;Looking closely at this Garmin below. It appears to have GPS functionality and, near WiFi sources, email and web. That would seem to avoid the necessity for a service plan with a phone provider and I certainly don't want another $$ervice plan. The catch is I'm uncertain how this unit will interact with Linux. I want PC connectability to update maps and download images. If all this works, looks like a nice travel toy for the glovebox.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5jQYc4kk6YI/TO6htI8NJtI/AAAAAAAAAJs/_OnqRxWRLNg/s1600/nuvi295w.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://2.bp.blogspot.com/_5jQYc4kk6YI/TO6htI8NJtI/AAAAAAAAAJs/_OnqRxWRLNg/s320/nuvi295w.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5543545988205848274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We'll see. This is a potentially nice toy on sale for around $90. It comes with this in the kit.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5jQYc4kk6YI/TO6kBQ7OcGI/AAAAAAAAAJ0/IsksAgdUedc/s1600/garmin295wbox.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 174px;" src="http://4.bp.blogspot.com/_5jQYc4kk6YI/TO6kBQ7OcGI/AAAAAAAAAJ0/IsksAgdUedc/s320/garmin295wbox.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5543548532969861218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;limitations&lt;/b&gt;&lt;br /&gt;Complaint I'm seeing is this unit appears to drain its battery rapidly. In my experience, battery zapping is a common problem on my cell phone when I'm in wireless mode. So,I'm guessing the Nuvi's WiFi might be always-on by default. This would be additional load to its GPS power needs. Before purchase would want to learn whether it's possible for users to individually control power to these features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-5513502478766817?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/5513502478766817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=5513502478766817' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5513502478766817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5513502478766817'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/11/garmin-nuvi-295w-linux.html' title='Garmin Nuvi 295w Linux'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5jQYc4kk6YI/TO6htI8NJtI/AAAAAAAAAJs/_OnqRxWRLNg/s72-c/nuvi295w.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-208947697607268304</id><published>2010-08-28T08:41:00.000-07:00</published><updated>2010-12-18T19:13:47.693-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Flash Player updates</title><content type='html'>&lt;b&gt;Links&lt;/b&gt; &lt;a href="http://get.adobe.com/flashplayer/"&gt;Flashplayer&lt;/a&gt;&lt;br /&gt;&lt;hr&gt; In Zenwalk (mini-Slack), I run Iceweasel for a browser. This is just a stripped Firefox that doesn't use copyrighted code, a nice touch. However, it means the User Agent string is typically unrecognized at mainstream sites like Hulu. When there is, for example, a periodic Flash update that sites like Hulu want us to install, Adobe provides a warning message that I have an unrecognized or unsupported system. &lt;br /&gt;&lt;br /&gt;In spite of the ominous warning message, Adobe provides the latest &lt;b class="mono"&gt;libflashplayer.so&lt;/b&gt; module at their their site. Wipe out the old directory and the two softlinks. Put in the latest &lt;b class="mono"&gt;libflashplayer.so&lt;/b&gt; and create two softlinks to the new module. Right as rain.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;download the module&lt;/b&gt;&lt;br /&gt;Go to the &lt;a href="http://get.adobe.com/flashplayer/"&gt;Adobe Flashplayer page&lt;/a&gt;, which has a sniffer to determine the OS is Linux. I took the basic &lt;b class="mono"&gt;tar.gz&lt;/b&gt; version which is pre-compiled (can we say "proprietary"?). Unpack it. That's it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5jQYc4kk6YI/THk4zTuqlYI/AAAAAAAAAJc/cCcjsG4g_7k/s1600/adobe.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 268px;" src="http://3.bp.blogspot.com/_5jQYc4kk6YI/THk4zTuqlYI/AAAAAAAAAJc/cCcjsG4g_7k/s320/adobe.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5510498073184998786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;remove the old stuff...&lt;/b&gt;&lt;br /&gt;To be reasonably sure older versions didn't linger and cause conflicts:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# rm -rf /usr/lib/flashplugin*&lt;br /&gt;# rm /home/foo/.mozilla/plugins/libflashplayer.so&lt;br /&gt;# rm /usr/lib/mozilla-firefox/plugins/libflashplayer.so&lt;br /&gt;# rm /usr/lib/mozilla/plugins/libflashplayer.so&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;...and in with the new stuff&lt;/b&gt;&lt;br /&gt;The softlink commands are wrapping here in the blog's narrow column; there are just two of them.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;# mkdir /usr/lib/flashplugin&lt;br /&gt;# cp /home/foo/downloads/libflashplayer.so /usr/lib/flashplugin/&lt;br /&gt;# ln -s /usr/lib/flashplugin/libflashplayer.so /usr/lib/mozilla/plugins/libflashplayer.so&lt;br /&gt;# ln -s /usr/lib/flashplugin/libflashplayer.so /usr/lib/mozilla-firefox/plugins/libflashplayer.so&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-208947697607268304?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/208947697607268304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=208947697607268304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/208947697607268304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/208947697607268304'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/08/flash-player-updates.html' title='Flash Player updates'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_5jQYc4kk6YI/THk4zTuqlYI/AAAAAAAAAJc/cCcjsG4g_7k/s72-c/adobe.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-5728829839984894555</id><published>2010-08-06T23:51:00.000-07:00</published><updated>2012-01-05T10:24:25.850-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='calculator'/><title type='text'>TI-89</title><content type='html'>Links: &lt;a href="http://lpg.ticalc.org/prj_tilp/"&gt;TiLP&lt;/a&gt; &amp;nbsp; &lt;a href="http://lpg.ticalc.org/prj_tiemu/"&gt;TiEmu&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.ticalc.org"&gt;TiCalc.org&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;b&gt;basics&lt;/b&gt;&lt;br /&gt;The effort to get a Ti-89 connected to the laptop. Didn't want the Windows stuff that came with the calculator. Located the &lt;a href="http://lpg.ticalc.org/prj_tilp/"&gt;TiLP Project&lt;/a&gt; for Linux. All good. All the files are linked from the site.&lt;br /&gt;&lt;br /&gt;Versions installed during this blog entry:&lt;ul&gt;&lt;li&gt;tilp2 - 1.16&lt;/li&gt;&lt;li&gt;libticables2 - 1.3.3&lt;/li&gt;&lt;li&gt;libticalcs2  - 1.1.7&lt;/li&gt;&lt;li&gt;libticonv - 1.1.3&lt;/li&gt;&lt;li&gt;libtifiles2 - 1.1.5&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The program comes in two packages, the program itself and a package of libs. Obviously install the libs package first, which will do the &lt;tt&gt;libticables2, libticalcs2, libticonv, &lt;/tt&gt; and &lt;tt&gt;libtifiles2&lt;/tt&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;bugs&lt;/b&gt;&lt;br /&gt;When compiling be sure to use&lt;br /&gt;&lt;blockquote class="mono"&gt;&lt;br /&gt;$ configure --prefix=/usr&lt;br /&gt; &lt;/blockquote&gt;&lt;br /&gt;Otherwise hell to pay with subsequent library location. Libs seem to have to be installed in a certain order. Sussed this out from the README's...&lt;ol&gt;&lt;li&gt;libticonv&lt;/li&gt;&lt;li&gt;libtifiles&lt;/li&gt;&lt;li&gt;libticables&lt;/li&gt;&lt;li&gt;libticalcs&lt;/li&gt;&lt;/ol&gt;...which worked.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;loading applications&lt;/b&gt;&lt;br /&gt;Take the stats program, for example. &lt;a href="http://education.ti.com/calculators/downloads/US/Software/Detail?id=189"&gt;Download it from the Ti Site&lt;/a&gt;, its name is &lt;b class="mono"&gt;tistatl.89k&lt;/b&gt;. &lt;ol&gt;&lt;li&gt;Connect the Ti-89 w/usb&lt;/li&gt;&lt;li&gt;&lt;tt&gt;$ tilp&lt;/tt&gt;&lt;/li&gt;&lt;li&gt;libticables&lt;/li&gt;&lt;li&gt;libticalcs&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;I also installed Group File Manager v. 1.06.&lt;br /&gt;&lt;b&gt;TiEmu&lt;/b&gt;&lt;br /&gt;Haven't installed or played with this yet. I'll add the info and edit this portion of the page one of these weekends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-5728829839984894555?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/5728829839984894555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=5728829839984894555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5728829839984894555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5728829839984894555'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/08/ti-89.html' title='TI-89'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8899251551775448821</id><published>2010-06-06T02:25:00.000-07:00</published><updated>2010-07-19T13:39:41.745-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='ppc'/><title type='text'>Yellow Dog - 2002 eMac Pt 2</title><content type='html'>Links: &lt;a href="http://forums.appleinsider.com/archive/index.php/t-14103.html"&gt;Open Firmware discussion&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;Round two of the Yellow Dog Linux installation into a vintage eMac. At this point, the variables had settled down to PPC idiosyncrasies around disk partitioning, boot loading, and firmware keystrokes. Several weeks earlier, &lt;a href="http://xinabox.blogspot.com/2010/04/yellow-dog-2004-emac.html"&gt;in an earlier post&lt;/a&gt;, I thoroughly cleaned and inspected the eMac physically. This post is more about the installation. The overall order:&lt;br /&gt;1. get &lt;i&gt;yaboot&lt;/i&gt; (mac-ish lilo/grub) operational and boot a kernel&lt;br /&gt;2. partition using &lt;i&gt;mac-fdisk&lt;/i&gt;&lt;br /&gt;3. make file systems on the linux specific areas&lt;br /&gt;4. install core packages and modules (eg. network)&lt;br /&gt;5. packages&lt;br /&gt;So, pretty standard. The only reason for blogging this are idiosyncrasies.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;yaboot&lt;/b&gt;&lt;br /&gt;The first thing to consider was the "SuperDrive". Initially, I thought it was able to read DVD's, making an easier installation, but a second check on the specs showed it to only read and write CD's.  Further, I had read on several sites that one couldn't boot from the drive unless jumpers were moved to make it the master drive. I was messing with CD drive jumper for quite a bit until I realized it would boot fine if I had the correct Open Firmware keystrokes. The two greatest of these were:&lt;br /&gt;&lt;i&gt; * holding "c"&lt;/i&gt; to boot from the CD. Holding down "c" during start-up directly loads &lt;i&gt;yaboot&lt;/i&gt; from a CD. No jumper changes were necessary.&lt;br /&gt;&lt;i&gt; * apple+option+o+f&lt;/i&gt; for Open Firmware access. This is a much more analytic approach, since a person can stay in the Apple firmware and check settings and so forth before deciding to access their boot CD. When it's time for that, I used&lt;blockquote&gt;boot cd:\\yaboot&lt;/blockquote&gt;Other commands allow a person to check the CD's files first&lt;blockquote&gt;dir cd:\\&lt;/blockquote&gt; and there are others listed here.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;disk partitioning&lt;/b&gt;&lt;br /&gt;The problem here was making sure Linux could see the Mac partitions properly and that the hard drive was consistent with what the Mac expected to see at boot time. I hadn't bothered to read this and simply used my (previously) reliable &lt;i&gt;cfdisk&lt;/i&gt; approach. Ineffective. Mac cannot boot without Mac-specific boot areas defined to its BIOS. One can use &lt;i&gt;cfdisk&lt;/i&gt; to start that process, but &lt;i&gt;cfdisk&lt;/i&gt; and &lt;i&gt;fdisk&lt;/i&gt; can't reliably define all 4 or 5 partitions (Mac uses 9 partitions with its own OS!) in a Mac protocol. Even if you start with &lt;i&gt;cfdisk&lt;/i&gt;, you'll need to finish it with &lt;i&gt;mac-fdisk&lt;/i&gt;. I decided to learn how to do the entire process in &lt;i&gt;mac-fdisk&lt;/i&gt;, just to limit the number of applications involved. That said, &lt;i&gt;mac-fdisk&lt;/i&gt; has a learning curve.&lt;br /&gt;&lt;blockquote&gt;mac-fdisk&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;continuing problems - Ubuntu&lt;/b&gt;&lt;br /&gt;The Yellow Dog continued to fail installing. I then attempted Slackintosh, which also failed. I then attempted Ubuntu. It failed. The Ubuntu fail, however, was traceable to a specific problem. I logged a bug about it and waited for an updated daily build (Maverick version). The daily build was repaired, however, this time the daily build was too large for a CD! Since this older Mac only has a CD player, not a DVD player, I was limited to a USB install. This is extremely complex, before you know the tricks. One of those "easy when you know how", "difficult to find information to learn how" issues. A day of googling and trial and error was involved. I was irritable, I'd already put in a couple of days on various PPC CD-install attempts.&lt;br /&gt;&lt;br /&gt;I had the oversized iso, but I had to put it on the USB. Should I leave it in the &lt;b class='mono'&gt;iso&lt;/b&gt; format or extract the files from the iso? Hard to tell from Googling. I decided to go with extracting the files. I had no app to extract the files from the iso. This meant I had to mount it. I went into the directory where I downloaded the iso, made a temporary folder there, and mounted the iso in there to get at the files.&lt;br /&gt;&lt;blockquote&gt;$mkdir temp&lt;br /&gt;$ sudo mount maverick-alternate-powerpc.iso temp -o loop&lt;br /&gt;$ cp -r * /media/usb1/&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;I got a few errors about not being able to make symbolic links&lt;blockquote&gt;cp: cannot create symbolic link `/media/usb1/dists/stable': Operation not permitted&lt;br /&gt;cp: cannot create symbolic link `/media/usb1/dists/unstable': Operation not permitted&lt;br /&gt;cp: cannot create symbolic link `/media/usb1/ubuntu': Operation not permitted&lt;br /&gt;&lt;/blockquote&gt; I made a note of their targets and went into the USB disk and (re)created the softlinks there manually:&lt;blockquote&gt;&lt;br /&gt;$ cd /media/usb1/dists&lt;br /&gt;$ ln- s maverick stable &lt;br /&gt;&lt;/blockquote&gt; (If you make a mistake, use &lt;b class='mono'&gt;unlink {link name}&lt;/b&gt; to delete the soft link, then remake it.) HOWEVER, I was thwarted yet again because the USB stick was formatted in FAT32, which does not allow for the creation of symlinks. So far, thwarted about 6 different ways on this install. Since Open Firmware will only read HFS, there is a Catch-22; how to copy files that need to be read by the Linux kernel on a USB that needs read by Linux. &lt;br /&gt;&lt;br /&gt;Conclusion: It appears that the only f*cking way to do this Ubuntu install, since it's oversized for a CD, is to purchase a DVD player, burn the iso to a DVD, and go that route. Wow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8899251551775448821?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8899251551775448821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8899251551775448821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8899251551775448821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8899251551775448821'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/06/yellow-dog-2002-emac-pt-2.html' title='Yellow Dog - 2002 eMac Pt 2'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-1782641191108637178</id><published>2010-05-03T00:42:00.000-07:00</published><updated>2010-05-03T19:57:36.352-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><title type='text'>C++</title><content type='html'>Links: &lt;a href="http://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits"&gt;gui kits comparison&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.cplusplus.com/src/"&gt;C++ examples&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html"&gt;Connecting C++ to MySQL&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/"&gt;makefile tutorial&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.gnu.org/software/make/manual/make.html"&gt;make manual&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialC++.html"&gt;YoLinux C++ links&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.elitecoders.de/mags/cscene/CS3/CS3-06.html"&gt;C++ tips&lt;/a&gt; &amp;nbsp;&lt;a href="http://www.elitecoders.de/mags/cscene/"&gt;CScene mag&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.youtube.com/watch?v=5-8h6eOwKwA"&gt;Vid:Glade, GTK+, C++&lt;/a&gt;&lt;hr&gt;&lt;br /&gt;&lt;b&gt;gui issues&lt;/b&gt;&lt;br /&gt;So, after some functionality with a database interaction, is it worth the effort to put this into a GUI format? It appears that the API for building Windows apps in Linux will be wxWidgets or VCF. For our Linux C++ program, there are too many to choose from. There is no unified Linux GUI api, unlike Windows. Some would say this is one of the few true drawbacks of Linux, others would say it demonstrates Linux diversity. Essentially, you have to either go to the trouble of coding in XLib, at the time consuming atomic level, or parse through the API's until one seems to match-up with the look and feel (L&amp;F), functionality, and bloat that you are willing to tolerate. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits"&gt;This comparison&lt;/a&gt; shows several different formats. SFML and FLTK, maybe even XLib, will probably be in my future, but the &lt;a href="http://www.youtube.com/watch?v=5-8h6eOwKwA"&gt;Glade+GTK(gtkmm)+C++&lt;/a&gt; approach seems good for the present. Users of my application will need the GTK libraries installed to run my application. XLib coding ay be the only way to avoid that kind of a dependency since X is installed on all Linux systems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;glade&lt;/b&gt;&lt;br /&gt;Glade is a useful GTK tool for interfacing with C++. In it, we can create the GUI pieces and signals from user actions (clicks, data entry, etc), and send them to our underlying C++ program for intelligent processing. In my view, it's better than an IDE, since it just manages the interface without messing with the logic. On the negative side, it creates a glade file for the GUI. The file requires a separate library, libglade, to be installed during compilation so. That's one layer of bloat, but probably worth it. Additionally, making sure the &lt;i&gt;make&lt;/i&gt; process is right with the extra type of file means a slightly more complex compile command or makefile.&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;$gcc -export-dynamic testapp.c -o testapp `pkg-config --cflags -g -o2 --libs gtk+-2.4  libglade-2.4`&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It gets more complex if one first transforms the glade file into an object and inserts it into the final application to make it more portable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-1782641191108637178?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/1782641191108637178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=1782641191108637178' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1782641191108637178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1782641191108637178'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/05/c.html' title='C++'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-883691087340572766</id><published>2010-04-30T10:41:00.001-07:00</published><updated>2010-05-15T11:02:40.913-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='paperhater'/><title type='text'>C++ - Eclipse</title><content type='html'>Links: &lt;a href="http://www.codeproject.com/KB/tips/CPP_Dev_eclipse_CDT.aspx"&gt;Short tutorial&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.cplusplus.com/src/"&gt;C++ examples&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.cyberciti.biz/tips/linux-unix-connect-mysql-c-api-program.html"&gt;Connecting C++ to MySQL&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/"&gt;makefile tutorial&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.gnu.org/software/make/manual/make.html"&gt;make manual&lt;/a&gt; &amp;nbsp;&lt;hr&gt;&lt;br /&gt;Test-driving the Eclipse Java/C++ interface (IDE) as part of my continuing work on the &lt;i&gt;Paperhater&lt;/i&gt; database solution. Previously, I thought a LAMP was the best idea, but the four layers of software make it challenging to focus on function. I intend to do a LAMP version as I gain PHP ability, but a C++ application needs to be accomplished to get basic functionality. One hitch...I don't know any C++.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Make (gcc)&lt;/b&gt;&lt;br /&gt;Although this post is mostly about the Eclipse IDE, I will likely eventually rely on hand-made Makefiles for more fine-grained control. As an example, &lt;i&gt;Paperhater&lt;/i&gt; needs to interface with MySQL. There are special compilation commands to allow code to interface with MySQL. These are unlikely to be managed by a generic IDE, unless it allows for customization.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Eclipse&lt;/b&gt;&lt;br /&gt;This interface is a great thing. It's oriented around Java, but I don't want to write in Java until they solve the problems they seem to have with JRE in Linux environments. The C++ IDE (Eclipse calls it "CDT" C++ Development Tool) can be &lt;a href="http://www.eclipse.org/cdt/"&gt;downloaded&lt;/a&gt; directly into Eclipse. This is just a plug-in for Eclipse, since Eclipse was designed for Java programming. But it's nearly as robust as the Java tool. &lt;br /&gt;&lt;br /&gt;The CDT is Eclipse version specific. When I went to the CDT  &lt;a href="http://www.eclipse.org/cdt/downloads.php"&gt;download page&lt;/a&gt;, it noted I would need the link specifically for my Eclipse release. I have Eclipse "Ganymeade" (aka version 3.4.1). I copied the link they provided for version 3.4.1,  &lt;a href="http://download.eclipse.org/tools/cdt/releases/ganymede"&gt;http://download.eclipse.org/tools/cdt/releases/ganymede&lt;/a&gt;, to my clipboard. &lt;br /&gt;&lt;br /&gt;With the link in my clipboard, I went to &lt;i&gt;Eclipse&lt;/i&gt; and: Help-&gt;&gt;Software Updates-&gt;&gt;Available Updates. Select "New Sites" and put the link in there. &lt;i&gt;Eclipse&lt;/i&gt; downloaded and configured the necessary CDT files once I pointed it to that link.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-883691087340572766?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/883691087340572766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=883691087340572766' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/883691087340572766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/883691087340572766'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/04/c-eclipse.html' title='C++ - Eclipse'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4781151796246529946</id><published>2010-04-25T23:35:00.000-07:00</published><updated>2010-06-06T03:37:07.808-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='ppc'/><title type='text'>Yellow Dog - 2002 eMac Pt 1</title><content type='html'>Links: &lt;a href="http://www.everymac.com/systems/apple/emac/stats/emac_800.html"&gt;the eMac&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.osxfaq.com/dailytips/08-2002/08-12.ws"&gt;eject the cd tray&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.wilko.com/emac/"&gt; eMac disassembly&lt;/a&gt;&lt;hr&gt;&lt;br /&gt;A friend recently graced me with a CRT display 2002 eMac (apparently built 07/11/2002). The system would not boot as of late. These early eMacs are underpowered dinosaurs with 128MB of RAM, a 700 MHz processor, and so on, although they were the thing to have in 2002. To make it available for classroom use, a free OS, a keyboard, a mouse, and a GB of RAM seemed right, hopefully while remaining beneath $100.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5jQYc4kk6YI/S9U1gE1V7jI/AAAAAAAAAI0/hecTJ6d8l54/s1600/apple_emac.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 165px; height: 171px;" src="http://1.bp.blogspot.com/_5jQYc4kk6YI/S9U1gE1V7jI/AAAAAAAAAI0/hecTJ6d8l54/s320/apple_emac.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5464332548053528114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;some features&lt;/b&gt;&lt;br /&gt;Model A1002 G4  700 MHZ Power PC&lt;br /&gt;Firmware 4.x    OS &lt;br /&gt;Display 17"     CD-R/W&lt;br /&gt;128MB RAM       40GB HDD&lt;br /&gt;NVIDIA graphics(32MB VRAM)&lt;br /&gt;Upon disassembly, I learned I had also lucked into the prior owner's decision for a 512MB RAM upgrade, giving a total of ~641MB RAM. Taken with a 700MHz processor speed, watching video might or might not be possible. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Yellow Dog&lt;/b&gt;&lt;br /&gt;To get it running, Yellow Dog linux looked like a natural choice. They've apparently released a &lt;a href="http://ydl.oregonstate.edu/"&gt;PPC distro&lt;/a&gt; (in this case 6.1 dated 20081119) for some time. The originally installed software was Mac OSX 10.1.4, and it supposedly could handle up to 10.4.11. If any of these became available later, I could always blow-out the Yellow Dog.&lt;br /&gt;&lt;br /&gt;For hardware upgrades, it looked like I could get a $50 keyboard, a $60 RAM upgrade to 1GB, upgrade the 2x speed "Super Drive" (optical drive) to a 32x DVD-RW, and put in a larger IDE HDD than the standard 60 GB, if I wanted. But a keyboard and mouse at least. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;CD/DVD tray&lt;/b&gt;&lt;br /&gt;In order to install Yellow Dog, I had to open the CD/DVD tray. The CD/DVD drive tray flap on the front of the shell would not open with the system powered-off. Powered-on, the system was not booting, so I could not use the keyboard eject. So, it was a Catch-22. Luckily, the shell needed to be removed anyway to clean 8 years of dust from the system. &lt;br /&gt;&lt;br /&gt;I found, upon disassembly, that the flap opens from the top to the bottom, that is, the hinges are on the bottom of the flap covering the DVD drive. Unpowered, one can insert a small screwdriver at the top of the flap and pull the flap down. Additionally, the &lt;i&gt;Airport&lt;/i&gt; card is behind a cover plate, behind that flap. To change the &lt;i&gt;Airport&lt;/i&gt; card then, open the flap and remove the interior cover plate (two Phillips). Pulling the &lt;i&gt;Airport &lt;/i&gt;card should be accomplished before the disassembly required for swapping the DVD drive or the HDD.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;cleaning&lt;/b&gt;&lt;br /&gt;Disassembly was no problem; essentially, a 2.5 mm hex and a good Phillips. I followed &lt;a href="http://www.wilko.com/emac/"&gt;these instructions&lt;/a&gt; and would only add one clarification; The power switch cable needs to be disconnected from the chassis, not from the cover, this was left unstated in the guide.  Needle nosed pliers were helpful to apply removal pulling pressure on the plug itself rather than pulling on the plug's (thin) wires. The plug is keyed for proper reinstallation. Disassembly voids the warranty, apparently, but that was no problem on a donated system. &lt;br /&gt;&lt;br /&gt;Once apart, as expected, the insides were caked with dust. Dust is a large problem for enclosed cooling systems that rely on unfiltered air (think also "laptop"). I took an air hose to the uncovered chassis before proceeding further.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RAM/jumpers&lt;/b&gt;&lt;br /&gt;As I got into the system, it appeared that a RAM upgrade had already taken place. It appeared to be a 512MB card, which would provide 756MB RAM, probably enough. At any rate, adding or deleting RAM involves nothing more than removing the bottom plate. The same for changing the jumper on the optical drive, albeit the angle is slightly difficult. I moved the jumper from the far left (slave) to the center jumper, hoping this was the right setting for "master". This is needed so I can boot off the DVD. We'll see if I got it right -- there was no jumper sticker.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4781151796246529946?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4781151796246529946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4781151796246529946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4781151796246529946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4781151796246529946'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/04/yellow-dog-2004-emac.html' title='Yellow Dog - 2002 eMac Pt 1'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5jQYc4kk6YI/S9U1gE1V7jI/AAAAAAAAAI0/hecTJ6d8l54/s72-c/apple_emac.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-7703202220863642849</id><published>2010-04-11T14:26:00.000-07:00</published><updated>2010-04-11T14:55:12.394-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><title type='text'>Data acquisition, solar</title><content type='html'>We all are trying to use alternative energy when we can at this point, arguably to save costs, but certainly to help with the various resource problems of the stupendous global overpopulation.&lt;br /&gt;&lt;br /&gt;At any rate, lets look at a few options that might be available to us:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Energy Accounting&lt;/b&gt;&lt;br /&gt;The first step in residential use, is determining usage. Once we know &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solar&lt;/b&gt;&lt;br /&gt;A simple solar PV mat can charge your car battery or cell phone while it blocks the light from coming onto your dash. These&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-7703202220863642849?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/7703202220863642849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=7703202220863642849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7703202220863642849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7703202220863642849'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/04/data-acquisition-solar.html' title='Data acquisition, solar'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4188922348430509595</id><published>2010-04-01T11:35:00.001-07:00</published><updated>2010-04-02T16:12:06.341-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>PHP - MySQL arrays</title><content type='html'>PHP is a glue for many web sites. It shapes the pages of the browser interface, and also accomplishes interactions with the database, when needed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;arrays&lt;/b&gt;&lt;br /&gt;The grist of Web activities involve databases. What comes out of and goes into a database during a web transaction often requires additional manipulation. Many times, these processes require arrays. Suppose we're using MySQL as a database, calling a few records to compare with some user-entered data. Sometimes the data can be manipulated on the hosting database server. More often, data is retrieved as an array and needs to be managed after it has been extracted. For example, it might be extracted with a PHP command, manipulated, and then the database might subsequently be updated. &lt;br /&gt;&lt;br /&gt;Manipulating arrays is a core and somewhat complex PHP activity. Except for the complexity of security, arrays play a role in the most complex PHP functions. As noted above, user-entered data might be arriving from the browser side at the same time that info from a database is being extracted. In such a case, three or more arrays, even if temporary,  might be created with PHP. PHP would also accomplish the comparisons, increments, and so on, that would take place with these arrays. If one can understand and write scripts to manipulate arrays, a programmer can quickly learn less complicated PHP functions. &lt;br /&gt;&lt;br /&gt;Here are some resources for learning array-related PHP skills:&lt;br /&gt;&lt;a href="http://dovlet.net/data/php/php-array.html"&gt;Dovlet Tatlok&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.webmasterworld.com/"&gt;WebMaster World&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.phpfreaks.com/forums/index.php?"&gt;PHP Freaks&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.bigresource.com/PHP-Remove-row-from-array-and-move-next-value-into-place-etc-T00kvd0G.html"&gt;Big Resource&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.phpbuilder.com/"&gt;PHP Builder&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.liamdelahunty.com/tips/php_list_a_directory.php"&gt;reading directories&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4188922348430509595?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4188922348430509595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4188922348430509595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4188922348430509595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4188922348430509595'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/04/php-mysql-arrays.html' title='PHP - MySQL arrays'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-5436089004786878939</id><published>2010-03-29T23:28:00.000-07:00</published><updated>2010-03-30T00:15:52.964-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c++'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Python - PHP - PostgreSQL - Android - C++</title><content type='html'>Links: &lt;a href="http://stackoverflow.com/questions/1862410/how-do-i-actually-get-somewhere-in-gui-programming"&gt;Python GUI thread&lt;/a&gt; &amp;nbsp; &lt;a href="http://wiki.wxpython.org/AnotherTutorial"&gt;wxPython tutorial&lt;/a&gt;&lt;hr&gt;&lt;br /&gt;A lot to learn, but probably the only way to properly get to the point where I can catalog files. PHP first (web-based), Python next (desktop), PostgreSQL (desktop, but growing on web), and then step-up from Python to C++. C++ is apparently more efficient than Python, but takes deeper knowledge. I'm not fond of Java until its Run Time Environment becomes more refined and stable.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Python flavors&lt;/b&gt;&lt;br /&gt;The issue with Python is apparently that, once one gets to a GUI level with it, there are two main flavors. One, &lt;i&gt;TKinter&lt;/i&gt; is essentially Python using the TK/GTK libraries. &lt;i&gt;wxPython&lt;/i&gt; has its own library set. It seems that &lt;i&gt;wxPython&lt;/i&gt; is more on a growth path than the older &lt;i&gt;Tkinter&lt;/i&gt;. I read &lt;a href="http://wiki.wxpython.org/Choosing%20wxPython%20over%20Tkinter"&gt;one description that said so&lt;/a&gt;. So far, I've been happy with &lt;i&gt;wxPython&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Python/Postgresql&lt;/b&gt;&lt;br /&gt;This does not seem problematic. It imports a module called &lt;b class="mono"&gt;psycopg2&lt;/b&gt; which seems to have hooks for the DB. &lt;a href="http://python.about.com/od/pythonanddatabases/ss/postgresqlread_5.htm"&gt;At this site,&lt;/a&gt; there is a simple tutorial about how to make the connection.&lt;br /&gt;&lt;br /&gt;For programming, using arrays is the real. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Python/MySQL&lt;/b&gt;&lt;br /&gt;Don't care, but have to learn it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PHP&lt;/b&gt;&lt;br /&gt;Difficult part is using arrays in best possible ways.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-5436089004786878939?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/5436089004786878939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=5436089004786878939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5436089004786878939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5436089004786878939'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/03/python-php-postgresql-android-c.html' title='Python - PHP - PostgreSQL - Android - C++'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-3082117873172748581</id><published>2010-03-09T09:31:00.000-08:00</published><updated>2010-03-13T02:58:45.472-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlite'/><title type='text'>Firefox - bookmarks -SQLite</title><content type='html'>Links: &lt;a href="http://sqlitebrowser.sourceforge.net/"&gt;SQLite browser&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.sixapart.com/movabletype/docs/3.2/01_installation_and_upgrade/sqlite_backup_restore.html"&gt;SQLite backup&lt;/a&gt; &lt;hr&gt;&lt;br /&gt;My parents noted some problems with &lt;i&gt;Firefox&lt;/i&gt; bookmarks; crashes when attempting to organize bookmarks and so on. I experienced some weird effects from a large bookmark file on my system as well. I looked into how the bookmarks are stored. &lt;br&gt;&lt;br /&gt;&lt;b&gt;formats&lt;/b&gt;&lt;br /&gt;We users typically access and manage our bookmarks via &lt;i&gt;Firefox&lt;/i&gt;. However, unseen to users, &lt;i&gt;Firefox&lt;/i&gt; relies upon &lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt;, a flat-file (2-D) database application, to store and retrieve bookmark information on our hard drives. Many applications, like &lt;i&gt;Firefox&lt;/i&gt;, require limited data storage and retrieval. A full 3-D database would be an extra installation process with additional problems. Accordingly, it's not uncommon to find &lt;i&gt;SQLite&lt;/i&gt; built-in to many lighter applications; it's a free, open-source application that developers can easily adapt. What this means with &lt;i&gt;Firefox&lt;/i&gt; is the bookmark data itself is kept in an &lt;i&gt;SQLite&lt;/i&gt; file called &lt;b class="mono"&gt;places.sqlite&lt;/b&gt;. This file lives in the default, hidden Mozilla folder in the user's home directory, eg:&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;/home/foo/.mozilla/firefox/bQt4mrl3a.default/places.sqlite&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;(Of course, "foo" is a stand-in for whatever one has actually named their user directory.) Although the data is in &lt;i&gt;SQLite&lt;/i&gt; format, the bookmarks remain portable; &lt;i&gt;Firefox&lt;/i&gt; allows users to export and import bookmarks as &lt;i&gt;html&lt;/i&gt; files, instead of the less familiar &lt;i&gt;SQLite&lt;/i&gt; database file format. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;bookmark problems&lt;/b&gt;&lt;br /&gt;If there are problems with bookmarks, it's not always clear whether the problem is in a single bookmark entry from a selected website, or whether the &lt;i&gt;SQLite&lt;/i&gt; index which manages all the bookmarks has become corrupted. It's much easier to restore the database, so this is probably the best starting solution attempt.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;database solution&lt;/b&gt;&lt;br /&gt;As a first solution, it's easier to restore the database, which can be done in about 3 minutes. The steps, as I do them, are to, 1) export the bookmarks file, 2) delete the old bookmarks file (and related backups) in the mozilla folder, and then, 3) re-open &lt;i&gt;Firefox&lt;/i&gt; and import the exported bookmarks. This will reestablish and repopulate the database, which should then be stable. &lt;br /&gt;&lt;br /&gt;In greater detail, the steps are:&lt;br /&gt;&lt;br /&gt;1) Open &lt;i&gt;Firefox&lt;/i&gt;, go into &lt;i&gt;Bookmarks -&gt; Organize Bookmarks -&gt; Import and Backup -&gt; Export HTML &lt;/i&gt;. This exports the bookmarks in html format. I gave my exported file the name &lt;b class="mono"&gt;bookmark.html&lt;/b&gt;, but any name is fine.&lt;br /&gt;&lt;br /&gt;2) Exit &lt;i&gt;Firefox&lt;/i&gt;, open a terminal, and delete &lt;b class="mono"&gt;places.sqlite&lt;/b&gt; and other bookmark related files:&lt;br /&gt;&lt;b class="mono"&gt;$ cd .mozilla/firefox/bQt4mrl3a.default&lt;br /&gt;$ rm places.sqlite&lt;br /&gt;$ rm bookmarks.html&lt;br /&gt;$ cd bookmarkbackups&lt;br /&gt;$ rm * &lt;/b&gt;&lt;br&gt;&lt;br /&gt;3) Re-open &lt;i&gt;Firefox&lt;/i&gt; and import the previously exported &lt;b class="mono"&gt;bookmark.html&lt;/b&gt; file (or whatever you named it when exporting). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;the database solution didn't work&lt;/b&gt;&lt;br /&gt;The steps above seem to address potential database corruption possibilities, since a new database is created when &lt;i&gt;Firefox&lt;/i&gt; is re-opened after deleting the bookmark files. If this does not solve the challenge, then the problem might be a corrupt bookmark entry. This would have been imported back into the database and so would persist. I have hundreds of bookmarks, which means that looking through them, bookmark by bookmark, attempting to locate a corrupted one, might take hours and hours of hunting. If the solution above doesn't repair my problem, and if I know it's not a hardware or OS problem, I would find it easier to simply delete all bookmarks and start over. However, if I were retired and had loads of free time, I might read on here...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;entry by entry solution&lt;/b&gt;&lt;br /&gt;First, it's worthwhile to make a copy of &lt;b class="mono"&gt;places.sqlite&lt;/b&gt;, and then examine the copy instead of the original. If one is able to locate the problem in the copy, one can repair it there without damaging the original. Copy it back when complete and tested. &lt;br /&gt;&lt;br /&gt;Secondly, going into the &lt;b class="mono"&gt;places.sqlite&lt;/b&gt; file to examine it, bookmark by bookmark, can be done by Command Line commands or via a GUI. We're talking about masochism either way -- the ultimate masochism would be using the command line.  Using command line &lt;i&gt;sqlite&lt;/i&gt; commands is beyond the scope here, but there are many tutorials out there, such as &lt;a href="http://www.sqlite.org/sqlite.html"&gt;this one&lt;/a&gt; at the &lt;i&gt;SQLite&lt;/i&gt; site. &lt;br /&gt;&lt;br /&gt;Thirdly, because command line appears less efficient in this case, I'd suggest using a GUI SQLite manager of some sort.  This should make an inspection of the &lt;b class="mono"&gt;places.sqlite&lt;/b&gt; file easier than with the command line, at least for most people. The free, open-source &lt;a href="http://sqlitebrowser.sourceforge.net/"&gt;SQLite Browser&lt;/a&gt; may be a good option.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SQLite Browser&lt;/b&gt;&lt;br /&gt;I found this application easy to download, compile, and install. It took about 10 minutes all together. I downloaded the latest release from &lt;a href="http://sqlitebrowser.sourceforge.net/"&gt;SQLite sourceforge project&lt;/a&gt; and then followed the standard steps. Two variations;&lt;br /&gt;&lt;br /&gt;1) it uses &lt;i&gt;qmake&lt;/i&gt; since it's Qt-based:&lt;br /&gt;&lt;b class="mono"&gt;$ qmake -unix -recursive&lt;br /&gt;$ make &lt;/b&gt;&lt;br&gt;&lt;br /&gt;2) it doesn't install, just compiles a binary. But we can copy the binary into any directory we wish and start if from there.&lt;br /&gt;&lt;br /&gt;All of this, from download to finish, took perhaps 10 minutes. Again, once the binary has been created, I put it in a folder with some other apps, and started it from the command line:&lt;br /&gt;&lt;b class="mono"&gt;$ ./sqlitebrowser&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5jQYc4kk6YI/S5s2zHr7vHI/AAAAAAAAAIk/3LwflLgE54U/s1600-h/sqlitebrows.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 264px;" src="http://1.bp.blogspot.com/_5jQYc4kk6YI/S5s2zHr7vHI/AAAAAAAAAIk/3LwflLgE54U/s320/sqlitebrows.png" title="SQLite Browser" border="0" alt=""id="BLOGGER_PHOTO_ID_5448008426099293298" /&gt;&lt;/a&gt; &lt;i&gt;Fig. 1 SQLite Browser&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;With the program running, open the copy of the bookmarks file &lt;b class="mono"&gt;places.sqlite&lt;/b&gt; (Figure 1). The bookmarks file/database appears to have a fairly elaborate structure. Looking for corrupted characters would take too much time for my taste in this structure; it's easier for me to wipe-out my bookmarks and start over again. That said, &lt;i&gt;SQLite Browser&lt;/i&gt; is a helpful application and would be very useful in a situation where one had a simple &lt;i&gt;SQLite&lt;/i&gt; database, say, a personal database for birthdays or anniversaries. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;direct backup of an SQLite database&lt;/b&gt;&lt;br /&gt;We noted above that we could simply copy the database records (in &lt;i&gt;Firefox's&lt;/i&gt; case &lt;b class="mono"&gt;places.sqlite&lt;/b&gt;), and use that for a backup. However, if a person wants to make a compressed snapshot which includes the entire directory structure, it's relatively easy from a terminal using command-line:&lt;br&gt;&lt;br /&gt;&lt;b class="mono"&gt;$ tar cvfz `date +%Y%m%d`_mtdb_bkup.sql.tar.gz DATABASE PATH&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;And then to restore:&lt;br /&gt;&lt;b class="mono"&gt;$ tar xvfz ARCHIVE.tar.gz&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Much more can obviously be said about these bookmark problems and about &lt;i&gt;SQLite&lt;/i&gt;. It's good to understand that there is an additional layer beyond &lt;i&gt;Firefox&lt;/i&gt;, under the hood. A couple of options were provided above and it's my hope we can all hang on to our bookmarks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-3082117873172748581?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/3082117873172748581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=3082117873172748581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3082117873172748581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3082117873172748581'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/03/firefox-bookmarks-sqlite.html' title='Firefox - bookmarks -SQLite'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5jQYc4kk6YI/S5s2zHr7vHI/AAAAAAAAAIk/3LwflLgE54U/s72-c/sqlitebrows.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-1584191735072322494</id><published>2010-02-27T13:19:00.000-08:00</published><updated>2010-03-09T11:03:44.119-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='paperhater'/><title type='text'>more data fun - PaperHater</title><content type='html'>Links: &lt;a href="http://www.pantz.org/software/mysql/mysqlcommands.html"&gt;Common MySQL Commands&lt;/a&gt; &amp;nbsp;&lt;a href="http://www.wizzyweb.com/"&gt;WizzyWeb&lt;/a&gt; &amp;nbsp; &lt;a href="http://en.wikipedia.org/wiki/VistA"&gt;VistA database&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;I've been working on going paperless since about 2002. It's a maddeningly dull, time consuming affair so that, for my own amusement, I call this project or effort "PaperHater".  I'm not a php programmer or CS guy and it's been a long road but, who knows, maybe someday it will become an open-source project.&lt;br&gt;&lt;br /&gt;In mid-2002, I started scanning my documents. These varied as widely as old letters from my deceased grandmother to recent bank statements. I learned that the number and variety of the generated files grew rapidly and could not easily be organized; I was spending significant time categorizing and renaming the files using customary file-naming and folder-naming conventions. In spite of this effort, and with only a couple thousand files (albeit growing in number), I had to admit to myself that I was wasting more time arranging and not finding files than I previously had spent hassling with the inconvenience of paper documents. What good was the computer accomplishing for me? &lt;br&gt;&lt;br /&gt;I noted one common feature in the software products that could actually have (too expensively) solved my problems in 2002: a DBMS. A proper database sitting between thousands of stored electronic files, and the user attempting to retrieve one of those files, appeared to make all the difference. However, since an immediate solution looked neither likely nor affordable at that time, I reverted to storing documents in bankers boxes. I did this for several years, but with began to slowly acquaint myself with database programs.&lt;br&gt; &lt;br /&gt;By 2009, I had become routinely frustrated with paper accumulation again. Stuck between a computer and a pile of papers, there appeared to be no easy way out. Since early 2009, alternating Saturdays have been spent reading and learning installation processes, webserver configurations, and the like -- LAMP stuff. It seems to have paid off. I'm roughly at the 2/3 mark on this project. Over the next several months, I intend to add an entry here and there about &lt;i&gt;PaperHater&lt;/i&gt;'s progress to summarize for myself and to possibly help other home users who might be attempting to design and implement something similar on their own system(s). Good luck to all of us. It would be helpful if expert organizations with CMS-type experience could release reasonably priced PC/Mac database solutions instead of gouging us.&lt;br&gt;&lt;br /&gt;&lt;b&gt;step 1&lt;/b&gt;&lt;br /&gt;Design the database. I mostly use &lt;i&gt;localhost&lt;/i&gt; for this, since it's fast and secure, but sometimes run things on the cloud server. In other words, I spent the many weekends required to learn how to configure reliable LAMPs on both my localhost and server site, and to have them running with the permissions and tweaks (think, eg. &lt;b class="mono"&gt;php.ini, config.inc.php&lt;/b&gt;, etc) I wanted. Following that portion came additional reading, head-scratching, and back-of-envelope sketches; then downloading and installing working applications.  Finally, using &lt;i&gt;phpMyAdmin&lt;/i&gt; and &lt;i&gt;MySQL&lt;/i&gt; commands, I reviewed and modified table structures until I could determine a desirable schema. I also worked on &lt;i&gt;php&lt;/i&gt; scripts. Eventually, I had a set of working databases, some copied to &lt;b class="mono"&gt;.sql&lt;/b&gt; scripts, and some partially completed &lt;i&gt;php&lt;/i&gt; scripts. That's mostly where it stands now, but I'll move on to describe what's going to come next.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;step 2&lt;/b&gt;&lt;br /&gt;Copy the structure of a localhost or online database I've designed and tested and want to use for interaction. We put this into an &lt;b class="mono"&gt;.sql&lt;/b&gt; script.&lt;br /&gt;&lt;b class="mono"&gt;(&lt;i&gt;localhost&lt;/i&gt;)$ mysqldump --no-data database &gt;/home/foo/database_template.sql&lt;/b&gt;&lt;br&gt;&lt;br /&gt;&lt;b class="mono"&gt;(&lt;i&gt;online&lt;/i&gt;)$ mysqldump -h whateversite.com -uuser -ppassword --no-data -D database &gt;database_template.sql&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Then go to whatever web address I keep databases on, create a new database there (thanks to &lt;a href="http://forums.mysql.com/read.php?35,128003,128105#msg-128105"&gt;this site&lt;/a&gt;), and give it the structure we want from the &lt;b class="mono"&gt;.sql&lt;/b&gt; script.&lt;br&gt;&lt;br /&gt;&lt;b class="mono"&gt;$ mysql -h whateversite.com -uuser -ppassword&lt;br /&gt;mysql&gt; CREATE DATABASE newdatabase;&lt;br /&gt;mysql&gt; USE newdatabase;&lt;br /&gt;mysql&gt; SOURCE /home/foo/database_template.sql;&lt;br /&gt;mysql&gt; quit;&lt;/b&gt;&lt;/br&gt;&lt;br /&gt;The new database is now ready to accept data-entry and to run queries.&lt;br&gt;&lt;br /&gt;&lt;b&gt;step 3&lt;/b&gt;&lt;br /&gt;Upload some php scripts. I've written a large percentage of the interfacing php scripts but, today, I learned about &lt;a href="http://www.wizzyweb.com"&gt;WizzyWeb&lt;/a&gt;, a $99 product which could help tune my scripts or create similar ones quickly. This seems like a very reasonable price if it does what's advertised. That is, if it saves me two hours, I've made-back my money.&lt;br&gt;&lt;br /&gt;&lt;b&gt;step 4&lt;/b&gt;&lt;br /&gt;Enjoy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-1584191735072322494?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/1584191735072322494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=1584191735072322494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1584191735072322494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1584191735072322494'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/02/more-data-fun-paperhater.html' title='more data fun - PaperHater'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-2173128356352372594</id><published>2010-02-25T20:13:00.000-08:00</published><updated>2010-02-26T16:32:58.153-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zenwalk'/><category scheme='http://www.blogger.com/atom/ns#' term='root'/><title type='text'>zenwalk - corrupted disk</title><content type='html'>Links: &lt;a href="http://www.cyberciti.biz/faq/recover-bad-superblock-from-corrupted-partition/"&gt;helpful command explanations&lt;/a&gt;&lt;hr&gt;&lt;br /&gt;A couple of Christmases ago I installed Zenwalk 6.0 on one of my parents' HP systems. It remained mostly reliable until this week, when it froze and subsequently stopped booting properly. Ultimately, we found that their system contained one or more inode conflicts. We fixed these cross-links with two commands and a great number, roughly 1,000, confirmation keystrokes. All this via an hour-long telephone call. My mother is a patient and persistent soul. &lt;br&gt;&lt;br /&gt;&lt;b&gt;Part one&lt;/b&gt;&lt;br /&gt;My folks told me they recalled being online arranging bookmarks in &lt;i&gt;Iceweasel&lt;/i&gt; (Zenwalk's rebranded Mozilla-Firefox). While arranging, the system froze entirely, apparently remaining unresponsive to the last-resort X11 &lt;b class="mono"&gt;Ctrl+Backspace&lt;/b&gt; exit. Mom said she next attempted a hard reboot but this also failed. During the attempt, error messages describing cross-indexed inodes and a corrupt superblock were scrolling. This was no doubt &lt;i&gt;fsck&lt;/i&gt; scanning &lt;b class="mono"&gt;/dev/sda1&lt;/b&gt;. Following &lt;i&gt;fsck&lt;/i&gt;, the script eventually exited to a single-user root login. No action was taken at the root login, and the system eventually rebooted itself and again initiated &lt;i&gt;fsck&lt;/i&gt;. And so on. Then my phone rang ;)&lt;br&gt;&lt;br /&gt;&lt;b&gt;Part two&lt;/b&gt;&lt;br /&gt;It appeared the most direct route was to reboot the system and let it exit to the point where it allowed the single-user root login. From that point, we could enter commands directly, such as to locate back-up copies of the superblock on &lt;b class="mono"&gt;/dev/sda1&lt;/b&gt;. With a back-up copy located, we could run a clean &lt;i&gt;fsck&lt;/i&gt; and resolve any doubly referenced inodes. Accordingly, the first step was to &lt;a href="http://www.cyberciti.biz/faq/recover-bad-superblock-from-corrupted-partition/"&gt;retrieve a list of the backup superblocks&lt;/a&gt;.&lt;br&gt;&lt;br /&gt;&lt;b class="mono"&gt;# dumpe2fs /dev/sda1 | grep superblock&lt;/b&gt;&lt;br&gt;&lt;br /&gt;This provided us with a list of about 12 back-up superblock locations. The first of these was "32768".&lt;br&gt;&lt;br /&gt;&lt;b&gt;Part three&lt;/b&gt;&lt;br /&gt;Used the back-up superblock to reestablish order in the system files and clear-up the multiply- referenced inode conflict.&lt;br&gt;&lt;br /&gt;&lt;b class="mono"&gt;# fsck -b 32768 /dev/sda1&lt;/b&gt;&lt;br&gt;&lt;br /&gt;&lt;i&gt;Fsck&lt;/i&gt; eventually resolved the inode conflicts and some directory problems. During the process, my mother had to enter confirming "yes"'s nearly 1,000 times. &lt;br&gt;&lt;br /&gt;&lt;b&gt;success&lt;/b&gt;&lt;br /&gt;The problem was solved for the time being. Since I could not access the system, it remains unclear whether the problem was related to &lt;i&gt;Iceweasel&lt;/i&gt;, to a possible hard drive problem, or to some combination of these.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-2173128356352372594?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/2173128356352372594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=2173128356352372594' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2173128356352372594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2173128356352372594'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/02/zenwalk-corrupted-disk.html' title='zenwalk - corrupted disk'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-512136295462521625</id><published>2010-02-17T21:00:00.000-08:00</published><updated>2010-02-26T16:32:25.438-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>accounting...and php</title><content type='html'>Links: &lt;a href="http://www.webhostgear.com/77.html"&gt;IonCube loader instructions&lt;/a&gt;&lt;hr&gt;&lt;br /&gt;Thought I'd try that &lt;a href="http://www.nolapro.com/index-5.html"&gt;Nola Pro&lt;/a&gt; software and see what it's all about to put something enterprise level on a localhost, or what kind of security holes it opens. Blah blah blah. Along the way, I fell prey to a php problem I was embarrassed to have overlooked, and got to try-out the &lt;i&gt;IonCube&lt;/i&gt; code obfuscator w/associated configuration challenges. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5jQYc4kk6YI/S32r2WxI2OI/AAAAAAAAAIc/oOsP8ZW53gs/s1600-h/nolapro5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 170px;" src="http://1.bp.blogspot.com/_5jQYc4kk6YI/S32r2WxI2OI/AAAAAAAAAIc/oOsP8ZW53gs/s320/nolapro5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5439692875246393570" /&gt;Figure 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ioncube.com/"&gt;Ion Cube's&lt;/a&gt; product is a code obsfucator, one that makes it nearly impossible for visitors to determine the underlying code of a website's pages, sort of like &lt;i&gt;Zend&lt;/i&gt;. &lt;i&gt;NolaPro&lt;/i&gt; requires the &lt;i&gt;IonCube&lt;/i&gt; loader as a prerequisite for &lt;i&gt;NolaPro&lt;/i&gt;'s installation. The &lt;i&gt;IonCube&lt;/i&gt; loader is free, the complete &lt;i&gt;IonCube&lt;/i&gt; package is not. This business model reminded me of the early PDF era when a free Adobe Reader was provided to read PDF files, but Adobe required that &lt;i&gt;Acrobat&lt;/i&gt; be purchased, at a significant price, to produce them. At any rate, I navigated to &lt;a href="http://www.ioncube.com/"&gt;Ion Cube's main site&lt;/a&gt;, then to "Products-&gt;Free Loaders for Encoded Files" and downloaded the latest .tgz. Instructions were to untar it and move its entire folder into &lt;b class="mono"&gt;/var/www/htdocs&lt;/b&gt;. The folder appeared to contain a group of libraries.&lt;br /&gt;&lt;br /&gt;To install &lt;i&gt;NolaPro&lt;/i&gt; itself, I untarred the &lt;i&gt;NolaPro&lt;/i&gt; .tgz in my home directory. From there, the instructions were to move the entire folder into &lt;b class="mono"&gt;/var/www/htdocs&lt;/b&gt;. It also suggested full "777" permissions on this folder, which I don't like to do.  I made sure Apache was on and pointed my browser to &lt;b class="mono"&gt;http://localhost/nolapro&lt;/b&gt;. From there &lt;i&gt;NolaPro&lt;/i&gt;'s installer displayed the necessary &lt;i&gt;php.ini&lt;/i&gt; settings. Here's a summary of its php complaints.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5jQYc4kk6YI/S3zSoZjljCI/AAAAAAAAAIM/Y59R03FVAuw/s1600-h/nolapro1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer;cursor:hand;width: 266px; height: 320px;" src="http://1.bp.blogspot.com/_5jQYc4kk6YI/S3zSoZjljCI/AAAAAAAAAIM/Y59R03FVAuw/s320/nolapro1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5439454041453464610" /&gt;Figure 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I thought that &lt;i&gt;mbstring&lt;/i&gt; was properly configured in my &lt;i&gt;php.ini&lt;/i&gt;, so that was weird, along with the &lt;i&gt;gd&lt;/i&gt; thing. It seemed an odd diagnostic at first....&lt;br /&gt;&lt;br /&gt;&lt;b&gt;php embarrassment&lt;/b&gt;&lt;br /&gt;A check with &lt;b class="mono"&gt;http://localhost/phpinfo.php&lt;/b&gt; soon solved one problem. How could I have overlooked it not loading my &lt;i&gt;php.ini&lt;/i&gt; file? Idiot.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5jQYc4kk6YI/S31b1gDzOeI/AAAAAAAAAIU/rvWFjKy-YIY/s1600-h/nolapro2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 61px;" src="http://1.bp.blogspot.com/_5jQYc4kk6YI/S31b1gDzOeI/AAAAAAAAAIU/rvWFjKy-YIY/s320/nolapro2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5439604899630496226" /&gt;Figure 3&lt;/a&gt;&lt;br /&gt;I remedied this problem by copying &lt;i&gt;php.ini&lt;/i&gt; to &lt;b class="mono"&gt;/usr/local/lib/php.ini&lt;/b&gt;. But, about this time, I also recalled I had initially installed &lt;i&gt;php&lt;/i&gt; v.5.28 on my system, and had subsequently upgraded to 5.3. Although it can't be seen in the the photo clip above, &lt;b class="mono"&gt;http://localhost/phpinfo.php&lt;/b&gt; noted version 5.3 was what &lt;i&gt;Apache&lt;/i&gt; was reporting. However checking &lt;b class="mono"&gt;$ php -v&lt;/b&gt; yielded the following:&lt;blockquote&gt;PHP 5.2.8 (cli) (built: Jan  9 2009 16:26:32) &lt;br /&gt;Copyright (c) 1997-2008 The PHP Group&lt;br /&gt;Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies &lt;/blockquote&gt; Nice -- a mixed-up set of installations. Additionally, when I compiled the module last year, I apparently overlooked &lt;i&gt;gd&lt;/i&gt; and &lt;i&gt;mbstring&lt;/i&gt; support: &lt;blockquote&gt;'./configure' '--with-apxs2=/usr/sbin/apxs' '--with-pgsql=/usr/local' '--with-mysql=/usr/share' '--with-libxml-dir=/usr/lib' '--with-curl=/usr/bin/curl' '--with-zlib' '--with-gettext' '--with-gdbm' '--enable-inline-optimization' '--enable-track-vars'&lt;/blockquote&gt;&lt;br /&gt;Accordingly I went back to my php source folder, did a &lt;b class="mono"&gt; $ make clean&lt;/b&gt; and reconfigured, made, and #made installed the php module. This time, used all of the above and added &lt;b class="mono"&gt; --with-gd --enable-mbstring&lt;/b&gt; into the configure command. Success. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;more IonCube&lt;/b&gt;&lt;br /&gt;With the &lt;i&gt;php&lt;/i&gt; problems resolved, &lt;i&gt;NolaPro&lt;/i&gt; was ready to install except for the &lt;i&gt;IonCube&lt;/i&gt; loader (Figure 2). &lt;i&gt;IonCube&lt;/i&gt; provides a diagnostic script, &lt;b class="mono"&gt;ioncube-loader-helper.php &lt;/b&gt;, but this was displaying a blank page when I attempted to load it. I then copied the &lt;i&gt;IonCube&lt;/i&gt; folder to both the &lt;i&gt;nolapro&lt;/i&gt; folder and the &lt;i&gt;htdocs&lt;/i&gt; folder as possible solution. No change. In the end, ensuring I had loader files corresponding to my processor was the answer. I thought I could run loader files that that noted 64-bit processing on my 32-bit system, and that these loader files would be back-compatible. They weren't. Once I dropped to the 32-bit version, &lt;b class="mono"&gt;ioncube-loader-helper.php &lt;/b&gt; displayed a successful test screen. Just to be certain, I also updated &lt;b class="mono"&gt;/usr/local/lib/php.ini &lt;/b&gt; with&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;zend_extension = /var/www/htdocs/ioncube/ioncube_loader_lin_5.3.so &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I used loader 5.3 which corresponded to my &lt;i&gt;php&lt;/i&gt; release; others should change it to the loader for their &lt;i&gt;php&lt;/i&gt; release.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;snagware&lt;/b&gt;&lt;br /&gt;&lt;i&gt;NolaPro&lt;/i&gt; was finally ready to install and did so routinely. At first look, &lt;i&gt;NolaPro&lt;/i&gt; seems pleasing. It also appears to be a foot in the door to lure users into purchasing premium add-ons. If that's right, it's not freeware, but more like crippleware. I'll take a closer look over the coming week. It was a good experience insofar as I gained additional experience with &lt;i&gt;php&lt;/i&gt; and &lt;i&gt;IonCube&lt;/i&gt; configurations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-512136295462521625?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/512136295462521625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=512136295462521625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/512136295462521625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/512136295462521625'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/02/accounting.html' title='accounting...and php'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5jQYc4kk6YI/S32r2WxI2OI/AAAAAAAAAIc/oOsP8ZW53gs/s72-c/nolapro5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-2752606901438539571</id><published>2010-02-12T04:58:00.000-08:00</published><updated>2010-02-13T10:00:55.994-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wodim'/><category scheme='http://www.blogger.com/atom/ns#' term='dvd'/><category scheme='http://www.blogger.com/atom/ns#' term='burning'/><title type='text'>cdrecord/wodim woes</title><content type='html'>Links: &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=461094"&gt;Bug w/wodim info&lt;/a&gt; &amp;nbsp;&lt;a href="http://forum.rpc1.org/"&gt;Firmware info&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;Apparently there has been a fork in what previously was &lt;i&gt;cdrtools&lt;/i&gt;. What's apparently happened is the previously robust &lt;i&gt;cdrecord&lt;/i&gt; may have had &lt;a href="http://en.wikipedia.org/wiki/Cdrkit"&gt;licensing issues&lt;/a&gt; so that what's now called &lt;i&gt;cdrecord&lt;/i&gt; is actually an alias for &lt;i&gt;wodim&lt;/i&gt;. &lt;i&gt;Wodim&lt;/i&gt; appears to be Jörg Schilling's freely licensed forefather to his more developed offspring &lt;i&gt;cdrecord&lt;/i&gt;. It seems that, once the licensing problems with &lt;i&gt;cdrecord&lt;/i&gt; became evident in 2006, the freely licensed, and more rudimentary, &lt;i&gt;wodim&lt;/i&gt; was resurrected and included in &lt;i&gt;cdrkit&lt;/i&gt; nee &lt;i&gt;cdrtools&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;This came up in an attempt to upgrade firmware on an old Pioneer drive that, for some reason, was only burning at about a 1/10th of its rated speeds. When I ran the reliable and familiar&lt;br /&gt;&lt;b class="mono"&gt;$ cdrecord -scanbus&lt;/b&gt;&lt;br /&gt;just to get a part number, I found results under the command &lt;i&gt;wodim&lt;/i&gt;, which caused concern. On a web-facing PC, any time I enter one command and another appears, I'm going to ponder the worst scenario. Ah, but it's just a licensing issue.&lt;br /&gt;&lt;br /&gt;But a real concern are any limitations with &lt;i&gt;wodim&lt;/i&gt; not present in &lt;i&gt;cdrecord&lt;/i&gt;. For example, in the same box that I used to have good results with &lt;i&gt;cdrecord&lt;/i&gt;, I get these results with &lt;i&gt;wodim&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;$ wodim -scanbus&lt;/b&gt;&lt;p class="mono"&gt;wodim: No such file or directory. &lt;br /&gt;Cannot open SCSI driver!&lt;br /&gt;For possible targets try 'wodim --devices' or 'wodim -scanbus'.&lt;br /&gt;For possible transport specifiers try 'wodim dev=help'.&lt;br /&gt;For IDE/ATAPI devices configuration, see the file README.ATAPI.setup from&lt;br /&gt;the wodim documentation. &lt;/p&gt;&lt;br /&gt;&lt;b class="mono"&gt;$ find -name README.ATAPI&lt;/b&gt;&lt;p class="mono"&gt;./usr/doc/cdrkit-1.1.9/READMEs/README.ATAPI&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-2752606901438539571?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/2752606901438539571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=2752606901438539571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2752606901438539571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2752606901438539571'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/02/cdrecordwodim-woes.html' title='cdrecord/wodim woes'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-6190285843045838197</id><published>2010-02-08T01:03:00.000-08:00</published><updated>2010-02-09T22:22:06.623-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zenwalk'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><title type='text'>Inspiron 7000 - Linksys WPC54G w/BCM4306</title><content type='html'>Links: &lt;a href="http://linuxwireless.org/en/users/Drivers/b43"&gt;Discussion on 43b module&lt;/a&gt; &amp;nbsp; &lt;a href="http://wiki.zenwalk.org/index.php?title=Broadcom_bcm43xx_native"&gt;b43 module installation (doesn't work)&lt;/a&gt; &amp;nbsp; &lt;a href="http://ubuntuforums.org/archive/index.php/t-989757.html"&gt;b43 v. ndiswrapper&lt;/a&gt;&amp;nbsp; &lt;a href="http://www.mail-archive.com/bcm43xx-dev@lists.berlios.de/msg09657.html"&gt;b43legacy issues&lt;/a&gt;&amp;nbsp; &lt;a href="http://ubuntuforums.org/showthread.php?t=5645"&gt;ndiswrapper solution&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.linksysbycisco.com/US/en/support/WPC54G/download"&gt;linksys WPC54G support&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;This is an install I'm working on with a friend's older Inspiron 7000. We dropped Zenwalk 6.0 (Slackware light) into the system and everything configured out-of-the box, except his PCMCIA Linksys WPC54G (version 1.2) card. This entry is meant as a trail of crumbs for how we solved it.&lt;br /&gt;&lt;br /&gt;The legacy Linkys WPC54G card employs a Broadcom 4306 chip. I've never understood the impulse behind closed-source drivers for hardware. There are millions of Linux users; if Broadcom only produces a driver for Microsoft, at least make it open-source. Linux users can then easily design a good driver. They will want to buy Broadcom-based hardware. &lt;br /&gt;&lt;br /&gt;Since the Broadcom driver was proprietary, any drivers/modules for it needed to be reverse engineered for Linux with some predictable results. For example, the &lt;a href="http://wiki.zenwalk.org/index.php?title=Broadcom_bcm43xx_native"&gt;b43 module described here&lt;/a&gt; didn't work. The &lt;i&gt;fwcutter&lt;/i&gt; program appeared to properly extract info from &lt;i&gt;bcmwl5.sys&lt;/i&gt; and install it into &lt;b class="mono"&gt;/lib/firmware&lt;/b&gt;; the card was detected by the kernel and apparently was semi-configured by the &lt;i&gt;b43&lt;/i&gt; module; but yet the card never fully initialized. This meant it came down to either the &lt;i&gt;b43legacy&lt;/i&gt; module or, as a last resort, to using &lt;i&gt;ndiswrapper&lt;/i&gt; on the driver coded for MSoft by Broadcom. You know, like back in 2004. But before we capitulated to &lt;i&gt;ndiswrapper&lt;/i&gt; or &lt;i&gt;b43legacy&lt;/i&gt;, we wanted to try &lt;i&gt;fwcutter&lt;/i&gt; again with a more researched approach.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;environment&lt;/b&gt;&lt;br /&gt;&lt;b class="mono"&gt;$ uname -r &lt;br /&gt;2.6.28.7&lt;br /&gt;&lt;br /&gt;# lspci -vnn&lt;br /&gt;06:00.0 Network controller [0280]: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller [14e4:4320] (rev 03)&lt;br /&gt; Subsystem: Linksys WPC54G [1737:4320]&lt;br /&gt; Flags: bus master, fast devsel, latency 64, IRQ 11&lt;br /&gt; Memory at 1c000000 (32-bit, non-prefetchable) [size=8K]&lt;br /&gt; Capabilities: [40] Power Management version 2&lt;br /&gt; Kernel driver in use: b43-pci-bridge&lt;br /&gt; Kernel modules: ssb &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;software&lt;/b&gt;&lt;br /&gt;Understanding from above that we're dealing with the "4320" Broadcom chip, the &lt;i&gt;b43&lt;/i&gt; module should have worked previously; &lt;i&gt;b43&lt;/i&gt; is &lt;a href="http://linuxwireless.org/en/users/Drivers/b43#fw-b43-new"&gt;the recommended driver for the 4320 id&lt;/a&gt;. I decided to recompile &lt;i&gt;fwcutter&lt;/i&gt;, this time making sure I had version "012" of &lt;i&gt;fwcutter&lt;/i&gt; and &lt;u&gt;version 4.150.10.5&lt;/u&gt; of Broadcom's proprietary driver.&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;$ wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-012.tar.bz2&lt;br /&gt;$ wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;success&lt;/b&gt;&lt;br /&gt;Untarred and compiled &lt;i&gt;fwcutter&lt;/i&gt; -- "$ make". Didn't even have to configure. Then, after untarring the driver, put the driver files in the folder with the &lt;i&gt;fwcutter&lt;/i&gt; program and ran:&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;# ./b43-fwcutter -w /lib/firmware wl_apsta_mimo.o &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Rebooted and the card came right up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-6190285843045838197?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/6190285843045838197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=6190285843045838197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6190285843045838197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6190285843045838197'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/02/inspiron-7000-cisco-wbcm4306.html' title='Inspiron 7000 - Linksys WPC54G w/BCM4306'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8673108961403401326</id><published>2010-01-31T18:07:00.000-08:00</published><updated>2010-01-31T20:37:13.892-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gimp'/><title type='text'>logo - gimp</title><content type='html'>There's a &lt;a href="http://www.gimp.org/tutorials/The_Basics/"&gt;great site&lt;/a&gt; for a tutorial, but the steps are a little vague. Here's how I did it.&lt;br /&gt;&lt;br /&gt;1) Made some garbage logo and saved it as a png&lt;br /&gt;2) Duplicated the layer &lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;b class="mono"&gt;Layer &gt; Duplicate Layer&lt;/b&gt;&lt;br /&gt;3) Opened the stack viewer so I could move layers up and down&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;b class="mono"&gt;Windows &gt; Dockable Dialogs &gt; Layers&lt;/b&gt;&lt;br /&gt;4) Highlighted the duplicate in the stack, ran a Gaussian blur about "5"&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;b class="mono"&gt;Filters &gt; Blur &gt; Gaussian&lt;/b&gt;&lt;br /&gt;5) Made a new layer, colored white&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;b class="mono"&gt;Layer &gt; New Layer &gt; (check white)&lt;/b&gt;&lt;br /&gt;6) Put a vertical gradient on the new layer (white to blue looks cool)&lt;br /&gt;7) In the stack viewer, moved the blue layer to top, above the blurred Gaussian. &lt;br /&gt;8) Bumpmapped the blurred layer into the blue layer&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;b class="mono"&gt;Filters &gt; Map &gt; Bump map&lt;/b&gt;&lt;br /&gt;9) With these three layers, slide them around and change their opacity until desired dropshadow appears in the picture, then merge down and flatten.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8673108961403401326?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8673108961403401326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8673108961403401326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8673108961403401326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8673108961403401326'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/01/logo-gimp.html' title='logo - gimp'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-7140008188915118991</id><published>2010-01-18T04:12:00.000-08:00</published><updated>2010-04-01T12:11:07.568-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>MySQL - GUI's - Workbench</title><content type='html'>&lt;b&gt;links&lt;/b&gt;&lt;br /&gt;&lt;a href="http://anojrs.blogspot.com/2008/05/best-free-mysql-gui-tools-for-linux.html"&gt;MySQL Gui's&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.pantz.org/software/mysql/mysqlcommands.html"&gt;Common MySQL commands&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.bytebot.net/blog/archives/2008/09/20/workbench-on-linux"&gt;MySQL Workbench issues&lt;/a&gt; &amp;nbsp &lt;a href="http://help.scibit.com/Mascon/masconMySQL_Field_Types.html"&gt;MySQL field types&lt;/a&gt;&lt;hr&gt;&lt;br /&gt;Website maintenance can be considered in two main halves, the administration of files portion and administration of databases (if any) portion.  For file administration, adding and deleting files, I use a secure ftp program and an ssh tunnel to my provider. But what about database administration? If I am given &lt;b&gt;MySQL&lt;/b&gt; databases, and if that provider has &lt;b&gt;phpMyAdmin&lt;/b&gt; installed, then I use a mix of command line and phpMyAdmin database commands. As a side note, I like PostgreSQL more than MySQL, but most webspace providers only install MySQL.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;command line&lt;/b&gt;&lt;br /&gt;Making a command-line connection to the database is a good place to start, even if we will use a GUI later. Through the command line, we can easily verify connection is possible, and we can also run MySQL installation scripts, etc. &lt;br /&gt;&lt;br /&gt;Let's imagine we had a database at Google that was web-facing w/remote access permissions. This would never happen, but this is the way ISP's often provide database access to you and me. We could connect to our imaginary Google database in the following way:&lt;br /&gt;&lt;b class="mono"&gt;$ mysql -h google.com -u pietro -D mystuff -pwiggetystop&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;(note: no space between the "-p" command and the password itself "wiggetystop") So, if I've done this correctly, I'll be logged into my Google database and have a cheery &lt;b class="mono"&gt;"mysql &amp;gt;"&lt;/b&gt; prompt waiting for mysql commands. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;phpMyAdmin&lt;/b&gt;&lt;br /&gt;By default, many distros that have package management programs install phpMyAdmin into the Apache area. It's understood that Apache is used to parse the php files in phpMyAdmin, but Apache is another annoying level of overhead which also brings on security concerns if used outside of localhost. I only use phpMyAdmin when it's provided on an ISP's server. What is the solution for accessing a  database remotely from one's local machine using a GUI? We don't want to pay for &lt;a href="http://www.navicat.com/buynow/store.html"&gt;Navicat&lt;/a&gt;, now do we? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;mysql workbench&lt;/b&gt;&lt;br /&gt;It turns-out MySQL makes a GUI developer suite called "Workbench", which includes administration, navigation, and design tools. After checking dependencies, I &lt;a href="http://dev.mysql.com/downloads/"&gt;downloaded&lt;/a&gt;, compiled, and installed the program, actions which appeared to have proceeded successfully. The start-up command is &lt;b class="mono"&gt;$ mysql-workbench&lt;/b&gt;, and it might have a few options for that command.&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5jQYc4kk6YI/S1RoT4FcxXI/AAAAAAAAAHM/fIFdK96gQRk/s1600-h/workbench.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 238px;" src="http://2.bp.blogspot.com/_5jQYc4kk6YI/S1RoT4FcxXI/AAAAAAAAAHM/fIFdK96gQRk/s320/workbench.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5428078141570336114" /&gt;&lt;/a&gt;&lt;br /&gt;The reason this screenshot has no administration is because &lt;i&gt;Workbench&lt;/i&gt; couldn't load the administration and nav modules, which left only the design module (pictured). There is &lt;a href="http://bugs.mysql.com/bug.php?id=49982"&gt;a documented bug&lt;/a&gt; when compiling in Linux, even with all the Python libraries I could think of installed. The Python program &lt;b class="mono"&gt;pexpect&lt;/b&gt;, was considered helpful in the bug report, so I installed that as well. No improvement. Currently, I only have the design interface, as shown in the image above.&lt;br /&gt;&lt;br /&gt;After digging around, filing a bug report (incidentally, they don't even want to answer within the bug forum where they will be useful to all, they direct one instead to their IRC channel where only the current people in the room will see the solution - ridiculous), all of the usual stuff, I dug in deeper with &lt;tt class="mono"&gt;strace&lt;/tt&gt;. It appears that it's the usual problem: Java, the most ridiculous run-time library since Visual Basic. This garbage occurs from each object &lt;i&gt;MySQL Workbench&lt;/i&gt; attempts to retrieve: &lt;br /&gt;&lt;b class="mono"&gt;&lt;br /&gt;**Message: WARNING: MetaClass db.maxdb.Catalog is registered but was not loaded from a XML&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This seems to be the Java &lt;b class="mono"&gt;getDocument&lt;/b&gt; call. And there is no way to fix this I know of except to once again spend hours checking every exported path and poorly designed JRE directory search requirement. I've seen this kind of thing in other Java based programs. It's not Java itself that sucks so badly, it's their (apparently) lazily designed afterthought of a Run-Time Enivironment. And Java's inability to tolerate errors slewing off &lt;i&gt; its own runtime environment&lt;/i&gt;, certainly doesn't help. This particular thwart experience is probably related to their "MetaClass" requirments.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;navicat&lt;/b&gt;&lt;br /&gt;I don't want an application with Wine built-in. It conflicts with the Wine I already have installed and is an incredibly boggy duplication of effort.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-7140008188915118991?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/7140008188915118991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=7140008188915118991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7140008188915118991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7140008188915118991'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/01/remote-phpmyadmin.html' title='MySQL - GUI&apos;s - Workbench'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5jQYc4kk6YI/S1RoT4FcxXI/AAAAAAAAAHM/fIFdK96gQRk/s72-c/workbench.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8736492948212612604</id><published>2010-01-16T12:05:00.000-08:00</published><updated>2010-01-17T16:06:31.776-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webcam'/><category scheme='http://www.blogger.com/atom/ns#' term='video'/><title type='text'>linux - cheapo usb camera/webcam</title><content type='html'>&lt;b&gt;links&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=ewwMFPucrxw"&gt;Video: use and settings&lt;/a&gt; (not good for compile instructions)&lt;br /&gt;&lt;a href="http://swifthumors.blogspot.com/2008/03/linux-flash-webcam-headache.html"&gt;Blog: making it work with Flash&lt;/a&gt; &lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;b&gt;getting started (FAIL)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;# udevmonitor&lt;/b&gt;&lt;blockquote&gt;&lt;br /&gt;the program '/bin/bash' called 'udevmonitor', it should use 'udevadm monitor &lt;options&gt;', this will stop working in a future release monitor will print the received events for:&lt;br /&gt;UDEV the event which udev sends out after rule processing&lt;br /&gt;UEVENT the kernel uevent&lt;br /&gt;UEVENT[1263672227.910603] add      /class/usb_device/usbdev1.2 (usb_device)&lt;br /&gt;UEVENT[1263672227.910786] add      /class/usb_endpoint/usbdev1.2_ep00 (usb_endpoint)&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;# lsusb&lt;/b&gt;&lt;blockquote&gt;&lt;br /&gt;Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;br /&gt;Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;Bus 001 Device 002: ID 093a:010e Pixart Imaging, Inc. Digital camera, CD302N/Elta Medi@ digi-cam/HE-501A&lt;br /&gt;Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;So the kernel sees the camera. We have a $2 Pixart &lt;b class="mono"&gt;CD302N/HE-501A (ID 093a:010e)&lt;/b&gt; camera. How do we capture from this piece of junk? &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Software&lt;/b&gt;&lt;br /&gt;A simple command line interface for the camera will be &lt;b class="mono"&gt;spcagui&lt;/b&gt; ,once the camera is initialized, &lt;i&gt;&lt;u&gt;if&lt;/u&gt;&lt;/i&gt; the camera uses the &lt;b class="mono"&gt;gspca&lt;/b&gt; module to drive the camera. How do I determine the right module for my &lt;b class="mono"&gt;CD302N/HE-501A (ID 093a:010e)&lt;/b&gt; camera?&lt;br /&gt;&lt;br /&gt;Navigated to &lt;a href="http://cateee.net/lkddb/web-lkddb/USB_GSPCA.html"&gt;Linux Kernel driver database&lt;/a&gt; and found that the &lt;b class="mono"&gt;093a:010e&lt;/b&gt; camera uses &lt;b class="mono"&gt;gspca &lt;/b&gt; module. Checking the kernel to see if it's activated:&lt;br /&gt;&lt;b class="mono"&gt;# modprobe gspca&lt;br /&gt;FATAL: Module gspca not found.&lt;/b&gt;&lt;br /&gt;So, it's not installed. Would the Kernel allow it, if we had it?&lt;br /&gt;&lt;b class="mono"&gt;# cd /etc&lt;br /&gt;# grep -rn "CONFIG_USB" *&lt;/b&gt;&lt;blockquote&gt;udev/rules.d/30-scanners.rules:25:# For Linux &gt;= 2.6.22 without CONFIG_USB_DEVICE_CLASS=y&lt;/blockquote&gt;&lt;br /&gt;So, it appears I won't have to modify the kernel, but I will have to build a module (in Windowspeak, a "driver") to load into the kernel. If I'd had to change the kernel from "n" to "y", I would go &lt;a href="http://www.linuxjournal.com/article/6568"&gt;here and accomplish all this&lt;/a&gt;. But I don't have to change the kernel.&lt;br /&gt;&lt;br /&gt;The documentation above noted the &lt;i&gt;GSPCA&lt;/i&gt; module relies on &lt;b class="mono"&gt;libv4l&lt;/b&gt;, so it must also be checked: &lt;br /&gt;&lt;b class="mono"&gt;# netpkg libv4l&lt;/b&gt; &lt;blockquote&gt;[I][l] Found installed libv4l-0.5.8-i486-60.1.tgz on the repository&lt;br /&gt; what should I do ?&lt;br /&gt;1) reinstall&lt;br /&gt;2) download&lt;br /&gt;3) skip&lt;/blockquote&gt; There and installed. So only the source and patch for the &lt;i&gt;GSPCA&lt;/i&gt; module needs to be found somewhere. &lt;ul&gt;&lt;li&gt; &lt;a href="http://mxhaard.free.fr/spca50x/Download/"&gt;At this site&lt;/a&gt;  appears &lt;b class="mono"&gt;gspcav1-20071224.tar.gz&lt;/b&gt; is the most recent version.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a href="http://www.actionshrimp.com/wordpress/wp-content/uploads/2009/01/gspcapatch.gz"&gt;At this site&lt;/a&gt;  appears &lt;b class="mono"&gt;gspcapatch.gz&lt;/b&gt; is a 2009 version.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Unzip them both into the same folder, then patch&lt;br /&gt;&lt;b class="mono"&gt;$ patch&lt;.gspcapatch&lt;/b&gt;&lt;br /&gt;Following the patch, root-up and run their excellent compilation script&lt;br /&gt;&lt;b class="mono"&gt;# ./gspca_build&lt;/b&gt;&lt;br /&gt;The module will be created. Then just &lt;b class="mono"&gt;modprobe&lt;/b&gt; it and check to see if it loaded&lt;br /&gt;&lt;b class="mono"&gt;# modprobe gspca&lt;br /&gt;# lsmod&lt;/b&gt;&lt;blockquote&gt;gspca    &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;             601572&amp;nbsp;    0 &lt;br /&gt;videodev  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;23680 &amp;nbsp; 1 &amp;nbsp;  gspca&lt;br /&gt;v4l1_compat &amp;nbsp;               9732 &amp;nbsp;   1 &amp;nbsp;  videodev&lt;/blockquote&gt;&lt;br /&gt;So, all are loaded. I plugged-in the camera, and checked in &lt;b class="mono"&gt;/dev&lt;/b&gt;, and found that there was no &lt;b class="mono"&gt;/dev/video0&lt;/b&gt;, and so there was no way to find the camera. This is a &lt;a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/255678"&gt;well known bug&lt;/a&gt;, but the standard fixes, such as reloading the module, haven't worked. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;A HA!&lt;/b&gt;&lt;br /&gt;&lt;b class="mono"&gt; # modinfo gspca&lt;/b&gt;&lt;blockquote&gt;filename:       /lib/modules/2.6.28.7/kernel/drivers/usb/media/gspca.ko&lt;br /&gt;license:        GPL&lt;br /&gt;description:    GSPCA/SPCA5XX USB Camera Driver&lt;br /&gt;author:         Michel Xhaard &lt;mxhaard@users.sourceforge.net&gt;&lt;br /&gt;--HUGE OUTPUT--&lt;/blockquote&gt;&lt;br /&gt;&lt;b class="mono"&gt; # modinfo gspca |grep 93A&lt;/b&gt;&lt;blockquote&gt;alias:          usb:v093Ap2463d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap2472d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap260Fd*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap260Ed*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap2608d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap2603d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap2601d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap2600d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap2470d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap2460d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap2471d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap2468d*dc*dsc*dp*ic*isc*ip*&lt;br /&gt;alias:          usb:v093Ap050Fd*dc*dsc*dp*ic*isc*ip*&lt;/blockquote&gt;Notice that there is no &lt;b class="mono"&gt;093a:010e&lt;/b&gt; in the list of these Pixart cameras. So, we are definitely going to need to add another module or patch the current one further. The OS needs to create the node&lt;b class="mono"&gt;/dev/video0&lt;/b&gt; or else software that shows images can't interact with the camera. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;mr97310a.c&lt;/b&gt;&lt;br /&gt;Mr97310a.c, may be the patch. It's described at &lt;a href="http://cateee.net/lkddb/web-lkddb/USB_GSPCA.html"&gt;the Linux Database&lt;/a&gt;. Scrolling down, the site seems to indicate that the &lt;b class="mono"&gt;093a:010e Pixart Imaging, Inc. Digital camera, CD302N/Elta Medi@ digi-cam/HE-501A&lt;/b&gt; requires this "C" module to be patched into the &lt;b class="mono"&gt;gspca&lt;/b&gt; module when compiling it, however this patch cannot be downloaded or copied and pasted. Alternatively, perhaps it will be a module named &lt;a href="http://cateee.net/lkddb/web-lkddb/USB_GSPCA_MR97310A.html"&gt; gspca_mr97310a&lt;/a&gt;. I can't figure out how to build this from the documentation.&lt;br /&gt;&lt;br /&gt;Since I don't want, or don't have the information, to go to that trouble, I'm going to handcode what the module source will need to find the hardware, and then recompile the module:&lt;br /&gt;&lt;br /&gt;In &lt;u&gt;gspa.mod.c&lt;/u&gt;, added:&lt;br /&gt;&lt;b class="mono"&gt;MODULE_ALIAS("usb:v093Ap010Ed*dc*dsc*dp*ic*isc*ip*");&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In &lt;u&gt;gspa_core.c&lt;/u&gt;, added line 413:&lt;br /&gt;&lt;b class="mono"&gt;{PAC7310},&lt;/b&gt;&lt;br /&gt;added Line 613:&lt;br /&gt;&lt;b class="mono"&gt;{PAC7310, "Pixart Kaibo 7310"},&lt;/b&gt;&lt;br /&gt;added Line 628:&lt;br /&gt;&lt;b class="mono"&gt;{USB_DEVICE(0x093a, 0x010e)}, /* Pixart Kaibo 7310 */&lt;/b&gt;&lt;br /&gt;added Lines @ 4120:&lt;br /&gt;&lt;b class="mono"&gt;case 0x010e:&lt;br /&gt;    spca50x-&gt;desc = PAC7310;&lt;br /&gt;    spca50x-&gt;bridge = BRIDGE_PAC7311;&lt;br /&gt;    spca50x-&gt;sensor = SENSOR_PAC7311;&lt;br /&gt;  break;&lt;/b&gt;&lt;br /&gt;Then, took out the old module and recompiled and installed:&lt;br /&gt;&lt;b class="mono"&gt;# modprobe -r gspca videodev v4l1_compat&lt;br /&gt;# rm /lib/modules/2.6.28.7/kernel/drivers/usb/media/gspca.ko&lt;br /&gt;# cd /home/foo/Download/gspcav1-20071224&lt;br /&gt;# ./gspca_build&lt;/b&gt;&lt;br /&gt;So, after these steps, and a &lt;b class="mono"&gt;# modprobe gspca&lt;/b&gt; and plugging in the camera, we get:&lt;br /&gt;&lt;b class="mono"&gt;[dev]# find . -name "video*"&lt;/b&gt;&lt;blockquote&gt;./video0&lt;br /&gt;./v4l/video0&lt;br /&gt;./.udev/names/video0&lt;/blockquote&gt;&lt;br /&gt;Great! The system is seeing the camera, and creating the &lt;b class="mono"&gt;/dev/video0&lt;/b&gt; and associated nodes. Let's see if we can get a picture. No. It may be that the 7311 bridge is not going to work properly with a 7310 camera:&lt;br /&gt;&lt;b class="mono"&gt;$ spcagui&lt;/b&gt;&lt;blockquote&gt;SpcaGui version: 0.3.5 date: 18 September 2005&lt;br /&gt;video device /dev/video0&lt;br /&gt;ERROR opening V4L interface &lt;br /&gt;: Input/output error&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Reinstalling the driver, with modprobe yields the same result. It appears I'm very close, but that the bridge for the 7311 is not going to work with the 7310. Not sure what to do without that 7310 bridge, but at least the process is confirmed for compiling the driver and recognizing the camera. More to come.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8736492948212612604?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8736492948212612604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8736492948212612604' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8736492948212612604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8736492948212612604'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/01/linux-cheapo-usb-camerawebcam.html' title='linux - cheapo usb camera/webcam'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-5378416282771713018</id><published>2010-01-16T11:41:00.000-08:00</published><updated>2010-01-16T11:50:12.824-08:00</updated><title type='text'>linux analog video tape -&gt; digital format</title><content type='html'>There are two parts. First there are many different types of video format to consider, what do we need as an outcome? DivX, Quicktime, swf? Start by considering that, or whether it might have to go out into multiple formats or be edited.  Next is taking the old RCA video outputs from a VCR and getting the analog audio and video into the Linux box for capture and potential editing before burning to DVD, sending to YouTube, whatever. Finally, there is a layer that's software for editing, but that will likely be a separate post, so I'm not considering that one here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-5378416282771713018?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/5378416282771713018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=5378416282771713018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5378416282771713018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5378416282771713018'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/01/linux-analog-video-tape-digital-format.html' title='linux analog video tape -&gt; digital format'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4765629903208599928</id><published>2010-01-01T09:31:00.000-08:00</published><updated>2010-12-20T17:42:59.848-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grammar'/><category scheme='http://www.blogger.com/atom/ns#' term='maths'/><category scheme='http://www.blogger.com/atom/ns#' term='geometry'/><title type='text'>Math - Grammar - Law</title><content type='html'>Geometry tends to bore people, for example, me. It might be interesting in one way though. There's a connection we feel between Math, Grammar, and Law (within this essay, "MGL") that emerges when we do Geometric proofs. I don't think there's any other subject where there's a convergence like this. What allows them to work together appears to be the rule structures underlying each concept.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Familiarity, intuitive use &lt;/b&gt;&lt;br /&gt;Most of us who are not professionals in MGL fields still operate with them enough to have a feel for them. In Math most of us recall that different theories seem to apply to different types of problems, for example, commutativity and additive inverses. Without knowing the names of the rules, we understand that &lt;i&gt;3 - 2&lt;/i&gt; is not the same as &lt;i&gt;2 - 3&lt;/i&gt;, but that &lt;i&gt;2 + 3&lt;/i&gt; and &lt;i&gt;3 + 2&lt;/i&gt; are equal.  In Grammar, we know that adverbs describe actions, but even if we've forgotten the name of that rule, it feels wrong if we mistakenly use an adverb to describe a noun.  Eg, &lt;i&gt;"An unused heavy weight makes a good doorstop."&lt;/i&gt; looks correct, as compared to &lt;i&gt;"An unused &lt;b&gt;heavily&lt;/b&gt; weight makes a good doorstop"&lt;/i&gt;. In Law, most of us understand that, if contracts are broken, there might be a lawsuit, whether or not we happen to know the applicable law. So in each of these areas, most of us operate out of habit without needing to consult the specific MGL rule that applies. In Geometry, when we make proofs, we have to be explicit about only the Math portion, but there are other laws at work.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Grammmar&lt;/b&gt;&lt;br /&gt;Grammar is determined by usage and social convention. In the case of US English, media status and academia tend to promote one form of usage into Standard English and Received Pronunciation. These then normatively reinforce that usage over others. Outside of this politicking however, grammar "rules" are descriptive, not normative. they are descriptions of what we observe across languages. One of the potential hiccups is agreeing on the linguistic terms. Linguistic terms are themselves words -- defined partly by usage -- so that they risk a circularity of using themselves to define themselves. We break the circle fairly effectively by first having a conversation about what our linguistic terms refer to, a meta-conversation, attempting to solidify what our discussion will point out in a language before we start examining languages. Outside of Linguistics study, in the world. language operates without bounds. Inside Linguistics, that is, while studying worldly language effects, we want own words to point to agreed-upon concepts. &lt;br /&gt;&lt;br /&gt;As an example, let's suppose we're Linguists who agree about the meaning of the word "case", insofar as language is concerned. Using this definition, we're able to observe the number or nature of cases across languages in way we both understand. In German, we could agree there are likely at least 4 cases; the nominative, accusative, genitive, and dative cases. Observing English, we might agree that typical English usage does not split these apart so neatly. The language rules society follows come through usage, the rules we use to describe them must come through academic agreement. In one sense, Grammar is &lt;i&gt;a posteriori&lt;/i&gt;, but the study of Grammar requires &lt;i&gt;a priori&lt;/i&gt; definitions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Math&lt;/b&gt;&lt;br /&gt;With Math, we believe we establish rules based on logic first, and experience second. So, the trajectory is deductive, we start with principles and build logically from that point to conclusions within that logic, or must expand it. The basis is &lt;i&gt;a priori&lt;/i&gt;, but the expansion of axioms to encompass new information is &lt;i&gt;a posteriori&lt;/i&gt;. Of course, Kant considered Mathematics "synthetic" for this blend. But what about our meta-conversation in Math, like the one we had in Linguistics? Isn't it true that we must first have a conversation about what Math words mean and agree upon what they point to, before we subsequently do that Math? For the part of Math that is arithmetic, that uses symbols, such as  2+2=4, it's relatively easy to agree because there are quantities these point to, not just concepts. We can place two items in front of anyone in any language and, once it's clear we are discussing a quantity, need only agree on the symbol. So for quantitative Math, there can be agreement about the language. But Math is not all quantities, it's also performing operations on quantities and applying theorems to those quantities, and these operations and concepts may need clearly agreed terms to discuss.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Law&lt;/b&gt;&lt;br /&gt;With Law, the statuatory scenario is &lt;i&gt;a priori&lt;/i&gt;; the law is true by its definition as declared, not through observation (inductively). In this way it is like the first discussion we had about Linguistics, we had to first agree what we meant by the words we were going to use with the However, with precedents, the law also allows for interpretation which can affect its implementation in an &lt;i&gt;a posteriori&lt;/i&gt; sense. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Geometry connection&lt;/b&gt;&lt;br /&gt;One thing that seems to combine all three of these is Geometry. Geometric proofs utilize deductive logic, the obviousness of quantities and graphical constructs, and clear definitions.   Perhaps Geometry is not so boring after all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4765629903208599928?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4765629903208599928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4765629903208599928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4765629903208599928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4765629903208599928'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2010/01/math-grammar-law.html' title='Math - Grammar - Law'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4280437320150092663</id><published>2009-12-20T18:32:00.000-08:00</published><updated>2011-10-25T18:55:21.007-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latex'/><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><title type='text'>LaTeX hijinx</title><content type='html'>&lt;b&gt;links&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.latex-community.org/forum/"&gt;latex forum&lt;/a&gt; &amp;nbsp;&lt;a href="http://wiki.zenwalk.org/index.php?title=HOWTO_Texlive"&gt;TexLive install (zenwalk)&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.tug.org/texlive/doc/texlive-en/texlive-en.html#x1-460006"&gt;TeX Live guide&lt;/a&gt; &amp;nbsp; &lt;a href="http://dsl.org/cookbook/cookbook_8.html"&gt;summary of commands&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.helsinki.fi/~tfo_www/instr/latex-guide.html"&gt;general guide&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.image.ufl.edu/help/latex/"&gt;general guide&lt;/a&gt;&amp;nbsp; &lt;a href="http://mike.marineau.org/blog/howto/2007-02-22-basic-latex-howto"&gt;latex basics&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.haptonstahl.org/latex/basics_formatting.php"&gt;latex basics&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.cs.cornell.edu/Info/Misc/LaTex-Tutorial/Errors.html"&gt;formatting&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.math.tamu.edu/~boas/courses/math696/LaTeX-tips-for-text.html"&gt;formatting tips&lt;/a&gt; &amp;nbsp; &lt;a href="http://www-h.eng.cam.ac.uk/help/tpl/textprocessing/fonts.html"&gt;font info&lt;/a&gt;&amp;nbsp; &lt;a href="http://www.terminally-incoherent.com/blog/category/latex/"&gt;more font&lt;/a&gt; &amp;nbsp; &lt;a href="http://equplus.net/eqninfo/Equation-27.html"&gt;equations&lt;/a&gt; &amp;nbsp; &lt;a href="http://docs.google.com/viewer?a=v&amp;q=cache:j90Pt-AmWyAJ:www.math.nus.edu.sg/aslaksen/cs/textrix.pdf+tikz+or+graphicx+or+eepic&amp;hl=en&amp;gl=us&amp;sig=AHIEtbR6ykoTbF3SUMG9LhqAMUnu7wDrfw"&gt;graphing information&lt;/a&gt; &amp;nbsp;&lt;a href="http://www.google.com/url?url=http://docs.google.com/viewer%3Fa%3Dv%26q%3Dcache:a0BdzC_2qCEJ:www.tug.org/pracjourn/2007-1/mertz/mertz.pdf%2Bdraw%2Bgraph%2Blatex%2Bpdflatex%2Btikz%26hl%3Den%26gl%3Dus%26pid%3Dbl%26srcid%3DADGEESj9lg-ZgnP_NUGpXKj5Utgrur5XFCxwvn6jguupB3eg3rd9zOntsUUlU9SKtlur08zUao0hQJN3yzBkXpE5INt3_TzwKbtQkpDreC6zNfbJKVZ2HRpfh_vY1cd9MejpxQcjleyv%26sig%3DAHIEtbQt7UiMtLiPZtmGDzFFHKJztrXo7g&amp;rct=j&amp;ei=4RJaS4qdAYqkswPA0OzMBA&amp;sa=X&amp;oi=gview&amp;resnum=19&amp;ct=other&amp;ved=0CDAQxQEwCDgK&amp;q=draw+graph+latex+pdflatex+tikz&amp;usg=AFQjCNErpf9TGrnHzYeeEoXTzL5_U8IcYg"&gt;graphing instructions&lt;/a&gt; &amp;nbsp; &lt;a href="http://en.wikibooks.org/wiki/LaTeX/Importing_Graphics"&gt;photos/graphics&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.texample.net/tikz/examples/"&gt;complex graphs&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.andy-roberts.net/misc/latex/latextutorial4.html"&gt;tables&lt;/a&gt; &amp;nbsp;&lt;a href="http://www.personal.ceu.hu/tex/spacebox.htm"&gt;lines, boxes&lt;/a&gt;&amp;nbsp; &lt;a href="http://www.math.duke.edu/computing/tex/templates.html"&gt;templates: letters, tables&lt;/a&gt;&amp;nbsp; &lt;a href="http://amath.colorado.edu/documentation/LaTeX/reference/faq/bibstyles.html"&gt;BibTeX&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.reed.edu/cis/help/latex/bibtexstyles.html"&gt;BibTeX&lt;/a&gt; &amp;nbsp;&lt;a href="http://www.ace.uwaterloo.ca/~liho/homepage/latex.html"&gt;Hongzhi's Notes&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.nought.de/tex2im.php"&gt;convert latex to png&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;Note: If Perl or Tk version problems appear running &lt;b class="mono"&gt;tlmgr&lt;/b&gt; or &lt;b class="mono"&gt;tlmgr -gui&lt;/b&gt;, it might be searching on the DVD instead of the HDD installation. The way to confirm this is to run &lt;b class="mono"&gt;$ tlmgr update --list&lt;/b&gt; which will attempt to evaluate what packages could be updated by examining the database. If it comes back unable to find the database and the folder is the DVD, not the HDD, update where it looks: &lt;blockquote class="mono"&gt;$ tlmgr option location http://mirror.ctan.org/systems/texlive/tlnet&lt;/blockquote&gt;Also update &lt;b class="mono"&gt; tlmgr&lt;/b&gt;, before checking anything else.&lt;blockquote class="mono"&gt;$ tlmgr update --self&lt;/blockquote&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;h3&gt;Latex&lt;/h3&gt;Unlike MS Word, LaTeX is not WYSIWYG, but we it's features are transparent,non-proprietary, and configurable to very fine grain. LaTeX seems slightly ungainly initially, before one understands what set of binaries they will typically use. One becomes more efficient as they learn, but the easiest approach for a noob appears to be to download a complete 2.8 GB &lt;a href="http://www.tug.org/texlive/acquire.html"&gt;TexLive&lt;/a&gt; or MiKTeX iso, that has all potential binaries and many templates. Just burn it to DVD and then install it to the hard-drive from the DVD. One will avoid encountering missing binary requirements by having a complete installation. The greatest advantage of the basic LaTeX being in ASCII text is that it is easily searchable w/grep, unlike proprietary formats (eg. Word). Additionally, publishers often produce &lt;b class=mono&gt;.cls &lt;/b&gt; files which automatically, or nearly automatically, format one's text for the style of the journal's submission requirements. After placing in the appropriate directory, one only need change one line at the top of their document eg: &lt;b class=mono&gt;\documentclass{theircls}&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;tex files&lt;/b&gt;&lt;br /&gt;The basic LaTeX file is the ascii &lt;b class="mono"&gt;.tex&lt;/b&gt; file. It can be edited with any text editor. Once complete, the source &lt;b class="mono"&gt;.tex&lt;/b&gt; is compiled into a &lt;b class="mono"&gt;.dvi&lt;/b&gt; file (device independent), but it can also be compiled into other formats, such as &lt;b class="mono"&gt;.pdf&lt;/b&gt;, &lt;b class="mono"&gt;.ps&lt;/b&gt;, &lt;b class="mono"&gt;.ep&lt;/b&gt;, etc.&lt;br&gt;&lt;br /&gt;&lt;b&gt;tex file syntax&lt;/b&gt;&lt;br /&gt;The default settings for margins are huge, around 2" in every direction. In the basic &lt;b class="mono"&gt;.tex&lt;/b&gt; file below, I added &lt;b class="mono"&gt;{geometry}&lt;/b&gt; package information to overcome this but, if the default geometry is desired, &lt;b class="mono"&gt;{geometry}&lt;/b&gt; can be deleted. One can create their own style sheets and call them with &lt;b class="mono"&gt;\usepackage&lt;/b&gt;, applying desired behavior across any document, similar to the way a css sheet does in an html document.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;b&gt;test.tex&lt;/b&gt;&lt;br /&gt;% percents are comments&lt;br /&gt;\documentclass[letterpaper]{article}&lt;br /&gt;\usepackage[left=3cm,top=3cm,right=3cm,nohead,nofoot]{geometry}&lt;br /&gt;\usepackage[british]{babel}&lt;br /&gt;% \usepackage[T1]{fontenc} accents, umlauts, etc&lt;br /&gt;% \usepackage[utf8]{inputenc} chinese characters&lt;br /&gt;% \usepackage{graphicx}  if photos&lt;br /&gt;% \usepackage{indentfirst} indents first para in section&lt;br /&gt;% \usepackage[scaled]{helvet} sans serif pt1&lt;br /&gt;% \renewcommand*\familydefault{\sfdefault} sans serif pt2&lt;br /&gt;\author{\LaTeX Newbie}&lt;br /&gt;\title{A Quick Example}&lt;br /&gt;&lt;br /&gt;\begin{document}&lt;br /&gt;\section{Notes Wk 1}&lt;br /&gt;Math 674 -- Spring 2010&lt;br /&gt;\subsection{20100116 Introduction}&lt;br /&gt;We review the syllabus and introductions. A primary concern seems to be the use of a calculator.\\&lt;br /&gt;&lt;br /&gt;Here are a couple of equations that are pretty well known, the second being the quadractic formula. I'm uncertain how to make a larger space between the two equations:&lt;br /&gt;\begin{displaymath}&lt;br /&gt;  E = mc^2  &lt;br /&gt; \begin{array}{*{20}c} {x = \frac{{ - b \pm \sqrt {b^2 - 4ac} }}{{2a}}} &amp;&lt;br /&gt;  {{\rm{when}}} &amp; {ax^2 + bx + c = 0} \\ \end{array}&lt;br /&gt;\end{displaymath}&lt;br /&gt;\noindent&lt;br /&gt;Just a short follow-up text&lt;br /&gt;\end{document}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;If we then compiled it into a &lt;b class="mono"&gt;.pdf&lt;/b&gt; with the command, say &lt;b class="mono"&gt;$ pdflatex test.tex &lt;/b&gt;, it looks like this:&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5jQYc4kk6YI/Sy88v5Lr53I/AAAAAAAAAGo/KR69MC9whkM/s1600-h/text.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 247px; height: 320px;" src="http://4.bp.blogspot.com/_5jQYc4kk6YI/Sy88v5Lr53I/AAAAAAAAAGo/KR69MC9whkM/s320/text.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5417615670251349874" /&gt;&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;b&gt;graphs and photos&lt;/b&gt;&lt;br /&gt;Many people creates graphs or plots of equations outside LaTeX and "\include" the results, while also using a package to process it. The main packages are &lt;b class="mono"&gt;eepic, graphicx, and tikz&lt;/b&gt;. Eepic is not known to work with &lt;i&gt;pdflatex&lt;/i&gt;, which I use to compile my docs into PDF files. It appears a simple way is to use &lt;i&gt;gnuplot&lt;/i&gt; from the command line, and export the resulting graph as an &lt;b class="mono"&gt;*.eps&lt;/b&gt; file. In the main document, use the &lt;a href="http://www.aspbooks.org/step1_getting_started/usinggraphicx.pdf"&gt;graphicx&lt;/a&gt; package ("&lt;b class="mono"&gt;\usepackage {graphicx}&lt;/b&gt;") and then, where graphics are desired, call the eps file(s) using &lt;b class="mono"&gt;\includegraphics&lt;/b&gt; with the file name to insert the graphic. &lt;i&gt;Graphicx&lt;/i&gt; can also import jpgs pngs and the like, as described in &lt;a href="http://en.wikibooks.org/wiki/LaTeX/Importing_Graphics"&gt;this wiki primer&lt;/a&gt;. &lt;br&gt;&lt;br /&gt;Another option is &lt;i&gt;tikz&lt;/i&gt;, which is actual vector graphics. The package is &lt;b class="mono"&gt;\usepackage{tikz}&lt;/b&gt;, and then the callout is &lt;b class="mono"&gt;\begin{figure}&lt;/b&gt;, which is apparently the graphics area. Nested, we use &lt;b class="mono"&gt;\begin{tikzpicture}&lt;/b&gt; with associated code then entered to create the graph. &lt;i&gt;Tikz&lt;/i&gt; apparently is a user application layer for a program called "pgf". The info on &lt;i&gt;pgf&lt;/i&gt; along with some typical &lt;i&gt;tikz&lt;/i&gt; examples is available at &lt;a href="http://ftp.dante.de/tex-archive/help/Catalogue/entries/pgf.html"&gt;the pgf site&lt;/a&gt;. Chapter 12 of the &lt;a href="http://ftp.dante.de/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf"&gt;TIKZ manual&lt;/a&gt; there is particularly helpful for mathematics graphing, but does not manage equations and smooth curves easily. It is possible, and looks clean, &lt;a href="http://www.texample.net/tikz/examples/parabola-plot/"&gt;as seen here&lt;/a&gt;.&lt;br&gt;&lt;br /&gt;&lt;b&gt;tex to html, open office, word&lt;/b&gt;&lt;br /&gt;Link: &lt;a href="http://bytes.com/topic/net/answers/842800-miscellaneous-issues-tex4ht-xml-xsl-transformations"&gt;Geico Caveman's attempt&lt;/a&gt;&lt;br /&gt;In TexLive, &lt;i&gt;tex4ht&lt;/i&gt; appears worthless. For straight &lt;i&gt;html&lt;/i&gt;, I didn't find anything better than &lt;b class="mono"&gt; $ htlatex foo.tex &lt;/b&gt;. this created an &lt;i&gt;html&lt;/i&gt; document and associated &lt;i&gt;css&lt;/i&gt; stylesheet that properly rendered math and text. At least in Firefox. The &lt;i&gt;css&lt;/i&gt; stylesheet was bulky, but not really a problem. A few features will not parse, notably &lt;i&gt;dfrac&lt;/i&gt;, but what comes through the compilation seems to display properly.&lt;br&gt;&lt;br /&gt;A second method is to use &lt;br /&gt;&lt;b&gt;combining multiple documents&lt;/b&gt;&lt;br /&gt;I can't write it any better than &lt;a href="http://www.latex-community.org/forum/viewtopic.php?f=5&amp;t=1423&amp;start=0&amp;st=0&amp;sk=t&amp;sd=a"&gt; this excellent post&lt;/a&gt; for combining multiple &lt;b class="mono"&gt;.tex&lt;/b&gt; files into a book or other larger document.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4280437320150092663?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4280437320150092663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4280437320150092663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4280437320150092663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4280437320150092663'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/12/latex-hijinx.html' title='LaTeX hijinx'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5jQYc4kk6YI/Sy88v5Lr53I/AAAAAAAAAGo/KR69MC9whkM/s72-c/text.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4606161015143772207</id><published>2009-12-19T13:00:00.000-08:00</published><updated>2010-02-12T06:44:06.608-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wodim'/><category scheme='http://www.blogger.com/atom/ns#' term='dvd'/><title type='text'>dvd-burning burn-out</title><content type='html'>Links: &lt;a href="http://forum.rpc1.org/"&gt;Firmware info &lt;/a&gt; &amp;nbsp; &lt;a href="http://gradius.rpc1.org/"&gt;Firmware&lt;/a&gt; &amp;nbsp; &lt;a href="http://dvrflash.rpc1.org/"&gt;Latest DVRFlash&lt;/a&gt;&lt;hr&gt;&lt;br /&gt;It used to be that DVD-burning was pretty straightforward under various distributions: &lt;blockquote&gt;&lt;b&gt;$ growisofs -dvd-compat -Z /dev/hdc=myvacation.iso&lt;/b&gt;&lt;/blockquote&gt;Mostly, all would go smoothly. (Note: This is not a discussion of the current cdrecord/wodim problem)&lt;br /&gt;But advances have come at different speeds for different components, such as drives and cables and I/0 ports, firmware, and the BIOS. A DVD drive might read OK, but might seem to encounter problems when burning: &lt;blockquote&gt;&lt;b&gt;$ growisofs -dvd-compat -Z /dev/hdc=myvacation.iso&lt;/b&gt;&lt;br /&gt;Executing 'builtin_dd if=myvacation.iso of=/dev/sr0 obs=32k seek=0'&lt;br /&gt;:-[ PERFORM OPC failed with SK=3h/POWER CALIBRATION AREA ERROR]: Input/output error&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;One can have &lt;i&gt;Brasero&lt;/i&gt; or some program like that do the burning to overcome any manual settings, but then we might notice our drive, which is supposed to burn at, say, 4-16x, is burning instead at about .5x. That would be something like 680 KbSec, if we agree 1x is supposed to be about 1.32 MB/Sec. This is annoying, to be sure. (Note: one good thing about &lt;i&gt;Brasero&lt;/i&gt;, it seems a rare non-K3b burner which will do video, at least if &lt;a href="http://www.gnomefiles.org/app.php/Brasero"&gt;configured properly&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Facing this, is it our cable, our DVD firmware, what? Certainly, the burner only working at 1/8 of its lowest burn speed is going to cause I/O problems and user delays. First, we'd like to run a few tests, just as we see &lt;a href="http://www.linuxquestions.org/questions/slackware-14/unable-to-enable-dma-permanently-on-dvd-burner-547741/"&gt;here&lt;/a&gt;, to give us a rough view.&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;# hdparm -i /dev/sr0&lt;/b&gt;&lt;p class="mono"&gt;Model=PIONEER DVD-RW  DVR-108                 , FwRev=1.18    , SerialNo=&lt;br /&gt; Config={ Fixed Removeable DTR&lt;=5Mbs DTR&gt;10Mbs nonMagnetic }&lt;br /&gt; RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0&lt;br /&gt; BuffType=13395, BuffSize=64kB, MaxMultSect=0&lt;br /&gt; (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0&lt;br /&gt; IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}&lt;br /&gt; PIO modes:  pio0 pio1 pio2 pio3 pio4 &lt;br /&gt; DMA modes:  mdma0 mdma1 mdma2 &lt;br /&gt; UDMA modes: udma0 udma1 udma2 udma3 *udma4 &lt;br /&gt; AdvancedPM=no&lt;br /&gt; Drive conforms to: Unspecified:  ATA/ATAPI-2,3,4,5&lt;br /&gt;&lt;br /&gt; * signifies the current active mode &lt;/p&gt;&lt;br /&gt;&lt;b class="mono"&gt; # hdparm -I /dev/sr0&lt;/b&gt;&lt;p class="mono"&gt;ATAPI CD-ROM, with removable media&lt;br /&gt; Model Number:       PIONEER DVD-RW  DVR-108                 &lt;br /&gt; Serial Number:      DKDC451400WL       &lt;br /&gt; Firmware Revision:  1.18    &lt;br /&gt;Standards:&lt;br /&gt; Likely used CD-ROM ATAPI-1&lt;br /&gt;Configuration:&lt;br /&gt; DRQ response: 50us.&lt;br /&gt; Packet size: 12 bytes&lt;br /&gt; cache/buffer size  = unknown&lt;br /&gt;Capabilities:&lt;br /&gt; LBA, IORDY(can be disabled)&lt;br /&gt; Buffer size: 64.0kB&lt;br /&gt; DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 *udma4 &lt;br /&gt;      Cycle time: min=120ns recommended=120ns&lt;br /&gt; PIO: pio0 pio1 pio2 pio3 pio4 &lt;br /&gt;      Cycle time: no flow control=240ns  IORDY flow control=120ns&lt;br /&gt;Commands/features:&lt;br /&gt; Enabled Supported:&lt;br /&gt;    * Power Management feature set&lt;br /&gt;    * PACKET command feature set&lt;br /&gt;    * DEVICE_RESET command&lt;br /&gt;HW reset results:&lt;br /&gt; CBLID- above Vih&lt;br /&gt; Device num = 0 determined by the jumper &lt;/p&gt;&lt;br /&gt;&lt;b class="mono"&gt;# hdparm -tT /dev/sr0&lt;/b&gt;&lt;p class="mono"&gt; Timing cached reads:   1234 MB in  2.00 seconds = 616.60 MB/sec&lt;br /&gt; Timing buffered disk reads:   22 MB in  3.23 seconds =   &lt;b&gt;6.82 MB/sec&lt;/b&gt;&lt;/p&gt;&lt;br /&gt;&lt;u&gt;Speed&lt;/u&gt;&lt;br /&gt;With an advertised 12x reading speed, a speed of about 16 MB/sec, we see that the true, uncached &lt;i&gt;read&lt;/i&gt; speed of &lt;b&gt;6.82 MB/sec&lt;/b&gt; is not coming close. And, as noted above, a &lt;i&gt;write&lt;/i&gt; speed of about &lt;b&gt;.682 MB/sec&lt;/b&gt;, is anywhere between 1/8 to 1/32 of the advertised 4x-16x write speed range. Hmm...&lt;br /&gt;&lt;br /&gt;&lt;u&gt;DMA&lt;/u&gt;&lt;br /&gt;We see in both of the first two checks that UDMA - Ultra Direct Memory Access - is operational, and that in fact UDMA4, one of the faster forms of UDMA, has been selected. Let's also check with this tool:&lt;br /&gt;$ cat /proc/ide/piix&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Cable&lt;/u&gt;&lt;br /&gt;It's notable that UDMA4 requires an 80 pin cable to transfer reliably at the &lt;b&gt;66 MB/Sec&lt;/b&gt; transfer rate UDMA4 ostensibly carries. Apparently, avoiding &lt;a href="http://en.wikipedia.org/wiki/Parallel_ATA"&gt;capacitive interference&lt;/a&gt; is the issue for using the 80 pin over its 40 pin predecessor. I haven't opened the box, but it's unlikely that an 80 pin cable was used for this drive, since I simply cannibalized two drives from older systems when constructing the system. The 80 pin cables are &lt;a href="http://www.pcguide.com/ref/hdd/if/ide/conf_Performance.htm"&gt; more reliable&lt;/a&gt; as well as backwards-compatible to earlier drives. At any rate, I can note this as potentially a problem, but perhaps not a full explanation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4606161015143772207?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4606161015143772207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4606161015143772207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4606161015143772207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4606161015143772207'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/12/dvd-burning-burn-out.html' title='dvd-burning burn-out'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4838940482087825815</id><published>2009-11-02T13:58:00.000-08:00</published><updated>2010-11-16T00:46:11.701-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='time'/><category scheme='http://www.blogger.com/atom/ns#' term='hwclock'/><title type='text'>linux - timezone/time changes</title><content type='html'>&lt;b&gt;Links:&lt;/b&gt; &lt;br /&gt;&lt;a href="http://linuxpandits.blogspot.com/2007/10/change-linux-server-date-from-gst-to_18.html"&gt;Brief clock-setting example&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.eecis.udel.edu/~mills/ntp/html/ntpd.html"&gt;Ntpd daemon documentation (in depth)&lt;/a&gt;&lt;br /&gt;&lt;a href="https://support.rhinoequipment.com/index.php?_m=knowledgebase&amp;_a=viewarticle&amp;kbarticleid=28"&gt;Clock processes on Red Hat&lt;/a&gt; &amp;nbsp; &amp;nbsp; &lt;a href="http://wiki.archlinux.org/index.php/Network_Time_Protocol"&gt;Clock processes in Archlinux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Red Hat link describes time features functionally with some commands. The Archlinux link includes specific configuration file information.  &lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;b&gt;Overview of clock/timezones in Slack/Zenwalk&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The &lt;i&gt;hardware clock&lt;/i&gt;, more technically the &lt;i&gt;RTC (Real Time Clock)&lt;/i&gt;, is the battery powered clock that sits on the motherboard. The software &lt;i&gt;system clock&lt;/i&gt; reads the hardware clock at boot time. To assist with system clock accuracy, many users also employ an &lt;b class="mono"&gt;ntpd&lt;/b&gt; daemon. After the system boots, &lt;b class="mono"&gt;ntpd&lt;/b&gt; periodically checks calibrated servers via the Web and make corrections to the system clock. At shutdown, the system clock's time is written to the hardware clock, to assist with the hardware clock's accuracy going into a powered-off state and battery power.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RTC -&gt; System Clock (once,at boot) -&gt;System Clock (corrected by NTPD) -&gt; Timezone offset -&gt; Desktop display&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Linux views the hardware time in two potential ways: as carrying "local time" or to "UTC" (aka "GST" or "GMT") time. This decision is made by the user during installation, but the file can be directly accessed and toggled any time by the (root) user. In Zenwalk, the file is &lt;b class="mono"&gt;/etc/hardwareclock&lt;/b&gt;. The file contains only one word, either "localtime" or "UTC" (minus quotes). In other Linux systems, local or UTC is noted in &lt;b class="mono"&gt;/etc/sysconfig/clock&lt;/b&gt;. Zenwalk/Linux systems use either the local or UTC when calculating the current time to display to the user.  &lt;br /&gt;&lt;br /&gt;I always set my hardware clock to UTC and select UTC in &lt;b class="mono"&gt;/etc/hardwareclock&lt;/b&gt;. With UTC:  1) my system remains consistent across both the hardware and system clocks and, 2) UTC is the time served by Internet &lt;i&gt;ntp&lt;/i&gt;  time servers. Using UTC, I simply change the timezone in &lt;i&gt;Orage&lt;/i&gt; when I travel and otherwise don't mess with clock settings.  &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hardware clock (RTC)&lt;/b&gt;&lt;br /&gt;It's possible to directly set the time on one's hardware clock to whatever one wishes using &lt;b class="mono"&gt;hwclock&lt;/b&gt; commands. &lt;br /&gt;&lt;br /&gt;To view the hardware clock:&lt;br /&gt;&lt;b class="mono"&gt;# hwclock&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To change the hardware clock to whatever the system clock currently indicates:&lt;br /&gt;&lt;b class="mono"&gt;# hwclock --systohc&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To change the system clock to whatever the hardware clock currently indicates (this is what happens at boot):&lt;br /&gt;&lt;b class="mono"&gt;# hwclock --hctosys&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;System clock&lt;/b&gt;&lt;br /&gt;The &lt;i&gt;system clock&lt;/i&gt; periodically receives an accurate UTC/GST/GMT from &lt;b class="mono"&gt;ntpd &lt;/b&gt;. Settings are configured in &lt;b class="mono"&gt;/etc/ntp.conf&lt;/b&gt; and one can check operation with &lt;b class="mono"&gt;# service list&lt;/b&gt;.  One can also force an &lt;b class="mono"&gt;ntp&lt;/b&gt; update to the system clock. Turn off &lt;i&gt;ntpd&lt;/i&gt;, (&lt;b class="mono"&gt;# service stop ntpd&lt;/b&gt;), to free the ntp port. Google an ntp time server and run &lt;i&gt;ntpdate&lt;/i&gt; or just go to the ntp pool, which will determine and use the nearest server:&lt;br /&gt;&lt;b class="mono"&gt;#  ntpdate pool.ntp.org&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To view the &lt;i&gt;system clock&lt;/i&gt;, for example to verify an update:&lt;br /&gt;&lt;b class="mono"&gt;$ date&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Timezone offset&lt;/b&gt;&lt;br /&gt;Suppose I fly from Chicago to NYC or vice versa; how do I set the timezone? From the desktop, I open &lt;i&gt;Orage&lt;/i&gt; and change the timezone there. If I want to do it without a GUI, most of the answer is in &lt;b class="mono"&gt;/usr/share/zoneinfo&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;The file &lt;b class="mono"&gt;/etc/localtime&lt;/b&gt; is supposed to be a soft ("sym")link pointing to the correct timezone in &lt;b class="mono"&gt;/usr/share/zoneinfo&lt;/b&gt;. In my system, there was a hard file in &lt;i&gt;/etc/localtime&lt;/i&gt; instead of a symlink. Accordingly, to be sure, I removed both files and and created a new symlink to the correct timezone. For instance, since NYC is EST, this would be the process when flying to NYC:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;# rm -r /etc/localtime&lt;br /&gt;# rm -r /usr/share/zoneinfo/localtime&lt;br /&gt;# ln -s  /usr/share/zoneinfo/US/Eastern /etc/localtime&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;With these three commands, and setting &lt;b class="mono"&gt;/etc/hardwareclock&lt;/b&gt; to UTC, all should be good at the next reboot. &lt;br /&gt;&lt;br /&gt;Sometimes a system is sticky even with this. If that's the case, do all of the above and also export the time variable &lt;b class="mono"&gt;$TZ&lt;/b&gt;, to the kernel. For example in PST regions:&lt;blockquote&gt;&lt;br /&gt;$ export TZ=PST8PDT &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;A few ancillary notes&lt;/b&gt;&lt;br /&gt;&lt;li&gt; the directory &lt;b class="mono"&gt;/usr/share/zoneinfo&lt;/b&gt; contains the premade time zone options. It appears all potential time zones are in here.&lt;/li&gt; &lt;li&gt; the timezone file &lt;b class="mono"&gt;/etc/localtime&lt;/b&gt; appears filled with weird symbols like it's a bin file. It can't therefore be edited with a text editor. &lt;/li&gt; &lt;li&gt;the &lt;b class="mono"&gt;/usr/share/zoneinfo&lt;/b&gt; directory contains two soft links:  &lt;b class="mono"&gt;localtime -&gt; /etc/localtime&lt;/b&gt;, and &lt;b class="mono"&gt;timeconfig -&gt; /usr/sbin/timeconfig&lt;/b&gt;. The symlink for &lt;i&gt;/etc/localtime&lt;/i&gt; is explained above, but I'm uncertain why the &lt;i&gt;timeconfig&lt;/i&gt; application would be linked here since it can easily be ran in any terminal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4838940482087825815?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4838940482087825815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4838940482087825815' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4838940482087825815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4838940482087825815'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/11/linux-timezonetime-changes.html' title='linux - timezone/time changes'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-5261867842956423319</id><published>2009-10-10T12:40:00.000-07:00</published><updated>2009-11-02T05:11:23.804-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='netpkg'/><category scheme='http://www.blogger.com/atom/ns#' term='zenwalk'/><title type='text'>zenwalk - package management</title><content type='html'>Links:&lt;br /&gt;&lt;a href="http://support.zenwalk.org/viewtopic.php?f=10&amp;t=24959"&gt;Forum Thread: Prior release repositories&lt;/a&gt;&lt;br /&gt;&lt;a href="http://support.zenwalk.org/viewtopic.php?f=9&amp;t=11112"&gt;Forum Thread: Making a local repository for a release&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Zenwalk OS (Slackware-based) is updated once or twice a year. Following an update, the mirrors for packages (programs) are also updated and contain the latest package versions. &lt;br /&gt;&lt;br /&gt;Let's suppose I like to use the &lt;i&gt;audacious&lt;/i&gt; package to play music. In order to keep the installation disc as small as possible, packages such as &lt;i&gt;audacious&lt;/i&gt; are not included in the Zenwalk installation disc. These additional packages are retrieved separately from one of the package mirrors. Open a terminal and it's easy to download and install any Zenwalk package (in this case, &lt;i&gt;audacious&lt;/i&gt;) using the command line:&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;# netpkg audacious&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Or, if removing: &lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;# netpkg -remove audacious&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;That's about all there is to installing or removing applications Zenwalk maintains.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Maintaining Previous Versions&lt;/b&gt;&lt;br /&gt;As noted above, Zenwalk releases entirely new distributions once or twice a year. What if I don't want to upgrade my entire operating system, but I still want to install applications? For example, suppose I've had Zenwalk 6.0 installed for a year before I remember I want to install &lt;i&gt;audacious&lt;/i&gt;. I try to &lt;i&gt;netpkg audacious&lt;/i&gt; but, when I do, I discover Zenwalk has upgraded to v.6.4. If I try to install the newer version of &lt;i&gt;audacious, netpkg&lt;/i&gt; asks to upgrade portions of v.6.0. I can let &lt;i&gt;netpkg&lt;/i&gt; do this, but maybe I don't want parts of my system to be in 6.4, while other parts are in 6.0. How do I avoid upgrading to 6.4, but still get the packages I want for 6.0?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Three Solutions&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution a -- install without using &lt;i&gt;netpkg&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;One can always go to the home page of any application they desire and simply download, unpack, configure, compile, and install the general release tarball (.tgz). In the case of &lt;i&gt;audacious&lt;/i&gt;, the home page is &lt;a href="http://audacious-media-player.org/"&gt;http://audacious-media-player.org/&lt;/a&gt;. One might want to check for dependencies when doing so.&lt;br /&gt;&lt;br /&gt;But a couple of solutions for installing older software can be accomplished inside of the &lt;i&gt;netpkg&lt;/i&gt; package manager. Both of these require a small degree of manipulation of the &lt;b class="mono"&gt;/etc/netpkg.conf&lt;/b&gt; file. The second option additionally requires manipulation of the &lt;b class="mono"&gt;/usr/libexec/netpkg-functions&lt;/b&gt; file. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution b -- point &lt;i&gt;netpkg&lt;/i&gt; to prior release mirrors&lt;/b&gt;&lt;br /&gt;For a period of time after a new Zenwalk release, a few mirrors contain the previous release. One must open the &lt;b class="mono"&gt;/etc/netpkg.conf&lt;/b&gt; file with a text editor and manually add URLs for older mirrors. After doing so, I run&lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;# netpkg mirror&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;and select one of the older mirrors.  I found a few prior release URLs listed &lt;a href="http://support.zenwalk.org/viewtopic.php?f=10&amp;t=24959"&gt; here&lt;/a&gt;, and had success with this mirror: &lt;b class="mono"&gt;http://viking.zenwalk.org/i486/current-old&lt;/b&gt;. Other archive URLs can probably be Googled, but there is a limitation to this solution: archive mirrors trail the current Zenwalk release by only one version. Users therefore only have a grace period of 6 months to a year before they will be forced to upgrade to some extent. The more permanent solution is the one below.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Solution c -- download all desired packages for dvd or other local access&lt;/b&gt;&lt;br /&gt;This is a permanent solution, in case one wishes to never upgrade Zenwalk. The catch here is one needs to consider nearly any application they might need, because thinking of it two years later will be too late (if that happens, just use "solution a").  To download all potential applications in a Zenwalk release is roughly 10GB. I then alter &lt;i&gt;netpkg&lt;/i&gt; to find the files on my hard drive or a dvd, instead of on a mirror. Alterations include the &lt;b class="mono"&gt;/etc/netpkg.conf&lt;/b&gt; and &lt;b class="mono"&gt;/usr/libexec/netpkg-functions&lt;/b&gt; files. Here are instructions:&lt;a href="http://support.zenwalk.org/viewtopic.php?f=9&amp;t=11112"&gt;local repository&lt;/a&gt;&lt;br&gt;&lt;br /&gt;Supposedly it's also possible to point to a DVD with everything on it (if Apache is running) with this URL added to &lt;b class="mono"&gt;/etc/netpkg.conf&lt;/b&gt; and selected via &lt;b class="mono"&gt;# netpkg mirror&lt;/b&gt;:&lt;blockquote&gt;http://localhost:8000&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;!!&lt;/b&gt; For "solution c", it's necessary to download &lt;b class="mono"&gt;PACKAGES.txt&lt;/b&gt; and &lt;b class="mono"&gt;PACKAGES.txt.gz/&lt;/b&gt; from the mirror. &lt;i&gt;Netpkg&lt;/i&gt; appears unable to traverse directories to locate packages without these meta-information files. Get these files before the previous release mirrors move to a newer release or face recreating them manually, a time-consuming, nearly prohibitive task.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-5261867842956423319?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/5261867842956423319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=5261867842956423319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5261867842956423319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/5261867842956423319'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/10/zenwalk-package-management.html' title='zenwalk - package management'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-3468491238391237158</id><published>2009-09-19T10:38:00.000-07:00</published><updated>2009-09-19T11:31:14.006-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Browser ID String - User Agent</title><content type='html'>Links:&lt;br /&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/59"&gt;User Agent Switcher&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Superficial entry here. I'm a Yahoo! Premium User but, even if I weren't, I believe I'm supposed to have access to their News videos. I don't, using Firefox, currently version 3. I sent them an email some months back and they assured me that their videos are tested and viewable on Firefox. Um... no. Or maybe "yes" on some version on some system they created. Anyway, eventually I had little choice but to pursue the annoyance of a User Agent spoofer. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;USER AGENT SWITCHER ("UAS")&lt;/b&gt;&lt;br /&gt;I went ahead with the popular &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/59"&gt;User-Agent Switcher&lt;/a&gt; developed by Chris Pederick. It installs easily and then ones simply restarts Firefox. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;ADDITIONAL INFO&lt;/b&gt; &lt;br /&gt;This is a good piece of software, but doesn't have the three or four strings I wanted to use. I wanted to save the large file that comes with UAS, but also to make my own short list so that I would only need to select from three options, and the menu would therefore be much smaller and more useful.&lt;br /&gt;&lt;br /&gt;1) Backed up the ID files that came with UAS. This is in &lt;br /&gt;&lt;br /&gt;&lt;b class="mono"&gt;/home/$USER/.mozilla/firefox/[random].default/useragentswitcher/useragents.xml&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I backed it up: &lt;b class="mono"&gt;$ cp useragents.xml useragents.bak&lt;/b&gt;, and then opened the original &lt;i&gt;useragents.xml&lt;/i&gt; file and added the strings I wanted from various GIS's. The one which allowed me to view content in Yahoo was: &lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-3468491238391237158?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/3468491238391237158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=3468491238391237158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3468491238391237158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3468491238391237158'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/09/browser-id-string-user-agent.html' title='Browser ID String - User Agent'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-1107158805155273743</id><published>2009-09-16T06:39:00.000-07:00</published><updated>2010-02-27T13:04:39.334-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='lamp'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>layman data III</title><content type='html'>&lt;b&gt;Helpful links:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/edu/tools101/mysql.html"&gt;**Google MySQL Primer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.us-cert.gov/cas/bulletins/"&gt; CERT Bulletins&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.webmasterworld.com/home.htm"&gt;Webmaster World Forum&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.experts-exchange.com/Database/MySQL/Q_21089071.html"&gt;Simulate foreign keys - MyISAM&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html"&gt; Cascading and key constraints - MyISAM, InnoDB, NDB&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.trap17.com/index.php/Execute-Sql-File-Create-Table_t13836.html"&gt;Create tables using PHP script&lt;/a&gt;&lt;br /&gt;&lt;hr&gt;This is the third in the series, though not meant as a coherent progression. A random collection of tidbits or crumbs to follow. Recently:&lt;br /&gt;&lt;br /&gt;* Cascading and foreign key constraints with different engines. My webhoster provides only the MyISAM engine, so no foreign keys. Foreign keys are the "relation" in an RDBMS, auto-updating child relations when a parent is updated, cascading inserts and deletes, and so on. This apparently can be approximated in a number of ways in MyISAM. TRIGGERs can be created, loops which do multiple inserts, etc. The InnoDB engine makes this process native from the time of creating the tables. Much easier. To switch between engines in existing tables, we use:&lt;br /&gt;&lt;b class="mono"&gt;ALTER TABLE tablename TYPE = MyISAM;&lt;/b&gt;&lt;br /&gt;* Added CERT link above. The CERT bulletin link above quickly reveals the many injection threats arising each week. It appears one has to lock-down the code of a production server which, in turn, apparently requires time and patience to learn and implement.&lt;br /&gt;* Scripts to install tables. Appear to format as &lt;b&gt;&lt;i&gt;.sql&lt;/i&gt;&lt;/b&gt; dump files but without the data inside.&lt;br /&gt;* Proper documentation, once this is more focused and defined. So far, a simple RTF file using underline for primary, and italic for foreign key, has been helpfully direct. Seen it elsewhere too, but read it in Welling, L., Thomson, L. (2008). PHP and MySQL® Web Development, Fourth Edition. Addison-Wesley Professional. pg 208-209 &lt;a href="http://www.informit.com/store/product.aspx?isbn=9780672329166"&gt;informit link ~$50&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;REFERENTIAL INTEGRITY&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-1107158805155273743?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/1107158805155273743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=1107158805155273743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1107158805155273743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1107158805155273743'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/09/layman-data-iii.html' title='layman data III'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-9084985234473908287</id><published>2009-09-04T17:27:00.000-07:00</published><updated>2010-02-19T23:28:58.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lamp'/><category scheme='http://www.blogger.com/atom/ns#' term='lapp'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>layman data II</title><content type='html'>&lt;b&gt;related links&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.apache.org/"&gt;Apache&lt;/a&gt; &amp;nbsp;  &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt; &amp;nbsp;  &lt;a href="http://www.postgresql.org/"&gt;PostgreSQl&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itso.iu.edu/You_Don%27t_Need_Root_for_That"&gt;security modifications to avoid root&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.weberdev.com/ViewArticle/Apache,-PHP,-and-PostgreSQL-on-RedHat-Linux"&gt;LAPP on Redhat (very helpful)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.antionline.com/archive/index.php/t-230915.html"&gt;clear PHP/Apache compile notes&lt;/a&gt;&lt;br&gt;&lt;hr&gt;&lt;br /&gt;A difficult intercomplexity, combined with an annoying resource drain of running Apache, PostgreSQL (or MySQL), PHP, and a browser (taken together, a LAMP) are required these days. If one has photos or a lot of other files, something besides file folders are needed and they cannot be managed without a LAMP unless one has a CS degree or can afford Oracle. I run a LAMP on my website to make files accessible, but the provider where I park the site has older versions of all this software. This makes the LAMP vanilla and slower (eg., no InnoDB). Additionally, there are no options for PostgreSQL.  &lt;br /&gt;&lt;br /&gt;Since I prefer PostgreSQL, for the LAMP on my local drive, I created a LAPP, substituting Postgres for MySQL.  Even on a local drive, security issues arise. Apache, Postgresql, PHP, and some browsers require ports. I want to be sure no ports are open to the outside.  Learning how to lock-down Apache, PostgreSQL, and PHP to make them only localhost accessible is a work in progress. Configuration files need to be altered for localhost only, but it appears there is more to it than this, if one is simultaneously connected on the Web.&lt;br /&gt;&lt;br /&gt;On this local drive, running hybridized Slackware (Zenwalk), a reliable LAMP exists out of the box, but morphing it to a PostgreSQL LAPP required compiling PostgreSQL and PHP (see "Notes" below). The kernel didn't require alteration and a recompile, thankfully. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Notes&lt;/h3&gt; Install PostgreSQL(source, don't use netpkg) and MySQL(netpkg) first. In Zenwalk, PHP is precompiled without PostgreSQL support. PHP must therefor be recompiled with it: &lt;b class="mono"&gt;"--with-pgsql=/usr/local"&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Default Users, Ports, Home&lt;/h3&gt; Postgresql - user:postgres, port 5432, /usr/local/pgsql. Apache - user:root, port 80, /etc/httpd.conf. PHP - /usr/local/lib/php. MySQL - user?, port 3306, usr/share/mysql. I compile Postgresql instead of netpkging it because of a Catch-22 that occurs after installation. One would have to log in and out every time they wanted to use the database or create group permission trees. On a standalone, it's easier to compile Postgresql and initialize with the user as the owner instead of "postgres". Create databases using&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;PostgreSQL&lt;/h3&gt; &lt;b&gt;FIRSTRUN DBMS&lt;/b&gt; - Compiling is easier downstream than Zenwalk. When compiling, simply supply one's username during &lt;i&gt;initdb&lt;/i&gt;, eg. if one's username were "foo": &lt;b class="mono"&gt;$ initdb foo --encoding=utf8 --locale=POSIX &lt;/b&gt;.Then just make some directory in /home like "/home/pgsql" and &lt;b class="mono"&gt;# chown -R 1000:100 /home/pgsql&lt;/b&gt; so "foo" can use it at will. If using Zenwalk, &lt;i&gt;postgresql.conf&lt;/i&gt; and &lt;i&gt;pg_hba.conf&lt;/i&gt; must be configured prior to first run. Zenwalk also makes the default user &lt;i&gt;postgres&lt;/i&gt;, so its password needs to be created: &lt;b class="mono"&gt;# passwd postgres&lt;/b&gt;, and enter a simple password. A note of confusion for Zenwalk is that "postgres" is both the god user of the DBMS, but also a command to start the DBMS ("postmaster" is deprecated). &lt;br /&gt;&lt;b&gt;START/STOP DBMS&lt;/b&gt; - &lt;b class="mono"&gt;# service start/stop postgresql&lt;/b&gt; (Zenwalk), or &lt;b class="mono"&gt;# postgres -D /var/lib/pgsql/data/ -r logname.txt&lt;/b&gt;. This second command starts the database at its default location and provides a logname of choice.&lt;br /&gt;&lt;b&gt;DATABASE FILES&lt;/b&gt; Zenwalk installs a PostgreSQL tablespace at &lt;i&gt;/var/lib/pgsql/data&lt;/i&gt;, but if installing from source they go to /usr/lib/pgsql.  &lt;b class="mono"&gt;# createdb -U postgres -W -D /var/lib/pgsql/data/sub01 -E utf8 -e employees&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Apache&lt;/h3&gt; &lt;b&gt;START/STOP&lt;/b&gt; - &lt;b class="mono"&gt;# service start/stop httpd&lt;/b&gt; (Zenwalk), or &lt;b class="mono"&gt;# apachectl start/stop&lt;/b&gt; (any distro). Checkit by pointing browser to "http://localhost".&lt;br /&gt;&lt;b&gt;CONFIG FILES&lt;/b&gt; - Netpkg handles it, but following PHP recompile, Apache configuration tweaks are necessary for PHP serving. A short list is  &lt;a href="http://docs.moodle.org/en/Step-by-step_Install_Guide_for_Zenwalk-5.0"&gt; here&lt;/a&gt;. Additionally, one must open &lt;i&gt;/etc/apache/mod_php.conf&lt;/i&gt; and provide the complete path to &lt;i&gt;libphp5.so&lt;/i&gt;, typically &lt;b class="mono"&gt;/usr/libexec/apache/libphp5.so&lt;/b&gt;, if it's not in there. Following changes, restart &lt;i&gt;httpd&lt;/i&gt;, which should initialize PHP.&lt;br /&gt;&lt;b&gt;HTML FILES&lt;/b&gt; - (Zenwalk) We can serve files from anywhere on our hardisk through the browser, but it's easiest to put them in &lt;b&gt;/var/www/htdocs/&lt;/b&gt;, because this is the default. To write to here from logs or anything, it can't be done easily since /var/www/ is owned by root. A solution is to &lt;a href="http://stackoverflow.com/questions/1250231/to-copy-files-each-minute-at-var-www-without-sudo"&gt;create a new group&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;PHP&lt;/h3&gt; &lt;b&gt;START/STOP&lt;/b&gt; - &lt;b class="mono"&gt;# php -v&lt;/b&gt;. This command checks for the version. PHP loads as an Apache module, not as a separate program.  I used &lt;b class="mono"&gt; #netpkg remove php&lt;/b&gt; to remove the Zenwalk version of PHP. I did this because the &lt;i&gt;netpkg&lt;/i&gt; (Zenwalk) version fails to support PostgreSQL.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;COMPILE&lt;/b&gt; - necessary for PostgreSQL; &lt;i&gt;netpkg&lt;/i&gt; PHP does not support Postgres.  The configuration phase, prior to "make", is critical. The correct syntax for the PostgreSQL functionality is &lt;b class="mono"&gt;--with-pgsql=/usr/local&lt;/b&gt;. However &lt;a href="http://dan.drydog.com/apache2php.html"&gt;other options&lt;/a&gt;, can be useful. Taking most situations into account, a reasonable &lt;i&gt;configure&lt;/i&gt; string might be:&lt;code&gt;&lt;br /&gt;$ ./configure --with-apxs2=/usr/sbin/apxs  \&lt;br /&gt; --with-pgsql=/usr/local   \&lt;br /&gt; --with-mysql=/usr/share  \&lt;br /&gt; --with-libxml-dir=/usr/lib  \&lt;br /&gt; --with-curl=/usr/bin/curl  \&lt;br /&gt; --with-zlib  \&lt;br /&gt; --with-gettext  \&lt;br /&gt; --with-gdbm  \&lt;br /&gt; --enable-inline-optimization \&lt;br /&gt; --enable-track-vars&lt;/code&gt;&lt;br /&gt;"Make", then root "make install"; it installs to &lt;b&gt;/usr/local/lib/php&lt;/b&gt;. Copy the ini files to there: &lt;b class="mono"&gt;# cp php.ini* /usr/local/lib/php/&lt;/b&gt;. Pick one of the two to be the ini file, eg &lt;b class="mono"&gt;# cp php.ini-development /etc/apache/php.ini&lt;/b&gt;. It can be tweaked later.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Other&lt;/h3&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-9084985234473908287?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/9084985234473908287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=9084985234473908287' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/9084985234473908287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/9084985234473908287'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/09/lamp-standalone.html' title='layman data II'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8634027992451145388</id><published>2009-08-04T19:17:00.001-07:00</published><updated>2010-02-19T23:28:39.259-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='lamp'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>layman data I</title><content type='html'>&lt;b&gt;Helpful links:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/edu/tools101/mysql.html"&gt;**Google MySQL Primer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forge.mysql.com/wiki/TagSchema"&gt;MySQL Forge&lt;/a&gt;&lt;br /&gt;&lt;a href="http://php.opensourcecms.com/"&gt;OpenSourceCMS compare&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.w3schools.com/PHP/php_mysql_insert.asp"&gt;insert data from html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://phpprogramming.wordpress.com/2007/01/28/html-form-elements-values-usage-examples-in-php/"&gt;html data entry formats&lt;/a&gt;&lt;br /&gt;&lt;a href="http://briancray.com/2009/05/06/twitter-style-alert-jquery-cs-php/"&gt;useful php code&lt;/a&gt;&lt;br /&gt;&lt;a href="http://tagschema.com/blogs/tagschema/2005/06/slicing-and-dicing-data-20-part-2.html"&gt;Blog w/simple folksonomy schemas&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;introduction&lt;/h3&gt;&lt;p&gt;Folders and a file manager aren't sufficient for speedy file retrieval once a few thousand documents are accumulated. Further, they don't allow for proper metadata storage. I'm sure many home users are in this situation.Our needs are great, but we are basically forced to rely on folders and a file manager or to contact, say, Oracle and pay business rates. And the only in-between option seems to be to go to all the trouble of learning how to build and implement a CMS such as a LAMP or to install a boggy pre-designed LAMP like Joomla or Drupal.&lt;/p&gt;&lt;p&gt;I had a few considerations: &lt;li&gt; PostgreSQL data warehouse&lt;/li&gt;&lt;li&gt; browser initiated query ability (JavaScript, PHP, blah blah blah) &lt;/li&gt;&lt;li&gt;methods to vacuum, backup, and restore the DB&lt;/li&gt; &lt;li&gt;a schema representing the above in some reasonably intuitive way&lt;/li&gt; &lt;/p&gt;&lt;br /&gt;&lt;h3&gt;relationships&lt;/h3&gt;&lt;p&gt;The problem was how to establish relationships between a file and several tags. Three commonly used schemas are MySQLicious, Scuttle, and Toxi. There are others, more complex, and faster, but my provider is simple and only has MySQL. Toxi appeared passable for my arrangement. The key though is the PHP to enter the relationships, and in the proper order. Anyway, first, the schemas. &lt;a href="http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html"&gt;This site&lt;/a&gt; shows the three options utilizing ER modeling but crows feet is probably the clearest representation. Crow's feet versions can be seen in some of the representations in the blog link above the introduction. &lt;/p&gt;&lt;br /&gt;&lt;h3&gt;mysql&lt;/h3&gt;&lt;p&gt;The provider on which my site is parked only provides MySQL for manipulation. This was OK for a trial run. Below are the three tables, taken more or less verbatim from &lt;a href="http://forge.mysql.com/wiki/TagSchema"&gt;MySQL Forge's&lt;/a&gt; excellent page: &lt;br /&gt;&lt;code&gt;&lt;br /&gt;CREATE TABLE Items (&lt;br /&gt;item_id INT UNSIGNED NOT NULL AUTO_INCREMENT&lt;br /&gt;, item_name VARCHAR(255) NOT NULL&lt;br /&gt;/* Many more attributes of the item... */&lt;br /&gt;, PRIMARY KEY (item_id)&lt;br /&gt;) ENGINE=InnoDB;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;CREATE TABLE Tags (&lt;br /&gt;tag_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT &lt;br /&gt;, tag_text TEXT NOT NULL&lt;br /&gt;, PRIMARY KEY (tag_id)&lt;br /&gt;,  UNIQUE INDEX (tag_text)&lt;br /&gt;) ENGINE=InnoDB;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;CREATE TABLE Item2Tag (&lt;br /&gt;item_id INT UNSIGNED NOT NULL &lt;br /&gt;, tag_id SMALLINT UNSIGNED NOT NULL &lt;br /&gt;, PRIMARY KEY (item_id, tag_id)&lt;br /&gt;, INDEX (tag_id)&lt;br /&gt;, FOREIGN KEY fk_Item (item_id) REFERENCES Items (item_id)&lt;br /&gt;, FOREIGN KEY fk_Tag (tag_id) REFERENCES Tags (tag_id)&lt;br /&gt;) ENGINE=InnoDB;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;With these I was nearly able to be up and running, but I received an error when attempting to create "Tags", namely that:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Error: tag_text used in key specification without a key length &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I changed UNIQUE INDEX (tag_text) to index on the first 12 characters: &lt;br /&gt;&lt;code&gt;&lt;br /&gt;UNIQUE INDEX (tag_text(12))&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The table was created properly but my provider does not allow for the InnoDB and so the command was subverted to the ungainly MyISAM. Nothing I could do there. Subsequently, however, I added a column to the table to provide more complete descriptions of files: &lt;br /&gt;&lt;code&gt;ALTER TABLE `mydb`.`mytable` ADD COLUMN `item_desc` TEXT NOT NULL AFTER `item_name`&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I wanted a column to list the page numbers or slide numbers of whatever file I was looking at:&lt;br /&gt;&lt;code&gt;ALTER TABLE `mydb`.`mytable` ADD COLUMN `item_pages` SMALLINT NOT NULL DEFAULT '1' AFTER `item_name`&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;BACKUP AND RESTORE&lt;/b&gt;&lt;br /&gt;Tutorials describe back-ups using &lt;a href="http://fragments.turtlemeat.com/mysql-database-backup-restore-phpmyadmin.php"&gt; phpMyAdmin &lt;/a&gt;, or directly from &lt;a href="http://www.coders4fun.com/en/2007/06/23/dump-mysql-php-backup/"&gt;a PHP browser page&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;html&lt;/h3&gt;&lt;p&gt;Challenges include setting up forms inside a table, the order of html and php, and resetting the form after the submission of data. An example of a form inside a table, with a reset function after the data is submitted: &lt;code&gt;&lt;br /&gt;&amp;lt;form action="insert1.php" method="post" onsubmit="this.submit(); this.reset(); return false"&gt;&lt;br /&gt;&amp;lt;table bordercolorlight="#CFCFCF" bordercolordark="#FFFFFF" border="1" &lt;br /&gt;bordercolor="#cfcfcf" cellpadding="2" cellspacing="0" width="100%"&gt;&lt;br /&gt;&amp;lt;tbody&gt;&lt;br /&gt;&amp;lt;tr&gt;&lt;br /&gt;&amp;lt;td align="left" bgcolor="#009dd0" valign="top"&gt;&amp;lt;b&gt;&amp;lt;font color="#ffffff"&gt;description&amp;lt;/font&gt;&amp;lt;/b&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;td bgcolor="#009dd0"&gt;&amp;lt;b&gt;&amp;lt;font color="#ffffff"&gt;tags&amp;lt;/font&gt;&amp;lt;/b&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;td bgcolor="#009dd0"&gt;&amp;lt;b&gt;&amp;lt;font color="#ffffff"&gt;slides/pages&amp;lt;/font&gt;&amp;lt;/b&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;td bgcolor="#009dd0"&gt;&amp;lt;b&gt;&amp;lt;font color="#ffffff"&gt;filename&amp;lt;/font&gt;&amp;lt;/b&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;/tr&gt;&lt;br /&gt;&amp;lt;tr&gt;&lt;br /&gt;&amp;lt;td&gt;&amp;lt;TEXTAREA class="expands" name="item_desc" rows="8" cols="35"&gt;&amp;lt;/TEXTAREA&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;td &amp;lt;input name="#" type="text" size="35" /&gt;&lt;br /&gt;&amp;lt;td &amp;lt;input name="Position[]" type="text" id="Position[]" size="5" /&gt;&lt;br /&gt;&amp;lt;td&gt; &amp;lt;input name="item_name" type="text"&gt;&amp;lt;/input&gt;&amp;lt;/td&gt;&lt;br /&gt;&amp;lt;/tr&gt;&lt;br /&gt;&amp;lt;/tbody&gt;&amp;lt;/table&gt;&amp;lt;/form&gt;&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;h3&gt;php&lt;/h3&gt;&lt;p&gt; Appeared at first that an html file containing forms had to be made to enter data and another to retrieve data.  Each of these would presumably call an appropriate php script to do the database work. However, it now appears best to include the php right into the html files.&lt;/p&gt; &lt;/p&gt;&lt;b&gt;INSERT (MySQL)&lt;/b&gt;&lt;p&gt; The core portion of the insert, which pulled values from a previous page's SUBMIT. &lt;code&gt;&lt;br /&gt;&amp;lt;? php&lt;br /&gt;  $hostname="foo";&lt;br /&gt;                 $username="foo";&lt;br /&gt;  $password="foo";&lt;br /&gt;  &lt;br /&gt; //connection to the tablespace&lt;br /&gt; $dbhandle = mysql_connect($hostname, $username, $password)&lt;br /&gt; or die("Unable to connect to MySQL");&lt;br /&gt; printf ("&amp;lt;p&gt;Status: Connected to tablespace &amp;lt;/p&gt;");&lt;br /&gt;&lt;br /&gt; //connection to a database &lt;br /&gt; $selected = mysql_select_db("foo",$dbhandle)&lt;br /&gt; or die("Could not select database");&lt;br /&gt; printf (" &amp;lt;p&gt;Status: Connected to database &amp;lt;/p&gt;");&lt;br /&gt;&lt;br /&gt;$descrip=$_POST['item_desc'];&lt;br /&gt;$filename=$_POST['item_name'];&lt;br /&gt;&lt;br /&gt;mysql_query("INSERT INTO Items (item_name, item_desc) VALUES ('$filename','$descrip')") or die(mysql_error());&lt;br /&gt;&lt;br /&gt;//DB CLOSING&lt;br /&gt;mysql_close($dbhandle);&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8634027992451145388?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8634027992451145388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8634027992451145388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8634027992451145388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8634027992451145388'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/08/data-considerations.html' title='layman data I'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4654380511534675512</id><published>2009-03-31T19:39:00.000-07:00</published><updated>2009-05-20T20:40:15.585-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>java frameworks</title><content type='html'>I register the term "Java", in only some vague manner, for example encountering a "JavaScript error" when web browsing. Digging deeper, I learned that "Java" and "JavaScript" are unrelated, except in name. &lt;i&gt;JavaScript&lt;/i&gt; is the current name of what formerly was called &lt;i&gt;LiveScript&lt;/i&gt;. LiveScript was developed at &lt;a href="http://netscape.aol.com/"&gt;Netscape&lt;/a&gt;, the same Netscape now owned by AOL, however the name &lt;i&gt;LiveScript&lt;/i&gt; was eventually changed to &lt;i&gt;JavaScript&lt;/i&gt;, probably to leverage the (then) popularity of &lt;i&gt;Java&lt;/i&gt;. How AOL was not sued by Sun Microsystems, I don't know, since Java was created at &lt;a href="http://www.sun.com/"&gt;Sun Microsystems&lt;/a&gt; and its development was, of course, prior to the name change of LiveScript to JavaScript. Java is a programming language which results in code compiled into executable (binary) programs, in a manner similar to other languages such as "C". Java-written programs require a Java run-time environment installed on the executing computer. Alternatively, JavaScript is only questionably a language and, if a language, then a scripting-type language; it doesn't require compilation. Applications written in JavaScript operate only in a browser (except to write cookies), and are called "applets". Applets require a run-time environment, and this is either built-in to the browser or is a browser plug-in. The user can enable or disable the JavaScript run-time for their browser. For example, a user might encounter a warning that JavaScript has not been enabled on their browser; this refers not to the applet, but to the JavaScript run-time plug-in not being installed/enabled.  &lt;br /&gt;&lt;br /&gt;As just noted, JavaScript browser applications ("applets") run via a JavaScript plug-in prepackaged inside most browsers. JavaScript applets are difficult to design for all browsers, since each browser (IE, Firefox, Opera, etc) designs its  run-time slightly differently. A variance from what that particular browser needs to run the applet leads to the somewhat common "JavaScript error" messages encountered when browsing. This is expected to change as the &lt;a href="http://en.wikipedia.org/wiki/ECMAScript"&gt;ECMA&lt;/a&gt; eventually standardizes the approach. Another difficulty with JavaScript applets in browsers is &lt;a href="http://www.cs.princeton.edu/sip/java-vs-activex.html"&gt;security&lt;/a&gt;. Applets written in JavaScript operate in limited parameters ("sandboxes") designed to limit access to the user's system. But they've been proven not to entirely deny this access.  A nice thing about the JavaScript browser plug-in is it alerts users to necessary updates.  &lt;br&gt;&lt;br /&gt;What about the original Java? Java is a language for writing applications that run on the workstation itself, not merely in a browser. For example, you could write a program in Java that edits photos, or documents, etc. Like other compiled programs, Java programs require a runtime environment, but Java was also designed to be cross-platform. That is, the Java concept is to create programs which run inside various operating systems (Linux, Windows, Mac OSx), and platforms (x86, Mac). The software framework of the runtime is what varies for each machine, and this runtime framework is installed first, prior to the program. Once the virtual framework is installed, the Java application may then be installed - the application is supposed to work regardless of the type of machine or OS, since the underlying runtime layer is handling any OS idiosyncracies.  &lt;br /&gt;&lt;br /&gt; I've found that Java applications do work on anything if the runtime is properly installed. Unfortunately, in my experience at least, Java runtime framework installation is often problematic, so much so that the original reason for this blog page was to refresh my memory for some typical steps. One other note, framework version updates are not typically automatically displayed so that installers must remember to check for periodic upgrades.&lt;br&gt;&lt;br /&gt;The Java Runtime Environment (JRE) is the primary framework for Java-written applications, in a similar way that the Visual Basic Runtime Environment (VBRE) is the virtual machine for applications written in Microsoft's Visual Basic. The latest version of the JRE appears to be called J2SE (Java2 Software Environment). Sometimes J2SE by itself is enough to run a Java-written application, other times, additional Java frameworks have to be compiled and added to J2SE to provide functionality. Some examples: I have Sun's &lt;i&gt;OpenOffice&lt;/i&gt; on my workstation. Without installing the Java Media Framework (JMF), a separately compiled framework which relies upon J2SE already being installed underneath it, there is no way I know of for OpenOffice's &lt;i&gt;Impress&lt;/i&gt; application (it's like PowerPoint) to playback sound and video.  An mp3 addition to the JMF can also be compiled and added. The Java Database Connectivity (JDBC) software first requires J2SE to be in-place. JDBC supports databases such as &lt;i&gt;Neo4j&lt;/i&gt; (a graphing database good for tags). There are additional Java environments/frameworks available. Taking all these Java flavors together, the terminology and installation picture appears complicated, and the best overall description I've seen is &lt;a href="http://java.sun.com/new2java/programming/learn/unravelingjava.html"&gt;here&lt;/a&gt;. The remainder of this post is hands-on.&lt;br&gt; &lt;br /&gt;&lt;h3&gt;Java Media Framework (JMF)&lt;/h3&gt;&lt;br /&gt;A fundamental problem is the Java Installation site provides &lt;a href="http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/setup-linux.html"&gt; ambiguous information&lt;/a&gt;. Of course, mere awareness of its ambiguity isn't going to overcome it. In one forum, a guy complained that he spent so long attempting to configure his JMF installation that he decided to return to M$ Windows. That's extreme, but it seems questionable that the JMF installation appears to require a significant underlying understanding of paths, classpaths, and softlinks for software roughly four years old. Installation should be simpler by this point.&lt;br /&gt;&lt;h3&gt;Step One: JRE&lt;/h3&gt;&lt;br /&gt;I haven't yet installed J2SE, so I use the old Java Runtime Environment. It's important to check that it's installed &lt;i&gt;and&lt;/i&gt; that it exists in user's and root's path. I checked both of these to be sure, and then just repeated as root: &lt;blockquote&gt;$java -version&lt;br /&gt;java version "1.6.0_11"&lt;br /&gt;Java(TM) SE Runtime Environment (build 1.6.0_11-b03)&lt;br /&gt;Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)&lt;br /&gt;&lt;br /&gt;$ echo $PATH&lt;br /&gt;/usr/local/bin:/usr/bin:/bin:/usr/games/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/lib/java/bin:/usr/lib/java/jre/bin:&lt;/blockquote&gt; If these don't show up, it's best to check and make sure the JRE path has been exported. For example, check that &lt;i&gt;/etc/profile&lt;/i&gt; includes somewhere: &lt;blockquote&gt;JAVA_HOME="/usr/lib/java/"&lt;br /&gt;export JAVA_HOME&lt;/blockquote&gt;&lt;br /&gt;&lt;h3&gt;Step Two unpacking and moving&lt;/h3&gt;&lt;br /&gt;Download the bin file and unpack it:&lt;br /&gt;&lt;blockquote&gt;$ sh ./jmf-2_1_1e-linux-i586.bin. &lt;/blockquote&gt;&lt;br /&gt;It makes a directory like any untar. I rooted-up and moved this entire directory to &lt;i&gt;/usr/lib/JMF-2.1.1e&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Step Two: user and root paths&lt;/h3&gt;&lt;br /&gt;JMF needs to be found on occasion by root and on other occasions by the user. These are two different setups:&lt;br /&gt; &lt;u&gt;1) User:&lt;/u&gt; Sun recommends creating a &lt;b&gt;/home/~/.profile&lt;/b&gt; file with these entries:&lt;br /&gt;&lt;blockquote&gt;# path settings for JMF&lt;br /&gt;export JMFHOME=/usr/lib/JMF-2.1.1e&lt;br /&gt;export CLASSPATH=.:$CLASSPATH:$JMFHOME/lib/jmf.jar&lt;br /&gt;export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JMFHOME/lib&lt;/blockquote&gt;&lt;br /&gt;I like things explicit, so I leave out the "JMFHOME" variable and do it this way: &lt;blockquote&gt;&lt;br /&gt;CLASSPATH="/usr/lib/JMF-2.1.1e/lib/jmf.jar"&lt;br /&gt;export CLASSPATH&lt;br /&gt;LD_LIBRARY_PATH="/usr/lib/JMF-2.1.1e/lib&lt;br /&gt;export LD_LIBRARY_PATH &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt; &lt;u&gt;2) Root:&lt;/u&gt; add the same lines, but at the top of &lt;b&gt;/etc/profile&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;3) User and Root:&lt;/u&gt; Echo the path ("echo $PATH") to be sure that it includes paths to the jmf files. If not, add additional paths as the final lines of the "/etc/profile". For example, I also wanted some X11 bin files in my path, so my final two "etc/profile" lines are:&lt;blockquote&gt;&lt;br /&gt;PATH="$PATH:/usr/X11/bin:/usr/lib/JMF-2.1.1e/bin"&lt;br /&gt;export PATH&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Following this, JMF was working except&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Step Three: activate&lt;/h3&gt;&lt;br /&gt;Easiest: restart the computer so it sources both profiles.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;Step whatever - diagnostics&lt;/h3&gt;&lt;br /&gt;The one good thing Java has done is make an &lt;a href="http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/jmfdiagnostics.html"&gt;online diagnostics page&lt;/a&gt; with which to check the JMF installation. Just point the browser there and it checks my JMF (and JRE). However, checking via the browser in this was seems to confoundingly generate classpath errors, regardless that there aren't any. See below.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Firefox&lt;/h3&gt;&lt;br /&gt;Firefox is a separate matter. With JMF properly configured for their workstation, when one visits the &lt;a href="http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/jmfdiagnostics.html"&gt;online diagnostics page&lt;/a&gt;, one will receive an error " classes..".&lt;br /&gt;&lt;h3&gt;mp3&lt;/h3&gt;&lt;br /&gt;JMF also has a download to play MP3's.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4654380511534675512?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4654380511534675512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4654380511534675512' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4654380511534675512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4654380511534675512'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/03/java-media-framework-jmf.html' title='java frameworks'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8522091457462213593</id><published>2009-03-30T20:08:00.000-07:00</published><updated>2011-11-17T05:17:32.821-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='satellite'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>slackware 12.2 - kernel recompile</title><content type='html'>&lt;small&gt;Last edited: 2011/11/17&lt;/small&gt;&lt;br /&gt;Links: &lt;a href="http://blog.tpa.me.uk/slackware-kernel-compile-guide/"&gt;slackware compile&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.linuxdocs.org/HOWTOs/Kernel-HOWTO-5.html"&gt;good: includes LILO&lt;/a&gt; &amp;nbsp;&lt;a href="http://www.gentoo.org/doc/en/articles/linux-kernel-compiling.xml"&gt;gentoo compile w/LILO&lt;/a&gt; &amp;nbsp; &lt;a href="http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch33_:_Modifying_the_Kernel_to_Improve_Performance"&gt;kernel performance&lt;/a&gt;&lt;hr&gt;The two compiling/recompiling concerns appear to be 1) awareness of what to backup prior to compiling &lt;i&gt;so there is no overwriting&lt;/i&gt; of original configurations 2) after compiling, awareness of how to put files into LILO (eg. to have kernel choices at boot), map files, and so on, &lt;i&gt;so there is no overwriting&lt;/i&gt;. The Gentoo link above is for some of this.&lt;br /&gt;&lt;br /&gt;Lesser concerns, but difficult, are issues such as patching, optimization choices, locating features to activate (among ~2,600 of them), and unintended effects. These are not so bad however, as one can scrap an unworking kernel attempt if one has prior kernels and configurations backed-up.  Note: &lt;a href="http://www.linuxquestions.org/questions/slackware-14/full-ram-memory-slackware-12.1.-647970/"&gt;potential high memory issue (LQ.org)&lt;/a&gt;&lt;h4&gt;unintended effects&lt;/h4&gt;Although there should be no effects if only the kernel is recompiled, there's a chance some programs won't work. It appears that, if GlibC isn't recompiled, that's not so much a threat, but there's a chance one's video drivers will act odd with the new modules and so on. So it's very important to back-up the old kernel so you can select it at login time, if the new kernel is causing some bullshiat.&lt;h4&gt;back-ups&lt;/h4&gt;Best to back-up entire system including data first. If not, run uname -r to get the version number, let's say it was 2.10. Then back-up at least&lt;blockquote class="mono"&gt;/boot/config-2.10&lt;br /&gt;/boot/vmlinuz-2.10 (the default kernel)&lt;br /&gt;/boot/System.map-2.10&lt;br /&gt;/etc/lilo.conf (so I can examine it)&lt;br /&gt;/lib/modules/{uname -r} /lib/modules/{uname -r}-old (to load with old kernel) &lt;br /&gt;&lt;/blockquote&gt;&lt;h4&gt;patches, optimizations, modules&lt;/h4&gt; Patches should be run prior to opening any of the configuration files, potentially providing a larger number of kernel options. Source files are often located in &lt;b class="mono"&gt;/usr/local/src&lt;/b&gt; or, as is the case with kernels, in &lt;b class="mono"&gt;/usr/src&lt;/b&gt;. I tend to compile everything, programs and all, from my downloads directory as "user", and then only become root for installation. Permissions inside "/usr/src", usually prevent this.&lt;br /&gt;&lt;br /&gt;Wherever the kernel source is, you'll have to locate it, put the patch in the same directory as the source, consider the level for "p" (in this example I'll use "1") and then run &lt;blockquote class="mono"&gt;patch -p1 &amp;lt; patchname&lt;/blockquote&gt; &lt;br /&gt;Optimizing, we'll want our hardware information available, so just run a basic &lt;b class="mono"&gt;#lshw&lt;/b&gt;, save it to a file, and print it. I've got an older laptop for example with&lt;br /&gt;&lt;ul class="mono"&gt;AMD Athlon(tm) X2 Dual-Core QL-60&lt;br /&gt;64 bits, 1900MHz,L1 256 capacity, L2 2x512KB capacity&lt;/ul&gt;It appears the processor &lt;a href="http://forums.gentoo.org/viewtopic-t-889632-start-0.html"&gt;will be able to run an i686 instruction set&lt;/a&gt; (using &lt;b class="mono"&gt;amd 64 / i686&lt;/b&gt;). Instruction sets are backwards compatible to 386,486,586. It's also worth &lt;a href="http://en.gentoo-wiki.com/wiki/Safe_Cflags"&gt;reading here about CFLAGS&lt;/a&gt; (SLKCFLAGS for Slackware) CHOST, and so on, for compilation notes, since the compilation of the kernel is just another compile. Also examine these two&lt;blockquote class="mono"&gt;$ cat /proc/cpuinfo&lt;br /&gt;$ echo | gcc -dM -E - -march=native&lt;/blockquote&gt; I save march info to the lshw file. Of course, we can adjust the march to something forced, but it's valuable to start with examining what's automatically selected (by gcc).&lt;br /&gt;&lt;br /&gt;About modules. Decisions have to be made regarding 1) modules to compile or exclude, and 2) modules to compile into the kernel, modules to be compiled as "external", loaded by &lt;i&gt;lsmod&lt;/i&gt;.We'll do that in a later step, but that should be considered in planning. Wifi? &lt;a href=""&gt;Probably best in the kernel.&lt;/a&gt; Printing? probably best to load and unload if not in an office environment. Etc.&lt;br /&gt;&lt;h4&gt;getting into the configuration&lt;/h4&gt;&lt;blockquote class="mono"&gt;# mkdir /usr/src/kern01&lt;br /&gt;# cp /usr/src/linux-2.6.27.7/* /usr/src/kern01/&lt;br /&gt;# cd /usr/src/kern01&lt;br&gt;# make menuconfig&lt;/blockquote&gt;&lt;tt&gt;Menuconfig&lt;/tt&gt; &lt;a href="http://blog.tpa.me.uk/slackware-kernel-compile-guide/"&gt; is considered the standard option&lt;/a&gt;, but some like a GUI (&lt;tt&gt;xconfig&lt;/tt&gt;).&lt;br /&gt;&lt;h4&gt;finding a feature&lt;/h4&gt; I don't use &lt;tt&gt;menuconfig&lt;/tt&gt; to find features, only to make the changes and be alerted to dependencies. Prior to &lt;tt&gt;menuconfig&lt;/tt&gt;, I open a user copy of &lt;b class="mono"&gt;/boot/config-kernelname&lt;/b&gt; text file (see "back-ups" above) and find the kernel options in that file. In a text editor (eg. geany), I can quickly scroll all ~2,600 kernel options and decide what to modify. Then, when I open &lt;tt&gt;menuconfig&lt;/tt&gt;, I just go right to these features, make the changes, and let &lt;tt&gt;menuconfig&lt;/tt&gt; alert me to dependencies with that change.&lt;br /&gt;&lt;h4&gt;the compilation&lt;/h4&gt; Double check:&lt;ul&gt;&lt;li&gt;be certain to have backed-up the old kernel, the old System.map, the old config file, and the old modules. You'll need all these to keep the old kernel as an option in LILO&lt;/li&gt;&lt;li&gt;no need to use the standard &lt;b class="mono"&gt;make install&lt;/b&gt; since that will overwrite vmlinuz in /boot. We'll move the new kernel in manually&lt;/li&gt;&lt;/ul&gt;Assuming these loose ends are cleaned-up, the commands are&lt;blockquote&gt;# make clean; make bzImage (or make vmlinuz); make modules; make modules_install&lt;/blockquote&gt; The kernel compiles quickly, perhaps 10 minutes, but the modules take another 15 minutes, so it's like 25 minutes to get 'er done. That's the perfect amount of time to watch one of the canceled "Andy Barker, PI" episodes, for example "Fairway, My Lovely", on Hulu. Note: when I did my modules, it seemed like it compiled more than I had selected. Something to look into next build. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;after compiling&lt;/h3&gt; Let's say that I compiled a kernel and named it &lt;b class="mono"&gt;bzImage-kernel2&lt;/b&gt;. The three files I'd need to copy or move to &lt;tt&gt;/boot&lt;/tt&gt; from wherever I did my compiling (typically &lt;tt&gt;/usr/src&lt;/tt&gt;) would be:&lt;ul&gt;&lt;li&gt;&lt;b class="mono"&gt;bzImage-kernel2&lt;/b&gt;&lt;/li&gt;&lt;li&gt; &lt;b class="mono"&gt;System.map-kernel2&lt;/b&gt; &lt;/li&gt;&lt;li&gt;&lt;b class="mono"&gt;kernel2.config&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;LILO&lt;/h4&gt; Now I have to add &lt;b class="mono"&gt;bzImage-kernel2&lt;/b&gt; to LILO. I do this by configuring the &lt;b class="mono"&gt;/etc/lilo.conf&lt;/b&gt; file. &lt;blockquote&gt;&lt;b&gt;/etc/lilo.conf&lt;/b&gt;&lt;br /&gt;image=/boot/bzImage-kernel2&lt;br /&gt;       &amp;nbsp; label= somenameforscreen&lt;br /&gt;       &amp;nbsp; root= /dev/sda1&lt;br /&gt;       &amp;nbsp; read only&lt;/blockquote&gt;Then to update LILO: &lt;blockquote&gt;# lilo -v &lt;/blockquote&gt;Following this, I rebooted. LILO worked properly, and the kernel decompressed, however this particular kernel build apparently wanted to see NFS information and could not locate it&lt;blockquote&gt;No filesystem could mount root, tried: ext2 9660. Kernel Panic - not syncing: VFS: ...&lt;/blockquote&gt;&lt;a href="http://alien.slackbook.org/dokuwiki/doku.php?id=linux:kernelbuilding"&gt;According to this primer&lt;/a&gt;, this type of fail from a new kernel is due to unmade modules so that a percentage of system resources (eg. i/o, nfs) cannot be accessed. The solution, without throwing out the old modules, is to build a sandbox with an &lt;b class="mono"&gt;initrd&lt;/b&gt; ("Initial Ram Disk") file. I have yet to attempt this.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note:Cleaning the kernel source&lt;/b&gt; (courtesy &lt;a href="http://linuxgazette.net/111/krishnakumar.html"&gt; http://linuxgazette.net/111/krishnakumar.html&lt;/a&gt;&lt;br&gt;&lt;br /&gt;After we have initiated compilation once on the source if we want to clean the object files and other temporary files then we have to run the following:&lt;br /&gt;    &lt;blockquote&gt;make clean&lt;/blockquote&gt;This will remove most generated files but will keep the configuration file. If we need an absolute cleaning, i.e. if we want to return the source to the state in which it was before we started the compilation, then do a&lt;br /&gt;&lt;blockquote&gt;make mrproper&lt;/blockquote&gt;This command will delete all generated files, the configuration file as well as various backup files. This will in effect unwind all the changes we made to the source. The source after this step will be as good as it was just after the download and untar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8522091457462213593?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8522091457462213593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8522091457462213593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8522091457462213593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8522091457462213593'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/03/slackware-122-kernel-recompile.html' title='slackware 12.2 - kernel recompile'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-1325389989743677297</id><published>2009-03-03T13:30:00.000-08:00</published><updated>2009-04-24T11:25:45.894-07:00</updated><title type='text'>toshiba l305d-s5869 - touchpad</title><content type='html'>&lt;b&gt;Synaptics touchpad fun&lt;/b&gt;&lt;br /&gt;&lt;a href="http://wiki.zenwalk.org/index.php?title=Touchpad"&gt;Xorg touchpad notes&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.rvdavid.net/disabling-the-laptop-touchpad-in-ubuntu-linux/"&gt;Disabling synaptics touchpad&lt;/a&gt;&lt;br /&gt;Touchpads or, as I call them, "random cursor placement devices" annoy me. Attempting to work on a paper where natural thumb placement means inadvertently moving the cursor from line to random line, or from word to random word, etc, brings a desire to tear-out hair.&lt;br&gt;&lt;br /&gt;&lt;u&gt;1. Synclient&lt;/u&gt; In my Toshiba, I have the Synaptics pad and driver, though some will have the ALPS. The command to disable the touchpad: &lt;blockquote&gt;$ synclient TouchPadOff=1&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-1325389989743677297?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/1325389989743677297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=1325389989743677297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1325389989743677297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1325389989743677297'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/03/toshiba-l305d-s5869-touchpad.html' title='toshiba l305d-s5869 - touchpad'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4536084187706191592</id><published>2009-02-10T00:15:00.000-08:00</published><updated>2009-02-10T01:03:57.655-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='zenwalk'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><title type='text'>toshiba l305d-s5869 - more video</title><content type='html'>Last September, I posted about picking up one of these Toshibas. At that time, the RS780 (HD3100) ATI/Radeon video chip was problematic, and may pose some additional problems. However, currently it appears the &lt;i&gt;radeonhd&lt;/i&gt; driver has finally matured enough to supplant the proprietary &lt;i&gt;fglrx&lt;/i&gt; driver which seemed to only provide software rendering.&lt;br /&gt;&lt;h3&gt;links&lt;/h3&gt;&lt;br /&gt;&lt;a href="http://ati.amd.com/support/drivers/linux64/linux64-radeon.html"&gt;fglrx driver&lt;/a&gt;&lt;br /&gt;&lt;a href="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/linux_cat91-inst.pdf"&gt;fglrx installation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mediaboxblog.co.uk/blog1.php/2008/10/03/howto-compiling-and-running-radeonhd"&gt; radeonhd download and install&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mediaboxblog.co.uk/blog1.php/2008/08/15/howto-audio-over-hdmi-with-the-hd3200-rs"&gt;ati chip audio considerations&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;steps&lt;/h3&gt;&lt;br /&gt;1. Back-up the working &lt;i&gt;xorg.conf&lt;/i&gt; in &lt;i&gt;etc/X11&lt;/i&gt;.&lt;br /&gt;2. Regardless if going forward with a newer &lt;i&gt;fglrx&lt;/i&gt; driver, or some other driver, such as the &lt;i&gt;radeonhd&lt;/i&gt; driver, remove the outdated &lt;i&gt;fglrx&lt;/i&gt; driver to avoid conflicts.&lt;blockquote&gt;# cd /usr/share/ati&lt;br /&gt;# sh fglrx-uninstall.sh&lt;/blockquote&gt;&lt;br /&gt;3. Install &lt;i&gt;git&lt;/i&gt; from respository or source.&lt;br /&gt;4. Decide whether to install fglrx or radeonhd.&lt;br /&gt;4a. &lt;a href="http://ati.amd.com/support/drivers/linux64/linux64-radeon.html"&gt;fglrx driver&lt;/a&gt;&lt;br /&gt;4b. (Radeonhd)&lt;blockquote&gt;# git-clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-radeonhd &lt;br&gt; # cd xf86-video-radeonhd&lt;br&gt;# autogen.sh --prefix=/usr/&lt;br /&gt;# make&lt;br /&gt;# make install&lt;br /&gt;# gtf 1280 800 60 -x (or whatever the native resolution and refresh)&lt;br /&gt;# nano /etc/X11/xorg.conf&lt;/blockquote&gt;&lt;br /&gt;More coming, need some sleep&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4536084187706191592?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4536084187706191592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4536084187706191592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4536084187706191592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4536084187706191592'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/02/toshiba-l305d-s5869-more-video.html' title='toshiba l305d-s5869 - more video'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-6360224050861326832</id><published>2009-01-20T15:58:00.000-08:00</published><updated>2009-01-21T19:35:08.727-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drm'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe'/><title type='text'>tweet clients, drm</title><content type='html'>Since Adobe took over Macromedia and added DRM, Flash has suffered, in my opinion. Adobe seems to purchase content creation companies, then sells creation software, then adds two steps of DRM, so whatever free player for the content probably slows &lt;a href="http://www.flashcomguru.com/index.cfm/2007/10/23/Flash-Video-DRM-Roundup"&gt;to check DRM&lt;/a&gt; and/or nags users for updates. It's brill for making money, but it sucks out a percentage of creativity, at least for all of those who can't buy the Adobe software.&lt;br&gt;&lt;br&gt; In the case of Twitter, Adobe evaluators probably determined they couldn't control content creation from the millions of contributors who constantly tweet. Instead Adobe attempts to add Twitter functionality by creating aesthetically appealing tag hashing software that those millions might want to install. But, surprise, the software, &lt;i&gt;TweetDeck&lt;/i&gt;, also requires customers to sign a EULA and to install Adobe's proprietary run-time platform &lt;i&gt;Adobe AIR&lt;/i&gt;. &lt;i&gt;Adobe AIR&lt;/i&gt; appears to have Adobe's customary DRM layers and potential phone-homes (updates, statistics) drawbacks. To me, &lt;i&gt;TweetDeck&lt;/i&gt; means "Twitter, now with statistical data-mining, nagware, and under-the-hood file manipulation". Extrapolating a bit, watch for Adobe to someday "partner" with Twitter or otherwise make "reliability" data-sharing agreements with Twitter. One of the simplest explanations for why DRM seems to make financial sense to companies is &lt;a href="http://www.techdirt.com/articles/20080220/121537306.shtml"&gt; this article &lt;/a&gt; which notes how creation software helps lock non-purchasers out of the creative process. The article is from &lt;a href="http://www.techdirt.com"&gt;Techdirt&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;tag hasher options&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.tweetdeck.com/beta/"&gt;TweetDeck&lt;/a&gt; :: Linux version available but, as noted, requires the installation of &lt;u&gt;Adobe Air&lt;/u&gt; runtime.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tweetgrid.com/"&gt; TweetGrid&lt;/a&gt; :: Linux compatible. Nothing to download. It appears to require that one's referrer header is set to "2" in "about:config". The developer told me this is to prevent hotlinking. I left my referrer header at "0" and installed the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/953"&gt;RefControl&lt;/a&gt; add-on to firefox to manage the header. This helps on other sites which require headers as well (eg. Adobe!). Appears &lt;i&gt;TweetGrid&lt;/i&gt; searches both a tweet's text and its title.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://search.twitter.com/"&gt;Twitter Search&lt;/a&gt; :: This is a sort of rudimentary way to go about it, which is why Adobe and TweetGrid can step in, but it can find whatever I want. Apparently limits its search to tags.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-6360224050861326832?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/6360224050861326832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=6360224050861326832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6360224050861326832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6360224050861326832'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/01/tweet-clients-drm.html' title='tweet clients, drm'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-3279575474997203359</id><published>2009-01-04T02:43:00.000-08:00</published><updated>2009-01-04T03:12:37.029-08:00</updated><title type='text'>wine - details</title><content type='html'>Wine installs no problem with &lt;i&gt;netpkg&lt;/i&gt; in Zenwalk, but the latest version has a tweak or two with opening a browser from whatever application is running in Wine. &lt;br /&gt;&lt;br /&gt;The first step, found &lt;a href="http://mepislovers.org/forums/archive/index.php?t-9042.html"&gt;here&lt;/a&gt; suggested adding this entry to &lt;b&gt;~/.wine/user.reg&lt;/b&gt;:&lt;blockquote&gt; [Software\\Wine\\WineBrowser] 1178036531&lt;br /&gt;"Browsers"="firefox,konqueror,mozilla,netscape,galeon,opera,dillo"&lt;/blockquote&gt; The number "1178036531" will not be the same for each installation. The first seven digits are uniform throughout a wine installation, and I duplicated the three trailing numbers of the entry from [Software\\Wine\\MSHTML].&lt;br /&gt;&lt;br /&gt;The second step, discovered &lt;a href="http://bugs.winehq.org/show_bug.cgi?id=13891"&gt;here&lt;/a&gt;, notes that a symbol must be added to each line with &lt;i&gt;winebrowser.exe&lt;/i&gt; in &lt;b&gt;~/.wine/system.reg&lt;/b&gt;:&lt;blockquote&gt; @="C:\\windows\\system32\\winebrowser.exe -nohome"&lt;/blockquote&gt; would be changed to &lt;blockquote&gt;@="C:\\windows\\system32\\winebrowser.exe -nohome %1"&lt;/blockquote&gt;Following these two tweaks, Firefox opened without error when called from Wine applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-3279575474997203359?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/3279575474997203359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=3279575474997203359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3279575474997203359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3279575474997203359'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2009/01/wine-details.html' title='wine - details'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-2999254514913434685</id><published>2008-12-28T18:39:00.000-08:00</published><updated>2010-01-16T20:27:35.577-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUPS'/><category scheme='http://www.blogger.com/atom/ns#' term='printing'/><title type='text'>CUPS - Wifi Brother HL-2170W</title><content type='html'>&lt;h3&gt;basics (through USB)&lt;/h3&gt;&lt;br /&gt;Appears there are several steps.&lt;br /&gt;1. Unbox and confirm printer works using test page.&lt;br /&gt;2. The Brother drivers appear to come only in &lt;b&gt;.deb&lt;/b&gt; and &lt;b&gt;.rpm&lt;/b&gt; formats, so I verified the &lt;i&gt;rpm&lt;/i&gt; program was installed (if not, &lt;i&gt;netpkg rpm&lt;/i&gt;).&lt;br /&gt;3. Download &lt;a href="http://solutions.brother.com/linux/en_us/download_prn.html#HL-2170W"&gt;rpm printer drivers&lt;/a&gt; from Brother site, both the &lt;b&gt;cupswrapper&lt;/b&gt; and the &lt;b&gt;lpr&lt;/b&gt;drivers.&lt;br /&gt;4.Install the lpr driver&lt;blockquote&gt;# rpm  -ihv  --nodeps   brhl2170wlpr-2.0.2-1.i386.rpm&lt;/blockquote&gt;5. Install the cupswrapper&lt;blockquote&gt;# rpm  -ihv  --nodeps  cupswrapperHL2170W-2.0.2-1.i386.rpm&lt;br /&gt;&lt;/blockquote&gt;6. Verify these have properly installed by finding them in the results from this command:&lt;blockquote&gt;# rpm  -qa&lt;/blockquote&gt;7. Turn-off printer and connect with USB. Turn-on printer.&lt;br /&gt;8. Add printer to CUPS&lt;blockquote&gt;# lpadmin -p Brother -E -v usb://dev/usb/lp0 -m HL2170W.ppd&lt;/blockquote&gt;9. Restart CUPS&lt;blockquote&gt;# service restart cups&lt;/blockquote&gt;10. Should work&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-2999254514913434685?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/2999254514913434685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=2999254514913434685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2999254514913434685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2999254514913434685'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/12/cups-wifi-brother-hl-2170w.html' title='CUPS - Wifi Brother HL-2170W'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-656396335449393411</id><published>2008-12-27T23:01:00.000-08:00</published><updated>2008-12-28T09:12:10.218-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xfce'/><title type='text'>XFCE4 start-up actions</title><content type='html'>I was recently at my folks' for the holidays and plopped-in Zenwalk 5.2 on an old system they have there. One thing I wanted Xfce4 to do when Mom logged-in was to &lt;blockquote&gt;$xgamma -gamma 0.7&lt;/blockquote&gt;&lt;br /&gt;&lt;h3&gt;startup&lt;/h3&gt;&lt;br /&gt;To solve this, I created a &lt;b&gt;.desktop&lt;/b&gt; file (I named mine &lt;i&gt;xgamma.desktop&lt;/i&gt;) made it executable (&lt;i&gt;chmod 755 xgamma.desktop&lt;/i&gt;), and placed it in the xfce autostart folder (&lt;i&gt;~/.config/autostart&lt;/i&gt;). This format for the &lt;i&gt;.desktop&lt;/i&gt; file worked the first time: &lt;blockquote&gt;[Desktop Entry]&lt;br /&gt;Encoding=UTF-8&lt;br /&gt;Version=1.0&lt;br /&gt;Type=Application&lt;br /&gt;Name=xgamma&lt;br /&gt;Comment=takes screen to .7 bright&lt;br /&gt;Exec=xgamma -gamma 0.7&lt;br /&gt;StartupNotify=false&lt;br /&gt;Terminal=false&lt;br /&gt;&lt;/blockquote&gt; I then logged-out. After logging back in, the screen went to 0.7 brightness automagically.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-656396335449393411?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/656396335449393411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=656396335449393411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/656396335449393411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/656396335449393411'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/12/xfce4-start-up-actions.html' title='XFCE4 start-up actions'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-1404367169479932142</id><published>2008-12-26T10:01:00.000-08:00</published><updated>2012-01-25T18:50:02.731-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUPS'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='printing'/><title type='text'>CUPS - usb HP DJet F300</title><content type='html'>&lt;small&gt;(HP a1350e) &lt;/small&gt;&lt;ul&gt;Zenwalk 5.2 &lt;br /&gt;2.3G Athalon X64 two part processor&lt;br /&gt;400 MB Ram&lt;br /&gt;HP Deskjet F300 (USB)&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;CUPS, good documentation &lt;a href=http://www.cups.org/documentation.php&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;h3&gt;Sketchy CUPS Webtool&lt;/h3&gt;&lt;br /&gt;I was at my folks house recently for the holidays and installed Zenwalk 5.2, a Slack-based OS that's pretty light. All went well until I attempted to add a HP Deskjet F300 All-In-One. The HP website says support only begins with F310. I figured I could get a workaround going. &lt;br /&gt;1. In spite of (significant) password efforts, you will likely find that the webtool at&lt;b&gt;http://localhost:631&lt;/b&gt;simply rejects any and all passwords, no matter what, when, or why, and will deny you adding a printer, always waiting until the &lt;b&gt;final step&lt;/b&gt; in a timely 6-part process to do so. After a couple of lost days working with /etc/cups/cupsd.conf and password, this of course will become ballistically frustrating. The temptation to sledge-hammer the computer will become more pronounced as one realizes the rejection of the CUPS webtool means the printer must be added manually using &lt;b&gt;lpadmin&lt;/b&gt; and, like any CLI, it is powerful and simultaneously filled with the potential for damaging errors. One can easily spend days. But what are you going to do - you have to print, right?&lt;br /&gt;2. The ppd file has to be locatable by lpadmin. Put the ones which need to be found in &lt;b&gt;/usr/share/cups/model/&lt;/b&gt; . I renamed the original ppd to dj350.ppd. for ease of loading and made sure it was the proper permission for ppd files "644". Now try this: &lt;pre class="code"&gt;#lpadmin -p HP300 -E -v usb:/dev/usb/lp0 -m dj350.ppd &lt;/pre&gt; The printer added easily. If a mistake is made and a PPD file is installed that you later want to substitute with a different PPD file, put the new file in /usr/share/cups/model/ and run the following command:&lt;pre class="code"&gt;#lpadmin -p HP300 –P another.ppd&lt;/pre&gt; To delete a printer entirely, use the command:&lt;pre class="code"&gt;#lpadmin -x HP300&lt;/pre&gt; To make certain, you can always check the list of installed printers using:&lt;pre class="code"&gt;#lpstat -v&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt; Day 2 (Afternoon/Evening) More lpadmin and configuration files&lt;/h3&gt;&lt;br /&gt;It may be possible, though unlikely, to work via CUPS web interface. If not, look at the file &lt;b&gt;/etc/cups/printers.conf &lt;/b&gt; and note its arrangement. Pay particular attention to this line.&lt;br /&gt;&lt;blockquote&gt;DeviceURI usb://dev/usb/lp0&lt;/blockquote&gt; This critical printer setting must be accurate. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt; test prints&lt;/h3&gt;&lt;br /&gt;Test prints are one easy thing from the CUPS web interface; although lpadmin is required to stop testprints, the CUPS interface is an easy way to initiate them. While testing the printer configs, many test prints might be desired. If they don't print, they pile-up in queue and use resources re-attempting. One can't use CUPS web interface to stop prints, so cancel them from lpadmin: &lt;br /&gt;&lt;pre class="code"&gt;#lpstat -o&lt;/pre&gt; provides pending print jobs and the job number eg, "HP1100-1". Then&lt;br /&gt;&lt;pre class="code"&gt;#cancel HP1100-1&lt;/pre&gt; will get rid of the job. Run "lpstat -o" again to verify, if you like.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt; xfce4 connection&lt;/h3&gt;&lt;br /&gt;To print from Mousepad and others that use X-settings, xfce printing needs to recognize the CUPS printer. Try printing in Mousepad and see if the CUPS printer is available. If not, configuring xfce4 to CUPS will be necessary. This was simple for me. I simply went to the XFCE menu, then access &lt;i&gt;Settings -&gt;Settings Manager -&gt; Printing System&lt;/i&gt;. Once in &lt;i&gt;Printing System&lt;/i&gt;, I selected the CUPS network printer and closed the menu. I then opened a Mouspad file to print; sure enough, the CUPS printer appeared in my options. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt; SNMP HPLIP&lt;/h3&gt;&lt;br /&gt;SNMP (Simple Network Management Protocol) is a powerful process originally designed to simplify web management. Many processes take advantage of SNMP functionality and one of them is HPLIP&lt;br /&gt;&lt;br /&gt;If hp-setup doesn't work, then the road may be long. Try using SNMP to determine if the kernel can see the printer at the nework address:&lt;pre class="code" color="blue"&gt;snmpwalk -Os -c public -v 1 ip.address.of.printer 1.3.6.1.4.1.11.2.3.9.1.1.7.0 &lt;/pre&gt;&lt;br /&gt;Per this site &lt;a href=http://fw.wtp3.org/docs/hplip-2.8.2/troubleshooting/network.html&gt;HP tshoot&lt;/a&gt;, the response should be something which shows the manufacturer, or SNMP may not be installed correctly. This means working with the /etc/snmp/snmpd.conf file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-1404367169479932142?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/1404367169479932142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=1404367169479932142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1404367169479932142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1404367169479932142'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/12/cups-usb-hp-djet-f300.html' title='CUPS - usb HP DJet F300'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8376285845830739659</id><published>2008-11-25T20:40:00.001-08:00</published><updated>2008-11-25T21:51:49.002-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usb'/><title type='text'>usb storage - corrupted e2fs</title><content type='html'>I don't know how it happened, since I verify each time when I disconnect my external 350G USB drive. I wait for hal to indicate "OK to disconnect" each time. Nevertheless, it's corrupted. I found the list of superblock backups easily &lt;blockquote&gt;# dumpe2fs /dev/sdb1 |grep superblock &lt;/blockquote&gt; Then, I attempted a customary &lt;blockquote&gt;# fsck -b 32768 /dev/sdb1&lt;/blockquote&gt; with a backup block from the list, 32768. However, several attempts netted the the same response, that the device was busy&lt;blockquote&gt; # umount /dev/sdb1&lt;br /&gt;# fsck -b 32768 /dev/sdb1&lt;br /&gt;fsck 1.40.8 (13-Mar-2008)&lt;br /&gt;e2fsck 1.40.8 (13-Mar-2008)&lt;br /&gt;/sbin/e2fsck: Device or resource busy while trying to open /dev/sdb1&lt;br /&gt;Filesystem mounted or opened exclusively by another program?&lt;/blockquote&gt; Making sure, I ran &lt;blockquote&gt;# umount /dev/sdb1&lt;br /&gt;umount: /dev/sdb1: not mounted&lt;br /&gt; &lt;/blockquote&gt;But yet, again, if I tried to fsck, I got &lt;blockquote&gt; # fsck -b 32768 /dev/sdb1&lt;br /&gt;fsck 1.40.8 (13-Mar-2008)&lt;br /&gt;e2fsck 1.40.8 (13-Mar-2008)&lt;br /&gt;/sbin/e2fsck: Device or resource busy while trying to open /dev/sdb1&lt;br /&gt;Filesystem mounted or opened exclusively by another program?&lt;/blockquote&gt; What was going on? I verified the blocksize&lt;br /&gt;&lt;blockquote&gt;# dumpe2fs /dev/sdb1 |grep -i "block size"&lt;br /&gt;dumpe2fs 1.40.8 (13-Mar-2008)&lt;br /&gt;Block size:               4096&lt;br /&gt;&lt;/blockquote&gt; and proceeded with&lt;blockquote&gt;# mke2fs -S -b 4096 -v /dev/sdb1&lt;/blockquote&gt; to restore the superblocks without touching the data. Unfortunately, this move resulted in stale file handles and the drive wouldn't mount. Another move would be &lt;blockquote&gt;# e2fsck -y -f -v -C 0 /dev/sda3&lt;br /&gt;# tune2fs -j /dev/sd3 &lt;/blockquote&gt; This makes the file system into a Ext3 system, and so the blocks are off if I started with ext2 on the drive in the first place. So I lost everything. Years of data, photos, passwords, tax records, the lot. If I knew a little more about e2fsck, I might have been able to get there, but all I could find was what to do with e3 file systems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8376285845830739659?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8376285845830739659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8376285845830739659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8376285845830739659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8376285845830739659'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/11/corrupted-usb-e2fs.html' title='usb storage - corrupted e2fs'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-437633648543666210</id><published>2008-11-24T11:58:00.000-08:00</published><updated>2008-11-24T12:46:14.825-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><title type='text'>voip - skype, others</title><content type='html'>Typically, I'm using Skype, and here's how I set it up.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;skype&lt;/b&gt;&lt;br /&gt;1. Check the dependency requirements at &lt;a href="http://www.skype.com"&gt;the skype site&lt;/a&gt; and install them from &lt;i&gt;netpkg&lt;/i&gt; or &lt;i&gt;installpkg&lt;/i&gt;. I get the static &lt;i&gt;tar.gz&lt;/i&gt; from the site.&lt;br /&gt;2. Untar the package. The executable is included; all the junk just needs to be copied to proper directories.&lt;br /&gt;3. I don't run Skype as root, but it's necessary to sudo or root to make some folders and place some files into the proper directories.&lt;blockquote&gt;# mkdir /usr/share/skype&lt;br /&gt;# cp -a sounds langs avatars /usr/share/skype&lt;br /&gt;# cp skype (the bin) /usr/bin&lt;br /&gt;# cp skype.desktop /usr/share/desktop&lt;br /&gt;$ mkdir /home/[username]/.Skype&lt;br /&gt;$ cp skype.conf ~/.Skype/ &lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;other voip&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-437633648543666210?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/437633648543666210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=437633648543666210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/437633648543666210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/437633648543666210'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/11/voip-skype-others.html' title='voip - skype, others'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-7155722119869159373</id><published>2008-11-23T22:53:00.000-08:00</published><updated>2011-08-29T12:15:41.990-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>postgresql - initialize</title><content type='html'>Links: &lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.pgadmin.org/"&gt;pgAdmin&lt;/a&gt; &amp;nbsp; &amp;nbsp; &lt;a href="http://www.wxwidgets.org//"&gt;wxWidgets&lt;/a&gt;&lt;hr&gt; I was interested in &lt;i&gt;postgreql&lt;/i&gt; as an Amarok backend, after reading somewhere that the default &lt;i&gt;sqllite&lt;/i&gt; and &lt;i&gt;mysql&lt;/i&gt; databases were slower than &lt;i&gt;postgresql&lt;/i&gt; once a collection became large. I read a primer at &lt;a href="http://ubuntuforums.org/archive/index.php/t-899252.html"&gt; this Ubuntu forum&lt;/a&gt;, but it appeared that some of the commands there were outdated, or only applied in the Ubuntu environment. What I wanted to accomplish was a basic single-user implementation, that is to say, a home &lt;i&gt;installation&lt;/i&gt; with some sort of GUI method to easily interact with it. That is the focus of this post; basic installation and interaction, not database design.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;initialize as a user, NOT root (v. 9.04) &lt;/h3&gt; Databases are designed as scalable for distributed settings. Protocols for security and integrity are appropriately incorporated. On a &lt;i&gt;standalone home system &lt;/i&gt; however, if I have to log-in to boot my system, log-in again as admin (root) to turn the server on and off, and then log-in again as a separate user to use the database, I simply will never use that database, &lt;i&gt;PostgreSQL&lt;/i&gt; or otherwise. Away from work or, said otherwise, "on my own time", I use databases to attempt to &lt;i&gt;save&lt;/i&gt; time, not to go insane. The method I implemented below is entirely insecure if used apart from a standalone, localhost environment, so be advised, but it requires no special logins or privileges and operates like any other CLI app one can use. &lt;ul&gt;&lt;li&gt;1) Uninstall any distro versions (requires root) and compile PostgreSQL. It's a standard root "make install". Files went to &lt;i class="mono"&gt;/usr/local/pgsql/bin&lt;/i&gt; in my install.&lt;/li&gt;&lt;/ul&gt;Step 2 isn't strictly necessary, but updating one's PATH shortens subsequent shell commands. If one doesn't care about that, jump to Step 3 and include the &lt;i&gt;/usr/local/pgsql/bin&lt;/i&gt; prefix to one's shell commands. Either way, be sure to remain a user beginning at Step 3.&lt;ul&gt;&lt;li&gt;2) Root-up and add &lt;b class="mono"&gt;/usr/local/pgsql/bin&lt;/b&gt; to one's &lt;b class="mono"&gt;/etc/profile&lt;/b&gt; (Slackware) PATH statement. Do &lt;b class="mono"&gt;# source /etc/profile&lt;/b&gt; after updating one's PATH, and then check it (as user) with &lt;b class="mono"&gt;$ echo $PATH&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;3) Create some directory in one's home directory, eg &lt;b class="mono"&gt;$ mkdir /home/foo/pgdatabases&lt;/b&gt;&lt;/li&gt;&lt;li&gt;4) Initialize databases into the directory created in Step 3: &lt;b class="mono"&gt;$ initdb --encoding=utf8 --locale=POSIX --pgdata=/home/foo/pgdatabases&lt;/b&gt;. It will provide a success message with status information. You can also look in &lt;i&gt;/home/foo/pgdatabases&lt;/i&gt; to verify administrative files were created in there.&lt;/li&gt;&lt;li&gt;5) Turn on &lt;i&gt;PostgreSQL&lt;/i&gt; service:&lt;b class="mono"&gt;$ postgres -D /home/foo/pgdatabases -r somelogifyouwant.txt&lt;/b&gt; It will enter an interactive mode prompt.&lt;/li&gt;&lt;li&gt;6) Create some databases or use a script. Eg, at the pgsql prompt, to create a database called "contacts", &lt;b class="mono"&gt; CREATE DATABASE contacts ENCODING 'utf8';&lt;/b&gt;. &lt;br /&gt;Alternatively, leave the postges terminal running, open another bash terminal, and enter commands from there. The same command from above, but in shell format, is:  &lt;b class="mono"&gt;$ createdb -E utf8 -e contacts&lt;/b&gt;. This should give a success status message or some error.&lt;/li&gt;&lt;li&gt;7) Similar command options exist for table creation. Or, if one has scripts, it's a similar process as with MySQL - run them from the pgsql terminal or from a separate shell.&lt;/li&gt;&lt;li&gt;8) To shutdown the database, CTRL C in the pgsql terminal. The connection will close with status messages.&lt;/li&gt;&lt;li&gt;9) Bathroom. Brush teeth and soft picks for gums.&lt;/li&gt;&lt;li&gt;10) Depart for girlfriend's house. If you forgot to create a girlfriend, remain online and create and depart for that gym. Database project secondary or tertiary priority for you.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;pgAdmin&lt;/h3&gt; I'd also install &lt;i&gt;pgAdmin&lt;/i&gt;, which makes database administration easier via a GUI. Put it in a user directory also. However, &lt;i&gt;pgAdmin is very finnicky to compile, as you will see; much more difficult to install that PostgreSQL.&lt;/i&gt; &lt;i&gt;PgAdmin&lt;/i&gt; is a hog in that it requires the infamous &lt;i&gt;wxWidgets&lt;/i&gt; for its Unicode support when reading strings from the datatbase. This wouldn't be so bad, but &lt;i&gt;WxWidgets&lt;/i&gt; is also a pig. It relies on gtk, cairo, pango, atk, and a slew of other python dependencies, to install. This means &lt;i&gt;wxWidgets&lt;/i&gt; itself is such a rabbit hole of dependencies that it can lead to entirely re-installing an OS. Unfortunately, when I attempted to install &lt;i&gt;pgAdmin&lt;/i&gt;, &lt;i&gt;configure&lt;/i&gt; found I had no &lt;i&gt;wxWidgets&lt;/i&gt; already on my system. This meant I would have to install &lt;i&gt;wxWidgets&lt;/i&gt;, and that I would probably face a great deal of associated frustration, time loss, and so forth, until it was accomplished. For example, it could be entirely possible that I might need to to back-up and completely reinstall my OS, just to solve this one dependency problem, perhaps 2 weeks of work. So, although installing the database was simple (less than an hour), GUI access to the database was an entirely different story.&lt;h3&gt;wxWidgets (wxGTK 2.8.10)&lt;/h3&gt;After looking at the various versions of &lt;i&gt;wxWidgets&lt;/i&gt;, and noting that my OS installation was from 2008, and that I already had versions of pango, cairo, and so on from around that period, I chose &lt;i&gt;wxGTK2.8.10&lt;/i&gt; (03/2009). I started with a basic:&lt;blockquote class="mono"&gt;$ configure&lt;/blockquote&gt;This compiled and installed nicely. Miracle. Back to &lt;i&gt;pgAdmin&lt;/i&gt;: would this older version of &lt;i&gt;wxWidgets&lt;/i&gt; be recent enough to support the latest &lt;i&gt;pgAdmin&lt;/i&gt;?&lt;h4&gt;pgAdmin round 2&lt;/h4&gt; As seen above, &lt;i&gt;pgAdmin&lt;/i&gt; initially lacked &lt;i&gt;wxWidgets&lt;/i&gt;. Now we had &lt;i&gt;wxWidgets&lt;/i&gt;. Trying again...&lt;blockquote class="mono"&gt;$ configure: error: Your wxWidgets installation cannot support pgAdmin in the selected configuration. This may be because it was configured without the --enable-unicode option, or the combination of dynamic/static linking and debug/non-debug libraries selected did not match any installed wxWidgets libraries.&lt;/blockquote&gt;&lt;h4&gt;return to wxWidgets&lt;/h4&gt;Uninstall wxWidgets,&lt;i&gt; make clean&lt;/i&gt; and&lt;blockquote class="mono"&gt;$ configure  --enable-shared --enable-monolithic --with-gtk=2 --with-libpng=builtin --with-zlib=builtin --with-expat=builtin --with-libtiff=builtin --with-regex=builtin --with-libjpeg=builtin &lt;b&gt;--enable-unicode&lt;/b&gt; --enable-debug&lt;/blockquote&gt;This compiles and installs. Let's see if that solves the "unicode" problems for &lt;i&gt;pgAdmin&lt;/i&gt;. Seeing how this works yet?&lt;h4&gt;pgAdmin round 3&lt;/h4&gt;Score: so far, &lt;i&gt;wxWidgets&lt;/i&gt; had miraculously installed twice, &lt;i&gt;pgAdmin&lt;/i&gt; has failed twice. So, lets try again with unicode...&lt;blockquote class="mono"&gt;$ configure: error: Your wxWidgets installation cannot support pgAdmin in the selected configuration. This may be because it was configured without the --enable-unicode option, or the combination of dynamic/static linking and debug/non-debug libraries selected did not match any installed wxWidgets libraries.&lt;/blockquote&gt;Ah-hah! &lt;i&gt;PgAdmin&lt;/i&gt; can s*ck my d*ck. &lt;h4&gt;return to wxWidgets&lt;/h4&gt;Uninstall wxWidgets,&lt;i&gt; make clean&lt;/i&gt; and&lt;blockquote class="mono"&gt;$ configure  --enable-shared --with-odbc=builtin --enable-unicode&lt;/blockquote&gt;This compiles and installs. Maybe having ODBC capacity will help with database communication. &lt;h4&gt;pgAdmin round 4&lt;/h4&gt;Score: so far, &lt;i&gt;wxWidgets&lt;/i&gt; had miraculously installed three times, &lt;i&gt;pgAdmin&lt;/i&gt; has failed three times. So, lets try again with unicode...&lt;blockquote class="mono"&gt;$ configure: error: Your wxWidgets installation cannot support pgAdmin in the selected configuration. This may be because it was configured without the --enable-unicode option, or the combination of dynamic/static linking and debug/non-debug libraries selected did not match any installed wxWidgets libraries.&lt;/blockquote&gt;Of the hundreds of linked static and dynamic libraries, there is no way to know which combination would work. Noting this, we can say this error message from &lt;i&gt;pgAdmin&lt;/i&gt; falls deeply into the "worthless" category of error messages.&lt;h4&gt;return to wxWidgets (wxX11-2.8.12)&lt;/h4&gt;Hell, let's try this X11 version. Can't hurt, but didn't succesfully complete. &lt;i&gt;Configure&lt;/i&gt; created a makefile, but running &lt;i&gt;make&lt;/i&gt; crashed with the following error&lt;blockquote class="mono"&gt; ./include/wx/filedlg.h:101: error: 'HasFlag' was not declared in this scope&lt;br /&gt;make: *** [.pch/wxprec_coredll/wx/wxprec.h.gch] Error 1&lt;br /&gt;&lt;/blockquote&gt;Oh-kee....&lt;h4&gt;return to wxWidgets (back to wxGTK 2.8.10)&lt;/h4&gt;Let's go back to the wxGTK 2.8.10 version of wxWidgets, since we previously were able to compile and install. After that, let's try a Slackware precompiled &lt;i&gt;pgAdmin&lt;/i&gt; build instead of attempting to compile &lt;i&gt;pgAdmin&lt;/i&gt;. So first &lt;i&gt;wxGTK 2.8.10&lt;/i&gt;....&lt;blockquote class="mono"&gt;$ configure --enable-unicode&lt;/blockquote&gt;This configured, compiled, and installed successfully, so now we have &lt;i&gt;wxWidgets&lt;/i&gt; with unicode support in place. Lets get a precompiled Slack .tgz build of &lt;i&gt;pgAdmin&lt;/i&gt; and see if we can use &lt;i&gt;installpkg&lt;/i&gt; to shove it in. &lt;h4&gt;pgAdmin round 5 (pgadmin3-1.6.2.tgz)&lt;/h4&gt;So here goes nuttin'...&lt;blockquote class="mono"&gt;# installpkg pgadmin3-1.6.2.tgz&lt;br /&gt;Installing package pgadmin3-1.6.2... &lt;br /&gt;PACKAGE DESCRIPTION:&lt;br /&gt;pgadmin3-1.6.2: pgAdmin III - PostgreSQL Tools&lt;br /&gt;pgadmin3-1.6.2: &lt;br /&gt;pgadmin3-1.6.2: pgAdmin III is the most popular Open Source management tool for&lt;br /&gt;pgadmin3-1.6.2: the PostgreSQL Object Relational Database Management System.&lt;br /&gt;pgadmin3-1.6.2: &lt;br /&gt;pgadmin3-1.6.2: http://www.pgadmin.org/&lt;br /&gt;pgadmin3-1.6.2: http://www.postgresql.org/&lt;br /&gt;pgadmin3-1.6.2: &lt;/blockquote&gt; And now we're gonna see...&lt;blockquote class="mono"&gt;$ pgadmin3 &lt;/blockquote&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-T1Zt35hhhU8/TltMt4V8fMI/AAAAAAAAALs/Ibkwgvh7uF0/s1600/Screenshot-46.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 153px;" src="http://1.bp.blogspot.com/-T1Zt35hhhU8/TltMt4V8fMI/AAAAAAAAALs/Ibkwgvh7uF0/s200/Screenshot-46.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5646190908941302978" /&gt;&lt;/a&gt;So for the first time we're at least getting an image. However, the window crashed when I attempted to change anything about the window or to connect to the server. Upon crashing, the terminal revealed &lt;b class="mono"&gt;glibc&lt;/b&gt; memory errors which had to do with &lt;i&gt;pgAdmin&lt;/i&gt; itself. To stop these errors, I added the glibc error prefix: &lt;blockquote class="mono"&gt;$  G_SLICE=always-malloc pgadmin3 &amp;  &lt;/blockquote&gt; It's clunky, but workable, preventing crashes, but still does not connect by itself.&lt;h4&gt;final touches (summary of hacks)&lt;/h4&gt;The above opening command prevented crashes but still does not connect. For &lt;i&gt;pgAdmin&lt;/i&gt; to connect to a database cluster, the server must be running, say with&lt;blockquote class="mono"&gt;$ postmaster -D /home/foo/pgdatabases&lt;/blockquote&gt; which can easily be terminated any time with a simple &lt;blockquote class="mono"&gt;$ killall postmaster&lt;/blockquote&gt; I therefore placed the startup &lt;i&gt;postmaster&lt;/i&gt; command in my &lt;b class="mono"&gt;/home/foo/.profile&lt;/b&gt;. So here are the pieces of this working GUI PostgreSQL installation:&lt;ul&gt;&lt;li&gt;PostgreSQL installation (simple compile): &lt;b&gt;v. 9.0.4&lt;/b&gt;&lt;/li&gt;&lt;li&gt;wxWidgets (compile with "--enable-unicode"): &lt;b&gt;wxGTK-2.8.10&lt;/b&gt;&lt;/li&gt;&lt;li&gt;pgAdmin (slackware .tgz w/installpkg): &lt;b&gt;v. 3-1.6.2&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;Configuration tweaks include...&lt;ul&gt;&lt;li&gt;starting the server in one's home &lt;i&gt;.profile&lt;/i&gt; so it's running in the background for a CLI (psql) or &lt;i&gt;pgAdmin&lt;/i&gt; to immediately connect&lt;/li&gt;&lt;li&gt;when starting pgAdmin, add glibC error hacks, such as &lt;i&gt;G_SLICE=always-malloc&lt;/i&gt; &lt;/li&gt;&lt;/ul&gt; With these in place, one can easily install and interact with the database via a GUI. The discussion of &lt;i&gt;building the database structure&lt;/i&gt; for specific need is much more complex. One needs to understand the kinds of fields, how they are related, the best ways to avoid duplication of effort, and so forth. One can receive a Bachelor's degree for a proper understanding of these design elements, and they cannot be covered in this simple installation post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-7155722119869159373?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/7155722119869159373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=7155722119869159373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7155722119869159373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7155722119869159373'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/11/postgresql-initialize.html' title='postgresql - initialize'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-T1Zt35hhhU8/TltMt4V8fMI/AAAAAAAAALs/Ibkwgvh7uF0/s72-c/Screenshot-46.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-3064002760632726752</id><published>2008-11-23T12:17:00.001-08:00</published><updated>2009-04-21T04:00:57.766-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rt61'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><title type='text'>wifi - ralink pci rt2600 drama</title><content type='html'>&lt;i&gt;--(edited 20090421)-- &lt;/i&gt;&lt;br /&gt;I had occasion to reinstall Slackware the other day.  Default distribution drivers for the ralink rt2600 are the &lt;i&gt;rt61pci&lt;/i&gt; series drivers which seem to provide only flaky and, therefore, annoying connections. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;drivers&lt;/b&gt;&lt;br /&gt;First, retrieve the latest drivers from &lt;a href="http://www.ralinktech.com/ralink/Home/Support/Linux.html"&gt;Ralink's linux page &lt;/a&gt;.  For me, this was the &lt;i&gt;2008_0723_RT61_Linux_STA_v1.1.2.2.tar.bz2&lt;/i&gt; driver. Unfortunately, the README was almost unintelligible, without even proper line returns. It only gives a portion of the necessary information, and hours are required to find the solution. Highly annoying. Taken together with the drivers, both the kernel source and headers are required. So: &lt;blockquote&gt;a. drivers&lt;br /&gt;b. kernel source&lt;br /&gt;c. kernel headers&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;file changes&lt;/b&gt;&lt;br /&gt;Prior to compiling, there are some changes, at least to these 2008 and 2009 versions. After copying Makefile.6 to Makefile, change the CFLAGS statement around line 28 to:&lt;blockquote&gt;&lt;br /&gt;EXTRA_CFLAGS+= $(WFLAGS)&lt;/blockquote&gt; If you don't like to change the Makefile, you can export the KBUILD_NOPEDANTIC just prior to compiling, but this is a necessary environment variable, one way or the other. &lt;br /&gt;&lt;br /&gt;Another change, this one suggested, is near the end of the &lt;i&gt;rtmp_main.c&lt;/i&gt; file. Here, we want to change as follows: from&lt;blockquote&gt; static INT __init rt61_init_module(VOID)&lt;br /&gt;{&lt;br /&gt;#if LINUX_VERSION_CODE &gt;= KERNEL_VERSION(2,5,0)&lt;br /&gt; &amp;nbsp;&amp;nbsp; return pci_register_driver(&amp;rt61_driver);&lt;br /&gt;#else&lt;br /&gt; &amp;nbsp;&amp;nbsp;  &lt;i&gt;return pci_module_init(&amp;rt61_driver); &lt;/i&gt;&lt;br /&gt;#endif&lt;br /&gt;}&lt;/blockquote&gt; to this:&lt;blockquote&gt; static INT __init rt61_init_module(VOID)&lt;br /&gt;{&lt;br /&gt;#if LINUX_VERSION_CODE &gt;= KERNEL_VERSION(2,5,0)&lt;br /&gt; &amp;nbsp;&amp;nbsp; return pci_register_driver(&amp;rt61_driver);&lt;br /&gt;#else&lt;br /&gt; &amp;nbsp;&amp;nbsp; return pci_register_driver(&amp;rt61_driver);&lt;br /&gt;#endif&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;environment&lt;/b&gt;&lt;br /&gt;As noted above and described &lt;a href="http://www-personal.umich.edu/~mejn/rt61.html"&gt;here&lt;/a&gt;, if you don't change the enviroment setting in the Makefile, you'll need to add &lt;blockquote&gt;$export KBUILD_NOPEDANTIC=1&lt;/blockquote&gt; as a command just prior to compiling. For systems with csh and tcsh environments, the command is apparently &lt;blockquote&gt;$setenv KBUILD_NOPEDANTIC 1&lt;/blockquote&gt; &lt;br /&gt;&lt;b&gt;putting it together&lt;/b&gt;&lt;blockquote&gt;&lt;br /&gt;$ tar -xvjf 2008_0723_RT61_Linux_STA_v1.1.2.2.tar.bz2&lt;br /&gt;$ cd 2008*&lt;br /&gt;$ cd Module&lt;br /&gt;$ cp Makefile.6 Makefile&lt;br /&gt;$ chmod 755 Configure&lt;br /&gt;$ Configure&lt;br /&gt;$ export KBUILD_NOPEDANTIC=1 (if you didn't change the Makefile)&lt;br /&gt;$ make&lt;/blockquote&gt;&lt;br /&gt;Root up&lt;blockquote&gt;&lt;br /&gt;# mkdir /etc/Wireless&lt;br /&gt;# mkdir /etc/Wireless/RT61STA&lt;br /&gt;# cp *.bin /etc/Wireless/RT61STA  (three firmware files)&lt;br /&gt;# cp sta.dat /etc/Wireless/RT61STA (configuration file)&lt;br /&gt;# cp rt61.ko /lib/modules/&amp;lt;kernel&gt;/kernel/drivers/net/wireless&lt;br /&gt;&lt;/blockquote&gt;&lt;b&gt;final steps&lt;/b&gt;&lt;blockquote&gt;# nano /etc/modprobe.d/blacklist&lt;br /&gt;   blacklist rt61pci&lt;br /&gt;   blacklist rt2x00pci&lt;br /&gt;   blacklist rt2x00lib (save and close)&lt;br /&gt;&lt;br /&gt;# nano /etc/modprobe.d./modprobe.conf&lt;br /&gt;   alias ra0 rt61  (save and close)&lt;br /&gt;&lt;br /&gt;# depmod -a&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-3064002760632726752?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/3064002760632726752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=3064002760632726752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3064002760632726752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3064002760632726752'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/11/wifi-ralink-pci-rt2600-drama.html' title='wifi - ralink pci rt2600 drama'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-1722297041627896900</id><published>2008-11-22T12:21:00.000-08:00</published><updated>2008-11-22T13:11:13.220-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grep sed'/><title type='text'>slackware - find and replace</title><content type='html'>I occasionally encounter compatibility problems with Internet Explorer and Firefox when writing site pages. When I do, finding and replacing one word across many files can be a problem. For example, I recently learned that Internet Explorer does not process the word "grey" - it apparently has to be spelled "gray".  So how to find and replace all instances of "grey" with "gray" across all the directories on the site?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;grep&lt;/b&gt;&lt;br /&gt;Of course, finding text is no problem for grep. If it's only one or two files, I can have grep locate the file for me and change them by hand. &lt;blockquote&gt;grep -lr 'text' *&lt;/blockquote&gt; where "l" provides the line number, "r" will recursively check all files, 'text' is the text I want to locate, and "*" means all files will be checked.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;sed&lt;/b&gt;&lt;br /&gt;To replace the text, we can use sed&lt;br /&gt;&lt;br /&gt;&lt;b&gt;grep and sed script&lt;/b&gt;&lt;br /&gt;To both find and replace the text, we need a mix of sed and grep together. A simple bash script follows that does it just fine.&lt;br /&gt;&lt;blockquote&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;function search {&lt;br /&gt;        find $1 -type f \( -name '*php' \) -print | while read file&lt;br /&gt;        do&lt;br /&gt;        echo replacing \"$2\" with \"$3\" in $file&lt;br /&gt;                sed "s,$2,$3,g" &lt; "$file" &gt; "$file".tmp&lt;br /&gt;                mv "$file".tmp "$file"&lt;br /&gt;        done&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function nothing {&lt;br /&gt;    echo "dir: $1 search string: $2 replace string:  $3"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# A directory has been given.  Search for files containing the term, and replace it&lt;br /&gt;if [ -d "$1" ]; then&lt;br /&gt;    search $1 $2 $3&lt;br /&gt;&lt;br /&gt;# A file has been given. Search the file for the term and replace it&lt;br /&gt;elif [ -f "$1" ]; then &lt;br /&gt;        sed "s,$2,$3,g;" &lt; "$1" &gt; "$1".tmp&lt;br /&gt;        mv  "$1".tmp "$1"&lt;br /&gt;&lt;br /&gt;# A file to parse or test has been given.  If parse, set the directory,&lt;br /&gt;# then step though every file in the directory replacing search / rplace pairs.&lt;br /&gt;# Keep going until there are no more pairs.&lt;br /&gt;elif [ "$1" == '-f' ] || [ "$1" == '-t' ] &amp;&amp; [ -f "$2" ]; then&lt;br /&gt;    index=0&lt;br /&gt;    cat $2 | while read line&lt;br /&gt;        do&lt;br /&gt;            if [ $index -eq 0 ] &amp;&amp; [ -d "$line" ]; then&lt;br /&gt;                dir=$line&lt;br /&gt;            elif [ $index -eq 0 ] &amp;&amp; [ ! -d "$line" ]; then&lt;br /&gt;                exit&lt;br /&gt;            elif [ $index -gt 0 ]; then&lt;br /&gt;                findSt=`echo ${line%% *}` &lt;br /&gt;                repSt=`echo ${line##* }`&lt;br /&gt;            fi&lt;br /&gt;            if [ "$1" == '-f' ] &amp;&amp; [ ! "$repSt" == '' ] &amp;&amp; [ ! "$findSt" == '' ]; then&lt;br /&gt;                search $dir $findSt $repSt&lt;br /&gt;            elif [ "$1" == '-t' ] &amp;&amp; [ ! "$repSt" == '' ] &amp;&amp; [ ! "$findSt" == '' ]; then&lt;br /&gt;                nothing $dir $findSt $repSt&lt;br /&gt;            fi&lt;br /&gt;            let "index += 1"&lt;br /&gt;        done&lt;br /&gt;else&lt;br /&gt;    echo "Search and replacer:"&lt;br /&gt;    echo "useage:"&lt;br /&gt;    echo "$0 [directory to search] [phrase to search for] [replacement phrase]"&lt;br /&gt;    echo "$0 [file to search] [phrase to search for] [replacement phrase]"&lt;br /&gt;    echo "$0 [-f|-t] [file to parse]"&lt;br /&gt;    echo "To parse a file the first line should be the directory, then each line after is a pair of terms"&lt;br /&gt;    echo "and replacements seperated by white space.  If the -f os given, the file will be parsed.  If -t "&lt;br /&gt;    echo "is given then the file will be read and the terms that would be replaced are output."&lt;br /&gt;    echo &lt;br /&gt;fi&lt;/blockquote&gt;&lt;br /&gt;You can see at the top that this only works on php files, so I just changed the "php" to "css".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-1722297041627896900?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/1722297041627896900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=1722297041627896900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1722297041627896900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1722297041627896900'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/11/slackware-find-and-replace.html' title='slackware - find and replace'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-7963591093949228911</id><published>2008-11-13T23:53:00.000-08:00</published><updated>2008-12-11T20:23:20.285-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wicd'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='wpa'/><title type='text'>slackware 12.0 - wpa, wicd</title><content type='html'>I'm using the &lt;i&gt; Atheros AR242x 64 (5007 chipset)&lt;/i&gt; in a Toshiba Satellite running Zenwalk 5.2. So, this is not technically a Slackware 12.0 post - the Slackware foundation of Zenwalk means they are similar. I'll edit the specifically Slackware aspects of this post over Christmas break. For Zenwalk WPA, I mostly followed &lt;a href="http://wiki.zenwalk.org/index.php?title=Wpa_supplicant"&gt;these excellent instructions &lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; Atheros AR242x 64 (5007 chipset)&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;The &lt;a href="http://madwifi.org/ticket/1192"&gt;information here&lt;/a&gt; was helpful for understanding this newer chip.  For a module, Zenwalk provides &lt;i&gt; ath5k&lt;/i&gt;, but &lt;i&gt; ath5k&lt;/i&gt; wasn't responding well to configuration attempts, so I turned to a Madwifi module.  Incidentally, the Madwifi site also contains information on &lt;i&gt;ath5k&lt;/i&gt; &lt;a href="http://madwifi.org/wiki/About/ath5k"&gt;here&lt;/a&gt;, and it appears the &lt;i&gt;ath5k&lt;/i&gt; module will eventually be effective. Currently however, the steps which worked with the Madwifi module were:&lt;blockquote&gt;&lt;br /&gt;1. in &lt;i&gt;/etc/modprobe.d/blacklist&lt;/i&gt;, blacklist the "ath5k" module&lt;br /&gt;2. reboot and lsmod - make sure ath5k is gone&lt;br /&gt;3. download &lt;a href="http://snapshots.madwifi.org/madwifi-hal-0.10.5.6/"&gt;madwifi-hal-0.10.5.6-r3861-20080903.tar.gz&lt;/a&gt; , or the newest one there, make, and install.&lt;br /&gt;4. reboot again and lsmod&lt;br /&gt;5. iwconfig ath0&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; WEP&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;WEP is trivial, merely requiring the two iwconfig commands "essid" and "key restricted", matched to whatever network I was using.  Because I'm multihomed, the order of bringing-up the interfaces was the only other pay-attention issue.  If the interfaces are activated backwards in &lt;i&gt;/etc/rc.d/rc.local&lt;/i&gt;,  then &lt;i&gt;dhcpcd&lt;/i&gt; apparently attempt to assign DNS to the interface on the LAN, rather than the one on the WLAN. blah blah blah.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; WPA&lt;/b&gt;&lt;/i&gt;&lt;br /&gt; The basis here was again gained at  &lt;a href="http://wiki.zenwalk.org/index.php?title=Wpa_supplicant"&gt;this Zenwalk wiki &lt;/a&gt;, but there are a couple of tweaks or clarifications.  It appears that &lt;i&gt;wpa_supplicant&lt;/i&gt; relies upon inserting the &lt;i&gt;wext &lt;/i&gt; module into the kernel. &lt;br /&gt;1.  using &lt;i&gt;wpa_passphrase&lt;/i&gt; with the [essid] and [password] varies with the WLAN with which one wants to connect. The command is used similarly to the WEP  &lt;i&gt;iwconfig ath0 key restricted "xxxxx"&lt;/i&gt;, which varies with each WLAN. Wpa_password then, is not a key for the laptop I'm working from, it's a password key hashed for the WLAN I'm attempting to connect with. This means I have a different entry for each WPA WLAN I'm working on. &lt;br /&gt;2. &lt;i&gt;wpa_password [essid] [password] &gt; /etc/wpa_supplicant.conf&lt;/i&gt; is a brilliant way to start the initial conf file. And, as noted in the wiki, the file can be this simple to work:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;network={&lt;br /&gt; ssid="BART Transit"&lt;br /&gt; #psk="oct2008@rezt9bit"&lt;br /&gt; psk=3ad964f16045787dec86a4730e9dec4bedaa9e24f2998eacfa363e80510e3393&lt;br /&gt; key_mgmt=WPA-PSK&lt;br /&gt; proto=WPA&lt;br /&gt;}&lt;/blockquote&gt;3. The following command line from the wiki configured ath0 properly on the first shot: &lt;blockquote&gt;wpa_supplicant -i wlan0 -D wext -c /etc/wpa_supplicant.conf -B&lt;br /&gt;&lt;/blockquote&gt;the "-B" switch is added to make the program run as a daemon, and might not be necessary. &lt;br /&gt;4. After the above, I had only to &lt;i&gt;dhcpcd ath0&lt;/i&gt; to get a valid connection. &lt;br /&gt;5. One issue appears to be quickly enabling or disabling configurations for different WLANs via &lt;i&gt;/etc/wpa_supplicant.conf&lt;/i&gt;. (see wicd below). &lt;br /&gt;6. Permanence/boot - inserting the line in Step 3 above into an &lt;i&gt;/etc/rc.local&lt;/i&gt; should work if I have an &lt;i&gt;/etc/wpa_supplicant.conf &lt;/i&gt; file with a single network configuration in it. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; more wpa_supplicant.conf&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Wpa_supplicant&lt;/i&gt; is not necessary for WEP security, since we can program the card directly with CLI commands to prepare  WEP. However, if one chooses to run &lt;i&gt;wpa_supplicant&lt;/i&gt; for everything, &lt;i&gt;/etc/wpa_supplicant.conf&lt;/i&gt; files appear able to configure WEP and unencrypted connections, in addition to WPA connections.  The &lt;i&gt;conf&lt;/i&gt; files are useful for storing various wi-fi location configurations.  &lt;b&gt;Each connection requires a different conf file, eg &lt;i&gt;etc.wpa_supplicant1.conf&lt;/i&gt;, &lt;i&gt;etc.wpa_supplicant2.conf&lt;/i&gt;, etc.&lt;/b&gt; Apparently &lt;i&gt;wicd &lt;/i&gt;can do this with a gui interface which manages switching.  But this also means the &lt;i&gt;wicd&lt;/i&gt; daemon must run - additional memory usage.&lt;br /&gt;&lt;br /&gt;A site with the &lt;i&gt;wpa_supplicant.conf&lt;/i&gt; commands is &lt;a href="http://hostap.epitest.fi/wpa_supplicant/devel-0.4/structwpa__config.html#o6"&gt;this one&lt;/a&gt;, and a site that shows the different WLAN setups in the "conf" file is  &lt;a href="http://www.vollink.com/gary/deb_wifi.html"&gt;here&lt;/a&gt; (scroll down).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;wicd&lt;/b&gt;&lt;br /&gt;Wicd configuration files live in  &lt;i&gt;/etc/wicd/encryption/templates&lt;/i&gt;.  A primer for converting &lt;i&gt;wpa_supplicant.conf&lt;/i&gt; files to &lt;i&gt;wicd&lt;/i&gt; configurations is at &lt;a href="http://wicd.sourceforge.net/templates.php"&gt;this site&lt;/a&gt;. Once the various templates are in place, it appears we can switch between them using the wicd gui, though it's unclear if dhcpcd would need to be killed and restarted in the command line?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-7963591093949228911?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/7963591093949228911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=7963591093949228911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7963591093949228911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/7963591093949228911'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/11/slackware-120-wpa.html' title='slackware 12.0 - wpa, wicd'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8324570051251662095</id><published>2008-10-26T10:40:00.000-07:00</published><updated>2008-11-24T14:51:52.200-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='alsa'/><title type='text'>Audio - SiS966 (Realtek ALC660-VD) Drama</title><content type='html'>A strange case appeared recently that might be helpful to someone. I updated ALSA on an SiS966 card and the sound died. &lt;i&gt;Alsamixer&lt;/i&gt; was unmuted, etc, &lt;i&gt;proc&lt;/i&gt; shows the card as a single unit with a single interrupt: &lt;blockquote&gt;$ cat /proc/asound/cards&lt;br /&gt; 0 [SIS966         ]: HDA-Intel - HDA SIS966&lt;br /&gt;                      HDA SIS966 at 0xfbfe8000 irq 22&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Aplay shows more information about the card. &lt;blockquote&gt;&lt;br /&gt;$ aplay -l&lt;br /&gt;**** List of PLAYBACK Hardware Devices ****&lt;br /&gt;card 0: SIS966 [HDA SIS966], device 0: ALC660-VD Analog [ALC660-VD Analog]&lt;br /&gt;  Subdevices: 1/1&lt;br /&gt;  Subdevice #0: subdevice #0&lt;br /&gt;card 0: SIS966 [HDA SIS966], device 1: ALC660-VD Digital [ALC660-VD Digital]&lt;br /&gt;  Subdevices: 1/1&lt;br /&gt;  Subdevice #0: subdevice #0 &lt;/blockquote&gt; So it appeared hw=0.0 was the analog card, and hw=0,1 was the digital version. If followed that, for the analog portion...&lt;blockquote&gt;$ cat /proc/asound/card0/pcm0p/info&lt;br /&gt;card: 0&lt;br /&gt;device: 0&lt;br /&gt;subdevice: 0&lt;br /&gt;stream: PLAYBACK&lt;br /&gt;id: ALC660-VD Analog&lt;br /&gt;name: ALC660-VD Analog&lt;br /&gt;subname: subdevice #0&lt;br /&gt;class: 0&lt;br /&gt;subclass: 0&lt;br /&gt;subdevices_count: 1&lt;br /&gt;subdevices_avail: 1&lt;br /&gt;&lt;/blockquote&gt; ....and for the digital portion... &lt;blockquote&gt;$ cat /proc/asound/card0/pcm1p/info&lt;br /&gt;card: 0&lt;br /&gt;device: 1&lt;br /&gt;subdevice: 0&lt;br /&gt;stream: PLAYBACK&lt;br /&gt;id: ALC660-VD Digital&lt;br /&gt;name: ALC660-VD Digital&lt;br /&gt;subname: subdevice #0&lt;br /&gt;class: 0&lt;br /&gt;subclass: 0&lt;br /&gt;subdevices_count: 1&lt;br /&gt;subdevices_avail: 1&lt;br /&gt;&lt;/blockquote&gt; Why no sound when levels are tested  in &lt;i&gt;alsamixer&lt;/i&gt;? I took a look at a reliable page &lt;a href="http://en.wikibooks.org/wiki/Configuring_Sound_on_Linux/HW_Address"&gt;alsa-hw&lt;/a&gt; that has helped me in the past. From here, I checked to see which of the cards was default: &lt;blockquote&gt;$ aplay -L&lt;br /&gt;default:CARD=SIS966&lt;br /&gt;    HDA SIS966, ALC660-VD Analog&lt;br /&gt;    Default Audio Device&lt;br /&gt;front:CARD=SIS966,DEV=0&lt;br /&gt;    HDA SIS966, ALC660-VD Analog&lt;br /&gt;    Front speakers&lt;br /&gt;surround40:CARD=SIS966,DEV=0&lt;br /&gt;    HDA SIS966, ALC660-VD Analog&lt;br /&gt;    4.0 Surround output to Front and Rear speakers&lt;br /&gt;surround41:CARD=SIS966,DEV=0&lt;br /&gt;    HDA SIS966, ALC660-VD Analog&lt;br /&gt;    4.1 Surround output to Front, Rear and Subwoofer speakers&lt;br /&gt;surround50:CARD=SIS966,DEV=0&lt;br /&gt;    HDA SIS966, ALC660-VD Analog&lt;br /&gt;    5.0 Surround output to Front, Center and Rear speakers&lt;br /&gt;surround51:CARD=SIS966,DEV=0&lt;br /&gt;    HDA SIS966, ALC660-VD Analog&lt;br /&gt;    5.1 Surround output to Front, Center, Rear and Subwoofer speakers&lt;br /&gt;surround71:CARD=SIS966,DEV=0&lt;br /&gt;    HDA SIS966, ALC660-VD Analog&lt;br /&gt;    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers&lt;br /&gt;null&lt;br /&gt;&lt;/blockquote&gt; So it's clear the analog portion of the card is the default. Can we hear anything from the digital portion of the card?&lt;blockquote&gt;$ aplay -D hw:0,1 alsatest.wav&lt;br /&gt;Playing WAVE 'alsatest.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;&lt;/blockquote&gt; No sound here on the digital, what about the analog...&lt;blockquote&gt;$ aplay -D hw:0,0 alsatest.wav&lt;br /&gt;Playing WAVE 'alsatest.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;&lt;/blockquote&gt;...and here I have sound. Apparently the analog portion only will be available.&lt;br /&gt;&lt;b&gt;testing&lt;/b&gt;&lt;br /&gt;To check microphone settings, a nice way to check the levels is to open two terminals. Record a couple minutes using &lt;i&gt;arecord&lt;/i&gt; in one terminal and use the &lt;i&gt;alsamixer&lt;/i&gt; in the other window to vary levels until it works. &lt;blockquote&gt;$ arecord -d 60 -f cd -t wav -D hw:0,0 foobar.wav &lt;/blockquote&gt; This will record for 60 seconds, but we can change the number of seconds to any value we wish. I call out the changes into the microphone as I make them. To play &lt;i&gt;foobar.wav&lt;/i&gt; and check the various settings, we just &lt;blockquote&gt;$ aplay -D hw:0,0 foobar.wav&lt;br /&gt;&lt;/blockquote&gt; After the settings are correct, don't forget &lt;blockquote&gt;# alsactl store&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8324570051251662095?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8324570051251662095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8324570051251662095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8324570051251662095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8324570051251662095'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/10/sis966-realtek-alc660-vd-drama.html' title='Audio - SiS966 (Realtek ALC660-VD) Drama'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-8758585957679281082</id><published>2008-10-16T20:23:00.000-07:00</published><updated>2008-10-18T05:37:21.118-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fglrx ati xorg'/><title type='text'>Radeon 3100HD RS780MC drama</title><content type='html'>On install, Zenwalk loaded a stock vesa driver in &lt;i&gt;/etc/xorg.conf&lt;/i&gt;, providing resolutions of 800x600. Common sense and &lt;b&gt;&lt;i&gt;#gtf&lt;/i&gt;&lt;/b&gt; seemed to indicate higher resolutions were available.  In &lt;i&gt;/etc/xorg.conf&lt;/i&gt;, I replaced "vesa" with, alternately, "ati", "radeon", and "radeonhd"; these did nothing but break X. I then relented for the proprietary driver "fglrx" described on most blogs as bloaty and slow, but operational. The driver was avialable &lt;a href="http://ati.amd.com/support/driver.HTML"&gt;here&lt;/a&gt; by selecting the Linux x86_64 -&gt; Radeon -&gt; ATI Radeon HD 3xxx Series and pressing "go". One note about installing this - I received checksum errors when I attemped to install it with &lt;b&gt;&lt;i&gt;#. ati*&lt;/i&gt;&lt;/b&gt;; I had to explicitly invoke bash &lt;b&gt;&lt;i&gt;#bash ati*&lt;/i&gt;&lt;/b&gt;. However, following this installation, I simply replaced "vesa" with "fglrx" in the Device section of &lt;i&gt;/etc/X11/xorg.conf&lt;/i&gt;, rebooted, and everything worked. With the vesa-fglrx swap, the &lt;i&gt;/etc/X11/xorg.conf&lt;/i&gt; file looks like this:&lt;blockquote&gt;Section "Device"&lt;br /&gt;        Identifier     "Videocard1"&lt;br /&gt;        VendorName  "ATI Technologies Inc"&lt;br /&gt;        BoardName   "Video device"&lt;br /&gt;        Driver     "fglrx"&lt;br /&gt;        BusID       "PCI:1:5:0"&lt;br /&gt;        Option "RenderAccel" "true"&lt;br /&gt;EndSection&lt;/blockquote&gt; Adjustments to the &lt;i&gt;fglrx&lt;/i&gt; module "Options" can come some other weekend; resolution and display appear sharp currently.&lt;br&gt;&lt;br /&gt;&lt;h3&gt; software rendering&lt;/h3&gt;&lt;br /&gt;It appears the problem with slow, boggy rendering continued after installation and a few different option tweaks. The card appears to default to software rendering instead of rendering with the considerable hardware memory available. The test program &lt;i&gt;glxgears&lt;/i&gt; crashed, and the information tool &lt;i&gt;glxinfo&lt;/i&gt; noted direct rendering is currently not enabled. The best post I could find about this was &lt;a href="http://www.phoronix.com/forums/archive/index.php/t-7628.html"&gt;here at phoronix&lt;/a&gt;. Accordingly, I changed &lt;i&gt;xorg.conf&lt;/i&gt; to the following: &lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;Option "KernelModuleParm" "string"&lt;br /&gt;Option "KernelModuleParm" "agplock=0"&lt;br /&gt;Option "KernelModuleParm" "agp_try_unsupported=1"&lt;br /&gt;Option "KernelModuleParm" "debug=1"&lt;br /&gt;Option "KernelModuleParm" "maxlockedmem=256"&lt;br /&gt;where 256 represents the memory size in mb. &lt;/blockquote&gt; Unfortunately, this had no visible effect. Snooping with &lt;i&gt;lsmod&lt;/i&gt; yielded nothing like "fglrx" or "glx", etc. Following with a &lt;i&gt;find -name fglrx*&lt;/i&gt; however revealed two modules: &lt;i&gt;fglrx_drv.so&lt;/i&gt; and &lt;i&gt;fglrx_dri.so&lt;/i&gt;, that is two "shared object"(so) modules, but no "kernel object"(ko) modules. That explained the &lt;i&gt;lsmod&lt;/i&gt; blank, and also rules-out kernel object loaders such as &lt;i&gt;modprobe&lt;/i&gt;, which could have been handy in &lt;i&gt;rc.local&lt;/i&gt;. So what next? Is a kernel module available and preferable? Why the "so"'s? Checking dependencies with &lt;i&gt;ldd glxgears&lt;/i&gt; does not yield much either, and I'm unclear if it's possible to depmod .so's to check their dependencies.&lt;br /&gt;&lt;h3&gt; radeonhd&lt;/h3&gt;&lt;br /&gt;As noted above, the open-source radeonhd driver, which appears to be a .ko, is improving. The &lt;a href="http://www.radeonhd.org/?page=home"&gt;radeon site&lt;/a&gt; has information about this driver as well as some useful "phoronix forums" to assist. The &lt;a href="http://wiki.x.org/wiki/radeonhd"&gt;source code&lt;/a&gt; for the radeonhd is available by looking under item 6 on the wiki. The source was most recently updated on Oct. 13,2008. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt; more fglrx considerations&lt;/h3&gt;&lt;br /&gt;The &lt;i&gt;fglrx&lt;/i&gt; driver, although supplied by Radeon, does appear to have significant Googleland complaints for slowness. For me, it renders well, but very slowly: I'm experience update lines even scrolling through a simple text page on Mousepad, etc. So, it appears something either a)very inefficient, or b)very underpowered, is taking place in terms of memory usage with the fglrx driver. From Google, it appears there are a few things to investigate: 1) does flglrx load as a module? (&lt;i&gt;lsmod |grep fglrx&lt;/i&gt;). Mine does not appear in lsmod, and this apparently means &lt;i&gt;xorg.conf&lt;/i&gt; loads a substandard fglrx_drv.ko module. Lsmod failed to locate this module either. Odd. 2) Settings in &lt;i&gt;/etc/X11/xorg.conf&lt;/i&gt; for the fglrx driver, under "Options" may be important. 3)Settings (don't know syntax or location) for whether the ATI card uses SIDEPORT mode (card uses its own memory),UMA mode (card shares system memory), or another unnamed mode where it uses a mix of SIDEPORT and UMA. One thing for sure, a lifesaver in these forum boards is &lt;i&gt;fglrxinfo&lt;/i&gt; or &lt;i&gt;fglrxinfo -v&lt;/i&gt;:&lt;blockquote&gt;# fglrxinfo&lt;br /&gt;display: :0.0  screen: 0&lt;br /&gt;OpenGL vendor string: Mesa project: www.mesa3d.org&lt;br /&gt;OpenGL renderer string: Mesa GLX Indirect&lt;br /&gt;OpenGL version string: 1.4 (2.1 Mesa 7.0.3)&lt;/blockquote&gt;&lt;br /&gt;&lt;i&gt;glxinfo&lt;/i&gt; is also important. On my system, glx is not enabled, though this may be a different problem than the overall slowness of screen panning and scrolling that I'm experiencing. A good forum thread for these issues is &lt;a href="http://fedoraforum.org/forum/archive/index.php/t-155503-p-5.html"&gt;here&lt;/a&gt;, not for solutions but for the many aspects of the problem. I located a &lt;a href="http://wiki.zenwalk.org/index.php?title=ATI_Driver_Installation"&gt; Zenwalk specific ATI installation wiki&lt;/a&gt; which informed me of the &lt;i&gt;aticonfig&lt;/i&gt; command. This command didn't seem to change much, other than append an "Extensions" section to the end of &lt;i&gt;/etc/X11/xorg.conf&lt;/i&gt;. That is, following the use of aticonfig, lsmod continues not to show any fglrx module.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-8758585957679281082?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/8758585957679281082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=8758585957679281082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8758585957679281082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/8758585957679281082'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/10/radeon-3100hd-r5780mc-drama.html' title='Radeon 3100HD RS780MC drama'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-3783868089170425125</id><published>2008-10-13T00:49:00.000-07:00</published><updated>2010-10-16T16:26:24.354-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='xvidcap'/><category scheme='http://www.blogger.com/atom/ns#' term='alsa'/><category scheme='http://www.blogger.com/atom/ns#' term='screencast'/><title type='text'>screencasting - slackware</title><content type='html'>&lt;b&gt;links:&lt;/b&gt;  &lt;a href="http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs"&gt;ffmpeg commands&lt;/a&gt;&lt;hr&gt;&lt;br /&gt;Lee Lefever videos are not screencasts but they reveal the value of a simple idea. His guiding philosophical considerations are well-described in &lt;a href="http://www.commoncraft.com/discovering-rss-explanation-problem"&gt;his blog&lt;/a&gt;. Educational screencasts do well to follow similar lines. For example, screencasts from teacher &lt;a href="http://www.youtube.com watch?v=-zT3WqXiGQU"&gt;Joe Wood&lt;/a&gt;, have a similar flavor to Lee Lefever's videos, and Wood clarifies his ideas well. &lt;br /&gt;&lt;br /&gt;What about screencasts in Linux? My previous work on a video I made for an education class left me feeling there should be more. It was initially raw AVI from the camera, but I muxed it to MPEG2. There appeared to be resolution issues - the picture wasn't as "clean" as I wanted it to be. This time, I'm starting with screencasts. I'll eventually work back to recording and cutting video when I can easily manage screencasts.&lt;br /&gt;&lt;h3&gt;istanbul&lt;/h3&gt;&lt;br /&gt;First attempt was with Istanbul, which was pre-installed with Zenwalk 5.1. Something was wrong with the framerates, and all I was seeing was flashing screens, which appeared to indicate a large number of frame drops.  Then I looked at &lt;a href="http://popey.com/Creating_Screencasts"&gt;this guy's post&lt;/a&gt; and it appears that there might also be screen size as well as framerate issues. Istanbul has no sound supplied, it must subsequently be muxed. What could possibly be more annoying?&lt;br /&gt;&lt;h3&gt;recordmydesktop&lt;/h3&gt;&lt;br /&gt;Includes sound and screen, and outputs in Ogg-Theora as &lt;i&gt;.ogv&lt;/i&gt; files. Seems the most useful, but the ability to record sound varies with systems. When it works, it works well. The &lt;i&gt; .ogv&lt;/i&gt; file can be shifted to &lt;i&gt;.flv&lt;/i&gt; format for YouTube uploads or website. I used a script for doing so from &lt;a href="http://linux.softpedia.com/get/Multimedia/Audio/Ogv-to-Flv-Converter-41863.shtml"&gt;here&lt;/a&gt;&amp;nbsp; though I'm sure it's also around at other sites. I had to modify the script slightly for CLI use, and &lt;i&gt;libmp3lame.so.0&lt;/i&gt; must be installed for the &lt;i&gt;mencoder&lt;/i&gt; inside it to follow the script properly. I renamed the script &lt;i&gt;ogv2flv.sh&lt;/i&gt; and it runs on command line once &lt;i&gt;libmp3lame.so.0&lt;/i&gt; is installed:&lt;blockquote&gt;$ ogv2flv.sh input.ogv&lt;/blockquote&gt; There is no config file for the CLI version of &lt;i&gt;recordmydesktop&lt;/i&gt;, which means hideously long command line entries. Further, typing &lt;i&gt; $ man recordmydesktop&lt;/i&gt; only produced  "No manual entry for recordmydesktop". Nice going. It appears the best thing is the &lt;a href="http://recordmydesktop.sourceforge.net/manpage.php"&gt;sourceforge version&lt;/a&gt;, until that URL breaks. Strike two. However, a nicely sized screen which works well from command line for capturing browser without the status bar, but including the URL bar is&lt;blockquote&gt;$ recordmydesktop -x 14 -y 55 -width 988 -height 674 -fps 12 -o wobbly.ogv&lt;/blockquote&gt; This seems to default constantly to 44100 and 2 channels in spite of my entering 1 channel and 22050 frequency and the device hw:0,0, so I eventually deleted these parameters from the line.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Recordmydesktop&lt;/i&gt; also has a python based GtK front-end available to those who are interested.  This program does have a config file &lt;i&gt;.gtk-recordmydesktop&lt;/i&gt;, which appears to be an advantage over remembering the complex CLI commands necessary to avoid the inevitable "broken pipe" commands if you forget one parameter. Each time I edited the config file by hand, the program overwrote my screen size settings each time it opened. Strike three.  &lt;br /&gt;&lt;h3&gt;xvidcap&lt;/h3&gt;&lt;br /&gt;Solid, but a few quirks. 1) &lt;i&gt; .xvidcap.scf&lt;/i&gt; is supposed to be available for a config file, it apparently doesn't work well or is not read. Accordingly, right clicking on the gui controls provides preferences. Not too bad and they can be saved there too. 2) Have to adjust the box size each time. 3) On at least one occasion, it might have muted my microphone during start-up. 3). Sound is garbled unless using oss emulation &lt;i&gt;aoss&lt;/i&gt;. So, I might start xvidcap to do 10 frames per second like this: &lt;blockquote&gt;$ aoss xvidcap --fps 10&lt;/blockquote&gt;Once screencasting is complete, ffmpeg can shift the mpeg into a YouTube flv in a single command &lt;blockquote&gt;$ ffmpeg -i test2.mpeg -ar 44100 test2.flv &lt;/blockquote&gt;&lt;br /&gt;&lt;h3&gt;sound levels&lt;/h3&gt;&lt;br /&gt;Microphone settings become significant in screencasting. Here are a couple of cards. &lt;br&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Realtek ALC660-D&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;I set "Mic" as the capture source, and vary the relationship between &lt;i&gt;Mic Boost&lt;/i&gt;, &lt;i&gt;Digital&lt;/i&gt;, and the &lt;i&gt;Capture&lt;/i&gt; bar. The settings which avoid clipping and feedback have been Mic Boost=33, Digital~65-70, and Capture~77-82.  &lt;i&gt;Digital&lt;/i&gt; seems to be the most important for hiss and I play trade-off between &lt;i&gt;Digital&lt;/i&gt; and &lt;i&gt;Capture&lt;/i&gt; until the hiss disappears while attempting to avoid clipping distortion if &lt;i&gt;Capture&lt;/i&gt; is set too high.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-3783868089170425125?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/3783868089170425125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=3783868089170425125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3783868089170425125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3783868089170425125'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/10/slackware-screencasting.html' title='screencasting - slackware'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-404247845709850093</id><published>2008-10-10T21:44:00.000-07:00</published><updated>2010-12-20T17:15:39.178-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application'/><title type='text'>slackware - application list</title><content type='html'>A baseline group of applications we typically install, mostly to solve the problem of how to retrieve various types of media or other information quickly. Slackware has several by default. The configuration file locations are not given. Whether or not they are command-line or gui apps is not always included.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ffmpeg.org"&gt;ffmpeg&lt;/a&gt;: necessary media translator&lt;br /&gt;&lt;a href="http://www.linux.com/feature/59342"&gt;streamtuner&lt;/a&gt;: media stream consolidation&lt;br /&gt;&lt;a href="http://recordmydesktop.sourceforge.net/downloads.php"&gt;recordmydesktop&lt;/a&gt;: screencasting. best with command-line settings.&lt;br /&gt;&lt;a href="http://audacious-media-player.org/"&gt;audacious (netpkg)&lt;/a&gt;: gui, audio, skins&lt;br /&gt;&lt;a href="http://www.eclipse.org/"&gt;eclipse (netpkg)&lt;/a&gt;: C++/Java IDE&lt;br /&gt;&lt;a href="http://freshmeat.net/projects/unison/"&gt;unison (netpkg)&lt;/a&gt;: folder comparison and merging&lt;br /&gt;&lt;a href="http://www.cycas.de/produkt.php?s=en&amp;sys=lin#top"&gt;cycas ($300)&lt;/a&gt;: professional architectural program ($128 - basic)&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;b&gt;database apps&lt;/b&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/NolaPro"&gt;Nola Pro&lt;/a&gt;: bookkeeping/accounting. MySQL, PhP, Browser&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-404247845709850093?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/404247845709850093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=404247845709850093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/404247845709850093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/404247845709850093'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/10/slackware-application-list.html' title='slackware - application list'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-36940699021103143</id><published>2008-10-03T22:56:00.000-07:00</published><updated>2011-03-26T00:41:44.475-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cell'/><title type='text'>fall 2008 - celly status</title><content type='html'>I've waited a while for new cell service. For several years I've run a Motorola V3 on Cingular -&gt; SBC -&gt; ATT service. In other words, I've used a basic second generation (2G) cellphone with 2G service. When I selected a 2G provider several years ago, I selected the GSM (ATT) version of 2G over the CDMA (eg. Metro PCS/Verizon) version of 2G because GSM is prevalent in Europe. When visiting Europe, I use my Motorola V3 relatively cheaply by purchasing a European plan with a SIM and swapping out my US SIM. Further, in the US, GSM phones hold about 75% of the market share.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3G&lt;/h3&gt;Last year, the iPhone debuted, the first interesting third generation (3G) device, at least in my opinion. I've since watched the developments around 3G data/voice with the idea of jumping-in at the right moment. The types of service are somewhat complex and I made a little chart (click to enlarge) for this blog entry, simplifying what I understood about these services: &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5jQYc4kk6YI/SOeDUUHx2RI/AAAAAAAAAE8/6P1QoCmGEMk/s1600-h/cellstuff.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_5jQYc4kk6YI/SOeDUUHx2RI/AAAAAAAAAE8/6P1QoCmGEMk/s320/cellstuff.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5253311875372931346" /&gt;&lt;/a&gt;&lt;br /&gt;I assume like most people, the reason I'm migrating to 3G is web and phone access in a single device. Until the iPhone, a person needed a (bulky) laptop for that level of service. I considered an iPhone when they first appeared last year but the iPhone seemed too outrageously priced for the product and services package. More recently, I noticed Sprint "Wi-Max" (CDMA-2000 service) was scheduled for availability in August of 2008 on Nokia phones. That was interesting but, upon researching further, WCDMA devices look like a better choice than Wi-Max devices. WCDMA succeeds GSM (see chart above) and accordingly are backwards-compatible with GSM. That plays a role when traveling to Europe where cell phone service exists at different stages of development in different regions. Having a phone that is backwards-compatibile with European (2G GSM) networks makes it possible to travel there with less phone hassles. I set my mind to finding WCDMA service.   &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;3G drawbacks&lt;/h3&gt;As seen in the chart above, there are two versions of 3G, WCDMA (formerly GSM) and CDMA-2000 (formerly CDMA). If I understand correctly, geo-locating in the CDMA branch used GPS from the start. GSM users, on the other hand, turned-off their phone to have locational privacy, and had to be triangulated via cell towers when their phones were turned-on. Stated otherwise, it's beneficial for security agencies if the public migrates to CDMA.  Luckily for them, the data transfer requirements of 3G require the transmission style of CDMA. Accordingly, as GSM providers attempt to provide 3G on previous GSM networks, GSM phones will have to morph into a version of CDMA phones for 3G availability.  This means a degree of privacy reduction for GSM users. Secondly, although CDMA has a single advantage - it can manage more users - battery life suffers for managing this transmission methodology.  Finally, Qualcomm holds the patents for both forms of 3G (WCDMA and CDMA-2000). Qualcomm is an American company, and we may assume their chips integrate CALEA backdoors or other monitoring options. Any backdoor is subject to exploits and so can be considered a privacy drop.  All told, our initial 3G phones would appear to suggest decreased privacy in at least two ways, and decreased battery life.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;TMobile&lt;/h3&gt;TMobile, the American wing of Deutsche Telekom, is of interest to me as a 3G provider. They currently sell both 2G GSM and 3G WCDMA service in the US, and are rolling out WCDMA in more and more cities. In the Bay Area,  TMobile already (10/2008) has 3G, The phone which interests me, the G1 phone,  uses a SIM and is backwards-compatible to 2G GSM networks.  According to one or two sites I've seen, the price is $199 via a pre-order that arrives Fed Ex by Nov 10. It requires a 2 year contract that appears to be $89 a month for 3G voice and data service.  If that's correct, it's a significant improvement over iPhone prices plus G1 software (Android OS) is supposedly open-source in cooperation with Google.  Pre-order link: &lt;a href="http://www.t-mobileg1.com/"&gt;http://www.t-mobileg1.com/&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5jQYc4kk6YI/SOwxAjhWdpI/AAAAAAAAAFk/xLYAoyQ9Pkk/s1600-h/g1g3phone2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_5jQYc4kk6YI/SOwxAjhWdpI/AAAAAAAAAFk/xLYAoyQ9Pkk/s320/g1g3phone2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5254628750839412370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5jQYc4kk6YI/SOww4vlhA3I/AAAAAAAAAFc/c0MGHqgyJYc/s1600-h/g1g3phone.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_5jQYc4kk6YI/SOww4vlhA3I/AAAAAAAAAFc/c0MGHqgyJYc/s320/g1g3phone.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5254628616639153010" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-36940699021103143?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/36940699021103143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=36940699021103143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/36940699021103143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/36940699021103143'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/10/fall-2008-celly-status_03.html' title='fall 2008 - celly status'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5jQYc4kk6YI/SOeDUUHx2RI/AAAAAAAAAE8/6P1QoCmGEMk/s72-c/cellstuff.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-6888871641967791231</id><published>2008-09-27T08:49:00.000-07:00</published><updated>2010-02-23T15:17:03.161-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='satellite'/><category scheme='http://www.blogger.com/atom/ns#' term='zenwalk'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='wpa'/><category scheme='http://www.blogger.com/atom/ns#' term='toshiba'/><title type='text'>zenwalk 5.2 in Toshiba Satellite (L305D-S5869)</title><content type='html'>These were on-sale recently (9/25) at Fry's and seemed like a good deal although it's understood the Linux factor might be difficult with ATI video and so on. Still for $400: &lt;blockquote&gt;&lt;br /&gt;15.4 WXGA&lt;br /&gt;AMD Athlon 64 X2 Dual Core&lt;br /&gt;1024 MB PC6400 SDRAM&lt;br /&gt;Radeon 3100HD (RS780) w/VGA out&lt;br /&gt;Atheros AR5007EG (wifi)&lt;br /&gt;Realtek RTL8102E (ethernet)&lt;br /&gt;Realtek ALC268 (sound)&lt;br /&gt;120GB 5400 RPM&lt;br /&gt;DVD RW, PCMCIA, SD port&lt;br /&gt;3xUSB 2.0&lt;br /&gt;No bluetooth or videocamera &lt;/blockquote&gt;&lt;br /&gt;Booted into pre-installed Windows Vista first. The return policy is 15 days for laptops and specifies software and hardware must remain unmodified. After verification of hardware features, I blew out the unbelievably bloaty factory load, dropped in a boot disk, formatted, and &lt;i&gt;&lt;b&gt;mke2fs /dev/sda1&lt;/b&gt;&lt;/i&gt;. Nice.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Slackware 12.0&lt;/h3&gt;&lt;br /&gt;I had a Slack 12.0 DVD gathering dust available and Slackware is my favorite. However, errors appeared on installation and it seemed an extensive parameter set was required to tame them:&lt;blockquote&gt;#boot nosmp noapic irqpoll&lt;/blockquote&gt;To me, these problems meant that, if I continued with the Slack install on the newer hardware, I might be compiling and patching over the weekend, or that I should download and burn Slack 12.1 and begin there. I also had a copy of  Slackware-based Zenwalk (formerly Minislack) 5.2 which possessed a newer kernel and a supposedly candy-coated installation process. Choices.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Zenwalk 5.2&lt;/h3&gt;&lt;br /&gt;Installed smoothly with only &lt;i&gt;&lt;b&gt;irqpoll&lt;/b&gt;&lt;/i&gt; needed as a parameter. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; Atheros AR242x 64 (5007 chipset)&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;The &lt;a href="http://madwifi.org/ticket/1192"&gt;instructions here&lt;/a&gt; were helpful for understanding this newer card. Zenwalk provides ath5k, but it wasn't going well.  The Madwifi site has information on ath5k &lt;a href="http://madwifi.org/wiki/About/ath5k"&gt;here&lt;/a&gt;, and it appears the ath5k module will eventually be effective. Currently however, the steps which worked were:&lt;blockquote&gt;&lt;br /&gt;1. in &lt;i&gt;/etc/modprobe.d/blacklist&lt;/i&gt;, blacklist the "ath5k" module&lt;br /&gt;2. reboot and lsmod - make sure the ath5k is gone&lt;br /&gt;3. download &lt;a href="http://snapshots.madwifi.org/madwifi-hal-0.10.5.6/"&gt;madwifi-hal-0.10.5.6-r3861-20080903.tar.gz&lt;/a&gt; , or the newest one there, make, and install.&lt;br /&gt;4. reboot again and lsmod&lt;br /&gt;5. iwconfig ath0&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; WEP and WPA&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;WEP is trivial, merely need the two iwconfig commands "essid" and "key restricted" to make it work. WPA, on the other hand, is a separate post. It only took 10 minutes to configure, but the description is too long for this overview. If one has a distro which requires kernel modification for WPA, the process becomes longer.  &lt;a href="http://www.linux-wireless.org/Wireless/WPA/#WPA"&gt;This site&lt;/a&gt; seems to explain it t I'm also currently building a chart for easier understanding based on &lt;a href="http://www.codealias.info/technotes/wpa2_eap-tls_authentication_linux_client_setup"&gt;this site&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;screen brightness and gamma&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;The default settings for screen brightness and backlighting install maxed at 100%, and the Fn buttons don't seem to work except in Windows - battery life, screen life, eyestrain. Without going into X, one has command-line control over the brightness. Look in &lt;i&gt;/proc/acpi/video/VGA/LCD/brightness&lt;/i&gt; to see the possible brightness settings for the card, such as 25, 50, 75%, and so on. I like 25%, so: &lt;blockquote&gt;#echo -n 25 &gt; /proc/acpi/video/VGA/LCD/brightness&lt;/blockquote&gt; It appears we cannot change the backlighting outside of X, though I haven't researched. Once in X however, open a terminal and select any number between 0.00 and 1.0 for gamma, eg: &lt;blockquote&gt;xgamma -gamma 0.75&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; Realtek ALC268 Sound&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Some duplicate &lt;i&gt;alsamixer&lt;/i&gt; settings were seen. For example, alsamixer showed two microphone capture bars when only one channel was connected. I went to the &lt;a href="http://www.realtek.com.tw/downloads/"&gt;Realtek downloads site&lt;/a&gt;,  clicked a link there to the "HD Audio Codec Driver", and agreed to licensing language. After download and unpacking, it turned out this was the latest release of ALSA, so it basically installs the latest ALSA, but apparently with a newer HD driver.  The &lt;i&gt;alsamixer&lt;/i&gt; showed proper inputs following this ALSA update. and so, after setting levels, it was time for &lt;i&gt;# alsactl store&lt;/i&gt;.&lt;br&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; Radeon 3100HD RS780MC&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Initially, Zenwalk loaded the vesa driver in &lt;i&gt;/etc/xorg.conf&lt;/i&gt;, providing resolutions of 800x600. Common sense and &lt;b&gt;&lt;i&gt;#gtf&lt;/i&gt;&lt;/b&gt; seemed to indicate higher resolutions were available.  In &lt;i&gt;/etc/xorg.conf&lt;/i&gt;, I replaced "vesa" with, alternately, "ati", "radeon", and "radeonhd"; these did nothing but break X. I then relented for the proprietary driver "fglrx" described on most blogs as bloaty and slow, but operational. The driver was avialable &lt;a href="http://ati.amd.com/support/driver.HTML"&gt;here&lt;/a&gt; by selecting the Linux x86_64 -&gt; Radeon -&gt; ATI Radeon HD 3xxx Series and pressing "go". One note about installing this - I received checksum errors when I attemped to install it with &lt;b&gt;&lt;i&gt;#. ati*&lt;/i&gt;&lt;/b&gt;; I had to explicitly invoke bash &lt;b&gt;&lt;i&gt;#bash ati*&lt;/i&gt;&lt;/b&gt;. However, following this installation, I simply replaced "vesa" with "fglrx" in the Device section of &lt;i&gt;/etc/X11/xorg.conf&lt;/i&gt;, rebooted, and everything worked. With the vesa-fglrx swap, the &lt;i&gt;/etc/X11/xorg.conf&lt;/i&gt; file looks like this:&lt;blockquote&gt;Section "Device"&lt;br /&gt;        Identifier     "Videocard1"&lt;br /&gt;        VendorName  "ATI Technologies Inc"&lt;br /&gt;        BoardName   "Video device"&lt;br /&gt;        Driver     "fglrx"&lt;br /&gt;        BusID       "PCI:1:5:0"&lt;br /&gt;        Option "RenderAccel" "true"&lt;br /&gt;EndSection&lt;/blockquote&gt; Adjustments to the &lt;i&gt;fglrx&lt;/i&gt; module "Options" can come some other weekend; resolution and display appear sharp currently.&lt;br&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; additional fglrx considerations for the Radeon 3100HD R5780MC&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;The &lt;i&gt;fglrx&lt;/i&gt; driver, although supplied by Radeon, does appear to have significant Googleland complaints for slowness. For me, it renders well, but very slowly: I'm experience update lines even scrolling through a simple text page on Mousepad, etc. So, it appears something either a)very inefficient, or b)very underpowered, is taking place in terms of memory usage with the fglrx driver. From Google, it appears there are a few things to investigate: 1) does flglrx load as a module? (&lt;i&gt;lsmod |grep fglrx&lt;/i&gt;). Mine does not appear in lsmod, and this apparently means &lt;i&gt;xorg.conf&lt;/i&gt; loads a substandard fglrx_drv.ko module. Lsmod failed to locate this module either. Odd. 2) Settings in &lt;i&gt;/etc/X11/xorg.conf&lt;/i&gt; for the fglrx driver, under "Options" may be important. 3)Settings (don't know syntax or location) for whether the ATI card uses SIDEPORT mode (card uses its own memory),UMA mode (card shares system memory), or another unnamed mode where it uses a mix of SIDEPORT and UMA. One thing for sure, a lifesaver in these forum boards is &lt;i&gt;fglrxinfo&lt;/i&gt; or &lt;i&gt;fglrxinfo -v&lt;/i&gt;:&lt;blockquote&gt;# fglrxinfo&lt;br /&gt;display: :0.0  screen: 0&lt;br /&gt;OpenGL vendor string: Mesa project: www.mesa3d.org&lt;br /&gt;OpenGL renderer string: Mesa GLX Indirect&lt;br /&gt;OpenGL version string: 1.4 (2.1 Mesa 7.0.3)&lt;/blockquote&gt;&lt;br /&gt;&lt;i&gt;glxinfo&lt;/i&gt; is also important. On my system, glx is not enabled, though this may be a different problem than the overall slowness of screen panning and scrolling that I'm experiencing. A good forum thread for these issues is &lt;a href="http://fedoraforum.org/forum/archive/index.php/t-155503-p-5.html"&gt;here&lt;/a&gt;, not for solutions but for the many aspects of the problem. &lt;br&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; netpkg repos&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;Each time zenwalk is released, the repositories update to the most current release so that, if one needs a certain package, they generally have to update the rest of their system to be in sync with it. Suppose I like my release and just want to keep it into perpetuity.  As long as 1) I have the installation disk 2) have &lt;i&gt;netpkg'ed&lt;/i&gt; all the programs from that release I want (they download to &lt;b class="mono"&gt;/var/packages&lt;/b&gt;), and 3) have downloaded a copy of &lt;b class="mono"&gt;PACKAGES.TXT.gz&lt;/b&gt;, I can point &lt;i&gt;netpkg&lt;/i&gt; to &lt;i&gt;/var/packages&lt;/i&gt; and use the older release. A couple of simple modifications are required with two configuration files since &lt;i&gt;netpkg&lt;/i&gt; doesn't inherently recognize URLs of the type &lt;b class="mono"&gt;"file:///"&lt;/b&gt;. &lt;a href="http://support.zenwalk.org/viewtopic.php?f=9&amp;t=11112"&gt;This link&lt;/a&gt; describes the changes to the two files, &lt;b class="mono"&gt;/usr/libexec/netpkg-functions&lt;/b&gt; and &lt;b class="mono"&gt;/etc/netpkg.config&lt;/b&gt; files, which I repeat here. &lt;li&gt;&lt;b class="mono"&gt;/usr/libexec/netpkg-functions&lt;/b&gt;, at or about line 144:&lt;/li&gt;&lt;blockquote&gt;if [ $( echo "$url" | egrep -e "ftp:.*|http:.*|file:.*" ) ]; then&lt;/blockquote&gt;&lt;li&gt;...at or about line 205:&lt;/li&gt;&lt;blockquote&gt;if [ ! "$(echo $mirror | egrep 'http://|ftp://|file://')" ] ; then&lt;/blockquote&gt;&lt;li&gt;&lt;b class="mono"&gt;/etc/netpkg.conf&lt;/b&gt; add another line such as&lt;/li&gt;&lt;blockquote&gt;Internet_mirror = file:///var/packages&lt;br /&gt;&lt;/blockquote&gt;Put a copy of &lt;b class="mono"&gt;PACKAGES.TXT.gz&lt;/b&gt; into &lt;b class="mono"&gt;/var/packages&lt;/b&gt;, and you've got a self-contained distribution.&lt;br&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;unsolved: multiple instantiation of mplayer, thunar, etc&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Perhaps because of multiple processors, there's currently a problem when using DVD's. Multiple instances of related applications appear, eg 2 x MPlayer or 2 x Thunar. Working around this by disabling automatic HAL events for the time being.  Manually opening one instance of the application for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-6888871641967791231?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/6888871641967791231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=6888871641967791231' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6888871641967791231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/6888871641967791231'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/09/zenwalk-52-in-toshiba-satellite-l350d.html' title='zenwalk 5.2 in Toshiba Satellite (L305D-S5869)'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4127332875885512959</id><published>2008-09-20T17:26:00.000-07:00</published><updated>2008-10-11T01:17:52.194-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webpage'/><category scheme='http://www.blogger.com/atom/ns#' term='thumbnails'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Clickable java-free thumbnail text</title><content type='html'>A project required some clickable jpegs, but didn't want to use javascript to do all of this - I don't like how cumbersome java typcially becomes and when scripts become broken.  I was somewhat determined to make the thumbnails myself and then manipulate the rest with Cascading Style Sheets (CSS). At the bottom of the entry here, however, I found a lightweight and probably foolproof java script. Additionally, in the search for the CSS solution,  I ran across a notable introductory CSS tutorial &lt;a href="http://www.albinoblacksheep.com/livedesign/"&gt;here&lt;/a&gt;, and one that explains how to create rounded corners &lt;a href="http://www.cssjuice.com/25-rounded-corners-techniques-with-css/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt; thumbnail generation&lt;/h3&gt;&lt;br /&gt;First downloaded jpg generator &lt;i&gt;jpgtn&lt;/i&gt;. It compiled OK, but had errors when I first attempted to use it with this command patched together from its man page:&lt;br /&gt;&lt;blockquote&gt;$jpgtn  -H -s 128 -d "./thumbs/" -p "tn_" *.jpg &lt;/blockquote&gt;&lt;br /&gt;It appeared there was an unstated dependency on &lt;i&gt;ld.so&lt;/i&gt; which I located using &lt;i&gt;strace&lt;/I&gt;: &lt;blockquote&gt;access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)&lt;/blockquote&gt; It's true &lt;i&gt;ld.so&lt;/i&gt; is lacking, but it's long been deprecated and is not the problem. The problem is I specified "jpg" in the &lt;i&gt;jpgtn&lt;/i&gt; command line, limiting &lt;i&gt;jpgtn&lt;/i&gt; to processing only files with a &lt;i&gt;jpg&lt;/i&gt; extension.  Files in that folder with any other extension, ( eg. &lt;i&gt;JPEG, jpeg, JPG&lt;/i&gt; or say &lt;i&gt;txt&lt;/i&gt;) cause &lt;i&gt;jpgtn&lt;/i&gt; to exit with an error.  The program also exits with an error if a "thumbs" sub-folder has not previously been created. Accordingly, once I put all jpegs into a folder, named them with the same "jpg" extension, and created a "thumbs" subfolder, I processed all the photos in that folder with the single command above.   &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;mouseover text &lt;/h3&gt;&lt;br /&gt;For ease, mousing over the thumbnail should provide a text description of it,, but I wanted to do this without the pain of java, and within CSS.  Several solutions appeared.  The first good description of how to understand CSS mouseover options was &lt;a href="http://www.tizag.com/cssT/pclass.php"&gt;here&lt;/a&gt;, but it appeared to deal mostly with links. A more complete description using &lt;i&gt;span&lt;/i&gt; was found &lt;a href="http://meyerweb.com/eric/css/edge/popups/demo.html"&gt;here&lt;/a&gt;, but this involved editing the style sheet in some way I didn't understand. The site ultimately with a page by page solution was &lt;a href="http://views-under-construction.blogspot.com/2007/01/css-mouseover-popup-hover-myspace.html"&gt;this one&lt;/a&gt;. The author apparently wished to insert some effects on his MySpace page. MySpace apparently allows CSS but not java.  &lt;br /&gt;&lt;br /&gt;Using the code from the site, I put a thumbnail on the page with the mouseover text "Statics Class 2005", in the following way: &lt;blockquote&gt;&lt;br /&gt;&amp;lt;div class="popuptext0"&amp;gt;&lt;br /&gt;&amp;lt;center&amp;gt;&lt;br /&gt;&amp;lt;a class= "hoverTest" href="stats.jpg"&amp;gt;&lt;br /&gt;&amp;lt;img src="tn_stats.jpg"&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;&amp;lt;span class="popUpSpan"&amp;gt;Statics Class, 2005 &amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/center&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;div.popuptext0 {width:150px; height:auto}&lt;br /&gt;a:hover img {filter:none;}&lt;br /&gt;a img {border:0px !important;}&lt;br /&gt;a.hoverTest {width:150px; height:auto; }&lt;br /&gt;a span.popUpSpan {visibility:hidden;}&lt;br /&gt;a:hover span.popUpSpan {visibility:visible; display:block; border:1px silver solid}&lt;br /&gt;a span.popUpSpan {color:black; font-size:13px}&lt;br /&gt;a:link, a:hover  {text-decoration:none !important;} &lt;br /&gt;&amp;lt;/style&amp;gt;  &lt;/blockquote&gt;&lt;br /&gt;This worked fine - it named the photo and recalled the larger photo when clicked. But what about having multiple thumbnails across a page, in gallery format, with text available, how to arrange this?&lt;br /&gt;&lt;br /&gt;&lt;h3&gt; lightweight java solution &lt;/h3&gt;&lt;br /&gt;Eventually, I found a partial java solution which was lightweight, meaning it didn't require pages of code. Additionally, it automatically generated the thumbnails for me.  I found a micro script at &lt;a href="http://www.dynamicdrive.com/dynamicindex4/thumbnail.htm"&gt;dynamicdrive&lt;/a&gt; which did the trick and didn't require many resources. Problem solved, pretty easily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4127332875885512959?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4127332875885512959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4127332875885512959' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4127332875885512959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4127332875885512959'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/09/clickable-java-free-thumbnail-text.html' title='Clickable java-free thumbnail text'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-3852230346946250602</id><published>2008-09-05T22:15:00.000-07:00</published><updated>2008-09-17T22:43:08.065-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='wine'/><title type='text'>Slackware 12.0 - Wine Install</title><content type='html'>It appears Slackware doesn't include Wine. In early September of 2008, there was a dedicated Wine package available for Slack 10.1 &lt;a href="http://www.winehq.org/site/download"&gt;here&lt;/a&gt;, but this package made for 10.1, may not have worked with the 2.6.21.5 kernel in Slack 12.0. I thought it best to go with source and compile. The latest Wine package download info is typically found at &lt;a href="http://www.winehq.org/site/download"&gt;this portion&lt;/a&gt; of the WineHq site. I selected the latest release, which was Wine 1.1.4 in early September 2008.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;dependencies&lt;/h3&gt; Dependencies are supposed to be the bane of installing Wine. I was unable to locate a dependency list at the &lt;a href="http://www.winehq.org/"&gt;WineHQ site&lt;/a&gt; to preempt vigilance with &lt;i&gt;configure&lt;/i&gt;. Nevertheless, it seemed it would be easy to watch &lt;i&gt;configure&lt;/i&gt;, note misses, download and install them, and then re-run &lt;i&gt;configure&lt;/i&gt;. It seemed that easy.&lt;br /&gt;&lt;br /&gt;I untarred the package and proceeded to the first run of &lt;i&gt;configure&lt;/i&gt;, Several apparent problems which didn't appear to be dependency problems displayed as &lt;i&gt;configure&lt;/i&gt; scrolled its checks. These scrolling messages seemed to indicate various audio features were unavailable. Here's a few of hundreds that appeared:&lt;blockquote&gt; checking machine/soundcard.h usability... no&lt;br /&gt;checking machine/soundcard.h presence... no&lt;br /&gt;checking for machine/soundcard.h... no&lt;/blockquote&gt; When configure finished its run, it also provided a message which may have been dependency related:&lt;blockquote&gt; configure: libcapi20 development files not found, ISDN will not be supported.&lt;/blockquote&gt; &lt;br /&gt;Additionally, I looked in &lt;i&gt;/include/config.h&lt;/i&gt; to check further for missing dependencies. All told, I didn't think I'd need the audio stuff that was scrolling or the ISDN support the message indicated, so I went to the remaining standard installation steps:&lt;blockquote&gt;$ ./configure&lt;br /&gt;            $ make depend&lt;br /&gt;            $ make&lt;br /&gt;            # make install &lt;/blockquote&gt; These steps seemed to go well, though in the back of my mind I was a feeling my dependency laziness might bite me later.&lt;br /&gt;&lt;h3&gt;configuration&lt;/h3&gt;&lt;br /&gt;After installation, I began with &lt;i&gt;$ winecfg&lt;/i&gt; and received another apparent error message:&lt;blockquote&gt;$ winecfg&lt;br /&gt;wine: created the configuration directory '/home/doofus/.wine'&lt;br /&gt;Could not load Mozilla. HTML rendering will be disabled.&lt;br /&gt;wine: configuration in '/home/doofus/.wine' has been updated.&lt;/blockquote&gt; Not sure what this meant either, but I kept going, unzipping and installing a Windows gradekeeper program. It started without any problems. So far, so good, though I may yet find that these HTML and audio messages provide some limitations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-3852230346946250602?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/3852230346946250602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=3852230346946250602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3852230346946250602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/3852230346946250602'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/09/slackware-120-wine-install.html' title='Slackware 12.0 - Wine Install'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4808927859741276585</id><published>2008-08-23T05:37:00.000-07:00</published><updated>2008-11-15T16:58:52.216-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='nas'/><category scheme='http://www.blogger.com/atom/ns#' term='rsync'/><category scheme='http://www.blogger.com/atom/ns#' term='nfs'/><title type='text'>Slackware 12.0 - NFS, NAS, rsync</title><content type='html'>I wanted to use an Ethernet connected LAN with a NAS running NFS to synch between a work laptop and a home desktop. That is, I wanted to come home from work and synch my laptop to the NAS, and then also, if I did work with the desktop, to then synch it to the NAS.  Since all are Linux systems, I hoped to use NFS and avoid the security problems and overhead of running anything Windows-related such as SMB or Samba. NFS is an older service which lies on top of Sun's RPC services. &lt;br&gt;&lt;br /&gt;&lt;h3&gt;Vantec LX NAS (NST-375LX-BK)&lt;/h3&gt;&lt;br /&gt;Before doing any research, I purchased a Vantec NAS enclosure and ran into problems. Installed a dormant 350GB PATA drive into this enclosure which has USB and Ethernet ports. Unfortunately, it appears that the Ethernet portion serves SMB protocol only.  This means it's not mountable in an NFS manner, because it requires SMB passwords and protocols. Effectively then, unless one wants to install Windows compatible Samba garbage, one is forced to use the USB connection. That means a person essentially has a bulky, expensive USB pendrive. What a load of crap, but  if you want to jeopardize your box w/Samba, &lt;a href="http://ubuntuforums.org/showthread.php?t=280473"&gt;here&lt;/a&gt; is a forum link with the info of what to do.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;politics&lt;/h3&gt;&lt;br /&gt;Once annoyed by Vantec, I dug deeper. An interesting point is it appears there are no average-user NAS enclosures running NFS in the US consumer marketplace.  In the US, to purchase a NAS that works with NFS one must spend about &lt;a href="http://www.netgear.com/Products/Storage/ReadyNASNVPlus/RND4250.aspx"&gt;$1000&lt;/a&gt;, but if one only needs Windows or Samba-friendly enclosures, the cost is perhaps $400.  Interesting. Additionally, there are many options for inexpensive NFS-serving NAS enclosures in foreign markets, such as the UK.  These enclosures don't require Windows or Samba, so why is NFS shut-out in the US? I couldn't find a reason. However, it's understood that Windows and Samba have security vulnerabilities,  Perhaps the easy security around NFS is considered undesirable by those who wish to peer into our systems, though I don't wish to be cynical. &lt;br /&gt;As for security/safety, we'll look later at an ssh implementation of NFS, but let's first examine a vanilla version.&lt;br /&gt;&lt;h3&gt;NFS, RPC, portmapper&lt;/h3&gt;&lt;br /&gt;As noted above, NFS lies on top of RPC services. RPC ports are not dedicated, they move around, so we need &lt;i&gt;portmapper&lt;/i&gt; as a connection tracker.  The portion of NFS which sends commands and acknowledgments between server and client is a normal dedicated port "file" (ports are files in UNIX), port 2049. But NFS uses undedicated RPC ports to move the data payloads, eg. the powerpoint files, the text files, whatever we are moving. &lt;i&gt;Portmapper&lt;/i&gt; is necessary for this portion of the transfer. If &lt;i&gt;portmapper&lt;/i&gt; crashes, data may be lost or unsaved.&lt;br /&gt;&lt;h3&gt;RPC functionality&lt;/h3&gt;&lt;br /&gt;This &lt;a href="http://www.faqs.org/docs/Linux-HOWTO/NFS-HOWTO.html"&gt;tutorial&lt;/a&gt; is a good start to setting up the RPC functionality necessary for NFS.&lt;br /&gt;1. The presence of &lt;i&gt; /etc/hosts.allow &lt;/i&gt; and &lt;i&gt; /etc/hosts.deny&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;portmapper functionality&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;NFS functionality&lt;/h3&gt;&lt;br /&gt;1. I've heard domains have to be the same across the machines. For example, let's say one machine's /etc/HOSTNAME indicates "green.example.net", and the other machine has "blue.example.net".&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;NFS from command line&lt;/h3&gt;&lt;br /&gt;NFS is essentially a mount, but remote - we mount a drive, or folders from a drive, from another system on the LAN, and it appears as a drive on our current system, though labeled so we know it's an NFS share.  We can mount temporarily from command line or make it permanent as part of the boot process.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;NFS as an fstab line&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;NFS directory mounting&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;security&lt;br /&gt;&lt;br /&gt;We will need various ports, and the system should be operating before attempting to add firewall functionality which may affect ports.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4808927859741276585?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4808927859741276585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4808927859741276585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4808927859741276585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4808927859741276585'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/08/slackware-120-nfs-mounting_23.html' title='Slackware 12.0 - NFS, NAS, rsync'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-2900802125975740140</id><published>2008-08-21T00:50:00.000-07:00</published><updated>2008-08-24T02:08:24.229-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><title type='text'>Slackware 12.0 - Dual Homed</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5jQYc4kk6YI/SLEDfEt8HgI/AAAAAAAAADU/liKDClcVZqA/s1600-h/multihome.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_5jQYc4kk6YI/SLEDfEt8HgI/AAAAAAAAADU/liKDClcVZqA/s320/multihome.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5237971673985850882" /&gt;&lt;/a&gt;&lt;br /&gt;Challenges can arise when a wifi NIC is handling wifi internet access and, in the same computer or "host", an  ethernet NIC is operating in a wired LAN (eg, with a printer and backup storage). Since the host exists in two different LANs simultaneously, it is "dual homed".  Obviously, two LANS means two routers. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt; gateway vs. dhcpcd&lt;/h3&gt;&lt;br /&gt;Check email at Yahoo. The host PC makes this request to Yahoo and Yahoo is outside the host's network, so it needs to use the gateway and the name servers outside the gateway. But when interfaces are being initialized at boot, the dhcp application, dhcpcd, overwrites the &lt;i&gt;/etc/resolve.conf&lt;/i&gt; file that shows the IP addresses of these nameservers. So, if we bring the eth0 connection up after the wlan0 connection, our nameservers will be overwritten. To avoid this we do all these things: &lt;blockquote&gt;&lt;b&gt;/etc/rc.d/rc.local&lt;/b&gt;&lt;br /&gt;ifconfig eth0 down&lt;br /&gt;ifconfig wlan0 up&lt;br /&gt;dhcpcd wlan0&lt;br /&gt;sleep 3&lt;br /&gt;route&lt;br /&gt;sleep 5&lt;br /&gt;route del -net 169.254.0.0 netmask 255.255.0.0 dev wlan0&lt;br /&gt;ifconfig eth0 up&lt;br /&gt;sleep 3&lt;br /&gt;dhcpcd -R eth0  #-R prevents resolv.conf overwrite&lt;br /&gt;sleep 3 &lt;/blockquote&gt;&lt;br /&gt;Sometimes,(rare) I have a "UG" default gateway for both wlan0 and eth0 even after these steps. I then remove the extra gateway at the command line: &lt;blockquote&gt;route del default eth0&lt;/blockquote&gt;  A quick verification with "route" shows me the second gateway is gone.&lt;br /&gt;Also there are these files...&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;loading order&lt;/h3&gt;&lt;br /&gt;&lt;i&gt;rc.inet1&lt;/i&gt; reads &lt;i&gt;rc.inet1.conf&lt;/i&gt; and loads &lt;i&gt;rc.wireless&lt;/i&gt; which reads &lt;i&gt;rc.wireless.conf&lt;/i&gt; when loading. I don't worry about the rc.wireless.conf, but, in &lt;i&gt;rc.inet1.conf&lt;/i&gt; I look for the default gateway line and I change it from "" to the IP of the gateway router.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt; security &lt;/h3&gt;&lt;br /&gt;The final step. We want to be sure everything is running before we lock down ports.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-2900802125975740140?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/2900802125975740140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=2900802125975740140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2900802125975740140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/2900802125975740140'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/08/slackware-120-nfs-mounting.html' title='Slackware 12.0 - Dual Homed'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5jQYc4kk6YI/SLEDfEt8HgI/AAAAAAAAADU/liKDClcVZqA/s72-c/multihome.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4036512462956683642</id><published>2008-08-20T12:39:00.000-07:00</published><updated>2008-08-21T09:40:58.207-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='network'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><title type='text'>Slackware 12.0 - SiS190 eth0 module</title><content type='html'>&lt;h3&gt;symptoms&lt;/h3&gt;&lt;br /&gt;You would like to connect your box to a network printer, and  you plug a Cat5 cable into your box's integrated SiS190 ethernet controller port and another into a known-good router port. Soon, dhcpcd times- out. You kill the dhcpcd and restart it, but it times-out again and assigns a default IPV4LL address, eg 169.254.126.11. The network is unreachable, isn't that nice?&lt;br /&gt;&lt;br /&gt;Unfortunately for your weekend, this is likely a kernel module problem if you're lucky, and the kernel itself if you're not. You will not be able to connect via ethernet until &lt;i&gt;successfully&lt;/i&gt; (aye, there's the rub) compiling a new driver module for this and &lt;i&gt;successfully&lt;/i&gt; inserting it into the kernel, or you may have to entirely recompile the kernel. Apparently, the manufacturer's linux driver for SiS is from 5/2007 and does nothing. Isn't that nice? The process is explained relatively well &lt;a href=http://www.howtoforge.com/creating-the-sis191-gigabit-ethernet-driver-on-linux-2.6&gt;here&lt;/a&gt;, and I added epilogue notes below. Good luck.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;notes&lt;/h3&gt;&lt;br /&gt;Four hours. After downloading the kernel on another box, burning it to CD, unzipping into the current box, and compiling according to all the notes at the link above, the integrated eth0 worked. However, it did not work until I rebooted. That is, after installing the new kernel, I was unable to achieve desired results by bringing eth0 up or down, but after rebooting - success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-4036512462956683642?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/4036512462956683642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=4036512462956683642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4036512462956683642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/4036512462956683642'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/08/slackware-120-sis-191-lan.html' title='Slackware 12.0 - SiS190 eth0 module'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-359780321243250277</id><published>2008-08-19T09:28:00.000-07:00</published><updated>2008-09-18T21:42:50.599-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reliability'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='safety'/><title type='text'>Slackware 12.0 - Safety Part 1: expectations</title><content type='html'>&lt;h3&gt;high expectations, low knowledge, under-equipped&lt;/h3&gt;&lt;br /&gt;Seen in security terms, our home computer systems are an "opportunity". In large organizations, well-paid IT professionals design layers of dedicated security systems to protect workstation computer networks and data is backed up and retained elsewhere. The typical home user combines their computer security system, their end-user applications, and their critical data in a single box. Further, they design their arrangement without IT or programming experience, in most cases. Users nevertheless expect their security to perfectly protect the system, its critical data, and to provide full workstation functionality, all while cruising a virus infected Web. How effective do you believe such a security arrangement is likely to be?  &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;situational awareness - threats&lt;/h3&gt;&lt;br /&gt;Given that our home systems present opportunities, are there threats which seek to take advantage of them? First, it appears one may assume governments, US or otherwise, can easily penetrate our leaky home systems, and perhaps they do so regularly.  It's also likely a large number of civilian entities penetrate our home computer systems. Given the opportunity and the threat, but with our typical lack of resources to build a $3-5K layered and ported system, about all we can do is make ourselves a less inviting target than other home machines out there. Let's suppose here we're going to make the effort, where do we begin?&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;step one - no security &lt;/h3&gt;&lt;br /&gt;Linux security features sometimes function like shells around processes, sometimes around files, sometimes around ports, sometimes around data streams, sometimes around other things. The security system is complex. The dedicated security servers of the corporate world do this more easily since they operate with firmware or static-linked libraries and have no other applications or data to interfere.  But we want applications and data on our home systems. This means we're bound to have permission or authentication problems when we configure complex security functions around desktop applications and web interfaces. Accordingly, I have one rule for a home system prior to activating iptables.chains,tripwire,ssh, really any security function - the system has to work exactly the way it's supposed to work before the security is implemented, and hopefully before it's connected to any network.  If we don't have desktop functionality first, is the permission problem we see when activating security related to the security configuration or is it due to the user configuration? We have no way to cut the problem in half. Alternatively, we could bring up our security half before the desktop operations half, but this means we would have to estimate user applications in advance. So the first step of (home) security is to configure the desktop system to run reliably, including all it's peripherals of printers, scanners, cameras, audio inputs, and so on. Subsequently, we will activate our security and the net packages together, and adjust the mix when a desktop application ceases to work due to security layers. Ideally, we should test system applications after adding each security layer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-359780321243250277?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/359780321243250277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=359780321243250277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/359780321243250277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/359780321243250277'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/08/slackware-120-security-expections.html' title='Slackware 12.0 - Safety Part 1: expectations'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-66251243023919279</id><published>2008-08-18T19:36:00.000-07:00</published><updated>2011-04-28T00:53:43.982-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUPS'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><category scheme='http://www.blogger.com/atom/ns#' term='printing'/><title type='text'>Slackware 12.0 - CUPS network printer</title><content type='html'>Here's how CUPS worked-out on a couple different systems connected to a wired ethernet LAN, with a printer attached to the same LAN, and wifi access to the Web on each box (dual-homed boxes).&lt;br /&gt;&lt;br /&gt;slackware 12.0 - huge.s kernel patched for non-smp&lt;br /&gt;500 MHz PIII&lt;br /&gt;500 MB Ram&lt;br /&gt;--printer--&lt;br /&gt;HP1100 LaserJet&lt;br /&gt;Netgear PS 101 MiniServer&lt;br /&gt;Linksys BEFSR41 10/100 router&lt;br /&gt;RTL8139 type card&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What works: install &lt;/h3&gt;&lt;br /&gt;For most of us, the CUPS webtool at &amp;nbsp;&lt;a href="http://localhost:631"&gt;http://localhost:631&lt;/a&gt;&lt;br /&gt;simply never works. Not only this, but it waits until the &lt;b&gt;final step&lt;/b&gt; in a timely 6-part process to note the failure. For me, it feels more efficient to add printers manually. Perhaps some day all the permissions will align with the stars and CUPS will work. At any rate, there is no limit to the number of printers we can manually add to our workstation.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Lpadmin&lt;/i&gt; is the command, but first prepare the printspace:&lt;ul&gt;&lt;li&gt;add print group ("lp", in many cases) to the groups for users I want to have print access. Users who are not in &lt;i&gt;lp&lt;/i&gt; or whatever, can notprint or cancel print jobs without rooting-up.&lt;/li&gt;&lt;li&gt; decide which &lt;i&gt;ppd&lt;/i&gt; to use with the printer.&lt;/li&gt;&lt;/ul&gt; With these two accomplished, try to add the printer: &lt;blockquote&gt;# lpadmin -p HP1100 -E -v socket://192.168.1.101/printer -m hpijs.ppd &lt;/blockquote&gt;This may return the error that the hpijs &lt;i&gt;ppd&lt;/i&gt; file, in this case &lt;i&gt;hpijs.ppd&lt;/i&gt;, cannot be copied. &lt;i&gt;Ppd&lt;/i&gt;'s need to be in the correct format (uncompressed ppd) and directory (&lt;i&gt;/usr/share/cups/model&lt;/i&gt;) if &lt;i&gt;lpadmin&lt;/i&gt; is to find them and add them.&lt;br /&gt;&lt;br /&gt;Foomatic hides and zips their ppds. I finally located them in &lt;b&gt;/usr/share/cups/model/foomatic-ppds/HP&lt;/b&gt;.  The one I needed was &lt;i&gt;HP-LaserJet1100.ppd.gz&lt;/i&gt;. I copied this file into&lt;b&gt; /usr/share/cups/model &lt;/b&gt; , unzipped it: &lt;b&gt;"gzip -d HP*"&lt;/b&gt;, and renamed it &lt;i&gt;hp1100.ppd &lt;/i&gt; for ease of loading. Then I ran: &lt;blockquote&gt;# lpadmin -p HP1100 -E -v socket://192.168.1.101/printer -m hp1100.ppd &lt;/blockquote&gt; The printer was successfully added to the system at this point, but suppose I had wanted to try a few different &lt;i&gt;ppd&lt;/i&gt; files to  determine by playing with each, which one had the clearest print and functionality with a printer? A &lt;i&gt;ppd&lt;/i&gt; file can be substituted any time with another. Put the new &lt;i&gt;ppd&lt;/i&gt; file in &lt;i&gt;/usr/share/cups/model/&lt;/i&gt; and run: &lt;blockquote&gt;# lpadmin -p HP1100 -P another.ppd&lt;/blockquote&gt; &lt;br /&gt;&lt;br /&gt;&lt;h3&gt; What works: configuration&lt;/h3&gt;&lt;br /&gt;Ideally again, one should be able to use the CUPS webtool at &amp;nbsp;&lt;a href="http://localhost:631"&gt;http://localhost:631&lt;/a&gt; for configuration, just as we were supposed to be able to add printers with it. If the web interface is working, use it. If not part two of our work will be to modify the file &lt;b&gt; /etc/cups/printers.conf &lt;/b&gt; with the right settings and restart the CUPS server so it reads the file. In &lt;i&gt;/etc/cups/printers.conf&lt;/i&gt; one line has different possible structures depending on how the printer is attached. Let's say we've named our device "printername", some possibilities are: &lt;blockquote&gt;DeviceURI socket://ip.address/printername #LAN&lt;br /&gt; DeviceURI socket://ip.address:ps101name #LAN version2&lt;br /&gt; DeviceURI parallel:/dev/lp0 #parallel port&lt;br /&gt; DeviceURI usb:/dev/usb/lp0 #usb port&lt;/blockquote&gt; &lt;br /&gt; I experimented until I determined the correct one for the physical connection which, in my case, was on a LAN. I looked in my router and found my printserver received DHCP at &lt;i&gt;192.168.1.101&lt;/i&gt;.&lt;br /&gt; I navigated there (http://192.168.1.101) in Firefox, and found a GUI interface which allowed me to rename the printserver to any name I desired, but decided to leave it &lt;i&gt;PS101&lt;/i&gt;. Accordingly, the successful syntax for my DeviceURI was this one: &lt;blockquote&gt;DeviceURI socket://192.168.1.101/PS101&lt;/blockquote&gt; and my final working configuration file went like this:&lt;br /&gt;&lt;blockquote&gt;&lt;b&gt;/etc/cups/printers.conf&lt;/b&gt;&lt;br /&gt;# Printer configuration file for CUPS v1.3.7&lt;br /&gt;# Written by cupsd on 2008-12-01 04:19&lt;br /&gt;&amp;lt;DefaultPrinter HP1100&gt;&lt;br /&gt;Info HP1100&lt;br /&gt;DeviceURI socket://192.168.1.101/PS101&lt;br /&gt;State Idle&lt;br /&gt;StateTime 1228132708&lt;br /&gt;Accepting Yes&lt;br /&gt;Shared Yes&lt;br /&gt;JobSheets none none&lt;br /&gt;QuotaPeriod 0&lt;br /&gt;PageLimit 0&lt;br /&gt;KLimit 0&lt;br /&gt;OpPolicy default&lt;br /&gt;ErrorPolicy stop-printer&lt;br /&gt;&amp;lt;/Printer&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;After all this, I ran &lt;blockquote&gt;# service restart cups&lt;/blockquote&gt; in order for CUPS to re-read the &lt;i&gt;/etc/cups/printers.conf&lt;/i&gt; file with the new information. I was able to print from all programs. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt; test prints&lt;/h3&gt;&lt;br /&gt;While testing printer ppd's, I ran a lot of test prints. Some worked, but the ones that didn't print piled-up in the queue, and the CUPS interface at &lt;a href="http://localhost:631"&gt;http://localhost:631&lt;/a&gt; would never allow me to delete jobs. CLI solution to delete print jobs:&lt;br /&gt;&lt;blockquote&gt;# lpstat -o&lt;/blockquote&gt; provides pending print jobs and the job number eg, "HP1100-1". Then &lt;blockquote&gt;# cancel HP1100-1&lt;/blockquote&gt; will get rid of the job. Run "lpstat -o" again to verify, if you like.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt; xfce4 note&lt;/h3&gt;&lt;br /&gt;To print from Mousepad and others that use X-settings, xfce printing needs to recognize the CUPS printer. Try printing in Mousepad and see if the CUPS printer is available. If not, configuring xfce4 to CUPS will be necessary. This was simple for me. I simply went to the XFCE menu, then access &lt;i&gt;Settings -&gt;Settings Manager -&gt; Printing System&lt;/i&gt;. Once in &lt;i&gt;Printing System&lt;/i&gt;, I selected the CUPS network printer and closed the menu. I then opened a Mouspad file to print; sure enough, the CUPS printer appeared in my options. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;What is supposed to work (as opposed to all of the above)&lt;/h3&gt;&lt;br /&gt;First, good CUPS documentation &lt;a href="http://www.cups.org/documentation.php"&gt;here&lt;/a&gt;.&lt;br /&gt;Essentially, one should be able to navigate to CUPS at &amp;nbsp;&lt;a href="http://localhost:631"&gt;http://localhost:631&lt;/a&gt; with Firefox and add printers, manage the print queue, or do other config changes. I never could get the parts to sync enough to add a printer, let alone administer them. Some considerations:&lt;ul&gt;&lt;li&gt; GUI authentication: CUPS apparently relies on PAM, Slackware does not provide PAM? &lt;/li&gt;&lt;li&gt; parallel: HPLIP is supposedly needed for support if using a parallel port, but not for network printer. I could not get HPLIP to see the parallel port on the legacy system&lt;/li&gt;&lt;li&gt; parallel: snmp might be a factor&lt;/li&gt;&lt;/ul&gt; In the name of gleaning understanding and advancing progress from previously attempted approaches or, at least, of not duplicating effort,here were some initial directions:&lt;br /&gt;1. configure network and verify dhcp assigned print server and slackbox IP's. Let's call these IP's as follows: &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;b&gt;192.168.1.101 - Print Server &lt;/b&gt;&lt;br /&gt;&lt;b&gt;192.168.1.102 - Slackbox &lt;/b&gt;&lt;/ul&gt;&lt;br /&gt;2. check /etc/rc.d/  - verify rc.cups (and rc.hplip, if it were needed) are 755.&lt;br /&gt;3. is printer plugged in? PS101 plugged in?&lt;br /&gt;4. Firefox to &lt;b&gt; http://912.168.1.101&lt;/b&gt;. Blue admin page. Change or leave the name of the PS101, but be sure to write it down - you will need it later in your /etc/cups/printers.conf file. Print a test page to see that the server is talking to the printer properly. &lt;br /&gt;5. Firefox to &lt;b&gt; http://localhost:631&lt;/b&gt; CUPS admin interface. Make sure it comes up.&lt;br /&gt;6. Check that tcp and udp ports 161,162, and 9100 are not locked-down.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt; CUPS Webtool notes &lt;a href="http://localhost:631"&gt;http://localhost:631&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;1. Try adding the printer with the CUPS webtool. It likely will wait until the (frustratingly) last step in the process and reject your password. Since CUPS  uses PAM for password authentication and Slackware doesn't use PAM, I made many many many attempts at editing the &lt;b&gt;/etc/cups/cupsd.conf&lt;/b&gt; file to eliminate the password requirement, but it always prompted me for a password in the CUPS webtool. According to the information at  &lt;a href=http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:cups&gt; this slack site&lt;/a&gt; here is how one should proceed:&lt;br /&gt;A. Lets say your name is "doofus" and you declared your SystemGroup in cupsd.conf as "wheel": &lt;blockquote&gt;lppasswd -g wheel -a doofus&lt;/blockquote&gt;B. Check to be certain: &lt;blockquote&gt;# cat /etc/cups/passwd.md5  doofus:wheel:01234567890abcde1234567890abcde12 &lt;/blockquote&gt; C. Now restart CUPS and go back to the webtool in Firefox and add the printer:&lt;br /&gt; &lt;blockquote&gt;#/etc/rc.d/rc.cups restart&lt;/blockquote&gt; I never got it to work; the password was always rejected and I could never add a printer.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt; SNMP HPLIP&lt;/h3&gt;&lt;br /&gt;SNMP (Simple Network Management Protocol) is a powerful process originally designed to simplify web management. Many processes take advantage of SNMP functionality and one of them is HPLIP&lt;br /&gt;&lt;br /&gt;If hp-setup doesn't work, then the road may be long. Try using SNMP to determine if the kernel can see the printer at the nework address: &lt;blockquote&gt;snmpwalk -Os -c public -v 1 ip.address.of.printer 1.3.6.1.4.1.11.2.3.9.1.1.7.0 &lt;/blockquote&gt; Per this site &lt;a href="http://fw.wtp3.org/docs/hplip-2.8.2/troubleshooting/network.html"&gt;HP tshoot&lt;/a&gt;, the response should be something which shows the manufacturer,or SNMP may not be installed correctly. This means working with the /etc/snmp/snmpd.conf file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-66251243023919279?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/66251243023919279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=66251243023919279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/66251243023919279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/66251243023919279'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/08/slackware-120-network-printer.html' title='Slackware 12.0 - CUPS network printer'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-1536839164648203658</id><published>2008-08-18T19:09:00.000-07:00</published><updated>2008-09-26T20:37:38.926-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='slackware'/><title type='text'>Slackware 12.0 -  install 1</title><content type='html'>&lt;h3&gt; Intro &lt;/h3&gt;&lt;br /&gt;Slackware and Slackware-based hybrids, such as Zenwalk, appear to have a learning curve after moving from Debian and Debian-based hybrids, eg. Ubuntu. But the /etc/rc.d layout in Slack is clean and nearly intuitive. Lets look at Slack 12.0. One of the great things about Slackware is it doesn't use PAM.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Older Machines&lt;/h3&gt;&lt;br /&gt;1. boot with non-smp kernel big.s&lt;br /&gt;2. &lt;b&gt;cfdisk&lt;/b&gt; and &lt;b&gt;mke2fs&lt;/b&gt; per taste.&lt;br /&gt;3."setup"&lt;br /&gt;4. activate disks, skip formatting them.&lt;br /&gt;5. install from CD's or DVD but don't configure the network&lt;br /&gt;6. reboot, run the patch for non-smp&lt;br /&gt;7. build nvidia drivers if necessary&lt;br /&gt;8. build wifi drivers if necessary (madwifi, ndiswrapper, other)&lt;br /&gt;9. add any modules to /etc/rc.d/rc.modules and any associated command to /etc/rc.d/rc.local&lt;br /&gt;10. reboot, check wifi or eth0 with "route" &lt;br /&gt;11. to make permanent see &lt;a href="http://xinabox.blogspot.com/2008/08/slackware-120-nfs-mounting.html"&gt;here&lt;/a&gt;. Essentially, there are a few files to alter if it's dual-homed.&lt;br /&gt;12. configure xorg.conf or copy premade to /etc/X11/&lt;br /&gt;13. set /etc/X11/xinit/xinitrc softlink (ln -s) to desired WM - twm, fluxbox, xfce, etc.&lt;br /&gt;14. reboot and tune.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Wireless&lt;/h3&gt;&lt;br /&gt;No need to download and compile a driver module if one came with distro: Check here:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt; ls /lib/modules/2.6.23.12/kernel/drivers/net/wireless/ &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt; Atheros AR242x 64 (5007 chipset)&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Memory location on my card for this is 53100000. The &lt;a href="http://madwifi.org/ticket/1192"&gt;instructions here&lt;/a&gt; were crucial. The ath5k doesn't work well in a Satellite, but they describe the ath5k &lt;a href="http://madwifi.org/wiki/About/ath5k"&gt;here&lt;/a&gt;, and it appears the ath5k will eventually be the way to go. Currently however, steps appear to be&lt;blockquote&gt;&lt;br /&gt;1. in /etc/modprobe.d/blacklist  blacklist the "ath5k" module&lt;br /&gt;2. reboot and lsmod - make sure the ath5k is gone&lt;br /&gt;3. download &lt;a href="http://snapshots.madwifi.org/madwifi-hal-0.10.5.6/"&gt;madwifi-hal-0.10.5.6-r3861-20080903.tar.gz&lt;/a&gt; , or the newest one there, make, and install.&lt;br /&gt;4. reboot again and lsmod&lt;br /&gt;5. iwconfig ath0&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Atheros AR5005G&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;download latest madwifi, eg madwifi-0.9.9.3, then the usual &lt;blockquote&gt;$tar -xzvf madwifi*&lt;br /&gt;$cd madwifi*&lt;br /&gt;$make&lt;br /&gt;#make install&lt;br /&gt;#modprobe ath-pci&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;i&gt;RaLink RT2600 802.11 MIMO&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;1. download latest ralink rt61 driver from &lt;a href=http://www.ralinktech.com/ralink/Home/Support/Linux.html&gt; ralink support&lt;/a&gt;.&lt;br /&gt;2. &lt;span style="font-weight:bold;"&gt; $tar -xzvf 2008*&lt;/span&gt;&lt;br /&gt;3. &lt;span style="font-weight:bold;"&gt; $cd RT61_Linux* &lt;/span&gt;&lt;br /&gt;4. &lt;span style="font-weight:bold;"&gt; $cp Makefile.6  Makefile       [kernel 2.6.x]&lt;/span&gt;&lt;br /&gt;5. Alter module &lt;b&gt;rtmp_main.c &lt;/b&gt;, by commenting out (around the bottom, line ~900):&lt;br /&gt; &lt;b&gt;return pci_module_init(&amp;rt61_driver);&lt;/b&gt;&lt;br /&gt;               and replace it with:&lt;br /&gt; &lt;b&gt;return pci_register_driver(&amp;rt61_driver)&lt;/b&gt;&lt;br /&gt;6.  Their "configure" file is not executable, so change it, then configure and make the module.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;$chmod 755 Configure&lt;br /&gt;    $./Configure&lt;br /&gt;    $make &lt;/span&gt;&lt;br /&gt;7.  Make a directory where the module will locate configuration info and put these info files in it.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;#mkdir /etc/Wireless/RT61STA&lt;br /&gt;#cp rt2561.bin /etc/Wireless/RT61STA/&lt;br /&gt;#cp rt2561s.bin /etc/Wireless/RT61STA/&lt;br /&gt;#cp rt2661.bin /etc/Wireless/RT61STA/&lt;/span&gt;&lt;br /&gt;8. The last file to go into that config directory may have CTRL+L line ends and we have to be sure these are eliminated:  Use &lt;b&gt;$dos2unix rt61sta.dat &lt;/b&gt;(or use sed). This file has the particulars for our LAN and WEP.&lt;br /&gt;9. Copy that file to where the others are at:&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;#cp rt61sta.dat  /etc/Wireless/RT61STA/ &lt;/span&gt;&lt;br /&gt;10. Send the module to the kernel's module folder:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;#cp rt61.ko /lib/modules/&lt;kernel&gt;/misc/&lt;/span&gt;&lt;br /&gt;11. Tell the kernel where to find the module by adding a line in &lt;b&gt;/lib/modules/&lt;kernel&gt;/modprobe.dep&lt;br /&gt;&lt;/b&gt;:  "/lib/modules/&lt;kernel&gt;/misc/rt61.ko:"&lt;br /&gt;12. Load the kernel:&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;#modprobe rt61&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;AFTER INSTALLING WIRELESS&lt;/span&gt;&lt;br /&gt;1. provide permanence via &lt;span style="font-weight:bold;"&gt;/sbin/modprobe ath-pci&lt;/span&gt; to /etc/rc.d/rc.modules and any configuration for it (eg. iwconfig ath0 essid "loser") to /etc/rc.d/rc.local. &lt;br /&gt;1b: in the case of Ralink &lt;span style="font-weight:bold;"&gt;/sbin/modprobe rt61&lt;/span&gt; to /etc/rc.d/rc.modules.&lt;br /&gt;2. further modify /etc/rc.d/rc.local to be sure card comes up. Last line for the card: &lt;span style="font-weight:bold;"&gt;iwconfig ra0 up&lt;/span&gt; or &lt;span style="font-weight:bold;"&gt;iwconfig ath0 up&lt;/span&gt;&lt;br /&gt;3. reboot and "dhcpcd ra0" or ath0, check with "route" and a ping.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7528908249044542022-1536839164648203658?l=xinabox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xinabox.blogspot.com/feeds/1536839164648203658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7528908249044542022&amp;postID=1536839164648203658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1536839164648203658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default/1536839164648203658'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/2008/08/slackware-120-install-1.html' title='Slackware 12.0 -  install 1'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
