Topics /

Software Engineering

The most popular blog posts about software engineering on Hacker News. 679 posts.

2011
631

Solving Tetris in C

Exactly one of the following statements is true. In Tetris, you can always get at least one line before losing. In Tetris, a sufficiently evil AI can always force you to lose without getting a single line, by providing bad pieces. Which one? Prove it. The setup I crea...

633

VP trees: A data structure for finding stuff fast

<img src="http://stevehanov.ca/wavelet/cup.png"/> Let's say you have millions of pictures of faces tagged with names. Given a new photo, how do you find the name of person that the photo most resembles? <p> In the cases I mentioned, each record has hundreds or thousands of elements: the pixels in a photo, or patterns…

634

Bloat reduction in LibreOffice 3.4.0

Older items: 2023 : ( J F M A M J ), 2022 : ( J F M A M J J A S O N D ), 2021 , 2019 , 2018 , 2017 , 2016 , 2015 , 2014 , 2013 , 2012 , 2011 , 2010 , 2009 , 2009 , 2008 , 2007 , 2006 , 2005 , 2004 , 2003 , 2002 , 2001 , 2000 , 1999 , legacy html

636

Why do C++ folks make things so complicated?

This morning Miroslav Bajtoš asked "Why do C++ folks make things so complicated?" in response to my article on regular expressions in C++. Other people asked similar questions yesterday. My response has two parts: Why I believe C++ libraries are often complicated. Why I don't think it has to be that way. Why would…

642

Git: fetch and merge, don’t pull

This is too long and rambling, but to steal a joke from Mark Twain Blaise Pascal I haven’t had time to make it shorter yet. There is some discussion of this post on the git mailing list , but much of it is tangential to the points I’m trying to make here.

650

Understanding lvalues and rvalues in C and C++

The terms lvalue and rvalue are not something one runs into often in C/C++ programming, but when one does, it's usually not immediately clear what they mean. The most common place to run into these terms are in compiler error & warning messages. For example, compiling the following with gcc :

651

Lua/APR - proper standard library for Lua

Lua/APR is a binding of the Apache Portable Runtime (APR) for the Lua programming language . APR powers software such as the Apache webserver and Subversion and Lua/APR makes the APR operating system interfaces available to Lua, serving as an extended standard library. Thus far the following modules have been…

652

MongoDB and Riak, In Context (and an apology)

There has been quite a bit of furor and excitement on the Internet this week regarding some very public criticisms (and defenses) of MongoDB and its creators, 10gen . Unfortunately, a ghost from my recent past also resurfaced as a result. Let me begin by apologizing to 10gen and its engineers for what I said at JSConf…

654

Understanding JavaScript function invocation and "this"

Over the years, I've seen a lot of confusion about JavaScript function invocation. In particular, a lot of people have complained that the semantics of this in function invocations is confusing. In my opinion, a lot of this confusion is cleared up by understanding the core function invocation primitive,