dannyman.toldme.com


News and Reaction, Sundry, Technical, Technology, Testimonials

So Long, Steve . . .

Link: https://dannyman.toldme.com/2011/10/06/rip-steve-jobs/

. . . and thanks for all the fonts!

You will be missed, even by us non-Apple-fanboys.

UPDATE: Glenn Kelman has written the most eloquent words I have read that explain why Steve was an inspiration:

Many eulogies celebrate Steve in terms of his “products” — those mass-produced little gadgets that we love for letting us check email in front of our friends — and lose sight of his grass-strained spirit. What always moved me about Steve was the calligraphy and the LSD, the passage to India and his firing from Apple, his struggles at NeXT and his return from the wilderness.

The insistence on Steve’s perfection, on the vast difference between him as a producer and us as consumers, seems inhuman and even lonely to me. I wish we could take a moment in eulogizing Steve to grieve for him as one frail human to another, and feel in his passing the miracle of every human life; so many other people, geniuses on a smaller scale, are struggling his struggle. It hurts me that we have so much love to give to Steve and not to them.

Feedback Welcome


About Me, Free Style, Good Reads, Photo-a-Day, Sundry, Technology, Testimonials

Hack

Link: https://dannyman.toldme.com/2011/10/08/hack/

image

Enjoying Dmitri Samarov‘s new novel about driving a taxi in Chicago, I looked up at my cafe table in Mountain View, CA and noted that mine was the only analog screen.  Technologist that I am, I’m just not ready for an e-reader yet.  I’m too attached to hardbacks and paperbacks.

My mother, however, has a Nook.  She used to drive a cab in Chicago.

Feedback Welcome


Technical, Technology

Notes on CloudFlare

Link: https://dannyman.toldme.com/2011/10/11/cloudflare-free-cdn/

What it is: a free CDN!

What is a CDN? A Content Delivery Network is a service that caches parts of your web site at different points around the world. This makes your web site load faster in foreign countries, and it reduces load on your server, which is really useful if there’s a traffic spike.

Why is it free? Apparently, they started as a honey pot. A honey pot is a trap where you leave something sweet out for spammers and hackers, who will come and try to taste your honey. The honey pot keeps track of where the bad guys are coming from and what techniques they are using, and this data is then analysed to improve security. They also have a bunch of apps they can sell you, and honestly when you’re looking for a paid service for your company, the first thing that will come to mind is the service you already use for your personal stuff.

I personally have never set up a CDN before, but it has always sounded like a pain in the rear. So, I was pleased to see that Cloudflare made it braindead simple: they did a pretty good job of guessing out the contents of my DNS zone file, which I was later allowed to upload in full, then a quick update of my registrar’s NS records and yes, I was using Cloudflare inside of 5 minutes.

How does it work? It basically replaces your world-facing, web-serving A records with its own IPs, which it then answers HTTP/1.1 style. If you need dedicated IPs for SSL, that costs money. You set some A records to go straight to your server, so you can, for example, use SSH. It hands out the same IPs around the world, then magic network routing that I haven’t learned about takes care of the rest.

You're sharing IPs now, so HTTP/1.1 will work fine, but you'll need to set aside an A record if you need direct access.

CloudFlare A Records

Configure your A records: orange clouds will be fronted by CloudFlare, grey clouds will go straight home.

So, is it faster? Results from just-ping.com look very promising. I see an average latency of 62ms for CloudFlare versus an average latency of 144ms for direct access to my server in Chicago.

An interesting aside, here’s a bit of the just-ping.com output for CloudFlare:

 Mumbai, India: 	Okay	64.1	64.5	67.4	173.245.60.121
 Chicago, U.S.A.:	Okay	0.3	0.5	1.4	173.245.60.121
 Nagano, Japan: 	Okay	5.5	5.7	6.1	173.245.60.121
. . .
 Lisbon, Portugal:	Okay	58.8	59.1	59.4	173.245.60.121
 Chicago, U.S.A.:	Okay	1.8	2.3	2.7	173.245.60.44
 Dallas, U.S.A.:	Okay	1.4	1.6	1.7	173.245.60.44

And for my direct IP:

 Mumbai, India: 	Okay	286.8	288.1	293.1	173.203.101.184
 Chicago, U.S.A.:	Okay	1.9	2.0	2.5	173.203.101.184
 Nagano, Japan: 	Okay	165.8	165.9	166.1	173.203.101.184
