Monday, December 10, 2012

Diggin' Salix 14.0 Xfce



One of my G+ buddies recently mentioned Salix OS, a Slackware Based Distro the other day, as he was putting it on some old hardware.  This was just about a week before a hard drive died on an old 256 MB P4 Laptop, that serves as a digital picture frame, and sometimes doubles as a remote "stereo" unit in our living room.

This laptop had been running Xubuntu on it, as I had wanted a light distro for this older hardware, but even that seemed a little heavy.  Another one of the challenges this machine poses, is that it doesn't have DVD drive, just CD-ROM, nor does it support booting off of a USB. It has only one 1.0 USB port on it.  So after searching Distrowatch for another distro, I decided on Salix. After all, someone else I knew spoke well of it.  I knew that I was going to get outside of my "comfort zone" with something that wasn't  Ubuntu / Debian based.  I figured I was up for the challenge. As it turned out, it wasn't that hard.

Aside from the need for the Broadcom drivers, for the WiFi to work, the install went smooth.  I did the "full" install, and also let it wipe out anything that might be on the drive. Had I not had a network connection via wire, it wouldn't have gone so smooth.

Next came the snigglies and snags for me.  Not having been baptized into Linux via Slackware, etc, and the floppy disk installs of the 90's, some of the struggles some of you long term Linux fans have triumphed over, I had to do some digging and learning to get the the rest of the system setup as I wanted.

I wanted to be able to view this machine via Remote Desktop Viewer on my Linux Mint machine.  After some trial and error, and some more errors, and trials. I got it setup.  I got x11vnc going on it, for it's VNC server. Once I got that installed via GSlapt, and added the proper line for it to autostart I'm now able to access the machine while it sits on the shelf where it normally sits.  For what it's worth, (note to self)  the line that one needs in the Applications Autostart is this:

/usr/bin/x11vnc -repeat -forever

If you don't use the "-repeat -forever"  it'll boot, and start the x11vnc server, but once you exit your first vnc session, it will not start up again. It took me a little while to get those two additional switches figured out.

Next, was to try and get Rhythmbox on it, as it was listed in Sourcery Slackbuild Manager.  But it failed due to dependency's not being met.  I intend to get back to figure out how to build from source, or at least get it on the system in the future.  The reason for wanting Rhythmbox on the system, is so far, Rhythmbox is about the best thing out there that works with DAAP music shares, or at least with the one on my NAS drive.  But since that failed to install out of the box, I went ahead and copied the music from the NAS drive to the unit. That backs up the music, something I had considered anyway.  Also Rhythmbox handles the Shoutcast Streams if one wishes to add a few to it. I usually do.  But, that didn't work out.  So had to stick with the default media player of Exaile.  Even though I don't need Rhythmbox on it now, it's a puzzle that I want to figure out. 

Exaile looked like it would work right, right out of the box, as it says it supports DAAP shares. But it didn't find mine.  It did work with a manual entry, so it's good to go. Also the Radio Streams didn't work. Audacious and VLC both can do those, so it's good. 

So, overall, I'd say that Salix 14.0 with XFCE is a winner.  Much snappier than it's Debian/Ubuntu based Xfce counterparts.  While I didn't get it EXACTLY the way that I wanted, or had expected, it turned out well for my purpose. 

As a standalone OS, for most people, I think that Salix would work well, it has LibreOffice, and handles network drives well. If you want to see a full rundown of it, check this posting out.



Saturday, November 17, 2012

Simple Time and Weather Conky Desktop

Systems installed on: Linux Mint 10, Mint 13 MATE, and Peppermint 3.  

Let me start this off saying that I'm not a Conky expert, nor can I provide a ton of help for anyone that runs into problems with this script. I also mention an error that I've getting at the end of the blog post, and would love to know how to get rid of it.

What I was after was a clean and simple Time and Temp display for my Netbook that sits on a nightstand. It's really a glorified Clock radio. And the end results I got and wanted were something like this. 


If haven't you already installed conky, and played around with it you will need to. For those that use the Ubuntu Repositories and PPA's this is how you do it. ConkyForecast and a few other conky tweaks are part of the "Conky Companions" PPA. 
sudo add-apt-repository ppa:conky-companions/ppa
sudo apt-get update
sudo apt-get install conkyforecast
Or Download ConkyForecast 2.24 for Linux from launchpad yourself.

Built packages
  • conkyforecast Weather forecast script with support for language files, for use in Conky
    Package files

Once you have it installed that should be it for conkyForecast, but should you want to modify it, or need to modify it you can copy it to your home directory from within the terminal with this simple command, and then edit it with your text editor.
cp /usr/share/conkyforecast/conkyForecast.config ~/.conkyForecast.config
I had to edit my .conkyForecast.config file, for fahrenheit instead of celcius temperatures, and I also removed a # mark on line 5 to make the .xml infor available to conkyForecast.


#=============================================#
# EXPERT SETTINGS, NOT REQUIRED TO BE ALTERED #
#=============================================#
BASE_XOAP_URL = http://xoap.weather.com/weather/local/<LOCATION>?cc=*&dayf=5&link=xoap&prod=xoap&par=<XOAP_PARTNER_ID>&key=<XOAP_LICENCE_KEY>&unit=i
BASE_XOAP_URL = http://xml.weather.com/weather/local/<LOCATION>?cc=*&dayf=10&link=xoap&prod=xoap&par=<XOAP_PARTNER_ID>&key=<XOAP_LICENCE_KEY>&unit=i
MAXIMUM_DAYS_FORECAST = 4

