CodeStock 2012: Adaptive and Responsive Web Design

imageBelow are my notes taken during CodeStock 2012’s “Adaptive and Responsive Web Design” hosted by:

Steve Bodnar ( @SteveBodnar )
www.geeksandgurus.com

 

 

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

In this session we learned how HTML5 lets us design our web apps to automatically adjust to all sorts of different sized browsers.  See links in notes below for sites with examples.  Resize your browser to large and small and watch the sites automatically adapt.

Raw notes, as I typed them in class below:


  • How to make your sites work on any HTML/Javascript device regardless of browser or device.
  • RELEVANT CONCEPTS
    • App vs. site
    • Graceful degradation
    • Progressive enhancement
    • Others…
  • GRACEFUL DEGRADATION
    • Downgrade gracefully when features aren’t available in browser. User should not notice.
    • Design on most advanced browser then adapt to lower browsers
  • PROGRESSIVE ENHANCEMENT
    • Focused on content, not browsers
    • Builds for least capable devices
  • STRAGEGIES
    • Start with lowest
    • Design for semantics and structure
    • Add features appropriate for baseline devices
    • Add features appropriate for accessibility
    • Add layout markup and style sheets for structural layout
    • Add baseline presentational style sheets using link
    • Add behavior (scripts, css hover, etc.)
    • Add workarounds/hacks for recalcitrant browsers
    • Define styles for modern graphical browsers.
  • ADAPTIVE WEB DESIGN
    • Not clear divide between this and response web design. Responsive is more specific
    • Creating interfaces that adapt
        • (use firefox user agent switcher to render as other devices)
        • Using progressive enhancement
        • Examples of adapting
          • If device can access location, enable location-based behavior
          • If device supports touch, enable touch-friendly ui
          • If device supports html5, use it
        • Mobile First
  • RESPONSIVE WEB DESIGN
    • Fluid Grids
    • Fluid Images and Media
    • Media Queries
    • (site takes shape of browser).
    • MediaQueries.es for examples of adaptive web design.
    • ASP.NET MVC 4 provides adaptive in default project.
    • @media keyword in CSS.
    • Resolution independence
  • MOBILE FIRST
    • Embrace constraints, don’t fight them.
    • Ony eyeball, one thumb
      • Forces you to focus
        • What content must be delivered?
        • Is chrome necessary?
        • Rich context aware applications.
  • ACCESSIBILITY
    • Design for all visitors
      • Screen readers
      • Color blindness
      • Hearing impaired
      • Navigation, images, forms
    • Not just about design for people with disabilities
  • BROWSER GRADES
    • C-Grade
      • Based level of support
      • Identified, incapable, antiquated and rare
    • A-Grade
      • Highest level of support
      • Identified, capable, modern and common
    • X-Grade
      • Unknown, fringe or rare browsers as well as browsers on which development has ceased.
  • TOOLS
    • CSS
      • Embrace CSS
        • CSS Zen Garden csszengarden.com
          • Links on right switch CSS to completely change the site with zero HTML change.
        • CSS1k.com
          • Examples of what 1KB of CSS can do to how a website looks.
  • HTML5
    • Clark Sell and Brandon Satrom
    • Microsofties
    • At CodeMash
    • HTML
    • CSS3
    • JavaScript
    • Semantic HTML
      • <div>
      • <div id = “header”>
      • <header>
      • <article>
      • <time>
    • Data attributes
      • Any attribute that starts with “data-” will be treated as a storage area for private data
      • <data-role>
      • <data-role = “header”>
      • <data-role=”footer”>
    • Viewport (browsers tell you what resolution they can handle – phones will lie)
      • Visual Viewport
        • The part of the page that’s currently on-screen
      • Layout Viewport
        • Doesn’t change in size or shape
        • Varies per browser
  • MEDIA QUERIES (w3 site has it all)
    • Width
    • Height
    • Device-width
    • Devbice-height
    • Orientation
    • Aspect-ratio
    • Device-aspect-ratio
    • Color
    • Color-index
    • Others.
  • FRAMEWORKS
    • MVC 4
    • Twitter bootstrap twitter.github.com/bootstrap
  • EVERYONE AGREES
  • Emulators
    • Shrinking your browser isn’t a perfect example.
    • Use real emulators if you have them.
    • Android-emulator.org
      • Has emulators for multiple mobiles including Ios
  • RESOURCES
    • Alistapart.com
    • Css3pie.com – to get IE 6-9 capable of rendering several of the most useful css3 decoration features.

CodeStock 2012: What’s New in .Net 4.5?

imageBelow are my raw notes during the “What’s New in .Net 4.5?” session at CodeStock 2012 on Friday, June 15th at 1:50 PM / 70 min.  This session was hosted by Layla Driscoll from Microsoft.  She’s on the Silverlight CLR team.

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

And below are my crude, raw notes taken during the session, only minimally cleaned up.


