HNHacker News
TopNewBestAskShowJobs

tdavis

6,243 karma · joined February 7, 2008

codes+designs websites; wears pants.

yc summer '08

http://swaptitude.com - Skill exchange for the creative community

submissionscomments
tdavis··on Python and Django on Heroku
I know this pain; I am forced to work with GAE every day now. And let me tell you, the only thing worse than not having 2.7's features is having un-patched bugs from as early as 2008--like one that prevents keyword arguments from being unicode strings, for instance! Seeing the other list of changes/"mandatory improvements" in child's link makes me weep all the more. I will have to start another crusade to get 2.7 support and between stuff like documentation, testing (gasp!), Django-nonrel, and HRD, I am fresh out of crusade slots.
tdavis··on Ask HN: What do you use to test Frontend code?
For Javascript testing, I really like JSTestDriver for automation and Sinon for mocking/stubbing.

I found bulky solutions like Selenium to be somewhat hit-or-miss and overkill for most tasks. It's very rare that with proper unit testing I really need a whole additional layer just to click around the site and make sure stuff is working as expected. Maybe some basic sanity checking, but it's really not my preferred way to think about testing--which of course is just a personal preference.

tdavis··on Contract based programming (Python)
The huge number of lambdas had a tendency to muddle the first example; somebody should tell this gentleman about the `operator` module. Other than that, looks interesting! The decorator syntax may be a more apparent way to handle assertions about arguments in situations where numerous (or repetitive ones) are required. Hooks can be similarly handy.
tdavis··on A Platitude on Software Failure
Really? I thought this was rather good prose and the core message is quite accurate. As someone neither disturbed or depressed, I found it a quite refreshing read. On the one hand you can always argue that humanity isn't doing enough "meaningful" work--and perhaps the author is really distraught about that (though I'm not one to imagine it'll ever change). On the other hand, the tech industry is undeniably filled with snake-oil salesmen, herd mentality, and general bullshit.
tdavis··on Annyong, a small web server that serves static files from the current directory
Almost as simple, but production-ready (fast, daemonize-able, ssl, etc.):

  twistd -n web --port=8080 --path=.
tdavis··on The unfortunate math behind consulting companies
> that is true, but it's also irrelevant, since typical consulting firms actually charge much more.

Again, it's irrelevant if you redefine "typical consulting company" as one of a clearly atypical group of big-name firms with tens to hundreds of thousands of employees.

> Secondly he asserts that consulting doesn't scale.

He makes two assertions. First, that with all the details accounted for, your profit will likely be half of what a naive assumption would find. And second, that as a founder you'd end up doing a lot of stuff outside your core competency or interest. At no point does he say, "Given these facts, it's clear that consulting cannot scale." If he had, sure, you could take two seconds, point out a single point to the contrary, and feel good about "demolishing" an easily refuted argument. He didn't, so we're back where we started.

tdavis··on The unfortunate math behind consulting companies
So now your argument is that there are about a dozen "consulting companies" in the world and the rest are loose collections of "freelancers"? Banal use of semantics aside, you still haven't said anything that refutes the problems/solutions surrounding "consulting companies" (or "freelancer gaggles" if you prefer) as they were defined in the article.
tdavis··on The unfortunate math behind consulting companies
> I think the author of this article has no experience with consulting companies.

Jason has extensive experience with consulting companies, as you would know had you taken the 20 seconds necessary to read his bio before starting your argument with ad hominem. Congratulations on following it up with a straw man argument that replaces 99% of companies with the 1% that he blatantly wasn't targeting.

sigh

tdavis··on Farewell
Oh, thanks; fixed!
tdavis··on Farewell
Yes, I was. I left the company in early December after a year of creating / maintaining the web infrastructure and e-commerce and analytics products. I accepted a co-founder title in mid-2010 but decided it wasn't a good fit shortly after and began transitioning out in late 2010.

Probably more than you wanted to know (and barely a sliver of the story), but there it is!

