An Analysis of the ProtonMail Cryptographic Architecture [pdf] - phoe-krk https://eprint.iacr.org/2018/1121.pdf <comment><USER2> I've quickly skimmed through the paper and the ProtonMail whitepaper the author supposedly based their analysis on. Sorry to be harsh, but the _conclusions_ of the analysis are pretty much BS. The reason is that the threat model defined by the author is obviously not the one ProtonMail defends against.

The author makes-up a straw-man threat model which is not based on anything that ProtonMail has published:

> A crucial security assumption, based on ProtonMail's self-professed security > goals in its specification documents (Ÿ2.1), is that the ProtonMail server P > is untrusted.

AFAIK, ProtonMail only claims that your email are unencryptable while you don't access the service. Since they have to receive and relay emails to regular SMTP servers and they provide access via IMAP to regular mail programs, _obviously_ their servers at some point will touch your unencrypted email. Therefore, you put a certain amount of trust on them.

So, yes, under the defined straw-man threat model, ProtonMail is not secure. Thank you Captain Obvious!

<comment><USER3> Unless you count the promises on their front page. " _All emails are secured automatically with end-to-end encryption. This means even we cannot decrypt and read your emails. As a result, your encrypted emails cannot be shared with third parties._ "

Obviously that's not possible when receiving mail via SMTP and providing access via IMAP. But that's not clear to non-technical users. I think it's fair to say that putting the above quote on the landing page is misleading.

 _EDIT:_ I was wrong on IMAP, which requires users to install a bridge application that handles decryption. That doesn't change anything about SMTP, though.

<comment><USER4> > Obviously that's not possible when receiving mail via SMTP and providing > access via IMAP.

Afaik on desktop all those involve the use of the ProtonMail Bridge application [0]? At least that was my understanding when I couldn't get my Thunderbird setup to check ProtonMail accounts, it requires the Bridge application.

The paper is weird in that context because the Bridge application is mentioned only once in the whole paper, as a side note: "For simplicity, we group it with smartphone applications."

But from what I understand their whole Outlook client setup wouldn't even work without it, so desktop clients are just as secure as the smartphone applications when they use the Bridge?

[0] [https://protonmail.com/support/knowledge-base/imap-smtp- and-...](https://protonmail.com/support/knowledge-base/imap-smtp-and- pop3-setup/)

<comment><USER3> Oh, looks like you're right on IMAP. But they still receive mail via SMTP from other servers, there's no way around it if you want to be able to receive email from people not using your service. You need to be confident that their receiving servers encrypt your email without storing an unencrypted copy elsewhere.

</comment></comment></comment></comment><comment><USER5> There are good general observations on e2e claims for any web app (5.1 and part of conclusions section), which apply to almost any web app, aside from design flaws in the protonmail itself.

<comment><USER6> These "design flaws" are more like design choices, which this paper misrepresents as flaws.

For example, the password brute force argument. That's actually a part of the paper that does not make sense to us. ZKPP provides guarantees related to the handshake between the client and server. It does not mean and never has meant that the server itself could not mount a brute-force attack on the user password. That would be possible from the server with any PAKE, including SRP, which we use. Having the key encrypted with a derivative of the password does not change this, because it was possible already. Slow password hashes throughout make this difficult of course.

He also attacks the encrypt outside feature, but a malicious third party email provider was never part of the threat model for this feature.

Finally, he attacks the fact that we allow weak passwords. Well, not enforcing strong passwords is a design choice, and not a crypto weakness. You can disagree with this choice, but it's going too far to try to dress it up as a crypto flaw.

<comment><USER5> I do get your arguments very well: having to advocate ZKPP primitive in our own solution I end in discussions about 'ZKPP does not prevent brute force' a lot. But it's unfair to rule out the analysis because this is a choice - <AUTHOR> are weaknesses, they are making the system weaker. The fact that you're providing ibcremental security in many spheres of your influence does not mean that, when being questioned, they are atill weak against practical risks. 'Secure against chosen threat model' is OK when threat model reflects reality, paper's author, I think, is coming not from basis of your threat models, but from basis of security challenges of modern e-mail.

Quite frequently the difference between what you want to protect against vs real threat landscape is what rules the expert community's decision.

I feel your pain (I work at company which improves data security of distributed systems in a number of ways, and get into similar disputes all the time), but the fact that you're mitigating some of the risks really well does not mean that other security properties will not be scrutinized against commonly recognized threat models.

Not too rewarding, yet the whole security engineering is a Sysiphus' labor fron day 0. Not having enough of in-community pressure (even when sometimes you're criticized for a wrong cause, which is 50/50 here) would lead to much worse consequences than a few uncomfortable questions asked.

</comment></comment></comment><comment><USER7> ProtonMail's response: [https://news.ycombinator.com/item?id=18492982](https://news.ycombinator.com/item?id=18492982)

<comment><USER8> This response does not directly address Kobeissi's points.

It rephrases and generalizes his points rather than tackling them head-on.

Kobeissi's main point is that ProtonMail could serve up any javascript they want to the client, including javascript that compromises the encryption or which hands over the encryption keys to ProtonMail.

Nowhere in ProtonMail's response is this point ever directly addressed or even acknowledged.

<comment><USER6> This point has been acknowledged since day one though, and it is not a point specific to ProtonMail. Any E2EE service that has a webapp is susceptible to this, and that's essentially all E2EE services out there.

The only way to address this point, with current technology and current standards, is to discontinue the webapp and force everybody to the native apps on desktop and mobile. It is the opinion of almost everybody in the industry that webapps are necessary, and that's why we, WhatsApp, etc, all provide webapps.

So the point is acknowledged (and has always been acknowledged), but the opinion being expressed (remove the webapp) is not something that we agree with.

<comment><USER9> > Any E2EE service that has a webapp is susceptible to this

But I don't think everybody are making webapps to service data of their E2EE product, isn't it?

The key point is, if the webapp can be compromised by anybody who are in control of the front-end assets, then what's the point of the entire ProtonMail E2EE thing? Especially when you have other solutions like GPG which also is an open protocol?

<comment><USER6> ProtonMail is based on GPG actually, and we also have native desktop and mobile apps. The webapp is just one platform that we support, out of many. E2EE services providing webapps is actually not uncommon, e.g. WhatsApp, Wire, etc.

</comment></comment></comment></comment></comment><comment><USER10> Hi,

I am new to these things.

