Ask HN: How do I write code as quickly as I used to? - <AUTHOR> Hi HN!
I've been a "programmer" since I was 10 years old, basically by copy&pasting other people's code and making it do what I want...
I was published in the national Serbian newspapers and was bullied heavily for being a "liar", a "fraud", a "thief", etc., and received death threats.
Since then my anxiety levels have been rising and my code quality has been dropping (well, relatively speaking, compared to what I did back then it's much improved but not as much as it could've) and my code output has been dropping as well.
I'm 17 now, soon to turn 18, but I can barely work 2 hours a day on something, when before I could and would sit at the computer for 24 hours and finish a project in one siting, without sleep or eating.
Nowdays I just waste my time reading blogs and not learning anything and I've become really depressed.
Occasionally, I get a huge rush of motivation and I finish a project and earn some money for example for a MacBook Air which I've always wanted and now have, but I then regress back into the depressed state.
I have also become very asocial and don't leave my house frequently, and find it difficult to go to school where I'm bullied and judged for things that I wish not share, and I only go to school to do exams and then I go back home and barely study, my grades are terrible and...
Help me HN.
Please note, I am going to a therapist but he's not helping and is quite useless and expensive. He's in the capital city of Serbia and I live quite far away so it's expensive to travel. <comment><USER2> Well, those alternate states of depression and euphoria sound like bipolar disorder, so it's probably a good idea to continue with the therapist.

Copy pasting code is a start, as long as you understand the code, but it's good that you moved past that. You're still young, so if you want to be a programmer you're in a good position to improve. You can read some books, learn best practices, design patterns, depending on your programming language of choice studying for a certification will give a solid foundation and confidence. Then you can build something with everything you've learned.

<comment><AUTHOR> Hi! Thanks for your comment. Yes I am staying with the therapist. I meant I used to c&p code when I was 10, nowadays I do it all myself and avoid using existing code for fear of being called a fraud.

</comment></comment><comment><USER3> Sometimes you need time way from the computer, and to dive your mind into other things. Consider taking up sports / martial arts, it will give you a chance to build other skills and socialize in a different setting.</comment>


New t-shirt sewing robot can make as many shirts per hour as 17 factory workers - <AUTHOR> https://qz.com/1064679/a-new-t-shirt-sewing-robot-can-make-as-many-shirts-per-hour-as-17-factory-workers/ <comment><USER2> $0.33 per shirt, anywhere in the world, is nearly as cheap as the cheapest sweatshop markets.

I expect most commentary will look at this using a US vs China thing, but I'm more worried about SE Asia and Africa. They need to climb up the development ladder that China's already 1/2-way up.

Say what you will about clothing and sneaker sweatshops, but they were a tried and tested method for building up the basics of an industrial economy. South Korea, Taiwan, and Hong Kong wouldn't have gotten to where they are today as quickly without them. How will Kenya develop?

<comment><USER3> You could say that about basically every labour-saving device though. Tractors, earth-moving equipment, container ships, whatever. And even textiles are almost wholly automated now - lots of textiles are grown or spun, woven, dyed and printed almost entirely by automated machines - robots, in effect. Final assembly is in many cases the first time a given piece of textile has been touched by human hands. So why is the automation of this final step going to be the thing that prevents countries from climbing the "development ladder"?

When cellphones became affordable, it didn't mean that countries without decent landline networks couldn't "move up the ladder". They just jumped straight to the more advanced technology. If higher-productivity technologies are available, and are cheaper than using scarce human labour, then you use it. More productivity is not somehow a bad thing.

<comment><USER4> > So why is the automation of this final step going to be the thing that > prevents countries from climbing the "development ladder"?

I believe you're misharacterising the issue. The trouble with technology is that well, you either have it or you don't. Labour on the other hand is fungible. So with a sweatshop you can go from unskilled workforce to $$$t-shirt$$$ with base supplies and bog standard infrastructure.

Acquiring, operating and conducting maintenance on precision robotics on the other hand...

<comment><USER3> > _I believe you 're misharacterising the issue. The trouble with technology > is that well, you either have it or you don't._

Technology is always a matter of degree. Let's say I have a handloom barn making fabric and clothing. Is that already "technology"? If not, then what if I install a diesel generator to power the looms? Then I get some treadle sewing machines to replace hand-stitching? Then I get a laptop to replace hand-accounting? Do I "have technology" yet? As a handloom barn owner, I certainly couldn't have developed or manufactured a diesel generator, a sewing machine, or a laptop, yet I can buy and maintain (or just replace) them quite easily. Doing the same with robots is just a matter of degree and difficulty. Compared with getting humans to do the same work, is it worth it or not?

<comment><USER5> I think it is a matter of competition. The unpowered loom does not enable you to compete, but some amount of powering it and accepting a lower wage does allow you to compete with shops that have slightly more tech. Accepting lower wages is how these shops came into existence in the first place.

This is the first production quality version of this robot the next one could be twice as fast. How do you compete with that?

The only way to compete is to build another machine that is cheaper or better. This is not something Bangladesh is able to do.

<comment><USER3> The point is that if the robot really is that fast, _and that cheap_ , then you don't compete - you start doing something else where the robot cannot compete at that price. Textile workers aren't robots - they have the capacity to shift to other work, and there's an enormous amount of work to be done.

This objection to automation has been brought up every time anything's been invented, for hundreds of years - if we do something with less human labour, then humans won't have work or incomes. But actually, they just end up finding other useful things to do that weren't getting done before.

<comment><USER5> I don't think this is the same argument that has been made hundreds of times. That argument is about the west. Here in the USA we could in theory train our coal miners to write software or build build bridges or do some other useful task.

China has way more people and much less ability to train them, but that is not 0 ability to train them. But Bangladesh... They are pretty fucked. This will cut them out of a huge swath of the economy they were participating in yesterday. You can't efficiently make roboticists in Bangladesh today.

EDIT - I also think complete automation is fundamentally different than performance enhancing tools. Clearly Bangladesh has sewing machines, but that is an entirely different price and profit category than a full blown sewing robot.

<comment><USER3> This is exactly the same argument that has been made hundreds of times. "Oh, they're simple peasants now and forever, they can't work in factories, they'll never learn to read, they can't invent productive industries" and so on.

You seem to be implying that training for jobs is somehow something that's done mainly by the governments of countries - that people are just passive receptors of whatever training and education the state can provide, and can't seek it out, or create it for themselves. This is of course wholly wrong, and almost none of the specialized skills developed by people in the course of industrialization are gained through formal education.

You don't have to make lots of _roboticists_ in Bangaldesh anyways (and there aren't many of those in industrialized economies either) - people can and will move into the sectors that have been small simply because labour was more valuable elsewhere - services, like health care, education, retail, et cetera. These are useful tasks no less than textile work, and largely don't require a massive "training program".

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Should we need a basic standard of what can be called Robots? We're in an age of journalism where almost _anything_ that can do what humans do (Guess, had calculator been invented in this age,'This automated Robot can do as many calculation as 3 Accountants' would have been a viral article) is called a Robot. But what we forget is that it's always been the case all this while, Consider a Toll collection booth with humans in it and then an RFID based automated system, I don't remember if those got this kind of attention as Toll Collecting Robots.

<comment><USER7> What do you think _should_ be called a robot? From watching the video, this seems like a scaled down version of the sort of industrial robot systems you'd see in other manufacturing fields (albeit meant for sewing, and not assembling cars or other things).

</comment></comment><comment><USER8> Friendly reminder that building a wall isn't going to keep blue collar jobs around. Automation is going to kill them much quicker than immigrants will.

<comment><USER9> .. and no amount of cheap immigrant labour won't stop automation.

Which is why the less immigrants, the better. Less people kicked out of jobs == easier to implement UBI or similar system.

<comment><USER10> Fewer.

<comment><USER9> Yes, führer

<comment><USER11> First, this kind of post will get you banned from HN if you do it repeatedly, so please don't.

Second, would you please not use HN for political or ideological battle? You appear to have been doing that repeatedly and it's not what this site is for.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

<comment><USER9> The top level comment I replied to went on the political discourse and I just carried on from there. Did he get a warning as well?

Personally I'd be happy to have less political HN. But as long as there're top level political comments.. It's too hard to resist :) I believe mods could easily mega-downvote such comments. Yet particular comment I replied to seem to be upvoted?

As for my later comment, are jokes not allowed on HN anymore? I got grammar- nazi'd, I replied back with a matching joke.

</comment></comment></comment></comment></comment></comment><comment><USER12> Oh, boy, another series of layoffs and the rich getting richer. "But my free market!!" Means squat when the elite hoards all the goods and the barriers to entry are extremely high.

<comment><USER13> So... Communism? 100$ shirts? Sweatshops? Ludditism? Also there is no free market anymore - have you seen all the punitive economic sanctions recently.

</comment></comment><comment><USER14> $0.33 for the robot to produce the shirt vs $0.20 or so for the sweatshop worker in bangladesh.

Take into account the extra shipping costs from bangladesh and it might actually be cheaper

<comment> r0ze-at-hn Agreed, and you are also forgetting about speed. This robot can produce t-shirts that can be delivered to customers next day. Doesn't matter how cheep bangladesh might be, they can't match that speed. This opens up opportunities for sales that were impossible before. If you need 100 shirts tomorrow you are willing to pay more so it has even larger margins.

