155 karma · joined February 20, 2007
----
The code for bucket has a lot of logic that goes like this::
if ($msg =~ GREATBIGHOARYREGEX) {
...
else if ($msg =~ ANOTHERCRAZYREGEX) {
...
And so I thought to myself "Gosh, wouldn't it be great if this had
a dispatch mechanism where you could associate regexes with functions in
some kind of data structure, along with some kind of application data
for context?" Oh hangon, that reminds me of... http://docs.djangoproject.com/en/dev/topics/http/urls/
I've been looking at twisted, which seems to be the system of choice for
writing IRC bots. It's a bit hairy and bureaucratic, unfortunately.
The examples for setting up basic IRC bots are clean enough, but once
you turn the page it's all factories and reactors and aspect-oriented
bragging about how great it is to reduce your code to dozens of
three-line classes. But it gives you that great responsive asynchronous
network library, which is nothing to sneeze at!Django doesn't have any facilities for network protocols or asynchronous coding, because it assumes that apache or some other web server will take care of all that for you. Once this occurred to me, the light really went on: twisted need only provide a sort of "IRC Client Server" model, and dispatch incoming requests to Django code the way apache does!
If anyone comes out with a website that purports to provide quick access to information, it'll inevitably be compared to Google (or Yahoo, or Live Search, or whatever comes next). Slate's comparison is actually even pretty close; the author took the examples provided and tweaked them slightly.
For example, "running 4mph 30 minutes 5'10" 160 lbs 40 year male" provides an answer, but "golfing 4mph 30 minutes 5'10" 160 lbs 40 year male" doesn't. I think that his conclusion was the most interesting part, about "the eternal problem for any wannabe Google competitor[: ...] Google can easily co-opt such improvements -- and suddenly everyone's got a better Google."
I think that we're set up to predict and act on N data points, and sometimes N happens to be one. The point of the article, to me, was that you have to understand this behavior in yourself and watch out for fallacies.
Just as if you know about confirmation bias, so you keep an eye out for contradictory evidence, if you know about the statistical problem of generalizing from one you can watch out for that, too.
I'm sure most other major tech companies have the same deal.
If you're just looking for a list of games to try, see http://www.boardgamegeek.com/browse/boardgame and start from the top.
Also, most (good) board game shops have an open play night where you can go in and check out whatever you want. This makes putting $80 down for that copy of Agricola much easier.
If you're in the greater Seattle area, Uncle's Games at Redmond Town Center has a game night on Fridays. They're also the best game shop around, imho (although I might be biased, they know me by name).
Basically, start at the top and go down: http://www.boardgamegeek.com/browse/boardgame
man rsync
Also, buku? You mean beaucoup?Also, I think I'll need to move the help to the front page. Something to work on this weekend. Thanks again for taking a look.
This search is just as powerful (if not more) as these two, if you search for what you're thinking about. See http://mtgcauldron.com/help/ for examples.
My UI is terrible, I know. "Leftify" is a great term, btw. Do you think it's visible enough from the header, or should I move it down?
As for "known set of data," the query language is a full, SQL-like language (including compiler to SQL). This is another issue with the search-as-you-type, but compiling an 80-character (ish) search and getting a few results back should be quick and easy, so I'll see what I can do.
Also, did you notice the sorting option, or was it too hidden?
I built Cauldron as a sort-of Google for Magic. Because of this, all the power is in the search box. It can do all the searches that any other application can do, and has all cards, so I'm not sure what you mean by "limited" and "underwhelming." Perhaps an example?
I've been focusing on the backend, mostly, and I concur with the UI complaint -- I'm working on a module where I can start getting articles up on the front page, but for now, there's nothing there because nothing needs to be -- I'm not selling anything, etc.
The cards themselves currently link to the MagicCards.info card detail site as a stop-gap. I plan to get that information, as well as the kinds of information in Essential Magic, to make my own card detail pages.
As I say, my only excuse is that right now it's set up purely as a card search site -- by the way, did you see http://mtgcauldron.com/help/ ?
There's other stuff I want to see that should be even more
interesting. When it's replaying, I want to be able to see
characters that make it into the final version in one
color, and others in another. Then I'll be able to tell
when I'm writing well and when I'm writing badly.
How about coloring text based on their age in the work? That is, characters added in the last edit are bright blue (or green), and as they age without changing, they fade to black. That would be extremely cool to watch.Also, what if you're using it as a "book on tape" in the car, on a road trip through the middle of nowhere? You lose network connection, you lose your book on tape.
tldr: I think it would be better quality, when you could get it, but at some level reliability is more important for this application.
For his example, it needs one more line:
simple = Scan(
IDENTIFIER = r'[\w_]\w*',
OPERATOR = r'[-+\*=]',
DIGIT = r'\d+(\.\d+)?',
END_STATEMENT = r';',
SPACE = r'\s+',
)
simple.ignore('SPACE')
simple('foo = 5 * 30; bar = bar - 60;')
# generates tokens.