A Look at Enterprise Performance of Intel SSDs - <AUTHOR> http://www.anandtech.com/show/5518/a-look-at-enterprise-performance-of-intel-ssds

<comment><USER2> So it costs 2x more [than a 320], performs the same, but gets you up to an order of magnitude more endurance.

The question then is: when are you planning on replacing it. If you are going to replace it within the lifespan of a 320 (maybe for more capacity, or because new generations will be faster), you are better off sticking with a 320.

<comment><USER3> Plus, if you overprovision a 320 you not only increase IOPS, but also increase endurance.

</comment></comment><comment><USER4> > _Over the years our servers seem to die in the following order: hard drives, > power supplies, motherboards. We tend to stay on a hardware platform until > the [...] motherboards start dying_

Hum, that's quite surprising. I currently tend about 250 servers, and server motherboards live way past any useful life.

In the 5 past years, I've replaced about one hundred disk drives, a few power supplies, two RAID controllers and zero failed motherboard.

This week I replaced a 2004-era motherboard by a newer 2008 one, because of its lack of SATA ports; the old board still works fine, but is becoming hard to work with (no SATA, no PCIe, DDR-1 RAM, 32 bits only...).

<comment><USER5> It depends on how you service your boxes, and how much whiz-bang crap is on the motherboard.

If you rely on vendors to service the boxes, and use a vendor like IBM that likes to tweak the firmware of the boards, you're going to have alot of random crap diagnosed as "motherboard failure".

Many of these issues are really configuration or software issues -- issues that the SAs should be fixing by keeping firmware up to date. Back in the 90's, the vendor CE's would have a clue and advise the customer staff to try applying software fixes, or stop using buggy feature X. But these days, the smart CEs are mostly dead, retired, or laid-off, and their replacements are often contracted out people who just know how to swap out parts. (Or have an incentive for you to have more failures, since part swaps == money.)

If you as an admin actually service your stuff, you'll notice failure patterns and actually troubleshoot the stuff.

</comment></comment><comment><USER6> I can't express how happy I am to see this post. I made to decision to move all our database servers to Intel 510's 120gb months ago and it was difficult to find any data on long term use in an enterprise environment for any SSD's let alone consumer ones. Ordered several new 520's last week as spares and to replace the drives in our web servers, looks like it was a good choice after all.

<comment><USER7> Then you might also enjoy this review: <http://www.storagereview.com/intel_ssd_520_enterprise_review>

I found the write speed improvements from overprovisioning the SSD 20% especially interesting. Although probably irrelevant if your webservers are mostly doing reads.

<comment><USER6> Thanks for the link. This will come in handy since were moving to 520's across the board including our database servers eventually.

</comment></comment></comment><comment><USER8> Problem with this article is they're not considering whether their write load is justifiable. Why are they writing 15x as much data as they read?

Anand wrote this in response to the question: "Statistics are pretty beefy (they are one of our enterprise workloads after all) as we're tracking requests to all articles published. Couple a few hundred thousand readers per day with multiple article requests per reader and that's a lot of traffic to keep track of."

Sure it's a lot of traffic but why do you need to write it to an SSD? That's something you can easily offload to a slow database and/or file server. And once you do, what does your write load look like? If it's dramatically lower then it means your conclusions need to be revisited.

<comment><USER9> Not to mention storing page view data in a RDBS.

<comment><USER10> What is a better solution for a high traffic site than tracking page view data into an RDB? Log files other than the built in server logs? NoSql? I'm genuinely curious because my work site is currently tracking into Sql.

<comment><USER9> NoSQL would be what I would go for since this is the type of thing that Redis and similar excel at. Any way you can prevent writes per page view the better off you'll be. Redis gets you speeds similar to memcached but with some stuff you'd expect from a RDBS (durability, replication, etc). It's great for logging/analytics.

"Each drive in the first DB server has seen around 570GB of writes in 9 days, or roughly 63GB/day. The drives in the second DB server have gone through 1.03TB of writes in the same period of time or 114GB/day."

They're writing an incredible amount of data for what amounts to a fairly standard article/comment/forum site (which are typically very read heavy).</comment></comment></comment></comment>


Serverless Architectures - <AUTHOR> http://www.martinfowler.com/articles/serverless.html <comment><USER2> Previous: [https://news.ycombinator.com/item?id=11921208](https://news.ycombinator.com/item?id=11921208)

