Vespa Search Engine

I just heard that Oath have released the Vespa Search Engine open source. When I was in Yahoo! it was used for everything. I predict that a company will exist in a few months selling it as a service.

I think Vespa was one of the be best written pieces of infrastructure at Yahoo! that I worked on. It was well documented for an internal app and it was blazingly fast. The guys working on it were also super smart. I will be interesting to see where it goes but I think it will be a contender in the search space.

Generating a random password from command line

The following uses openssl to generate a random binary sequence “N” bytes long encoded in hex or base64. The “N” is all important. If you use base64 you get uppercase characters in the string which some sites require, you can also use hex which makes for a more readable string but it will be longer and if the people cracking your password are using an offline database to crack the password longer random strings are better (this assumes they don’t know how you encoded you’re random bytes).

openssl -rand -base64 32

openssl -rand -hex 32

How long should “N” actually be? This table at wikipedia lists the given entropy in bits for various character sets. If using hex and you want 80 bits of entropy you need 16 bytes. Base64 is not listed but the character set has 64 symbols so the entropy is similar to the case sensitive with numbers which has 62 symbols so 80 bits would require 12 bytes. The number of bits you choose for entropy is up to you.

Google Indexing Geo Specific Content

A question came up on cofounderslab asking about how to deal with pages that changed content based on geolocation, in particular it was about google indexing the content.

The problem is trying to serve geo specific content on the same URL’s, this is breaking URL Semantics. The “R” in URL means Resource and in the case given the city is the resource, at least when I searched it was city specific content that I got on the site, if the city changes based on users location the resource is changing and this breaks the semantics. There are two ways to deal with this, one is sub directories and the other is sub domains.

Sub-directories:

You can redirect the user to a subdirectory ie

https://example.com/us/ca/[city here]

You can hit some gotchas with cities with the same name etc but this way the google index will see each url as unique content which it is. An example of sub directories is yelp, if I visit yelp at their main domain I get redirected from

https://www.yelp.com

to

https://www.yelp.com/sf

Sub-domains:

Craigslist uses subdomains, if I go to their main website I get redirected to https://sfbay.craigslist.org/

The thing to remember is that a web resource should remain fixed at a single URL, the method chosen has some ramifications but as you can see from Yelp and craigslist both methods work well.

I’ve used both methods and the sub domain route is a bit more work because it involves DNS and some way to manage it that isn’t manual but it’s easily doable ie attach DNS to a database etc.

Jenny Portrait WIP

The following is where I’m at with Jenny’s portrait. I started off with a rough drawing and painted in the grisaille ie mostly black and white until you have the main drawing and tones complete. This looks gray because the grisaille is very much still showing. This painting requires a lot more work. A good example of what needs doing is the eyebrow, it looks painted on which it literally has been but it should not look that way 🙂

The reason for the composition came from Rembrandt. He had a tendency to light his subjects very strongly from one side or from above, with this portrait I wanted something similar but I also liked the fact that it looks like Jenny is emerging from the dark. I’m not sure how it’s going to turn out yet but it’s getting there.

Making Oil paint – Demo at Los Altos Art Club

I did a demo at Los Altos Art Club making oil paint. It was good fun and everyone there got to use the mull to see just how hard it can be to push it around on the glass slab. I was originally going to mull some watercolor as well but the cleanup of both would have taken the demo well past the hour so I decided to just do oil. I picked Burnt Umber since it makes lovely paint with linseed oil and nothing else.

Find powers of 3

I saw this question somewhere and thought I’d jot down an answer. I’m sure there’s a bit twiddling method to do this but I think this is about as fast as you’re going to get…

  int power_of_3(uint32_t n) {
    switch(n) {
      case 1: return 1;break;
      case 3: return 1;break;
      case 9: return 1;break;
      case 27: return 1;break;
      case 81: return 1;break;
      case 243: return 1;break;
      case 729: return 1;break;
      case 2187: return 1;break;
      case 6561: return 1;break;
      case 19683: return 1;break;
      case 59049: return 1;break;
      case 177147: return 1;break;
      case 531441: return 1;break;
      case 1594323: return 1;break;
      case 4782969: return 1;break;
      case 14348907: return 1;break;
      case 43046721: return 1;break;
      case 129140163: return 1;break;
      case 387420489: return 1;break;
      case 1162261467: return 1;break;
      case 3486784401: return 1;break;
    };  
    return 0;
  }

Hiccup for Callista

Callista fell in love with Toothless from How to Train Your Dragon. I painted Toothless and Hiccup, the dragon turned out terrible so I won’t be adding it here. Hiccup doesn’t look much better but he’s recognizable. I’ve been dabbling in watercolor so decided to use it, the more I play with watercolor the more I like it, it also forces me to practice drawing more than Oil or Acrylics do.

Abbott Handerson Thayer Roses

The moment I seen his Roses I knew I had to copy them. Abbot Handerson Thayer did a lot of work regarding camouflage. His paintings are nothing short of genius and I learned a lot copying his painting.

The image below is my copy. It’s ok but it lacks the tonal variation of the original, it also lacks the brushwork. If you look closely at the brushwork of the original he was definitely painting wet in wet and the way the paint mixes when doing so is difficult to replicate any other way.

Self Portrait WIP

This is a self portrait that’s about half way complete. I did two of these side by side one of which I did while using the reference upside down to see what it would look like.