Yet another reason to not use IE – Smashing Magazine

This must be reason #84 at this point to use anything (even Opera) instead of IE…

512 MAGICAL BYTES: This is, hands down,ie6 one of the strangest quirks I have ever encountered in web development. You must ensure that the total size of your 404.html page is greater than 512 bytes, because if it isn’t, Internet Explorer will disregard it and show a generic browser 404 page instead. When I finally figured this out, I had to crack open a beer to cope with the amount of time it took.

Source: S(GH)PA: The Single-Page App Hack For GitHub Pages – Smashing Magazine

NTLM Proxies are the Devil’s spawn

Very Evil Firewall
This is probably how NTLM proxy firewalls were conceived

Even though most developer apps recognize and support proxies, they all require some sort of configuration either on the commandline, through environment vars (e.g. http_proxy) or via a configuration file. Setting up a non-encrypting proxy is tedious, but none in my experience support NTLM-based authentication. The process for getting these apps to talk across a proxied firewall is painful.
Continue reading NTLM Proxies are the Devil’s spawn

The Registration Test Results Netflix Never Expected – DZone Mobile

As a current long-time customer of Netflix (since way before they had streaming) I’ve found their movie selection lacking, almost as bad as HBO/Cinemax/Showtime. Maybe potential customers saw this too when presented with the variants that showed available movies.

A lot of potential Netflix users claimed that being able to see the vast library would improve sign-up. However, Netflix’s test proved this might not be true.

According to a their data, 46% of survey respondents said that making titles of Netflix content available to browse was the 1 thing they wanted to know more about before signing up.
Continue reading The Registration Test Results Netflix Never Expected – DZone Mobile

The technical treadmill of software development

Skills Treadmill
The natural state of a Developer

How do I keep up with all of this? 70/20/10 rule

Short answer you don’t. There is too much to learn to try every great new framework or language. Trying to learn everything will leave you with little long lasting or useful knowledge as a software developer. So I have a a technique I personally try to follow and it may help you. I follow the 70/20/10 rule. You may have heard this rule from Google. The idea is you invest 70% of your time or resources into parts of the business that make money and continue improving on them. The next 20% is on investments that have a start and continue to get them off the ground. The last 10% is spent on completely new products or ideas. Now this idea is designed for businesses but is easily adaptable to improving ourselves as developers. After all we are investing in ourselves with our education.

Source: The technical treadmill of software development

CareerBuilder listings used as Phishing platform

Researchers at Proofpoint recently discovered a Phishing campaign that originated form select job postings on CareerBuilder.


Companies seeking applicants allow them to send resumes. Someone figured out how to upload files that install viruses in a staged attack. The brilliant part of it is that most companies using CareerBuilder will also whitelist attachments from CareerBuilder, and are expecting to get attachments from unknown people, making a (spear-)phishing attack that much easier.

Source: CareerBuilder listings used as Phishing platform | CSO Online

Determining Oracle Materialized View usage

We have some materialized views but are not sure they’re being used after index and schema changes were made to improve performance.

  1. Enable auditing: AUDIT SELECT ON MVIEW_NAME;
  2. run targeted queries
  3. Find no data in SYS.AUD$
    1. Table is huge so straight SELECT * FROM SYS.AUD$; takes too long
    2. Try to look for selects: SELECT * FROM SYS.AUD$ WHERE ACTION#=3 /* SELECT from SYS.AUDIT_ACTIONS */;
    3. Non-relevant data found
  4. Enable auditing on table that is commonly used: AUDIT SELECT ON TABLE_NAME;
  5. Run some selects
  6. Still find no data in SYS.AUD$

Since auditing seems to not be working as I expected (possibly because google-whacking it wrong), try a different tack. See if the common queries being run would be rewritten with dbms_mview.explain_rewrite on each query.

  1. The REWRITE_TABLE needs to be created if not already done
  2. run begin dbms_mview.explain_rewrite(‘<the query>’, ‘MVIEW_NAME’, to_char(sysdate, ‘yyyy-mm-dd-hh24:mi:ss.ssss’)); end;
  3. Look at the results in the REWRITE_TABLE: select * from rewrite_table order by 1 desc;


Creating a new developer box

I was issued a new laptop, HP 840 G1, so needed to set up a proper development environment. The first time I set it up I manually downloaded and installed my regular dev kit. When I was upgraded to an SSD, I had to do it again so figured there must be a better way. I found would install applications similar to how Puppet and Chef work. My gist of the packages I install. It took a little bit to learn how to run Boxstarter and chose my packages, but once these are set up and running it’s fire-and-forget.

Boxstarter has a URL-based install that downloads a small application that steps through the packages in the gist that is specified in the URL. According to the documentation, the installer will use http_proxy/https_proxy environment variables if defined.

Aside from the underlying exe/msi’s for a few packages being 404’d (commented out in gist) it worked quite well!


Funny Oracle error message

Oracle has an “Early Adopter” version of SQL Developer, a tool I have “become accustomed to” at a prior job where they couldn’t/wouldn’t pay for developers to have the superior TOAD SQL product. One of the caveats they list on the download page is that it only runs under JDK 8, so I got a chuckle out of this error message.

Note that JDK 7 end-of-life (called “end of public updates”, meaning for a big $$ support contract you can still get updates) has been announced for April 2015 by…Oracle.