And the day before that: [https://news.ycombinator.com/item?id=11913463](https://news.ycombinator.com/item?id=11913463)

And the day before that: [https://news.ycombinator.com/item?id=11910246](https://news.ycombinator.com/item?id=11910246)

<comment><USER3> FYI, article does get updated regularly.

But, last update:

04 August 2016: Added "Future" and "Conclusion"

</comment></comment><comment><USER4> Fanstatic article, that gets the subtleties correct. This is my favorite part:

> If we see the gap of management and scaling between Serverless FaaS and > hosted containers narrow the choice between them may just come down to > style, and type of application. For example it may be that FaaS is seen as a > better choice for event driven style with few event types per application > component, and containers are seen as a better choice for synchronous- > request driven components with many entry points. I expect in 5 years time > that many applications and teams will use both architectural approaches, and > it will be fascinating to see patterns of such use emerge.

We will see this gap narrow.

I'm running tons of ECS workloads and operating the servers takes no effort. Amazon releases AMIs, CloudFormation automates AMI updates and scale, and ASGs keep everything running.

It took effort to learn these techniques and build tools that use them, but that's solved by open source software.

See Convox for an OSS project that sets it all up out of the box: [https://github.com/convox/rack](https://github.com/convox/rack). Disclaimer: I work on Convox full time.

> containers are seen as a better choice for synchronous-request driven > components with many entry points

Is absolutely correct, and describes ~95% of real-world software. For greenfield on AWS, I'd definitely see if Lambda, API Gateway and DynamoDB will work. For all those "old" Java, Python, PHP and Postgres systems out there, we have to run traditional containers, and load balancers and databases.

There's really no future where we are all "serverless". But there is a future where the resource cost and operational burden of both Containers and Functions is very very low.

</comment><comment><USER5> re: scale and on demand: "you only pay for the compute that you need, down to a 100ms boundary in the case of AWS Lambda"

it will be interesting to see how small these boundaries can become before it is too expensive to measure at the level of granularity sought. when you can spin up a container, run job, and destroy faster than you can even log.

<comment><USER6> A Java app that uses 1 GB of ram still uses 1 GB of ram.

Either you pay to idle 1 GB of ram on some giant server somewhere, or you put it on really fast SSD and pay the time to load it all into ram.

Now a little Python or C routine that uses 8 MB of ram... becomes a much easier thing to do.

</comment></comment><comment><USER7> Still can't stand that ridiculous buzzword. Fortunately with the moniker like that no professional will take that trend seriously..</comment>


Windows 10: Security and Identity Protection for the Modern World - <AUTHOR> http://blogs.windows.com/business/2014/10/22/windows-10-security-and-identity-protection-for-the-modern-world/ <comment><USER2> "Unless your not American in which case we will probably cooperate with or ignore holes exploited by the NSA."</comment>


SunTimes/DarkTimes - <AUTHOR> http://suntimesdarktimes.tumblr.com/

<comment><USER2> What it's all about: [http://suntimesdarktimes.tumblr.com/post/54124558043/quick-n...](http://suntimesdarktimes.tumblr.com/post/54124558043/quick- note) _this isn't about saying "oh, look how much the reporters suck. " This is about reporters and photographers both being necessary parts of a newsroom._</comment>


Carfentanyl Is the Drug 10,000 Times More Potent Than Morphine - <AUTHOR> http://www.huffingtonpost.com.au/2017/02/16/carfentanyl-is-the-drug-10-000-times-more-potent-than-morphine/ <comment><USER2> Just yesterday I was reading about that after a study reported cannabidiol didn't interfere with fentanyl.

I was mostly certain all my life that morphine or beta-endorphine were the limit. What a surprise.</comment>


It's Okay If You're Not Resilient - <AUTHOR> https://elemental.medium.com/its-okay-if-you-re-not-resilient-cc74c3f2db26 <comment><USER2> A lot of the grit talk is designed to turn what are social problems into individual problems. That's why it's so popular with rich people. Rich people love to think of themselves as deserving, and grit is just the buzzword for it.</comment>


Ask HN: For landlords – How do you ask your tenants to buy renters insurance? - <AUTHOR> Most apartment complexes require tenants to buy renters insurance; while for individual landlords, how do you ask your tenants to buy renters insurance? <comment><USER2> You put it in the lease. The owner is not responsible for the personal belongings of the tenant. Your lawyer or broker should be able to assist you with the language or if you're on your own there are example leases online - though personally I'd run all contracts by a lawyer. It only costs a few hundred bucks and you have a sample lease you can use again and again (reuse FTW!)

<comment><AUTHOR> Thx! I see. So I won't be financially responsible for the losses. But I'm more curious that if the tenants' loss will indirectly cause trouble to me (if they become broken and are not willing to move out?), will it be a better situation if tenants are willing to have renters insurance in place? If it is, how do landlords effectively persuade the tenants to do that?

I rented out my property and the current tenant from Europe bought the renters policy even before I brought up it. But I also encountered someone who never followed up on that.

</comment></comment><comment><USER3> I've seen it as part of the lease terms/requirements.

Generic copy/pasta from a few searched netted me this to put in the lease terms to refute your responsibility for their loss.

>LESSEE is responsible for his own insurance on personal property. LESSOR shall have no liability for loss, damage or destruction thereof. Lessor may remove and store at the expense of the LESSEE all property found contained herein, after move-out or abandonment of the unit by LESSEE.

Follow it up by a preface under the "Use and Care of the Premises"

>Said premises shall be used by LESSEE solely for residential purposes. Further, LESSEE shall not permit any unlawful or immoral practices to be committed upon the premises, including, but not limited to, drinking by persons under the legal age of twenty-one, selling tickets to parties where drinking by persons under the legal age of twenty-one may occur or the use of a controlled substance by any person may occur wherein that substance or substances is bought, sold or given gratuitously, nor use the premises in a manner which is offensive, noisy or dangerous which may result in an increase of the insurance rate thereon. Further, the use of the premises by LESSEE shall be in a manner consistent with the rights of other residents of said building in accordance with any Federal, State or local laws or ordinances so as not to cause undue disturbance. Nor to allow any other persons to occupy premises hereby rented, excepting casual visits of friends or guests to a two (2) day stay. NO OTHER PERSON(S) SHALL OCCUPY SAID PREMISES FOR MORE THAN TEN DAYS, IN TOTAL, DURING THE TERM OF THE LEASE.

Key part of that statement I found was

>nor use the premises in a manner which is offensive, noisy or dangerous which may result in an increase of the insurance rate thereon.

Just my two cents, I am not a lawyer

<comment><AUTHOR> Thx! Interesting. If those terms are put in the agreement, the landlord seems to be released from the liability financially. However, if the tenant cannot afford the losses, it may cause indirect troubles to the landlord, right? I'm wondering if there is any incentive for the landlord to encourage his tenants to have renters insurance...

</comment></comment><comment><USER4> I've had apartments make me list them as an interested party on my renters insurance. The landlord then would get informed if the policy was cancelled or lapsed due to lack of payment. That would also be something to look into.</comment>


Worth waiting to build a product full of killer features like Gran Turismo 5? - <AUTHOR> http://onlineracedriver.com/2010/08/29/gran-turismo-5-hard-drive-install-rpg-mode-and-sequel-already-on-the-way/

<comment><USER2> astroturf</comment>


NeWS – Network Extensible Window System - <AUTHOR> https://en.wikipedia.org/wiki/NeWS <comment><USER2> Speaking of interesting mid 80s window systems, there was a light weight window system developed by Stephen Uhler at Belcore.

It is under 20K lines of C, and very easy to port. It is able to run over a serial line or a socket, in a few hundred K of RAM.

Screenshot: [http://www.hack.org/mc/mgr/images/mgrscreen.png](http://www.hack.org/mc/mgr/images/mgrscreen.png)

More info: [http://www.hack.org/mc/mgr/](http://www.hack.org/mc/mgr/)

"MGR is to X as Unix is to Multix." -Dan Nachbar

<comment><USER3> MGR never supported X clients, right?

<comment><USER4> No. The cool thing about MGR was that you programmed it by sending terminal- like control codes to stdout. (I used to run MGR on Minix).

<comment><USER5> Neat - even works that way for input as well:

 _" MGR notifies a client program of an event by sending it an ASCII character string in a format specified by the client program."_

</comment></comment></comment></comment><comment><USER6> NeWS was really cool. Back in 1987/88 I used an early release of NeWS for my final-year undergrad project. It was made a little more challenging by only having a photocopy of a pre-release of the documentation, that was missing all the diagrams.

The model was really cool - completely different from X11, which is much more limited. With X, your app runs on the client and sends drawing commands to the display server. With NeWS, you can split your app arbitrarily between the client and the display server. The client simply extends the server by sending it postscript functions to locally interpret when asynchronous events happen. So you can write new widgets, and they run entirely on the display server so get really low latency, while the rest of the app is running remotely over a piece-of-wet-string network connection.

You could be sitting in from of a display running a nice interactive GUI, with the app running in a different country or over a modem connection. At least you could if the application designer got it right. Getting the split of functionality between the client and server (and the communication between them) right was definitely more challenging than writing X apps, but the benefits were significant.

<comment><USER7> 8 1/2, from Plan 9, used a similar architecture, IIRC, because of the smart terminals it was written for. Check out the editor Sam for an example; one side is ed++, the other is the GUI.

<comment><USER8> There are emulations of the Plan 9 smart terminals that run under Unix-like operating systems. They are quite different from xterms - they have much simplified communication with the remote host but much richer local editing capabilities:

[http://sydney.edu.au/engineering/it/~matty/9term/](http://sydney.edu.au/engineering/it/~matty/9term/)

[https://github.com/chneukirchen/tt](https://github.com/chneukirchen/tt)

The original Plan 9 terminal and window manager are described here:

[http://plan9.bell-labs.com/magic/man2html/1/rio](http://plan9.bell- labs.com/magic/man2html/1/rio)

</comment></comment></comment><comment><USER9> PostScript really is a lovely programming language. Some 20 years ago, I used a development environment (PSAlter) that made it quite palatable -- visualising dictionaries and stacks -- and made it possible to step through programs.

There exists a nice free e-book describing PostScript (Thinking in PostScript by Glenn C. Reid) [1].

[1] [https://web.archive.org/web/20000914161447/http://www.rightb...](https://web.archive.org/web/20000914161447/http://www.rightbrain.com/download/books/ThinkingInPostScript.pdf)

EDIT

While looking for the Thinking in PostScript book mentioned above, I stumbled upon this legal online archive for books on the net [2] which may be of interest to others.

[2] [http://onlinebooks.library.upenn.edu](http://onlinebooks.library.upenn.edu)

<comment><USER10> PSAlter is still available: [http://www.quite.com/psalter/psalter.htm#order](http://www.quite.com/psalter/psalter.htm#order)

</comment></comment><comment><USER11> This just reminds me how much of a shame it is that the best option for a remote UI today is a localized browser, and the tools that go with it... Don't get me wrong, I think the browser/web is a great platform, and better than many other options that have come and gone, that said...

It sucks that VNC, X11, and RDP are the best we have... though, I will admit RDP is pretty serviceable, X11 just seems too janky to work over a really remote connection... and VNC, well it works, but, sigh...

I don't think that any remote application UI will really take over as everyone that might work on such a thing wants to gain a lock in with the goal of financial gain... so nothing really reaches a significant market share. This is the case were something that is great and libre/opensource would be better than a standard.

<comment><USER12> > X11 just seems too janky to work over a really remote connection.

Surely It is.

But I cannot forget how magic it seemed in the 80s doing

      titan$ export DISPLAY=zeus:0.0; xeyes &

over slow serial lines.

<comment><USER13> xmeltdown

<comment><USER14> Jeremy Huxtable made the original "Big Brother" NeWS version of eyes [1], which inspired xeyes at SIGGRAPH '88 [2], and he also made the NeWS version of melt [3], in just 30 lines of code!

My favorite OpenWindows demo was Pat Lashley's monaeyes [4], of course. And I made a fancy version of eyeball windows for The NeWS Toolkit [5] to show off its drag-n-drop and nested window management capabilities, where the eyeball was the window frame, and the iris was the client window, and you could split them in two, and even drag and drop eyes inside of each other, so that sub-eye window frame was reparented inside the moving super-eye client iris! The effect was very creepy and CPU intensive, and I could never quite talk the OPEN LOOK folks into adopting them into the standard.

[1] [http://donhopkins.com/home/archive/news- tape/fun/eye/eye.ps....](http://donhopkins.com/home/archive/news- tape/fun/eye/eye.ps.txt)

[2] [http://www.x.org/archive/X11R7.5/doc/man/man1/xeyes.1.html](http://www.x.org/archive/X11R7.5/doc/man/man1/xeyes.1.html)

[3] [http://donhopkins.com/home/archive/news- tape/fun/melt/melt.p...](http://donhopkins.com/home/archive/news- tape/fun/melt/melt.ps.txt)

[4] [http://donhopkins.com/home/archive/NeWS/monaeyes.txt](http://donhopkins.com/home/archive/NeWS/monaeyes.txt)

[5] [http://donhopkins.com/home/archive/NeWS/eyes.ps.txt](http://donhopkins.com/home/archive/NeWS/eyes.ps.txt)

</comment></comment></comment></comment><comment> david-given NeWS was lovely --- the application got to download custom logic via Postscript onto the display server and run it there, so you could run interactive applications quite comfortably on high-latency links. Proper MVC separation!

Also, it had PizzaTool. [http://www.donhopkins.com/home/catalog/images/pizzatool.gif](http://www.donhopkins.com/home/catalog/images/pizzatool.gif)

Source code: [http://www.donhopkins.com/home/code/pizzatool.ps.txt](http://www.donhopkins.com/home/code/pizzatool.ps.txt)

I've always rather wondered why no open source NeWS clone never came along.

<comment><USER5> Do you think the _forking_ off multiple processes to draw all of the toppings concurrently was premature optimisation? ;-)

[Edit: I was pleasantly surprised at how readable that code is]

<comment> david-given Possibly premature, definitely not optimisation...

...but I saw it running in real time, and it was actually pretty cool to see all the toppings appear (this was on a Sparc ELC-class machine, so it didn't have much grunt). Seamless dithering on the monochrome display, too.

Also, the spinning the pizza was done by rotating the rendered bitmap. The inaccuracies meant that as you spun it, the toppings would all gradually blend into each other. I suppose that's realistic, in a way.

<comment><USER14> I'm glad you had fun! Thanks for the mention. The point of PizzaTool was to be well commented example code for developers to read, that showed how to plug many different parts of The NeWS Toolkit together (thus all the drag-n-drop and threading and image transformation stuff).

You're right, that was the best "melting" effect I could come up with, within the constraints of the PostScript imaging model. PizzaTool spins the pizza automatically, because I got tired of turning the image rotate tool in Stuart Marks' RasterRap by hand again and again to get that melting effect. I left it running over Christmas vacation, and it collapsed into an blob. But you can still add more toppings at any time while it's spinning!

Here's a demo of spinning pizzas, dragging and dropping images between RasterRap and PizzaTool, and cleaning the pizza tray afterwards with a wave. Sorry about the bad video quality!

[https://www.youtube.com/watch?v=avJnpDKHxPY&feature=youtu.be...](https://www.youtube.com/watch?v=avJnpDKHxPY&feature=youtu.be&t=21m42s)

<comment> david-given While you're here...

What was the NeWS security model like? Could it safely combine Postscript programs from multiple users on the same display server without information leakage between users?

And I suppose the NeWS source code got eaten by lawyers long ago and is unlikely ever to see the light of day?

<comment><USER14> NeWS was just as "open" (in the bad security sense of the term) as X11 was at the time, and didn't have any protection between clients, but was much more reflective and easier to explore. Once you're in, you're really really in.

Tools that imported EPS could be tricked into doing all kinds of stuff like forking Unix processes, and open files. And being able to open files also meant opening sockets with the %socket syntax.

NeWSPrint was a laser printer that ran NeWS on a workstation to render pages, in a stripped down presumably firewalled environment. But I was able to cause an error in a certain context that left an execution stack dump on the operand stack before calling my code, and inside that stack dump were nested executable arrays of PostScript code that contained an inlined unrestricted 'file' operator. So it was possible to make a PostScript file that would connect to the finger server and print out a list of anyone who was logged in. Or anything else if you can fish out a fork operator!

The NeWS source code is in that indeterminate "not lost but not published" state.

It would be a lot of fun and not so difficult to reimplement clean room NeWS in JavaScript from scratch, using canvas for all your PostScript rendering needs, which would otherwise be the hard part. James Gosling wrote the original SunDew interpreter in a weekend, but the graphics stuff took years to get right.

Gosling's SunDew paper: [http://www.chilton- computing.org.uk/inf/literature/books/wm/...](http://www.chilton- computing.org.uk/inf/literature/books/wm/p005.htm)

A few years ago I dabbled in writing a spec and some plumbing for NeWS in JavaScript, but haven't had the time to work on it recently. If anyone wants to work on it, I'd be happy to answer questions and put a little more time into it when I can.

Source code: [http://donhopkins.com/home/sundew/sundew.js](http://donhopkins.com/home/sundew/sundew.js)

It doesn't do anything exciting or graphical yet, since I was just working on the interpreter. So far I've classified and listed out all of the operators you'd need to cover, made nucleus classes for the vm, processes and objects, modeled shared bodies for dicts, array and string sub-intervals, stubbed out all of the NeWS primitive and magic dictionary data types, and stopped just short of writing the main interpreter loop in PSProcessBody.run, which will work a lot like ps.ps: [http://donhopkins.com/home/code/ps.ps.txt](http://donhopkins.com/home/code/ps.ps.txt)

It still needs a lot of fleshing out, including a tokenizer (but that's trivial for PostScript) and many operators and graphics (but that stuff's fun!).

I'm sure that with some more work on a clean room JavaScript NeWS server, it would be both possible and legal to run a lot of the old NeWS 1.1 demos and apps like psiber, and maybe even later OpenWindows stuff like pizzatool, pretty darn fast in a web browser.

</comment></comment></comment></comment></comment></comment><comment><USER15> This is the project the demise of which lead to Java : [http://www.blinkenlights.com/classiccmp/javaorigin.html](http://www.blinkenlights.com/classiccmp/javaorigin.html)

<comment><USER14> Keep in mind that while extremely fascinating and enlightening and well worth reading, and how apt his comparison to the Gaza strip, that essay is from Patrick's own unique perspective, and he does not necessarily share all the same opinions as the dispassionate people for whom he recommended euthanasia. ;)

</comment></comment><comment><USER5> I used HyperNeWS for a few years on a project and had great fun with it (front end in PostScript/NeWS, back end in Common Lisp and plumbing in C).

You could do some neat tricks - draw something in the graphical editor, copy it and paste it as the shape of a window (stack). Another thing you could do was log in through the PostScript shell to the server, navigate to your window (or anything else) and fiddle with it using standard PostScript 2D transforms. e.g. You could gradually rotate a terminal window, although I would never have done this to a colleague as they were using it, honest.

I rather enjoyed working in PostScript although I believe there was a C to PostScript compiler built at one point (inevitably this being done in Glasgow it was called pdb for "pure dead brilliant").

Don't think there was much of a security model in NeWS so probably not a great fit for today's world but it was so much cooler than X.

</comment><comment><USER16> I used and wrote code for NeWS - the pre-curser for Java. I was also at the talk where Gosling admitted the problems it had. In some cases, a lot of features of Java were in response to the problems with NeWS.

NeWS was so awesome when it came out, where you can dynamically change the interface at any time. But NeWS had some horrible bits. As a language, it was very hard to read. If you saw a name, you didn't know if it was a variable or a function. That is, you didn't know if the value would be pushed onto the stack, or if it would pop some values off the stack. Best Practice was to add a comment after each line to indicate what the top of the stack would look like after that line. So if you got lost reading one line, you could figure out what the next line would do. But without it, after seeing three words in a row that you didn't fully understand, you were hopelessly lost.

NeWS (PostScript) was a write-only display model. You could not remove anything painted on the screen. You had to write over it. Adobe had Display PostScript, but that never took off.

And because of the write-only display, NeWS had a hard time freeing resources. Garbage collection was very difficult because of this. You would allocate a white square, and never truly "remove it" from memory. As I recall, a page refresh had to re-interpret all of the code - there wasn't any caching of the window.

Also - the entire display model with postscript-based scaling was CPU intensive, especially if you had a computer with slow graphics (quite common at the time).

<comment><USER17> "Adobe had Display PostScript, but that never took off." Well, except for it's use in NeXTStep. Though I think they threw it out in favor of PDF/Quartz for OS-X.

</comment></comment><comment><USER18> Just this morning I spoke of NeWS (for the first time in at least 20 years) to a colleague at work. Very strange to see this posting on HN in the same day... PostScript with classes... and input methods... seemed to be a very interesting way to model user-interfaces, and graphics rendering in general...

</comment><comment><USER19> Ah, pie menus... Weirdly enough, the only place I see them these days is games.

<comment><USER20> That may be due to Don Hopkins. He did the pie menus for NeWS and latter for The Sims.

<comment><USER21> jwcad usage is very piemenu-centric.

</comment></comment></comment><comment><USER22> Maybe my google-fu was blurred by the 'news' term but it was very hard to find things about it (beside "NeWS was great").

</comment><comment><USER23> NeWS wasn't the only windowing system to use Display PostScript. The other big one was NeXTSTEP which obviously became OS X.

<comment><USER14> NeWS was not actually Adobe's Display PostScript, but it was Sun's independent implementation and specialized dialect of PostScript, supporting light weight processes, overlapping arbitrarily shaped canvases, window management, event distribution, garbage collection, networking, object oriented programming, etc.

The most important ability that NeWS had, but was missing from Display PostScript and its successors (OS/X Core Graphics, PDF, SVG, canvas API, etc), is the ability to download code to create an efficient custom high level application specific protocol between the client and server.

That essential ability is what people call "AJAX" these days, now that PostScript has been supplanted by JavaScript and a whole bunch of different APIs, and now we're even downloading shaders to the GPU! Truly exciting!

James Gosling chose PostScript from the start, for how its network programming ability dovetails with its graphics and data representation, instead of nailing it onto the side of a bunch of different technologies as an afterthought.

To quote the comparison from the wikipedia article:

NeWS was architecturally similar to what is now called AJAX, except that NeWS coherently:

1) used PostScript code instead of JavaScript for programming.

2) used PostScript graphics instead of DHTML and CSS for rendering.

3) used PostScript data instead of XML and JSON for data representation.

<comment><USER14> Here's a deeper discussion of the technical design differences between NeWS and Display PostScript, from a discussion with Robin Schaufler and James Gosling:

        From: James Gosling <email@example.com>
        Subject: Re: Display PS vs NeWS
        Date: 22 December 1988 at 19:35:08 GMT+1
        To: Robin Schaufler <firstname.lastname@example.com>
        Cc: email@example.com (Don Hopkins), firstname.lastname@example.com

Robin: Don, I'm replying just to you, not to NeWS-makers (trying to stay out of trouble). The one major area where NeWS cannot emulate Display PS is that of memory management. Display PS introduces the notion of spaces; effectively, each process group gets its own heap. Kill the process group - the memory gets cleaned up whether it has cycles in it or not. Very nice, actually. But a major project for us if we decide to adopt it. Fortunately, we already started on a new memory management system for data localization that will help some with implementation.

James: The thing that we don't have is a thousand caveats on what can be assigned to what. You can't have pointers that cross spaces in Adobe's scheme, so as you read through their documentation you find zillions of restrictions that make life very difficult. Also, the "kill the process group..." doesn't really apply: they don't have process groups. Each process is alone. If you want to share, you have to stick stuff in the "shared" space or be forked from a common parent. save/restore has bizarre semantics in this memory model: eg. if a process executes "save" then any other process that shares the same storage pool is blocked (honest, I'm not making this up!)

Robin: We also can't emulate their lock mechanism. I had the distinct impression that they analysed NeWS monitors completely, figured out exactly what was wrong with them, and fixed it. I really like this extension, but again, considerable work for us (tho less than for the memory management extension).

James: Far from considerable work and of dubious value: almost no one has ever used locks. DPS locks are identical to NeWS monitors (they're even applied with the same primitive "monitor"). NeWS is missing condition variables, which are a good idea but not difficult to implement. Events are the common form of process syncronization in NeWS.

Robin: Another area we would have trouble emulating is their new halftoning operators, but that seems like less of a problem. The new operators allow for tiling, which we've implemented for X, but we'd still have to hook it up for NeWS, and provide their model, which isn't quite the same model. Actually, NeWS probably can emulate it but it would be beastly slow.

James: Actually, the DPS threshhold are NOT the tiling operators that PostScript so badly needs. If you read it carefully, for devices with more than one bit per pixel you can't get the tiling effect. Halftones continue to only be useful for halftoning.

Robin: In a few cases they picked the same names and operator spec as us, but in general they didn't try to be compatible. A few incompatibilities seem gratuitious to me.

James: eg. processes

</comment></comment></comment><comment><USER24> OpenLook window manager was great.. I loved how customizable it was, using things like text files to customize root menus. It was also the best looking WM I've used.</comment>


On Debt Collectors - <AUTHOR> http://lbrandy.com/blog/2010/02/on-debt-collectors/

<comment><USER2> Whoa, the same thing happened to me with a guy named Sam, only I was a bit naive, and foolishly gave the debt collection scumbags my information early in the ordeal. Some collection agent actually called my family far far away looking for "Sam". I eventually learned lot about this person, and came to be very sympathetic to him. Be careful! Don't go bust, apparently it really sucks to be poor.</comment>


10 Things We Can Learn From Apple - <AUTHOR> http://www.basement.org/2007/06/10_things_we_can_learn_from_ap.html <comment><USER2> I imagine that hiding the screws is probably great for attracting some segments of customers, but it repels others (namely: me). I don't know if there are many people like me, but one of the reasons why I stopped buying Apple computers and switched to IBM/Lenovo is because the Apple stuff, despite being quite reliable, would inevitably break down at some point, at which point it was nearly impossible to take it apart without first reading and rereading the secret licensed-Mac-technicians-only how-to-take-it-apart manual.

Apple tends to optimize for ease of learning by beginners, not ease of use, let alone tinkering, by experienced users. I don't mean to be patronizing, I'm just observing. In my opinion, truly great user interface design provides a smooth learning curve that's easy to get onto for Aunt Tillie, but also continues to be smooth for J. Random Hacker.

Products with that kind of learning curve are great from an abstract engineering-aesthetic point of view; but assuming that your own sense of aesthetics translates into profit is, of course, wishful thinking. Still, I'm looking forward to a mythic future in which consumer electronics will again be more like the Apple II, and less like what Apple makes today. Examples going in that direction would include the OLPC laptop (<http://laptop.org)> and the Chumby (<http://chumby.com)> .

</comment><comment><USER3> I personally enjoyed this article. Thanks!</comment>


The Computer Chronicles (1983 – 2002) - <AUTHOR> https://archive.org/details/Computer_Chronicles <comment><USER2> My lockdown project has been organizing these episodes. The full resolution versions are in an annoying format (interlaced MPEG-2), there's a bunch of duplicates caused by some of the recordings being from repeated episodes, and many of them are incorrectly tagged.

I'm actually pretty much finished now, I just need to re-upload the new versions back to the archive.

<comment><USER3> Wow, that's an amazing effort! What a generous thing to devote your time to - I'll look forward to the results.

I'm not sure how you're planning to upload them back to the archive, but be aware that the command line tools[1] sometimes have issues with uploading larger files. I've found that the command-line tools are more reliable (supporting more retries by default) than the direct Python API.

Also, by default, archive.org will "derive" the uploaded video into a variety of different formats (this is normally a good thing, but I'm mentioning it since you might have already re-encoded them yourself and may want to avoid the system from "messing" with them). You can turn off derivation with a command line flag "\--no-derive" to the "ia upload" tool (or a "queue_derive=False" parameter to internetarchive.upload() if using the Python API).

(source: I'm currently uploading thousands of local government videos, many of them 3+ hours long, to archive.org. With this many videos, I have scripts checking the hashes of uploaded videos to make sure the process worked before deleting any source files on my machine.)

[1] [https://archive.org/services/docs/api/internetarchive/](https://archive.org/services/docs/api/internetarchive/)

<comment><USER2> My current plan is to upload each season as a single item, rather than individual episodes.

</comment></comment></comment><comment><USER4> In the days before the Internet, a new episode of Computer Chronicles was a big deal to a young me. It was the only source of personal computing news at the time besides going to the library once a month to read the new magazines.

Fun moment in retrospect: Someone from Blizzard demoed a preview of Diablo on the show. In the live demo, the first monster he kills drops a Book of Identify (permanent ability). Before the game shipped, they removed that item and made buying and carrying Scrolls of Identify (consumable) into a rather annoying gameplay mechanic.

<comment><USER5> Before the web?

<comment><USER6> Before you could be on it 24/7.

</comment></comment></comment><comment><USER6> TCC is so good. The late Gary Kildall—CP∕M creator and DRI founder—was a frequent co-host! [https://en.wikipedia.org/wiki/Gary_Kildall](https://en.wikipedia.org/wiki/Gary_Kildall)

<comment><USER7> He was the Bill Gates we needed.

</comment></comment><comment> the-dude I haven't clicked the link, but some are on YT too, featuring the coolest guy in the industry : Gary Kindall

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

</comment><comment><USER8> This presentation by Stewart Cheifet from the 2018 Tandy Assembly (TRS-80 enthusiasts conference) included some interesting information about the genesis and life of the Computer Chronicles TV show:

[https://www.youtube.com/watch?v=iIf6leAPaEM](https://www.youtube.com/watch?v=iIf6leAPaEM)

(He states that there's a connection between his trying to get funding for the show and a famous TV ad.)

<comment><USER7> Love the story about his first unpleasant experience with a certain tech personality, "one of many".

</comment></comment><comment><USER9> The HyperCard episode was fun to watch [https://archive.org/details/CC501_hypercard](https://archive.org/details/CC501_hypercard)

</comment><comment><USER10> I remember watching the 1980s episodes as a kid. Didn't understand a thing past the Commodores and Ataris and Apple ][s, but I loved it. It was a whole new world.

Now I watch them again and I actually understand (and actually have many of these computers in my collection), but I still have that same sense of marvel at looking at a new world unfolding. The microcomputer revolution was something to behold and this show captured it.

</comment><comment><USER11> The Computer Bowl episodes were fun too. East vs West, back when Silicon Valley hadn't dominated the industry completely. The first couple of Computer Bowls had pretty big industry leaders participating.

</comment><comment><USER12> And FYI, Stewart Cheifet also hosted a spinoff show called NetCafe which is historically interesting in its own right. Some episodes you can also find on archive.org and youtube.

</comment><comment><USER13> Loved this show as a kid. The annoying thing about now is, because of the format of the show, they only get to spend a couple minutes on each demo. I would be fine watching a whole half hour of the latest piece of hardware or newest application.

One great thing about the show was that it covered more than Windows and DOS, the most exciting episodes to me were the ones that showed UNIX workstations

<comment><USER14> Lots of people forget that until quite recently computing was an extremely diverse environment. Everything from home computing to mainframes had dozens of manufacturers, mostly incompatible not only with each other, but even between their own computers! Dozens of OSs, CPU architectures, graphics, and so on were everywhere.

Today's computing is pretty boring by comparison. It used to take _work_ to keep up to date with what was going on just in consumer PCs, it seemed like an entirely new system architecture was being announced every few months. In the 80s and early 90s, specialized work for various business cases often even required entirely custom hardware. The average computer just wasn't versatile enough to cover all of the use-cases.

CC, by trying to cover a broad swatch of computing, inevitably spent lots of time in these interesting areas, even if they seem kind of niche these days.

Really fascinating is that their interview and showcase desk often features "titans" of industry like Jack Tramiel demoing something alongside a small company's disheveled software engineer. Even more interesting is how the industry has completely transformed such that the ratio of suited sales guys that used to be everywhere in the public face of computing like CC are mostly gone, and replaced by those same engineers.

</comment></comment><comment><USER15> Much as my son happily got up early before school to watch Pokemon, I happily got up early before work to catch The Computer Chronicles.

</comment><comment><USER16> Episode 3 is a Classic. 17 year-old Will Harvey showing his summer coding project, Music Construction Set from EA.

</comment><comment><USER7> On the very first episode Herb Lechner, from SRI, mentions the feeling of nostalgia brought by visiting the Computer Museum (before it moved from Boston and became the Computer History Museum).

It's fun to see the interest in retrocomputing dates back to the early 80's.

</comment><comment><USER17> Great interview with Stewart Cheifet from a few years ago.

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

</comment><comment><USER18> "total size of requested files (105 GB) is too large for zip-on-the-fly"

Bummer, I was going to download and watch offline using a USB in my TV.

<comment><USER4> [https://github.com/jjjake/internetarchive](https://github.com/jjjake/internetarchive)

[https://archive.org/services/docs/api/internetarchive/](https://archive.org/services/docs/api/internetarchive/)

</comment></comment><comment><USER19> I would have loved this show as a kid. Was this local to the bay area or was it picked up by other PBS stations?

<comment><USER20> It was definitely in Indiana, Wisconsin, and Pennsylvania. So, probably picked up by most of the PBS's.</comment></comment>


Choices for Greece, All of Them Daunting - <AUTHOR> http://www.nytimes.com/2011/07/10/business/economy/greeces-choices-in-debt-crisis-are-all-daunting-economic-view.html?_r=1

<comment><USER2> The article could be more informative:

"If it left the euro zone, Greece could reap the substantial benefits of a currency depreciation, but doing so would also set off huge runs on banks. And the country has no alternative paper currency ready for use."

This is the only part of the article that considers not repaying debts.

<comment><USER3> A run on the banks, or a surprise lock-out followed by exit and devaluation = poor now.

Decades of austerity measures = poor for the rest of your life.

I know which sounds more sensible to me.

<comment><USER4> Its a false choice. Both options lead to poverty, because neither option deals with the fundamental problem: the Greek government doesn't make enough money to cover its yearly expenses without borrowing. Either we can have an orderly devaluation, or we can have a disorderly devaluation. Austerity measures allow for the first. A hasty exit from the Euro makes the second inevitable.

Now which option looks more appealing?

</comment></comment></comment><comment><USER5> Option one, banks will join in the rescue effort and the ECB will allow for a temp default of greece. Ewald Nowotny hinted this today.

Option two, "Eurobonds" will be issued. This will allow Germany to lend money for Greece at a very low interest. (costs Germany a lot of money as their national interest will be increased, last resort)

Option three, some of the debt will be dropped and reissued as longer ten year loans releasing the choke hold. Paul Achleitner from allianz hinted.

Option four, EFSF will buy Greek bonds.

Unemployment rates went down in Greece from 16,2% to 15,8% last month. Which hints their economy is growing a bit. There's talk of a banking tax, which let banks pay a small % to help build a buffer for these situations. I'm personally more worried about the United States then the euro zone.

<comment><USER6> _Unemployment rates went down in Greece from 16,2% to 15,8% last month. Which hints their economy is growing a bit._

Careful: The implication "unemployment rate goes down => economy is growing" is not true in general.

The rate of unemployment is always defined relative to the active part of the population, where active means either employed or looking for work.

In extreme downturns, as Greece has experienced, the participation rate naturally drops because people become disillusioned. This can have the bizarre effect that the unemployment rate drops even though the total number of jobs actually decreases. So the absolute number (and then also the rate) of unemployed decreases not because the unemployed become employed, but rather because they become economically inactive (i.e., they give up).

I am not sure if this is what is happening in Greece, but I wouldn't be surprised if it was. The interfaces of most national statistics institutions are really horrible, so I haven't looked at the numbers.

I assume you got those numbers out of some newspaper or similar, and I just wanted to point out that especially in extreme economic circumstances, reporting only the unemployment rate is irresponsible - but unfortunately, that's what most media is.

Final thought: Comparing the United States to the Eurozone is to misunderstand the nature of the beasts. Both have a common currency, but the US has a significant central monetary sovereign. The Eurozone has no monetary sovereign. The differences this implies are enormous.

</comment></comment><comment><USER7> If Greece leaves the euro zone, don't expect it to stop using the euro. it will become like Andorra, Kosovo and Montenegro who use the euro as their De Facto currency even though they are outside the euro zone. Would you want to get paid, as a company or an employee, in a currency that is designed to loose value? Devaluation will only happen if people accept using the new currency.

</comment><comment><USER8> The scenarios for the greek crisis are turning more and more to be science fiction. To me it's inconceivable how it can be expected that us greeks will have to put up with "austerity measures" for what is essentially the rest of our lives. I 've been a supporter of an immediate exit from the euro from the onset of the crisis. Greece is not ready to compete with the rest of europe, let alone with the rest of the world, so it's best to introspect, build a diversified internal economy which will bring true sustainable growth. People are just not interested in putting up with the terms of the additional loans, it's going to take a shift of generations for the change in attitudes. Trying to fake a developed economy via the introduction of the euro was an experiment that failed miserably. There is a middle-eastern-style business culture in which corruption has been promoted to a science. Income taxes are higher than Germany, yet financial law enforcement is virtually non-existent. As a small startup owner, i don't see any reasons to keep my business in this country.

<comment><USER4> >I 've been a supporter of an immediate exit from the euro from the onset of the crisis.

The problem with changing currency is that its impossible to pull off without having bank runs that would make the Great Depression look like a bad ATM line. Changing a country's currency takes a _lot_ of preparation. New bills have to be printed. New coins have to be minted. The currency has to be distributed to banks. Exchange rates between the new and old currencies have to be set. Do you really think that this can be done in secret?

No, if Greece decided to go back to the drachma, there would be a massive financial panic as everyone with a Greek bank account tried to pull their Euros out and move them overseas. The civil unrest that would cause would make the current protests look like a small crowd of rowdy teenagers.

<comment><USER6> The comparison with the Great Depression in connections with bank runs is not a good one. Yes, there may have been one or the other bank run bank in those days, but the main feature of the Great Depression was rampant unemployment - more or less exactly what Greece is already experiencing.

Greece _must_ exit the Euro to avoid prolonged Great Depression-style unemployment.

So this becomes a short vs. medium term tradeoff. Introducing a new currency will most likely be chaotic, but in the medium term it allows Greece the flexibility to restart the internal economy. Without introducing a new currency, the short term chaos can be avoided at the cost of a very prolonged downturn that is destructive for the country's prospects and may lead to political chaos in the medium-to-long term.

<comment><USER4> The massive unemployment was a result of the bank runs, not a cause. The bank failures caused the economy to seize up and people to hoard money, leading to a massive wave of foreclosures and business closings, leading to massive unemployment. It wasn't until FDR declared a bank holiday and brought the FDIC up that people were confident enough in their savings to put money back into banks.</comment></comment></comment></comment>


Ask HN: I whacked a HDD and it started working again - <AUTHOR> An external HDD fell off the side of the desk, and once it fell it wouldn't work (made weird clicking noises then shut down). So after a few attempts I thought hell there is nothing to lose giving it a slightly firm punch a couple of times - and now it is working (like an old TV I guess!). I wonder what the explanation is? <comment><USER2> The explanation is that you should either dd it or rsync it somewhere before it's too late. Great to hear that it seems to work, still, though. Thumbs up backups down.

<comment><AUTHOR> Thanks. I have already copied the delta between that HDD and the backup to my dropbox :-).

</comment></comment><comment><USER3> Oh man, my first TV when I was a kid... SLAP hey it's fine now, start to sit back down, starts jumping around again, sonofa...

You probably jammed one of the mechanical components, striking it again probably dislodged it.</comment>


Read Goldman Sachs' Secret Facebook Pitch Memo - <AUTHOR> http://blogs.wsj.com/deals/2011/01/05/read-how-goldman-sachs-pitches-facebook-to-clients/

<comment><USER2> It's not clear how enforceable these provisions are. As a private company, is Facebook subject to insider trading laws?

Obviously GS could stop doing business with said person, but what other recourse would they really have?

<comment><USER2> I was wrong. This would be considered insider trading.</comment></comment>


OmniOS: Illumos-based OS from OmniTI - <AUTHOR> http://omnios.omniti.com/

<comment><USER2> So we are now nested, what, six deep in forks? I've long since lost track: OpenSolaris => OpenIndiana => Illumos => this new thing ? are there some in- between steps?

And we don't have 100% solaris api/abi compatibility.

Or a Sun compiler.

Or Sun drivers, necessarily.

Or a real guarantee of future source releases from Oracle.

Who/what is this for?

<comment><USER3> Who is it for? My view:

People who want to run ZFS for storage usage. ZFS is still better than Linux alternatives like LVM, BTRFS etc. To be picky, there is not an exact counterpart to ZFS under Linux.

And with clones etc. you can set up 1 master KVM image and then clone it 10 or 100 times, saving a lot of disk space in the process (ZFS clones only use the amount of space that is different from the original).

People who have a lot of Solaris experience or have to maintain a lot of Solaris systems already. Also people who are using Solaris zones.

People who are building backend systems that require or can use any/all of the above. Right now, no one cares what your Web SaaS service runs on, as long as it stays up and doesn't lose their data.

Solaris still has a better VM subsystem, IMHO, than Linux does, and performs very well under heavy loads that include disk activity.

<comment><USER4> You've explained who _Solaris_ is for, but if you want Solaris why would you want to run a fork of a fork of Solaris? It's still not clear what value this adds _relative to Illumos_.

<comment><USER3> For one, KVM virtualization does not run on Illumos, nor Solaris.

Second, Oracle is encumbering Solaris with a not-nice license. I haven't followed the latest developments because I no longer care, since I will never use a non-free OS.

Whether you meant to ask, "Why Illumos over Solaris" or "Why SmartOS or OmniOS over Illumos?" I think I have answered your question :-)

<comment> X-Istence KVM virtualization has been added back to Illumos and is also available from Joyent as SmartOS:

<http://dtrace.org/blogs/bmc/2011/08/15/kvm-on-illumos/>

Hopefully the next release of OpenIndiana will add support for it as well, seeing how they also use the Illumos kernel.

</comment></comment></comment></comment></comment><comment><USER5> My understanding of hardware support from SmartOS and Illumos was that it only worked on Intel hardware and not AMD. Is this still the case?

Relevant to this discussion : Joyent releasing SmartOS <http://news.ycombinator.com/item?id=2887170>

AMD support from SmartOS wiki: [http://wiki.smartos.org/display/DOC/SmartOS+Technical+FAQs#S...](http://wiki.smartos.org/display/DOC/SmartOS+Technical+FAQs#SmartOSTechnicalFAQs- WhataboutAMDsupport%3F)

<comment><USER6> Most things work on AMD64. In SmartOS, KVM was the major feature that didn't work on AMD64, but as they said in the faq, the community has been working on that. I can't currently find the testing ISO builds with that support, but here is at least one repo with KVM on AMD support: <https://github.com/jclulow/illumos-kvm>

Joyent's original work is worse than just Intel only, it requires features found in Core iX and relate Xeon CPUs. This means it doesn't work on Xeon 5xxx chips that are getting affordable and it doesn't work on C2D chips that support VT-x. It sounds like AMD support is further along than supporting older Intel chips.

<comment><USER7> That's my repo! The "pre-ept" branch contains experimental support for both AMD CPUs with AMD-V support, and Intel CPUs lacking the EPT feature (Joyent targeted EPT support with their initial port.)

I have a hacked up SmartOS ISO from a month ago with a build of the "pre-ept" KVM module replacing the stock module. If you'd like to test it out, with the disclaimer that it might not work for you, it's here: <http://alpha.sysmgr.org/smartos-20120223-jmc2.iso>

If it works for you I'd love to hear about it. If it doesn't work and you can provide crash dumps or even remote console access to the machine for me to debug the problem then I'll try and help out. My goal is to get the new support tested and working on as many different bits of hardware as possible and then get it integrated into Joyent's repo once cleaned up and proven.

A lot of us hang out in #illumos on freenode (IRC) if you'd like to chat -- I'm LeftWing.

</comment></comment></comment><comment><USER8> I gotta say, ZFS+KVM sure seems like an awesome combo. Any ideas how this is different than SmartOS?

<comment><USER3> The SmartOS ISO I downloaded, did not have an installer to help you install the OS to disk.

This one does, according to release notes.

Looks like they have tweaked some of the libraries and they provide both 32 and 64bit versions of Python also (this can be a pain to build sometimes as the configure tools don't always pull in the right libs, so you end up with mixed 32 and 64bit objects or other weirdness).

Also, the installer is minimal, basically just asks you what disk to install on. You do all other configuration after you have booted it for the first time.

<comment><USER9> Just to be clear to any readers: SmartOS is not meant to be installed on disk, ergo no installer.

</comment></comment></comment><comment><USER10> Can anyone elaborate: why all these cloud webhosting people are taking legal risks of Oracle changing license for (Open)Solaris or closing this OS project entirely, legal risks of being sued by Oracle for patent infrigement / whatever else legal bullshit?

They could just port KVM to FreeBSD instead; FreeBSD already has ZFS, DTrace and all other necessary bells and whistles for cloud webhosting infrastructure. But in contrast to (Open)Solaris they have community support for new hardware, a lot of already working drivers for existing hardware and also much safer legal position.

Are there any technical difficulties with porting KVM to FreeBSD? Can anyone elaborate?

<comment><USER11> As I said above, OpenSolaris is dead. illumos is a fork. We don't take code from Oracle, because there isn't any. If they'd kept the gate open, a fork probably wouldn't have happened.

As for why not to just move from Solaris to FreeBSD... because they're totally different beasts? And we happen to like Solaris? :-)

Porting KVM to Solaris was apparently quite non-trivial:

<http://www.youtube.com/watch?v=cwAfJywzk8o>

</comment></comment><comment><USER12> I would love to have a special laptop edition of a OS like this.

Some nice features:

A nice VM overview/start/manage screen A way to group VM's so it starts multiple VM's with a single "click" (in a pre defined order).

Switching between VM's with a shortcut and/or alt-tab/expose visual style.

Host menu to openen up new VM's, looking at stats etc. maybe a fold down over the current VM

</comment><comment><USER13> I'm not to familiar with the Illumos world. Would this be the equivalent of a new Linux distribution?

<comment><USER8> Yes, I think so, except its the equivalent of a new Solaris/OpenSolaris distribution (from which Illumos derives).

<comment><USER14> That's very ambitious. Do you know who they're targeting with this? Legacy systems perhaps?

<comment><USER15> Honestly, more and more people with big data problems are turning back to solaris kernels over linux because of how many issues there are with linux when you are really running it hard. ZFS, dtrace, and the Solaris kernel on new hardware is really a compelling argument over Linux.

<comment><USER5> I hate to be the one asking for a citation but can you share some examples of "more people" who have moved from Linux back to Solaris? I agree about excellence of Dtrace and ZFS but I'm just curious about your kernel comment.</comment></comment></comment></comment></comment>


The stimulus bill includes a tax break for the 1% - <AUTHOR> https://www.cnn.com/2020/03/28/opinions/stimulus-bill-tax-break-for-1-mccaffery/index.html <comment><USER2> Wow. What a biased hit piece.

The idea that Trump would own any investment real estate outside of a legal entity such as a corporation (or LLC, etc) is absolutely naive. Yet this article tries to finger him in this vein.

I don't give a damn if the author hates trump, but he did a disservice to his readers by letting his bias get in the way of something that might be important.

</comment><comment><USER3> What if personal income tax went away? It wouldn't matter.</comment>


Ask HN: Review my Web App: Making it easier to find Restaurant Discounts - <AUTHOR>

I like to make webapps around affiliate programs that help people save money. My newest one takes all the restaurants that offer coupons on restaurant.com and sorts them by customer ratings from other third party sources. I am looking for feedback on how I can make the website more useful. If you follow this link it will try to detect your location and give you the top rated restaurants within 10 miles. http://restaurantcoupons.us <comment><AUTHOR> <http://restaurantcoupons.us></comment>


We organised a conference for 570 people without using plastic - <AUTHOR> https://theconversation.com/we-organised-a-conference-for-570-people-without-using-plastic-heres-how-it-went-120157 <comment><USER2> This is great.

What I despise most about conferences are the 10 different goodie bags that are forced upon you, containing countless low quality pens that you will never use, reports in plastic binders that are difficult to separate, plastic promo goods that I don't even know how to recycle, and so on. All in all it makes me feel like a walking trash can.

I hope more organizers will follow their example.</comment>


Never too old to excel: a startup and its 60-year-old CEO - <AUTHOR> https://www.linkedin.com/pulse/youre-never-too-old-excel-how-snowflake-thrives-dinosaur-anders <comment><USER2> There has been a number of (what seem to me to be) ageist articles like this on HN lately.

Why is OK to post articles like this one, when ones entitled:

* "Never to Pregnant to Excel"

* "Never to Disabled to Excel"

* "Never to Black to Excel"

* "Never to Gay to Excel"

would surely (and rightly) be flagged as offensive?</comment>


Ask HN: Highest end job search (outside of bay area) - <AUTHOR> I am a very well compensated and skilled developer in one of the hot fields of tech. I am in good standing and fairly senior at my current job. I am also somewhat well known in the field.
I'd like to move out of the bay area to a specific location for family reasons. I want to come back to NorCal one day, but I will have to move to another city in the next year. I'd rather stay here for professional and personal reasons. However, it does not look like that will be the best for my family.
Assuming I can't become remote at my current job (I'd like to get an outside offer before bringing this up), what are my best options? Are million per year compensation unheard of outside of the bay area, NYC, Seattle? The city I am moving to probably does not have good compensation for tech. I will also like a job close to a specific suburb for family reasons. I'd be looking for a job in tech or finance (hedge funds more than HFT).
EDIT: I realized starting my own firm/business would be an option. I'll be considering this along with more traditional roles. <comment><USER2> If you own a home in the Bay Area and move elsewhere, consider keeping it and renting it for income. Hire a property manager. Use the income to pay the mortgage on the new place.

If you're gone for 10 years, you may find that buying back in at your current home size & location is prohibitively expensive. You most likely won't see the same appreciation in absolute dollar terms in other parts of the country.

<comment><AUTHOR> I don't have any property in the bay area. I do not have any aspirations buying a property in the bay area. I wouldn't be losing too much moving.

</comment></comment><comment><USER3> Sorry I don't believe this question for a second.

If in fact you are making that much money you are 100% specialized, which means you also know who can afford to hire you, and you know who needs what you have to offer. And even if I'm wrong...you're still getting hounded by recruiters from those companies.

...But to answer your question, yes people in NYC, LA, and Seattle can make that much.</comment>


Grice's Maxims - <AUTHOR> https://www.sas.upenn.edu/~haroldfs/dravling/grice.html <comment><USER2> One can probably shoehorn the notion, that one should take into account the knowledge, beliefs and attitude of one's audience, into these four maxims, though I think it could stand as one on its own.

</comment><comment><USER3> Worth noting that you can still successfully communicate while flouting one or more of the maxims. Sarcasm and irony show that tone and context play largely into understanding as well.

<comment><USER4> This common "criticism" of Grice's Maxims isn't one, but a misunderstanding of the Maxims themselves.

In everyday conversation the Maxims do hold, that's the point. When they break down, you get "marked" effects — marked is a linguist's way of saying "unusual." This doesn't make the utterances _wrong_. Violating Grice's Maxims may cause miscommunication, or induce effects such as sarcasm, irony or humour, but also a slew of other, more mundane pragmatic effects.

Think of Grice's Maxims not as legislation you _have_ to abide by. Think of them as laws of conversation (law in the scientific sense) which generally hold. I can subvert the law of gravity by jumping. But I need to invest energy, and I will cause an effect which will perturb the current reference frame in all manner of ways.

Similarly, I can lie, be facetious, tongue-in-cheek, etc. But that's not the _default_ state of communication.

The Maxims aren't there to _be obeyed_. They're there to _describe_ communication, and also describe non-cooperative communication when they're violated.

<comment><USER5> I think it's also worth noting that the maxims themselves are tongue-in-cheek. For example, "be brief" in the Maxim of Manner is given the unnecessarily prolix gloss "avoid unnecessary prolixity". I don't think Grice meant that particular list of maxims to be taken too seriously. They're just intended to illustrate how conversation is structured by the cooperative principle. In my view, this renders rather silly some of the earnest subsequent discussion of "which maxim" is violated by various example utterances.

</comment></comment></comment><comment><USER6> A key point is balancing these, sometimes fully satisfying one will ignore another. Communication is all about balance.

Note that these apply to programming languages as much as they do to natural language.

<comment><USER4> They apply to _communication_. That's the fun thing. Ultimately, implicatures (a corollary of Grice's Maxims) are an information theoretic concept, though I haven't yet seen research that treats them as such. I would love to read about it, though.

<comment><USER7> Phil Resnik's dissertation ("A Class-Based Approach to Lexical Relationships ", [https://ci.nii.ac.jp/naid/10010143379/](https://ci.nii.ac.jp/naid/10010143379/)) uses information theory to investigate why some direct objects are optional (e.g., "I ate [food]") while others are not (e.g., *"I brought [food]").

I extended his information theory to look at how Grice's Maxims would play in to modification of these direct objects ("The Semantics of Optionality", [https://pqdtopen.proquest.com/doc/1658214586.html?FMT=ABS](https://pqdtopen.proquest.com/doc/1658214586.html?FMT=ABS)). In terms of Grice's Maxims + information theory, does modifying a required direct object ("marking it", as noted in a comment below) informationaly/entropically different from modifying an optional direct object? (This is further clouded by the concept of syntactic optionality being separable from semantic optionality.

<comment><USER4> Thanks for your pointers. I had actually read (parts of) Resnik's diss and further work, but apparently it had slipped my mind, or I just forgot about it.

Your work sounds really interesting, too. I hadn't heard of Firth's model yet; it sounds like it's in the spirit of distributional semantics. I hope I can find some time to give it a read!</comment></comment></comment></comment>


Show HN: Encrypted Communication via GitHub Using Node.js and SSH Keys - <AUTHOR> https://github.com/sadasystems/private-message <comment><USER2> This exists already: [https://github.com/substack/cipherhub](https://github.com/substack/cipherhub)

<comment><AUTHOR> That is awesome, I love substack, did not realize he had written that. Thanks for sharing!

</comment></comment><comment><USER3> > Your private key is not being stolen, read the code!

I'd change this to:

> Is your private key being stolen? Read the code!

<comment><AUTHOR> I like that, send a PR and I'll change it :)

</comment></comment><comment><USER4> To function, both the reader and writer have to download special software. If you're going to do that, why not just have both sides download PGP?

<comment><USER5> Since I have worked on something similar, in my opinion, it isn't the downloading software that is necessarily a hurdle (although I agree that it is a bit of one); it is around the general difficulty and pain around your local setup and finding the user you are trying to contact's pgp key. This has been discussed at length, but I think it comes down to pgp being enough of a hassle that people who aren't focused on privacy/security don't bother using it.

With ssh keys, at least we can assume that if someone has a github account they have a private ssh key, and it is accessible through the github api. With pgp there isn't a guarantee that they even have a pgp key, and accessibility is on the users themselves to publish it in some way. I think that keybase.io has tried to become the go-to spot for pgp keys, but the adoption is nowhere near what github has, and again, someone has to be interested in privacy/security to want to do this as well.

I mean with all do respect that you are correct in terms of a better protocol, and that there are tools that exist that already do this. The concern that I think OP and myself are interested in solving is creating something that is quick, easy, and piggie-backs on top of the huge github userbase and provides a base level of encryption.

<comment><USER4> I just don't buy it. Using Github-registered SSH keys to communicate is _also_ an idiosyncratic and complicated way to exchange messages (evidence: far, far more people use PGP than use schemes like this). It's also much less secure.

I see absolutely no win here.

</comment></comment></comment><comment><USER4> Is this what I think it is? An ECB-mode RSA implementation?

<comment><USER6> It doesn't appear to be a new implementation. It looks like it uses Node's crypto lib:

[https://nodejs.org/api/crypto.html#crypto_crypto_publicencry...](https://nodejs.org/api/crypto.html#crypto_crypto_publicencrypt_public_key_buffer)

Not sure why it says DSA is supported, the crypto library only supports RSA.

It uses this library that stitches together a PEM from an ssh public key:

[https://github.com/dominictarr/ssh-key-to- pem/blob/master/in...](https://github.com/dominictarr/ssh-key-to- pem/blob/master/index.js)

<comment><USER7> The point is that it's using ECB mode with RSA, which indicates the developer has no real knowledge of crypto and is just blindly using pairs of "encrypt/decrypt" functions from Node's built-in crypto lib (which is essentially a thing wrapper around OpenSSL and thus joins its illustrious legacy of encouraging developers to make catastrophic cryptographic implementation mistakes).

In encryptMessage.js, the plaintext is split into chunks, and then chunks.forEach encrypts each chunk (via crypto.publicEncrypt) independently, and concatenates the chunks to form the ciphertext, aka ECB mode. You shouldn't use ECB mode with any cipher because it is not semantically secure. This is Crypto 101.

In addition, it's a bit wacky to use RSA encryption on your entire message because RSA operations are slow and you are limited to encrypting messages that are the length of your RSA key (well, minus the padding, which is how this developer arrived at the "split plaintext into 214 byte chunks" workaround).

A better solution (in every way) would be to use a "hybrid" encryption scheme, similar to TLS or GPG. To do this, you would:

1\. Generate a random key for use with a symmetric cipher (e.g. AES-256) 2\. Encrypt the plaintext with the random key, using a secure block mode (e.g. CBC, CTR) 3\. Encrypt the random key with the RSA public key 4\. Package those things together and share it on Github

Efficient and secure. Also totally unnecessary (you basically just reinvented a subset of GPG) but that's neither here nor there.

<comment><AUTHOR> I love this comment. Thank you for putting the time in to proposing a more thorough solution. I will take this (and other) comments into consideration, and make some much needed improvements :)

<comment><USER4> There are a whole bunch of things you're likely to get wrong trying to design your own "hybrid" encryption system. It's not easy. Why not spend some time learning how to break crypto before you start building it?

<comment><USER8> Do you have any specific resources that you can recommend for learning to break crypto?

<comment><USER9> \- Matasano crypto challenges: [http://cryptopals.com/](http://cryptopals.com/)

\- [https://www.crypto101.io/](https://www.crypto101.io/) both the presentation and the book.

I think those are good to begin with.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Cool, but what I love more about this (post) is how helpful the comments are!

It reminds me of the old bash.org quote that basically said the best way to get help from the Internet is not to ask, but to assert an answer, and let people correct you.

</comment><comment><USER11> Using libsodium, there are two routes you can go:

        - crypto_box() for authenticated public-key encryption
        - crypto_box_seal() for anonymous public-key encryption
          (with message authentication)

I know for a fact that there are JS bindings for libsodium.

[http://doc.libsodium.org/bindings_for_other_languages/index....](http://doc.libsodium.org/bindings_for_other_languages/index.html)

For PHP developers:

[https://github.com/paragonie/pecl-libsodium- doc/blob/master/...](https://github.com/paragonie/pecl-libsodium- doc/blob/master/chapters/05-publickey-crypto.md#crypto-box)

[https://github.com/paragonie/pecl-libsodium- doc/blob/master/...](https://github.com/paragonie/pecl-libsodium- doc/blob/master/chapters/08-advanced.md#crypto-box-seal)

</comment><comment><USER5> I have also built something similar, I knew of the existence of cipherhub, but my goal was to focus on the ease of use, with the browser ([https://mailbeam.io](https://mailbeam.io) and [https://github.com/bobbywilson0/gh- message](https://github.com/bobbywilson0/gh-message)). I do admit that my solution is not as easy as it should be yet.

You should consider with RSA keys have a limited size message that can be encrypted (e.g. for 2048 bit keys you are limited to 256 bytes in your message). My solution was to use the SSH key to encrypt the secret I used to encrypt the message with.

<comment><AUTHOR> This is great. Thanks for sharing! I could definitely see building out something similar on top of private-message once I firm up the scripts with a more secure block mode.

</comment></comment><comment><USER12> IIRC, asymmetric key encryption is not preferred for large message lengths -- maybe the author could consider embedding an randomly generated AES key, and using that to encrypt the message instead?

<comment><AUTHOR> I ran into this issue, I couldn't encrypt really large strings so I chunked the plain text. Not sure why that is the case. I would consider doing something like what you suggest, though I'm not sure exactly how I'd implement it. If you're interested in showing me how, I'd love to collaborate on some code with you (start an issue! [https://github.com/sadasystems/private- message/issues](https://github.com/sadasystems/private-message/issues))

<comment><AUTHOR> after reading more comments, I now have a better idea of how to achieve this. thanks again!

<comment><USER12> Hey no problem! Should I still open that issue? Seems like you have one made already ([https://github.com/sadasystems/private- message/issues/5](https://github.com/sadasystems/private-message/issues/5)).

I ended up doing this for a project that I wanted to have use RSA for large chunks of data, for sending it was:

1\. Generate random AES cipher key (I used a 16 byte key) using any available _secure_ rng (it all depends on where the thing gets it's entropy, I think node's crypto.getRandomBytes is supposed to be strong)

2\. Pad & Encrypt data with AES

3\. Encrypt randomly-generated key with RSA

4\. Send the message in an envelope like: {key: <RSA encrypted AES key>, data: <AES encrypted data>}

For me, the devil was in the details -- padding took an especially long time for me to understand and solve (the thing I was working on was cross platform, so ruby->js or python->ruby, and of course not all implementations pad the same way), but once that was solved, most other things were easy. The node part was also particularly troubling because I had to deal with the way to specify encodings in node, which was kind of confusing (I spent a lot of time messing with base64/binary encoding and having my terminal start showing gibberish when I tried to print binary data)

I don't have access to that code now (I actually wrote it in order to get around the fact that internal networks at a certain company I used to work at didn't have a custom rootCA/support TLS properly), otherwise I'd just post it.

Would love to help with the implementation though

</comment></comment></comment></comment><comment><USER13> Related: [https://www.agwa.name/projects/git- crypt/](https://www.agwa.name/projects/git-crypt/)

</comment><comment><USER14> Keybase.io + Gists works well too!</comment>