Facebook adds 5 divs, 9 spans and 30 CSS classes to every post in the timeline - <AUTHOR> https://twitter.com/wolfiechristl/status/1071473931784212480 <comment><USER2> I'm really thankful I haven't yet had a job where all I'm developing is new ways to force people to see ads. Imagine working on a 'feature' like this for weeks or months, and the end result is simply that people who don't want to see ads now have to see ads.

<comment><USER3> Ethics aside, this actually sounds kind of fun to me. It's the kind of clever puzzle solving many of us love about programming - it's basically a cat and mouse game.

<comment><USER4> I worked on something like this (but at a very much lower scale, of course) and it's fun at first but then I realized that my whole job was making users experience worst and I was miserable for as long as I had that job. I swore not to work on anything advertising-related ever again.

<comment><USER5> Yea of course it's not for everyone, everyone have different concern, but I could see myself work on this if it paid well.

<comment><USER6> Perhaps reconsider.

"If it paid well" externalizes the ills it inflicts on other people. And _they matter, too_.

<comment><USER5> sure, thats why I said what everyone consider 'matter' are different, for me this doesn't matter that much.

<comment><USER6> ...And I am lightly suggesting that _maybe it should matter_.

Hurting others unnecessarily is the only sin in the world. Don't ever, ever be That Guy.

<comment><USER7> This is too much.

Nobody is 'hurting anyone' \- not even slightly, by ensuring that their _free product_ also has ads.

If ads are unscrupulous, or if the company is doing shady things otherwise, then yes - bad.

But there is no moral argument against making sure that decent ads work with a free product, or when ads are part of any product wherein the social contract is to that expectation.

Facebook has ads, just like CNN and Cosmopolitan, that's normal, ethical, and within the expectations for user's experience. Again, shady things notwithstanding.

In 2018, people can pay or see ads, or a combination of both, there is no pragmatic way around this, and too many decent products depend upon ads for their existence, that's where we are until someone comes up with something better.

<comment><USER8> > Nobody is 'hurting anyone' \- not even slightly, by ensuring that their free > product also has ads.

This isn't a convincing argument. As an extreme example, replace ads with something that's clearly detrimental for the user: "nobody is hurting anyone by ensuring that their free product also delivers a LD50 of cyanide" is clearly bogus. While ads don't kill people, the way that they are distributed currently has many negative externalities that the user must deal with.

<comment><USER7> So 'ads are bad' but 'cyanide is bad' therefore 'ads are bad'?

I'm not down with your logic.

The vast, vast majority of ads are just fine and have no negative externalities.

Most 'food' is fine, but you can gorge yourself to death.

Cars are ok as well, even though they cause death.

<comment><USER8> > So 'ads are bad' but 'cyanide is bad' therefore 'ads are bad'?

More like "ads are bad" means that your free product with ads is also bad, just as "cyanide is bad" makes your free product laced with cyanide bad.

> The vast, vast majority of ads are just fine and have no negative > externalities.

