Thursday, December 30, 2010

A Desired Feature for Cydia

I’m not really a gigantic apple fan, but thanks to my parents and the art of
Hand-Me-Downs I managed to acquire an iPhone 3G.

I’ve been using this 3G for awhile, and
of course one of the things I absolutely had to do with it was Jailbreak the device.  I don’t
pirate or anything, but Jailbreaking it does bring fantastic changes to it that simply would not have been
possible on the 3G otherwise.

For example, I use Z-Toggle and Bootlace: Z-Toggle for
activating nice little features (Background Wallpaper, Battery Percentage) and Bootlace for giving me
Android as an optional boot-method (iDroid is far from completion, though), and I just now finished
installing and modifying the settings for Backgrounder, since 4.2 broke native multi-tasking on the old 3G
device (I have no idea why), and I’ve already got accustomed to using it.

But there is
one problem with Cydia I don’t believe has been addressed yet, and it would be nice if Cydia were to
automatically store your custom sources and a list of the programs you’ve installed, so that when you
re-install a new iOS (by starting from scratch so that you don’t continually lose space on your iPhone) and
re-jailbreak your device, it sees the file and also helps convert your iPhone back to the jailbroken way it
was.

This would be a very nice feature, and one I’m sure anyone would
welcome.

Sunday, December 26, 2010

A “Revolutionary” Way to Validate Email Input

I’m not talking about confirming email, where you have to make sure that the
user owns an email address, but I am talking about a way to confirm that an email entered will probably work
WITHOUT succumbing to regex, AND it’s relatively quick!

[codesyntax
lang=php]
function validate_email($email)
{
$email_parts =
explode("@",$email);
if(count($email_parts)) != 2) { return FALSE; } // You can only have one @
in an email address.
$domain = $email_parts[1];
if(!getmxrr($domain,$array)) { return
FALSE; } // This domain doesn't have any MX Records.
return TRUE; // Everything else is 'valid.'
}
[/codesyntax]

Tuesday, November 9, 2010

Making More Natural Desktop Notifications in Chrome

Do you have a website or application that uses Google Chrome Desktop Notifications? 
Well, let me just share with you this very simple snippit of code that will make their interaction a lot
more natural.
[codesyntax lang=xml]<!DOCTYPE html>
<html>
<head>

<meta charset="utf-8">
<style>
html * { font-family:
sans-serif; }
h1 { padding: 0; margin: 0; font-size: 12pt; font-weight: bold; }
body {
font-size: 10pt; }
</style>
<script>
function
changeLinks() { for(var i = 0;i < document.getElementsByTagName("a").length;i++) { ele =
document.getElementsByTagName("a")[i]; ele.target = "_blank"; } }
function detectClick(e) { var
rightclick; if (!e) { var e = window.event; } if (e.which) { rightclick = (e.which == 3); } else if
(e.button) { rightclick = (e.button == 2); } if (rightclick) { self.close(); } }
</script>
</head>
<body
onload="document.timeout = setTimeout(self.close,5000);changeLinks();"
onmouseover="clearTimeout(document.timeout);" onmouseout="document.timeout = setTimeout(self.close,5000);"
onmouseup="detectClick();">
<a
style="display:block;cursor:normal;padding:0;margin:0;color:black;text-decoration:none;"
onclick="self.close();" href="/link/" target="_blank">
<h1>Title</h1>

<span>Message</span>
</a>
</body></html>
[/codesyntax]

Thats
really all there is to it. Lives on a 5 second time. If you hover over it, it stays longer, if you right
click it it closes. If you click it it goes to /link/. Quite nifty, if I do say so myself.

Its
slightly buggy regarding links in the message.. but meh.

Wednesday, November 3, 2010

Give your Flip Cam an Icon on Windows

style="border-bottom: ; border-left: ; margin: 0px 10px 10px 0px; padding-left: ; padding-right: ; display:
inline; float: left; border-top: ; border-right: ; padding-top: " title="image" alt="image" align="left"
src="http://tech.navarr.me/wp-content/uploads/2010/11/image_thumb.png" width="166" height="240" />
Did
you delete all the files on your flip cam at least once?  Or do you not like that FlipShare icon
that always shows up whenever you plug your FlipCam into your Windows computer?  Well, until the
nice people over at Cisco decide to support Windows 7 Device Stage for their FlipCam line, you can at least
come half way and make sure your camera has a nice little icon.

This is pretty easy, and
as long as you’re not depending on the autorun.inf to open FlipShare every time you plug your Flip Camera in
(and if you’re reading this blog, I’m 90% sure you aren’t), you can just copy the contents of the href="http://awesome.gtaero.net/flip-icon.zip">Flip Icon Zip File to the base directory of your
Flip Cam, and it will start showing up in Auto Play (if enabled) and Windows Explorer with this very lovely,
very high resolution icon created by rel="nofollow">Tim Van Damme.

For a preview of what this looks like in
Windows Explorer:

href="http://tech.navarr.me/wp-content/uploads/2010/11/image6.png" rel="lightbox"> style="border-bottom: ; border-left: ; margin: ; padding-left: ; padding-right: ; display: block; float:
none; border-top: ; border-right: ; padding-top: " title="image6" alt="image6"
src="http://tech.navarr.me/wp-content/uploads/2010/11/image6_thumb.png" width="500" height="390" />

Wednesday, June 30, 2010

How to create a socket server in PHP

EDIT: If you need to submit bugs or want to improve my
work, its now available on github!

Ever
tried searching for information on how to properly create a multi-client socket server in PHP?  You’ll get
plenty of results with outdated and messy source code, some of which won’t even work.

This
was the conclusion I'd come to a couple years ago when I decided that I wanted to try my hand at writing an
IRC server.  The why is not important… (For the fun of building an IRC Server, if you can call
that fun
).  So I googled around a bit until I finally found some code that worked on its own, and
quickly built a semi-functional IRC server using it, and headed off to sleep at 5am.

The
next day I was very, very happy with the results of my hard labor, but it wasn't good enough, so I started
re-writing it from scratch as an Object, and thus I created class::IRCServer.

Then,
once I felt that I was finished screwing around with my newly built IRCd, I decided to modify the function
enough to be used on its own as a socket server, to share with the world.  However, that was a couple years
ago (The non-edited version of this article was written in 2010).

Recently, however,
PHP has evolved to a point where the Socket Server class I had written was out-dated, buggy, and just plain
bad.

