The FizzWife Project: Variables and Functions with a side order of Parameters

February 19, 2011 under The FizzWife Project

  >> [0] Introduction
  >> [1] Hello World
  >> [2] Variables and Functions with a Side Order of Parameters

After completing the “Hello, World!” exercise, Dena was ready to move onto the basics; variables and functions. In writing her “Hello, World!” program, she was introduced to her first function; Python’s print() function. The print() function simply directs supplied input to an output – sys.stdout (aka: the console) in our case.

As she was currently accustomed to directly passing a string literal to print(), I began by describing a few common data types:

  • strings: a series of characters (Ex: “Hello, World!”)
  • integers: whole numbers (Ex: 42)
  • floats: decimal numbers (ex: 3.14)

With her new-found knowledge of a few basic data types under her belt, variables were the next topic on the agenda. I have a habit of using analogies, and my description of variables would not be an exception. To convey the concept, I likened variables to labelled jars, thinking that it may be easier to understand rather than focusing too much on memory addressing. Jars contain a single item and that item can change over time. This led to an improved “Hello, World!” program:

message = "Hello, World!"
print(message)            # displays "Hello, World!"

The realization of the power of variables was unleashed!

message = "Hello, World!"
print(message)            # displays "Hello, World!"
message = "Hi, World!"
print(message)            # displays "Hi, World!"

Strings are fine and dandy, but numbers make the world go ’round. Keeping things simple with whole numbers, I asked her to create a variable to hold her age (actual ages have been changed to protect the innocent):

age = "22"
print(age)             # displays "22"

Hmmm, it seems ok, but is it really? We can find out by pretending it’s her birthday and incrementing her age by one year, as birthdays tend to do.

age = "22" + 1
age = age + 1
print(age)             # TypeError: Can't convert 'int' object to str implicitly

Oh noes! Now the idea of types mentioned way back at the beginning is making sense. A string of characters – two “2″ characters beside eachother – can’t be added to the actual number 1 to produce any meaningful output. Would the result be a string; an integer? Answer; it would be nothing because it’s not possible. Dena takes another stab at it:

age = 22
age = age + 1
print(age)             # displays 23

Ah, that’s more like it. Describing data types to non-programmers during their first programming attempts may initially feel like a lost cause. At this point, the only differentiating factor between strings and integers in her mind is either the presense of absence of quotation marks around a value. But Dena’s a quick learner, and she begins to understand what’s going on under the hood. I ask her to display the sentence:

My name is [name] and I am [age] years old.

After rolling up her sleeves, she types out:

name = "Dena"
age = 22
message = "My name is " + name + " and I am " + age + " years old."
print(message)    # TypeError: Can't convert 'int' object to str implicitly

WTMFH?!?! (I’ll leave it to the reader to figure out what that means). There’s that error again. She’s unsure why printing her age, which is an integer, was totally doable before, but now it isn’t when she’s using it to build her sentence (which is a string). As soon as the expletive was out of her mouth, she realised that her problem was attempting to mix data types. What she didn’t know was how to convert variables data types from one type to another. And so, I explained Python’s standard str() function, and that its job is to cast variables from their data type to a string representation. So she put str() to good use:

name = "Dena"
age = 22
message = "My name is " + name + " and I am " + str(age) + " years old."
print(message)    # displays "My name is Dena and I am 22 years old."

Success!

Through the past couple of lessons, Dena’s been using a few of Python’s built-in functions, like print() and str(). She knows what the do, but hasn’t learned what they are yet. I briefly mentioned that functions are just like the functions that she saw in math class in high school; the function takes some variables (parameters) and produces a result. Using str() as an example, I explained the passed in parameter (her age variable) and str() gave her back a result (string representation of her age variable’s value). Her eyes glazed a little, but I assured her that it will all make sense soon, and she’ll even be creating her very own functions. But first, there’s one more data type that she should know about. Perhaps she can make a List of things that she’s learned thus far…

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 0 »

The FizzWife Project: Hello, World!

January 27, 2011 under The FizzWife Project

Before Dena writes her FizzBuzz implementation, I felt it necessary to explain how a computer actually works and what is involved in the creation of software using a canonical “Hello World” program as an example. I spent the first hour covering the major components within a computer, how they work together and how software makes it all tick. While drawing maniacally on a whiteboard, Dena witnessed my best attempt at describing the hardware’s inner workings of:

  • CPUs and how various architectures differ
  • storage, both primary (ex: RAM) and secondary (ex: hard disks)