The problem is that bad ads show up basically everywhere. Sure, 99% of the ads on news websites can't infect me with malware, but there's that one that Google hasn't gotten around to banning yet that is running on every website…and even if this wasn't true, basically 100% of them track me or make my web browsing experience slower.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I interviewed at FB recently (didn't pass the in-person) and the one question I asked each interviewer was "tell me about the parts of FB I don't see" \- because they have an odd hiring process where you don't figure out what team you'd be working with until after you are hired...and I had no interest in pushing Ads, but understood that wouldn't be a great pitch from my side.

Turns out there is a LOT about ads at FB. Not everything, but a lot. Particularly in the Seattle office.

I was surprised I hadn't passed the interview (thought I did well), but in retrospect I'm glad. Whether that's sour grapes on my part, the fact the news has been full of reasons to be glad not to work at FB, or that I was very concerned that anything I did would end up pushing ads is something I can't be 100% certain of.

<comment><USER10> > you don't figure out what team you'd be working with until after you are > hired

That sounds like hell. I need to meet the team I'll be working with before accepting an offer. It's the only way to know if they're competent, can communicate, and are not assholes.

<comment><USER11> > I need to meet the team I'll be working with before accepting an offer. It's > the only way to know if they're competent, can communicate, and are not > assholes.

This is _exactly_ how Facebook's onboarding process works (at least in engineering). You spend 3-4 weeks in "bootcamp" classes (React 101, IOS 101, etc.). After that, you spend another 3-4 weeks auditioning teams -- you sit with teams that have open headcount for a week, attend their meetings, and work with a mentor on a coding project. Once you decide which team is the best fit, you "graduate" bootcamp and join them.

It's not perfect -- if there's no open headcount on your dream team, you'll have to pick another, but it's the best onboarding process I've seen from an employee standpoint.

<comment><USER12> Is this process for new college grads or senior engineers? I can't imagine principals go through this process, do they?

<comment><USER13> All engineering hires go through bootcamp, period. The only engineering hires that don't go through team selection are domain experts hired for a specific team/role ahead of time.

<comment><USER8> > The only engineering hires that don't go through team selection are domain > experts hired for a specific team/role ahead of time.

Is this a significant fraction of hires? Because I find it really odd to waste the time of a say an embedded software engineer trying to teach them React when they're pretty set on working on something else anyways…

<comment><USER13> Generally speaking, the bootcamp process has a wide variety of different "classes" to take, covering a broad range of the Facebook stack, and no one engineer is ever expected to learn everything. So in this case, an embedded engineer would likely attend primarily backend focused classes, and would then choose from backend or embedded systems teams to work with, while someone interested in mobile or web frontend technologies would each have completely different experiences from everyone else. And ultimately, your experience coming into Facebook has far less to do with which classes or technologies you learn in bootcamp than what you're personally interested in. If you're interested in mobile, but only have experience in backend applications, that's fine – that's exactly what bootcamp is there for! We want to help you learn the technology or context that you're interested in so that you can find a role or team that you'll be happy to work on.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Anyone who has written a few scrappers knows how brutally ineffective this is. Yelp tried to pull the same thing and it took me about 3 minutes to rectify my "for fun" scraper. It's also really not that difficult to write a smart scraper that you say, "Look for these things in this post. However you find them, replicate it for the others". Which is ultimately what I made my Yelp scraper do.

If there's a pattern, I will find it, and I will exploit it. <3

<comment><USER15> Yep, seems like a total waste of time. The people scraping will spend the necessary time to get around this (and then distribute that knowledge to the masses) so it seems like a pointless arms race. Facebook employees could better use their time on developing actual features that bring value.

<comment><USER5> How is this waste of time / pointless ? They do bring value for fb, they reduce the loss of ad money.

<comment><USER15> Because they are fighting the people that absolutely do not want to see advertisements whatsoever (most normal people I know do not have ad-blockers), which already makes them the least likely to be attracted by advertisements. If anything, those brands are souring their reputation anytime they are seen by those kind of people in a medium that those consumers find obnoxious.

You can make a similar argument that the RIAA/MPAA going after piracy is a waste of time. Again, focus on delivering value to actual customers.

If Facebook spent more time on making a friendly ecosystem / community I would be more open to signing back up again. Instead, it seems they are hyper- focused on advertisements at the expense of everything else.

<comment><USER16> "Delivering value to customers"? It's a website-cum-message board. There is no further value to deliver via software features; all of that work is going towards meeting the needs of advertisers.

And advertisers are asking them to show what they are doing to combat adblocking. FB isn't doing this to target customers least likely to convert, they're doing it to check a box for their ad sales team.

<comment><USER17> Newsflash: Facebook's customers are advertisers, not the honeypot victims stuck to their site.

<comment><USER18> But there's a trade off. Fewer ads better placed means fewer people likely to block them and more people likely to actually look at them instead of skim past. It's also likely that the people who were blocking ads are less likely to click on them and thus (for some advertisers) lower value impressions anyway.

Revenue is (simplistically) the product of impressions and value per impression. It's not therefore immediately obvious that moves like this actually do increase revenue for them, especially over the long term since one potential side effect of doing this is giving more ammunition to the 'delete Facebook' crowd.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> This example is likely not specifically targeting ad blockers, but ad _scrapers_ for transparency: [https://www.propublica.org/article/facebook- blocks-ad-transp...](https://www.propublica.org/article/facebook-blocks-ad- transparency-tools)

> Our tool recognized ads by searching for that word. Last year, Facebook > added invisible letters to the HTML code of the site. So, to a computer, the > word registered as "SpSonSsoSredS."

That article also links to this tweet in that paragraph.

<comment><USER20> > We have collected more than 100,000 political ads in this way. But > Facebook's latest update blocks tools like ours from clicking on the "Why Am > I Seeing This" menu.

> The company added code that prevents clicks generated by computers — > including browser extensions — on just that one button. Web browsers make a > distinction between a click generated by the computer and one generated by > your mouse. Clicks from your mouse are marked "isTrusted" and those > generated by computer code are not.

<comment><USER21> You can patch the browser to make isTrusted configurable, or to set it unconditionally true.

<comment><USER22> In my opinion extensions should be able to synthesize clicks on behalf of the user where isTrusted=true from the perspective of web content.

</comment></comment></comment></comment><comment><USER23> I wonder at which point will we just stream pages as interactive video content with a text optimized codec. Most pages on the internet are bloated to the point where it might just make sense. (I am not advocating, I am predicting)

<comment><USER24> At a previous job in the not-too-distant past, we needed to support IE7 for contractual reasons. I'd unironically floated the idea of launching a VM on the server running Firefox, and starting a VNC session, streamed over frames of a GIF. Clicks and keypresses would be transmitted with AJAX calls.

In a later project, we played with the idea of using an asm.js-compiled Webkit to render SVG (with embedded HTML) into a canvas due to mixed browser support.

Long story short, it's not inconceivable.

<comment><USER25> Write once, run everywhere promise of the web delivered like never before.

</comment></comment></comment><comment><USER26> At first I thought that this might be another good indication that having "Facebook" on your resume isn't the golden egg it once was.

Then I realize it's even better than before because it demonstrates for a potential employer that you'll push whatever buttons you're asked to in exchange for money, regardless of whether it's good for the user, the internet, or society as a whole.

<comment><USER27> This is why I genuinely believe STEM majors should be required to take more liberal arts (e.g. ethics) classes as a requirement to graduate.

<comment><USER28> Sure, we could all stand to be more well rounded. Liberal Arts majors should be required to take more science courses so they don't fall for dumb stuff like climate change denial or anti-vax nonsense.

<comment><USER29> I can't seem to find any data which suggests that Liberal Arts majors are significantly more likely to fall for climate change denial or the anti-vax movement. I find that most studies correlate political leaning with these beliefs, not area of study. Given that the Liberal Arts are overwhelmingly liberal in the US, I'd say your claim is probably wrong.

If anything, a Liberal Arts educations ought to provide students a higher degree of skepticism towards all expressions of ideology, and seek to find the truth through critical research. Obviously, that's the ideal, note necessarily the reality in all cases, but it seems your notion of Liberal Arts is more akin to "hippy-dippy" nonsense, not critical study.

</comment></comment></comment></comment><comment><USER30> If you don't mind getting rid of every post in the timeline, there's News Feed Eradicator for Facebook:

[https://chrome.google.com/webstore/detail/news-feed- eradicat...](https://chrome.google.com/webstore/detail/news-feed-eradicator- for/fjcldmjmjhkklehbacihaiopjklihlgg)

<comment><USER31> At this point, maybe just delete your Facebook account?

<comment><USER32> Look, I don't like Facebook, but it provides me tangible value sans the news feed which I feel is bad for my health.

* Messenger is the hands down the best messaging experience that exists. It's super bloated which I'm sure annoys this crowd but it doesn't skip a beat.

* FB Events is the only thing I've ever been able to get people to use -- email chains and group messages aren't half as productive.

* Their real name policy, social graph, and blocking tools are essential for dealing with creepy people and stalkers.

* Local buy/sell/trade yardsale type things operate nigh exclusively on Facebook.

* Local professional networking and enthusiast groups also organize on Facebook.

<comment><USER33> Messenger Lite feels pretty slim.

FB Events is something that could be a spin-off with FB login. But yes, at least people use it.

</comment></comment></comment></comment><comment><USER34> A few days ago [1], I found this filter for UBlock Origin to be working for me so far:

        facebook.com##[id^=hyperfeed_story_id_]:has([id*=feed_sub_title_]):has(span:has-text(/S.*p.*o.*n.*s.*o.*r.*e.*d/))

GitHub issue: [https://github.com/uBlockOrigin/uAssets/issues/3367](https://github.com/uBlockOrigin/uAssets/issues/3367)

[1]: [https://twitter.com/mholt6/status/1092191140168622080](https://twitter.com/mholt6/status/1092191140168622080)

<comment><USER35> If I worked at Facebook and was evil, I'd put some text in that span that caused catastrophic backtracking :)

<comment><USER36> Regexes can be evaluated in linear time, so you'd have to send gigabytes worth of text to cause any noticeable slowdown.

<comment><USER37> I believe with lookahead/behind a regex is technically not "regular" anymore, so you can definitely DoS a regex without GB worth of text.

<comment><USER8> Sure, but that regex doesn't have lookahead/lookbehind?

</comment></comment></comment></comment></comment><comment><USER38> meanwhile [https://text.npr.org/](https://text.npr.org/)

ps: thanks for the comments below, I was curious about similar websites

<comment><USER39> Horrible. If this is what all the web primitivists advocate I rather just look at ads.

<comment><USER38> Enjoy paradise then

</comment></comment></comment><comment><USER40> Blame Adblock Plus and friends. They try to extort sites by asking for a cut of ad revenue (up to 30%) to be whitelisted in the "acceptable ads" program.

Given that ABP have already determined the ads are "acceptable" when they reach out, the demand for cash is mere extortion. FB obviously chose to not give in and told ABP to take a hike by obfuscating the source code.

<comment><USER8> Both are pretty scummy, to be honest. I don't see why they can't share the blame.

</comment></comment><comment><USER41> I don't really object to ads per se. I'm used to ads in television and in newspapers, magazines. I even remember reading ads very carefully in a couple of computer mags when I was a teenager. Good ads can be entertaining and informative as well. Stupid or simple ads you just skip over.

However, there are some traits I'd still like to see in ads:

\- they live in a dedicated box that doesn't make it harder to read the actual content. I focus on one thing at a time. If it's the content, it's not the ads. If you make a good ad, it might be your ad

\- they don't flash or animate to distract my eyes

\- they would ideally have some (textual) content I could pause to read for details if I'm interested

\- they wouldn't necessarily change all the time: it would be nice to have the same ad placed on a site for a week or two, so I could come back to it if I find it interesting. Print media has this advantage. I still remember some iconic ads from my youth. I have absolutely no idea which ads, brands, or names I've happened to see online today

\- they don't hog my cpu, my gpu, or my battery; they don't get to execute code or try to spy on my online life: just a nice image is enough

\- youtube and other video services wouldn't serve ads longer than 10 seconds: it is about the time I can still hold my attention to continue with the video. Placing two-minute ads in youtube episodes just causes me to mute the ad and continue watching some other video. I wouldn't mind a few 10 second clips of reasonably well-matched ads in a programme that lasts half an hour.

I understand someone has to pay for the bandwidth and service but the only way an advertiser can get to visit my head is to ask gently, humbly, and make it worthwhile for me. Flashing, popping, intruding or forcing is not going to make it. This is why we have adblockers.

<comment><USER40> You do realise that you've described Facebook ads (with a few minor exceptions)?

The commercial ad blocking companies still try and block FB ads because FB won't give them a cut of the revenue.

The non-commercial projects try and block FB ads because they are not interested in incentivising ad companies to behave. They just want to block all the things.

</comment></comment><comment><USER42> I tried around with the twitter homepage yesterday, and figured that the transferred html, js, images etc when just pressing F5 on twitter (with a hot cache!) was way bigger than a png (!) screenshot of the same page.

My prediction: the next step will be to move rendering server-side, just send pixels, and the only thing ad blockers will be able to do (after moving to deep learning or some similarly ridiculously expensive way to combat this idiocy) is to place literal black bars over all ads.

Now that I wrote it down, I'd actually like to have that in uBlock now, so I can see which sites are horribly ad infested, and make my choices accordingly.

<comment><USER43> Why bother covering the rendered ads when you can just use a bit of machine learning on the client side to recognize the text, yank it back into a decent layout and then filter it and present it back as HTML. When it comes down to it all web sites still need to present something to the user that their eye and brain can understand, so just intercept before final presentation and treat it like an OCR problem to solve.

<comment><USER42> I'm not saying it's impossible, I just don't want to tell any dev that that's what they should be spending their time on. It's the ultimate late-capitalism job description: fighting the adblocker wars. :(

Personally, when a page gets too annoying to surf with adblocker, I just drop the site. The web is big enough (so far) that I don't have to be bored.

</comment></comment></comment><comment><USER44> All we need is for the EU to pass a law that says paid content must be clearly laid out in the HTML not just final presentation.

<comment><USER18> My bet is that if and when this happens, it will be a side effect of rules to facilitate accessibility for people who are partially sighted or blind.

</comment></comment><comment><USER45> Does this meet the required standard for accessibility users? Do they have any such obligations?

<comment><USER46> No one cares about accessibility when ad dollars are at stake.

<comment><USER47> They do when regulators come calling with significant penalties.

<comment><USER48> There are no significant penalties at this time.

<comment><USER49> They're not focusing on sites like FB, because using them isn't a requirement of any meaningful task.

Lawyers are definitely going after things like companies' job sites. Applying for a job is a protected action and no discrimination is allowed, either intentional or not.

</comment></comment></comment></comment></comment><comment><USER50> I read it somewhere that Chinese websites are taking this kind of obfuscations to the next level. The simple ones are randomly ordered divs re-layouted by JS at runtime. The complicated ones include custom font files which characters and glyph don't match, so for example <div style="font-family:custom- font">abc</div> would look like "123".

<comment><USER51> The font one seems like it's pushing it too far even for regular users since it breaks copy and paste.

Also this all seems like it would break accessibility regulations.

<comment><USER52> China has accessibility regulations?

<comment><USER53> Yes. See [https://www.w3.org/WAI/policies/](https://www.w3.org/WAI/policies/)

I know it's currently trendy to make digs at China (increasingly common in HN comments) but it's a huge country with plenty of talented engineers and accessibility advocates. With an aging population [0], such accommodations are becoming increasingly important.

[0] [https://www.bbc.co.uk/news/world- asia-19630110](https://www.bbc.co.uk/news/world-asia-19630110)

</comment></comment></comment></comment><comment><USER54> I'm surprised that companies don't create packaging materials that are actually also ads and have them be stuffed in all the packages that say Amazon sends.

I'm resentful of advertising in general, so the comment above is a morbid expression of "how low can they go". There are some kinds of ads that I do like for their entertainment value e.g. the Squatty Potty ads by the Harmon Brothers or the Apple Cookie Monster ad [0][1][2].

[0] [https://www.youtube.com/watch?v=YbYWhdLO43Q](https://www.youtube.com/watch?v=YbYWhdLO43Q) [1] [https://harmonbrothers.com/](https://harmonbrothers.com/) [2] [https://www.youtube.com/watch?v=MF6OYq_2Ooc](https://www.youtube.com/watch?v=MF6OYq_2Ooc)

</comment><comment><USER55> Ironically, at a failed onsite I was asked to design some visual component with as few DOM elements as possible.

</comment><comment><USER56> Kind of explains why React came from Facebook. If you're abusing the DOM to obfuscate the nature of your content, and running into performance issues.... hmmm

</comment><comment><USER57> Wonder if this breaks screen readers and if someone could go after facebook for accessibility violations in the EU where public protections are strong.

<comment><USER58> I just tested it, it does not.

Most of the nonsense is "Display: None" so screen readers ignore it entirely. These elements seem to exist to stop simplistic HTML element matching, screen readers obey CSS.

</comment></comment><comment><USER59> All of this talk about decieptful advertising; this only applies if you are a stupid person, or a young child that hasn't been taught differrently. A person who believes what they see on TV is real.

Most rational people 10 years old or above know enough to know that you should research a product before you buy it. What is the commercial/ad actually claiming? What does the fine print say? warranty? If a person is buying a product based on advertisement claims alone, that person has an issue, not the advertiser.

To be honest, I like that these companies are spending so much time trying to identify products that I might be interested in, but haven't had the time to research enough about it to make an educated choice. Google turns my searches into ads embedded into email, or searches themselves. I ask Alexa about something or the Alexa wikiHow app, and the next time I'm shopping on Amazon, I have targeted ads for those same items I had begun research on.

It's a beautiful time saver in my opinion. Once you've narrowed your search down to a specific item, you can read reviews, compare it to similar items, do a search on that same item.

That's the same tactic with selling data; the company purchasing the data is trying to connect consumers with product. If the consumer doesn't do their research and buys a shitty product, there are still several layers of consumer protection where the customer can be reimbursed.

As far as predatory gaming ads and games geared towards kids... don't give your kid access to your credit card, buy them a gift card. It's not that difficult. There are too many stupid people on this planet because technology has broken survival of the fittest; allowing stupid people to live long enough to breed more stupid people.

</comment><comment><USER60> I had to explain this story in a non technical way to someone in our office.

I said, Do you remember the "Pen Island" prank that kids used to pull in school? For those that aren't familiar someone gets a sign on their desk that they think reads PEN ISLAND, But its all in block letters without spacing so it looks just as much like PENIS LAND.

This is what Facebook now does to the "Sponsored" text next to ads in order to trick your Ad Blocker.

Well fuck you Facebook.... I am not writing PENIS LAND on my desk. Even if you offer me a bunch of cool new jelly pens to be a part of your club.

And fuck you too Ms. Applebom, for letting me keep that sign on my desk the whole day WHEN YOU KNEW EXACTLY WHAT IT MEANT!!!

<comment><USER61> How about:

Facebook jumbles up the way it sends you advertising content so it's harder for ad-blockers to identify and block it.

</comment></comment><comment><USER62> I saw this in the wild yesterday. It's beaten Ublock Origin so far.

</comment><comment><USER63> I use mobile version in a browser. Its faster and less fluff. I should have did this years ago. Facebook tries to make you use the mobile client for msg'ing, I just hit desktop view, and use the webpage, but really, I hardly ever use FB messenger anymore since they forced the requirement.

I was tempted to just use RSS feeds of groups I like, I dont like how FB reorders the feed for their purposes either.

Make your site crap, and I'll just strip it and view it the way I want.

</comment><comment><USER64> I don't understand that surprise. It's their business model, what do you expect? They need to earn money, right? If you don't like them, stop using them.

</comment><comment><USER65> Is it safe to predict that the world will eventually move to drawing to canvas rather than DOM, preventing the ability to block ads altogether?

</comment><comment><USER66> This tweet was originally posted two months ago.

</comment><comment><USER67> I'm not sure this has anything to do with adblockers. It could just be that they generate class names which is common in modern frontend build chains, wrap things in a lot of divs because they compose the styles in some kind of design system and have some kind of <span>S</span> hack to let UI text wrap at syllables.

</comment><comment><USER68> I'm curious to know what the actual overhead is of doing this. Not that I'm defending the crap Facebook pumps into our computers, but is "5 divs, 9 spans, 30 CSS classes" actually a useful metric in measuring the performance of a page? If it was 4 divs how different would things be?

<comment><USER69> Well take the gzipped amount of data that adds up too then the average cache time it lives in the browser times the number of impressions and additions and you'll get a good metric for wasted bandwidth at least.

</comment></comment><comment><USER70> WebGL and WebAssembly will be the killer combo against adblockers. I'm very bullish on both!

</comment><comment><USER71> Is it that hard to find the sponsored text and infer the structure from the surrounding elements (regardless of what that structure is?) Some basic knowledge of the DOM tree structure could make the algorithm very adaptive to any changes like this

</comment><comment><USER72> I wonder if this is a case where Facebook's past CFAA arguments will come back to bite them.

Somebody who uses an adblocker has not authorized the display of ads on their computer, and yet Facebook is bypassing the security measures the user has installed.

</comment><comment><USER73> Can someone explain why you can't just write a rule that filters every post that has "SPONSORED" in all caps?

Heck, I'd be fine with even "Sponsored" regardless of case even if it means I miss a few friends posts.

</comment><comment><USER74> I do the same thing, but instead I do it for putting plaintext contact email on my websites that won't get scraped for spam.

It makes it copy pasteable when rendered, while not incurring any funky processes or having to write new classes.

</comment><comment><USER75> If I were to rate my development ability to most HN devs, I would be rather mediocre.

But isn't this a bit juvenile a workaround for FB? It seem rather easy to workaround this as an ad blocker. Just a little doc tree parsing and regex?

</comment><comment><USER76> 'Facebook adds 5 divs, 9 spans and 30 css classes to every single post in the timeline to make it more difficult to identify and block 'Sponsored' posts, oh my.'

Wondering what else is going on here, other calls etc

<comment><USER77> If there is a dark pattern to create, you can be sure they've tried it.

</comment></comment><comment><USER78> Obligatory Hammerbacher quote: "The best minds of my generation are thinking about how to make people click ads. That sucks."

Wonder what the opportunity cost of so many talented people spending their time at FB working on stuff like. Or maybe I'm overreaching, and the business model is a necessary evil for a powerful social good that FB provides by "connecting the world".

</comment><comment><USER79> This is where applying AI to this can defeat it quite easily.

<comment><USER80> AI is overkill here. You simply need to look at the result of rendering the page.

</comment></comment><comment><USER81> Kind of their prorogative, isn't it?

</comment><comment><USER82> it's a free service and they need to make money, so they need ads to survive.

</comment><comment><USER83> C

L

E

V

E

R

(Edit: /s -- I do not endorse this concept at all.)

<comment><USER84> Pennywise clever, pound foolish? By that I mean, for me someone who robs blind people with a mechanical contraption [0] is actually _less_ clever than, say, a teenager without major development issues -- who may not know how to build that contraption (yet), but already knows why _not_ to build and use it. Okay, maybe teenagers aren't a good example ^^ but you get the idea.

[0] I'm not calling sponsored posts theft, it's just an example for "bad thing to do". Personally, I think this offends me on the HTML level way more than even on the ad blocking level... "they can do what they want with their site", but it still grosses me out to see stuff like this.

</comment></comment><comment><USER85> I got downvoted big time the other day for a very similar comment to this, but it needs to be said: People that complain about ads have obviously never had anything that they needed to advertise.</comment>


Is AI the Death of Capitalism? - <AUTHOR> https://www.reddit.com/r/Futurology/comments/9hrflt/is_ai_the_death_of_capitalism/ <comment><USER2> Imagine an A.I assistant that a society was using and you could use a slider to change how much you want to focus on society or yourself. I wonder if in time focusing on self would be the same as the society option as more people used it unselfishly.</comment>


Bitcoin mining on a 55 year old IBM 1401 mainframe: 80 seconds per hash - <AUTHOR> http://www.righto.com/2015/05/bitcoin-mining-on-55-year-old-ibm-1401.html <comment><USER2> _I ended up using one character per bit. A 32-bit value is stored as 32 characters, either "0" or "1"._

Bitslice DES does the same thing, although it uses the other bits too to execute multiple operations in parallel. Perhaps it could be possible to do much better than 80 seconds/hash on the same hardware.

Also, a missed opportunity to hash block #1401. :-)

</comment><comment><USER3> Still quite a bit faster then the old "pen and paper" method this machine was a replacement for.

<comment><USER4> Unit record equipment, more likely. Running a bitcoin hash on that would be an interesting piece of performance art.

Unit record equipment is mechanical enhanced manual processes using punch cards. They're "almost computers" but missing some key components. So you get a radix sorter in a big box. And a totalizer in a big box (more or less an adder). And a selector in a big box. And humans configure the machines by hand and carry stacks of cards between the machines. They were high tech perhaps a generation or three before the 1401 in the article.

</comment></comment><comment><USER5> Imagine if he solved a block with that thing? That's like douglas adams-level unlikely.

</comment><comment><USER6> I'd be curious to know what a modern day IBM mainframe can do, just out of idle interest.

<comment><USER7> Modern mainframes have an optional cryptographic coprocessor addon. The hardware, or cryptocard [1], is specialized to provide high-throughput for common cryptographic functions, including SHA-256. (It does lots more than that too.)

The latest cryptocard available is the Crypto Express5S [2] and is compatible with z13s.

And since modern mainframes can run Linux natively (s390x), you could probably get popular CPU miners to run. Albeit, you'd have to recompile for s390x and provide patches to utilize CPACF [3].

I could never find any SHA-256 hash rates for the Crypto Express5S, but if you really wanted to mine bitcoins on a mainframe, this would be the way to go.

[1]: [http://www-03.ibm.com/security/cryptocards/pciecc/overview.s...](http://www-03.ibm.com/security/cryptocards/pciecc/overview.shtml)

[2]: [http://www-03.ibm.com/systems/z/hardware/z13_specs.html](http://www-03.ibm.com/systems/z/hardware/z13_specs.html)

[3]: [https://www-01.ibm.com/support/knowledgecenter/linuxonibm/co...](https://www-01.ibm.com/support/knowledgecenter/linuxonibm/com.ibm.linux.z.wskc.doc/wskc_c_s02cpacf.html)

<comment><USER8> CPU mining hasn't been relevant for years.

<comment><USER9> You didn't really understand what he said.

</comment></comment></comment></comment><comment><USER10> Attempting to optimize that sounds like an interesting challenge. If you'd manage to actually use the BCDesque encoding somehow then that sounds like it would give nice perf boost.

<comment><USER11> Failing that, we just need trillions of vintage mainframes.

</comment></comment><comment><USER12> _Most of the time the hash isn 't successful, so you modify the block slightly and try again, over and over billions of times._

Question: What exactly gets modified over and over again? Is it the nonce that gets tweaked through every iteration? And is it correct to assume that for a fixed number of transactions that are added to a block, that there may not be a hash that works?

<comment><USER13> The nonce is the expected thing to tweak, but given current difficulty, it's pretty likely that trying all the nonces will fail. The timestamp can also be tweaked, and the transaction list changed. But miners usually change the "coinbase" transaction (which is the transaction that grants bitcoins to the miners) by putting an extra nonce in there, since there's extra room and the transaction can be modified without messing anything up. This is important in mining pool so miners can do a lot of hashes without constantly contacting the server to request a new block. See my blog post on mining for details of how the coinbase transaction is built by concatenation: [http://www.righto.com/2014/02/bitcoin-mining-hard-way- algori...](http://www.righto.com/2014/02/bitcoin-mining-hard-way- algorithms.html)

</comment></comment><comment><USER14> Great! It might be interesting to code this in FORTRAN for the 63-phase compiler for the 1401 [1]. I wonder how the generated code would compare?

[1] [http://ibm-1401.info/1401-FORTRAN- Illustrated.html](http://ibm-1401.info/1401-FORTRAN-Illustrated.html)

</comment><comment><USER15> Beautiful. Lots of fascinating details and photos… especially the status panel GIF. 😍

<comment><USER13> Thanks. It was a bit of a pain to make the status panel GIF; I hadn't kept the camera stationary, so I had to do a lot of image correction. So I'm glad to hear someone liked it.

<comment><USER16> ....and Google Drive stopped showing the image because "Too many users have viewed or downloaded this file recently". Is there a cached version somewhere?

<comment><USER13> Thanks for letting me know. I've switched the image to a different host, which hopefully won't hit a bandwidth limit.

What does HN recommend as a high-bandwidth, preferably free way to serve files such as animated gifs?

<comment><USER16> Thanks for re-hosting it :-) I'm a sucker for "do modern things on old hardware".

Just saw a great project at Maker Faire where some guys re-purposed old WWII radar tubes to make playable video games, one of which was flappy bird.

[http://tubetime.us/](http://tubetime.us/) and [http://www.labguysworld.com/Project_ESCRTs_001.htm](http://www.labguysworld.com/Project_ESCRTs_001.htm)

</comment></comment></comment></comment></comment><comment><USER17> How long does a hash take on a modern PC?

<comment><USER18> Towards the end of the article:

"The IBM 1401 can compute a double SHA-256 hash in 80 seconds. It requires about 3000 Watts of power, roughly the same as an oven or clothes dryer. A basic IBM 1401 system sold for $125,600, which is about a million dollars in 2015 dollars. On the other hand, today you can spend $50 and get a USB stick miner with a custom ASIC integrated circuit. This USB miner performs 3.6 billion hashes per second and uses about 4 watts."

</comment></comment><comment><USER19> This is awesome. Well done.</comment>


How Women May Have Shaped Men's Penises - <AUTHOR> http://blogs.smithsonianmag.com/smartnews/2013/04/how-women-may-have-shaped-mens-penises/

<comment><USER2> And the _ancestors_ of female fleas shaped flea penises.

Rather unremarkable result, and link baiting by the Smithsonian Magazine!</comment>


Halium: Hardware Abstraction Layer 4 GNU/Linux on Mobile Devices with Android - <AUTHOR> https://halium.org/ <comment><AUTHOR> src: [http://linuxfr.org/news/naissance-du-projet- halium](http://linuxfr.org/news/naissance-du-projet-halium)</comment>


Feedback for my website - <AUTHOR> http://webifieds.net Hi,
I've just launched a new website and would much appreciate your valuable and honest feedback.
Webifieds.net is a classifieds website for internet-related classified ads (or in otherwords, classified ads for anything online).
I would appreciate your feedback on the design and usability of the site, but also on the idea and the name (by the way, Webifieds comes from Web + Classifieds).
Many thanks. <comment><USER2> The guys from sitepoint are doing something very similar (<http://sitepointmarket.com/>) and it looks like they're having a hardtime getting posts. It's not exactly the same but its in the same neighborhood. To get some attention you would have to offer something none of these craigs- sites offer.

<comment><AUTHOR> Thanks for mentioning sitepointmarket. Actually, I didn't know about it before.

There's similarity for sure, but I think the direction is different, and hopefully there's a place for both of us.

</comment></comment><comment><USER3> Why would someone use this instead of Craigslist?

<comment><AUTHOR> Well, to be honest, you're not the first person to confuse it with Craigslist, so I probably need to change the tag line to make it more clear.

Probably something like: Classified ads for anything "Internet"</comment></comment>


HTML5 XBOX Controller in Firefox Nightly - <AUTHOR> http://weblog.bocoup.com/javascript-firefox-nightly-introduces-dom-joystick-events

<comment><USER2> The explanation of the analog stick axes needs clarification: "For example, the XBox wired controller has 4 axes (top to bottom, left to right, and two diagonals.)" What's a diagonal axis, if not a linear combination of the vertical and horizontal axes?

At minimum, for an Xbox-style controller, you should be seeing a vertical and horizontal axis for each of the two analog sticks, and an axis for each of the two analog triggers. From an original Xbox controller, you should also have six analog buttons (though they are usually treated as standard binary buttons).

Other than that, this looks pretty cool. Perhaps in a few years, we'll see stuff like this combined with WebGL to make an open-source, cross-platform gaming environment that goes way beyond the current crop of 2d Flash games.

<comment><USER3> Even sillier, I'm pretty sure it has 5 axes.

Left Stick X and Y, Right Stick X and Y, And another Axis used for the 2 triggers.

Yeah, I know how silly that sounds for the triggers, but that's how it works.

<comment><USER2> That does sound odd, since it's possible to detect the state of the triggers independently. The configuration utility for the Xbox Controller driver that I use allows me to map any of the physical axes to the virtual axes X, Y, Z, Rx, Ry, Rz, and Slider, so I guess that's roughly what's supported by the Windows input APIs. I don't really know how it's reported by the controller, though, other than the fact that it isn't standard USB HID.

</comment></comment></comment><comment><USER4> 1) It's a general joystick api, not just xbox.

2) You can't actually use an xbox controller with a computer (and hence with firefox) anyway without a USB cable. You could use a 360 controller, but not the first Xbox.

<comment><USER5> Xbox 1 controllers are just USB. You only need an adapter. Microsoft made them for a while for Final Fantasy. If you just cut the end off a controller and a usb cable, the wires inside are even properly color-coded.

<comment><USER6> I'm fairly sure you need a separate driver for controllers from the original xbox (<http://www.redcl0ud.com/xbcd.html>)

USB xbox 360 controllers don't need any installation last I checked.

<comment><USER5> A quick Google reveals drivers for Windows, as well as drivers for Linux and Mac OS X. I feel it's safe to say that drivers are needed for either.

</comment></comment></comment></comment><comment><USER7> Yes. I was waiting for this, this is something I really wanted for one of my side projects.

</comment><comment><USER8> Anyone know if there a tablet pressure/tablet pen direction api in browsers yet?

</comment><comment><USER9> Cool stuff you guys are doing over there at bocoup.</comment>


Foldr - mnemonic - <AUTHOR> http://foldr.com/ <comment><USER2> I guess a short explanation is in order. foldr/foldl are folding or reduction operations. Heard of MapReduce? Well, fold is the reduction part (foldl specifically). It takes a list, function, and an accumulator and returns a list and the final accumulator value as a result. Pretty much every functional language has one and foldr/foldl names come from S/ML and later from Haskell.

You can see an example here: <http://www.cse.unsw.edu.au/~en1000/haskell/hof.html> The difference between foldr and foldl is how the list is processed and in the final list (left to right or right to left) so depending on what your function is, order does matter. Also, foldr is not tail recursive so it can't be optimized nicely.

These sorts of constructs are coming back to forefront of computing since they offer us a very efficient way to do distributed computing. I use MR all the time these days to deal with large data sets.

<comment><USER3> That's weird.. I just had an SML class and we never learned it was call folding... It was just being recursive on a list.

Also, the way the website is made the list seems to be infinite (stream) which is impossible in SML only in Haskell.

</comment></comment><comment><USER4> Fess up, you found this while searching for a domain for a prospective file- hosting site you're working on, huh eru? :)

<comment><AUTHOR> Not that glamorous.

I actually use it for reminding me which one is foldr and which is foldl in Haskell. I always forget.

I can not remember how I found it originally, though. Perhaps via Lambda the Ultimate.

</comment></comment><comment><AUTHOR> You may have guessed that there is also foldl.com

<comment><USER3> I might be hung over right now but I don't get it?

<comment><USER5> Functional humor.

</comment></comment></comment><comment><USER6> Brilliant... and what a waste of such a nice domain name!

<comment><USER7> fondlr.com is still available...

</comment></comment><comment><USER8> Personally I always liked:

<http://tabularasa.org/>

<comment><AUTHOR> You may want to join <http://www.this-page-intentionally-left-blank.org/>

</comment></comment><comment><USER9> Effing brilliant. I wish I had thought of this...

</comment><comment><USER10> The script fascinated me so much that I missed completely the fact that the page _does_ have a body, which explains the mistery. Awesome.</comment>


XenForms – A Xamarin.Forms UI Inspector - <AUTHOR> http://www.xenforms.com/ <comment><USER2> This has been a personal project of mine for the last 8 months. I'm excited to be at the point when I can start gathering feedback from Xamarin.Forms developers. The video on the site demonstrates several features that allow developers to explore the Xamarin.Forms Framework and their own application's while its running.

</comment><comment><AUTHOR> And in the spirit of giving, here is an open source These Crazy Walls clone written in Xamarin.Forms and CocosSharp:

[https://github.com/jonedavis/Xamarin.Forms-With- Cocosharp](https://github.com/jonedavis/Xamarin.Forms-With-Cocosharp)</comment>


Show HN: Tipping culture for developers on the Web - <AUTHOR> https://tips.60devs.com <comment><USER2> I love how the cartoon at the top of the page shows two "indie-developer" looking characters in all their idiosyncratic glory, but then lower on the page the user profile photo is of some corporate tool looking guy. It's kinda like the the joke that is "tipping culture". One supposes it is to show sincere gratitude and be merit based, but almost inevitably it ends up being like any other economic exchange, just providing cover for employers who are unwilling to provide a fair wage to their employees. GitHub is already populated with code generated on the unacknowledged narrative of "free ($) OSS". This seems to provide some whitewash.

<comment><AUTHOR> Thank you for your comment. It's a good point, we'll change that profile photo asap :)

<comment><USER3> So you're going to whitewash it better? I think you missed the point.

Not that I care, I think it's still an interesting project.

</comment></comment></comment><comment><USER4> Does not seem as if this concept has proven to work yet. Why? Developers are mostly thrifty and looking to solve a problem. Most of the time they can do this without help using Google. Developers also don't value their time enough or properly and like solving problems, so they would be more likely to try to solve the problem themselves than pay someone for it. That's why you need managers... developers are often not good decision makers in terms of utilizing their time most profitably.

<comment><USER5> Those are some interesting stereotypes you've got there. Developers don't value their time?

<comment><USER6> I've noticed this as well. Most developers will spend 40 hours building a wheel instead of offering to wire up a pre built solution that costs money.

<comment><USER2> I can tell you exactly why I might fall into this stereotyped category.

1) The wheel is closed-source, and I do not trust the vendor with that component. Linkages to that upstream code/license might not be acceptable/cannot not be justified given the cost/headache of dealing with the transaction.

2) The wheel is open-source and the code is crap or the license incompatible.

3) The wheel is open source and I worry that the direction of the project is not compatible with my needs. It might be awesome for the moment, but given that the project can potentially deviate in a direction that won't work for the needed solution, linking my code to that upstream project doesn't make sense. If the project does end up going in a different direction, I must break my stride, drop what I'm working on, and go back to retrofit that particular solution.

</comment></comment></comment></comment><comment><USER7> Sadly, "tipping culture" is all too often a product of employer refusal to pay employees a living wage. They shift that burden onto their patrons, forcing service workers to be dependent upon the generosity of their employer's customers.

Why on earth we'd ever want to see "tipping culture" brought into the world of software development is beyond me.

Worst-case scenario I'm imagining right now:

This whole "tipping culture" thing catches on. A rough amount of tips developers earn becomes public information somehow. Unscrupulous employers use this to offer lower salaries and/or raise increases. This persists for years, allowing salary negotiations industry-wide to employ an expectation of tipping to replace good wages, driving salaries down to incredibly low levels. This becomes institutionalized to the point that developers become just another kind of service worker, dependent on their tips to actually survive.

Best-case scenario I'm imagining right now:

Worst-case scenario happens. SV Developers get a harsh dose of reality and humility by learning what a horrible thing "tipping culture" is. SV Developers become incredibly more conscious of how people live on non-SV salaries.

</comment><comment><USER8> This is a good idea for a site like stack overflow, but it suffers from the same problem that many ideas suffer from which is you need a network to be valuable, but you don't offer value to the first users. To get out of this trap you either need a lot of money or luck.

I want to be positive - the best I can offer is go very niche. Dominate a very tiny language/framework and build out.

</comment><comment><USER9> Tipping is the wrong model... would you tip an oncologist who gave you a second opinion for free? Nope. You would just be very grateful.

<comment><AUTHOR> Thanks for you comment,

would you tip an oncologist who gave you a second opinion for free? Nope. You would just be very grateful. \- basically, this is a reason why it's called "Tipping culture", when you go to a restaurant you have a choice to pay or not pay a waitress there, and nobody can force you to leave tips, right? - But, usually people don't say, that the service was super nice and that's all :( normally they leave tips.

Here, it's the same. Previously, you didn't have an ability to pay developers who helped you and now you have it, so it's up to you to pay or not to pay. It's all voluntary.

<comment><USER10> Please don't lump us in the same category as waitresses. I have all the respect for their job, but I really don't want to work for 8 usd/hr.

</comment></comment></comment><comment><USER11> Great idea! Why hasn't anyone tried this before?

<comment><USER12> They did (gittip).

<comment><USER13> … and Flattr … and TipTheWeb … and Gratipay

<comment><USER14> ... and Tipjoy

<comment><USER15> Here's another great one, with bitcoins:

[https://www.changetip.com/](https://www.changetip.com/)

It's too bad that these ideas keep failing, if one system would work out it would make the web so much better.

I wish the very best to the developers. Maybe you guys can make it work.

It works on reddit with gold, so it's not like it's impossible to pull off....

<comment><USER14> I don't think it _can_ work. Tipping systems require someone to _think_ about whether they want to tip.

The alternative is what I call "microsubscription": a middleman takes a single fixed subscription, then distributes on behalf of users. Examples include Amazon Underground, Apple Music, Spotify, Netflix, Google Contributor and so on.

Where these fall down is that they're walled or semi-walled gardens. They don't really work on the open web, users have to be funnelled through some central pipeline for reliable tracking of usage.

Which is understandable: open web schemes up until now have had the problem of fraud. Manageable but potentially fatally expensive and offputting.

I'm interested in this problem space for two reasons. First, advertising sucks. It distorts the vision that the early internet held out. We got linkbait and exploitatively addictive web design instead.

Second, I solved the problem of reliably tracking visits to websites on the open web (patent granted in Australia, pending in the USA). As a side effect, the same protocol can be used in apps, games, API calls -- anything that has a network request-response system with some kind of command channel (especially headers). Plus it can seamlessly integrate with paywalls.

Of the microsubscription providers already in service, the one I worry about most is Blendle, because it presents no upfront mental barrier to consumption. On the other hand, it's another walled garden. We'll see.

<comment><USER16> There's also flattr, which also follows the "micro-subscription" model

<comment><USER14> Yes, I include Flattr. They have in common with Kachingle (and, if you squint, Patreon) that you need to deliberately activate the payment.

I think that this still doesn't work because it still requires thinking. The whole magic of microsubscription is that no additional decision making is needed on the part of the subscriber. They pay once and thereafter consume without consideration or guilt.

Any act of making people think, no matter how small, is a barrier to entry. I think this is the fatal flaw in any classic micropayment or tipping scheme.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> "...PayPal." No thanks. "BitCoin..."

OK, where's the Stripe & Square integration?

<comment><AUTHOR> We've chosen PayPal, because of few very cool features:

1\. It supports B2B payments. We us this model, because we don't want to keep your money. Whenever you want to tip somebody you do it directly to that person.

2\. You can still receive money even without being a member of PayPal. If you are not a member and somebody makes a payment to you, PayPal sends an email asking you to register and receive your money.

3 It's very simple for you (you just need to put an email address).

<comment><USER17> The problems with PayPal are varied, sundry, many, etc. I've had my own problems with them that convince me I'll never go back. "Simple" is not enough of a reason to trust PayPal with my business ever again.</comment></comment></comment>


Does Google see UK developers as unimportant? - <AUTHOR> http://blog.alsutton.com/2011/09/01/does-google-see-uk-developers-as-unimportant/

<comment><USER2> I imagine it's the same that caused Yahoo to move it's developer day away from London, London is horrendously expensive if you want to hold a large tech event. We're talking in the million dollar range (to get conference facilities, get internet line, insurance, get food & drink), not to mention it's expensive for attendees to travel and stay there.

I stayed in a 4 star hotel in Berlin last year for €30/night, for a similar hotel in London you'd be paying 5-10x that price.

If you're living in London traveling to Berlin isn't a big deal, travelling to London from anywhere else is a much bigger deal.

<comment><USER3> Cities or towns that want to host conferences work really hard to make them attractive to conferences. (See the work done by local authorities/venues @ <http://wiki.linux.org.au/Ctte/LCA_Bid_Guidelines>) Maybe the value proposition just isn't there for London with everything else they've got going on?

edit: I remembered Yahoo had to hold a London hack day in some kind of stadium (to get enough capacity); the roof was struck by lighting and opened letting water in. Video of the incident <http://www.youtube.com/watch?v=acUEvkMu2xM>

<comment><USER4> The problem is the accomodation for the attendees, Google/whoever might get a good deal on the facilities but if none of your attendees can afford to go then what's the point?

For the cheapest "chain" hotel in London (Travelodge) you're still looking at between £75-£110 a night

</comment></comment></comment><comment><USER5> There are a bunch of Developer Advocates that are based in Google's London office. They do fairly regular office hours at London's TechHub space, work with UK teams, and in general are active in the city/country.

So while there might not be big formal events this year in London, there's a lot more day-to-day availability and involvement.

</comment><comment><USER6> I'm not sure I agree at all, there's about 6 or 7 UK based Google developer advocates, around a quarter of all the EMEA based Google developer advocates.

<http://code.google.com/team/>

So while we don't get the big Google conferences here, we do get the ability to meet with these guys reguarly if we want to.

For example, Paul Kinlan works a couple of days a week in an co-working space in Liverpool, if you want to speak to him, you can just arrange to drop by. I'm sure there's people in other countries who'd kill for that kind of access.

[http://doesliverpool.com/press-releases/does-liverpool- provi...](http://doesliverpool.com/press-releases/does-liverpool-provides- first-outpost-as-google-developer-outreach-looks-beyond-london/)

</comment><comment><USER7> Compared to London, Berlin is less expensive, better food, has more fun stuff to do, better weather, better accessibility, vastly more attractive women, and less of a police state. I'm sorry they are so offended but London just isn't all that much fun to visit.

</comment><comment><USER8> I think Berlin is a great choice - better than London. Berlin is developing and changing quickly and seems to be setting the scene for a perfect startup hub: lots of bright young people and cheap offices (cheap everything relative to the rest of europe) meanwhile London is primarily a financial district, not engineering.

</comment><comment><USER9> Immigration laws could be a reason. There are plenty of expat developers spread around Europe, for whom, it's much easier to travel to any city in Germany than apply for a UK visa. Arguably, this process is about as complicated as obtaining a US visa.

<comment><USER10> Are Schengen visas really easier to obtain?

<comment><USER9> Yes, but for people already working in any Schengen country, they don't need another visa to travel to Germany.

</comment></comment></comment><comment><USER11> I wonder if the negative attitude of so many Britons towards Europe might play a role (for bigger, non-local events).

Anyway, at a practical level:

\- No Euro, and higher prices

\- No Schengen

\- An island at one extremity of Europe

</comment><comment><USER12> Do Google even have any offices in the UK? It seems some tech companies have just forsaken the UK altogether.

<comment><USER13> <http://www.google.co.uk/intl/en/jobs/uk/>

[Edit: Guess how I found that!]

<comment><USER14> With duckduckgo.com ?

</comment></comment></comment><comment><USER15> The guy spends a _lot_ of time comparing populations. The US has five times the population the UK does of English-speaking monoglots - perhaps they want stronger ties with polyglot developers?

</comment><comment><USER16> Addressing one of the specific points in the post, I have to wonder, how much of a language barrier is there really for an anglophone in Berlin?

As a silly little English-only American, I spent a good chunk of the last year in Taipei, and didn't do too bad. When you really needed someone who spoke reasonable English, they were usually around. I'd think it'd be a lot better in Berlin, especially if you're just hanging around hotels and nearby businesses used to dealing with international clients.

<comment><USER17> IT people in Berlin speak very good English. Most of the "mistakes" they make are common German-to-English mistakes that you will automatically correct in your head after hearing them a few times.

The question is whether the work language is English or not. If people find it easier to discuss problems in their native tongue, then that is where you will miss out. And these discussions may be some of the harder conversations to follow.

</comment></comment><comment><USER18> _I'd be interested to hear what people think is the reason for Google holding events in Berlin, Paris, and Barcelona, and nothing in the UK_

Tired of poms whinging?

<comment><USER18> "The Nile ain't just a river in Egypt."

Hey, weren't there some poms looking for the sources of the Nile a couple of centuries ago? Any luck with that?</comment></comment>


Docker: Lightweight Linux containers for consistent development and deployment - <AUTHOR> http://www.linuxjournal.com/content/docker-lightweight-linux-containers-consistent-development-and-deployment <comment><USER2> This seems to be a fairly outdated article, despite the displayed date- it says the 'newest' version is 0.7, but we've been on 0.11 since 2 weeks ago: [http://blog.docker.io/2014/05/docker-0-11-release- candidate-...](http://blog.docker.io/2014/05/docker-0-11-release-candidate- for-1-0/)

It's some pretty amazing tech, and I love it with Vagrant for my local dev environment, and for full deploys. I'm not such a big fan of Dokku- it's a great 'heroku replacement' but one of the best strengths of docker, is you can just upload your code to a private repo(or use a trusted build on a private repo!) and pull that down and run to deploy. Dokku going through the buildpack process, while making it nice from a quick git push angle, sacrifices one of Docker's strongest features(consistency).

<comment><USER3> This is a great point and has bugged me for for the past few months - I'm sat there watching my 'npm install' whir by and I'm thinking - 'I reckon this is not the "docker way"'

Having said - I'm still trying to work out the combination of source repo and docker repo - i.e. 1 dev makes a code change - they commit the code to github - they then commit the docker image to the registry.

Now - does developer number 2 'git pull' or 'docker pull'

What I really like is how docker does not really enforce anything upon you - leaving the above question to be answered any which way.

Docker ftw!

<comment><USER4> I don't think sharing the image is necessary during development. I just add the Dockerfile to the repository and each dev builds their own image. If they are methodical they can pull the repo and rebuild the image at the beginning of their work day. Most times it will be rebuilt in a second because there have been no changes. If they don't rebuild the image, it will be the main suspect as soon as something breaks anyway, so I can't see this causing much trouble.

<comment><USER2> This is exactly what I do, just using Trusted Builds.

Right now one of my biggest curiosities, is doing mass deploys and unified logs. I've not tried to so it hasn't mattered yet, but it could be fun.

</comment></comment></comment></comment><comment><USER5> I like how they're saying that Docker's strength is in letting you never learn how to package applications. Which is a bit like saying that a Google self- driving car's strength is that you never have to learn how to drive.

The useful features of Docker are resource isolation, image layering, and staged deployment. The idea that you can run two versions of PHP or move your files between distros has been a solved problem for at least 30 years.

<comment><USER6> I'd go even farther and say that the main useful feature of docker is the image layering. Even the resource isolation has been available with LXC and cgroups for a while now.

But docker certainly has a nice way of letting you use all these features in a friendly package. It's often not the most original things that are the most groundbreaking, sometimes it's when something comes along and takes all the parts you already have and puts them all together in a useful way.

</comment></comment><comment><USER7> You can combine it with Vagrant as well. I used to use Vagrant with Virtualbox, but using the Docker provider, the development is much faster. The config files we are using is public and open source: [https://github.com/czettnersandor/vagrant-docker- lamp](https://github.com/czettnersandor/vagrant-docker-lamp)

However, if you don't have Linux, Vagrant can start a Virtualbox image with Linux and run Docker in it with a little modification in the Vagrantfile

<comment><USER8> How do you turn off the VM that is hosting the dockers? I.e. when none are running?

Btw, I found the vagrant documentation for the docker provider to be a bit lacking. I probably wasted a day getting it to work :(

<comment><USER9> If you're using Vagrant, you'll have to manually shut off the VM via `vagrant halt`.

If you're just trying to get started with Docker, Boot2Docker ([https://github.com/boot2docker/boot2docker](https://github.com/boot2docker/boot2docker)) is probably the way to go.

If you're looking for an Ubuntu-based Vagrant box, you can try out my Vagrant box ([http://ferry.opencore.io/en/latest/install.html#os-x](http://ferry.opencore.io/en/latest/install.html#os-x)). It's based off of 14.04. Be warned though, my box is very large (~4GB) as it contains many pre-baked images (Hadoop, Cassandra, etc.).

<comment><USER8> Thanks. Where do I issue vagrant halt (i.e. which folder)? The workaround I found was to go virtualbox directly and issue a poweroff. Not clean at all :(

</comment></comment></comment></comment><comment><USER10> I guess not, but can you run graphical applications in Docker ?

<comment><USER11> It's no problem to run an X server in the container and use VNC/X client/openssh to access it from your machine. See for example this blog post: [http://blog.docker.io/2013/07/docker-desktop-your-desktop- ov...](http://blog.docker.io/2013/07/docker-desktop-your-desktop-over-ssh- running-inside-of-a-docker-container/)

<comment><USER12> Don't you mean run the X server locally and an X client in the container?

<comment><USER13> You can do it either way depending on what you're trying to achieve. I have a dev container set up that runs Xvnc and/or Xpra in a container so I can connect to it from anywhere.

<comment><USER12> Possibly going a bit off-topic here - but isn't Xvnc arguably a "headless" X server, in that it appears to be a X server and a VNC server - but as X client/server terminology is round they other way from VNC (and pretty much everything else) it isn't really a "graphical" application in the sense of jmnicolas's original question...

</comment></comment></comment></comment></comment><comment><USER14> I get this is a 'hacker' but in what way this is a 'news'?

<comment> mike-cardwell [http://ycombinator.com/newsguidelines.html](http://ycombinator.com/newsguidelines.html) -

"On-Topic: Anything that good hackers would find interesting."

</comment></comment><comment><USER15> And a massive pain for security.

<comment><USER16> Assuming you are arguing in favour of VMs, the benefits of Docker stand, and you can perfectly run Docker containers within a VMs.

The feature sets/usage sweet points of OS-level package managers, language- specific package managers, VMs, containers, distinct/same hosts, ... are both overlapping and different enough that you need judgement to choose which one you want, but they are certainly not exclusive.

If your use case means you prefer VMs over containers and you don't need to combine them, fine, but every situation is different.

<comment><USER17> There are valid concerns.

Someone with access to the docker control socket effectively has root on your machine: e.g. `docker run -v /etc:/external_etc ubuntu visudo -f /external_etc/sudoers`.

Don't let untrusted users (or scripts) run docker.

<comment><USER18> Which is exactly what the Docker docs say: _" First of all, only trusted users should be allowed to control your Docker daemon."_

[http://docs.docker.io/articles/security/#docker-daemon- attac...](http://docs.docker.io/articles/security/#docker-daemon-attack- surface)</comment></comment></comment></comment>


Adam's Life Hacks Part One: Personal Wiki Time - <AUTHOR> http://blog.adamsmith.cc/2010/12/adams-life-hacks-part-one-personal-wiki-time.html

<comment><USER2> You might want to consider something a bit more lightweight than a full blown media wiki instance, say, Tomboy desktop notes. <http://projects.gnome.org/tomboy/></comment>


Ask HN: My 2016 Macbook Pro Dilemma - <AUTHOR> 1. Touch Bar ESC key
I hit this like crazy all day while developing.  I'm having problems because the new ESC key has no keypress "feel" feedback, and also repeats if your finger rests on it for any extra time.  Why didn't they carve out a real ESC key on the left?  They carved out a pressable TouchID on the right!
2. Arrow keys
The new format squashes the up and down arrow into the size of one normal key.  I'm constantly hitting shift to go up and up to go down.
3. Track Pad palm hits
While in the middle of typing my text cursor will jump to wherever the mouse cursor is because of my palm.  The new trackpad is huge and unavoidable.  There is supposed to be palm rejection, which works when I try to intentionally reproduce it, however for some reason during my natural typing I'm doing something it thinks is a real click.
4. Keyboard
While my other complaints are real problems for me, I could imagine getting used to the new keyboard feel, but it feels like a step down.  I've heard some people call it too soft or shallow and I would agree.
Where do I go from here?  These issues have taken a toll on my productivity.  It seems hard to imagine getting comfortable with these new quirks.  Part of me wants to stick it out and work through it, while the other part of me is really pissed off and wants to go back to my previous 2013 Macbook Pro.
Apple has me trapped because I develop iOS apps and need Xcode, ios simulator, etc.  That's actually the ONLY thing that I couldn't replace on a non-mac.  I'm going to explore remote build options today (a mac on the same network, but for Xcode/builds), but I don't expect it would be sensible or without major tradeoffs for active development (different than a CI which I already do this with).
Does anyone else feel like the only reason they still have a mac is because of Xcode?  It seems sad that's what it has come to. <comment><USER2> Apple have abandoned developers looooong ago... it is time to move on and join the Surface ride :)</comment>


Voters could decide whether to split California into three smaller states - <AUTHOR> https://www.cbsnews.com/news/california-voters-could-decide-whether-to-split-into-smaller-states/ <comment><USER2> Clickbait headline; voters lack the power to implement a split.

<comment><USER3> Voters also lack the power to implement a Brexit

</comment></comment><comment><USER4> This is like the Green party for POTUS: runs everytime but never gonna happen.</comment>


Instant search hacker news - <AUTHOR> http://hn.algolia.com/

<comment><USER2> This is just a link to the search box that's at the bottom of every page - does this _really_ deserve a submission?

Really?

<comment><USER3> Well, I have just found it... STFW is better now. ;)

</comment></comment><comment><USER4> Cool, I tried a few searches for links I've saved off and it works quite well</comment>


Show HN: Tor_ssh.sh – One Command to Enable SSH via Tor to Any Ubuntu Server - <AUTHOR> http://www.nickbusey.com/code/2019-03-01-tor-ssh/ <comment><USER2> Please apply a license to the file.

<comment><AUTHOR> The repo is marked MIT.

<comment><USER2> No, the file.

<comment><AUTHOR> Is there a reason the file needs a License when the whole repo already has it?

<comment><USER2> Because people aren't going to copy the repo. They're going to copy your script.</comment></comment></comment></comment></comment>


Levittown: The Imperfect Rise of the American Suburbs - <AUTHOR> http://www.ushistoryscene.com/uncategorized/levittown/ <comment><USER2> This was a very insightful article, which deserves more upvotes than it has. It was very informative for me from the point of view of contemporary American history, especially as we hear of the rising "trend" (aren't they all trends) of younger folk giving up on suburbia and moving back to the cities.

If nothing else, it introduced me to the song "Little Boxes".

</comment><comment><USER3> Forget the cite, but the first American suburb layouts were actually based on cemetery plots. Because you can't build cemetery plots on top of each other, they were forced to create all the artificial winding roads and figure out how to maximize space.

So if you grew up in a suburb, your grave will essentially be the same.

<comment><USER4> This is a little hard to credit. What's so efficient about winding roads? A tree laid out on a grid would be much or more efficient, wouldn't it?

</comment></comment><comment><USER5> _Levittown itself arguably embodied the best and worst of the postwar American story; it was a result of the entrepreneurship and ingenuity that has come to define the American spirit, but it also participated in the violent prejudice that has also been part of American history._

It really irks me when all the good stuff is attributed unquestionably to American Entrepreneurship, and for all the accompanying bad stuff there's a long and nuanced story with lots of historical context and no clear, single, indistinguishable cause.

This sort of thing is too common. Here's another instance of this sort of reasoning far closer to home: rugged entrepreneurship clearly explains the massive success of the US tech industry, but exploitative labor practices in hardware and device manufacturing are caused by a myriad of global geopolitical and economic circumstances that cannot be obviously explained by any one factor.

edit: to be clear, "the story is complicated and there's no one cause" is the correct answer in both cases. Obviously. But also, in many cases, entrepreneurship benefits either passively or actively from nascent conditions. For instance, large swaths of sub-urbanization were undoubtedly driven by white flight.

<comment><AUTHOR> _For instance, large swaths of sub-urbanization were undoubtedly driven by white flight._

Um, no. Not in the case of Levittown.

Just after WWII, suburbanization was driven by the fact that a) there had been a terrible, deep and long recession just prior to the war 2) during the war, with two income families unable to have kids because hubby was off at war overseas and wifey was working in a factory at home, savings rates approaches 50% for some parts of the war (in part due to rationing -- people were encouraged to grow vegetable gardens so that what farmers grew could go to feed our soldiers overseas) 3) women who had been recruited to work in factories during the war were encouraged to go home and have babies and be full time wives so the returning soldiers could get jobs (and many women were very happy to do that) 4) a very high percentage of men had served in the military and now qualified for federal help with getting a house, as well as federal help with going to college.

This is the roots of the sudden large middle class you saw in the 1950's. And that is the root of the high demand for housing, which America worked hard to meet in record time. We are still living with the legacy of that decades later when our demographic has changed and it no longer serves us that well.

I have no doubt that this benefited whites more than blacks. But it was not rooted in whites trying to get away from blacks/cities/whatever per se.

Edit: My point about Victory Gardens was about the impact on personal finances. They also rationed sugar, cigarettes and other things. The point is that there were a lot of two income families who were not having children and there were also no luxury items to buy during the war. So personal savings rates were crazy high.

<comment><USER5> > Not in the case of Levittown.

Okay, even if, why does this matter? Lots of suburbanization was motivated by white flight.

> I have no doubt that this benefited whites more than blacks. But it was not > rooted in whites trying to get away from blacks/cities/whatever per se.

Not being around minorities most absolutely, undeniably, as a matter of pure fact _WAS_ a motivation for leivttown. Fuck, here's a _quote_ saying as much from the contracts:

Originally, the Levitts' racist policy was enshrined in the lease itself, which stipulated that "the tenant agrees not to permit the premises to be sued or occupied by any person other than members of the Caucasian race."

No body was bothering to even try to hide it.

<comment><AUTHOR> Yeah, no one bothered to hide their racism. It was part and parcel of the system. It was so part and parcel of the system that if they had, instead, been building luxury high rises in the big city, you would have seen similar stipulations. I thus see no reason to conclude that suburbanization was motivated by a goal of specifically getting away from blacks. It was motivated by people who had lived hand-to-mouth during the recession finally having the means and ability to buy a single family home of their own.

I am well aware that racism ran very, very deep at the time. For example, the federal minimum wage law was originally intended to get the South in line with other parts of the nation in terms of what it paid and it was a de facto attempt to outlaw the practice of paying blacks about half what whites got paid for the same work. It was passed prior to WWII. It was failing terribly. The initial result was that blacks got fired in droves (which is part of what drove blacks out of rural Southern states into big cities of the Northern states). They weren't able to make it stick at all until after WWII began.

So I know racism ran deep. It was open. It was intractable. And it was not, per se, the reason whites invented the suburbs and moved there. Unprecedented middle class wealth was the driving force behind the invention of the suburbs. Blacks tended to be left out because blacks were generally left out economically. They also would have been left out had well off whites invented some other housing solution. But leaving them out was not the raison d'etre for the invention of the suburbs.

<comment><USER5> > Okay, even if, why does this matter? Lots of suburbanization was motivated > by white flight.

Anyways, this tangent is so completely unrelated to my original point that we might as well be quibbling over wording.

</comment></comment></comment></comment></comment><comment><USER6> i don't see how this has relevance on HN. sure its interesting (or at least you may find it so) but so is a cat jumping into a box. I dont see how this has anything to do with compute science / entrepreneurship / Tech

<comment><USER7> This article is more relevant, and better written, than 99.9% of the Techcrunch, inside baseball, Ayn Rand worshipping bullshit that makes the front page on this site.

<comment><USER6> most of the articles are about programming, data mining, cryptography, etc. you must be going to a different [http://news.ycombinator.com/news](http://news.ycombinator.com/news) website.

if those topics for you are too 'inside baseball' for you, perhaps you should try another news site. one that's not labeled 'hacker news' might be a great place to start.

as far as Ayn Rand worshiping articles, what ever.</comment></comment></comment>


Oxford dictionary adds "twerk," "selfie," "phablet," and more voguish vocabulary - <AUTHOR> http://qz.com/119200/oxford-dictionary-adds-twerk-derp-selfie-phablet-and-more-voguish-vocabulary/

<comment><USER2> Twerk just means to twitch or jerk the body but people turned it into a sexual dance move. By the way Miley Cyrus behavior is unacceptable.

</comment><comment><USER3> Feels good to be validated.</comment>


Russians thank U.S. president on CIA tip terrorists used Telegram - <AUTHOR> https://www.washingtonpost.com/world/putin-thanks-trump-for-cia-intel-that-foiled-a-planned-terrorist-attack-in-russia-the-kremlin-says/2017/12/17/f4274600-e349-11e7-9ec2-518810e7d44d_story.html?utm_term=.cf2b0c57fd8e <comment><AUTHOR> Is this article suggesting that the tip was connected with Telegram?

<comment><USER2> I don't think it's clear from the article what information the CIA specifically provided, nor whether the use of Telegram by the suspects was discovered by Russian intelligence before or after the tip.

<comment><AUTHOR> I would consider what you say as good judgement.</comment></comment></comment>


Apple: Macbook Air isn't suitable for simultaneous use of Xcode and external display - <AUTHOR> http://www.scribd.com/doc/14238829/MacBook-Air-Decision

<comment><USER2> I had a first gen MBA for 9 months. Exact same kernel task issue - it was always hooked up to my 24-inch. Ended up going out of my way doing some undervolting to keep one of the cores from shutting down. It's not like it was actually overheating when it would shutdown one of the cores before my little hack. It was maintaining regular temperatures, even tested with a fan on it on a raised platform.

Anywho, 9 months was enough for me to realize I needed more juice and I've since graduated and hack from home full-time so I don't really need mobility. My new MBP+ Intel SSD is working just fine.

As for the MacBook Air.. I fell asleep with it one night and woke up to a cracked screen. After I got that fixed I took it to Apple for another issue and they returned it to me with a _german_ keyboard. Huge mess up on their part, got it on the consumerist and such. They gave me a new one which I sold. /rant

</comment><comment><USER3> Is it possible to a transcript from the court proceedings? I'm not familiar with NZ law at all. I'm mainly curious to see how Apple argued that plugging in an external monitor into an external monitor port and running an Apple- built program on an Apple-built computer could be argued as "inappropriate use". That's some crack lawyering!

<comment><USER4> So, reading the order it seems that what happened was:

1\. Guy is shopping for a computer for dev use.

2\. Guy talks to sales consultant, explaining what he needs to do, and is told "get a MacBook Air".

3\. Guy discovers MacBook Air isn't capable of handling the workload he's putting on it, it overheats and shuts down CPU cores.

4\. Guy files dispute.

5\. Apple says "yeah, the the MacBook Air can't handle this type of load".

6\. Dispute judge says sales consultant shouldn't have recommended the MacBook Air, then.

7\. Dispute judge says guy can return MacBook Air for a full refund since he was misled into believing it could handle the work he needed to do.

Moral of the story: an ultra-thin laptop which explicitly trades off performance for size probably isn't the ideal machine for compiling lots of stuff while also powering a monitor the size of a breakfast table, and salespeople who tell you it is shouldn't be trusted.

<comment><AUTHOR> Nope, not the ideal machine. a $10k Mac Pro would be much better. I was given the impression it would be adequate though, and I picked it for it's portability.

If it's not adequate for the tasks it shouldn't be promoted as such. The web page for the Macbook Air says it comes with Xcode, and runs a large external display. Perhaps I should have known better, but I tried to do my research. ;-)

<comment><USER5> Yea, I don't think people quite understand what the Macbook Air issue is. As a fellow MBA owner, I can vouch for this behavior. The system will become completely unusable while the 'kernel_task' takes over the system trying to cool it down.

I've experienced the exact same thing running a 24" LCD, firefox, and Entourage. Hardly an uncommon or extreme setup, but it's enough to throw the system off kilter. And when kernel_task goes into "cool this thing off NOW" mode, the system is unusable for 4-5 minutes.

The MBA is a beautiful monster.

<comment><USER6> Is your MBA a revision A or revision B?

I've heard that the revision B (128GB or 120GB hard disk) is more stable.

</comment></comment></comment></comment></comment><comment><USER7> My boss had serious problems with his MacBook Air using Firefox on JavaScript- heavy web sites all day. They refuse to fix it / replace it under AppleCare saying that using a web browser is inappropriate use! Crazy.

Obviously they can't afford to just come clean and admit the issues.

</comment><comment><USER8> Interesting. I bought a (march'09 macmini) to run dual monitors both at 1920x1200. So far it's doing the job quite well. Xcode included. Though I had to upgrade (max out) the ram.

<comment><USER9> Do they now have two monitor ports of some sort? My mini had only one DVI.

<comment><USER10> Yes: Mini DisplayPort to Dual-Link DVI

<http://www.apple.com/macmini/specs.html>

<comment><USER11> I don't think this is related to the Macbook Air problem, but Apple doesn't seem to be doing so well with Mini DisplayPort and large displays:

[http://store.apple.com/us/product/MB571Z/A?fnode=MTY1NDA3Ng&...](http://store.apple.com/us/product/MB571Z/A?fnode=MTY1NDA3Ng&mco=MjE0ODQ2Nw)

<comment><AUTHOR> This story is about my Macbook Air. In January I'd had enough of Apple and Renaissance mucking me about, so gave them another week to respond, they didn't so I filed the dispute. I also purchased a new 15 inch Macbook Pro to use in the mean time. Got it home, and it started exhibiting problems too: <http://vimeo.com/2911394>

Apple said to switch the power settings to "high performance" and leave them there. Basically I think this forces it to use one of the video cards and not the other. Since then it hasn't shown the problem, but the battery doesn't last as long...

Apple. Love 'em, Hate 'em.

</comment></comment></comment></comment></comment><comment><USER12> To understand the problem fully, you have to make a serious distinction between first and second generation Airs.

I have both, and the first generation becomes completely unuseable rather quickly, external display or not, when you push it even mildly. (Youtube (non- HD) alone will do it.)

The second generation is much more resistant, but if the room gets hot, with my 24" external monitor connected, I do see the kernel_task slowdown at times. (E.g., when a Time Machine backup kicks in, with 10-12 apps going, mostly in the background, and I'm doing something mildly computation-intensive in the foreground.)

</comment><comment><USER13> Is there a version of whatever this is that _isn't_ on scribd?

<comment><USER14> There's a download button.

<comment><USER13> It doesn't work.

By "doesn't work" I mean that after turning on JavaScript for scribd.com, it tries to pop up a menu over the top of the Flash embed. But popping up anything on top of embedded Flash doesn't work in my browser (FF3 with Gnash on Linux), so I use AdBlock to block the embedded Flash. Then the download menu offers me a "PDF" option. Clicking on that ought to give me a file download; instead, it pops up a box prompting me to sign up for an account with Scribd.

In short, Scribd is a privacy-invading pain in the ass. So, is there a copy of the document that isn't on Scribd?

</comment></comment></comment><comment><USER15> Amusing. My eeepc can handle a 24" display and a maxed-out CPU load without any problems. All for about $2000 less than the MBA.

</comment><comment><USER16> I didn't bother reading all the legalese, but I have a feeling the external monitor has nothing to do with it.

<comment><AUTHOR> I agree, but it's what Apple used as it's legal defense.

<comment><USER17> Well the cause of the issue is poor design on Apple's behalf, but:

External monitor -> greater use of video memory -> greater heat -> kernel_task pegging the CPU. See the discussions above.</comment></comment></comment>


Show HN: Hypertextual – a blogging framework to fight chickenshit minimalism - <AUTHOR> https://github.com/angrysql/hypertextual <comment><USER3> It seems a little like overkill to bring ruby into the equation here. Standard shell tools can do this just fine.

<comment><USER4> Along these lines, I had built up my site using makefiles, imagemagick, and a little perl (to translate multimarkdown to HTML). Super simple, super lightweight.

Never really understood why site generation needed custom tools, on demand page generation, databases, etc for what amounts to the web equivalent of a mail merge.

<comment><AUTHOR> Very cool... can I get a link?

<comment><USER4> Its on my server, which is currently offline. I'll see if I can dig up the source in a day or so.

</comment></comment></comment></comment><comment><USER5> Put up a simple screenshot with an example and I'm 50% more likely to try it out

<comment><AUTHOR> Even moreso than a live sample? [https://hypertextual.herokuapp.com/](https://hypertextual.herokuapp.com/)

I guess I didn't communicate very well that the site could be viewed live at that URL.

</comment></comment><comment><USER6> There is this a kind of "elitism" that pushes people to think that blogs are just chunks of text. This might be true in I.T but a lot of bloggers need ways to style and insert rich interactions in order to better tell their story.

<comment><AUTHOR> That's absolutely true! hypertextual isn't a one-size-fits all thing, by any means; for me, it's about building what I need - no more and no less - <USER2> then getting to use what I've built.

If someone else uses it, I'll be excited! If nobody else ever uses it, I'll still be excited - because as simple as it is, it's something that I can use, and enjoy using.

And to be fair - Markdown is pretty damn expressive... you just have to roll your own expression if you want anything beyond the basics. But again - it's about only using what I need, and about getting to use what I've built.

</comment></comment><comment><USER7> What advantage does this have over say Jekyll?

<comment><AUTHOR> No idea. I don't know what Jekyll is; I'm not really a web developer and I'm in the early stages of learning Rails.

I read that talk by Maciej Ceglowski and it made me really want to build something of my own, so I did.

There are probably other solutions out there that do the same thing, but I really wanted to roll up my sleeves, write something, and fling it out into the ether to see what happened.

<comment><USER8> You might find Jekyll and similar stuff interesting - basically, software for building fully static websites from a similar starting point. I don't know that it's strictly necessary, as the real problem is front-end bulk.

But yes, diving in and making something that works is a good impulse.</comment></comment></comment>


Using React without JSX - <AUTHOR> https://github.com/ustun/react-without-jsx <comment><USER2> I don't get why using `h('string representing DOM')` is preferred over using React.DOM.

Strings are awful. Editors/IDEs can't do much with strings without extensive tooling.</comment>


Fermilab – Vandals Fix "Broken Symmetry" - <AUTHOR> http://news.fnal.gov/2017/03/vandals-fix-broken-symmetry/ <comment><USER2> Is this article one day early?</comment>


Jamming GPS Signals Is Illegal, Dangerous, Cheap, and Easy (2017) - <AUTHOR> https://gizmodo.com/jamming-gps-signals-is-illegal-dangerous-cheap-and-e-1796778955 <comment><USER2> Good article, and shows the vulnerability of GPS to simplistic devices. eLoran was proposed as a ground-based backup to GPS for situations such as this, as jamming that signal would take resources your ordinary consumer wouldn't have. However, the funding for this was nixed and most/all of the towers were torn down.

</comment><comment><USER3> >Air-Traffic Control Is in the Midst of a Major Change from Radar to GPS

Nope, no foreseeable issues there!

<comment><USER4> Overstated? Radar isn't going away. But most folks don't have radar. Aircraft 'ping' their gps location all the time. Receivers for this are on the market. This is extra data (when available) for pilots and small-town airports to use, to increase safety.

</comment></comment><comment><USER5> I'm kind of fascinated by the tire pressure broadcasts. Combined with a camera for one-time ID, this could power a really comprehensive tracking system. Gostomelsky was able to receive these at the curb; I wonder how much further they would go?

</comment><comment><USER6> Wait so this guy put his tracker stations into black boxes with FBI markings on them? Isn't that highly illegal to be impersonating FBI equipment or something?

<comment><USER5> Doesn't everyone name SSIDs etc. "FBI Surveillance"? I think you have to more directly impersonate them to be guilty of... impersonating.

</comment></comment><comment><USER7> Spoofing GPS position is also surprisingly trivial, it can be done with cheap SDR.</comment>


How to root a Linux machine using a kernel NULL pointer vulnerability - <AUTHOR> http://blog.ksplice.com/2010/04/exploiting-kernel-null-dereferences/

<comment><USER2> Would you rephrase the article to make it clear it's a module designed to make the kernel vulnerable and not a vulnerability of a kernel currently in use?

And if I read the article correctly, you have to be root to load the module

<comment><USER3> I don't think you understand what's going on. A kernel-side null-pointer dereference is normally a denial of service, but this article explains how to convert it into privilege escalation.

Using a kernel module with the bug in it lets the article talk about that particular transformation, without emboldening a bunch of script kiddies with a new rootme script. You can of course replace that kernel module with any null-pointer dereference you happen to notice in the kernel changelog.

<comment><USER2> > A kernel-side null-pointer dereference is normally a denial of service, but > this article explains how to convert it into privilege escalation

Still, the title can be misinterpreted. The vulnerability being used is not a "real one" but one injected by a kernel module.

<comment><USER4> Actually there are several different things working in concert here. 1) The ability to mmap adress 0 2) Code which knows how to escalate privileges of an entire process if run in kernel space. 3) A kernel module which intentionally calls a bad pointer, to illustrate the point.

3 by itself is not a vulnerability. In fact, it is by itself just a stupidly written peice of code, the real vulnerability is in 1 & 2 which take advantage of a vulnerability in null pointer handling.

In fact, even if I didn't know anything other than 1 and 2, It is possible to start fuzzing syscalls until I accidentally cause one to dereference a null pointer, in which case it is game over.

Edit: another way to say this is: Kernel null pointer vulnerabilities are a class of vulnerability, much like buffer overflows are a class of vulnerability. Even if there is just a toy example of the exploit in an article, it doesn't change the concept. Much like the classic "Smashing the stack for fun an profit"

<comment><USER2> "Dereferencing null pointers for fun and profit" would have been a great title.

</comment></comment></comment></comment></comment><comment><USER5> There are so many things we take for granted when programming. It's always enlightening to see how simple bugs can turn into serious vulnerabilities for the clever hacker.

As programmers we really should educate ourselves about these things because there can be unusual interactions which you don't expect, such as caching behavior, or spreading your data across many virtual pages on a heavily-used machine.</comment>


Small Nuclear War Could Reverse Global Warming for Years? (2011) - <AUTHOR> http://news.nationalgeographic.com/news/2011/02/110223-nuclear-war-winter-global-warming-environment-science-climate-change/ <comment><USER2> I'm not sure how this is a reasonable conclusion given that over 500 nuclear weapons were detonated during above-ground nuclear testing.

It's also worth mentioning that air burst detonation will suck up virtually no debris from the surface, and also produces very little fallout.

There's a lot of good information at this site: [http://www.nuclearsecrecy.com/nukemap/](http://www.nuclearsecrecy.com/nukemap/)

<comment><USER3> Much of those tests were done over deserts or islands surrounded by water. A key part of the nuclear winter prediction is predicated on large scale fires.

<comment><USER2> There might, or might not, be "large scale fires" after a nuclear exchange. Regardless, "nuclear winter" is predicated on debris being injected high into the atmosphere, which will happen if lofted by the fireball, but not just from a regular fire.

</comment></comment></comment><comment><USER4> Nuking the atmosphere to dictate the climate is how the Matrix started.

</comment><comment><USER5> Nope.</comment>