So I built a new library from
scratch after looking at the old code, and came up with Navarr\Socket
.  The code is open-source,
MIT-license, and available on Github.  I heavily encourage you to fork and submit pull requests.  The code
is namespaced, follows the PSR-2 standard,   and even has some PHPUnit tests.

Monday, June 28, 2010

Magical Typesetting in PHP

So, well working for Route 50
I came up with a fantastic idea for “typesetting” that well exceeded the norm.  Something we constantly have
issues with is what type of string was sent to MySQL originally (some of us have different conventional
ideas about where escaping HTML should be located.) as well as outputting that string in its correct format.

Me,
with my fantastic idea, came up with a couple variables classes that I put in a file named href="http://gist.github.com/451216">class_typesetting.php.  The version on gist.github is
slightly modified from the original version on the server.

It creates three classes,
GenericVariable, String, and Number.  So far we haven’t used GenericVariable, but since the introduction of
the classes I’ve taken it upon myself to introduce them to any new code I write.  When we create Core v5
(which will Objectify everything) strings taken from SQL will automatically be re-stored as String class
variables.

First, lets examine some useful functionality.
[codesyntax
lang="php"]<?php
$title = new String($_POST[“title”]); // <strong>Hello
'World'</strong>
?>
HTML Output: <?= $title->html ?>
(&lt;strong&gt;Hello 'World'&lt;/strong&gt;)
Text Output: <?=
$title->text ?> (Hello 'World')
SQL Output: <?= $title->sql ?>
(<strong>Hello \'World\'</strong>)
HTML Attribute Output: <?=
$title->html_attr ?>(&lt;strong&gt;Hello &#039;World&#039;&lt;/strong&gt;)[/codesyntax]

This
allows for quick and easy access to the variables without having to worry about escaping them.

I
recommend you hit the download link (class_typesetting.php) and play around with it.  Tell me about anything
that’s not working correctly and if possible implement it in your future code.  (This means I’m putting this
code in the “Public Domain”).

Tuesday, May 11, 2010

Closing Desktop Notifications on a Timer

So, one of the few things about Chrome’s desktop notifications I’ve been
trying to figure out is how to close them on a timer, and it finally came to me.

This
timer will only activate when the notification is opened, and will close the notification even if the page
that originally spawned it has been closed.

Create and Show a new HTMLNotification.


[codesyntax lang="html4strict"]<!DOCTYPE html>
<html>

<head>
<title>Notification Title</title>

<style type="text/css">
body,body* { font-family: sans-serif; font-size: 10pt; }

h1 { font-family: sans-serif; margin: 0; padding: 0; font-size: 12pt; font-weight: bold; }
p {
margin: 0; padding: 0; }
</style>
</head>
<body
onload="setTimeout(self.close,5000)">
<h1>Notification Title</h1>

<p>Notification Text</p>
</body>
</html>[/codesyntax]


That
will close the window after five seconds and will look just like a normal notification! :D



What
I learned is: Notification Windows respond to the javascript method self.close()

Thursday, May 6, 2010

Stop, @HotDogCollars. You’re doing it wrong.

Man oh man oh man.  To be honest, this is something @Scobleizer or
@davewiner should cover/bitch-about, not me.  You’ve got a local business in Florida, trying to do
the Web 3.0 thing, but you know what?  They’re doing it wrong.


Go ahead, look at their twitter page (but only for a second).  You notice how all of their
posts are from Facebook, and only contain links?  Yeah.  They’re doing Twitter wrong (but
I have many, many more beefs with them than just their twitter page).

First, let me
briefly describe my situation with these people.  I purchased something they said they could do. 
Turns out they couldn’t do it (after not replying for like a month or two).  I ask for a refund in
that case.  Nothing happens, none of my emails get returned (for like ANOTHER month or two). 
I write a horrible review for the company on Facebook (wasn’t the only one), consider reporting them to the
BBB, etc.  Nothing happens (for like another month or so).  I get an email from Facebook,
they commented on my review, I immediately got help via email and I got my return via Paypal.

Then,
I go back to update the review I gave them (I was going to add a star, to give them 2/5 for at least paying
attention), and I found out something that made me wish I could give them 0/5 stars.

The
Facebook Review Tab had been REMOVED
.

This company went out of its way to
disable user-created discussions in the discussion tab, remove the review tab, and block users from posting
anything on their wall.

Please, Stop.  You’re doing it WRONG.


I don’t know what else to say.. how could you possibly be doing something so horribly wrong?

Sunday, May 2, 2010

Open Letter to Dave Winer

I know you invented RSS and all that, but please, please
stop raping your feed.

I do not like getting this every couple of weeks, or days.. I
don’t know, I have no concept of time, but this isn’t the first time its happened.

href="http://tech.gtaero.net/wp-content/uploads/2010/05/image.png">image src="http://tech.gtaero.net/wp-content/uploads/2010/05/image_thumb.png" width="500" height="200" />

Please?

Friday, April 23, 2010

Twitter Annotation Proposal - Image

This is a proposal for a twitter annotation that I hope to be blessed by both
the development community and twitter itself.

Image Namespace

Images
are something commonly shared throughout twitter.  Something that would be fantastically idealistic
would be embedding image data into twitter annotations.

Due to constraints, images should
be resized to a lower-quality “preview”.  Possibly VGA or so?  A link to a privately
hosted image should also be available.

Using the current preview information supplied by
the twitter development team, I imagine that it would go something like this:

[codesyntax
lang="javascript"]"image":
{
"preview":
"data here.. base64 etc.",
"preview_encode": "base64",
// Or whatever else floats your boat. "bin" or "binary" for raw data.

"full_src": "http://example.org/link/to/image.jpg"
}[/codesyntax]


Any
additional thoughts on other information that should be included?  Maybe a title and description,
or is that not needed?  Please, leave all of your thoughts and ideas in the
comments!

Monday, April 19, 2010

Using Google Voice with Outlook’s Dialer

Microsoft Outlook has this very nifty feature where you can connect your
computer to the phone line and use your Outlook Contact List to instantly dial someone’s number. 
Of course, when they created this they needed to add support for using a calling card, as long distance in
the same country hadn’t even begun to be free.

Now if you use Google Voice, you can use
this to your advantage with the simple addition of just a few seconds to the call.

Continue
Reading for Instructions on how to Outlook up to dial through Google Voice

Features Wanted in Skype

I realized there are some neat little features I would love to see in Skype
(while playing around with Microsoft Outlook and getting it to call out using Google Voice, I’ll blog about
that next).

Calls Out Using Modem

Doesn’t Skype do some fantastic
Skype-Out thing where you can even use a specific number as a calling card and call out using it? 
A whole crapload of notebooks and desktops still ship with modems, why not utilize it!  If you
don’t have a connection to the net (or you’re just crazy), you could call out using a Skype-Out Call-In
Number!  Wouldn’t that be AWESOME?

Calls Out with Calling Card through Modem


Yeah, yeah, companies don’t like competition or whatnot, but if the previous is supported, why not
spice it up a little and allow us to use a different calling card through the settings?  That would
allow Google Voice users to make outbound calls using Google Voice through Skype, and that would just be
AWESOME.

Answering Calls Through Modem

Is your phone ringing? 
Yeah, don’t you wish you could pick it up using Skype?  All it has to do is learn to speak through
the modem and BABOOSH, you can now answer your landline ON SKYPE (GOOGLE VOICE MAKES THIS MORE AWESOME).


Contact Synchronization with Google

Come ON.  EVERYTHING
needs this.

Wednesday, April 14, 2010

Why SuperTweets won’t kill URL Shorteners

Now, the title of this blog post makes it sound like I’m going to write an
essay about why SuperTweets (and the probability of them having a URL metadata for tweets) will not be
killing URL Shorteners like j.mp and bit.ly anytime soon.

1) URL Shorteners Keep You
Safe

One of the things URL shorteners do now is they keep you safe from malicious
websites.  You can preview the site you are visiting, and if its determined to be delicious the
short URL will either be deleted or blocked or a warning will be shown, letting you know it is no longer
safe to visit that URL.

2) URL Shorteners are Branded