#===============================================#
# USER SETTINGS, EDIT BASED ON DOCUMENTED SETUP #
#===============================================#
CACHE_FOLDERPATH = /tmp/
CONNECTION_TIMEOUT = 5
EXPIRY_MINUTES = 30
TIME_FORMAT = %H:%M
DATE_FORMAT = %Y-%m-%d
LOCALE = en
XOAP_PARTNER_ID = 
XOAP_LICENCE_KEY =
DEFAULT_LOCATION = UKXX0103 
AUTO_NIGHT = False
PROXY_HOST = 
PROXY_PORT = 8080
PROXY_USERNAME = 
PROXY_PASSWORD = 

Now that you've got conkyForecast on your system, next all your should have to do is to create or modify your .conkyrc text file. This can be the tricky part.  Below is a copy of my .conkyrc file. OR you can download a copy of it from here

# Modified by RandyNose(.com) for simple desktop time and temp #
# Original code swipped from Conky Metro Clock by Satya #
# satya164.deviantart.com #


# Conky settings #
background no
update_interval 1

override_utf8_locale yes

double_buffer yes
no_buffers yes

text_buffer_size 2048

# Window specifications #
own_window yes
own_window_class conky
own_window_transparent yes
own_window_hints undecorate,below,sticky,skip_taskbar,skip_pager

border_inner_margin 0
border_outer_margin 0

alignment bl
gap_x 100
gap_y 100

# Graphics settings #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no

# Text settings #
use_xft yes
xftalpha 0
text_buffer_size 2048

uppercase no

default_color FFFFFF


TEXT
${voffset 10}${font Ubuntu Light:size=40}${goto 550}${execi 600 conkyForecast --location=44107 --datatype=CN --refetch}${voffset -10}
${voffset 10}${font Ubuntu Light:size=50}${goto 550}${execi 1800 conkyForecast --location=44107 --datatype=CT --refetch}${voffset -10}${goto 875}${execi 1800 conkyForecast --location=44107 -u --datatype=HT --refetch}
${voffset 10}${font Ubuntu Light:size=40}${time %A}${font}${voffset -10}
${voffset 10}${font Ubuntu Light:size=40}${time %B} ${time %e}${font}${voffset -10}
${voffset 10}${font Ubuntu Light:size=100}${time %I:%M %p}${font}${voffset -10}


Be sure to save the text file as .conkyrc in your home dir. The location setting that I have is 44107, my US zip code. I am going to guess that any valid US zip code will work.  If that doesn't work for you, try going to your city on weather.com and using the location code in the URL. OR try this posting to sort it out.

Now you should be all set to run conky at the terminal and test it out, and/or add it to your start up applications. 

I should also note, that I AM getting an error on my system when I run in the terminal. How to fix it at this point, I'm not sure. But maybe this posting will ferret out an answer. :) 
The error is this:


WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-nITDzm/pkcs11: No such file or directory
Conky: desktop window (180012f) is subwindow of root window (13a)
Conky: window type - normal
Conky: drawing to created window (0x2600001)
Conky: drawing to double buffer
ERROR: Server connection error: HTTP Error 503: Service Unavailable



Some of Sites that I visited while creating this post were:https://bbs.archlinux.org/viewtopic.php?id=139962http://ashu-geek.blogspot.com/2012/03/conkyforecast-224-current-weather.htmlhttp://ubuntuforums.org/showthread.php?t=869328http://satya164.deviantart.com/   He's also here: http://funsurf-blog.blogspot.com/






Sunday, November 04, 2012

Tethering in a Tempest



Unless you've been living in another hemisphere, or not, I think that most everyone has heard about Hurricane Sandy.  If not, then, I'd like to know where you've been. As there were many folks just hammered by the storm, and were without power and or without internet service.  And even a few lost lives and houses. Us in the Cleveland, Ohio area had our share of the storm.

I'm one of the more fortunate, as we had a landlord who lives in the same building, (duplex) that hooked us up to generator power for a few hours each day.  But our internet service was on and off, so I wanted to use my Android Phone, (Thunderbolt HTC) to get online. I really don't like to type more than I have to if I'm using a phone, or a touch screen. Since I was also lucky enough to still have a Verizon Unlimited Data Package, I wanted to flex that option. 

One of my G+ Geek Trucker Buds  mentioned to use FoxFi for my phone, and turn it into a WiFi hotspot. FoxFi is a free App, etc.  So, off I go tap tap tapping away on my phone to around the Google Play app selection. I find it, download it, and Install it, and ZOinK!  No joy. I am informed by FoxFi that HTC has a locked up the WiFi or some such nonsense, but it suggests and supports Bluetooth.  I don't have a Bluetooth connection for my computer, so I opt to search for a more mundane method of USB cable tether.

I browse around on Google Play, and found the Demo Version of KLink.  I install it, expect that I'll have to fire up Windows in order to get the PC side to work, but nope.  Easy to follow links and instructions to DL a .DEB file to my phone that I can then install onto my Linux Mint 9 LTS endowed Acer PC.  

Viola! App is downloaded and installed, DEB file is found on Android via USB cable connection,  I fire up a terminal session, as suggested, type in Klink, and Bingo! We're live on the interwebs with a good and speedy connection too!  As the image below suggests. 


Man, I was so tickled, I bought the app, even though there are some freebie versions that are supposed to work, that I hadn't even tried at the time.  So, I shelled out $4.99 for the app, and get the full version, as I don't feel like mucking around with anything else. 

I was so happy, I had to celebrate with some cookies, milk, and a couple screen shots of my shenanigans. And I'm +1'd by a couple of other geek friends, Mat and Claudio


Thanks, Brandt,  Stephen, and others for the suggestions of FoxFi. Looks like a nice tool, but not the right tool for my phone and this job. 

Thanks Christophe Versieux for the suggestion of ClockworkMod Tether, as it might do the trick,  and while it IS free, I still had to DL and install g++ to make and compile it, something of a show stopper when you don't have any connections to do an apt-get install. Also, not something everyone would be willing or know how to tackle.  

Oh! About this "superstorm" word. 

This from PopSi.com 

