<?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'><id>tag:blogger.com,1999:blog-7528908249044542022</id><updated>2009-11-04T19:38:25.545-08:00</updated><title type='text'>xinabox</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'/><link rel='alternate' type='text/html' href='http://xinabox.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7528908249044542022/posts/default?start-index=26&amp;max-results=25'/><author><name>xbasket</name><uri>http://www.blogger.com/profile/15624745058983288500</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7528908249044542022.post-4838940482087825815</id><published>2009-11-02T13:58:00.000-08:00</published><updated>2009-11-04T19:38:25.570-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; &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; grabs this when it boots. But many people want more accuracy and also run the &lt;b class="mono"&gt;ntpd&lt;/b&gt; daemon. After booting, NTPD periodically checks calibrated servers via the Web and makes corrections to the system clock. At shutdown, the system time is written to the hardware clock to keep it reasonably accurate as well. So, the chain of timekeeping goes something like this:&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;Singular to Zenwalk, I believe, is the file &lt;b class="mono"&gt;/etc/hardwareclock&lt;/b&gt;. An editable text file with one entry of either "localtime" or "UTC" (minus the quotes). I use 'UTC' (also known as GST or GMT): 1) UTC is the time served from the Web's &lt;i&gt;ntp&lt;/i&gt; network time servers which means the system clock uses UTC, and 2) people traditionally know their timezone offsets against UTC, eg "My timezone is GMT -5", etc. Edit and save this file as administrator with any text editor such as &lt;i&gt;geany&lt;/i&gt; or &lt;i&gt;mousepad&lt;/i&gt;: &lt;b class="mono"&gt;# geany /etc/hardwareclock&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Hardware clock (RTC)&lt;/b&gt;&lt;br /&gt;In any linux distribution, the command to view the hardware clock's time:&lt;br /&gt;&lt;b class="mono"&gt;# hwclock&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;While I'm fussing around with time, the command for synchronizing the hardware clock with the NTP corrected system clock:&lt;br /&gt;&lt;b class="mono"&gt;# hwclock --systohc&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If for some reason one wanted to set the system time to the hardware clock (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;Back to the story. 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 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. Then, pick a time server, say one at ldsbc.edu, and :&lt;br /&gt;&lt;b class="mono"&gt;#  ntpdate ntp-nist.ldsbc.edu&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;With a proper system time, one then wants the correct timezone offset in one's desktop/laptop time display. I currently have mine set to EST, but suppose I were to fly to Chicago, how do I set the timezone? 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 Chicago is CST, this would be the process when flying to Chicago:&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/Central /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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2009-09-21T23:58:21.024-07:00</updated><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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2009-10-26T10:29:42.116-07: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='safety'/><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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2009-09-16T06:39:20.133-07: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='lapp'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2009-03-31T02:10:18.250-07: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'>Never done this before, but the problem is my 1024MB of memory is like 770MB. Googling around shows this is due to a kernel limitation which requires recompiling. I think it will be straightforward *except* making sure I put everything in the right place and update lilo properly when done. That's what scares me.&lt;br /&gt;&lt;br /&gt;* Anyway, most instructions below are coming from &lt;a href="http://www.linuxquestions.org/questions/slackware-14/full-ram-memory-slackware-12.1.-647970/"&gt;this forum&lt;/a&gt;.&lt;br /&gt;* This one ain't bad either: &lt;a href="http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1238469689854+28353475&amp;threadId=247295"&gt;hp support forum&lt;/a&gt;&lt;br /&gt;* And here's a full-blown description &lt;a href="http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html"&gt;http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&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;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Once into &lt;i&gt;make menuconfig&lt;/i&gt;, the options which are already selected will be starred. It's here that I have the chance to make any changes I want to. For this first run, I will just be looking to enable the high memory support. The option is apparently:&lt;br /&gt;&lt;b&gt;CONFIG_HIGHMEM64G&lt;/b&gt;&lt;br /&gt;But where do I find this, for it doesn't show up anywhere in the &lt;br /&gt;config file? For example nothing shows in:&lt;blockquote&gt;# cat .config |grep HIGHMEM&lt;/blockquote&gt;&lt;br /&gt;Well maybe it's under Physical Address Extension (PAE) [ Processor type and features ---&gt; High Memory Support (64GB) ], as noted on one site. Ah, but I can't find it. Still, I'm going to recompile this kernel just to have done it once....&lt;br /&gt;&lt;blockquote&gt;# make clean; make bzImage (or make vmlinuz); make modules; make modules_install&lt;/blockquote&gt;&lt;br /&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. Not sure where all these modules came from, I don't need 1/10 of them and it wasn't clear from the interface that I was selecting them to be built. Something to look into further next time. &lt;h3&gt;copy the results&lt;/h3&gt;Once all is done, backup the config file to the boot directory in case I want to use it some other time.&lt;blockquote&gt;# cp .config /boot/config-kern01&lt;/blockquote&gt;&lt;br&gt; and then also transfer the files needed for booting into "/boot" &lt;blockquote&gt; # cp /usr/src/kern01/arch/x86/boot/bzImage /boot/bzImage-test1&lt;br /&gt;# cp System.map /boot/System.map-test1&lt;br /&gt;# mv /boot/System.map /boot/System.old&lt;br /&gt;# ln -s /boot/System.map-test1 /boot/System.map&lt;/blockquote&gt;&lt;br /&gt;&lt;b&gt;lilo&lt;/b&gt; One option, instead of adding to lilo, is apparently to run. &lt;blockquote&gt;make install&lt;/blockquote&gt; However, this apparently replaces the default kernel instead of adding another kernel option.  Since I transfered the new kernel to "/boot", I just put it in LILO &lt;blockquote&gt;&lt;b&gt;/etc/lilo.conf&lt;/b&gt;&lt;br /&gt;image=/boot/bzImage-test1&lt;br /&gt;       &amp;nbsp; label= LinuxTest1&lt;br /&gt;       &amp;nbsp; root= /dev/sda1&lt;br /&gt;       &amp;nbsp; read only&lt;/blockquote&gt;&lt;br /&gt;Then to update LILO: &lt;blockquote&gt;# lilo -v &lt;/blockquote&gt;Everything works for a while, the file unzips, but then it apparentlywants NFS information and dies&lt;blockquote&gt;No filesystem could mount root, tried: ext2 9660. Kernel Panic - not syncing: VFS: ...&lt;/blockquote&gt; Failed right where I thought it would fail.&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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2008-12-30T18:02:55.334-08:00</updated><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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2008-12-27T23:01:36.611-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;&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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2008-11-23T23:11:32.271-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>postgresql - initialize</title><content type='html'>I was interested in setting up &lt;i&gt;postgreql&lt;/i&gt; as the Amarok backend, since reading that the default &lt;i&gt;sqllite&lt;/i&gt; and &lt;i&gt;mysql&lt;/i&gt; databases were much slower than postgresql 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.&lt;br /&gt;&lt;br /&gt;The situation seemed worthy of a research effort; &lt;i&gt;postgresql&lt;/i&gt; obviously has a myriad of uses beyond Amarok, and the Amarok example was apparently not the basic "single user" implementation.&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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2008-11-24T18:09:53.765-08:00</updated><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'>Lee Lefever videos, even though not screencasts, show a simple idea's value. His guiding philosophical consideration seems to be described well &lt;a href="http://www.commoncraft.com/discovering-rss-explanation-problem"&gt;here&lt;/a&gt; in his blog.  Screencasting is important for educational videos and works toward similar ends. For example, screencasts from &lt;a href="http://www.youtube.com/watch?v=-zT3WqXiGQU"&gt;Joe Wood&lt;/a&gt;, a fellow teacher, have a similar flavor to Lee Lefever's videos, and Wood does well with clarification. &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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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>2009-11-02T05:20:44.072-08: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;Since last year's debut of the iPhone, the first interesting third generation (3G) device, I've been watching the confusing development of 3G data/voice with interest. I made a chart (click to enlarge), not necessarily complete or accurate, to understand these changes more comprehensively: &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;Like many people, the reason I'm migrating to 3G is web and phone access in a single device, but without lugging a laptop or a crackberry. However, the iPhone appeared outrageously priced for what one received. At the time the iPhone came out, I looked around and thought I could do better if I were willing to wait a year; Sprint Wi-Max (CDMA-2000), which was supposed to roll-out in August of 2008 on Nokia phones, caught my initial interest, but I subsequently moved-on to watching WCDMA. WCDMA appears to be the natural successor to GSM. My thought is the 3G device which succeeds GSM might be backwards compatible with 2G GSM networks when traveling in Europe.  &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, G1 software is 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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15692136077468087546'/></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 xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>