Archive for the 'Ultralink' Category

Much Faster CryptoJS SHA1

May 17th, 2014
Spencer Nielsen Follow snielsen42 on Twitter


SHA1 is a pretty crucial part of my current startup, Ultralink. We need (relatively) decent uniqueness calculation and change detection, and need to be able to do it really, really quickly on a lot of content. We picked SHA1 because it’s widely supported, simple to implement, and fast. For the portions of Ultralink that run in Javascript, we needed to include CryptoJS, a third-party library. CryptoJS appears to be the go-to library for cryptographic functions in Javascript, and seemed to fit our bill perfectly. Development was humming along and everything was fine. When we would occasionally do performance passes and stress tests on desktop web browsers, the SHA1 calculation wasn’t even on the radar for perf offenders. Once we started taking a look on iOS devices though, specifically Mobile Safari, it became a completely different story… (more…)

CloudFlare as a DB Read Cache

September 14th, 2013
Spencer Nielsen Follow snielsen42 on Twitter


CloudFlare is a popular, DNS-level proxy service that has layered on tons of useful features over the years like asset optimization and denial of service attack mitigation. Probably the most prominent service they provide though is caching. This caching functionality is primarily geared towards webpage content. Out of the box, CloudFlare’s caching settings work great and it intelligently decides what kind of files to cache (images, css, javascript) and what not to cache (html or other files that could contain dynamic content). You can tune CloudFlare’s settings to fit your specific needs and do a lot to lighten the load on your server. I started to think about all the interesting things I could do with a distributed caching layer that sits in front of my servers. I was designing the back end of at the time and thought: “Gee, CloudFlare might actually make a pretty decent read cache!“.

Now I have to start this article with some caveats. Using CloudFlare in this manner will not solve all your problems or even be appropriate in many cases. But if you do have a certain kind of workload and can expose the interface to your database in a specific way, it can really do a lot to absorb your database read traffic. (more…)

Ultralink: The Hyperlink, 2.0

September 4th, 2013
Spencer Nielsen Follow snielsen42 on Twitter

Some of you might have noticed that I haven’t written any blog posts here in a long while. That’s because I have been head down, cranking away on my latest exciting project. It is a very bold, new concept unlike anything that has been seen before. I call it the ‘Ultralink’.

To explain what an ultralink is, let’s first examine it’s ancestor, the hyperlink. The hyperlink is the most basic grammar of the internet. It’s assumptions and usage quickly permeate anyone who has used the web for more than five minutes. Even grandma knows what a hyperlink is and how to use it. I want to take that foundation and evolve it forward into something even more useful, more valuable and more user friendly. I want to re-write the most basic grammar of the internet.

The easiest way to understand what an ultralink is, is to go to and watch the introduction video there on the front page. Then install one of the browser extensions and take them for a test drive on any page on the internet.

We have finally decided to declare public beta and are now putting ourselves out there for all the world to use. We want feedback so that we can continually make our products more awesome. I would ask that you please take a look at the resources we have for ultralink above (and share/like/retweet/etc.), try them out for yourself and send me feedback on what you thought was awesome and what can be improved.

Hyperlinks still have their place, but ultralinks can do much of what they do better and some stuff they just can’t do at all. It’s the hyperlink… 2.0.

Entries (RSS) and Comments (RSS).