All I really
have to say here is “Bit.ly Pro”  URL Shorteners now have custom branding, so it makes it even
easier to send people to your website or promote your brand on twitter by including the link in the text.


3) URL Shorteners are Easy to Remember

When they are used correctly. 
Services like bit.ly allow you to give a custom name to your short link.  This is especially useful
in media such as Television or Print: http://j.mp/cnn-transgender
is much easier to remember and type than href="http://www.cnn.com/2010/LIVING/04/14/transgender.irpt/index.html?hpt=C1">www.cnn.com/2010/LIVING/04/14/transgender.irpt/index.html?hpt=C1


With even just these three simple reasons in mind, it is very clear to me that URL shorteners will
not be dying anytime soon, no matter how much metadata you can attach to tweets.  I’m not even sure
they’re bad for the internet, anymore.

Thursday, April 8, 2010

Oh Apple, You Amuse Me

Apple iPhone Game Center Icon vs. Microsoft Store Logo:


image src="http://tech.gtaero.net/wp-content/uploads/2010/04/image.png" width="118" height="133" /> style="display: inline" title="image" alt="image"
src="http://tech.gtaero.net/wp-content/uploads/2010/04/image1.png" width="133" height="133" /> 

Oh Apple, has anyone told you lately that you’re
CRAZY?

Sunday, April 4, 2010

Making Google Analytics Work in XHTML

I was moving my website, Google Voice for Outlook, over from HTML5 to XHTML5 today, and
as soon as I did the basic content negotiation filters in PHP so that it would send the appropriate headers
if the client supported XHTML as well as only outputting the <?xml if the client supported XHTML, I
checked my developer tools to find a JavaScript error.  It was Google Analytics, of course.  document.write
doesn’t exist in XHTML, after all.

The fix was simple, replace the current four line
inclusion code with:
[codesyntax lang="javascript"]<script
type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ?
"https://ssl." : "http://www.");
var script = document.createElement("script");

script.src = gaJsHost + "google-analytics.com/ga.js";
script.type = "text/javascript";

document.getElementsByTagName("head")[0].appendChild(script);
</script>[/codesyntax]

This
will work fine, unless of course you have no head tag.  In which case you should replace
getElementsByTagName(“head”) with getElementsByTagName(“html”).

Saturday, April 3, 2010

HTML5 Being a Pain in My Ass Again

This time in regards to the highly acclaimed and very well received <video>
element.

On my website, Google Voice for Outlook
I use the <video> tag to show a demonstration of the system working.  I don’t
currently have a way to encode in ogg, and/or am too lazy too, so I decided that if the web browser didn’t
support h264 video, it’d fall back to the YouTube video.  The expected result (from me, of course)
was that if it can’t display the video, it’d display the YouTube.  Apparently though, in FireFox it
does not fall back to the YouTube video and instead just displays a gray box, and the fault this time
doesn’t lie with FireFox, but with the standard:

Content may be provided inside
the video element. User agents should not show this content to the user; it is intended for older Web
browsers which do not support video, so that legacy video plugins can be tried, or to show text to the users
of these older browsers informing them of how to access the video contents.

Ugh! 
This means that if you want to use <video> on any website, ever, properly, you’re going to
have to encode it in both h264 and Theora until the industry decides on a set standard.

Purely
Atrocious.

Friday, April 2, 2010

Beautiful New YouTube Video Player

I was going through my YouTube subscriptions when a video from href="http://youtube.com/bgsu">BGSU popped up, and it struck me as odd because it had a
different and much, much more beautiful video player.  At the moment, it seems all videos from BGSU
are showing up using this player (on their individual video page).  From what I can tell, this
seems to be the normal for all YouTube EDU
videos.  I hope that soon we’ll get to see these for all videos.

href="http://tech.gtaero.net/wp-content/uploads/2010/04/faded_new.png"> title="New YouTube Video Player - Faded (Normal Play)" alt="New YouTube Video Player - Faded (Normal Play)"
src="http://tech.gtaero.net/wp-content/uploads/2010/04/faded_new_thumb.png" width="240" height="147" /> href="http://tech.gtaero.net/wp-content/uploads/2010/04/hovered_new.png"> title="New YouTube Video Player - Hovered (Ready for Action)" alt="New YouTube Video Player - Hovered (Ready
for Action)" src="http://tech.gtaero.net/wp-content/uploads/2010/04/hovered_new_thumb.png" width="240"
height="147" /> style="display: inline" title="New YouTube Video Player - Volume" alt="New YouTube Video Player - Volume"
src="http://tech.gtaero.net/wp-content/uploads/2010/04/volume_new_thumb.png" width="240" height="147" />
href="http://tech.gtaero.net/wp-content/uploads/2010/04/new_hd.png"> title="New YouTube Video Player - HD Selector" alt="New YouTube Video Player - HD Selector"
src="http://tech.gtaero.net/wp-content/uploads/2010/04/new_hd_thumb.png" width="240" height="147" />