</comment></comment><comment><USER15> This reminds me about when Bill Gates make that comment saying that raising the minimal wage could make the cost trade-off of investing in automation worthwhile [1].

On one hand, people need living wages. But on the other hand, I think we're witnessing what Bill Gates is talking about here.

What's the solution? Gates has floated the idea of taxing robots.

      [1]: http://www.businessinsider.com/bill-gates-bots-are-taking-away-jobs-2014-3

<comment><USER16> But what's a robot? Is a 3D printer a robot? (it has moving parts and builds things) is the Google Adwords code a robot? (it sure makes a lot of money) a quant hedge fund? Do you tax all computers by cost or value produced?

Seems simpler to tax companies for making money.

EDIT: We won't need middle-manager bots that show each other powerpoints all day. What "robot" would get taxed for the disappearance of that function?

<comment><USER17> In this context, I think he really talks about taxing capital (or capital investments that displace workers).

</comment></comment></comment><comment> alex- > "...can make as many shirts per hour as about 17 humans"

Surprised they are looking at it per hour. Presumably the automation could run for close to 24 hours a day, whereas the human workforce could not.

So each of these units could replace 51 workers? (3 rotations of 17 workers each doing 8 hours a day). That's before considering the human workforce generally requires 2 days a week off.

</comment><comment><USER18> Why should I be surprised. That's been happening since 1700´s [[https://en.wikipedia.org/wiki/Industrial_Revolution](https://en.wikipedia.org/wiki/Industrial_Revolution)]

Perhaps that will be the way the most developed Countries will return some of the production lines to them.

<comment><USER19> "Perhaps that will be the way the most developed Countries will return some of the production lines to them"

Why do you care about that? ecology?

It's not like if it's going to translate in jobs.

<comment><USER20> Less transportation required, which should be cheaper and better for the environment.

</comment></comment></comment><comment><USER21> I can't quite decide which will be the tipping point for robots replacing humans: Agriculture, food service, or garments. The first seems ripe (no pun intended) for disruption but apparently often requires human skill to identify products. The second seems more likely, as fast food is mostly automated with some human intervention; coupled with self-checkout technology in any language, and it might work. Garments, however, I'm not sure that's the industry. Certainly replacing 17 workers with a single robot (costs aside) seems like a good start, but this also seems like an industry that could uproot and go somewhere else. From America, to China, to Southeast Asia, Africa, and beyond, to wherever human capital can be had for less.

<comment><USER22> I recently came across this video of a color sensing tomato sorting machine.

