Webgadgets Blog http://webgadgets.ws Most recent posts at Webgadgets Blog posterous.com Wed, 08 Feb 2012 08:04:00 -0800 Bank of America's Ineptitude Continues http://webgadgets.ws/bank-of-americas-ineptitude-continues http://webgadgets.ws/bank-of-americas-ineptitude-continues

About a month ago, I posted a bit of a rant about how Bank of America compromised the security of my credit card by sending an activated card in the mail without my knowledge.

The saga continues.

About 10 days after the fiasco started, I cancelled my account. I can no longer access the online banking system, so I'm pretty sure the account is dead. However, that may not necessarily be true. Shortly after closing my account, I did receive something in the mail from Bank of America. Looking at the postmark, it was close enough to the day when I cancelled, that I can understand it slipping by.

However, I have received something else in the mail at the end of last week. I also received the same offer in my email yesterday. While I was willing to allow some flexibility on the mailed material, the emailed material is unacceptable. Bulk mail is a slow and unwieldy process. Email is far more dynamic. How long should I be expecting to get marketing material for an account that (I hope) no longer exists?

So here's my question for Bank of America: Is my account actually closed or are you just that bad at your job?

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Sun, 05 Feb 2012 21:29:00 -0800 Is 200 hours too long for a game? http://webgadgets.ws/is-200-hours-too-long-for-a-game http://webgadgets.ws/is-200-hours-too-long-for-a-game

I don't often post about video games. This is mostly because I don't really play all that many. I have a few here and there, and I'm mostly an RTS type of person. Still, I was reading my webcomics and came across this.

Now, I miss games that were long and immersive. I loved the almost impossible difficulty of the first two Descent games. I remember spending 8 hours (in multiple sittings) on a Command & Conquer map at one point. In fact, I even thought that MMO's were so popular because of the expansive, dynamic, unplanned content that made them interesting for so long.

So, never having heard of Kingdoms of Amalur, I searched and found this article. The designer claims that a speed run by their QA team yielded a 200-hour game. I don't want to sound completely ignorant, but isn't that a good thing? If memory serves (and it may not), Myst was a 40-hour average solve time, and Riven was about 200 hours on average. I understand that a speed run versus average solve time is a bit like comparing apples and rocket-powered super apples, but it has also been almost 15 years. Our apples should be rocket-powered by now, just like our backpacks.

In any case, I don't really go for RPG's for the exact reason that the comic linked above indicates. Many involve repetitive tasks interrupted by brief interesting parts. Still, I feel I can express my shock and annoyance that games are getting shorter every day when all I want is a game I can really sink my teeth into without having to start losing continuously to people online.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Mon, 09 Jan 2012 21:53:00 -0800 Financial Software Update http://webgadgets.ws/financial-software-update http://webgadgets.ws/financial-software-update

The last time I wrote about financial software was over 9 months ago. I was using jGnash2 at that point and grudgingly accepting. I soon lost interest in the manual pain it caused and got rid of it.

In my initial experiments, I had actually gone so far as to purchase Moneydance. I didn't like it initally, but most of that came from not being able to properly connect to my bank accounts due to some sort of certificate validation issue. Updates were issued, and I tried it again a few months ago.

As usual, connecting to financial institutions, getting everything categorized correctly, and dealing with different history lengths for each account was a pain. I spent a solid weekend working through all the backlog to get the accounts into some sort of understandable order.

The only problem I encountered when I started was that one of my credit cards was at FIA Card Services which did not provide any direct download options or any option to download anything but a completed statement. That credit card was sold to Bank of America, which delivers statements on stone tablets by carrier pigeon in Washington State. Since it was going through all these changes, I was going to be using it less, so I could stand a few transactions a week that were manually entered.

For investment accounts, it works pretty well. Even Quicken had problems with my 401k rounding the number of shares. Moneydance is about the same in that respect.

The other strange thing about Moneydance is that it will not do online accounts for loans. It's not a huge issue, but my mortgage took some tweaking to get it to the right place. Once it is set up correctly, it'll just keep scheduling payments and allocating interest/principal/escrow as expected.

I've been using this for about 3 months now without hating it, so that's something. Technically, the stock quotes are an extension, but that's not hard to install and use. They allowed 2010 users to upgrade to 2011 for free, others at a 50% discount. The license currently costs about $50. Hopefully, that's a one-time expense.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Mon, 09 Jan 2012 19:38:00 -0800 Bank of America is hiring Quality Assurance Engineers...I hope http://webgadgets.ws/bank-of-america-is-hiring-quality-assurance-e http://webgadgets.ws/bank-of-america-is-hiring-quality-assurance-e

