Archive for the 'General' Category

CloudFlare as a DB Read Cache

September 14th, 2013
Spencer Nielsen Follow snielsen42 on Twitter

cloudflareBadge400

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 ultralink.me 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…)

iOS 6 Predictions

March 6th, 2012
Spencer Nielsen Follow snielsen42 on Twitter

It is always fun to try and guess what Apple is going to do next. You can guarantee that there will always be surprises and sure bets, letdowns and magical moments. The Apple rumor sites do a decent job of soliciting leaks, reading between the lines and making educated conjecture. As a developer, I often like to take a good look at where Apple’s technology is right now and make logical extrapolations as to where things are headed. Oftentimes, when Apple announces some new feature or technology it seems obvious in retrospect if we had only connected the dots. Based on 2011’s release schedule, it is a fair bet to say that Apple is going to announce iOS 6 at WWDC sometime this summer and distribute a developer beta. That means that in the coming months little trickles of information are going to get doled out to the rumor sites about what kind of changes and additions we can expect. Just for fun, I wanted to get my own predictions out in the open before any of that started. Here is my very developer-oriented prediction list of what we might be expecting in iOS 6.


UPDATE: WWDC and the iOS 6 beta have come and gone. Some of my predictions now have conclusions. You will notice however that most of the predictions have not yet been updated. That is because there is the potential for Apple to be keeping a few more surprises up their sleeve for the fall when iOS 6 goes GM. Inline below are the results so far.


UPDATE2: iOS 6 GM is here which means that the NDA has lifted! Check down below to see how well I did. (more…)

Death to .DS_Store

December 24th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

The “.DS_Store” file is an abomination and must be stopped. You know what I’m talking about. I regularly rant about how this annoying file gets in your way, dirties things up and just screws with your stuff in general. Today I decided to do something about it. Before we get to that, lets quickly review what it is and why it sucks.

What Is It?

The .DS_Store is a Finder metadata file created primarily by Mac OS X’s Finder.app. Because of the dot (“.”) prefix it is typically not visible in many file browsers and most Mac OS X users are probably not aware of it. It is regularly created when the Finder accesses filesystem directories. It contains directory information about icon locations, view options, silkscreen configuration and the like. The functionality that it provides is moderately useful, but becoming less and less relevant over time. In any case, a long time ago the horrible decision was made to store that Finder metadata in an actual file (.DS_Store) in the filesystem within the relevant directory. We have been paying for it ever since. Over time more and more metadata relating to files and the filesystem has been added to Mac OS X, but thankfully those have been stored in saner places (extended attributes, etc). For the time being though .DS_Store is still here with us and still causing trouble. What’s so harmful about the file you might ask?

(more…)

Think Tank: Never let a good idea get away again!

November 28th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

So I have these thoughts…a lot. No not that kind! 😉 I get these fun ideas for neat projects or crazy inventions as I am driving in the car, singing in the shower, lying in bed or even in the midst of coding. Really creative ideas that may or may not be realistically viable but worthy of entertaining nonetheless. I get really excited and start working it over in my mind. It feels like inspiration. Then something happens… Life resumes and I need to deal with the actual task at hand. No worry, it was such a compelling idea that I will surely remember it later when I have cycles to devote to it. And then I never think about it again. Or even worse, the next day rolls around and I all of the sudden remember that I did think of a cool idea the day before, but I can’t quite bring the memory into focus. Does any part of this sound familiar to you?

Write It Down

“No more!” I declared. Nothing gets remembered unless it is written down. Hmm, idea notebook? TextEdit file on the computer? I did the text file thing for a while but I kept forgetting that it was there or didn’t have access to it at the time. No worries… Evolution of the computer to the rescue! Transferred things to Notes.app on the iPhone. Not good. Too jumbled, un-organized, too much information presented in-general. I knew of the million and a half “getting things done”, task management, mind-mapping and brain organization apps/ecosystems out there. But I found most were too general for what I wanted and too heavy. Well, if you want something done…

(more…)

Language Aid: A Postmortem

August 27th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

Language Aid is a system-wide text lookup tool I developed and sold for the past couple of years. I recently decided to make it free and release the source code. This is the story behind it.

Rewind to 2006, I was just winding down active development of Vision, my OpenGL Window Sever/UI Framework. I had started work on Vision in college 3 years earlier and had been churning on it full-time for the previous 2 years. I had decided that it was finally time to get a job and so I interviewed around and accepted a position at Apple. I had two weeks until my start date and I wanted to do some programming for fun that was completely different from what I had been doing.

Iron Coder[0]