"Hurricane Sandy wasn't a "superstorm." Not because it wasn't a "super" "storm," but because "superstorm" is an imaginary scare-term that exists exclusively for shock value."

And now, I have to go make sure that I don't break my neck to change the time on a clock that was perfectly fine until some bastards (who are now dead, I'm sure) decided that we need to muck around with our timepieces in order to make them make more sense with the orb that we live on, and the one that gives use light and life.  Yea, I'm against changed the time on our clocks twice a year. It no longer serves a purpose. Go AWAY Daylight savings!!  

Thursday, October 25, 2012

Bumping up from Mint 10 to Mint 13 via Mint Backup


I really wanted to document this a little bit more so I could have had a fresher brain dump of what I did for this post.  I did a post back when Mint 9 LTS came out, about the changes and tweaking that I did to it to get it more like the Ubuntu (8?ish) experience that I had come to enjoy.  Much of what I had done had become even more do-able with Ubuntu Tweak as that GAVE back much of what Ubuntu and Canonical and been shunting along the way to simplify the OS. You can't give someone a 5 speed, and expect them to be happy with "3 on the tree" with a newer model just for the sake of "simplicity".

I also like the idea of the LTS release. As I do tend to add this and that to my system. So, for this update I decided to try out the Mint Backup Tool. While Mint backup does do some things simply, it's far from perfect.  It also takes quite a bit of time for 200 gigabytes of data. Would I use it to easily pick and choose dir's that I'd want to back up to another drive? Definitely. Would I use it to back up my software selection? Absolutely.  Getting a copy of your data to another location it worked very well.  Where the problem comes in, or the pain, is when you do your restore.

The APT repositories or PPA's that are on a default system are added automatically. Those that aren't you have to go back and add manually.

Also, since I was moving from a Gnome2 system to MATE, I had some duplication of programs,  such as Gedit, AND Pluma, XScreensaver AND Gnome Screensaver, but that proved interesting, as I have two monitors, and there were two different screen savers going at the same time.

A Good majority of my dir's were given ROOT permissions, so I had to go back and change those later. I'm not sure if it was my fumbling around, by not restoring things in the correct order or not. Meaning, I restored my software selection prior to restoring my file directories. The tutorial did it the other way around.

One of the first things that I added was the Ubuntu Tweak PPA, and Downloaded the Google Chrome browser via Firefox. Yes, I'm not as FOSS sensitive as some of my other Linux Brethren.  I've also moved my music and plan on moving other large directories to another drive and link to them, so when I DO backup things in the future, they're more segmented. So, more or less whatever I've created is on one partition, and more static files, like Music, Videos, etc, would be on another.

Overall, I'd say that the Mint Backup utility did it's job. It DID back things up well. Restoring was much quicker, than backing up. I'd give it 4 out of 5. The ability to use a GUI to pick and choose what to backup or restore is slick. But some directories, such as my ./lastpass dir or any other "Piped" dir wouldn't backup, and hang the process, so you'd have to start over. With 200 GB, it took quite a bit of time. 8 hrs or more. On a system such as my wife's who's \home dir was only 2GB I suspect it would be much quicker, though, on her machine, I just did a clean install.

So tell me, have you used Mint Backup?
If so would you use it again?

I think I might, but not all the time. Sometimes a fresh install is just, well, Minty Fresh. :)



 Google Nexus 7 Black Wi-Fi 16GB Tablet - NEXUS7ASUS1B16 (Google Affiliate Ad)

Thursday, August 30, 2012

Digital or Electronic Signing of your documents

I don't know about you, but I don't like to print out a document, sign it, and then have to re-scan it back into the computer. This can happen a lot if you're also in the process of looking for a job.

For this example, I also wanted to pay a little homage to Neil Armstrong, as he just passed away.  Don Pablo Pereira, a reporter had a little story about a letter from Mr. Armstrong and I'll post a link to that at the end of the blog post.

You'll need to also have created a scanned image of your own signature, that you will be using.  If you need help with that, leave a comment, here or on G+ and I'll do a separate blog post about how to create your own digital signature with the GIMP.

If you want, you can grab the document that I made in LibreOffice and edit it too.  I imagine this will work in OpenOffice too, but I've not tested it with OpenOffice.

Once you have your document open,  you will want to import the image file.  Be sure to have your cursor near the spot you want it to be imported to, if you can.

Insert>Picture>From File...


Once you've done that,  you'll notice that it's not lined up the way that you'd want it to be on your document as a signature. 

It'll look all wonky like this:


This is certainly not the way you'd have a signature show up on a real document! It's got to be fixed!

It's an easy fix. Just go up to the top of the page and click on Wrap Trough.


Then move your signature to the spot that you want it on your page, and save. 
Once you save it, print it to paper, if you want, or Export it as a PDF or Print it as a PDF. 
The choice is yours. 

Pretty simple, eh? 



If you used my document,  you'll also have a fresh .PDF of the same letter that Neil Armstrong sent Don Pereira.



Don Pablo Pereira's real reply from Neil Armstrong.

If you have any suggestions or comments, please feel free to leave them!

How many others have struggled to get their documents signed, but didn't want to go through the hassle of print, sign, scan, save, etc?  Do you have some stories of how you'd go about this?

Until next time,
Hang Loose!

RandyNose

HP Officejet Pro 8600 e-All-in-One CM749A#B1H (Google Affiliate Ad)
HP LaserJet Pro P1102w Printer CE657A#BGJ (Google Affiliate Ad)

Sunday, July 22, 2012

How to make Bulging Eyes with the GIMP


I tend to live dangerous. Sometimes the risk is a calculated one, like taking a friends picture and then messing around with the GIMP to create some "Photo Harassment".  I suppose I ought to do a few blog posts and tag them here so I can "showcase" my crude photo edits.  1st, I want to thank Richard Querin for not sending me a pipe bomb in the mail after I "fixed" his photo. 