In the modern world of the Internet, we have all become too familiar with the "system errors" that plague our virtual existence. These are usually not a major issue, but I find our willingness to accept them a bit absurd at times. Sure, some of those issue have to do with scaling or minor bugs, but I often feel that they are used to cover up human error or just because no one is watching.

The story starts a few years ago when I signed up for a credit card from Schwab. Shortly after I got the credit card, they said they had some sort of major issue and had to reissue a lot of cards. I got a new card with a new number and had to move all my auto-payments over again. They were always vague about why they had to this, which didn't make me comfortable. Still, they detected and fixed it without any real effort on my part. I can live with that, even though I was a bit worried. Months later, they sold the entire card over to FIA Card Services, the transition was smooth, but FIA offered very poor online banking options.

In mid-2011, it was announced that another change was coming. I was not happy as the wonderful 2% card was becoming much worse, not to mention that it was going to Bank of America. I got another card to try to keep the bulk of my purchases at or above the 2% reward level and figured it was good enough. The transition was rocky and included me not having any online access to information about my account for 20 days. I suffered through that to find Bank of America had worse online banking options than FIA. Still, I was only going to use the new card for gas and groceries, so it wouldn't be that bad.

Today, I received another copy of my card in the mail. I opened it and immediately wondered why Bank of America was increasing the odds of my card getting stolen. I have a card. I didn't ask for another one. Since I have just gotten back from vacation, I think about how scary it would have been if it was put in another resident's mailbox (a common occurrence) and left out in the open in our entry-way (another common occurrence) for some random person to take. This was an ACTIVE card. It's exactly the same as the card I'm using now, so it is already active without any verification of identity.

I called Bank of America immediately. I was told by a nice recording that I would have to wait "over 5 minutes" to talk to a representative. Yes, I suppose 20 minutes is more than 5, but I still hadn't talked to anyone yet. I tried online and was met with a 32 minute wait for an online chat representative. I tried later and made it through to someone almost immediately. Upon asking why another card was sent, she simply replied that she had no clue. It doesn't instill confidence, but I appreciate her honesty. I asked if there was any way to find out. She dug for a while. Well, it was a "system error" that the new card was sent. Apparently, there was a problem with the Schwab card replacements. She was sorry, but the card was sent in error. I registered my complaint about the security of my account, she said she agreed and would pass it to her management, and I thanked her before hanging up.

