Kickstarter, Trademarks and Lies - <AUTHOR> http://arduino.cc/blog/2012/11/26/kickstarter-trademarks-and-lies <comment><USER2> I love kickstarter, I really do. There's a lot of issues with the way capital is currently generated that puts the small guy at a disadvantage.

However, I really think the kickstarter team needs to take a closer look at how things are going today. This is but one example. Out of the many kickstarters I've contributed to, only one has shipped and only one more appears to have had any progress in the past 6 months. My friends have had very similar experiences and all of us have said we probably won't be contributing as much for a while. It kind of ruins the idea if a very large percentage of the projects fail or are halted (e.g. trademark disputes).

<comment><USER3> If you consider Kickstarter projects as startups, then a 10% success rate is ok. Is something like am 80% success rate for kickstarter projects desirable? They probably would have to implement much higher barriers for applicants then.

<comment><USER4> But Kickstarters aren't startups. This is specifically an avenue for lower- capital, lower-risk businesses to get the money they need to deliver products.

If you're an angel or VC, the low success rate is countered by the large upside - a Kickstarter _has_ no upside besides the cool t-shirt/game/gadget you were promised. The risk needs to be commensurate with that.

<comment><USER5> So basically, a lemon market. When I see for example a kickstarter game that has a $20 price tag for a pre-order "donation" that seems like reasonable value.

If however the delivery rate is only 1/10 then that game actually costs me $200 (since I probably need to fund 10 games in order to get one I can play).

Therefor if I only want to pay $20 for a game, I shouldn't pay more than $2 for a pre-order.

The result of this is that genuine projects who stand a good chance of delivering have to grossly undercharge for pre-orders which starves them of the level of funding that they actually need.

<comment><USER6> When funding something, you should consider its likelihood of succeeding and its value to you.

If its value is around the price you're funding it at or slightly higher, then you should only fund things which have a high chance of success; from a proven team, that has shipped plenty of products before. For instance, a band that you like that's released several albums and is raising money for a new one, a studio that is developing a new game based on an existing engine, and so on.

If it's a riskier campaign, like development of a new hardware product from a new company that has never shipped anything before, or an artist's first album, or some amazing new game with an amazing new engine that has all kinds of really neat features, with a game designer you like but a rookie team, then you should only fund it if it has significantly more value to you than what you are funding. Maybe you just think it's such a good idea, that even trying and failing and learning from that is worth the money you spend. Or maybe you think that it is a game worth $200; it's such a perfect game for you, that you would be willing to shell out $200 for it, or the equivalent, fund 10 such games for $20 and get one working game out of it. Or maybe you're just a big fan of the person you are funding, and don't mind giving them $20 even if you think they might not complete the project.

So yes, you should be aware of the risks when funding something; that's why it's funding, and not buying a completed product. You should decide if what you're going to get is worth the risk. Far too many people seem to see Kickstarter as a pre-order system, where the product is basically ready but they want funding to determine how large to make the first batch and fund just the final manufacture. Maybe people think that because it does act that way for some products; but you really should not expect it to work that way for all products.

If Kickstarter limited themselves to the pre-order model, that would vastly limit the kinds of things it would be good for. You seem to want only pre- orders, not to fund development, so maybe that would work for you. But some people want to be able to fund riskier, more wild ideas, and accept that risk. I think that they should be able to; the only trick is that there seems to be a good deal of confusion on the part of funders as to which projects are which type; people don't seem to be very good at judging the risks involved when funding a project.

<comment><USER5> The reason I use the lemon market analogy is that it is not always clear to the buyer what the level of risk is. Sure there are certain signals which indicate lower risk but I don't think there is yet enough data on completed projects to confirm this absolutely.

Some buyers are also savvier than others, for example is it riskier to fund an indie platformer or an arduino replacement? A HN reader might be able to guess but the general consumer might well have no idea.

There are also other factors, like might this fail because there isn't enough funding? or might this fail because it is just an outright scam?

So basically what we have is information asymmetry which will lead a lot of people to assume some mean level of risk in funding a project so the required value payoff will be higher than something bought off the shelf, what the "value coffecient" will be will take time to discover though.

The point is valid though that for example a game which I would love but would never be funded by a game studio might be worth $200 for me.

<comment><USER6> "...buyers..."

"...consumer..."

This is the problem. If people are thinking of themselves as consumers, rather than investors, then yes, you have a problem. This is why Kickstarter changed their rules on physical products, to not allow people to buy multiple quantities of something, in order to discourage people from treating it like a pre-order system.

Yeah, there's a certain amount of information asymmetry. I'm not sure you can ever do away with that, without killing the idea of crowdfunding entirely. If you require legal filings and financial disclosures and the like, all of a sudden you can't do it for small projects, you need to hire lawyers and accountants and things like that.

The best way to solve this is to convince people only to crowdfund people that they really trust. Don't look at an idea and say "hey, that's cool, I'll buy one of those." Look at the creator and say "this person can deliver, I'll give them some money to do so."

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I'm the author of the blog post. The objective of the post is to ask Kickstarter to provide a more direct way to report either trademark violations or lies (like this guy claiming to be a former manufacturer of Arduino) that might affect the people who fund a project.

<comment><USER8> If the point of the blog post was to get Kickstarter to change their policy then it was very poorly written. It read like a hit piece on Smartduino.

I'm a backer of the project and have been following it closely. You don't seem to want to get to the bottom of this so much as yell from a soapbox. Calling a guy and asking 'have you ever heard of this guy?' isn't really enough research for the accusation you made.

When you found out that he _does_ have people on his team who were on the Arduino manufacturing team you still call him a liar. When he claims to have order invoices from your company and asks for your permission to make them public, he hears nothing.

There's a bit more nuance here than you presented, so how about you two get in to a substantive discussion before you hurl any more volleys over the wall at a guy who, though you disagree with, is making a quality product advancing your platform, and who has been trying to talk to you about this?