This one is a fairly quick and easy thing to do.  First you want to select the eyes with the Ellipse tool, and once you've got the first Ellipse where you want it with your selection, press Shift and Click again to create a second Ellipse.  Be careful it's easy to mess up and end up with to many Ellipse's. 

Note: At this point you might want to save the file as an .xcf file if you've done any cropping, etc, just in case.

Ok, so now that you've got both eyes selected, you need to filter the selected area. Menu > Filters > Distort > Iwarp.


Alright, now that you've got the Iwarp filter up, you can choose how you want to animate the eyes. Shrink, Grow, ect...   Make your choices,  and then select the Animate Tab, and also make some selections, I usually leave the defaults as they are, and choose 3-6 frames. Remember each frame is going to make the picture larger, and take it longer to load. 

Now save your file as a .gif, and make sure you save it (or export is it says) as an animation, or else, everything you've done so far will not come out. 

And Viola! you'll have a snazzy or freaky picture to show for your troubles. :) 




Monday, July 09, 2012

3 Quick Tips for New G+ Users.


Today on G+ a fairly popular and successful blogger  joined up and was asking about it, as it seemed confusing to him.  It also reminded me that I've not made any blog posts in some time, and it was time for me to rectify that.  This post is partly to clarify what's going on with G+ and the things about it that make it different from Facebook.  G+ is far from being a dead place if you just join in with a couple of conversations, you can easily, like I did today, spend a good part of the day discussing a topic. 

It's all about the Circles

The Whole Premise of the "G+ Circlies" and putting people into their Proper Circles, if Lost, can and will, leave one a bit confused, thus hating the G+ experience.  So While your account is still fresh!!!  It is a good idea to know what kind of circles you're going to want. Google's already done a fairly good job of getting you setup with some default circles. Add a few more of your own, and don't be afraid to make to many, as it's easy to merge Circles, but real pain to un-merge circles later. (I think it would be nice if we had nested sub-circles, BTW.)    

Don't be a Wallflower!

Where I think some people fail with G+ is that they don't post a few Public Posts, AND Don't fill in their profiles, so if their profile is visited after they make a comment, another person knows what circle to add them to.  Another mistake to avoid as a new G-plusser would be to put EVERYONE into one circle.  DON'T DO THAT!   Keep in mind that you can have people in ALL of your circles if you want, or just a few. It's all up to you.  I have many people in two or more circles, as they might be a [Close Friend] And a [Geek].

The Hangouts

One of the great new things that G+ had was the Hangouts. This is like a group chat forum but with video, in real time. (Watch out Go To Meeting!)  It works on all Three major OS platforms.  Linux, Windows, and Apple. It also works for some Android phones.  You can also control who sees your hangout invite.  It can be just 1 person, a circle, or public.  Also, you don't HAVE to have a video cam on your computer, but it helps. You DO need to at least have the ability to speak and listen. 

There's lots more to discover, such as the games, use of "#hastags" , saved searches,  Sharing YouTube videos in a hangouts, etc... 


Got a Question? Post it here, or on G+ as my comments are moderated 14 days after a post. 



Thursday, May 10, 2012

Open Sourcey Peoples = Links Lead you places.