Wednesday, March 31, 2010

The Very Best Thing about Unixkcd

guest@xkcd:/$ make me a sandwich

What?
Make it yourself.

guest@xkcd:/$ sudo make me a sandwich

Okay.

Friday, March 26, 2010

Google Voice is still Lacking

I’ve been a religious Google Voice user for awhile now, so it really bothers
me that it is still lacking feature wise.  Of course, I’ve been helping with some of these missing
features (re: Google Voice for Outlook) but there are still
plenty more missing as well as some minor issues I have with the service.

Multimedia
Messaging (MMS)

For some reason, Google Voice still lacks this functionality. 
It can’t be THAT difficult, can it?  I mean, the iPhone managed to add
it before Google Voice, and if you really want to compete in the mobile business, its kind of necessary to
have MMS, as SMS is pretty much irrelevant now.

Not only that, but any MMS that is sent
to a Google Voice number is just lost.  Couldn’t they at least be forwarded to my email address? 
I don’t like the fact that I could be losing incoming messages to /dev/null, and its even more annoying
having to give out two different phone numbers (one for MMS and one for SMS).

Shortcodes


It is all well and good that Google’s own shortcodes work through Google Voice, but not so
fantastic that nobody else’s does.  I don’t want to be passing around two sets of phone numbers,
and I’d love the ability to just set to spam a shortcode that is getting out of hand and won’t let me
unsubscribe (if that ever happens).  Developers pay tons of money to set up shortcodes, so why
doesn’t Google Voice support them?

API

Google Voice is a Service. 
I use it with my cell, with my home phone, and with my computer.  But in order to make desktop apps
or things like Google Voice for Outlook possible, an API is almost necessary.  I’ve managed to do
it without one, but it still pretty much sucks.

Outlook Mobile Service

Companies
charge tons of money for people to have the ability to send text messages through Microsoft Outlook. 
Adding the very simplistic SOAP server to the Google Voice backend would allow anyone with Microsoft Office
to send text messages, forward emails, and receive reminders and notifications for FREE,
something that is usually charged 10 cents or more per message
(Combine this with MMS as mentioned above, and it gets EVEN BETTER!)

Internet Fax
Service

Google Voice already has “Receive Faxes” as a
“Suggest a Feature.”  Adding this and providing users on computers a way to send faxes would
increase productivity and make the service even more useful to small companies and freelancers.


Keep in mind, these are just a few ways that Google could improve Google Voice, there are tons
more.

What do you want to see added?

Friday, March 19, 2010

Somebody loves Google Voice Outlook Mobile Service~ ♥

Barebones<br />            Networking

BareBones Networking (Picture is linked) wanted to use my Google Voice OMS Code, so I
took all day customizing the code and getting it working on his server, I’m proud to announce that he is
willing to allow public use (please be reasonable with it though, please?)  So head on over to the
BareBones Networking OMS page, type in
your GMail Login, click Setup, and follow Outlook (2007 or 2010)’s Instructions and you’ll be ready to send
Text Messages FOR FREE through Microsoft Outlook.

I’ll set
up a landing page/site soon that gives the whole setup experience a pretty web interface too (maybe with FAQ
for the technically challenged).

Enjoy =)

Dear Chrome: What the Hell is This?

style="display: block; float: none; margin-left: auto; margin-right: auto" title="" alt=""
src="http://tech.gtaero.net/wp-content/uploads/2010/03/image_thumb10.png" width="500" height="46" />

I love that you finally added previews for each of your tabs, that amazing Windows 7
feature that all of your competitors adopted before you…

But what the light is this? 
Why on earth are there this mini-windows, and why are the preview windows themselves so faded out? 
Not to mention it doesn’t even WORK when you have Chrome minimized…

href="http://tech.gtaero.net/wp-content/uploads/2010/03/image13.png"> src="http://tech.gtaero.net/wp-content/uploads/2010/03/image_thumb11.png" width="500" height="312" />

I love you Chrome, but you need to fix these in the next dev release.  NEED.

Wednesday, March 17, 2010

Sneaky Twitter, or My Imagination?

Twitter Downtime src="http://tech.gtaero.net/wp-content/uploads/2010/03/image11.png" width="532" height="348" /> 


Fairly surprisingly, twitter went down today (for what appeared to be no rhyme or reason), but
something much more surprising happened when it did.  A tweet I posted ( href="http://twcli.koneko-chan.net/">from my own, self-coded twitter client that has no “store
tweets until twitter is back up” system) was there on the site when it came back up (viewable in the image
above).

I’m not entirely sure if this is what I want to think it is, but could it be that
twitter has a secondary service that stores tweets that come in via the API until the system is back up, or
something?  I didn’t think the update had posted at all, as the API didn’t return any of the proper
data (nor an error).

So, is this just a coincidence, or does twitter have a system in
store to keep the stream flowing even when its not?

Tuesday, March 16, 2010

MySpace Outlook Social Connector

Its simply amazing that the MySpace Outlook Social Connector was released 8
days ago and nobody has noticed yet, except for a few people that still care about the old social network.


For me though, MySpace’s Social Connector has really highlighted at least one bug with OSC and,
well, multiple problems.

The one bug is that I can not connect to both my Linked In
account and my MySpace account at the same time.  Why?  Because I use only one email
address for both of them, and you can’t connect with the same username more than once, even if you're
connecting with separate service providers.  This obviously needs to be fixed.

As
for problems: I now have a MySpace Contacts list, which is really awesome and everything, except that it
only works with MySpace.  It only uses their MySpace email address, so if I casually email someone
that has a MySpace, I sincerely doubt it’ll show up at all in the OSC, nor will it tie their feed if I’m a
friend to them to their email because the only email that shows up in my contacts is their @myspace email. 
Quite useless, especially compared to Linked In.