After thoroughly confusing and then (hopefully) un-confusing her, the time had come for me to make sense of it all by proceeding to explain how software consists of instructions and how those instructions are executed by the hardware. At some point, I ended up broaching the subject of bits, bytes and binary arithmetic, which eventually led to talk of ASCII character tables.

At this point, she assured me that – after some additional explanation – she was indeed following along. It would seem to me that people who don’t often have to think in terms of systems might have trouble grasping this deluge of techno mumbo-jumbo within the span of an hour, so I feared she was merely humouring me. But she insisted she understood, so I’ll chalk it up more to her being a quick learner and less of me being a decent teacher.

With her newly-acquired knowledge of what those “ones and zeroes” actually mean, I then went on to the basics of software and how “in the old days”, programmers created software by feeding computers punch cards which represented the binary data and instructions that it could understand. This brought us to the first example program; “Hello World” writing in machine code:

01001000 01100101 01101100 01101100 01101111 00100000 01010111 01101111 01110010 01101100 01100100 00100001 00100000

Dena either had a look of terror, disgust or some combination thereof when she saw this. I assured her that software development had come a long way since this sort of programming was the norm, and this would be the only time she’d see something like it.

Next up was the language of the CPUs; Assembly. Harking back to the previous 60 minutes, Dena was made aware that the processors of the various architectures each had their own “readable” language that programmers could use to write software. And so “Hello World” written in x86 Assembly was ready for viewing:

       .MODEL Small
       .STACK 100h
       .DATA
   msg db 'Hello, world!$'
     .CODE
   start:
     mov ah, 09h
     lea dx, msg
     int 21h
     mov ax,4C00h
     int 21h
   end start

While “English” was apparent in this code, I sensed that she was thinking that she bit off more than she could chew by (willfully, I must add) signing up for this experiment. Fears were cast aside when I mentioned that technology evolves quickly and high-level programming languages from COBOL and Fortran, all the way to C/C++, Java, C#, Haskell and [drumroll] Python would make this all worth while. I explained how modern compilers and linkers are special software that take readable code and turn it into machine code that computers can understand. Often, I’d turn to examples that she could relate to in ways such as:

You know at work when you launch Microsoft Word? Well, Microsoft developers wrote a bunch of code (probably in C++) to enable you the user to do all sorts of things like letting you change fonts and their sizes, set margins, print, etc. That code was compiled by a C++ compiler that they use to become that winword.exe file on your computer so that you can simply click on Word’s shortcut and magic happens.

Relating it all in that manner appeared to cement the understanding. Without delving into functions just yet, Dena wrote her first program in a high level programming language. In a style that’s clearly all her own, she wrote a “Hello World” program in Python:

print("Hello, Bitches!")

Some experimentation followed, where she attempted to add some indentation. Her incorrect stabs at it looked like:

        print("Hello, Bitches!")

and:

print        ("Hello, Bitches!")

and:

print(        "Hello, Bitches!")

Eventually, she realized what works:

print("        Hello, Bitches!")

Slightly unsure of herself and why only the last attempt at indentation worked, I commended her first programming victory and that her experimentation conveniently leads us to the next lesson: Variables and Functions with a side order of Parameters.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 0 »

The FizzWife Project

January 17, 2011 under The FizzWife Project

Welcome to The FizzWife Project!

The goal of the experiment is to teach my wife Dena, a law clerk with little technical/scientific background, enough about the bare essentials of computer programming so that she is able to successfully implement FizzBuzz on her own.

FizzBuzz, of course, is a problem that Jeff Atwood (Internet) famously summarized as a test of programming ability (and not programming proficiency). FizzBuzz boils down to the following problem statement:

Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

The problem is trivial for experienced programmers, but may present a challenge to non-programmers such as Dena.

A note to all coders out there: please don’t post your own solutions to FizzBuzz in the comments; I will delete them.

The impetus for this experiment actually had little influence from yours truly. In August, Dena and I visited her brother in Kotzebue, Alaska. For the long trip, I packed some books (GASP! real dead-tree versions) to pass the time, and one of those books was Coders at Work. At various points during the trip, Dena – completely of her own volition – picked up and read some of Coders at Work; its conversational nature (and lack of any actual code) proved interesting to her. So much so, that she approached me with interest in learning something relating to what the interviewees in Coders at Work spoke about. I didn’t think she was serious, but she continued to broach the subject even after we returned.

