(A blog with no name)

Wednesday, September 22, 2010

Hard tabs vs Soft tabs vs Spaces

This is an age-old argument that will never be resolved, but here's where I'm aggregating information on the topic for reference.  Personally, I've always preferred hard tabs, that are set to either 3 or 4 spaces of width (many early editors I worked with defaulted to 3, but I preferred 4, if only because it's an even number).  Most developers I meet, however, seem to HATE hard tabs, and tab width varies by convention among the numerous programming languages out there (Python is 4 spaces but Mako is 2?).

I begin my journey with Wikipedia, as always, and proceed from there.

Wikipedia - Programming Style#Indentation
http://en.wikipedia.org/wiki/Programming_style#Indentation

Wikipedia - Tab key
http://en.wikipedia.org/wiki/Tab_key

Tabs versus Spaces: An Eternal Holy War
http://www.jwz.org/doc/tabs-vs-spaces.html

Why I prefer no tabs in source code
http://adamspiers.org/computing/why_no_tabs.html

Why I love having tabs in source code
http://derkarl.org/why_to_tabs.html

MythTV says "The one hard and fast rule of Myth development: don't use tab characters."  Tabs should be set to 4 spaces.
http://www.mythtv.org/wiki/Coding_Standards

WordPress coding standards specifically say "Use real tabs and not spaces, as this allows the most flexibility across clients."  This is pretty much how I feel about it, especially this part: "Rule of thumb: tabs should be used at the beginning of the line and spaces should be used mid-line."  They don't specify the width of tabs.
http://codex.wordpress.org/WordPress_Coding_Standards

However, the Apache Project says the opposite: "4 space indent. NO tabs. Period."  On the other hand, they also stipulate that JavaScript opening curly braces should always begin on a new line.  They must not be up on their Crocker.
http://portals.apache.org/development/code-standards.html

Interesting argument here: "1 Tab = 1 Byte. 4 Spaces = 4 Bytes."
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=3978

Here's my preference:

Use tabs only for indentation of blocks (tabs at the beginning of the line, spaces within the line).
Set tabs to be four spaces wide.
Use hard tabs that insert a tab character instead of multiple spaces.

Reasons:

As long as everyone has set their editors to preserve tab characters when opening documents (which should always be the case), the spacing will always be consistent across editors whether or not they choose to display tabs as 2 spaces wide, 3 spaces wide, 4 spaces wide, 8 spaces or whatever.  The tabs will appear to be different widths across editors, but they will always be the same relative to each other.

This, of course, is also the case with spaces, and spaces have the advantage that a space is always the same width no matter what editor you're using, but invariably you run across situations where people accidentally deleted a space, or added one, so where you have 5 indentations in an environment where spaces are used, and the width of a indented tab stop is say, 4 spaces, you have 19 spaces instead of 20, and this is a pain to fix.

I want to jump through the indentations using the left/right arrow keys, but instead I find myself going one space at a time - annoying!

Tabs take less space.

Wednesday, August 4, 2010

Google enables multiple accounts logins

http://m.zdnet.com/blog/google/sign-into-multiple-google-accounts-at-once/2340?tag=nl.e539

Published with Blogger-droid v1.4.9

Thursday, June 24, 2010

Modernizr

http://www.alistapart.com/articles/taking-advantage-of-html5-and-css3-with-modernizr/

eCSStender

http://www.alistapart.com/articles/stop-forking-with-css3/

Monday, June 21, 2010

GoogleCL

http://www.betanews.com/article/Google-ties-Blogger-Docs-Picasa-and-more-to-the-command-line-with-GoogleCL/1276902785?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+bn+%28Betanews+Full+Content+Feed+-+BN%29

Toshiba dual screen tablet

http://www.betanews.com/article/Toshibas-Libretto-dual-touchscreen-ultraportable-PC-comes-in-August-in-limited-quantities/1277133242?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+bn+%28Betanews+Full+Content+Feed+-+BN%29