tdavis··on Farewell
Mail in electronic format may be dispatched to "info" at said domain.

Although if your feedback is on the rather poor landing page, you should wait until the new one is up ;)

tdavis··on Farewell
Wow, thanks Jacques! I'm not convinced I've ever done something worth being thanked for, but I definitely appreciate it a lot!

Closing down TS was tough (and I squandered a few thousand dollars putting it off), but in the end I'm really glad that particular weight is off my back. Now I just need to get Swaptitude to be more of a weight, and we'll be set ;)

Thanks for the submission and the kind words.

tdavis··on MapReduce from the basics to the actually useful (in under 30 minutes)
In what way is terminology badly abused? There isn't a single use of the word "cloud" in the entire article and the only "buzzword" terminology used appears to be used accurately and sparingly. If that isn't your contention, why not explain otherwise? How does the abuse/misuse of terminology detract from the quality of the article or make it inaccurate?

Further, your argument that the same could be accomplished in "3 or 4 lines of SQL" is a straw man. The article never claimed the specific task was shorter/easier to do using MapReduce and Cloudant; the author made an example based on common use cases—one that didn't require architecting a full requirements specification for when one would find Cloudant/MapReduce/Non-relational databases superior to a few lines of SQL for various values of "superior".

Your comment is vague, largely irrelevant, and completely useless regardless of its accuracy since you provided absolutely no arguments to back up your claims. The fact that it has even two points is disheartening.

tdavis··on Ask HN: Github + Posterous for API docs?
Check out http://readthedocs.org. It's what you're talking about for Python docs using Sphinx (http://sphinx.pocoo.org/)
tdavis··on WakeMates are ready
I completely agree with you: the blog should be better linked and branded. I run into blogs every day that have absolutely no way to get to the main site without changing the URL, and it's incredibly frustrating. I wasn't trying to disprove your overall argument regarding "product blogging 101", merely point out that your specific claim of having to change the URL is false (even if it is clearly non-trivial, relatively speaking, to find said link) and likely had no bearing on your decision to write your initial comment rather than investigate further.

Frankly, your comment came off a bit snarky and holier-than-thou, which is what I was responding to in the first place. The basic merits of proper blog-site interlinking and branding were not meant to be brought up for debate. I take no issue with your points, merely the manner in which you chose to deliver them. Your follow-up here was much more thorough and useful.

tdavis··on WakeMates are ready
> b.) No direct link to the product website

Except for the one in the sidebar that says "WakeMate Homepage". It's under a big white header labeled "Links".

> Since I'm on an iPad, it's orders of magnitude easier to simply hit the back button and write this comment...

This is Hacker News. It self-selects for just hitting "back" and leaving a critical, half-accurate comment.

tdavis··on Ask HN: Place for developers & designers to barter small units of work?
In the process of building such a service, we've already spoken to a couple lawyers about these issues and it's quite a legal gray area right now. We're working on ways to structure the system to avoid these particular requirements, at least in the short term. It really comes down to how you implement the bartering platform itself as well as the terms under which exchanges are made.
tdavis··on Ask HN: Place for developers & designers to barter small units of work?
Not yet, but we're building it!

http://swaptitude.com

tdavis··on We're moving. Goodbye Rackspace.
Softlayer (my preferred dedicated host for years) does this as well. I agree that it's currently impossible to beat the combination of bare metal performance and cost efficiency with the ability to spin up cloud servers within one's own VLAN.
tdavis··on We're moving. Goodbye Rackspace.
Dedicated (rented) offers similar performance improvements and cost reductions without the extreme upfront cost (obviously costing more over its lifetime as a result). But these days it really seems like a blind spot. Maybe it's just that I never completely jumped on the cloud bandwagon (or was running servers far before it got rolling), but I really haven't found a generic use case for cloud hosting. Planning infrastructure upgrades isn't rocket science; you'll have more than 10 minutes' notice to get a new machine. There are certainly many specific use cases for cloud hosting, but as a generic hosting tier I find it incredibly overused—and companies waste money and are forced to deal with unreliable performance (EBS i/o anyone?!) as a result.
tdavis··on Please fork, contrib & push Paython (Payments in Python) forward
Python could certainly use a generic payments library—like what libcloud has done for cloud providers. And I don't want to demoralize you or ridicule the work done already. However, there are a number of problems with the implementation as it stands that make it a bad idea to ask for contributors at this stage:

1. There are no tests. How can I be expected to contribute to your project when there's no way I can ensure a change doesn't break existing functionality, or even works itself? Testing remote APIs is a bit of a hassle, but it's what mocking was made for. Short of signing up for multiple payment gateways, there's no current way to test any change I make.

2. No setup.py support. This will likely further limit the number of people who contribute as it increases the barrier to entry. A proper project structure is a relatively easy thing that saves you a ton of time in aggregate.

3. There is no coherent developer API. Why does XMLGatewayInterface exist if only one gateway uses it? Why isn't there a generic GatewayInterface that abstracts things further, for non-XML APIs? If you're not going to use ABCs or strict interfaces (like zope.interface), you should at least have well-formed documentation: most ivar conventions (Foo.API_BASE, etc.) aren't mentioned anywhere. Why are there exceptions in the lib module that are only used by one gateway (or none)?

4. There are a multitude of minor design decisions that, if followed by contributors, will likely cause you pain down the road. Using print for debug output, relative imports, random error handling, "entrapping" functions (why would a function take two optional parameters that are immediately checked for non-None status?), etc.

To be clear, I'm very glad you're working on this—it's a difficult (at least incredibly tedious) problem that I'm sure a lot of people would appreciate a Python solution for, myself included. But I don't think this is a very good time to be asking people to fork and contribute. You need a proper foundation built before trying to solicit contributions or you'll end up with a bunch of code you'll need to rewrite later instead of a comparatively small amount you should rewrite now.

As the library author, it's your responsibility to build a cohesive, general-yet-customizable, clear interface upon which people can build and test their own gateway drivers. If you do that, I promise you you'll have contributors in no time. It's exactly what we did with libcloud and we now support almost every cloud provider out there and even have a nearly API-compliant Java fork (just to lend some credibility to my rambling).

tdavis··on Ask HN: Django Deploy Recommendations
nginx in front of gunicorn is fast, simple, efficient with resources, and reasonably scalable. Today, there's nothing else I would recommend.

Of course, use [d]vcs, setup.py, virtualenv, pip, and south (and a reasonable test suite!). Using these along with gunicorn as mentioned above has streamlined my deployment to a "one-click" process that leverages all of these packages to create an isolated, repeatable, rock-solid [re-]deployment with nothing more than a generic Makefile.

I've been doing Django development and deployment for over four years now and it is the closest thing to a "silver bullet" I've found.

tdavis··on Why Y Combinator is a waste of time
Y Combinator isn't about money. They effectively provide team living expenses for three months; assuming you're already a competent developer or creative type, you can save three months living expenses in no time.

Y Combinator is about people. A whole lot of people who have a whole lot more experience starting companies than you do. And all those people want to help you succeed, like those before helped them. It's a giant fraternity where instead of keg stands you get proven advice from people who've done the hard work of finding the potholes themselves.

If you need to dig a big hole and don't know about a backhoe, you grab a shovel and start working inefficiently. Y Combinator is the construction guy who comes by and tells you about the backhoe. And about digging a hole you can get out of. And about the nearby water line you're probably going to bust open. He saves you a shit load of time and trouble and helps you grow your skill set.

Y Combinator not only connects you with smarter entrepreneurs, it connects you with the best of the startup world. Need funding? Need a CEO? Need an invite to something? YC has you covered. They can't make you drink, but they sure know where all the water is.

* * *