My dilemma was to determine a project or a set of projects that would help her gain understanding of the bare essentials, while at the same time keeping her interest high. The project had to avoid dependencies on computer science-y things like data structures and algorithms, engineering topics like methodologies/paradigms/architectures, and any sort of APIs. Robert “Uncle Bob” Martin recently highlighted that programming, regardless of the language and environment boils down to three things; sequence, selection and iteration. And I think FizzBuzz, while being simple, is an excellent example of these three principles. I also settled on Python as the language she’ll use, to avoid strongly typed languages for the time being and the benefit of using IDLE for REPL purposes. Immediate feedback is a good thing! Also, I feel Python’s syntax is easy for a beginner to understand.

Join Dena and I as she’s introduced to the essence of programming, with the goal of her creating her own FizzBuzz implementation. I’ll post updates on her progress and code snippets, so stay tuned!

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 0 »

fave albums of 2010

December 23, 2010 under Annual Fave Albums, Music

One could say that my blog has become merely a historical overview of the albums that I like each year. I do have plans to re-enter the blogosphere (does anybody even use that term anymore?) instead of solely Tweeting or posting Facebook status updates.

Until then, like I do every year, here’s my list of albums released in 2010 that I particularly liked. And for the first time, I’ve chosen not one, not two, but three “Albums of the Year”. Honestly, I couldn’t decide on a single one, so you’ll see three of those little trophy icons (Album Of The Year) this year.

Amusement Parks on FireRoad Eyes
Album Of The YearCanadianArcade FireThe Suburbs
Autolux - Transit Transit
CanadianThe Besnard LakesAre The Roaring Night
CanadianBroken Social SceneForgiveness Rock Record
CanadianCaribouSwim
Corin Tucker Band1000 Years
DeerhunterHalcyon Digest
EngineersIn Praise Of More
Film SchoolFission
Four TetThere Is Love In You
God Is An AstronautAge of the Fifth Sun
GrindermanGrinderman 2
The Hold Steady - Heaven Is Whenever
CanadianHoly FuckLatin
Frightened RabbitThe Winter of Mixed Drinks
Killing JokeAbsolute Dissent
Manic Street PreachersPostcards From A Young Man
Marnie SternMarnie Stern
MelvinsThe Bride Screamed Murder
MenomenaMines
No AgeEverything In Between
School Of Seven BellsDisconnect From Desire
Teenage FanclubShadows
Album Of The YearThese New PuritansHidden
Album Of The YearTitus AndronicusThe Monitor
CanadianTokyo Police ClubChamp
CanadianWintersleepNew Inheritors
CanadianWolf ParadeExpo 86

A few hornorable mentions:

The Depreciation GuildSpirit Youth
Jimmy Eat WorldInvented
LCD SoundsystemThis Is Happening
Minus the BearOMNI
The NationalHigh Violet
CanadianThe New PronographersTogether
CanadianOwen PallettHeartland
The Radio Dept.Clinging To A Scheme
Red SparowesThe Fear Is Excruciating, But Therein Lies the Answer
SpoonTransference

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 0 »

zombies are so hot right now

October 12, 2010 under ChrisBellini.com

For those still paying attention, yes, this blog still exists.  And while life happens and I’ve been too busy to maintain it, I do plan to resurrect it from time to time and post again.  One thing to note is that the blog’s address has changed; it’s now:

http://www.chrisbellini.com/blog

Of course, the RSS feed location has changed as well:

http://chrisbellini.com/blog/?feed=rss2

Stay tuned, because I will be posting more frequently very soon, starting with an experiment that I’m working on. Watch this space for more info.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 0 »

fave albums of 2009

December 20, 2009 under Annual Fave Albums, Music

It seems fitting that I end the year with a post about the only thing that it seemed that I could write about in the last 365 days – music. Honestly, to those who are able to work a hectic job, spend time with a significant other and do whatever else life requires of them and still find time to regularly blog about a variety of topics of interest to them…kudos! 2009 simply didn’t now allow me that luxury, and there’s no telling if 2010 will relent. The benefit to developing software in a fast-paced environment is that when I’m not in meetings or manically scrawling ideas on a whiteboard, it’s “nose to the grindstone” coding and I require a soundtrack for that.

Like bygone years, I have assembled a list of albums released this year that I found to be to my liking. As per usual, here it is in alphabetical order and includes my selection for “album of the year”.

