For example: I love Timelyapp. I love it so much that I would like to be a shareholder. I like their approach, I like their execution. I support what they are trying to do and I believe they can, will, and maybe already are very successful at it.
I am not subscribed to Netflix. I am not subscribed to Amazon Prime, HBO, I don't buy things of iTunes, I don't subscribe to Spotify or Grooveshark or any other music service.
I buy books. I subscribed to Timely. And it's such a selfish thing.
A timely subscription costs $14. In New York that's anywhere from 2-3 coffee cups at many fine places like Joe, Brooklyn Roasting Company, myWayCup and many others. My backwater place in the world... the same money would get me about 8 cups of the same stuff.
Is 8 cups of coffee worth it for a glorified replacement for Excel?
For me, yes. Hell yes.
I am unable to fathom the pain of developing at least 4 time trackers, task managers, project management software, ... just to make it easier. Or just to implement what people want, but not necessarily what people need, only to be forgotten, discarded at the way side - for being too complex, too time consuming, too much.
I need Timely. I want timely to be better. I am willing to make something to make Timely better. I am willing to *give* something to make Timely better. It seems to be the deciding reason why I feel good giving money for the service. And that's the difference between Amazon and Timely in my case - I pay Amazon for a flawless service, and I pay Timely to improve, to survive, to flourish.
I hope it will. As for me, I'll drink a bit less coffee.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality✓ Free Actions
Free to watch • No registration required • HD streaming
titpetric replied to your post: new page - cities I’ve been to
Morocco? Sri Lanka? The whole wide Europe? I think you travel more than me :) I want to know all about your travels now! :P
there's sooo much more to see even in Europe, not even to mention everything else. but yeah, from what I've seen - this place we live on is pretty fucking amazing :))
I just find it that reality means you will end up with a desk piled full of post-it notes and will never achieve database nirvana, since the mighty Chtulhu will eat all your disk space, turn all your CPUs into glowsticks and dance on the ashes of your datacentre. That’s about as realistic as “The Perfect Database”.
- Tit Petric, comment on "I want a new datastore" by Jeremy Zawodny
In the late 90's, after 96-97, I was a part of the demo scene in Slovenia. This was a somewhat informal gathering of like-minded hackers, programmers, artists, musicians who liked to have fun. There was a vibrant BBS scene at that time, where at least three or four BBS were active, one of them my own. I'm not even sure why we had BBS now, but before IRC and demo parties it seemed to be a good way to get a C++ compiler and read several tutorials and e-zines.
Amongst the digital underground, a few books and other materials were widely circulated. The memorable ones include the Phrack ezine, the Anarchist cookbook, and the Hacker Manifesto. Among the more comedic literature dealing with computers, you could read the adventures of the Bastard operator from Hell, and should absolutely take a look at the Tao of Programming (book).
To quote the latter:
A well-written program is its own heaven;
a poorly-written program is its own hell.
Sometimes, technology debt can be mild. A normal thing for beginner developers is to use the same server for development and production, and more often than not this can lead to problems. It is a form of technology debt, as accepted practice between serious programmers is at least some kind of deployment mechanism. I know some people, who have at least 4 levels of deployment: internal development, internal testing, wide testing/pre-production, and production. We are currently using 4 levels of deployment for our biggest client, come to think of it.
So, deployment often includes several servers. This is already something that needs to be maintained. Think of configuration files for your databases, key value stores, file servers, web servers, load balancers, and probably custom software. Like the Tao says:
Though a program be but three lines long,
someday it will have to be maintained.
Here the technology debt can start to build up. You have to think about backups, system restores, maintaining configuration. If you're growing you also need to think about infrastructure, in software and in hardware. Is the PHP you're running a good choice or should you research LUA, Erlang or other software? While some things are basic and can be solved with a small amount of work, others are large and keep coming to bite you in the ass.
Many start-ups over the years accrued technology debt. Some handled it better than others. A good example of handling technology debt would be Twitter, and a bad one would be MySpace. The companies design choices allowed them to solve new problems in a certain way, and eventually, a design choice they made led one of them down a dead-end street. In a way, it is Darwinism at work.
It is not the strongest of the species that survives, nor the most intelligent, but the one most responsive to change.
A lot of technology debt can be avoided with careful planning in the design stage of software development. Some things can be anticipated. If you're developing a new feature, you can think about speed, scaling, volume of content, and other qualities and requirements. While you're obviously not clairvoyant, you can predict some reasonable guesses what kind of problems your project is going to run into.
In one of our cases, we created a CMS for a Client. Over several years, the CMS was being extended with new features, adding the Clients every new requirement. The problem was that one of these requirements required us to create a copy of the CMS. But the CMS deployments needed a lot of common data. The part which was the eventual downfall of the CMS was not predicting which data needed to be shared between CMS deployments, and then maintained on each of them.
In the end we ended up with about 6 copies of the CMS, which were taking all our time just to maintain, let alone develop new features. Our only option was to build a new CMS. We are using the new CMS without problems for the last several years now, even reducing system requirements because of better design decisions. But like with the first CMS, we will hit a wall.
The wall will most probably be database performance. Several content tables have already filled up several 10 million rows and are not used just for analysis. This is real world data, which is used and updated often. Design choices can be modified, caching layers can be added and we can be good for another 3-5 years. If the content will grow faster, our only option will be to rewrite it completely.
One of my personal opinions is that software needs to be developed with a life-span in mind. Usually, I try to plan and envision what the state of an application will be after 3 years. If the database will grow, we plan for it. If we expect to add a caching layer because of load, we plan it in a way that won't kill us trying to develop it a few years from now. These are not unique things to us, they are common for pretty much any software developer.
So, basically, to avoid technology debt, we think about this:
What will be the state of the software and it's data in 3 years
If we need to add caching, what can we prepare now
Are there moving parts, which we can plan to make replaceable?
Intelligent code re-use
Backward compatibility or deprecating features
API's, DAL/DAO objects, software relationships and dependencies
Establishing best practices for development
Using this approach, we can see which software is going to be problematic. By implementing these best practices for development, we maintain a quality code base. Because of this, several of our clients use our software for more than 8 years now. While some software needs upgrading, most of it is still future proof.