Ridesharing startups hit with cease-and-desist by California regulator - <AUTHOR> http://arstechnica.com/tech-policy/2012/10/ridesharing-startups-hit-with-cease-and-desist-by-california-regulator/

<comment><USER2> I think the idea of ride sharing is pretty cool. But to be fair when I read about some of the ride services, they kinda are just unregulated taxi services.

If somebody's heading to the airport and I get to hitch a ride with them - that's a ride share. Having drivers waiting for ride requests and then taking them wherever they want to go - call me crazy but that doesn't seem like ride sharing to me.

</comment><comment><USER3> If I were the rental car lobby, I would be putting pressure on regulators to make things as hard as possible for these companies. They are startups, so it's hard for them to put up much of a fight.

It would be very different if Google was behind ride sharing. It took someone the size of Apple to work with the music industry to sell mainstream music legally to the masses.

<comment><USER4> >It took someone the size of Apple to work with the music industry to sell mainstream music legally to the masses.

This is historically inaccurate; Apple was merely the first to do so at such scale. UMG/Sony/WMG all had the 99cents/10dollar albums by 2000, the iTMS wasn't available until 2003.

<http://en.wikipedia.org/wiki/Online_music_store#History> <http://en.wikipedia.org/wiki/ITunes_version_history>

</comment></comment><comment><USER5> Prostitutes attempt to skirt the law in the same way by accepting "donations" for time instead of payment for services. You know how well that works for them.

<comment><USER6> I thought prostitution laws were avoided by escorting, providing time with another adult (which totally won't have sex involved!) for a fee? or is that to avoid different laws?

</comment></comment><comment><USER7> I wonder if some of these startups knowingly run afoul of the law, thinking that if they build sufficient ridership it will give them the sway to have the laws changed.

</comment><comment><USER8> I agree with the state in that these companies fall under the law as written. The real question is whether the law is really designed to benefit the public or whether it's a rent-seeking arrangement with the taxi companies.

</comment><comment><USER9> I can agree with side.cr, and lyft.. That they are simply a platform by which drivers, and those wanting to be driven are able to reach other. However... Even though payment is voluntary the drivers are participating in a transportation service, and are subject to being regulated as one; non-profit or not.

Not a perfect example of this but similar is that craigslist might be a communication tool for those dealing in prostitution, but they are not the ones committing the crime.

<comment><USER10> The problem is that "communication platforms" don't normally run background checks, process payments, or offer insurance policies. Ironically, getting rid of these things - which serve to make the service _safer_ \- probably would make them more legally sound.

</comment></comment><comment><USER11> Would this apply to Zimride, Riderbee, Ridejoy, etc. ?

<comment><USER12> Tough to say. For Ridejoy in particular, regulation could be a challenge, because it will be argued that by matching drivers with underused vehicles, there's an implicit promise that the vehicles are roadworthy and so on. Sure, you can invite users of the service to waive some of their rights or voluntarily accept a degree of risk and uncertainty to use the service, but courts sometimes view such arrangements as contracts of adhesion - tilted in favor of the offeror by virtue of the fact that a large organization has substantially more bargaining power than an individual, who is left with little choice but to accept or reject terms rather than negotiate them.

I don't have a strong opinion on how this should turn out and am not an attorney. Rules that limit industry like this are sometimes the result of regulatory capture, but are equally often the result of consumer pressure following malfeasance by unscrupulous service providers some time in the past. Certainly such rules represent an increase in red tape, but that doesn't mean they're inherently bad; one might argue that they're an unavoidable corollary of a complex technological society, reflective of the challenges faced by its members - just as product liability rules are reflective of industrialization's severance of the traditional relationship consumer and producer that used to exist at the local level (blacksmiths, carpenters, _et al._ ).

Incidentally, I hope people won't interpret the CPUC's representatives mention of enforcement mechanisms as a threat. Spokespersons for public bodies like this are duty-bound to cite the way the law actually operates, rather than make policy statements about how it should operate. So discussion of enforcement mechanisms is no more than a restatement of fact in response to journalistic inquiry.

</comment></comment><comment><USER13> I know people in the echo chamber don't like to hear this, but ridesharing is not an innovation. Los Angeles and Chicago have had ridesharing programs for at least a decade. Hell, even Cleveland had a ridesharing program years before Uber or Lyft were founded (and that was how I got around Cleveland in law school).

Uber and Lyft call themselves "ridesharing" programs where passengers "donate" money to a driver who "just happens" to be going to the same destination as his passengers but who will not remain at that destination and who will probably pick up more passengers shortly thereafter and "coincidentally" drive them to their desired location in exchange for a "donation." Uber and Lyft can use all the euphemisms they want, but they what they are is the very definition of a for-hire car service.

The fact that they straddle the line between two types of regulated car services (cabs and limos/"charter car") does not change the essence of the commercial transaction that takes place. The fact that a mobile app or website is used to arrange the transaction instead of a phone call does not change the essence of the commercial transaction that takes place.

Regulations on cars-for-hire exist for a reason: to protect the safety of passengers by ensuring a minimal level of competence _and to ensure recompense_ via adequate capital or insurance in the event of an accident. These regulations work remarkably well, which is why so many people think they are unnecessary.

<comment><USER14> _Regulations on cars-for-hire exist for a reason: to protect the safety of passengers by ensuring a minimal level of competence and to ensure recompense via adequate capital or insurance in the event of an accident._

A minimal level of competence? Safety of passengers? I've taken more than a few rides on all of SF taxis, Uber black cars, Uber X, and Lyft. SF taxis had the most hasty drivers, and a couple I really didn't feel comfortable riding with at all. With Uber/X and Lyft, I've never felt anything but safe, and I have never been harassed for using a credit card to pay.

 _These regulations work remarkably well, which is why so many people think they are unnecessary._

If everything works so well, why are so many people using Lyft? Have you ever called a taxi and not had it show up because it found another fare on the way to pick you up?

I'm sorry, but taxi service is broken in SF (the only place I've used it extensively). I prefer to make my _own_ decision on what is safe and what isn't. I don't need a government that takes money from vested interests to tell me what's safe.

<comment><USER15> I drove a taxi a while back (not in SF) and I have to agree that a lot of taxis are extremely dubious in their level of safety. I only figured out after a spin-out that the company car I'd been assign had bald tires with uneven tire-pressure. And well, obviously I was inexperienced too or I might spotted that earlier but that's not uncommon.

But that is _after all the regulations_. With no regulation at all, things wind-up even diciers. Will you check the tire pressure of every car you get in?

The reason taxis are unsafe is because drivers and companies don't make much and try to extract every last dime from their rides and their cars and so- forth.

With more competition, less money to per drive and so-forth, I couldn't imagine how dodgy things will get.

I'd like to think I was pleasant and courteous. I doubt you can judge driver's skill by looking at his or her face so your eagerness to judge for yourself seems foolish.

I can believe Uber- _now_ or Lyft- _now_ looks good. Will you know when the safety goes out the window, considering there is constant pressure for that to happen?

<comment><USER14> I don't know why you think government regulation ensures safety. When it comes down to it, you're getting in a car with someone you've almost certainly never met, and trusting them to get you safely to a location. I don't claim to judge drivers' skill by looking at their face, but which of these situations seems more safe to you? Which is a better experience?

Lyft: I open up the app and get an approximate time of when I can get picked up if I decide to order a car so I can decide if it's the right choice. I then get a picture of the car, a picture of the driver, and the drivers' rating on my phone, and I can watch them come to me on a map. When they come, I'm greeted by a friendly face who going to get more or less money based on how well they service me. I know the car isn't going to be more than 12 years old, will be in good condition, and that the driver has had a background check.

Taxi: I call a company and hope that the cab comes. If it comes I have to try to figure out if they take credit card or if they're going to lie about their machine being broken. They drive me as fast as possible to my destination, without regard for comfort, because they're getting paid based on speed. I don't know anything about this person's driving record, or if other people have had generally good experiences with the driver.

You may very well have been a good driver, and I've taken taxis with good drivers. I've also taken a taxi with a driver who mumbled to himself (no, there was no phone/ear piece) and drove at a crazy pace without wearing a seatbelt. How long do you think he would last on Lyft or Uber, where drivers will get kicked off if they get rated too low?

I'll take Lyft every time, even if I see a taxi I could hail and get more quickly.

<comment><USER15> Read what I wrote. I make no claims about my ability - I'm a far better hacker than I was a driver or the goodness or taxis in general.

Like I said, I can totally believe Lyft is better than taxi services _now_. But the thing about any purely private system is that everything they do is going to ultimately be a cost-benefit trade _to them_ and everyone in the equation is going to be trying to figure out new ways of making money. Look at email, look at craiglist, look at AirBnb. The large large scale produces problems unlike small scale. If someone comes up with X scam that lets them profit from Lyft or whoever in a dangerous way, will Lyft be spending it's entire margin tracking that problem down. Maybe.

