ZTE Starts Sales of Open C Firefox OS Phone on eBay - <AUTHOR> https://blog.mozilla.org/blog/2014/05/08/zte-starts-sales-of-open-c-firefox-os-phone-on-ebay <comment><USER2> For people who are interested in being able to develop on the device and flash new builds, I would suggest waiting a little longer for the reference device

[https://blog.mozilla.org/blog/2014/02/23/new-developer- hardw...](https://blog.mozilla.org/blog/2014/02/23/new-developer-hardware-and- tools-show-firefox-os-ecosystem-momentum-2/)

It is due to be shipped soon, is going to be used widely internally for development and full public builds / a good dev experience has been promised.

<comment><USER3> Do you know how much it will cost?

<comment><USER4> The Mozilla page [1] says 170 USD including global shipping.

[1]: [https://developer.mozilla.org/en- US/Firefox_OS/Developer_pho...](https://developer.mozilla.org/en- US/Firefox_OS/Developer_phone_guide/Flame)

</comment></comment></comment><comment><USER5> Hope it's noticeably faster than the ZTE Open which I couldn't realistically use for day to day applications due to the lag and that it never updated to the latest Firefox OS and I had trouble doing it manually because I didn't know which build to flash my device with (lingo?)

Going to give this one a try.

So far, 2 Firefox phones and I haven't paid as much as I did for my 1 Android. So technically, I can still justify trying 1 more version of the ZTE phone if it comes out for around $99 in the next year or so :)

I keep trying though because I just love the idea that I can use my current web development skill set to create native apps for this so easily. My first attempts on the ZTE Open went really well.

<comment><USER6> >I keep trying though because I just love the idea that I can use my current web development skill set to create native apps for this so easily. My first attempts on the ZTE Open went really well.

I'd say those apps are hardly native, now, are they? There are several layers between the code you write, and the actual ARM(in most cases) machine code.

<comment><USER7> Then, I'd argue that writing iOS app in Objective C is not native because there are several layers between Obj-C and the Apple A7 cpu.

There might be more layers on Firefox OS than iOS, but I'd take more abstraction layer than write speedy "native" code any day.

<comment><USER8> Speed definitely still matters for everyday apps on mobile devices, because their processors are so much slower than actively-cooled desktops and laptops, and because touchscreens demand a more responsive UI. JIT runtimes have gotten faster, but statically compiling to machine code (especially when link-time optimization is used) cannot be beat for things like application launch performance. And the machine code that Objective-C compiles down to is definitely more native than bytecode for a JIT VM.

<comment><USER9> Could we start to come to an agreement that maybe "Native" might be a bit of a marketing term? For example a browser rendering HTML and CSS is probably native under the current term. It is not until you get to JavaScript that things need the JIT VM.

<comment><USER10> "Native" is not a marketing term, and we shouldn't pretend that it is.

It has a very specific definition in this context, and this definition requires that the application be represented in a form that's directly executable on whatever CPU is being used by the computer executing the application.

Anything that doesn't match that very simple criteria is obviously not a "native" app.

Maybe a new term is needed for describing this type of situation involving Firefox OS. I don't know what that would be, but I do know that we shouldn't go ruining an existing technical term.

<comment><USER9> Would that make Android development that uses XML layouts and the Dalvik JIT VM "obviously not a native app"?

<comment><USER10> Right. If there's bytecode of any sort that needs to be converted to machine code on the fly, then we aren't dealing with a native app.

We wouldn't consider a Java app running on HotSpot on a desktop or server Linux system to be considered a "native app". Thus we shouldn't consider a Java app running on Dalvik on a mobile Linux system to be considered a "native app" either.

Maybe that will change in the Android case if ART and its AOT compilation approach is more widely adopted. But that'll still be some time in the future, if ever at all.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> The previous generation (ZTE Open) started at $79 and is now $69. This price point was so impressive for the html5 capabilities that it had. I even did a presentation on it's SVG performance vs. a similar Android device[1].

I'm concerned about the increased $99 price point. I thought the target market for Firefox OS was the developing world, where they could release extremely low cost phones ($50-$80) that can run the full gamut of html5 (vs. Android that is stuck in 2.3 for phones this cheap). Why release new phones that won't see as much adoption (because of the higher price)?

[1] - [https://www.youtube.com/watch?v=T3MU3jxEye8](https://www.youtube.com/watch?v=T3MU3jxEye8)

<comment><USER11> Don't panic. We're actively working on the $25 dollar phone that was reported earlier in the year (e.g. [http://www.cnet.com/news/with-firefox-os-mozilla- begins-the-...](http://www.cnet.com/news/with-firefox-os-mozilla-begins- the-25-smartphone-push/)). So there will be quite the range of price points to be had.

<comment><USER3> Woo! Great news! One of benefits of having cheap devices is that it significantly lowers the barrier to entry for the developer community. It becomes super encouraging to pick up a phone just to fiddle.

However, one of the biggest problems the community ran into for the ZTE Open was that hardly any Mozilla devs had one. So even though it was the most easily obtainable phone for the dev community, it received very little Mozilla support.

As these low-end devices push the limits the most for Firefox OS, will the Mozilla team start to work with them more?

<comment><USER11> Some Mozilla devs have them, mostly in the Taipei team where a lot of the work on this phone is occurring. Hopefully they'll become more common as time goes on.

</comment></comment></comment></comment><comment><USER12> This is £70 in the UK. That nets you a Lumia 520 as a comparison point. For £30 more you can get an 8Gb Moto G.

I can't see it selling here.

<comment><USER13> Almost identical specs as a Lumia 520, too. 4 GB storage instead of 8 GB (both extensible via sd). Even for a low budget phone, I don't get why they don't go with at least 16 GB. 4 GB is pathetic.

[http://www.gsmarena.com/compare.php3?idPhone1=6155&idPhone2=...](http://www.gsmarena.com/compare.php3?idPhone1=6155&idPhone2=5322)

<comment><USER14> It's even closer to the Nokia X. Once you've installed Google Play that's not bad _, and abroad you can pick up the dual SIM version.

_ The Nokia Store is missing pretty basic apps so provides a selection of third party stores for you to install. Alternatively you can sideload Google Play services.

</comment></comment></comment><comment><USER4> Here's a semi-review by someone who has had the phone for a week [1]. It is not the most professional of reviews, but it could give you some impressions how the phone feels.

[1]: [http://www.youtube.com/watch?v=1wB_KLWJQPM](http://www.youtube.com/watch?v=1wB_KLWJQPM)

</comment><comment><USER15> Do these have an isolated modem? What is the status on running other OSs on this?

<comment><USER16> ZTE Open is as closed and undocumented as your typical Android phone. Dunno about Open C, but I wouldn't expect it to be any different.

</comment></comment><comment><USER17> FEATURE Media : Ability to use device speakers with the FM radio app

Really mozilla? Sorry, I would happily donate $99to Mozilla foundation than buying

<comment><USER18> Please do contribute! Mozilla is not selling these phones, ZTE is.

FM Radio is actually a very important feature in many markets that are not US/Europe. That was a surprise for us too!

</comment></comment><comment><USER19> I didn't see any mention of filesystem access on this phone - can someone comment on that?

Edit: I went this comment[1] and the reviewer shows that file manager apps can be downloaded.

[1]: [https://news.ycombinator.com/item?id=7724972](https://news.ycombinator.com/item?id=7724972)

</comment><comment><USER20> That's an exceptional value. So cheap for such good features. And the firefox marketplace has lots of great apps. FirefoxOS really seems to be taking off, particularly in Latin America.

<comment><USER21> Do you have any comparison charts between Firefox OS usage and iOS/Android in South America ?

<comment><USER20> Just for downloads of my apps (games mostly). More action in the firefox marketplace. Maybe just because Play Store is bigger pond.

</comment></comment></comment><comment><USER22> ZTE's eBay Store front: [http://www.ebay.com/sch/zte_us/m.html](http://www.ebay.com/sch/zte_us/m.html)

</comment><comment><USER23> 144 sold in the United States, hmm. [http://item.ebay.com/291125433026](http://item.ebay.com/291125433026)

</comment><comment><USER24> Does anybody know if it supports Sprint in the US?

</comment><comment><USER25> I would buy this if it had a front facing camera.</comment>


Ask HN: What is the best virtual filesystem library you have used? - <AUTHOR>

A recent story (http://news.ycombinator.com/item?id=741257) mentions that Ruby is ahead of Python in terms of filesystem access. I'd have to agree that Python's file and directory handling could be much better.<p>Out of all the filesystem libraries (in any language) that you have used, which would you say struck the best balance between ease of use and power? Bonus points if it's a virtual filesystem library. <comment><AUTHOR> There was a comment here about TCL's VFS, which the author removed. I thought it was an excellent pointer, since TCL's system seems very cool. His link was: [http://www.ibm.com/developerworks/linux/library/l-sc12.html?...](http://www.ibm.com/developerworks/linux/library/l-sc12.html?S_TACT=105AGX03&S_CMP=EDU)

<comment><USER2> Well, I removed the link becouse actually is the only one that I have used so I can't compare it with another one.

</comment></comment><comment><USER3> KIO, of course file:// with zip:// <http://> is so good that it's used by Konqueror; imap:// and pop3:// if you want them. fish:// for file transfer over SSH (think scp) smb:/ for windows network browsing.

<comment><AUTHOR> KIO is awesome, but I'm looking for something that'll run anywhere, without too many dependencies. If I see something I really like here, I might want to port it to Python at some point.</comment></comment>


Can't Put Down Your Device? That's by Design - <AUTHOR> http://www.nytimes.com/2015/12/06/technology/personaltech/cant-put-down-your-device-thats-by-design.html <comment><USER2> > "There's nothing about a global computer network that necessitates > addiction-like behaviours."

I've recently reflected that despite the internet having origins which benefited the military and scientific community, the utility it offers the average user today is just a glorified photo album.

You see it as people endlessly scroll their Facebook feed, spending very little time even paying attention to the photos they are viewing. You see it in Snapchat, where users are encouraged to narcissistic-ly document their life every few seconds. It's on Imgur (granted, that's not too surprising), Buzzfeed, and clickbait (25 Unbelievable photos taken by a skydiver). I'm sold that if you want to make a successful app or website (based on number of users, not quality of content), it needs to revolve around users taking photos...

<comment><USER3> > the utility it offers the average user today is just a glorified photo > album.

There are basically two kinds of Internet use that young people engage in -- hanging out with friends, and teaching themselves new skills.

The vast majority of young people though are mostly using the Internet to hang out with friends. The exception is apparently affluent white males, who have much higher rates of using the Internet to explore new ideas and teach themselves new skills. This is called the 'participation gap.' (It's perhaps also partly why, for example, there are more male entrepreneurs even though women do better in formal education.)

The important thing to note is that decisions about what to use the Internet for have a lot to do with who you are following in your social networks. E.g. this determines what new interests you're likely to discover, what opportunities are made available to you, etc.

source: [http://www.amazon.com/Participatory-Culture-Networked-Era- Co...](http://www.amazon.com/Participatory-Culture-Networked-Era- Conversation/dp/0745660711)

<comment><USER4> I know you mention that women do better in formal education. That wasn't the case a few decades ago, when I believe there was far less prejudice.

I had lunch with a few female teachers several weeks ago. One of their conversations was around the over-enthusiasm of boys in class. They unanimously agreed that boys needed to "shut up" (literal quote) so girls could answer questions too. This view parallels that of my ex-girlfriend who is (and was then) a teacher who felt boys had some sort of natural advantage that needed to be suppressed.

I also made mention of code.org that had one link only on the main page "why girls should participate in IT" (or very similar words). My young son noticed this and asked if he was welcome.

I would not use today's metrics on boys vs girls in education as a basis for any measurements. If we stopped with the prejudice (which is extremely common today), the picture would look quite different.

<comment><USER5> I am fascinated by your theory that there was less prejudice a few decades ago. This graph, for example, does not look like a graph of _increasing_ prejudice:

[http://www.npr.org/sections/money/2014/10/21/357629765/when-...](http://www.npr.org/sections/money/2014/10/21/357629765/when- women-stopped-coding)

I read that as decreasing systemic bias in education. At least in law, medicine, and physical sciences.

<comment><USER6> That graph doesn't look to me like something characterized by prejudice at all. Why would people suddenly become sexist in the computer technology field only, practically overnight?

The article even suggests that the drop started with the boom of the personal computer. That is not inconsistent with the hypothesis that women do better in formal settings, since that inflection point is essentially the moment it became possible for large amounts of people to teach themselves to be a computer programmer. It seems likely that some pre existing bias (either in interest our ability from girls or more likely an interplay of interest and culture) was just amplified when the flood of autodidacts joined the field, not that everyone decided to exclude women just as the field was getting hot.

<comment><USER5> My point is that the other three lines are indicative of decreasing prejudice in education, not increasing. The computer-science line is clearly different and why is an interesting topic, but it's not the topic at hand.

<comment><USER7> A pet theory I've been developing is the decline in the 80s began with a growth in self destructive behavior in the programming employment sector. Eating junk food, caffeinated energy drinks, lack of exercise, lack of good food, lack of sleep, lack of socializing, lack of overtime pay, lack of professionalism, obsessive game play, lack of life balance, lack of decent working environment. Before the 80s programmer culture felt very engineer / mathematician / academic, after the 80s its kinda felt like an introverts weird interpretation of an all night party, every night. Here have a hot pocket and type all night. A culture that prides itself on twinkies and monster energy drinks isn't going to fit the nearly 100% female readership of the typical health magazine. The stereotypical programming environment is nearly unique in the working world, isn't it? Are there any other job markets culturally like programming? If there were, we could compare how the two fields opposition to personal hygiene or opposition to dressing fashionably, or even dressing in clean clothes might not appeal to women at similar rates, for example. I've only found two work places kinda like programming/IT as defined above. One is military mechanic and the other is SOME trading desks at big finance. Both tend a bit male.

That's directly on topic. I suppose from an "eating your own (addictive) dogfood" perspective its kinda self inflicted.

It would be interesting to look at male/female relations and ratios for programmers at non-traditional employers, perhaps the government or military or maybe academic. I suspect the lifestyle at a unionized state government office is quite a bit different than "standard" programming environment and theorize almost anything would be an improvement WRT women's interest in that workplace. Perhaps addictive behaviors would vary in those circumstances.

Surely there must be some HR statistics buried somewhere at a giant corporation or government about % of programmers participating in the corporate alcoholism project by decade, or something like that, WRT trends in addictive personality by decade.

<comment><USER5> Interesting. One way one could sum up the obsessive-dedication-at-the-expense- of-all-else culture you describe is "macho", which is a reasonable tie to gender.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> Also published recently on the same topic:

[https://aeon.co/essays/if-the-internet-is-addictive-why- don-...](https://aeon.co/essays/if-the-internet-is-addictive-why-don-t-we- regulate-it)

(In fact the NYT article looks like it might be plagiarized from this.)

<comment><USER8> this is better than the NYT article. i don't understand how it can consider regulation though, when the only currency onvolved is the user's attention, and they are their own federal reserves. does the web physically make us addicted, like cigarettes, to the point of unpleasantness when not indulging in the activity, or does it just form patterns pf behaviour that can be easily broken, provided one is _conscious_ of them?

</comment></comment><comment><USER9> Engineering addictive/compulsive usage is the highest achievement for any company as relates to their bottom line. Coke, Apple, FritoLay, Altria, Google etc... Literally every consumer focused company that is a leader in their market has gotten this down to a T and the ones with the most addicting properties among them, do the best.

<comment><USER10> Leading car companies?

<comment><USER11> Status (probably not the best word for it) addiction?

BMW, Mercedes, Tesla, etc... you'll find high rates of satisfaction, repeat business, etc, despite rather high rates of unreliable over-engineered components. It's more important to a lot of people to be driving a technologically advanced Tesla with great acceleration, or a differently- advanced sporty BMW that handles like a dream, rather than a more boring, more reliable car that just works. (Or, for a eco-friendly to eco-friendly comparison, the Tesla inspires much more devotion than other electric or hybrid vehicles.)

<comment><USER12> Tesla is Consumer Reports highest rated car ever.

<comment><USER13> Just. Wait.

IMO you don't know if a car is reliable until the kid created in the back seat is old enough to pick up his prom date in it.

I'll also add that there's not a lot of people driving Teslas as their only vehicle year round in salt states and the typical owner is wealthy and can afford to take care of it.

I'm not saying it's not reliable, just that we don't know yet and that they'll never get very hard treatment.

</comment></comment></comment></comment></comment><comment><USER14> One of the amusing parallels regarding Facebook (and similar products) is the way your likes, messages, and notifications, are basically like a little scoreboard, even in about the same location as old arcade games, and emphasized as strongly as anything else on the site - bright red against a similar shade of blue. It definitely contributes to that impulsive feeling I remember (prior to closing my account) to just keep checking. Similar to the worst psychological tactics and "reward-for-suffering" schemes employed by some game developers, e.g. Farmville, Curiosity, World of Warcraft, etc.

It'd be nice to see gamification used for good rather than kinda-evil, but the potential users they alienate with these tactics are clearly a minority compared to the ones they manage to attract and keep hooked - or else they wouldn't have managed to stay successful products for as long as they have.

</comment><comment><USER15> People tend to refresh the same feeds/groups/sites repeatedly, unthinkingly. Each of those has biases depending on the people who post there. Something useful to interrupt the unthinking refresh cycle would be an app or extension that analyzes group sentiments and occasionally signals "You've visited this site 3 times today. Would you like to try one of the following to see some different viewpoints on the same topics?"

Probably not possible without privacy issues, but if opinions are already being tracked that way for advertising and surveillance purposes anyway, we could get some value out of it...

<comment><USER16> This as a browser extension yes! I need this. I wish I could give you 1000 votes! Please make this happen, I can even help you with it!

</comment></comment><comment><USER17> Frankly I'm not sure how to feel about this line of thought.

I safely avoid experiences like this and I don't see the appeal of Instagram. I imagine the feeling is much like eating snack food: you know you're eating too much, you have plenty, and nothing in the moment except shame will stop you from eating it.

The answer is: don't buy snack food ever. Eat hearty meals and leave it at that.

I take that approach to web/app content: read hearty texts, view great images. Switch it off when the quality dips below ambient levels.

<comment><USER18> So how do you manage your time on Hacker News? Even though this site teaches me things, it works a lot like a slot machine. Each pull of the lever has a small chance of dispensing a reward like a mildly interesting article. Not that different from reddit or buzzfeed. The difference mostly being the academic level of the reward.

<comment><USER17> I'm picky about the kinds of articles I read from HN. I admit that I responded in this thread because I figured the title itself insinuated a lot more than it should.

I tend to opt not to read or participate in threads based on that though. General rules are: read the headline and the number of points for each item on the home page and the "new" page; if it's interesting pop it into a tab. If the quality of the article is mediocre or bad then it just gets closed.

Then I don't come back for at least two hours.

Not sure this is a great general strategy, I'd be interested to see what other people do.

</comment></comment></comment><comment><USER19> "Please revisit using Google Chrome" no, that's okay.</comment>


A cool project: completely revolutionize shopping online - <AUTHOR> http://blogs.harvard.edu/doc/2019/08/12/shoppingcart/ <comment><USER2> It's an interesting thought experiment, but I don't actually see anything here that seems likely to be something that someone is actively working on.</comment>


What do you think about ORMUS – monoatomic gold powder - <AUTHOR>

<comment><AUTHOR> Has anybody tried this?

</comment><comment><USER2> Is this the best resource explaining what it is? [http://rationalwiki.org/wiki/ORMUS](http://rationalwiki.org/wiki/ORMUS)</comment>


Advertising at the edge of the apocalypse (2007) - <AUTHOR> http://www.sutjhally.com/articles/advertisingattheed/

<comment><USER2> One could argue that Marx himself felt he was witnessing the apocalypse, and yet here we are.

My biggest issue with this particular take on it is this, _" The consumer vision that is pushed by advertising and which is conquering the world is based fundamentally, as I argued before, on a notion of economic growth."_

Advertising is not based on growth, it is based on consumption. There is a difference. Let me see if this analogy helps; Survival requires spending money, there is only so much money in the world, once we run out society as we know it will collapse. The fallacy there is two fold, it presupposes that once spent money is destroyed, and secondly that without money society could not operate.

People are, for lack of a better term, actors in a large interconnected system, they both charge the system with work and drain the system with consumption. The 'value' of this system, its GDP, sloshes around from place to place, concentrating at times and dispersing at times. Without its motion, the system stops. Advertising is a means by which actors in the system attempt to get a bit of GDP to slosh their way. They spend some to get some as it were. Sometimes the actors follow along, sometimes they don't. I feel that the effect of advertising on the sloshing around of GDP is a second order effect at best.

Back when my kids were younger the topic of the richest person in the whole world came up. And the obvious kid question, "What would happen if one person got all of the money in the world?" and the answer is we'd switch to barter, instead of buying groceries with dollars we might buy them with traded services. GDP or "production" isn't money, it is something more fundamental than that. Money is merely a convenient accounting system which works well enough for many cultures.

</comment><comment><USER3> The article makes a case for the immense social cost of advertising. If that argument is too radical for you, let me make another one that looks at the true costs of "free" ad-supported web content and services.

In short, it's a lie that ads give people content and services for free:

1\. The advertisers who pay web providers get their money from us, added to the prices of other things we consume. There is no free lunch.

2\. The overhead cost of advertising is huge and we pay for that too.

3\. We pay the opportunity cost of a product that cannot put users first because ad-supported web providers live or die by giving advertisers what they want (and what we want indirectly and secondarily). This includes both the cost of lost privacy as well as business, editorial and design decisions that optimize for advertising revenue. As has been said, they are using us as products more than treating us as their paying customers. Let me restate to be extra clear: WE are the paying customer, but we don't look like that to their finance department.

4\. We pay for all the collateral damage of advertising, such as the tremendous amount of link-bait and other garbage that advertising perversely incentivizes.

5\. We pay the social costs. Whether or not you agree with the social costs laid out in the above article, I'm sure most can agree democracy and the free market assume people make voting and purchasing decisions based on facts and reason. Advertising undermines democracy[1] and the free market[2]. Advertising is predominantly about manipulation and deceit. I believe the social costs are the most expensive.

Added together, we end users are paying a lot more for "free" product than if we could just straight up pay for it. And even we non-users are paying the social costs and collateral damage.

Ads are simply a sneaky and dishonest way to get at end users' money without them realizing it.

-

[This is a condensed version of a more detailed case with reference links that I made here: [https://news.ycombinator.com/item?id=7485773](https://news.ycombinator.com/item?id=7485773)]

[1] Do you really need a link for this one? We all know that money often overwhelmingly decides who gets to run in an election, plays a big part in who wins, and influences what legislation they introduce, support or fight.

[2] [http://www.chaosisgood.com/2013/03/how-advertising- undermine...](http://www.chaosisgood.com/2013/03/how-advertising-undermines- freemarket.html?m=1)

<comment><USER4> > Ads are simply a sneaky and dishonest way to get at end users' money without > them realizing it.

Really? If I make a living by selling shoes, and put a banner outside my shop advertising it, what's sneaky about it?

<comment><USER3> I could have worded that final sentence more clearly, but it seems to me you ignored the previous 8 paragraphs and cherry picked the one sentence open to misinterpretion (but only if you ignored the previous 8 paragraphs!)

My entire comment is about the fact that _" it's a lie that ads give people content and services for free."_

To use your example: You hand out shoes sponsored by Chrysler. You tell everyone the shoes are "free". The shoes have the Chrysler logo, and you collect personal information that Chrysler pays you to use to send targeted Chrysler flyers. Chrysler pays you enough to cover the cost of the shoes, the added logo, and the personal information collection and targeting system. But Chrysler adds the amount they are paying you (plus what they pay other parties involved in the ads ecosystem) to the price of their cars. So as I explained above, your shoe customers are still paying you, only they do it via the hidden markup on the cars they buy, a markup significantly higher than what the straight up price of the shoes would be. They just don't realize this. And the feeling of "free" keeps them coming to you rather than your competitor who sells shoes straight up, with no logos, 100% designed to please the wearer instead of Chrysler, at a straight up price.

That is what I mean by _" sneaky and dishonest way to get at end users' money without them realizing it."_</comment></comment></comment>


How to start JIT-ting - <AUTHOR> https://blog.indutny.com/4.how-to-start-jitting <comment><USER2> I had a lot of fun recently getting my feet wet with JIT using GNU lightning. I highly recommend to check it out because it's quite small and doesn't require an industrial strength toolchain like LLVM. All you need to get started is on one page: [http://www.gnu.org/software/lightning/manual/lightning.html](http://www.gnu.org/software/lightning/manual/lightning.html)

In case you're curious, I built a working LISP compiler from it, but will have to refactor it soon; it has central flaws in handling (un)boxing. Anyway: [https://github.com/mntmn/bomberjacket/blob/master/sledge/com...](https://github.com/mntmn/bomberjacket/blob/master/sledge/compiler.c)

<comment><USER3> On the other hand, it uses lots of macro magic and can break at some points. Also the amount of registers is restricted by 32 bit x86.

</comment></comment><comment><USER4> It would be nice to have a reference on how to create a JIT compiler. I seems like there really any system surveys of the subject equivalent to the "Dragon Book" for regular compilers.

</comment><comment><USER5> I'm taking a look to asmJIT ([https://github.com/kobalicek/asmjit](https://github.com/kobalicek/asmjit)) , to implement a CPU core JIT emulator for Trillek ([https://github.com/trillek- team/trillek-vcomputer-module](https://github.com/trillek-team/trillek- vcomputer-module)). But always I find that there is a lack of information of how handle self-rewriting code on a JIT emulator.

Actually I have some ideas using a mix buckets + interval tree to track used/dirty blocks...

<comment><USER6> I think QEMU is using used/dirty blocks in some way to handle this.</comment></comment>


Please stay classy and stop copying BirchBox - <AUTHOR> http://labaraka.tumblr.com/post/19452076036/please-stay-classy-and-stop-copying-birchbox

<comment><USER2> Multiple successful low-cost copies demonstrate the barrier to entry is low, and in doing so, improve the efficiency of the market.

Unsuccessful copies _may_ demonstrate that the barrier to entry is high (for whatever reason), and may in doing so still improve the efficiency of the market. Likewise, a failed clone may simply demonstrate the copying entity's inability to compete.

Regardless, I don't see how attempts to copy (and improve?) are a bad thing for the market.

</comment><comment><USER3> I don't think it's 'unclassy' to replicate a successful model in another vertical, but this model usually doesn't translate well.

BirchBox gets all of their samples for free. Beauty companies are used to giving out free samples and consider it a marketing expense.

</comment><comment><USER4> Business is about competition, every product in history has had competitors so I don't see what the big deal is. If you know a market I can enter where I will face no competition please let me know because I want in.

</comment><comment><USER5> I'm sure the BirchBox team are lovely people and good on them for building a successful business, but they did not invent the idea of subscribing for a box of goodies.

BirchBox launched in May 2010 (source: [http://articles.businessinsider.com/2011-11-08/strategy/3037...](http://articles.businessinsider.com/2011-11-08/strategy/30372330_1_customer- tech-challenges-job-descriptions) in which it's already described as a "NetFlix [clone] for beauty", NetFlix having started in 1999).

startupschwag.com started operating in mid-2007, sending startup t-shirts by subscription.

<http://testtube.newbeauty.com/> appears to have been running since early 2007 in the exact same market that BirchBox is in.

Wine of the Month Club (.com) pre-dates the Internet, sending wine by subscription since 1972.

Why would you consider applying an existing business model to a new market to be cloning or copying; especially when there's no market overlap? Applying a successful model from one industry to enhance another seems to be the very definition of innovation.

</comment><comment><USER6> Why? Any good business idea will be copied and adapted. Most of those changes won't be good and most of the clones will fail. But that doesn't give the original creators of the business model any right to be annoyed. A new york company is no different.</comment>


Show HN: We built the first mobile HTML Web Editor that doesn't suck - <AUTHOR> https://www.youtube.com/watch?v=Z3rGtWCxlOM&feature=youtu.be <comment><AUTHOR> The link illustrates how all other editors currently suck on mobile. (Sorry to be so harsh, other editors! It's not your fault.)

Here is the link to a video illustrating our editor back in the end of 2018: [https://youtu.be/eTpOkSmg2KY](https://youtu.be/eTpOkSmg2KY)

We want to license our code to these companies and have them actually offer to upsell their customers an editor that lets people edit HTML on the go. It can be used in browsers or Cordova.

But, we've never done something like this before -- licensing code to makers of competing products in an enterprise sale. What's are some recommendations you could share about doing that? Definitely appreciate any advice.</comment>


Aging Boomers lead startup growth (I would assume these are not tech startups) - <AUTHOR> http://money.cnn.com/2007/08/09/magazines/fsb/older_owners.fsb/index.htm?postversion=2007081303 <comment><USER2> What makes you assume that? Boomer's pioneered the tech industry. <http://inventors.about.com/library/blcoindex.htm>

<comment><AUTHOR> Because every boomer I know can barely work a computer and the US is much bigger than Silicon Valley.

<comment><USER2> Really, how many do you know?

<comment><AUTHOR> Like 5 ;)

<comment><USER2> Smiles!!!!!

</comment></comment></comment></comment></comment><comment><USER3> fscking ageist</comment>


NFL Play-by-Play Data—Analyzed, Visualized, and Quizzified - <AUTHOR> http://blog.statwing.com/nfl-play-by-play-data-analyzed-visualized-and-quizzified/#

<comment><AUTHOR> (Reposting this because the HN outage yesterday knocked it off the front page just as things were getting going. Original discussion page is at <https://news.ycombinator.com/item?id=5359047> .)</comment>


The Young T.S. Eliot: A rediscovery of an emerging poet - <AUTHOR> http://harvardmagazine.com/2015/07/the-young-t-s-eliot

<comment><USER2> T.S. Eliot was my first window into the horror of modern warfare. From him, I learned about other poets and writers of his generation. If I did some analysis, I'd wager I'd find his influence on my own poetry. Wouldn't surprise me in the least.

</comment><comment><USER3> Loved seeing this here, thanks for posting! To the OP: what was the connection for you to Hacker News?

<comment><USER4> Not the OP of course, but HN's charter has always been intellectually cosmopolitan ([https://news.ycombinator.com/hackernews.html](https://news.ycombinator.com/hackernews.html)) and we love it when people post stories like this.

They'll never dominate the front page, but the best general-interest articles on art, literature, and history are welcome here.</comment></comment>


Ask HN: I need quick help - <AUTHOR>

Looking to get a domain is the hyphen bad thing in a website? <comment><USER2> From a branding point of view the bad thing is that when you say the name of the domain over the phone you always have to say bla-hyphen-bla.com which is a pain.

<comment><AUTHOR> What if its one of those names that its rare to even find hyphen. take the chance?

<comment><USER2> Buying the domain is the least expensive thing you can do. Building a brand and investing in launching a site on the other hand can be one of the most expensive things you can do. An amazing site can do well in spite of a bad domain name (example: pinterest!) but a well known domain doesn't guarantee a great website or brand.

<comment><AUTHOR> that's true. thanks!

</comment></comment></comment></comment><comment><USER3> Short answer, Yes.

A hyphen screams unprofessional to me. @michaelpinto has covered most of the rest.

</comment><comment><USER4> Honestly, Yeah it is bad. I think it sounds a little unprofessional. Hope that helps

</comment><comment><USER5> While I would lean against it, what happens if you don't have the hyphen? Just remember experts-exchange :)

</comment><comment><USER6> Depends on the market. What market are you aiming for?</comment>


Ask HN: If I only learn one static typed language, which one should I learn? - <AUTHOR> It all depends on what I what to achieve and I think I want is just a safer and faster python. <comment><USER2> I might go against the grain here, but if I've had nothing but pure bliss working in Java.

If you're just starting out, Head First Java is the way to go. Then expand your knowledge, look at things like Lombok, or go for one of the languages built on the JVM (Kotlin/Scala). Want insane performance out of the box? Look at Vert.X. There's a library for everything as the language has been around since '95.

<comment><AUTHOR> I'm actually thinking about Kotlin. What is your experience with it? Is it good?

<comment><USER3> Kotlin is fantastic. As a JVM language with excellent interoperability with Java you basically get all the benefits of Java. Its syntax is succinct and expressive, and it has great features which are not available in Java, such as nullable types, coroutines, extension functions and much more.

If Kotlin interests you, I've heard great things on Scala as well (but don't have first hand experience with it so I can't elaborate).

<comment><USER2> Agreed on all points here, especially the interoperability which brings the benefit of being able to use the massive amount of Java libraries.

</comment></comment></comment></comment><comment><USER4> If you want a safer and faster Python, use Nim. That's literally what it was made for.

If you want to learn functional programming, learn Rust or Haskell. Rust is more pragmatic and is used more than Haskell, but Haskell has more FP features.

I recommend against Go because it's not really FP, and it has a lot of language inconsistencies compared to Rust for example.

</comment><comment><USER5> My go to plan is based on debuggers. So whichever language you can find a GREAT debugger in is the one to go with.

Second criteria would be a language which I knew an expert in. There are plenty of good languages, but when you are stuck or need advise, there is nothing like being able to call up your brother and 'discuss' how you plan to do things.

Portability is a nice feature, but with all the available virtual environments, it is less important. Although I must say to be able to occasionally program on my phone, during a boring meeting, would be nice.

</comment><comment><USER6> Go is probably the best candidate for a safer and faster python. However, if i had to choose only one statically typed language to learn that would be Java. The language is super popular, the tooling is great. There are tons of learning resources and books. It's used by big tech companies(amazon, google etc) for some serious engineering work. It opens up the door to the jvm world where you can also explore languages like kotlin, scala and clojure.

</comment><comment><USER7> If you're just wanting a safer and faster Python you probably want Go or Rust. I'm very biased towards Haskell and love it so I'm going to recommend you at least read about its pros/cons (don't get bogged down with syntax or monads yet, just read about what problems it solves).

<comment><USER8> Well I mean you kind of have to get bogged down with monads since it's the only way to do something with IO, i.e. useful.

(Though I'm biased because I think Haskell is a terrible language for everyday usage :P )

</comment></comment><comment><USER9> I would recommend C#. It's really really amazing, you can do both OOP and FP, and Visual Studio is quite well at handling really large projects.

Debugging is also a bliss.

</comment><comment><USER10>
        answer, err := GetAnswer()
        if (err != nil) {
          return "Rust"
        }

(but yes, you probably want Go)

</comment><comment><USER11> Go

There is a poll HN feature if you are curious

</comment><comment><USER12> Go or Nim.

</comment><comment><USER13> Learn C or Java. Those languages will be around forever.

</comment><comment><USER14> Why no one talking about OCaml?

</comment><comment><USER15> > safer and faster python.

ohh, f# or Haskell

</comment><comment><USER16> Go for Go.

</comment><comment><USER17> C++</comment>


Hippy: React Native Alternative by Tencent - <AUTHOR> https://github.com/Tencent/Hippy <comment><USER2> I opened a random file(HippyBridge.h[0]) and it looks very similar to React Native's RCTBridge.h[1] which leads me to believe Hippy is either a fork of React Native or heavily "inspired" by it. A lot of the comments and symbols match React Native's 1-to-1.

EDIT: I've read through more of the source and compared it to React Native. Like Jarred mentioned[2] it probably started out as a fork of React Native.

0: [https://github.com/Tencent/Hippy/blob/master/ios/sdk/base/Hi...](https://github.com/Tencent/Hippy/blob/master/ios/sdk/base/HippyBridge.h)

1: [https://github.com/facebook/react- native/blob/master/React/B...](https://github.com/facebook/react- native/blob/master/React/Base/RCTBridge.h)

2: [https://news.ycombinator.com/item?id=21877857](https://news.ycombinator.com/item?id=21877857)

<comment><USER3> If it is a react native fork, I wonder if they plan to acknowledge that. Seems like that is the first thing you'd mention.

I can't see a reason not to mention this unless you're trying to fool someone.

<comment><USER4> They do acknowledge using code from Vue: [https://github.com/Tencent/Hippy/blob/e284c6b399e50bfb256469...](https://github.com/Tencent/Hippy/blob/e284c6b399e50bfb256469072dd8afdb8cd0e13b/LICENSE#L205)

<comment><USER3> Not from react, which is what parent comment was talking about. That they acknowledge code use from another source is irrelevant.

<comment><USER4> It's not irrelevant, since that makes it more puzzling why they'd acknowledge one project but not another.

<comment><USER3> Perhaps bc Evan You is Chinese.

</comment></comment></comment></comment></comment></comment><comment><USER5> Looks like they haven't put up much documentation yet - hard to say what this is really.

How do you work with different platforms? How does the performance compare to React Native? Can we see examples? What APIs exist to access native functionalities? How complete is the Flex implementation?

<comment><AUTHOR> I dug around a little and installed their demo app in the iOS simulator: [https://www.dropbox.com/s/hl3nk8jrcjleurj/hippy.mov?dl=0](https://www.dropbox.com/s/hl3nk8jrcjleurj/hippy.mov?dl=0). Visually, the only interesting part of the demo app is the RefreshWrapper example

Code-wise, the most interesting things I've seen:

\- They expose wrappers for native recycling list views[0]. React Native does this in JavaScript through VirtualizedList, however some have experienced performance issues with it[1]

\- They wrote their own flexbox layout library[2] (likely based on Yoga)

\- It works with both Vue[3] and React

\- Hippy supports web as a build target out of the box[4] (react-native-web is a 3rd party library)

\- Touch events work on the `<View />` component directly, instead of needing to wrap `<View />`'s in the `<Touchable />` components[5]

\- It uses a closed-source fork of libv8 on Android called X5[6].

The API & coding style is quite similar to React Native, but the implementation seems different. I'm guessing this started as an internal fork of React Native and turned into a large refactor, but that's just a guess

[0]: [https://github.com/Tencent/Hippy/blob/master/ios/sdk/compone...](https://github.com/Tencent/Hippy/blob/master/ios/sdk/component/listview/HippyBaseListView.m)

[1]: [https://github.com/facebook/react- native/issues/13413](https://github.com/facebook/react-native/issues/13413)

[2]: [https://github.com/Tencent/Hippy/tree/master/layout](https://github.com/Tencent/Hippy/tree/master/layout)

[3]: [https://github.com/Tencent/Hippy/tree/master/packages/hippy-...](https://github.com/Tencent/Hippy/tree/master/packages/hippy- vue)

[4]: [https://github.com/Tencent/Hippy/tree/master/packages/hippy-...](https://github.com/Tencent/Hippy/tree/master/packages/hippy- react-web)

[5]: [https://github.com/Tencent/Hippy/tree/master/packages/hippy-...](https://github.com/Tencent/Hippy/tree/master/packages/hippy- react#migrate-from-react-native)

[6]: [https://github.com/Tencent/Hippy/issues/9#issuecomment-56822...](https://github.com/Tencent/Hippy/issues/9#issuecomment-568228569)

<comment><USER6> > \- It uses a closed-source fork of libv8 on Android called X5[6].

this makes my spidey senses tingle. What might be hidden there?

<comment><USER7> I agree. If Facebook had a closed source lib in RN it would be DOA.

I would be very curious to know why and if there are plans to replace with open source.

</comment></comment></comment></comment><comment><USER8> I don't think it would be easy to push the switch to management: "We'd like to rewrite our React Native up to use Hippy..."

</comment><comment><USER9> _Hippy is now applied in 18 Tencent apps concerning tens of billions of ordinary users._

Having used a lot of these apps I wonder if this is indeed what they use to deliver near native experience with web technologies..

<comment><USER10> Where did they find the extra 2.5 billion people?

<comment><USER2> They are probably talking about unqiue users in each app. 10b/18 ≈ 555m per app which isn't unreasonable for Tencent.

<comment><USER11> According to their chinese doc, the number is actually "multiple hundred millions", so it's more likely just a translation issue.

</comment></comment></comment></comment><comment><USER12> I think it is really great to see the Chinese internet giants releasing some of their software as open source.

In a time of geopolitical "tech wars" open source culture could easily become collateral damage.

<comment><USER13> Or a weapon.

<comment><USER12> How is that?

<comment><USER14> Tencent is one of the companies responsible for China's dystopian sesame credit scheme, for one. I would not want to contribute to any of their projects.

<comment><USER4> Sesame Credit is operated by Ant Financial, a subsidiary of Alibaba. They're a competitor to whatever credit scoring Tencent does for their forays into micro-lending.

<comment><USER14> Bringing in the Tencent credit scoring for micro-lending is muddying the issue. Possibly I'm guessing an intentional move on their part to limit the damage from their association with Sesame Credit.

As I understand it Tencent has worked closely with the Chinese government to enable its social media properties like WeChat to feed data into Sesame Credit on a massive scale. This is a project that they support and enable, and I believe in the early days they were also one of the companies that helped to develop it, regardless of who currently operates it on paper.

</comment></comment></comment></comment></comment></comment><comment><USER15> "New React Native"

</comment><comment><USER16> I won't use this probable spyware, however I do hope that some RN competition can make RN grow, and be, a bit faster.

<comment><USER17> Why speculate on whether it is spyware? Read the source and verify it for yourself. If there is spyware I would appreciate a link to the relevant lines.

<comment><USER14> How do you read the source of a closed source library? I mean sure reverse engineering is possible but it's a bit flippant to suggest that everyone has time to do this. Even if it did not have closed source libraries, it's a bit much to assume everyone affected can understand the source.

We already know that tencent engages in bad stuff on behalf of the Chinese government (Sesame Credit as a concrete example) so they shouldn't be presumed innocent right out of the box.

What's wrong with existing cross platform frameworks? You have to wonder what their agenda is for creating this.

<comment><USER4> > Sesame Credit as a concrete example

Sesame Credit is not a Tencent project. If you're going to get facts wrong, at least don't repeat them more than once. [https://news.ycombinator.com/item?id=21879422](https://news.ycombinator.com/item?id=21879422)

> You have to wonder what their agenda is for creating this.

Career advancement for everyone on the list of contributors.

<comment><USER14> I believe that when it started out they were also working on it, but I'll admit to not having a source at the moment. Would not be surprised if all evidence of their involvement has been wiped from the internet though.

In the meantime I'm pretty sure they fully cooperate with the Chinese government in supplying data to the Sesame Credit system through their social media properties like WeChat. Something that more ethical competitors like WhatsApp have refused to do.

</comment></comment></comment></comment></comment><comment><USER18> Anyone done a security audit on this yet?

<comment><USER19> Why?

<comment><USER20> The Chinese state perhaps including backdoors to spy on users?

<comment><USER21> I guess we should do the same about any open source project. I don't know a state who has proven to be reliable.

<comment><USER22> Any state could spy on users but china is known to blatantly do so.

<comment><USER23> To be fair, so is the US (NSA) , but people rarely suggest that packages from the US should be monitored extra closely for some reason.

Of course _every_ package used in any code that contains sensitive data should be audited along with its dependant, but I see no reason to be more afraid of this particular package than anything people happily install from npm.

<comment><USER24> There's a good reason for that: US does not really need to put backdoors in software to spy. They have the largest tech companies under their legislation and can already force them to disclose information on users. Most companies won't argue and hand over things silently.

They have international agreements with a number of countries for surveillance.

This means that unless an app is completely hosted, in all parts from source code to production, in a privacy-friendly country, on servers provided by a privacy-friendly company and the app is made by a company in similar conditions, the US and EU have all they need.

<comment><USER25> While there have been some serious breaches of trust, US companies have a track record of fighting governments openly in court to avoid sharing data with them.

Chinese companies absolutely do not have this track record. Chinese companies are essentially an extension of the heavy hand of the Chinese Communist Party.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> Disconcerting and suspicious to see so many Chinese codebases being advertized here. I feel that there is some nation state activity behind it. There is a ban on Chinese work products in sensitive industries (aerospace/defense, military, and government), and other industries should follow suit if they care about security.

<comment><USER27> Please do not copy/paste comments on HN. That strictly lowers the signal/noise ratio.

Also, your comment breaks the site guideline against insinuating astroturfing, shillage, etc., without evidence. I replied to you about that here: [https://news.ycombinator.com/item?id=21879877](https://news.ycombinator.com/item?id=21879877). Please don't do it again.</comment></comment>


Software design mistakes that Diaspora needs to fix. - <AUTHOR> http://buddycloud.com/cms/node/204 <comment><USER2> The basic argument is "design a protocol (damn-it)".

I agree with this point, I've made it here and I don't think I'm the only one.

But everyone knows the Diaspora folks went the "product first, protocol later" route and a fair number of people agree this approach. So it's a disingenuous little to act "oh, they made a basic mistake so it just won't work." They went a route, at least, that lots of people think will work. It's not like they used hard coded eight-bit node identifiers, had each node multi-cast its information or some other design decision would _guarantee_ things couldn't work.

<comment><USER2> The other thing with protocols is...

Naively, on first glance, to me Facebook looked like just a nice interface on top of standard Internet functionalities. And there are standard protocols for all of these.

* Messengering we have * Micro-blogging we have. * Selectively sharing information is pretty simple. Give your "friends" a password to your website and let them connect via SSL or Oauth or something. ...

Nothing _seemed_ that new. My first thought was, "why couldn't you just slam a UI/Application on top of this existing stuff and call it an open Facebook implementation"? Ah, but there is a funny thing I realized looking at the situation (and discussing it here). The _unique selling point_ of Facebook and its open competitors boils down a "share and revoke" function. The umpteen Facebook users want to imagine they are "safe" when "privately" sharing their photos. They don't look too carefully into what "safety" or "privacy" involves and they probably don't want to look that carefully but they really want to have it. Facebook has flattered them into thinking they can just carry their real world intuitions into virtual space. Of course, this isn't quite "real world privacy" as a number of fired employees can atest.

Thus the "competing Facebook protocols" aim to provide something like "personal DRM". Without going into the details of the inherent problems, I'll just ask, "why would you want to?".

I would argue that rather than trying to simulate something that's impossible, that Facebook doesn't and can't give you, why not educate people. Allow secure sharing of information but start people learning about what makes sense to share or not. And sure, that's a big job but the Internet itself is kind of doing that.

Looking at the situation as a whole, Facebook is leveraging people's lazy, foggy and "intuitive" notions of privacy taken from the real world. Anything Facebook-like is going to "leak-like-a-sieve" and the more people learn about the Internet, the more they will realize this.

</comment></comment><comment><USER3> I don't agree that it makes sense to "design a protocol" before building the application. You can try to imagine what you want the protocol to look like at the end of the day, but you are likely to get it wrong if you don't have an application that's actually using it. It's important to keep your eyes open and try to avoid going down blind alleys, but there's not much value in building infrastructure before it's needed.

The questions raised in that post are good, and we intend to address them as they become relevant to what we have build. Discovery, namespacing and routing are areas where we are starting to feel tension on in the product, and will probably be tackled quite soon. The point about affecting interface design is good, but we look at it the other way. We want our interface design to drive the protocol design, so we want to make protocol choices as late as is reasonable.

Finally, it's fantastic that people are reading and forking the code. The more people out there trying things, the better.

<comment><USER4> As someone who has been working on this for a very long, my advice is to write the software to be protocol agnostic. Be able to switch out protocols easily, and support multiple protocols concurrently, because we still have no idea which protocol will win out. It may be something that hasn't even been built yet.

<comment><USER5> I agree, but this is harder than it sounds. Why? If this is your first time building such a system you don't even know what is protocol and what's not.

There's an old saying that you need to build three apps on your framework. That first app shows that your framework works for something. The second app shows that its more general than just the first app. The third app shows that you weren't lucky.

Curious, how was Facebook designed? Are there any post-mortem docs on it? I know that MySpace seemed really ad hoc. I wouldn't be surprised if Facebook was more ad hoc than we imagine it to have been

<comment><USER6> Who doesn't imagine Facebook's early design to be "ad hoc"? It was programmed as a spaghetti mess of PHP on Zuckerberg's tiny laptop, and only worked because the user base was inherently limited to a few thousand people. Then the spaghetti mess was grown and added to over the next year or two, and the system scaled because each college's network could be contained in a single server that only had to support a few thousand users (these servers used to use domain names like harvard.thefacebook.com or mit.thefacebook.com, IIRC). At some point they completely rewrote it with an architecture that would scale and not waste hardware, but it definitely didn't start out that way.

<comment><USER5> _Who doesn't imagine Facebook's early design to be "ad hoc"?_

Maybe just me. I don't know much about the history of the project, except Zuck started it in college.

</comment></comment></comment></comment></comment><comment><USER7> I think Diaspora could do itself a huge favor by writing up a blog post explaining how the $200k was distributed. Everyone keeps harboring on the fact that they have that much money, but everyone forgets that they have quite a bit of liability with what they guaranteed on Kickstarter.

I think once that is done, people won't be so fast to suggest to them to hire a $100k/year engineer from Google or other things. Just my $0.02...

[edit: spelling]

<comment><USER4> Yeah, they have to send out 3,296 t-shirts alone, and even if they get a great deal, and end up paying $5 each (incl. shipping & handling), that's $16,480 just in t-shirts.

</comment></comment><comment><USER8> Maybe the old software engineering maxim "build one and throw it away" is the best way to look at what Diaspora's done so far.

Yes, it would be great to have a well-thought-out protocol and secure software. But then again there's also huge value in having an implementation that people can play with. We hear all the time about how important it is to get your best guess at an minimum viable product into users' hands, and that's pretty much what Diaspora has done.

<comment><USER9> IMO what they have released is not an MVP.

The article made the point about federation algo, and I think that's the most important: proper federation/decentralization IS the product. As of yet it is an unsolved problem in their camp (and many others). This isn't to take anything away from them, because its a Big Problem, but if they can't solve that, a slightly polished CRUD social networking app is just fluff.

The product is the protocol, not the app. That's the only potentially innovative thing they are doing. Sorry guys, aspects are a product made for privacy concerned software devs - normies don't care.

<comment><USER10> great comment, I had only one quibble or expansion on what you said:

> Sorry guys, aspects are a product made for privacy concerned software devs - > normies don't care.

I'd argue that normals care about this too. Teens might want to keep their friend/school/personal stuff private from their family/friends-of- family/adults-they-know stuff. And adults often want to keep their "adult adult" stuff hidden or distinct from their family and/or coworkers. The whole "my mom wants to friend me on Facebook, ew!" or "my boss wants to friend me on Facebook, noooo!" factor.

<comment><USER9> Thanks!

Agreed 100%, but this feature alone isn't worth leaving facebook due to network effect. That may change, but if you have to boil it down to a black and white, it still leans far to the side of "not worth it to switch." Also, should this change, I find it highly unlikely facebook would find itself unable to pivot. Regardless of what you think of fb (I personally hate it) you really can't deny they have a world class engineering team that has a finger on the social pulse more than any other company right now.

I have tried building apps around these kinds of features, they don't really work (you end up building a new interface to email _awfully_ quickly).

</comment></comment></comment></comment><comment><USER4> I think a huge requirement for success is that distributed social networking needs to be a framework, not simply an application (as Diaspora is now). Hopefully they're considering refactoring in that direction, and that definitely falls into point #1 (Coding before designing). You don't want to haphazardly code a framework, you need to design it on some level beforehand.

The killer feature that moves people over to distributed social networking is not distributed social networking itself. But third party developers building onto a distributed social networking framework is what will allow the next killer feature to be built.

<comment><USER11> Actually, no. Virtually all successful frameworks (Rails, Django, Tornado, MapReduce, etc.) grow out of an application or set of applications where common pieces are incrementally refactored out of the application and into the framework. When you start with the framework and design it upfront, you end up with an overdesigned mess.

<comment><USER4> Actually, I agree. My framework was built out of Appleseed the application, and was then re-factored into a framework, and most of the structure was based on what I had learned from building the app.

I don't think anyone should start by building a framework without any conception of what that framework is meant to do. But Diaspora already has an app of sorts, so they wouldn't exactly be doing that.

<comment><USER12> Which framework was that you created?

<comment><USER4> The Appleseed social framework. =)

<https://github.com/appleseedproj/appleseed>

</comment></comment></comment></comment></comment><comment><USER13> I have really bit my tongue since the beginning of diaspora - I think really they are simply victims of their own success. If they had a normal amount of publicity, or if they had gotten the 10 they asked for instead of 200 I think they'd be much better off. Much hungrier, scrappier. Less expectations to live up to. Way less people looking over their shoulder as they learn to code and manage a project. It's got to be a bitch to learn to dance on live TV as well.

I am not saying they are doing a bad job. Just that it's a very hard job to do. Most rock stars of today that built the next big thing had the luxury of not having to show anyone the code. And I'd say 90% of the time, that code is fucked, at least in parts. That's pretty recoverable - your product isn't the code it's the service or executable. Many opensource projects are similar - they can be hacky at first because no one even knows they exist - as they get traction they can fix things as they become issues.

But now with the whole internet breathing down their necks, celebrity status and a bunch of money burning a hole in their pockets they have no such luxuries at all.

I am inclined to agree though that they should really consider closing back up and rebooting both the design philosophy and the code base after folding a few key contributors into the core team.

Not that I'm right or that I know what I'm talking about, but just my opinion.

</comment><comment><AUTHOR> Incidentally I see Ben Nolan has released his xmpp port of Diaspora today. This goes some way to assuaging my worries about their architecture.

<https://github.com/bnolan/diaspora-x>

<comment><USER4> I think there's two issues with this, though. One, it's somewhat dangerous to have an incompatible fork so early on. Of course, the code is so immature that this may not be as big of a deal at this point.

The other is that I'm not sold on XMPP as the best protocol for distributed social networking. I think it can be overly verbose, and a simple protocol over HTTP/HTTPS makes more sense to me, and I've had good luck with that so far. That said, I'm not completely sold _against_ XMPP, either.

<comment><AUTHOR> There's two things here:

Protocol and the architecture. Protocol-wise I have no problem with http - it's well understood and any RoR dev can pick it up an use it. And indeed you could even, with a lot of work, build a federated network off http(s).

But http is not a a federation architecture. XMPP provides this out the box and makes bootstrapping a secure federated social network much easier.

<comment><USER4> I'm not talking about _extending_ HTTP, though, I'm talking about a protocol _over_ HTTP. My project uses a custom protocol called QuickSocial:

[https://github.com/appleseedproj/appleseed/blob/master/_docu...](https://github.com/appleseedproj/appleseed/blob/master/_documentation/quicksocial.txt)

Although the software is protocol-agnostic, and hooks could be written to support XMPP, as well.

I think my biggest issue with XMPP (beyond it's verboseness) is that it requires a whole separate XMPP server. This is less of an issue for Diaspora, which already requires a series of services running, but for my project, Appleseed, the goal is to get everything running under a LAMP stack which can be run on any shared host.

<comment><AUTHOR> Don't worry about the verboseness of XMPP - TLS with the deflate option drops that down to 10% of the original size. Or you can do what google did on Android and write your own binary protocol representation.

If I setup a new appleseed node and how do you really know it is me/example.com? I've yet to see that done well in http and would love to be proven wrong.

<comment><USER4> Right now, all requests require a callback with a token. user firstname.lastname@example.com sends a request to email@example.com with a generated token. firstname.lastname@example.com then sends a verification request back with that token to email@example.com, and email@example.com sends back true, and firstname.lastname@example.com completes the request.

Which, if I'm not mistaken, is very similar to how XMPP does it.

The protocol also tries and minimizes the amount of actions that a third party node can take. You only trust your own node to take actions on your behalf.

</comment></comment></comment></comment></comment></comment><comment><USER14> "My concern is that hype can also bite when you don't have something to ship or there isn't a big value-add over existing solutions."

This is critical. Diaspora could spend a lot of time in the architecture tower with nothing to show, and the early hype will bite them if they have nothing to show. I think they've done a good job making sure that doesn't happen.

Now that they've shown they can produce _something_ , they need to slow down and make sure they are producing the _right thing_. When you are building a simple application, you can get away with design-by-coding; if you are trying to build a federated, global, social wonder, you are going to need to spend some time thinking about it.

</comment><comment><USER15> Just to add to the chorus of voices: yes, Disapora team, please let your protocol spec define your application code, not the other way around. This one factor will make the most difference to the long term success of the project.

</comment><comment><USER16> FTA: "...build this on XMPP."

[http://www.reddit.com/r/programming/comments/ehhbz/i_made_a_...](http://www.reddit.com/r/programming/comments/ehhbz/i_made_a_diaspora_branch_that_uses_xmpp_instead/)

</comment><comment><USER17> At this point, I don't think diaspora will work. The project has lost its hype, so it has no more fuel. Its heading towards the deadpool. It doesn't even look like it'll live on as an open source project.

The main issues with the diaspora project, besides buggy code, was that there was never a good reason to build it. People were not angry enough at Facebook to start learning how to run their own servers (which costs money) or pay diaspora to do it (which costs money)

</comment><comment><USER18> This is one case where I think the number "Four" in the original title would have been better left in. Without the number, the title made me think this site might be a community bug tracker for Diaspora design mistakes. With the number, it would be clear that this is one person's many ideas.

</comment><comment><USER19> Is it me or can't Diaspora just make it easier to run your own Seed server, even for playing around. Come on guys, stick in on a EC2 AMI and make it easier for us to play.

(Before you retort, yes, I am capable of spending the hour or so build the stack, but it's nice to have plug and play sometimes).

</comment><comment><USER20> Technical considerations aside, another problem is the name itself. Sounds like a gastrointestinal ailment. Yes I know what it really means.

</comment><comment><USER21> Four software design mistakes that Diaspora needs to fix quickly

FTFY

<comment><USER22> > If the original title begins with a number or number + gratuitous adjective, > we'd appreciate it if you'd crop it. E.g. translate "10 Ways To Do X" to > "How To Do X," and "14 Amazing Ys" to "Ys." Exception: when the number is > meaningful, e.g. "The 5 Platonic Solids."

<http://ycombinator.com/newsguidelines.html>

</comment></comment><comment><USER23> Because Diaspora is open-source, it attracts this sort of "look at how bad the code is" attention. I'm willing to bet that the first prototype of yahoo/google/facebook all had terrible code that may have lasted a long time. However, by not being open source, no one was able to critique them on their software design mistakes and instead had to focus on the product itself.

Since it is open source, Diaspora could probably use the writers of these critique pieces (bad design, security holes, etc.) to actually make a better product.

(Tangentially, why are there so many blog posts about Diaspora's code? Is the code actually unforkable? Or is it just because Diaspora painted itself into a corner promising a secure social network on a relatively quick timeframe and now everyone wants to prove them wrong?)

<comment><USER4> _Since it is open source, Diaspora could probably use the writers of these critique pieces (bad design, security holes, etc.) to actually make a better product._

The writer of this critique, as well as myself, are both working on what we feel are better products, respectively.

Take that as you will.</comment></comment>


Show HN: Quickly build SaaS apps with MVPaaS - <AUTHOR> MVPaaS (mvpaas.com) provides the common elements that all SaaS apps require: A customizable landing page (with plan and feature sections), secure credit card and subscription handling, and user authentication.
When a user signs in they will be redirected to your backend(with a token) where you can provide the core functionality of your SaaS offering.
I've setup a starter Rails App that you can use to build the core of your SaaS app. I've also setup a deploy to Heroku button so you can get up and running right away. MVPaaS and this starter app makes it really easy to turn your side project into a complete SaaS business.
I'm also offering monthly development retainers targeted at non-technical entrepreneurs.
Thanks! <comment><USER2> Maybe I'm missing something, but this seems like you're selling a prebuilt SaaS … without the most important part: the actual software. User authentication and subscriptions are easy; the software is the hard part. Why would I pay you 30% per subscription + plus a monthly fee for the easy part? Again, maybe I'm missing something and if so, you should clarify your messaging.

<comment><USER3> Not OP, but it's 5% + 30c a subscription.

I hear what you're saying and certainly in this space there are great tools and open source packages like Koudoku [1] which make it easier.

Worth noting though that there are multiple services that just handle the user management, etc. and also multiple services that handle the billing aspects. To my knowledge this is pretty unique in tackling both.

It's not necessarily hard to implement these things yourself, but I think it is hard to implement them really well. They aren't the "core" useful part of your service either, so every second you spend messing with them is time taken away from actually making your SAAS more useful.

At the very least, it's intriguing.

1 - [https://github.com/andrewculver/koudoku](https://github.com/andrewculver/koudoku)

<comment><USER4> It is tiered going from 10% to 5% depending on the plan (based on active users).

It's actually much worse than it seems. They connect with Stripe. Stripe takes their cut of 30 cents and 2.9%). I don't think this company should be taking the 30 cent fee as well because they aren't even processing the CC. Lol

</comment></comment></comment><comment><AUTHOR> Here are the links:

MVPaaS: [https://mvpaas.com](https://mvpaas.com)

Starter app: [https://github.com/citizens/mvpaas-sample- app](https://github.com/citizens/mvpaas-sample-app)</comment>


Bcachefs: "the COW filesystem for Linux that won't eat your data" - <AUTHOR> http://bcachefs.org/ <comment><USER2> Here's a funny story. At one point bcache development was funded by a startup (which I won't name here). They were using it as the local storage layer of a distributed storage product. I worked there for a year in 2014.

Apparently they were not aware of the fact that bcache was a) GPLd code, or b) developed before the company existed, first as a hobby project and then at Google. After a couple of years, they noticed that Kent was in fact posting the bcache source code on his personal web site. At this point they fired him and threatened to sue. I quit the company then (along with a number of other people, for mostly unrelated reasons, such as the fact that the CTO was a notorious brogrammer). Kent got a litigator and when it was made very clear to them that they had no case, they backed down, but not before wasting a ton of money.

As far as I know, they're still actively violating the GPL by shipping a product containing modified kernel code in it without releasing the source, nor do they acknowledge that they did not develop the key component of their product.

The "commercial" version had a rather broken and messy snapshots implementation and had diverged a bit from the open source bcachefs at that point, mostly because snapshots were poorly implemented. It's also kind of funny because after we left the company we still knew of some tricky data corruption bugs, and it's likely they're still there in the "commercial" version, because backporting the latest fixes would be non-trivial and I don't think their testing or development methodology would have caught them.

Anyway, I gave up on startups and enterprise storage after this, but Kent is still developing bcachefs on his own time and money, so if you use it please consider donating some money to support its development.

<comment><USER3> His Patreon page[1] shows he only receives $762 in donations a month, less than a third of what he needs to keep from eating into his personal savings.

Sad given how much a modern filesystem would help Linux : (

[1]: [https://www.patreon.com/bcachefs](https://www.patreon.com/bcachefs)

<comment><USER4> > As far as I know, they're still actively violating the GPL

Maybe he can get extra money from a lawsuit?

<comment><USER3> Few people would willingly sign up for that kind of torture.

</comment></comment></comment></comment><comment><USER5> I've been using btrfs since about 2011, and I've stopped using ext4 / xfs / zfs everwhere since about 2014.

From 2012-2014 it was mostly breakage every other month. From 2014-2016, it was semi-annual issues.

For the last ~18 months I have had ~30 machines running btrfs with no issues, some servers, some personal computers. The release notes are boring, the bugs are boring, and to me its definitely in a state I would strongly consider trusting it with any workload.

I worry that btrfs is just going to remain doomed. It wasn't stable half a decade ago, so it - for some reason - cannot be more stable now. But it has seen so much work put into it to make it as mature as it is now, and in my experience it is pretty damn mature now. All I want to see is another year and a half of perfect stability before I would start arguing to drop zfs entirely.

<comment><USER6> Are you running BTRFS with its built in RAID? That's been the biggest blocker for me. There have been numerous RAID bugs that have caused data-loss and I believe at least one of them is still unpatched.

<comment><USER7> I think Chris Mason is open with that raid support is not really stable yet, right?

Status page says so: [https://btrfs.wiki.kernel.org/index.php/Status](https://btrfs.wiki.kernel.org/index.php/Status)

<comment><USER8> As far as I know they consider RAID0, 1, and 10 to be stable. Last time I used it rebuilds were substantially slower than ZFS or mdraid. Rebuild performance seems to one of a few issues that BTRFS has had trouble solving. RAID 5 and 6 were declared stable last year, only to have that retracted when some fatal flaw was discovered that would apparently cause data loss if you needed to rebuild.

<comment><USER9> It's mostly true but the issues as far as I know are:

\- RAID 1 with more than 2 disks is not what you think it is: the data will be mirrored but only once, no matter how many disks you have (meaning if you have a mirror with 3 disks, you only have 2 copies of your data). Because in BTRFS lingo, RAID 1 means '2 copies of the data' [https://btrfs.wiki.kernel.org/index.php/FAQ#What_are_the_dif...](https://btrfs.wiki.kernel.org/index.php/FAQ#What_are_the_differences_among_MD- RAID_.2F_device_mapper_.2F_btrfs_raid.3F) which is not what people expect from RAID 1 with more than 2 disks

\- RAID 1 always needs 2 disks to be working, if not you can't mount the thing... Well you can, but only once... [https://btrfs.wiki.kernel.org/index.php/Gotchas#raid1_volume...](https://btrfs.wiki.kernel.org/index.php/Gotchas#raid1_volumes_only_mountable_once_RW_if_degraded)

\- RAID 10 inherits these special RAID 1 cases as a result

Most of that stuff is described here: [https://btrfs.wiki.kernel.org/index.php/Status](https://btrfs.wiki.kernel.org/index.php/Status)

So as they say on the status page: _" mostly ok"_

</comment></comment></comment></comment></comment><comment><USER10> >Snapshot implementation has been started, but snapshots are by far the most complex of the remaining features to implement

Snapshots are the #1 feature of COW filesystems. I've been using them for a bit in btrfs and this feature is game-changing (and no, it hasn't eaten my data yet).

<comment><USER11> At first glance, the status page of btrfs look horrible:

[https://btrfs.wiki.kernel.org/index.php/Status](https://btrfs.wiki.kernel.org/index.php/Status)

The problem areas are mostly RAID and exotic features. RAID can be handled by a different layer and most users don't really need the exotic features.

Judging from the media silence in the last months I'd say either people stopped using btrfs or it just about works good enough for everbody.

<comment><USER12> when the RAID is handled by a different layer you lose some very important integrity features

<comment><USER13> That's why all big data in big corporations uses exotic-open-source- filesystem-based RAID. That's where the action is when it comes to integrity.

None of that virtual block device or driver-level software junk, let alone hardware RAID controller solutions.

<comment><USER14> Well, there are other reasons; you want to write code that operates on the data, and neither the code nor the data fits on a single machine - you have to target an abstraction which spans machines. Block storage is too low-level an abstraction.

That isn't to say that using high performance block storage isn't still a win even when the redundancy is multiplied at a higher level. The higher level redundancy is also about colocating more data with the code - i.e. it's not just redundant for integrity, but to increase the probability it's close to the code.

<comment><USER13> Block storage can be network-abstracted.

Even virtual memory for that matter. Now ancient concept:

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

<comment><USER14> Of course. Most production monoliths are deployed on networked block storage - aka SAN - and NUMA is already structurally distributed memory, even on a single box. But it's not the right paradigm to scale well, no more than chatty RPC that pretends the network doesn't exist is the right way to design a distributed system.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> I think ZFS is the only viable open source CoW total storage management option commercially. These new Linux filesystems are way too late to the party, and it will take a decade for them to reach maturity when they reach basic 1.0 feature parity.

In parallel I see XFS as the long term evolution for Linux file systems. It will continue to scale slightly up from where it sits today and address fail in place, flash, metadata checksums, snapshots etc where total storage management is done by overlays like HDFS, object stores, etc.

<comment><USER6> I think ZFS is fantastic for businesses but there are a couple places where it falls short compared to bcachefs for me:

\- For non-business users who want a RAID, ZFS is too inflexible. You can't add or remove disks to a RAIDZ vdev. If you want the space efficiency of RAIDZ, you have to expand your array in units of entire vdevs. If you want replicas, you have to expand in at least pairs of disks. BTRFS and bcachefs both allow you to replicate more flexibly and reshape your array.

\- ZFS doesn't work particularly well with SSDs as caches. ZIL and L2ARC are nice but they're not as nice as a full bcache-style tiering setup. bcachefs tiers let you do crazy things like a 4-tier storage setup with Nearline HDD -> 15k SAS HDD -> SATA SSD -> NVMe SSD.

\- ZFS is pretty complex to manage in general and major features like ZIL and L2ARC are arcanely documented. So far, bcachefs is pretty straightforward to use.

</comment></comment><comment><USER16> While I really like these sort of file systems, I'm not holding my breath.

This isn't a simple filesystem project, but plays in the next-gen space ZFS opened up. There will be a lot to do, especially IO scheduling, RAID safety with shitty drive firmwares, consistency guarantees with fsync/partial flushes etc.

I'm pessimistic about it being mainlined in the near future, the core team will be weary of a second btrfs.

What I would like to see is a APFS/exFAT crossover with COW and data checksums without all the volume mgmt with ports for all possible operating systems so everyone can use it for their SDcards, usb-sticks and external drives without making tradeoffs and using fuse.

<comment><USER17> > What I would like to see is a APFS/exFAT crossover with COW and data > checksums without all the volume mgmt with ports for all possible operating > systems so everyone can use it for their SDcards, usb-sticks and external > drives without making tradeoffs and using fuse.

+1. Filesystems without bit-rot protection on flash drives are going to become at least as big a problem as optical disc rot.

<comment><USER18> > without making tradeoffs and using fuse.

What's the problem with fuse? It allows sharing code between Linux, OS X, (Free)BSD and even Windows (via dokan).

Yes, it will not offer you the same performance as an in-kernel driver (due to context switches), but given that CPU power always increases, no big problem there.

<comment><USER17> > What's the problem with fuse?

1\. Only available on Android when rooted.

2\. Support varies between OSes. For example OpenBSD's FUSE does not have the _default_permissions_ / _allow_other_ flags, which makes for example encfs (and any other virtual filesystems that are backed by multiple files) a pain to use since OpenBSD 6.0 removed user mounting.

<comment><USER19> 1\. most filesystems won't be available on Android anyway, this point is moot

2\. most non-fuse filesystems won't be ported to your BSD of choice anyway

</comment></comment></comment></comment></comment><comment><USER20> To press this point:

If you think we need an alternate effort and/or competition to build an advanced, native filesystem for Linux (I do), please consider a subscription on Patreon ([https://www.patreon.com/bcachefs](https://www.patreon.com/bcachefs)). Kent has a long history of shipping sophisticated, high-quality code.

<comment><USER21> Plus he is willing to help out when you need to nail down a bug, as I recently discovered with bcache. My first Linux kernel patch might be a fix of a deadlock in bcache :-)

</comment></comment><comment><USER22> The architecture page is pleasantly illuminating, nice to see an effort made in technical documentation.

[http://bcachefs.org/Architecture/](http://bcachefs.org/Architecture/)

</comment><comment><USER23> Chris Mason and the btrfs team are clearly talented. But the initial excitement of btrfs has sadly dissipated and its promise as the next generation Linux fs remains unrealised. It now feels a bit jaded and the momentum is spent.

I suspect many have lost patience with the promise of COW and unfortunately for bcachefs this history will cast a shadow on its development and potential.

Database performance remains problematic on COW and while things like snapshots and adhoc disk and volume management are interesting even exciting one soon realises unless one has a pressing need they are just nice to have. Eventually boring ext4 ticks all the boxes and one may as well forget about the fs and focus elsewhere.

<comment><USER24> I don't think COW in general is a big issue for databases. You can get pretty good performance for ZFS (very stable and consistent behavior), for example. The COW is not free, of course, but you get interesting features in return, and if you need them (e.g. snapshots), it's usually much better than LVM + non-COW filesystem.

The fact that some COW filesystem perform poorly does not mean all COW filesystems do.

</comment></comment><comment><USER25> This takes me back. 9 years ago I was playing around with ZFS COW and OS X sparse bundle containers to host disks images for multiple "versions" (exploiting CoW) of the same VM image. I wrote up an article on what I was doing [1]. Never persevered though as it was a bit too fragile (at that time ZFS on OS X was not at all ready for prime time).

Funny, but every so often I wonder what it might be like in a parallel world where Apple bought Sun instead of Oracle.

[1] [http://macoverdrive.blogspot.com.au/2008/10/using-zfs-to- man...](http://macoverdrive.blogspot.com.au/2008/10/using-zfs-to-manage-your- vm-zoo.html)

</comment><comment><USER26> I'm looking forward to BcacheFS. ZFS on Linux is great when it works well, but it's an absolute pain when it breaks. Not only does it taint the kernel, but it doesn't really mesh very well in the kernel due to the usage of the SPL -- a layer used to convert Linux APIs to Solaris Kernel APIs. In addition, ZFS doesn't use as much native Linux memory management as I'd like, instead it manages its own pool of memory. This makes troubleshooting more difficult. This mechanism is further aggravated with the use of the kmem cgroup.

For example, if you have a dirty page in a cgroup, and the cgroup OOMs, the kernel will trigger writes. If any of these writes require memory allocations, they'll probably fail since the current cgroup is OOM. ZFS subsequently gets stuck in an infinite loop, and locks up. See: [https://github.com/zfsonlinux/zfs/issues/5535](https://github.com/zfsonlinux/zfs/issues/5535)

I understand that a lot of ZFS works comes from LLNL & government funding. I'm not blaming them, as it works for their use case of machines that are running dedicated, controlled workloads.

We're experimenting with Btrfs, and we'll see how it goes.

</comment><comment><USER11> It looks like it takes quite some time till it is fully implemented. Why should we start using it right now instead of btrfs/zfs?

<comment><USER27> You probably shouldn't. It's ready for adventurous testers, and is pretty stable, but unless you're willing to report bugs or hack on it, you can probably stay away.

There are reasons to still want it, despite its newness; for example, the latest updates bring huge improvements in metadata efficiency (low metadata overhead -> more metadata in the cache -> larger working set). Someone on the IRC channel reported it's somewhere around 20x faster than most filesystems when it comes to "iterate millions of files recursively", blowing everything else out of the water. (This seems somewhat synthetic, and I'd say it _mostly_ is -- but OTOH, "tons of files in a directory" being really slow is life, and has bitten me multiple times in a prior job). In general, improved metadata efficiency helps everywhere, though. For example, if you're doing backups on a really big filesystem recursively, you'll have to traverse the metadata inodes a lot to get e.g. last modified time. bcachefs will likely do awesome here in terms of performance.

Another unique feature I recall is the fact it has very very good tail latency -- bcachefs almost never blocks on I/O unncessarily, so you do not get random 'lag spikes' when things like the page cache get flushed out (which may halt some other I/O ops). This makes the system feel much more consistent, in general.

There's lots of good info in the architecture document and Patreon posts from Kent:

[http://bcachefs.org/Architecture/](http://bcachefs.org/Architecture/)

[https://www.patreon.com/bcachefs/posts](https://www.patreon.com/bcachefs/posts)

<comment><USER28> I spent the last week testing ext4/btrfs/zfs on Linux and I found that zfs is rather slow and btrfs has improved its performance a lot in the last years (I should refined the script a bit, upload some graphics and make a post).

[https://gist.github.com/liloman/d525131fab9b9a440140905921e9...](https://gist.github.com/liloman/d525131fab9b9a440140905921e9346a)

I'll give it a try on bcachefs. :)

The script needs a 512MB spare disk partition and some basic changes but the fundamental work is there.

</comment></comment></comment><comment><USER29> I like that we are seeing competition in this space. I think it's good for business.

I do however see some big red flags in the linked page:

> Starting from there, bcachefs development has prioritized incremental > development, and keeping things stable, and aggressively fixing design > issues as they are found

Which is it? Big design changes or stable FS?

<comment><USER30> From what the developer has stated on reddit, it's more like he wants to aggressively make changes on the filesystem _right now_ , before any attempt at mainlining into the kernel, to not end up like btrfs, which in his view, was mainlined prematurely.

<comment><USER31> It does make sense to have it rock-solid stable _before_ mainlining, so that people don't get burned by it early on.

</comment></comment></comment><comment><USER32> So by analogy with btrfs "butterface" I suppose we're supposed to pronounce this "book-a-chefs"?

</comment><comment><USER33> Curious, I didn't see mention of this, but perhaps someone here knows, is there TRIM support or planned support for bcachefs?

<comment><USER34> TRIM isn't super important given bcache's write pattern (sequential writes to large aligned blocks). It doesn't do random overwrite in place of small blocks.

</comment></comment><comment><USER35> > Bcachefs: "the COW filesystem for Linux that won't eat your data

from site:

> Bcachefs is not yet upstream - you'll have to build a kernel to use it.

> Snapshot implementation has been started, but snapshots are by far the most > complex of the remaining features to implement -

Yes. Very mature.</comment>