If It's Important, Don't Hack It
Articles and Podcasts on Customer Service, AI and Automation, Product, and more.
The latest blog posts to take off on Hacker News. 857 posts.
Articles and Podcasts on Customer Service, AI and Automation, Product, and more.
I've written previously about the problem recursive descent parsers have with expressions, especially when the language has multiple levels of operator precedence.
Programming is complicated. Different programs have different abstraction levels, domains, platforms, longevity, team sizes, etc ad infinitum. There …
Composition not inheritance, polymorphism through interfaces, and packages for namespacing.
Troll? That's how people write Verilog 1 . At my old company, we had a team of formal methods PhD's who wrote a linter that typechecked our code, based on our naming convention. For our chip (which was small for a CPU), building a model (compiling) took about five minutes, running a single short test took ten to…
For some reason many people discuss the problem of estimating software development timeframes without properly understanding the issue. There is a famous answer on Quora that exemplifies this. Lots of people like that story, even though it’s inaccurate and misguided. “Software development” is such a huge endeavor that…
First, let me clarify one thing for those of you who've never dated me: I cry. A lot. When I can't get my vagrant box setup correctly afte...
Posted by James Bennett on Sept. 15, 2013
At SoundCloud I’ve been experimenting over the last year with how we build the services that power a number of heavily loaded areas across our …
MVC is a phenomenal idea. You have models, which are nice self-contained bits of state, views which are nice self-contained bits of UI, and controllers which are nice self-contained bits of …
This release includes massive enhancements that improve performance of many queries by orders of magnitude. See the full list of enhancements , or watch Joe Doliner ( @jdoliner ), an engineer at RethinkDB, talk about the 1.9 release in this two-minute video:
So far, you’ve focused on becoming famil iar with the tools that Clojure provides: immutable data structures, functions, abstractions, and so on. In this chapter, you’ll learn how to think about your programming tasks in a way that makes the best use of those tools. You’ll begin integrating your experience into a new…
Recently, main was formally added to the W3C HTML specification. Now that the dust has settled, it's about time we dive in to find out where and when it's appropriate to use main. Let's get started.
I've been using *nix systems for quite a while. But there are a few commands that I somehow overlooked and wish I'd discovered years earlier.
On the 9th September, 1947, operators of the Mark II Aiken Relay Computer being tested at Harvard University, found a bug. And, in so doing, made history.
In this document, I describe what is, in my humble but correct opinion, the best known algorithm for threading messages (that is, grouping messages together in parent/child relationships based on which messages are replies to which others.) This is the threading algorithm that was used in Netscape Mail and News 2.0…
Yesterday Crystal became one year old. Yay! :-)
A trampoline is a loop that iteratively invokes thunk -returning functions ( continuation-passing style ). A single trampoline is sufficient to express all control transfers of a program; a program so expressed is trampolined, or in trampolined style; converting a program to trampolined style is trampolining…