<comment><USER9> Having just read the post and most of the comments, this seems to about sum it up. The post barely sneaks in an ask for community opinion on Kickstarter's communication policy while focusing on casting aspersions on the project's validity (including some amazingly shameless "asides" about the founder's reputation). Now the lawyers have come out and it's just getting further and further from useful discussion, if that was truly the original point.

It must be said - bitch all you want about the claim that these guys manufactured Arduino, but on nuance, it appears supportable. When team members who built something (or worked on it to a significant extent) move on, the work they did previously is in their portfolio whether you like it or not. This practice is standard in other industries, too, especially marketing. And of course, the obvious: if, as is claimed in the post, Arduino is afraid of damage to the brand, why not complain about all the other BLAHduinos out there?

This makes Arduino look bad, and if the founders of the contentious project are actually shady, they are loving the cred this reaction will earn them.

</comment></comment></comment><comment><USER10> Crossposting my comment from the blog post here, because the Arduino servers are apparently under heavy load, and most people will TLDR the post and just look at the comments here.

</comment><comment>

Hi All,

I recently launched a Kickstarter project as well, that ended about a month and a half ago: [http://www.kickstarter.com/projects/18182218/freesoc-and- fre...](http://www.kickstarter.com/projects/18182218/freesoc-and-freesoc-mini)

Dimitri, the creator of the smARtDUINO project got in touch with me a few weeks ago to collaborate on creating a smARtBUS adaptor for our platform.

We've exchanged over 40 emails since then, and my impression is that he's an earnest, upstanding man, who really cares a lot about the electronics community and making it easier and less expensive for people to do creative things.

We had a discussion about Kickstarter in particular, and one of the things he mentioned to me in our conversation was that he felt his campaign placed too much emphasis on the "Arduinoness" of the project, and not enough emphasis on the true innovation, which is the smARtBUS interconnect system.

We discussed the perils of successfully marketing a Kickstarter project, and said in retrospect, "If we communicate better the project, I have no idea were we can be now that it should be clear this is not just another Arduino." (this was about a week ago, near the end of his campaign.)

I think if you can honestly blame him for anything, it's not effectively conveying the message of the product in an concise way. If his workers were indeed manufacturing Arduino in Italy, there's nothing wrong with claiming it. I'll admit that the claim might look deceptively grand at first glance, but my intuition tells me this has more to do with Dimitri's English ability, rather than a malevolent attempt at hijacking the Arduino brand.

<comment><USER11> The issue is the owner of the trademark "arduino" wants the wording changed on the project to avoid confusion. If this is a simple misunderstanding why is the project owner being unresponsive? I am sure the project owner's contact info is up to date with Kickstarter since he is expecting a +$150k wire transfer from them.

<comment><USER10> He's been very responsive. Look at the blog post comments.

Also, to clear up a misconception, Kickstarter doesn't pay the project creators, Amazon does. It pays the creator individually for each backer, and then money is transferred to Kickstarter from the Creator's payment account.

So the individual backers pay the Creator, the Creator pays Kickstarter. But it all happens automatically.

</comment></comment></comment><comment><USER12> Woah, wait a minute? Someone contacts Kickstarter and alleges that a paying customer of theirs is using the Kickstarter platform to violate the law and Kickstarter's only response is to contact the customer directly? This has to be some kind of joke, right?

<comment><USER13> In the ISP space, that's pretty common. In fact, with things like the DMCA, that's codified into law.

Really, you don't want some private company acting like a judge here. We don't have the legal knowledge or interest.

Your choice here, essentially is "Shut down everyone who gets a complaint" or "try to be the judge" (e.g. only shut them down if the complaint isn't obviously bogus) or 'forward the complaint on and let them deal with it'

There are a lot of reasons why you, the customer, would want #3.

<comment><USER14> _In the ISP space, that's pretty common._

ISPs are data conduits and we don't expect them to police everything.

 _In fact, with things like the DMCA, that's codified into law._

Content processors like YouTube have already been shown to have an obligation to support take-down requests from IP holders.

In this case, Kickstarter got the equivalent of a polite take-down request from Arduino and they said, "nah".

While I see the common carrier strategy they're pursuing, I don't think that it makes sense in the long run. It will crumble like a house of cards when the first team of lawyers takes a whack at it for serious infringement.

Worse yet, by that time Kickstarter's reputation for protecting the interests of backers will likely be irrevocably damaged, thus destroying their business model anyway.

Throw in some competitors to their business model who add in some sense of protecting the interests of backers and Kickstarter will end up being the Myspace of crowd funding sites.

<comment><USER15> > Content processors like YouTube have already been shown to have an > obligation to support take-down requests from IP holders.

An obligation in-so-far as the DMCA is enforced. YouTube might be doing additional things as a company, but they aren't required by any law I know of. Maybe it's an agreement with IP holders, but it's not a law.

> Kickstarter got the equivalent of a polite take-down request from Arduino > and they said,

That isn't the same thing as a DMCA take-down request.

> It will crumble like a house of cards when the first team of lawyers takes a > whack at it for serious infringement.

The DMCA protects them. Their is no indication they received a DMCA request.

</comment></comment></comment></comment><comment><USER16> Well I fell for it. I thought the smARtDUINO was from the official team.

<comment><USER17> Did you read the FAQ?

</comment></comment><comment><USER18> There is much that anyone can say about Kickstarter.

The problem is that all this discussion started from much different topic.

Here we are talking about someone, Massimo Banzi from Team Arduino, that wrote on the public blog of Arduino, which have for sure hundreds of thousands followers, if not more, that a company doesn't exist and that another person, stated with first and last name, was claiming something that he didn't.

Reading the Kickstarter page, including the bio, the faqs, the comments and the huge quantity of updates, can see very easily that this person always made very clear he's living in China so, why publish something so unfaithful?

When then it came out that the problem was on the table since October 29th, few hours after the launch of the Kickstarter project, why wait almost one month to complain.

The registration certificate went public so, the company exists and this is proven. Nobody heard about any apologize for the false statements.

The only think Massimo Banzi tried to do, here as well, was to try to change the topic.

The question is: is it right that the owner of a so popular blog write false statements, but when become clear to everybody that he was wrong, he try to change topic, instead issue the owed apologize?

This remember me when Steve Jobs (R.I.P.) is supposed he stated: "there is nothing wrong with iPhone 4, they are holding it not properly".

Massimo Banzi is for sure member of a group of very clever peoples that created such a good thing like Arduino, but he doesn't have the right to attribute to others the false and pretend that nothing happen here.

</comment><comment><USER8> (my comment on the Arduino blog, cross-posted here)

Massimo, you asked the Arduino community for comments, so here's mine.

It's obvious that Dimitri isn't trying to do you or Arduino harm. Did he over- represent his team's association with Arduino? Perhaps, though not to the degree that you claim, and your repeated accusations that he's a liar go over the top.

While you've made it very clear you don't like the term 'Smartduino' this is a slope that Arduino has navigated before, trying to find the happy medium between building an open platform and community of developers and manufacturers and protecting your own intellectual property.

Regardless of where Smartduino falls on that line it clearly doesn't fall very far away from it. So again, whether Dimitri is right or wrong he certainly doesn't deserve the lambasting bordering on libel that you're dishing on him.

For someone who has such a leadership role in the Arduino community, your actions today have done a very poor job of promoting it. At the heart of the Arduino movement is the idea that hardware development doesn't have to be about huge companies that build walls around their IP with lawyers manning the battlements.

This is how THEY solve their conflicts. This is not how WE solve our conflicts.

Got issues with how the Smartduino project represents itself? Talk to them. Work with them. Don't try to whip us into a frenzy of torches and pitchforks because every single person in this community is trying to expand it and move it forward, a sentiment I see throughout these comments, but not in your own words, where I would most expect to see them.

</comment><comment><USER19> While this "smARtDUINO" (lame!) copycat behaviour is indeed appalling, the alternative can be a real hassle, too. Trademarks and copyrights deserve protection, but as YouTube has shown, DCMA abuse can halt projects just as well.

Perhaps they could implement a 'Flag' system, that allows IP owners to signal illegal use/infringement, after which a review (in which both the complainer and the starter should be involved) can decide whether or not the project can proceed. This could easily sail into DCMA hell or lawyer heaven if a big corporation feels threatened, which could file complaint after complaint just to stall the competition.

But where do you draw the line?

<comment><USER20> Why is it lame/appalling? I've read the comments on the blog post and apparently the "duino" name isn't trademarked, and therefore they are quite within their right to use a variation of it (however lame it may appear).

Further commentary reveals that the people who have backed this guy are happy that he is the real deal, and that the problem has mostly stemmed from English being his second language, leading to a mis-communication over quite what part they had in manufacturing arduinos in Italy.

<comment><USER21> No. A goods/services provider has "common" trademark protection in the US even if without a registered mark, so this usage is not "within their right."

[http://tcattorney.typepad.com/ip/2008/06/what-are- common.htm...](http://tcattorney.typepad.com/ip/2008/06/what-are-common.html)

<comment><USER8> Relevant, from Arduino's FAQ: "Note that while we don't attempt to restrict uses of the "duino" suffix, its use causes the Italians on the team to cringe (apparently it sounds terrible); you might want to avoid it."

<http://arduino.cc/en/Main/FAQ>

</comment></comment></comment></comment><comment><USER22> While I understand the desire for Kickstarter to police this kind of thing, the burden ultimately sits with the owner of the trademark being infringed upon to pursue legal action or risk losing the trademark. Frankly I'm a little surprised at the response here on HN given that Kickstarter is an early stage company with limited resources. Why should they focus on something where there are already laws in place and avenues to pursue infringement? Who's to say they should be the arbiter on what constitutes infringement?

</comment><comment><USER23> It would be nice if anyone speculating on Kickstarter's legal obligations laid out their own credentials.

Because _just maybe_ Kickstarter has already considered the legal, logistic and ethical aspects of their own business, and _possibly_ even consulted with lawyers and other experts.

<comment><USER24> As a corporate IP lawyer, I can say I have to agree. Kickstarter was probably told (rightly so, in fact) to stay out of the legal disputes, and tell projects/trademark owners to sort it out amongst themselves. IE follow valid court orders that tell them to do things, but otherwise, don't participate in these types of dispute.

This will likely get them sued eventually for not doing anything, but this probably won't happen until later in life (if Google, Yahoo, Facebook, etc, are any benchmark). So far Google's had a good record, at least in the US, of not having liability, trademark wise.

On the other hand, if they actually start to take down projects or otherwise deal with trademark disputes, they bring all sorts of possible liability onto themselves. Plus the hassle of trying to verify trademark claims, and effectively being asked to judge whether the usage of a given trademark is infringement. All bad ideas to be involved in. There is literally no upside for them.

Worse, despite nice TOSen that disclaim liability for everything under the sun, you can't always remove all liability. It's like grocery store parking lots that have large signs saying "not responsible for lost or stolen possessions left in cars". This is done because in a lot of places, they are actually legally responsible, and they are just trying to get people to stop suing them all the time.

The trust and responsibility aspects are certainly a significant concern, but this has little to do with whether they should get involved in the business of disputes between projects and trademark owners. Heck, if you wanted to encourage "authorized" projects, you could even have some nice logo display program where verified sponsorship means you get to display some logo, and it only shows up on those kinds of projects. Or you establish some sort of "trustrank" scoring or whatever where relationship with trademark holder or IP holder is a scoring factor.

Whatever the solution, there are plenty of ways to incentivize good behavior and happier trademark holders without making yourself an arbitrator.

</comment></comment><comment><USER25> Reading through some of the comments is interesting in that my experience with Kickstarter seems to have been --so far-- nearly polar opposites to that of others.

I have almost exclusively backed technology projects. Out of those, not one of them has failed to deliver. And, not one of them has delivered on time. Out of all the projects I have supported only one has ended-up in the trash can. However, that was not because the widget was not executed well or it was junk. It was simply a case of my idea of the utility of this gizmo failing to align with reality once I got it. No issues on my part. I've done that plenty other times even buying stuff from brick-and-mortar stores.

If I allow myself to presume about the reasons for my "success" I'll have to say that the only thing I can reasonably point to is that I have a lot of experience actually designing. manufacturing and, yes, shipping technology products. I am intimately familiar with the design, sourcing and manufacturing process (and issues) of most products that entail software, electronics and mechanical components using various technologies.

This, to me, means that I have a fairly decent "bullshit" filter when it applies to these kinds of projects. Not to pick on them, but my most recent "this is bullshit" call was the LIFX light bulb:

[http://www.kickstarter.com/projects/limemouse/lifx-the- light...](http://www.kickstarter.com/projects/limemouse/lifx-the-light-bulb- reinvented)

Why did I call this BS?

You have to rewind to when the project first posted. Their pledge goal was set to $100K. A project like that could easily burn-up half a million dollars just in engineering, NRE's and regulatory testing. Very easily. In fact, my immediate thought after reviewing the project was that the project needed somewhere in the order of two million dollars.

When I see something like that I have to ask: Are the project originators truly clueless about what it might take to get the project done? I don't like to think that fraud is involved. I am one of those saps who believe that the vast majority of people are basically good. So, no fraud. Yet, $100K?

What would have happened with LIFX had they received funding just about their requested $100K goal? Say, $150K. Well, in my world that would have meant that there was no way to complete the project. No way. At least not with anything that I'd want to plug into a lightbulb socket at my house for a myriad of safety reasons.

I avoid such projects.

As it turns out, they have raised about $1.3 million. This may or may not be enough to get this done. Keep in mind that bringing in partners isn't free. COGS must include all costs.

With regards to the ARDUINO issue. I saw that project come up and immediately went to the known Arduino sites. I saw nothing promoting the project or making this connection of having an ex-Arduino manufacturer behind the Kickstarter project. So, I stayed clear.

I see the relationship between Kickstarter and their vendors very much like that of a shopping mall owner and the stores it might house. Imagine that one of the stores decides to sell counterfeit Gucci bags or defraud people in some other way. I can't see the mall owner as being guilty of the crime being committed. If a direct nexus is established, well, then, that's a different story.

I also see the buyer as having to be responsible for the decision they make. If someone sells you a perpetual motion machine and you were not smart or informed enough to realize that this can't possibly work, well, in many ways, it's your fault. Be an informed buyer. That's the only way to protect yourself.

EDIT: I should say that I like Kickstarter very much. I don't have a problem with the service. If you know what you are doing both as either a project originator or a project backer, it's wonderful.

<comment><USER26> I too called BS on the LiFX bulbs. In part because Phillips had recently won a prize for one of their LED bulbs and it cost them $25M+ to develop. So even accounting for 'knocking down the hard problems' I couldn't see a 10x reduction in cost.

However the cool thing about it was that they saw an actual demand for programmable LED bulbs with RGB capability and came out with 'Hue.'[1] I suspect they took the Apple Store only route because it was a single partner who could conceivably move enough product to technical saavy people. It seems to have worked as they are sold out in the Bay Area, not sure how many kits or bulbs that was in the initial batch but probably a few. They also sell the bulbs for $60 each, which is another interesting number. If you take all of the money raised for LiFX and divide by the number of bulbs they are committed to shipping out as rewards it comes to $55/bulb.

[1] Full Disclosure: I bought a starter set of "Hue" lights when they were announced and did _not_ back the kickstarter campaign for LiFX.

<comment><USER25> A 10x reduction in development cost is reasonable for a small company. Large corporations have to float a huge boat just to stay motionless. Another way to say it is that they burn millions of dollars per day just to exist and do nothing else. When you see cost-of-development numbers for large companies they include an element of total-cost-to-just-exist/days-per-project/number- of-current-projects (oversimplification).

A small motivated team without the baggage and overhead can certainly do thing far, far cheaper than a large corporation. In fact, it can put a large corporation to shame in terms of productivity and the ability to pivot and innovate.

Where things get difficult for a startup is when it is time to move to manufacturing. Unlike software projects, making physical products is really capital intensive. The first phase is, of course, the upfront design and DFM work that has to be done. Then comes all of the prototyping and testing. Finally, setup for manufacturing, procurement, manufacturing, packaging and shipping. If a startup isn't well funded it might be able to get through the design phase but not survive to reach manufacturing without an additional influx of funds.</comment></comment></comment>


Web Platform Contribution Guide - <AUTHOR> https://wpc.guide/ <comment><USER2> Blog post about the guide: [https://bocoup.com/blog/introducing-the-web- platform-contrib...](https://bocoup.com/blog/introducing-the-web-platform- contribution-guide)</comment>


Show HN: Strictured Programming [pdf] - <AUTHOR> https://github.com/murisi/Strictured/blob/master/project.pdf <comment><AUTHOR> What is linked is an experiment where I construct programs according to certain rules. While I do not list what these rules are, imagine the sort of rules that constrain one when making a mathematical proof.</comment>


Does CSS Grid Replace Flexbox? - <AUTHOR> https://css-tricks.com/css-grid-replace-flexbox/ <comment><USER2> As a systems guy who only occasionally pokes his head into this web stuff: have we now completed the circle? For well over a decade I've seen generations of web hackers rail on about the evils of tables for layout. And now I look at this thing, and... it's a table. For layout.

Oh sure, it's a table defined externally to the components. So your screen- reader enumeration of the document structure is unpolluted by the physical layout which is stored in a separate data structure in a separate language. And that's... good, I guess?

Meanwhile I see that native app development continues, as it has for like 30 years now, to shamelessly put UI components directly into hierarchies based on physical layout. And they still haven't tripped over the paradigm.

I know it sounds glib, but it's a serious question: tell me again what was wrong with <table>?

<comment><USER3> That separation between markup and presentation language (CSS here) is _exactly_ the point. Kicking all this stuff out into CSS means your markup can _mean_ what you're trying to say.

Using <table> elements should mean you're defining a table with tabular data in it. These new bells and whistles don't change that. You'll still use <table> for tabular data.

And I'm not sure what you mean about native app development. We bitch and moan about the inadequacies of CSS (more its implementation) but layout engines in real programming languages are a total ballache to get along with, especially if you're from a CSS background. You can't just commandeer a table and twist it for your own evil deeds, you have to use one of a finite layouts. Gtk3 is the closest I've found to something I didn't want to stab on sight.

<comment><USER4> Why must a table be used in such a way, only for tabular data? Sorry if I seem obtuse, but I don't really see the purpose behind semantic elements. Tables were fine for layout with much fewer things that you needed to get right. Wikipedia still uses tables for the layout on the Main Page, for example.

I don't think there is any 'meaning' in the tags that we use, and any meaning implied there is invented as a way to try and match concepts on the screen to things we recognise in real life. I can _mean_ the same thing to a user using tables, because they don't know that it's a table. Can I put a comment like "This table is for layout"? That would also convey meaning, and be a lot easier than messing around with CSS layout.

After a while of trying to get CSS to work with table-like layout, I think I'm going to move back to just using tables in future. At least, until something better than CSS+HTML comes along.

<comment><USER3> As a developer who somehow survived the times of frame, imagemap, and table- based layouts, I can promise you, they all had their own issues. Well before semantics, developers and designers needed CSS just to make things possible.

But you're focussing on people and healthy ones at that. Semantics matter a lot less there because _you can_ style anything to look like anything else. But somebody with a screen reader literally needs semantics for accessibility. You set your page up as a table and their screen reader is going to iterate through it like a table.

And things like microformats are soft-semantics that allow your devices to explicitly know that "this thing here is an address", "that's a phone number you can click", and there's a whole bunch of formats for declaring embed data rather than making a service infer it from your actual content.

But if you just can't be bothered, do yourself and your users a favour. Use a framework (eg Bootstrap). It won't be perfect but it'll stop you using tables for layout and that's already a lot better. I can't believe it won't also look better.

</comment></comment></comment></comment><comment><USER5> Honestly, I almost just want simple tables back... It really feels like we've been working very hard to create more complex layouts with flex/grid systems, and while I can see the need in some cases... I can't help but feel a lot of the more trivial things would be better with simple table.

<comment><USER6> You can still use tables and CSS display:table (you should use the latter if the content is not actually tabular data so as not to make life annoying for people using screen readers).

But for those of us building sites with complex layouts (and situations where we can't be entirely sure of the contents, e.g. using a CMS or static site generator), it's really amazing to finally have tools in CSS to actually do page layout.

<comment><USER5> Oh, I very much agree... but I recently took the time to come up with a nice layout using flexbox (really my first time delving in without relying on a framework for most of it), and it wasn't too bad, some of the naming conventions are weird. But then I pull it up in IE11 in a VM and Safari... man, those were painful to fix. Yeah, I was maybe missing things, or the defaults aren't as sane as they could have been.. but Chrome and FF looked/worked great, but Safari in particular I had to redo things... then back and forth until it finally worked across the board.

</comment></comment></comment><comment><USER7> In addition to the one-dimension vs two-dimension distinction, perhaps it useful to think of CSS Grid as for page/application-level layout, whereas Flexbox is for component-level layout.

</comment><comment><USER8> Ignoring that they're for quite different tasks - Flexbox's (albeit crappy) support in IE11 makes it more appealing if I was going to pick one of the two.

IE11 still has more users[0] hitting our main site than Edge, so I can see legacy support dragging on for a while yet.

But as pretty much everybody has noted, they do different things so this is more of a hypothetical comparison.

[0] Just checked - Edge 2.9%, IE11 4.2% of ~1.6m visits so far this month.

</comment><comment><USER9> I still use:

        .mytable{display:table}
        .myrow{display:table-row}
        .mycell{display:table-cell;vertical-align:middle;}

Simply because it's been the fastest and easiest way for me to vertically align stuff. Plus very backwards compatible. But I think I'm in the minority by not using the flexbox, etc.

<comment><USER6> If that works for you and your designs, then great! But there are a lot of places where display:table falls apart, especially with responsive designs. Flexbox and Grid also bring a new level of ability to separate source order from display order, which isn't possible using display:table.

</comment></comment><comment><USER10> tl;dr: no

CSS Grid is a two-dimensional layout mechanism. CSS Flexbox only handles a single dimension.

<comment><USER11> That doesn't summarize the article:

>it's not impossible to make multi-dimensional layouts in just Flexbox

Both are 2D layout mechanisms. You can make Grid act like Flexbox and vice- versa but they have different strengths, and are best used in tandem.

<comment><USER12> Rachel Andrew has added a very illuminating comments to the article which, I think, highlights why Flexbox can't do what Grid does:-

 _"Potentially Confusing: a "2D" Layout with Flexbox" – that isn't a 2d layout. It's a wrapped flex layout. As soon as you want to make that final box line up with the boxes in the first column you realise what you have isn't two-dimensional._

 _Flex wrapping doesn't make it two dimensional. Each row (in your example) is a flex container itself, space distribution happens across each row individually. Which is why it isn't two-dimensional._

 _More here[https://rachelandrew.co.uk/archives/2017/03/31/grid-is- all-a...](https://rachelandrew.co.uk/archives/2017/03/31/grid-is-all-about- the-container/) _

_You can also space grid tracks out evenly and so on, box alignment is shared by both the flexbox and grid specifications. For examples of that see[http://gridbyexample.com/video/align- grid/](http://gridbyexample.com/video/align-grid/) _

</comment></comment></comment><comment><USER13> Looking at the CSS Grid examples, I am not sure why? Tables and Divs with reflow can do the same, but with more predictable outcome and less boilerplate.

How about optimising the existing render-paths even more in Blink/Webkit/Gecko instead requiring us to wrap the head around new-but-old things to make it easier for you (the engine devs). Or who else thought it's a good idea to invent yet another syntax. There was a lot of unfounded hate against Tables for the last 15 years, but as we all learned out, Tables have there place.

<comment><USER8> Tables absolutely have their place... for rendering tabular data!

The idea that tables are "bad" was always semantic FUD, but i like to think we're pretty much over that these days and the fact remains that they're far from ideal for responsive page-level layout and we now have a far more powerful (and meaningful!) toolbox to pick from. The CSS display-table techniques were at best a hack, disguising the presence tables in the markup, but they were still there at an abstract level in all their tabley glory.

The stuff you can do with a handful of lines of flexbox/grid blow a conventional table layout away at the expense of a steeper learning curve. They're honestly worth the effort.</comment></comment>


Under the hood of my neuroevolution game/god simulator - <AUTHOR> https://medium.com/@fredriknoren/how-to-run-1m-neural-network-agents-at-60-steps-per-second-in-a-browser-183c6213156b <comment><AUTHOR> This is a blog post about the technology behind Pixling World. Pixling World is an evolution/god simulator I'm building where you can have up to 1M neural network agents running simultaneously at 60 updates per second, all competing for survival. The game itself is built in WebGL, so it's all actually running in your browser.</comment>


React switches from BSD+patent to MIT license - <AUTHOR> https://github.com/facebook/react/blob/master/LICENSE <comment><AUTHOR> A big win for open source community considering the fact that ReactJs is super popular, and this license was stopping people from adopting it wholeheartedly.</comment>


Atari 2600 VCS and Adventure – Computerphile - <AUTHOR> https://www.youtube.com/watch?v=W7roWLrbwao <comment><AUTHOR> "Programming the Atari 2600 VCS: Coming Soon"

I've been trying to work through "Making Games For The Atari 2600" by Steven Hugg over the past year and I'm just now starting to grok some of the key concepts, not only in 6502 assembler, but VCS programming specifically, which involves a lot of timing around the CRT beam. I don't expect to make a final product ever but it's really a lot of fun to play with. There's a companion site for the book that lets you play with Atari programming online [1].

I also just bought a physical 2600 last week when I got a bit nostalgic for the paddle based games like Warlords, there's really no equivalent controller for modern systems. I've been hoping they would make a comeback at some point.

[1] [http://8bitworkshop.com](http://8bitworkshop.com)

<comment><USER2> Paddles are very cool. Warlords is one of the top titles my kids played growing up. They liked having 4 people get in on a simple game.

Grandkids are just about there.

I went and got a 6 switch model, modded it for a better composite signal display, and it works pretty great on newer televisions.

One can notice the lag over a CRT playing Warlords though. It's not a big deal, and on my HDTV, it's basically a frame. The kids don't seem to care. Makes sense, as they've been dealing with that latency all the time.

Making games for that machine is very challenging and a lot of fun! I've written code for it a few times. Enjoy your rewards as you get stuff working and moving.

You know, the paddle could be spiffed up a little to make it more relevant, and maybe expand on the scope of paddle games at the same time.

Push and or pull paddle for action, emphasis. Offer more than one button.

Old school paddles are done with a linear variable resistor. Those actually work great, when clean and used fairly regularly, but they can't also be effective spinners.

Traditionally, spinners are done with an encoder similar to old ball mouse devices.

Those could be combined, the paddle using an absolute encoder, not a relative one to start. This is very important, as being able to return to a given screen position, given a specific motion, actually matters a lot! The Warlords game is playable without this, but something like Kaboom isn't so much.

An absolute encoder, coupled with a clutch so the feedback can be disabled for spinner mode, could work just fine as a spinner, we just handle the rollover in software.

Maybe even take a page from the 3D space type devices, and allow the paddle shaft to be moved like a joystick.

Turn, upward pressure, button A or B, allows for a whole lot more, while keeping the direct, simple interaction of the paddle front and center.

If I had time... that's the paddle I would make.

<comment><AUTHOR> I got the RF to Coax adapter to play on my TVs, I think I feel the lag but I'm not sure. Either way, a CRT is going to be my next splurge :) Another thing I love about the old stuff is that there's no boot-up, no login, no updates. I was getting along just fine until one of my TVs forced me to do a "channel scan" before I could even tune to channel 3, it took over 5 minutes :/ Won't get that with a CRT.

Just getting a hold of a physical system really amped up the nostalgia, I even picked up a boxed version of Adventure since that was always my favorite. The annotated source code for it is fun to play with, I started modifying it to make it Stranger Things themed version because I figured my kids would enjoy it (Dragons are Demogorgons, Chalice is Will, Yellow Castle is Wills house, Sword is a nail bat, stuff like that). I can't seem to find the source online right now, can't remember where I picked it up but I had it archived in my email for years.

<comment><USER2> Awesome!

Yeah, I find the real hardware very stimulating myself.

Right now, I have an Apple //e and my old 2600 (VCS) hooked up to a professional video monitor.

If you can find one of these, I very strongly recommend one. They deliver an insane good image from old machines. Even from RF, which tends to be the worst.

You can install a shorter cord to help with image, if you need to. It's easy.

Adventure is one of my top picks too. Back in the day, it was amazing, and it hinted at so much more to come. That game is real history. Love your idea to mod it.

The thing I keep coming back to, regarding older, analog controllers, is the simple game mechanics, and interaction.

Once, in the 90s, when my youngest was 2, maybe 3, I had a VCS hooked up. He started a Breakout game, and was near the TV. As he turned the paddle, saw the little bar on the screen move, his head moved with it, all real time, connected.

He remembers it. Powerful experience.

And yeah, flip the switch, and you are in. No bullshit. :D

On the dev side, I sometimes like to do it right on the machine. Can't with a 2600, but can with a computer. Good for learning, testing.

Then, in project mode, use emulators. So much faster, easier.</comment></comment></comment></comment>


Linsanity on Zaarly - A 263% spike in Knicks Tickets Requests... - <AUTHOR> http://blog.zaarly.com/corporate/2012/a-look-at-linsanity-on-zaarly/

<comment><USER2> wow, his domain name is worth that much? How could it worth that much? If b-ball player's domains were worth a lot, the squatter for kobebryant.com would've sold it by now.

<comment><AUTHOR> Crazy, but true! See --> [http://www.chinapost.com.tw/taiwan/arts-&-leisure/2012/0...](http://www.chinapost.com.tw/taiwan/arts-&-leisure/2012/02/21/332252/Jeremy- Lin.htm)</comment></comment>


Tell HN: You know what's the best? When a stranger tells you about your product. - <AUTHOR>

So I was at Starbucks earlier a few hours ago, drinking coffee with a friend and some of his coworkers when we began talking about iPhone apps (one of them recently bought a new iPhone and asked what apps were recommended). So we talked about most common ones like Instagram, flashlight, temple run, paper, etc when one of the other guys mentioned that he recently signed up for an app that was coming soon he thought was pretty cool. He started to describe it and I almost choked and snorted on my coffee- he was talking about our app! It was an amazing moment, knowing that someone out there that you don't know is talking about your product. Any similar experiences out there?<p>link: http://www.prsna.me <comment><USER2> Yeah, it's a moment that can be really interesting if you can keep your composure. Back when NotifyWire was running I was talking to someone about Craigslist and he told me about a secret weapon he used for snagging the best deals.

When he told me it was my software I asked, "What's so cool about that?", then "How much does that cost?", and then said "Wow, that seems expensive.". It was really interesting to hear someone explain the bits they found most useful and describe the value they use to justify the expense. It was possibly the most honest feedback I ever got.

</comment><comment><USER3> The world needs more of this kinda interaction! It can only lend itself to stronger design.</comment>


Live visualization of DDOS attacks - <AUTHOR> http://www.digitalattackmap.com/#anim=1&color=0&country=ALL&time=15925&view=map

<comment><USER2> I started a thread where I was hoping to get a discussion of DDOS mitigation techniques, tools, and providers. Something that should be useful and highly relevant to web-based small business owners. It's here if anyone's interested -- [https://news.ycombinator.com/item?id=6587640](https://news.ycombinator.com/item?id=6587640)</comment>


Malware encoded in DNA can take control of gene sequencers - <AUTHOR> <comment><USER2> Was this posted by mistake as a Ask HN?

This should be a link to the news from 2017

[https://www.wsj.com/articles/malware-stored-in-synthetic- dna...](https://www.wsj.com/articles/malware-stored-in-synthetic-dna-can-take- over-a-pc-researchers-find-1502337660)

This is a countermeasure from 2019

[https://www.nature.com/articles/s41598-019-44995-6](https://www.nature.com/articles/s41598-019-44995-6)</comment>


Community, or not community: Y Combinator backed exits in black and white - <AUTHOR> http://inthebox.webmin.com/community-or-not-community

<comment><USER2> Prolly worth noting that all of the "value-based" exits were basically talent acquisitions of essentially just the founding team (though the Auctomatics had a couple employees).

I think the effect we're seeing here is that it takes more than a year to build your company up to a multi-million dollar valuation. Community sites have the upside of being able to show traffic numbers as a proxy for value, but ultimately no matter your space, if you want a $15 million exit, you can't sell out six months in for $2 million.

<comment><AUTHOR> Absolutely true. Communities take time, no matter how fast you can code. Value takes time, too, but if you work really fast and sell really cheap, you can seemingly be in business and sold out in six months.

I think it'd be really interesting to know just how much all of the exits were worth.

</comment></comment><comment><USER3> Most of those value based companies sold to community companies. A community company generally needs to get quite big before they are an acquisition target, but if they do get that far than the customer base makes them worth a lot. I generally think reddit was a bit undervalued - being an internet front page is something they never really exploited.

<comment><USER4> > Most of those value based companies sold to community companies.

Exactly. Large acquirers typically already have a community, and are looking for additional products and services to offer that community. Meanwhile, community sites are typically more difficult to integrate. Witness Yahoo's struggles with integrating Flickr and del.icio.us.

</comment></comment><comment><USER5> Seems like there must be better terms to use for these two types of businesses. Community-based makes some sense, but "value-based" is almost meaningless without the long description attached.

I do like this subject. Nice post. It's an interesting thing to think about. I certainly came away feeling like doing a community-based startup takes a lot more guts. Seems like a more fun thing to do though.

<comment><AUTHOR> I agree...it took a while on the phone to get to the heart of what the fellow was asking about, and I've arbitrarily called the types of business "community" and "value" since that's the only thing I could think of that really fits the difference between these very different businesses. Auctomatic and Zenter are obviously not even a little similar, and yet when one asks "did their value come from their community or the utility of their software?" the answer is clear. Since none of these things are really black and white, I just fudged a bit to try to bring to light the "ah ha!" moment I had during the conversation.

I'm obviously not suggesting that people shouldn't build community-based startups or that YC shouldn't fund them. Just suggesting that maybe a useful application is a safer bet than an application that has to reach millions of users to be a valuable acquisition target (or to make money). But, if we wanted safe, we'd be working for Microsoft or Google, right?

<comment><USER6> Let me suggest we might call them "tool" or "service" businesses.

I think this is a useful distinction, but it's also one that breaks down at a point. Reddit, for example, was a useful way to kill time even before it had a big user community, just because it had a few good posts each day. If kn0thing and spez sent you that list by email rather than maintaining it on the web, it wouldn't feel like a community but like a service. Finding a service that can be delivered usefully without a big community, but can also become an identifying activity for a growing community, seems to be the secret sauce of many successful community sites.</comment></comment></comment>


AeroPac team takes out Carmack Prize at ARLISS launch at Black Rock - <AUTHOR> https://www.youtube.com/watch?v=1MVmH0bkMqE

<comment><AUTHOR> Here are the details:

This is our notice of a successful attempt to claim the Carmack Prize for an amateur flight above 100K'. Our flight on Tuesday 9/11/2012 reached 104659' AGL as verified by both the onboard Beeline GPS as well as APRS telemetry from the airframe that was streamed in real-time to the APRS database. The flight track for the sustainer is at KG6DLV-4 and the booster is KG6DLV-5 at aprs.net.

The airframe is a two-stage, minimum-diameter design. Construction is primarily of commercially-available fiberglass components with carbon- laminated fins.

Architecture: Two stage minimum diameter - 4" booster to 3" sustainer

Motors: Commercial motors. Aerotech N1000 in booster staging to Aerotech M685 in sustainer. 25 second total burn time.

Total impulse: 21,650 ns

Length: 126"

Pad weight: 61 lbs

Avionics: (Raven+RDAS, Beeline GPS (70cm APRS), GoPro2 + WiFi BacPac) replicated in booster and sustainer Payload: Smartphone+sensors with 2m APRS telemetry Launcher: 12' rail

We flew at Black Rock, NV, during the AeroPac ARLISS and XPRS events, September 11, 2012. We had full recovery of the airframe within 6 hours - <USER2> booster and sustainer. We flew the same stack today, Thursday 9/13/2012 on an N1000 staging to a CTI M840. However, the CTI motor failed - while it burned completely it generated no thrust. The airframe was again recovered intact and flight ready. We intend fly again with a replacement sustainer motor on Saturday 9/15/2012 and plan to again webcast the video of the launch as well as real-time telemetry of the flight from the AeroPac web site (www.aeropac.org).

Ken Biba - Team/Technical Lead

Casey Barker - Project Manager

Erik Ebert

Becky Green

Jim Green

David Raimondi

Tom Rouse

Steve Wigfield</comment>


Builders Are Swapping Cement for Weed to Reduce Pollution - <AUTHOR> https://www.bloomberg.com/news/articles/2019-08-30/builders-are-swapping-cement-for-weed-to-reduce-pollution <comment><USER2> Hemp is not weed and the title is clickbaity for bad reasons.

</comment><comment><USER3> I've wondered if industrial hemp could be a means of revitalizing struggling rural areas, get us off the corn and soybean subsidies and allow us to produce something valuable. How much capital does it take to get a set up going to convert hemp stalk into the powder or the bricks.</comment>


Why Are Apple and Microsoft Using Such Old Processors in Their New Computers? - <AUTHOR> http://gizmodo.com/why-are-apple-and-microsoft-using-such-old-processors-i-1788302547 <comment><USER2> What kind of bizarre thinking is this? There is surprise that a laptop released at the end of October is not built with a chip released in September?? WTF? Even _if_ the chip is fully 100% slot compatible, neither MS nor Apple would or could take that at face value. The power requirements are different, that alone is cause for a redesign of the board.

The author seems to be living in a fantasy land, it takes time to test, purchase the processors, build the laptops, ship the laptops, and I'm sure I'm missing about 10 other bottlenecks in the process. The Pascal GPU was only released in May, and that is still too soon to have been designed around.

Missing are examples of computers that have shipped in high volume using 1-4 months old components. Missing is some realization that if both MS & Apple are doing the same thing, there's probably a good reason.

<comment><USER3> The author says all the same things in the article - are you sure you disagree with it?

<comment><USER4> Well yes, but the question posed in the article is stupid. Apple and Microsoft aren't using "such old processors". They are using the previous generation, because that's what was available to them.

Both companies, according to the article, where in fact using the very latest GPUs and CPU on the market, had Intel and Nvidia not released new chips just as Apple and Microsoft where beginning production.

</comment></comment></comment><comment><USER5> Is this article seriously asking why Apple didn't put a processor that was publicly announced in September in laptops that consumers could buy one month later? How about asking the author why they didn't write this article on the day of the mac event? I get people's disappointment in the new macs, even though I think it's mostly unwarranted, but this is taking it to an extreme.

</comment><comment><USER6> Its a form of clickbait in that I assumed the article would explain why the lead time has increased continuously since 1985 or so.

Instead there isn't really a story at all.

For utter noobs to modern technology: If the pipeline from daydream to press day is X months and a new widget was released Y months ago then if X > Y you don't see the widget on press day. Don't matter if its a jet plane or a nuclear reactor or a laptop.

</comment><comment><USER7> When the new skylake hardware came out all the drivers where crap. People with new Surface Pro 4s, Surface Books, Dell XPS 13s, etc... where having all kinds of problems.

All these machines work great now, but I wouldn't want to go through that pain again just for the sake of getting a little more performance (for average use).

<comment><USER8> Also, I personally get nervous when asked to buy a crap hardware+drivers combo on the promise that the drivers will be fixed later and the hardware's full power will be released... what guarantee do I have that there won't be a fundamental hardware issue that drivers can't hack around?

I've got a machine that has a wireless card with the draft version of the wireless N standard, and presumably some promise that updates could fix it when the real thing came out. The real thing came out, and the card's N support has never worked. Fortunately there's a somewhat-deeply-buried setting for both Linux and Windows that lets you turn it off entirely and have the card degrade into a perfectly-functional b/g card, because once real N networks came out it tries really hard to connect to them. And it _almost_ works. You can get about a megabyte or so over the N network before the connection somehow fails. Then another couple hundred kilobytes about 10 seconds later, and so on. Terrible.

How much more concerned about that I would be if I intended to ship a few million such units out. The "fixed drivers in the future" promise isn't that reliable.

</comment></comment><comment><USER9> Many have questioned whether or not Apple could have made a MBP with more than 16GB of RAM given Intel's current CPUs. Gruber's discussion with Apple and subsequent analysis was that Intel don't have a part that they can use (e.g. one that supports 32GB of RAM), which get into the power and weight envelope they considered acceptable, and that envelope trumps all else at Apple.

Hitting that power and weight envelope is a hell of a lot easier when you make your own CPUs.

([http://daringfireball.net/linked/2016/10/31/intel-mbp- ram](http://daringfireball.net/linked/2016/10/31/intel-mbp-ram))

<comment><USER10> Yeah... so maybe not keep pushing an weight/thinness envelope that few seem to want if they could trade if for performance & battery... at least that's what I'm guessing, maybe the mainstream consumer care about showing mm's of their laptop but I kinda doubt it, at least battery performance seem more important

<comment><USER11> I don't understand the thinness, especially for the iMac, but I suspect they've researched how people respond to seeing them in person in stores. I definitely want light though, and I highly doubt a large number of users using a laptop will notice the difference between 16GB and 32GB compared to the storage now being twice as fast.

Other complaints include a loss of magsafe? I highly prefer being able to purchase numerous non-proprietary chargers for home, work, car, airplane rather than carrying a brick in my bag. Plus, anyone who wants the power connection to be breakaway can get whatever USB C equivalent there is or will be to ZNAPS[1].

[1] [https://www.kickstarter.com/projects/1041610927/znaps- the-9-...](https://www.kickstarter.com/projects/1041610927/znaps- the-9-magnetic-adapter-for-your-mobile-devic)

</comment></comment></comment><comment><USER12> alt. title -- "apple and microsoft choose not to rush products to market" Processors will march forward getting better each year, the tick-tock of intel's design process is a staple in the tech industry, so today's best is tomorrows garbage. but unless the plan was to dump your computer after 6 months usage, this shouldn't bother you much. And instead you get a system that is thoroughly tested and thoughtfully designed. I'd take a well designed 2 year old laptop over a flimsy garbage box with the freshest processor any day.

</comment><comment><USER13> tldr; Apple and Microsoft want to use the high-powered variants, which have yet to be released, whilst other manufactures are happy to use the low powered variants.

Sticking with the more powerful, but power hungry CPUs is one of the few things that allow the MacBook Pro to keep the "Pro".

<comment><USER14> High-powered meaning power consumption? Or speed? The new chips use less power, right? Guess I need to read the article. :-)

Edit: the new CPUs use less power, but the new GPUs use... more?

<comment><USER15> Only 15W Kaby Lake SKUs were released.

</comment></comment></comment><comment><USER16> I hear the excuse that the chips are too new, but the Razer Stealth has 7th gen Intel. There once was a time when Apple literally purchased the entire world's supply of a part, and everyone else had to wait for more. Apple just doesn't care anymore.

<comment><USER17> Then the Razer Stealth has a chip that doesn't do Iris Graphics making it inappropriate for the 13" MacBook Pro. And it is a 4.5W or 15W dual core part so it isn't appropriate for the 15" MacBook Pro. Just because one or two 7th gen parts are shipping doesn't mean they all are.

<comment><USER16> >Then the Razer Stealth has a chip that doesn't do Iris Graphics making it inappropriate for the 13" MacBook Pro.

Razer uses it to drive a 4K 100% Adobe RGB display. Seems appropriate enough to power the lower res Macbook 13" displays.</comment></comment></comment>


Setting up Git identities - <AUTHOR> https://www.micah.soy/posts/setting-up-git-identities/ <comment><USER2> You can also do a per-directory _global_ git configuration, e.g.

in .gitconfig, you say:

        [user]
            name = Me Myself
            email = email@example.com
            signingkey = D34DB44F

        [includeIf "gitdir:~/src/github.com/work_org/"]
            path = ~/.gitconfig_work

Then in ~/.gitconfig_work:

        [user]
            name = Me Myself
            email = email@example.com
            signingkey = D34DC0D4

        [core]
            sshCommand = ssh -i ~/.ssh/work_ed25519

I like this way better, because I don't need to remember to specify per- project config, as long I put them in the right directory :-)

<comment><USER3> Why do you need to use different name/key/email between work and personal project?

<comment><USER4> Well, the e-mail part is pretty straightforward, since many people will have a personal e-mail and a separate e-mail managed by their workplace IT.

If some current (or future) coworker has a question about the code, I don't want them to necessarily e-mail me on my home account. I might not be checking it during work hours, or I might not even be with the company anymore.

Similarly, if someone actually wants to contact my e-mail for a hobby-project, I don't want them to send it to my work-account, which over time I might no longer have access to anyway.

<comment><USER5> This also applies to e.g CI systems, that are able to send build success/fails emails to the emails in the commits instead of the default GitHub/GitLab email.

<comment><USER3> Actually, both GitLab and GitHub allow configuring different email addresses per team.

The notifications don't go to the email in the git commit.

</comment></comment></comment></comment></comment><comment><USER6> Thanks for the great post! However, I discourage the usage of RSA with 4096 bit as it does not offer any substantial security over RSA with 2048 bit. The mean idea behind the "No-4096-bit" is nicely explained by GnuPG people themselves, [https://www.gnupg.org/faq/gnupg- faq.html#no_default_of_rsa40...](https://www.gnupg.org/faq/gnupg- faq.html#no_default_of_rsa4096).

Therefore, wouldn't it be more efficient to use elliptic curve cryptography, i.e. ED25519, if you want that extra bit of security? It's included in GnuPG since version 2.1.0 released in November 2014 - at least in an experimental state.

<comment><USER7> As suggested by the [release notes]([https://gnupg.org/faq/whats-new- in-2.1.html#ecc](https://gnupg.org/faq/whats-new-in-2.1.html#ecc)), not many PGP implementations support ECC.

<comment><USER8> Also GitHub doesn't support it. The website just crashes with "An unknown error has occured" when you try to upload an ECC key for gpg

<comment><USER9> GitHub definitely supports it. I've been using an Ed25519 key for about a year now.

<comment><USER8> Are you sure you're talking about GPG and not SSH?

I just tried again and it did not work

</comment></comment></comment></comment></comment><comment><USER10> My alternative is to use multiple user accounts on my computer to work on different projects. This solves multiple issues at once:

* Git identities (I just need to clone from the right user)

* access restriction (building one compromised project won't compromise everything else)

* no need to manage virtualenvs (or the equivalent for non-python environments), just install everything in ~/.local/

<comment><USER11> Personally this wouldn't really work for me.

I always switch between projects to get some files (Like a CI config I already wrote for another project) or look how I have done something in another code base. Also all my editor configs, bookmarks, browser logins for Github are all there. If I'd have to switch between users for each project that sounds really cumbersome.

<comment><USER12> I do what the GP describes as well. It's not that bad.

When you want to enable some limited sharing, it helps to create a new group for all your user accounts.

For files and directories that you want to share, just set the group to your new user group, and use the OS group permissions to manage read/write/execute.

</comment></comment></comment><comment><USER13> Nice article! The only thing I'd add is that you can extend this to multiple GitHub identities, too, via SSH configs: [https://www.bendb.com/blog/ssh-with- multiple-github-accounts...](https://www.bendb.com/blog/ssh-with-multiple- github-accounts/)

I've been using variations on this technique for a few years now. It's kind of a pain to remember which URL to use to clone a repo, but is great for keeping that veneer of separation between work and personal projects.

<comment><USER14> I've been using the same account for both work and personal repos, without much issue due to the existence of github organizations.

What sorts of separation are beneficial for you? I'm wondering if I should switch, but I don't fully understand.

<comment><USER13> Depending on the employer and the side-project, using the same account for both could _in theory_ bolster a (ridiculous, absurd) ownership claim over your work, for example. Stranger things have happened.

More pragmatically, I've been burned in the past by using personal accounts (not GitHub specifically) for work things. For example, I used a personal commuter card for a former job's benefits program. When I left, they deactivated my card. Awkward! Not the same kind of risk with GH, to be sure, but after that I do prefer to keep my digital selves as compartmentalized as possible.

</comment></comment></comment><comment><USER15> Here is something I did. Ignore the other details in the article, and focus on the "SSH Split Personality Disorder" part. This article was written for a 200-ish member team of a Startup and so most of won't be relevant to anyone outside the Company.

[https://story.mobisy.com/bulletin/2019/03/08/eagle-eye- ssh-s...](https://story.mobisy.com/bulletin/2019/03/08/eagle-eye-ssh-split- wiki/)

I split the Git Identities based on which directory I'm working on.

</comment><comment><USER16> What I use to switch git identities is direnv ([https://direnv.net/](https://direnv.net/)) which automatically loads specific config based on the dir that you are in. You can use it to switch AWS profiles, proxy settings, npm settings, maven settings, git configuration and so on.

</comment><comment><USER17> Why are they generating new GPG keypairs for every identity? This is an honest question. I've been curious if there are any benefits to having multiple keypairs over just one keypair and multiple uids.

Also IMO the proper way to use GPG is to generate the keys on an offline machine and then move the private key to a physical token.

</comment><comment><USER18> To get around this problem I just use a simple command-line utility that I wrote called gitswitch that I call whenever I jump to a new project. My name never changes but my email does, so that's all the utility changes. I suppose it would be neat to build in profiles, but I jump between 2-3 PCs regularly and would probably forget to update my profiles.

[https://github.com/jboyer87/gitswitch](https://github.com/jboyer87/gitswitch)

Example:

      gitswitch email@example.com

      gitswitch firstname.lastname@example.com

</comment><comment><USER19> I found [https://github.com/prydonius/karn](https://github.com/prydonius/karn) to be helpful (although I wish there was a more native solution)

<comment><USER20> Can +1 this. I have it set to run periodically, and it sets up the identities for my "work" projects and personal projects.

</comment></comment><comment><USER21> It's a good idea, but could do with explaining that it's not a concept built in to git.

Until I got to 'define an alias ...' I thought it was about a user-switching feature of git that I was unaware of.

<comment><AUTHOR> It's in the second sentence of the post =P

"This is a procedure for leveraging git aliases to set an identity at the project level..."

</comment></comment><comment><USER22> There's a project to do this properly, but integrating this on git itself would be great. it's just a shell script really:

[https://github.com/madx/git-identity](https://github.com/madx/git-identity)

It's already on AUR:

[https://aur.archlinux.org/packages/git-identity- git/](https://aur.archlinux.org/packages/git-identity-git/)

<comment><USER22> To clarify, this has a better API and integrates cleanly with git itself.

$ git identity -h usage: git identity [-d | --define] <identity> <name> <email> [<ssh-file>] [<gpgkeyid>] or: git identity [-p | --print] [<identity>] or: git identity [-s | --get-settings] or: git identity [-r | --remove] <identity> or: git identity [-l | --list] or: git identity [-R | --list-raw] or: git identity [--define-gpg] <gpgkeyid> or: git identity [--define-ssh] <ssh-file> [<ssh-verbosity>] or: git identity [-u | --update] or: git identity [-c | --get-shell-command] [<identity>] [<command>] or: git identity <identity>

So you can define identities such as `work`, `personal`, and then after cloning/init, run `git identity personal` to setup GPG or SSH keys, name and email.

</comment></comment><comment><USER23> All this wouldn't be necessary if git supported traversing through parent directories for a configuration lookup to have "per directory structure" configurations. Any idea, why this relatively simple and inexpensive approach isn't implemented? Simply because no one bothered to do it so far?

<comment><USER24> > All this wouldn't be necessary if git supported traversing through parent > directories for a configuration lookup to have "per directory structure" > configurations.

Clang-format has this "delightful" feature, which isn't actually all that horrible except I cannot find a way to pass it a configuration file via the command line. If I'm editing files in /tmp (or using an editor that relies on this directory) I have to do a nasty hack of copying ~/.clang-format to the current directory to make it work: [https://github.com/saagarjha/dotfiles/blob/master/_nano- clan...](https://github.com/saagarjha/dotfiles/blob/master/_nano-clang- format). Basically, this is a long-winded way of saying that this kind of setting can often work but it's really not great in certain situations.

</comment></comment><comment><USER25> But why?

All SSH/GPG private keys will be in the same storage anyway, and it doesn't provide any security advantage in case a key is compromised. They are already computationally impossible to brute Force too.

Isn't the point of GPG keys is to have an established trust? How does using multiple keys help with it?

<comment><USER26> Privacy. I don't want my professional identity muddled with my personal identity.

<comment><USER27> My work laptop is owned by my company. All company work goes on there. (And since it's a company-owned resource anything made using it is something they could claim rights to.)

My personal computer is owned by me. Nothing company owned touches it.

This makes domain separation easier.

</comment></comment></comment><comment><USER28> [https://github.com/bobbo/git-profile](https://github.com/bobbo/git-profile) is a utility my friend wrote to do the same thing.

</comment><comment><USER29> Would someone happen to know, what the icon looking like a [ is in front of every command prompt. And potentially how to remove it from appearing?

</comment><comment><USER30> I just have multiple .gitconfig files and symlink them based on `hostname`. It's easy and there is no per-repo setup.

</comment><comment><USER31> Not sure why GPG got in the picture. As other connectors have pointed out, changing Git identities is a trivial operation that can be done in so many different ways.

</comment><comment><USER32> What do I do if my key has expired?

<comment><AUTHOR> Generate a new key and update the global git config with the new public key hash. Then add the new public key to Github/Gitlab to support verification of signed commits with new key.

<comment><USER32> But that would invalidate the old signed commits, wouldn't it?

<comment><USER33> Pretty sure you can keep your old keys in there. You just don't use the old key for signing.</comment></comment></comment></comment>


Hacking Starbucks and Accessing Nearly 100M Customer Records - <AUTHOR> https://samcurry.net/hacking-starbucks/ <comment><USER2> $4,000 doesn't seem adequate if they could gain access to Starbucks card data. Given a card number, they could purchase using its entire balance, repeat ad infinitum.

</comment><comment><USER3> What part of selling coffee requires keeping records of your customers?

<comment><AUTHOR> check their website for an answer.

<comment><USER3> Loyalty cards aren't required to sell coffee. Nor do they have to be tied to a person.

We shouldn't go along with the framing that loyalty programs and retaining all this information about customers is required to run a business.</comment></comment></comment>


Ask HN: any (freelance) programmer in NL looking for a nice place to work? - <AUTHOR>

We're a group of guys in our mid twenties working on a variety of interesting, highly profitable internet projects.
I'm the technical guy and responsable for the business as a whole, and I have the pleasure to work with a great designer and two smart men working on business development.
We just moved into our new offices, in a nice 17th century canal house in The Red Light district, at a 5 minutes walk from Amsterdam Central Station.
We're looking for a freelance developer that is primarily looking for an inspiring place to work IN, and at the same time for interesting projects to work AT.
We're interested in cooperating on a contract-basis, and, in case of a good cultural fit, will consider to hire.
If you're a developer in NL, interested in new opportunities, drop a line and we'll grab a coffee! <comment><USER2> i'm in NL please, see my address in the profile for more</comment>


80s Typography in CSS - <AUTHOR> http://codepen.io/boldfacedesign/details/EoGgD

<comment><USER2> This is pretty rad. I especially love the scanlines on VECTRO. I saw there was supposed to be an animation on it, but it was commented out so I forked it a little and started tinkering. Here's my attempt at CRT nostalgia:

[http://codepen.io/anon/pen/lnCch](http://codepen.io/anon/pen/lnCch)

<comment><USER3> Whoa, that's even better than I thought it would be. Thanks.

</comment></comment><comment><USER4> Actually your site works just fine without javascript once I get rid of that annoying 'this site does not work without javascript' message.

Edit: the site. Honestly I meant 'your' as in the site owner. I'm just annoyed by sites that block their content that loaded just fine because I'm not running javascript.

<comment><USER5> OP didn't create codepen, chriscoyier did.

</comment></comment><comment><USER6> This little CSS experiment is usually the kind of irrelevant demonstration that is commonly frowned upon because it has no practical use.

But no matter how apparently futile this showcase can appear, it's still inherently valid because it maintains a clean separation between content (which in this case comprises 14 lines of HTML) and its representation (provided by its CSS styling).

I won't use it but I will learn from it.

<comment><USER7> Who would frown upon such an awesome demonstration?

<comment><USER8> The awful HN crowd

<comment><USER9> Build anything and someone (usually the top comment on Hacker News) will dismiss it, mock you for wasting your time, and talk about how X was already solved years ago.

<comment><USER10> And then they'll link to their project after talking smack. I call it _shark tank syndrome_

<comment><USER11> See also: the engineering dance. When two engineers meet and shit test each other on their knowledge, until both are satisfied they are better than the other guy.

</comment></comment></comment></comment></comment></comment><comment><USER12> Incredibly slow scrolling on my 32GB DD3 RAM, SSD, i7 3770K desktop PC. Using Chrome latest, windows 8.1

Why?

Edit: Doesn't even work on Firefox latest, IE latest.

<comment><USER13> Worked smoothly in Chrome 31[1], on 32GB i7 3770K w/ GTX 680 graphics.

Upgraded to Chrome 32, noticed different scroll bars, and now it's jerky when scrolling.

Looks like a Chrome regression.

[1] I disable all 3 auto-update mechanisms Google uses on Windows: HKCU\\..\Run, Task Scheduler tasks and gupdate* services. It's almost like a virus.

</comment></comment><comment><USER14> More like 70's panel van art.

80s typography is probably best exemplified by Neville Brody. Process colors were rarely used (owing to expense) so it tended to rely on a lot of very dramatic and grungy layouts and spot colors.

Look up "Neville Brody" and "The Face".

</comment><comment><USER15> Nicely done, that desert chrome takes me back. I can almost hear the disco.

</comment><comment><USER16> I was hoping for something a la Neville Brody/The Face. [https://en.wikipedia.org/wiki/Neville_Brody](https://en.wikipedia.org/wiki/Neville_Brody)

</comment><comment><USER17> Completely screwed up on my mobile browser (Dolphin).

</comment><comment><USER18> The sparkle animation on Future Cop is pretty great

</comment><comment><USER19> Cool!

</comment><comment><USER20> love it</comment>


Effect of memory bandwidth on GPU performance - <AUTHOR> http://www.realworldtech.com/page.cfm?ArticleID=RWT042611035931

<comment><USER2> Pipeline depth is also important for the end experience - which shows up as milliseconds of lag. ARM by SG kept getting faster by expanding the pipeline (30+ levels?) but only when the pipeline wasn't blown. Is that happening with high-end GPUs?

</comment><comment><USER3> <http://lambda-the-ultimate.org/node/1277>

Tim Sweeney said from experience that every single precision flop/s need byte/s of bandwidth.

</comment><comment><USER4> No comment about that?! We need faster DRAM!!

<comment><USER5> No, we don't. GDDR5 is faster than current cards can handle. The bottleneck is in the memory controllers themselves - beyond an effective data rate of 5Ghz, the memory controllers get really complicated and just plain large.

A Radeon 6970 ships with GDDR5 that can run at 6Ghz effective rate, but it only runs it at 5.5Ghz (though there are factory-overclocked cards that reach at least 5.7Ghz). NVidia's cards tend to run their memory at no more than 4.5Ghz effective, though they compensate by using a wider memory bus (which accounts for the odd-looking memory sizes).

Upper-mid-range cards built off smaller cores tend to have higher core clocks, but much lower memory speeds. Halving the number of compute units decreases the demand for memory bandwidth enough that it's not crippling when you use a memory controller that's half the size and can only run at 75% the speed, which saves the manufacturer a lot of money.</comment></comment>


Show HN: NuTab – Capture your thoughts and favorite links on the new tab - <AUTHOR> https://nutab.co <comment><USER2> Took a quick look: how is this different from having a notepad++ file open? What happens to the tab if chrome crashes? Are the notes saved?

<comment><AUTHOR> Well, the difference is that you don't have to have a notepad++ open. Notes are saved to local chrome storage as you type. I didn't try to crash my browser but I assume it's ok.</comment></comment>


Nokia Lost Billions exiting Consumer Devices now it's back for more? - <AUTHOR> http://blogs.wsj.com/moneybeat/2016/04/26/nokias-return-to-consumer-electronics-will-phones-be-next/?mod=yahoo_hs <comment><USER2> First reaction - Nokia is still around?

Second reaction - They have $200M lying around to spend?

Third reaction - dinosaurs are really hard to kill</comment>