When you intervene a reverse proxy between your CMS server & user, how are you going to keep those Web 2.0 pages fresh?

The bane of success is traffic spikes and high bandwidth utilization. Now what?  You shouldn’t fear or fret success, but plan for your scalability concerns.

The answer? is JavaScript.


Use Base 36 for transaction ID’s

After the transaction with your website, your customer needs a ticket number of the purchase/reservation/vote/et.al for tracking purposes. When it comes to making that a number your customer can easily write down on a piece of paper, why limit yourself to just the top row of the keyboard —why not use letters, too?

It turns out this is an easy way to cut the size of tracking codes in half. So, change the radix of your number to something higher than, base 10…

Since there are 26 letters in the alphabet, how about adding 10 + 26 = 36. The base 36 numbering system effectively uses all of the easy symbols on a keyboard which are also easy to repeat to customer service over the telephone.

Let’s use 36 as our radix. Here is how in JavaScript:


var x=+new Date,
y=x.toString(36),
z=parseInt(y,36);
console.log(x+" » "+y+" « "+z);


Simple Joys

I marvel at how benevolent an environment for us my Father created. It clearly shows His thoughtfulness, care for us, and love. Simple things like water, sunshine, sleep & oxygen are so good for us.

Men have polluted the creation but still it’s not too hard to find drinks of refreshing, rays of joy, naps of bliss, and breaths of freshness here & there.

Sometimes the cure for an ailment is found in the seed of some flower that grows on an Asian island, a berry that grows Brazilian rain forests, or in an extract from coral reefs off the shore of Okinawa, it’s true.

But we’re amiss if we neglect things that are good, near and abundantly supplied to us without much expense or travel.


PyTexas 2012

PyTexas

Here’s a quick summary of my experience attending the 2012 PyTexas conference.

On Saturday morning, Mr. Powell discussed features of Python that make the language notable, like functional programming constructs, decorators, generators, and context managers. While each of these is fair simple to understand and could be accused being mere syntactic sugar, I think they make code much easier to read and maintain, than the acrobatics which would be required without having them in the language. So for example, any of these can be done in JavaScript much less elegantly. Elegance counts! ✰✰✰

For scientific & embedded systems programming, performance matters, and compiling script to native machine code is a good way to increase code execution speed. LVVM is a compiler, like GCC, but exposes its internals to Python as a library. Dr. Schnell’s talk explored how LLVM can by used from Python directly and introduced numba & bitey. ✰✰

Luke Lee explored dunder methods, explaining what they are, why they’re useful, and how they contribute to the overall design of a fully Pythonic object. ✰✰

Tomo Popovic explained what the popular Scrum software development process is and how it works. It is an iterative and incremental agile development method for project management and software development. ✰✰✰✰

On Sunday, Gabriel Grant’s talk on Building Rich Applications with Django and Ember.js was dense. ✰✰

John-Michael Oswalt’s talk on “Finding the Balance Between Micro-Coding versus Macro-Coding” was astonishing in intelligence and candor about the challenges of developing for systems that scale well under bandwidth load and big data in the real world. ✰✰✰

The lightning talk on how to revise code to make it more readable & powerful with python-specific features was delightful; it showed me how truly kind and friendly the Python community is in Texas.  The conference was enjoyable because the people have chosen python for their livelihood are so amicable.  They may be fewer in number, but I have found that it isn’t numbers that counts when you need help understanding something; usually one or two friendly persons make all the difference.


It’s JavaScript! get the styles out.

Some programmers of UI widgets believe that appearance properties belong in the JavaScript invocation of web page widgets. Why? I don’t know. I’ve always believed in separating styles from behaviors. (Well, yes, the JavaScript is the agent which is creating the visual components on the page, going beyond what HTML and browsers can do. But does that give it a right to encompass stylistic properties in JS?) If we want to use those UI components, we have to do things their way.

Or do we? I wrote a fiddle demonstrating how you may relocate your JSON (this example is taken from the Twitter embedded timeline widget) into your CSS.


And The Web Grows Round II

Microsoft’s era of browser dominance brought a much needed plateau on the ascent of the new era of electronic communications.  Companies figured out the web was here to stay. Upstarts faltered and those who failed to create value faded away, as the dot-com gold rush winners became ensconced.

Development of web standards at the World Wide Web Consortium was moving at a snail’s pace.  Frustrated with this stagnation, some web pros at Mozilla, Apple, & Opera formed together in 2004 as the (WHATWG) Web Hypertext Application Technology working group. In just three years, their proposals earned the acceptance of the W3C as the direction of the future.  And so what we know as the HTML5 movement started an exponential increase in momentum.

2007 also witnessed the advent of a personal mobile product which would rock the world: the iPhone. Apple built this new palmtop computer on a derivative of the venerable Macintosh operating system, and laid the Mobile Safari web browser at its base.


And The Web Grows Round

When I started weaving web at Fort Worth in 1994, only enlightened IT companies hired a “Webmaster.”  I was thrilled when companies decided their website needs were important, and added a System Administrator (SysAdmin) and Database Administrator (DBA) to pull those responsibilities out. The world wide web continued growing in scope & momentum; they added a Writer and Graphic Designer to the team, further specializing the Webmaster as merely a “Developer.” Ecommerce firms added project managers and/or business analysts to the team as executives realized the web could cut costs or raise revenues. One of those became a client relations specialist, as companies moved their internal information, data, and communications infrastructure to the web department.

When the Internet bubble popped, the browser wars ended, and the decade of Microsoft Internet Explorer dominance began.  Web was legit, things were stable, and there was a time of peace for progress & prosperity.

Then Apple invented the phone. This initiated the mobile browser wars, which would overthrow Microsoft dominance and revolutionize the way we use the web.


In 2011, mobile clients eclipsed the marketshare of Microsoft pre-IE8

One tweet by @jensimmons rocked my world: “More people browse the web on phones than people use IE6+IE7 combined. Do your priorities reflect that?”


The New Favicon

Ten years ago, having a favicon for your website was a big deal. Windows 98 users were putting bookmarks on the desktop, and your site’s favicon logo could show up there. Getting on desktops was very important.

Fast forward to 2009… who has even closed enough windows to see the icons on your desktop this year? Having a favicon has diminished in importance considerably. Do you even take note if websites you browse to have one or not?  Seriously?

But there is one thing that matters in 2009, as much as the favicon did in the late 90’s.  That is: the text & image which appear in Facebook when someone tries to link to you.

Helping people who want to help you? no brainer.  Make it a high priority, even if you do little else to promote yourself.  Make this experience pleasant; support the fans who are trying to promote you.  Neglecting them will hurt your reputation and your SEO pagerank (yes, that’s right, your buzzwords will suffer! ;).

Most websites fail this miserably.

Show some fan love? make the Facebook link to thing flow.