Archive for the 'Servers' Category
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…)
Posted in CloudFlare, Databases, Debugging, General, Hacking, Indie, Networking, Performance, Programming, Servers, Systems, Ultralink | No Comments »
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 https://ultralink.me 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.
Posted in Hacking, Indie, Marketing, Networking, Programming, Servers, Systems, Ultralink | No Comments »
Achievement Unlocked: iOS 5 NDA
In a previous blog post I outlined my need for an iOS server. I had found a sufficient but non-optimal solution for iOS devices running iOS 4.X. I mentioned at the end of that article that I had found an optimal solution utilizing some new features in iOS 5. Now that iOS 5 has gone gold master and the NDA has been lifted I can outline in detail how to get your own iOS server up and running. To review, the three requirements for setting up a server in my situation are that it must:
- Be able to receive push notifications (so it can get it’s work)
- Have it’s display turned off (to save energy and avoid things like screen burn-in/fatigue)
- Require no human interaction (needs to be completely autonomous)
In the previous article I outlined why these were in conflict with each other on iOS 4 devices. However, there is some new functionality and behavior policies that allow all three requirements to be fulfilled.
(more…)
Posted in Cannonade, Debugging, Game Center, Games, Hacking, iOS, Networking, Programming, Servers, Systems | 2 Comments »
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…)
Posted in Bugs, Deadlock, Debugging, General, Hacking, Indie, Language Aid, Marketing, Postmortems, Programming, Psychology, Security/Cryptography, Servers, Startups, Web | No Comments »
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.
Posted in General, Hacking, Indie, iOS, iPhone, Marketing, Programming, Servers, Startup Grind, Startups, Web | No Comments »
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…)
Posted in General, Hacking, Indie, iOS, iPhone, Marketing, Programming, Servers, Startup Grind, Startups, Web | No Comments »
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…)
Posted in General, Hacking, Indie, iOS, iPhone, Marketing, Programming, Servers, Startup Grind, Startups, Web | No Comments »
Top-down view of the Aoren Software datacenter in the living room corner.
Why, you might ask? In my case the answer is simply because it is my only alternative. In development of my game Cannonade there quickly arose a need to be able to replay my user’s completed games and validate the results with exactness. In order to obtain that level of exactness, my games must execute with complete determinism. Unfortunately the implementation of floating-point match according to IEEE754 can actually vary somewhat between x86 and ARM processors. This means that if I replayed a game that two of my users played using iOS devices on an x86-based server, the results of the replay would very quickly diverge. Thus I am left with no choice but to set up a dedicated iOS device to wait for notifications of the matches that it needs to replay and validate (a process I call judging). An iOS server you might say.
(more…)
Posted in Bullet3d, Cannonade, Computer Games, Game Center, Games, Hacking, Indie, iOS, Networking, Performance, Programming, Security/Cryptography, Servers, Startups, Systems | 2 Comments »