My question is this: who on Earth is QA-ing this crap? Heck, who's managing the project? I've charged over $600 to my new card in the past 2 months. It's pretty obvious that I got the original. I think they should learn from this and use it as an interview question. The people who don't say a word about checking for customers who have activated and used their card will not get a job. Just send them home right away. Banking software is complex with its security rules, pains of government regulation (people who've moved accounts to Washington State know what I mean), and strict need for complete accuracy. If someone can't come up with something as basic as "only send new cards to people who might actually need them" doesn't come up, I don't trust anything else they've done. I am not going to stand for yet another "system error" in my credit card account.

In conclusion, it was a fun 2 months with Bank of America. I will be paying off my card and closing the account as quickly as I can.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Mon, 21 Nov 2011 19:57:00 -0800 Perfect keyboard for when you don't want a keyboard http://webgadgets.ws/perfect-keyboard-for-when-you-dont-want-a-key http://webgadgets.ws/perfect-keyboard-for-when-you-dont-want-a-key

Recently, several pieces of electronic equipment have met their demise in my home. It started with my HTPC about a month ago. I went on vacation and came back to find it making strange noises and not producing a display signal. Last week, I ended up having to convert my linux box to fulfill the task by installing Windows 7 Ultimate. Finally, my receiver blew up (almost literally) the next night.

Now that I have nothing connected to my TV except my HTPC and my Wii (which I barely use), I really don't have a need for more than one remote to turn the TV on and adjust volume. I've been using my old Logitech wireless desktop, but the keyboard and mouse really get in the way.

I decided to look around a bit over the weekend and found a gem. I picked up a Rii Mini Wireless Keyboard. This thing is pretty cool so far. It's better than the full wireless keyboard and mouse in a few ways. First, it works across the room. Don't laugh. My Logitech products can't work half way across the room. Second, it's smaller than a remote. Third, it's got a laser pointer!

Ok, that last one isn't really all that cool anymore. I'm not going to be typing any essays on this thing (people with shorter fingers may not be able to type as well). The touchpad is responsive and handles taps pretty well.

I do have two minor complaints. The first one isn't a surprise since the pictures are clear, and the reviews mentioned it. The keyboard is in columns, unlike a regular keyboard. I have this problem on my Kindle, as well. I keep hitting "m" instead of "n" because of the column placement. The other complaint is that (unlike most thumb-oriented keyboards), the shift, ctrl, and alt keys have to be held down. This is completely normal for a keyboard, but it can be a bit difficult when you're using your thumbs.

Finally, I'll leave you with a few fun things. The USB receiver is stored in a small compartment in the keyboard itself. There is a backlight that you can turn on, that is very nice and bright. Last, but not least, Fn + Enter does a ctrl+alt+del. They certainly know who's going to be using their keyboard!

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Sun, 16 Oct 2011 16:50:00 -0700 Reverse Tethering http://webgadgets.ws/reverse-tethering http://webgadgets.ws/reverse-tethering

I was recently on vacation and checked into a hotel that did not have free wifi. At this point, I am basically enough of an internet addict to pay the absurd amounts of money for the wifi. I can usually mitigate some of this cost by just using my Motorola Atrix to access the internet over the cell network when I didn't need the full functionality of my netbook.

However, my strategy was foiled this time. I have had an almost complete cell phone blackout in my hotel. I'm not talking about my room here. I'm talking about the entire building. Granted, I don't have a great signal when I walk outside, but I have only looked at my phone a few times to see a single bar on it.

Well, this isn't really too bad. I mean, I have my netbook, and I can pay to get on the wifi. Of course, that's per client. I guess my phone is just an expensive little brick. There are things I want to do on my phone, though. It's a source of entertainment as well as a device for calling people and looking up restaurants.

I did a little searching around. I found several forums about how to get an android phone to connect to the internet through a computer. I was pretty happy with that since most people want to do it the other way. I finally found a forum that gave me what I needed.

The software that has saved a bit of my sanity (if there is actually any left) is called Connectify. It's pretty simple to set up. I only needed the free version. It will actually let you use the wireless interface to act as an access point as well as the way the laptop gets on the internet. I was able to set it up in a few minutes and get my phone on the internet through my laptop.

I honestly wonder if I could get rid of my wireless access point and just use Connectify...

If I give that a try, I will post the results.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Fri, 05 Aug 2011 07:42:00 -0700 Philip K. Dick and Real Books http://webgadgets.ws/philip-k-dick-and-real-books http://webgadgets.ws/philip-k-dick-and-real-books

I recently found out that Philip K. Dick wrote a trilogy of books centered around God and various interpretations and concepts around it. I realized that I actually own the middle book of the trilogy in real, physical form. Realizing that the first and third books were available on my Kindle, I snatched them up. I was ready to start the trilogy from the beginning.

I read Valis, which is the first book in the trilogy. For a while, I thought I was about to set a record, and ended up posting 8 snippets. Many of those came the first night. Honestly, I decided to hold myself back. As I got further into the book, the quotes would have been lost on anyone without the complete context. The book is about a guy named Horselover Fat. Early on, the narrator slips from third person into first person when referring to Fat (as his name is often shortened in the book). The narrator is forced to admit that he and Fat are the same person. Much of the book makes you wonder if PKD actually remembers that the narrator is also Fat. He even gives the narrator a name about halfway through the book. Knowing that, some of my friends might have found my confused journey through the book amusing.

Here's the problem, though. I finished Valis. I'm moving on to The Divine Invasion now. It's a real book. I'm only a few chapters in, and I swear I wanted to highlight and comment on a segment last night. I guess I have to learn to deal with this dead tree technology for a little while. I can't even find my bookmark, it's been so long. The really daunting part is that I have Heidegger's Being and Time in my night stand that I've been putting off for a couple years. That might be really difficult now.

The last book, is The Transmigration of Timothy Archer, which I have waiting on my Kindle for when I'm done with the real book.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Mon, 18 Jul 2011 23:42:00 -0700 Hosting Decision http://webgadgets.ws/hosting-decision http://webgadgets.ws/hosting-decision

I've had a couple people ask me about my logic in deciding to move this site. I guess I can provide a little more insight into what I was thinking. The best way to do this is probably with pros and cons for each option.

First, we should consider where I was running before, a rented server from esecuredata.

Pros:

  • Complete control - I mean complete control. I could log in and do anything I wanted on this server. I could install anything and run anything. This is why I got this server in the first place for hosting the price tracker.
  • Reasonable price for a dedicated server
  • Minimal interference from the "hosting" company

Cons:

  • Paying for a full server when hosting a low-traffic blog
  • All migrations had to be handled by me
  • No redundancy when there was a scheduled outage
  • Backups had to be manual or self-scripted
  • Upgrading the OS costs money

Clearly, there are cons for my use case that were mostly financial. If the host had been free (or considerably cheaper), I probably would have sucked it up and continued to pay.

The next option I considered was a static blog generator. There are literally dozens out there. They provide a piece of software you run on your computer. You manage the blog on your computer and publish it to a hosting system. I was considering doing this with some sort of cloud-based storage.

Pros:

  • Seemingly simple - see cons
  • Cheap

Cons:

  • Not actually simple - It turns out that most of these static blog generators are commandline tools. The one GUI-based tool that I found (thingamablog) was not very good.
  • Apex domain issues - Using cloud-based storage is great for www.webgadgets.ws, but I typically don't have an IP address for webgadgets.ws. I would need to find a service that would redirect to www.webgadgets.ws or I would have to have a host somewhere providing that functionality or proxying the site. Considering I always publicize this site as webgadgets.ws, this is a pretty major issue.
  • Limited editability - I would not really be able to edit my blog from anywhere. I could use source control to save the raw files, but I'd still have to make sure the software is installed everywhere I wanted to edit.

Finally, we get to something familiar with Wordpress.

Pros:

  • Popular
  • Full-featured
  • Free
  • Apex domain mapping

Cons:

  • Lost SEO - Pebble (my former blog software) provided permalinks in the form of "/<something made from the post title>". Wordpress does something like "/<year>/<month>/<something made from the post title>". This is clearly incompatible.
  • Lost control of subdomains - Wordpress needs to be your name server if you map an existing domain to it. Therefore, I wouldn't be able to create and maintain foo.webgadgets.ws if I wanted to.

The last one on the list is Posterous.

Pros:

  • Free
  • Complete DNS control
  • Apex domain mapping
  • SEO preserved

Cons:

  • No support for StatCounter - StatCounter is my analytics and traffic monitoring system. I like it better than Google Analytics because it is simpler and more direct. Unfortunately, I cannot use it to its full capability because I cannot put JavaScript in my site template.
  • No ad support - I did manage to get an Amazon ad on here (as you can see), but that's in an iframe with no javascript needed on my site to render it. Of course, with the traffic I get on this site, I don't really need ad support anyhow. It doesn't do anything for me.

There you have it. That basically covers my decision. I did also toy around with other pieces of software running on cheaper (virtual) hardware. Nothing really beats 80% of what you want for free, though.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Sun, 17 Jul 2011 19:13:00 -0700 Welcome to our new home on Posterous http://webgadgets.ws/welcome-to-our-new-home-on-posterous http://webgadgets.ws/welcome-to-our-new-home-on-posterous

For several years, webgadgets.ws has been hosted on a rented server from esecuredata. When the price tracker was running, this was great. I had a complete dual core host with 2 GB of RAM and a 500GB hard drive. Seriously, that was awesome 4 years ago. I got it all for $79/month.

Years have passed, and the price tracker is long gone. I really had no need for a full host to run my blog and little else. With the difficulty of moving a blog from a non-standard platform (Apache Roller and then Pebble), I never set aside the time to actually migrate.

Today, I finally decided to find an alternative. I won't go into all the reasons why I decided to use Posterous instead of WordPress (both were options). The prime reason is that Posterous uses the same permalink format as Pebble, so I keep my SEO. I'm going to stick with it for a while. I'll see if I want to change something in a few months.

Anyhow, this should be fun! I'll play around with the theme a bit more as time goes by. It looks like I have a lot of leeway in the layout. Look for more changes.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Sat, 18 Jun 2011 18:36:00 -0700 Microsoft Project Schedule Notifications http://webgadgets.ws/microsoft-project-schedule-notifications http://webgadgets.ws/microsoft-project-schedule-notifications

A friend of mine launched a cool plugin for Microsoft Project. It's called Tap on the Shoulder. The idea behind it is that you can integrate MS Project with any email system to send out notifications to your team when tasks start and end. It's a really cool idea and helps Project get closer to the feature sets of some other tools. There's a free trial, so you should be able to give it a try before deciding to spend $49 to get a license.

If you use Project to track your team's progress, this should help keep you on track.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Thu, 16 Jun 2011 18:09:00 -0700 Velocity 2011 (#velocityconf): Wrap-up http://webgadgets.ws/velocity-2011-velocityconf-wrap-up http://webgadgets.ws/velocity-2011-velocityconf-wrap-up

The conference is ending as I type. It was a lot of fun, and I learned plenty about tools that I never knew about. I have a better insight into HTML5, CSS3, the future of JavaScript performance, and so much more. The organizers and support staff did an incredible job on this conference, and I cannot wait to come back again (hopefully next year). I even have ideas about something I may be able to present in 2 years, if I am allowed.

I was honestly hoping to write more, but time and a bit of self-consciousness did not permit it. Please feel free to comment or ask any questions, and I can try to answer them. I look forward to going back to my job and showing some of these videos to my team.

Now, I'm just kicking back and waiting for the flight home tomorrow. Good bye, Velocity!

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Thu, 16 Jun 2011 18:04:00 -0700 Velocity 2011 (#velocityconf): HTML5 vs. Flash for video http://webgadgets.ws/velocity-2011-velocityconf-html5-vs-flash-for http://webgadgets.ws/velocity-2011-velocityconf-html5-vs-flash-for

The last really interesting talk I attended was about YouTube's use of Flash and HTML5. They had some really interesting issues that they have had to deal with. Plus, there are some really odd side effects that they both observed and intentionally caused.

First, they are at the point where the two versions are functionally similar. The HTML5 version of the player does not have quite as many features, but you can try it out by going here. The biggest feature gap is in rights management. Currently, Flash has a proprietary rights management system to protect the content. HTML5 lacks that sort of protection now. Otherwise, there is no reason why the two versions should be different for very long.

The most interesting part of the talk was around the performance differences. HTML5 generally outperforms the Flash version of the player in actually getting loaded and up on the screen. They were saying that the difference was about 200ms. However, once the play button was pushed or there was a seek, the Flash player usually started playing about 2 seconds faster. This isn't really because Flash is better, though. It's because the edge cache doesn't have as many of the HTML5 versions of the videos because it is nowhere near as popular.

The problem remains, though, that Flash was slower on the uptake. They dealt with this by doing some strange hacks here and there. The most clever (and scary) of which was creating an image in a script block in the head tag that points to the CDN that holds the video. That way, the connection was already open by the time the page got to rendering the Flash widget. It's really clever, but I'd hate to see this be necessary for long.

There were a couple other cool things out there. HTML5 can actually do more exact seeking since it does not need to seek to a key frame. There was some tweaking on the API for controlling an embedded player since the HTML5 player has to be in an iframe. This tweak uses the postMessage method on the window, which I have never heard about. I want to look into that and its support. That could solve some of the issues we've had previously with communicating between a parent and an iframe on different domains.

All said, there was some interesting, funny, and scary stuff here.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Thu, 16 Jun 2011 17:50:00 -0700 Velocity 2011 (#velocityconf): Browser Talks http://webgadgets.ws/velocity-2011-velocityconf-browser-talks http://webgadgets.ws/velocity-2011-velocityconf-browser-talks

One of the cool things about this conference is that they had the 4 major browsers represented: Chrome, Firefox, IE, and Opera. Yes, Opera is a major browser, and it's a really nice one too (see earlier posts about my Opera experiment).

I missed part of the Chrome talk, but I did hear about some prefetching of link data to help provide a snappier response when you navigate around the web. The obvious question of ad tracking came up. I also worry about the poor site that happens to be featured on a major page on the web. They not only get the clickthroughs, but they also get the pain of the traffic that never actually arrives, as it were.

The Firefox talk focused a lot on the features of HTML5 and customized JavaScript APIs that are being added. The upgrades are looking really good. Apparently Firefox 5 is going to be launching in a couple weeks. 6 and 7 are later in the year, but they are apparently only 6 weeks apart. I appreciate the faster development cycles and getting upgraded browsers into users' hands quickly. However, I don't like the break from Firefox's sensible numbering scheme. Chrome does the versions like this, but I like that Firefox, IE, and Opera all come with really visible changes to the end user when they do major version bumps. In any case, the version number doesn't really matter. What I want to see is if Firefox will suffer the same problem that Chrome does with the upgrade path for its users. I don't want to have to support 10 versions of every major browser, all at different points in the implementations of the really neat upcoming features.

IE was up next with some nice graphs and demonstrations of IE9 performance, especially against IE8. This is really the second time I have seen this talk. The last time was before IE9 was actually released as a finished product. The leaps are definitely impressive. I have to compliment the two presenters I've seen on their poise. It is difficult to walk into a room of people who are almost always using Firefox and Chrome to talk to them about IE. For the actual content, the most notable part for me was the background compilation of the JavaScript. This uses the other cores that so many computers have these days to compile JavaScript even as you may be running the exact same code. The next time through, though, it will be faster because it will be running native code.

Finally Opera got some time in the sun. The funny thing is that Opera has actually implemented most of these things already. They don't have hardware acceleration in their browser yet, but they have done a lot of forward-thinking things since some relatively early versions. The talk was mostly about how Opera owns the mobile market. I like the idea of selling the typically reluctant developers on this by showing them how many of their users actually use Opera on mobile devices (whether mini or mobile). He also talked about some of the difficulties of sites that do not respect the X-Forwarded-For header. In any case, it was good to see Opera getting some time on stage to talk about their product. He had to rush through the Firefly information and mobile debugging towards the end, but those are both great features if you have never tried them before.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Thu, 16 Jun 2011 17:38:00 -0700 Velocity 2011 (#velocityconf): Thursday Keynotes http://webgadgets.ws/velocity-2011-velocityconf-thursday-keynotes http://webgadgets.ws/velocity-2011-velocityconf-thursday-keynotes

I don't really have a lot to write on any particular keynotes. There were three that really stood out to me of the ones I attended. There were a few that I did not attend for networking and interest purposes.

The first one I want to mention is Jon Jenkins talking about some operational case studies. He had some really interesting information about scaling and how that can be handled in a cloud computing world. There were two important components to the talk. First, it's nice to scale down to your traffic. Since you're not dealing with real hardware anymore, you can have your computing capactiy track with your actual traffic/data/constraining operations. The second component was scaling up at useful times. The given example was doing a deployment by copying the fleet to a new set of virtual servers, deploying the new software there, and then flipping your load balancer over to the updated fleet. Then, you also have a nice rollback option of just flipping the load balancer back.

The second keynote I want to mention was about SSDs. It was short, profane, and funny. The end result: use SSDs in your computers and servers.

Finally, John Resig did a really good (I think) talk on holistic performance analysis of JavaScript. Unfortunately, I missed about the first 10-15 minutes of the talk. I will try to watch it later and report back.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Wed, 15 Jun 2011 22:04:00 -0700 Velocity 2011 (#velocityconf): More WebPageTest http://webgadgets.ws/velocity-2011-velocityconf-more-webpagetest http://webgadgets.ws/velocity-2011-velocityconf-more-webpagetest

I went to a few other session this afternoon that were interesting and informative, but they did not evoke much in the way of a coherent response. Some talk about DBA roles in the DevOps world and talk about Yahoo's issues with their homepage were interesting. In all, I wouldn't say that there was a lot of really new information there for me.

I did want to hit on the short session I attended before calling it a day. I got to see some more of the new features on WebPageTest. The more I see, the more I want this set up at work. The first feature that is only available on private instances (not on webpagetest.org) allows you to determine when the page stops changing. It will even create a weird picture that highlights the area of the page that changes last. With highly dynamic web apps, this could be a really interesting way to determine what is really going on as the page loads. I think you can combine this with the video capture capability and have a reasonable view that can be shown to people without using the tool. I find that one of the biggest issues with training people on these highly dynamic apps is that screenshots in documentation cannot convey the true dynamic nature of the application. These videos can.

The second really cool feature is called replay. You can have the system perform the request(s) you want. Then, you can actually set it up so that it replays the request without actually making any network requests. That way, you can measure the pure browser-side latency impact of the JavaScript, CSS, and DOM structures on your page. This is really cool and will do a lot to help get rid of that network jitter.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Wed, 15 Jun 2011 21:43:00 -0700 Velocity 2011 (#velocityconf): CSS3 - Beyond the Hype! http://webgadgets.ws/velocity-2011-velocityconf-css3-beyond-the-hy http://webgadgets.ws/velocity-2011-velocityconf-css3-beyond-the-hy

I abbreviated the title here a bit because the talk was really just about CSS3. Nicole Sullivan provided some useful tips about dealing with CSS in general, especially some of the features of CSS3.

As usual, the overall name of the game is graceful degradation with good performance. While IE6 (which we will seemingly never be rid of) does not support any of these features, that may not be a big issue. Rounded corners, drop shadows, and transparency can just become square corners, no shadow, and opacity. Is that really a huge issue? Will the IE6 users be saddened by not having rounded corners? How will they know unless they have a newer browser somewhere?

There are other features that won't degrade as well. The provided example was the carat in a breadcrumb. There's a unicode character that you can use in the CSS to provide this, but it won't work in IE6. You need to provide some sort of explicit fallback here.

In the end, it's about balance. You need to find a good compromise in the middle.

Then, we got into the tips. There were a few really notable tips. First, we'll talk about CSS selectors. I didn't know before this that they are evaluated right to left. The browser will use the right-most constraint to find all the elements that match and then traverse up the tree until the matches are weeded out. At first, this seems absolutely terrible. If you think about the actual way the DOM and selectors are implemented, it starts to make sense why this happens. Traversing from the root up the tree is painful because a child selector may not be immediately beneath the parent. It could be several levels deep. Starting from the deepes part makes the most sense, algorithmically. This also means that selectors ending in a * begin with ALL elements in the DOM and filter from there. That's a very bad idea.

Additionally, regex and attribute selector patterns are considerably slower (for fairly obvious reasons), so they are also discouraged. The real shock (which also makes sense when you really sit down to think about how the browser has to work) is that specifying something like "div.foo" is slower than saying ".foo". This is because the class is found first, then they make sure that it's a div tag that was found. I don't believe that there is a drastic difference, but you shouldn't really have classes that are shared among different tag types if you want them to behave differently on the tag types in question.

Finally, Nick Zakas and Nicole announced at the end that they had written a new CSS Lint tool that covers all of this and more. It's written in JavaScript, and they open sourced it right in front of us on github. If you have ideas, you should go and look at it. They are happy to take more rules.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Wed, 15 Jun 2011 21:29:00 -0700 Velocity 2011 (#velocityconf): Look at Your Data http://webgadgets.ws/velocity-2011-velocityconf-look-at-your-data http://webgadgets.ws/velocity-2011-velocityconf-look-at-your-data

Another interesting keynote was John Rauser's conversation about data. His point was clear. The metrics that we spend so much time looking at are not that helpful. Sure, I often look at the average, p50, p90, p99, and p99.9 times. However, that only gives you a vague idea of the distribution of the actual data. You may very well miss some interesting features that occur between p50 and p75 using just these metrics. The only way to truly understand the outliers is to actually look at them.

Histograms are typically the best way to actually look at and understand this data. I really want to get back to the office next week and start playing around with some of our service metrics. I'd like to create some histograms to start really showing me what is going on. I have a problematic service right now that could really benefit from some more in-depth analysis of the data in this way.

John also made the point that there are no tools that really do this for you. He did have a really cool graph that showed a heat map overlayed with the time series data. This gave you an idea of the distribution along with the actual average latencies. I don't think this really shows you the true distribution, though. if there's a place where the curve does not fall off quite as quickly, a color comparison would have a hard time actually showing that kind of information. In any case, I expect to be generating some interesting histograms next week.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Wed, 15 Jun 2011 16:08:00 -0700 Velocity 2011 (#velocityconf): Career Development Keynote http://webgadgets.ws/velocity-2011-velocityconf-career-development http://webgadgets.ws/velocity-2011-velocityconf-career-development

Since there are so many keynotes, some of them fly by so quickly, I'm not going to respond to all of them. There are a couple that I thought were awesome.

The first real keynote of the morning was by Theo Schlossnagle about a career in our field. It was refreshing to hear two things.

First, it was nice to hear someone saying that moving jobs every few years is not a good idea. Practice in this field is what created all the experts who are speaking at this conference. It's the time ane experience that these experts have that really sets them apart. They know their field, and they know what works.

The other things that he talked about was what I live in. That is, he broke down the line between development an operations. I carry a pager once every few months and have to support what I write. As he said, the number of things that pull you out of bed at night will quickly go to 0 when you are on the hook for supporting those systems.

All in all, it was a well-put description of how people should really approach this industry.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Tue, 14 Jun 2011 17:42:00 -0700 Velocity 2011 (#velocityconf): Mobile HTML5 performance http://webgadgets.ws/velocity-2011-velocityconf-mobile-html5-perfo http://webgadgets.ws/velocity-2011-velocityconf-mobile-html5-perfo

Max Firtman started off by saying that we are guilty and that users hate us. In fact, he hates us. Then, he gets down to business.

Most of the things we take for granted in desktop usage are worse in mobile applications (network, latency, hardware). The experience and context are also very different. The browsers will behave differently than their desktop counterparts. He put up the headers from a feature phone. The accepts header was absolutely obscene. It enumerated exactly everything that the device can handle. You'll never see that large a header on a desktop.

Mobile browser issues abound. There are tons of them, most of them limited. Some are proxied while others directly access the sites. Most of them have no documentation, name, or debugging tools. His suggestion for dealing with the lack of debugging tools (whether on the device or in an emulator) is proxies. His recommendations are Charles Proxy or Fiddler. The proxy can help you understand the network traffic that you would usually see in a waterfall chart. For real devices, he also provided some other options, but I think the proxy is probably the best option. He did provide an option for doing some on-device JavaScript debugging, but I am very suspect about the impact of the performance of the site's JavaScript.

For some statistics, not surprisingly smartphones are the smallest part of the market and the largest part of the usage. The inverse is true for feature phones.

"We need to forget about pixels." I cannot be happier with this statement.

He also mentioned (for the 2nd time I've heard it) not always being connected. The idea of having enough data loaded onto the device to continue using the device in a degraded way until the connection comes back is very interesting. When he expended on this, he talked about an application cache that can be built in so that you can load the page with no connection. It's cool, but the way to have a robust (and updatable) cache is to basically use your own. The base page has to be very small with a bit of JS to determine if the cache is dead. I don't really like that hack, but it may be the only way with how things have been implemented.

He makes a very interesting point about mobile versions of sites. First, you should not redirect. His United.com example shows that over 1 second was spent on the iPhone redirecting twice (once to www.united.com, and then to mobile.united.com). Second, the search engines don't care if you are providing different content on the mobile version of the site. We are always talking about these things on the desktop platform, but it applies even more to the mobile platforms.

There is also the problem of complexity. We can occasionally see difficulties in processing the DOM on desktop platforms. It's even worse on mobile. That processing time is precious. The same applies to CSS and JS parsing. Those are worried on desktop platforms. Imagine how much time they probably take on an older mobile phone. I can hear the batteries screaming.

It's kind of worrying (and comforting, perhaps) that the same issues come up in poor implementations on both desktop and mobile platforms. One example provided is a hyperlink with no href. This is just poor behavior in general.

He has some really interesting ideas about how to trim sites down. A lot of designers ask us to provide background images, icons, etc. that make the site look nice. It really hurts to get those complex designs on mobile devices, though. The design is often lost on the user. Since CSS3 supports gradients, you can still get a lot of the effects that people love to put in designs. Interestingly, the support of sprites and inline images are also heavily supported on mobile platforms. The difficulty here is that you need to figure out if the device requesting actually supports these features. Since this can change the CSS (and/or images) you provide to the user, you have to do this or risk breaking your user experience.

The cool thing idea he also provided was a way to use canvas to draw the arrow (sideways carat) that was used on the original design. Canvas can create a data URL so that you can use that in the same way you might use an inline image. Unfortunatley, this is only available on the latest versions of browsers for mobile platforms. I wish I could force people to upgrade their browsers (both desktop and mobile) so that I can use some of these newer features without all the pain of browser detection, which is traditionally so error-prone. That said, he makes a big point out of providing the experience but not being too concerned about the support level. This is easier said than done, but a well-created design will degrade gracefully without certain capabilities.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin
Tue, 14 Jun 2011 15:45:00 -0700 Velocity 2011 (#velocityconf): NodeJS http://webgadgets.ws/velocity-2011-velocityconf-nodejs http://webgadgets.ws/velocity-2011-velocityconf-nodejs

I don't have much to write about this talk. Mainly, I liked it. It was very interesting and good look into what NodeJS can actually do. The first examples of a simple chat server that can use telnet was pretty awesome. If I had that when I took my network communications class in college, I would have been done in an hour!

All in all, he showed some interesting things. My main concern with NodeJS is that it is built on a C engine. If you want to plug any new libraries in, you will have to adapt them to NodeJS by writing a C binding that can be loaded in. In a world where I am moving away from C/C++ all the time, I don't necessarily appreciate the step back.

The really strange thing about the whole thing is when you think about network sockets and algorithm efficiency when dealing with JavaScript. Yes, it matters on the client side, but you are not talking about 100k+ tps throughput on a browser-run JavaScript application. These are the scales you consider on the server side, and NodeJS can perform. I'd just rather see it plug into existing frameworks a bit better.

Talking about scale, we were throwing everything we could at the servers that he brought up without much luck in bringing them down. There were some messy connection closes, and we had to ulimit some things, but it generally held up well. It was pretty impressive and a bit of a mind-bender when thinking that this was "running on JavaScript", which is honestly a bit of a misnomer.

All in all, it was a good talk. The next one is HTML5 performance. I'm looking forward to this as the HTML5 spec is starting to truly reach an adoption point.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/hckcZx9Q4DYwi Brian Tajuddin TrekkyLeaper Brian Tajuddin