Merry Christmas

So day after Thanksgiving is when you break out Christmas stuff, right? Well in keeping with my little thing (I won't call it a tradition), last year, I've changed up my blogger template to a Christmast theme. except this year I have a ton more knowledge of CSS, and so I've been able to pull off some pretty funky effects. And besides that I created a new background image (the star), so it isn't so boring now.

I will STILL not break and use cute pastel backgrounds and things, because that's lame. Nor will I upgrade to the new Rails-style templates that they have in the blogger template builder. I'm sticking with the old Minimal Black style by Douglas Bowman, and changing up the css colors and background images. So enjoy! I've got backups of my old style, so that'll be coming back in about a month and a half. ;)

Pandora Music


Pandora.. Great selection of music, stays on topic and all that. But seriously..is there a way to prevent the computer inactivity timeout? Stops playing, starts giving me whiny messages of "Are we playing to an empty room? It costs us to play these songs so we don't want to be playing to nobody."

However, I've got my computer set up with a Kensington FM transmitter so I can listen upstairs (bad laptop won't support hardly anything streaming, bad sound card, etc.). So no, Pandora, you're NOT playing to an empty room. You're playing IN an empty room. But yes we are all still listening.

Running a short test right now to see if that notification is based on website or computer inactivity. If computer inactivity (mouse movement, screensaver, etc.), I'll just keep mouse jiggler running when I want to run Pandora, and that should keep it live. If not, I'm screwed. Either that or I'll just by a Wi-Fi media player one day. When I have actual money that is.