Just a Quick note. But with links that lead you places. TuxSax, left a comment, so I jump on over to his blog for a quick look, and maybe become a follower of his blog. - I can't read most of his posts. He's got some Right Handed font thing going on, (Google Translate says it's Hebrew, so I'll have to put that to work and go back to his site, as I he's got some other cool posts too)  but there are posts that I could read.  This next link comes from there. I think that it's really cool what this lady is doing, and if you like Art, or would like an origional painting, Ali wold be a great, great source.  So... I'm going to send you to his blog post, and you'll have to jump from there, to the free paintings post...



 Mwhahaa...


Wednesday, May 09, 2012

LINUX's History

Posted, just in case anyone was wondering, and because, Linus Torvalds was
Shortlisted for 2012 Millennium Technology Prize.

LINUX's History

This was cut and pasted from http://www.cs.cmu.edu/~awb/linux.history.html I added some color to it to help with the ease of reading.


   Note: The following text was written by Linus on July 31 1992. It is a
   collection of various artifacts from the period in which Linux first
   began to take shape.
   
   This is just a sentimental journey into some of the first posts
   concerning linux, so you can happily press 'n' now if you actually
   thought you'd get anything technical.

  From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  Newsgroups: comp.os.minix
  Subject: Gcc-1.40 and a posix-question
  Message-ID:
  Date: 3 Jul 91 10:00:50 GMT

  Hello netlanders,

  Due to a project I'm working on (in minix), I'm interested in the posix
  standard definition. Could somebody please point me to a (preferably)
  machine-readable format of the latest posix rules? Ftp-sites would be
  nice.

   The project was obviously linux, so by July 3rd I had started to think
   about actual user-level things: some of the device drivers were ready,
   and the harddisk actually worked. Not too much else.

  As an aside for all using gcc on minix - [ deleted ]

   Just a success-report on porting gcc-1.40 to minix using the 1.37
   version made by Alan W Black & co.

                Linus Torvalds          torvalds@kruuna.helsinki.fi

  PS. Could someone please try to finger me from overseas, as I've
  installed a "changing .plan" (made by your's truly), and I'm not certain
  it works from outside? It should report a new .plan every time.

   So I was clueless - had just learned about named pipes. Sue me. This
   part of the post got a lot more response than the actual POSIX query,
   but the query did lure out arl from the woodwork, and we mailed around
   for a bit, resulting in the Linux subdirectory on nic.funet.fi.
   
   Then, almost two months later, I actually had something working: I
   made sources for version 0.01 available on nic sometimes around this
   time. 0.01 sources weren't actually runnable: they were just a token
   gesture to arl who had probably started to despair about ever getting
   anything. This next post must have been from just a couple of weeks
   before that release.

  From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  Newsgroups: comp.os.minix
  Subject: What would you like to see most in minix?
  Summary: small poll for my new operating system
  Message-ID:
  Date: 25 Aug 91 20:57:08 GMT
  Organization: University of Helsinki


  Hello everybody out there using minix -

  I'm doing a (free) operating system (just a hobby, won't be big and
  professional like gnu) for 386(486) AT clones.  This has been brewing
  since april, and is starting to get ready.  I'd like any feedback on
  things people like/dislike in minix, as my OS resembles it somewhat
  (same physical layout of the file-system (due to practical reasons)
  among other things).

  I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
  This implies that I'll get something practical within a few months, and
  I'd like to know what features most people would want.  Any suggestions
  are welcome, but I won't promise I'll implement them :-)

                Linus (torvalds@kruuna.helsinki.fi)

  PS.  Yes - it's free of any minix code, and it has a multi-threaded fs.
  It is NOT protable (uses 386 task switching etc), and it probably never
  will support anything other than AT-harddisks, as that's all I have :-(.

   Judging from the post, 0.01 wasn't actually out yet, but it's close.
   I'd guess the first version went out in the middle of September -91. I
   got some responses to this (most by mail, which I haven't saved), and
   I even got a few mails asking to be beta-testers for linux. After that
   just a few general answers to questions on the net:

  From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  Newsgroups: comp.os.minix
  Subject: Re: What would you like to see most in minix?
  Summary: yes - it's nonportable
  Message-ID:
  Date: 26 Aug 91 11:06:02 GMT
  Organization: University of Helsinki

  In article  jkp@cs.HUT.FI (Jyrki Kuoppala) writes:
  >> [re: my post about my new OS]
  >
  >Tell us more!  Does it need a MMU?

  Yes, it needs a MMU (sorry everybody), and it specifically needs a
  386/486 MMU (see later).

  >
  >>PS.  Yes - it's free of any minix code, and it has a multi-threaded fs.
  >>It is NOT protable (uses 386 task switching etc)
  >
  >How much of it is in C?  What difficulties will there be in porting?
  >Nobody will believe you about non-portability ;-), and I for one would
  >like to port it to my Amiga (Mach needs a MMU and Minix is not free).

  Simply, I'd say that porting is impossible.  It's mostly in C, but most
  people wouldn't call what I write C.  It uses every conceivable feature
  of the 386 I could find, as it was also a project to teach me about the
  386.  As already mentioned, it uses a MMU, for both paging (not to disk
  yet) and segmentation. It's the segmentation that makes it REALLY 386
  dependent (every task has a 64Mb segment for code & data - max 64 tasks
  in 4Gb. Anybody who needs more than 64Mb/task - tough cookies).

  It also uses every feature of gcc I could find, specifically the __asm__
  directive, so that I wouldn't need so much assembly language objects.
  Some of my "C"-files (specifically mm.c) are almost as much assembler as
  C. It would be "interesting" even to port it to another compiler (though
  why anybody would want to use anything other than gcc is a mystery).

   Note: linux has in fact gotten more portable with newer versions:
   there was a lot more assembly in the early versions. It has in fact
   been ported to other architectures by now.

  Unlike minix, I also happen to LIKE interrupts, so interrupts are
  handled without trying to hide the reason behind them (I especially like
  my hard-disk-driver.  Anybody else make interrupts drive a state-
  machine?).  All in all it's a porters nightmare.

  >As for the features; well, pseudo ttys, BSD sockets, user-mode
  >filesystems (so I can say cat /dev/tcp/kruuna.helsinki.fi/finger),
  >window size in the tty structure, system calls capable of supporting
  >POSIX.1.  Oh, and bsd-style long file names.

  Most of these seem possible (the tty structure already has stubs for
  window size), except maybe for the user-mode filesystems. As to POSIX,
  I'd be delighted to have it, but posix wants money for their papers, so
  that's not currently an option. In any case these are things that won't
  be supported for some time yet (first I'll make it a simple minix-
  lookalike, keyword SIMPLE).

                Linus (torvalds@kruuna.helsinki.fi)

  PS. To make things really clear - yes I can run gcc on it, and bash, and
  most of the gnu [bin/file]utilities, but it's not very debugged, and the
  library is really minimal. It doesn't even support floppy-disks yet. It
  won't be ready for distribution for a couple of months. Even then it
  probably won't be able to do much more than minix, and much less in some
  respects. It will be free though (probably under gnu-license or similar).

   Well, obviously something worked on my machine: I doubt I had yet
   gotten gcc to compile itself under linux (or I would have been too
   proud of it not to mention it). Still before any release-date.
   
   Then, October 5th, I seem to have released 0.02. As I already
   mentioned, 0.01 didn't actually come with any binaries: it was just
   source code for people interested in what linux looked like. Note the
   lack of announcement for 0.01: I wasn't too proud of it, so I think I
   only sent a note to everybody who had shown interest.

  From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  Newsgroups: comp.os.minix
  Subject: Free minix-like kernel sources for 386-AT
  Message-ID:
  Date: 5 Oct 91 05:41:06 GMT
  Organization: University of Helsinki

  Do you pine for the nice days of minix-1.1, when men were men and wrote
  their own device drivers? Are you without a nice project and just dying
  to cut your teeth on a OS you can try to modify for your needs? Are you
  finding it frustrating when everything works on minix? No more all-
  nighters to get a nifty program working? Then this post might be just
  for you :-)

  As I mentioned a month(?) ago, I'm working on a free version of a
  minix-lookalike for AT-386 computers.  It has finally reached the stage
  where it's even usable (though may not be depending on what you want),
  and I am willing to put out the sources for wider distribution.  It is
  just version 0.02 (+1 (very small) patch already), but I've successfully
  run bash/gcc/gnu-make/gnu-sed/compress etc under it.

  Sources for this pet project of mine can be found at nic.funet.fi
  (128.214.6.100) in the directory /pub/OS/Linux.  The directory also
  contains some README-file and a couple of binaries to work under linux
  (bash, update and gcc, what more can you ask for :-).  Full kernel
  source is provided, as no minix code has been used.  Library sources are
  only partially free, so that cannot be distributed currently.  The
  system is able to compile "as-is" and has been known to work.  Heh.
  Sources to the binaries (bash and gcc) can be found at the same place in
  /pub/gnu.

  ALERT! WARNING! NOTE! These sources still need minix-386 to be compiled
  (and gcc-1.40, possibly 1.37.1, haven't tested), and you need minix to
  set it up if you want to run it, so it is not yet a standalone system
  for those of you without minix. I'm working on it. You also need to be
  something of a hacker to set it up (?), so for those hoping for an
  alternative to minix-386, please ignore me. It is currently meant for
  hackers interested in operating systems and 386's with access to minix.

  The system needs an AT-compatible harddisk (IDE is fine) and EGA/VGA. If
  you are still interested, please ftp the README/RELNOTES, and/or mail me
  for additional info.

  I can (well, almost) hear you asking yourselves "why?".  Hurd will be
  out in a year (or two, or next month, who knows), and I've already got
  minix.  This is a program for hackers by a hacker.  I've enjouyed doing
  it, and somebody might enjoy looking at it and even modifying it for
  their own needs.  It is still small enough to understand, use and
  modify, and I'm looking forward to any comments you might have.

  I'm also interested in hearing from anybody who has written any of the
  utilities/library functions for minix. If your efforts are freely
  distributable (under copyright or even public domain), I'd like to hear
  from you, so I can add them to the system. I'm using Earl Chews estdio
  right now (thanks for a nice and working system Earl), and similar works
  will be very wellcome. Your (C)'s will of course be left intact. Drop me
  a line if you are willing to let me use your code.

                Linus

  PS. to PHIL NELSON! I'm unable to get through to you, and keep getting
  "forward error - strawberry unknown domain" or something.

   Well, it doesn't sound like much of a system, does it? It did work,
   and some people even tried it out. There were several bad bugs (and
   there was no floppy-driver, no VM, no nothing), and 0.02 wasn't really
   very useable.
   
   0.03 got released shortly thereafter (max 2-3 weeks was the time
   between releases even back then), and 0.03 was pretty useable. The
   next version was numbered 0.10, as things actually started to work
   pretty well. The next post gives some idea of what had happened in two
   months more...

  From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
  Newsgroups: comp.os.minix
  Subject: Re: Status of LINUX?
  Summary: Still in beta
  Message-ID:
  Date: 19 Dec 91 23:35:45 GMT
  Organization: University of Helsinki

  In article  miquels@maestro.htsa.aha.nl (Miquel van Smoorenburg) writes:
  >Hello *,
  >     I know some people are working on a FREE O/S for the 386/486,
  >under the name Linux. I checked nic.funet.fi now and then, to see what was
  >happening. However, for the time being I am without FTP access so I don't
  >know what is going on at the moment. Could someone please inform me about it
?
  >It's maybe best to follow up to this article, as I think that there are
  >a lot of potential interested people reading this group. Note, that I don't
  >really *have* a >= 386, but I'm sure in time I will.

  Linux is still in beta (although available for brave souls by ftp), and
  has reached the version 0.11.  It's still not as comprehensive as
  386-minix, but better in some respects.  The "Linux info-sheet" should
  be posted here some day by the person that keeps that up to date.  In
  the meantime, I'll give some small pointers.

  First the bad news:

        - Still no SCSI: people are working on that, but no date yet.
          Thus you need a AT-interface disk (I have one report that it
          works on an EISA 486 with a SCSI disk that emulates the
          AT-interface, but that's more of a fluke than anything else:
          ISA+AT-disk is currently the hardware setup)

   As you can see, 0.11 had already a small following. It wasn't much,
   but it did work.

        - still no init/login: you get into bash as root upon bootup.

   That was still standard in the next release.

        - although I have a somewhat working VM (paging to disk), it's not
          ready yet.  Thus linux needs at least 4M to be able to run the
          GNU binaries (especially gcc).  It boots up in 2M, but you
          cannot compile.

   I actually released a 0.11+VM version just before Christmas -91: I
   didn't need it myself, but people were trying to compile the kernel in
   2MB and failing, so I had to implement it. The 0.11+VM version was
   available only to a small number of people that wanted to test it out:
   I'm still surprised it worked as well as it did.

        - minix still has a lot more users: better support.

        - it hasn't got years of testing by thousands of people, so there
          are probably quite a few bugs yet.

  Then for the good things..

        - It's free (copyright by me, but freely distributable under a
          very lenient copyright)

   The early copyright was in fact much more restrictive than the GNU
   copyleft: I didn't allow any money at all to change hands due to
   linux. That changed with 0.12.

        - it's fun to hack on.

        - /real/ multithreading filesystem.

        - uses the 386-features.  Thus locked into the 386/486 family, but
          it makes things clearer when you don't have to cater to other
          chips.

        - a lot more... read my .plan.

  /I/ think it's better than minix, but I'm a bit prejudiced.  It will
  never be the kind of professional OS that Hurd will be (in the next
  century or so :), but it's a nice learning tool (even more so than
  minix, IMHO), and it was/is fun working on it.

                Linus (torvalds@kruuna.helsinki.fi)

  ---- my .plan --------------------------
        Free UNIX for the 386 - coming 4QR 91 or 1QR 92.

  The current version of linux is 0.11 - it has most things a unix kernel
  needs, and will probably be released as 1.0 as soon as it gets a little
  more testing, and we can get a init/login going. Currently you get
  dumped into a shell as root upon bootup.

  Linux can be gotten by anonymous ftp from 'nic.funet.fi' (128.214.6.100)
  in the directory '/pub/OS/Linux'.  The same directory also contains some
  binary files to run under Linux.  Currently gcc, bash, update, uemacs,
  tar, make and fileutils.  Several people have gotten a running system,
  but it's still a hackers kernel.

  Linux still requires a AT-compatible disk to be useful: people are
  working on a SCSI-driver, but I don't know when it will be ready.

  There are now a couple of other sites containing linux, as people have
  had difficulties with connecting to nic. The sites are:
        Tupac-Amaru.Informatik.RWTH-Aachen.DE (137.226.112.31):
                directory /pub/msdos/replace
        tsx-11.mit.edu (18.172.1.2):
                directory /pub/linux

  There is also a mailing list set up 'Linux-activists@niksula.hut.fi'.
  To join, mail a request to 'Linux-activists-request@niksula.hut.fi'.
  It's no use mailing me: I have no actual contact with the mailing-list
  (other than being on it, naturally).

  Mail me for more info:

                Linus (torvalds@kruuna.Helsinki.FI)

  0.11 has these new things:

  - demand loading
  - code/data sharing between unrelated processes
  - much better floppy drivers (they actually work mostly)
  - bug-corrections
  - support for Hercules/MDA/CGA/EGA/VGA
  - the console also beeps (WoW! Wonder-kernel :-)
  - mkfs/fsck/fdisk
  - US/German/French/Finnish keyboards
  - settable line-speeds for com1/2

   As you can see: 0.11 was actually stand-alone: I wrote the first
   mkfs/fsck/fdisk programs for it, so that you didn't need minix any
   more to set it up. Also, serial lines had been hard-coded to 2400bps,
   as that was all I had.

  Still lacking:
  - init/login
  - rename system call
  - named pipes
  - symbolic links

   Well, they are all there now: init/login didn't quite make it to 0.12,
   and rename() was implemented as a patch somewhere between 0.12 and
   0.95. Symlinks were in 0.95, but named pipes didn't make it until
   0.96.
   
   Note: The version number went directly from 0.12 to 0.95, as the
   follow-on to 0.12 was getting feature-full enough to deserve a number
   in the 0.90's

  0.12 will probably be out in January (15th or so), and will have:
  - POSIX job control (by tytso)
  - VM (paging to disk)
  - Minor corrections

   Actually, 0.12 was out January 5th, and contained major corrections.
   It was in fact a very stable kernel: it worked on a lot of new
   hardware, and there was no need for patches for a long time. 0.12 was
   also the kernel that "made it": that's when linux started to spread a
   lot faster. Earlier kernel releases were very much only for hackers:
   0.12 actually worked quite well.
   
   
   
   Note: The following document is a reply by Linus Torvalds, creator of
   Linux, in which he talks about his experiences in the early stages of
   Linux development