It was during that two week period of not yet working for Apple that Wolf Rentzsch started the (now defunct) Iron Coder contest. The way it worked was that the organizer announces an API that each of the contestants must use somehow in their entry and then 24 hours later a theme is announced that entries must also somehow incorporate. I thought it was just what I needed. A fun, small-scoped project with a little bit of competition. So the day of the very first Iron Coder arrived and the contest API was announced: The Accessibility API. Accessibility API? What’s that? Until that moment I had not been aware of it but it was actually just what I had been looking for to solve a different problem I had. I started researching it and immediately there were portions of it that were very interesting to me. Specifically, the ability for programs to inspect and copy data (like displayed text) out of other running applications was of particular interest to me.

(more…)

Language Aid 1.2

August 27th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

Language Aid version 1.2 is out! The big feature of this release is that it is free and open source! This will also be the last release supported by Aoren Software. Development has pretty much wound all the way down at this point and the source has experienced some code rot as Core Foundation has progressively become more and more obsolete and Mac OS X has marched forward.

So it occurred to me that the time has come to set Language Aid free. Anyone care to take the code and modernize it? Maybe even release it on the Mac App Store? Let me know and I can work with you to make that happen. Be sure to check out my tell all Language Aid postmortem.

Startup Grind.app 1.2 (August Update)

August 19th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

The Startup Grind.app version 1.2 has been approved and is live on the App Store! This update features some substantial re-design and refinement. The biggest change has been a complete re-design of the “Questions” pane. Now you can down-vote questions that you don’t like, redundant questions or non-questions. If a question gets to a value of -2 or lower (the equivalent of three negative votes and one positive vote) then the question will no longer be displayed. Remember, you can submit questions to the speaker far in advance of the actual event if you want.

Try it out and let us know what you think of the changes.

Startup Grind.app 1.1 (July Update)

July 20th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

The Startup Grind.app version 1.1 has been approved and is live on the App Store! There are some cool new features in this update! Try them out and let us know what you think.

Info Pane

First, we have condensed a lot of information into a new “Info” pane:

  • The complete details about the speaker and event.
  • A map of where the event is being held (touch it to go look it up in the Maps application).
  • A sponsor banner so you know who to thank for your free pizza that night (Wanna be a sponsor? Email Us).

This pane is the new hub of every event and is the pane that you now start in.

(more…)

Startup Grind. The app.

June 15th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

So my friend Derek and I have this really cool event that we run called the Startup Grind. It has been great to watch it blossom into a vibrant, well attended meetup over the past couple of months. The other day we sat down and talked about ways that we could add even more value to what we think is the best free startup event in silicon valley. One thing we wanted to try out was to see if there was some sort of technology solution that we could come up with to make the networking at our event even easier and more valuable. Thus the concept of the Startup Grind app was born. First concept to App Store submission was exactly three weeks to the day. Now that you can get it in your hands, let me give you a tour of it’s main features.

(more…)

Going Indie! (again)

November 16th, 2010
Spencer Nielsen Follow snielsen42 on Twitter

The entrepreneurial itch has gotten me once again! After nearly five years with Apple I have decided it is time for a new adventure! In many ways I think I prefer to be the big fish in the small pond. As far as the startup life is concerned, there has already been so much said by so many that I don’t think I have anything particularly insightful to add other than that it is indeed an absolute rush.

The first time I went out on my own was right after college. For two years I developed an extensible 3D interface framework and window server called Vision. It is no longer in development but you can still check out material on it in the Archives (I might get a patent out of it yet though). Even though things didn’t turn out like I had hoped, I still wouldn’t trade that time for anything! I learned a TON during that period of my life in all sorts of areas. The technical skills and business knowledge that I acquired during that time have proven to be invaluable in everything I have worked on since. The lessons I learned have also shaped my plans for this next go around.

The first thing I decided to do this time was to start small and build up. I am going to attack small problems/projects with the goal of getting some sort of sustainable revenue quickly. These small projects are the kind that one person can bring to market by themselves. Because of the small scale I also plan to not seek funding and bootstrap everything myself. That way there really is nothing standing in the way of getting a fully finished product out the door other than my own skill and effort. Hopefully I will be successful enough to bring others on board and attack progressively bigger problems.

I have already laid the plans out for my first project which will be introduced in a future post. I will say that it is an original iOS game like nothing currently in the App Store today. My plan is to take this first month to code up what I would comfortably call a playable alpha and start organizing a testing community around the game. Apple has made such compelling and easy to use development tools/frameworks that it is going to be a joy to dive headfirst into iOS development full-time.

I also plan to regularly document my progress and efforts here for anyone who has interest in independent software development. I know that I particularly enjoy reading about the experiences of other indie developers out there. Got any advice for me? Let me know in the comments!

Entries (RSS) and Comments (RSS).