…And You Will Know Us By The Trail of DeadThe Century of Self
Bear In HeavenBeast Rest Forth Mouth
Built To SpillThere Is No Enemy
Cymbals Eat GuitarsWhy There Are Mountains
Dan DeaconBromst
Dinosaur Jr.Farm
CanadianDo Make Say Think -The Other Truths
Echo & the BunnymenThe Fountain
The Flaming LipsEmbryonic
Fuck ButtonsTarot Sport
Future of the LeftTravels With Myself And Another
Album Of The YearThe HorrorsPrimary Colours
IdlewildPost Electric Blues
CanadianJapandroidsPost-Nothing
Manic Street PreachersJournal For Plague Lovers
CanadianMatthew GoodVancouver
CanadianMetricFantasies
CanadianThe Most Serene Republic…And The Ever Expanding Universe
The Pains of Being Pure of HeartThe Pains of Being Pure of Heart
PhoenixWolfgang Amadeus Phoenix
A Place To Bury StrangersExploding Head
Silversun PickupsSwoon
Sonic YouthThe Eternal
Sunn O)))Monoliths and Dimensions
CanadianThink About LifeFamily
The Twilight SadForget The Night Ahead
Yeah Yeah YeahsIt’s Blitz
Yo La TengoPopular Songs

Some honourable mentions:
The Big PinkA Brief History Of Love
Lou BarlowGoodnight Unknown
MuseThe Resistance
NOFXCoaster
Pearl JamBackspacer
CanadianThe Tragically HipWe Are The Same
CanadianUbiquitous Synergy SeekerQuestamation
We Were Promised JetpacksThese Four Walls
WilcoWilco (The Album)

I had hoped for the best of Spiral StairsThe Real Feel but I simply would rather see the reunited Pavement come to Toronto. And I was really anticipating Mew‘s follow-up to their excellent And the Glass Handed Kite album, No More Stories, but I found it quite “meh”.

Finally, I’m not Pitchfork nor am I some hipster with black-rimmed glasses, skinny jeans, ironic t-shirts and an iPhone in my hand. That being said, I always try to like an Animal Collective album when it’s released but I’m ultimately disappointed at how unlistenable (to me) their music is. Merriweather Post Pavilion is no exception. It’ll appear at the top of all of the “cool” year end lists, and maybe even some uncool lists too. However, it won’t be on mine. Yuck.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 1 »

simpler times in a simpler city

November 6, 2009 under Computers, Internet

Last week, Yahoo! discontinued Geocities; the free web hosting service. Although Geocities hadn’t been relevant since 1998, I’m still a bit sad at the thought of a piece of Web history coming to an end. I have fond memories of Geocities, before it was owned by Yahoo!

Back in 1995, the Internet came to my hometown of Timmins, Ontario. Vianet was the lone ISP and I signed up for an account while I was still in highschool living with my parents (yes, I myself paid for the service). With the floppy disks of tools provided by Vianet (Trumpet Winsock, Netscape Navigator, Eudora and PowWow) a new world unveiled itself to me that was far beyond the local BBS I had become accustomed to. The sheer amount of information available on the burgeoning World Wide Web fascinated me. I had to learn how websites were made.

After learning what a search engine was and how to use one (in this case, it was Altavista), I queried to find out what a web page actually was and how to make it available to the world. I learned that in order to allow people to access the web pages you create with HTML, you need someone to host them for you. In 1996, when I began to seriously experiment with HTML, Geocities was the free web host to use.

A friend and I put together our first website, the Lords of Digital Consciousness. It was, by today’s standard, extremely basic and horribly tacky. We abused repeating background images, the MARQUEE tag and animated GIFs. The point I’m trying to make, though, is that Geocities made it super-simple to put together a site for the entire world to see at no cost. Geocities allowed you to store your website in neighbourhoods that matched your site’s theme; Area51 for sci-fi, WallStreet for business, Colosseum for sports and so on. Naturally, we parked our Lords of Digital Consciousness website in Silicon Valley – the neighbourhood for computer-related websites.

Even if Geocities becomes just another footnote in Internet history, I won’t forget the impact it made on me. In 1996, while working on the Lords of Digital Consciousness in my spare time while I was in university, I wanted to improve and understand the process of creating websites by reading more. Being a pre-pharmacy major at the time, I should have had my nose in biochem and human physiology text books, instead of the HTML, JavaScript and Perl books I had been buying and reading for “fun”. I eventually switched my major to Computer Science and the rest is, as they say, history. However, every once and a while – when I’m deep into modern frameworks, n-tier architectures, and enterprise design patterns, I think back to simpler times when completing a project only involved editing some HTML and JavaScript in Windows Notepad and storing it in my place in one of Geocities’ neighbourhoods.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 1 » tags:

what i'm listening to – september 2009

September 22, 2009 under Music

I know this blog exists, but you wouldn’t believe it based on the frequency of my posts. I can honestly say that I haven’t been this busy in a very long time. That’s a good thing! Although it’s not such a good thing if you faithfully followed this blog ‘o mine (perhaps by subscribing to the RSS feed) and have seen the rate of new posts drop off like Kanye West’s respectability (wow, topical!).