To: Linux-Activists@BLOOM-PICAYUNE.MIT.EDU
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: Re: Writing an OS - questions !!
Date: 5 May 92 07:58:17 GMT

In article  nani@td2cad.intel.com (V. Narayanan) writes:

 Hi folks,
         For quite some time this "novice" has been wondering as to how one goe
s
 about the task of writing an OS from "scratch".  So here are some questions,
 and I would appreciate if you could take time to answer 'em.

Well, I see someone else already answered, but I thought I'd take on the
linux-specific parts.  Just my personal experiences, and I don't know
how normal those are.

 1) How would you typically debug the kernel during the development phase?

Depends on both the machine and how far you have gotten on the kernel:
on more simple systems it's generally easier to set up. Here's what I
had to do on a 386 in protected mode.

The worst part is starting off: after you have even a minimal system you
can use printf etc, but moving to protected mode on a 386 isn't fun,
especially if you at first don't know the architecture very well.  It's
distressingly easy to reboot the system at this stage: if the 386
notices something is wrong, it shuts down and reboots - you don't even
get a chance to see what's wrong.

Printf() isn't very useful - a reboot also clears the screen, and
anyway, you have to have access to video-mem, which might fail if your
segments are incorrect etc.  Don't even think about debuggers: no
debugger I know of can follow a 386 into protected mode.  A 386 emulator
might do the job, or some heavy hardware, but that isn't usually
feasible.