What’s more bothersome is how badly this
connector was programmed.  The installer wanted to create its own directory in my start menu (I
have no clue why, you’re simply a social connector, why do you need a whole folder in my start menu? 
Wasting Space?  Uninstaller?  What the heck do you think Add or Remove programs is for??)
and when connecting to MySpace it was substantially slower than connecting to Linked In.  With
Linked In, it was almost immediately connected and downloading, but with MySpace it just took FOREVER.


Obviously though, this is a pre-release version, and hopefully they’ll iron out the problems with
both Outlook Social Connector and the MySpace Connector before Office 2010 is
released.

Sunday, March 7, 2010

How To: Fix Dell Truemobile 355 Bluetooth + EDR on Windows 7

One of the few problems that have really been giving a bad rap to Windows 7
users is the loss of proper Bluetooth Connectivity on Dell Laptops, specifically the Truemobile series. 
The cause is, unsurprisingly, a lack of Dell support – no updated drivers.  In fact, if I recall,
my Bluetooth wasn’t working properly on Windows Vista either, which the computer came pre-installed with. 
Since the problem is Dell Drivers, the solution is fairly simple:  Screw Dell, set it back to the
Windows Drivers.

Portal 2 Scans (Leak)

The article from GameInformer magazine on the upcoming Valve title “Portal 2”
have been leaked to the internet.  I’ve provided their links here for your enjoyment.


src="http://img148.imageshack.us/img148/9834/61988149.jpg" width="500" height="335" />


src="http://img194.imageshack.us/img194/7713/25116965.jpg" width="500" height="320" />


src="http://img408.imageshack.us/img408/1529/41663763.jpg" width="500" height="331" />


src="http://img517.imageshack.us/img517/8889/51924897.jpg" width="500" height="325" />


src="http://img163.imageshack.us/img163/9812/91301104.jpg" width="500" height="331" />


src="http://img130.imageshack.us/img130/6600/61465046.jpg" width="500" height="334" />

Sunday, February 28, 2010

TwCLI

So,
you think you’ve had a lot of fun with twitter on the web and all those twitter clients you’ve played around
with?  What if I told you that you haven’t seen anything yet?  What if I told you that you
could use Twitter in a TRUE Command Line Interface with specific commands for interacting with twitter.


Welcome to one of my latest and greatest creations, title="Twitter Command Line Interface">TwCLI.

TwCLI supports
almost everything twitter has to offer, and will soon be expanding to support even more!  href="http://tech.gtaero.net/wp-content/uploads/2010/03/image3.png">TwCLI (Click to Enlarge) src="http://tech.gtaero.net/wp-content/uploads/2010/03/image_thumb3.png" width="500" height="404" />
TwCLI includes a long list of commands, help information for each command, a theme-able interface (Specify a
Pre-Determined theme, import from your twitter profile, or even specify an external CSS file!),
Geo-Location, Retweets, and even Contributor Support!

Go ahead, href="http://twcli.koneko-chan.net/">give it a try and tell me what you
think!

Geosense – I’m in Love

Geosense for Windows src="http://www.geosenseforwindows.com/images/logo.png" />

I love
applications that fill in where hardware fails, but this one is really taking the cake!  href="http://www.geosenseforwindows.com/">Geosense for Windows gives you the
capabilities of a GPS sensor in your computer (but without the actual hardware!)  It uses Google
Location Services to triangulate your location and provide your coordinates to applications that request
them.

href="http://tech.gtaero.net/wp-content/uploads/2010/03/image2.png">Sensor Properties Dialog src="http://tech.gtaero.net/wp-content/uploads/2010/03/image_thumb2.png" width="500" height="310" />

Unfortunately, not many applications use this type of data (yet) but href="http://www.istartedsomething.com/20100301/geosense-for-windows-location-released/">Long Zheng
and href="http://www.withinwindows.com/2010/03/01/geosense-the-first-really-really-cool-windows-sensor/">Rafael
Rivera are hoping that with this new default driver for PCs without GPS, that many more developers
will embrace the creation of geo-location in desktop applications.

Continue Reading for
Code Snippets

Rumor: Twitter Close to Unveiling Contributions

Do I know for sure?  Absolutely not.  Do I have inside
information?  Absolutely not.  Was I randomly observant one night and saw something that
seemed to push me to think in this direction?  Yes.

Back in December, Twitter
blogged about its “feature
test with businesses
” of a new Contribution API they were adding in to Twitter.  One that
would allow companies to give users permission to tweet on behalf of the main account, and still attribute
that post to the user who wrote it.

If you wanted to see this in action, all you would
have to do is look at the main Twitter account, where almost every post and retweet is attributed to one of
the employees.

style="display: inline" title="image" alt="image"
src="http://tech.gtaero.net/wp-content/uploads/2010/03/image_thumb1.png" width="500" height="217" />


They originally announced that this feature would improve usage of applications like @ href="http://twitter.com/CoTweet">CoTweet and @HootSuite
But if you look at their timelines, you see very little Contribution API dabble – until recently, that is.


Looking through CoTweet’s posts all the way back through December, none of them have contribution
metadata – except for the latest two on February 18th and 19th.  HootSuite has only one, posted on
February 18th (none earlier, and none later).  This brings to mind:  Twitter must have
recently been rolling out (or testing) their Contribution Feature – or are we really supposed to expect this
to be coincidence?

And all of this with the Twitter Developer Meetup Scheduled for Monday,
March 1st 2009
.

All I’m saying is, I think they’ve gotten much closer to
rolling out Contributions.  Maybe they’ll announce it at this small developer meetup, since
everybody already knows about it.  Then again, maybe they won’t.

Thursday, February 25, 2010

How to Retrieve a Zipcode Using JavaScript

[codesyntax lang="javascript"]// Retrieve user’s Zipcode
// Demo
at http://sandbox.gtaero.net/zipcode.html
function retrieve_zip(callback)
{

try { if(!google) { google = 0; } } catch(err) { google = 0; } // Stupid Exceptions

if(navigator.geolocation) // FireFox/HTML5 GeoLocation
{

navigator.geolocation.getCurrentPosition(function(position)
{

zip_from_latlng(position.coords.latitude,position.coords.longitude,callback);
});
}

else if(google && google.gears) // Google Gears GeoLocation
{
var geloc =
google.gears.factory.create('beta.geolocation');
geloc.getPermission();

geloc.getCurrentPosition(function(position)
{

zip_from_latlng(position.latitude,position.longitude,callback);
},function(err){});
}
}
function
zip_from_latlng(latitude,longitude,callback)
{
// Setup the Script using Geonames.org's
WebService
var script = document.createElement("script");
script.src =
"http://ws.geonames.org/findNearbyPostalCodesJSON?lat=" + latitude + "&lng=" + longitude + "&callback="
+ callback;
// Run the Script

document.getElementsByTagName("head")[0].appendChild(script);
}
function
example_callback(json)
{
// Now we have the data! If you want to just assume it's the
'closest' zipcode, we have that below:
zip = json.postalCodes[0].postalCode;
country =
json.postalCodes[0].countryCode;
state = json.postalCodes[0].adminName1;
county =
json.postalCodes[0].adminName2;
place = json.postalCodes[0].placeName;
alert(zip);
}
retrieve_zip("example_callback");
// Alert the User's Zipcode
[/codesyntax]

Saturday, February 20, 2010

simpleTAPI is Broken

Apparently I’ve completely broken simpleTAPI somewhere between Build 27 and
Build 30.  I thought I had fixed it with Build 29, but it seems that I was mistaken.

In
lieu of this, I am putting simpleTAPI on a temporary hiatus.  I will be re-constructing it from
scratch (though, probably looking back and using a good bit of the original code).  The next
version should have several configurable options, and will hopefully interact with the Twitter API much
better than the previous versions.

Build 30 was supposed to return results as an
array([“TAPI”] => data, [“result”] => data).  But all I’m getting from it at the
moment is “Unable to Authenticate User.”

Those wanting to use simpleTAPI should use href="http://github.com/navarr/simpleTAPI/commit/cc1567ce27c270a4314ba030f14d20684b128bf0">Build 27,
though you will have to deal with some minor quirks in the way results are returned.  (the TAPI
array is simply appended to the results array, making things slightly complicated if you don’t
unset($result[“TAPI”]);

What will be simpleTAPI 0.4 should have better error handling,
better return data, and better built-in caching.  I’m also hoping to build in support for xAuth and
Delegated OAuth, if at all possible.  (Though probably not since simpleTAPI is built upon another
OAuth library).

So, I’m asking for any and all feature requests.  Is there
something about simpleTAPI you don’t like or want to be improved?  Please, post in the comments
below!

Wednesday, February 17, 2010

Y’all Don’t Love Me, Do Ya?

Remember way back in November
when I created something so ridiculously awesome I had to learn two whole new web technologies to do it?


If you don’t, or if you just picked up on my blog, that very incredibly awesome something was
called Google
Voice OMS
– It allows you to send text messages through Outlook using your Google
Voice account, without having to pay a third party company per-message.  Essentially making this
very awesome feature in Outlook 2007 and Outlook 2010 FREE.

At
first, I didn’t want to Open Source it.  I wanted to keep it for awhile and sell it to Google or
something if it caught on – but there seemed to be so tiny of a reaction to the post that I href="http://tech.gtaero.net/2009/11/google-voice-oms-code-on-github.html">published it on Github. 
Do you guys seriously not like it?  I asked for SSL Hosting or Donations three months
ago
and I haven’t received a single cent to pay for the cost (nor an offer to host).


Not that there was really anything left to add to it, but I’ve pretty much just let the project
die.  Nobody’s approached me about funding it, or providing hosting for it, and definitely not
Google although it would be the best thing in the world to kick-start Google Voice for Businesses.


And I was even thinking of doing something cool like seeing if I could create a twitter client
replica of it.  But you know what?  Never
Mind
.

Tuesday, February 16, 2010

How “Windows Phone 7 Series” Makes Sense

I’m sure every single person in the tech world can agree that Windows
Phone 7 Series
is a stupid name for a product, almost as bad as iPad.


However, if we take a step back and re-think about this incredulously long name and what it means
exactly, you’ll see it may not be as entirely stupid as it was at first glance.

Windows
Phone 7 Series
describes the combined devices that will be running this new Operating System. 
Just like the older OS devices will be called Windows Phone Classic Series
“Series” is simply an added word to describe the devices together.

Therefore, in truth,
Windows Phone 7 is the name of the OS itself, which is a lot less stupid than Windows
Phone 7 Series
.

I’m still wondering if there is a specific way they could make
the name for the series itself more appealing.

Monday, February 15, 2010

My Problem with ID3 Taggers

I have yet to find one that will automatically tag my vast library of music
that isn’t English.

I love animé, and until about my third girlfriend I didn’t have much
or any music on my computer, I didn’t watch many videos either.  My library was dull and void. 
But now, I have 532 songs occupying 2.7 Gibibytes of data, and I’m pretty sure less than 100 of those are
English.  Some of the music I don’t expect to get any data from, music my friends made, or I don’t
know the origin of at all, but I have a lot of Japanese singles that were openings and endings from anime,
or were in an anime, but all of these singles also belonged to albums, or had album artwork, or an artist,
or all kinds of rich information that isn’t in my library – or are in any of the main databases.


To top it off, I tried using some auto-tagging software I don’t remember the name of anymore,
didn’t clearly understand the instructions, and screwed up the tags on a whole heck of a lot of my music, so
now I have some songs I don’t know the names, artists, or album info to at all as its improperly labeled
(and in Japanese).

Someone (I’d be willing to help any way I could) should compile a
database of the way songs sound (Some type of wavelength ID that could easily identify a song via a piece of
it, identify different versions, etc.), approaching music labels and artists from the United States,
Britain, Australia, Japan, and all those other countries.

Or does such software already
exist, and I simply don’t know about it?  If you know something I don’t, please leave it in the
comments =)

Wednesday, February 10, 2010

Facebook Chat launches XMPP Support

In a move that has me saying “Well its about freakin’ time!” – Facebook has
launched XMPP Support for their popular Chat Service.

Now, normally I don’t take the time
to write out about this kind of thing – except that no other blog post has detailed what your connection
credentials are – so I’ll go ahead and write those for you.

Login: [email protected]

Password: Your freakin’ Password

If you do not yet have
a username (What the heck is wrong with you?  Why not?!) then you can create one at href="http://facebook.com/username/">http://facebook.com/username/. (By the way, that’ll also
be an email address soon, just so ya know).

Tuesday, February 2, 2010

Needed in (X)HTML 5 – An extension to the Meta Tag