There’s a lot of exciting tech, sports and life topics I’m hoping to write about, but until I get the chance (again, not a bad thing), we’ll all have to make-do merely knowing what kind of music I’m listening to lately.

Future of the LeftTravels With Myself and Another
Like a more-accomplished mclusky, Travels With Myself and Another is an energetic and entertaining scuzz-rock record.

Manic Street PreachersJournal for Plague Lovers
With lyrics entirely provided by notes left behind by Richey Edwards, Journal for Plague Lovers makes it look like the Manics have been reinvigorated with a sense of urgency.

MewNo More Stories…
Even more grandiose than …And the Glass Handed Kite and much peppier and hopeful.

Modest MouseNo One’s First and You’re Next
Holding me over until we see a new Modest Mouse full-length.

MuseThe Resistance
Operatic, classical and rocking.

NOFXCoaster
The anti-Bush sentiments are no longer required, so they boys have settled back into their old ways, with a couple of mature tricks (Example: “My Orphan Year”).

Pearl JamBackspacer
Best PJ album since Yield.

Yo La TengoPopular Songs
Combines all of YLT’s best fuzz-pop, drone, twee elements into a single cohesive album. My easy fave is “More Stars Than There Are In Heaven”.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 0 » tags:

what i'm listening to – july 2009

July 22, 2009 under Music

July is the marriage month and I have two weddings to go to; I’m the best man in one of them and wife is the maid of honour in the other. Does this mean my tunes taste has turned to wistful songs of love and devotion?

Friendly FiresFriendly Fires
Funky and tuneful with a splash of shoegaze. Hip wedding receptions would play some tracks off this album to get people to kick off their shoes and spaz out on the dance floor; “On Board” (made famous by the original Wii Fit TV commercial) at the very least.

The HorrorsPrimary Colours
The Cure + Bauhaus + My Bloody Valentine = The Horror’s Primary Colours; that’s the best way for me to describe it.

The Most Serene Republic…And the Ever Expanding Universe
Grandiose songs for a hip romantic comedy. Too bad “hip” and “romantic comedy” are mutually exclusive. With love, from Milton, ON.

The Rural Alberta AdvantageHometowns
A friend of mine knows the folks in this band and gushed about them for so long, I gave in. Turns out, he’s right. Bedroom rock with big ambitions.

WilcoWilco (The Album)
Wilco, Wilco, Wilco will love you, baby. Need I say more?

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 0 » tags:

firefox 3.5 – an exercise in poor design

July 10, 2009 under Computers, Internet, Software

Lucifer is putting on a sweater – I’m posting something technical again!

Mozilla released Firefox 3.5 last week with loads of new features like the zippy TraceMonkey JavaScript engine. It also includes another feature that I don’t think I can ever warm up to – a revamped NSS module that causes ridiculously long launch times on Windows computers.

The NSS is responsible for handling encryption tasks via SSL, TLS, etc. When we’re talking about encryption, random numbers are par for the course. I’m not sure how they generated random numbers in previous NSS versions, but for 3.5, Mozilla decided that using various temporary files on people’s computers was a stellar way to calculate a seed for a random number generator. Generating truly random numbers on computers is hard. Hell, randomness itself is hard. Yet whatever Mozilla was doing before seemed to work well. Why they decided to use temp files now is anybody’s guess. Especially given the fact that typical computer users don’t even know of the existence of the various temporary folders on their systems, so we could be talking thousands of files that the NSS has to iterate over to generate a random number generator’s seed. Thankfully, this issue has been logged as a Priority 1 bug, so we (hopefully) can anticipate a speedy resolution. In the meantime, if you like Firefox 3.5 on Windows but its slow startup has you at your wits’ end (and you don’t want to revert to a 3.0.x version), keep the following folders on your computer as clean as possible until this is fixed in a point release:

Windows 2000, XP and 2003

  • C:\Documents and Settings\[user_name]\Temp\
  • C:\Documents and Settings\[user_name]\Local Settings\Temp
  • C:\Documents and Settings\[user_name]\My Recent Documents
  • C:\Documents and Settings\[user_name]\Local Settings\Temporary Internet Files
  • C:\Documents and Settings\[user_name]\Local Settings\History

Windows Vista, 2008 and 7

  • C:\Users\[user_name]\Temp\
  • C:\Users\[user_name]\AppData\Local\Temp
  • C:\Users\[user_name]\AppData\Roaming\Microsoft\Windows\Recent
  • C:\Users\[user_name]\Local Settings\Temporary Internet Files
  • C:\Users\[user_name]\Local Settings\History
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
comments: 0 » tags: