HN user

tcwc

231 karma

London based developer, founder of www.textrazor.com.

Feel free to say hi - toby@textrazor.com

Posts7
Comments39
View on HN

Usually a seller doesn't add VAT to B2B invoices into the EU, VAT is accounted for by the purchaser under the 'reverse charge' system. B2C is different, they would need to charge the local VAT rate in each member state. I suspect they simply haven't gotten around to supporting it yet.

It depends on your regex engine. The author here is concatenating all of the paths into a single pattern, an automata based engine would ideally compile away the disjunction and offer performance linear with the input path length.

Neat idea! It looks like the NLTK POS tagger is having trouble here so might limit your recall when used as a filter.

Instead I wonder if it would be better to use the context of each token to mine significant ngrams from the rest of Shakespeare's work and filter for rhymes with a phoenetic hash like Metaphone.

They don't do this to help you get a job. Recruiters insist on an editable version so they can remove your contact details and insert their letterhead. This makes it harder for their clients to contact you directly and cut out their fee.

Feed readers can send If-Modified-Since or If-None-Match as part of the request so the server only sends back the full feed if there's something new (Otherwise a 304 Not Modified)

I can't speak for Parse, but I've come up with something similar in the past. Nginx/HAproxy as a combo is far more flexible than the ELB alone, you might want to use it for rate limiting, better load balancing algorithms, better logging, tweaking headers, handling errors, or controlling buffer sizes for example.

The Stanford parser is great, but isn't really the same. The Stanford entity recogniser is limited to the standard types of people, places, companies, but we identify and disambiguate into a far richer ontology from wikipedia, and can recognize topic abstractions that aren't explicitly mentioned.

Also we found the Stanford tools (and the other open source NLP tools) were difficult to integrate into "production" apps for various reasons. One big one was performance - we aim to run the full parsing and extraction pipeline on an average news story in a few hundred milliseconds, which can be an order of magnitude faster than the others.

Hey steeve we thought there were a few things missing in the competition. We've built a bunch of extra functionality such as more extensive relation and dependency parsing and contextual entailment generation, and use all that to build much more accurate entity and topic recognition, an area we think the others can be greatly improved on.

We also expose all these results to a Prolog interpreter on our backend and allow you to add custom logic to mashup and extend all of our results, as well as provide a much easier integration experience.

Totally agree with you on the pricing front, we're still finalising the details there. We're aiming to be fully transparent with both the technical and business side of things.

In the UK our situation is much better, although BT owns most of the physical cable "Local loop unbundling" forces them to share their lines with competitors.

It seems in the US the only people you can buy from own the physical infrastructure. Once one company has already built their network in an area they form a natural monopoly - it's not economical for competitors to come in and rebuild the network when they know they'll only be able to get a certain % of households to switch.

I didn't mean to imply it was simple, just that there's nothing magic about how Watson's knowledge is stored. Obviously at this scale any change is unlikely to be trivial.

Given the wide range of unstructured sources Watson uses, and given that the linguistic rules they use to extract facts are likely to frequently change, I don't think it's unreasonable to assume they'll have a process to make building its knowledgebase and models from sources fairly straightforward.

C++ pitfalls 14 years ago

I agree this particular example can be confusing the first time you hit it, especially coming from other languages.

It's better than the alternatives though, I would be interested to hear how you handle this in your version. Leaving the behaviour undefined for non-existent keys is likely to cause far worse bugs, throwing an exception would be inconsistent with the rest of the stl.

The could have left it out altogether, but would mean losing some nice properties - operator[] returning a reference makes it possible to assign into the map directly ( a[3] = 5; ). Also since the value is default initialized, you can write something like a counter easily, much like a python defaultdict:

  for (auto id in ids) {
    a[id] += 10;
  }
You can always stick to .find and .insert if you prefer the more explicit behaviour.

Rather than polling, zeromq >= 2.2 allows you to set ZMQ_RCVTIMEO on the socket which seems to be what the author is after. It would be nice to be notified of disconnected peers, but the timeout + retry approach has been good enough for me.