I was thinking today, while reading an article about redirect – that there is
currently no way to accurately and semantically tell a user/bot that a web page is located somewhere else
when you only have access to static (X)HTML files.  However, there is a workaround a lot of people
use that dampens usability, and there is an attribute whose name would seem to imply that a way to do it
should be possible.

By this of course, I’m referring to <meta http-equiv=""
/>.

Currently, people wanting to relocate their web pages rely on an older value
to this tag that seems to have been originally designed for moving one person from one page to another in a
set increment of time:

<meta http-equiv="refresh" content="0;URL=http://domain.tld/location"
/>

This doesn’t appear to be what this value should be used for, and has very
negative consequences for search engines and parsers.  Instead, don’t you think we should be using
http-equiv to its full potential?

To this, I propose the addition of <meta
http-equiv="location" />, to properly match the HTTP Header for redirection.


I think there should be two ways to use this:

<meta http-equiv="location"
content="http://domain.tld/location" /> and

<meta
http-equiv="location" content="301;http://domain.tld/location" />.


Obviously, the second example gives us both a *three digit* HTTP Code, and the URL for redirection. 
Since HTTP codes are only three numbers (though in the future may be greater digits) there still should not
be any problem.

Tuesday, January 26, 2010

A Quick Update to Simple Twitter

A lot of people use my Simple Twitter Feed written in JavaScript (for some
reason).  Well, today I pushed out a quick update that should fix all the woes users have given me
in the past.

The code should now be valid XHTML strict, and I know longer use innerHTML
for each list element.  Instead, I’ve moved from adding the list elements via innerHTML to DOM
Manipulation (appendChild).  I’m not sure exactly what the benefits of this are, but I’m sure they
exist.

As the previous HTML code seems to have been broken, this may cause some rendering
errors for a few websites, but all in all it should work better than it has previously.

I’m
not writing out a whole changelog, I’m just going ahead and saying that some changes were made – and
hopefully Simple Twitter should work a lot easier for everyone using it.

Monday, January 25, 2010

Webkit JavaScript Notifications API

Something I learned about recently by following the updates being issued to
Chrome, is that with today’s release they also pushed out the Webkit Notifications API to Chrome Stable
(v4).  Surprisingly, this is actually the first I’ve heard of it’s existence.  I took a
look and played around with it a bit, and it is qué cool.

Visit href="http://sandbox.gtaero.net/chrome/notifications.php">my Sandbox to see the code in action,
or continue reading for some code excerpts.

Sunday, January 17, 2010

The Mysterious 50500

Last Night I was working on a job site, and I had checked into it using
Foursquare (twice, the first time a typo).  I was wondering if there was a way to undo a check-in,
or something similar.  So, of course, I texted “help” to 50500 (the US Shortcode for Foursquare)
and I got back the following message:

2 Vicinite alerts/wk,
tones/video clips: $0.49-$9.99/mth+ msg&data rates may aply.  Visit
vicinite.com/index2.html or 8666443345. STOP 2quit.

Wait, what? 
That has nothing to do with Foursquare at all.  What is going on here?  So, I decided to
google the shortcode for more information, and found out its ALSO used for Contxts, another service I used. 
Just to make sure, I texted “David” to 50500 and what do I know?  His business card was texted
right back to me, with the sender labeled as “Foursquare” due to me having set the number as Foursquare’s in
my address book.

This is kind of fishy, in my opinion.  How,
and Why do these three services share the same
shortcode number?  They seem to have nothing to do with each other, either.

So
then… how do they pull it off?

Another Blog?

Well, congratulations me.  I think?  I guess?  Saa. 
Either way, I’m now going to be a contributor for MacDavid Pro
(which will be renamed, just nobody knows to what yet.)

Which is all well and good,
except I don’t write much of anything ever, and the few times I do I have trouble including media and
pictures and formatting it the way I want to.  Bleh.

Well, lets hope I do better
as a contributor to that blog than I have been doing for this one, eh?

Wednesday, January 13, 2010

More Windows 7 Steam Goodness

This is just a small update to the whole Steam on Windows 7 thing. 
Looks like they’re embracing more Windows 7 features than I saw previously.  Discovered this while
downloading Zero Gear today:

style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px"
title="image" border="0" alt="image" src="http://tech.gtaero.net/wp-content/uploads/2010/01/image3.png"
width="81" height="59" />

Tuesday, January 12, 2010

Never Again (External JavaScript in the Body)

This is probably simply a personal taste, but I hate putting External
JavaScript tags in the body of a web page.  It feels and looks very unsightly to me.  But as I learn more
and more JavaScript, and really start to get a feel for the small language, I’ve realized that I don’t have
to.  That it’d be just as easy to place them directly into the header after the page is ready, by
manipulating the DOM.  Here is an excerpt from the beta turled website.