(This is a little off topic but I figured I'd ask.) I took a look at my key (you can see it on my profile) and noticed it is 2048. Is there a reason to go with 2048 as opposed to 4096?

Sincerely,

</comment><comment><USER11> The End-to-End-Encrypted Web is a myth!

<comment><USER2> End-to-End-* is typically just a buzzword. Interpretation is different, depending on who you ask and what is the subject.

Regarding end-to-end encryption, back in 1984, Saltzer et al. [1] argued that "functions placed at low levels of a system may be redundant or of little value". So, proper email encryption is best achieved at the client application level. If we had got that right, ProtonMail would probably be irrelevant.

[1] [https://web.mit.edu/Saltzer/www/publications/endtoend/endtoe...](https://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf)

</comment></comment><comment><USER12> The analysis by Kobeissi is correct, and the claims by ProtonMail are a stretch, and sometimes they don't mean anything.

For example, from their security details page [1]:

"This means we don't have the technical ability to decrypt your messages, and as a result, we are unable to hand your data over to third parties."

This is not true for the web client, as shown by the paper and because of the inherent nature of web applications and the (incomplete) verification mechanisms we have today.

In the same page, they claim:

"As ProtonMail is outside of US and EU jurisdiction, only a court order from the Cantonal Court of Geneva or the Swiss Federal Supreme Court can compel us to release the extremely limited user information we have."

I'm not a lawyer and I don't care about the details. But they are saying that there is a way for a court to get their information. If that court cannot be used as a proxy for the US or other country I don't know, and normal users can't easily verify that claim. Only a lawyer could. But I admit, it sounds great!

The hardware security section is complete nonsense:

"Our primary datacenter is located under 1000 meters of granite rock in a heavily guarded bunker which can survive a nuclear attack. This provides an extra layer of protection by ensuring your encrypted emails are not easily accessible to any third parties. On a system level, our servers utilize fully encrypted hard disks with multiple password layers so data security is preserved even if our hardware is seized."

The nuclear bunker thing is really awesome, sounds like a lot of fun. But how does this offer extra guarantees to privacy? Does it have any windows? how secure are the doors? Also, the "multiple password layers" is nonsense, what does that even mean? Are you encrypting the same thing multiple times?

The main problem with ProtonMail and services similar to it is that they keep the concept of e-mail as we know it alive, when it should be disappearing.

ProtonMail's native mobile apps can be somewhat secure yes, but at that point, conceptually, they are the same as any other secure messaging app. But instead they are using an inferior protocol than the one being used by Signal, Wire or WhatsApp.

The claim that WhatsApp and Wire both have webapps I think is valid, every messaging service should do a better work warning users about the dangers of desktop/web-based applications. But if this is their only defense, then I think they should really need to worry about their own service and stop diverting attention.

\---

[1] [https://protonmail.com/security-details](https://protonmail.com/security- details)</comment>


VMWare to Acquire Bitnami - <AUTHOR> https://blog.bitnami.com/2019/05/vmware-to-acquire-bitnami.html <comment><USER2> The same as [https://news.ycombinator.com/item?id=19918766](https://news.ycombinator.com/item?id=19918766) only different press release?

</comment><comment><USER3> See discussion at [https://news.ycombinator.com/item?id=19918766](https://news.ycombinator.com/item?id=19918766)</comment>


Huawei's TinyBERT Is 7X Smaller and 9X Faster Than Bert - <AUTHOR> https://medium.com/syncedreview/huaweis-tinybert-is-7x-smaller-and-9x-faster-than-bert-2fbe76f03974 <comment><USER2> This is similar to DistilBert and DistilGPT2 by HuggingFace

[https://medium.com/huggingface/distilbert-8cf3380435b5](https://medium.com/huggingface/distilbert-8cf3380435b5)</comment>


Algorithms and Utils for Machine Learning in JavaScript - <AUTHOR> https://github.com/laoqiren/mlhelper <comment><USER2> Looks like very basic, but any libraries related to ML or AI in JavaScript is welcome. Anyone know what limitation in JavaScript would prevent it from providing a viable alternative to python as the 'glue language'?</comment>


Ask HN: Review my site - RepSheet.com - Look up your elected representatives - <AUTHOR>

Hi HN,
I humbly ask for feedback on a new service my friend and I are announcing today.  Anything from design, to features, to data, to performance...how do we make this SING?
http://www.repsheet.com
RepSheet lets you look up your local elected representatives, see the political zones you live in and the latest news for your reps.
It's a dead simple look up tool.  Punch in your address and RepSheet does the rest, giving you contact info for your reps, maps of your districts and a group news feed you can track by RSS or e-mail.
In the YCombinator/37signals spirit, version one has been kept simple.  We're just serving Chicago addresses now but plan on expanding quickly to other major U.S. cities once we have a round of feedback under our belt.
We used Django, specifically GeoDjango.  You can read more about technical implementation on our about page http://www.repsheet.com/about
This started as an effort to reverse engineer the NYTimes recently released lookup tool, Represent, for Chicago...then we realized we could and should bring this to the rest of the U.S.
Thank you.  I'll happily answer questions in the thread below.  We've got about 20 features we want to add, but we're holding off until we get feedback from the wild. <comment><USER2> This needs to be integrated with EveryBlock like yesterday. Have you talked with Adrian recently?

Also, this would be helpful not just for electeds, but for candidates - if I was in the IL-5 district, I would like to see information for all the people running all in one place.

[EDIT] More feedback from a campaign manager of one of the IL-5 campaigns and a clerk at the Seventh Circuit, who presumably know what they're talking about:

A step up from Civic Footprint

Links to ISBE and FEC disclosure

It needs to do intersections

It would also be nice, given that neighborhoods are a little ill-defined, if it gave you an easy way to click over to an adjacent neighborhood. If you type Lakeview, you get Tom Tunney's ward here. If you live next to Lakeview High, however, you're in what they define as Ravenswood, and you're Gene Schulter's ward

[EDIT TWO]

RepSheet lets you... • look up your elected representatives... • see the political zones you live in... • and track news about your reps. _political zones?_

Needs county board badly

<comment><AUTHOR> Candidates - _jots it down_

Everyblock - What are you envisioning? One of the things that people like about RepSheet in testing so far is how simple it is. It's like a single- serving site. Everyblock doesn't really do anything with elected officials. It's a different slice at local. They show you what's been published near you, we're showing you the politics are your address...

During research, we found lots of political lookup tools. We noticed a few things:

1\. They gave you A LOT of data. More data than the average joe could digest or ever care about. I'm bored to tears by most local political stories I read...and I've written and edited a few of them as a reporter. We want to make it super easy to get into your local politics without overwhleming the user.

2\. They had names that situate them as targeting "people who really really care about local politics" RepSheet alludes to the fact that politicos are all crooks. It's kind of silly, but it shows that we're not aiming for political zealots, non-profits and academics as our audience. We want to make something for the average joe who wants to see who's representing him and then suck on an RSS feed or daily e-mail with updates of their activities.

3\. Their lookup tools were 5-6 step processes that require you to input your address, state, zip...all separately.

So we want this to be dead simple. Fast and only give you the information you really want. I think there's a sweet spot somewhere between what we're offering now and what other lookup tools have.

<comment><USER2> My thinking was like this: Microlocal + Geodjango = perfect for Everyblock. I thought it's a great fit since they don't do it now, but this would be a great complement.

(Personally, I really don't think people are going to go to 18 different places for crime info (EveryBlock), politics (RepSheet), delivery (GrubHub), and so on. Someone's going to integrate it all and create a billion dollar business. Note that all three of those are here in Chicago. Hint, hint.)

Well, if it's going to be an RSS feed, let me choose 1) my language (I get a lot of Spanish for my 'hood) and 2) my sources - I want the Reader, S-T, and Trib only, for example. I got the Biloxi Sun-Herald in the list for my address.

Yeah, I used to use vote-smart, which forced me to find my zip+4, which was just completely a huge PITA. But the intersections and neighborhoods is a good idea.

<comment><AUTHOR> I hear you on 18 different services. I would say though...that a generic "everything" service is...generic.

And isn't google already kind of the generic everything service? if I want public records they send me to everyblock. If I want food, they send me to grubhub?

Yeah newsfeed will get a lot better. The language issue is an interesting one.

</comment></comment></comment></comment><comment><USER3> Well I just played around with it, but here's my feedback as someone outside of chicago:

1) You need a simple front page, "Live outside Chicago? Signup here to be notified when we add more regions!"

2) The functionality and mapping looks real good, but is really something users are looking for when looking up representatives? It seems to sort of clog and confuse the UI being there on the right. I'd probably move them below the fold or at the bottom of the page and instead put anchor links or further info links on the right.

3) RSS - awesome. Email alerts - awesome. Perhaps add the email alert form on the page itself instead of require an additional page view.

4) Need a more clear link to the front page, the logo at the top I'm more apt to click on is the one for Windy Citizen rather than RepSheet.

Overall a nice clean app that I'll use once you expand to cover my geo area.

<comment><USER4> Thanks for this input.

Added the "Live outside Chicago?" link to the footer. But don't have time right now to setup a form. ;( If we get 50 emails today I'll setup the form.

With the sub form, bit of js is a nice idea, also will do.

As far as the maps, it's a bit of eye candy, generally people like maps. It's just cool to see and leads the eye down the page. Not sure how informational it is right now, but might be in the future.

Not sure about the front page nav link issue. I think it's pretty simple but only way to really know is to get feedback and observe people using it. I'm sure it will undergo some changes soon.

</comment></comment><comment><USER5> Look very nice. I don't live in Chicago so its hard for me to come up with an address besides the one you have on the page as sample. I should be able to type a zip code only, an official name or a city name to get information as well. I think that information isolate enough an area for you to perform a meaningful search.

<comment><AUTHOR> Zip code only works. So does town only. We've ammended the js prompt on the start page to reflect this.

</comment></comment><comment><USER6> You mentioned reverse engineering NYTime's tool 'Represent'; Have you heard of their 'Congress API'? [http://open.blogs.nytimes.com/2009/01/08/introducing- the-con...](http://open.blogs.nytimes.com/2009/01/08/introducing-the-congress- api/)

Maybe you can use this data also.

<comment><AUTHOR> _Jots that down_ If there's enough demand for voting data, we'll add it.

</comment></comment><comment><USER7> May I suggest geolocation, so that they don't even need to enter their address. With a simple "Wrong Address?" link in case the geolocation fails.

</comment><comment><USER8> You could tie to <http://www.opencongress.org/> data for the House members

<comment><AUTHOR> Thanks. We'll give it a look.

<comment><USER8> Also are you familiar with the Sunlight Foundation? The have some interesting APIs and I hear they give "mini-grants" to sites like yours.

</comment></comment></comment><comment><USER9> My two cents - that name is fantastic. Has PR appeal all over it. This sounds like a brilliant strategy, good luck.

<comment><AUTHOR> A belated thanks. Naming things is hard. We spent weeks throwing around ideas until that one hit like a thunderbolt.</comment></comment>


Whereami – Using WiFi signals and machine learning to predict where you are - <AUTHOR> https://github.com/kootenpv/whereami/blob/master/README.md <comment><USER2> This Python package is a nice port of a system I wrote [1] which I call FIND (the Framework for Internal Navigation and Discovery) [2]. I believe whereami mostly supports laptops, but with FIND you can do internal positioning on a lot devices - Android phones, Electric Imps, Raspberry Pis, Particles, and soon ESP8266s [3] and even iPhones if you are willing to go through some extra setup. [4]

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