Thursday, June 10, 2010

10 > 34

Apparently, when Microsoft releases patches for 10 security vulnerabilities, it's "massive", but when Apple does the same for 34 vulnerabilities, it's normal.

http://www.zdnet.com/blog/security/microsoft-finally-fixes-pwn2own-browser-flaw/6628?tag=nl.e550

http://www.zdnet.com/blog/security/apple-plugs-48-safari-webkit-security-holes/6623?tag=nl.e550

Tuesday, May 11, 2010

Secret menus

http://www.couponsherpa.com/ask-coupon-sherpa/secret-restaurant-menus-revealed/

Wednesday, April 28, 2010

Betanews.com - Does Apple demand too much to be cool?

http://www.betanews.com/joewilcox/article/Does-Apple-demand-too-much-to-be-cool/1271187876?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+betanews%2Fjoewilcox+%28Betanews+-+Joe+Wilcox%29

Thursday, April 22, 2010

Facebook Open Graph

Several resources for Open Graph:

http://www.allfacebook.com/2009/10/the-open-graph-api-what-does-it-mean/

http://developers.facebook.com/docs/opengraph

http://wiki.developers.facebook.com/index.php/Roadmap_Open_Graph_API

The Open Graph protocol makes use of new meta tag property attributes, ex: property="og:type" content="news", etc. to identify and classify a page or site for Facebook.

Tuesday, April 20, 2010

456BereaStreet - HTML5 forms

http://www.456bereastreet.com/archive/201004/html5_input_types/

Monday, April 19, 2010

Browser debugging tools

http://www.pathf.com/blogs/2008/05/developers-note/

iPhone usability blunders

http://www.pathf.com/blogs/2008/09/four-blatant-iphone-usability-blunders-and-one-constant-annoyance/

Friday, April 16, 2010

Apps versus marketing?

Apps are definitely important but I don't think they're the deciding factor. Take the Citrix example - I've been using the Windows Mobile Citrix client to remotely access my work networks since 2001, so why is it only being talked about when it's on an iPhone? I've had multi-tasking and Internet and video and music, etc. since I bought my first WinMo device in 2001, yet most people I know think all that originated with the iPhone. Take a look at the download page for the mobile version of Google Maps, an application many people consider basic and a selling point for the iPhone - http://www.google.com/mobile/maps/ - WinMo had this app before, and actually supports more features than, the iPhone. More and more, I think it's largely about the marketing, which Microsoft has always sucked at, but which Apple excels.

7 people who are returning their iPads | Betanews

7 people who are returning their iPads | Betanews

Opera Mini Web browser for iPhone, iPod touch, and iPad on the iTunes App Store

Opera Mini Web browser for iPhone, iPod touch, and iPad on the iTunes App Store

HTC announces Verizon's newest Droid | Tech Gear News - Betanews

HTC announces Verizon's newest Droid | Tech Gear News - Betanews

Cloud computing more expensive than onsite?

http://blogs.zdnet.com/service-oriented/?p=4459&tag=nl.e539

Tuesday, April 6, 2010

Skyfire coming to Android

http://www.betanews.com/article/Skyfire-is-coming-very-soon-to-Android/1270492452

Saturday, April 3, 2010

Why Windows Mobile Rules – iPhone vs Windows Mobile Part 2

http://www.testfreaks.com/blog/information/why-windows-mobile-rules-iphone-vs-windows-mobile-part-2/

Friday, April 2, 2010

Net Apps browser share report

http://www.computerworld.com/s/article/9174686/Firefox_regains_some_lost_browser_share_ground

Thursday, March 18, 2010

CSS3.info

http://www.css3.info/

Saturday, March 13, 2010

Mosaic 2.7 on Mint