What I used was a simple killing-loop: I put in statements like

die:
        jmp die

at strategic places.  If it locked up, you were ok, if it rebooted, you
knew at least it happened before the die-loop.  Alternatively, you might
use the sound io ports for some sound-clues, but as I had no experience
with PC hardware, I didn't even use that.  I'm not saying this is the
only way: I didn't start off to write a kernel, I just wanted to explore
the 386 task-switching primitives etc, and that's how I started off (in
about April-91).

After you have a minimal system up and can use the screen for output, it
gets a bit easier, but that's when you have to enable interrupts. Bang,
instant reboot, and back to the old way. All in all, it took about 2
months for me to get all the 386 things pretty well sorted out so that I
no longer had to count on avoiding rebooting at once, and having the
basic things set up (paging, timer-interrupt and a simple task-switcher
to test out the segments etc).

 2) Can you test the kernel functionality by running it as a process on a
    different OS?  Wouldn't the OS(the development environment) generate
    exceptions in cases when the kernel (of the new OS) tries to modify
    'priviledged' registers?

Yes, it's generally possible for some things, but eg device drivers
usually have to be tested out on the bare machine.  I used minix to
develop linux, so I had no access to IO registers, interrupts etc.
Under DOS it would have been possible to get access to all these, but
then you don't have 32-bit mode.  Intel isn't that great - it would
probably have been much easier on a 68040 or similar.

So after getting a simple task-switcher (it switched between two
processes that printed AAAA...  and BBBB...  respectively by using the
timer-interrupt - Gods I was proud over that), I still had to continue
debugging basically by using printf.  The first thing written was the
keyboard driver: that's the reason it's still written completely in
assembler (I didn't dare move to C yet - I was still debugging at
about instruction-level).

