New Website Builds Minimum Viable Products for Startups - <AUTHOR> http://ibuildmvps.com

<comment><USER2> _The idea is really nice_ ( _IF_ you can actually execute)!

I don't like the website though:

* all the toplevel links take you to another website. I usually expect those to take you to pages that are at least consistent with the top domain I'm coming from.

* FOUNDER'S BLOCK is listed twice.

* There is a list of people with a small blurb, that initially made me think they work for this website: Eric Ries, Steve Blank, Brant & Peter. Now I think it's just a list of people that "inspire" the author. Anyhow, it looks like a way to use the "celebrity" of these guys a bit.

* "rcavezza [atttt] gmail {dddottt} com." Bite the bullet, make actual mailto: links or at least some form. Don't make me hand-edit your email, it's an artificial barrier to getting new customers.

* "ANOTHER WEBSITE CREATED BY BOB CAVEZZA." Not to be rude, but it sounds puerile: "another website"?

* "Designed by STUDIO7DESIGNS": This is too prominent.

<comment><USER3> Nice concept overall .. but i agree with fierarul... those links to Eric Ries, etc. almost felt as if they had some sort of an association with this project or had their blessings.

the website footnotes are wayyy too prominent .. and borderline boastful ..

and the "Yes, Build my MVP" link looks out of place as compared to the rest of the site. you might want to change the font style.

maybe you should spend some more time on it vs. using the "created in less than x hours" line.

</comment></comment><comment><USER4> I love this idea for a service. I could see using it a lot even though I'm a programmer.

Ok, here's an MVP I want. What do you think of this:

I already have a twitter account where users submit quotes. It picks up 20k new followers a month and most quotes gets 200+ retweets. I'm starting to think it could be a "big" deal.

I want to test a leader board for submitters to see if that encourages even more participation and also test the top quotes put onto mugs and t-shirts to see if there's revenue potential.

I think the MVP is: \- a static web page of the top quotes from the past week (pulled manually based on retweets) \- the static page should have # of retweets and the profile photo and twitter name of the person submitted it \- the top quote should be tied to a cafe press store \- a few tweets announcing the leaderboard to my followers

I'm expecting you to be the master of best practices. What details am I missing? Do you have feedback on the MVP?

I'll check the comments here, but I'm willing to pay, so you can also email me: email@example.com

</comment><comment><USER5> I love this idea. But I'm not seeing the thing on your site that makes me believe you can do this (e.g. the big PORTFOLIO button). How do I get that confidence?

<comment><USER6> If you can really crank these out this quickly you should be able to get 5 things in your portfolio within a week. If there's a startup scene where you live you could make some friends by offering them your services at a heavily discounted rate.

Putting up a nice portfolio will allow you to get customers online. Getting local customers only requires a good pitch.

</comment></comment><comment><USER7> Like everyone else has said, the idea is cool. Other than that, and this might be harsh, but I don't think you could execute 99% of people's ideas and make a MVP. That's just how I feel after exploring this site for 3 minutes. The blog post about this website is a joke:

"I built my MVP (ibuildmvps.com) in less than two hours. Most of the time was spent waiting for godaddy to process my domain name and email address, and set up the hosting. Besides that, I found a free template online, built a button from a free form generator, created a Google Form, and tweaked the hell out of it. I also added links to many lean startup/customer develop icons who I admire."

This is cute, but it only makes me have less faith in you because none of it is impressive, so how would you implement my idea if it requires a little bit more than using google forms and pre-made templates? The description of the blog on the right hand side rubbed me the wrong way as well. My father has been programming since 1999, or so he would tell people, so the fact that you've been coding since 2002 does nothing for me. You don't have a portfolio anywhere to prove you know what you're actually doing. And if you're going to put your college and state that you received a Bachelors of Science degree at least put what the hell you got it in...

</comment><comment><USER8> This is a great idea, and I'm likely to use it in the near future.

One potential barrier to entry for users of this site:

What's stopping ibuildmvps.com from building an MVP for someone, and then (if the idea works well) taking that idea and developing it to the next level without them?

I'm not trying to say or imply that this is the intention of ibuildmvps.com. But (in America at least), you can't copyright an idea. Therefore, any of your clients would be opening themselves up to that risk.

Perhaps you should have a page on the site saying you'd be willing to sign a non-compete contract, in order to ease that concern (which may lower the barrier to entry for your service). Even better, maybe that non-compete agreement could be part of your TOS?

Again, I really do like this idea. I just wanted to add my two cents, in an effort to help your site become even better. Best of luck with this venture!

<comment><USER6> This sounds exactly like the Facebook origin stories, both the ConnectU one and the "Paul Ceglia owns 84%" one.

</comment></comment><comment> tomh- Why are the names of Eric Reis and Steve Blank there? Are they involved? If not, make that more clear, else it looks to me like you are trying to sell your services by using their names to promote it..

<comment><USER9> He's using their names to promote it either way, it's just unethical if they're not involved.

<comment><AUTHOR> False. Linking to people I admire. I considered changing this (as I changed many parts of the site based on HN comments), but I like the links as a tribute to them.

<comment><USER6> The links are fine but to make it kosher you need to put up some sort of description like "These fine folks inspired me. They are not affiliated with this service."

<comment><AUTHOR> Implemented this change after a little more thought. Sorry if I offended anyone.

<comment><USER3> it's all a learning process ..

you might want to change case for the footer .. the caps don't help :)

i see you're a RU grad .. i'm an RU alum, now in Boston.

</comment></comment></comment></comment></comment></comment><comment><USER10> Sorry in advance for being harsh, but ...

You state that you can build a functional product in 2-3 hours? I call bullshit.

I mean - I know programmers are notoriously optimistic, but that's just getting ridiculous.

Unless you mean that you can throw together a mock-up, but that's not an MVP in my book.

<comment><USER11> A mockup can be a MVP. A MVP is just there to attract potential customers and make them 'sign up' (e.g. an 'I'm interested' email)

<comment><USER6> I like it. I'm guessing you're going to crank out quick Rails skeleton sites to Heroku? This is a good service and i see nothing wrong with people using your sketched out web apps to begin the customer validation process.

If Tim Ferriss can test an idea with a non-functional landing page and a few hundred dollars in adwords, surely your service is at least as viable.

</comment></comment></comment><comment><USER12> I clicked on the link hoping there was some interesting technology involved, but it appears to be just someone offering contract work. Best of luck to him, but I'm not sure it's a very novel idea (I do it frequently, I imagine _you_ do, too).

<comment><USER6> The technology isn't noteworthy but the marketing effort is. Surely there are tons of would-be non-technical-cofounders on Twitter drinking the Lean Startup / MVP koolaid who would jump at the chance to get their idea online overnight.

Maybe they could get it done by calling your or going on elance, but the copy and presentation of this site gets them closer to yes by speaking in today's startup lingo.

</comment></comment><comment><USER13> Great idea ! However a few points:

* How do I know you won't steal/sell my idea ? How do you handle NDAs etc ?

* What will the "MVP" buy me ? Do you do any design ? Sure it may take "2-3 hours" but what exactly does that entail for my money ?

* What about hosting ? Do you provide source code, or just host a demo for me ? How long is it hosted for ? Is it password protected or otherwise restricted from general use ?

* External links that look like internal links are confusing. Have them clearly designated as such.

</comment><comment><AUTHOR> Thanks for the comments everyone:

Here are some replies...

1.) This website took 90 minutes to create from idea to publishing.

2.) Eric, Steve, Brant, and Peter are in no way affiliated with this except they are awesome and helped inspire it.

3.) An MVP can mean many things to many people. I think you should do the least amount of work in order to validate/invalidate the most assumptions. "Get out of the building", show people sketches, create site mockups with buttons that don't work and calculate the number of people who pressed them,etc. Here's an article from Venture Hacks.

[http://venturehacks.com/articles/minimum-viable-product- exam...](http://venturehacks.com/articles/minimum-viable-product-examples)

4.) Interesting thought about NDAs. I think I would take the same route as VCs. Don't sign them because they may inadvertently affect other projects you're working on. I probably won't be able to offer assurance except not doing it - also like VCs.

5.) What do I provide. Depends on the project, I think smaller is better to validate assumptions with the least effort. This way, you don't waste time building something people don't want.

<comment><USER5> VCs get away with it because: 1) They have reputations; 2) They have the money 3) It's a practical necessity for someone who looks at a dozen pieces of IP daily.

None of those cases apply to you, and as a general rule, no competent entrepreneur will pay a contractor who won't sign an NDA.

My recommendation would be to sign enthusiastically, because it means you got a job.

<comment><AUTHOR> Couldn't disagree more.

1.) This isn't about getting a job, it's about helping entrepreneurs start companies.

2.) I already had two queries that rubbed me the wrong way because they are similar to project I have in the works. Signing an NDA would probably jeopardize the work I've already done.

</comment></comment></comment><comment><USER14> Frankly, this seems like complete bullshit to me. It is simply the contact form for a normal, run off the mill PHP developer. Nothing against PHP developers having web sites, but it is not HN stuff.

Also, I strongly dislike that the site evokes the impression of being associated with Eric Ries, Steve Blank and Brant & Patrick - I am guessing that is not really the case.

</comment><comment><USER15> An excellent concept. The reality is, most 'ideas' can be tried out in it's minimum form fairly quickly - with the added benefit that from day one, you are getting ranked in google, getting feedback, collecting email addresses and taking sign ups.

My personal approach, is to use word press on cheap hosting. I know how to customize word press to do almost anything I want and can get something up in a few hours to test the market (check for validity of my keyword analysis). Obviously not everyone knows php / how to customise word press, so your solution is ideal for those founders with the idea but no technical knowledge.