Co-worker sent me a link to a copy of Mosaic for Linux, so I blew away my laptop's unactivated Windows 7 install (was just trying it out on 7 year old Dell hardware - worked great except for sound) and installed Mint, so next step: follow the instructions to install Mosaic and party like it's 1994!

Wednesday, March 10, 2010

Opera 10.5 exploit

http://my.opera.com/securitygroup/blog/2010/03/09/the-malformed-content-length-header-security-issue

BetaNews.com - Cloud-based Google app store

http://www.betanews.com/article/Google-unveils-its-cloudbased-Apps-Marketplace-wants-20-revenue-share/1268189454?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+bn+%28Betanews+Full+Content+Feed+-+BN%29

BetaNews.com - IE usage remains steady

http://www.betanews.com/article/That-wasnt-supposed-to-happen-IE-usage-share-steady-since-choice-screen/1268168524?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+bn+%28Betanews+Full+Content+Feed+-+BN%29

HTML5/4 differences working draft published

http://www.w3.org/TR/html5-diff/

HTML working draft published

http://www.w3.org/TR/html-markup/

HTML5 working draft published

http://www.w3.org/TR/html5/

Sunday, March 7, 2010

Rebuilding my system with Windows 7 Home Premium 64-bit

Decided to start a record of the customizations I make to and programs I install on my computer since I rebuilt it using Windows 7 Home Premium 64-bit.

Saturday, March 6, 2010
  • Installed all Windows Updates, rebooting as necessary.
  • When the Action Center warned me that no anti-virus was installed, I installed Microsoft Security Essentials.
  • Went to Tools > Folder Options > View in Windows Explorer and un-checked "Hide extensions for known file types".
  • In a folder window, grouped everything by "Type" and then in Tools > Folder Options > View, clicked the "Apply to folders" button.
Sunday, March 7, 2010
  • While re-organizing stuff on my drives, went to Tools > Folder Options > View and checked "Use check boxes to select items".
  • Installed Foxit - fastest PDF viewer ever.
Monday, March 8, 2010
  • Installed Firefox 3.0, 3.5 and 3.6 for development - I keep IE8 as my default browser, to stay in touch with the experience most people are familiar with, but I often use Chrome as well.
  • Enabled Bookmark Sync for Chrome and cleaned up my bookmarks using Google Docs (got my social networking bookmarks organized finally!)
Wednesday, March 10, 2010
Friday, March 12, 2010
  • Finally needed to print something, so I used the "Add Printer" wizard to install my network printer - worked flawlessly as always.
Saturday, March 13, 2010
  • Been noticing something since moving to 64-bit and have decided it's not a fluke:

    Explorer does not refresh views as well as 32-bit - at least, I didn't notice the behavior until moving to 64-bit, and I'd been using 32-bit for like a year prior.  Basically, if I move file(s) and/or folder(s) from one location to another, or rename files or folders, etc., any progress dialogs appear and then close as if the operation's complete, and it does appear to be, but the icons are unchanged in the view.  If I refresh the view (F5, right-click > Refresh, close/re-open, navigate away and back, etc.), the view instantly updates correctly.  Haven't been scientific about it (yet), but it seems to happen more often than not, and I think the view does update eventually if I let it sit a while.

    Just happened now - I'd created a bunch of files on my desktop while working on a project and I was ready to delete them.  I selected them all and then drag/dropped them onto the Recycle Bin.  The cursor and everything behaved as if the operation was complete, but the files were all still sitting on my desktop.  I waited about ten seconds, and then went ahead and refreshed (right-clicked > Refresh) and bang, they all disappeared from the desktop.

    This seems to happen often, and it seems to happen in any Explorer view.  I found a thread about it, which is unhelpful so far:
    http://social.technet.microsoft.com/Forums/en/w7itproui/thread/8afb8b65-900c-4f42-b1df-3c2394417b6e

    Gonna monitor this for a while.


  • Installed Yammer to get updates from my work network.
  • Installed Komodo Edit.
  • Used ICS (Internet Connection Sharing) to connect my laptop (running Linux Mint which has no drivers for my laptop wifi NIC) to the Internet via my desktop - worked FLAWLESSLY.