The only thing about government regulation is that the state has authority to be more invasive than a private entity can be and is not limited by a cost benefit analysis. Government regulation is inefficient but unfortunately haven't yet demonstrated an iron clad better way to make sure things like commercial driving, electrical and other infrastructure work remain safe. It's problematic but it would also be problematic to do a large experiment with the physical safety of people.</comment></comment></comment></comment></comment>


Ask HN: What should be considered when starting a web development project? - <AUTHOR> When starting a web app project at minimum what should be taken into consideration from the point of view of security, scalability and maintainability so that there is minimum disruption as the project grows? <comment><USER2> From a security perspective, the OWASP top 10 is required reading if you don't know it yet. More generally, always assume your users are hostile and don't trust any input that comes from them (this may come across as harsh, but really: if there is a loophole or data that you don't validate server-side, someone will abuse it).

If you need to support a variety of clients, especially older ones, stay away from fancy js stuff and focus on vanilla html and server-side rendering. Invest in a way to test your website from different clients (this can just be a few VMs running different OS/browser versions). Fun story: after launching a new SPA website, extensively tested in Chrome, FF and Safari, our first user complained of seeing a blank page. He was using IE11...

Scalability is pretty much a solved problem for websites: load balancing and auto-scaling will take you a long way; you may eventually encounter a bottleneck at the database layer for which mature solutions (e.g. read replicas) exist.

Invest in monitoring your app, both from a technical standpoint (response time, % of 4xx/500 pages, etc) and from a functional perspective (e.g. set up a script that simulates a login, fetching a document, filling out a form... and send an alert if the script fails)

</comment><comment><USER3> As for security, as laurentl suggested the OWASP is a good starting point. From there look at all related security requirements of the country your project/product will be subjected to.

For scalability, pick a good database and get really familiar with the short comings of it (no design is 100% perfect). Also, check out the language/runtime for your project uses for scaling and what real world solutions others found effective (real-world is what counts on this one).

For maintainability, look at the support pledge for each library, framework, middleware, etc. used in your product. Sticking with what is supported and what your clients can do is important. If a lib/framework/tool is going to be unsupported then that is going to cost you (either refactor a replacement or get ready for legacy). Maintenance is going to be an ongoing cost for any product and picking long term supported technology is key. I personally restarted my own project 3 times because of how fast support waned for the versions of technologies I was using.

Another thing to consider is the future of your project. Every three to six months a genuine look at the product/project and the real world market needs.

</comment><comment><USER4> How long the customer expects the web service to properly function: The shorter the time - the more canned stuff you can probably integrate into a solution. The longer the time - less reliance on external dependencies.

Security - as much as you can, use common sense and current best practices. If there are data laws/financial concerns regarding it's function, then you will need to follow any requirements of those.

<comment><AUTHOR> > Security - as much as you can, use common sense and current best practices.

Please could you share any links to current best practices? In some of the previous comments OWASP was mentioned, apart from that are there any other resources to follow for web app security?

<comment><USER4> I don't know what your platform is - if you search for your code/db environment and best practices you will find some insight, read a few and determine what makes sense.

Generally you don't trust any input, filter anything whether it is a page link or a form field, be mindful of what you put in your database and what you serve back will not cause any problems - how external input communicates to the outside world (HTML, PDF, email, links, etc.)

Get as much of your code below web root. Use SSL. Setup regular backup and test it. Keep your code environment updated (but not bleeding edge - too new can be vulnerable too)

</comment></comment></comment><comment><USER5> A 'right' answer for this will always vary based on the project goal, MVP (Minimum Viable Product), and development workflow that you want to follow. If you provide more context, it may result in suggestions with a better scope instead of comments that suggest random libraries and development strategies.

<comment><AUTHOR> Well, I am not a web developer; thought I have developed simple web apps for understanding the development process but never deployed anything in the wild. My experience is into embedded and desktop application development. I recently received a request from one of my clients to develop a small web app that has to be accessible from the client's multiple offices with 3K employees. The employees use varying devices and web browsers (e.g. IE8+, old Android and iOS phones etc). I am looking for information on what things I should look for, from deployment, security and maintanibility point of view, before, during and after deploying the software. The web app is a simple work log book where employees log in the tasks done everyday and supervisors audit the information entered.

I want this web app to be secure, scalable and maintainable. If the client in future wants someone else to take over the project then it has to be easy for them to do so.

</comment></comment><comment><USER6> Figure out who the end users are, and maintain a laser-sharp focus on delivering what they really need.</comment>


Ask HN: How does Upromise track my credit card use? - <AUTHOR>

I am trying to get a start up off the ground.  I need to track my members credit card use similarly to Upromise to make business plan work.  I have tried to contact Upromise, Visa, MasterCard, and a new start up Linkables that tracks CCs but everyone seems pretty closed lipped about it.  Does anyone have any ideas how this is done.  If you are not familiar with Upromise here is their "how it works" page. http://www.upromise.com/welcome/how-it-works <comment><USER2> Not 100% positive, but I would think a service like Yodlee can provide you with help. It is the same service that mint.com (although I don't believe they use it anymore) and others use to aggregate your financial data into their platforms.

</comment><comment><USER3> Each retailer that "supports" Upromise sends them a sha256 hash of your creditcard along with the amount for each transaction.

<comment><AUTHOR> So if made a large scale business that included small restaurants I would be relying on their "honor" to send in the sha256 to show a sale? That's not good.

<comment><USER3> That's more or less correct. But, the customer who is tracking their percentages earned would know that their purchases were not accounted for.

<comment><AUTHOR> Unless they were unknowingly at a participating vendor. How long does it usually take to get this information back. Is it same day or is there a longer delay? Thanks for the information by the way.

<comment><USER3> If I recall correctly, we sent a daily feed to Upromise. I don't know how often or when they updated their totals.</comment></comment></comment></comment></comment>


How do I become better at JavaScript? - <AUTHOR> http://www.quora.com/How-do-I-become-better-at-JavaScript?share=1

<comment><USER2> Write, write write.

You can read Douglas Crockford's "Javacript: the good parts" however you MUST write to become better.</comment>


Show HN: ApiDocco - Manage, collaborate and test on your RESTful API - <AUTHOR> http://apidocco.com/

<comment><USER2> It works!

"This is the default web page for this server.

The web server software is running but no content has been added, yet."

But it's a cool concept. I'd love a place where I can discuss an API with a team-member or consumers.

</comment><comment><USER3> Well the site doesn't work as of the time you submitted it....

<comment><AUTHOR> Just did `jitsu deploy` again, my nodejitsu logs didn't report anything hrmm. Thank you!

<comment><USER3> Fixed now

Edit: Spoke too soon, the list of the API's all say "No methods" when you click on them</comment></comment></comment>


Government Programs? - <AUTHOR>

At present the US Code of Federal Regulations is perhaps the buggiest code ever written. The CFR has yet do deal with issues of legacy code and has probably never been refactored. Ever. There are numerous conflicts within the code that lead to the legal equivalent of a SigAbrt, without the benefit of an error log. The return values also vary wildly and, in many instances, are in direct conflict with the intended results of the various classes and methods within the code base.<p>If you, as a coder, were handed the CFR to debug and refactor, how would you do it? Also, could you create unit tests to verify the algorithms are producing the desired return values within the framework of that much legacy code? <comment><USER2> Unfortunately the CFR (like most sausage) is the result of compromise, and what people often fail to take into account is that the code won't compile on purpose.

In our case the compiler itself is a living, breathing entity that gets fed not by every successful completion but by every error that comes up. The system favors its own flaws. Certain people like loopholes and legal delays.

Worse yet, the boundary conditions are changing. We want the program we call government to do different things as the decades go by. A government regulation that compiles today may not compile in 20 years because of technological or social changes.

In the end, we have judges and politicians to do the refactoring. As untrustworthy as those can be, they beat any other system I've heard of, even a computocracy.</comment>


118 Uber employees in SF have resigned/put in notice since the weekend - <AUTHOR> https://twitter.com/physicsNcoffee/status/834566962998960128 <comment><USER2> Is this actually verified? I have no idea what Blind board is.

<comment><USER3> It's like what Secret was, and should be treated with the same skepticism.

<comment><USER4> So basically we have to believe someone in HR relatively high up (to get total numbers) at Uber would want to leak this anonymously for no reason?

</comment></comment></comment><comment><USER5> If true that's a lot of people to lose from the HQ. I smell a class-action lawsuit, there's a lot of blood in the water (not solely from this episode) and Uber has deep pockets. I wonder if Uber can change its internal culture rapidly enough to maintain its market lead or if competitors will find a way to take advantage of its woes.

<comment><USER6> I'd imagine a class action lawsuit is unlikely, as Uber is the kind of company to force an arbitration clause in their employee contract.

<comment><USER7> > I'd imagine a class-action lawsuit is unlikely, as Uber is the kind of > company to force an arbitration clause in their employee contract.

A company cannot force arbitration on their employees. That's preposterous. A corporation can't force arbitration on their customers either.

<comment><USER6> For class action lawsuits, the supreme court ruled arbitration clauses are legal and enforceable on customers and employees in _AT &T Mobility LLC v. Concepcion (2011)_.

[https://en.wikipedia.org/wiki/AT%26T_Mobility_LLC_v._Concepc...](https://en.wikipedia.org/wiki/AT%26T_Mobility_LLC_v._Concepcion)

A SV company I worked for included an arbitration clause in their employment contract, specifically referencing any dispute involving the Civil Rights Act of 1964 and the Americans with Disabilities Act of 1990.

</comment></comment></comment></comment><comment><USER8> Does anyone have context for this?

<comment><USER9> If this is related to current events, then it would most likely be related to [https://www.susanjfowler.com/blog/2017/2/19/reflecting-on- on...](https://www.susanjfowler.com/blog/2017/2/19/reflecting-on-one-very- strange-year-at-uber)

<comment><USER10> Assuming this is as described, two things need to happen:

1) Ms Fowler needs to get a lawyer. 2) That lawyer needs to tell her to STFU.

<comment><USER11> Why? I really don't think she has anything to fear from Uber. And if you read her post, she doesn't seem interested in devoting the next phase of her life litigating and reliving that experience -- it is very clear that she's moved on.

<comment><USER10> "I really don't think she has anything to fear from Uber."

The people she describes (who may or may not have any relation to actual Uber employees) sound like exactly the sort of people who would launch a defamation lawsuit, whether there were actual grounds for it or not.

" And if you read her post, she doesn't seem interested in devoting the next phase of her life litigating and reliving that experience"

Plans change, and having a credible countersuit waiting in the wings can be a useful thing, whether or not it ever actually gets deployed.

I repeat: I would recommend that she talk to a lawyer immediately.

<comment><USER12> Defamation lawsuit would just draw way more attention and prolong this story for even longer. Litigating against her without some really really good evidence would be ridiculous

</comment></comment></comment></comment></comment></comment><comment><USER13> Interesting, I wonder how far this can go? I'd guess that if you're not making a mint, or likely to, then your motivation to stick around must be fading by the day.

</comment><comment><USER14> This could easily have been made up

</comment><comment><USER15> Ironic that a man who once bragged how he could attain any woman's attention will now be ruined by it.

<comment><USER16> Which man are you referring to? edit: nevermind, just saw the NYT article</comment></comment>


Ask HN: Idea Validation- Content Summarizer - <AUTHOR>

Would you be interested in a service that summarizes content from sites that you frequently visit?
Personally, I follow several RSS feeds and I feel like I would be better served reading summaries of the content rather than the content itself for many of the feeds.
Extending the concept to video, I know I would find value in being able to read a summary of a given TED talk rather than having to watch a 15-30min video.
Does anybody else feel this way? <comment><USER2> Just build it and get feed back.

If I were you, I wouldn't waste my time asking here. First, your target audience probably won't be HN (since HN is a small community compared to the rest of the world). Second, nobody _actually_ knows what they want.

<comment><AUTHOR> Thanks for the feedback.

I was trying to gauge interest amongst a community I perceived to be early adopters in line with 'lean startup' principles.

Nevertheless, you raise a good point. I will try to find some members outside the HN community to run the idea by.</comment></comment>


Sideline, a CoffeeScript shell for your server - <AUTHOR> http://labnotes.org/2011/09/01/sideline-a-coffeescript-shell-for-your-server/

<comment><AUTHOR> Looks really nice and simple. Would've been great to have for Node Knockout.</comment>


Gaussian Processes Are Not So Fancy - ajay-d https://planspace.org/20181226-gaussian_processes_are_not_so_fancy/ <comment><AUTHOR> For anyone wanting to dig deeper, GPML is the bible on Gaussian Processes: [http://www.gaussianprocess.org/gpml/chapters/](http://www.gaussianprocess.org/gpml/chapters/)

GP's are awesome. Usually, if you've got a few points, your first approach to "fitting a curve through them" would be to choose some parametric form and hope that you're not overfitting with e.g. too high a degree of polynomial. But what if you've got something piecewise, with unpredictable pieces? And what if you don't need a writable parametric form for your curve, but all you need is to answer the question "given my data, what's the probability distribution over the y value at x=5, 6, 7, 8, weighted over all likely curves that might fit my data based on how well they fit?"

Then a GP fit on your data will work wonders for you, as essentially an oracle for those kinds of queries. (And you can then just use the means of those distributions sampled at small intervals, if all you want is to throw a single curve on the screen.) Depending on your choices of priors and kernels, you can have it do magical things.

</comment><comment><USER2> Thanks! I wrote that post! Another friend pointed out yesterday this other post about Gaussian Processes: [https://www.jgoertler.com/visual-exploration- gaussian-proces...](https://www.jgoertler.com/visual-exploration-gaussian- processes/) I think that post has some fun visualizations for showing how different kernels work, but I tend to prefer my explanation. Would love to get more eyes on it and feedback specifically about whether I have any mistakes in there!

<comment><USER3> Hi,

Great post. A little typo I found was in the covariance equation (copy pasted when you copy-pasted the equation), there's an extra bracket at the end.

I loved the sentiment at the end:

A Gaussian Process might be useful for you. But please don't assume that it is sophisticated just because the language around it often is, or that its results are automatically true just because they have error bars.

<comment><USER2> Thanks! Really appreciate the feedback, and thanks especially for the typo catch! It should be fixed now!

</comment></comment></comment><comment><USER4> _

<comment><USER5> No, that's just a common choice. You can choose a covariance function (kernel) corresponding to some other function space.

[http://www.gaussianprocess.org/gpml/chapters/RW4.pdf](http://www.gaussianprocess.org/gpml/chapters/RW4.pdf)</comment></comment>


Exploring the V8 JS engine (Part 2 of 2) - <AUTHOR> http://jcla1.com/blog/2012/01/08/exploring-the-v8-js-engine-part-2

<comment><USER2> Really good entry-level intro. Useful!</comment>


Typedrummer - <AUTHOR> http://typedrummer.com <comment><USER2> [http://typedrummer.com/6haxm2](http://typedrummer.com/6haxm2)

<comment><USER3> Firefox wanted to correct the spelling of some words. I let it do it for once.

[http://typedrummer.com/zbkrw0](http://typedrummer.com/zbkrw0)

</comment></comment><comment><USER4> Creator here— Thanks for checking it out everybody! I promise I'm collecting a list of all the great feature requests I've been seeing.

There's a ton of awesome stuff happening in WebAudio right now. If you want more, check out [http://audiocrawl.co](http://audiocrawl.co)

<comment><USER5> You're about to disrupt Roland business. Brace yourself.

<comment><USER6> Well, those are major words... IMO it won't be that easy or soon. Roland, Moog, NI, Steinberg, etc, are _light years_ ahead of web audio. The web audio API direction is good and really promising tho.

I'm really excited about a combo of Node/websockets (real-time), NW.js/Electron (GUI), Emscripten/ASM.js (reusing audio libs) and Web Audio API. Amazing things can come out of this.

</comment></comment></comment><comment><USER7> Here's my best guess:

      a: click with a slight rattle, like rattan brushes
      b: closed hihat
      c: distored synth bass with rattle, like tambourine
      d: distored synth bass higher pitch and muted
      e: muted synth bass
      f: sizzle ride hit like crash
      g: maracas
      h: muted maracas
      i: afuche-cabasa
      j: synth snare
      k: deeper snare
      l: castanets
      m/n: tap on closed hihat - maybe striking the hardware?
      o: booming tonal bass
      p: half muted tonal bass
      q: muted bass
      r: very muted, blockish bass
      s: synth splash
      t: agogo bell
      u: guiro upstroke
      v: guiro downstroke
      w: tamborine
      x: snare
      y: synth snare
      z: concert bass
      non-alpha: rest
      (): beat = 1/3 - note: triplets will begin on the letter before the first open paren, it modifies the space before, not after, each note.

A beat: [http://typedrummer.com/91l102](http://typedrummer.com/91l102)

<comment><USER8> I think m/n is hitting the top of the hi-hat instead of the sides

<comment><USER7> I think you're right, with n maybe using the shaft of the stick on the bell of the closed hat.

<comment><USER8> Yeah, I think so

</comment></comment></comment></comment><comment><USER9> Quick tip/Easter egg. Wrapping the text in parenthesis allows you to do triplets.

</comment><comment><USER10> [http://typedrummer.com/6m26m9](http://typedrummer.com/6m26m9)

</comment><comment><USER11> For those who recall that "piano thing" that was also on hn a while back and don't want to go trough the hassle of remembering the exact name or searching it: [http://touchpianist.com/](http://touchpianist.com/)

Absolutely different from this, but also fun!

</comment><comment><USER12> I call this one "The Master".

[http://typedrummer.com/901ci8](http://typedrummer.com/901ci8)

<comment><USER13> Slight variation - [http://typedrummer.com/0r4ki5](http://typedrummer.com/0r4ki5)

<comment><USER14> I see a smiley and something else in there

</comment></comment></comment><comment><USER15> I guess the natural consequence is to share your code as a beat audio download and reverse engineer from there, no?

</comment><comment><USER16> This is a lot of fun and quite creative. Turning text into a beat is awesome - I have often thought about listening to a for loop, now you can!

<comment><USER17> Grizzly engineers from the 70s told me of a way to use a radio to detect stuck code. Tune it to the computer's clock and if it started to make a constant pattern, you had a bug!

<comment><USER18> This also works with a Commodore 64 on RF if you crank the sound on the TV

</comment></comment></comment><comment><USER19> [http://typedrummer.com/v8qz8f](http://typedrummer.com/v8qz8f)

<comment><USER14> Noice

</comment></comment><comment><USER20> [http://typedrummer.com/0500z9](http://typedrummer.com/0500z9)

<comment><USER21> Well played.

<comment><USER22> Yes, it was quite the moving performance.

</comment></comment></comment><comment><USER23> [http://typedrummer.com/8f01tt](http://typedrummer.com/8f01tt)

</comment><comment><USER24> OK so basically we have 26 sounds ([http://typedrummer.com/audio/[a-z].mp3](http://typedrummer.com/audio/\[a-z\].mp3)), an accel marker '(' (only 1 scale?), and a decelerator ')' (only 1 scale?). Anything else?

And since everyone feels like sharing his own crap, I'm doing it as well [http://typedrummer.com/j5c05o](http://typedrummer.com/j5c05o)

Edit: it's funny how Firefox (37) gets completely insane when it hasn't the focus on the tab anymore

<comment><USER25> In Chrome too, it is due to the JS engine working slowly when the focus is not on the tab anymore. To get around that issue he needs to wrap the setInterval function in a Web Worker, so the thread runs independently of the tab.

</comment></comment><comment><USER26> it would be amazing if it was easy to tell which was the currently playing character.

<comment><USER27> i thought that

</comment></comment><comment><USER28> Small bug I found - the timing gets messed up whenever the typedrummer tab is running in the background

<comment><USER29> Not really a bug, Chrome heavily throttles timers in background tabs to save the user's juice. All you can really do is suspend the sequence until the tab returns to foreground.

</comment></comment><comment><USER30> What a great toy. Wish there was a way to feed it text from the Library of Babel so we'd get an idea of the sick beats the librarians dance to while trapped in their endless hexes.

I put in a few of the improbable words from the Library and this one turned out well: chaotic but mellow

[http://typedrummer.com/jy28xk](http://typedrummer.com/jy28xk)

[http://libraryofbabel.info](http://libraryofbabel.info)

</comment><comment><USER31> This is really cool. Within about 30 seconds of playing around, I wished it had more scripting-like features (loops and blocks I can reference multiple times)

<comment><USER32> Oh my $deity! I sometimes play a bit with recording music and I always hate drum machine programming. If I could _actually program_ it in some sort of programming language it would be so much nicer!

Seems like I've just got a new side project :)

<comment><USER8> [https://github.com/overtone/overtone](https://github.com/overtone/overtone)

<comment><USER32> Thanks! Although I had something much simplier in mind, Overtone will definitely come handy as well :)

</comment></comment></comment></comment><comment><USER33> When you unfocus the tab drum beats produces different sound. Is it a feature or bug?

<comment><USER25> I think it is more how any JS script works, Chrome and Firefox (at least) slow down the process (for CPU consumption, to save battery... etc). Since that script is working using a setInterval to look ahead, he needs to wrap the setInterval in a Web Worker, so that thread is never runned slowly.

</comment></comment><comment><USER34> [http://typedrummer.com/1m4q5x](http://typedrummer.com/1m4q5x)

</comment><comment><USER35> An awesome meta thing to do would be to make it play it's own source code as a beat.

<comment><USER36> [http://typedrummer.com/zd00vz](http://typedrummer.com/zd00vz)

<comment><USER5> Miles Davis.

</comment></comment></comment><comment><USER37> Somebody had to do this. Sorry in advance.

Sounds better than the original though. [http://typedrummer.com/rik4mt](http://typedrummer.com/rik4mt)

</comment><comment><USER38> Sites like this are a good reason to not require https everywhere. If this guy had to take the extra time to learn how to do https, it would slow down his creative innovation.

<comment><USER39> I'm impressed how you imposed your political agenda on this innocent post.

By the way, it usually takes me less than 15 minutes to set up SSL and that includes obtaining the certificate. "Let's encrypt" will make this even more of a non-issue in the future.

<comment><USER40> Until "Let's Encrypt" becomes a thing certificates are still "expensive". It's a shame that you will have to pay for a certificate on top of a domain name for hobby projects like this.

<comment><USER39> I usually use completely free certificates. There is at least one vendor for those.

</comment></comment></comment></comment><comment><USER41> I call this one Java Utopia

[http://typedrummer.com/6haxm2](http://typedrummer.com/6haxm2)

</comment><comment><USER42> [http://typedrummer.com/piaw9q](http://typedrummer.com/piaw9q)

<comment><USER43> brilliant. [http://typedrummer.com/ovzx48](http://typedrummer.com/ovzx48)

</comment></comment><comment><USER44> Someone needs to combine this with a melody sequencer that maps ascii <-> pentatonic scale notes or something.

</comment><comment><USER45> Break Stuff

[http://typedrummer.com/r5x8z0](http://typedrummer.com/r5x8z0)

</comment><comment><USER46> Would be interesting to see a vim plugin that played these sounds for each key you pressed in Normal mode.

</comment><comment><USER47> The results are so good, I'm thinking this could be used to generate background for some videos.

</comment><comment><USER48> Crashes Firefox after trying about 20 different examples from this page, i.e. opening a tab, listening a bit, closing again, opening a new one.

Firefox 37.0.2 on Ubuntu 14.02 LTS 64 bit. Reproducible, crashed already 3 times.

</comment><comment><USER49> Didn't want to work on Firefox on Linux (37.0.2) but was fine on chrome.

Try: Zyzzybalooba

</comment><comment><USER50> I don't know if they did it on purpose, but `qwerty` sounds pretty nice

</comment><comment><USER51> OMG! Of course I entered "type something" (no quotes) and five minutes later dragged myself out of the trance it put me in. :-)

This could actually be very useful for meditation.

<comment><USER51> Heh. For the helluvit I entered the Transcendental Meditation mantra given me 45 years ago and got something much, much more compelling than the mantra itself. I might just revisit that old fad.

</comment></comment><comment><USER52> Quite a fun webapp. I've also made my thing [http://typedrummer.com/7bss99](http://typedrummer.com/7bss99)

</comment><comment><USER53> Not as good as some others.. but worth sharing? [http://typedrummer.com/uj8es0](http://typedrummer.com/uj8es0)

</comment><comment><USER54> I'm a drummer and this is a real beat: [http://typedrummer.com/eht669](http://typedrummer.com/eht669)

</comment><comment><USER55> Beat from Deftones RX Queen [http://typedrummer.com/j9t913](http://typedrummer.com/j9t913)

</comment><comment><USER56> So how does it work?

<comment><USER57> Basically creates a pattern from your letters and sequences it using WebAudio. If you look at the Network tab, you'll see the individual mp3 files for each letter being downloaded.

</comment></comment><comment><USER58> Page source: [http://typedrummer.com/5426m6](http://typedrummer.com/5426m6)

</comment><comment><USER59> The Amen Break. Kind of.

[http://typedrummer.com/zvs523](http://typedrummer.com/zvs523)

<comment><USER60> For those who don't know what the Amen Break is, here is the most important documentary ever done: [https://www.youtube.com/watch?v=5SaFTm2bcac](https://www.youtube.com/watch?v=5SaFTm2bcac)

</comment></comment><comment><USER61> The Hacker Dudes Song

[http://typedrummer.com/001ho4](http://typedrummer.com/001ho4)

</comment><comment><USER62> [http://typedrummer.com/oo3oc4](http://typedrummer.com/oo3oc4)

</comment><comment><USER63> [http://typedrummer.com/7n8zmp](http://typedrummer.com/7n8zmp)

</comment><comment><USER64> [http://typedrummer.com/m2k5ou](http://typedrummer.com/m2k5ou)

</comment><comment><USER65> [http://typedrummer.com/199694](http://typedrummer.com/199694)

</comment><comment><USER66> [http://typedrummer.com/39t4s8](http://typedrummer.com/39t4s8)

</comment><comment><USER67> [http://typedrummer.com/dgfpcp](http://typedrummer.com/dgfpcp)

<comment><USER68> [http://typedrummer.com/e2t041](http://typedrummer.com/e2t041)

<comment><USER8> [http://typedrummer.com/7bm390](http://typedrummer.com/7bm390)

<comment><USER69> [http://typedrummer.com/xsf444](http://typedrummer.com/xsf444)

<comment><USER70> [http://typedrummer.com/a6yle9](http://typedrummer.com/a6yle9)

<comment><USER71> [http://typedrummer.com/pew13f](http://typedrummer.com/pew13f)

</comment></comment></comment></comment></comment></comment><comment><USER72> Didn't work in Firefox 37.0.2 for me, but did in Chrome latest.

Nice though, thanks!

EDIT: Forgot to mention; on Linux (Ubuntu 14.04)

<comment><USER73> It works in Firefox 37.0.2 on Windows for me.

</comment></comment><comment><USER74> An unknown error occured while processing decodeAudioData. decodeAudioData error" undefined"

<comment><USER57> Which browser is this?

</comment></comment><comment><USER75> Hmm, why not write a fruityloop style of interface. That would make it more predictable.

</comment><comment><USER17> Needs more sounds that come from the left speaker. All I here are right speaker sounds.

</comment><comment><USER76> you can use the "|" to put a pause...

<comment><USER77> Comma also works.

</comment></comment><comment><USER78> The coder's late night sessions: [http://typedrummer.com/uunq13](http://typedrummer.com/uunq13)

</comment><comment><USER79> Feature request - I need more more cowbell

</comment><comment><USER80> Hm, can anyone make me a djent starter?

</comment><comment><USER81> Here's my go [http://typedrummer.com/0ut7tc](http://typedrummer.com/0ut7tc)

</comment><comment><USER82> Moby Dick: [http://typedrummer.com/fh7vu0](http://typedrummer.com/fh7vu0)

</comment><comment><USER83> [http://typedrummer.com/j44d37](http://typedrummer.com/j44d37)

Not as ominous as I hoped.

</comment><comment><USER84> Nice! [http://typedrummer.com/xqp3rq](http://typedrummer.com/xqp3rq)

</comment><comment><USER85> [http://typedrummer.com/r7h885](http://typedrummer.com/r7h885)

</comment><comment><USER86> [http://typedrummer.com/5q6297](http://typedrummer.com/5q6297)

</comment><comment><USER78> [http://typedrummer.com/cd9pe2](http://typedrummer.com/cd9pe2)

</comment><comment><USER87> [http://typedrummer.com/dj76r0](http://typedrummer.com/dj76r0)

</comment><comment><USER88> Cool! my name has a beat.

</comment><comment><USER89> oh shit i aint no love

</comment><comment><USER90> raul chacaltana

</comment><comment><USER91> shout out to p'unk avenue! philly represent!

</comment><comment><USER89> verymych

</comment><comment><USER92> So fun!

</comment><comment><USER89> datbomb

</comment><comment><USER93> [http://typedrummer.com/o2z9g5](http://typedrummer.com/o2z9g5)

</comment><comment><USER27> [http://typedrummer.com/l9wtx8](http://typedrummer.com/l9wtx8)</comment>


Show HN: Porting a C++ Multiplayer Game to the Web with Cheerp, WebRTC, Firebase - <AUTHOR> https://medium.com/leaningtech/porting-a-c-multiplayer-game-to-the-web-with-cheerp-webrtc-and-firebase-29fbbc62c5ca <comment><AUTHOR> Direct link to the game: [https://teeworlds.leaningtech.com/](https://teeworlds.leaningtech.com/)</comment>


Trump gives TikTok a new deadline: 90 days instead of 45 - <AUTHOR> https://www.theverge.com/2020/8/14/21369753/bytedance-tiktok-trump-china-app-privacy-90-days <comment><USER2> Does the new EO override the previous EO? Technically, if it's allowed "no transactions" in 45 days, then it can't really sell anything in the latter half of the 90 days.</comment>


The end of the establishment? - <AUTHOR> http://www.baltimoresun.com/news/opinion/bal-the-end-of-the-establishment-20160223-story.html <comment><USER2> This sort of analysis is helpful and needed. Explanations like "everyone is stupid" don't get you anywhere.

The article doesn't say it explicitly, choosing to hint at it instead, but I think a big part of the popular revolt against big, remote establishments everywhere (also see: Brexit referendum polling) is that these institutions have normally made little or no effort to self police, or demonstrate any kind of ability to self discipline or self reform. The past 15 years especially have seen a more or less constant stream of scandals where people at the top of societies power structures very clearly acted badly or even broke laws, yet nobody was ever held to account ... except those who tried to reveal the wrongdoing. The track record of the elite enforcing the same rules against themselves that they enforce against everyone else is utterly miserable.

This is not a US specific thing. It can be seen to a lesser extent in other parts of the world too. One of the biggest arguments for the UK leaving the EU is that the EU has become a vast bureaucracy that is remote, bloated, undemocratic, disconnected from the people etc. The tone-deafness was made clear when the EU demanded yet another budget rise despite the fact that the member states were _all_ trying to cut their own deficits, often by freezing public sector wages or simply laying people off.

Now mix this in with the partitioning of American society into ever more clearly distinct political tribes and it's not surprising that people who have a message of "We are outsiders just like you who won't hesitate to really shake things up" are getting so much traction. A big part of Obama's original appeal was his entirely unrealised promise to try and reform Washington. Unfortunately he lost interest in that once elected. Not that he could really have fixed anything anyway: the mismatch between emphasis on the US President and how much power they actually have is kind of ridiculous.

<comment><USER3> >The past 15 years especially have seen a more or less constant stream of scandals where people at the top of societies power structures very clearly acted badly or even broke laws, yet nobody was ever held to account ... except those who tried to reveal the wrongdoing.

I find this argument baffling when applied to the EU.

Most of the scandals were in the banking and finance industries, not - say - the EU parliament.

The Greek debacle, which was probably the biggest failure of the EU since its creation, was _created_ by the EU's banking and finance industries.

Perhaps it's the industry that's the problem, and not Europe itself?

Not that the EU isn't remote, but it's not so remote that it has no interest in promoting standards of human rights legislation.

By a remarkable coincidence, a key foundation of Brexit is the dismissal of the EU's requirement to treat workers in a civilised manner as "Brussels red tape".

As for Trump - the idea that you can dethrone an Establishment run by and for narcissistic billionaires by electing another narcissistic billionaire seems entirely fantastic.

If Trump is elected, the US establishment will be happy to do business with him, as usual.

Sanders may be a tougher nut to crack, which is why he can't be allowed to win - and why the idea that these candidates "challenge the Establishment" is nonsense, when no Establishment policy is under any serious threat in this election. (Or any other.)

<comment><USER4> > The Greek debacle was created by the EU's banking and finance industries.

No, it was created by the EU who bailed out the banks, paying them money and forcing the loss on the taxpayers.

> Most of the scandals were in the banking and finance industries, not - say - > the EU parliament.

The EU parliament is a scandal in and of itself - "let's waste some money and have _two_ parliament buildings in _two_ cities!"

<comment><USER5> >No, it was created by the EU who bailed out the banks

No, it was caused by the Greeks living beyond their means.

<comment><USER6> You can't live beyond your means without help from a complicit financial body enabling you to do it

<comment><USER7> Of course you can. This is what sovereign bonds are for.

<comment><USER8> In which case the financial body is whoever is buying the bonds.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> The rise of outsiders likely has been helped by the rise in inequality not so much between whites and non whites but between poor and the non poor combined with the tonedeafness of major candidates who tend to lump poor whites with "rich white men" and an emphasis on men.

White police officers are the devil and by extension poor whites are the devil [but we see that non white officers engage in similar behavior] The notion that all Hispanics have Mexican ancestry and all want to be addressed in Spanish or that all blacks identify with Sharpton politics.

People call Trump a populist and at times racist, they have said the same thing of Sanders not so much for what he says but because of who follows his candidacy [the demographics].

It looks like there are people who are rebelling against some of the divisiveness of identify politics and misguidedly people are labeling these people pejoratively as being a certain kind of people [racists, misogynists, xenophobes, uneducated, poor, etc.] when most likely they are simply rebelling against traditional politics where they have been simply useful but not tended to.

For establishment candidates it'll be tough to balance efforts to underscore minorities in a major way without excluding or at the expense of browbeating majorities because unfortunately they are assuming a zero sum game even while saying otherwise.

<comment><USER10> Ask yourself, when was the last time you heard a politician or business leader mention the problems of European American "white" communities?

When was the last time you watched a story on Television about the European American poverty and economic dislocation in the US?

When was the last time the President or an elected official campaigning for European American Scholarships, loan assistance programs or European American organizations?

They use to call the middle class the silent majority. There was an unspoken agreement between the Politicians the Media and the Middle Class that everyone was working for the good of the people, all the people including European Americans.

But I think the last 15 years have shown conclusively in the eyes of the silent majority that agreement has been torn up and thrown in the bin. And the Media the Politicians and there Billionaire pay masters have turned quite dramatically against the good of the European Americans working and middle classes.

So they will not be silent anymore. They will make there demands and organise and vote according to who best serves there interests. There is no amount of Media spinning demonization and appeals to white guilt that is going to put European Americans back in there nice little box. The Billionaires killed that golden goose that was the silent majority now they will have to deal with the consequences.

<comment><USER11> > Ask yourself, when was the last time you heard a politician or business > leader mention the problems of European American "white" communities?

Hillary Clinton, in one of the early Democratic primary debates.

It was an amazing display of skill. Clinton was asked by a black member of the audience how she, as a white woman president, would improve the lives of black Americans. She somehow turned the question around, and by the end of her answer, she was talking about a recent study on the declining health of poor whites and how she would help them.

And the audience actually applauded! Nobody there -- either black or white -- seemed to notice how artfully she dodged the question and presented one of her limitations as an apparent strength. I was floored.

<comment><USER10> It just goes to show that they will play any side of the fence in order to de- legitimize organic attempt at self representation as selfish, frivolous and not needed.

Its along the lines of, oh you think your poor? Well, theses people over here are much poorer then you. You should not complain and be happy with what you have because it can be much worse!

</comment></comment></comment></comment><comment><USER12> If watched trough historical prism - if 2007 was 1929 - we are at 32-33 now probably.

If you looked into the world back then - there was great revolting against establishment too - no matter the ideology (or actions) in any country during the great depression - they were exchanged for someone else.

The ruling class has 2 responsibilities - economic growth and redistribution and security. They must keep reasonably safe and deliver enough to the people to not starve.[1]

The post 9/11 media frenzy made people feeling permanently insecure - this is something no government can win now. The US now has 2 economies that are lumped together for statistical purposes. The one of them is doing just fine. But its recovery masks the plight of the great unwashed that all the rest of us are.

The people feel the desire to burn the system. Nothing strange with that. Anyway - if the presidential election is Bernie vs Not Trump or Hilary vs Trump - you can completely write off the establishment candidate. Since the voters behind Bernie and Trump seems to hate the current order more than they are loyal to their own party.

The bullying against BS supporters to vote for Hilary in case of her winning the nomination is telling.

[1] Safety and not starving have different meanings depending on society, culture and past experience.

<comment><USER13> I like the assertion that the US has 2 economies that are lumped together for statistical purposes.

I would imagine there should be some supporting artifacts of this in various reports. Where would one look to see data to support this (two clustered groups experience the world significantly differently).

I would imagine that publicizing this data would help people validate their concerns that no, things aren't going as well as I've been told.

<comment><USER14> I don't think it's the dividing line used in the parent comment to yours, but one interesting dividing line is people employed full time with benefits vs everyone else.

Maybe a slightly better line would be based on US GDP. Per capita it is ~$53,000, capturing a share of the economy larger than that can reasonably be described as doing ok (of course the line would be different for a household than an individual).

<comment><USER15> I think a lot of full time workers can still be wage slaves.

Maybe a living wage is a better benchmark. The minimum required to "thrive" with a normal list of opportunities/choices that people can be expected to encounter. E.g., car required if not living in high-density urban environment, raising children, having pets, buying simple furniture, healthy food, internet access, life and house/rental insurance etc. It's all about access to thriving, not access to luxury, and in each place and circumstance that access is different, but living wages can be indexed to all these factors. The more factors included to counter the various axes of oppression the better.

For example, in Canada we have the Canadian Centre for Policy alternatives which publishes living wage data/indexes every year for a number of cities.

A few years back I helped cofound a programming and design worker co-op with a handful of other people and we discussed using such an index to determine salaries for members in different cities. E.g. if the Montreal team gets 4x the local living wage, then the Vancouver team also gets 4x their local living wage, even if the absolute amount appears higher.

<comment><USER14> I think that is another interesting earning level to look at, but what if the living wage exceeds the per capita GDP (or GDP/work force if you want to better account for children)?

</comment></comment></comment></comment></comment><comment><USER16> There is a major error in the linked article which is claiming its the end of the establishment rather than just another turn of the cyclical wheel. Also it carefully avoids recent history.

On the R side I'm one of the guys who was kicked out by the neocons for not being a bond villain warmonger or televangelist wannabe. The neos were the establishment for a couple decades, and now the wheel turns and we're going back to "real" republicans again and kicking out the neos. I'm pretty happy Trump voter, but I'm really an anti-Jeb voter or anti-Rubio voter. Is Trump the best real republican out there? Probably not, but he's the first in the limelight of this new cycle.

On the D side their party kicked out all the hippies and replaced them with Wall Street shills. At least in leadership positions. The R purged their entire party whereas the D has always had hippies, just no longer in leadership. Again they're not eliminating the concept of an establishment, they're just kicking the wall street shills out and putting the hippies back in charge. Again, is Sanders the best hippie out there? Probably not, but he's the first in the limelight of this new cycle.

If I can't vote for Trump I'll vote for Sanders. I trust an honest enemy more than I trust my own parties former leaders. I don't think this is an unusual outlook, either. If, oh who am I kidding, when, Hillary screws Sanders out of the nomination, Trump should pick Sanders as veep, that would be epic.

The interesting part is the synchronization across party lines. Both parties having a coup at the same time? Well, the rank and file have more in common with each other than they do with their former leadership, so...

Other than those minor issues its a very good article.

<comment><USER17> Naturally Sanders would not accept veep, they're class enemies.

I also don't accept that Sander's left populism is in the same category as Trumps' fake right populism. As another commenter stated quite well above, Trump is establishment. You can't get more establishment than a real estate tycoon who got rich from daddy's money. It's the same thing as the Bush family, just more crude.

</comment></comment><comment><USER18> Trump = Establishment. He built his business working with and as part of a business and political system that is very much pay to play, and he acknowledges this. People are confusing political rhetoric with cold hard reality. The three likely outcomes of a Trump Presidency:

(1) He plays along - most likely. (2) Continued gridlock. (3) He spends four years trying to steamroll Congress by vilifying his opponents, scapegoating and executive order abuse - causing a political and constitutional crisis with vague similarities to 1938 Germany.

I'm ambivalent about all the candidates, just mainly concerned about demagoguery at time of economic and social upheaval.

<comment><USER19> > (1) He plays along - most likely. (2) Continued gridlock. (3) He spends four > years trying to steamroll Congress by vilifying his opponents, scapegoating > and executive order abuse

And how would that be any different from the last 7 years? The only real difference I can see is the side the press will be on.

The thought process that this is a new thing is ignoring the last couple of election cycles.

<comment><USER18> Correct. Just as the founders intended... slow, gradual changes.

</comment></comment></comment><comment><USER20> I read the article, all the comments, and I don't think that everybody really discusses elephant in the room here.

US politics is no longer country politics — it's more of an important part of world politics than an isolated thing. Just the same, US economy is more of a part of world economy. The article quotes "taxes on the rich" going down, but it omits the main reason: "taxes on the rich" are really taxes on capital (which includes not only billionaires, but individual investments of hundreds of millions people), and the capital is mobile now. If the US wouldn't lower capital taxes, the capital would just flow away. Same principle works for US blue-collar workers: sorry guys, but you're competing with workers from India and China now. And, to be honest, on a humanity level, it feels completely fair that your wages going a little down while theirs go up, tremendously. Same is true for financial elite: US financial elite is no longer financial elite of one country, but financial elite of the entire world.

And, of course, same is also true for US presidential elections. Of course, only US citizens can vote in it. But the political establishment itself is already slowly morphing to being a part of international political class rather then being tied to a specific country: it's especially apparent when you look at various NGOs, think tanks, funds and other similar organizations. And both Sanders and Trump are perfectly logical candidates in this context. They may be radicals on US political arena, but in a broader, worldwide political spectrum they don't feel out of place one bit. (Which is pretty ironic when you consider how isolationist both of them are).

So, the whole world is looking at this US election cycle, but if you're part of US, the whole thing will make much more sense if you take a break from the spectacle and look around.

<comment><USER21> > on a humanity level, it feels completely fair that your wages going a little > down while theirs go up, tremendously

It's not just "wages going a little down," it's more like the entire economic fabric of large areas of the country has been disrupted by globalization and has been slow to recover.

</comment></comment><comment><USER22> Scott Adams, maker of Dilbert, wrote something similar. He was calling it the "second American revolution". He threw out some radical, somewhat silly, but interesting ideas about it.

[http://blog.dilbert.com/post/138023808851/the-second- america...](http://blog.dilbert.com/post/138023808851/the-second-american- revolution-what-then)

<comment><USER23> Arguably, the Jacksonian era was the "second American revolution," and the Confederate rebellion the third, retrograde and thankfully failed one.

I think today's political climate is more similar to the 1930s, when widespread disaffection led to adherence to all sorts of populist movements and figures, from the Grange to the Wobblies, Huey Long (Trump's closest antecedent) to Father Coughlin (whose modern echo is perhaps Ted Cruz), and into dangerous fringe groups like the Klan and the Bund.

What is concerning now is that the centrifugal tendencies are accelerating in our government, leading to self-sustaining structural dysfunctions that will prompt further contempt for the government and lead to a greater desire for a "man on horseback" figure to set things right. Trump, I fear, is just the beginning.

</comment></comment><comment><USER24> What "end of the establishment?". The US's Gini coefficient, a measure of economic inequality, is near its highest level since 1929. When it drops below the all-time low of 1973, we'll talk about the "end of the establishment." In the 1960s, there were about 60 lobbyists in Washington. Now, there are over 20,000.

All that's happened so far is that, at last, the "establishment" message isn't selling. Occupy won the battle for the message, by focusing attention on "the 1%". That hasn't translated into action. We're not seeing pro-labor legislation getting through Congress. We're not even seeing aggressive enforcement of existing minimum wage and overtime laws. We're not seeing employers going to jail on a regular basis for wage theft or violating immigration law.

All that's happened is that the GOP has managed to shoot itself in the foot. Again. Face it, all the Republican presidential candidates are worse than Bush Sr, or Eisenhower, or Reagan. It's embarrassing. This is the legacy of being "the party of No" in Congress - there's nobody with a track record of accomplishing much.

Not sure what to make of Trump. He's the first national level demagogue the US has had in many decades.

<comment><USER25> My take on Trump is that he _IS_ the face of nearly 1/2 of the GOP's supporters at this time. He isn't saying anything other candidates haven't said, or at least winked about. AKA years of angry incoherent propaganda means the candidate with the most angry incoherent message will win. If the reasoned intelligent members of the party refused to refute the garbage from Faux new's (and other) pundits then they shouldn't be surprised at the outcome.

</comment></comment><comment><USER26> The establishment won't give up power without a fight. There may be a second "Business Plot": [https://en.wikipedia.org/wiki/Business_Plot](https://en.wikipedia.org/wiki/Business_Plot)

</comment><comment><USER27> How incredibly naive is it to believe that both Sanders and Trump aren't just as part of the "establishment" as the others. They are bones thrown at the increasingly discontent left and right fringes.

On the off-chance either of them would be elected, nothing would change as far as the "establishment" is concerned.

Remember how Obama was the candidate of "hope and change"?

<comment><USER9> One big difference is that neither is beholden to donors or "the party" machinery. They are more viable because other candidates are choosing to do retail politics in that they campaign by polls whereas these alternatives are irreverent of polls and have platform of addressing what they believe are ignored swaths of the public.

<comment><USER28> Until Sanders' retail politics gets him a majority of Congress, he's not going to do much of anything as president.</comment></comment></comment>


I think I've solved the Haskell records problem - nikita-volkov http://nikita-volkov.github.io/record/ <comment><AUTHOR> For the uninitiated, this solves a major (major!!) pain in the Haskell community: the lack of namespacing. If you declare two records with an 'id' field in the same module, you would get conflicts. People have been either using prefixing (fooId and barId) or splitting up modules to solve this problem, which can both considered to be ugly hacks.

I am so glad the author has been able to pull this off, and it is one of those "why didnt anybody think of this before, it is so obvious!" moments.

<comment><USER2> Could you expand on what's the scope of the 'record' intrinsic? Is it used for as many things as Python's `dict`? I sure hope not, otherwise I'm wondering how anyone could have gotten much done in this language before.

<comment><USER3> It sort of makes me wonder how much of the hype around Haskell is overblown, this seems like pretty basic stuff. Haskell has all kinds of interesting properties but the way it is presented is usually as though it is an end-run around just about every problem in other programming languages. A dose of up- front honesty about potential issues would be handy. Are there any other things that are problematic in Haskell that other programmers from lesser languages usually take for granted?

<comment><USER4> I switched from Python and Go to Haskell over the last year. Haskell takes much longer to compile than Go and cabal hell can really suck. Other than that it's been absolutely fantastic.

<comment><USER3> What kind of programs do you write?

<comment><USER5> Not the parent, but I made the same transition a couple of years ago. I emailed you something I've wrote in Haskell that might be relevant to you but didn't want to publicize too much yet.

<comment><USER3> Thank you very much! I'm right now hip deep in Erlang and I very much would like to have a better look at Haskell.

<comment><USER6> Then you'll want to see also Cloud Haskell: [http://haskell- distributed.github.io/](http://haskell-distributed.github.io/)

I'm not sure exactly what its current status is in terms of production- readiness but I believe it is still very active. The GitHub repos seem to be chugging along.

<comment><USER3> Thanks!

<comment><USER7> Not to bombard you with too much at once, but one interesting CloudHaskell- related extension that's landing in GHC 7.10 is Static Pointers: safe references to "static" code (constant values, functions, etc.) that can be passed between running instances of a program.

[https://ocharles.org.uk/blog/guest- posts/2014-12-23-static-p...](https://ocharles.org.uk/blog/guest- posts/2014-12-23-static-pointers.html)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Isn't this solved (or addressed) by OverloadedRecordFields in GHC 7.10?

[https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedReco...](https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields)

[https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedReco...](https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/Design)

<comment><USER9> Sadly, OverloadedRecordFields won't be making it into 7.10.

<comment><USER10> That's a shame, do we know why? is it just not finished being implemented? I found a page[0] that said at some point they had stalled on refactoring something.

[0] [https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedReco...](https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/Implementation#Currentstatus)

<comment><USER9> There's some info here: [http://www.reddit.com/r/haskell/comments/2pnjdk/is_overloade...](http://www.reddit.com/r/haskell/comments/2pnjdk/is_overloadedrecordfields_getting_it_into_7101/).

tl;dr: The patch worked but was messy/overly complex, so it needs refactoring before it's merged.

<comment><USER11> That's a shame and the first I've heard of the delay. For me and the software that I write, this is a must have feature and I was very much looking forward to its release.

</comment></comment></comment></comment></comment><comment><USER12> Nice article.

Could anyone comment on this:

"Haskell syntax parsing needs to be reimplemented in the "record" library"

That sounds like a big, unending task. How hard would it be for this to be implemented as an actual Haskell feature, without quasi-quoting etc.?

<comment><USER13> It'd be a consensus thing more than anything else. I for one am not sure that this is a sufficiently correct feature to implement in language.

But that said, Haskell's LANGUAGE extension system does allow things like this to be easily added to the language in a smooth way.

<comment><USER12> It does look like a pretty clean implementation, I find myself wondering what the downsides are given all the positive comments in the article.

</comment></comment></comment><comment><USER14> It seems to me that most of these issues could be solved at the syntactic level simply by allowing recordval.fieldname syntax. I truly don't understand why Haskell doesn't allow this - anyone have some insight?

<comment><USER15> This has been proposed, and it is still a good idea if one wants to make Haskell accessible to OO programers. It would require the function composition dot to have spaces around it, which is already fairly standard practice.

However, just adding some syntax does not finish solving the problem: one still needs to figure out how to get everything to typecheck under all use cases (and all type extensions) and also to operate efficiently at runtime. This article does that (although it isn't actually explained that well in the article).

<comment><USER16> The . already has whitespace-sensitive use for namespacing in Haskell, for example `Data.List.concat` is parsed differently from `Data . List . concat`

</comment></comment></comment><comment><USER17> And I thought lenses were the canonical solution by now?

EDIT: Reading the article a second time enlightened me.

</comment><comment><USER18> What's a "quasi-quoter?"

<comment> a-saleh It is a way to create embedded DSLs in haskell.

If I understand correctly, when haskell compiler sees [foo|some dsl language inside|] it knows, that it should use parser asigned to foo on string inside of quasi-quotes.

Long time ago, I tried learning this using this tutorial [http://quasimal.com/posts/2012-05-25-quasitext-and- quasiquot...](http://quasimal.com/posts/2012-05-25-quasitext-and- quasiquoting.html)

</comment></comment><comment><USER19> String typing to the rescue!

<comment><USER17> Isn't this closer to `string-kinding'?

<comment><USER19> Mhyes, it appears that I misunderstood the precise mechanism of this lib.

I don't know how to feel about the use of template Haskell in this lib (beyond the fact that it seems like it works great and avoids the curse of the weird error messages). I'm tempted to see it as a proof that, while deconstructive pattern matching is great (I really mean it!), it's nearly impossible to get rid of antediluvian dot accessor syntax/semantics.

Either way I'm too tired and incompetent with Haskell to have a meaningful opinion on that.

</comment></comment></comment><comment><USER20> I think I have a radical idea: use a language which solves this problem by design from the beginning. Much simpler.

<comment> nikita-volkov There is a problem. I know no other language, which manages to have at the same a type system as powerful, abstractions as insightful, as good a support for concurrency and parallel programming, an ecosystem as rich and which performs as well.

Usable records are just an icing on the cake, but it's the cake that matters.

<comment><USER17> Another way to solve this problem, is to allow multiple (nested) modules per file. A bit like OCaml. Then standard Haskell-syntax can already handle everything we need.

<comment><USER13> This would work but run a bit afoul of global instance canonicity.

<comment><USER21> How so? I think they mean as a syntactic feature, not having parameterised modules.

<comment><USER13> What happens if you define an instance inside of a nested module? When does it become available?

<comment><USER22> I'd like to just see a per-project uniqueness check on used instances.</comment></comment></comment></comment></comment></comment></comment>


GitHub Arctic Code Vault - <AUTHOR> https://www.youtube.com/watch?v=fzI9FNjXQ0o <comment><USER2> When mankind is wiped out or whatever it is that may come, and Earth is rediscovered by a new population of intelligent beings, I truly hope upon discovery of the vault, that they do not take my Lisp programming skills as gospel. Some things in history should never be repeated. Full stop. Close bracket.

</comment><comment><USER3> So, if they get a GDPR request to delete information or a take-down notice from a copyright holder (not necessarily the owner of the repository), will they go there and delete the backup?</comment>


Good News for People who Hate Bad News - <AUTHOR> http://calacanis.com/2008/10/28/good-news-for-people-who-hate-bad-news/

<comment><USER2> "Bottom line: there is zero chance of a short or medium term-rebound. Zero."

The price of a security is its expected value, more or less. If the market thinks a security has zero chance of going up, the market must also think it has zero chance of going down.

The possibility of a rebound is priced into this market, and so is the possibility of further decline; the two should balance.

Even in really crazy markets with forced selling due to liquidation, this rule shouldn't get too far out of whack. If a security can only go up, people will buy it until it can go down again. If a security can only go down, people will sell it until it can go up again. If this guy really believes he has privileged info that the market can only go down from here, he should short- sell his way to a risk-free fortune.

But somehow, I doubt that, once this is pointed out to him, he will be anywhere near as confident with a few thousand dollars of his own money, as when he is helpfully advising entrepreneurs about their business strategy for years to come.

<comment><USER3> Thank you for pointing this out.

People's willingness to point out what they know about markets _for certain_, without being willing to actually make the bet, has always amazed me.

The truth is, if someone was 100% certain that the market would not recover from where it is, it's easy to bet on that without committing any capital and you'd even make the money if the market stayed exactly where it is.

I see a quote on Dec 350 GOOG calls at $24. If you feel lucky, write ten contracts and take the $24,000... all you'll need is your broker to trust that you can cover the bet if you're wrong.

It's ok to hedge your language, it's alright to admit you're guessing. The less often you make definitive statements, the less often you'll look like a fool in hindsight. And the less often you make definitive statements that exactly mirror a market position, the less often you'll look like a fool in foresight.

<comment><USER4> "Bottom line: there is zero chance of a short or medium term-rebound. Zero."

I don't see any claim about share prices there. He's talking about economic growth, consumer confidence, investor confidence, etc.

Another way to say what he stated there is: "We're headed for a deep, long recession, and there's zero chance of it miraculously getting better in the short or even medium term."

That's not a statement about share prices, it's a statement about the economy.

Also, how do you know he doesn't have a bunch of shorts on the markets?

<comment><USER3> He does spend a paragraph before that talking about the state of the Dow and a lot later on how companies will manage their earnings, so I went with the parent posters interpretation. But you're right, I could have misinterpreted.

Also, I don't know his trading positions. I just find these statements that are _so_ certain to be mildly irritating, when it's been clear for a while that no one really has a knows what is going on or how to fix it.

<comment><USER4> Granted, but the truth is, no one has any clue what's going on, ever. And yet, "Who the hell knows what will happen?", despite being always truthful, is not really good advice at any time. It doesn't matter what the state of the economy is - no one knows what will happen next.. if they did, they could make some good bets on the stock markets and become rich. All that anyone ever has is opinions.

I think that opinion pieces would get tedious fairly quickly if they were constantly paraphrased with "imho"s...

<comment><USER5> > Granted, but the truth is, no one has any clue what's going on, ever.

Hmmm... that sounds like a pretty absolute statement... is there any way to bet on that ;~)?

<comment><USER6> You can but who can ever prove it.

You have to have absolute knowledge to know if someone else has absolute knowledge. In the end you have to take people's words on things based on their acquired and intuitive knowledge.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Nice-sounding metaphor + leaky abstraction: maybe useful.

2817 words of take-your-breath-away verbosity: useless.

</comment><comment><USER8> Ugh, what is with the subscribers only, but on popular demand farce?

<comment><USER9> A sneaky ploy to gain more subscribers?

</comment></comment><comment><USER10> "I'm retired from blogging and have moved to the comfort of my email newsletter, where 9,400 of my close friends and I have a nice intimate discussion."

I like Calacanis and the things he has to say in his emails, but to say the 9,400 people are his close friends and that he has an intimate discussion with them is just stupid.

He's a blogger using the Cartmanland technique.

<comment><USER6> When blogging, I didn't like the fact that all the feed readers were anonymous. At least with an email list one can see someone's email address and contact them no matter whether they've stopped subscribing or read your emails. Even with Friendfeed subscribers, one can discover quite a lot about a person, and then contact them directly in most cases with a little bit of investigation (like a LinkedIn profile, blog feed or YouTube account that one might explore.)

While the anonymoity and ease of subscribing to RSS gives it appeal to surfers, the former aspect can still be unattractive to writers, especially with lurkers and non-commenters often going above 95% of a blog's traffic, thus the lack of a feedback loop can make blogging unattractive, (poor return on energy, feelings of depletion to others - at least on HN there's mod- points, profiles and the likelihood of replies to encourage hefty postings) and also with advertising or sponsorship unsuitable unless a blog is extremely trafficked or focussed. The difficulty with blogging on FriendFeed is it only allows micro entries. Also, micro-entries can be too interspersed with one's other feeds.

Solution: startup offering key-based RSS urls individualized and presented on a blog site if readers are logged-in to the startup site (or hold a cookie). Also, by revealing a reader identity to an author, the author can at most tailor their writing and find offers or opportunities for readers, and at the least continue blogging. The idea is also useful for bands as they release new material to fans. There can be an option to prevent the display of non-keyed RSS URLs (ie you must be logged in to see the rss URL on a blog page.)

This idea would be useful for a new startup networking site, a tipping site (eg Tipjoy), comment site (ie Disqus), networking site (ie Linkedin, Younoodle, Friendfeed as a way to promote each one's service and make it useful offsite) or a web analytics site.

Alternatively, Google could reveal blog readers to blog authors with information from Reader, provided readers opt-in to the feature and setup a profile, and blog owners claim their blog.

Personally, I may restart blogging if such a service existed, likewise I would also be very happy to use it when subscribing to others. Right now I only blog mainly via linking to HN comments on my Friendfeed.

From experience, I know that anytime I contacted a blog reader whom I had known about, they were generally always helpful for whatever the reason, but many readers just won't contact the author, so it became a guessing game as to who was reading my material. Even in a blog posting if you ask readers to email you, they won't because it's tacit that there's no obligation. So rather than setup a list of 500+ LinkedIn contacts who I barely know, a typical blog (ie an exercise in charity to some extent), I'd rather keep a blog using this startup's feed-identifying tool, and then I can contact and network with those on my reader list if the need arose. This is something Calacanis can do to a greater extent with his list than he could've done with his blog (which incidentally I never was interested in): identify and contact readers who cannot lurk so easily.

</comment></comment><comment><USER11> This is just weak fearmongering by the people who have the most to gain from it. I'm actually glad about the drama, as it means that less of the cheap money will be coming into the software space, giving those who care about real products time to polish, rather than having to release as soon as possible because of the sheer amount of competition.

</comment><comment><USER12> I like the album that Modest Mouse album quite a bit...

OK for Modest Mouse it is actually, "Good New for People who Love Bad News"

[http://www.amazon.com/Good-News-People-Who- Love/dp/B0001M7P7...](http://www.amazon.com/Good-News-People-Who- Love/dp/B0001M7P78)

</comment><comment><USER13> Thumbs up for the Modest Mouse reference.

I realize the actual line is "people who love bad news" but close enough to make me smile.

<comment><USER14> Yeah, but by switching around the words, he makes you wonder if he understood why the original album title was clever.

When you first heard the Modest Mouse album name, it begged a question: what's good news for people who love bad news, anyway? Bad news? Good news? Bad news that's good news? It was a clever bit of wordplay.

<comment><USER15> 1) It didn't beg the question.

2) Bad news, obviously. For people who like bad news, good news is bad news. You just need to avoid the assumption that the phrase "good news" means the same thing at different levels of abstraction.

</comment></comment></comment><comment><USER16> Dupe (sort of): <http://news.ycombinator.com/item?id=345463>

</comment><comment><USER17> yeah I think a blog without comments wouldve served his mission better, but this option includes a list to spam later

</comment><comment><USER18> it's a good read.

i don't think the meltdown is going to be QUITE as bad as he insists. must be that entrepreneural bias...

<comment><USER19> [http://www.nytimes.com/interactive/2008/10/11/business/20081...](http://www.nytimes.com/interactive/2008/10/11/business/20081011_BEAR_MARKETS.html?hp)

</comment></comment><comment><USER20> _The severity of what has happened can't be underestimated... What you do in the next 30 days will probably make or break your company. The storm is upon us and the death spiral has started._

Oh shit - I'm just gonna jump off a bridge then, Jason. What's the point of living?</comment>


Everyone should get a Dashcam - <AUTHOR> https://www.hanselman.com/blog/EveryoneShouldGetADashcam.aspx <comment><USER2> I'd love a recorder that connected to all the existing OEM cameras that are already installed on my car. Does anyone make such a thing?</comment>