This sample will use:

  • Async & await
  • Asplnet web api
  • Entity framework

Creating a Metro app

  • Multiple tiles
  • Drill down into them for more stuff.
  • Using some sort of MVC type of development.  (Really?  For a DESKTOP app??!?!  I’d heard of this, but that’s the LAST way I want to develop a DESKTOP app… you get the worst of both worlds… no advantages of a native app and no advantages of web deployment and all of the frustrations of both.  Though, it’s cool you CAN do it… I’d just never do it that way.)
    • Looks like it’s a web app, but it’s a Metro app.
    • Controllers are deriving from ApiController
    • Type called Feature.
    • (Note, code snippet below is incomplete.  Remember, I typed this in “class” as fast as I could…)
    public class FeaturesController: ApiController
    {
        private Feature[] features - {{new Feature{Id=1,Name="LINQ"}, new Feature{Id-2,Name="OptionalParam"}};
        public Ienumerable<Feature> Get()
        {
            return features;
        }
    
        //Feature is her own plain old class with several fields in it.
        public Feaure Get(int id)
        {
            var feature = features.SingleOrDefault(f=>f.Id=id);
            If (feature == null)
            {
                var resp = new HttpResponseMessage(HttpStatusCode.NotFound);
                Response.Content = new StringContent("Feature not found");
                throw new HttpResponseException(resp);
            }
        return feature;
        }

Async keyword can be placed on methods like

 

private async void blah()
{
    using (var httpClient = new HttpClient()
    {
        httpClient.MaxResponseContentBufferSize = 1024*1024;
        var response = await httpClient.GetStringAsync("http://localhost blah blah");
        var list = JsonConvert.DeserializeObject<List<int>>(response);
        foreach(var I int in list)
        {
            response = await httpClient.GetStringAsync("http://localhost blah blah" + i);
            var f = JsonConvert.DeserializeObject<FeatureDataItem>
        }
  • Use nonvolatile for locking code. (or did she say non-locking?)
  • Win32 API (or whatever it’s called now) looks like managed code… no DLL import crap.
  • New large object heap. Anything 85,000 bytes.
  • Multi-core JIT
  • Prefetcher
  • ReadOnlyDictionary

New to Android? Here’s what you need!

Starting in a new computing environment can be confusing and stressful for many reasons.  I’ll provide you the knowledge base, the apps, and the community resources you’ll need to have a good experience on your new Android device.

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

(Image Credits: https://www.aimagin.com/products/training/android-beginner-workshop-reviews.html)

Android is more than just an OS (Operating System) or “a phone”.  It’s an ecosystem made up of the OS, the phones, as well as tablets, TVs, computers on a stick, notebooks, wrist watches, health monitors, appliances, a platform, a community, a mindset, and the whole is greater than the sum of the parts.  So, with your new Android device, you’ve moved into a whole lot more than just your new phone (and I’m making a wild assumption that your new device happens to be a phone as it could have been any of the items listed above, or even something else).

There’s a LOT I could talk about here, but since this is focused on just what you need to get started, I’ll try to hold myself back.  I’ll also restrict this discussion to just phones and tablets.

What’s Not unique about Android?

Let’s begin with what you’re familiar with.  You’ve probably used a smartphone or a tablet by now.  If not, you’ve certainly used a Windows, Linux, or Mac based PC before.  Android is somewhat similar to those in that it provides you with a GUI (graphic user interface), usually on a mobile device.  That user interface is optimized for touch input.  You have the familiar things you’d expect in any GUI such as buttons, lists, check boxes, etc…  Being optimized for mobile devices, it also has video keyboard support, and of course, support for touch screens.

Since it is an OS, you also get app stores and apps which can take advantage of the capabilities of your mobile device.  Most mobile devices have many (if not all) of the following hardware capabilities:

  • Touch screens
  • Speakers
  • Microphones
  • Cameras (both snapshot and video recording)
  • Wireless network capability
  • Mobile service radios (cellular network capable)
  • GPS
  • Compass
  • Physical keyboards (with real buttons)
  • Expansion slots for more memory
  • data/power ports
  • NFC (Near Field Communication) chips
  • Thermometers
  • Barometers
  • Bluetooth communication

among other features.

What’s Unique about Android?

There are many things unique to Android, but seeing as this is a beginner’s guide, of sorts, I’m just pointing out some of the highlights.

Android separates itself from the others in that it is an open system.  This word “open” has multiple meanings.  In one sense, it means that the source code to the OS is available for any programmer that wants it to make changes to the underlying capabilities.  It also means that anyone is free to make modifications to it and sell their own hardware running the Android OS.  But, what does that mean for YOU?  After all, most people are NOT programmers nor hardware manufacturers and have no desire to be.  So how does that help YOU?

Since Android is free for anyone to use, there is a plethora of Android devices on the market.  You’re not limited to just ONE or a small handful of models to choose from.  What ever form factor you want, there’s one (or probably many) available that fits your needs running Android.  If you must have a physical keyboard, then there are many many Android phones and tablets with physical keyboards, as one of many examples.  There are devices with large screens, with small screens, with hi-res screens, with low res screens, with sturdy, expensive hardware, with cheap hardware, with hi end devices, with low end devices, and everything in-between, expensive devices, and budget devices.  Whatever your cost budget or your hardware needs, there’s a device for that.

It also means you’re not limited to getting your hardware from just ONE company.  You’re not limited to just one or a small handful of cellular providers.  Android devices are available everywhere.

Another notable feature is that you’re not locked into a single app store.  You can install apps from where ever you like.  Apps also register their capabilities with the OS.  In other words, Facebook, Google+, and Twitter, when installed, announce to the OS that they are capable of sharing content.  So, whenever you use an app that’s capable of sharing content, like a browser sharing a link, or a photo app sharing a photo, when you tap the “share” icon in whatever app you’re using, ALL the apps you have installed that are capable of sharing content will appear to let you choose which app or service you want to use to share that content.  The great part about that, aside from the obvious, is that apps don’t have to be written specifically to “know” about all these services.  They only have to be written to tell Android they have content to share and to hand it over to Android.  Android then passes it along to the app or service that the user chose from the list and that chosen app or service takes it from there.  Neither the original app that created the content, nor the app that received and published it need to know anything about each other.  That’s all handled by the Android OS.  This makes capabilities of apps sharable between apps without any app needing to know anything about any other app.  Say, for example, you install some obscure photo editing app, then 3 years later, some new social network shows up and provides an Android app.  Your 3 year old photo editing app, that you may not have even updated, can easily share to the new social network that didn’t even exist 3 years ago when you installed the photo editing app.

What can I do with an Android device?

You can do pretty much the same things you can do with most other, modern, mobile devices.  You can make and receive calls (if your device is a _phone_ of course, or is internet enabled and has a microphone and speakers), browse the web, download apps, calendar, contacts, games, finances, social networking, GPS, etc… etc…

What do I need RIGHT NOW?

Security:

As with any computer system, the first thing you need to do is to secure it.  In spite of popular belief, Android is NOT less secure than iOS. In fact, if you use it right, it’s MORE SECURE THAN iOS!  These are the security issues you’ll encounter on a mobile device (ANY mobile device, regardless of who makes it or what OS it’s running):

  • Hardware loss or theft.
  • Exposing your private data like contacts, phone log, browsing history, social networking posts and friends, E-Mail, credit cards, bank accounts, web site logins, home address, work place, children’s names and ages and schools, etc…  Anything you access on the internet via your phone and any data you enter into your phone, including where you are now (GPS) and exactly where you were at any given point in time.
  • Malware.

Install Lookout Mobile Security right now.

Lookout Security & Antivirus

It will help with all of these issues.  Another good one (but doesn’t check for viruses) is Cerberus anti theft.

Cerberus anti theft

Cerberus is also great for keeping track of your kids’ where-abouts.  One of my children recently when on their first out of town, over night, field trip.  I was able to check in to see where they were at an given time.  I could even see them driving down the road on a map.  It’s a great peace of mind.

Communication:

There are multiple ways to communicate with people with a mobile device:

  • Phone call
  • Text/SMS
  • IM
  • Social Networks like Google+, Twitter, Facebook, etc…

I highly recommend installing Google Voice (NO! NO! NO! NO! NO! NO! NO! Despite it’s name, it’s NOT to reduce your cell phone minutes!!!! It’s for everything BUT THAT!)

It never fails!  Every time I mention Google Voice to someone, they always respond with, “Well, I’ve got unlimited minutes, so it’s pointless.”   Jeesh!  It’s NOT FOR THAT!  It’s a poorly named service because “voice” is NOT what it provides.

Google Voice provides the following features:

    • Instant Messaging (Google Chat)
    • Instant Messaging with voice.
    • Instant Messaging with video.
    • FREE TEXTING!!!!  (Again):  I must constantly battle the next response I always get, “But I have unlimited texting”.  Most likely you’re paying extra for that service.  I recommend dropping that and asking your cell provider to block all texting (so you don’t get charged for spam messages).  Then, you can continue using texting COMPLETELY FOR FREE!!!!!!  See this article:

Google Voice: Free, unlimited texting on your cell/mobile phone!

DON’T install the Facebook app!

Facebook is notorious for continuously, without end, violating your privacy on multiple levels.  I personally recommend staying away from Facebook altogether, but if you just can’t pull yourself away, at least access it from your mobile via your web browser ONLY… NOT via the mobile app.  Just do NOT install it.  The app itself has been found to violate your privacy.  You DON’T want it on your phone!

Also, when you access the Facebook website, be sure to put “s” after the “http” in the browser’s address bar.  In other words, your browser should be at https://www.facebook.com with an “s” in there after the “http”.  Otherwise, you’re on an UNENCRYPTED PAGE where you’ll be entering your login name and password in clear text, broadcast over the internet, and possibly in the clear over the wireless network at Starbucks or the library or your school or anywhere else (one of the many problems with Facebook security and privacy).  This is NOT an Android issue, it’s a Facebook issue! 

Now, back to Google Voice.  I did say that the purpose of the Google Voice app has NOTHING to do with making free phone calls from your mobile phone.  And I stand by that.  But, there ARE other apps available that WILL give you free phone calls (and they do it using your Google Voice account).  They do this by using VOIP (Voice Over Internet Protocol).  In other words, they communicate over your cell provider’s DATA network as opposed to its VOICE network.  You get charged from your allowed minutes if you use their VOICE network, but NOT if you use their DATA network.  Be careful though, because it DOES use bytes on your data plan, so if you have a LIMITED data plan, you’ll want to keep track of your data usage… but digitized voice over data is a pretty low bandwidth usage. 

Again, if you tell me you get unlimited minutes again, I’m going to slap you silly!  You might be one of the few that doesn’t have to pay extra for unlimited voice.  But, if you’re in the majority, you’re paying EXTRA for unlimited voice.  With the right apps installed, you can drop the cost of your monthly bill down considerably by getting their lowest minutes plan and blocking text messaging.  I’ve already covered free texting above.  Now, here’s how you get free minutes for phone calls too:  Free Cell Minutes.  As an example, I have 5 phones on my plan and 4 of them have unlimited data.  We have the lowest possible plan we can get as far as minutes go (750/mo. shared with 5 people).  My Total bill each month?  $144.  And because of how we’re using Google Voice appropriately, we end up having unlimited voice, text, and data on 4 of the 5 lines.  (The 5th line is for my aunt who simply wants a plain old phone).  Most people I know can barely keep ONE phone below $144/mo.  As you can see, using this right saves you TONS of money.  If you’re wondering… I use T-Mobile.

That’s about all you Need right now, but there’s plenty more you’ll likely want and I’ll cover some of those on an ongoing basis, so keep checking back and follow me on Google+.

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

See these images?

imageimage

You’ll find an actual working versions of them at the top and bottom of this article. Please click the appropriate buttons in it to let your friends know about this article.

Check back later for updates too!

64bit and 32bit versions of IE

Please forgive the “E-Maillyness” of this post because it actually is an E-Mail message.  I spent a good deal of time on it and it’s a common question, so I wanted to share my answer here.  All “low quality post” forgiveness to e-mail should be applied here as well! Smile

On 3/30/2012 11:38 AM, George wrote:

Hey CSharpner,

I have been needing to use skype for video conference calls and downloaded the update the other day.

Ever since I downloaded the update, skype shuts down in about 10 to 15 min of each session without me touching anything…(it had been working fine before that)…

(I am trying to troubleshoot that.

One thing I noticed is that the IE that I have states in properties that it is 256 bit Cipher Strenght ….I was checking to see if I needed to update flash, and the instructions there said

to make sure one has the correct bit for IE. My operating system is 64 bit, and I assume IE should be the same. Do I have the wrong version of IE?

Thanks for your guidance!

George

You’re confusing bits with, er, uh, bits! 🙂  Does that help?

heh… Let me see if I can explain it better:

Here’s a blog post I wrote on the subject:  32 bit vs. 64 bit: What’s it mean?

In short:
Unfortunately, you’ve asked a simple question with a complicated answer.  It requires several layers of understanding… each upper layer requiring an understanding of the layer beneath it.  I’ll do my best to uncomplicate it, but it’ll take many words to do so.   But the words will be fairly simple in and of themselves.  Let’s get started:

When home computers came out in the 1970’s, like the original Apple computer and the Apple // computers shortly thereafter, they were 8 bit computers.  This means that when the CPU chip (the brain) talks to the Memory chips, it can send and receive data 8 bits at a time (8 actual wires on the motherboard between the memory and the CPU… to severely over-simplify the explanation).    Now, as technology increased, they doubled the amount of wires between the CPU and the memory to 16 bits.  This means the CPU can send and receive TWICE as much data in the same amount of time as the older 8 bit CPUs without actually running the CPU clock any faster.  Later technology doubled it again to 32 bit.  32 bit became the norm in the early 1990s.  Around 10 years or so ago, 64 bit machines started to become normal.  Today, virtually all machines are 64 bit.

Now, that’s the hardware story.  Let’s switch over to the software side:…

Operating Systems like Microsoft DOS in the 1980’s or Apple DOS for Apple // computers in the 1980’s and the Mac OS are written for a specific type of hardware.  The Apple // operating systems were written for 8 bit hardware.  Microsoft DOS was written for 16 bit IBM PCs and the Mac OS was written for 16 bit hardware for the original Macs (might have been 32bit… I wasn’t in the Mac world then).  Let’s narrow the discussion to Microsoft OS’s and the hardware they’re written for:

MS DOS of the 1980’s was written for 16 bit hardware.  Later, Windows arrived on the scene and was still written for 16bit hardware, but while 16 bit Windows was out, 32 bit hardware started becoming available.  But, 16 bit Windows was still written for 16 bit hardware.  The 32bit hardware could run 16 bit software just fine… the software just wouldn’t gain any benefits of the 32 bit hardware because, obviously, they were pre-programmed for 16 bit operations.  So, software and hardware don’t have to be the same “bits”, so to speak.  Later, when Windows 95 and Windows NT came out, Windows became a 32 bit operating system (for the most part).  Then, the hardware advanced again to become 64bit hardware.  Windows 95, 98, and ME were still 32 bit.  It wasn’t until Windows XP came out that they finally made Windows 64 bit capable (well, they did with NT, but let’s not confuse an over-simplified story here).  They actually had TWO versions of Windows XP… a 32bit version and a 64bit version.  The vast majority of computer users bought and installed the 32 bit version, even though almost all PC hardware was 64 bit capable… Even PC manufacturers would pre-install 32 bit Windows XP on their machines.

Right now, it’s finally starting to become the norm that new PCs have a 64bit version of Windows installed.

But, there’s more:

We talked about 8, 16, 32, and 64 bit hardware and 8, 16, 32, and 64 bit Operating Systems, but to move forward to answer your question, we must introduce one more item (believe it or not, I’ve left out a LOT of discussion on this!)…  Applications.   Apps too can be 8, 16, 32, or 64 bit, regardless of the operating system under which they run and regardless of the hardware on which they run.  Of course, an app can’t have a higher “bit rating” than the operating system it runs under and and operating system can’t have a higher bit rating than the hardware it runs on.  But, a 64 bit piece of hardware can run a 32 bit operating system that runs a 16 bit app.  Follow?

A 64 bit piece of hardware can run 64 bit software, 32 bit software, 16 bit software, and 8 bit software (and maybe even 4 bit software… not sure because we’re talking early 1970’s at that 4-bit level).  Ditto for an Operating system.  An operating system can run apps designed for the OS’s highest bit rating or lower.

Now, we can start answering your question!

64 bit Windows comes with TWO versions of Microsoft Internet Explorer:  a 64 bit version and a 32 bit version.  Under your Windows 7 start menu and under “All Programs”, you should find BOTH of them.  The 64 bit version should be labeled as “Internet Explore (64-bit)” or something like that.  The 32 bit version should just be labeled, “Internet Explorer”.  If you only have one, then you probably have a 32 bit version of Windows installed and that’s a problem in and of itself which we’ll discuss later if that’s the case.  If you’re not sure which is which, just launch one, then open the gear menu, then choose “About Internet Explorer”:

You’ll see something like this:
image
Or this:
image
Notice the difference?  No?  Look at this:
image

One says “64-bit Edition”, the other doesn’t.  THAT’s the thing you need to look at, not the “Cipher Strength”.  “Cipher Strength” has absolutely nothing to do with any of this discussion and nothing to do with your question.  All “Cipher Strength” is, is how good your browser is at encrypting web pages.  That’s it.  The answer to you next question is “NO!”.  It still doesn’t have anything to do with your Skype issue.  No!  Not even then!  No, seriously!  Stop trying to connive of a way to make it relevant.  It’s not!  Just stop!  Can we move on now? 🙂

Now, virtually all browser plugins require the 32 bit version of Internet Explorer.  Hardly anything supports the 64 bit version.  So, make sure you’re running the 32 bit version of IE when using Skype.

Wait!  You’re using Internet Explorer?!??!?!??  WHY?  Stop that right now!  Use FireFox or Chrome!  Holy Crap Dude! 🙂

I’ve not heard of any issues with Skype lately.

Hope that helps!

How to get the Best Prices on Hard Drives [Updated for May-June 2012]

The technique I outline here for finding the best hard drive prices is timeless, but the specific models and prices I’ve listed are good for only a few days.

Whenever I need a new drive, I shop around online for prices, but like most people, I’m quickly overwhelmed with the plethora of offerings (Thank Goodness for Competition!!!!).  There are so many models, with so many different characteristics (speed, capacity, interface, internal/external, brand, warranties, store, taxes, shipping, reliability, etc…) that I always fear that no matter what choice I ultimately make, I’m making a HUGE mistake by not getting another drive from another place that’s significantly cheaper, or faster, or with more storage capacity, simply because there’s not enough time for me to research them all.

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

So, I’ve come up with a technique to help me greatly speed up my research and have a reasonable confidence that the choice I make is close to the best available, even if not the absolute best deal ever.

Here’s what I do:

First, I make a simple spreadsheet.  It doesn’t matter which spreadsheet program or online spreadsheet you use.  Pick your favorite, then follow along.

  1. Create a spreadsheet in your favorite spreadsheet app.
  2. Add columns for source (a link to the product page of the drive), capacity, & price.  Feel free to add more columns like Make, Model, Interface, RPMs, etc…
  3. Add a calculated field for price/capacity.  The formula for row 2 should look like:  =E2/D2 if column E is your price per drive column and column D is where you’re holding your drive capacity.  Make certain you use the same units for capacity for all drives.  For example, if you write Gigabytes for one drive, don’t put Terabytes for another or your calculations will be wrong (by a THOUSAND FOLD!!!).  Choose either Gigabytes or Terabytes, but don’t mix and match.
  4. Go to your favorite online store and search for hard drives, filtered to your needs (for example, maybe you’re only interested in external drives, so filter by that).  Use that online store’s feature to sort by cheapest first!
  5. Start entering the data into your spreadsheet.  I recommend to NOT add columns that aren’t critical to your decision.
  6. Once you enter a drive with a certain capacity, ignore any drives later in the list that are smaller in capacity because they’re a worse price/GB (since you’ve sorted by price).
    1. This part is important to the whole process.  Pay special attention to this part!  Since you’ve sorted by cheapest first, the first drive of say 500GB you come across will be the CHEAPEST 500GB drive.  If you run into LOWER capacity drives, just skip them.  Scan ahead in the list until you find a drive that’s BIGGER than 500GB!  THIS is how you significantly reduce time browsing the site!
  7. Go to another online store and repeat steps 4-6 at a different online merchant.  Continue this until you feel you’ve shopped enough online stores and have enough data to make an informed decision.
  8. Now, sort your spreadsheet by your calculated column.  The cheapest price per GB will be at the top.

Below, is a screen shot of my spreadsheet with affiliate links to amazon.com and plain old links to bestbuy.com.  Click the image to be taken to my actual Google Docs spreadsheet with the actual data in it and links to each product.  Keep in mind though that hard drive prices change on a daily basis, so this data is only relevant for a couple days, but the technique I outlined here should save you hours of research and hopefully save you lots of cash too, as well as give you confidence that when you do make your decision, that it’s well informed.

May-June 2012 (below)

image

February 2012 (below)

image

Oh!  One more thing:  I strongly encourage you to avoid buying a hard drive until the last possible moment that you need it.  Why?  Because hard drive prices are ALWAYS falling and capacities are ALWAYS getting bigger.  The later you wait, the better deal you’ll get.

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

See these images?

imageimage

You’ll find an actual working versions of them at the top and bottom of this article. Please click the appropriate buttons in it to let your friends know about this article.

Check back later for updates too!

Is your ISP hijacking YOUR browser search preferences?

Many Internet Service Providers are overriding your choice of search engine on your own computer so they can show their OWN search page and advertisements, regardless of what you chose for your search provider.  Yes, this is slimy and unethical, but what can you do about it?

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

First, you need to test to see if your ISP has actually hijacked your browser’s search settings.

Do this:  In your browser, set your preferred search engine:

  • Chrome:  Open the wrench menu, choose “Options”, in “Search” section, pick a search provider, any one of them.
  • FireFox:  [Alt]+[D], type about:config in the address bar, then [Enter].  find browser.search.defaultenginename and set it to Google or Yahoo or Bing.
  • Inter Explorer:  Stop using this browser and use Chrome or FireFox.

Now, in your address bar, type a search term like, stop sopa then hit [Enter].  Did your search results show up in your selected search engine?  If not, your ISP has hijacked your personal preferences.  What do you think about that?  You like it?  You like that someone else has decided they know better?  Of course you don’t.  Now, call your ISP and bitch.  Bitch like it’s going out of style.  What right do they have to do that to you?  Then, read below to find out how to override their hijacking.

Did you search come up in your chosen search provider?  Still doesn’t mean your ISP didn’t hijack it.  It just may be that the search provider you chose is the same one your ISP chose.  Now, go back up to the bullet list and change your search provider to something else and repeat your search.  Did it come up in the new search provider?  Then you’re golden.  Your ISP has NOT overridden your choice.  But what if they do in the future?  How can you prevent it from happening in the first place?

How to tell your ISP to go to hell and tack control back of your search preferences:

You need to change your computer’s DNS settings.  Don’t be intimidated.  It’s easy.  Here’s how in Windows 7:

  1. Open your start menu and type “network and sharing center”, then click the name of your network as in the section below below:
    1. image
    2. image
  2. Click the “Properties” button.
    1. image
  3. Then select “Internet Protocol Version 4 (TCPIPv4)” and click “Properties”.
  4. In the “Inter Protocol Version 4 (TCP/IPv4) Properties” dialog box, in the lower half for DNS server addresses, WRITE DOWN WHAT’S THERE IN CASE YOU NEED TO CHANGE IT BACK!!!!!  Then enter the values shown below:
    1. image
  5. Click OK, OK, then close.

Go back up to the top to verify your search provider preferences are now respected.

So, what did we actually do?

When you type in a domain name like CSharpner.com, your computer doesn’t know how to get to the server that hosts that web site.  Your computer has to get to web sites via their IP addresses.  So, the structure of the internet has servers that will convert the domain name you provide into a current IP address for that site.  These servers are called Domain Name Servers (DNS).  There are thousands and thousands of Domain Name Servers, but you only use 1 or 2.  Your ISP has their own DNS servers and most likely, your computer is using THEIR DNS servers.

Now, here’s what normally happens when you enter an invalid domain name:  Your bad domain name is sent to the DNS servers, which don’t find it and return an error that your browser then displays, unless you have a default search provider set up in your browser.  In that case, instead of displaying an error, your browser then submits that text to your preferred search engine and then displays the results.

So, here’s what your ISP did to hijack your preferences:  When you enter an invalid domain name, instead of your ISP’s DNS servers returning an error to your browser, they instead do NOT return an error and will do their OWN search with a search company they’ve partnered with to get a percentage of the advertising revenue.  So, your browser will NEVER receive an error from your ISP’s DNS servers, hence your search preferences in your browser are never used.  You’ve now been hijacked.

What we did with the instructions above was told your computer to NOT use your ISPs DNS servers, but instead use some free DNS servers whose IP addresses happen to be 4.2.2.2 and 4.2.2.3.  These aren’t the only ones out there that you can choose from.  Google hosts some.  Their IP addresses are 8.8.8.8 and 8.8.4.4.

Now, if your ISP did, in fact, hijack your search settings.  Call them up and let them know what you think about it.  I highly recommend switching to one of their local competitors and let your old ISP know why you’re switching.

See these images?

imageimage

You’ll find an actual working versions of them at the top and bottom of this article. Please click the appropriate buttons in it to let your friends know about this article.

Check back later for updates too!

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

[poll id=”9″]

Setting up SQLite on 64bit Windows 7

File:SQLite370.svgIf you try to install the 64 bit version of SQLite on your Windows 7 64 bit system, you’ll find that your code will break.  It simply won’t work.  You’ll also find that when you try to add a connection in “Server Explorer” inside of Visual Studio, that there’s no option for making a SQLite connection.

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

image

This is because, for some reason, none of the current versions have the install for a SQLite connector.  For that, you’ll have to install the really old version 1.0.66.0 executable first.  After that, you can install the latest 32bit version (the 64bit version doesn’t work).  Once 1.0.66.0 is installed, you’ll have SQLite available in Visual Studio:

image

You can get v 1.0.66.0 from here:

You can download the 32bit DLLs here sqlite-netFx35-setup-bundle-x64-2008-1.0.77.0.zip:.  It’s under the section titled “Precompiled binaries for Windows”.

See these images?

imageimage

You’ll find an actual working versions of them at the top and bottom of this article. Please click the appropriate buttons in it to let your friends know about this article.

Check back later for updates too!

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

[poll id=”3″]

That’s it.  Good luck!

Tips for Surviving the coming Zombie Apocalypse as a CORPSE!

image

Enough with all the tips on how to survive the coming zombie apocalypse as a living person with all their petty concerns like food, shelter, and reproduction.  The easiest way to survive is to become a zombie!  Odds are, based on all prior zombie apocalypses, zombies outnumber the living by about a 100 to 1 margin, you should plan on how to survive the wrath of the dwindling living once the inevitable happens to you… when you’ve run out of ammo, your chain saw has jammed, and your girlfriend freaked out and took off without you in that 1970’s model pickup truck you acquired at that old farmhouse last night, and you’re cornered, in the basement, by 11 zombies, with 30 more shuffling in through the cellar door all chanting “brains! brains! brains!”.  Face it:  You’re toast!

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

So, why not make the most of it?  Good news!  You’re virtually immortal and probably impervious to pain!  There are only a few things that can kill you dead now:

  • Decapitation
  • A bullet to the head.
  • Dismemberment via a chain saw.
  • Getting plowed over by a very large and heavy vehicle.
  • Flame thrower.
  • Meat grinder.

Short of that, you’ve got nothing to worry about.  No longer are you concerned with things like food, shelter, repopulating the human race, running and hiding, brushing your teeth, grooming, personal hygiene, or even your own health.  Congratulations!  You’re now part of the majority!

But, there are a few survival tips you’ll need, even for the dead, in order to wonder aimlessly until your rotting corpse turns to dust.

  1. Never be the first zombie to walk in a house with the living in it.
  2. Never wonder near the living alone.  There’s safety in numbers.
  3. When you’re approaching a farmhouse after dark and you hear screaming and gunshots, wait for someone to shout “I’m out of ammo Jed!”.
  4. Still wait.  There’s usually a spectacular explosion or some kind of massive last resort.  Once you hear those two events, waltz on in with the others and feast on those delicious brains!
  5. NEVER and I mean NEVER walk within 50 yards of a gas pump!  NEVER!
  6. Don’t try to eat the brains of either member of a good-looking, young couple.  You’re just asking for trouble.  They seem to always find a way out and leave behind a trail of your brethren.
  7. When the psycho red-neck with all the guns, flame thrower, and cigarette dangling from his lower lip starts going berserk-o on a zombie killing spree, play be stay dead.  Don’t move!  Just lie there until his rampage ends.  He’ll usually be standing in the middle of a group of you when he runs out of ammo.  When that happens, go in for the kill.  It’ll only be a light snack though.  They usually have very little brains.
  8. Gather duct tape whenever you run across it.  You’ll need it to attach your arms back on.  They’ll have a tendency to keep falling off once you’re a corpse.
  9. If all you’re really after is brains, why not eat the brains of your fellow zombies?  Remember, it’s every zombie for himself.  There’s no written rule that says zombies CAN’T eat each other’s brains!  Times are tough.  Make the most of your limited resources.
  10. Lastly, go for the cowards that are also jerks.  They’re like low hanging fruit!  You can pick them off easily and the living won’t really mind.

So, there you have it.  Think out of the box and avoid those chainsaws!  Good look!

Or, as a last resort…

See these images? imageimage
You’ll find an actual working versions of them at the top and bottom of this article. Please click the appropriate buttons in it to let your friends know about this article.

Check back later for updates too!

Click here to follow me on Google+.

Is Google+ boring to you because it seems like no one’s there?

Well, if that’s the case, then you’re using it wrong.  There’s more activity on Google+ than you can shake a smartphone at!  Remember, G+ is NOT Facebook!  You can follow anyone, even if they don’t follow you back!  You just have to start following some interesting people.  It doesn’t matter if “my friends are all on facebook”!  I’ve met TONS of interesting people on Google+, 99.9% of which I’ve never met in person.

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

Do this:

  1. Fill out your Google+ profile page, specifically, your profession and interests (but don’t put too much personal information there… remember, this IS publically available to all pedophiles, stalkers, sex offenders, burglars, etc… and THEY use the internet too… probably more than YOU do!)  (Be careful what you publish about yourself or your loved ones online!)
  2. Now, find some interesting people:  In the “Search Google+” bar at the top, search for something you’re interested in.  Then click the “Search Google+ for” item right under your original search term:
    1. image
  3. You’ll get PLENTY of results of posts by fellow G+ users that match your search.  If you like what they have to say, click on their name and it’ll take you to their profile.  Look at their posts.  Are they interesting?  The add them to your circles!  Now you’ll see their public posts.  They might follow you back too!  Feel free to comment on their posts if you have something to add or ask.  You’ll get responses!  Now, go!  Go do it!
    1. image

 

Other things you can and should do:

  • Go to SocialStatistics.com.  You’ll find the most popular Google+ people and posts.  You’ll find plenty of people to follow there too.
  • Go to PlusCloutand find popular people from G+ there too.
  • Write some posts about things you’re interested in.  Be sure to post them public.
    • image
  • Comment on other posts.  People will interact with you and you’ll likely get some people to start following you!
  • Post your Google+ ID on Facebook and Twitter (the whole URL from your profile page).
    • image
  • Invite friends and family to start using Google+.

 

Google+ has a cleaner user interface and is more secure that Facebook.  Just be careful when you post.  Don’t post publicly unless it’s something you want everyone to see and don’t care if it’s seen by your employers, friends, parents, kids, future employers, grandkids, great grand kids, and your entire family lineage for generations to come, because it will never go away!  Be careful what you publish about yourself or your loved ones online!

See these images?

imageimage

You’ll find an actual working versions of them at the top and bottom of this article. Please click the appropriate buttons in it to let your friends know about this article.

Check back later for updates too!

Click here to follow me on Google+.

Follow me on Twitter @CSharpner.

Check out my 2nd article on Chris Pirillo’s Lockergnome.com

imageI’ve been asked by Chris Pirillo to write some articles for his web site Lockergnome.com. This is my second article.  It describes how to save money and protect yourself online when making purchases with a credit card.

Save Money and Protect Yourself with Your Online Purchases

If you haven’t heard of Chris Pirillo (and shame on you, if you’re a techie and haven’t), he used to host the TV show “Call for Help” on TechTV and lots of other cool stuff. You can follow him on Google+ here:

Follow Chris Pirillo on Google+

For that matter, you can follow ME on Google+ here:

Follow ME on Google+

I’ll be writing some more for Lockergnome.com, so check back here and I’ll post the links as they’re posted. I’ll also be announcing them on Google+.