Sunday, March 14, 2010
Thursday, March 18, 2010
Saturday, March 20, 2010
  • Installed FileZilla to manage my several websites.  Windows Explorer has integrated FTP so you can manage a remote FTP location just like a local folder, which is great for on the fly operations, but for large-scale file transfers FileZilla is faster.
  • Installed RealVNC to manage the other systems on my network.  Remote Desktop is better in some ways, but Microsoft has just messed with it too much over the years, rendering it almost unusable, and now it's not even available in Home Premium, so, okay Microsoft, I get it, you want me to use VNC instead.  Fine by me.  Message received.
Saturday, March 27, 2010
  • Installed Microsoft Live Mesh to try it out - allows access from my cell phone as well as my computers.
Monday, April 5, 2010
  • Installed DeepBurner - Windows has had CD/DVD burning built in for a long time, but it's still stupidly slow and involves making a copy of the files to a "burn" system folder - that can be ~4.4 Gb of data!  What if the reason you're burning the files is because you have less than 4 gigs remaining on your drive?  Stupid!  DeepBurner is free, lightning fast, and burns your files directly from their original locations, so no making duplicate copies BS.
  • Installed IrfanView to view PSDs quickly.
Tuesday, April 13, 2010
  • Installed The Gimp - Photoshop is soooooo expensive. And therefore uninstalled IrfanView.

Saturday, March 6, 2010

Windows 7 RC1 to Windows Home Premium 64-bit

The RC1 install I've had on my system for most of the last year began rebooting every two hours starting March 1st, right on schedule, so I decided to finally install a copy of Home Premium from the Family pack I bought a while back.  While reading up on Paul Thurrott's excellent guide on how to do a full custom install from upgrade media, I realized that now might also be the time to move from 32-bit to 64.

A year ago I'd seen some horror stories on the web about living with 64-bit Windows, mostly regarding lack of compatible software, and especially hardware drivers, but while researching the laptop I bought for my sister last Christmas, I noticed that the majority of Windows systems being sold to average consumers these days are all 64-bit, so I'm confident most of the issues have been resolved.

Not knowing anything about 64-bit software, the first question I had was: can my Dell XPS 420 desktop run 64-bit Windows?  Below are the instructions I found on Microsoft's "32-bit and 64-bit Windows: frequently asked questions" page:

To find out if your computer is running 32-bit or 64-bit Windows, do the following:
  1. Open System by clicking the Start button, clicking Control Panel, clicking System and Maintenance, and then clicking System.
  2. Under System, you can view the system type.
I was happy to discover that my system was compatible with 64-bit Windows, so the next question I had was, does the family pack I bought include 64-bit?  Turns out that most available copies of Windows one purchases include both versions.

After that, the process of installing was the same one I'm used to: Microsoft recommends a clean install from RC1 rather than an upgrade, which makes sense, and I prefer to clean install anyway when I get the chance, since I love working with a brand new system every so often.  The installation procedure itself was exactly the same as I'm used to.

I have had absolutely no hardware incompatibility issues so far - my audio, video, USB, Logitech webcam, wireless NIC, etc., all installed themselves automatically and "just worked".  The only differences I've encountered are:
  1. I now have two "Program Files" folders in my C: drive.  The first is called "Program Files", but the second is called "Program Files (x86)".  I'm assuming that there's some kind of 32-bit emulation going on that allows 32-bit software to work within 64-bit Windows, and that second folder is where they get installed, but that's just a guess.
  2. Whenever I download a program to install, I look to see if a 64-bit version exists.  If not, I just download the default, and so far, they all work.
I'm going to tag this post "rebuild" and begin a series of posts itemizing the steps I'm taking to rebuild my system.

Friday, March 5, 2010