Once the idea has been tested, I'll then spend longer building the better product (if needed), knowing that the initial feedback I got from launching early will save me from building the wrong thing.

</comment><comment><USER6> I recommend you focus your copy on the type of people you'd expect to buy your service and not the programmers here at HN that are offended by the boldness of your claims.

You're contracting a high hourly rate to non-technical would-be founders on the understanding that they can get to the validation stage after a few hours of your time without having to line up a co-founder/CTO. This is gold!

Hopefully patio11 will review you - I think this sort of marketing is his specialty.

I'd also recommend you downplay your fresh-out-of-college status to avoid scaring off potential customers. Being a bright young 20-something is fine, but the "MY COLLEGE CAREER" link has a "just fell off the turnip truck" feel to it.

<comment><USER16> I agree. First point on the copy is that people that are most likely to benefit from your services are the people that need someone to explain what a MVP actually is, and why they want one

</comment></comment><comment><USER6> Point of protocol here - submitting your own startup idea for critique on HN is a respected tradition but the slightly misleading headline reads like a 3rd party submission.

Most of the ones I see are more like " _Show HN: Rate my new MVP building service_ ".

<comment><AUTHOR> Apologies. The original headline said something to the tune of "I built this website in less than 2 hours" and I made this change. I don't think I'm allowed to change it again. Maybe an admin can make this change.

</comment></comment><comment><USER17> I like the idea of using this niche to market your contracting services. However, I have one small nag. Building an MVP is not simply about cranking something out as quickly as possible. It's about not wasting time where it's not needed. But that means if your MVP proves successful, you better be ready to continue building it. And I'm guessing a lot of people won't want their MVP to be some 3-hour one-off built in PHP. I hope you have more than that to offer.

</comment><comment><USER18> Only in 2-3 hours? A small web app takes at least 5 hours (if you consider design, JavaScript, PHP, Databases).

A startup should have a problem. The solution can take weeks. How are you going to do about it? Also if the founder is non-techie, you'll need to install the website yourself and that alone can take 2-3 hours if you are setting up a dedicated server.

</comment><comment><USER19> this site reeks lame sauce, total poser hopin to snipe some startup noob traffic, good luck with that, toting the blank man and ries is additional lameage and to follow up with a web entry form where you say "2-3hrs" time = mvp, is flat out incorrect..

</comment><comment><USER20> How is the title relevant? If anything it only makes me want to stay away.

<comment><AUTHOR> I thought it was relevant because I built the site in less than 90 minutes. I could be wrong, ideas for an edit?

<comment><USER21> 90 minutes? What tool(s) did you use? Looks good.

<comment><AUTHOR> I tried to build this website in the form of a minimum viable product the same as I would try to help others implement their idea. Found a free online template, built a web 2.0 button, tweaked the hell out of the template, and added a link to a Google Form. This is a true "minimum viable product" that I would like to create for others.

</comment></comment></comment></comment><comment><AUTHOR> If you were me, much would you charge for this service?

<comment><USER6> I would peg your fee against the quality of your portfolio.

For a ballpark estimate, try charging an hourly rate pegged at the yearly salary you want to make divided by 1000. My reasoning behind this is the other thread suggesting that contractors need 2x an employee's salary to cover for a lack of benefits balanced against the idea that a standard 40 hours x 52 weeks work year has 2000 hours.

      Example:  $50,000 * 2 / 2000 = $50/hr.

</comment></comment><comment><USER22> You gotta remember to A/B split test your MVP before reaching P/M fit yo</comment>


Network Marketing Tip of the Day: Fill the Funnel - <AUTHOR> http://www.jordanmaylea.com/network-marketing-2/network-marketing-tip-of-the-day-fill-the-funnel/ <comment><USER2> "So if you are frustrated with where your business is right now, look at your funnel." or, perhaps look at your MLM Business Model?</comment>


AngularJS is not for websites - <AUTHOR> http://wolfslittlestore.be/2014/10/angularjs-is-not-for-websites/

<comment><USER2> This does not seem to have anything to do with Angular at all.

This looks like the typical case of the website that was shipped out the door as soon as possible without any accessibility concerns, that have to be shoehorned afterwards.

This would have happened independently of the technology used to build the site.

Angular added native support to the ARIA attributes in version 1.3 [https://docs.angularjs.org/api/ngAria](https://docs.angularjs.org/api/ngAria)</comment>


Two friends of mine are biking from Vancouver to South America - <AUTHOR> http://twodudesonbikes.com/

<comment><USER2> I like this. I was hesitant to upvote it, because like one of the dudes says in one of his posts, the site still looks very incomplete.

It would've been nice to submit a more finished and slightly better presented/structured site, but you know what, the content is really engaging.

I'm from Vancouver and UBC is my alma mater, as well, and I can see some of my friends being crazy enough to do something like this.

You've gained a reader!

Best of luck and I hope the finished product is equally as compelling!

</comment><comment><USER3> if you guys need any help in brazil I would be glad to help. @eluttner</comment>


Capitalism's Wicked Witch - <AUTHOR> http://www.thedailybeast.com/blogs-and-stories/2009-11-27/capitalisms-wicked-witch/p/

<comment><USER2> One point which I rarely see addressed in various internet fora is the striking similarity of _form_ between orthodox Marxism and orthodox Objectivism. I realize this may be a repugnant idea to fans of either philosophy, but consider the following nutshell summary:

There are two classes of people in society. One class, which we call the ____, is productive and labors to bring forth all manner of useful things. The other class, which we call the ____, is not productive and, in fact, consists entirely of parasites who suck the life's blood out of their fellow men. These parasites accomplish their goal via exploitation and alienation: unjustly separating others from the fruits of their labor, though they wrap themselves in a philosophy by which they seek to justify their theft. One day, the revolution will come and the productive class will rise up and throw off the yoke of the parasites.

Broadly speaking, one can insert "poor" into the first blank and "rich" into the second and obtain the works of Marx. Or one can insert "rich" into the first blank and "poor" into the second and obtain the works of Rand.

</comment><comment><USER3> "Allen Barra writes about sports for the Wall Street Journal".

Oh, ok.

<comment><USER4> I accidentally upvoted you -- sportswriting isn't any more dismal a discipline than general news journalism.

If anything, it's better: they have an actively interested critical audience, they have general editorial freedom, a subject that lends itself to experimental writing, and they are expected to have a strong critical voice -- unlike news-journalism, noone wants press-release stenography.

I actively dislike professional sports, but sportswriting ain't so bad. It's a lot like a prole version of the Literature Review world (LRB, NYRB, VQR, etc.).

</comment></comment><comment><USER5> The Daily Beast is one of the most dubious sources that isn't banned here on HN. I thought the article in The Economist on the same person was much more interesting.

[http://www.economist.com/books/displaystory.cfm?story_id=146...](http://www.economist.com/books/displaystory.cfm?story_id=14698215)

</comment><comment><USER6> It is more accurate to say that Rand hate anything that is not her own views. She also hate anarcho-capitalists, libertarians who are not randians, anti- intellectual property libertarians, and anybody who are more extreme and consistent than her.

She isn't some wicked witch for capitalism. She have her own kingdom.

</comment><comment><USER7> Does this really belong on HN?

As a sidenote, why is it okay to quote Nietze (who died in a mental hospital) whilst wearing a Che Guevera T-shirt yet it is wrong to say anything about Rand?

Does the author's personal life have any bearing on his argument?

(Btw, my favourite writer was on death row and second favourite was addicted to morphine and shot his brains out. This does not detract any of their works – on the contrary, it makes it more interesting).

</comment><comment><USER8> Warning, this page seems to invoke the print dialog in the browser.

</comment><comment><USER9> The author of this piece sounds like he has sand in his vagina (to quote South Park).</comment>


If Only 3D Animation Were This Easy [video] - <AUTHOR> http://kotaku.com/if-only-3d-animation-was-really-this-easy-511467250

<comment><USER2> The dance moves were 1920s-style Charleston and Susie-Q followed by the Bees Knees (sometimes called breeze-in-the-knees). Interestingly, back in the Savoy Ballroom days, true Lindy Hoppers could tell if someone really knew their stuff by whether or not they raised their foot during a Susie-Q. From 1:02 to 1:05, the character's right foot appears slightly raised. Obviously not a true Lindy Hopper. ;-)

Lifted foot aside, the body motion for the vernacular jazz dance moves is quite authentic. Nice work.

<comment><USER3> Care to explain what you mean by the lifted foot? Are you talking about pivoting on the heel, and lifting the front part of the foot, during the Susie Q? If so, I've never heard of this being seen as a sign of knowing their stuff or not. I just considered it a variation, some people pivot on the heel, some on the front part.

<comment><USER2> Lifting the ball of the foot while pivoting, rather than resting it on the ground. The pivot is always on the heel, as far as I know. Raising the front of the foot off the floor is not following Frankie's form, if you will. Here's a good demonstration by Al and Leon:

<http://www.youtube.com/watch?v=psZB6t4P-QI>

Watch the front foot. There's a very slight momentary lift (during the set-up for the slide), but the slide action occurs along the ground.

</comment></comment></comment><comment><USER4> That was really well done and funny! The ending comment had me laughing.

It reminds me of a similar video Animator vs. Animation.

<comment><USER5> Link for anyone interested: <http://www.albinoblacksheep.com/flash/animator>

It's interesting to go back and look at some of the semi-old-school viral content once in a while.

I'm a little surprised Albino Blacksheep (and fetchfido.co.uk apparently) is still running to be honest.

</comment></comment><comment><USER6> I love this. Can anyone recommend me a good blender tutorial? From very basics to character rigging and the more advanced stuff? Also going into scripting?

<comment><USER7> I mostly learned Blender myself (3 years ago...good times). I remember using this: <http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro>

It also recommends this book:

[http://en.wikibooks.org/wiki/Blender_3D:_Blending_Into_Pytho...](http://en.wikibooks.org/wiki/Blender_3D:_Blending_Into_Python)

for scripting (though it's still a WIP).

Back then it had far less chapters, and so I had to mostly rely on the documentation/experience, but it seems like it's got much more stuff now, so you should really check it out! Happy Blendering.

<comment><USER6> Thanks!

</comment></comment></comment><comment><USER8> Am I the only one asking the right question? This video is not a just-for-fun video. It is a cry from the animators of this world that they want better tools. We, as tool builders, programmers, need to listen to this. There is a problem here that can be addressed. There is a market here that can be capitalized.We are all a bunch of hackers here. What is it that is preventing us from creating tools that make creating animations even easier?

<comment><USER9> _What is it that is preventing us from creating tools that make creating animations even easier?_

Probably the fact that this is a hard problem. Seriously, hundreds if not thousands of people are working on creating tools for animators, for 3D software companies, movie and game studios. If it was easy, it would have been solved by now.

<comment><USER8> Not really true. They are still building tools that were like other older tools ( but with more complexity ). As far as I can tell nobody ( nobody I know) is thinking "How can I make this easy ? " Most of the tools these days are build around the same thought process. I will build a tool like Intellij but will add 2 extra features like cloud sync and another thing. But that is not what we need to do. That wont "change the game". Everytime we look at something and plan to disrupt it, we cant disrupt it by adding one more feature to a product that already exists. You need to think ground up. This also relates to people not thinking big. Its a hard problem. I understand that it is. But, someone has to go after the hard problems. I am looking for that someone.

If we look at Brett Victors inspirational videos the one thing I can take away is "Change the game". If we play the same game as before things wont change much. So, creating animations is a hard problem to solve. But, can someone change the game ? For centuries, extracting aluminium out of its alloy was a hard problem, or extracting mica. Once it was done, it changed the game.

<comment><USER10> Speaking as someone with 17 years' professional animation experience, I've seen a lot of people try to come up with newer, better, easier ways to do animation. I've tried most of them, because my workflow revolves around doing things in the fastest, easiest way possible.

What am I currently using? 3D Studio Max. (and Motionbuilder, and some high- end mocap technology, and a lot of outsourcing.)

Seriously, it's a hard problem. I'm not saying "don't try", but it's a hard problem.

<comment><USER11> Have you had a look at the Source Movie Maker from Valve? <http://www.sourcefilmmaker.com/>

It's by for the most interesting development for animation that I've seen for years. In about an hour I was able to produce 15 sec of reasonable good animation the first time I used it.

Their process is more akin to Photoshop than anything else as it's a destructive process rather than procedural.

I found it quite enlightening.

</comment></comment></comment></comment></comment><comment><USER12> Seems like the animator attached motion capture to the rig. Awesome job. Very awesome if the animator did everything manually.

<comment><USER13> Judging by the logo at the end, I'd say this was a project for a character animation class--so no mocap. :)

</comment></comment><comment><USER14> NaturalMotion's Euphoria engine is one step in this direction. <http://www.naturalmotion.com/products/euphoria/>

</comment><comment><USER15> What 3D design/animation package was that done in? It's too blurry for me to tell. Looks a little like Blender but I haven't played with it in years now.

<comment><USER16> The video shows Autodesk Maya 2013 (as you can see in the window's titlebar and the task manager). It seems fair to assume that the video itself was made using it, too.

<comment><USER15> I'm stuck on a bus to BKK with only an iPhone, so I can't watch high-res or zoom. Thanks for answering my Q. Great animation.

</comment></comment></comment><comment><USER17> Is Maya a good starting point for someone who wants to get into 3D animation and modelling?

<comment><USER18> No. I tried starting with Maya once and the cornucopia of options left me stumped.

<comment><USER11> Blank canvases can do that sometimes ;)

</comment></comment></comment><comment><USER19> At work MotionBuilder is the king, while Maya is for modelling.

<comment><USER10> Yeah, I'd call Motionbuilder the king for character animation, too. Lovely tool.

</comment></comment><comment><USER20> Nice work, until the annoying scream. Thanks we have ctrl + w

</comment><comment><USER21> Very nice. Wish he would have changed the 0.1 fps though

</comment><comment><USER22> Oh god. The comments on Kotaku.

<comment><USER23> Indeed... I hope these guys are joking:

«I just watched the video, but I'm confused: What program do I have to use to communicate with my computer like this?»

«This is not real and such systems do not exist.»

«You can't be serious»

<comment><USER24> Well the first one is the beginning of a comment thread, the other two are replies to the top one. If you click the top one you see that there are multiple replies and he appears to be a troll.</comment></comment></comment>


BlazingDB uses GPUs to manipulate huge databases in no time - <AUTHOR> https://techcrunch.com/2016/09/12/blazingdb-uses-gpus-to-manipulate-huge-databases-in-no-time/ <comment><USER2> Several companies have implemented databases on GPUs but there is a good technical reason that the approach has never really caught on, and some of these companies even migrated to selling the same platform on CPUs only.

The weakness of GPU databases is that while they have fantastic internal bandwidth, their network to the rest of the hardware in a server system is over PCIe, which generally isn't going to be as good as what a CPU has and databases tend to be bandwidth bound. This is a real bottleneck and trying to work around it makes the entire software stack clunky.

I once asked the designer of a good GPU database what the "no bullshit" performance numbers were relative to CPU. He told me GPU was about 4x the throughput of CPU, which is very good, but after you added in the extra hardware costs, power costs, engineering complexity etc, the overall economics were about the same to a first approximation. And so he advised me to not waste my time considering GPU architectures for databases outside of some exotic, narrow use cases where the economics still made sense. Which was completely sensible.

For data intensive processing, like databases, you don't want your engine to live on a coprocessor. No matter how attractive the coprocessor, the connectivity to the rest of the system extracts a big enough price that it is rarely worth it.

<comment><USER3> It would seem that rationalization would fall apart quickly with the new Power CPUs that have NVLink built right into the CPU. Getting data back and forth shouldn't be a problem anymore.

Outside of CPU >> GPU, I'm not sure what other data movement you could be talking about. A SAS HBA or Ethernet NIC or Infiniband HBA are almost always going to be operating over the same PCIe bus the GPU uses. In the rare instances they're built onto the CPU, the "network link" is likely going to still be significantly slower than the fastest PCIe slot.

<comment><USER4> What is NVLink, and what does it mean in terms of data transfer?

<comment><USER5> It's a faster link between between future IBM POWER processors and NVidia GPUs, but won't make waves in database market since those systems are niche HPC/supercomputing hardware.

<comment><USER6> I've also seen NVLink on some of the pre-Pascal roadmaps for nVidia's gaming- oriented graphics cards. Since the current generation gaming consoles has HSA, I'm hoping that it gains in popularity and because less niche. Problem is that it'd be a pretty vital component to be nVidia proprietary.

<comment><USER7> CAPI is "open" solution to do the same thing, though NVLink supposedly still offers more bandwidth. Unfortunately CAPI is only available on POWER8 hardware at the moment and I'm not sure if IBM is open to license it beyond OpenPOWER - still, there's a decent number of CAPI-capable cards already available and more coming to the market in the future.

GPU's may not be great for every unit of work a RDBMS has to perform, but given their ability to rapidly compute hashes it could help a lot with joins (as evidenced by PGStrom).

</comment></comment></comment></comment></comment></comment><comment><USER8> This has been tried many times. Unless you are doing a computation with sufficient arithmetic intensity [0] the cost of shipping the data over PCIe and back dominates any gain you might get over a CPU.

[0] - [http://www.nersc.gov/users/application- performance/measuring...](http://www.nersc.gov/users/application- performance/measuring-arithmetic-intensity/)

<comment><USER9> You would need a GPU with an onboard SSD (exists). Or GPUs and drivers with the ability to talk directly to infiniband hardware (exists).

Or the ability to not be ridiculously wasteful of existing resources (also exists).

Your naysaying doesn't make you smart. Your naysaying makes you cut off from learning a different, better way of doing things.

<comment><USER8> Database workloads tend to be very branch heavy, e.g. string comparisons. If you've ever programmed a GPU you know that taking a data-dependent branch serializes the execution of the GPU stream processing units. So already the 70-100x benefit GPUs give on vectorized floating point workloads is greatly reduced. Add in the memory bandwidth penalty and it's a complete waste for IO intensive database workloads.

Save the GPUs for training neural nets and physics simulations. When the fundamental hardware capabilities of GPUs make them worth investing in for database workloads, I'll change my opinion. Until then, any budget for expensive DB hardware is much better spent on NVMe storage.

<comment><USER10> You can write code to compare strings without branches. Imagine comparing one string to every string in a database column. Pad to a fixed size first (if you find an ambiguous match later you can do a full string compare then). Subtract the strings, aka compare, and store the result. At the end of all the commparisons you have a memory structure of negative, zero, or positive values. Then you can do something with the matching values.

There have been some _very sweet_ algorithms for doing B+ tree searches for Itanium and for AVX and those work just as well, if not better on GPU.

With some thinking, branch operations can be converted into math and applied to masses of data without checking for branch conditions. This wastes some work but is still faster than branching.

<comment><USER8> That sounds like an interesting technique - but it unfortunately does not apply on a majority of real-world data.

In particular I mean sorting non-English text which any serious database needs to be able to do. Subtracting characters doesn't work when you're dealing language specific Unicode collation [0].

[0] - [http://www.unicode.org/reports/tr10/](http://www.unicode.org/reports/tr10/)

<comment><USER10> Yeah, well, you just can't do it that way and be fast at the same time. I mean seriously fast.

What you can do is decide how your comparison should be collated and preprocess your strings into a sort key form that is strictly big-endian binary (first byte has highest weight). Or little-endian I suppose, whichever works best for your hardware.

Your sort key doesn't have to be the actual string.

</comment></comment></comment></comment></comment></comment><comment><USER11> How do they guarantee the correctness of results? A major problem with GPUs is you see single bit errors with surprisingly high frequency.

For graphics this usually doesn't matter as a minor color or vertex deviation isn't noticeable, but for compute it can be devastating.

We do cryptocurrency mining on an industrial scale and constantly see single bit errors from hardware that is brand-new without modifications.

<comment><USER12> _We do cryptocurrency mining on an industrial scale and constantly see single bit errors from hardware that is brand-new without modifications._

That's very surprising and interesting. How do you detect these single bit errors?

<comment><USER11> Detection of false positives: Run candidate solutions through the CPU

Detection of false negatives: Compare solution distribution and frequency to expected models; switch to debug kernels if outside tolerance.

However, this works because the mining problem space is stateless and follows strict mathematically predictable models.

A DB is stateful and the answers generally can't be verified without consulting a secondary copy, which is why I'm super curious how they would engineer correctness and reliability in a cost-effective way using GPUs.

<comment><USER12> That's very interesting. Have you collected statistical data on these bit errors? Is it always a single bit error?

I'm assuming you are using GeForce cards and not Tesla cards which have an ECC memory protection mode?

I've tried to collect some statistics on GPU memory errors rates but have found them to be normally extremely rare. The only time I've reproducibly seen them is due to faulty hardware, where the errors become highly reproducible and the GPU needs replacement. The other theoretical cause of bit flips is supposed to be random errors due to cosmic radiation but I've never been able to observe that using memory testing software (though I did only run the experiments in AWS).

Could it be that you have faulty or low grade GPUs? I assume these are all low-cost OEM parts, given your application? Or maybe there's something odd about your data center environment?

Regarding the GPU database application, I think the answer is to just use the Tesla grade GPU with ECC memory enabled.

<comment><USER11> Generally we prefer AMD cards as most (profitable) mining functions are memory bandwidth dominated. Usually it's a shader unit that gets unstable in the 70-80C range (note that most silicon is rated for higher ranges).

AMD's hardware specifications are more open too which lets one build your own shader compilers and get direct access to the iron.

</comment></comment></comment></comment></comment><comment><USER13> The numbers for GPU databases look "good" because you can get pretty high cross-sectional bandwidth to a reasonably large memory from 8 GPUs in one box, and advertise blazing speed from that. But it's just a trick.

The only thing that matters for them here is the aggregate, cross-sectional bandwidth to your data's working set in memory. For databases, especially for the approach that many GPU databases take (light on indexes since GPUs aren't great at data-dependent memory movement or pointer chasing, just brute-force scan much of the data), the working set size is something that will only fit in main memory.

Instead of using 8 GPUs with a peak global, cross-sectional memory b/w of 8 * 320 = 2560 GB/sec and brute-force scans, you can parallelize across ~40 CPU nodes each with ~60 GB/sec b/w to main memory. The cross-sectional bandwidth will be about the same, and the cost to split and join the results of the query is likely small in comparison to actually doing the work, assuming the intermediate results are reasonably small. You can use a broadcast and reduction tree; the added latency of the broadcast and reduction tree's depth likely won't add much, since there isn't much data to broadcast in a query, and the data returned by each machine for the reduction is hopefully (!) tiny in proportion to the actual data scanned.

If you want to consider indices on data, then maybe the heads of that can remain resident in a CPU's cache, and will make the individual CPU scans even faster. The GPU caches are tiny and mainly serve to patch up strided loads and other bad uses of memory.

Whether or not it's worth it one way or another depends upon how large your database size is, the relative cost of GPUs versus CPU nodes to get the memory you want and the cross-sectional b/w you need, perf/W and other issues.

You're probably nowhere near close to arithmetic throughput bounds on GPUs or CPUs since these workloads have very low op / byte loaded ratios compared to typical HPC workloads, so that aspect of GPUs doesn't matter. If you're doing expensive pre- or post-processing on GPUs as well, then that may push the balance more towards GPUs.

<comment><USER14> You bring up some really good points about badnwidth to the data and how many of our competitors have gotten ridiculously high benchmarks. We do NOT cache on the gpu, EVER. The reason why is because most of our columns are much too large to fit on one or even 8 gpus let alone the rest of the space required for processing on it.

which are why we actually prefer to have only 1 GPU per server when we are making our own boxes. We find that our most optimal running environment is when we have smaller instances with only 1 gpu. This is due to the fact that two smaller rigs with a gpu each will benefit from increased CPU RAM throughput (basically double 1 rig) and you have 2x the PCIE bandwidth since you are splitting it across two machines. While we don't have the enviable op / byte loaded that some machine learning tool sets might use we are able to greatly enhance these throughputs by using compression and doing things like running multiple arithmetic operations in one kernel call.

</comment></comment><comment><USER15> It would be interesting to benchmark this against [https://wiki.postgresql.org/wiki/PGStrom](https://wiki.postgresql.org/wiki/PGStrom) .

<comment><USER16> And MapD, too.

<comment><USER17> Got pals at MapD. I'd like to see any of them benchmarked against Kx. Pretty much all database problems are IO bound, and not many get it as right as Art did.

</comment></comment></comment><comment><USER18> Every time I read about offloading work to the GPU, good old times come to my mind.

I vividly remember the Intel 8087, a math co-processor to the Intel 8086 that came out in 1980-1981. All the floating point arithmetic was offloaded to it.

It ended up disappearing as a separate chip with the Intel 80486 in the late eighties.

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

<comment><USER19> Also [https://en.m.wikipedia.org/wiki/Original_Chip_Set#Copper](https://en.m.wikipedia.org/wiki/Original_Chip_Set#Copper)

The good old days indeed!

</comment></comment><comment><USER20> Sounds similar to what Netezza did with FPGA's but here with GPUs. So they may hit patents they say they are unaware of...

<comment><USER21> Yeah, they need to be unaware of them...</comment></comment>


Best Paper Awards in Computer Science Since 1996 - <AUTHOR> http://jeffhuang.com/best_paper_awards.html <comment><USER2> Like I posted before here [1], it is interesting to see that Microsoft is on top of the best-paper award list with 43 points, and MIT is third on the list with 30 points. IBM and Google are way further down the list, just to name a couple.

This is why (imo) Microsoft deserves much more credit than it gets. Especially compared to Apple, which isn't even to be found on this list.

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

<comment><USER3> I'm curious why you chose to name MIT (3rd) but not UW (2nd). If anything it's more interesting to me that the top two are both based in Washington.

<comment><USER4> > If anything it's more interesting to me that the top two are both based in > Washington.

Really? I thought that kinda made sense. Lots of cross-pollination between MS and UW. Most of my graduating class from UW CSE went to either Microsoft or Amazon (well, at least it felt that way), and plenty of graduate students seemed to have done a stint there as well.

I guess by that I mean: If you told me MSR is #1 at something, I'd suspect UW is pretty close behind.

</comment></comment></comment><comment><USER5> A list of best 10 year old papers/test of time awards would be really useful for finding the high impact papers in a field. It's surprising how often best papers have very little impact down the line.

</comment><comment><USER6> It's always funny to see the complete disconnect between "best paper awards" and papers that actually end up being important.

Not to remove any credit from the undoubtedly great work that it takes to get on that list. It's just that we're kind of bad at evaluating stuff in general and scientific work in particular.

Let's not forget that more than one good paper has received the "we are sorry to inform you" letter. An article in IEEE by Simone Santini in December 2005 even made fun of that - I recommend reading it for light hearted laughs.

</comment><comment><USER7> Jeff Huang is an internet CS super hero.

</comment><comment><USER8> but I think this list is more interesting --

[http://citeseer.ist.psu.edu/stats/articles](http://citeseer.ist.psu.edu/stats/articles)</comment>


We created a live visualization of public transit movements – including NYC - <AUTHOR> http://tracker.geops.ch/?z=10&s=1&lat=40.82472159414295&lon=-73.9215087890625

<comment><USER2> This is great after releasing PDXLiveBus for Portland I thought about doing this very thing however I only got around to 2 other cities so I'm glad someone else did this.

Be careful though there is a patent troll that was suing realtime transit visualization companies.</comment>


How the Professor Who Fooled Wikipedia Got Caught by Reddit - <AUTHOR> http://www.theatlantic.com/technology/archive/2012/05/how-the-professor-who-fooled-wikipedia-got-caught-by-reddit/257134/

<comment><USER2> It's interesting that these fictionalized histories are at the heart of many companies' founders' myths of how they were inspired to create their amazing products.</comment>


Manhole Covers Serve as Antennas Expanding Wireless Network Coverage - <AUTHOR> https://spectrum.ieee.org/tech-talk/telecom/wireless/manhole-covers-serve-as-antennas-expanding-network-coverage <comment><USER2> The more I hear about 5G, the more I think it's an industry trying to sell a product that nobody is asking for. I have no complaints about the speed I get on my iPhone from T-Mobile here in the US. I wish I had better LTE coverage, but I'm happy with the performance. Most of the time it's snappier than my Wi- Fi (which is weird). I get a solid 8 to 20 mbits under fair conditions- I can stream movies and music just fine.

All I hear about 5G is that it requires a large amount of antennas on both your phone (4 because a hand covering the antenna can cause a drop in signal) and around you. I don't want to be near a high power transmitter that's low frequency, and I really don't want to be near a high frequency one.

What's the sell of 5G? I guess the speed, but what? 1 Gbit to my phone? Why. Considering that I only get 15GB of "Unlimited" data now, it isn't going to replace Wi-F. Because of the density required of the towers, it's not going to replace 4G/LTE as some areas it's just unrealistic to have the required density.

<comment><USER3> I think there are a few selling points.

First, 5G should increase available bandwidth. Industry analysts are predicting that data usage will go up 7x between now and 2024. More speed/bandwidth can help with that. Without increasing capacity, would we just see our usage stagnate?

Second, 5G should have much better ping times. Not only will this make browsing noticeably better, but it also means that latency applications can work well over wireless.

Third, there's a decent possibility that 5G will bring home broadband competition. If you're fed up with Comcast or Charter, 5G could mean choice in your internet service.

Fourth, I believe that 5G has a lot more flexibility than LTE. Part of that might mean low-power narrow connections that will allow cheap and battery- efficient sensor connections. Part of that might mean ultra-wide-band connections allowing for high-bandwidth devices that can't be served by the more limited carrier aggregation of LTE.

Fifth, sometimes applications happen when the technology is there to accommodate it. The broad availability of broadband let Netflix pivot from shipping DVDs to streaming. Broadband has meant online gaming, richer online applications, digital distribution, etc. As mobile bandwidth increased, we went from loading music from our computer, to streaming music, to streaming video. I think the broadband speed you have to support in your applications tends to be 10Mbps+, but if that floor raises over the next 5 years, it could change which applications and experiences people invent.

I mean, before the iPhone was announced, a lot of people wanted a phone dial pad on one side and an iPod click wheel on the other. People wanted Blackberries. The iPhone laid the technological foundation for all sorts of new experiences that people hadn't really thought about. Successive iPhones have been comparatively minor upgrades, but even then the faster processors, better screens, better wireless connectivity, etc. have allowed for better experiences to be built.

\--

It's also important to remember that there are different deployments of 5G. While Verizon has pushed out its ultra-high-band, short-range 5G, other companies are going to be rolling out 5G on more traditional spectrum offering much the same range as LTE. 5G NR is a new radio interface and it promises better spectral efficiency than LTE.

I think it's also likely that many areas will see high-density deployments. Companies like Comcast run a wire to every house they serve and require coordination with property owners to get it into the building. If you could run a wire to one point every 18 acres, that's a lot easier (that's assuming a 500 ft transmission range). Higher density than that is certainly achievable in dense cities.

It can certainly be hard to predict what a new technology might make happen. It's also possible that 5G won't make a huge impact beyond what LTE has already done.

<comment><USER4> 5g is everything, and 5g is nothing. 5g is. To find the true meaning of 5g, one must look to the government subsidies.

<comment><USER5> This is an excellent koan, but I thought the true flow of money was in the other direction with the spectrum auctions.

</comment></comment></comment></comment><comment><USER6> When I was in college, I remember taking a class in silicon design. At one point, a student remarked, "man, silicon is like... black magic."

"No," the teacher sharply rebuked. "It's governed by well understood and reliable mathematical equations. Though difficult, it is far from magic."

There was a brief pause, the teacher was normally easy going and congenial. His harsh words caught us off guard.

"...antennas on the other hand, that is black magic."

<comment><USER7> Indistinguishable From Magic: Manufacturing Modern Computer Chips -- [https://www.youtube.com/watch?v=NGFhc8R_uO4](https://www.youtube.com/watch?v=NGFhc8R_uO4)

<comment><USER8> Same talk (slightly updated perhaps?) in higher quality: [https://www.youtube.com/watch?v=KL-I3-C-KBk](https://www.youtube.com/watch?v=KL-I3-C-KBk)

<comment><USER7> Didn't know about that, thanks!

</comment></comment></comment></comment><comment><USER9> Are these proper manhole covers? I mean the big heavy metal type that can support vehicle traffic? The one in the picture seems the type for covering access to a "manhole" but not one under a street. I do have to wonder whether the local cell will drop out every time a huge metal object, a bus, rolls over the cover.

>>It eliminates traffic disruptions from street construction, and there are no antennas awkwardly placed on buildings, marring the appearance of a neighborhood.

Said by someone who has never attempted to install anything inside a manhole. They will need to close the streets. You cannot just creep through the sewers installing stuff without disrupting the traffic above. Workers are not moles. They will need to run new lines. And in modern cities, the type without the huge walk-in storm sewers of NY/London/Paris/SF, there will still be digging.

With many innovations these days it is hard to determine feasibility from initial articles/claims. Lots of inventions seem to exist only to get grant money, with no hope of practicality (solar roads, solar windows). If these are lightweight manhole covers that cannot support traffic (ie just an antenna mounted atop an aluminum cover) then I'll chalk it up alongside those sidewalk tiles that generate electricity from pedestrians: might work, but will never be practical.

[https://en.wikipedia.org/wiki/Solar_Roadways](https://en.wikipedia.org/wiki/Solar_Roadways) [https://www.6sqft.com/pavegen-opens-worlds-first-smart- stree...](https://www.6sqft.com/pavegen-opens-worlds-first-smart-street-which- generates-electricity-from-footsteps/)

<comment><USER10> I don't think London has huge walk-in storm sewers. And there are certainly people digging up everything they can see, all the time, at least on the roads i use to get to work.

<comment><USER9> It does. The old cities have _combined_ systems, storm and sewage together. To accommodate rainwater and maintenance, they are essentially brick corridors. Some are huge.

[https://www.telegraph.co.uk/sponsored/why- not/11621489/sewer...](https://www.telegraph.co.uk/sponsored/why- not/11621489/sewer-tours-in-london-and-brighton.html)

More modern cities have separate systems for sewage and stormwater, and these are contained in small pipes that people cannot walk around in. Upgrading from a combined system is a massive project, well beyond something like 5g imho.

[https://www.thames21.org.uk/combined-sewer- systems/](https://www.thames21.org.uk/combined-sewer-systems/)

</comment></comment></comment><comment><USER11> I'm curious how this affects the NIMBY fights about antennas. Some of those fights are about aesthetics of the antennas, but some of the concern is around the radiation, which is not a finished debate. Mobile phone signals have been designated as possibly a cause of cancer by the WHO if I recall correctly. It hasn't been possible to rule out that mobile phones do not cause harm, which is something I was surprised to learn. I thought it was a settled debate that mobile phones were safe.

[https://www.cancer.gov/about-cancer/causes- prevention/risk/r...](https://www.cancer.gov/about-cancer/causes- prevention/risk/radiation/cell-phones-fact-sheet)

<comment><USER12> > _phone signals have been designated as possibly a cause of cancer by the > WHO_

No, it has not. "To date, research does not suggest any consistent evidence of adverse health effects from exposure to radiofrequency fields at levels below those that cause tissue heating" [1].

[1] [https://www.who.int/news-room/fact- sheets/detail/electromagn...](https://www.who.int/news-room/fact- sheets/detail/electromagnetic-fields-and-public-health-mobile-phones)

<comment><USER13> And yet the second bullet in that article:

> The electromagnetic fields produced by mobile phones are classified by the > International Agency for Research on Cancer as possibly carcinogenic to > humans.

So it's not settled science, even though there is some evidence pointing toward it not causing cancer.

<comment><USER14> There is a lot of evidence, long term studies, showing they do not do cancer. So the question is why are they listed as a possible cause? It invalidates the entire list. My car keys may well "possibly" cause cancer if the bar is so low.

<comment><USER15> The specific item that is on the IARC Group 2B ("possibly carcinogenic") is "radiofrequency electromagnetic fields", which includes exposures due to cell phone use-- cell phone radiation specifically is not classified.

So, if your car has keyless entry, your car keys would technically also be on the list.

</comment></comment></comment></comment></comment><comment><USER16> A side issue with 5G is that there are all sorts of fun / unusual effects being discovered with GSM/wifi suffusing our environments - i remember Stanford being able to detect people moving behind a wall using the wifi signals. Simply Monitoring signal strength has had many commercial opportunities and now we are going to put millimetre wave radar throughout our cities - expect novel uses to crop up

</comment><comment><USER17> Wouldn't traffic poles serve as better publicly-owned antenna mount points? They are powered and have better line of sight to everything (broader range). I wonder why manholes are considered better.

<comment><USER18> As I understand it, they're owned by different entities; the street lights/traffic poles are often owned by local authorities (in the UK) while manhole covers are owner by the utilities.

I suspect that one aspect of this is to give them leverage in getting access to antenna sites.

</comment></comment><comment><USER19> I'm far from an expert, but aren't manholes (and streetlights and traffic lights, by extension) effectively grounded, hence incurring into insane loss?

<comment><USER20> Many Antennas are grounded (eg for lightning protection), but that has no relevance for their effectiveness as an antenna.

Because the size is much less than a wavelength, the body can be at ground, while the active parts can be at RF potential.

Example: Your phone is grounded, but it still works.

<comment><USER19> They are grounded with a precise length of coax (multiples of 1/4 or 1/2 wave, IIRC) to keep the VSWR ratio low for the intended frequency. In a pole you can get to do that by probing the signal at certain height, but the active part of a patch antenna (which I assume a manhole works as) is at the extremes of it (as such, probes are always off center for circular polarization, and at the extreme for linear), and those are grounded. Patch antennas are normally grounded at the center, as the voltage/current there should be close enough to 0 anyway unless there's an electrostatic discharge.

</comment></comment></comment><comment><USER21> That's pretty clever, and appears to be already in use even for 4G.

<comment><USER22> Yes, I know Swisscom does this already.

<comment><USER23> For a little background [0]:

"Swisscom and Ericsson have proved that city manholes can be used worldwide to improve capacity with small cells – even below street level – using the Ericsson Vault Remote Radio Unit and Kathrein's Street Connect, an in-ground microcell antenna system. The use of existing street manholes where fiber and power already exists lowers total cost of ownership by 50 percent.

This, the world's first vault site for LTE and small cells has been approved by the Swiss authorities, and 250 new rollouts are due during 2016 in the country's cities. The solution effectively addresses cities' needs by enabling the reuse of existing assets and underground space."

Really since 2016. Good framing by Voda to present this as "Building on its heritage of innovation".

[0] [https://www.ericsson.com/en/news/2016/3/swisscom-and- ericsso...](https://www.ericsson.com/en/news/2016/3/swisscom-and-ericsson- plant-lte-small-cells-underground)

[1] [https://ieeexplore.ieee.org/document/7481351](https://ieeexplore.ieee.org/document/7481351)

</comment></comment></comment><comment><USER24> This means we may have to run power supplies to existing fiber manholes...

</comment><comment><USER25> Wow, that must be why I start itching whenever I pass a manhole cover.</comment>


Multithreading Rust and Wasm - <AUTHOR> https://rustwasm.github.io/2018/10/24/multithreading-rust-and-wasm.html <comment><USER2> I'm extremely bullish about Rust riding wasm the same way Go rode the container space. This kind of work is exactly why I feel that way. It's uniquely positioned to take advantage of the benefits of wasm; building faster, safer applications on the browser.

I look forward to the day when the web is Rust, although I guess if you're using Firefox, that's already partly true. :)

</comment><comment><USER3> The ultimate test would be to see if it is possible to implement an efficient concurrent GC in Rust+WASM. This might require memory fence instructions in WASM.

<comment><USER4> I thought you didn't have raw stack access in wasm, making efficient concurrent GCs impossible practically in native wasm.

Hence the GC work to give a higher level API that can more easily be sandboxed.

<comment><USER3> Virtualization technology is quite mature now, and allows running low-level code (that can access the stack) with safety. Servers run this type of code all the time!

Why would we throw away these achievements, and turn WASM (with its potentially simple instruction set) into a complicated monster, that's prone to security problems through its complexity alone?

Also, language designers do not _want_ a GC embedded in their assembly language; they want to implement it themselves, using their own constraints.

<comment><USER4> > Why would we throw away these achievements, and turn WASM (with its > potentially simple instruction set) into a complicated monster, that's prone > to security problems through its complexity alone?

Because sandboxing in process is difficult otherwise. You can't allow the user to control code pointers, but for performance reasons you both need to have the raw pointers on the stack, and need to have semi privileged code in the same process just a function call away. Throwing everything into the process/hardware virtualization models doesn't fit this use case very well. It's why the VM in browsers carefully controls code pointers _and_ is already pulled out to a semi sandboxed process.

And I'll grant you that language implementors want raw stack access to implement their own performant GC; that just doesn't exist yet in wasm.

</comment></comment></comment></comment><comment><USER5> Nik Graf releases this free egghead video course a couple weeks ago on Rust and WASM. [https://egghead.io/courses/using-webassembly-with- rust](https://egghead.io/courses/using-webassembly-with-rust)

</comment><comment><USER6> Nice, was just reading your issue [0]. I spent a bit of time the other day thinking how I could implement these thread ops on the JVM (JVM rambling henceforth, skip if not curious)...

First, my project's output requires no runtime/dependencies, so I am restricted to JVM libs only. Memory is implemented as a ByteBuffer which does not have atomic access. I didn't quite understand the threads spec wrt data init on mem so I'll have to get clarification there (lock all mem? just go and pray?). The implementation will create four synthetic methods in the class: lock, unlock, wait, and wake. The class will have a field that is ConcurrentMap<Integer, int[]> where the key is the mem offset being locked, and the value is an array of mutable int refs size 2, the first being lock ref count and the second being wait ref count. Imports of shared memory pass that around along w/ the ByteBuffer.

Lock will create/incr ref count and secure the lock via monitorenter on the int array (or fail if ref > 0 when just a try). Unlock will monitorexit and decr the count (removing from map if both ref counts are 0). All ops are done between this lock/unlock. Wait/wake is via wait/notify on the JVM, but JVM has no construct to say how many or if any threads were woken up on notify, so I have to keep the wait count. Incr/decr on the ref and wait vs notify (in a loop if > 1) is done as expected using wait() and notify() on the array itself. The lock, unlock, wait, and notify are done w/in concurrent map's compute making them atomic. Lock/wait lazily create the refs in the map. Unlock/notify, upon reaching 0 for both refs at the end, clear the refs out of the map.

I have looked into existing JVM constructs and this seems to be the best way (I wish I could use Guava's Striped or the like, but I have no dependency/runtime requirement on outputted class files). Countdown latches, other locks, conditions, etc were all runtime overkill. I could have better performance than a boxed-int map with some extra code but wanted to keep it simple. Granted this is all pie-in-the-sky thinking, the impl will change it for sure.

I am afraid to start an implementation because the proposal isn't further along yet (I really need some test cases in the suite to make me feel better).

0 - [https://github.com/WebAssembly/threads/issues/106](https://github.com/WebAssembly/threads/issues/106)

</comment><comment><USER7> The article title is misleading. Wasm will not support multithreading, rather it'll be multiprocess via web workers and shared arrays for communication. It's not a single address space - code or data.

<comment><USER8> The threads can all use the same SharedArrayBuffer for their memory, and thus a single address space.

If the SharedArrayBuffer wasn't shared, what's the point of the atomic instructions, etc.

<comment><USER8> From TFA:

WebAssembly modules today are optionally associated with at most one instance of "linear memory". In non-wasm parlance, you can put a stick of RAM into a wasm module. This WebAssembly.Memory is today always backed by an ArrayBuffer, but you'll soon be able to flag a memory as "shared" which means it's backed by SharedArrayBuffer instead. This subsequently means that the structured clone of a WebAssembly.Memory backed by a SharedArrayBuffer will refer to the same memory!

<comment><USER7> This is analogous to different UNIX programs communicating with shmget and a synchronization primitive. It's still a multiprocess model.

<comment><USER4> At that point, the distinction between threads and processes gets really muddy even when you're not using wasm. clone(2) is just a superset of fork(2) that lets you decide whether to share memory or not (among other resources).

<comment><USER9> I still think one could use a stackless clone(2) to get rid of the TLB flush when using threaded open(2). It would need to live without using the stack inside the clone however, and that's rather ugly to program.

</comment></comment></comment></comment></comment></comment><comment><USER10> If the very first thread that's created has to do some bookkeeping that the other created threads rely on, what happens if you create a second thread at the same time as the first one? Or in other words, what happens if you don't instantiate the module on the browser's main thread at all, but instead just spin up 2 web workers that each instantiate the module? Whichever starts first will be thread 0, but what's to stop the other worker from entering its `start` function while the first worker is still busy initializing memory?

</comment><comment><USER11> Nice article. Now I know why the ManualResetEventSlim didn't work in c# Blazor. I wasn't aware that multi-threading in wasm was work in progress.

The demo doesn't work on the standard latest firefox yet unfortunately (ver 63.0). Error: "this browser does not have SharedArrayBuffer support enabled". I guess this is a nightly firefox build thing.

<comment><USER12> > this browser does not have SharedArrayBuffer support enabled

It was disabled for Spectre safety reasons, but it can be re-enabled by navigating to "about:config", searching for "javascript.options.shared_memory" and toggling it to enabled. (But it was obviously disabled for good reason, so might want to enable it temporarily)

<comment><USER11> Thanks! That fixed that problem. Except now I get "this browser does not support passive wasm memory". There aren't any obvious javascript.options.* options for that.

<comment><AUTHOR> Oh dear sorry about this, it's a little too non-obvious how to see the demo! I've [pushed a small commit]([https://github.com/rustwasm/wasm- bindgen/commit/f016ae5846bf...](https://github.com/rustwasm/wasm- bindgen/commit/f016ae5846bfc922014c58eeea3b3b62e3f7bed1)) to update the demo to include information about browser requirements. Today this demo requires Firefox Nightly (64) and requires the `javascript.options.shared_memory` feature to be enabled. Other browsers will likely soon be able to run the demo as well!

<comment><USER11> Thanks, I'll give that a go!

</comment></comment></comment></comment></comment><comment><USER13> Goddamn, the frequency of Rust-related articles on the front page must be really telling something positive about this language and its community.

<comment><USER14> > must be really telling something positive about this language and its > community.

It's because it's the new shiny thing. This basically used to be a ruby on rails post-it board, then C# for a while, then Java when Java 8 Streams were announced, then Go, etc.

I am not saying it's a bad thing -- in fact I can't wait to go through that "write an OS in Rust" blog that was posted here earlier -- but no I don't think it's telling of anything quite yet.

<comment><USER15> It's not just because it's shiny. Rust happens to (a) be a great fit for the parts of WebAssembly that have been implemented so far (partly because it doesn't need GC), and (b) have done a really good job of building WebAssembly tooling with nicer ergonomics than other languages.

<comment><USER16> WASM is the new and shiny also. I'm not even sure what to do with it ATM given that the DOM story still hasn't been figured out.

<comment><USER17> There is a DOM story: host bindings. It just isn't implemented yet.

However, that doesn't mean that you can't use it now. wasm-bindgen is essentially a polyfill for host bindings plus some other little things.

Some resources to check out if you want to learn more:

* Host bindings: [https://github.com/WebAssembly/host-bindings/blob/master/pro...](https://github.com/WebAssembly/host-bindings/blob/master/proposals/host-bindings/Overview.md)

* More info about web-sys (web-sys is like the raw libc for the web): [https://rustwasm.github.io/wasm-bindgen/web-sys/index.html](https://rustwasm.github.io/wasm-bindgen/web-sys/index.html)

* API documentation for web-sys: [https://docs.rs/web-sys/0.3.2/web_sys/](https://docs.rs/web-sys/0.3.2/web_sys/)

* DOM hello world example: [https://rustwasm.github.io/wasm-bindgen/examples/dom.html](https://rustwasm.github.io/wasm-bindgen/examples/dom.html)

* A mini MS Paint style example: [https://rustwasm.github.io/wasm-bindgen/examples/paint.html](https://rustwasm.github.io/wasm-bindgen/examples/paint.html)

* An FM synth in WebAudio: [https://rustwasm.github.io/wasm-bindgen/examples/web-audio.h...](https://rustwasm.github.io/wasm-bindgen/examples/web-audio.html)</comment></comment></comment></comment></comment>


Learning Lisp: Start with Scheme, CL, or Arc? - <AUTHOR>

I've never used any Lisp before but would like to start. PG's ANSI CL book looks good, as does Seibel's PCL book, but I've also heard great things about SICP. Then again, I see that Arc has a pretty sizable tutorial, and since it's written by PG, I'm guessing it's probably pretty good.
My free time is very limited, and my end goal is to write some interesting software over the course of the next 6 months or so -- and have fun doing it. :) I've only used languages like C, Java, Perl, Ruby, and Python in the past.
Any advice on which one to go with for someone brand new to Lisp? Does Arc come with enough tutorial material for someone brand new to Lisp in general?
Which is a bigger leap: to go from CL to Arc or from Scheme to Arc? Is Arc any harder to learn than the CL or Scheme? <comment><USER2> The Arc tutorial is quite excellent. A friend used it as an introduction to programming: great stuff.

</comment><comment><USER3> hmmm lisp ... i use newlisp</comment>


Messages.app - <AUTHOR> http://www.reizbombardement.de/archives/messages-app

<comment><USER2> Of course messages go to all your devices, how would the notification system know if you had seen it already on a companion device? This is exactly how Calendar reminders worked before messages appeared. I'm not sure how the author would propose using your telephone number on your computer either, considering it's paired exclusively with the mobile phone operator.

<comment><USER3> Apple are aware of both your telephone number and your Apple ID being used for iMessage. By switching iMessages on, Apple are told to deliver messages sent to your number via iMessage instead of a network text (SMS). Apple demonstrate they know this when you go to send a message to someone and the 'send' button turns from green to blue, indicating iMessage is active on the receivers phone.

Whilst I don't know for sure, I assume this will be the method used to redirect messages sent to an iMessage registered phone number to an Apple ID running on OS X/other iOS devices.</comment></comment>


SPDY: What I Like About You - <AUTHOR> http://bitsup.blogspot.com/2011/09/spdy-what-i-like-about-you.html <comment><USER2> He forgot one: SPDY is a bidirectional protocol, finally asynchronous notifications from server-side can be delivered without hacks such as long- polling or separate connection like websockets. This is long overdue. Huray!

<comment><USER3> technically cool, and under the hood an improvement, but end users won't notice anything different. Comet and websocket work just fine.

I'm more interested in browser developments that mean you can do stuff you couldn't before - access to geolocation/multitouch/sound/webcam etc.

<comment><USER2> The same can be said of many of the other remarks in the article. You could even say it is elegant that SPDY only changes things under the hood, and keeps the good parts of HTTP.

SPDY is _technically_ very cool. It's the update of HTTP that was way overdue. I didn't even mention end-users. Not only the user-facing parts of technology are important.

I've been playing around with asynchronous notifications to the browser for more than 10 years, when I wrote a simple html/js-based continuously loading chat. I've seen it all, from polling, comet, flash-based TCP, longpoll, to finally websockets. So for me it's great to finally see server push taken seriously as part of the spec and not sewn on as a third leg :-)

<comment><USER3> Sure. Same here. I was writing js chat and realtime games back in '99.

Don't get me wrong, SPDY is cool and good to see. But users won't notice any real difference. It's like when someone re-does a flash game in HTML5 and we (as geeks) go 'wow awesome', and non-geeks go 'uh? so what'

<comment><USER4> Another thought would be simply that if SPDY makes it more attractive/easier/secure/efficient for developers to implement push, then users will benefit simply from it being included in more apps.

</comment></comment></comment></comment></comment><comment><USER5> I look forward to SPDY support in Firefox. Now web server software needs to keep up.

It took me (years?) to upgrade from Firefox 3.x to 6, but then only a week to upgrade to 7.

6 to 7 was seamless and added handy features - so I am changing my mind on the rapid release schedule as long as extensions aren't broken (often).

(7 is in release candidate build 2 already, give it a shot - it feels insanely fast)

<comment><USER6> "It took me (years?) to upgrade from Firefox 3.x to 6, but then only a week to upgrade to 7."

It's just numbers, they dont mean much.

<comment><USER5> Yeah but they _used_ to mean something which is hard to unlearn.

Now I just mentally shift them to the right so they are minor version numbers in my head:

ie. 1.6 1.7 1.8 etc. and then I can deal with it.

But 3.x to 6 is a big jump. Took me an entire weekend of fiddling, tweaking and lots of googling and research to replace extensions and get everything just right.

<comment><USER7> Yeah, I wish the numbers didn't matter. I love that Chrome auto updates and I never see an extension update dialog box pop up. I love that I don't have to hack XPI zips to change the manifest to allow installation (the instructions for getting Firefox to ignore version checks are no longer accurate for the latest version).

I think they're working on the new extension framework to allow reboot-less installs, etc, but their extension developers aren't adopting them quickly enough.

</comment></comment></comment></comment><comment><USER8> One thing I dislike about SSL (and SPDY by extension) is that it destroys shared caching. My college has a transparent Squid proxy which they use to block Rapidshare/Megaupload, but also to cache static content, and it does speed them up significantly (latency to the US can be a bitch sometimes).

I guess the upsides make up for it, but I have a feeling we wouldn't need CDNs so badly if HTTP caching was used at ISP level.

<comment><USER9> But if they knew what's being requested, then the privacy would not be a part of the system. Unless the whole request was preceded by some signed hash of the request+headers that the cache could use for identification... Then again by doing mitm you could maybe poison the cache with a known content having the same hash (depends on the complexity of solution of course).

That seems to get really complicated quite fast.

<comment><USER8> _Then again by doing mitm you could maybe poison the cache with a known content having the same hash (depends on the complexity of solution of course)._

That should be almost impossible; I mean, digital signatures (include PGP) are still considered safe, as far as I know.

<comment><USER9> What I meant is that if it has to be sent outside of the protected stream, it could be also exchanged with mitm. Unless the hash itself is somehow related to the stream in a visible way. That kind of implementation complexity, rather than the signature/hash complecity.

</comment></comment></comment></comment><comment><USER10> SPDY is indeed always over SSL, but it requires TLS NPN (Next Protocol Negotiation), making it impossible to implement with older versions of OpenSSL or with any version of the Windows SChannel API.

This doesn't make it a particularly inviting protocol to use. I'd have to switch my entire SChannel layer for OpenSSL on Windows, and probably link statically to the version of OpenSSL with NPN on *nix.

<comment><USER11> If your servers support it, and a few major web browsers support it, then SPDY should work for most people. You can always fall back on HTTP, so if 80% of your users speak SPDY, that's a good situation.

</comment></comment><comment><USER12> There is this thing called Stream Control Transmission Protocol (SCTP) already, which does sort of what SPDY does, without breaking the OSI model. Ie multiple concurrent streams over a single session.

Not sure how it interacts with SSL/TLS thou.

<comment><USER13> Good luck making SCTP work with the $50 routers that everybody has in their homes. While you're at it, will you convince the rest of the world to switch to IPv6 please?

<comment><USER14> What has kept SCTP down is the fact that the NAT code would have to be modified to support SCTP connections because they can be multi-homed. _That_ will never happen. So, ironically, once the majority of the world has transitioned to IPv6, SCTP should be theoretically usable to talk to anyone if you're both not behind NAT anymore.

<comment><USER15> Yeah, but the cheap consumer routers that do not let SCTP through the NAT do not generally let IPv6 through either.

</comment></comment></comment></comment><comment><USER16> I really like SPDY and welcome including more clients on the bandwagon, but where are the server implementations? Nginx is quite popular as of late but it doesn't plan to implement SPDY any time soon. There is mod-spdy for Apache but it is still experimental and there doesn't seem to be support in IIS or LigHTTPd at all. :(

<comment><USER17> The server implementations are significantly more difficult than the client implementations. And the client implementations aren't easy.

Among other problems:

* Need an SSL key, which means self-signing, $$, or a monthly update to keep your free key current * Implementing SPDY server-push means explicit dependency lists you currently don't keep * The protocol is young and has changed multiple times * It's binary and hard to test -- it's not always clear where a problem lives

Add up those and "oh, my site is fast enough for what I'm doing" and you get a recipe for no good free server implementations.

Presumably some larger companies are working on it, but they have to justify that (substantial) effort for improvements only the Chrome portion of their userbase ever see.

So at least Firefox supporting SPDY will put more pressure on companies to support it.

</comment></comment><comment><USER18> For those, like me, that didnt know what SPDY was. <http://en.wikipedia.org/wiki/SPDY>

</comment><comment><USER19> Does anyone know how SPDY ensures backward-compatibility? How does an SPDY- enabled browser detect a non-SPDY-enabled server without getting it confused?

<comment><USER20> The way Chrome achieves this backward-compatibility is by using the SSL Next Protocol Negotiation (NPN) extension during SSL handshaking. When the browser is establishing an SSL session, it mentions to the server that it's willing to speak SPDY (as part of the ClientHello message). If the server also speaks SPDY, it can communicate that fact back to the client. If the client sees that the server supports SPDY, it proceeds to send SPDY messages over the newly established connection once the SSL handshaking is complete. Otherwise, it sends HTTP messages. The cool thing about this approach is that it doesn't add any additional network round trips.

<comment><USER19> Ah, thanks, I forgot it was all over SSL. I was thinking regular HTTP, which doesn't have a negotiation step before sending the headers.</comment></comment></comment>


Ask HN: Are we undermining our own evolution? - <AUTHOR>

We've all seen numerous documentaries and stories about the marvels of modern medicine available to us, and on a personal level, I think almost everyone would agree that these are positive developments.  But by short-circuiting the natural mechanism of evolution that helps weed out these weaknesses, are we undermining our own future evolution?<p>A simple example: infertility treatments. <comment><USER2> A lot of people talk about dysgenic trends that they imagine must be happening because the weak are being protected from having their genes eliminated from the human gene pool. But few notice that the data show improvements in phenotype that are so large in effect size that they can't even be explained by ENORMOUS favorable changes in gene frequencies.

<http://books.apa.org/books.cfm?id=431712A>

[http://www.springer.com/statistics/social/book/978-0-387-949...](http://www.springer.com/statistics/social/book/978-0-387-94986-4?detailsPage=toc)

The simple empirical fact is that human ingenuity and shared cultural knowledge is improving the human condition faster than any process of natural selection of genes could, and we can all join in on that, whatever genes we have. And it won't be too long before we can start manipulating the genes of our descendants, if we so choose.

</comment><comment><USER3> We are long past the point of evolution as it applies to all other life.

And I don't mean that in some crazy pseudo science way.

Consider the human brain. Did you know human infants fall intellectually behind chimpanzees of the same age.

Eventually humans overtake but it's several years late, how come?

It's because our brains are so huge that we can be born without them getting all mashed up. Our skull plates are flexible and they do to a newborn's brain what would instantly kill an adult.

But our brains are adapted to deal with that, we survive and fully recover, catch up to and surpass other great apes.

But birth is STILL problematic for us humans, so we invented cesarean section.

A medical procedure which was already common by the time Cesar was born.

And ever since all the knowledge society can come up with influences who survives.

This kind of group level evolution is not unique to us, a lot of social animals have aspects of that But we're unique in just how much our intellectual innovation matters.

Short answer, we're selecting for brains and not much else. And that's a good thing.

Chimpanzee's have a much better immune system then us, but they're endangered.

</comment><comment><USER4> I think not. Darwin had a second theory of evolution by sexual selection, and it may be the more important. It's selection, not by the jungle, tooth and claw, but intraspecies mate selection. I think a lot of human activity is driven, directly or indirectly, by mate selection: Wall Street Money, superstars, Nobel prizes, boring jobs in IT. I have read reports that human evolution has its afterburners on. Curing disease and helping the less able is irrelevant, because it's overshadowed by all the other competition going on. A century ago, the pool of potential mates was limited by your home town or county. Now you have college, world wide travel, and the internet.

</comment><comment><USER5> I guess it depends on what "good" evolution looks like. Should evolution be humans that can procreate most efficiently?

In general, I think the question is 'yes'. Because all humans can "connect" with all other humans in society, it doesn't leave pockets of evolution to take hold.

I suspect that in the next few hundred years, as real space journeys become normal, that we may see evolution start to do it's thing again.

</comment><comment><USER6> It's not possible (by definition) to "short-circuit" or undermine evolution. Modern medicine is our species acting within the process of evolution. Just as we consider early humans to have "evolved" the ability to use crude tools, we have "evolved" the ability to use penicillin, brain surgery, etc.

"Survival of the fittest" is a useless tautology. An organism's evolutionary fitness, if there were such a thing, would be its ability to survive to reproductive age. So of course the fittest survive, we've defined fitness to mean survival.

In reality it's the species that has an evolutionary fitness; and the distinction is important. Take a bee colony for example, a huge number of the bees are infertile.

To address your example: infertility treatments may catalyze an evolutionary process of selecting against those who are disinterested in child rearing. Or, like the bee colony, infertility in some members of the species may be evolutionarily advantageous; hard to imagine, but not without precedent.

<comment><USER7> "In reality it's the species that has an evolutionary fitness".

Sorry but no. Read "The Selfish Gene" by Richard Dawkins. Selection does NOT act on the level of a bee colony, it acts on the level of the individual genes to be found within that colony. So sure some bees are infertile, but they are in service of the genes of the fertile bees. They are in effect enslaved by the genes of the Queen bee for instance.

Some types of ants will raid the colonies of other ants, and kidnap their children, bring them back, and the kidnapped children were grow up in service/servitude to the colony which had kidnapped them, and join in on future raids of what was once their home nest. The kidnapped ants are in service to their captors, to the genes of their captors. Say for instance the kidnapped ants were black, and their captors were red(or the other way around), so, even though the kidnapped ants do not have the "red" gene, they are helping to promote the selective advantage of the "red" gene by joining in the hunt for the colony of their captors. It is not a matter of "colony a" being selected for over and above "colony b". It is rather the genes of either colony getting selected for over other genes. All life, from viral to the naked apes like us, are subject to "the tyranny of the selfish gene".

<comment><USER6> Strictly, the evolutionary fitness of an individual is the ratio of that individual's genes to all of the genes in the subsequent generation.

What Dawkins is likely saying (I haven't read the book), is that we can (or even should) forget about individuals and just look at relative gene frequencies (b/w generations); we'll see that some are selected for and some are selected against. And that this is actually the level at which evolution occurs.

</comment></comment></comment><comment><USER8> Evolution often occurs when due to changes in the environment (climate change, new diseases, new predators) vast numbers of the species die off. The marvels of modern medicine are a less traumatic alternative.

For example, if evolution were to have its way, HIV should kill off those humans who lack the CCR5 gene. This would be bad news for most Africans and Asians, as well as up to 95% of people of European descent.

The deletion mutation of CCR5 in Europeans is possibly an evolutionary adaptation to mediaeval European plagues - the Black Death and smallpox. (see <http://en.wikipedia.org/wiki/CCR5> )

We don't have a moral obligation to evolve. I'll stick with medicine, personally. As well as clothes, houses, electricity, supermarkets, central heating and air conditioning.

</comment><comment><USER9> just want to point out that this would be the plot to the movie "idiocracy"

<http://video.google.com/videoplay?docid=1597642154209383351> (naughty language warning).

<comment><AUTHOR> Added to my list :)

</comment></comment><comment><USER10> It's irrelevant. We'll have perfect control over our bodies and genes within 500 years, which in evolutionary terms is a very short time. We don't need natural selection anymore.

</comment><comment><USER11> Not only medicine undermines biological evolution. Evolution works in such a way that those who make more children become dominant. 'Many children' is not one of the values of our society, so people whom our society values most do not drive the evolution.

</comment><comment><USER12> We are cyborgs. Our technology is not orthogonal to our biology.

</comment><comment><USER13> I'd just point out that it depends in part on the time scale you apply. If things get "dumber" for a while, a compensating circumstance is likely to arise. Whether you view it as positive or negative is subjective; it will occur.

I don't take that on faith. Rather, it's my prediction based on all the historical and scientific data and analysis we've accumulated.

What gives me some hope for our current circumstances and our own species, is that so far, as education and affluence rise, birth rates drop. If we can use this to mitigate the pressure of increasing population against dwindling resources (including the health of ecosystems), perhaps we can reach a sustainable existence with regard to the earth and its ecosystems. Our species' evolution will continue, but hopefully in a sustainable fashion.

Life has shown itself to be very pervasive, at least on this planet. If we fill the world up with radiation, heavy metals, organic toxins, and whatnot, some forms of life will adapt to cope. But I'd prefer that there not be such a large set back. Not another "great extinction". Life on the planet has reached an interesting level of complexity. I'd rather see that continue on without interruption. But then again, that is merely my subjective preference.</comment>


Introducing Layout from Instagram - <AUTHOR> http://blog.instagram.com/post/114416360957/layout-from-instagram

<comment><USER2> This is pretty neat. I actually very much like how they split up their applications into Layout, Instagram and Hyperlapse. It keeps the main app simple and it's probably easier to update / experiment that way. I also don't mind replacing these ugly / ad-banner filled apps that exists for these little Instagram tasks with official Instagram apps.

</comment><comment><USER3> Oops, the image links are broken.

<comment><USER4> I think it just doesn't have https for the images. Turning of httpsanywhere for tumblr fixed it for me.</comment></comment>


Kiria – AI Finance Assistant - <AUTHOR> https://kiria-app.com/ <comment><AUTHOR> Hello,

I am Edoardo, co-founder of Kiria. We are building a dynamic newsfeed that adapts to each user and helps them in their every day life. Kiria aims to manage, advise and secure your personal finance.

We have started with multibanking, subscriptions and refunds tracking. :)

ps: we are German based and support 4.000+ banks here.</comment>