Gravity – An embeddable programming language - <AUTHOR> http://gravity-lang.org <comment><USER2> "The VM code is about 2K lines long, the multipass compiler code is about 3K lines and the shared code is about 2K lines long."

I was surprised by these numbers so I checked, and this is highly misleading (or very much out of date). The parser alone ([https://github.com/marcobambini/gravity/blob/master/src/comp...](https://github.com/marcobambini/gravity/blob/master/src/compiler/gravity_parser.c)) is over 2K lines, and with the lexer and the AST definitions the _frontend_ of the compiler is already comfortably above 3K lines. Also, the VM ([https://github.com/marcobambini/gravity/blob/master/src/runt...](https://github.com/marcobambini/gravity/blob/master/src/runtime/gravity_vm.c)) is about 2K lines, but then there is another 3K lines in another "runtime" file ([https://github.com/marcobambini/gravity/blob/master/src/runt...](https://github.com/marcobambini/gravity/blob/master/src/runtime/gravity_core.c)).

Still, it's not a huge project, and it might be interesting as a point of study for people interested in compilers (to bytecode) or bytecode interpreters. The input syntax looks pretty as well.

Interestingly, [https://github.com/marcobambini/gravity/blob/master/src/runt...](https://github.com/marcobambini/gravity/blob/master/src/runtime/gravity_vm.c) also serves as a nice illustration of the fact that if tabs are allowed in source code, people will _mix_ them with spaces, resulting in code that looks bad unless you have the exact same tab width preferences as the author.

<comment><USER3> I'm not sure how the parser and lexer/etc. line count matters for the VM line count. _shrug_

Definitely something I'll be looking at for my embedded work; it may fill a gap in my toolchain. And boo-hiss tabs.

<comment><USER4> > And boo-hiss tabs.

At the risk of starting a flame-war: boo-hiss not using a formatter.

<comment><USER3> Orthogonal. Once you have tabs, any viewing of that file will rely on the tab size set by whatever viewer you're using: mixing tabs and spaces basically never works. At least if it's _just_ tabs everything will be seen wrong consistently.

The only reliable mechanism is spaces-only.

:p

<comment><USER4> But if you're using a formatter then it doesn't matter whether you use tabs, spaces, minimal whitespace, or any mix thereof because that's what the formatter is for.

Also if you're using a formatter then you can do the correct thing and use tabs for indentation and spaces for alignment, because the formatter will ensure that the output is consistent.

<comment><USER3> The output is consistent if your tab settings are always the same when you look at your code, and you use the same tab size across all languages.

I view code in multiple ways, have different indentations for different languages (not many different now), and have clients that enforce difference indentation settings. It just doesn't work.

<comment><USER4> > The output is consistent if your tab settings are always the same when you > look at your code, and you use the same tab size across all languages.

I don't really understand what you're getting at here to be honest, surely if you change your tab settings it's because you _want_ the code to look different?

> I view code in multiple ways, have different indentations for different > languages (not many different now),

This is exactly what tabs are great for! You can set the tab width based on language without having to force that choice on anyone else.

> clients that enforce difference indentation settings

Again, formatter.

<comment><USER3> I'm not sure if you're being deliberately obtuse, or just never look at files in only one way. I don't have that luxury.

Say I have a project that has Java and Rhino (JavaScript) files. My IDE/editor is configured for Java with TAB==4, JavaScript TAB==2. Everything looks great in my editor, because it knows things.

Now I'm using `less` or `cat` in my shell. Or ssh-ing to a remote box because of an emergency production issue. Or whatever. Now when I look at the file things no longer line up as originally intended, because when I view them outside of the (relatively) smarter IDE the TAB characters are at the mercy of whatever I am using to view the file.

You _cannot_ simply rely on local tab width settings if files use a mix of tabs and spaces for indentation and alignment: if you change the tab width then alignment breaks. If you never align anything, great, tabs work great for indentation (except for when you can't trivially change it, then they suck). But indentation isn't the only thing tabs are used for.

There's the rub: TAB characters will always be at the mercy of how I'm viewing the file, which I do not always have control over, and certainly not (trivially) based on the type of the file.

<comment><USER4> > You cannot simply rely on local tab width settings if files use a mix of > tabs and spaces for indentation and alignment: if you change the tab width > then alignment breaks.

Ah I think you've misunderstood what I meant by tabs for indentation and space for alignment (something which you will be controlling with a formatter because that's the entire premise of my original comment). I'm not sure how to make it more clear, so I'll give you an example.

      class SomeClass {
      [tab]functions some_method(with, arguments) {
      [tab][tab]return a_function_call(with,
      [tab][tab]                       lots,
      [tab][tab]                       and,
      [tab][tab]                       lots,
      [tab][tab]                       of,
      [tab][tab]                       arguments);
      [tab]}
      }

Is that clearer?

<comment><USER3> Yup! Now view that across multiple languages, viewers, and tab sizes.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> For anyone who considers this interesting and/or looking for alternatives: apart from the well-known Lua there's also MicroPython [1] whos specs actually read a lot like the specs of Gravity but then some more (well, it's Python 3.5 minus a couple of features, also compiles with C99 compilers, is fairly small for being a Python, embeddable, more mature at this point, been tested on more platforms/architectures, ...).

[1] [http://micropython.org/](http://micropython.org/) [https://github.com/micropython/micropython/](https://github.com/micropython/micropython/)

<comment><USER6> Just a nitpick... but I've seen people who aren't working on what i would consider typical embedded recommend eLua and MicroPython readily without ever mentioning the downsides that mPy needs 128k+ ROM and includes a ridiculous standard lib most of which you would never use on embedded, and eLua supports some Cortex m3 and is a dead project. These two you mentioned are more of people using Rasp Pi syyle embedded (Cortex m-series vs Cortex A/R series... small devices vs phone processors).

The issue is everyone has this "great idea" for an embedded language to replace C which means device headers in the Lang, and that's way too much to support.

If the goal is to replace C imo it's a waste of time. But there is a market IMO for an embedded lang that you can execute tests and scripts from C in a VM that can foreign function interface back to C functions.

There is on that uses JS called mJS but I found the one of the guys that supports it to be extremely rude and unhelpful. Documention is lacking. You basically need to be an expert in JS to get started. And then they doubled their ROM use age from 23k to ~50k. But it does seem to be the best out there for the goals I stated.

I'm still on the hunt.

<comment><USER7> It depends upon what's the target you're trying to embed into. If you're trying to put something on a PIC or an 8 bit AVR, you're down to something like assembly, C, or a very low memory language like forth. If you're looking at larger targets like the ESP32, then you can use an embeddable python, ruby, lua, js, etc without being too concerned. On something like a raspberry pi compute time likely ends up being more of a concern than memory or build complexities.

The other target is trying to embed some interpreter in a larger application, which ends up being mostly constrained by how nice the language is as well as how nice the C API barrier ends up being.

C is certainly not going anywhere, but it is pretty cool that other options are being built to lower the barrier of entry for some application domains.

<comment><USER8> One project used ATS for an 8-bitter:

[http://metasepi.org/doc/metasepi-icfp2015-arduino- ats.pdf](http://metasepi.org/doc/metasepi-icfp2015-arduino-ats.pdf)

[http://www.ats-lang.org](http://www.ats-lang.org)

Chez Scheme used to run on 8-bit platform, too. Then there's Pascal and BASIC dialects for microcontrollers. Astrobe has Oberon dialect for ARM Cortex's. AVR-Ada lets you use Ada with AVR's. OcaPIC put Ocaml subset on PIC microcontrollers.

People are using C because most people already use C with the ecosystem benefits that follow. Although C and assembly are dominant, there are other options available if people think their pro's and con's line up with their needs.

<comment><USER9> Always cool to see ATS in the wild. Higher-order functions on an 8-bit CPU makes me happy. :D

</comment></comment></comment></comment></comment><comment><USER10> Is it possible to embed Gravity in my C/C++ project and safely run _untrusted_ Gravity code?

The Lua implementation supports the creation of sandboxes to run untrusted scripts, but this is a feature that other embeddable languages (e.g. Wren, Python) don't seem to support.

I feel like this would be a basic requirement - or is it common to embed a scripting language without limiting what scripts are able to do?

<comment><USER11> Tcl is the granddaddy of embeddable scripting languages. It has had safe sub- interpreters for untrusted code for quite a while. They were added back when it had a shot of being a contender against JavaScript and safe script evaluation was deemed necessary.

</comment></comment><comment><USER12> A while back I was interested in learning more about programming compilers, so I checked this project out. I actually added array map, filter, reduce, and sort methods to the language, which was fun and a learning process.

<comment><USER13> That's great! You're the kind of person the hobbyist programming language development community needs. I'd encourage anyone who's interested in learning more about compilers to see how they can contribute to a new language—it's a great learning experience, one less thing for the primary author to do (a programming language can be an enormous undertaking), and who knows, you may be helping to build the next big thing.

</comment></comment><comment><USER14> Can anyone suggest a good embedded language with static or at least optional typing ? I feel this is a gap in the market for embedded languages.

<comment><USER15> Dyon [https://github.com/PistonDevelopers/dyon](https://github.com/PistonDevelopers/dyon)

(Interesting and very easy to modify, maybe not "production ready")

<comment><USER16> Thanks for this!

This is by far the most _what the fuck_ language that I've seen in a long while. It displays an astonishing amount of creativity and novel (at least to me) ideas, most of which are probably bad and won't survive for long, but some of them are really cool! Things like "packed loops"

        for i, j { println(list[i][j]) }

or using `return` as a variable without exiting

        return = 8

Really cool!

<comment><USER17> I seem to recall something similar in an old language (maybe Pascal?) where the way to return something was to assign it to the name of the function.

<comment> semi-extrinsic Fortran does this (still does in F2008). But usually I end up using subroutines instead, since I want the code in question to modify more than one object. Functions can only return one object, and the overhead of packing/unpacking to a struct is annoying.

What Fortran really needs to get is first-class string handling and saner IO. Apart from that being a pain, modern Fortran is a nice language to use.

</comment></comment></comment></comment></comment><comment><USER18> As a hobbyist I love seeing new languages. I look at their features and a few simple examples and immediately imagine they'll solve all the issues I have faced with other languages.

I generally appreciate the massive amount work that goes into something like this.

But when I want to work on a project, I am wary of using something new. I just know in my heart I'll set the wrong flag on the compiler and the binary will end up in a directory I can't find and it'll take me two days to figure out how to do it.

My question is this: if the main strength of this language is that uses Swift- like syntax, and lets you develop native apps in Android and iOS, why not just make an Android compiler for Swift?

<comment><USER19> "issues I have faced with other languages"

Which ones, specifically?

<comment><USER18> I mean that in the generic sense when you grow a project (I use python mostly) and run into issues invariably with the size and complexity.

</comment></comment></comment><comment><USER20> As an embedded programmer, it is still very hard to displace C and will be for some time. The two main reasons: the compilers are well-behaved, and the debug tools are very, very mature. One thing newcomers overlook is the importance of understanding what the compiler does to the code. C++ is notorious for being painfully unpredictable, and in the embedded world, that is a death sentence. mbed is learning this the hard way. On the other side, debug tools are critical. Unlike the decade long surge of web-related programming with its sophisticated GUI-based debugging, embedded is a completely different beast, and requires much more attention to detail since reprogramming costs are so high. Because C has such a robust hardware debugging ecosystem, it is a clear winner.

It'll be a long time before anything knocks C down as #1 in the embedded space. Even as the definition of embedded stretches to include *nix variants (like Yocto), there will always be the squeeze to get rid of that and run bare metal with C.

<comment><USER21> I think you're getting confused between embeddable languages (Guile, Lua and kin), and languages for embedded development (you mentioned C).

<comment><USER20> You are correct, sir.

</comment></comment></comment><comment><USER22> I'm a little bummed about the class-based bit; I generally want structs/records, not classes. Specifically, I want to avoid inheritance altogether (yes I know I don't have to use it, but I still have to interact with it when libraries or coworkers use it). Still, this is a neat little scripting language, and best of luck.

<comment><USER23> On the off chance you're not already acquainted, you might really like Go. There are no classes, thus struct types are the bread and butter. "Methods" are lightweight syntactic sugar combining structs and functions; structs effectively double as classes, but the scope and complexity they offer are perhaps easier to juggle compared to the typical object-oriented language.

The inheritance mechanism, implemented via interfaces, is interesting because it stresses conformance to behavior rather than explicit relationships between types. If your Circle struct type walks and talks like a Shape, then it is implicitly usable as a Shape. It's functionally identical to explicitly defined inheritance between types in other languages, but there's something about the _feel_ of developing with Go's interfaces. You begin to think more about the simple behaviors that each type should exhibit, rather than drawing hard lines in the sand about the hierarchy of relationships. Circles and Squares don't extend a base Shape type. Rather, a Circle can calculate its surface area. A Square can do the same. Conveniently, it just so happens that any type that can calculate its area is promoted to being usable anywhere a Shape is expected.

<comment><USER6> Is there a Go VM for 32bit embedded?

<comment><USER23> The parent I replied to made me think so strongly of Go that I forgot the context regarding embedded systems. A quick search shows support for ARM; beyond that, I don't know if any options exist.

<comment><USER6> When a language says ARM like that, they mean the ARM that runs your phone. Not the ARMs that run your Fitbit.

</comment></comment></comment></comment></comment><comment> ainar-g >null

>dynamic typing

>naked if-else bodies

I'm sorry, but I just don't see how this improves on anything. How will GravLang make me a better, more productive programmer? How will it make my programs more robust?

Don't get me wrong, as a hobby project it's fine, but as a "real" language it doesn't have any selling points to me.

<comment><USER24> It doesn't improve _much_ on e.g. JavaScript or Python. That's not the point. The point is that it's a small fast zero-dependency embeddable language that could be used for e.g. scripting in games or small devices.

Wren is another nice one:

[https://github.com/munificent/wren](https://github.com/munificent/wren)

<comment> ainar-g Don't we have already Lua for that? It even has a state-of-the-art JIT compiler.

I am all in for competition, but I can't see how both of these languages could improve over Lua.

<comment><USER25> Although LuaJIT is crazy fast, it can't be used on iOS, so we first need to compare this with the unJITted version of Lua.

Lua is pretty simple and elegant, but has its woes on being too flexible and wonky (especially with nil and global variables). It also doesn't support OOP syntax directly, so everyone started to create their own wonky class system, which broke easily because of Lua's wonkiness. Gravity seems like a good embedding language packaging a nice OOP syntax with a lot of syntactic sugar (such as properties and access specifiers), so I think some UI/game developers would choose this over Lua.

<comment><USER24> Can anything interesting be used on iOS?

<comment><USER26> There are some nice non-JIT embedded languages such as Angelscript (resembles C++, uses refcounting instead of GC), Squirrel (extension of Lua syntax to support classes and other nice features), and recently Wren (has a nice class system and uses fibers for concurrency).

<comment><USER24> Does Apple still prohibit any form of downloaded code or scripting or did they finally ease that?

<comment><USER27> They do if the user can download and execute the code themselves. If the underlying app uses it (e.g. React Native app downloads updated bundle) and user can't touch it then it's okay.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> >Gravity syntax is designed to be familiar to people coming from C-like languages like Javascript, Swift, C++, C# and many more. We started working on this new language a year before Apple announced Swift and we were happily surprised to discovered how similar both syntax appear.

Amusing how the language looks so much like Kotlin - a language released in 2011 and 3 years before Swift.

<comment><USER29> > syntax is designed to be familiar to people coming from C-like languages > like Javascript, Swift, C++, C# and many more

Besides Kotlin, other such modern C-like languages are Java, Dart, Go, and Groovy. But because Gravity is dynamically typed, a better peer language comparison would be Javascript, Groovy, Dart, and Swift. Each of those languages was designed for a specific platform, i.e:

      * Javascript for the web in 1995

      * Apache Groovy for the JVM in 2003 (still used for Gradle build scripts)

      * Dart for the JVM and for Javascript (and more latterly for Fucshia, Android, and iOS) in 2011

      * Swift for iOS in 2014

It's good to see modern dynamically typed languages reject Python's indentation and Ruby's `end` keyword, and settle around curly braces for scoping.

<comment><USER30> Dart has always had optional static types. With 2.0, those be come mandatory. If you are familiar with Swift, then dart would be Swift with a GC rather than ref counting and without tuples (or rather, the reverse would be true as dart is older than Swift).

</comment></comment></comment><comment> yoz-y Seeing the overall style of the documentation logos and copy, I am kind of surprised that embedding this from Swift is not covered.

<comment><USER26> Most scripting languages provide only a C interface, because it is what most of the other languages are universally compatible with. C++ codebases can use "extern C", other compiled languages like Rust or Swift can use C interop (for example: [https://developer.apple.com/documentation/swift/swift_standa...](https://developer.apple.com/documentation/swift/swift_standard_library/c_interoperability))

</comment></comment><comment><USER31> At first look I love how the language is designed.

Now I'm curious about the "embedded" part . Apple doesn't allow any VM or JIT to be embedded for iOS application. Either I'm missing something or else this tech is not compliant with Apple Security Guidelines.

<comment><USER32> As far as I understand the bytecode is interpreted (not JITed to native instructions), which is afaik OK on iOS.

</comment></comment><comment><USER33> Such an underrated project. IMHO if this one was launched by Facebook or Google now things would be different like 15k+ plus stars on GitHub and tech news sites posting articles with titles like "a new game changer language" and stuff.

</comment><comment><USER34> Does anyone have numbers on how light it is? How much memory Does it need? How big is the library? Does it compare favourably to Lua or Guile? Guile shouldn't be hard to beat for size, but that's generally not what they try to achieve.

</comment><comment> loa-in-backup "Getting started" link from github readme points to 404.

Edit: so does "language documentation" link.

</comment><comment><USER35> " _It is a class-based concurrent scripting language with a modern Swift like syntax._ "

So, it looks like every other language designed in the last 40 years? This is good?

<comment><USER26> In the realm of embedded languages (which is dominated by Lua), Gravity seems like a great improvement.

A lot of game developers attach a small scripting language to their game engines because C++ isn't a good language for rapid game logic prototyping, and takes ages to compile. The majority of them use Lua for this purpose. Lua is certainly simple and elegant, but has its shortcomings (no direct support for classes, 1-based indexing, indexing a wrong field returns nil, can accidentally declare global variables on assignment, lack of syntactic sugar...) I've looked at other languages such as Angelscript, Squirrel, Wren, etc..., to use for game development, but I think Gravity is the cleanest and has the most features so far. I'm still curious about the performance though (If it runs about the same as non-JIT Lua I'll call it a success, given how Lua is much simpler than Gravity)

Even if you aren't a game developer, scripting languages also has its use with UI development. The majority of UI developers use Javascript with a combination of web technologies, so that's one example. Even QT developers use a scripting language called Qt Quick (which also resembles Javascript a bit), because C++ can be too tedious for rapid prototyping. The author of Gravity have also developed this language for mobile UI Development, so it seems good for its intended usage.

The language isn't particularily shining on new concepts, but I think it will be very useful for some of us.

<comment><USER36> The semantics and capabilities of Gravity mirror those of Lua almost exactly. Class systems, there are literally hundreds to choose from, basic Object/Method support is built into the language. As for globals detection, [http://lua-users.org/wiki/DetectingUndefinedVariables](http://lua- users.org/wiki/DetectingUndefinedVariables) and non-existent attribute lookup [https://www.lua.org/pil/13.4.4.html](https://www.lua.org/pil/13.4.4.html)

Anyone programing in Lua should be well versed in [http://www.luafaq.org/gotchas.html](http://www.luafaq.org/gotchas.html)

Gravity's class system is inflexible compared to Lua where it has Multiple Inheritance [https://github.com/limadm/lua-oo](https://github.com/limadm/lua- oo) Prototypical OO [https://github.com/nusov/lua- object](https://github.com/nusov/lua-object) or anything else you desire.

As for extending syntax and semantics, [http://lua- users.org/wiki/MetatableEvents](http://lua-users.org/wiki/MetatableEvents) provide a clean mechanism to do so.

Lua coroutines are more powerful than Gravity's fibers.

I was hoping that Gravity had pattern matching support, but it looks like it does not.

Given that Lua has _more_ capabilities than Gravity could you substantiate

> Lua is much simpler than Gravity

In what ways?

<comment><USER26> You can create elaborate class systems using metatables in Lua; the problem is that there are hundreds of them. I've done some Lua programming using Love2D, and one of the painful parts was that a lot of the major libraries implemented different class systems (or rolled one of their own), making it hard to include in a single codebase. (At least Lisp has CLOS as its common class system...) Also you can mitigate the "undeclared variable = nil" problem using a script like strict.lua ([https://github.com/deepmind/strict/blob/master/strict.lua](https://github.com/deepmind/strict/blob/master/strict.lua)), but when you try to expand that for field accesses you then want to make sure all of those libraries with different class systems or methodologies are also compatible with it (which a lot of the libraries do not).

The underlying problem with Lua is that it went too wild with the philosophy of "being the most expressive using the least amount of features" (so you can implement everything using only metatables). Although many would say that this is a good thing, for me it seems better for a language to have some kind of subset for which people can conform and rely on.

<comment><USER37> Lua provides only a meta-object protocol, without blessing a single class system.

I prefer this. Its more Scheme-like, philosophically. I've seen your criticism from many quarters and here's my guess at what happens: people come to Lua from other languages, find missing abstractions, recreate them, and in the process don't thoroughly learn the metamethod system.

Pure prototyping is a joy once you realize what all the moving parts are and how many ways they can be usefully combined. This is my experience anyway.

</comment></comment></comment></comment></comment><comment><USER38> anyone using this can illustrate , how they use this ?

<comment><USER31> It's used for their tech called Creo [1] .

It looks a bit like Fuse Tools [2] , a tech designed for mobile designer that bypass OS Specific UI API to directly draw on the phone using the GPU , sort of similar to Flutter in core architecture.

[1]- [https://creolabs.com/](https://creolabs.com/) [2]- [https://www.fusetools.com/](https://www.fusetools.com/)

</comment></comment><comment><USER39> Sounds not so light-weight.

</comment><comment><USER40> Not to rain on your parade here but, in what world is a interpreter "fast and efficient"? Embeddable, minimal footprint and zero external dependencies etc are all excellent real selling points here.

<comment><USER41> IIRC, the K language's interpreter is/was really fast because it's tiny and fits in the processor's cache.

<comment><USER42> A consequence of this is that the language has many severe limits. For example, number of function parameters, number of local variables, amount of code inside a conditional branch etc. Working around these limits can often feel like being a human-compiler.

<comment><USER41> To be honest I just repeated back stuff I read about K, as I haven't gotten into K enough to hit these limits. Commentary from someone with actual experience is great, thanks!

</comment></comment></comment></comment><comment><USER43> Blank page with JS disabled.

</comment><comment><USER44> I don't see how a new language can claim to fast and efficient when it does nothing to encourage data-oriented programming.

</comment><comment><USER45> So a language that transpiles to C similar to Nim I guess?

Could I use this on Windows and create small binary executables? Any examples of this?

<comment> loa-in-backup It's a virtual machine running some intermediate representation.

From github: "Gravity has been developed from scratch for the Creo project in order to offer an easy way to write portable code for the iOS and Android platforms. It is written in portable C code that can be compiled on any platform using a C99 compiler. The VM code is about 2K lines long, the multipass compiler code is about 3K lines and the shared code is about 2K lines long. The compiler and virtual machine combined add less than 200KB to the executable on a 64 bit system."

<comment><USER6> I find in annoying as an embedded engineer that "embedded" now mean phones which are more powerful than the PCs most of used relatively recently.

Embedded to me means 8-32bit micros for real devices. Not PCs that happen to fit in your pocket.

200kB is out for even a fairly serious cortex M4.

<comment><USER46> Embedded here means "embedded in another program".

<comment><USER6> Here I am looking for both!</comment></comment></comment></comment></comment>


Daring Fireball: App.net - <AUTHOR> http://daringfireball.net/linked/2012/08/08/app-net <comment><USER2> I prefer the App.net endorsement by Pinboard's founder:

<https://twitter.com/baconmeteor/status/223947369467744259>

</comment><comment><USER3> Building a Twitter clone with Twitter Bootstrap - oh the irony

</comment><comment><USER4> I am not sure whether this funding drive is actually meant to succeed. Let me search my tinfoil hat before continuing...

When talking with VCs, mass-market and transaction-based is always a tough sell. So why not try a funding drive that might not succeed, but show a good amount of interest? You get 2 things out of it:

a) Contacts of people actually wanting to buy your product and are vocal about it. b) Proof that there is interested in your concept.

Especially in the social network space, where fees are something rather unheard of, you won't be able to sell "like Twitter, but with payed accounts" very well. Then again, I regularly meet people that would like to pay for their Twitter account for certain benefits (like being able to verify their account instead of hoping that Twitter deems their request worthy). So this funding drive looks like a proof-of-concept to me much more than a success or die action.

</comment><comment><USER5> Apparently heello.com is also attempting a comeback, no dollars required: <http://new.heello.com/>

Their interface was nice. They want to build a third-party friendly ecosystem but still base it on ads, I wonder how...

</comment><comment><USER6> With such a lofty goal I do not understand why they capped at $1000 donations. Missing out on the big fish.

</comment><comment><USER7> Jaiku didn't have advertisers yet it failed.

I really root for app.net to succeed, also somebody please come up with a better Facebook, too much identity info managed by these two companies to feel a little unease, specially after their privacy fiascos.

<comment><USER8> Drawing useful lessons from Jaiku is confounded by the Google acquisition. (See also: Dodgeball.)

</comment></comment><comment><USER9> A better Twitter? I've never heard those kind of sentences being thrown around before. Shut up and take my money... In all seriousness though, you can build something better than Twitter but it's the Google problem all over again: the market is cornered and unless you've got big pockets like Facebook or Apple, you've got no chance of going toe-to-toe with the big guys like Twitter.

<comment><USER4> Maybe a crowd-funding drive upfront is actually a good action in that case. If it succeeds, you have roughly ~50000 seed users that have a vested interest in seeing your product succeed.

</comment></comment><comment><USER10> Now a (member) backer for this project. I think there is definitely a market for this style of approach. (ie. charge for quality instead of ad-supported.)

Good luck guys

</comment><comment><USER11> I seem to have a flashback just now when github's battle cry was that they didn't accept VC money.

</comment><comment><USER12> I'm tempted to contribute to App.net, because it seems like a great idea and I'd like to see it succeed. However, I'm starting to think that I just may have no use for social networks of any kind at all any more.

Twitter feels like work to read and "maintain" and we're always told we have to maintain it. Facebook feels like a cesspool. I've been focused on spending time each day on learning new skills (and relearning old ones) and I'm enjoying it far more than I ever enjoyed social networking, and I'm actually getting something out of it. When I want to read something, I either come to HN or I read a book (a good book is worth at least 10,000 tweets or 1,000 blog posts, so what is really the point of all those endless tweets?)

I sometimes try to imagine the people I truly respect (the authors and inventors and scientists) spending all kinds of time on Twitter and Facebook and I keep failing.

<comment><USER13> Amen. I drastically cut back my use of Twitter and Facebook several months ago and have not missed them at all.

<comment><USER14> Same experience here - cut way back on my Twitter use. I see Twitter as mostly for celebrities and community leaders (tech community or whatever) to entertain us, provide interesting insight, or spread important news. Overall, though, it all isn't very important in our lives and it's not worth it to monitor all day every day.

Take people like Gruber, though, who now integrate this type of social service into their work - it is now really important to them. And of course they will communicate to us that "hey, this is really important!".

I'd say for most of us ("the general public"), it's just not that important.

</comment></comment></comment><comment><USER15> Jesus. I hadn't realized it's $50 to sign up. May be awesome, but that's a high price to experiment with.

<comment><USER16> It's $50 for a year of service. One crappy Starbucks coffee a month isn't bad to be treated like a customer instead of a set of eyeballs to sell.

(Yes, I'm a backer.)

<comment><USER17> Counter analogy: I'd rather have a coffee every day for a month than throw $50 in the garbage.

</comment></comment></comment><comment><USER18> As much as I want app.net to launch .. I don't think the campaign will reach its goal.

</comment><comment><USER19> Anyone remember "Go to AOL Keyword: Coke"?

I try to avoid blowing the buddycloud trumpet (we're building an open federated/distributed social network) on hn each time there is a future-of- twitter post. Sorry - I can't hold back this time. Here's my context for reading this app.net post:

Twitter works in the same way the old AOL client did: you accessed some message boards and stock prices and film websites using AOL keywords. Marketers flocked to AOL to put up the latest movie premier website.

At the same time there was the small techno-elite downloading Mosaic 0.98 over their SLIP connection and starting to experiment with the "world wide web". In comparison with the closed systems like Compuserve and AOL, the open web took much longer to evolve becasue everybody was working on different parts without any central coordination. It was this lack of central coordination that brougt us a more robust system and I don't think that any of us will argue for a world where AOL is the gold standard of finding, hosting and accessing content.

Twitter is pushing hard to be the gold standard of messaging in the same way that AOL did. And are marketers flocking to work with Twitter along with newscasters giving out hashtags and @twitter-names.

But, in the backrooms and basements and hackerspaces of the internet, today's equivalent of Mosaic downloaders are experimenting with open, distributed social networks like buddycloud.

The buddycloud team and everyone who attends our hackathons that are working to build the post-Twitter future just like Netscape helped launch the open web.

The future will not be build around one company, but a couple of companies like buddycloud can help nudge it forward. The future will be protocol based rather than homesteading on another company's API for fear of API key revocation.

So to app.net,

I see them fitting into the twitter ecosystem like a paid email provider that doesn't let you send email outside of their domain: You are still tied to one company. Still tied into hoping your API key doesn't get revoked. To move away from Twitter, we must think bigger: a giant network like email where everyone can run their own servers and they all interconnect.

We're trying to solve some of these problems with buddycloud. And props to the buddycloud team, I think they are doing a great job. I'll go back to biting my toungue on each new future-of-twitter post.

<comment><USER20> What did you think about diaspora?

<comment><USER19> They have definitely captured mindshare and championed the need for federated systems. I've not tried Diaspora though so can't comment.

</comment></comment></comment><comment><USER21> I signed up after reading this post!

</comment><comment><USER20> Seems more like an elitest social network than anything. That might not be such a terrible thing- after all, Facebook started out only allowing people with .edu email addresses. Metafilter now charges a one-time fee of $5. I'll be interested to see what happens with App.net.

</comment><comment><USER22> What really needs to happen here is that there needs to be a truly free social stream service for the internet, owned by none and by all.

Only then you will have total developer freedom, and no censorhip possible.

If you've also been thinking about this for the last 2 weeks, drop a line.

Think of IRC evolved (message horizon based on #tags not rooms, just like Twitter), syndicated, P2P Server Network, served over HTTP to the end user so that it has all of what Twitter has to offer (maybe a few more characters)

would love to think together with people who like tough challenges about a new HTTP on top of P2P architecture to solve this and other problems to leave a new arm of the internet for our kids.

</comment><comment><USER23> Can you convince some mom at the gym to pay $50 to use App.net? If the answer is no, then that's a big problem in building a sustainable social business. Most people don't see a "problem" with Twitter. I occasionally have seen a sponsored tweet, but it's even less obtrusive than google and EVERYBODY uses google. Convincing the soccer mom set to ditch facebook and twitter over some nebulous concept of a developer-friendly social thingy.. not going to happen.

To me it seems like the App.net gents are playing this power to the people angle just as a hook to justify funding for a twitter clone.

I can make a twitter clone (and an API to go with it) in less than a weekend. If I wanted it to be beautiful, my buddy and I could spend a month of evenings working on it and it would cost us no more than the price of the beers.

I am starting to think that this entire thing is a scam. A publicity stunt to convince people to pay $50 for something that could be built by following the Michael Hartl Rails Tutorial and the Service Oriented Design with Ruby book.

This whole project is too much "inside baseball" the user on the street doesn't care, doesn't want to care because it really doesn't solve any problem for them. A pay-per-tweet platform? C'mon, who actually thinks that has business potential? Especially if just a few people are using it. None of my friends are on it. So what value is the "social" component to me? I don't know a single person on App.net, so why the heck would I spend my development time building some "robust" app atop of a platform that no one is using? You get 10 million users and then I'll potentially care about the API.

<comment><USER24> People pay for Angie's List ($46 a year).

If the early members of App.net built a great community and become a good resource, regular people would pay for it.

<comment><USER25> People get immediate value out of Angie's List: Vetted services. Angie's List has an actual story--everybody's had a terrible experience with a plumber, electrician, or other service. Not everybody has had a terrible experience getting data out of Twitter. Most people really don't care about that.

I think there's a vast, vast difference between the two.

</comment></comment></comment><comment><USER26> This whole thing is a bit of a joke. I especially find it hilarious that they're calling it app.net only because they spent probably a decent sum of money on a 3 letter domain for their (failing?) marketing tools.

App.net as a name makes absolutely no sense (and not like other senseless names like Wii or whatever, but as in it already means something else) and quite frankly I'm shocked that people like Gruber and Marco are on board with this ridiculous bound to fail idea.

Also why on earth they adopted the Kickstarter model instead of the Pinboard.in model is beyond me. Can only imagine they got a lust for instant #swag

<comment><USER27> > Also why on earth they adopted the Kickstarter model instead of the > Pinboard.in model is beyond me.

I would derive value from pinboard if I was the only subscriber. The same cannot be said for a social network like app.net.

I joined Twitter in September 2006, but I didn't start really using it until December 2006 when some friends and colleagues signed up.

</comment></comment><comment><USER28> The 11px font on daringfireball.net seems like a notice board to the user. Get ready to squint, zoom in, or go away. I am not budging.

<comment><USER20> Pssst.... <command> <+>

<comment><USER28> That's why i wrote 'zoom in'

</comment></comment></comment><comment><USER29> So, someone made a twitter clone?

<comment><USER30> App.net is not Twitter. It's an infrastructure, upon which new social services can bloom. It's AWS.

<comment><USER23> We have infrastructure. It's called AWS. The infrastructure of App.net is not revolutionary or even that interesting. Why do new social services need this infrastructure?

</comment></comment></comment><comment><USER22> There's just one thing that's odd here.

How do you avoid Marketers disguised as developers?

You will still get the ads no matter what one way or another.

<comment><USER31> Full disclosure: I backed the project.

I think it's fine if marketers use the service. It's similar to Twitter in that you can choose who you follow. The difference is that if I want Coke in my timeline, I have to follow Coke (or someone cleverly disguised as not Coke) in my follow list.

If companies add their brand to app.net, fine. If people opt-in to follow those brands, also fine. No harm to everyone else.

</comment></comment><comment><USER32> The problem I have with all these sites is that they are run by for-profit companies, which (for me) makes them untrustworthy. I would love to see a social networking site run by a democratic non-profit organization dedicated to freedom.

<comment><USER33> Like... diaspora?

<comment><USER32> Diaspora's distributed nature makes it a non-starter for me.

</comment></comment></comment><comment><USER34> This service is better-designed than Craigslist! You should sign up!

This service is more privacy-sensitive than Facebook! You should sign up!

This service is less dickish than Twitter! You should sign up!

Sure, it's possible to unseat an entrenched juggernaut. But you don't beat a MySpace unless you're, well, a Facebook. You can't best the incumbent on one factor alone. You have to build an experience that is so radically more compelling that people will actually give up their existing network on the old product just to use yours. And that kind of product is a genuine rarity.

<comment><USER35> This service costs $50/year more than Craigslist! This service costs $50/year more than Facebook! This service costs $50/year more than Twitter!

<comment><USER36> I'm really not sure why people are down voting you. It is absolutely true. Most people are not prepared to take out their credit card for something like this. app.net becomes valuable once it has data but it needs users for data.

Most users of twitter are not developers, they get their value from the free frontend. Developers are complaining because they don't have access to the data. So they want non-developers to pay so they can have data for free. These non-developers dont really see any value in giving data to developers.

app.net wants to sell a story, but it wants people to pay for it. Duckduckgo is also selling a story but for free which is why its doing so well. If DDG pitch was pay us money for a privacy concerned SE then it to would have miserably failed.

(this is not a prediction that app.net will fail, I really hope it works)

<comment><USER24> Ok. I downvoted all the posts this thread up to the parent because I feel posts like these make the HN community stink.

If a startup raise a massive amount of funding with no revenue model, a lot of people here scream bubble.

Now you have a startup that has a revenue model and not seeking additional funding, people still keep leaving snarky comments.

There is a big difference if a company makes money from users vs advertisers.

Companies focus on what gives them revenue and I'm excited to see what App.Net can create if they focus just on the users.

<comment><USER35> I'm sorry if you interpreted my comment as nothing else than snarky. Truth be told, I want app.net to succeed, but as pretty much one of its target members (young, vaguely hip, and I love reading tech blogs) I still haven't found the answer to the following question:

What advantage does app.net have over the mainstream options if I don't care about privacy/'dickishness' and how is that worth $50 to me?

<comment><USER37> Probably none. What advantage does a house have over a trailer if I don't care about space/heating and how is that worth $n to me?

</comment></comment></comment></comment></comment></comment><comment><USER38> Is there a single piece of information in here? It reads like another pitch, and I frankly don't think HN has been lacking in the "app.net" coverage department.

I think the founders should be more actively looking for funding on other channels, if they want to fill up that bar. HN seems like a saturated market.

<comment><USER39> This 'startup' is one of those things on HN that really leaves me scratching my head, sure that there must be much more that I'm missing. Is this really it?

And to Gruber's pitch, is it because he has a vested interest, financially? Is his "backing" that he pitches it for others to financially contribute?

<comment><USER40> One of the nicest things about Apple products is the simplicity of the underlying business model: you get hardware (most generally, also some software and services like AppleCare) from them, and you give them money in return. I think Gruber is a fan of this approach.

Apple's brand and future success then depends on you loving the product, which means they spend a lot of the money you've given them on hiring smart and dedicated people to build more loveable products. It's a virtuous cycle.

But most web-era companies (like Google and Facebook) have adopted a different business model: you get their product for free, with the trade-off being that you have to look at a few ads here and there.

The problem with this approach is that they end up hiring more smart and dedicated people to work on advertising techniques, sales, UI, algorithms, &c. than those who actually work on building ever more loveable product. (And they might even IPO at a high valuation, putting even more pressure on the company to deliver advertising revenue growth.)

App.net is trying to get back to the virtuous cycle of people paying for nice products – that has been the standard in commerce since the beginning – so that they can concentrate on making a great, benign product as opposed to spending the future fretting about 'monetization' (think about how awkward that word really is!) or advertising.

It's a trend I'd love to see more of, and I hope that everybody here gives backing a second thought.

EDIT 1: Gruber obviously carries some sway, the total grew by $1850 in the last 10 minutes.

EDIT 2: To continue the above, the total grew by $15000 in the last 2 hours.

<comment><USER39> _you get hardware (most generally, also some software and services like AppleCare) from them, and you give them money in return_

Is it so simple? Does anyone actually believe that Apple considers the transaction complete when you walk away with your shiny new Apple device?

They want to be your content middleman. They want to force you to shop in their store. They want to push the iAds service. I get emails from Apple pushing books and movies and iPads for universities and so on literally nightly. They have a store full of apps trying to foist smurfberries on the kids of unsuspecting parents naive enough to implement an App Store passwords.

I like the general concept -- I was one of the earliest and most fervent proponents of micropayments as opposed to advertising driven sites -- but the dichotomy presented is false. Businesses don't act like that. I pay my cable company for cable and they keep sending me magazine subscriptions. I buy a $40,000 car and they try to foist services (XM Radio, OnStar) on me, and then they try to sell the data about me to interested parties.

The world is a very complex place. Twitter and Google wouldn't exist without their users, and anyone who pushes the simplistic "if you aren't paying you're the product being sold" line has a position that only has merit if you don't actually think about it for long.

Of course Gruber carries weight, which is why I asked about his personal "investment" in this -- he seems to essentially be putting his reputation behind something that is almost certain to fail.

<comment><USER41> Who actually _likes_ getting magazines from the cable company or car dealerships foisting other services? Isn't there room for a different kind of business model? Vimeo is a good example. Unlike Youtube, Vimeo doesn't advertise and charges users for premium service. And for a certain types of content producers that makes it a much more attractive platform. Hence you generally see artistic works with high quality standards there vs. attention- grabbing fluff.

</comment></comment></comment></comment></comment><comment><USER42> Why is app.net better than identi.ca? Honest question, I am curious

<comment><USER43> Because it makes Dalton Caldwell money. At least, that's the reason Caldwell would give you.

If Caldwell actually cared about making "a real-time social service where users and developers come first, not advertisers" he'd build something on status.net, or at least something open source.

<comment><USER44> > If Caldwell actually cared about making "a real-time social service where > users and developers come first, not advertisers" he'd build something on > status.net, or at least something open source.

I disagree.

When making a business, your paying customer is the one you serve. If App.net goes for charging users and developers, they'll (logically) focus on those exact people.

<comment><USER45> I disagree with your disagreement. Caldwell just wants to make money (and the glory) Nothing wrong with that. I want to make money too first and foremost :)

<comment><USER44> Hah!

I'm more disagreeing with the notion that a product can't be for users/developers if he is charging them for it.

There is of course nothing wrong with making money :D</comment></comment></comment></comment></comment>


Palmerston Island, Population 35 - <AUTHOR> https://www.outsideonline.com/palmerston-atoll-island-climate-change <comment><USER2> Couple of Palmerston sea shanties:

[https://www.youtube.com/watch?v=DlwhUKO6RYA](https://www.youtube.com/watch?v=DlwhUKO6RYA)

from:

[https://www.discogs.com/David-Fanshawe-Spirit-Of- Polynesia/r...](https://www.discogs.com/David-Fanshawe-Spirit-Of- Polynesia/release/4034023)

This is a good one too, basically it's a hold over from when servicemen were stationed there in WW2, probably using the same bugle!

[https://www.youtube.com/watch?v=FF6LPqzFcc8](https://www.youtube.com/watch?v=FF6LPqzFcc8)

Well work checking out, looks like the other tracks are on youtube too, but missing the sleeve notes and background info.

</comment><comment><USER3> Just one photo?

<comment><USER4> Crap innit?</comment></comment>


Apple's Bid to Reclaim the Classroom from Chromebooks May Be Too Late - <AUTHOR> https://www.fastcompany.com/3069231/apples-bid-to-reclaim-the-classroom-from-chromebooks-may-be-too-late <comment><USER2> Interesting read !

> Chromebooks also have physical keyboards, which is seen as a real-world > usability advantage by educators and regulators.

While I agree on this, I see many still prefer the MacBook (certainly if you can afford the price): Chromebooks are much more limited.

> With all this in mind, Apple's March 21 iPad announcements add up to a move > to bolster the iPad's prospects in education. It announced a low-priced > 9.7-inch iPad, an inexpensive keyboard snap-on keyboard from Logitech, and > some cool new software enhancements for educators.

If you need to watch a screen for 8-12h a day, then the new retina displays are not an option.

Many are telling you that `no these screens do not cause eye problems and/or strain`, but I've seen this multiple times (both on me and classmates).

I still use an old ASUS Eee Note EA800 because of the e-ink technology, my eyes are now much better and I stopped wearing reading glasses...</comment>


Hacker News trends - <AUTHOR> http://collison.ie/blog/?p=50

<comment><USER2> I'm surprised linux usage is that high. Granted, it's been my main OS for ~six months now, but it still surprises me.

<comment><USER3> Nothing that surprising if you think of the target audience. 47% of the users are not on Windows. If you were to look at something like Facebook I think the numbers would be significantly different.</comment></comment>


Mass entertainment in the digital age is still about blockbusters - <AUTHOR> https://www.economist.com/news/special-report/21716467-technology-has-given-billions-people-access-vast-range-entertainment-gady <comment><USER2> I suspect that this is partly because we share our media experiences with other people. I don't usually watch movies ( there's some niche stuff that I love) , but I've found that watching one or two a year helps me keep up a conversation with new people. Mass appeal means that I can get along with a wider spectrum of people.</comment>


Using Data to Better Understand Climate Change - <AUTHOR> https://www.nsf.gov/discoveries/disc_summ.jsp?org=NSF&cntn_id=189519&preview=false <comment><USER2> After reading this first blurb:

> The year 2016 is on pace to be the hottest on record, with each of the first > six months setting new temperature records... Climate change, combined with > the effects of El Niño, is the main reason behind the record-setting > temperatures.

I'm anticipating the climate change deniers flooding the media next year with headlines about how much cooler 2017 is compared to 2016.</comment>


Six Principles for Making New Things (2008) - <AUTHOR> http://paulgraham.com/newthings.html <comment><USER2> My favorite line in PGs essay:

"I like to find (a) simple solutions (b) to overlooked problems (c) that actually need to be solved, and (d) deliver them as informally as possible, (e) starting with a very crude version 1, then (f) iterating rapidly."

<comment><USER3> That is the Tl;dr of the essay. I looked at that and moved on.

</comment></comment><comment><USER4> A little sad to read this 10 years later knowing that Arc hasn't really caught on. There's a clear optimism in the writing about the project's presumed future success - I think anybody who creates something public shares that feeling - but marketplaces are unpredictable and the odds aren't usually in your favor.

<comment><USER5> Are you sure Arc hasn't caught on? After all, we're submitting comments via Arc.

Some of the best work in history was done because the creator wanted it themselves. Even if no one else uses it, the work speaks for itself.

Arc also played a crucial role in bringing attention to pg's essays, which YC's success was a direct consequence of. No essays, no audience; no audience, no founders, and no YC.

<comment><USER6> I guess what he means is that Arc is no Clojure.

</comment></comment></comment><comment><USER7> I wonder if initial crudeness actually has a _strictly positive_ contribution to the likelihood of success.

Perhaps the form of the product has a role in setting expectations. If so this would have a role in attracting forgiving first customers (e.g. those most in need of your product) and repelling those customers expecting a more "complete" product.

</comment><comment><USER8> I'm on the fence about the message here.

PG announces Arc and receives flack for it. Then writes an article noting that he's always received this same flack for everything that he's done.

Sounds to me like the message is less about Arc or even the principles that he states but more about keeping your head down and working through unproductive feedback.

</comment><comment><USER9> Can someone share info about Cezanne and Klee that PG was referring to? I doubt their approaches were as solution-oriented as PG believed them to be because of the disposition of artists, who usually create for themselves first and society a far second.

</comment><comment><USER7> I agree with this whole heartedly, yet somehow I don't often practice it. I wonder why.</comment>


Ask HN: How would you improve collaboration tools? - <AUTHOR> I'm looking to build a startup in this space since I'm genuinely interested. I'd love to learn what things people feel like are missing that would make work easier when working with other teammates (doesn't have to be technical). <comment><USER2> I think the #1 problem is too many tools.

For instance, I have collaborated with people using Skype, Discord, WebEx, Slack, IRC, Facebook Messenger, Microsoft Lync, icq, AOL Instant Messenger, Paltalk, Tivejo, Go To Meeting, etc.

People will tell you horror stories about all of those things, but I have found them all to be adequate. Often people conflate problems with their audio and network with problems in the tools. It also seems that these tools have made little technical progress over the years, I mean, Facebook Messenger doesn't seem very different from AOL Instant Messenger.

Having them all installed at once is a problem though because most of them want to live in the tray and will cause slowdowns and distractions while logging in. Today many of them are written with Electron and other cross- platform toolkits that many think are bloated for apps they use all the time, but it is insane to have five of them running in the tray.

Same is true for other kinds of collaboration tools, say case management/issue tracking. For instance, a customer of my customer submits a trouble ticket to my customer, I have my own ticket system (so I have visibility into my workload, history, etc.) and then I find the problem is because of one of my suppliers, so I have to make a ticket in their system. At least one of those systems is going to have a system with a login procedure like

[https://www.bing.com/videos/search?q=get+smart+intro&view=de...](https://www.bing.com/videos/search?q=get+smart+intro&view=detail&mid=BA8581A61ABB5C69B7F9BA8581A61ABB5C69B7F9&FORM=VIRE)

and take 45 seconds to load the page for creating a ticket.

At some point people give up on having it work right and just accept the problems. If you want to be a world-class remote, you can't do that.

<comment><USER3> I was going to make the same point. If there was a (preferably web based) chat / call / video conference app that allows me to connect to all of those services and never have to keep context switching, it would be a big improvement. Maybe there is one and I just don't know about it?

As far as issue tracking, unfortunately I think the functionality and workflow differs too much between products for there to be one UI to rule them all.

There is actually one collaboration tool that has been able to work somewhat well (not without cons) across all UI implementations: email. That might be something to think about.

<comment><AUTHOR> That's really helpful to know, I had been considering building software geared towards lean / iterative and auto generated documentation as my initial approach into collaboration tools but I will definitely have to start expanding my research

<comment><USER2> Joe, send an email to email@example.com. I am working on a tool which is oriented towards auto generated documentation in the large. It is not "consumer oriented" but more like "Project Xanadu for nerds", so you might find components of it useful.

</comment></comment></comment></comment><comment><USER4> One thought is that a lot of the current/recent tools in this area focus of _synchronous_ collaboration. And it's not clear to me that sending your collaborators a regular stream of non-maskable interrupts is the best route to great products or ideas. So how about some tools that promote _asynchronous_ collaboration?

Not 100% sure what the next stage is, though. I personally find e-mail a pretty good medium for having a considered discussion -- but it doesn't seem to work that way for everyone. Maybe an opportunity there?</comment>


Quantum computation demystified: Shor's algorithm explained in a way that many people can understand. - <AUTHOR> http://scottaaronson.com/blog/?p=208 <comment><USER2> I modded this up because I enjoyed this explanation, but second thought, I would like to revoke my +1. This isn't topical to start-ups. Is this a feature that could be added in the future?</comment>


Exploit Information Leaks in Random Numbers from Python, Ruby and PHP - <AUTHOR> https://spideroak.com/blog/20121205114003-exploit-information-leaks-in-random-numbers-from-python-ruby-and-php

<comment><USER2> Those interested in this should look at a paper from Vern Paxon and Nicholas Weaver:

<http://www.icir.org/vern/papers/witty-imc05.pdf>

A summary of it: A worm used a linear congenital generator to generate its randomness. It used this generator to pick which IPs to try to infect, which hard drives to write data to, and what to write. These researchers used a /8, and were able to use that to count, exactly, the bandwith of all infected machines, how many hard drives machines each had, the time they started up, and locate the exact machine which initially spread the worm. It's really quite amazing that you can get all of this from just packet captures, before you think about it.

<comment><USER3> Very interesting, thank you for sharing.

</comment></comment><comment><USER4> This is a pretty great post. We need lots more posts on practical exploit development for RNG flaws, because there are a lot of bad random number generators out there.

I want to respond to this headline, though. Use of MT as a CSPRNG is very, very common in PHP applications. And it's also true that MT is the algorithm used by Ruby for it's "rand". But this is not a very common Ruby flaw, at least not like it is in PHP, because virtually every Ruby build provides an explicit secure random number generator, either through OpenSSL or (more commonly) through Rails' SecureRandom.

You should know that unless your RNG calls itself "secure" or "cryptographic" --- like, _in the function name_ \--- you are using rand(), not a CSPRNG, and you can't count on it for security ever. You will have the exact same problem in most mainstream languages. Secure random number generators say they're secure. Nobody says Ruby's rand() is secure.

(I'm pretty sure the same is true of Python, but I'm less confident of the specifics. I think this is a very fair issue to raise with PHP in general, though.)

<comment><USER5> Is there any advice you're able to give on how to distinguish situations where you need secure RNG from those that don't matter?

For instance, you definitely need it in poker hand generation - would you need it for random loot generation in an MMO?

Also by "secure" you mean /dev/random, and /dev/urandom is used as if it was rand()?

<comment><USER4> You should pretty much just default to secure random.

/dev/urandom is fine; in Ruby apps, I'd use OpenSSL::Random.random_bytes or ActiveSupport::SecureRandom.random_number.

<comment><USER5> What cases do you reserve /dev/random for? SSH keygen?

Do those functions just read from /dev/urandom?

<comment><USER4> I don't. Just use urandom.

</comment></comment></comment></comment></comment><comment><USER6> I remember someone inferring the Nethack RNG state to show off on online servers by dying three times in a row because of kicking a wand of wishing. Here:

[http://taeb-nethack.blogspot.com/2009/03/predicting-and-cont...](http://taeb- nethack.blogspot.com/2009/03/predicting-and-controlling-nethacks.html?m=1)

</comment><comment><USER7> Indeed as the author rightfully mentioned in his article this method is not designed for crypto purpose. One can use the following Python method instead random.SystemRandom().randint(...)

<comment><USER8> SystemRandom uses the system's urandom, which may not be ideal, either. (The man page for urandom mentions theoretical problems when system entropy pools are depleted.)

The PyCrypto.Random.random option mentioned in another thread by wulczer might be better... but would love an authoritative recommendation from an expert.

<comment><USER4> You should probably use your system urandom/random in preference to any application-layer CSPRNG. Your OS developers are charged with maintaining a high-profile high-value CSPRNG used for most applications on the system, and vulnerabilities in it are a hair-on-fire problem. The same is not true of application-layer replacements. The kernel RNG is also in a privileged position to collect entropy.

<comment><USER9> And what about them new-fangled Intel random number generating instructions?

<comment><USER4> You should trust that your OS will use them when it makes sense to use them. :)

(I'm being glib.)

<comment><USER9> And I was being a bit silly.

</comment></comment></comment></comment></comment></comment><comment><USER10> Here's a hardware solution to the "pseudo" problem: <http://gamesbyemail.com/News/DiceOMatic>

It's a dice-rollingmachine "that can belch a continuous river of dice down a spiraling ramp, then elevate, photograph, process and upload almost a million and a half rolls to the server a day. I may not get nominated for a Nobel prize, but the deep rumbling vibration you feel more than hear when two rooms away is quite impressive."

</comment><comment><USER11> Worth it just for that video of the perfect game of Asteroids.

<comment><USER12> This one is even cooler, to me, since the ship flies around a lot more [http://www.heise.de/video/artikel/Asteroids-Vladimir- Bleifus...](http://www.heise.de/video/artikel/Asteroids-Vladimir-Bleifuss- Panteleev-17-Platz-1573642.html)

</comment></comment><comment><USER13> Funny, that someone did this. I wanted to implement something similar to check that GCHQ weren't lying to me about this: [http://blog.jgc.org/2011/12/back- channel-confirms-that-im-ri...](http://blog.jgc.org/2011/12/back-channel- confirms-that-im-right.html) Essentially, I thought that it was possible that this block of code was not what they actually used (partially because 0x7f did not appear in the output).

I didn't do it because I had only 326 bytes of random material with 7 bits per byte. Too little to recover the state.

<comment><USER14> Depends on how much state they seeded it with. It's pretty common for MT to be seeded with 32 or less bits of entropy.

</comment></comment><comment><USER15> Interesting read. Realistically, to "know all the cards in online poker games" wouldn't you also have to reverse engineer how they map the random number to a card?

You would get a jack of hearts, not an integer between 1 and 52, right? or does the exploit somehow work for arbitrary patterns as well?

<comment><USER16> I think the author was alluding to the following: [http://www.cigital.com/papers/download/developer_gambling.ph...](http://www.cigital.com/papers/download/developer_gambling.php)

</comment></comment><comment><USER17> A PRNG based on RC4 should be very fast but much more secure than a MT or a LCG.

EDIT: also it is very important to seed with care if you are interested in security. Even a strong PRNG seeded with seed_prng(time(NULL)) will be an easy target for brute force attacks.

At least /dev/urandom should be used for seeding purposes in applications where you need an unguessable PRNG.

<comment><USER18> > At least /dev/urandom should be used for seeding purposes in applications > where you need an unguessable PRNG.

I usually consume /dev/urandom and convert it to the base I require, using that directly as my random number. When you say you should use it for seeding purposes, are you referring to using /dev/urandom as a seed for something like PHP's rand(), or do you mean something else?

<comment><USER4> Seeding is largely a problem you have if you're building (or retrofitting in) your own CSPRNG, which you shouldn't do. The random/urandom interface Unixes provide will allow you to shovel in high-entropy data, but I think you're more likely to do harm than good (it's a marginal impact in either direction, though).

You're doing the right thing already.

<comment><USER18> Aha, that makes sense. Thanks!

</comment></comment></comment></comment><comment><USER19> <http://news.ycombinator.com/item?id=639976>

<comment><USER4> That post, which is great, is the normal way bad RNGs are broken by attackers: you trace down how they're seeded and then brute force the seed values.

What's great about this blog post is that it attacks the underlying algorithm; the post you linked to is more fun, but this post is a little more useful.

In either case: just use random/urandom and this stuff is taken care of for you.</comment></comment>


How to Raise Money - <AUTHOR> http://robrhinehart.com/?p=1541 <comment><AUTHOR> I'm going to be honest: I thought this was hilarious and I posted it for this gem:

 _" Inside appears a vast, lush forest. I smell sweet wildflowers and damp soil. Hm, doesn't seem to be so bad. Suddenly living vines grasp me from all directions and I notice towering carnivorous plants approaching. Thinking quickly, I shred through the biomass with my blades and continue forward. They are too many, though. For every vine I slash two more seem to grasp me.

I am about to lose hope when I realize that the thick trees are not bearing typical fruit, but packaged food products like twizzlers and oreos and…Coffiest! I rejoice. I free one hand by slashing a particularly thick vine, and lunge at the bottle, severing it neatly from the tree and the cap in one motion. I catch it in the same hand and promptly imbibe it.

With newfound strength and energy I begin making forward progress again. These plants can't hold me back. At the end is a sheer wall with a single redwood tree, must be 30 in diameter, climbing to the top. I dig in to the trunk with my blades and make the grueling climb to the top.

Another glass case, which I slash cleanly through with my left blade, contain two matching Asus Zenwatch 3's. Awesome. I put them on, one on each wrist, and use the key to open the circular door.

"Well done Mr Rhinehart" the same voice from before booms through the chamber. "But greater founders than you have failed the final test"

I notice I am standing on a vast expanse of steel grating with bubbling lava beneath me. The room seems to expand infinitely in all directions. I am just beginning to feel the extreme heat and tearing off what is left of my shirt when suddenly something hits me in the chest like a sledgehammer. I double over, the wind knocked out of me, and feel the steel grid shaking beneath me.

As I look up from my crouched position I see a massive white unicorn charging directly towards me, its brilliant skin reflecting heat and light and its sinuous muscles rippling with rage. Its horn is razor sharp and covered with diamonds. Thick pink laser beams periodically blast from its eyes. Another beam strikes me in the shoulder and knocks me flat on my back. I skid backwards several feet and panic when I realize I've lost grip on my right blade.

Another beam seems trained on my skull when I instinctively lift my right wrist to protect my face. The laser beam harmlessly bounces off the face of the Asus ZenWatch 3 and disappears in to the darkness. Suddenly I realize I stand a chance.

I take a moment and marvel at the beauty of the creature.

"Such a shame I must destroy you, beast" I shout in its direction, which seems to anger it even further."_</comment>


Wire – Secure messenger - <AUTHOR> https://wire.com/en/ <comment><USER2> have started using it some days ago and am really happy with it on both Android and the Linux Desktop version. Feels very lightweight in terms of resource use while giving the same feature-set as Skype (just with better security).</comment>


Marissa Mayer Says That She Won't Read This - <AUTHOR> http://techcrunch.com/2013/09/24/marissa-mayer-wont-read-this/

<comment><USER2> And with a title like that, neither will I. Linkbait like this is a waste of everyone's time.</comment>


The $36 soda: Overdrafting in America - <AUTHOR> http://banksimple.com/blog/Banking/the-36-dollar-soda-overdrafting-in-america/ <comment><USER2> In the book "The Big Short", Michael Lewis mentions how one CEO admitted to an audience that free checking accounts were simply a way of screwing over poor people for all these additional fees, like overdraft, etc. It's really because people with less money need to spend more time managing their money because they are closer to drawing down the account, and the banks are betting on this. It's basically predatory banking, and I guess based on the numbers, extremely profitable.

It's the exact type of behavior I would expect from a bank. But let's not swallow everything that the article said. It's not like banks of yesteryear were so magnanimous. Back in the Great Depression, it was the banks that screwed over so many farmers and home-owners that many states, including California, made mortgages non-recourse meaning that banks could only take back the house in the case of foreclosure, something that many people took advantage of during the latest housing boom.

<comment><USER3>
      It's the exact type of behavior I would expect
      from a bank.

From _an American_ bank. There is no German, Dutch or French bank that does that and I doubt Spanish, Italian or Swiss banks do it. Sure, if I overdraft, I pay (serious) interest over the amount overdrawn for as long as I am overdrawn, but you aren't hit with any fine at all.

In fact, I have arranged that I actually can't overdraft. Automatic bills just bounce when I'm underfunded. That's between me and the companies whose bills bounced.

<comment><USER4> As an American who moved to the Netherlands, I can vouch for this. My fellow countrymen don't know what they're missing:

* There are no ATM fees levied by another bank's ATMs.

* There are no ATM fees levied by _your bank_ for using another bank's ATMs.

* There are no fees or minimum transactions for using your debit card at a business.

* You are allowed to overdraft, you just pay an interest rate to the bank for the money you owe (mine is 10%, up to €2,500).

* There are no bounced check fees, because:

* There are no checks. Non-debit card transactions are done via online banking, are free, and usually instantaneous.

* All banks use 2-step authentication (phishing is nearly impossible).

I was confronted by the joke of US banking again recently when I had to mail someone in the US a check, which they lost, found 6 months later and cashed... generating an overdraft fee in my US account.

Totally unnecessary.

<comment><USER5> "There are no fees or minimum transactions for using your debit card at a business." isn't always true. For (small) business with not enough transactions, accepting debit cards is an expense, and below 10 euros they often charge 0.25. Nothing major though.

And the big downside to all of the above? Credit card acceptance is very very low. Tourists can only purchase train tickets by credit card at Schiphol Airport. Everywhere else the option is disabled due to fraud issues.

<comment><USER6> _For (small) business with not enough transactions, accepting debit cards is an expense_

Here in Ireland it's not uncommon for shops to insist on cash only for amounts less than €10 (except in some extrenuation circumstances (like the ATM in their shop being broken)).

 _Credit card acceptance is very very low._

That has definitly not been my experience. Perhaps you are thinking of chip- and-pin credit cards. Here in Ireland (& IME UK), credit cards are accepted in many, many point of sales/retailers. But they might only accept chip and pin credit cards, which I believe are uncommon the USA.

<comment><USER5> In the Netherlands very few stores accept credit cards, most accept just the dutch "PIN" and "Maestro" (=EMV). Not many people in the Netherlands have a credit card.

Vice-versa however, I was able to pay at WalMarts in the US with my Dutch debit card with no issues (once I hit the right button, it's confusing).

</comment></comment></comment></comment></comment></comment><comment><USER7> I had an annoying run in with them. It happened because I didn't know Suntrust didn't take out charges in the order they occurred. They take out the largest charge first, and each charge as they decrease in value.

One day I had had a few small charges, and realizing it was a week intl payday, I figured I'd run to the grocery store and make a large precise of groceries, to ensure I had food taken care of, expecting to make s single overdraft.

Suntrust had other plans. They took out the large grocery bill first, meaning a quick lunch at Taco Bell cost over $40, shipping a small box cost over $50, and a Slim Jim and cream soda cost almost $40. In addition to the overdraft on the groceries.

It's a very easy trap to fall into if you're living check to check and make even the slightest mistake.

<comment><USER8> Which is why you shouldn't be using such a dangerous service when living check to check.

Go to a bank machine, inquire about your current balance, and then extract cash to make your purchases with.

Banks may be predatory with fees, but really it's your own responsibility to avoid this trap, and it's not even that hard to do. You can also join a credit union.

<comment><USER7> I'm not sure why people are downvoting you... I get what you're saying and don't completely disagree.

But I think it's worth noting, because I'm not sure if I got the point across: I was intending to overdraft on the final, large fee. The insane overdraft fees only affected me in an unexpected way because they go out of their was to also screw people on the order of withdrawals.

<comment><USER9> Isn't "intending to overdraft on the big charge" analogous to "intentionally reading from freed memory because you think it hasn't been reallocated yet"?

relying on undefined system behavior is dangerous.

<comment><USER10> Your bank should have public documentation about those procedures. So it's not exactly undefined.

<comment><USER11> The bank does have public documentation about those procedures. Edit: I realize now that may have been your point.

</comment></comment></comment></comment></comment></comment><comment><USER12> I work for a US bank, "ING Direct". On our "checking" account (electronic payments preferred), our policy for overdrafts works like this: if you overdraw your account, we do NOT charge you an overdraft fee. Instead, we automatically turn it into a loan at typical unsecured lending rates (11.25% today: prime plus 8%). As soon as you deposit enough money to go back to a positive balance, we go back to paying interest on your balance.

I hate feeling like an advertisement for my employer, but I just don't understand why ALL banks can't work this way!

<comment><USER13> I prefer the "deny all" option, where any transaction that overdrafts is simply denied at POS.

This is absolutely no problem for small transactions. For larger, potentially inconvenient ones like bills or rent, I really don't see the possibility. Maybe I'm too careful with my money, but I don't usually try to make large payments without checking my funds first.

<comment><USER14> I concur with a strong preference for a "deny all" option. I have credit cards for when I require a temporary line of credit.

</comment></comment></comment><comment><USER15> STOP USING COMMERCIAL BANKS.

Sorry for the caps but it cannot be stressed enough.

There is no good reason not to use a credit union - almost everyone in the USA can find one and qualify and since they are member owned they won't do nonsense like this and don't need regulation to force them to do what is morally right.

<comment><USER16> I'm curious here: what are the benefits of using a credit union over a bank? What are the drawbacks?

Right now I keep 95% of my money in investment accounts (I use Interactive Brokers these days, they have reasonable fees for trades and zero bullshit, which puts them two steps ahead of any normal bank that I know of), and push the remaining stuff to a throwaway checking account @BoA as needed to cover recurring payments, bills, etc. I don't have any sort of credit whatsoever, I've always preferred to pay up-front (and yes, this _has_ been a problem, as I've gotten older I've realized that some things, like car rentals, are exceptionally difficult to deal with without a credit card, and getting a credit card is actually somewhat difficult if you skipped it for the first part of your life, and they really don't care how much money you have if you have no credit history...).

Trust me, I'd love nothing more than to know that I was contributing absolutely zero to the consumer banks. But I've never really looked into alternatives; the main reason I use consumer banks is for convenience, like being able to set up bill payments, have a debit card, deposit checks at an ATM, etc. Can credit unions cover those use cases? And can someone like me, who's over 30 but has never borrowed money before, get into one?

<comment><USER17> The main advantage is that credit unions are member-owned and therefore run to benefit the members, not some investors. This keeps them from having an interest in screwing you via weird fees and whatnot. The main disadvantage I've seen is that smaller ones have less leverage and so you pay more ATM fees to other banks.

I've been in the no credit card boat, so I know exactly what you mean. I got mine by having a car loan I don't really need that my brother cosigned to create a credit history. You may also be able to get a loan from your broker. Mine keeps telling me how big a loan I'm approved for, though I've never tried it.

<comment><USER18> > The main disadvantage I've seen is that smaller ones have less leverage and > so you pay more ATM fees to other banks.

Many credit unions are now part of ATM networks where you can use any of the members' ATMs fee-free, and in some cases can use other members' branch offices for free as well (at least for routine stuff). Depends somewhat on your location and your ATM-using habits; if you need to use a random mall ATM that doesn't help, but there are usually several member ATMs nearby.

<comment><USER17> I notice this because the only free ATMs I know of are too far out of my way to be practical. I would probably do better to move to a larger credit union, but I don't know of any others I could join.

</comment></comment></comment></comment></comment><comment><USER19> For months after the new regulation my bank was giving me a screen when I logged on to online banking. It went something like this:

 _Recent Federal regulations require us to re-confirm your enrollment in this valuable service you'd previously been getting with your checking account._

[ YES! Please! ]

 _[ Remind me later ]_

<comment><USER20> My bank had something similar. I really don't understand why they're allowed to do it at all, even as an opt-in "service". If I wanted to spend money I didn't have, I'd use my credit card. At my bank, an overdraft counts as a cash advance from your credit card anyway. It's just a way for them to force you to borrow money at an inflated interest rate, and it's absolute bullshit.

</comment></comment><comment><USER21> I remember when BB&T called me to beg me to authorize them to enable overdraft "protection" on my account. They acted like it would be doing me a favor, and when I asked them why they would even bother me about something so horrible, the lady on the phone insisted that "the government" was trying to interfere in our freedoms or some other such bull crap.

</comment><comment><USER22> Made 2hrs after of walking out of a Wells Fargo. <http://fuckwellsfargo.com>

<comment><USER23> Guess: The reason you censored the logo but not the domain is because you don't really have the appropriate typeface & just pasted the "F" from "Fargo"?

Idea: You _could_ attempt to construct U, C, and K: U = top of L + bottom of O; C = mirror the top half of G; K = maybe the legs of A + the left of R? If you want me to give it a shot, ping me. _Update_ My attempt, just for fun. Result: <http://cl.ly/273o3w1z2d2B3y2A0e1y> _(I first did this sort of font- less logo-hacking in MS Paint, maybe 14 years ago; then 5 yrs ago in Photoshop:<http://cl.ly/0p0k2H3x2V0y3s0r2v25>; now, in Acorn.)_

<comment><USER22> Thanks. I just googled for the font and came up with Clarendon, but it doesn't look exact. Anything you want to do I'll post. Really not interested in the domain anymore, so if anyone wants it...

</comment></comment></comment><comment><USER24> _Once upon a time, banks made money by charging interest on loans._

Banks don't have to offer checking accounts to make money charging interest on loans. I suspect what will happen if the government starts to get into the business of deciding what fees ought to be charged for this or that the banks will start charging a flat fee to have an account.

Once again "advocates" for the poor will end up screwing poor people.

<comment><USER9> How is it screwing poor people to have a flat fee that eliminates the negative-sum game of debit/credit shuffling?

Even if flat fee was considered bad, by taking away the chance for some folks to skate the line and win, that is trivial to fix with a Federal income tax credit. You can argue against that on liberation grounds, but not bleeding heart grounds.

</comment></comment><comment><USER25> Personally, I never use my debit/check card. I only use credit. There are much stronger consumer protections. I can contest/deny a charge, and not pay until it's resolved. No fees. Cash back. A free, no interest loan on which to float my purchases until the end of the billing cycle.

It is amazing to me that people use, or even sometimes prefer, their debit card over a regular credit card.

</comment><comment><USER26> I use Chase, and they tried to get me with this once. I had to call and yell at them and basically asked them how it's possible that they know I don't have funds and still let the transaction go through.

I told them that their systems were faulty, and they told me this was a 'feature' of the account type.

I told them I never asked for such a feature, and expect it to work like every other bank account where it denies transactions based on funds.

They reversed one of the overdraft fees and removed the 'feature' from my account at no cost to me. Now if I don't have funds in my account and try to make a transaction, it gets denied. The way it should be, I haven't paid overdraft fees since then.

<comment><USER27> I also turned off overdraft on my account, but I did this when I got my Wachovia debit card in the mail. It has as a $5000 per _DAY_ limit of transactions. I called to get it lowered, to say $500 but they couldn't do it on my blue debit card. Since $5k was more than my checking account at the time I turned off overdraft so someone couldn't drain my savings account along with it.

</comment></comment><comment><USER28> My brother, a university student, got trapped in the overdraft scheme. This bank, TCF Bank, encourages students to sign up during orientation. My brother decided to sign up and deposited a small sum of money. Not realizing there exists an overdraft fee, he continues to buy things thinking the bank will prevent a transaction if his balance hits 0. He didn't realize his until letters from debt collectors came in the mail asking for $300! He tried with multiple TCF branches to try and reduce this amount, but no one budged. He got screwed!

What did he purchase to have to owe $300? He frequently buys $0.50 candy and $1 chips... at $30 per overdraft... yeah

</comment><comment><USER29> I was discussing this with my friend the other day and she's convinced that if she didn't have overdraft 'protection' there are still certain merchants who run debit cards as credit cards which then incur an overdraft fee anyway. Has anyone heard of this? I'm looking for some evidence I can use to get her to cancel the overdraft nonsense before she gets further in debt.

<comment><USER30> Yep. Example would be having your account tied to your PayPal. It will remove regardless if you have the overdraft protection or not.

</comment></comment><comment><USER31> I think credit card companies are starting to charge for "overdraft" fees.

I got mails asking me to sign up for over-the-limit protection program. I was like, huh? What over-limit? Just decline the charge when the limit has been exceeded. Apparently the CC companies would gladly authorize over the limit charge with a fee. Sneaky.

</comment><comment><USER32> I hate this. I hate the way banks try to think up underhanded ways of screwing their customers (like cashing checks in largest to lowest so they can bounce as many as possible).

Having said that, the old "Store your money here so we can lend it to others" business model is not as profitable as it used to be.

Edit: Removed reference to interest rates.

</comment><comment><USER33> Almost every bank's overdraft fee in Canada has been pegged at $42.50 for the past 5 odd years, perhaps longer.

I just paid $42.50 for mistakenly giving a $3 refund in Canadian dollars via paypal, when both my paypal and my bank were flush with US funds, the simple fact that I mixed up a currency symbol means that refund now cost me $45.50.

This is one of the reasons I stand behind the bitcoin idea. Fee free banking would be too incredible.

<comment><USER34> Omitting the part where you asked Paypal to debit a linked account that had less than $3 in it...

<http://www.ingdirect.ca/en/chequing/index.html>

cheaper overdraft if you qualify, [http://www.banking.pcfinancial.ca/a/products/chequingAccount...](http://www.banking.pcfinancial.ca/a/products/chequingAccount.page?region=ON&language=en&signinop=OB)

</comment></comment><comment><USER35> When are these guys going to launch?

</comment><comment><USER36> Banking in UK is so ridiculous, beside of all insane overdraft charges when you enter your PIN incorrectly (Pin & Chip is mandatory in many EU countries) your bank charges you for £1

<comment><USER37> Would you happen to know which bank is doing that at the moment? In the last year, I've had a debit or credit card from NatWest, Halifax, Lloyds, Santander, MBNA and Barclays; never had an "incorrect PIN" charge though.

If it's a new policy at one of those, I guess I'm closing my account...

<comment><USER36> This is Lloyds TSB and they've being doing this for the last 5 years, not sure why you haven't noticed (maybe you get it right every time :) ).

Overseas withdrawal can cost up to £4 and overdraft charges is can go up to £60 Lloyds not to mention they'll decrease your CC limit to £500 when you forgot paying £7.

</comment></comment></comment><comment><USER38> Or you could just not buy shit that you can't afford.

</comment><comment><USER9> Honestly, is this post valuable information previously unknown to anyway, or a cheap PR/SEO gambit by the company that posted it?

</comment><comment><USER39> I agree that banks are predatory, but the fact that people can't keep ~$500 in their bank account indicates they are spending more than they are earning. When someone can't keep an extremely small amount of cash on hand at all times. it doesn't mean they are living paycheck to paycheck and just netting zero - it means they are accruing debt every cycle, and then struggling to stay cash flow positive in any way necessary.

So, if you ask me, the solution to America's woes in this regard is not to eliminate overdraft fees. That's just addressing a symptom. The real solution is a living wage for all Americans, or some other way to prevent poor people from sinking into debt little by little. Then banks wouldn't construct their systems like this, because it just wouldn't work.

Instead of patching bandaids onto the financial system, we need to lift people up from poverty directly. Want to solve overdrafts? Tax the rich and give the money to the poor.

As for BankSimple, that's nice marketing and all, but let's see if BankSimple becomes the bank of the poor. Can anyone get a free bank account with BankSimple and keep $0-$500 in it?

<comment><USER40> I would like to disagree regarding the fact that over-draft fees are the realm of the poor. I've had the misfortune of being charged overdraft fees twice and both times were because I accidentally swiped my debit card and then realized I'd overspent. Both times, I wasn't spending more than I had. I had a substantial amount of cash in a separate saving account as well as my investment account. It was just my checking account that was low of cash.

As for BankSimple becoming the bank of the poor, I feel that it wouldn't be that big an issue. They site focuses on integrating technology for pretty much everything you need to do. Check depositing is by smartphone. There are no branches - everything is online/phone based. This will probably deter the _poor_ to sign-up since people who have < $500 balance on their bank account probably aren't going about with a smartphone and a data plan.

<comment><USER9> What the heck bank is this? I bank with the reviled BofA, and once a year or so I misjuggle my accounts and bounce something, and every time they courtesy credit the fee, which is their official policy.

Usually when this overdraft sob story is posted to a forum with a call for revolution, it is by someone who is a habitual line skater who is miffed they keep geting caught out.</comment></comment></comment>


Ask HN: Selling app IP? - <AUTHOR>

I'll make this short.
I have an iOS app side project that's making ~$2-$4k a month, it has been reasonably consistent in revenue for the past year.
It requires a little bit of maintenance and support, and could probably make more if there was a stronger focus of improving it and listening to customer requests.
I don't have that time. Whereas the money is a nice bonus, I feel like someone else could benefit more from it than I have time and interest for. But I have no idea where to even start thinking about selling an App codebase/IP. An Android port would be fairly easy as well, but again.. time and general interest in the project has diminished on my behalf.
I was hoping someone could give me a bit of insight from their point of view. Anything is appreciated. <comment><USER2> flippa.com

<comment><AUTHOR> I was under the impression that was for more hobby level apps with a very tiny amount of revenue, but maybe I was mistaken. I'll check it out, thanks!</comment></comment>


Random-walk Auto-generated Poetry - <AUTHOR> http://rhymeless.hamiltonulmer.com/darwin.html

<comment><USER2> Looks like an Eddington Algorithm (likely misnamed, but taken from Eddington's quote about monkeys typing Shakespeare). It's done by hashing the entire text and then randomly stepping down a line. The size of your step (one word, two words, etc.) effects readability. I recall once seeing somebody's bot use this algorithm to occasionally spew out the bible on a religious chat channel. Drove the locals nuts.

</comment><comment><USER3> I like the idea. I think it would be better illustrated with shorter lines, though.

</comment><comment><USER4> Language processing may give rise to something wonderful. Interesting work.

</comment><comment><USER5> Looking forward to seeing the source!</comment>


Voxtrot - The Free Mobile Network - <AUTHOR> http://www.arcticstartup.com/2011/03/04/voxtrot-the-free-mobile-network

<comment><USER2> just tried it - once you figure out that it uses your phonebook its very simply to use and good voice quality</comment>