[https://youtu.be/j4RWJTs0QCk](https://youtu.be/j4RWJTs0QCk)

Really shifted my mental ranking of where agricultural processing was at.

<comment><USER23> About 20 years ago (Holy shit!) I worked in a potato processing facility. They had multiple belts all about 8' wide that ran through a machine that scanned 100s / 1000's of dehydrated potato flakes for quality every second and could hit a specific flake with a burst of air to blow it off one line and into another. 20 yrs ago. I believe they went under / were bought up by a more modern company 5 or so yrs ago.</comment></comment></comment>


The Tyranny of the Hollerith Punched Card (2012) - <AUTHOR> http://pub.gajendra.net/2012/09/hollerith_tyranny <comment><USER2> Personally, while my _windows_ are far wider than 80 characters, my code generally use shorter lines for a simple reason: readability. It's faster for me to scan a code fragment if I need to move (scroll the code, move my eyes) only on one axis. I use wider windows because it is convenient to split in two, to let me switch between files while keeping other files up in a fixed location.

The 80 width "limit" has survived to the extent it has not _just_ because of tradition and compatibility, but also because it fits well within the range of what is most comfortable for most people.

Add to that the desire to ensure fixed-formatted text like code will be readable also on _other peoples_ screens, and it becomes relatively irrelevant if you can fit 200 character lines on _your_ screen and have eyesight that makes that comfortable even when using smaller screens, and don't mind moving your head all over the place.

<comment><USER3> That this is the top comment restores my faith in humanity, because it is exactly what I came to say: the adherence to 80 columns has nothing to do with refusal to accept change, and everything to do with enforcing readability. If a function is so many scopes deep that 80 columns has become unruly -- or if function or variable names are so long that this is an unacceptable limitation -- that's a reflection on the code, not on the 80 column limitation. The code should be refactored, intermediate expressions assigned to local variables, etc. -- all of which greatly assist readability.

Additionally, and as others have observed as well, the author (mistakenly, in my opinion) assumes that 80 columns was imposed by the punchcard rather than the punchcard reflected an approximation of readable line length. That this line length has an innate readability can be confirmed with this experiment: take a book off of the bookshelf, open to a random page and input a random line of text in your fixed-width text editor. Hardcover or paperback, small font or large, old book or new, you will find that the line is almost always less than 80 columns -- and often surprisingly close. One can quibble about the exact number, but it is clear that there is an innate connection between line length and readability -- and that enforcing that line length is an easy way of enforcing minimum standards of readability.

</comment></comment><comment><USER4> Another interesting question: Where does the traditional 25-line height of a default terminal window come from?

Obviously it came from the 80x25 character mode displays of old CRT monitors. The IBM PC had an 80x25 monochrome display, but it was just mimicking older CRTs from the '70s.

Where did those displays get their dimensions: usually 80x25, sometimes 80x24?

It can't be punched cards. There's nothing particularly special about a deck of 25 cards vs. 21 or 29 or whatever.

It isn't the Teletype machines we used back in the day. Those use a continuous roll of paper.

In fact the first time I saw someone using a "glass teletype" at Tymshare where we all coded on Teletypes, I wondered what you would do when something scrolled off the top of the 25 line screen. Teletypes were noisy, but the paper coming out the top gave you an infinite scrollback buffer!

So why 25 lines?

I think it came from the standard coding forms used for FORTRAN and other languages in the '50s:

[http://www.atkielski.com/PDF/data/fortran.pdf](http://www.atkielski.com/PDF/data/fortran.pdf)

(BTW if you want an authentic FORTRAN Coding Form of your own, that PDF prints beautifully on 8.5 x 14 legal-size paper.)

There you have it: six groups of three lines each, 24 lines on your coding form. So an 80x24 display was a perfect match for a standard coding form.

Add a status line at the bottom of the CRT and you have your 80x25 terminal.

<comment><USER5> Coding forms? No. Commonly available CRTs were designed for 525 line alternate frame TV, which really give about 262 lines of resolution. That gives a just- barely legible 10 dots for a text line on a 24 line display.

-dB

<comment><USER5> Common CRT capability is also how we got the 320x240 (bad TVs) and 640x480 (better TVs) resolutions.

</comment></comment></comment><comment><USER6> It's interesting that this old saw comes up with the implication that 80 columns is not enough. Back in the day, Forth programmers wanted to put their source in binary length blocks. They picked 64 columns rather than 128. Forth is a particularly concise language, but the point still exists.

Why is more always considered better?

</comment><comment><USER7>
      Why? Because (and here, we finally get to the real answer),
      that's how wide a Roman chariot needed to be, in order to
      accommodate the width of the war horses pulling it. So, in
      some sense, the width of cars is not only an artifact of
      the way that things had always been, but is also an
      extension of the tyranny of Caesar. Remember that the next
      time you go pick up some groceries.

[http://www.snopes.com/history/american/gauge.asp](http://www.snopes.com/history/american/gauge.asp)

      This item is one that, although wrong in many of its details,
      isn't completely false in an overall sense and is perhaps more
      fairly labeled as "Partly true, but for trivial and unremarkable reasons."

</comment><comment><USER8> Maybe more interesting is why we've retained some of the limitations of the past, while moving beyond others. 80 characters probably isn't as constraining when your variable names are limited to 6 character (as in Fortran77), and seem more constraining for identifiers like "MemberSubmissionAddressingWSDLParserExtension".

[http://www.pushing-pixels.org/2007/11/07/and-the-longest- jre...](http://www.pushing-pixels.org/2007/11/07/and-the-longest-jre-class- name-is.html)

</comment><comment><USER9> In the early-aughts I worked for a small web software company that used Microsoft systems for development and production. We got bought out by a larger "professional" dev house (that also developed on MS products) and a new edict issued (so we could be professionals): we needed a STRICT coding standard. 80 chars per line NO EXCEPTIONS. Of course that was the only rule set in stone for all languages.

Even the plain, flat HTML files had to be less than 80 chars per line.

</comment><comment><USER10> Any coding style that benefits from indentation is strangled by 80 chars. I still need to set up a ruler on Sublime, or else over the course of a week the lines will progressively get longer because I'm unwilling to break for just a few characters without it, but we've all decided to do 120. Hell, if only for comments, I don't want those to be newspaper columns.

</comment><comment><USER11> If the line of code has many narrow characters (like _i_ , _l_ , _t_ , _f_ , parens, comma, and dot) and few wide characters (like uppercase or Chinese characters in your identifiers) then you can have much more than 80 characters on a line IMO.

Or were you advocating breaking the 80 chars per line restriction, but not the fixed-width font restriction?

<comment><USER12> Viewing code with a variable width font is considered madness by default, no?

<comment><USER13> You've probably seen some code in a variable-width font at some point in your life, and just never were conscious of it because it looked so right.

It's alot like syntax highlighting: people will lose their minds if you suggest that it's even possible to live without it, but the fact that they are able to read their shell input line, their less/vim :-line, their google input line when they use quotes/minus/etc, their books with code in them, ..., suggests that their complaint is not based on a _need_ for highlighting but on an expectation for it. It's the only way to explain why it's apparently necessary in one program and completely unneeded in all others.

Fixed-width fonts are like that.

</comment></comment></comment><comment><USER14> My day job used to involve coding in RPG which still enforced 80 column formatting as of the late 90s, where specific columns have specific meanings and are populated with indicators that represent types and instructions. This is a direct result of programs being written using punched cards, but was carried into the interactive environment as well.

Examples here: [http://en.wikipedia.org/wiki/IBM_RPG#Example_code](http://en.wikipedia.org/wiki/IBM_RPG#Example_code)

</comment><comment><USER15> But why was the Hollerith card 80 chars wide in the first place?

<comment><USER16> Well, it was 45 columns wide in the first place. But the 80 columns of the IBM revision is what you can squeeze into a letter size typewritten line at 10cpi, and that in turn is because, less margins, you get the ~65 characters long considered ideal for printed text.

</comment></comment><comment><USER17> No need anywhere to observe this limit any more. Its only in our heads folks! Just rebel. I do - my lines are as long as they need to be.

<comment><USER18> When I'm grinding out Cobol or Algol code (yes, I am a dinosaur), I stick with 80 columns per line. Because, for better or worse, that's all my compiler sees. One compiler squawks when a line extends beyond Col 80, another allows the use of Col 81-90 for a markid, but the standard editor doesn't grant access to those columns easily, so it's infrequently used. But if I'm using a more freely-formatted language, you can bet I'm ignoring the 80-column limit. But I'm still keeping my lines as short as possible, and even wrapping in some cases, because my code needs to be easy to read, and side-scrolling is the antithesis of reading easiness.

Also, when I was coding in PascalVS at the University of Pangaea, I distinctly recall becoming incensed one day over the fact that, while the Hollerith card provided 80 columns, the PascalVS compiler stopped reading earlier than that-- maybe it only accepted 72 characters per line. That was irritating. And costly --we had to provide our own cards, and on a student budget, they weren't cheap!

<comment><USER16> FORTRAN is well known to have a 72 column limit. The reason is that the IBM 704 had a 36-bit word, and the card reader supplied only two words per row.

</comment></comment></comment><comment><USER19> (2012) [based on the URL]

<comment><USER20> Yes. Added.

</comment></comment><comment><USER21> I have never worked on a software team with a hard 80-column limit, FWIW. It's always more of a suggestion.</comment>


Why I Am Excited about Riak Search - <AUTHOR> http://blog.basho.com/2010/10/20/why-i-am-excited-about-riak-search/

<comment><USER2> I gave two talks[1] on Riak in NYC this month and one of the main points tht I tried to stress was that Riak is more than a monolithic persistent data store. Riak is actually a very well thought out federation of independant code modules.

This had not always been as evident when looking at earlier releases of the source. Over time what became clear is tht Basho was refactoring their code to allow for interesting combinations and enhancemnts over their standard offering. As the OP points out, the recent modularization of riak_core has unleashed a wave of potential within the Riak ecosystem as recently manifested in the form of Riak Search.

I'm am certain this design approach of code modularization will prove immensely valuable as Riak continues to mature.

[1][http://www.slideshare.net/siculars/adding-riak-to-your- nosql...](http://www.slideshare.net/siculars/adding-riak-to-your-nosql-bag-of- tricks)

</comment><comment><USER3> Riak Search is a great example of the result of getting the fundamentals right up-front, proving and improving them in a concrete product (Riak), and then extracting the best bits into a reusable library (Riak Core).

The way they've done this matches my own philosophy on how this stuff should be done.

Not to mention that Riak Search is very cool in and of itself.

</comment><comment><USER4> _Riak Search is the first public demonstration that Riak Core is a meaningful base on which to build distributed systems beyond just a key/value store. By using the same central code base for distribution, dispatch, ownership, failure management, and node administration, we are able to confidently make many of the same guarantees for Search that we have made all along for Riak's key/value storage. Even if Search itself wasn't such a compelling product, it is exciting as a proof of the value of Riak Core_

Riak Core can abstract away the difficulties of decentralized computing is really exciting to me as well. It's a decentralized message queue or apache zookeeper written in Erlang.

I really think the basho team has done an amazing job modularizing the components Riak is comprised of (core, kv, search, etc) to make all bits really re-usable. Well done Basho!

</comment><comment><USER5> It's great that they're adding this (full-text search is one of the big missing features from most NoSQL products), but I wonder why it wouldn't make more sense to just provide great integration into one of the existing dedicated search services like Sphinx?

<comment><USER6> No, because they want it to _be_ one of those dedicated search products like Sphinx.

At the moment, there are two main open source products people look at when they implement full text search: Sphinx and Lucene/Solr.

I'm not a Sphinx expert, but I know Lucene/Solr quite well. One feature Solr is currently working on is called Solr Cloud (<http://wiki.apache.org/solr/SolrCloud>), which is a Zookeeper co-ordinated clustered Solr implementation, which should make it a lot easier to automatically resize your Solr cluster depending on usage. (At the moment you can do this, but it requires rsync scripts etc etc, and is kind of messy).

It looks to me like Riak Search is aiming for this market, which I think is a good strategy. (Note that Solr is often used as a NoSQL database, so in that way Riak & Solr are direct competitors)</comment></comment>


Multipath TCP Check - <AUTHOR> http://amiusingmptcp.de <comment><USER2> Very interesting project, I also suggest to take a look the authors current research efforts. Essentially he designed a language to program MP-TCP schedulers, making it straightforward to generate schedulers for diverse use cases such as low latency or high bandwidth applications.

[https://progmp.net](https://progmp.net)

</comment><comment><USER3> TL;DR: can you connect to this website with an IETF experimental standard that hasnt been upstreamed into the linux kernel and only started using function pointers in 2015?

No.

[http://people.netfilter.org/pablo/netdev0.1/papers/Shaping-t...](http://people.netfilter.org/pablo/netdev0.1/papers/Shaping- the-Linux-kernel-MPTCP-implementation-towards-upstream.pdf)

<comment><USER4> Be that as it may, it's available to apps in ios 11, so it seems likely to get more traction.

<comment><USER3> interestingly enough this is largely due to the ios subsystems use of MPTCP for siri. It also shows up in F5 products, albeit one must wonder if its ever advertised for use in genuine load balancing

[https://en.wikipedia.org/wiki/Multipath_TCP#Use_cases](https://en.wikipedia.org/wiki/Multipath_TCP#Use_cases)

</comment></comment></comment><comment><USER5> We are back online (at least a bit ;-) ... or a byte?

</comment><comment><USER6> Part I found most interesting:

>Visitor counter: 63684 in total, 10 with MPTCP since October the 13th, 2017.

<comment><USER7> A few of those are from me after I installed mptcp, so the counter seems to be working.

</comment></comment><comment><USER8> How will MPTCP effect the efficiency of RF mesh network architectures?

</comment><comment><USER9> So, for example if I have 3G and Wi-Fi connections what will be my IP from the server's perspective?

</comment><comment><USER10> MPTCP's bandwdith aggregation properties are cool---you can effectively use all your network interfaces for (MP)TCP connections.

Has anyone deployed it in data-center/cloud environments? I know that both Apple and Android support it for the mobile devices to use WiFi and LTE at the same time.

<comment><USER11> Within a datacenter, you'd be more likely to use LACP and/or ECMP.

<comment><USER12> Though, with many LACP hash implementations, you end up de facto restricted to a single link per TCP flow.

</comment></comment></comment><comment><USER13> Does anyone have any success with macOS High Sierra and Safari? I would've expected it to work since iOS 11 reportedly supports it but so far I haven't had any success with my Mac despite trying different networks.

<comment><USER14> The iOS app developer has to explicitly turn on MPTCP, e.g., like shown here [https://github.com/below/MultipathTCP](https://github.com/below/MultipathTCP)

</comment></comment><comment><USER15> Very nice, but the website looks down. Looking forward to play more.

<comment><USER16> Ah, you are evidently using zero-path TCP.</comment></comment>


Why does Firefox use Google for search? Follow the money - <AUTHOR> http://geekvalley.blogspot.com/2008/06/why-does-firefox-use-google-for-search.html

<comment><USER2> I can't help but agree. There is nothing wrong with an organization earning money through its software, whether or not it is open-source. Perhaps the reason that Firefox has actually been able to become a viable competitor to closed-source browsers is because it actually has a source of income, unlike most open source projects.

<comment><USER3> Amen. Nothing wrong with taking a piece of Google's pie. If folks really want to use Yahoo, set your home page to Yahoo and ignore the search box. Problem solved.

</comment></comment><comment><USER4> Once I learned that running my Google searches through FF's built-in search bar produced income for the folks at Mozilla, I have tried to use it exclusively to bolster their income a tad.

I mean, honestly. It's the least I can do.

</comment><comment><USER5> How is this news? This has been a pretty established fact for about half a decade by now, no?

</comment><comment><USER6> This reminds that one of the majors launched by getting the search button on Netscape (Was it yahoo?)

<comment><USER7> Excite. See [http://bnoopy.typepad.com/bnoopy/2004/09/persistence_pay_1.h...](http://bnoopy.typepad.com/bnoopy/2004/09/persistence_pay_1.html) and ignore all the spam in the comments.

</comment></comment><comment><USER8> Let's expand the discussion, should Firefox build in affiliate codes for searches at Amazon and Ebay? Surely this would help revenue and according to most here on HN it's still ethical and should be encouraged because Firefox is a 'good cause'.

<comment><USER9> Yes, if those searches start from the Firefox chrome, absolutely.</comment></comment>


Volkswagen's bold plan to create a new car operating system - <AUTHOR> https://arstechnica.com/cars/2019/09/volkswagen-audi-porsche-vw-group-plans-one-os-to-rule-them-all/ <comment><USER2> >However, each brand will still get to develop its own UX in the same way that Porsche and Audi can build very different-looking vehicles from the same MLB Evo toolbox.

This is really something I feel Microsoft could have done to gain some footing in the mobile/connected car space. I think they could have developed an light OS that was compatible with iOS and Android, and re-skinnable for the major auto groups, then it's of a matter of simply licensing it to them.

<comment><USER3> They already do that with Windows CE. RCD 330 is one model that has a Windows CE version.

</comment></comment><comment><USER4> My car's software feels like the one thing in my life that I can't freely hack on. Given some sort of a mildly standard interface like the one in the article, I think it will be nice to have the ability to modify and maintain my car's tech internals just like everything else I have.</comment>


ES6 is great, until it's not - <AUTHOR> https://medium.com/@sAbakumoff/es6-is-great-until-its-not-f398339d0af6#.6fdcsr17i <comment><USER2> Javascript has always been a turd. Actually the whole front end including CSS and dealing with browser incompatibilities is a turd. The people who work with this have lots of grit, determination, and genius in my book.

Brendan Eich has more or less apologized for JS and said it was written in 10 days meant to do things like make text flash.

The goal of front end has always been "this feature sucks less than before!"

Wow a let variable to fix scope! Arrow operators to dekludgify callbacks! Lol CLASSES WOW is this heaven?

Web Assembly is my hope for getting rid of opinionated langs in the browser and allow in langs built on decades of experience, which will make front end reasonable like the rest of the sodtware world

<comment><AUTHOR> That's interesting that the general tone of HN comments drastically differs from that of reddit replies where guys furiously protect ES6 and stuff [https://www.reddit.com/r/javascript/comments/5d9v3k/es6_is_g...](https://www.reddit.com/r/javascript/comments/5d9v3k/es6_is_great_until_its_not/)

</comment></comment><comment><USER3> What are features for if we don't use them 8-)

Not all features increase complexity. The fat arrow functions are more easy to reason about as "this" can be understood more locally. When transpiling the code may be larger but in the long run maintainability should be better.

I found the Crockfords talks on ES6 (e.g. [https://www.youtube.com/watch?v=vJKDh4UEXhw](https://www.youtube.com/watch?v=vJKDh4UEXhw)) useful as a guidance what could be a minimal set of sane features.

<comment><AUTHOR> I agree. I love ES6 in fact. The fat arrows really rock. I like how I can use them together with promises to write a concise code like

      create_project(prj_name).then(project=>addTeam(project, team_name)).then(team=>addMember(team,name))

The main point of the article was in that using new JS features blindly may cause the significant problems, not with readability, but with the script size and the running time of the code after it's transplied to ES5.

</comment></comment><comment><AUTHOR> By the way, I thought that the name of the article "ES6 is great, until it's not" should mean "ES6 is OK until it brings serious problems in your code"..But the comments and replies imply that the meaning is slightly different..it's like I am trying to discredit ES6 which was not my intention at all...Could anyone tell me whether "X is great until it's not" has fully negative meaning?

</comment><comment><USER4> To me, the problem here is Redux and how it's often used. I see code like the Calypso example all the time, and I don't understand how people tolerate all the repetition. To me it's like writing all you SQL by hand when a decent ORM could do the same thing in 1/3 of the code.

</comment><comment><USER5> Good point, but I wouldn't discredit all of ES6 because some github repo contains misused deconstructions.

Its not just about which language is used, but how its used.

ES6 has brought on many necessary improvements.

<comment><AUTHOR> Absolutely! I agree that one can write confusing/poor code in just about any language out there. But I didn't try to highlight how horrible ES6 is..In fact I used ES6 features in the modified version of the original reducer's code. The main point of the article was in that using new JS features blindly may cause the significant problems, not with readability, but with the script size and the running time of the code after it's transplied to ES5. And it has to be transplied because it's using ES7 features which even not in the specification.

</comment></comment><comment><USER6> To me first version carry less cognitive load. But maybe I've been using new JS features for too long.

<comment><USER7> I think the same if you format it properly

Obviously I can't read this mess easily

        ( { ...state, [ siteId ]: { ...state[ siteId ], [ postId ]: {
                      requesting: false,
                      success: false,
                      error,
            } } } )

but this is pretty easy to read

        ({
          ...state,
          [ siteId ]: {
            ...state[ siteId ],
            [ postId ]: {
              requesting: false,
              success: false,
              error,
            }
          }
        })

Though even easier to read would be to use icepick

        import { setIn } from 'icepick';

        setIn(state, [siteId, postId], {
          requesting: false,
          success: false,
          error,
        });</comment></comment>


Ask HN: What would a better Groupon look like? - <AUTHOR> <comment><USER2> Maybe I'm wrong here, but my major issue with Groupon is how you're treated as a customer when you go to the establishment. In my experience, I always get treated worse than a "normal" customer. Either they just care less about you, or it's always like a "what is this? I need to go ask my manager".

That's hard to manage as it's out of your control, but I would love a focus on making people care equally about you (not more, I'm asking to been seen as a normal customer rather than a burden).

<comment><USER3> This happens for a reason.

</comment></comment><comment><USER4> Not a Groupon expert but will take a shot at this from the consumer side.

Dropping the terrible stock photos they use and going with an Airbnb approach of helping businesses create their own high quality photos would be a huge improvement in my eyes. Would improve the authenticity and reduce scammy feeling. I absolutely hate the photos they use currently.

I agree with HNcow that there is an implicit concern you are going to get screwed when buying a Groupon (either the business sucks or will treat you poorly). However, in my case, I've almost always had positive experiences with it, and Groupon has done a good job of taking care of me when things when wrong.

Ultimately, if my memory serves me correctly, I think the "best Groupon" was in the early days when it was much smaller and offered a sense of exclusivity for the merchants - resulted in better deals. The challenge with maintaining that is it draws copycats and even Groupon themselves are tempted to scale it too big, leading to what you have now, just another oversaturated marketing channel.

But, I could be wrong about that last paragraph. To my surprise, there are still good deals on Groupon, and I occasionally buy from them.</comment>


Petya's author says says 'NotPetya' wasn't him, and he wants to help crack it - <AUTHOR> http://www.thedailybeast.com/his-petya-code-was-used-in-a-global-cyber-attack-now-he-wants-to-help <comment> joatmon-snoo The tweet in question: [https://twitter.com/JanusSecretary/status/880156466115743744](https://twitter.com/JanusSecretary/status/880156466115743744)

<comment><USER2> Ahahaha I cracked up when I saw the account's profile picture.</comment></comment>


Peer-to-peer overlay networks are a bad idea on a DSL-based internet. - <AUTHOR> http://lists.canonical.org/pipermail/kragen-tol/2011-August/000935.html

<comment><USER2> It would be a much better read without the attitudes declared through statements like "The horrifying existence of abominations like Hulu and the iTunes Music Store..."

I get the technical details, but the attitude is obnoxious at best and diluting the point at worst.

<comment><USER3> People seem to like Hulu, Netflix, Amazon, eBay, Youtube, etc.

They haven't stopped the internet from the 1990s from existing, its still there and available. Most people just seem to like this other corporate internet a lot more.

It seems to me that in many arguments, it isn't about whether it's possible for people to have their non-corporate, idealized internet (because it is), it's about not allowing others to also have the internet they want (Hulu, iTunes, Facebook, etc), because ultimately people aren't visiting the idealized, non corporate internet, and aren't going to -- because the majority of people prefer the other one.

Ultimately, it seems to be a disappointment rooted in the behaviors and wants of the majority, tho its rarely ever framed as such.

<comment><USER4> People don't always choose the things that make them happy, especially collectively. If we step back a bit from the internet, this point is obvious: the people of the US, for example, collectively chose to have the Civil War and then abolish slavery, when abolishing slavery without the war would have been a much better choice; and alcoholics who die of exposure in the street would probably have preferred, in retrospect, to never start drinking. Some of them will tell you that explicitly even before dying.

So it's not really _disappointment_. It's _advocacy_ : there is a better way, a brighter future. And I have a selfish interest in telling people about it, because despite what you say, it's not a choice I can make entirely on my own.

> They haven't stopped the internet from the 1990s from existing; it's still > there and available.

In the 1990s, I could email my mother from the mail server in my house; I could walk to the local bookstore and browse the books on the shelves; I could chat online with my friends without giving Microsoft, AOL, Yahoo, Google, and Facebook minute-by-minute updates on when I'm at my computer; I could read and post to Usenet, which had useful discussions on it, without broadcasting my reading habits to whoever was wiretapping (because my ISP had a local news server); and I could run years-old software on my computer without becoming a victim of the latest worm.

So the two internets you're talking about do not exist independently of each other. They interact in a lot of ways. Sometimes the interference is constructive (internet access is available in a lot more places now, and bandwidth is cheaper), and sometimes it's destructive (Usenet is dead.)

I don't think the problem is really even the _wants_ of the majority. I think the problem is that the majority of people are getting tricked into choosing things they don't want, both because they aren't aware of the implications of their choices and because there are prisoner's-dilemma games going on. (Recruit all your friends to Farmville and your farm will be bigger!)

</comment></comment></comment><comment><USER5> This is a sensible post but note that there are interesting and important applications for overlay networks that are _not_ "peer to peer" (ie, that do not use last-mile bandwidth for transit).

<comment><USER6> The alternative to using last-mile transit is for everyone to have a virtual server somewhere. Even this seems to be a bit off since 90% of all people only ever consume content and can't be bothered with anything like creating their own content.

<comment><USER4> I think that's a good idea. It might not even have to be virtual, given servers the size of the Raspberry Pi: [http://www.geek.com/articles/chips/raspberry-pi-25-pc- goes-i...](http://www.geek.com/articles/chips/raspberry-pi-25-pc-goes-into- alpha-production-20110728/)

<comment><USER7> It would be cheaper to buy big servers with enormous amounts of RAM and use visualization than to have thousands of raspberry pis. Unless you mean each person has a raspberry pi on there home network, in which case you're still using expensive last-mile bandwidth.

<comment><USER8> I have been following this math /very closely/ - and I am fairly certain that if someone wanted to build a board like this in quantity, with more ram, of course, and if I could get my hands on a suitable power supply so I would have one psu for every twenty of these servers, it would likely come out pretty close to the cost of a big box.

The problem is that all boards I can get for a reasonable price in the quantities I can afford have a bunch of crap on them I don't need; video and the like, which pushes the cost up higher than I'd like. I've been talking with a friend of mine who does ARM stuff about maybe seeing if we could get venture funding, as I think we could get into reasonable quantities in the low-six figure range.

But, like I said, as far as I can tell, right now the cost difference is 'close' - even if I could get a custom board with lots of ram and no video crap, for most things it wouldn't be dramatically better than virtualizing a massive supermicro box, and considering that design time would mean that the thing would be kinda old by the time we were done, there probably isn't a lot of profit to be had. But, if trends continue, this may change; and I can tell you right now, customers are willing to pay a premium for dedicated hardware, and for good reason.

(Yes, you have the management problem of thousands of servers, but most of the things that don't have PXE have some way to boot from serial, and I can deal with that. Having managed thousands of virtuals and tens of thousands of hardware nodes, I'm not convinced that virtuals are all that much easier to manage, once you have a good system in place.)

<comment><USER7> What your not taking into account is that thousands of small servers will likely fail faster than dozens of big servers. I think you'll find that this and the fact that you'd have to maintain much more hardware (the servers themselves and switches) tips the balance.

<comment><USER8> I've managed clusters of 60K plus large servers. I mean, I didn't manage them by myself; my primary job was automating hardware failure detection, but I took my turn on the pager. My personal focus was to see to it that bad hardware didn't go back into production; as someone who shared pager, that was... offensive. But really, hardware failure is less of an issue than people seem to say. I mean, sure, it happens. But not nearly as often as software issues that bring down the box, unless you count bad hard drives; and those happen all the time.

Even with 60K servers, I quickly learned that if I found a lot of bad servers that were bad in similar ways, I needed to be careful before having them sent back to the vendor. More than once I embarrassed myself blaming software problems on the hardware. For the first 3-5 years of it's life, if the computer was properly assembled, very likely the only things that will need replacement are the disks.

My thought would be to treat the things as hard drives. two options: For the lowest tier of support, if your system fails, I leave it and provision a new one. Leave the dead ones in the rack until it's time to upgrade. The second option is to put the boards on some sort of hot-swap power backplane, and when the thing fails, pop it out and replace it like a hard drive.

The question would be "how expensive is it to make the hot-swap system, and does the manufacturer give me a warranty that makes it worth my time to swap 'em out and send 'em back."

I suspect that if I can get 'em to give me a discount to not have a warranty, my best bet would be to set it up so I could hot swap whatever i used for storage, but if anything but storage failed, I'd just leave the system in place.

sure, maybe I'd want to offer 'premium' support with mirrored storage where I'd swap your storage if it fails, and yeah, in that case, expenses would be higher than a giant server with fewer disks. (by fewer disks, I mean fewer disks per 256mb guest. Obviously, it has more disks total) I/O performance is probably also going to be worse on the giant server with fewer disks, so I can charge more for the 'premium' dedicated hardware with dedicated I/O.

I mean, you get into the 'all troubleshooting must be automated' range much faster with those than with physical hardware, but somewhere between a couple hundred and a couple thousand hardware nodes, you are going to get there either way.

<comment><USER7> OK, well I'm certainly more convinced now by your idea, but I feel that there are too many unknowns to be able to say confidently that it would actually be a viable alternative.

<comment><USER8> oh yeah, it's definitely still in the "maybe" zone; and right now, things still lean towards VPSs being enough more efficient that it doesn't make sense to try little ARM servers seriously. I'm just saying, things are moving towards the point, as far as I can tell, where tiny arm servers could be competitive, maybe, with VPSs.

The big problem that is stopping me from betting my money on little ARM servers is that nobody makes commodity-priced ARM boards that use the latest ARM CPUs and have reasonable amounts of ram and don't come with a bunch of stuff like video that I don't want to pay for.

I mean, even if I had that, it's still pretty borderline and quite possible that I'm wrong and it still wouldn't make sense; but it's close enough that I'd be willing to bet a large (by my standards) chunk of my money on it.

<comment><USER7> A few thoughts:

* It seems likely that there exists an ARM IC that would suit your purposes, you'd just need to commission a PCB and if you'd planning on having 10s of thousands of them, then that would be no great cost.

* Having more memory will increase the board area and cost significantly.

* You might be better off PXE booting and using a SAN rather than having local disks.

* If you wanted to test the waters, you could try stuffing dozens of raspberry pis into a 4U case with a switch and co-locating. If this took off, you could develop your own custom hardware.

<comment><USER8> Well, a SAN has other problems; the primary advantage of a dedicated over a VPS is I/O, and SANs, well, you know with software, you say "good, fast, cheap; pick two" - with a SAN, really, the hard part is software. In this case, "good" means "reliable" and you have to be really careful to get two; usually you only get one.

I have a lot of admiration for Amazon's engineering; but even they can't come up with a reliable, performant, and cost-effective SAN solution; and they are able to charge a lot more per gigabyte and per iop than I can.

Now, it's a tradeoff, I mean, local hard drives will /massively/ increase the failure rates, and moderately increase the cost of the individual servers.

I've got someone close to me who is an ARM person who has done PCB layouts and has participated in making custom SBCs; according to this person, the nice, fast dual-core chips you see in cellphones that we'd like to use are often unavailable in quantities of around 1000, which is where I want to start out (even this, 1000 at a target cost of $100 each, is going to require investment. I can drop maybe 1/5th to 1/10th of that of my money, but there is zero chance of custom hardware at the volume I can pay for being economical. My understanding is that you start to see reasonable pricing at around 1000 units.)

Memory, yeah, will be a big cost. But it's also really, really important; Until you have enough ram, nothing else matters.

<comment><USER7> Ok then, it seems unlikely that you'll be able build custom hardware without a an investment and it also seems unlikely you'll be able to get investment without a proof of concept.

How about, as a proof of concept, raspberry pis, each with a 16GB SD card. I know there are obvious problems: ethernet speed, non-volatile storage speed and only 256MB of memory, but do you think that it would work as a proof of concept?

<comment><USER8> Depends on what you are testing. The big problem is that the 256MiB ram server market is selling to different people than the 2048MiB ram server market. Different people buy them for different reasons. I mean, there is some overlap, but the 256 people? Mostly hobbyists, some really cheap people doing development or test. The 2048? people who are well off doing test and development, or cheap people doing production. 2048 is the top end of my people and the bottom end of 'serious people' - I wanted to sell dedicated servers as something higher end than my VPSs, and you'd need at least 2048MiB ram for that. Preferably double that or more, but we take what we can get.

On the other hand, if I just wanted to demonstrate I could build a system to manage those small servers, then yeah, your suggestion is great. The management would be about the same. But I'd be selling to a different market, so it wouldn't work as a market test, but I could show the investors that I could make the things go.

I am interested in the 256MiB market; I mean, the hobbyists are my core customers, the people I know how to sell to and serve best. But really, having a stand-alone server is much less compelling, technically speaking, for those people than for the 2048 customers. (and having a sd card is less compelling than a pair of 2.5" drives) really, I'm pretty uneasy about anything with unmirrored storage; the hobbyists, while data loss has a lower dollar value than commercial customers, are usually less prepared with backups and the like to deal with hardware failures. Amazon can sell disks that go away; I can't.

Still, a bunch of 256 rasberry pi and two SD cards, if priced in the half- sawbuck range, would probably sell pretty well to the demographic I know. Of course, that's good profit before you count the storage, and assumes the things can handle Power over ethernet or some other cheap psu. In hosting you usually expect the hardware to earn itself out after 4-5 months if you don't count other costs.

For those people, the ethernet speed (or really the sd card speed) won't be a huge problem. for ten bucks a month, what do you want?

now, the other thing to think about is that VPS prices are about to drop again. (I mean, resources for the same money will increase) I mean, I probably won't drop mine until signups slow or Linode makes a move, but you can get 8GiB reg. ecc ddr3 ram modules for under a hundred bucks. this is silly cheap. You are now paying for your servers in four months paying frigging dell prices (and nobody at my end of the market pays anything like the dell tax.) If my $8 plan (which right now has 256M ram) doubles to 512m? suddenly you go from paying two bucks more for your own hardware to paying two bucks more and getting half the ram. I mean, I'd still get takers, but not nearly as many.

And really, I don't know. I know 'my people' would be willing to pay me money for ARM servers; I really have no idea how that would translate to the behavior of 'serious people' so maybe it's best for me to play around the 256 level first?

Man, I sure wish these things had ECC. that's important.

drat, and they also don't have PoE; that's going to add to the cost and management hassle (I mean, PoE is nice for this 'cause the switch is also a rebooter if the thing gets really hung. down the port.) without PoE, I will have to wire up a power supply /and/ a way to hard reboot the servers, which I think I could do in one go with PoE.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I've met so many people who've got this silly fantasy that there's something 'democratic' about hosting a web server at home. It's fine for a toy web site, but if you want your site to be fast and reliable, it's much more sensible to keep your server in a data center... in most cases, cheaper too.

</comment><comment><USER10> I think the decision by Google to not buy Skype is great. Skype uses supernodes/decentralized address book and other trickery to keep the most of the load off their servers/NAT proxies. Whatever advantage Skype got from decentralization when it started in 2003 is now long gone. Bandwidth is ridiculously cheap and voice calls don't really take more than 16kbps with modern codecs.

If two Skype clients can't connect to each other directly due to NAT, they proxy the connection via supernode. Any Skype client with a public IP address can be a supernode, so they might use your bandwidth and computer to route calls.

Skype brand and userbase alone are not worth $8,5B. Their P2P decentralization technology is worth ~$0.

</comment><comment><USER11> _Please_ somebody fix the title to read "an ADSL" instead of "a DSL".

<comment><USER4> The middle half or so of my post is devoted to explaining why SDSL is a bad idea, which I think justifies the more general title. I take it you disagree? Why?

<comment><USER7> A better title would have been, "Why it's a bad idea for P2P overlay networks to use last-mile bandwidth".

<comment><USER4> If the last-mile bandwidth is provided by something that flexibly distributes bandwidth between "upstream" and "downstream" (thus inverting the meaning of the terms on a millisecond's notice!), or by fiber optics, or by shared media like a neighborhood Ethernet or cable modems, or by hop-by-hop forwarding in something other than a star topology, the reasoning doesn't apply. It specifically applies to DSL.

<comment><USER7> With physical connections, one high bandwidth connection will always be cheaper than many low bandwidth connections. So long as your p2p network is working over the internet, the reasoning still holds. Using expensive, last- mile bandwidth any more than necessary is not a good idea.

<comment><USER4> If you have a shared neighborhood Ethernet or geographically-based hop-by-hop forwarding, it's cheaper to get a file from your neighbor than from a data center, because it _avoids_ using expensive last-mile bandwidth. If you have an inherently-symmetric medium like fiber, traffic in the less congested direction is free, and data-center space isn't.

So peer-to-peer works _better_ than warehouse-scale computing in those cases.

The dynamic-allocation case is a little more complicated, and I'm less certain of my reasoning there. It's true that peer-to-peer architectures will still use more last-mile bandwidth overall in that case than data-center architectures, as much as twice as much, and so they'll still be less efficient. The difference is that you can make that tradeoff on a moment-by- moment basis, instead of choosing to permanently cut your bandwidth in half when you sign up for the service, before you know anything about the internet. That's a much lower bar.

<comment><USER7> I agree with your first sentence, but I don't know how well it translates into practice.

My feeling is that using VPSs that are on a P2P network and that act as gateways to this network is an efficient architecture and the way to go.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> My hobby: reposting links from inside other HN front page articles.

<comment><USER4> Not everything on kragen-tol started out as a comment on an HN article. Most of the linked post, for example, did not.

</comment></comment><comment><USER13> Internet is already GSM-based which is much much worse.. ^_^

<comment><USER13> It is amazing to see that current HN's audience is unable to notice that consumers are switching from PC+ADSL scheme to laptop+HSDPA USB stick or some Android/Apple device and that global GSM carriers were already won the market with cheap data-only plans.

But it is OK that typical US citizen hardly knew that other countries exists. ^_^

btw, I'm currently in Sweden, where HSDPA coverage even in rural areas is a defacto standard. Same trends going on everywhere in the world (Asia and Europe), except, of course, US. ^_^</comment></comment>


You Think the Visual Studio Code Binary You Use Is Open Source? Think Again - <AUTHOR> https://carlchenet.com/you-think-the-visual-studio-code-binary-you-use-is-a-free-software-think-again/ <comment><USER2> This has been known for nearly two years now[1], and was talked about here a few months ago[2].

VSCode also downloads code from MicroSoft servers during the build process and won't build without an Internet connection. I'm pretty sure someone had forked VSCode like ungoogled-chromium but I can't find the repository.

[1] [https://github.com/Microsoft/vscode/issues/17996](https://github.com/Microsoft/vscode/issues/17996) [2] [https://news.ycombinator.com/item?id=17346492](https://news.ycombinator.com/item?id=17346492)

<comment><USER3> Are you thinking of [https://github.com/VSCodium/vscodium](https://github.com/VSCodium/vscodium) ?

<comment><USER4> Covered here just a few weeks ago: [https://news.ycombinator.com/item?id=17850960](https://news.ycombinator.com/item?id=17850960)

This article is similarly alarmist with some stupid click bait title suggesting that you are too stupid to read the documentation that comes with VS Code which points all of this out but somehow smart enough to read the genius bit of journalism that uncovered this terrible truth.

Just checkout what vscodium actually modifies. There are a few small diffs to disable telemetry and take out branding and a few other things.

But this is hardly some secret plot by MS to do something evil. It's a nice product provided to you by free by MS that is almost entirely open source. Yes it has a bit of branding and a bit of telemetry, which is presumably there to help them improve the product.

If the handful of stuff in there that isn't OSS bothers you for whatever reason, you can indeed build from source and take these things out like vscodium seems to be doing. You'd be well in your rights to do that. And it's very relevant for e.g. linux distributions like Debian or OSS purists.

</comment></comment></comment><comment><USER5> Is there any technical evidence that Microsoft is doing something suspicious with the binaries? Differing hashes? Weird network traffic? Binary de- compilation? Its not hard to find evidence if you've got a hunch, instead of publishing a fear piece like this.

<comment><USER6> The license forbids you to reverse-engineer, so how would you find out without breaking the license?

<comment><USER7> Come on, nobody is preventing anyone from running the binary with strace or with wireshark open and comparing it to a version compiled from their sources. It's absolutely something which would've been relevant in a post like this one.

<comment><USER8> None of that would fall under 'reverse engineering' in this context since those techniques are basic due diligence that would be required before running software from a disreputable source like Microsoft.

</comment></comment></comment></comment><comment><USER9> If people don't trust Microsoft to do the right thing then it is prudent to not trust any of the code until someone has had chance to audit the entire codebase. Even compiling from sources does not imply that it is safe.

</comment><comment><USER10> Wrong title. Article says "free software" which makes much more sense than "open source" in title. On HN you should know the difference.

<comment><USER11> They're pretty much interchangeable in this title. Saying "open source" instead of "free software" preserves the meaning but makes it less ambiguous. The difference matters when you're talking about ideology, but it's not so important when you're talking about the legal status of a piece of software.

The Open Source Definition was adapted from the Debian Free Software Guidelines, which the FSF approves of.

According to gnu.org: "The two terms describe almost the same category of software" ([https://www.gnu.org/philosophy/open-source-misses-the- point....](https://www.gnu.org/philosophy/open-source-misses-the-point.html)).

</comment></comment><comment><USER12> "MIT allows this" is a red herring.

Even if the source was GPL, if Microsoft own[1] it, they can do whatever the hell they like with it.

[1] own or own enough rights. Before any PRs are accepted, you need to sign the CLA [https://github.com/Microsoft/vscode/wiki/Contributor- License...](https://github.com/Microsoft/vscode/wiki/Contributor-License- Agreement)

</comment><comment><USER13> This is not a secret. And its really easy to compile it by yourself. So not really sure why this article is making such a big deal out of it.

</comment><comment><USER14> I still don't get the love ( real or manufactured ) for VS Code. There are far better tools to use on linux. On windows, you should use visual studio. VS Code doesn't make much sense unless you want to install additional spyware.

It's funny to see people say how "light" VSCode is when they use it as a glorified notepad for a few days. Then they install more and more extensions and then slowly VS Code evolves into Visual Studio.

<comment><USER15> I like it because it is lightweight and runs similarly on windows and mac. And it's free so a good compromise for people I work with who are deep in the IDE wars. I haven't used it on Linux so can't speak of that environment.

I don't code all day, so it's a good drop in editor that doesn't require paying a license, but has more functionality than vim.

</comment></comment><comment><USER16> So what's so bad in the end? If vscode is good and closed source, I'd still use it.

<comment><USER17> The difference, according to the article, is in the way Microsoft apparently misleads users into thinking that the binary is the straight product from open source code compilation, which it seems it is not (see [https://news.ycombinator.com/item?id=18012688](https://news.ycombinator.com/item?id=18012688))

This can drive privacy concerned people to use the product because they (wrongly) think it's open source and fully community reviewed.</comment></comment>


'WildChords' is One of the Coolest Things I've Seen the iPad Do - <AUTHOR> http://toucharcade.com/2011/12/09/wildchords-is-one-of-the-coolest-things-ive-seen-the-ipad-do/

<comment><USER2> Hm, I have played the guitar for a few years now and I think this is possibly pretty useful. I'm not sure about the whole game design because I haven't tried WildChords but most people get discouraged when they have to learn all these chords just to play one song and learning where your fingers go and being cramped and the whole mechanics of it all really depresses new people, BUT if this game can get people to move forward even when they think they can't do it, it's totally worth it.

Once someone plays a song and realizes hey this doesn't sound half bad it will go a long way, it's just getting people past that first hump. I was taught 'Sweet Home Alabama' as my first song and I played the heck out of it but knowing that I could play a song and I knew the simple chords that made it happen went a long way.

The biggest thing though is really wanting to do it. I know people that took piano lessons for years but quit when they had the chance even though they could play fairly well. If you don't want to really play then it won't stick. For people that really want to play guitar I think this app could be very useful.

</comment><comment><USER3> These guys gave a quick demo at an event I held in London. Great guys, fantastic product. The bar that we held the event was pretty busy and very noisy. I thought there's no way it would work accurately in that sort of environment, but it was spot on. Really really impressive.

</comment><comment><USER4> Does the signal processing tech enable a Guitar Hero with actual guitars?

A problem I found with guitar hero is latency (actually, with the drums, where the discrepancy is more obvious, because you can hear both); a common response I've heard from professional drummers is that these drum games are no right (including from standalone arcade versions).

Is the iPad, as a platform very concerned with minimizing latency for UX, in a position to address this?

<comment><USER5> Have you seen Rocksmith?

<http://rocksmith.ubi.com/rocksmith/en-US/home/>

It is a guitar hero for real guitars. They address latency issues as well. I bought it on black friday and am amazed...

<comment><USER6> Came here to say this. If you can get around the latency rocksmith is a better solution because it makes your guitar sound proper for the track using dsp. This solution just listens to what you're playing.

</comment></comment></comment><comment><USER7> Very well done. Their signal processing might not be 100%, but it's probably more likely my fault for playing it with my unplugged electric guitar :)

It's fun and seems like a gentle way to get new players to learn. Users can replay levels as many times as they want to.

</comment><comment><USER8> Isn't chord detection / polyphonic audio analysis really difficult? And they do it instantly using an iPad, that's really impressive.

It kind of makes me mad that Google "neglects" audio on Android. The well known latency issues are the reason developers choose an iPad/iPhone over any Android device :(

</comment><comment><USER9> I now want to learn guitar. This is great. It is like Guitar Hero (which I was absolutely addicted to for a while) except it uses the real guitar. Can't wait till this launches in the U.S. I'm wondering if when you add more instruments if you need 2 ipads or if you can play in the same room with one ipad and 2 instruments.

<comment><USER10> I just downloaded it - search for it on your iPad. Interesting choice to not support iPhone.

</comment></comment><comment><USER11> This is awesome design. Good platform choice and integration.

</comment><comment><USER12> "it feels like a mixture of magic and something you'd see in a sci-fi movie"

Seriously? I mean, this is a neat idea and seems super well executed, and fine tuning that kind of signal processing isn't that easy, but people are still that impressed that a computer can identify guitar chords?

Really the hard part (which from the pitch the guy seems to understand) is the educational aspect.

</comment><comment><USER13> Rocksmith does this for the PS3, Xbox, and Wii and there are already iPad apps that can detect what notes your guitar is playing.

<comment><USER14> Have you tried any of the note-identifying apps? How are they? I'm not a huge fan of game mechanics, but an app that can critique you and lead you to more and more advanced guitar playing would be great. I've always wanted to learn to play the guitar.

</comment></comment><comment><USER15> Is this compatible with Apgogee Jam?

</comment><comment><USER16> Someone should clone this for PC. Why restrict yourself to the iPad market when you can write cross-platform code?</comment>


How do you hire a lawyer or an accountant? - <AUTHOR>

Many (very helpful) discussions here end with "but you better consult an actual lawyer/accountant."
We (developers) know how to interview fellow software engineers. If they have never seen a hash table, they're probably not going to be a good fit.
How do you approach this problem for lawyers/accountants, e.g.:
- What questions are useful to ask in an interview?
- Are there any potential red flags to notice?
- Do any certifications help?
- Is H&R Block really that bad?
- Is there a useful directory that I can consult?
- Are some lawyers/accountants better specialized for web/software projects than others?
- What kind of a lawyer would be most qualified to review a site's privacy policy/TOS?
And so on.
(I will be looking to retain both sometime next year and am based in the Bay Area. However, I was hoping for wisdom that would be general enough to help more hackers out there, at least those based in the U.S.) <comment><USER2> Finding a great accountant or an attorney is actually pretty hard and this is coming from a tax accountant. You'll find that finding a good professional is going to be difficult in the same ways.

\- Questions Great questions to ask a tax or legal pro is to go for the throat. What specific experience does he have in your industry and to name a few clients. Most desirable professionals won't lie about their experience and if they do, checking references will make sure they stay honest. I believe everything you say, until I learn otherwise from checking. Having specific experience is key because it doesnt matter how many years of general experience they have unless they're able to understand your situation specifically. I've seen a number of "generalists" miss big obvious pain points on tax returns and legal issues.

\- Potential Red Flags Inexperience and lack of professionalism. Tax accounting and law is fundamentally based upon experience (even the law that controls the two professions is based upon the concept of "precedence" or "experience"). No one learns how to be a great tax or legal pro. It takes years to develop the necessary acumen and understanding behind the madness. Also, lack of professionalism is when the pro doesn't have pride in his work and half-asses his work. You can generally sense this from their behavior but obviously you can always get tricked. But, usually the half-asses will make enough experiences that even you'll notice. The problem is that you usually notice when its too late haha.

\- Certifications They're required by law to practice tax and law. But, other than their legal requirement its useless because it fails to tell you anything besides they've met the basic requires to cram words into their photodex brains with mass quantities of caffeine and adderral. Awesome example: Everyone looks for a "CPA" to become their accountant expecting an experience tax professional. Problem? Did you know that a CPA or an accountant's function breaks down into two major dichotomies? We're either auditors (fact checkers) or tax guys. Wanna guess what you're CPA is? CPAs are traditionally auditors by trade and they generally outnumber the tax guys. I cant tell you how many times I've met clients with crap ass CPAs because they never knew to CHECK WHAT THEIR EXPERIENCES WERE (see the first question). All they knew was that the CPA is certified and worked at some sexy big 4 (KPMG, PWC, EY or Deloitte). Big mistake.

\- H&R Block Would you outsource your code to india? Enough said. I generally ask every client to bring their tax returns for the prior 3 years if I learn that they've been to HR Block. Ive found money left on the table 10 out of 10 times.

\- Directories Yes they exist. No you won't use them. Ever.

\- Specialization You're talking about a field that specializes in minutia. In tax and law, every small detail could make or break your specific situation. Ex. Sales tax. Professional software that is provided on tangible property (CD or some other tangible media) will be taxable. Generally professional services are not taxable but in this situation, your screwed.

\- Lawyer Refer to the first question. Anyone can review these things but obviously experienced professionals could find potential issues that aren't obvious. But, if another site or program has a similar function then you can probably just copy their terms.

Sidenote: I'm really surprised at the number of questions the HN community has for accountants and lawyers. I think i'm going to start a podcast on my blog to answer these questions. Anyone interested (i've already bought a blue yeti and etc so its kinda late to ask but I love new tech toys haha)

<comment><USER3> I'd definitely be interested, something along the lines of a 20-30 minute show that answers two or three questions in a good amount of detail would be very useful to me.

</comment></comment><comment><USER4> I had this same question, and found OnStartups had a decent answer: [http://answers.onstartups.com/questions/1618/how-do-you- find...](http://answers.onstartups.com/questions/1618/how-do-you-find-good- professional-help-lawyers-accountants-graphic-designers)

Basically, the advice is to go by referrals. Perhaps, some experienced hackers will give some good referrals here.

</comment><comment><USER5> The suggestion to get a referral is a good one. However, you may not have that option. So what do you do alternately? Let's consider the answer for an attorney.

First, define the legal work as much as possible by yourself. Think of this as "legal pseudo code" that will ultimately be put into the proper legal language. Do your homework: your problem is not new, and some googling will find existing solutions. So before you start making any calls, you should have a pretty good idea of what you need.

Now start searching law firms in your area (you definitely want them in the same state, as state laws vary). Check their existing clients (if they name any) and their practice area. Look for significant overlap; they should have done work for companies in the tech sector.

Then start making calls or sending emails. By this time, you'll probably be able to select the person you'll use as an "entry point" in each firm. Ask them for an initial interview; there should be no charge for this. Present your problem, and proposed solution. Ask: have they done something similar? If not, get a referral. Now you're suddenly on the inside track. Keep getting referrals and going on initial interviews. As you repeat the process, it will soon become obvious who the top candidates are.

</comment><comment><USER6> I went with one who is also on the board of a local networking group for digital/creative industries. I figured I can't really go wrong with somebody like that and so far I seem justified, she's invited me to local events I didn't know about and all her advice seems really sound.

On the other hand my coworker picked the guy two doors down because he's local. So he technically does have an accountant, but they've never met except to agree they'll do paperwork together once a year. Now ordinarily I'm all for picking the local provider, but I know which of these two I'd recommend.

</comment><comment><USER7> Referrals from other business owners is typically how i find any "professional" service. As far as lawyers - I'd recommend w/ someone specialized in whatever your particular need might be.

</comment><comment><USER8> Ask a lawyer/accountant you trust. I realize that this can present a bootstrapping problem.

 _EDIT_ : OK, that's a bit snarky. I've found that word of mouth is by far the best method to use; if you don't know anybody in the field, ask your friends/peers (I just happen to have friends who are lawyers, which helps streamline things). It's highly likely that you can get introduced to someone who can help you get a referral this way.

</comment><comment><USER9> For lawyers: If you don't have the contacts for referrals, contact your local bar association, and they'll either help you find one or get you in touch with someone who can.

As for interviewing a lawyer: Interviews tell you diddly squat about a lawyer's legal skills. All you will learn is how well they interview.

Avoid lawyers who use "I" a lot; this indicates they don't work well in teams or collaborate well with clients. Avoid lawyers with corner offices (unless you have VC funding), b/c you'll just be a small fry to them; your work will be assigned to an associate.

Any lawyer can review web/software projects, but you may want to look for a lawyer with an IP or programming background. The legal advice won't change, but the dude will have a better understanding of how to structure his advice to minimize the changes you need to make.

Any lawyer can review a privacy policy/TOS. Unless it's one of your selling points, you don't need to pay a premium for a lawyer who has experience with this.</comment>


Microsoft support - <AUTHOR> http://marginalrevolution.com/marginalrevolution/2012/03/microsoft-help.html

<comment><USER2> Why is this being upvoted? The info page for this error is:

<http://support.microsoft.com/kb/917607>

which says that the issue is that Windows Vista and above don't support that format. If someone is still using Windows XP, which was released 10 years ago, then the least they can do is do a quick google search and easily find the relevant support page.

I mean I switched to a Mac last year and love it, but this is just unnecessary bashing.

</comment><comment><USER3> The Windows Help format dates back to Windows 3.0.

It was superseded by HTML Help when Windows 98 came out in 1997.

Instead of hating on Microsoft, why not hate on whatever clown decided to distribute their documentation in a format that went obsolete before the turn of the century?</comment>


Mr. Benioff, Tear Down That Wall  - <AUTHOR> http://blogs.zoho.com/uncategorized/mr-benioff-tear-down-that-wall/

<comment><USER3> Keep up the great work, Sridhar Vembu. Many of us are rooting for you and Zoho. Your example of a bootstrapped startup successfully taking on the largest players in the industry is inspiring. I think Zoho is one of the most under-appreciated business stories of 2008.

</comment><comment><USER4> This may be the most relevant hacker news I have seen all day. If it's not true, I expect a strong response back. And if it is true, I hope there is a good explanation or things change quickly.

<comment><USER5> I'd like to hear the other side of the story as well. I certainly hope it's not true.

As a developer I'm worried that these open web platforms are not so open. I worry that my data will be hijacked, that my apps will be locked to one vendor, that my provider might be my main competitor.

<comment><USER6> Alas, everything I wrote is true, it exactly happened the way I describe in my post. To be honest, I haven't seen a platform with as myopic a strategy as Salesforce, not from Microsoft, not from Google, not from Facebook, not by a long shot, so their situation is a bit unique.

In fact, several months after those events happened, there were people on their team who were uncomfortable with Benioff's stance. They tried to get him to change his mind, to no avail - a second set of interactions happened where one of their execs tried to get us in to Force.com, but he was vetoed by Benioff himself much to his disappointment and frustration (he ended up leaving Salesforce, so he won't be impacted when I say this). It was only after all that happened that I decided to go public with this.

We still stand ready to integrate our suite, just as we do with Facebook, with Google single sign-on and so on. The key question stands: would they let Zoho play in their ecosystem? If not what is the meaning of being "open"?

After all, Benioff compares Salesforce's "openness" with Microsoft, but consider the contrast. AdventNet, the parent company of Zoho, sells most of its software on the Windows platform (like most software companies do, no surprise there). We didn't have to seek permission from Microsoft to create applications on Windows. I don't know the terms, but I bet Microsoft would let us play on the Azure cloud platform, because they know a thing or two about empowering third party developers. Google lets us offer their users the option to sign-in to Zoho using their Google ID. Google lets us integrate Gears for the offline version - they even gave us publicity when we finished the integration. Google APIs are open to any and all vendors, including Zoho, on equal terms.

<comment><USER7> Thank you for having the courage to hold Benioff personally accountable. I agree with your attitude and views. If your development HQ wasn't in India, I'd be asking you for a job.

<comment><USER8> _"If your development HQ wasn't in India"_

Pft...lame excuse... :^)

</comment></comment></comment></comment></comment><comment><USER6> Thanks folks, as a Hacker News regular, I am truly honored to have this featured here.

To address lhorn, this post was written and made it to HN when our India folks were asleep (13.5 hour time difference). And it may be hard for you to accept, but our company doesn't operate that way - the kind of "astro-turfing" you describe. I post at least once a week on Zoho blogs, and this is probably the second time ever anything made it to HN. And it was not a personal rant - <USER2> is about a major software-as-a-service vendor who acts in ways totally contrary to their public posturing. Keep in mind, they _invited_ us to be there on AppX, and we did the integration work with their support. As the CEO of Zoho, I deal with hundreds of companies, large and small, in relationships that succeed and in relationships that fail to materialize. What happened with Salesforce was unusual enough to warrant calling out - and should be a cautionary tale for other companies.

</comment><comment><USER9> That's really interesting- I, too, had flagged Salesforce as an 'open' company. Their API is comparatively good, and the AppExchange is virtually unparalleled in terms of openness to third parties.

I wonder if this is something specific to Zoho, or if they're taking an anticompetitive stance in general.

</comment><comment><USER10> One of the important lessons in Tech is not to moon the Giant. Lot of things are personal in Business, just ask Netscape.

</comment><comment><USER11> 63 points for these "news"? A public rant about a competitor is "news" here? And how ethical is it to blog about such things? I've never seen a CEO of a company publicly bitching about how badly competitors treat him. Jesus I know for sure to never approach Zoho with a business proposal in fear of turning any potential dispute into a dirty laundry hanging in public. And why is it even supposed to be interesting for anyone outside of Zoho/Salesforce? I wish we could see IP addresses of people who voted this stuff up: I wonder what percentage of originated from India. Sridhar, here is an idea for you: write a post titled "Zoho shall pay no taxes" and make your workers vote it up on every public news site.

</comment><comment><USER11> 63 points for these "news"? A public rant about a competitor is "news" here? And how ethical is it to blog about such things? I've never seen a CEO of a company publicly bitching about how badly competitors treat him. Jesus I know for sure to never approach Zoho with a business proposal in fear of turning any potential dispute into a dirty laundry hanging in public.

And why is it even supposed to be interesting for anyone outside of Zoho/Salesforce? I wish we could see IP addresses of people who voted this stuff up: I wonder what percentage of originated from India.

Sridhar, here is an idea for you: write a post titled "Zoho shall pay no taxes" and make your workers vote it up on every public news site.

<comment><USER8> If this continues to be voted down...will it turn the same gray as the background?

<comment><USER12> I'm pretty sure I've seen comments blend in completely at about the -50 mark. I don't have a link offhand though.

<comment><USER13> I actually find the lightening of the text attracts me to it. I'm always curious to see what made a comment so controversial / bad.</comment></comment></comment></comment>


WhatsApp has been bought by Facebook. Time to try out the better version. - <AUTHOR> https://telegram.org/#

<comment><USER2> you have so many downloads, are you still struggling with users? Can you explain further on this</comment>


At Hedge Funds Where Are the Women? - <AUTHOR> https://www.wsj.com/articles/at-hedge-funds-where-are-the-women-1535030899 <comment><USER2> A little surprising given there must be lots of rich women in the world. And it doesn't really require much else if you want to start a hedge fund.</comment>