The rights to Ms. Pac-Man are caught up in a messy legal battle - <AUTHOR> https://arstechnica.com/gaming/2019/09/the-rights-to-ms-pac-man-are-caught-in-a-messy-legal-battle/ <comment><USER2> The story of Ms. Pac-Man[1] (also linked in the article here) is very interesting. The developers created the game as an "enhancement kit" to Pac- Man. They didn't just burn new ROMs, though-- they actually made a daughterboard that attached to a stock Pac-Man that could selectively patch- out the original ROMs to avoid duplicating any of the original code.

1] [https://www.fastcompany.com/3067296/the-mit-dropouts-who- cre...](https://www.fastcompany.com/3067296/the-mit-dropouts-who-created-ms- pac-man-a-35th-anniversary-oral-history)

<comment><USER3> The uncredited artist who actually created the final visual design of Ms. Pac- Man was Sharon Perry/Barr, who also worked on Discs of Tron, Spy Hunter, Rampage, Demolition Derby, and many other classics.

(I got to see some design artifacts while working with her on a Sega Genesis game. You can find a mention of this, as well as a picture of her as a vampire, here: [https://www.arcade-history.com/?n=the-spectre-files- deathsta...](https://www.arcade-history.com/?n=the-spectre-files- deathstalker&page=detail&id=146787))

</comment></comment><comment><USER4> It's unbelievable how long copyright lasts. It seems unlikely that the prospect of legal battles 40 years in the future were part of the original Ms. Pac-Man developers' motivations for creating the game.

<comment><USER5> It is my personal belief that in many fields patents last too long already. Copyrights are just beyond insane.

I like the idea of initial automatic copyright (like it currently is); though I think the duration on that might be better as 5 or 10 years.

Lets go with 10 years for the first initial, automatic copyright, just as a starting point. Also add in one additional year to allow for paperwork filing; so 11 years. Past that point in time I'd like to see a requirement for continued registration (and a filing fee that increases exponentially); I also would like compulsory rates per type of work. Those should be set by the library of congress (and contestable by lawsuit). The compulsory rate also requires furnishing, for a reasonable fee, a unit of the work that is unencumbered by technological restrictions preventing the study and modification of the work in question.

</comment></comment><comment><USER6> Unfortunately not the only game like this. Tons of 80s and 90s games' ownerships are tied up in a quagmire of acquisitions, bankruptcies, and closings. Some IP rights lie with companies not even involved in gaming, yet still protected even though they have no plans to reproduce or resell.

</comment><comment><USER7> They were always at Pizza Hut in the tabletop format.

</comment><comment><USER8> Great video in the comments of that article, from one of the original creators: [https://www.youtube.com/watch?v=rhM8NAMW_VQ](https://www.youtube.com/watch?v=rhM8NAMW_VQ)

</comment><comment><USER9> Namco is probably spending more $ on lawyers than they are developing and maintaining Pac-Man and Ms. Pac-Man products.

<comment><USER10> Pacman games were released in 2011, 2013, 2014, 2016. A compilation cabinet was released in 2018. iOS and Android games have been released in 2016, 2017.

I'd be surprised if your assertion was true.

<comment><USER9> I worked there. I made some of those.</comment></comment></comment>


Sensors Slip into the Brain, Then Dissolve When the Job Is Done - <AUTHOR> http://spectrum.ieee.org/view-from-the-valley/biomedical/devices/siliconbased-sensors-slip-into-the-brain-then-dissolve-when-their-jobs-are-done <comment><USER2> [https://news.ycombinator.com/item?id=10925843](https://news.ycombinator.com/item?id=10925843)</comment>


Show HN: CLImate – Colors, formatting, and more for PHP in the terminal - <AUTHOR> https://github.com/joetannenbaum/climate

<comment><USER2> Awesome. Saw it on Reddit yesterday. Love the logo.

Needs more gif support.</comment>


Sciteco – a modern TECO based on Scintilla - <AUTHOR> http://sciteco.sourceforge.net

<comment><AUTHOR> oops, it seems sourceforge doesn't like traffic.</comment>


Async.js v2.0.0 released - <AUTHOR> https://github.com/caolan/async/blob/master/CHANGELOG.md#v200 <comment><USER2> So why Async.js over Promises or Generators at this point?

<comment><AUTHOR> Promises are great for prototyping, but have significant overhead ([http://thanpol.as/javascript/promises-a-performance-hits- you...](http://thanpol.as/javascript/promises-a-performance-hits-you-should- be-aware-of/)) for some high performance APIs it may be advisable to use async.

Async also supports nodejs callback patterns which can reduce the need for wrappers (promisify)</comment></comment>


Tumblr (No Revenue) Investment Values It at $800 Million - <AUTHOR> http://online.wsj.com/article/SB10001424053111904009304576530920265948358.html

<comment><USER2> Um last time I checked we are still in a bubble</comment>


Academic Publications by Googlers - <AUTHOR> http://research.google.com/pubs/papers_by_year.html

<comment><USER2> They do great work in many areas, but the best ones (IMHO, as a systems guy) are the systems papers. In non-systems areas, folks from universities could conceivably do the same research, but for OS/Distributed systems, Google research is the state-of-the-art. There's no point even trying to find fault with their evaluations, because papers are usually submitted well after the system is deployed and operational within Google.

Three recent papers at this year's Operating Systems Design and Implementation: [http://googleresearch.blogspot.com/2010/10/google-at- usenix-...](http://googleresearch.blogspot.com/2010/10/google-at-usenix- symposium-on-operating.html)

</comment><comment><USER3> Flipping through some of these papers is an _awesome_ timesuck. Just saying.</comment>


Build an arcade machine at home - <AUTHOR> https://lokalise.com/blog/build-an-arcade-machine-at-home-step-by-step-guide/ <comment><USER2> I just want to share my Pi mini arcade machine because I'm very proud of how it turned out: [https://imgur.com/a/ujelaO1](https://imgur.com/a/ujelaO1)

<comment><USER3> Really nice work. The detail cutting around the hearts at the top is incredible. How did you do the imagery on the side of the cabinet?

<comment><USER2> Thank you! It's just acrylics: [https://imgur.com/a/dByhxV9](https://imgur.com/a/dByhxV9) One of the reasons I did this project was to try out my new axidraw pen plotter so I drew the lines on an iPad and had my plotter draw it on the sides for me: [https://imgur.com/a/FKcGV2g](https://imgur.com/a/FKcGV2g) . Definitely unnecessary though and could have just been done by hand, but was fun.

</comment></comment></comment><comment><USER4> It's worth pointing out that if you want to run MAME, specifically, RetroPie is a bad choice, as is using the Raspberry Pi in general.

MAME's architecture does not lend well to it being converted into a core. Several features get weakened, disabled, or broken, and they generally don't function the way they're supposed to, especially with respect to controller input.

The version of MAME available for RetroPie is considerably older and outdated. Many of the features have been altered or disabled in order to make MAME work on less powerful hardware.

Even a low end PC running the latest version of MAME (222, at the time of writing) is going to give you a much better experience.

<comment><USER5> It all depends on the era of game you want to play though. At least for me, I can't imagine a retro game I would want to play that a Pi couldn't easily handle, given that my idea of a retro game is Pac-Man, Galaga, Donkey Kong, and the like. Granted, if your idea of a retro game is a PS2 game from 2001, your mileage might vary.

<comment><USER4> It's not necessarily about the experience of the specific game. (Although many of the games you name do in fact emulate badly on RetroPie. Galaga, for example, has a glitchy starfield and incorrect sounds.)

It's also that the versions of MAMEs shipped are simply buggy, and have some features disabled. If you go digging around in the MAME menus, lots of things are not going to work properly.

<comment><USER6> What kind of stuff is disabled?

</comment></comment></comment></comment><comment><USER7> You can do quite a bit with a ~$150 9in band saw. Here's mine [1]

[1] - [https://i.imgur.com/pJOzxcp.jpg](https://i.imgur.com/pJOzxcp.jpg)

<comment><USER8> pet cat to insert coin

<comment><USER9> Looks like a biter

<comment><USER8> That just means "I love you" in tooth.

</comment></comment></comment></comment><comment><USER10> I can't see that cardboard lasting more than a month of regular use. Arcade buttons are hit _hard_ , and the substrate needs to be able to withstand those forces.

Given that you can source basic hand tools (which can do almost everything power tools can do) for a low price, this particular cost saving measure doesn't have a great ROI.

<comment><USER11> I thought it was a prototype until I got to the end of the article, I was looking for the finished version in something more permanent.

Yes there's no requirement to own a circular saw etc.- as well as hand tools the hardware store will accurately cut wood to sizes you specify for a small fee.

<comment><USER12> _> the hardware store will accurately cut wood to sizes you specify for a small fee. _

Home Depot and, I think, Lowes will cut for free here in the US. But I wouldn't rely on that for any kind of precision sizing. If you need tolerances within, say, 1/4", you're rolling the dice if you rely on a near-minimum wage employee who couldn't care less doing the cutting for you.

<comment><USER13> I just got some wood cut for another project last night. They're usually pretty good about accuracy, in my experience. I think it all depends on the HD or Lowes employee you get. But I was very happy with the 48" and 66" cuts the gentleman I worked with last night made. Choosing between minimum wage or my novice, unpracticed hands, I think I'll take their hands when I can. As fun as it is to cut wood. :D

<comment><USER11> Yeah it's worked out fine for me too, those awesome wall mounted panel saws are more accurate than any table saw- but our experiences are both imagined apparently ;)

</comment></comment></comment></comment></comment><comment><USER14> I'll join in on the show-and-tell portion of this discussion ;)

I built a MAME machine for a group summer house about 6 years ago and probably went WAY overboard, but man was it fun. My favorite piece was the cabinet, which I ordered from someone in North Carolina who builds these for a living. IIRC it was about $500, but wow - was it high quality (and it had to be delivered via freight - it was probably 200lbs):

[https://imgur.com/a/IHKnJeo](https://imgur.com/a/IHKnJeo)

</comment><comment><USER15> There are a few old games like "Midnight Resistance" that are much more enjoyable when the joystick can rotate.... but I've never seen a single home built arcade machine that had any of those.

I'll likely buy a cabinet some day rather than make it, because I'm not so good with my hands; I hope by then I could find one that does have a rotary joystick.

<comment><USER16> Have you played the Ikari Warriors games in _SNK 40th Anniversary Collection_? I liked how they updated the emulator inputs to accommodate for the original rotary joystick setting. Frank Cifaldi went in-depth about addressing it at GDC last year. [1]

It's certainly not a drop-in replacement, but you're right that those kinds of games need a certain feeling.

[1] [https://youtu.be/dp-DRU24J18?t=1810](https://youtu.be/dp-DRU24J18?t=1810)

</comment></comment><comment><USER17> If this gets people making and playing with Raspberry Pi's — awesome.

Over 15 years or so I've built perhaps 9 or 10 MAME (later Retropie) cabinets because I enjoy iterating. Often I begin the cabinet in cardboard. Perfect way to prototype.

If you get people to that stage, the cardboard-aided-design stage, the next step (replacing with wood) is easy.

I think people who have never built anything of significance often find the very thought of it daunting and so never begin.

In fact, skip the cardboard, I would try to get people just to install RetroPie and play emulated games with just their USB keyboard.

Then you can move up to cardboard + arcade controls.

<comment><USER18> I agree with your progression, with a little more detail:

* emulators on your desktop * harware like a RPi and maybe add dedicated USB controllers * cardboard mock-ups (I use particle or panelboard for mounting the controls) * permanent version in wood, metal, plastic, etc.

FWIW, I find the screen bezels and access points (doors, etc) the trickest parts. Mock-ups let you experiment with the dimensions and size easily.

</comment></comment><comment><USER19> This is one of the coolest uses for a Raspberry Pi for those who just being introduced to them. I made something similar with them way back in high school and it really started to give me an appreciation for it.

As soon as the Raspberry Pi can run N64 (I believe they're a bit sluggish at the moment) and GameCube/PS2/Xbox (might take a while, but Dolphin is incredibly optimized at least) games well, that will be incredible. If you wanted something like that now, I think a cheap ebay pc would be the route to take, but I'm looking forward to the Pi's future.

<comment><USER20> I have a crappy model-or-two-old Asus Chromebox that runs Retroarch well and cost about as much as a Pi with trimmings back when I bought it new. Runs N64 just fine. 2GB RAM and a low-clocked dual-core Celeron. Actually with a RAM upgrade (doable) it'd make an Ok dev workstation if you avoid "webapps" and Electron and are comfortable with lighter editors rather than e.g. heavy Java IDEs, and can run your VMs and Dockers somewhere else. Admittedly a lot of caveats but would work for some people.

<comment><USER19> Old laptops are great for things that the RPi gets attention for. With a bit of hunting, you can get them dirt cheap, and the integrated monitor is a huge bonus.

<comment><USER20> The one thing I really miss using x86 boxes rather than Raspberries Pi is the dd-to-sdcard-and-boot workflow. Makes recovery easy, trivial to back up the exact software you're running on one. If the whole thing goes up in a fire, buy another identical Pi, write a new sdcard, and you're back in business.

But yeah, otherwise if you're not using the io features you get a lot more bang-for-the-buck buying used low-end x86 gear.

</comment></comment></comment></comment><comment><USER21> Since this turned into a show and tell [https://imgur.com/a/kNWxg](https://imgur.com/a/kNWxg)

</comment><comment><USER22> You can also get the actual arcade boards and cartridges relatively easily. LGR posted a video on his NeoGeo setup a little while back if anybody's interested in going that route.

[https://www.youtube.com/watch?v=7eqi30EJi3U&feature=emb_titl...](https://www.youtube.com/watch?v=7eqi30EJi3U&feature=emb_title)

</comment><comment><USER23> i built a mame machine in college and we loved that thing. it was just an ikea cabinet with an xarcade stick and a computer monitor hung on the wall with an old computer inside but man did we play that thing. I even remember ordering the MAME roms on a DVD set online and having them shipping.

i always dream of building a new one but its not like i live in a house with 5 other dudes have parties every night of the week like in college. would I play it? would my three kids (6, 3, 1) play it in a few years? just a pipe dream i guess. just for kicks i just loaded up golden tee fore 06 on my thinkpad and the sound still stutters, guess you still need a lot of oomph for the newer stuff

<comment><USER24> The design proposed by the article is very interesting - it's cheap and compact (in an amusingly humorous way, I find).

Considering it's not demanding in terms of space, it can be built and used as "filler activity" with children. While the geek's dream is certainly playing arcade games on a real-world cabinet for hours, with a child, it can be an activity to do more or less frequently on small sessions (e.g. half hour).

My very wild guess is that children should be able to enjoy arcade games when they're around 7+ years old - arcade games are on one designed to be quickly challenging, on the other, at home, they have virtually infinite lives; every child is different, of course.

On the other hand, a real PC with a couple of arcade joysticks, and maybe Wii remote controllers, is considerably more flexible, and can be a good test drive to see if the activity works :-)

<comment><USER23> very true. my six year old is way more into her tablet and the games there in than normal controller video games. she does enjoy a bit of sonic 2 but that's because she can race me on the screen and it doesn't involve much more than "go forward and jump over stuff."

as for the activity, i think much older than 6. my daughter would get very frustrated wiring the controller and all of the computer stuff would be way over her head. but i remember being 12-13 and installing Linux in the mid 90s so somehwere between 6 and 12 i guess kids get the patience to sit down and tinker!

</comment></comment></comment><comment><USER25> Fairly accurate USB clones of NES/SNES/Sega/etc controllers were about $20 on Amazon last time I checked. I have some for my Raspberry Pi.

They're great.

<comment><USER20> The NES and SNES classics come with _excellent_ controllers (side-by-side then with the originals and it's hard to tell the difference) and aren't hard to "hack" to run an expanded library. Disk space is limited but you can fit about as many games as a person's realistically likely to ever play on them.

There are adapters for the controllers but I've owned a couple over the years (to use the Wii Classic Controller over USB) and they barely work to begin with, then break after a bit, it seems. Dunno why.

<comment><USER26> Switch Pro Controllers are a bit spendy, but once you tape mod them to reduce D-pad mishits, they're as good as (first-party, non-counterfeit) Wii Classic Controllers ever were - I always favored those for Super Metroid speedrunning, and happily used their newer counterparts for the same purpose until my arthritis got to the point where it's no longer comfortable to speedrun with _any_ controller. In particular, I've found Switch Pro Controllers to work well with the Raspberry Pi 4's onboard Bluetooth. So that might be a workable option, if you don't mind spending a little more - that said, I've had the older of mine for something like five years now, and it's stood up very nicely so far.

</comment></comment></comment><comment><USER27> You can get unfinished cabinets of furniture grade plywood. I wanted mine to look like a nice piece of furniture (wife approved for living room), and it does, after much sanding, staining, and sealing. Extra modifications too, replacing plastic with glass and aluminum.

[https://youtu.be/rl0-a76yN0M](https://youtu.be/rl0-a76yN0M)

I don't see how a RPi is going to work that well. I'm running a 4k monitor at over 60 Hz (freesync) with CRT emulation, and it looks gorgeous. The bezel artwork looks like it was painted.

<comment><USER28> > _You can get unfinished cabinets of furniture grade plywood._

Mind sharing sources you'd recommend?</comment></comment>


Why Single-Tasking Is Your Greatest Competitive Advantage - <AUTHOR> https://blog.todoist.com/2015/09/01/why-single-tasking-is-your-greatest-competitive-advantage-plus-19-ways-to-actually-do-it/ <comment><AUTHOR> As a long time proponent of multitasking, and also an area I constantly struggle to become better at, this article gave me pause. Maybe the answer isn't about doing more at the same time but doing more better.</comment>


The new US administration's web savvy is going to make the rest of us look bad - <AUTHOR> http://www.change.gov

<comment><USER3> <meta name=Generator content="Microsoft Word 11"> Word? Really?

</comment><comment><AUTHOR> Admittedly it's a placeholder (under construction isn't very web savvy) - <USER2> it's coming.</comment>


Firefox Closer to Supporting Open-source Video Codec - <AUTHOR> http://news.yahoo.com/s/pcworld/20080801/tc_pcworld/149262 <comment><USER2> I'm not a video expert, but why aren't we focusing on the h.264 standard?

We will start to see h.264 decoding chipsets ("anytime now") so we can watch 1080p, why revert to a standard that makes it an additional transcoding step and not supported in hardware?

</comment><comment><USER3> We were fairly discouraged when the w3c took the Ogg codecs out of the HTML 5 drafts. I'm very happy to see the browsers are supporting them anyway.

Monty is hard at work rewriting the theora encoder we originally ported from On2. If the leaps and bounds we made with Vorbis are any indication, I think Theora is going to see significant quality and speed improvements.

<comment><USER4> Those HTML 5 drafts shouldn't have had in the first place ANY specification of a particular video codec, open or closed source - that would be restrictive.

<comment><USER5> Requiring a baseline open source codec wouldn't be very restrictive, any more so than the way standards set other requirements for wide interoperability.

</comment></comment></comment><comment><USER6> What chance is there that other mainstream browsers are going to support this codec? It's great for Firefox to get out in front, but when will IE and Safari follow?</comment>


The Hottest ICOs Are the Ones That Have Done the Least Amount of Work - <AUTHOR> https://www.bloomberg.com/news/articles/2017-12-12/want-to-issue-a-red-hot-ico-rule-no-1-is-do-very-little-work <comment><USER2> Least amount of work when it comes to tech. I assume they did quite a bit of marketing in order to get that popular.</comment>


Adobe's Deceptive Cloud - <AUTHOR> https://medium.com/@xavierlavallee/adobe-deceptive-cloud-7f0c820f0600#.hdbaqyicn <comment><AUTHOR> After reading the warning this morning about creative cloud and how hard it was to cancel, but I ended up buckling in for a journey of my own.</comment>


Send Better Automated Emails - <AUTHOR> http://b.lesseverything.com/2011/1/3/send-better-automated-emails

<comment><USER2> Honestly, when I read both versions of the e-mail, I liked the original better. It's not that I disagree with the author's recommendations, it's just that I think his execution didn't work too well with this particular example.

I'm not 100% sure what made me come away with that impression. I think he overdid the "make every character matter" part. For example, I intensely disliked the "and because we love you!" bit. Also, "Hi there" seems to me less fake than "Hello Friend". To top it off, the fourth step -- "Start to see the power of word to mouth marketing! " -- is yet another irritating, thinly veiled attempt to persuade me to "buy"; after all, either I truly participated in the beta and therefore I know what the site is about, or I didn't because I found out I didn't care.

All in all, I like the advice, but the example ended up being a counter- example.

</comment><comment><USER3> Calls to action in emails is not much different than calls to action for landing pages: Give people just enough information to take the action you want them to, and little else. Political campaigns and non-profits (at least from successful organizations) are pros at this. Most of the time it is a short teaser and a prominent call to action button. Back to the similarities, paragraphs with off direction sentences are not seen in landing pages, the trendy style is short content blocks of icons and a sentence, for an email the equivalent are bullet points/numbered steps.

Each email should have a well defined, ideally singular purpose, unless it is something like a newsletter, where the reader is more accepting of less relevant content before reaching the more valued information (and even that is not guaranteed.)

</comment><comment><USER4> Really enjoyed the ideas of breaking instructions into steps and offering subtle separators to prevent users from being overwhelmed.

...and just like his email suggestions, Allan's email was succinct and helpful.

</comment><comment><USER5> yeah besides the "and because we love you!," I liked the visual clarity of the second email.

Let's face it. We scan emails visually for clues as to what to read next. The step 1, etc. was much easier to comprehend, and the intro was two lines. That's what made the email great.</comment>


OSCON 2007 - Simon Peyton-Jones - A Taste of Haskell Part I   - <AUTHOR> http://www.bestechvideos.com/2007/08/09/oscon-2007-simon-peyton-jones-a-taste-of-haskell-part-i

<comment><USER2> I don't know bestechvideos.com, but there several good presentations at OSCON this year - including two other talks by SPJ. The O'Reilly page with the presentation files: [http://conferences.oreillynet.com/pub/w/58/presentations.htm...](http://conferences.oreillynet.com/pub/w/58/presentations.html)

The official video hosting: <http://oscon.blip.tv/></comment>


NumPy on Google App Engine? - <AUTHOR> http://code.google.com/p/googleappengine/issues/detail?id=190 <comment><USER2> That's really good news. lxml and PIL are also great addition.</comment>


The Most Expensive One-byte Mistake (2011) - <AUTHOR> http://queue.acm.org/detail.cfm?id=2010365 <comment><USER2> See also discussion here: [https://hn.algolia.com/?q=The+Most+Expensive+One- byte+Mistak...](https://hn.algolia.com/?q=The+Most+Expensive+One- byte+Mistake#!/story/forever/0/The%20Most%20Expensive%20One-byte%20Mistake)

</comment><comment><USER3> I find this article very interesting, but I'd still like to point out it is from 2011.

</comment><comment><USER4> Betteridge's Law strikes again.

No, null-terminated strings are fine. Rants against null-terminated string are a good way to spot nutjobs.

Null-terminated strings have virtues, such as being recursively defined: the tail of a string is a string. So strchr could be written like this (let's drop the const for simplicity):

       char *strchr(char *s, int ch)
       {
         if (*s == ch)
           return s;

         if (*s == 0)
           return NULL;

         return strchr(s + 1, ch);
       }

It's easy to break a string with delimiters into the individual pieces in place, just by writing nulls over the separating characters, and keeping a vector of pointers to the pieces. This can't be done with some other string representations like length + data.

When one null terminated string is a suffix of another (and ideally both are treated as immutable), then they can share storage.

      char *excon = "excon", *con = excon + 2;

Catenating null terminating strings is efficient if you keep a tail pointer. A repeated strcat-like operation will be O(N*N) of course, so don't do that in some critical inner loop, with a large amount of text.

Length + data strings have various disadvantages. For one thing, how wide should be the length? Two bytes? Four? Eight? If you make it two bytes today and store binary data somewhere, it will be incompatible with tomorrow's four byte length. And then there is endiannness. A binary file with strings produced on one machine will have byte swapped lengths on another. Null terminated strings can be blasted over a serial line or network, or written to disks, as they are; they are already marshaled and ready to go! (Though I must hastily acknowledge that this isn't true of wide character null term'd strings, of course.)

Dynamic strings (management record plus pointer to data) are heavyweight representations that will show their weaknesses at virtual machine boundaries. You cannot pass them between address spaces or share them without marshaling to some flat form and back.

Also, regarding another point in the article, MS-DOS did not invent the backslash as a path separator instead of the slash. This is a common misconception. MS-DOS supports both forward and backslash as separators! And so does Windows (every version between then and now). Early versions of COMMAND.COM had a variable whereby you could set this as a preference: whether you want to display and input path separators as slash or as backslash. This was later removed.

Today, when you have trouble with forward slashes in Windows, this is due to the application you are using (including, sadly that application known as the Windows Explorer, and its "Shell API"). The underlying kernel handles the slashes just fine.

<comment><USER5> Bingo: "Length + data strings have various disadvantages. For one thing, how wide should be the length? Two bytes? Four? Eight? "

<comment><USER6> That's easy, it should be of type size_t. Yes that is wasteful for short strings, but then again I believe null-terminated strings are the most widespread and worst case of premature optimization, and correctness & safety should take precedence.</comment></comment></comment>


Twitter is killing the newsletter - <AUTHOR> http://elliotnash.me/?p=33

<comment><USER3> Imagine this. I spread out my arms wide apart. My left palm represents reality. My right palm represents the dimension where the author of this article currently exists, but to get from left to right palm, you have to go one time around the globe.

This article is so far from reality, it's stupid. The data point is a single anectdotal one. There is no info on the data. There is no hint at all that twitter had anything to do with the decline - it could just as well have been birds pecking at the internet cables to all the subscribers houses and disrupting exactly those packets.

Totally biased in-the-bubble speculation, this blog post is not even wrong, it's just silly.

<comment><USER4> Every once in a while, I look at the comments before the original article, just to see how I'd like to proceed.

I'm not going to read this article because no matter how good or bad it is, it can't possibly be more entertaining than maxklein's assessment. I wish I could just hit an F key to post this review whereever I wanted, replacing "twitter had anything to do with the decline" with some context sensitive text.

<comment><USER5> Many of us do it like that, thanks for spelling ist out. We are a crowd, here on HN.

</comment></comment></comment><comment><USER6> Twitter is _not_ killing, or even changing, the newsletter, and we know this.

For almost 10 years I've watched daily and weekly newsletters go out for a few of my clients, and they attribute the _success of their businesses_ to these newsletters which are basically blog posts filled with relevant content that are emailed to lists that range from 1000 to 7000 people.

If you're click-throughs drop from 23% to 6%, you need to check if your messages are being filtered as spam, you need to rethink whether your content is relevant, and you need to double check the links in your email because they may be going through a tracking service that is breaking down.

My clients who send newsletters _have_ added Twitter to their newsletters in the form of a "follow me" button. The reason for this is because they post on Twitter when they've sent out their latest newsletter and use it to chat with their subscriber base.

Twitter is _not_ a newsletter replacement, but a tool that you could certainly use to enhance communications with your subscriber base.

</comment><comment><USER7> With regard to corporate newsletters and the like, I would be inclined to agree.

</comment><comment>=

The article here though does seem to show that a more focused newsletter can still be quite useful/valuable:

<http://news.ycombinator.com/item?id=865042>

<comment><USER8> In regards to corporate newsletters, this post was just as ridiculous. Twitter likely had nothing to do with the decline. He has absolutely no evidence indicating it in any way, other than twitter growing while the newsletter ctr dropped. Nearly everyone on earth gets email, and has an email account. Twitter's audience is minimal in comparison. But rather than say anymore, I'll just refer you to maxklein's comment above. He really nailed it.

</comment></comment><comment><USER9> Very very very very far from true. It definitely has the potential to at least be a just as strong supplement down the road, though I highly doubt it. Here are three key reasons why:

a) Email is the highest penetration of any utility on the web. Even more than search. (I know, i know, i need to find this source again, but it's not far fetched). Twitter is a blip on the radar in comparison.

b) Too much noise on twitter. When I read your newsletter, it's just me and your newsletter. That's it. Twitter is surrounded by other noise including lots of spam.

c) Twitter is the gateway, not the destination. 140 characters can't get enough across. It can certainly get a link across... which will probably be to the newsletter you just sent out.

<comment><USER10> I couldn't believe someone would post this "twitter is killing the newsletter" stuff the day after you posted that extensive post yesterday Jason... clearly they're not reading HN.

</comment></comment><comment><USER11> Well, Twitter+RSS.

If you're already getting updates as they happen then why on earth would you care about monthly ones?

It's already bad enough with newspapers (yesterday's news - today!) - <USER2> _monthly_ newsletters? Why would I care?

</comment><comment><USER12> When I get a newsletter that's under 140,000 characters, let alone 140, I'll buy it.</comment>


Show HN: Grow Twitter Followers Like a Hacker. No Code or Spam [infographic] - <AUTHOR> https://www.linkplugapp.com/blog/3-grow-twitter-followers-like-a-hacker-no-code-or-spam

<comment><USER2> You can't claim "No Code or Spam" and then say "Make a Bot."

<comment><AUTHOR> A bot that doesn't require coding.

We found that a carefully curated bot can be very valuable.

Included in the infographic are tips to curate the feed effectively(without future human interference or programming skills).</comment></comment>


Cassette tape culture - <AUTHOR> http://www.designboom.com/contemporary/cassettes.html

<comment><USER2> Cassette tapes were wonderful. They were eminently portable and could take certain kinds of beating, but they were also vulnerable. Unknown players might kill them with no warning or remedy--especially in-dash car players.

Making a mixed tape for a crush was an exercise in dj-ing and in precision. Dead space wasn't on; you had to fill the exact amount of time, 60 minutes or 90. Finding some of my old ones, given to me by friends and more, with their hand-drawn, carefully designed label and liner notes, was like finding letters from the past, carrying a heavy freight of memories... ahhh!

CDs degraded the experience by being more fragile and less portable (can't slip one in your pants pockets, for example). With the advent of the mp3 player, mixed tapes and cds died. I miss those things.

</comment><comment><AUTHOR> Remember the little holes at the bottom that were there to make a cassette "read only"? You could get around it by covering the holes with scotch tape or plugging them with bits of paper.

<comment><USER3> Remember TRS-80s and other old computers that used cassettes for storage? The Tandy CoCo could even play back audio directly through its speaker.

</comment></comment><comment><USER4> As a kid who grew up in the late 80's / early 90's, I'll always have fond memories of the miniature cassette tapes that had singles on them. Crappy quality? Yes. Awful colors? For sure. But it definitely appealed to the 5 year old me.</comment>


Ask HN: Did Netflix Just Delete All Your History? - o0-0o Yes or No? <comment><AUTHOR> [https://www.facebook.com/help/contact/268228883256323](https://www.facebook.com/help/contact/268228883256323)

</comment><comment><USER2> No</comment>


Fixing Finance: A Slice of Danish - <AUTHOR> http://www.economist.com/finance/displayStory.cfm?story_id=12855447&source=hptextfeature

<comment><USER2> It has a very interesting way to avoid a future mortgage crisis. The issuer of a mortgage must create a derivative bond for that mortgage and must guarantee the payments on that bond. The issuer cant duck responsibility for the quality of the mortgage by bundling it in a derivative package. If the value of a bond falls, the homeowner can buy it back.

It would probably take some kind of packaging mechanism to work in a market the size of the US, but it is certainly an interesting idea.

</comment><comment><USER3> Very interesting. A couple comments:

\- Is there any credit enhancement? Mortgage bonds didn't take off in the US until Fannie Mae and Freddie Mac agreed to guarantee timely payment of principal and interest on MBS they issued. Private label MBS got around this via overcollateralization or senior/sub structures. But these structures provided insufficient credit enhancement, and have been shunned by investors -- private label MBS are extremely illiquid these days and trade around 40 or 50 cents on the dollar, while Fannie and Freddie MBS remain among the most liquid securities in the world and trade near par.

\- Are there any facilities to combine the Danish bonds into a single instrument? In the US, a typical MBS is backed by anywhere from half a dozen to tens of thousands of mortgages. This makes them easy to trade for the large investors involved in the market. In the domestic MBS market, trades less than ~5mm are often punished for liquidity reasons -- you'll get a better price trading a ~50mm block. Liquidity would be tough if you can only trade pieces corresponding to a single mortgage.

\- The US already has MBS that are as creditworthy as the government's own debt. Ginnie Mae MBS are explicitly backed by the full faith and credit of the government.

\- It's a bit unrealistic to think that distressed homeowners could cheaply get out of their mortgage by purchasing the corresponding MBS for 40 cents on the dollar. The homeowners whose mortgages are in the most troubled bonds are subprime and alt-A borrowers who often are too credit impaired to refinance into an 80% LTV, 30-year fixed 5% prime mortgage. There's no way these guys could afford to buy back their mortgages. It's an interesting idea though.

<comment><USER2> What caught my attention is that the original issuer of the bond is responsible for the payments on the bond. I think that would be an incentive to avoid junk mortgages because they will come back to haunt the original bank. OTOH the repeated bank crises over the past 30 years indicate that their view is too short sighted to care.

</comment></comment><comment><USER4> "The second feature of the Danish system is that mortgage-holders can also buy the bonds in the market and use them to redeem their mortgages. This is useful if a rise in interest rates (or a fall in house prices) causes mortgage-backed bonds to trade at a discount. Redeeming their bonds allows homeowners to reduce the amount they owe. In America, for instance, mortgage-backed securities have fallen far below their fundamental value in thinly traded markets, partly because the people who would benefit most from buying them have no mechanism to do so."

Cool. A way for the mortgage-holder to hedge a bit.

</comment><comment><USER5> More detailed description of the model here: [http://www.realkreditraadet.dk/Mortgage_financing/The_Danish...](http://www.realkreditraadet.dk/Mortgage_financing/The_Danish_mortgage_credit_model.aspx)

</comment><comment><USER6> What prevents a cartel of home owners/buyers from taking out mortgages from a single small issuer, stopping payment en-masse, hoping to push the issuer into insolvency and drive down the value of those bonds and buy them on the open market?

<comment><USER7> Under the Danish system, it appears that seizing the collateral (in this case homes) is much easier and quicker when the borrower stops payment. Also, under the Danish system, the home owner must have a minimum 20% downpayment which they would lose in case of a default.

I think if we just had the simple 20% downpayment rule in the US, we would have avoided a lot of these subprime issues.

<comment><USER8> An important subject which wasn't touched in the article: In Denmark jingle mail doesn't exist: you cannot run away from your debt (they would just laugh and send the keys back to you), and if you seriously fail to pay your obligations, you're completely stopped from getting any kind of credit in any bank or shop.

This means that banks in Denmark doesn't end up with the debt as easily as they do in USA. So the Danish banks have lost money primarily on business loans and not private mortgages.</comment></comment></comment>


Ask HN: PHP, Django, or Rails? Oh my - <AUTHOR>

I'm working on a site that needs to be quick and secure.  I've done a lot of work with PHP but from experimentation it seems like Ruby and Django have some major advantages in terms of coding efficiency.  If you were in my shoes, which language would you go with?  I've tried to find a recent comparison but my google abilities have failed me tonight. <comment><USER3> My impressions from using both Rails and Django (more rails than django to be fair):

Rails - lots of good defaults and conventions that you will not need to change for quite a while. Often leads to the idea of Rails magic which can bite you occasionally. Django - more config up front, but you can sort of fine tune it to your own style and you'll get a better understanding of what's going on behind the scenes.

Rails really enforces a one controller method per resource action - so you have individual actions in your controller for listing, creating, updating, destroying, showing your resource. This is, in part, because routes are automagic in rails - simply defining a resource in your routes.rb will wire up all the CRUD routes with standard names you could wish.

Django doesn't enforce defaults in this respect - you create your urls yourself, defining them with regex, you name them as you wish and you point them to methods as you wish. You can, if you prefer, set up one method for a resource and control all the logic in that method (check for GET or POST, check if its in the db or not, save or update etc).

Rails and Django can both be thought to implement MVC, Django, however, doesn't name it as such - equivalents are: Rails Model - Django Model Rails Controller - Django View Rails Views - Django Templates

Rails will put each resource into individual files - one model per resource, one controller per resource multiple views per resource.

Django tends towards _one_ model file with all your models, _one_ views file with your "controller" logic, multiple template files for your front end.

Django has the concept of "apps" within a project - I find that separating a project into multiple apps helps keep code organised nicely - you can take this to extremes and have an app per resource if you wish or go for a more domain driven ideal and have an app per domain model.

Django is much more explicit - you will write many more import statements than in Rails, where you can go for days (dare I say projects) without doing so.

Rails has built in migrations, for Django you need a bolt on (south).

Rails is a "migration first" approach. Django is a "models first" approach. By this I mean Django has explicit model definitions that _you_ will write by hand. With Rails you will write a migration to define your models and let Rails create the explicit canonical version of your database definition (schema.rb).

With Rails, you'll quickly get sucked in to RVM or rbenv or similar to handle your ruby versions and gemsets. With Django, you'll use virtualenv.

I think the one you choose is basically down to how you view your code - <USER2> you go with Rails, fall in line with the Rails way and you'll be good to go. Don't try to buck the trend in the first instance and follow the community conventions - it's quickest to get going with rspec, even though the official docs use minitest/testunit for testing, just because there is more written about rspec out there, more examples in the wild etc. Django is great if you want more flexibility out of the box, but it comes with a price - you can tangle your code because you aren't guided quite as much as with rails. You'll spend more time considering your routing (this is good and bad).

From my perspective, I got more of an app up and running with Rails than with Django in an equivalent amount of time. But with Django I ended up with a more complete "map" of my app in my head than with Rails - for example, with Rails there's a kind of "I have a concept of books in my library, I want to add a new book so I click add....rails magic.....I end up in my new action in my controller and it (magically) renders my new.html.erb view" - the equivalent for me in Django would be "I want to add a new book so I click add and it hits my urls file and finds the route I've declared that points to my book_new function in views.py that explicitly renders my template". There's lots of Rails magic. But it's good magic. There's less Django magic, but that's also good. :)

By contrast, ASP.NET MVC is sort of inbetween the two - You declare your models explicitly, as you do in Django, it writes migrations for you from the models. The routing and view rendering is more akin to Rails than Django. However ASP version has strongly typed views (which really help with autocomplete) in contrast to both Rails and Django. It's actually fairly pleasant, though because C# is strongly typed, you'll end up with more code in general.

</comment><comment><USER4> I've been using some good frameworks in PHP such as CodeIgniter, Fuel, Zend, etc, but nothing can compare to Ruby on Rails.

A major advantage of ruby world is most open-source libraries and gems are actually usable and well written and maintained, whereas most PHP open sources are not maintained well or have a poor code quality.

</comment><comment><USER5> If you're strong in PHP, there's the Slim Framework[0] which I've used on a couple of sites. It's not a full MVC framework though, but there's always an ORM[1] to get what you need out of DB integration.

If you need a full MVC, then Django and Rails are both good.

[0]: <http://www.slimframework.com/>

[1]: <http://propelorm.org/>

</comment><comment><USER6> ASP.NET MVC? It's very fast, very secure as far as I know, very easy to develop (extremely good debugging tools) and it has the same coding efficiency advantages of ruby on rails (it's heavily inspired by RoR).

<comment><USER7> How well does it do under mono?

</comment></comment><comment> saiko-chriskun It's totally a personal preference. I'm more of a ruby guy, I have friends that are more python people. Try both and see what fits you better.

</comment><comment><USER8> Your only advantage is using the one you are familiar with.

</comment><comment><USER9> Use them all? Try them out and decide for yourself? I think you'll find we are in the lucky position where we have lots of options. Each option can be a viable solution, most stuff comes down to personal knoledge, experience and preference.

</comment><comment><USER10> Go with what you know. Just use a good framework.

</comment><comment><USER11> Rails. Enough said :) You won't get it till you use it.

<comment><USER3> really? The same could be said of any framework though.

<comment><USER11> The "Rails magic" you mentioned above can be very powerful with "Ruby magic" if you know how to use them well.

</comment></comment></comment><comment><USER12> vote for django.</comment>


How to protect the source code? - <AUTHOR>

I'm interested in learning what software companies are doing to protect their source code. Assume basic security measures (login, VPN, etc.) have been taken - are developers being prevented to "take software code away"? If so, how? <comment><USER2> If it's worth thinking about this at all, you may be better off putting something into your code that would reveal its use in an application.

I don't know if this is true, but someone once told me that a magic number used in the implementation of DoubleSpace helped Stac Electronics prove Microsoft stole their code - it was the birthday of the wife of one of the founders.

</comment><comment><USER3> employment contracts and/or non-disclosure agreements.

if someone really wants your source code and they have access to it, they'll take it. the best you can do is make their life a legal nightmare if they decide to use it in a way you don't want them to.</comment>


Js + Svg implementation of a Logo like language [2006] - <AUTHOR> http://web.archive.org/web/20080426161839/http://www.fragmentarisch.net/svg/drawingboard.php

<comment><AUTHOR> hi, i coded this in 2006, then it went the way of the dodo (thx to a time machine backup gone wrong) i just found it again via the wayback-machine.</comment>


Steal Million Dollar Homepage Pixels - <AUTHOR> https://pixelpirate.club/ <comment><USER4> Before anyone out there buys one of these domains for SEO-purposes:

I work as a technical-SEO consultant and we had the funny idea of checking all these domains about a year ago: None of them are worth buying! None of them has any SEO-potential!

\- the page-rank passed from milliondollarhomepage.com to these domains is minimal (huge PR divided through tons of links is worthless)

\- domains expired for a long time get some sort of "reset" from Google (we experimented with this - strong domains last used years ago do not rank faster than "fresh" domains)

Therefore, in the case of PageRank and SEO-potential: It is better to try to buy domains of local companies in your area that went out of business. These are much stronger.

And in general: Buying old domains for backlinks is a waste of time. Getting high-quality backlinks from legit sites and improving your own domain in regards to technical optimization and usability is much more effective - <USER2> scalable.

Edit: Improved formatting

<comment><USER5> > It is better to try to buy domains of local companies in your area that went > out of business. These are much stronger.

In your opinion, is this ethical?

<comment><USER6> Nothing about SEO is ethical. It's about appearing on google when you wouldn't under natural circumstances.

<comment><USER7> What Google has done over the years is thwart some of the scummy SEO practices by penalizing websites that do it; a big part of current-day SEO practices are to make your website conform to web and content standards. Basically, turn it into a decent site.

There's still the black market SEO where people hire spambots to send links, but that's been thwarted / voided by just adding a nofollow to links in user generated content like comments.

<comment><USER8> but then you wouldn't do "search engine optimization", but rather proper web engineering.

<comment><USER9> SEO has become an ambigous, all encompassing term. "Proper web engineer" is now a subcategory of SEO.

Also "proper web engineering" doesn't exactly roll off the tongue.

<comment><USER10> PWE -- peewee.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Whoa. Woke up to my project on the front page of Hackernews.

Obviously, this is kind of a dumb idea... but I tried to create it in the voice of a guy who really, really thinks the MillionDollarHomepage is most important thing in the world. Glad people are enjoying it.

<comment><USER12> Ha, Congrats :)

Also hello from Tempe as well! Are you still at GoDaddy? I'm a dev lead over at DriveTime. Always fun to run into folks in AZ here.

<comment><USER11> Ahh... right on! I'm in Scottsdale now. To me, it feels like we're starting to really make things happen in AZ, from a tech perspective. Lots of talented people are returning here to raise families, get some kind of work / life balance, etc...

</comment></comment></comment><comment><USER13> It took me a minute to figure out what this is doing... basically, it shows you which expired domains you can buy that bought pixels on the Million Dollar Homepage.

It doesn't really work all that well (most of the domains are still actually registered but don't resolve), but it's clever!

<comment><USER14> The ones I checked were all available.

The real question is, will the pixels be reloaded differently if you buy a domain and place a different image there.

<comment><USER15> Unfortunately no, the image is static: [http://www.milliondollarhomepage.com/index_files/image- map.p...](http://www.milliondollarhomepage.com/index_files/image-map.png)

<comment><USER16> My eyes. Hurt. Thanks for the reminder that the 90s of web browsing wasn't the panacea which appeared through my rose-tinted, nostalgia-enabling glasses.

<comment><USER17> Doesn't look significantly worse than a regular website with the adblocker turned off, tbh. At least the Million Dollar Homepage isn't animated, and doesn't auto-play sound.

<comment><USER10>
        <marquee>
        Both features were used <blink>heavily</blink> at the time.
        </marquee>

<comment><USER18> My favourite Easter egg: <marquee> still works in Chrome.

At least I _hope_ it's an Easter egg, and not left in to provide legacy support ;)

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> I actually had this idea a few months ago... this repo contains the full list of extracted domains, as well as a trivial script I used for checking domain availability.

[https://github.com/om3n07/MillionDollarHomepageDomainTravers...](https://github.com/om3n07/MillionDollarHomepageDomainTraversal)

</comment><comment><USER20> Isn't this what the SEO guys do to get their sites ranked? IIRC this trick is used to steal pagerank from expired domains and rank quickly on Google (though not sure if it works or not)

<comment><USER21> It is, and it does.

</comment></comment><comment><USER22> A million dollar homepage isn't cool. You know what's cool?

A billion dollar homepage by the same founder [1]

[1] [https://calm.com](https://calm.com)

<comment><USER11> Yeah... gotta give that guy props. To launch his career with something so ridiculous and bold as the MillionDollarHomepage would have been enough. Love it that he kept going!

<comment><USER20> This guy knows how to do PR and advertising properly to generate massive amounts of buzz.

There was this article about the MDH where he outlined the exact PR strategy including hiring one of the best PR consultant at the time (sadly I can't find it because I'm on a phone). Point being, the site wasn't an accidental success like a lot of people think it was.

Sure it wasn't 100% guaranteed to be successful as nothing is, but the launch and PR was done like an engineering project. No wonder he is doing it over and over.

</comment></comment></comment><comment><USER23> I wonder what kind of traffic the million dollar homepage generates, both daily now, but also in its timespan.

Regardless of the worth of incoming hits from tmdhp, I think this pixel pirate club is a funny idea and a blast into the past!

<comment><USER16> I guess what this is, is up to everyone themselves. For some, this is an art project while to others its a scam.

</comment></comment><comment><USER24> It is checking DNS resolution, not actual availability.

Here is a list of all the domains that are available (as of when this post had 2 comments): [https://pastebin.com/SXWzgxnH](https://pastebin.com/SXWzgxnH)

<comment><USER25> Actually, on the site there are 2 status information: availability AND does it resolve.

So, it is not just checking DNS resolution.

<comment><USER24> Well seeing as my checks against the registries yielded different results, whatever it is doing is not checking actual availability.

</comment></comment></comment><comment><USER26> I've registered entire defunct image hosts (back from the 2000s) - <USER3> thousands of existing old image links. Need to do something interesting with those when I get the time.

<comment><USER27> anything in mind?

<comment><USER28> Serve goatse for all links

<comment><USER29> Classic

</comment></comment></comment></comment><comment><USER30> If you're looking for SEO value... there's a fairly easy way to check a list of domains. Use the Majestic.com 'bulk backlink checker', and sort by Trust Flow. You'll want to find domains that have a higher TF than CF.

Also keep in mind that many of these domains might not have SEO value, but they may actually have email value (they're still getting emails) which can be monetized.

<comment><USER31> How would you monetize the emails?

</comment></comment><comment><USER32> Interesting and fun project! Also kind of surprised to see this on HN as I recently launched a vaguely similar project (1$ = 1 pixel in a website image), but raising money for charity and designed around a marriage proposal instead of mere advertising.

</comment><comment><USER33> I'm more interested in the domain name being displayed as several skull and crossbones icons in iOS.

I didn't know icons could be used in a url.

<comment><USER34> Yes, you can use most Unicode in a domain name these days, by using Punycode, but not all browsers support it. In this case, "xn--h4haaaa.ws" displays as "<5x skull-and-crossbones emoji>.ws" in certain browsers, including iOS Safari.

This site is using a bit of clientside JS [1] to automatically redirect the user from "xn--h4haaaa.ws" to "pixelpirate.club" and vice versa, depending on if your browser supports "Emoji domains" [2].

[1] [https://github.com/jonroig/emojiurlifier](https://github.com/jonroig/emojiurlifier)

[2] [https://en.wikipedia.org/wiki/Emoji_domain](https://en.wikipedia.org/wiki/Emoji_domain)

<comment><USER33> Thanks. I suspected the redirect I saw might be related to that since the domain name above obviously wasn't the same thing I was seeing.

</comment></comment></comment><comment><USER15> Thanks for sharing, OP. Just sniped one, it'll make the perfect birthday gift.

</comment><comment><USER35> If anyone was wondering about if people would actually pick these up when this page first hit the front page with no comments, there were 209 domains available. Now ~12 hours later there are 74.

I nearly got when when I first saw them, and there was more availability, but couldn't think of any use for one so held off. I really should have logged all of the domains, and seen if anyone puts anything interesting up on them.

</comment><comment><USER36> Pirate? Who will guarantee domains will stay the same?</comment>


Show HN: Food Finder – a place for foodies to find and share amazing restaurants - <AUTHOR> http://www.foodfinder.io

<comment><USER2> Nice idea, but you failed to do your market research properly and identify the hundreds of competitors in this space.

Good luck though.

<comment><AUTHOR> I aiming for Food Finder to be differentiated from the competition - I am a big fan of City Mapper and so I am trying to mirror their concept of incredibly simple UX but applying that to restaurant discovery.

</comment></comment><comment><USER3> And it might help to tell people that you only cover locations in the UK, and apparently only near London.

<comment><AUTHOR> That's my bad - I should have included that in the title. Eventually we'll expand to other major cities.</comment></comment>


Show HN: IO – A minimalistic and anonymous editor - <AUTHOR> https://bold.io <comment><AUTHOR> Hello!

IO is an experiment. It's a free, lightweight editor for creative and authentic publishing.

It's extremely easy to use and allows you to publish anonymously, under a pseudonym, or as yourself. Our vision is to make writing and sharing your thoughts easier than ever. The editor is a little rough around the edges, so be gentle (many improvements are on the way!). We plan to build on this idea in the coming weeks and months.

This is your blank canvas.

This project (started only a couple weeks ago!) is brought to you by a very small team. We have much more to come in the near future! Meanwhile, please email me at email@example.com if you have any questions/suggestions or just want to talk product. :-)

Meanwhile, kick the tires at [https://bold.io](https://bold.io) today, bookmark it for later and publish freely any time.

More info: [https://bold.io/about-io-2016-12-06](https://bold.io/about- io-2016-12-06)

P.S., this link is fun: [https://bold.io/random](https://bold.io/random)

</comment><comment><USER2> Fun - I like the assistants! But: how do you share an anonymous IO page with a link ... anonymously (other than the random link)? What's the difference between creating a pseudonym on twitter and also a pseudonym on medium etc.?

</comment><comment><USER3> I like it! :) Should be able to save to a local file though...

</comment><comment><USER4> Slick! Lovin' this concept. Thanks!</comment>


Ask HN: How to join a startup after college as a liberal arts major? - <AUTHOR>

It seems like everyone is looking for rockstars. What if you're just "hacker friendly"? <comment><USER2> It's not impossible but pretty unlikely that you're going to be able to join something really early-stage as a liberal arts major fresh out of college.

Join a larger startup that needs people to do joe jobs - customer support, account manager, etc. Suck it up, work your ass off, learn all you can, and get yourself promoted to something interesting. (Larger startups are still fairly fluid - at least compared to the broader corporate world.) Product management worked for me, but your experience might vary.

Once you've got a couple years of experience, and you've done something a little more meaty than entry-level work, you'll have something more to offer an early-stage startup.

</comment><comment><USER3> Liberal arts like geography, anthropology and philosophy give you an excellent foundation for information architecture, business ethnography, user research and business analysis. A startup that's doing customer development instead of building something arbitrary should find those skills invaluable as long as you present them the right way.

EDIT: I graduated as a Geography major, with the pitch being that cartography is a very skilled form of information architecture and interaction design, as we use maps both as art and as a useful, tailored tool; geographic information systems mean I have experience working with demographics, statistics and spatial analysis; multiple anthropology courses mean I can research and present analyses on both the developing internal business structure and on our customers; philosophy means I can think critically.

</comment><comment><USER4> Hey deafcheese, I wrote a pretty comprehensive post on this topic a while back. It's specifically geared toward helping students find non-technical jobs. [http://www.jasonshen.com/2010/get-a-startup-job-out-of- colle...](http://www.jasonshen.com/2010/get-a-startup-job-out-of-college/) Also, here's some more info about the kinds of non-technical jobs you could get: [http://www.jasonshen.com/2010/what-kinds-of-jobs-exist-at- st...](http://www.jasonshen.com/2010/what-kinds-of-jobs-exist-at-startups-for- non-technical-people/)

</comment><comment><USER5> As an employer, the question I'm always asking is this: What value do you bring to my company?

When I get a generic CV I'm getting told what qualifications the person has, but rarely am I told what they might do for me to justify their wage. What skills do you have? Why are they useful to my business? Why will employing you make my company more valuable?

If I take funding for my company, the level of funding indicates a valuation of the company. If I take on an employee I'm saying that the value of the company rises by about 5 times their salary.

It's the same with a startup. How do they know you can do things that they will need done? Answer that question, directly, without hesitation, and with convincing examples, and there's a good chance they'll take you.

</comment><comment><USER6> I think a liberal arts major can be an exceptional strength to a growing company. Great code monkeys/hackers are quite common, but if you have a liberal arts background, with science background AND are hacker friendly, imho is a great asset for an established company.

</comment><comment><USER7> If you have a major in philosophy try your hand at programming. After all, an undergraduate degree in philosophy usually comes with familiarity with a bunch of different logics and logical languages, you will have an advantage in understanding programming languages at a much higher-order level than your average computer science student who bashes through their degree for reasons economic.

</comment><comment><USER8> Bring something to the table. It doesn't really matter what it is as long as it is valuable to the team in some way, shape or form.

</comment><comment><USER9> What do you want to make that other people want enough to pay you? This question is important no matter how large the company is.</comment>


Machine Learning Trading, Stock Market, and Chaos - <AUTHOR> http://iknowfirst.com/machine-learning-trading-stock-market-and-chaos <comment><USER2> From the conclusion:

"I Know First has created an algorithm that is able to make accurate predictions of the stock market and has been able to use it to greatly increase the return on investments for their clients."

Which sort of begs the question as to why you would need clients, since you have an algorithm that makes accurate predictions of the stock market. Once you had that, I'm not sure why you'd go looking for clients - I'd think you would just print money.

<comment><USER3> The algorithm is good, but it doesn't make really accurate predictions of the stock market yet. According to the article:

"By using this predictive algorithm, I Know First's 2015 portfolio outperformed the S&P 500 picks by an impressive 96.4% margin."

So it did better than those S&P 500 picks from some other investment agency. Which doesn't mean it is accurate. If the S&P 500 picks had a profit of 5%, then the algorithm did 96.4% better so almost a 10% profit. That's not really like it's printing money.

</comment></comment><comment><USER4> This is just a lot of buzzwords strung together in no particular order</comment>


Ask HN: How to overcome failure? - <AUTHOR>

You put your heart and soul into a project, but then it fails. How does one overcome the fear (or whatever you want to call it) of failing again? <comment><USER2> This is a kind of polarizing answer. It seems like people that understand it, just understand it, and people that don't, don't.

But the answer is balls (or courage/bravery/confidence). I fail at stuff every day. If I let it affect my mood I'd be pretty F-ing depressing to be around. I don't want to be depressing to be around.

The one thing you have complete control over and costs you absolutely nothing is your attitude. So grow up, stomach your losses, and move on to the next project.

So you failed. Big deal. You still have a roof, clothes, and food. Time to get past it and keep moving.

I can't remember who said this, but I am going to do a hell of a paraphrasing job.... If you live periods of your life in misery, when you remember back to those times, all you'll remember is the misery. The misery robs you of great memories you could otherwise be making.</comment>


Sorry, but Silicon Valley Isn't Special Anymore - <AUTHOR> https://medium.com/@bloomberg/sorry-but-silicon-valley-isnt-special-anymore-d36699199214 <comment><USER2> Start ups that successfully started up a while ago are no longer startups. And working at a successfully started company isn't like working at a startup. Brilliant! The author must not have heard about all the other companies in the valley, probably because they are, after all, start ups.

I'm thinking of opening a charity to take journalists on field trips. Not necessarily very far, just out of their cubicles so that their articles might have some point of reference to the real world.

<comment><USER3> Yes! What bugs me even more... a few tweets does not an article make.

</comment></comment><comment><USER4> I love the implicit assumption that someone working on one of these companies projects actually works for the company, and not a third party.

The conceit of the article falls apart when you realize it's not up to Google, but the 3rd party to fulfill the 'expectations' of working at a modern software company.

And how 3rd party companies like Milestone or Vaco keep these contracts is beyond me. Maybe it's intentional wack-a-3rd-party, so the adjunct worker can't feel permanent?

</comment><comment><USER5> > Story for Medium members only

Is this new?

<comment><USER6> yeah thats weird/horrible, just didn't bother reading it or signing up</comment></comment>


Ledger, a command-line accounting system - <AUTHOR> http://www.ledger-cli.org/index.html <comment><USER3> I've been using Ledger for almost nine years, both for my personal accounts and now my business accounts. I wrote some introductory articles about it, and further articles about how I use it day-to-day:

[https://www.petekeen.net/finance](https://www.petekeen.net/finance)

<comment><USER4> Have you ever thought about using a natural language interface with ledger? For example, the Mac/iOS calendar app Fantastical lets you create an event by typing or dictating a sentence like "lunch with mike at 2 on Tuesday at Wendy's", and the app will parse the input to create an event with the right parameters.

I ask after reading your vacation write-up. Seems like the input side could have been a lot easier if you had a speech or text NLP interface to ledger. "$10 entertainment expense paid from MasterCard today," for example. That could be the holy grail for people who are not inclined to keep a detailed ledger, or for situations where input is difficult. (Theoretically you could email/iMessage/SMS/slack that string and have it picked up by your ledger file.)

<comment><USER3> Ledger sort of has that built in, actually, but it only works if you have a similar transaction in the past. For example, I can say this on the command line:

      $ ledger xact 11/5 mcd dinner 10.55

and ledger spits out

      2015/11/05 McDonald's
          Expenses:Food:Dinner          $10.55
          Liabilities:Credit Card

This falls down when you're traveling to new places, because in the command `mcd` is just a regex that matches on the payee.

<comment><USER4> Interesting, thanks. I had in mind a system that would basically regex match a string and add an entry to the ledger (similar, but it would probably be a bit more flexible than the built in system).

Separately, I saw you have also worked on a similar system for food logging. That got me thinking...what else could you track with a plain text file in this format? Fitness/workout info came to mind, as well as rewards points, sleep tracking, any others? Would be cool to have a single system to track all these things, which could be linked up to APIs like Fitbit, myfitnesspal, etc.

<comment><USER3> I don't use that system anymore, actually. I switched to LoseIt, primarily because of the extensive food database. Most of the time I can just scan a barcode or search for a particular thing and it's in there.

Convenience trumps plain text in this case because, unlike with finance, there's no bank statement to refer back to if you fall off the data entry wagon for a day or two. That data is instead just completely gone.

</comment></comment></comment></comment></comment><comment><USER5> I use and love ledger, and wrote a Ruby wrapper a few years ago called reckon that applies Naive Bayes to your bank CSV (kind of link Mint.com) and outputs a ledger input file.

[http://blog.andrewcantino.com/blog/2013/02/16/command- line-a...](http://blog.andrewcantino.com/blog/2013/02/16/command-line- accounting-with-ledger-and-reckon/)

<comment><USER6> Thank you thank you thank you!

<comment><USER5> You're welcome :)

</comment></comment></comment><comment><USER7> I've used ledger for years, but it's not a 'real' double entry system, despite what the manual says. It's more halfway between cash and double entry. The 'auto balancing' for example, which is sold as its big feature, doesn't make sense from a double accounting perspective - the whole _point_ is to not have it be 'auto'. Other basic things are missing - the difference balance and profit/loss accounts, for example. It's fine for personal and small business accounting, but if you've had training in real accounting some things will be confusing (because of terms meaning something else) and don't expect your accountant to be able to work with your reports if you haven't set up your system in cooperation with him/her.

<comment><USER8> you don't need the auto balancing.

You could definitly write: 2015/10/12 Exxon Expenses:Auto:Gas $10.00 Liabilities:MasterCard $-5.00 Liabilities:Visa $-5.00

It's still valid. However it would fail if you put a 5 and 4 here if your expense is 10.

I'm still not sure how it decides between active and passive (since Expenses and Liabilities could also be other words like the german ones: "Ausgaben", "Verpflichtungen" and the program works with them, too but It can't know if its active or passive. so I don't know what would happen if I make a transaction on two aktivas, like Bank to Cash or Bank to Fund)

<comment><USER9> Ledger doesn't differentiate between active and passive, it just makes sure the transaction balances.

</comment></comment></comment><comment><USER10> I wrote a small, single-script clone in Python:

[https://github.com/danpat/uledger](https://github.com/danpat/uledger)

I wanted to be able to group all my assertions together. This means the assertion needs to be able to retroactively calculate the balance on a given date. ledger-cli's assert doesn't support this. hledger does, but, well, I'm not a Haskell guy and the whole Haskell ecosystem seemed...cumbersome...to install.

uledger supports a useful-to-me subset of ledger-cli, primarily nested accounts, multiple currencies and out-of-order assertions and transaction entry. It has a bunch of tests and a very simple web balance interface. My favourite feature is the accounting-equation balance feature:

        2015-01-01 Opening Balance
                Equity:Owners Contributions   $-100
                Assets:Bank                   $100
        2015-01-01 Buying widgets
                Liabilities:Credit Card       $-50
                Expenses:Parts
        2015-01-03 Some Income
                Income:Consulting             $-200
                Assets:Bank                   $200

        assert balance 2015-01-02 Expenses  $50
        assert equation 2015-01-04 Assets - Liabilities = Equity + Income - <USER2>

Feedback/patches welcome.

</comment><comment><USER11> as a side note: both ledger [0] and hledger [1] support time tracking/keeping. of all the various tools I tried to use for personal stuff it has been the most convenient one for me (it helps that I also use it for accounting) and I'm using it consequently from day 1 on! you can apply the same reporting/balancing to your time keeping as you do to your accounting.

[0] [http://www.ledger-cli.org/3.0/doc/ledger3.html#Time- Keeping](http://www.ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping)

[1] [http://hledger.org/manual.html#timelog](http://hledger.org/manual.html#timelog)

<comment><USER12> See also t [0], a script for working with ledger timelog files.

Now for a script to generate invoices from the timelog...

[0] [https://github.com/nuex/t](https://github.com/nuex/t)

</comment></comment><comment><USER13> And the author/maintainer of Ledger just became the maintainer of Emacs, just today!!

<comment><USER14> Any announcement/mailing list link regarding that ?

Edit: Found that: [https://lists.gnu.org/archive/html/emacs- devel/2015-11/msg00...](https://lists.gnu.org/archive/html/emacs- devel/2015-11/msg00118.html)

<comment><USER15> Congratulations to John!

I found his first answer in the thread interesting (he talks about his interaction with RMS.)

</comment></comment></comment><comment><USER16> Been using ledger for 9 years as well (hledger lately.) Never have a hitch. The only complaint I have is that I can't (easily) keep AR in sync with online invoicing software. minor though. Would love to have some git-style integration with my bank and other accounts. `ledger pull savings` or `ledger pull invoices`

<comment><USER12> I like that interface idea. There is ledger-autosync (in Debian and on GitHub[0]), which should pull transactions from with accounts with OFX. I haven't tried it as none of my accounts are reachable through OFX.

[0] [https://github.com/egh/ledger-autosync](https://github.com/egh/ledger- autosync)

<comment><USER17> If your bank supports OFX/QFX download, you can still use ledger-autosync. You can manually download as many transactions as you like, and it will only import the new ones.

</comment></comment></comment><comment><USER18> Previous discussion: [https://news.ycombinator.com/item?id=7707262](https://news.ycombinator.com/item?id=7707262)

Unaffiliated with, but an extremely pleased user of [http://www.youneedabudget.com](http://www.youneedabudget.com).

<comment><USER8> accounting != budget management

accounting is more a business thing. all accounts needs to be balanced ie you always needs to have zero.

<comment><USER19> YNAB is both. It's a double-entry budget management system.

<comment><USER3> YNAB is not double-entry. In fact I interviewed with them one time and they asked me how I would design it, and I started outlining how I run my ledger- based YNAB-like system with double-entry accounting. Their response was something along the lines of "wish we had thought of that, it would have been easier."

<comment><USER20> Wait, it isn't? My understanding of double entry is that asset moves across accounts are recorded in both accounts, so if I were to, say, pay a credit card bill, I show a debit from my checking account and a credit to my card account.

Is this incorrect?

<comment><USER7> You'd do the same in cash accounting. Otherwise you're recording wrong values, as compared to the actual account statements. Double entry means balancing active and passive sides for all activities, asset and debt. When you buy a laptop with a credit card, you add (for example - the details depend on legal requirements, how much detail you want to capture etc) an entry with 1000 on the passive side, in the cc account, 500 on the active side (asset it's not worth what you paid for it any more) and 500 under depreciaton. Then when you pay the bill, you reduce the cc account and the checking account. Each of these operations individually are balanced, ie they sum to 0.

<comment><USER8> that's in fact the way I learned it and ynab doesn't look like it. however I didn't seen many people who use double accounting for their personal budget? maybe i didn't seen enough people yet, since it looks like that a lot of hn'er using double accounting...

<comment><USER7> Double accounting for personal budgets is too much overhead, which is why ledger is a nice middle ground. I doubt many ppl reading this use double accounting for their personal finances - by the time you need that, you'll have someone else do it for you, and they won't be dicking around with ledger...

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> There's another open source project worth checking out called BeanCount. The author, Martin Blais, originally wrote it in Python to serve similar double entry bookkeeping needs as those from the ledger-cli community. He seems to be continuing development of it, or at least porting portions of it (plugins?) to a variety of languages.

homepage: [http://furius.ca/beancount/](http://furius.ca/beancount/) source: [https://bitbucket.org/blais/beancount/overview](https://bitbucket.org/blais/beancount/overview)

</comment><comment><USER22> (Coming from a Windows background) I often wonder what the appeal is to something like this.

(Seriously!) Why would you use something like this over say a spreadsheet? Is it really much easier than opening a browser and running Google Docs???

<comment><USER23> Over a spreadsheet is an easy sell - dual-entry accounting is an absolute revelation.

Over the many good GUI dual-entry accounting programs, I'm not so sure.

<comment><USER24> Well something like quickbooks its much more transparent and Ledger isn't constantly trying to upsell you some service :-) Agreed on the spreadsheet, its balance checking is really the key feature here that spreadsheets don't do.

The simplicity of simple text files means you don't have to worry about your files not being readable by a future you. Which is not the case of every 'gui' dual-entry accounting system to date. Seriously, pick any system you could have used in 2000 and figure out if you can read its files now.

<comment><USER25> Ledger also isn't bribing Congress to keep the tax system complex enough that you need Quicken or HR Block.

I won't touch anything from Intuit.

</comment></comment></comment></comment><comment><USER26> Heard about it and never really used it, should I start with ledger or hledger these days? any suggestions?

<comment><USER27> 90% of the features overlap. Depending on your particular needs, one or the other may be preferred, e.g. multiple currencies. I use hledger for the Haskell street cred. ;)

edit: [http://hledger.org/faq.html](http://hledger.org/faq.html)

<comment><USER26> Thanks. Looks like ledger does multiple currencies but hledger did not mention that in its features list. Will probably start with ledger then.

<comment><USER27> I was wrong about that particular feature, hledger calls it "multiple commodities" instead.

</comment></comment></comment></comment><comment><USER28> I have been using Ledger for a long time and it has really been a wonderful tool. The reports are great. I even made a little Python script so I can easily make entries from terminal on my phone!

<comment><USER29> Would you elaborate how that works? I'd love to make entries from my phone.

<comment><USER28> Sorry, I am not used to commenting here and didn't realise it wouldn't notify me.

I use Prompt by Panic [http://www.panic.com/prompt/](http://www.panic.com/prompt/) on my iPhone to do SSH sessions. Since it was hard for me to type in entries to my Ledger data file I put together a script with Python that could have stored merchants and just sort of make the process easier.

I can type in `ql -m sd -t 50` and it will add a full entry for the grocery store that I frequent. The project on Github is here: [https://github.com/robotmachine/QuickLedger](https://github.com/robotmachine/QuickLedger)

To clarify, it is just a command line tool that I made with mobile SSH in mind-- not a mobile app. Hope that helps.

<comment><USER29> Thanks a lot, looks cool! At the moment I'm using Nebulous Notes to write to a "mobile" ledger, then I merge that to the main ledger. This has the advantage I can add entries also offline. I'd love to move something more automated though and your project might definitely help. :)

<comment><USER28> To my knowledge I am the sole user of my QuickLedger project -- so I'd be very interested to hear how it works for another's use case. Any feedback would be great! If you fork I'd like to know so I can see what someone does with it.

<comment><USER29> Sure, will do! In the meanwhile, I randomly discovered the awesome Pythonista ([http://omz-software.com/pythonista/](http://omz-software.com/pythonista/)).

Pythonista would make possible to run QuickLedger on the mobile, and it could be expanded to automatically update the main ledger, hosted on another machine or on some Dropbox-like container.

</comment></comment></comment></comment></comment></comment><comment><USER30> Is it possible to attach a receipt (say scanned PDFs) to a Ledger entry? I am interested in ledger, would like it to be the accounting system for my side business, a bit more bookkeeping feature such as the receipt attachment would be great for tax filing purpose.

Edit: I know that Ledger uses plain text for each entry. Though I kind of wonder how do you guys keep those receipts.

<comment><USER31> We use Ledger for all of our accounting (it's not too much... yet) and we've been using comments in Ledger to keep track of our receipts.

Example:

        2015/02/05 Clipper Card
            Expenses:Transport:Public Transportation               $20
            Liabilities:Reimbursement:Zach Latta
            ; Receipt: 52fae6a40afaf2a79bfdef92f5e1b6d3.pdf

Each receipt filename is <md5 hash>.<extension> and they're all tracked in a private GitHub repository.

Here's a link to our repo with more examples: [https://github.com/hackedu/finances/blob/master/main.ledger](https://github.com/hackedu/finances/blob/master/main.ledger)

<comment><USER32> I do something similar, although I name my receipts/documents with yyyymmdd- friendlyname.pdf for ease of lookup.

For my IT consulting business, I also wrote a wrapper that rejects entries that _don 't_ have a receipt tag which allows me to catch any entries that I haven't complied 100% with my practices (and tax office won't get upset in an audit).

I also autogenerate the ledger entries from the receipt name (and prompt for description/expense account/$$ with logic for handling common items like fuel etc).

I've played with PDF metadata so my entire receipt scanning => ledger is automated from just the PDF document but haven't reached a satisfactory setup there.

</comment></comment></comment><comment><USER33> I've used Ledger extensively for a side business as well as for timekeeping for work. It's incredibly powerful and incredibly unforgiving.

If you want to keep PDF, JPG, etc. receipts with it, just put them in the same directory and note them in a comment. Additionally, use a VCS that does binaries well. Git does not.

<comment><USER34> Your "unforgiving" comment is actually exactly what makes me nervous about using this (a command line util) vs a GUI application. I feel like (and this may be a total misconception) my poor typing abilities are better caught in a GUI than cmd line, unless the application itself has something built in (like git's fuzzy commands), where most UI applications, at least on Mac, are sort of validated by the OS level field validation.

<comment><USER9> Ledger has a 'strict' mode, where you basically pre-define the accounts you plan on using. That will at least stop you from typoing account names (perhaps like a pre-populated drop-down list in a UI?). Manual entry errors (too many/not enough zeros) are probably just as easy to make on the CLI/in a GUI though.

</comment></comment></comment><comment><USER35> This is very interesting. I'm involved in an open source project to create a Ruby gem to extract bank data from multiple banks and offer it via a CLI and a Ruby API. We fetch the data either from bank APIs (which often we discover through reverse engineering of mobile apps) or simple web scrapping.

[https://github.com/bankscrap/bankscrap](https://github.com/bankscrap/bankscrap)

The project is still under heavy development but we already have support for 3 main banks in Spain. We also have managed to integrate it with Slack and other apps.

I am sure we can learn a lot from the Ledger CLI.

</comment><comment><USER36> I have been very interested by ledger lately, is there a wrapper, somewhere, that would ease interactions with my bank account and/or allow me to plot reports graphically across time?

<comment><USER37> Yes, see this comment: [https://news.ycombinator.com/item?id=10510608](https://news.ycombinator.com/item?id=10510608)

</comment></comment><comment><USER25> A number of people here say use a VCS with ledger.

When do you commit? After every entry?

And do you have branches?

<comment><USER3> I have this particular repo set to push when I commit, so I commit when I'm done doing data entry for the session. When I push my reporting web app automatically updates it's postgresql database so I can go run reports and look at the data.

</comment></comment><comment><USER38> I used ledger-cli, but as I constantly deal with several currencies, I can't rely on it. Unfortunately, none of the open source accounting system I know support multi-currency accounting well.

<comment><USER39> Ledger deals with multiple currencies quite well in my experience, especially using a custom prices.db file. What is the problem you are having?

<comment><USER38> After currency exchange transactions it doesn't balance.

<comment><USER40> It can be done, but it is tricky, especially if you have to report capital gains as FIFO. The documentation is in ledger is misleading/wrong (or was the last time I looked). I have been meaning to write a blog post on this topic for ages (a year???).

Warning: This may be wrong. I just grabbed it randomly out of a test file I was using to try this out and I don't have time to verify it. However, I think it will put you on the right track even if it is wrong (also not sure how to get it formatted correctly here). Anyway this is the kind of thing you have to do:

      2014/09/04 Exchange Currency
        ; Note that the next line generates 20 GBP, not 10 GBP as you might expect
        ; This is so that the excess is captured by the capital gains account at the bottom
        ; Also note that the @ 0.50 GBP is not actually used by ledger in this case
        ; You could put @ 5000 GBP and it would do the same thing.  The rate is
        ; determined by the lot price.
        Assets:CDN                   -20.00 CDN {1.00 GBP} @ 0.50 GBP
        ; It is unfortunate that you can't get ledger to calculate or assert the next value
        Assets:GBP                    10.00 GBP ; Proceeds without commission
        Expenses:Commissions           0.20 GBP
        Assets:GBP                    -0.20 GBP ; Balance the commission
        Income:Capital Gains

The main things you have to understand are that you need to specify the lot price in the transaction. Second, you _must_ specify the price of the transaction. The P line is only used for calculating current value -- it will _not_ set the price of the transaction correctly (if you don't specify it, I think it sets it to whatever the P line is set to when you run the report, which is clearly wrong). Also, you have to calculate either the total proceeds for the balancing account _or_ the capital gains. Also, very unfortunately, with this scheme you can not use the @@ method of specifying the price. I do the math and calculate the result and let ledger calculate capital gains, because that seems the most reasonable thing to do. Some people feel very strongly that a human should calculate the capital gains by hand and enter that value. Either way should work.

Hopefully the above should unstick you. If you are using average method for capital gains, it is dramatically simpler, but I don't have an example handy.

Printing reports with the lot prices is incredibly useful as the lots should balance out to zero. If they do not, then you have an error somewhere (and boy does that suck). It's also very frustrating when doing FIFO or LIFO that you constantly need to run the report to show you how much you have left in each lot, and then go and figure out which lots are the next ones to use. I think this can be automated, but I haven't gotten around to doing it.

<comment><USER38> BTW, will it balance if I want report not in GBP or CND, but in some other currency I use?

<comment><USER40> Yes it will. The trick is that the currency you use for capital gains always has to be the same. Also, my colleague mentioned that you might be trying to do this without recording the capital gains. You have to have a capital gains account, or else it will not balance. You can report in any currency you want with the -X flag.

I'm busy for the moment, but I will send you email tomorrow with some better information. I'm GMT+9 so depending on where you are, probably while you are sleeping ;-) It will get me off my butt to write a blog post about it.

</comment></comment></comment></comment></comment></comment><comment><USER41> There is also a nice php based simple accounting app for those looking for a slightly modern user interface.

[http://webzash.org/](http://webzash.org/) [https://github.com/prashants/webzash](https://github.com/prashants/webzash)

</comment><comment><USER42> the tool looks great, thanks for the tip.

To whomever is using it, do you also capture VAT in ledger? VAT reporting is something I would also need.

</comment><comment><USER43> I like the idea of using ledger-cli for automation, but honestly, this needs a web-ui.

<comment><USER44> Unlike all GUI apps out there, this one gives you the ability to write one, using the interface as an API. Go for it!

</comment></comment><comment><USER45> It's got a high hack and giggle factor, but obviously horrible usability for anyone off the command line - which includes your accountant/tax advisor.

Here in New Zealand essentially every start-up uses Xero - a SaaS accounting system that works extremely well and now has over 600k paying customers. It means one set of data, permanently in the cloud, and a host of integrations to other players.

Founders open up access at different levels - we can give read-only to directors and some investors, advisor-level access to accountants and bookkeepers and so forth.

Frankly it's part of the NZ advantage right now (120000 or so of those customers are here) - we seem to be spawning a large series of smart, low cost B2SMB SaaS businesses, who are not just following Xero's own path, but also using the tool to improve the way they do business.

<comment><USER6> > _Here in New Zealand essentially every start-up uses Xero - a SaaS > accounting system that works extremely well and now has over 600k paying > customers. It means one set of data, permanently in my butt, and a host of > integrations to other players._

Not everyone thinks it's a good thing. For instance, with Ledger, you don't have to be a customer. It's available for free. Anything that works good without SaaS is better done without SaaS.

</comment></comment><comment><USER46> WHY?

There are a bunch of legit accounting packages out there. No need to re-invent the wheel or (in this case) clean the parade ground with a toothbrush. Off the shelf SME accounting package or if you really need it a proper ERP. Anything else is likely to end in tears.

Unless its for your one man show...in which case go wild with the CLI / Excel custom rolled solutions & sundry DIYs.

Source: Accountant

<comment><USER47> Comparing ledger to cleaning the parade ground with a toothbrush is misunderstanding the feature set. Similar to comparing it to Excel custom rolled solutions. This is a true double-entry accounting system that happens to have a CLI.

It definitely does not have the feature set of a proper ERP, but it can effectively be used in place of an SME accounting package.

Out of curiosity, what makes an accounting package "legit" in your eyes?

[edit] I see that 3 other comments asked a variation on the "legit" question. At least in my case this is not intended as an attack, but rather actual curiosity about what a professional SME accounting package can do that ledger can't; as far as open-source accounting packages go, ledger has a reputation for being able to produce reports that others can't.

<comment><USER46> >not intended as an attack

Don't worry. I knew I'd catch grief. I know HN is strong on CLI love and thin on actual accounting experience. ;)

>This is a true double-entry accounting system that happens to have a CLI.

Double entry has existed in paper format since before the dawn of time. Its not particularly revolutionary (CLI or not) in fact its bare minimum for sanity. Hence my comment that this is barely a step above Excel.

>actual curiosity about what a professional SME accounting package

Copy paste from other questions:

Is it widely used? Can you get staff with a couple years experience using ledger? Will accounting staff be productive using the interface? Does it cope well with multiple simultaneous users? Is it compatible with other software? Can you get local support? Can you export/import to other packages? Are the fringe case glitches known?

All these things matter with finance software, even for fairly small operations.

>as far as open-source accounting packages go

To be honest I wouldn't go for an open source one (as much as I like FOSS etc). Accounting software is really an area where you want to follow the herd (unlike usual HN mindset). Straying from the herd has terrible risk/reward. e.g. Yes you might save $100 on the software by using FOSS, but when the auditors show they take twice as long to deal with the unfamiliar stuff and charge you an extra $2000. Or worse they find a glitch that is new. In the IT world you file a ticket for that. In the accounting world you end up with a massive bill to get outside help to salvage the accounting records. Followed by another massive bill from the auditors attempting to audit said salvaged records. But yeah...you totally saved that $100 on the initial purchase. (Exaggeration obviously, but you get my point).

>it can effectively be used in place of an SME accounting package.

I'd not attempt it, as per above. Seen way to many horror shows.

<comment><USER48> I have actual accounting experience so by your first point I am qualified to comment.

I doubt CLI snobbery is a factor; that would be infantile. I suspect others downvoted you for taking the default position that the status quo is the best prospect - hardly a hacker's point of view and certainly not in keeping with the startup community.

Had Rod Drury agreed with you, he might never have started Xero.

My finding is that once one is trained in the basics of double-entry book- keeping, accounting standards, finance and taxation, then any package that keeps appropriate records and generates the right reports will do. To which end, Ledger seems a perfectly reasonable choice for a micro business or self- bootstrapped lean startup. Comparing it to an ERP platform is a non sequitur. A better discussion might be around the transition triggers.

Moreover, Ledger could serve as the accounting module of a larger system that benefits from double-entry book-keeping, such as a trading platform or two- sided network business. I say that with confidence because I'm building one.

By the way, a little historical research: double-entry was invented in the fifteenth century; hardly the dawn of time.

<comment><USER46> >I suspect others downvoted you for taking the default position that the status quo is the best prospect

In my line of work I get to see a variety of approaches to accounting. This is not a game where the bleeding edge wins. In fact those do a lot of bleeding and zero winning.

>Comparing it to an ERP platform is a non sequitur.

Oh come one dude. I specifically said people should get a proper ERP if its need in my opening post. At no point did I compare this to an ERP. So please...chill with the latin, especially the false kind.

As for your other points. You list the "trading platform" as an example of this being successful. Sure. You could use this to effectively run a kitchen pantry too. Its still no good as a commercially accounting package for day to day use though.</comment></comment></comment></comment></comment>