. . .
 Lisbon, Portugal:	Okay	151.1	152.7	153.6	173.203.101.184
 Chicago, U.S.A.:	Okay	0.2	0.3	0.5     173.203.101.184
 Dallas, U.S.A.:	Okay	25.3	25.5	25.9	173.203.101.184

This shows two things. First, CloudFlare thoroughly reduces my latency anywhere outside Chicago. Second, and really just interesting for the biggest nerds, just-ping’s first Chicago node is closer to CloudFlare’s Chicago node, and just-ping’s second Chicago node is closer to my RackSpace-hosted Chicago node.

Okay, what about actual page-loading time? Well, I just happened to be doing some basic latency testing last month. Here’s what page load looked like in Google Chrome then:

Google Chrome's Developer Tool Network view last month.

Here’s what a page load from California looks like just now:

Page load time from California with CloudFlare enabled.

So, a basic test shows that the initial round trips go from 275ms to 136ms, and the total page load time is reduced by about 1/3. Now, the difference between 750ms and 500ms isn’t a huge deal, but the second you step overseas it makes a big difference. Above you see that the latency from my server in Chicago to Lison is 150ms, and 165ms to Nagano, and 290ms to Mumbai. With the latency goggles cranked to 200ms my page load times went from .75s to nearly 2s. So, my web site feelsfelt sluggish for people in Europe or Japan, and frustratingly slow in India. CloudFlare removes that frustration. Now, Mumbai can browse my site as comfortably as I could from California the day before. (Mumbai should be even faster once Cloudflare adds a node in India.)

Feedback Welcome


Photo-a-Day, Sundry

Leaving on a Jet Plane . . .

Link: https://dannyman.toldme.com/2011/10/14/leaving-on-a-jet-plane/

image

Flying down to LAX to visit the wife.  I booked at the last minute which means I paid a bit more for Main Cabin Select on an otherwise full flight.  That means I get to go through security in the short line and board the plane first.  A good start to the weekend and time enough to post a photo.

Feedback Welcome


Photo-a-Day

Asleep at LAX

Link: https://dannyman.toldme.com/2011/10/17/asleep-at-lax/

image

In most public places, curling up in the corner to catch some sleep would be taboo.  Anyone who has flown enough has experienced this rite of passage.

Feedback Welcome


Photo-a-Day, Sundry, Technical, Technology

Yahoo URLs Cafe

Link: https://dannyman.toldme.com/2011/10/21/yahoo-urls-cafe/

image

It is a little thrill to query Google Maps for “yahoo urls” — URLs is the name of one of their cafeterias, where I am right now for a Meetup.

Feedback Welcome


Photo-a-Day, Sundry

Hawaiian Airlines

Link: https://dannyman.toldme.com/2011/10/21/hawaiian-airlines/

image

In the morning fog, my ride to tropical sunshine waits.

Feedback Welcome


JIRA, Sundry, Technology

JavaScript Hack: Hide an Element on a Page

Link: https://dannyman.toldme.com/2011/10/25/javascript-hack-hide-an-element-on-a-page/

JIRA is an issue tracking system that is really flexible, but sometimes presents irritatingly arbitrary limitations.

I have been working on a screen which uses multiple tabs. The tabs are there to make it easier for the user to find the fields they want to edit, without scrolling through a single long, complex issue. But every tab has a Comment field rendered on it, which makes things confusing, and makes each tab look like it needs scrolling.

So, just remove the Comment field from the Screen, right? No, it isn’t in there. So, can I remove Comment via the Field Configuration Scheme? No, it is mandatory. Damn your arbitrary limitation, JIRA!

Anyway, I don’t normally speak JavaScript, but I managed to gin up the following snippet to paste into a Field description which appears in the screen I wanted to tweak. It finds the element containing the Comment, and sets its style display attribute to none. As the page loads, the Comment box is rendered, but once the page load completes, the Comment box disappears.

<script type="text/javascript">
function hideCommentField() {
        var elements = document.getElementsByClassName('field-group aui-field-wikiedit');
        elements[0].style.display = 'none';
}
// http://stackoverflow.com/questions/807878/javascript-that-executes-after-page-load
if(window.attachEvent) {
    window.attachEvent('onload', hideCommentField);
} else {
    if(window.onload) {
        var curronload = window.onload;
        var newonload = function() {
            curronload();
            hideCommentField();
        };
        window.onload = newonload;
    } else {
        window.onload = hideCommentField;
    }
}
</script>

It is ugly, but effective. Also, it is helpful for me to learn JavaScript!

PS: Thanks for the Guidance, Ed Burns!