After that I wrote the serial drivers, and voila, I had a simple
terminal program running (well, not that simple actually).  It was still
the same two processes (AAA..), but now they read and wrote to the
console/serial lines instead.  I had to reboot to get out of it all, but
it was a simple kernel.

After that is was plain sailing: hairy coding still, but I had some
devices, and debugging was easier.  I started using C at this stage, and
it certainly speeds up developement.  This is also when I start to get
serious about my megalomaniac ideas to make "a better minix that minix".
I was hoping I'd be able to recompile gcc under linux some day...

The harddisk driver was more of the same: this time the problems with
bad documentation started to crop up.  The PC may be the most used
architecture in the world right now, but that doesn't mean the docs are
any better: in fact I haven't seen /any/ book even mentioning the weird
386-387 coupling in an AT etc (Thanks Bruce).

After that, a small filesystem, and voila, you have a minimal unix.  Two
months for basic setups, but then only slightly longer until I had a
disk-driver (seriously buggy, but it happened to work on my machine) and
a small filesystem.  That was about when I made 0.01 available (late
august-91? Something like that): it wasn't pretty, it had no floppy
driver, and it couldn't do much anything.  I don't think anybody ever
compiled that version.  But by then I was hooked, and didn't want to
stop until I could chuck out minix.

 3) Would new linkers and loaders have to be written before you get a basic
    kernel running?

All versions up to about 0.11 were crosscompiled under minix386 - as
were the user programs.  I got bash and gcc eventually working under
0.02, and while a race-condition in the buffer-cache code prevented me
from recompiling gcc with itself, I was able to tackle smaller compiles.
0.03 (October?) was able to recompile gcc under itself, and I think
that's the first version that anybody else actually used.  Still no
floppies, but most of the basic things worked.

Afetr 0.03 I decided that the next version was actually useable (it was,
kind of, but boy is X under 0.96 more impressive), and I called the next
version 0.10 (November?).  It still had a rather serious bug in the
buffer-cache handling code, but after patching that, it was pretty ok.
0.11 (December) had the first floppy driver, and was the point where I
started doing linux developement under itself.  Quite as well, as I
trashed my minix386 partition by mistake when trying to autodial
/dev/hd2.

By that time others were actually using linux, and running out of
memory.  Especially sad was the fact that gcc wouldn't work on a 2MB
machine, and although c386 was ported, it didn't do everything gcc did,
and couldn't recompile the kernel.  So I had to implement disk-paging:
0.12 came out in January (?) and had paging by me as well as job control
by tytso (and other patches: pmacdona had started on VC's etc).  It was
the first release that started to have "non-essential" features, and
being partly written by others.  It was also the first release that
actually did many things better than minix, and by now people started to
really get interested.

Then it was 0.95 in March, bugfixes in April, and soon 0.96. It's
certainly been fun (and I trust will continue to be so) - reactions have
been mostly very positive, and you do learn a lot doing this type of
thing (on the other hand, your studies suffer in other respects :)

                Linus

Sunday, May 06, 2012

Ubuntu 12.04 and Unity Thoughts

About a week ago, I decided that I wanted to try out Ubuntu 12.04, since I was disappointed with my first experience with Unity, I wanted to give it another try.

My first mistake was to put it on a USB flash drive. I thought that perhaps that because I set it up to use the ext 3 file format that it caused it to be sluggish. So, after a day of on and off fiddling with it, I re-installed it onto the flash drive with ext 4. Still not very joyful. Screens would "freeze up" for a few minutes But it looked nice. So, Once again, I installed it on an external USB Hard Drive, after I created a partition on the HD for it. (I really need to make a partition on my hard drive for testing distros, but that's another tangent that I need to stay off of). 2-3 days later I finally get it installed where I could use it.

It's nice and it's usable.  Canonical stated that they wanted  to get away from X and move towards Wayland.  This movement might lead to other new and great things for the Linux world.  I also realize that Canonical wants move onto other platforms for their OS, to make Ubuntu useful on touch screens, and other interfaces, such as TV's. They've got great plans. I applaud them for that.  I support them trying new things.  I think that their vision is working. Canonical says that they're about 2/3 of the way done.  When and or If I ever get a tablet, I'd like to try Unity on it.

By default, it feels sparse.  I think that I'm finding my self with a love/hate thing going on with dash. I think that's kind of the "less is more" thing going on with it, of if it's just due to the newness of the desktop interface. In any case, there's a few things that I'd like to change if I were to use this full time.


  • Dash Home: Find away for it to default into the Apps Filtered Results view, as an option, and move it to the left of the screen, since everything else is on the left, why traverse across the screen to click on the lists? 
  • Nautilus: I'd want to put Nautilus Elementary on it. 
  • A viewer such as gThumb or FSpot that allows one to quickly edit (crop mostly for me) an image. If all I want to do is view an image, Nautilus handles that ok. 
Some of the changes are kinda snazzy. 
  • Dash Home, bringing up the list of the most recent apps does look like it could be useful. I never made use of the "most recent docs" in the old gnome menu, as my mouse never ventured that way most of the time. This, being presented to me like this does seem to be a positive and useful change that I'd use. 
  • The use of opacity in the menu's etc. Looks really shiny and well polished. 
  • The Ubuntu Software Center, and the suggestions that come up in Dash.  I downloaded Chocolate Doom. It was kind of nice to re-visit DOOM for 20 mins. (My Trackball even worked well!).
  • When there's a program notification the "shaky" icons in the launch bar are nice touch, along with the snapshot sound when you take a screenshot, along with the little pop when turning the  volume up or down via my keyboard buttons. 
All in all I think that they've done a good job with a lot of the design, and usability of Unity.