Initially I had hoped that they might have something like an open API which would allow me to develop (with more effort than I'm willing to put into it), an application which would let me control playback from a remote machine. But alas. No... However I did find a plugin hack to play Pandora in Winamp. I'll look into that. Hopefully if that works, I can set up a few Winamp tools to work with it and be able to control it remotely from there. However, this hack uses Pandora Mini, which I believe is a scaled down, no controls version. Well, maybe it's like mobile with Like, Dislike and Fastforward. We'll see. I'll have to try it out later, but right now I'm blogging. Come on!!

Ruby on Rails for Windows

It was only recently that I FINALLY figured out just what Ruby on Rails is. From most of the posts I saw all I could make of it was "it's the thing that runs Twitter." Okay..so what's it DO?

Well as it turns out, from what I can make of it, Rails is a new web framework designed to streamline web design...BETTER than PHP/ASP/Javscript. So basically it's a new kind of webserver.

Well I decided that I wanted to try it out. Unfortunately, I don't run on Linux, and every time I do I get very frustrated. So I decided to try and get it going on Windows (XP to be exact). And I did it! Of course, I had to use an online tutorial (which is fairly outdated by about 2 years) located at All About Ruby on Wordpress.

And with a few modifications and updates to the main system, I was able to get it to work as is right now!

And this is as follows:

Install MySQL (or any other SQL engine, but I already have MySQL installed, so that's nice.)

Install Ruby (I had an old version 1.8.7, so I upgraded to 1.9.3p0. The tutorial says you'd also need to install gems, but I didn't have to. 1.9.x came with it pre-loaded. The installer for Windows is located at RubyInstaller. I installed to C:\Ruby\ (they recommended C:\Ruby193\, but I might want to upgrade. And what's next? Ruby194? Ruby200?).

I also made sure I included C:\Ruby\ in the windows path, and associated *.rb files. I also installed the TCL/TK addon, which I doubt I'll ever need, but hey, it's America where more is better!

One thing I also noticed later on in the installation was that I needed the optional DevKit located on the same page at RubyInstaller. At the time of this writing, the file is called DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe. Otherwise the "gem" (a friendly name for ruby add-on methods).

The GitHub tutorial states that DevKit was written under MinGW. Now I'm not too happy with Linux frameworks in Windows (MinGW, Cygwin, etc), so I was a little worried that I'd have to install the actual framework. Not so! If you look at the GitHub tutorial, you'll see it has installing boiled down into three nice easy steps.

Unzip (from 7zip format) into a nice friendly Ruby-Dev folder (I chose C:\ruby-dev\) and navigate in via cmd window. By the way, I've learned it's never good to run ruby scripts from Windows Explorer. If it fails, the resulting command window closes automatically and you never see what's going on, so it's better to Start/Run/cmd.exe and navigate in via the DOS window.

Once in the Ruby-Dev directory, you could run
ruby dk.rb.

This by itself will just display a help screen with what you're actually supposed to do.


ruby dk.rb init
This generates a config.yml (a configuration file which in this case just tells the installer where the actual Ruby installation is located). You can open this config.yml in a text editor and see what's going on. There should be an entry near the bottom that says something like
- c:/ruby
or some such. If this line doesn't match your Ruby installation, change it so that it does. Remember you only want to go as deep as Ruby's top-level directory, not "bin" or anything deeper.

Next you run:
ruby dk.rb review
and get to see exactly what it's going to do based on your config.yml. It's not too detailed, so you could just skip this step and go straight to:
ruby dk.rb install


It worked for me, even when I did the confirmations listed in the Devkit tutorial on Github, but I won't tell you how to do that here. You can just read it for yourself (see the link above).

With this done, I could now begin the Rails installation. Remember rails is simply a new way of web developing. Basically, underneath all of the sparkles, it's nothing more than a webserver. Sure a webserver with a completely new way of writing the actual pages, but a webserver nonetheless.

According to Rails On Windows, you can now install the Rails gem. Remember gems are just add-ons for Ruby, much like you can install Android development kits to implement for the Java language. Except gems are just little default programs that can be called from any other program you write yourself to add functionality.

So anyway, install the Rails gem with dependencies included by running from the command window:
gem install rails --include-dependencies


If all goes well, the script should download all of the gems required to run rails out of the box, plus all of the documentation (ri and rDoc).

Once this is done, you'll be able to create a new directory for your rails project(s) (I put mine in C:\Rails), navigate there and run:
rails firstproject


This will set your project up and hopefully not stall out and crash when it tries to install JSON support (it did when I tried, but that's why I set up the DevKit detailed before, and after I did, it worked fine).

Once it's completed and you have received the 'finished successfully' message, you can now navigate into that project folder (cd firstproject), and run:
ruby ./script/rails server


Rails will now start up and you should see a few messages such as:

=> Booting WEBrick
=> Rails 3.1.1 application starting in development on http://0.0.0.0:3000
=>Call with -d to detach
=>Ctrl-C to shut down server
[2011-11-12 13:17:03] INFO  WEBrick 1.3.1
[2011-11-12 13:17:03] INFO  ruby 1.9.3 (2011-10-30) [i386-mingw32]
[2011-11-12 13:17:03] INFO  WEBrick::HTTPServer#start: pid=952 port=3000
It may take a while for all of these messages to appear, but once they have, you can now go into your browser and navigate to http://localhost:3000 and HOPEFULLY see a 'Congratulations and welcome to Ruby on Rails' or some such title screen.

That's the extent of THIS tutorial. I still have yet to figure out how to set up the database and tables and make it all come together that way, but at least I got the server up and running and displaying something nice in my browser!

Cell Phone to Sound Board for only $20!


I have successfully finished yet another garage-shop electronics project that actually WORKS!

Tuesday, Pastor Mike at Rez announced that in two weeks, when they're on their short-term missions trip to India, they'll be performing yet another Skype call in to 6:33 pm. However, the last two or three times they've been anywhere, they've tried this, and every time it's been a rig. Here's how they did it: a laptop on their end runs Skype, the Mac computer on our end runs Skype, but the bandwidth is low enough that we can only manage video. The audio cuts in and out. So for audio, we do a regular cellphone call (and use the headphone jack on the phone to pipe it into the sound board at church). And on top of that, we relied on the built-in mic in the cell phone to pick up any audio for the overseas guys to hear. A really poor setup to say the least. And each time, I've promised to come up with a better solution for next time.

Well, I finally did. After 3+ skype calls, I finally broke down and built a phone to generic audio converter box. This basically takes the standard 4-conductor headphone jack that plugs into any modern phone for hands-free devices, and converts all three circuits into ¼" monoral TRS jacks. These jacks are left and right headphone audio out, and microphone in.

It took a little more than just straight wires on the microphone, simply because the output from nearly any audio device (except for a real microphone) are going to be a lower impedance than the input on the cell phone can handle, so I had to dumb it down with resistors. With some help from my dad making a few modifications to my schematic, I was able to solder and wire everything up yesterday, and then just an hour ago, I managed to find a workable solution to hook it up to my computer at home and make it all work. And yes, it did work! I called my mom on her phone while the box was plugged into mine, and I was able to speak into a big microphone and she heard me, and then I hooked the audio out to my computer and I was able to hear (and even record) her over my computer speakers. YES!!

One of my biggest goals for this particular project was making sure that all the connections were well insulated and well soldered in. I have made several projects that had pretty poor solder joints and were always giving out. I didn't want that to happen this time. So I made sure that all of my leads were long enough and that there were no nicks in any of the wires. It seems to be solid! Everything works beautifully and there are no shorts anywhere.

My BIGGEST problem was soldering up the 4-conductor surface mount headphone jack. This was one type of thing I could not for the life of me find instructions on how to do. Nor was I expecting it to be that difficult. But the device was I think ROHS-compliant and thus did not take regular solder all that well. Besides that, I didn't have a fine-tip solder iron, nor any fine-pitch solder. I don't have the money for a $400+ Weller. All I have is a 40 watt radio shack iron.

Well the solution I came up with was to just completely remove the plastic insulation from around the four conductors on the headphone jack and then just wrap around the single-strand cat5 wire around each of them and solder them into place. Once hot enough, the solder flowed fairly well and I didn't have any big problems after that.

Actually I did have one minor problem, but that's when I fell in love with hot glue. After soldering up those wires to the 4-conductor headphone plug, I found that I needed to insulate them from one another. But I didn't have any 1/8" heat shrink, so I decided to use what I saw one tutorial on the web use: hot glue! With a toothpick I was able to get a little glob of melted glue down between all of the leads on the headphone jack. But then the ground tab didn't want to bend back in all the way (and make room for the black plastic housing), so I just pushed the housing as far on as it would go and then glued that in place as well.

On top of using hot glue to pretty much epoxy the entire plug assembly shut, I also used it to stress-relieve the hole in the box where the wires for the plug were coming through. Since I used a drill to come through the main plastic project box, there were rough edges which would eventually have worn through the insulation on the wires. No longer. They're glued in!

Lastly, I used perfboard to wire in the microphone volume control and other impedance-matching components including a 1uF capacitor to remove DC offset on the line. Works great! The potentiometer I drilled into the side of the box opposite the headphone plug. Then on an adjacent side, I drilled in the three ¼" TRS jacks, 2 for audio out, 1 for audio in.

With all of this in place, I will be able to take three patch cables and connect them between my box and an audio input and output on the sound board. Since the group is going to do their thing in TWO weeks, I'll be able to go in next Tuesday and do a test run with Dad. I'll hook up either his phone or my phone and we'll test it out with the other in the other room/other end of the building. The goal will be to communicate with the remote phone via the large speakers and a hand-held mic, both of which feed into the big sound board.
 
Is this how they do it on radio with making calls in? Sure. But some company has probably made this sort of thing a lot cleaner and flawless. However, I made it myself and it works! And it only cost me $20. Well…besides the box, which I already had from another project years ago. But yes! It works!! And if I can get my own patch cables at home, I'll be able to record YOU when YOU call me! Or maybe phone interviews or anything else! So excited that this actually works. HA!

Panoramio

I've at last found a way to post my newest Panoramio photos places other than Google Maps/Earth and Panoramio proper: the API widget! With this, I can add an iframe to any page and display my own photos from most newest to oldest. Right now I'm testing it out on the sidebar. It takes a little bit of time and effort to load the thing, but it seems to be working wonderfully anyway! See if THAT works for ya.

Geotag Hack for Garmin Nüvi/Panoramio Photos

How to manually geotag photos for the Garmin Nüvi 1490
Does NOT require the Garmin Connect software.


Recently (yesterday) I was nominated to read up on and figure out the Garmin Nüvi 1490 GPS unit for a friend of the family. Well, looking through the features, I found that photos can be loaded into the unit and displayed in various locations, such as the bootup screen, a simple slideshow, or even as a navigate-to-photo feature!

Now, I assumed that somehow the unit would read out Geotagging meta data from any old photo you might tag in something like Picasa and copy to the unit. But this is not so. Actually, Garmin has signed a contract of some sort with Panoramio, an online photo-sharing site specifically for photos of general public areas, usually landscapes, historical photos, or any other pictures based mainly on a location. By connecting the Nuvi to the computer, one can navigate to http://connect.garmin.com/photos, browse the map for specific Panoramio photo, which, if they have geotag information loaded, will show up on the map, and add it to a separate dock area, which, by using the Garmin Connect software, can be downloaded directly to the GPS unit.

All well and good, except that in the last month and a half, I've uploaded about 20+ photos to Panoramio and NONE of them are showing up on the Garmin Connect map, though they specifically said in the Panoramio forums that they would after some time. And to top it off, a photo that my dad posted about four years ago is also not appearing! Not very on top of this little feature, are we?

Besides that, all of the other threads on Panoramio boiled down to "downloading Panoramio photos to your computer is illegal" and NONE of them gave any helpful information.

So, I decided to do some research and figure out just exactly how the Garmin Connect tool synchronized with the photos feature. When I plugged the unit into the computer via USB, two new drives were mounted: the Garmin Nuvi drive, which is the image of the internal memory, and a Removable Disk, which was accessing the Micro-SD expansion port.

Navigating into the Garmin Nuvi drive (on my machine, I:), there are a number of files and folders:
.System
Garmin
GPX
help
JPEG
keyboards
Reports
Screenshot
Text
Vehicle
Voice
.Volume.icns
autorun.inf
nuvi_drive.ico
Navigating into the GPX folder, I find three files:
Current.gpx
Panoramio_20110810T103416.gpx
Position.gpx
From my previous research using our own GPS unit, the GPSMAP 60CSx, I know that GPX files are an XML-based file that can be opened in any text editor, and record specific gps coordinates along with names of the locations, timestamps and sources. Knowing that the Garmin stored everything in GPX made decoding it so much easier! With this knowledge, I was able to determine that GPX/Current.gpx is the database that stored saved searches, tracks and tagged photos downloaded from Panoramio, GPX/Panoramio_20110810T103416.gpx is the list of geotagged photos downloaded from Garmin Connect/Panoramio, and GPX/Position.gpx is probably the unit's current position.

Assuming that the Current.gpx file is updated regularly based on what the the unit is detecting, I decided to decode the Panoramio_20110810T103416.gpx file. And it worked! The conclusion I came to was the following: photos downloaded from GC/Panoramio are not tagged in the unit using JPEG metadata, and the unit can't detect JPG location metatags. Instead, Panoramio also sends location data alongside the photos that the unit downloads, and injects this information into the Panoramio_*.gpx file. THEN when the photos are opened in the viewer, the proper location-based tools are activated.

Here is a waypoint for a specific Panoramio photo:

<wpt lat="40.615972" lon="-105.171969">
<name>Northwest of Fort Collins</name>
<src>Panoramio <link href="Garmin/JPEG/Panoramio_11075531.jpg">
<type>image/jpeg </link>
<link href="http://www.panoramio.com/user/965071">
<text>WildernessShots.com</text>
<type>text/html</type>
</link>
<link href="http://www.panoramio.com/photo/11075531">
<type>text/html</type>
</link>
<sym>Scenic Area</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxx:Categories>
<gpxx:Category>Photos</gpxx:Category>
</gpxx:Categories>
</gpxx:WaypointExtension>
</extensions>
</wpt>
With this information, I think it would be fairly self-explanatory to edit this file. I have yet to actually try it out, but when I figure it out, I'll get back with you!
------------
SUCCESS!!! I simply added a new <wpt> ... </wpt> section to the panoramio_20110810T103416.gpx file and when I rebooted the unit (unplugged it from the computer), the photo appeared in the list AND had the location tools in the lower corner, along with my username and all that!! WONDERFUL!

And just as I suspected, Current.gpx was also updated to reflect these changes, even though I didn't do a thing to them.

So all that needs to be done to add photos to your Garmin, and tag them without worrying about the Garmin Connect/Panoramio tool, simply copy the photos into one of the locations where pictures are kept on the unit. The tool downloads them to /Garmin/JPEG/, but I'm sure /JPEG/ will do just fine (/JPEG/ is where all the sample photos are kept).

Then edit the /GPX/Panoramio_<datecode>.gpx file and add a new waypoint using the <wpt> ... </wpt> tags as shown above. Or if you have a secondary program to save GPX files, I'm sure there is a way to just fix this up to save in this format. Also, the datecode in the filename is in the following format: yyyymmddThhmmss, so in my case, it was 20110810T103416. Just to keep up with the consistency, I also changed the filename to Panoramio_20110810T173100.gpx.

So in the end, here is the waypoint I manually and successfully added, along with the required XML and GPX definition tags:


<?xml version="1.0" encoding="UTF-8"?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd" version="1.1" creator="http://connect.garmin.com/">
<wpt lat="40.631839" lon="-105.143142">
<name>Sunrise Over the Neighborhood</name>
<src>Panoramio</src>
<link href="Garmin/JPEG/56784165.jpg">
<type>image/jpeg</type>
</link>
<link href="http://www.panoramio.com/user/5873911">
<text>Daniel P</text>
<type>text/html</type>
</link>
<link href="http://www.panoramio.com/photo/56784165">
<type>text/html</type>
</link>
<sym>Scenic Area</sym>
<extensions>
<gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3">
<gpxx:Categories>
<gpxx:Category>Photos</gpxx:Category>
</gpxx:Categories>
</gpxx:WaypointExtension>
</extensions>
</wpt>
</gpx>
I'm sure if you wanted to add non-panoramio files, it would be just as easy. Just change/remove the few <link> tags to reflect something else and you'd be good to go!

Now to write a program to do this for me...


ISO vs. ZIP/RAR

What is an ISO file? An ISO file put simply is a perfect copy of a disc (usually optical) stored in one file on the hard drive of a computer. ISO is uncompressed and contains even free space of said disc.

According to Wikipedia, "An ISO image (International Organization for Standardization) is an archive file (also known as a disc image) of an optical disc, composed of the data contents of every written sector of an optical disc, including the optical disc file system." (Wikipedia, ISO Image, June 2011)

This varies from a compressed archive such as ZIP, RAR, TAR, GZ, BZ2, etc, in that an archive file contains only the files and all unused sectors are removed to save space. With this in mind, one would think that an ISO file was simply an uncompressed archive.

HOWEVER, this is not entirely true. Even uncompressed, an archive file still removes completely-empty bytes. There's no need to zip up the files of an entire 40GB disc and end up with a 40GB file, unless there was actually 40GB of data that was filling the entire thing up! If there was only 15GB on a 40GB disc and you archived the entire disc uncompressed, you would end up with a 15GB file.

This is not true in the case of an ISO file. When you create an image of a 4GB DVD, you will end up with a complete 4GB ISO file, even if half the disc was unused.

This is useful because the main point of ISO files is to be able to create a disc image file and re-burn it to another disc, thus making a copy. In this case, file locations are important in addition to file data, and an burning an ISO image, we are sure that all of the files are laid down on the surface of the disc in exactly the same configuration as the master. Of course, this would only REALLY matter if you were dealing with a raw DVD video that would be more reliant on the burning process than an MPEG-2 file burned to the DVD as data.

Ubuntu Server - Changing Screen Resolution with GRUB2

Recently I drug out my old Dell dinosaur (Dimension) from the closet and decided to try installing Ubuntu server onto it.

Well, all went well until I also attempted to add the Xubuntu-Desktop package, so I could better run around and do things in there. A quick update for an nVidia graphics driver froze the computer directly after login, and all the stuff I found in the forums didn't really help that much, except for possibly uninstalling all the packages that xubuntu-desktop stuck in there. Since there wasn't a lot on there (except for maybe the neat desktop backgrounds that seem to change with every version of any Ubuntu release), I figured a fresh install would be best.

After reinstalling the OS, I did a repository update, which screwed up my screen resolution. My monitor can handle 1280x1024, but the update had changed it to 640x480.

Note: This is Ubuntu Server 10.04.

How do you change screen resolution within a pure terminal interface? GRUB2.

Around version 9.04, Ubuntu upgraded the bootloader from GRUB to GRUB2. This is way more confusing, but can still be figured out.

For the sake of simplicity, there is no longer /boot/grub/menu.lst. It's just not there, nor will it be used if you create it. Instead, all the configurable options are now moved into /boot/grub/grub.cfg

The problem is though, with the command $ sudo update-grub or on a kernel update, this file is overwritten. Therefore, this file should not be editted.

But where does GRUB pull all this information when it DOES do an update?

All the config options are actually stored in the /etc/grub.d folder. This folder are 7 sub-files:

  • 00_header
  • 05_debian_theme
  • 10_hurd
  • 10_linux
  • 20_memtest86+
  • 30_os-prober
  • 40_custom

On grub-update, all of these files are executed and mashed together and copied into grub.cfg. But these files don't change ever. Therefore, you can change them yourself, adding entries and such.

I don't know all the details, but the process for adding more operating systems is much more complicated than before. They've decided to use some C-style function for each menu entry, rather than the old way of a simple list with tabbed sub-values.

You can see the way menu items are placed by looking directly at the /boot/grub/grub.cfg file and scrolling down to the 10_linux section.

In mine, a single final entry appears like the following:

menuentry 'Ubuntu, with Linux 2.6.32.32-generic-pae (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod ext2 set root='(hd0,1)' search --no-floppy --fs-uuid --set 0689cdb7-786d-4a68-b14b-634b85c9961b linux /boot/vmlinuz-2.6.32-32-generic-pae root=UUID=UUID=0689cdb7-786d-4a68-b14b-634b85c9961b ro quiet initrd /boot/initrd.img-2.6.32-32-generic-pae}

All this is somehow scripted into the 10_linux file. You won't see this exact entry anywhere in the file, but instead they've created a way for it to execute a 'find all options and translate them into this format' when you do sudo update-grub.

But anyway, back to the issue at hand. My screen resolution is messed up. I said GRUB2 was the solution to fix this. The options for screen resolutions are stored in /etc/grub.d/00_header.

Open the file in an editor, and scroll down until you see the if statement:
  if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=640x480 ; fi

Simply change 640x480 to whatever your desired (and of course, possible) screen resolution is, save, update-grub and reboot.

Oh, and if it matters, a read through the Official Ubuntu GRUB2 Docs might help.




I just now decided to read further into that help file right there...apparently you can also change screen resolution in the /etc/default/grub file, as well as turn on countdowns and things to make sure that you can actually use the menu.

In /etc/default/grub:

GRUB_GFXMODE=640x480 - Change to something your screen can handle and that you want. Maximum is usually okay if you're good on small text. They say in the documentation, that you can comma-separate values also, in case one doesn't work. Just put them in a DESCENDING preferred order, usually high to low.

Also make sure you uncomment the line by removing the # symbol at the beginning of it.

The vbeinfo command in the shell should give you your valid resolutions.

Also, if you find that there is no menu displayed, you can turn on timeouts in this file.

if GRUB_HIDDEN_TIMEOUT is set to something above 0, a message will be displayed on bootup saying something like, "Press any key for the menu..", unless of course, the GRUB_HIDDEN_TIMEOUT_QUIET is set to true. Then you will see a black screen for that amount of time.

If GRUB_HIDDEN_TIMEOUT is empty (GRUB_HIDDEN_TIMEOUT=), GRUB_TIMEOUT will be used instead, and if this is a number greater than 0, the menu will be fully displayed every time you boot up.

Just remember to run sudo update-grub after editing.

Garfield!!

A long time ago, I discovered that Jim Davis, the author of Garfield comics, syndicates his stuff with uComics. An interesting, and probably well-known, fact is that uComics actually stores the images from a particular cartoon in a fairly friendly directory structure! At least, they do with Garfield comics. So I was able to do some back-door hacks and write a simple little script that would in essence harvest Garfield comics directly from uComics.

Apart from being able to download a year's worth at a time (any more would probably kill my computer and the web host), I also was able to create a script that would grab today's Garfield comic and display it with general navigation buttons to yesterday..or really any day since it was first begun in 1978.

Anyhow, I have been hosting this script on both my personal web server and on Brinkster. Today, I 'upgraded' my script, cloning it to a new page which is embed-friendly:

The fun of an embed page is that I can put the proper code into any webpage that accepts HTML and this will display these comics inline!

So, to embed Garfield on YOUR website/blog, simple paste the following into anything that accepts HTML (on Blogger, this is an HTML/Javascript widget).

<iframe src="http://ppsstudios.brinkster.net/TodaysGarfield_Simple.asp" frameborder=0 width=100% height=240px>Your browser does not support iframe.</iframe>


If all goes well, you should see a floating box with the comic and a few links displayed right on your page (such as the one in the footer below)!

National Geographic

This morning I've been watching a number of interesting videos taken at zoos and exhibitions including a snake befriending a hamster, a squirrel that knows how to water-ski and others.

However, there were a few suggestions on those that linked to some National Geographic videos that turned out to be AMAZING.

Here's the playlist I picked from their channel:

View in separate window

Step Seq.

Recently I discovered a 'game' on Kongregate called Step Seq. Apparently there are electronic devices that look exactly like this simulation. Their point is to create music on a time and frequency grid. I've been playing around with this one, seen at http://www.kongregate.com/games/quickfingerz/step-seq.

The fun of this is that I've also been video-recording a few of these and have been posting them to Youtube.

The few I've uploaded include an initial boring tutorial and then three more samples. They can be seen with the following links:



I've also created a Youtube playlist for all of my Step Seq. uploads.

View playlist in new window

New Videos and Subscription

Greetings, all! It's been a while since I did any animation. My attention has been more on live videography of various things including game and oscilloscope capturing. However, just today I put together something like four new animations, plus one overdubbed video of myself whistling three parts to a song. Vain me, eh?

Anyhow, here is a list:

In addition to my own new videos, I am pleased to announce that I've connected up with Andrea90723. As of yet, she has not uploaded anything, but hopefully soon we'll be able to expect some fun stuff from her!

Since number of views is the prime goal of Youtube, visit these, link to them, embed them wherever and subscribe! Or just ignore me altogether. I really shouldn't care THAT much.

Youtube in 3D

Oh cool! I found that in TestTube (the Youtube labs), there is a feature to make a stereoscopic 3d video out of two videos on your channel! So I quick opened up 3dsmax, did a rotation around the classic teapot (which had a bit of texturing), and rendered two cameras side by side.

Left: http://youtu.be/lhfBXFSXRFM


Right: http://youtu.be/D6qsOT6wPXA


Together: http://youtu.be/PNUlqPiMynA


They say in their settings that they do NOT support the theater 3d glasses (the polarizer lens type). But they have added capability for 3d tv's and computer monitors. For us unrich people though, we can use the classic old-school red and blue glasses and view them. Or they have options to change the colors of your classes from red-blue to magenta-green, blue-yellow, or none. See all the options here: http://www.youtube.com/select_3d_mode.

Step Seq.

A few days ago I discovered an amazing music program hosted on the game site Kongregate. Apparently the creator, the guy who runs QuickFingers.net is in some sort of contest for a LOT of money to see who can make the coolest music game on that site. Well, his was on top when I checked a few days ago, and I tried it out. It was AWESOME!! The game he created is called Step Seq (try it at www.kongregate.com/games/quickfingerz/step-seq).

Really, this is just like any hardware-based step sequencer, which is apparently some sort of grid of buttons that you can press and it will modulate a midi device and play back notes. Each row on the grid is a single note, while each column is some sort of time index. The sequencer part is based on a concept that the grid will play itself over and over and you can change the settings each time.

Well, this game-based one here is absolutely incredible. When I first looked at it, it was barely viewed and still in the testing stages, meaning that the rating numbers were not high. This was ONLY because it was fairly new. I played with it and immediately rated it 5 stars and favorited it. When I came back the next day, it had 10,000+ views already. Obviously this thing is a huge hit.

Well, yesterday I recorded a video of my 11th song using version 0.3.

You can view it at: http://youtu.be/UOFSO7n-obo


It was done as sort of a tutorial, so it's a bit long.

When I came back just like 20 minutes ago, I decided I wanted to record another video. Mostly my songs are fairly random. I start out with a single note and see where it goes from there. So far, they've ALL been different. Well, I clicked through the mandatory get started screens when loading and then started playing, when I noticed the Pad panel was missing!

I looked around and saw that instead of the percussion being a selection of a few different pre-programmed sequences, it suddenly had its own entire submenu! That's when I realised that sometime during the night or today, he updated it to version 0.4! I explored around (which you will see in the following video), and found that not only had he given users the ability to create their own percussion as well as the previously-available instrument 1 and 2, but there was an entirely new menu of Advanced options. This gives the user the ability to change keys, change the actual instrument definitions of Instr 1 and Instr 2, and even edit the reverb and echo settings! TOTALLY a surprise!

The only thing I hope for now is that once he reaches version 1.0 or something, he makes an installable offline program. Loading it from a website is very taxing on my computer, and I usually have to turn off everything in order to play with it, but if it were a standalone program, I think most of those problems could be alleviated.

In any case, I'm totally loving this thing. Not only is it letting my creativity out, but the features he's adding are making the thing so much better many times over.

One thing my mom suggested is that I make ringtones from it. I think I'll do that soon!

Here's the sample of version 0.4: http://youtu.be/jgsZEvezWaI

Textpad Document Classes

Textpad is my preferred text editor. It is super-simple, but has a few advanced features that really make writing source code for various things so much nicer. Besides that it has coloring for various document classes.

Document classes are basically groups file extensions whose properties can be changed for each group. Example: you can completely change the coloring, paragraph options, tab-width and printing properties for HTML files only. Or you could add line numbers to Java script files and leave line numbering out for everything else. Or perhaps the PHP comment is not the same as the html comment (which it isn't! HTML comments look like this: <!-- Stuff --> and PHP comments look like this: // stuff or /* more stuff */.

Since I've been doing a lot of PHP scripting I was growing tired of looking at their comments and having them displayed as regular text (coloring-wise). So I decided to try and figure out how to add // and /* */ to the comments part of the HTML class (which was where the PHP file extension was located). Editing these options was conveniently located in a few preloaded syntax files (html.syn, text.syn, etc). What I found was much much cooler. I found out how to create an entirely -new- document class and was able to apply the php.syn file to it! Now the coloring on all php documents is specialized to that particular programming language!

Below is the process I took to create the PHP Document Class, although this can be applied to any filetype that you may want to open in Textpad:
  1. Make sure all internal files are closed or you will not be able to add a new document class.
  2. Go to Configure/Preferences.
  3. Click the Document Classes listing (top-level).
  4. Click the Add button. If the add and delete buttons are not available, you still have a file open in the current Textpad session.
  5. Type PHP in the empty box that appears at the bottom of the list and Enter.
  6. Click apply. Your new Document Class entry should appear in the rollout of the "Document Classes entry.
  7. The new entry should inherit the properties from the Default Document Class.
  8. Under the Document Classes listing, select the new PHP entry.
  9. Under the "Files in Class PHP" window, click the "New" button and type *.php. Enter to apply. Also add an entry for *.phps.
  10. Rollout this new PHP Document Class entry.
  11. Select the Syntax entry.
  12. Check Enable Syntax Highlighting. This will enable the Syntax definition file pulldown.
  13. Pull down the "Syntax definition file" box. Select "php.syn" and say OK.
  14. Close all Textpad sessions and re-open a php file to see the changes. Verify that /* */ patterns are the comment color and that () {} and [] are the brackets color.
  15. Optional: If you plan on printing your php sources, you may want to include line numbering.
  16. Select the Printing entry.
  17. Check the Options>"Line Numbers" box.
Other options in a Document Class include a lot of dealing with end-of-line behavior. The important one that I noticed in the HTML Document class (which was NOT included in the default) was the top-level option of "Strip trailing spaces from line when saving". One other option that I just now decided to explore was the Tabulation entry. This is just a way of determining how big the tab character should be in number of spaces. If you look at the Java entry (which cannot be deleted), you will see that it has a default tab spacing of 4 characters and an indent size of 4 (contrary to the Default document class which is at 8). Therefore, I decided to copy the Java values into the PHP Document Class.

And in the time it's taken to write this article, I've also added a class for CSS files, since they're not included ANYWHERE!

Anyhow, hopefully this clarifies this type of thing for someone.

Preventing constant reboots on a network

For some weird reason, I found that my router (Netgear WNR3500L) (or my connection) was giving me problems...every so often it my LAN connection would completely reset and require me to reboot the computer, just to get the webserver back online (it would become completely unreachable via No-IP DNS -and- the external IP address..some 5xx connection reset error or something).

Recently I found that the problem was my router. The DHCP server built into it has a set lease time of what my connection says is 24 hours, although it only lasts about 12. I found a workable solution, yet it was rather annoying. I set up my Telnet server to automatically shut down every 12 hours, as well as the client that was accessing it. On top of that, I used Windows Scheduler to run reboot.cmd a minute after the server was shut down, and then used TweakUI to automatically log me back in, plus another command-line script that would autolock the computer after logging in. This way all the applications would be preloaded, but the computer would still be secured.

Got all that?

1. Telnet shutdown
2. Telnet client shutdown
3. Computer shutdown and reboot
4. Autologin (starting all the servers up again)
5. Autolock

DHCP is renewed, the connection is reset, and 100% accessible over the web.

The Telnet server is called PennMUSH, which is a Multi-User RPG engine which uses the common MUSHCode language to program.

For archival purposes, here's the detailed setup:

PennMUSH:
@@
@listen Shutdown Machine = ^-*: @switch [or([strmatch(%0,00)],[strmatch(%0,12)])] = 1,{@wizwall Shutting down.;@dump;@wait 30=@shutdown};@@ * is passed from the clock hourly as timefmt($H) <= The 24-hour hour code.


MUSHClient:
<timers
muclient_version="4.70"
world_file_version="15"
date_saved="2011-04-05 14:32:04"
>
<timer enabled="y" hour="00" minute"1" second="0.00" offset_second="0.00" send_to="12" at_time="y" >
<send>DoCommand Save("")
DoCommand Exit("")</send>

</timer>
<timer enabled="y" hour="12" minute="1" second="0.00" offset_second="0.00" send_to="12"
at_time="y" >
<send>DoCommand Save("")
DoCommand Exit("")</send>
</timer>
</timers>

reboot.cmd:
@echo off
echo Shutting down
shutdown.exe -f -r -t 30


autolock.cmd:
@echo off
echo Locking computer
rundll32.exe user32.dll, LockWorkStation
Scheduled Tasks:
Add one task to run reboot.cmd. Copy the event within the single task and schedule them to run at 12:02 am and 12:02 pm.
Complicated enough? I figured out a MUCH easier solution
Ctrl Panel>Network Connections>Local Area Connection>Internet Protocol (TCP/IP)>IP Address: 192.168.0.2, Subnet: 255.255.255.0, Gateway: 192.168.0.1, DNS: 192.168.0.1

In essence, setting a static IP behind the router turned of the DHCP lease time for this connection.

I had to do a bit of tweaking in the router config, like releasing the reserved IP for both the laptop (which was using 161.0.0.2) and the server computer (which was using 161.0.0.3) and reserve the first to the server computer based on its MAC. This way the router won't try to assign my manually-entered IP address to another computer and cause an IP conflict error (which can happen).

I've now had the server on for a day and a half (turning off all of this automatic shutdown-reboot stuff) and everything has continued to run with success!

Filehost

I've created an Apache-based filehost. This is generally for short-term downloads that I want to make available to certain people. Really, I don't expect to leave files in this folder up for very long, but only long enough for people to download. How many ways can I say this?

Anyway, you'll find the filehost at http://ppsstudios.myftp.org. If you see anything there that you don't think should be there, give me a buzz with the contact link, which is not at this exact moment available, but will be in a few minutes hopefully.

Enjoy!

Faster Internet is (at least for now) better.

We've just gone live with our newly activated ADSL connection. As of 5:00 this evening, I was able to plug in the aforementioned modem that we bought on Friday and successfully connect to first Qwest's initial login page, then, well, everywhere else! Of course, everybody's test to see if they're connected is Google. Well, not everybody. The modem and the Qwest disc would rather you connect to their homepage, but it's still essentially the same thing.

I had to spend a little time figuring out the best configuration, and I decided to go with the transparent bridge setup, where the modem simply acts as DSL-to-Ethernet translator and all other router functions are disabled. In the same manner, I am able to put in all of the primary internet login information directly into the Wi-Fi router and everything works like a charm.

Of course, with this setup, port forwarding is working wonderfully. I've already opened ports from a telnet server that I have running on my main computer, as well as a few webservers that I have not yet been able to figure out permissions on. For some reason, only the localhost can access it. I'll be sure and fix that before I give any updates on where they are or what they do.

When Andrea got home from work and settled in, she turned on her laptop and managed to get on without telling me. I was a bit suprised, mostly because I was still configuring the whole system and relying on the assumption that nobody would be immediately demanding service from it. But I haven't heard any complaints yet. She had her laptop down on the coffee table with Astronomy Picture of the Day loaded. I mentioned it and her exact words were, "I was waiting for it to load and it just appeared!" So obviously this system is better than I had anticipated. Apparently 1.5Mbps is a TON better than 28Kbps...nearly 54 times as better in fact.

Anyway, yes, we are up and running and everything is functioning perfectly. There are no extraneous redundancies such as making the modem work as a second router/firewall, so we don't have double-network problems to work through. Of course, we still have to call Integrity and get all our stuff filtered, and since we're all on a pretty much parallel network, it won't be easy to get everyone proxied through them unless we install the hardware solution. That's about the only way I could think to make filtering work...and how would that affect my port forwarding requirements? I really really don't know. I hope this works.

Yep! Everything's just fine and dandy here!!

My Router-Modem Setup

!Here's what I've figured out with my router/modem setup:

The router has two sets of plugs in it. One set is the regular ethernet ports to hook in single computers to. However, there is a single yellow port known as the WAN or Internet port. What really is the difference here? I've figured it out. The WAN port actually is the interface to a second half of the router. Just as the router communicates with computers so that the computers can communicate each other, all pieces being in a single "network" the WAN port on the router functions in exactly the same way with the though, though the modem now acts as a DHCP server and the router functions as a regular old client computer on the MODEM'S little LAN, known by the router as the WAN. From there, the MODEM creates a WAN network with Qwest...and who cares what THEY do? The configuration for the modem's LAN is an interface ONLY for the router, and the configuration for the router's WAN accesses the same exact interface, only from the other side.

So in short:

Modem WAN = Qwest Connection
Modem LAN = Router WAN
Router LAN = Computer 1, Computer 2, Computer 3 etc LAN

...
...
...
at least with my setup, this is how it works.


The way I found this out was with the strange way I could somehow access the modem THROUGH the router, even though the modem had a different base IP than the router was assigning to my computer. Of course, the best way to configure a modem is to attach it directly to a single computer and edit its stuff that way, but for some reason I was able to access it through the router. I had also figured that, well with two DHCP servers, one of them could be turned off and the router could assign them all. WRONG. I have to leave BOTH of them on! Why? Because when plugging the modem into the WAN (Internet) port on the router, that network created is entirely separated from the LAN that the router creates with my computer. They are TWO SEPARATE NETWORKS and any single one cannot be terminated, nor can their dynamic IP addresses conflict.

I had tried turning off the DHCP on the modem. This made the modem completely unavailable, because the Router cannot assign IP addresses via the WAN port. It is only a client there. I tried changing the IP address of the modem to the same IP address the router had on the LAN. This made BOTH unavailable to the ultimate client: my computer, because to my computer, these addresses were conflicting. I tried changing the IP of the Modem to something a little more friendly than the industry standard 192.168.0.1. In fact, in each case, I changed it to something like 161.0.0.161 or 161.0.0.200. But this was in the thought that the modem existed on the LAN. It does not. The modem exists on its OWN network with the router only.

So, as I lay awake at night, I thought, "What if I were to keep everything on, but change both the IP address of the modem and its DHCP assignments to the same, but completely different network? My router right now is on the LAN address 161.0.0.1 and it assigns clients IP addresses from 161.0.0.2 to 161.0.0.254. Those are two different screens on the router configuration. The modem has almost the exact same screens. A place where you can set its IP and a place where you can change its DHCP." Then this two-network configuration dawned on me and I knew it would work. There is also a WAN screen in the router configuration which shows its own DHCP-acquired IP address on the Internet.

Thus, when I got up this morning, I decided to play around with it, but with this knowledge in mind.

Going into the modem's DHCP settings, I changed the assignments to 160.0.0.2 to 160.0.0.254 (different from the router: 161.0.0.2-161.0.0.254). I got an error saying that the modem's own IP address was not on the same domain as I was trying to change the DHCP settings to. So I went into the Modem's LAN screen, where you can set its local IP address, and changed it to 160.0.0.1. I then in turn went BACK to the DHCP settings and tried again. Nothing changed when I hit apply, no error..and the numbers did not change. However, I figured that it was probably stuck, as a popup had occurred when changing the IP of the modem, saying that it needed to be rebooted. This time, I tried a software reboot via the menus. It worked, I hit refresh, and it errored out.

Oh yeah. Its IP isn't 192.168.0.1 anymore. It should now be 160.0.0.1. So I changed that in the browser's address bar. Lo and behold, it came right up! No problems at all!!

Now then, I've figured out that with this configuration, I have a two separate networks in my system. The router sees the modem's network as the "Internet" and serves to the computers the -real- LAN, while the modem sees the router as -its- LAN and pulls the Internet in as it should be, through the phone line with authentication. With this in mind, it is my new hypothesis that the router will NOT need to be configured to connect to Qwest. It is working thus far..I can connect to the modem through the router, and really, the modem IS the entire internet as far as my router is concerned. At least until I get the modem to connect to the internet and pass information through. So in my router's WAN setup, I should think in terms of "it is only communicating with the modem in this network. Everything should be left as off or default."

And in the same manner, I must consciously remember that all the INTERNET security features are pretty much up to the modem to block/allow/forward on to the router, because in terms of the modem, the router is the only computer connected to it!

Actually, theoretically, I should be able to place a switch between the modem and the router, giving me access to three more ports that will exist in the modem's network. I do have a switch. A switch is pretty much just a passive ethernet splitter, with a few hard-code smarts to make using it faster for all computers. There is no host plug, no client plug...everything just connects to the same string of ports and all interfaces through it function as parallel clients, even the Internet feed (server via router or modem). So, if I were to place my switch between the router and the modem, I should be able to attach a client computer to that switch and sit on the modem's network. In fact, with a switch, I should be able to take the router out of the equation completely. Of course, this would also take my router's wireless interface out, and the laptops would not be able to connect, but the modem would create the LAN network for both the router and a computer.

Now...there IS a feature in the modem configuration. It is called RFC Transparent Bridging. This basically turns off EVERYTHING in the modem and simply passes the DSL signal directly through to the router down the line. If I were to turn this on, my entire web interface to the modem would disappear (requiring a hard factory reset in order to get it back), and my router would be able to be configured with username/password/connection protocols directly to Qwest.

What if...I were to take the above two scenarios and combine them? What if I were to turn on the modem to transparent bridging mode AND split out the signal with only the switch? What if I were to make my LAN completely irrelevant? What if each computer was allowed to directly access the internet on its own?

In this case, each computer would need to be authenticated via their Local Area Network settings to work directly on the internet and authenticate with Qwest's servers. But in each case, the computer would be able to have their own IP with the rest of the world and function on their own! Of course, with this in mind, they would also be tying through the same switch, and so would be able to access each other, even with domain names (or in this case, workgroup names, because I don't have a computer with a DNS server).

Oooh!! With that last sentence, I just came up with another setup! If I could program a single whole computer as a server, I could buffer the Internet from the switch and essentially make that computer my "router."

And the possibilities go on. I could attach a router to the switch, making a wireless subnet (with a different set of IP addresses, of course). I could turn the modem back on, put a server in between the modem and the router and make a three-stage LAN...although this would be rather pointless unless you wanted to serve stuff up with minimal security.

So back to my first and currently-working scenario. What makes accessing the modem, and hopefully the Internet through the modem so easy if a router is buffering the signal and splitting the network into two? My hunch is what is called Routing Information Protocol or RIP.

RIP is defined by the router (modem's client) as allowing a router to exchange routing information with other routers. The RIP direction selection controls how the router sends and receives RIP packets. It can do Both, In or Out. There are two versions for RIP: RIP-1 is universally supported and is sufficient for most networks. RIP-2 allows for more information, uses subnet broadcasting (RIP-2B) or uses multicasting (RIP-2M), but is not as well supported.

RIP is not defined by the modem, but the setup says that "If a gateway or router is set up behind the modem, consult the documentation that came with the router to see if dynamic routing is needed and what version." And in turn, you can change what your router's RIP version is (1, 2 or off).

It is my theory that RIP (termed Dynamic Routing by the modem), is what makes passing information from the router's network into the modem's network (and the internet by extension), and vice versa. It basically bridges the two and says, "Yes the computers on the router's network can access information on the internet. And the computers on the router's network should also be able to access computers on the modem's network...if there are any." And I just tried it. From a computer, I typed in http://160.0.0.2 (the router on the modem's subnet), and it came up smooth as silk. I can get the exact same screen with at http://161.0.0.1. COOL!!! Now to see if I can turn off RIP on either of the devices and still make this work...

With the RIP on the modem off and on the router on, I can still access the modem's subnet (160.0.0.x). When turning off RIP on the router also, I can STILL access the modem's subnet. Okay. My concept of this is off..however, the modem did say that RIP should be enabled if a router is buffering its signal with the LAN, so I will turn it back on. I guess the fact that I can access 160.0.0.x means that this subnet looks like the Internet to my computer. Hopefully it won't conflict with another network on the real internet.....though it shouldn't matter really.

I expect the modem to be assigned a single IP, or at least with the arrival Qwest's documentation, to be given four IP addresses that are assigned directly to me (after all, I did say to the guy on the phone that we would have four computers on the internet at once). And in my modem's DHCP settings, I will make my little window of real-world internet IP addresses available to any client that connects directly through the modem. This means that my own router will have an Internet IP. But in my current setup, none of my actual client computers will. They will rely solely on the router IP for all transactions with the world. This means that my 160.0.0.2-160.0.0.254 will probably have to change.

But...since none of the client computers will have IP addresses on the network, unless they are connecting directly with the modem, it is likely that I will need to set up Port Forwarding for anything I want to serve from a client..web page, Telnet game, etc.

Port forwarding exists in both the modem's and the router's configuration screens. If you refer to my above configuration examples, let's take config 2.

Port forwarding a webserver from C2 through the router would make available to C1, a webpage that by typing in "160.0.0.2:80" it would be able to access. The port from the client would be passed into the router, but it would appear on the modem's network that the router was hosting the entire server, when in fact the client behind the router was forwarding port 80 through.

If I in turn turned on port forwarding in my modem's settings (Security/Port Forwarding) for a single computer, I could pass the router's Port 80 through to...the internet and the IP which is assigned to the modem will be able to be typed in to the web browser and C2's webserver SHOULD pop up!!

This brings up another issue though. While looking for Port Forwarding in the modem's config menus just now, I ran across the modem's IP address config. Does the modem also buffer with another IP address? Will the IP addresses it assigns to the router not be valid on the internet? Ignore Line 182. In the modem's config under the Status button (currently the modem is NOT online), and under Broadband status, it has a place for WAN IP, Gateway IP and modem model/MAC,etc. This means that the modem will be given its own IP which will itself buffer the rest of the network underneath it from the internet. Meaning that with my statement to the guy about planning on four computers connected at once (because there's a limit of five, which doesn't make sense), they're probably going to make me put my modem in Transparent Bridging mode and assume that I don't have a secondary router behind it. They will also assume that my modem is the same box as my router, so really it will be a wireless/wired switch in bridging mode. This will NOT be the case. I SHOULD be using only one of the four assigned IP's at a time and I'll just forward the services through as is required. The end. Deal with it!!!

So far, this is all I have that I could document..next up, what really IS RIP? What is NAT? I don't know...let's find out! :P

Oh hey. I just had a thought. If I forward port 80 from C2 through the router, that should mean that I should be able to access 160.0.0.2 (router's WAN connection) via C1 (or C2 as the case may be), and see C2's webserver rather than the router config! But going from the other way and accessing 161.0.0.1 (router as a server), I should get the router's firmware configuration.

Same with the modem. If I forward the router's new (or old) Port 80 through to the internet, I should be able to plugin the modem's IP address on the internet, and see the router's webserver (or configuration screen) rather than the modem's config. But I should be able to come in from the LAN (160.0.0.1) and see the modem config just fine. This could be cool!!!

DSL and Networking

I've always hated self-help books you find at B&N or the library on how to set up your own home network. In short, they always would assume that you had high-speed internet coming into your house and that you could create a standard configuration. However, up until about 30 minutes ago, we were using dialup for our main internet connection.

I purchased a wi-fi router a few months ago which was able to tie all of the computers in the house together so we could theoretically manage LAN games, streaming audio from one computer to another and sharing a gigantic hard drive. The only thing I had to consciously do was ignore every instance of "how to hook your router to the internet" because routers don't really take into account dialup connections. Here is how it looked:

If you notice, I had a nice little tie point for the four computers (actually, I couldn't make Laptop 2 connect due to Windows Vista finickiness, but it would have worked if I'd been able to sit down and fix it up). But this tie point was not at all able to access the internet. Instead, I had to run a proxy on Laptop 1, which has a built-in dialup modem. That way, Computer 1 and Computer 2 could route THROUGH that proxy via the internal network I had set up and access the internet just fine. Very nice..and workable.

Of course, everybody who has anything to say about anything will say that running dialup through a proxy or internet connection sharing is pretty pointless, and I have to agree. 28Kbps (3.5KB per second) running on even just one computer is painful to deal with. Splitting it between two or more would be one of the most annoying problems you'd run in to. BUT my point was, I wanted to make it work! Putting annoyances aside, will it even WORK? Of course. The picture above shows the configuration that actually worked for me.

In fact, Laptop 1 and Laptop 2 both had dialup modems to connect to the internet, as you can see, but if I had successfully been able to get Laptop 2 onto the wi-fi network, I could have routed that through the proxy so that Laptop 1 would have been the only machine with a real internet connection.

However, just 30 minutes ago, Mom and I got on the phone with our phone company and had them add DSL internet to our landline phone service!! FINALLY I can standardize my router and use the modem port on the back of it...and forget all this proxy and internet connection sharing nonsense that I had to work with.

At least, they said that by Wednesday the line should be activated with DSL. And by Wednesday, they'll have the self-installation disc with all the tutorials on how to make sure it works. I'm excited. We're planning on stopping by Best Buy this afternoon to pick up the $40 modem. Of course, that's a whole new snag. People assume that you don't already have a standalone router that cannot connect directly to the internet. They think that you don't have ANYTHING and that you'll just buy a router-modem combo, which is very true in the STANDARD case.

Of course, the combination router-modem box will cost $100 or more. And the standalone router I have now was $100 by itself. Via marketing logic, you would think that my $100 router by itself is of a higher quality than a router + modem that costs $100. That's my guess.

Anyway, I went to Best Buy earlier this week to check out what was possible and it turns out that for a mere $40, they also have a standalone DSL modem. Of course, there's only one choice in that sense, meaning a DSL modem is a DSL modem. There probably isn't a lot you can do with it apart from hooking it up. And by hooking it up, I mean, attaching it to the phone line, running an ethernet (CAT5) cable from the modem to...the router or a single computer, which I can do both, installing whatever software on that computer (or a computer that can access router functions), and accessing the modem from inside the home network.

This I am very excited about...but still somewhat confused. The phone company, in order to set us up, had to know how many computers would be connecting to the internet at any given time. But..why do you need to know? I can put a TON of computers in my home network. My router is a very nice one and can take probably hundreds of simultaneous connections. Why does the ONE wire that comes from the modem and that plugs into the WAN plug on the router need to know how many computers are behind it?

Unless somehow the router and the modem together are going to give each individual computer its own internet IP address. I don't know! I guess we'll find out. I had almost hoped and was at least planning that the router itself would be given an IP address on the internet and that the computers behind it would be able to "route" through to access the internet, but any What's-My-IP web scripts would only see the router's IP as accessing their sites/services, not the Laptop 1, Laptop 2, Computer 1, Computer 2 that's accessing the router.

Maybe there's something I don't understand, but that's how I thought this was going to work. But really, I should know by Wednesday how everything works. I told them that I was up for installing it myself instead of having a tech come out and fix us up for $50. Save money...and learn the ins and outs yourself. Not that I'd want to hack my connection. I just don't want to be one who stands around hoping the tech knows what he's doing because I don't. I want to know what he's doing also!

All in all, I'm excited. And you should be too. After all, if this is a success, I'll be able to finally host a website from my very own computer!! No more of this Brinkster stuff for me.

Youtube (Again)

Ten great uploads just today!! Nine of the ten are mine (and Andrea's) first Linerider lines that I didn't ever get a chance to capture until a few weeks ago. Check them out here.

Also, Dad brought home his Batman figurines we got him on a birthday cake a long time ago. Well, I just couldn't resist an animation.


View it at http://www.youtube.com/watch?v=BhKnMy6MVqE

EVEN MORE VIDEOS

Seems like all I post about anymore is new videos.

And today is not an exception. I have uploaded nearly......15 new videos within the last two weeks or so. And in fact, most of them are linerider captures that I've made within the last year. The other few are fractal zoom captures and a quick clip of an event I volunteered with last week. Which was AWESOME!

Anyway, go to http://www.youtube.com/user/depwl9992#g/u and check them out!

New Classic Uploads

I've uploaded about five new classic animations from 1999.


Lego Wars


Lego Wars - Bloopers


Lego Wars - Ambush


Horse Hunt


Beanie Portraits
.
.
.

I said five, didn't I? Well, "Beanie Portraits" are still processing, so that'll it'll be a little while until those are ready. Until then you'll get an error on that embed/link.

I found the ORIGINAL tape we did Holy Living Man on, and there I found the whiteboard-based credits Ben wrote. I'll try to get that portion of it up in a couple days, and if popular polls request it, I might splice the two back together or remix the video and upload it in its full-length glory.

ALSO, this original tape contains Star Travels (unabridged). It was a VERY tedious video that I animated which was based more on the background music than any specific plot. Thus, there was a lot of sitting around staring at the same shot while we waited for the music to finish. When I dubbed it over to the tape that I've gotten all of these from so far, I fast-forwarded through these long parts, so the audio would cut out and the dead space would speed up. However, it's just not the same as the original lame cut. Therefore, with my discovery of the original tape, I'll be uploading the full-length version. Oh the horror.

Classic Animation Now Live!!

After weeks of mixing and testing and getting everything just right, I've finally uploaded the first videos of the classic animations we filmed back in 1999.

See the full playlist at http://www.youtube.com/view_play_list?p=F1B815064BEE9BA6.

Youtube Shorts - Sony Vegas Testing

Recently (I think I mentioned this before) I found a trial version of Sony Vegas 10 Pro, an excellent piece of software for video mixing in Windows. Well, from Christmas until New Years, I took four videos which I later (just today) finally mixed up at the fastest possible framerate.

See how you like them by watching:
Just in case you were wondering, PPS Classic is still in the process of being converted. I'm also planning a nice intro for them, so such things as lipsynchORswim's Holy Living Man videos will be up soon: as soon as I can get the intros and credits (and no they will not be too long ;)) mixed in.