HNHacker News
TopNewBestAskShowJobs

thomaslee

175 karma · joined March 31, 2009

http://tomlee.co
submissionscomments
thomaslee··on What do grad students in math do all day?
Probably because it's hard to distill years of work connecting the dots (which at first don't appear to be connected in an obvious way) in a way that is easily digestable by somebody new to the field.

In any case, I imagine there's more glory in digging further into intellectual stuff than spending time making it palatable for newbies. :)

thomaslee··on Better Queuing Metrics With Updated New Relic Add-On
I'm an engineer at New Relic. A fix for the Python agent will follow within the next day or two.

Asking around, it sounds like only the Python & Ruby agents are affected by the queue time reporting issue (with the exception of Java, which apparently doesn't report the queue time at all -- but I believe this is a known limitation).

thomaslee··on Rust 0.5 released
Huge congrats guys! I admit I'm still trying to figure out the nuances, but I really like a lot of the ideas in the language. :)
thomaslee··on Rust 0.5 released
RE: the memory model, I wrote a blog post on it because I had the same trouble. Folks seem to have found it pretty helpful!

http://tomlee.co/2012/12/managed-and-owned-boxes-in-the-rust...

thomaslee··on Fast JVM launching without the hassle of persistent JVMs
Because unix? :)
thomaslee··on Show HN: Parson, lighweight json parser in C
+1 for jansson. It rocks.
thomaslee··on Show HN: Parson, lighweight json parser in C
strndup is part of the "standard", but not present on some platforms unfortunately. :( I can't think of a modern C runtime that doesn't offer strdup, though.

The realloc check is good advice -- take heed, OP. :)

thomaslee··on Ask HN: LXDE (Mint) or Xfce (XUbuntu)
I can't comment on XUbuntu, but I went from LXDE to Debian+Xfce and finally settled on Debian+OpenBox.

If you're really only interested in Xfce vs. LXDE, I'd go with Xfce -- but only because it should be less of a memory hog & I doubt you'll miss much from its heavier cousin. Honestly though, either would probably work fine.

Or hey, give OpenBox a crack. :)

(Be warned I'm a keyboard junkie, so my love of OpenBox might be tainted by that :) Between the customizable shortcuts + menu & some of my own stuff [http://tomlee.co/code/ginvoke] I rarely have a reason to reach for the mouse outside of the browser.)

thomaslee··on OSCON 2012 Proceedings: Speaker Slides and Video
The slides for Inside PHP and Inside Python are probably best accompanied by the modified source code so you can see where changes were made :)

https://github.com/thomaslee/oscon2012-inside-php https://github.com/thomaslee/oscon2012-inside-python

If I had thought ahead a little, I would've done an initial import before the presentations started so that folks could see a nice little diff... oh well. Next time!

thomaslee··on What Was Your First Coding Book?
Not strictly a book, but this made something "click" for me back in the early days: http://sepwww.stanford.edu/sep/jon/family/jos/oop/oop1.htm

Sadly the author passed away in 1999 -- when he was younger than I am now & just a few years after I first read his "book". IIRC his parents were still trying to get the book published for a while.

Looks like his family maintains a web site in his memory: http://sepwww.stanford.edu/sep/jon/family/jos/

thomaslee··on Adding a new statement to Python
Here's my original paper on the topic in case folks are interested:

http://tomlee.co/wp-content/uploads/2008/12/python-language-...

thomaslee··on Server-Sent Events
I wrote a partial implementation (no event types or useful IDs) of the server-side SSE protocol for kicks using nodejs (an old version of node, but it still seems to work):

http://github.com/shinetech/eventserver

Basically you can post JSON messages via HTTP & they're streamed in real time to clients via the Server-Sent Events protocol.

This is a great, simple protocol with a dead-simple client-side API -- I can see it being really popular as browser support for SSE and CORS improves: http://www.w3.org/TR/cors/

thomaslee··on Twitter releases new JS template engine: hogan.js
If you're into compiled templates & more traditional syntax, you could try jazz:

http://github.com/shinetech/jazz

(Shameless self-plug. I wrote the initial implementation.)

thomaslee··on Eventserver: broadcast HTML(5) server-sent events with JSON
Disclaimer: I'm the original author of eventserver and an employee of Shine Technologies. These are my thoughts, I'm not speaking on their behalf, yadda yadda yadda.

I wrote this over the course of a couple of hours yesterday morning based on thoughts I'd been having for a few weeks about HTML(5) server-sent events and the possibilities that come with it.

eventserver effectively listens on two ports: a "publisher" port and a "subscriber" port. The subscriber port implements the interesting bits of the server-sent events working draft. The "publisher" port simply accepts (JSON) messages over HTTP. These messages are then forwarded to all connected subscribers using the server-sent event protocol.

The server itself is written in NodeJS, messages are not stored, and things like Last-Event-ID are not (yet?) implemented. Just a toy for now, but perhaps an interesting one all the same!

thomaslee··on Am I charging too high for design?
So they don't want a lower priced product, but they don't want the higher priced product either?

Confused now. :)

Is it the price or the outcome you're talking about here? I'm not talking about offering a "lower price product", I'm talking about offering your clients a little flexibility to suit their budget (while covering your own bases in terms of time spent on any project).

In any case, there's nothing to stop you from communicating that you're willing to discuss options on the quote if they're willing to make concessions wrt your time/revisions.

Maybe I'm just misunderstanding. Good luck all the same!