YC helped me grow as a founder and as a developer. It helped me make the best friends of my life. When my co-founder tragically died, Paul and Jessica made sure I could pay the bills—in exchange for nothing (which doesn't scratch the surface of how much my entire class helped). If I had to do it again, I would. Every single time.

If you know everybody; if you have a following; if you have ridiculously talented friends, you probably don't need YC. But everybody isn't you.

tdavis··on Ask HN: Do things like WakeMate really work?
> Is it ethical?

WakeMate never actually collected any money from the pre-sales, so I don't think there's anything that could be considered unethical about it. If we had, that'd probably be a different story.

> Is it advisable from a long-term strategic perspective...

That remains to be seen, but investors wanted to see actual pre-orders; since the investment was necessary to hire folks like me to finish the product, it was the only short-term strategy available.

tdavis··on Ask HN: Do things like WakeMate really work?
Though biased (I wrote all of WakeMate's web-based software), I think the product is solid and works as described; Beta users have agreed. Release estimation and product management in general are clearly a different matter, but we have sent out multiple emails since April and the blog (http://blog.wakemate.com) is routinely updated.
tdavis··on Zed finishes Learn Python The Hard Way
Ditto for generators. In the process you could introduce pipelining and thus give a window into the Unix way which is probably pretty relevant for a newcomer. Or I've just been around too long to know what's relevant for a newcomer.
tdavis··on Tell HN: An Observation
...all this industry gossip, fanboy-bait, and the lack of user-generated content drives down the quality for me in a big way

The more mainstream adoption HN receives, the more the stories will degrade to the lowest common denominator—that of gossip, fan-bait, and chop shop content. I returned to my feed reader for the majority of my interesting articles a long time ago.

The "new" page is basically a feed aggregator of tons of individuals' posts, most of whom don't have the notoriety or baiting title necessary to stick on the page long enough for the few people who read "new" to see them.

Like any other public link sharing site—no matter how niche or well-seeded to start—it will increasingly pander to the 90% who come rather than the 10% who started it. And it'll keep doing that until it becomes reddit (no insult meant; reddit is a great public link share). But at this stage I'm pretty confident it'll always have better discussion.

tdavis··on We Built Interactive Seating Maps Using Raphael; Please Give Us Feedback
Awesome job guys! A couple notes, from somebody who's done the interactive seating maps stuff before...

First off, this is essentially a direct clone of Fansnap.com's UI; I'd be surprised if SeatGeek didn't get heat over it. And since Fansnap has taken something like 10 times the funding Seatgeak has, it's not a move I would have personally made. But it sure is ballsy!

Secondly, I created interactive seating maps for TicketStumbler in one day using image maps and JS instead of any fancy (read: quality) canvas/SVG stuff. Turns out that was good enough to get StubHub to ban us from their API without so much as a notice. The ticketing affiliate industry is as shady and predatory as they come; if your product is similar to or better than a "partner" site's, don't think blackmail is beyond them or even outside the norm. All of which is to say, in this industry it pays to spend as little time as possible on features that you may be forced to disable or dumb down. Today, TS' maps are either disabled entirely or reduced in utility, literally to avoid being as good as StubHub's.

Although, with StubHub quickly making themselves irrelevant in the affiliate space by reducing commissions to near-zero, maybe it won't be such a huge deal this time around. Their affiliate manager would contact us the same day we released something StubHub didn't like; no other site has been quite that bad.

All that being said, I really hope Seatgeek does well. It would be amazing to have one honest, successful startup in this space that isn't run by a suit factory.

tdavis··on Wakemate Blog - Final Wristbands
You were charged. That it was a negative amount is a worthwhile distinction.

http://blog.wakemate.com/2010/08/06/paypal-refunds-complete/

If that isn't the case, PayPal is stealing from you. Though we are pretty damn close, regardless.

tdavis··on Posterous is Down
So instead of replying to the people who are too lazy to check their Twitter page / follow @posterous they should... not do that? Oh, and if you took two seconds to click the "more" button, you'd see they have posted a link to the instructions. Using post.ly and bit.ly. But by all means, make up more things to complain about.
← PreviousPage 2 of 34Next →