Yeah, so...I wrote an epic post for Day 1, but, being an enormous list of everything I wanted to accomplish during this time, it quickly became un-postable. So. A sort of recap for those of you that aren't me: I'm on a leave of absence from my day job. In total, I have 84 calendar days (business + weekends) to accomplish a ton of shit, both in my personal life (e.g. "get ripped") and for this start up.
I've been wondering how to keep track of my progress. Normally at a corporation, we are only supposed to track the burn down, or stuff remaining. And at a corporation we especially don't want to track our daily accomplishments, because sometimes those accomplishments are little more than some bullshit meetings and 20 pages of reddit.
However, now that I am working for myself, there is no risk in tracking what I actually do; if I waste 2 days doing nothing, no one is there to bitch about it.
More importantly, tracking progress, in this project, will be necessary for my own morale. I have a ridiculous amount of work ahead of me. Someone actually told me that something of this scope would normally be a million dollar project. And sure, if you hire ten idiots at $80,000 a year plus benefits, you would probably spend a million dollars. Hopefully, with the right dev (me) this can be a 3 month, one man (well, one man + 1 mediocre designer) job. I wouldn't mind getting paid a million dollars to do it though.... Anyway.
So the point of all that was I have a shit ton of work to do. And work-life balance is still a problem, because I don't want to continue being a fatass the whole time. So. How to I avoid getting burned out? Tracking what's left will be just like looking ahead to the peak of the mountain you're trying to climb: you can't really tell if you've made much progress each day because it is still an enormous distance away. Instead, when you start to feel burned out, you need to look behind at what you've accomplished and pat yourself on the back and maybe buy yourself some celebratory ice cream.
Now, how to track progress? I have a wall of UI screens I've made in my living room. But sometimes extremely important tasks don't have much visibility in the way of UI. So instead I thought I would start writing down each day's accomplishments on a note card, and posting in on my bedroom wall. A rather bold move, yes, but I'm not planning on getting laid the rest of the time I'm here anyway, so lets see if it pays off. Really, all of the sort of self imposed nerd restrictions on my life are coming off until I move.
Here is the wall:
Wait. Hold on. Why the fuck isn't blogger integrated with google drive? Whatever.
Again, here is the wall:
Lets hope that gets filled up with lots of cards...especially cards that don't just say "watched too much TV."
Seriously though, blogger is a google service, and its trying to get me to put my damn photos in some picassa web service bullshit. Drive is a google service--drive seems like kind of a big deal to them...you know, part of the whole competing with office thing. They are certainly pushing drive in my face when it comes to downloading files from gmail---ok. So. I think what's going on here is that now that I am in full raging development mode, I am going to be super critical of every piece of technology I come in contact with. I spend all day trying to implement the optimal design, and then the run into shit that is clearly not optimal, written by people who should know better. And I can't help pointing it out.
Like, for example, fucking Jetty Server. The punk ass bitches who designed it had to go and get all confused by the word "method" in the HTTP spec, and they make you create a new java method for each of the 3 HTTP methods. Wait, aren't their 4 HTTP methods? 5? Oh that's right: the HTTP spec doesn't limit you to GET/PUT/DELETE/POST. You can use whatever methods you want. Unless you are using jetty. Then you only get those four. And you are supposed to implement a separate fucking java method for each one. If you don't, you just get this mysterious error about not supporting that shit. And even though all of these stupid ass ignorant sheep fucking enterprise java devs normally have the most awkward hardons for xml bullshit, this is apparently the one thing that doesn't get hidden in some unreadable xml tag. It gets resolved by having the server do [run-time] reflection on your class. I haven't looked at the code or anything; I just know. How do I know? I'll get to that. So. If your servlet class has the stupid ass "doPost()" method, then, well, your servlet class supports POST request. If your servlet class doesn't have the method, it doesnt support the post method. So, what is the first thing any mildly intelligent dev will do in this situation? Obviously that would be to create an abstract base servlet (called AbstractSlightlyLessRetardedServlet, or if you prefer shorthand, ServletX) that overrides doPost() and redirects it to doGet(), so that in the rest of the servlets you only have to override one method in order to support 4 of the infinite possibilites of HTTP method names that could exist (4 is better than 1, after all). Well, guess fucking what. The dumbasses that wrote jetty wrote their reflection shit wrong. If doPost() is implemented on a parent class, jetty doesn't notice. It acts like the method isn't there, and doesnt allow you to handle POST request. In fact, this flaw is actually how I know jetty is wiring this shit via reflection; if it was via gear in the base Servlet class, then obviously my override in ServletX would have intercepted the call, like I expected it to, because that's how inheritance works. And even if we pretend for a second that HTTP cannot possibly allow HTTP Methods other than get/put/delete/post--why the hell wouldn't we still have a single method, called, idk..handleRequest(), and let the HTTP method just be a member of the request object that gets passed into it? This could be worse than I'm making it out to be...I'm pretty sure Servlet is a standard Java EE object, which means...well lets not think about that.
So....
Subscribe to:
Post Comments (Atom)



No comments:
Post a Comment