PositionIsEverything.com - IE

http://positioniseverything.net/explorer.html

Sent from my HTC smartphone

SitePoint.com - hasLayout

http://reference.sitepoint.com/css/haslayout

Sent from my HTC smartphone

Wednesday, February 24, 2010

zachstronaut.com - Tracking Browser Window Size with Google Analytics

Good info on using Google Analytics to track browser window dimensions.  I also like what he's doing with his page background :-)

http://www.zachstronaut.com/posts/2009/02/02/analytics-browser-window-size.html

Tuesday, February 23, 2010

Video for everybody

http://camendesign.com/code/video_for_everybody

Sent from my HTC smartphone

Sunday, February 21, 2010

Re-organizing my Google Voice settings

I love Google Voice, and it's been working great, but I've needed to fine tune the settings for a while now.  Here's what they are as of now:

Phones
I have three phones set up (as I suspect most people do): Home, Work and Mobile.

  • Only Mobile is "checked" - I believe this makes it the only "default" phone, and therefore, by default, it's the only one that rings when my Google Voice number is called, unless other rules are in play (see "Groups" below).
  • All three phones are set up to ring on both weekdays and weekends.
  • Home and Work are not set up to directly access my Google Voice mail when calling my Google Voice number - they require hitting the star key during the greeting to access my voice mail.
  • Mobile is set up to go directly to Google Voice mail when calling my Google Voice number, but I must enter my PIN to access voice mail.
  • Mobile is set up so that when anybody calls my cell phone's number directly and I don't pick up, my other phones will ring before it goes to Google Voice mail.
Voicemail & SMS
I recorded a single voice mail greeting to use for all occasions, instead of the standard Google Voice greeting.
  • When anybody leaves a voice mail message, a notification is sent to my e-mail address, and a SMS is sent to my cell phone.
  • SMS messages sent to my Google Voice number are forwarded to my e-mail address.
  • Google Voice is set up to transcribe all voice mail messages.
Calls
  • I have screening turned off.
  • I have presentation turned off.
  • Google Voice is set to display the caller's phone number on my cell phone when a call comes in, rather my Google Voice number.
  • When I SMS another phone from any of my phones, my Google Voice number will be displayed on the recipient's phone.  This really only applies to my cell phone, since that's the only phone I SMS from.
Groups
This is a tricky area, so I did some thinking and came up with the following work flow.  There are three levels of callers to consider:

Level I: Everybody
- People I don't know: should just ring my cell phone
- People I know: depends on the caller.  Can be organized individually or in groups

Level II: People I know
- People not in groups: should just ring my cell phone
- People in groups: depends on the group, but generally should just ring my cell phone

Level III: People in groups
- Family and Friends: should ring cell and home
- Work, Coworkers: should ring cell and work

Exceptions can be applied on an individual basis, but some experimentation should be done when I get the time.  For example, if I set up an individual to have specific settings, but then subsequently change the settings for the group that individual belongs to something different, does that wipe out that user's individual settings?  In most cases, I think I'd like to keep individual settings unchanged, but on the other hand, changing or re-applying group settings might be a great way to "clean up" a lot of individual exceptions.  This brings up a related question - suppose an individual belongs to two groups, with different settings?  Which group's settings apply to this individual?

Tuesday, January 12, 2010

If Shakespeare had written The Big Lebowski

Well, here's someone with time on his hands: "It was of consequence, I should think; verily, it tied the room together"
http://www.runleiarun.com/lebowski/

Make Googl urls without the Google toolbar

Make Googl urls without the Google toolbar:
http://news.cnet.com/8301-27076_3-10432425-248.html?part=rss&subj=news&tag=2547-1_3-0-20

Make Googl urls without the Google toolbar

Make Googl urls without the Google toolbar:
http://news.cnet.com/8301-27076_3-10432425-248.html?part=rss&subj=news&tag=2547-1_3-0-20

Blog Archive