[2]: [https://github.com/schollz/find](https://github.com/schollz/find)

[3]: [https://www.internalpositioning.com/client/](https://www.internalpositioning.com/client/)

[4]: [https://github.com/schollz/find-lf](https://github.com/schollz/find-lf)

</comment><comment><USER3> I did something similar for Android a while ago [https://guidefreitas.github.io/programming/osx/docker/2015/0...](https://guidefreitas.github.io/programming/osx/docker/2015/09/17/wifi- indoor-location-svm.html)

<comment><USER4> You were a year earlier, nice :)

</comment></comment><comment> amiga-workbench I have a really dumb version of this without any ML at work, it uses the API on our Ubiquiti Unifi's controller to get a list of devices connected to each of our 4 AP's.

Its good enough to see if somebody is in a meeting room and unavailable or if they are probably free.

If you have more than one device on the network that belongs to one person, it uses the device that has been connected to an AP for the least time (theoretically that's the last one that moved)

</comment><comment><USER5> I wonder if there's enough signal to detect if someone enters the room, which could be another cool trigger (e.g., turn on lights).

<comment><USER6> I think you'd have trouble getting accuracy <10 feet. GPS is usually about the same. Still, almost every device has WiFi so this is basically a free feature.

<comment><USER7> If it kept the lights ON in a 10ft radius, it could still be pretty good.

<comment><USER6> Yes but that could mean turning the lights on when you are in the room next door.

</comment></comment></comment></comment><comment><USER8> Is there any reason this couldn't be ported to Android or iOS, after hacking together an interface using something like Toga?

<comment><USER9> You would have to add Android and iOS ways to collect the WiFi AP info (SSID, signal strength, etc). This package uses this [https://github.com/kootenpv/access_points](https://github.com/kootenpv/access_points) which can do it for OSX, Linux, and Windows.

Kivy would probably be an easier path than Toga. It incorporates pyjnius which you would need to solve the wifi scan on android, and already has the UI part figured out.

</comment></comment><comment><USER6> I wonder if it would be possible to create a coordinate system from this. This is, without any associations, map where each router is based on closeness to other routers and do a sort of "triangulation" to get coordinates.

<comment><USER10> I tries doing this kind of thing at a hackathon once and we discovered that actual coordinate systems are hard to do. The "signal strength" data wireless cards produce are very dependent on the model of the devices involved. They're pretty unreliable for generating coordinates.

<comment><USER6> I feel like there has to be some sort of algorithm that lets you generate something like this though. You would definitely have to calibrate the RSSI based on your current card and time of day. Maybe not perfect but you could get a spatial sense of your routers.

<comment><USER10> Well we were able to write an algorithm that kind of worked. But it relied more on just which MAC addresses are visible at a certain point.

</comment></comment></comment></comment><comment><USER11> Can I do this with a single wifi router in my house or is it saying I need 7 "routers" or access points for this to work?

<comment><USER5> I just tried it at home and it works great with a distance of just 10 feet or so between two locations.

My laptop can see 26 unique wifi hotspots (other people in the building, cafe across the street, etc), which is the number the author was referring to.

</comment></comment><comment><USER12> It's awesome seeing open source implementations of this. We were doing this in an R&D lab of a major tech company in 2009.</comment>


Ask HN: What are the *technical* reasons you favor JSON over bencode? - <AUTHOR> <comment><USER2> So for those of you who, like me, didn't know what Bencode is, here's the description from wikipedia[0]:

 _Bencode (pronounced like B encode) is the encoding used by the peer-to-peer file sharing system BitTorrent for storing and transmitting loosely structured data._

 _It supports four different types of values: byte strings, integers, lists, and dictionaries (associative arrays)._

...

 _While less efficient than a pure binary encoding, bencoding is simple and (because numbers are encoded as text in decimal notation) is unaffected by endianness, which is important for a cross-platform application like BitTorrent. It is also fairly flexible, as long as applications ignore unexpected dictionary keys, so that new ones can be added without creating incompatibilities._

[0] [https://en.wikipedia.org/wiki/Bencode](https://en.wikipedia.org/wiki/Bencode)

</comment><comment><USER3> Bencoding is as human-readable as MessagePack, but not as concise. I don't see why would anybody choose bencoding _today_.

Oh, and it doesn't guarantee that your message will fit in a single line. JSON can be encoded to a line.</comment>


TIL that new Economics PhDs have a 0% unemployment rate - <AUTHOR> http://www.usnews.com/education/articles/2009/04/22/for-economists-a-moment-in-the-sun

<comment><USER2> I mean, I'm not thaaat surprised:

In many places they won't give you the PhD until you have job offers.</comment>


April 2, 1986: A 'Laptop' Computer - <AUTHOR> http://blogs.wsj.com/wsj125/2014/04/01/april-2-1986-a-laptop-computer <comment><USER2> In reviewing Apple's contributions to computing, people tend to overlook the PowerBook, presumably because the first models were released during Jobs's absence. But it really was revolutionary, and turned the hulking ergonomic nightmares of the 80s into pretty much the form we have today. As a bonus, Apple also pioneered the use of the trackpad a few years later.

During the iPhone presentation, Jobs actually mentions the importance of the PowerBook in Apple's history. I always got a kick out of Jobs praising stuff from the Sculley era like the PowerBook and QuickTime, as it signaled that he recognized that Apple was bigger than him, and because Apple simply doesn't get enough credit for some of the stuff they did the "dark days".

<comment><USER3> The first laptop proper is probably the GRiD Compass 1101 ( [http://oldcomputers.net/grid1101.html](http://oldcomputers.net/grid1101.html) )

Psion introduced trackpads in the late 80s and they didn't make it to PowerBooks until the mid 90s. The capacitive trackpad was invented by Cirque and it was Cirque's Glidepoint that Apple used originally.

<comment><USER4> I wish to 3d print the GRiD case, find a monochrome orange/black LCD, fit some arm board into it and marry it. Maybe bunny huang open mobo ..

ps: There was one listed on a local 'craigslist' for a few bucks, I missed it by a few days, it was deeply saddening.

<comment><USER5> "fit some arm board into it"

How about making it a dock for your phone? It would be really cool to have a hardware keyboard, bigger display, extended battery and external storage that you could simply plug into the phone's USB port. If you make one for a Galaxy S4, I'll certainly buy one!

<comment><USER4> In case this isn't well bred sarcasm, there are smartphone docking 'laptops' already. Maybe not universal. And I didn't think about that because my 'feature phone' could probably not drive even a 1024x768 LCD.

<comment><USER5> It wasn't sarcasm and I'm aware of at least a few of these docking stations. But how cool and retro would a grid look-alike be?

<comment><USER4> Oh ok it's a tribute to the GRiD aesthetics revived in a dock.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> How soon everyone forgets... The TRS-80 Model 100

[http://en.m.wikipedia.org/wiki/TRS-80_Model_100](http://en.m.wikipedia.org/wiki/TRS-80_Model_100)

<comment><USER7> We still use one for autonomous vehicle monitoring (it talks to a packet radio) because it's easy to read in the sun, and quick to type commands on.

</comment></comment><comment><USER8> Did a patent war breakout when competitors "stole" the idea? (Genuinely curious, not rhetorical)

</comment><comment><USER9> For those wanting to know more, it's:

[http://en.wikipedia.org/wiki/IBM_PC_Convertible](http://en.wikipedia.org/wiki/IBM_PC_Convertible)

<comment><USER10> >> Pressing the power button on the computer did not turn it off, but put the machine into a "suspend" mode. <<

Wow, another piece of technology which is older than I thought.

<comment><USER9> At the time of magnetic memories the RAM content always survived the powering off. Nobody was able to carry such computers though.

</comment></comment></comment><comment><USER11> Portable computers weren't new at this point. In fact, there already had been several laptops on the market before this, including the GRiD Compass. Portability wasn't new either, as Compaq and Corona Data Systems also made "luggable" computers which had built in tiny CRT tubes.

<comment><USER12> I remember coveting the portable Commodore 64, hehe.

[https://en.wikipedia.org/wiki/Commodore_SX-64](https://en.wikipedia.org/wiki/Commodore_SX-64)

</comment></comment><comment><USER13> 1986 wasn't even that long ago, it baffles me how far tech has advanced since then.

<comment><USER14> Yeah, but don't you get the feeling it has somehow slowed down in recent history ? I haven't felt the need to change my laptop in like... 3 years or something, while this would have been unthinkable just 10 years ago.

<comment><USER15> I've just upgraded my early 2011 MB Pro with 16GB of RAM and SSD. Wow, was that refreshing.

<comment><USER14> Yeah, the SSD is what made a bit difference recently, but it does not change anything to the fact that CPU have more less stalled for laptops.

<comment><USER16> Disk, not CPU, has been the performance barrier for much of computing. Largely because of latency (from seek), which as yesterday's HN article noted, is something you're stuck with.

You can increase your CPU capacity through palatalization (up to Amdahl's limit), but disk sucks no matter what. Yes, with multiple channels you get better overall throughput, but if you need two blocks that aren't contiguous but are on the same media, you've just bought an eternity in compute time.

SSD cracks that barrier, and does it pretty spectactularly, so yes, it's been a pretty big breakthrough.

The next phase may well be localization of a lot of services which are now centrally web-hosted. While in aggregate, people need a lot of compute power, individually, it's not much, and tools such as the FreedomBox offer the opportunity to put that close to you, while distributing data for both data integrity and thwarting surveillance (it's tough to run centralized surveillance over a decentralized architecture).

Round-trip time for SAAS is itself significant, as is browser load. Cracking both these nuts for the ultimate in edge-provisioned networks (the wall wart 6 feet from where you sit), and a movement away from browser-based apps to a lighter-weight frameworks which is based on network transport but doesn't impose a full browser overhead.

</comment></comment></comment></comment></comment><comment><USER17> Seeing this microfiche image capture made me curious. Why are the historical archives of these old papers not online in fully indexed, easily searchable form? Even a pay-for service (excepting the public domain stuff) I could accept, but I see that apparently ProQuest has the rights to provide that service, and it's behind a paywall that's not even possible to directly subscribe to without going through their sales team--presumably it's for institutional use only.

Depressing how much of the world's content is locked away from the Internet while we drown in cat videos and clickbait "news" sites.

</comment><comment><USER18> Heh. I had one of those at work. Delightful, in that it was as compact & portable as it was (competing with "sewing machine" designs more "luggable" than portable). Weighted something like 15 pounds. One humorous design factor was how peripherals, printer in particular, just snapped on to the back of the unit - making for an oddly long device for the enthusiastic user.

And 28 years later, here I sit typing this on a MacBook Air...

<comment><USER19> A MacBook Air that probably cost less than the 1995$ price of the "base PC."

<comment><USER14> And a MacBook Air still costs significantly more than a regular "no-name" laptop PC, anyway.

<comment><USER20> And less than most worthwhile PC laptops...

<comment><USER14> Here we go again... sorry but you don't need a Retina screen and tin foil thin notebook to get shit done. If you really do, you have big first world problems... :P

<comment><USER20> No you don't. But I paid 1500 for a ThinkPad T530.

</comment></comment></comment></comment></comment></comment><comment><USER21> That'll never catch on.

</comment><comment><USER7> I had a Commodore 64-SX that fell off an office when they upgraded to 286s... Good times. There was an easy way to get composite out from it, but I never managed to.

</comment><comment><USER12> There's an incredible number of javascript trackers and garbage on that page, to the extent that I'd support banning the site... surprising.</comment>


Request smuggling between Amazon ALBs and Go net/HTTP - <AUTHOR> https://99designs.com.au/blog/engineering/request-smuggling/ <comment><AUTHOR> More information on desynchronization attacks that can allow request smuggling can be found on the Portswigger blog[0].

[0] [https://portswigger.net/research/http-desync-attacks- request...](https://portswigger.net/research/http-desync-attacks-request- smuggling-reborn)</comment>


A Brief Overview of Deep Learning - <AUTHOR> http://yyue.blogspot.com/2015/01/a-brief-overview-of-deep-learning.html?m=1 <comment> a-priori _This is not scientific fact since it is conceivable that real neurons are much more powerful than artificial neurons, but real neurons may also turn out to be much less powerful than artificial neurons. In any event, the above is certainly a plausible hypothesis._

Biological neurons are indeed more powerful than (most) artificial neural network models because these models discard important characteristics of biological neurons:

* Spiking: Most artificial models are 'rate-based', where they gloss over the spiking behaviour of neurons by only modelling the firing rate. This discards all the various kinds of spiking behaviours (intrinsically spiking, resonators, bursting, etc.) as well as the relative timing of spikes. The relative timing is the basis for spike-timing dependent plasticity (STDP), which enables Hebbian learning and long-term potentiation -- two of the ways that networks learn to wire themselves together and process information.

* Conduction delays: Biological neural networks have a delay between when a spike is generated at the axon hillock and when it arrives at the postsynaptic neuron's dendritic arbour. This delay acts as a kind of like delay line memory in computers, where information can be 'stored' in-transit for short periods of time (in the ballpark of 0.5-40ms). And because different axons have different delays, information can be integrated over time by having one axon with a short delay and one with a long delay both end up at the same postsynaptic neuron.

<comment><USER2> But on a computational power level, does that actually make them more powerful?

What I mean is that Finite state machines are less powerful computationally than context free grammars. A FSM cannot compute certain things that a CFG can. Further, a CFG can't compute certain things that a Turing machine can. But we _do_ know that Neural networks like the ones being used for Deep Learning can compute anything a Turing machine can, and anything a Turing machine can compute, so can the NN. They're equivalent.

So the real question is this: do those features (spiking, conduction delays) actually make biological neural networks capable of computing something that Turing Machines and Artificial Neural Networks cannot?

I hypothesize the answer is "no". A Turing machine could simulate any of those features you've mentioned, and therefore an ANN could also simulate them. (But I would _love_ to be wrong about it, that would be amazing if human minds could do something that no machine would ever be capable of!)

<comment><USER3> Neural networks are universal function approximators, not Turing machines. They can _theoretically_ learn any series of "if...then..." functions with enough neurons. But there are a lot of functions they can't represent very efficiently or without absurdly large numbers of neurons and training data.

<comment> a-priori Yes, but computation can be performed with a function approximator where each iteration is a function `f :: (state, input) -> (state', output)`. This is the basis of an architecture called a 'neural turing machine' ([http://arxiv.org/abs/1410.5401](http://arxiv.org/abs/1410.5401)) and it is, indeed, Turing complete and can be trained through standard neural network training algorithms to perform arbitrary computations.

</comment></comment></comment></comment><comment><USER4> Biological analogies are too often misleading and confusing when talking about deep learning[1]. We currently have very little knowledge of the way the brain works and most analogies are only wild assumptions. The ones contained in this article are blunt and based on strictly nothing but the author's feelings. Please read with care.

[1]: [http://spectrum.ieee.org/robotics/artificial- intelligence/ma...](http://spectrum.ieee.org/robotics/artificial- intelligence/machinelearning-maestro-michael-jordan-on-the-delusions-of-big- data-and-other-huge-engineering-efforts)

<comment><USER5> The author's "feelings" are useful when they were one of the authors of AlexNet[1]. A 10% improvement on ImageNet[2] makes one think he might know a little about the subject.

[1] [http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf](http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf)

[2] [http://www.image- net.org/challenges/LSVRC/2012/results.html](http://www.image- net.org/challenges/LSVRC/2012/results.html) (Look for SuperVision)

<comment><USER4> Well, I'm talking specifically about the biology analogies, and no, being good at ML doesn't mean you know anything about the brain.

</comment></comment></comment><comment><USER6> Previous discussion: [https://news.ycombinator.com/item?id=8888485](https://news.ycombinator.com/item?id=8888485)

</comment><comment><USER7> The author mentioned: _" a DNN with 2 hidden layer and a modest number of units can sort N N-bit numbers"_, does anyone have a reference to this result?

</comment><comment><USER8> I remember reading an article saying that the memory storage in the brain may be at molecular level, making the brain's storage capacity really huge. Anyway, there are much more things going on in the brain than just deep neural networks.</comment>


Universal Boilerplate for Creating Libraries with Rollup, JS, TS, GCC, and Babel - <AUTHOR> https://github.com/Kflash/spiky <comment><USER2> I honestly cannot tell if this is a legitimate thing or or a satirical commentary on the state of the various JS based ecosystems.

<comment><USER3> What is worse, is that I don't know what is worse, if it is real or satire. Poe's Fork?

I do like that developers are trying to do something about this framework mess.</comment></comment>


Is Design Just a Surface Veneer? - <AUTHOR> http://www.webinsation.com/design-is-not-just-a-veneer/

<comment><AUTHOR> Is Design Just a Veneer? The question often comes up in different conversations between designers, developers and clients of "What is Design"?

Is it just a Veneer - something that is "slapped" on after the website or app has been built? Is it simply copying other beautiful designs and pasting your own logo and colors into it?

I've written an article on this topic that I hope you'll take some time to read and think about. And then I really want to hear your thoughts on this topic. What does design mean to you? What does it encompass? <http://www.webinsation.com/design-is-not-just-a-veneer/>

Looking forward to hearing from you! -Caleb</comment>


Suspiciously Prescient Man Files Patent for iPod-Like Device in 1979 - <AUTHOR> http://gizmodo.com/5315766/suspiciously-prescient-man-files-patent-for-ipod+like-device-in-1979 <comment><USER2> Why is his prescience "suspicious"?

<comment><AUTHOR> time travel shenanigans?

<comment><USER3> It would be smart if he traveled less than 30 years back.

</comment></comment></comment><comment><USER4> Goes to prove that timing and execution are more important than the idea.

</comment><comment><USER5> I saw this device in an episode of the TV show Beyond 2000. And this was back in the early to mid 90s.

Welcome to 15 years ago?

<comment><USER6> The difference between 1970's and the early 90's is the Walkman. Personal, portable stereos wasn't a proven technology 30 years ago, it was 15 years ago. These "uuh, the future" TV-shows usually predict the future in terms of extrapolating current popular technology, sort of the guys Henry Ford said would have told him to make a really good horse carriage.

Looking at the (cassette-tape) Walkman and extrapolating beyond the limitations into an MP3-player device isn't very rocket science. Making it a marketable product is (almost).

</comment></comment><comment><USER7> Talk about being before his time.

I wonder if he even thought about it when that whole Napster thing fired up?

</comment><comment><USER8> kramerica industries: it exists!</comment>


Kalliope: Voice controlled personal assistant designed for home automation - <AUTHOR> https://github.com/kalliope-project/kalliope <comment><AUTHOR> Appears to be written in Python. Here's a demo: [https://www.youtube.com/watch?v=t4J42yO2rkM](https://www.youtube.com/watch?v=t4J42yO2rkM)</comment>


Why #TwitterSilence is not the solution - <AUTHOR> http://www.thewhatnoise.com/2013/08/why-twittersilence-is-not-solution.html <comment><USER2> While i agree going silent was probably a stupid idea, on the flipside i wouldnt have heard about it otherwise.</comment>


Ask HN: Not enjoying working at my 1st large company, are there any good ones? - <AUTHOR>

I was working at a startup before that had to fold. Luckily in the Bay Area you have many companies that need engineers. I had multiple offers from big corporations. I took up one of them. The code here sucks. There are some talented people but barring them most are "Java developers".
Do all big companies suck? By suck I mean any two out of three of the following are true:

  1. Shitty code and a lot of tech debt
  2. Lack of hacker types
  3. No design work or challenges as everything has already been done
     and you just service these parts or reuse them
 Sometimes I don't get why do we need so many employees to being with.
Some more things to rant about:

  1. How the whole systems works is a mystery
  2. May people use Git as the new SVN
  3. Code review is a thing that's done at a later point or sprint end
     while it may have gone live and broken things in between that
  4. There's layers on top of layers on top of layers built

 Thanks,
Mr. Heart Borken <comment><USER2> Corporations are there to make money, not to make beautiful code.

If you want to create code with love and care, do it at home. Or we'll have to do without money (= debt), and without corporations (= economic entites based on the money). Instead let's have a resource based economy, and realize that you don't need a lot of resources to code, as long as you don't have to get money to pay taxes to pay for being spied upon. [http://thevenusproject.org](http://thevenusproject.org)

</comment><comment><USER3> You will find this sort of thing in big and small companies, and find really good practices in both big and small companies. You will find tiny companies (< 20 engineers) with no code review, no unit tests, long lists of unfixed bugs, a resistance to source control not spelled "svn", broken custom written solutions when there are excellent open source or low cost alternatives, people that won't talk to each other, and so on.

In general I'd say you have a greater chance of changing things in a small company. But really, don't judge by company size but by the groups you talk to. Learn to interview better. _Ask them_ about the workflow. Ask to see the code base. Ask about the balance of process vs pragmatism. Ask about the challenges (both in terms of interesting work, and then annoying stuff you deal with). If you seem to have it together more than the majority of people that you talk with, run away. If you don't think you can learn from them, run away. If you find yourself thinking "man, I'm really going to have to step up my game" take the offer.

</comment><comment><USER4> One possible solution is to find a reasonably isolated, independent small group within a company. For example, groups that make custom software tools that other people in the company use can be more interesting, perhaps, than the main stuff the company works on.

<comment><AUTHOR> So is this a common thing at big corporations? For instance, I was mid-process at Google but was not in a position to go wait to see where it goes. Then you hear about a story on HN about how the dl.google.com server was shitty and would take 24 hours to boot and was full of bugs.

</comment></comment><comment><USER5> I want to agree with @thenerdfiles in that you should make somewhere a better place to work in. It only takes one thing: the potential there that will make you "able" to achieve this goal.

believe me, I worked at a very dynamic, fresh startup for 4 years but with no room given to me for introducing stuff. Moved to a very large organisation but with the potential given to me. I'm very happy now.

<comment><USER6> Startups are usually so concerned with launch that the time to learn or implement new things is seen as a negative downside of the things to be implemented, indeed. Then one has to argue how the time afforded after the implementation would make up for the time spent during implementation.

On top of the virtues afforded of the thing itself. Like LESS.

</comment></comment><comment><USER6> Look at it this way, if you are charismatic enough you can install new standards where they do not exist.

<comment><AUTHOR> I tried to get people to code review before merge and nobody cares. Nobody cares about clean code either. Everyone is worried about getting something working somehow even if it's bug-ridden and slow.

<comment><USER5> I would say get into the process than the code. this way you can justify your actions better to PMs and managers. People don't like their code to be watched, but they will eventually fix their coding-standard issues each time a red light comes up after they check-in. (styleCop is the tool for .NET community).

</comment></comment></comment><comment><USER7> Google?</comment>


Google+ community for HTML5, CSS, JS - <AUTHOR> https://plus.google.com/u/0/communities/103299867207875326585

<comment><USER2> I know it's a small thing, but the URL makes it feel quite ephemeral/impersonal.

[https://plus.google.com/u/0/communities/10329986720787532658...](https://plus.google.com/u/0/communities/103299867207875326585)

Compare to <http://www.reddit.com/r/programming/>

Anyway, I joined. Hoping sometime in the future google+ becomes useful for me. Last post from a friend was 3 months ago.

<comment><USER3> I don't know why Google+ doesn't have 'vanity' URLs yet. It's not like it is that hard to do, especially if you own the servers.

I know they are 'coming' and some people supposedly have them. But would it not make sense for their own properties to have them?

<comment><USER4> > But would it not make sense for their own properties to have them?

<http://google.com/+youtube>

<http://google.com/+android>

<http://google.com/+motorola>

<comment><AUTHOR> How about <http://gplus.to/html5plus>

</comment></comment></comment></comment><comment><USER5> Maybe I'm missing something important here, but right now it looks like a long list of posts concerning the topics, uncurated and free for everyone ( who is part of the group) to post. Are popular posts put on top or something?

<comment><USER6> That was also my reaction. Google thinks emulating the Yahoo finance board format is a good idea? Srsly?

<comment><USER7> So far I've found that the best communities are the ones that have very good categories on the left. Being able to separate your posts like that is great.

For example, check out "3D Printing" in "Makers, hackers, artists & engineers" [https://plus.google.com/u/0/communities/11284500688414839186...](https://plus.google.com/u/0/communities/112845006884148391862/stream/3d3bc0b9-2686-4c1f-b99f-5f9f4d7f5c00)

</comment></comment></comment><comment><USER8> I didn't realize G+ had 'communities' now, so after joining this one I checked out the communities home page:

<https://plus.google.com/u/0/communities>

There's at least one major design issue with it - the communities have pictures, but no names or descriptions (unless it's in the picture), and mousing over doesn't give an alt-text description either.

Am I missing something, or does G+ expect us to open every community in a new tab to see what it is?

</comment><comment><USER9> First? I don't think so.

<comment><AUTHOR> Yup, first, I've checked when I created it, also, the biggest, we're 1500 members strong at the moment

</comment></comment><comment><USER10> Those communities are interesting. They have subcategories. It means they are like a forum. If one day Google release an API we would be able to sync a community with a forum.

It would make a forum with superpower with entry point anywhere on the web (via the +1 button)

</comment><comment><USER11> Just made a community for Hacker News users on Google+

[https://plus.google.com/u/0/communities/11653218726074934687...](https://plus.google.com/u/0/communities/116532187260749346879)

<comment><USER12> Next step a Reddit community for the Hacker News Google+ users!

</comment></comment><comment><USER11> This community platform has a lot of potential, just need Google+ users to be more active.

</comment><comment><USER13> Finally, a reason to have an account. I'll frequent it, hope it takes off.

<comment><AUTHOR> It will! Thanx for joining, we're already 1500 members strong, and we want to be the most visited community on Google+

</comment></comment><comment><USER14> The three people that use G+ will be so excited when they hear about this!

<comment><AUTHOR> There's already 260+ people in the group, and about 20 quality posts :) Youre welcome to join as well

<comment><USER14> I know - it looks like a cool group and I will probably join it. I just decided to spill a little karma on my HN-standup routine.

<comment><AUTHOR> 1600 members! since the last comment I made, come join and make this the fastest growing group in google+

<comment><USER14> done.</comment></comment></comment></comment></comment>


Google Cloud Startup Program - <AUTHOR> Hi,<p>We are a small startup but we don't have nor need the backing of a VC etc. Google cloud's startup program only accepts applications from those startups. Does anyone know a way of getting credits or a welcome package without this? <comment><USER2> You can apply for the Google Cloud Platform Free Trial + additional credits at [https://goo.gl/5SHXY3](https://goo.gl/5SHXY3)

</comment><comment><USER3> Aside from that, AWS Free Tier is also enough to figure out if your startup is actually going to make money to be sustainable.

</comment><comment><USER4> There is something similar Facebook and Microsoft (Spark, i guess). Check it out</comment>


GitLab 8.10 Released with Wildcard Branch Protection and Manual Actions for CI - <AUTHOR> https://about.gitlab.com/2016/07/22/gitlab-8-10-released/ <comment><USER2> Nice. It keeps getting better with each release. Speed seems to have improved. The only place where github is better is in the UX. Gitlab is ugly on a small laptop screen, in issues view it has three top bars that becomes really annoying. It reminds me old IE days when you had a lot of bars. Apart from that, everything is amazing, I use it daily, specially Gitlab CI, which is one of the best CI ever.

<comment><USER3> Thanks for your kind words. We're working on improving the UX. We recently redesigned the menu [https://about.gitlab.com/2016/06/06/navigation- redesign/](https://about.gitlab.com/2016/06/06/navigation-redesign/) and we're hiring more UX designers and a UX lead on [https://about.gitlab.com/jobs/](https://about.gitlab.com/jobs/)

Thanks for naming an example of a view we can improve, I've screenshotted the issue view in [http://imgur.com/a/0FREI](http://imgur.com/a/0FREI) Suggestions are very welcome.

Glad to hear CI is working out for you. It was great seeing CaptainTrain write about it yesterday [https://blog.captaintrain.com/12703-building-on-gitlab- ci](https://blog.captaintrain.com/12703-building-on-gitlab-ci)

<comment><USER4> hey sytse, how does gitlab ci handle caching of maven,ivy, gem s...artifacts? Does each new build have to download it ?

I see some issues discussions, workarounds and seems like it does allow -cache directories but it is unclear how it all works.

for us( unfortunately) its 40 min vs 5 min build times, with/without caches.

<comment><USER3> I think there are a couple of ways to cache:

1\. Build artifacts (recommended) [http://docs.gitlab.com/ce/ci/build_artifacts/README.html](http://docs.gitlab.com/ce/ci/build_artifacts/README.html)

2\. Cross Runner Caching (not implemented yet) [https://gitlab.com/gitlab- org/gitlab-ci-multi-runner/issues/...](https://gitlab.com/gitlab-org/gitlab- ci-multi-runner/issues/336#note_12195101)

3\. Single Runner Caching [https://gitlab.com/gitlab-org/gitlab-ci-multi- runner/blob/ma...](https://gitlab.com/gitlab-org/gitlab-ci-multi- runner/blob/master/docs/configuration/advanced-configuration.md) Edit: a better explanation is in [http://docs.gitlab.com/ce/ci/yaml/README.html#cache](http://docs.gitlab.com/ce/ci/yaml/README.html#cache)

4\. Container registry (not possible for Maven, etc.) [https://about.gitlab.com/2016/05/23/gitlab-container- registr...](https://about.gitlab.com/2016/05/23/gitlab-container-registry/)

I agree it is confusing and my knowledge might not be accurate. I've asked CI experts to improve the documentation in [https://gitlab.com/gitlab-org/gitlab- ce/issues/20155](https://gitlab.com/gitlab-org/gitlab-ce/issues/20155)

<comment><USER5> First off, I'll admit our documentation for caching needs improvement.

We do support caching of gem's and other file artifacts. There are tricks about file locations, but once you get the hang of it, it works well. See [https://gitlab.com/gitlab-org/gitlab-ci- yml/blob/master/Ruby...](https://gitlab.com/gitlab-org/gitlab-ci- yml/blob/master/Ruby.gitlab-ci.yml) for an example for Ruby. It's actually one of the sources for our new CI configuration templates!

But sometimes, you don't really want caching, you want artifacts. Caching is an optimization, but isn't guaranteed to always work, so you need to be prepared to regenerate any cached files in each job that needs them.

Artifacts, on the other hand, are guaranteed to be available. It's sometimes confusing because the name `artifact` sounds like something that is only useful outside of the build, like for downloading a final image. But artifacts are also available in between stages within a build. So if you "build" your application by downloading all the required modules, you might want to declare them as `artifacts` so that each subsequent stage can depend on them being there. There are some optimizations like declaring an expiry time so you don't keep artifacts around too long, and using `dependencies` to control exactly where artifacts are passed around. Again, complicated subject that is poorly documented. I'd be happy to help you figure it out for your use case (and then publish the learnings).

</comment></comment></comment></comment></comment><comment><USER6> There's also the "disable clone over http, https, just allow ssh" setting we are so longing for ! Great release !

<comment><USER3> Thanks, glad to hear that we shipped what you needed.

</comment></comment><comment><USER7> Very excited to see the progress. We're switching over from Github to Gitlab EE in the coming weeks.

I do wish cross-repo pull requests could be imported. ([http://docs.gitlab.com/ce/workflow/importing/import_projects...](http://docs.gitlab.com/ce/workflow/importing/import_projects_from_github.html)). Right now we have to hang on to a small number of GH accounts just to keep several years of that valuable history.

<comment><USER3> Thanks for posting Niek. Glad to hear you'll be switching to GitLab!

Good point about importing cross repository pull requests correctly, I've made a feature request for it in [https://gitlab.com/gitlab-org/gitlab- ce/issues/20153](https://gitlab.com/gitlab-org/gitlab-ce/issues/20153)

</comment></comment><comment><USER8> Nice! Good release !... One thing that make the user experience way less friendly and make me worry about pushing as our main repo is the git push/pull speed.... Coming from GitHub or bitbucket it feels really slow. But I don't give up hope!

Keep up the good work!

<comment><USER3> Thanks for your enthousiasm. Self hosted GitLab instances should be really fast but GitLab.com is indeed very slow.

This is due to us only using a single NFS server. With the release of 'Multiple Repository Mount Points' today we can start adding more servers.

Long term we want to move to distributed storage with Ceph and we hired a consultant to help us with this that started last Monday. Also see [https://gitlab.com/gitlab-com/operations/issues/1](https://gitlab.com/gitlab- com/operations/issues/1)

<comment><USER9> I can confirm this, self-hosted is incredibly fast - you'll wonder how you ever used gitlab.com or github.com for that matter. It's as fast as it is for me to push to a locally running git server to be honest.

<comment><USER9> As a side note: GitHub.com is hosted on Azure and that says a lot, at risk of sounding like a zealot - I have quite a bit experience with apps including office365 hosted on Azure and that platform has more than its share of problems internally, problem is that it's a bit black box that's run by one of the least transparent companies I've worked with, let's just say there are a lot of internal engineering problems especially around networking (DNS especially) and storage. While I'm sure gitlab could throw more resources at their instances they're probably limited by costs / going above what is offered for HN startups to try to lock them into the platform and that may not help given the aforementioned internal platform issues.

Rest assured, self hosting an instance for say 50-100 developers does not require much 'grunt' at all as long as your platform is stable and properly managed which I don't believe should be at all hard in 2016 assuming you have half decent systems engineers or use a decent hosted platform.

</comment></comment></comment></comment><comment><USER10> Wow. Hard to believe the pace at which this progresses and the quality that they pull off while doing it. Great job!

The only big thing I miss (and I miss this with Github too) is a way to prioritise issues. Yes, I get it, you can label things 10 different ways and achieve most of what you get from a priority system. It doesn't replace the simple ability to get a list in order of the most important things outstanding in order. I want it to be easy to generate a list of 'urgent' and 'high priority' where the 'urgent' issues are listed ahead of the 'high priority' and not ordered randomly.

<comment><USER5> Priority labels aren't enough for you? ([https://about.gitlab.com/2016/06/22/gitlab-8-9-released/#pri...](https://about.gitlab.com/2016/06/22/gitlab-8-9-released/#priority- labels)) We're using P1, P2, etc. internally, but you could easily use `urgent` and `high priority` labels and then sort your lists by `Priority`.

<comment><USER10> Oh my goodness I didn't even know about those. I think it will address my needs perfectly. I will have to badger our systems people to upgrade.

Thankyou!

<comment><USER5> Great! Let us know if you have any feedback after you've tried them out.

</comment></comment></comment></comment><comment><USER11> As always, a release we're very proud of. We're happy to answer any questions.

<comment><USER12> Multiline blockquotes seem to be broken in the GitLab web site's GFM documentation: [http://i.imgur.com/agTjiLc.png](http://i.imgur.com/agTjiLc.png)

[http://docs.gitlab.com/ce/markdown/markdown.html#multiline-b...](http://docs.gitlab.com/ce/markdown/markdown.html#multiline- blockquote)

<comment><USER13> Good catch! Our Markdown documentation describes a lot of GitLab Flavored Markdown that will (currently) only work inside GitLab itself, not on the docs site which uses a completely different Markdown renderer.

I've created a Merge Request to add a note to the top of the document encouraging people to view it within GitLab: [https://gitlab.com/gitlab- org/gitlab-ce/merge_requests/5440](https://gitlab.com/gitlab-org/gitlab- ce/merge_requests/5440)

You can check out the Multiline Blockquote example in all its glory here: [https://gitlab.com/gitlab-org/gitlab- ce/blob/master/doc/mark...](https://gitlab.com/gitlab-org/gitlab- ce/blob/master/doc/markdown/markdown.md#multiline-blockquote)

</comment></comment></comment><comment><USER14> The manual release feature is great! I was just pondering on how to do that. For anyone wondering where to start with Gitlab CI I wrote a short post about our very simple but still very useful CI setup: [https://pilloxa.gitlab.io/posts/ci-with-gitlab-and- docker/](https://pilloxa.gitlab.io/posts/ci-with-gitlab-and-docker/)

<comment><USER3> Glad to hear you like it. Thanks for your post. BTW now that we have the container registry you no longer need to create an account at Dockerhub I think.

</comment></comment><comment><USER15> Is it common for Gitlab to take contributions from the community and release them as Enterprise Only, or am I understanding things incorrectly?

Is the Kerberos Ticket based git pull Enterprise only?

<comment><USER3> We only release things as Enterprise Edition only if they are contributed to that repository. We never deprecate features from the Community Edition. See [https://about.gitlab.com/about/#stewardship](https://about.gitlab.com/about/#stewardship)

In this case I think CERN contributed code for both SAML and Kerberos over time. The SAML code got merged into CE and we ended up spending a lot of time improving it, documenting it, and providing unpaid support. It turns out that SAML is more of a framework for creating standards than a standard :)

The Kerberos functionality was contributed by CERN to Enterprise Edition [https://gitlab.com/gitlab-org/gitlab- ee/merge_requests/6](https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6) and CERN left this comment [https://gitlab.com/gitlab-org/gitlab- ce/merge_requests/685#n...](https://gitlab.com/gitlab-org/gitlab- ce/merge_requests/685#note_1297043) on the Kerberos CE contribution.

I think Kerberos Ticket based git pull is Enterprise only.

</comment></comment><comment><USER16> Inline Videos now supported!

I've been wanting this on GitHub for so long. The example in the docs seems broken to me though - [http://docs.gitlab.com/ce/markdown/markdown.html#videos](http://docs.gitlab.com/ce/markdown/markdown.html#videos)

<comment><USER13> Yep, you're right, our Markdown documentation describes a lot of GitLab Flavored Markdown that will (currently) only work inside GitLab itself, not on the docs site which uses a completely different Markdown renderer.

I've added a note to the top of the document encouraging people to view it within GitLab: [https://gitlab.com/gitlab-org/gitlab- ce/merge_requests/5440](https://gitlab.com/gitlab-org/gitlab- ce/merge_requests/5440)

You can check out the Videos example in all its glory here: [https://gitlab.com/gitlab-org/gitlab- ce/blob/master/doc/mark...](https://gitlab.com/gitlab-org/gitlab- ce/blob/master/doc/markdown/markdown.md#videos)

It appears however that it doesn't currently work correctly with files in the same repo, just with absolute links. I've created an issue for that here: [https://gitlab.com/gitlab-org/gitlab- ce/issues/20189](https://gitlab.com/gitlab-org/gitlab-ce/issues/20189)

</comment></comment><comment><USER17> I want to love gitlab but it's very slow on small machines (2gb). Worse is that they insist on this omnibus stuff which is all great if you have time on your hands. Any reason gitlab does not auto update?

<comment><USER18> This is lacking detail about the exact use case but either one of:

\- use gitlab.com with private repos for free

\- install from source to skip omnibus. I've been updating ours for a couple years now and it's always been simple. Bonus is that if you need a quick patch or even the occasional bespoke tweak you've got the git repo _right there_ which has been invaluable.

\- githost.io is a thing (contemplating migrating to it nonetheless because GitLab has really come so far that we don't need much patches anymore)

</comment></comment><comment><USER19> What's with the >>> fencing notation? Bugs me when companies intentionally reinvent the wheel.

<comment><USER13> I added the blockquote fence feature because I was getting tired of having to manually prefix every line with `>` when I was quoting a multiline message like an entire email.

I picked `>>>` because it mirrored the triple-backtick syntax for fenced code blocks, and `>` was already used for single-line blockquotes.

You can see the feature proposal I filed at [https://gitlab.com/gitlab- org/gitlab-ce/issues/16564](https://gitlab.com/gitlab-org/gitlab- ce/issues/16564), and the merge request I submitted to implement the feature at [https://gitlab.com/gitlab-org/gitlab- ce/merge_requests/3954](https://gitlab.com/gitlab-org/gitlab- ce/merge_requests/3954), for some more insight into how this came to be.

I'm sad to hear that this feels like reinventing the wheel to you. From my perspective, there existed an imperfect wheel that we "invented" a more powerful alternative to.

</comment></comment><comment><USER20> Loving the new update but I can't help noticing that each new update will reset my view preferences.

<comment><USER3> Mmm, I thought these are stored in the database, they should not reset I think. If so please create an issue.

</comment></comment><comment><USER21> Now please tone down the incredible amount of unwanted mail you send to new signups, got my colleagues fairly puzzled after I insisted we use GitLab instead of GitHub. :(

<comment><USER9> That's a rather rude, unconstructive way of asking for someone to do something for free for you. How about logging a bug, or if you have - linking to it here to get some additional traction?

<comment><USER21> Can you tell me where to log that bug?

<comment><USER22> The second yahoo result for "gitlab issue tracker", (the first was the about page): [https://gitlab.com/gitlab-org/gitlab- ce/issues](https://gitlab.com/gitlab-org/gitlab-ce/issues)

For the record, it's pretty easy to change your notification settings.

<comment><USER21> That's self-hosted GitLab CE, I meant mails from when people sign up at gitlab.com</comment></comment></comment></comment></comment>


Awesome time tracking tool - Everhour - <AUTHOR> http://everhour.com

<comment><USER2> Very clean UI. Nice to see that you 'planned' to release an API.</comment>


Questbotics (kickstarter) edu robot programmed via blocks - <AUTHOR> https://www.kickstarter.com/projects/1125788449/questbotics-next-level-edu-robot-toy <comment><AUTHOR> I know these guys, they are great people. The Questbotics robot has been tested and the concept in a way, hearkens back to the Logo / Turtle graphics days, except it is operating in the real world instead of on screen.</comment>


What coding mnemonics do you use? - <AUTHOR> What weird coding things do you have to use statements for or other weird tricks to remember? I can never remember < or >, and only remember that < is less than from years of typing (i=0; i<30; i++). <comment><USER2> Not a mnemonic per se but I have melodies for common code snippets.

"public static void Main(string[] args)", which is the default method signature for the main method in C#, is a hip-hop beat. SQL statements are always metal tunes. Javascript is usually indie pop.

<comment><USER3> I also have a melody for the default method signature in Java which is the same except a slight difference in case "public static void main(String [] args)"

<comment><USER4> Please tell me you guys are actually singing the signature to a particular tune in your head like people sing the ABC song when they recite the alphabet. Because that is adorable.

Rapping arbitrary chunks of code could be a fun after-hours conference game.

<comment><USER2> You're partially correct. I do sing them, not necessarily in my head.

</comment></comment></comment></comment><comment><USER5> Markdown hyperlink syntax:

      "squared circle" aka []() aka [word](http://link)

</comment><comment><USER6> I never remember that . = class and # = id in CSS, so I use "say no to drugs" to remember that "hash is not class".

Perhaps a mnemonic which only really works in the North East of the UK where 'class' is colloquial slang for 'good'. Also not very good if you smoke pot, I guess.

<comment><USER7> Strange one. FYI, "class" has the same meaning in French slang -- probably borrowed from you guys.

<comment><USER8> I think it's the other way around. I think you guys use _class_ as slang to _classy_: "pertaining to or characteristic of a (high) class," which comes from the literal sense of _class_ , which comes from the _French_ word _classer_.

I didn't know for sure, but I had that feeling knowing that most of the English language is borrowed from others, and not the other way around. ([http://www.etymonline.com/index.php?allowed_in_frame=0&searc...](http://www.etymonline.com/index.php?allowed_in_frame=0&search=class&searchmode=none))

</comment></comment></comment><comment><USER9> The fact that programmers can't remember < and > well illustrates why children shouldn't be chastised for getting (for example) b and d wrong.

I have dealt with this by conditioning myself to _always_ read < as 'is less than'

<comment><USER10> I find it hard to believe that a statistically normal programmer mixes up < and >. That sounds more like dyslexia.

<comment><USER11> This is the first time I'm hearing about this too so I think there is more to it. I don't even see why a mnemonic is required since the shape of both '<' and '>' clearly demonstrate the relationship that the operator is testing.

<comment><AUTHOR> I probably should have chosen a better mnemonic to start from! I'd point out that if you see greater and less than more like arrows it's utterly confusing. I'm not denying I'm probably weird in that respect, it's just something I have to use tricks to remember….

</comment></comment></comment></comment><comment><USER12> LoVe HAte when ordering psudeo classes in css for anchors*

      ":link, :visited, :hover, :active"

*may not be particularly weird or novel

<comment><USER13> Also CSS related, when doing margin/padding I use "TRouBLe" to remember:

        margin: (T R B L)

<comment><USER12> My one is visualising a clock face, 12, 3, 6, 9

<comment><USER14> Thats a nice example showing that mnemonics need not be logical to have value (if you asked people to order the numbers on a clock face, I think the vast majority would have them as 3, 6, 9, 12)

</comment></comment></comment></comment><comment><USER15> Questionably coding, but I always loved this IRC snippet:

<sdmkun> tar -xzf merc.tgz what the fuck

<sdmkun> how the fuck do you people remember this shit

<bucketmouse> just think with a german accent

<bucketmouse> XTRACT ZE FILES

<comment><USER16> I really don't see what the big deal is with tar. Everyone seems to hate it. Probably because exactly one of those flags is necessary: zcat merc.tgz | tar -x

<comment><USER15> I quite like it, and have almost a singalong bit for the meaning attached to each character I add to a long tar command

tar - [create] [verbosely] [a g/bzip'd compressed] [file named] foo.tgz (from) input_dir

tar -cvzf foo.tgz input_dir

Your version doesn't seem as 'fun', I guess zcat and PIPE are just hard to rhyme along to.

</comment></comment></comment><comment><USER17> I was taught the alligator/crocodile thing like many others, but it never really stuck. For some reason (later in life), someone said "left hand, less than" as they held up their left hand to form a less than sign. That image sticks in my head a lot better.

Another thing that was particularly hard to get naturally was the ternary operator. It didn't sink in easily until Jon Skeet said pretend the ? is indeed a question. If the answer is 'yes', this will happen.

</comment><comment><USER18> Not related to programming but close

The symbol for a diode is something like this: --|>|--

Now, which one is the Anode, which one is the Cathode

Very simple, the Anode has an A in the drawing (left side, turned 90 degrees), the Cathode (K) has a K, right side, upside down in the drawing

</comment><comment><USER19> .unshift - makes it bigger. Longer word than .shift

.shift - makes it smaller. Shorter word than .unshift

<comment><USER9> I could _never_ remember this until someone told me to imagine that an array is like a row of chairs at a cinema.

"Shift" will shift everyone up one, bumping someone off the start of the row.

</comment></comment><comment><USER20> When working with axis - "X is a-cross"

<comment><USER21> " You have to run, before you can fly, You have to X, before you can Y ",

Rhyming reminder of which axis is vertical, and which horizontal...

</comment></comment><comment><USER22> You might try a visual trick. Note that < and > look like "arrows" and "point" in a particular direction. There is a small end (the tip/point) and a large end (the open end). The vertical size of the point is "less than" the vertical size of open end. So if the point comes first (reading left to right) then the point is "less than" the opening (and the symbol means "less than"), but if the opening comes first (reading left to right), the opening is "greater than" the point (and the symbol means "greater than"). .

<comment><USER23> Imagine the arrows are crocodiles. They always try and eat more.

1 < 2

4 > 1

If they're eating less, they're not happy crocodiles.

<comment><USER24> Or the "is greater than" (>) is a crocodile's mouth, and "is less than" (<) is a bird's beak. The bird eats smaller food than an crocodile eats, and the crocodile eats bigger food than the bird eats.

</comment></comment></comment><comment><USER25> < and > are pretty easy. The big side (the mouth) points to the larger number because that it what it wants to eat.

<comment><USER18> I learned this in school. Still effective.

But I never know which one is "smaller than" or "bigger than", I have to think a little bit

</comment></comment><comment><USER26> Most methods in C read like an assignment,

so if you are trying to remember what order the arguments to strcpy go, it's

        strcpy(x,y) is like x = y

Then remember specially that typedef is the wrong way around to the way you would like it to be :)

<comment><USER16> The trick with typedef is it is exactly the same syntax, in all cases, as declaring a variable of that type. This is essentially the only way you're going to ever remember how to do function pointer typedefs: typedef int (function_t)(int,int); // or something to that effect

</comment></comment><comment><USER27> For the right-hand rule, a vile insult: take the cross-product of the thumb and forefinger of your right hand and rotate on it.

Look, Joshua Foer says that emotional imagery is more likely to stick...

</comment><comment><USER28> I don't use mnemonics in general. For me the effort to remember the mnemonic is actually double that for remembering the thing per se. I need to once remember the symbols->mnemonic connection and then the mnemonic->meaning connection, instead of simply the direct symbols->meaning one. It feels like cluttering my brain with junk that not only doesn't make it easier to remember things, it actively makes it harder.

</comment><comment><USER29> When using ln to link files, I tend to recite:

ln -s "what you want," "where you want it"

<comment><USER30> Another way to remember, is that ln behaves the same as cp

</comment></comment><comment><USER31> backslash is a man falling backwards. forwardslash is the opposite.

</comment><comment><USER32> "dollar hat, dollar at" in Makefiles:

$(CC) -c $^ -o $@

</comment><comment><USER33> \r\n or \n\r?

ReturN - R before N

<comment><USER34> Carriage Return is first because it takes much more time for the carriage to go back to the column 0 from the column 79, than for the paper to Line Feed one line. So while the carriage is flying back, the paper can feed, and hopefully we won't have to wait too much time for everything to be ready for a new line. Or we may always insert some Nul codes to wait.</comment></comment>


Show HN: T0.io – A simple url shortener - <AUTHOR> https://t0.io/ <comment><AUTHOR> This side project was done in my thanksgiving vacation ~2 years ago. I posted on HN back then: [https://news.ycombinator.com/item?id=8673137](https://news.ycombinator.com/item?id=8673137)

Since then I made several small improvements, so I posted here again.

I could've used bitly or something else. But these existing url shorteners can't meet my need. I wanted to have simple stats on # of clicks & geo info for traffics on the short urls. bitly was over-kill for my need (and is expensive).</comment>


"LINUX is obsolete" - Andy Tanenbaum, 1992 - <AUTHOR> https://groups.google.com/forum/?fromgroups#!topic/comp.os.minix/wlhw16QWltI

<comment><USER2> Its like a professor of classical music trying to describe why this "rock and roll" stuff will never catch on. It just goes to show that you can be correct and wrong at the same time.

<comment><USER3> Except that, unlike a classical music professor, the idea that Tanenbaum was evangelizing was not popular or proven.

</comment></comment><comment> buff-a "suffice it to say that among the people who actually design operating systems, the debate is essentially over."

A lesson for us all.

</comment><comment><USER4> OT: Why does the new Google Group UI have to take up 1/3 of the screen with a FIXED header? Not everyone have a large desktop monitor. Lots of laptop users miss 1/3 of the screen to the useless Google branding. It's really annoying.

</comment><comment><USER5> But when he wrote that stuff he was basing the "obsolete" statement on the monolothic kernel and x86 specificity. Those key aspects of the architecture _were_ obsolete back then.

I think when he wrote that he was right about the design being outdated.

Its just that Linux became popular and some of those design aspects like the x86 specificity were upgraded to newer ways of doing things.

Still monolithic kernel though. But just because something works doesn't mean that its an up-to-date design. Look at how popular fairly heavy and large PC workstations still are today.

<comment><USER6> Being invented more recently isn't sufficient to make something better, it must also have compelling advantages.

</comment></comment><comment><USER7> Kind of duplicate from 2 weeks ago: <http://news.ycombinator.com/item?id=3744138>

</comment><comment><USER8> > But in all honesty, I would suggest that people who want a __MODERN __"free" > OS look around for a microkernel-based, portable OS, like maybe GNU or > something like that.

The most important - and ironic - line in the entire email.

Not to start a 'Linux vs. GNU/Linux' flameware, but ironically, everything that [most] people associate today with 'Linux' is as much a product of GNU as it is of Linux (if not more so). Furthermore, GNU Hurd has stalled, so in a way, Tanenbaum's reasoning was completely wrong, but his conclusion was almost completely right!

<comment><USER9> Well, Linus did later sign: [1]

      Linus "my first, and hopefully last flamefest" Torvalds

Therefore this entire HN Item is flamebait - bait for flames.

The GNU project has been joined by many other allies with time-varying levels of "closeness." I would even argue that by now, *BSD is more closely allied with GNU/Linux than ever before.

The Free Software Foundation is generally respected for Richard Stallman's prescient take on modern issues of freedom, privacy, and trust. [2]

[1] [https://groups.google.com/forum/#!msg/comp.os.minix/wlhw16QW...](https://groups.google.com/forum/#!msg/comp.os.minix/wlhw16QWltI/tHp9VExAcmMJ)

[2] [http://falkvinge.net/2011/06/03/stallmans-the-right-to- read-...](http://falkvinge.net/2011/06/03/stallmans-the-right-to-read-becomes- dreaded-insane-reality/) but a little googling will turn up many, many more

<comment><USER8> > Therefore this entire HN Item is flamebait - bait for flames.

Exactly - makes you wonder about whether this applies to other 'modern' flamewars that we still have today....

</comment></comment></comment><comment><USER10> Much as I think this whole thing is a bit unfair on Andy T.. the money quote has to be from Ast, in his reply to Linus:

"I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)"

</comment><comment><USER11> I found interesting that ast uses a falacy strategy on his argument, specifically Ad verecundiam And ad hominem

</comment><comment><USER12> Talking of obsolete operating systems, is gonna be fun seeing how riscos runs in comparison to linux on those raspberry pi thingys.</comment>


The Complete Guide to Going Paperless - <AUTHOR> http://lifehacker.com/5330558/the-complete-guide-to-going-paperless

<comment><USER2> One of the links in the comments was to a site to tell the phone company not to send you Yellow Pages or White Pages: <http://www.yellowpagesgoesgreen.org/stop-yellow-pages/></comment>


Raspberry Pi onboard serial connection = kernel messages to a microprinter - <AUTHOR> http://benosteen.wordpress.com/2012/04/24/raspberry-pis-onboard-serial-connection/

<comment><USER2> That's a much better use of a microprinter than boring receipts!

Can't wait to get mine.</comment>


"Car Talk" Logic Puzzler This Week: The Prisoners and the Hats - <AUTHOR> http://www.cartalk.com/content/prisoners-and-hats-0?question <comment><USER2> [https://en.m.wikipedia.org/wiki/Prisoners_and_hats_puzzle](https://en.m.wikipedia.org/wiki/Prisoners_and_hats_puzzle)

</comment><comment><AUTHOR> Please be kind and label any postings of solutions with "SPOILER!"

I got it; you can, too!</comment>


A brief note: Why Silver was tripped up on Trump - <AUTHOR> https://twitter.com/yaneerbaryam/status/756127724389867520 <comment><USER2> Take a look at Nate Plastic's Trump headlines

[http://imgur.com/ZVbDMXh.jpg](http://imgur.com/ZVbDMXh.jpg)</comment>


Self-healing polymer repairs itself when exposed to light - <AUTHOR> http://www.technologyreview.com/biomedicine/27113/ <comment><AUTHOR> The applications for this sort of material are pretty incredible. Rubbery materials can often tear/degrade easily; I can't tell you how many times I've torn some soft plastic and thought to myself, "Well, that's useless now..." This material has the potential to totally change that.

Also, did anyone think of Superman when reading this story? I couldn't help but be reminded that he, too, is healed by "the power of the yellow sun".

</comment><comment><USER2> I thought the article was going to be on an older "self-healing" plastic at first. I seem to recall hearing about it in the early 2000s, but the furthest back I can find is 2007: [http://www.technologyreview.com/printer_friendly_article.asp...](http://www.technologyreview.com/printer_friendly_article.aspx?id=18841)

Suffice it to say, the new polymer is much more impressive.

</comment><comment><USER3> So in all of the scifi shows when the tech ran a light pen over the broken bits...it wasn't as laughable as I thought?</comment>


Dockerlite: Lightweight Linux virtualization with BTRFS and LXC - <AUTHOR> https://github.com/dotcloud/dockerlite

<comment><USER2> I don't have anything invested in either project, but I just want to point out that dockerlite's last commit was two months ago and the Docker project has had twelve releases in that same time frame[1]. Docker has moved _quite a bit_ in the last two months and is getting close to production-ready.

[1]: [https://github.com/dotcloud/docker/releases](https://github.com/dotcloud/docker/releases)

<comment><USER3> Truly production ready or "wait for version 2" production ready?

I'm always afraid of 1.0 release stuff for actual production environments, despite who releases it

<comment><USER4> I don't know anything about Docker being production ready, but both LXC (used by docker) and OpenVZ are production ready. OpenVZ is a mostly equivalent technology that has been around for a number of years, but IMHO hasn't gotten the management features and updates that docker is getting.

You can use OpenVZ right now for similar things, but it isn't as easy to create small single-use containers.

The nice thing OpenVZ has that docker doesn't currently support is mounting a Host directory (read-only or read-write) into the OpenVZ container so you can easily share lots of data to many containers with one copy. Right now, docker supports sharing volumes between containers, but not with the Host system.

For example, you can make very small OpenVZ containers by using common /usr, /lib, /lib64 directories and mounting them read-only in all of your containers. It's easy to bring up OpenVZ on a Centos6 machine and you can run Ubuntu containers in it if you like.

I have nothing against Docker and hope they keep adding features, but my current experience is with OpenVZ.

<comment><USER5> Actually, Docker just got the "bind mounting" feature that you are requesting. If you want the long and boring details, it's in this pull request:

[https://github.com/dotcloud/docker/pull/602](https://github.com/dotcloud/docker/pull/602)

Dockerlite doesn't have those features, though (keep in mind that dockerlite is just a playground for funky features, nothing else!)

<comment><USER4> Great! Thanks for pointing that out. I had read through the tremendous number of comments around that feature a month ago, and didn't expect it to make it through committee already.

It's a killer feature and extremely useful.

</comment></comment></comment></comment></comment><comment><USER6> Docker is great. For those that don't know, it's basically a sandboxing infrastructure for linux running many apps on one physical or virtual server. The future is only having one app per server container. This means mounting a read-only opaque deployment image with an overlay so has a live-cd inspired filesystem (AUFS or dmsetup overlay). Install just one app per a container, do that, and do it well. Combined with an approach of just enough operating system (JEOS), it's possible to have lean-and-mean server instances minus all the default crapware (i.e., bluetooth and pptp).

The only feedback is that BTRFS == fsck, and is also sponsored by Oracle, an organization that is killing off the superior, but N.I.H., ZFS. Let's not forget all of their other community fails (Berkeley DB, Java, MySQL, OpenOffice).

FreeBSD ZFS and ZFSonLinux are good-to-go.

<comment><USER7> > The only feedback is that BTRFS == fsck, and is also sponsored by Oracle, an > organization that is killing off the superior, but N.I.H., ZFS. Let's not > forget all of their other community fails (Berkeley DB, Java, MySQL, > OpenOffice).

Personally I always read the situation as Linux not supporting ZFS because it was born under the Solaris banner, while Btrfs, though being developed "in cooperation with" third parties, is fundamentally a shiny open generic FOSS technology (the name itself eschews branding to make it sound like "look, it's all just B-trees, you can understand this.") Heck, until this conversation, I thought Btrfs was something Linus himself had a stake in, like Git. What wonders a different brand-image can do to people who have incomplete information :)

<comment><USER8> The ZFS sources are licensed in a way that makes it impossible to merge them into the Linux kernel. You could run ZFS as a user space daemon communicating with the kernel over the FUSE interface but it's never going to be part of the kernel itself.

<comment><USER9> You can also load it as a module with dkms - much better performance than under FUSE.

</comment></comment></comment></comment><comment><USER10> I believe this was created and presented as simple (contrast to easy) demo to demonstrate BTRFS as a possible backend for images. Docker currently uses AUFS, and was designed to support more fs backends over time. It also demoed a potential path for docker to become more extensible over time.

A github issue was created to incorporate BTRFS: [https://github.com/dotcloud/docker/issues/443](https://github.com/dotcloud/docker/issues/443)

Dotcloud blog post on dockerlite: [http://blog.docker.io/2013/05/btrfs- support-for-docker/](http://blog.docker.io/2013/05/btrfs-support-for-docker/)

Source: I saw the author's presentation at the docker meetup held at dotcloud a couple months ago.

</comment><comment><USER11> Both docker and dockerlite belong to Dotcloud's github organization. Perhaps dockerlite is just a proof of concept.

<comment><AUTHOR> The way I understand it, its indeed a proof of concept - still cool though :-)

<comment><USER5> Yes, dockerlite is mainly a proof-of-concept, to experiment with a couple of important things.

1\. Use BTRFS instead of AUFS, and see if any specific problem arises, or if we hit any corner case when doing that.

2\. Setup the network without using LXC default userland tools, in a race- condition free way. This is not as obvious as it sounds.

dockerlite was a success on both accounts. It paved the way for BTRFS support, and gave us some insights about how to make the network setup more flexible.

</comment></comment></comment><comment><USER12> Where is INSTALL.md and MANUAL.md ?

</comment><comment><USER13> Serious question: Is this proper English?

> Where the name dockerlite comes from?

I keep seeing that sort of arrangement in headings like "How it works?" where I expect it to say "How does it work?" and I'm starting to wonder if that's actually valid English or just a common error.

<comment><USER14> It depends on the phrasing.

"This is [how it works]", "How does it work?"

I was wondering [where the name dickerlite comes from]? Where does the name dickerlite come from?

<comment><USER15>
      "I was wondering [where the name dickerlite comes from]? Where does the name dickerlite come from?"

I'm also wondering where 'dickerlite' came from..

<comment><USER14> Freudian slip?

</comment></comment></comment></comment><comment><USER16> FreeBSD has had this for quite some time with zfs jails and ezjails.

</comment><comment><USER17> Nice. Seems like a great project to learn bash.

Also, I wonder .. how efficient/correct can be the included JSON parser. Anyone has an idea?

<comment><USER5> If you want to know more about the JSON parser, it comes from [https://github.com/dominictarr/JSON.sh](https://github.com/dominictarr/JSON.sh).

</comment></comment><comment><USER18> so docker is mainly a json parser to command lxc i suppose. the bash json parser is the main part of this project - the rests are just wrapping lxc/btrs functions.

<comment><USER5> The JSON parser actually comes from [https://github.com/dominictarr/JSON.sh](https://github.com/dominictarr/JSON.sh) (as mentioned in dockerlite's README file).

The JSON parser is not "the main part of this project"; it was included just in case we needed to interact with the registry (but it wasn't deemed necessary).</comment></comment>


Microsoft Gives Windows XP Its 17,326nd New Lease on Life - <AUTHOR> http://technologizer.com/2008/12/21/windows-xp-lives-again/ <comment><USER2> XP is dying- it's ancient technology, Vista is far superior. Of course, Ubuntu and OSX are both worthy competitors to MS, but Vista is rock solid in both terms of stability and security.

The only reason why Microsoft would rather sell Vista than XP on new computers is because the longer they sell XP, the longer they will have to support it. The more updates, service packs, and the longer they have to make software that is backwards compatible with it, rather than focusing on new technologies in Vista/Windows 7. They make as much money off a sale of XP as they do Vista, but XP costs more to maintain.

If Windows developers aren't writing code for Vista, it won't magically work on Windows 7, so if your software is XP only, its time to find a new supplier!

In short, Windows Vista is the future of the Windows platform, and it is a very bright future! As far as most people that I talk to that claim they don't like Vista, most of them can't seem to articulate why, or they just say "That's what I've heard". The MS bashers have done a great job spreading anti- Vista propaganda, but few can articulate any real problems with the OS.

Long Live Microsoft! (And Linux, and Apple)

<comment><USER3> I can clearly articulate why I don't like vista:

1\. Its most annoying feature in my opinion (and its activated by default) is that it caches all your most recently most programs into memory every time your computer starts. Not only do I think this is a stupid feature, it takes ages to complete, hordes the memory, makes your hdd go nuts, and most of all I had no idea wtf was happening with my new computer.

2\. file-indexing is activated by default - Microsoft didn't seem to realize this in conjunction with feature #1 makes your computer go crazy every time you start Vista. And it took me a while to figure out what was going on. My new computer which i bought 2 month ago was thus brought to a crawl every time I started up.

3\. Interface is pretty but not intuitive, a lot of stuff is moved around for no apparent reason, eg you now have to wade through 3 or 4 links just go get to your network connection properties, which is something that should be more readily accessible to the average user.

I know these are all options which can be modified, but hell it took me a good few hours to figure out, and it annoyed me like crazy. Windows XP in comparison just seems faster, simpler and gets the job done quicker.

<comment><USER4> > "3. Interface is pretty but not intuitive, "

Agreed, but there's one feature that more than overcomes that -- you can just open up the Start menu and actually _type_ the name of the program/utility/file you want. So just type "Network" and it'll autocomplete. Personally, I almost never do any clicking in the Start Menu.

<comment><USER5> Launchy can do this on XP or Vista, and it's a few magnitudes faster.

<comment><USER2> I've tried Launchy on my XP installation, but find it doesn't work as fast, or as intuitively, as Vista (on the same machine). Of course, that was just my experience on one machine.

</comment></comment></comment></comment></comment><comment><USER6> Dell's charging 99 dollars for XP downgrades. I'm guessing that's an industry- wide tax imposed my MSFT. Sheesh. Vista's finally paying for itself.

</comment><comment><USER7> I'm seguing directly from XP to Leopard.

</comment><comment><USER8> > The MS bashers have done a great job spreading anti-Vista propaganda, but > few can articulate any real problems with the OS.

What benefits does Vista offer the typical user? (Other than the need to figure out how to turn off indexing so their new computer is usable.)

The 64 bit support is nice for some applications, but it's hard to believe that it couldn't have happened within the XP framework.

In short, Vista broke lots of things and didn't offer any significant benefits in return for the still ongoing problems. (No, DRM support isn't a benefit.)

</comment><comment><USER9> Vista was a problem looking for a solution.

Unfortunately, the solution never came, so the problem hung around like a miasma. Vista is why I switched to Linux.

Congrats, Microsoft.

</comment><comment><USER10> Shouldn't that be 17,326th

</comment><comment><USER11> 6nd?

<comment><USER12> Yeah, it's that bad.</comment></comment>


Army To Develop Halo-Style Electric Pulses - <AUTHOR> http://www.wired.com/dangerroom/2012/11/emp-grenades/

<comment><USER2> I second that. Huge fan of Halo, and huge fan of our military. EMP grenades can be extremely helpful, but the more advanced the enemy the more damage it will do. Thus, if used against us, it would hurt a lot.

<comment><AUTHOR> True.</comment></comment>