thomaslee··on Am I charging too high for design?
So 9/10 people come to you, most of the time you quote them $3000/$3500 irrespective of their budget and they walk away?

If you don't want to call them "packages", that's fine -- but if you're giving fixed-price quotes of $3000-$3500 irrespective of the client when all they really want/need is 10-20 hours of your time you might be doing yourself a disservice.

By the same token, if your experience tells you that you really need the 75 hours to do a good job for a client, then don't sell yourself short.

Maybe you need to ask your clients to clarify what their expectations are in terms of hours and incorporate that into your quotes?

Maybe you need to clarify that you can be flexible with the overall price in exchange for less time (e.g. maybe do fewer revisions, simpler designs, whatever -- I'm not really a design expert).

Or maybe it's time to start billing by the hour? :)

Of course, you may hold yourself to a high standard and feel that you require that much time to do a "good job" by your clients. That's fine too, but understand that's a business decision that will leave you with fewer clients.

Just my two cents, but hope it provides some food for thought.

thomaslee··on Why do programmers write apps and then make them free
I spoke about exactly this at a recent conference in Brisbane, Australia:

http://linuxconfau.blip.tv/file/4697493

Beyond various companies working on an open source solution you have the more important benefit of being able to choose your support vendor.

thomaslee··on Ask HN: How do you design your personal (toy) projects?
design? :)
thomaslee··on HTML5 3D demos
Maybe it depends on your browser. I'm on Linux and a Chrome 9.x nightly, and it runs like a dream.

This is very exciting (albeit obvious and long overdue) stuff, IMO.

thomaslee··on Hello World on an AVR Micro Controller
FWIW, I posted something a step or two up from this on avrfreaks using the Arduino Duemilanove (less the Arduino fluff):

http://www.avrfreaks.net/index.php?name=PNphpBB2&file=vi...

Effectively you upload the program to the Arduino using avrdude, then you can send signals via USB from your PC using the *nix program to switch the LED on & off. The final programs weren't posted, but you can piece them together from the comments :)

It was heaps of fun. If you have an Arduino but haven't made the leap, I highly recommend getting down and dirty with more typical AVR stuff.

thomaslee··on 4Chan Flooding YouTube with Childrens' Clips Containing Porn
This is not evil. This is a bunch of kids sitting behind their collective computers having a giggle with their mates.

As you observed, the Internet completely disconnects them from the reality of their actions. I'd wager that -- generally speaking -- 4channers don't run around flashing their technicolour LCDs at epileptics or showing porn to their mate's six year old. They're a little power-drunk on sweet, sweet anonymity juice.

The porn thing isn't a huge deal in my personal opinion. Of course, I say this without being a parent. So I don't know, perhaps I'd feel differently if that were the case. What I do know is that you and I are different people with different opinions and apparently different senses of humor, and hey -- that's cool. Sorry you found my comments about seeing the funny side to be so outrageous, I meant no offense.

I'd prefer a cultural change in 4chan rather than a legal smackdown. You can shut down a site, but the 4channers will still be around. This, in turn, will only lead to Internet censorship for the rest of us.

And it really would be shit if the Internet's dying words were "Oh, but think of the children." -- but imagine the good 4chan could do if this sort of energy were channeled elsewhere? Maybe I'm just being excessively optimistic. :)

thomaslee··on 4Chan Flooding YouTube with Childrens' Clips Containing Porn
"They're demanding, but nobody cares about their demands."

Except politicians whose morals and wants stretch in proportion to the contributions they receive.

"Basically, now is not time for the media companies to demand anything."

That's not the point I'm trying to make. The point is that this sort of "vandalism" is going to change the whole landscape, everything you just described.

Perhaps now is not the time for media companies to demand anything -- but if you take the freedom of today's Internet for granted, sooner or later this sort of behaviour is going to come back and bite us all on the ass. It could progress such that if censorship fails, they could always go down the China route and use plain old-fashioned fear.

thomaslee··on 4Chan Flooding YouTube with Childrens' Clips Containing Porn
While I can sort of see the funny side, I think this sort of crap is going to be the end of the Internet as we know it. It's just begging for the political and commercial powers that be to stamp down on the web with a great, big boot.

Media corporations have already started demanding more control over the "distribution channel" that is the Internet. When the lobbying steps up, politicians aren't going to have to look very far for justification to give the corporations exactly what they want.

</twocents>

thomaslee··on Oh Yeah? Where's Your Patches Zed?
Then he should probably raise that fact on python-ideas if he hasn't already. The SMTP library hasn't been tried and tested to any significant degree in the real world, so the likelihood of having it accepted right now is slim -- but it's the usual approach for getting stuff like this on the radar...
thomaslee··on Oh Yeah? Where's Your Patches Zed?
Does anyone else aside from zed have burning issues with optparse? I'm genuinely curious. I use it quite a lot, but have never really had to push the boundaries of what optparse can do. As an example, my optparse code usually looks something along these lines:

    from optparse import OptionParser
    parser = OptionParser()
    parser.add_option("--force", default=False, action="store_true")
    parser.add_option("--host", default="localhost")
    options, args = parser.parse_args()
Is it really that bad? Where does it fall down?
thomaslee··on Cool Things in Rails 2.3
#9 is especially important. The parameter parsing code in Rails < 2.3 was painful to work with for all but the most rudimentary forms. Great to finally see it in there!
← PreviousPage 2 of 2