1 Comment


Photo-a-Day, Sundry

Halloween Office Party

Link: https://dannyman.toldme.com/2011/10/27/halloween-office-party/

image

I am not clear as to whether a Christmas theme was planned by these folks or if things just came together.

Feedback Welcome


About Me, Recipes, Technical, Technology, Testimonials

Electronic Recipe Rant

Link: https://dannyman.toldme.com/2011/10/28/electronic-recipe-rant/

A friend posted a link about some iPad App that will show you recipes. My reaction was one of being condescendingly underwhelmed, and here’s the gist of what I’d really like to see in a “cookbook app”:

“Will it plan a week’s menus based on seasonal ingredients and give you a shopping list? Because that’s the fucking time-consuming part the computers need to fix.

Any clown can convert a menu book to an App . . . and any clown can find a recipe, drive to the store, spend 45 minutes trying to find some ingredient they don’t know about which is out of season, pay a bunch of money, get home, if they still have the energy maybe cook something sorta edible . . .

. . . but this being the 21st century, an electronic cookbook ought to be able to suggest recipes for you based on the ingredients you have ready access to. (In your pantry, in your growing region, partner with a supermarket…) I have found a website that does a mediocre job of this. This thing is begging to be invented.

Anyway, what I’m saying is–cookbooks in an app–that’s like lets transcribe 15th century technology into silicon. I say hell no, with all this information technology let’s leverage the information to really make it easy for the people to cook healthy, inexpensive meals at home. THAT is the revolution that will make us all better off.”

Feedback Welcome


Biography, News and Reaction, Technical, Technology

Birth of the Internet!

Link: https://dannyman.toldme.com/2011/10/28/birth-of-the-internet/

Leonard Kleinrock tells the story of the Internet’s birth. First word was LO:

And then, he shows us the world’s first router, which they were going to throw out:

My first experience of the Internet was a 1200 baud dialup connection to a USENET host that connected upstream twice a day at 2400 baud. That would have been around 1992 or 1993. (I was a broke highschool kid who couldn’t afford the $30/mo+ for a proper Internet connection.) My first email address was dannyman@netwrk21.chi.il.us, and I lost that address when my network uplink failed to pay his phone bill. Oh well!

When I started college in January, 1995, and had access to labs and labs and labs of computers directly connected via Ethernet, with Mosaic and Netscape installed, it was like I had found my Nerd Nirvana! It only got better when I took a C programming course on the Sun workstations in the basement of the DCL . . .

Hat Tip: Rackspace

Feedback Welcome


About Me, Technical

FizzBuzz

Link: https://dannyman.toldme.com/2011/10/31/fizzbuzz/

I was enjoying Patrick Kalzumeus’ career advice to computer programmers, which in turn linked to an article that states that only 1:200 applicants for computer programming jobs can write a simple FizzBuzz program. FizzBuzz must be something tricky like MapReduce! Not quite:

Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.

Most good programmers should be able to write out on paper a program which does this in under a couple of minutes. Want to know something scary? The majority of comp sci graduates can’t. I’ve also seen self-proclaimed senior programmers take more than 10-15 minutes to write a solution.

Huh? I remember when a CTO explained that a SysAdmin should have at least mediocre programming skills. So, I have always aspired to have at least mediocre programming skills. (More important, SysAdmins are extremely well-served when they can write programs to make their work easier!)

I haven’t written C code in a long while, but I fired up vim and had this compiled and running in a few minutes:

#include <stdio .h>
 
void main() {
    int i, fb;
    for( i = 1; i < = 100; i++ ) {
        fb = 0;
        if( i % 3 == 0 ) { printf("Fizz"); fb++; }
        if( i % 5 == 0 ) { printf("Buzz"); fb++; }
        if( fb == 0 ) { printf("%d", i); }
        printf("\n");
    }
}

I recall at least one interview with Google and probably other companies where I have done something like this on a white board, with the interviewer challenging me with compiler-like errors to help me repair syntax errors.

Patrick’s point is that when you work with excellent people, you see your skills in that context, and will tend to be unduly modest. But when you step back a bit and look at your skills in the context of the industry as a whole, you may well be among the best on the market.

Here in the Silicon Valley, there are plenty of tech jobs, but there is also plenty of competition, which means that the folks you come to associate with will tend to be toward the top of their field.

Patrick’s further point would be that you need to take your skills, and develop the capacity to convey the value that those skills can bring to an organization.

Feedback Welcome


Arrr! . . . Avast!
Site Archive