[codesyntax
lang="javascript"]$(document).ready(function() {
// Google Analytics
var gaJsHost =
(("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
var script =
document.createElement("script");
script.src = gaJsHost + "google-analytics.com/ga.js";

script.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(script);

try
{
var pageTracker = _gat._getTracker("CENSORED");

pageTracker._trackPageview();
} catch(err) { /* Do Nothing. */ }

//
Facebook Share
var script = document.createElement("script");
script.src =
"http://static.ak.fbcdn.net/connect.php/js/FB.Share";
script.type = "text/javascript";

document.getElementsByTagName("head")[0].appendChild(script);
});[/codesyntax]

As
you can see, I wait until the document is loaded using jQuery’s ready method, and then create elements for
both Google Analytics and Facebook Share, before appending them directly to the <head> of the
website.  Keeping the code clean, reducing bandwidth usage for non-JavaScript users, and even making
Google’s code cleaner.  (By changing Google Analytic’s default code from document.write to DOM Manipulation.


So,
Never again will I feel the need to insert external script tags at the bottom of the <body>
just so that the rest of the page loads before them.


Note:
If you’re not using jQuery, document.onload = function() { /* Code */ } works just as well, I promise.

Monday, January 11, 2010

How Google Could Change The Industry (And Take Over Your Life)

So, the one thing that you’ll find on any and all news websites who are of any
quality at all would be the brand new Google Phone, the Nexus One – the one
device that’s making me cringe and go “WHY DIDNT I CREATE A YOUTUBE SHOW BEFORE NOW?” Since, you know, just
about every single YouTube partner has gotten a free Nexus One.  FEEL MY ENVY, YOUTUBERS.


But, there is definitely one thing that could be different.  One thing that they could
change the entire industry with.  And all they’d have to do is partner up with cell phone
providers, and convince them to let you get an account without a phone number.


What?  What’s that Navarr?  You’re absolutely INSANE!  You can’t get a
cell phone without a cell phone number?  Why would you want to?  What possible use could
that be?  What would you do??

Well, if you really are asking all those
questions, than shut the hell up and think for a moment.  What two things does Google own that
would allow them to do something so spectacularly crazy?

Google Voice, and Gizmo5. 
Gizmo5 would only be necessary if they decided to do Voice over Data, which I personally am not sure the
cell phone backend is ready for – but could you imagine purchasing a Nexus One,
signing in with your Google (apps?) Account, and
then if you already have Google Voice it simply works?  And if you
don’t it gets you started on creating an account, including choosing your own phone number
(for life, although changeable).

Google would store your basic account numbers and
information, and if you ever wanted a new android phone, you would simply log in
It’d automatically use your phone number and all your other details, too.

Maybe though,
just maybe Google could do this – and make actual cellular calling free, with
the only thing you’re paying for being data.

Wednesday, January 6, 2010

Why Steam on Windows 7 Disappoints Me

This actually isn’t a post against Windows 7.  In fact, you will find
very few of those among this blog, if any at all.  This is actually a
post voicing my disappointment with the very popular Social Network Gaming Software, href="http://www.steampowered.com/">Steam.


href="http://tech.gtaero.net/wp-content/uploads/2010/01/image.png">image src="http://tech.gtaero.net/wp-content/uploads/2010/01/image_thumb.png" width="470" height="320" />


One of the first things quickly and easily noticed is that it uses its own Window customization. 
This really isn’t such a big deal for me.  Sure, it’d be nice if it could do the whole aero thing
and fall back on this, but this looks pretty cool, so I’m not really going to fault them for this.


style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;
border-left-width: 0px" title="image" border="0" alt="image"
src="http://tech.gtaero.net/wp-content/uploads/2010/01/image_thumb1.png" width="253" height="450" />

Next is actually mostly a good thing.  Steam has this very nice jumplist for
Windows 7, something not a lot of other programs have really taken the time to integrate just yet. 
You can see video games I have recently (attempted to anyway) launched from Steam, their own quick links to
important parts of their client, and an optional (disabled by default) ability to change your current status
from the jumplist.

The one problem I have with this jump list is that the tasks have no
icons.  You could easily find some sort of icon for each of their little tasks.  A
shopping cart for Store, a generic user-like figure for community, etc etc but there is nothing there.


style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px;
border-left-width: 0px" title="image" border="0" alt="image"
src="http://tech.gtaero.net/wp-content/uploads/2010/01/image_thumb2.png" width="470" height="404" />

Then of course, there is my ultimate pickle with Steam.  As
I’m sure you can tell from the above screenshot – Steam has NO PRESENCE in the Windows Games Explorer. 
This is awful!  The Games Explorer has been around since Vista, and yet Steam has yet to embrace
it.

There could (and should) be (at the very least) a high resolution steam icon under
Game Providers.  It’s not very difficult to make, and the “News” feed you see from Games for
Windows LIVE is a simple RSS feed.  They could either populate this with the news from their site,
or just a list of new releases, creating a steam:// URI (if it doesn’t already exist) to open up links in
their own client.  Instead, they don’t even touch this.

As for games, I don’t
know if they show up in the Explorer or not.  I don’t have any spare cash lying around, so I
haven’t been able to check for myself – but somehow I doubt that the games appear there (though, I could be
wrong – can anyone vouch for this?).

Hopefully, these issues will be addressed in a
future version of Steam, and embraced by Rival companies. (I’m looking at you On Live.  Yes, I
expect this from you as well).

What are your thoughts on the matter,
anyway?

Friday, January 1, 2010

Making Windows 7 Blue Screen [How To]

The most difficult problem I’ve encountered with Windows 7 is making it Blue
Screen on me.  You’d think after so many different versions, Microsoft would’ve made it much easier
to crash your computer – but it seems like they’re doing just the contrary!  What do these fools
think they’re up to?

Either way, I’ve made my Windows 7 (RC) box Blue Screen on me twice
– so I’ll share with you how I did it.  Make sure to leave your own Blue Screen of Death stories in
the comments below.

BSoD #1 – ATI TV Wonder

My
first BSoD is brought to you by the rel="nofollow">ATI TV Wonder HD 600 USB PC TV Tuner, and yes – it is a very long name for a
product.  Aren’t you thankful I didn’t put “Diamond” in front of it?

Over all,
this was an excellent product that I’m VERY happy I purchased from woot.com at
a price far below its stock value.  It was pretty much plug-and-play (I didn’t run the CD at first
because, well, my Sony DVD drive has crapped out on my Laptop and will only read DVDs now.  What
the hell, Sony?)  What was interesting about this device (and ultimately lead to the BSoD) was that
Skype recognized it as a video source (read: Webcam) and decided I might want to use it.  I thought
that was fairly cool, but didn’t dabble any more into it (until later, right before my crash).  So,
while I had this thing plugged in and made Windows Media Center scan for channels, I decided “Well, I’m
bored – I wonder what happens if I open this thing up in Skype too?  I got my answer with some
weird looking static, and then a Blue Screen.  Congrats,  Navarr!  This was your
first ever Blue Screen with Windows 7 (RC even!).  And that was the last of that.

BSoD
#2 – rel="nofollow">Lexar 4GB ExpressCard SSD

This is another
small device I found for cheap on the internet, and purchased immediately because – well, it could be used
with the Windows 7 ReadyBoost and I wasn’t using my Express Card slot on my laptop – I didn’t have any use
for it. 

It normally works pretty well.  I’m not sure if the problem
I’ve been encountering is Windows, My Computer, the Card, or it simply becoming loose but every now and then
it will unmount and remount – so it may just be loose.

Either way, this happening over
and over again while the device was dedicated to ReadyBoost has, of course, damaged the file system. 
After doing this enough times, eventually my computer Blue Screened on me – once.  It hasn’t seemed
to happen again.  I’ve since repaired the file system and got it working again, but I’m not sure
how long it’ll stay.

Final

So those are
my BSoD Horror Stories for Windows 7.  Do you have any of your own?  Has Windows 7 ever
crashed for you?  Tell me all about it in the comments!