Getting Physical - Seagate Kinetic Drive Hardware - <AUTHOR> http://swiftstack.com/blog/2013/11/01/seagate-kinetic-ethernet-drives/

<comment><USER2> RAID over IP via broadcast? From a security standpoint, it would seem there are many hurdles to jump. Not too long ago, I talked to Dickinson about what you guys do. I never considered the amount of harddrives necessary to facilitate Swiftstack's goals. Of course the software challenges are interesting, but the amount of hardware and maintaining risk/DR/costs/etc. Oh man. Hats off to you guys.

<comment><USER3> It's not RAID over IP. Each drive itself is a network endpoint.

On the practical side, this means that the drive is "connected" to one or more servers (and can be re-homed on the fly). The storage system itself is responsible for coordinating the communication across the cluster of Kinetic drives. In our case, the coordinating storage system is OpenStack Swift.

On the humorous side, this means that technobabble like "Can you ping the boot record?" or "What does a traceroute to the directory show?" actually sorta make sense now.

<comment><USER2> RAID over IP was a joke. I remember reading this story about someone flooding routers to turn them into a broadcasts to view the flow of packets over the network. I imagined the same thing, then said, hey with HDDs and broadcast, you could simulate RAID. I made a long stretch on that one.

<comment><USER4> That's probably not too far off. If you wanted to do mirror a write, you could imagine broadcasting that same packet to a set of devices. The devices would have to figure out whether or not they needed to store the packet. Otherwise, you'd be sending N packets to the same switch for N-way mirroring. In a typical hardware RAID, the sector write is sent to the RAID controller once.

It's probably not too long of a stretch.

<comment><USER5> Writing with multicast and using tcp only for the control plane? Interesting concept.

</comment></comment></comment></comment></comment><comment><USER6> Same connector as SAS, but a different pinout?

Does this not scream "bad idea" to anyone else?

<comment><AUTHOR> This is a good thing for a couple of reasons. First it allows equipment manufacturers to build chassis with the same drive trays that are already in production. Second, it that from a drive assembly standpoint, the same build and testing equipment can be used. This should speed development and manufacturing quality.

Is the concern more from an ergonomic perspective, that someone in a data center may plug in a drive into the wrong system?

<comment><USER4> If the testing equipment is expecting a SAS port, then wouldn't the dual ethernet ports pose a problem? Or, is it that they are using SAS power pins to do the ethernet transfer leaving the other pins untouched? (I don't know my SAS pin-outs very well).

The main concern would be that, yes, someone could plug the drive into the wrong system.</comment></comment></comment>


The Linux Security Circus: On GUI Isolation (2011) - <AUTHOR> http://theinvisiblethings.blogspot.com/2011/04/linux-security-circus-on-gui-isolation.html <comment><USER2> Am I wrong in thinking that this is sort of like worrying about leaving the kettle-on while you're falling from a skyscraper?

Sure, if you have a rogue application on your computer, it can access the GUI of a program whose security is critical (e.g: a password manager), but even if all the GUI were isolated, you've still got a rogue program on your comp.

All the security posts I've ever read have pretty much told me that once you're running a malicious program, then it's game over, your system is owned by your adversary and the only good way to move on is to wipe the drives, and start fresh. Why then worry about GUI isolation? If the GUI is isolated, a rogue program can presumably uninstall your secure GUI server and replace it with another!

This blog mentions Qubes, which is cool and does mitigate the rogue program from what I understand, but anything short of isolating whole applications from each other at the hypervisor-level, is fussing about the wrong thing IMHO.

Then again, I'm not a security professional, so what I've said is likely all wrong...

<comment><USER3> That's not really true. Tremendous effort has gone into making sandboxed programs. Otherwise any website that has JavaScript could take over your computer. The browser is basically a functioning sandboxed operating system.

There's no reason that can't be true of actual OSes. All programs could be sandboxed by default. But they just were designed under the assumption that all app makers would be good and no one would ever download and run malicious programs. Yeah, right.

<comment><USER4> One such feature is the use of seccomp, which removes all but 4 system calls:

read, write, sigreturn and exit

This is used by many browsers and apps to reduce the impact of security flaws and untrusted code (such as js from a website).

</comment></comment></comment><comment><USER5> Speaking very generally (there's always room for improvement), this is a feature. X programs are able to interact in interesting ways. Isolation can be a good thing and I would love to have more options for sandboxing programs (with or without X), but stuff like keylogging and sending events to windows are very useful. Removing the ability to do stuff like query the state of the mouse would break useful tools I use. The ability to keylog my keyboard or mouse is a potential risk, but it's also a necessary feature. As DHH explained[1], nerfing useful tools just causes people to find other ways to do the same thing, sometimes with worse consequences.

The "window composition only" approach of Wayland where it is simply assumed that this can be handled in e.g. the GUI toolkit is problematic if you have programs that don't use that toolkit. The windowing server is really the wrong layer implement this isolation - it makes useful things much harder while not actually providing a lot of security; if a malicious program is already running as the user, there are already endless ways it can harm the user without touching the UI. Real sandboxing would be, for example, a way to open a Wayland-style framebuffer that can be handed to a FreeBSD-style jail (or as "hardware" in a full VM).

[1] [https://vimeo.com/17420638#t=27m27s](https://vimeo.com/17420638#t=27m27s)

<comment><USER6> Looking at this from the other end, the problem is, as long as clients of the window server aren't isolated against each other, any other kind of sandboxing (such as restricting file system access) is pointless: a compromised application can just synthesize input events for some other application to give it what it wants.

The next step towards real sandboxing is applications with cgroups and namespaces (quite similar to FreeBSD jails), as in xdg-app.

[https://wiki.gnome.org/Projects/SandboxedApps/Sandbox](https://wiki.gnome.org/Projects/SandboxedApps/Sandbox)

<comment><USER5> > any other kind of sandboxing (such as restricting file system access) is > pointless

That's my point - I don't _want_ most of my "desktop" applications sandboxed from each other. That would be unusable. That kind of sandboxing should be done by nesting the entire display server, creating a separation point.

In the future, with all clients sandboxed from each other, how can I write a tool that does the following (which was easy under X):

* monitors the keyboard input of another process

* sends new (synthetic) key events to that process when it sees a certain key press (keyboard macro)

* does not depend on _any_ support from the process being monitored

* works with any existing program, including proprietary software that cannot be recompiled because the source has been lost

Interaction is necessary at the GUI layer, because that's the _intended goal_ of some software. As I initially said, there is certainly room for improvement. However, simply pretending these use-cases don't exist is foolish. As Joel Spolsky so famously explained[1], all that "cruft" that is cut out during a big rewrite is real-world fixes and necessary features that were added over time. Unfortunately, the GNOME team has been engaging in that kind of narcissism for many years, which is why more and more people are ignoring them.

> real sandboxing

> cgroups and namespaces

Good luck with that; cgroups and namespaces are not designed for security. They are only superficially like jails.

[1] [http://www.joelonsoftware.com/articles/fog0000000069.html](http://www.joelonsoftware.com/articles/fog0000000069.html)

</comment></comment></comment><comment><USER7> It isn't addressed in the post and the author gets kind of defensive about it in the comments, but this is one of the things that Wayland is supposed to improve on. Each application can only communicate with the compositor about its own windows, and only has access to a buffer with it's own content.

I'm honestly not sure where we are on the adoption path for Wayland. Pretty much all of my Linux usage is command line.

<comment><USER8> Wayland was planned as default for Fedora 24 but has been postponed[1]. I don't think it is on by default in any flagship distributions yet.

1: [https://blogs.gnome.org/mclasen/2016/03/04/why-wayland- anywa...](https://blogs.gnome.org/mclasen/2016/03/04/why-wayland-anyway/)

<comment><USER9> Also certainly it will be in Fedora 25 (in under a year). From there it will be in everything else. Good to see this problem about to go away.

<comment><USER10> It already works fine under Gnome, every major Gnome distro should be switching either late 2016 or early 2017. I cannot imagine Ubuntu Gnome _not_ switching in 16.10.

KDE is a little bit more behind, but I'd postulate well working Wayland somewhere around Plasma 5.8 - we are going to see 5.6 come out in a few months, and 5.8 is the start of next year. KDE themselves have had to propose tons of extensions to Wayland itself to support functionality they use - server side decorations, screenshotting, key grabbing, etc.

</comment></comment></comment></comment><comment><USER11> This was one of the features I mentioned in my original critique of QubesOS that commercial & academic products had. I was glad to see they added trusted GUI. Anyone interested in prior work on trusted GUI's for how they might be applied today can check the links below:

A prototype B3 Trusted X Window System (1991)

[https://www.acsac.org/secshelf/papers/Epstein.pdf](https://www.acsac.org/secshelf/papers/Epstein.pdf)

High-performance hardware-based high-assurance trusted windowing system (1996)

[http://csrc.nist.gov/nissc/1996/papers/NISSC96/paper041/tx-h...](http://csrc.nist.gov/nissc/1996/papers/NISSC96/paper041/tx- hdw.pdf)

Design of the EROS Trusted Window System (2004)

[https://www.usenix.org/legacy/event/sec04/tech/full_papers/s...](https://www.usenix.org/legacy/event/sec04/tech/full_papers/shapiro/shapiro.pdf)

A Nitpicker's Guide to Minimal-complexity, Secure GUI (2005)

[https://www.acsac.org/2005/papers/54.pdf](https://www.acsac.org/2005/papers/54.pdf)

<comment><USER12> Nitpicker is part of Genode, right? Whats the status of Genode, is it usable as a daily OS?

<comment><USER11> Nitpicker is from TU Dresden's group that was doing all kinds of work on L4, secure virtualization, etc. Originally part of their TUD:OS demo here:

[http://demo.tudos.org/eng_features.html](http://demo.tudos.org/eng_features.html)

Feske, a Nitpicker author, later developed the Genode Framework for constructing systems as part of European research into Dresden-style stuff. He wisely integrated Nitpicker, NOVA, and other best-of-breed tech coming out of CompSci where he could. Plus stuff from OSS that's important for a usable system. Result his people call GenodeOS although many of the pieces, even architecture, are reusable outside of it.

GenodeOS itself is at what I'd call an alpha stage where it's usable enough that people are running desktops on it but more for testing and error reports. ;) They've come quite a way but need more testing and contributions. It's not production by far unless you're backing up data.

Even so, alpha software can cost you productivity with the reinstalls so best to use them alongside another machine with same data that can keep you going during any restores.

GenodeOS Release 16.02 is latest [http://genode.org/documentation/release- notes/16.02](http://genode.org/documentation/release-notes/16.02)

Note: They support RISC-V now. That's pretty cool. The combo of RISC-V with separation kernels like Muen and seL4 (both supported) will be important for secure, embedded solutions later.

</comment></comment></comment><comment><USER13> I really think the linux desktop world is making a huge mistake by not worrying about stuff like this.

We really, really to figure out secure booting and sandboxed applications in a way that leaves the user in control. Desktop linux has been fairly safe because it's not an important target and because most users get most of their software through distributions.

However, I don't think in 2016 we should just take it for granted that one malicious program should be able to effortlessly own the user agent and probably the entire system (on a computer with one user who uses "sudo").

The problem is that these technologies have been associated, especially in android/ios, with restricting what the user can do. However, this does not need to be the case.

Until recently, most people's data on their computer wasn't too valuable, but malware has gotten more sophisticated at targeting things like bank information. If we wait for linux desktop security to become a serious issue, it will be too late.

The worst thing is that we already have things like SELinux and AppArmor, but they aren't being used. The insecurity of X is no joke, either. We may getting close to a point where we have no choice but to throw out X just to get security, even if the other reasons for switching aren't that compelling.

</comment><comment><USER14> Another huge issue is that user-level programs can access all everything in the user's home directory which is where all valuable data resides. There is no reason why a tetris game should get access to all your financial documents, but that's how it works today. A single malicious user-level program can destroy everything of value on your computer and no elevated permissions are required. In contrast to iOS where all app data is siloed off, exactly as it should be.

<comment><USER15> "In contrast to iOS where all app data is siloed off, exactly as it should be."

Which is also why trying to do anything _productive_ on a smartphone is such an uphill battle. Arbitrary programs not being able to exchange arbitrary files is totally crippling for any use-cases that go off the rails of what one single app wants to let you do.

<comment><USER16> There ought to be a system level API that a program may call to get to read or write a user supplied file.

Opening any random file should be reserved to just a few core applications.

<comment><USER17> It's not that simple, and it's easy to misdesign such API.

Say, VLC team had argued that a video player may need to open a supplementary subtitle file. If application can be only granted access to a single video file - that's impossible. I think there were other examples, but I don't remember those off-hand.

<comment><USER18> Filesystems are trees. VOX could have read access to a particular tree (~/Videos) and no access to everything else, including but not limited to ~/Documents/Finance

<comment><USER17> But what if I want to watch ~/Downloads/big_buck_bunny.mkv?

<comment><USER18> Explicitly mark it as available by moving / hardlinking it to ~/Videos.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> As I posted in a previous discussion of this two years ago [1]:

The very first comment below the article (correctly) contradicts the author's claims about SELINUX sandbox. The author acknowledges the comment, and criticizes the SELINUX implementation, but does not dispute the fact that SELINUX sandbox ("sandbox -X xterm" in RHEL/CentOS/Fedora/SL) does in fact defeat the keystroke logger attack described in the article.

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

</comment><comment><USER20> So what is the current status of GUI isolation in Linux (say Ubuntu), Windows and MacOS?

</comment><comment><USER21> That is a very old article, I wonder if there are any new approaches to this issue.

<comment><USER22> I've been researching this recently and I think the Qubes approach is still the best. Some people use xpra, which is fundamentally very similar to Qubes (a compositor running inside a dummy X server), but xpra has been designed to run over the network and hence is not as efficient as Qubes with transferring buffers. Consequentially, I find xpra to be too slow to be usable. xpra also has gained a lot of additional features lately which I worry has increased the attack surface.

Coincidentally, I was planning to spend some time today porting Qubes' GUI isolation to run outside of Qubes (for use between containers or other OS- level sandboxes). If I'm successful, expect to see a Show HN.

<comment><USER23> > porting Qubes' GUI isolation to run outside of Qubes (for use between > containers or other OS-level sandboxes)

Want level >9000.

</comment></comment></comment><comment><USER24> Isn't Wayland supposed to address this kind of issue (X applications being able to read/control what others do) ?

<comment><USER6> Yes, it is.

For more details about the issues and possible solutions read:

[http://mupuf.org/blog/2014/02/19/wayland-compositors-why- and...](http://mupuf.org/blog/2014/02/19/wayland-compositors-why-and-how-to- handle/)

</comment></comment><comment><USER25> Previous discussion (~5 years ago): [https://news.ycombinator.com/item?id=2477667](https://news.ycombinator.com/item?id=2477667)

</comment><comment><USER15> It is of course entirely possible to run a less-trusted application in a nested xserver like xephyr in any distribution and avoid this.

<comment><USER22> Yes, but that's not "rootless." The Qubes approach provides much better usability because the windows from the untrusted application appear individually and are managed by the host X server.

<comment><USER15> I don't dispute this.

</comment></comment></comment><comment><USER26> Qubes OS is super cool conceptually - torrenting it so when I've got time to spare I'll see if I can practically get it running, would LOVE to replace the current messy and insecure Linux/OSX/Windows systems with a new secure and stable OS that includes sandboxing by default for everything.

</comment><comment><USER27> At one point I disabled the XTEST extension when I realized it could be used maliciously (sending clicks or keystrokes to applications, keylogging, etc.) XTEST is already disabled by default on some distros.

After reading this I see that "xinput test Keyboard0" can also be used as a keylogger on my machine. Anybody know of a simple way to disable that one?

[PS: please no trollish answers like "use a different windowing system" :P]

<comment><USER28> Xinput is an extension, so it should be possible to disable via xorg.conf.

<comment><USER29> Xinput is a very old, very widely used extension, and handles much more than just input sniffing. Disabling it will remove a lot of really important core functionality like setting keyboard mappings and mouse acceleration. It's also likely to break certain applications which legitimately need to capture events, like screen savers.

<comment><USER27> Yes, it's sadly ironic that things are modular enough to make xinput an extension of the protocol, but not modular enough to separate the very useful looking functionality in the xinput(1) manpage with a keylogger.

<comment><USER28> One mans keylogger is another mans debugger.

Note that the command is "xinput test id". Meaning that it is a way to monitor what xinput sees when a key or button is pressed.

I have personally used xev for similar purposes, map my keyboard's multimedia keys to various actions.

</comment></comment></comment></comment></comment><comment><USER30> It should be possible (and default in the X server really) to isolate X clients by only giving them access to the contents of, and events on, the drawables created by that particular client.

Combined with a way to authenticate privileged apps (which have permission to sniff for any input event and scrape any drawable), you can have your... security cake and eat your... screen grabbers and Guake hotkeys... too?

<comment><USER30> As it turns out, there are X11 extensions (SECURITY, XACE) which mitigate this problem somewhat, and Xorg has an extension (XSELinux) which allows fine- grained access control to X11 objects via SELinux policy. It's just that the distro vendors don't actually choose to enable it. (Red Hat seems to prefer sandboxing with Xephyr, or else force-migrating everyone to Wayland.)

</comment></comment><comment><USER31> Just pull the trigger and upgrade to OpenBSD.

      Xenocara (least-privilege x11)
      libc
      LibreSSL

<comment><USER32> I'd love to but it runs horribly on my thinkpad. My choice is between 10-second system freezes when opening or closing or switching browser tabs (i.e. with APM on), or else a 2-hour battery life (with APM off).

On a Sandy Bridge i7.

OpenBSD is pretty good for servers (I run one), but my experience has been that it's just total shit on the laptop.

</comment></comment><comment><USER28> Elsewhere i read about using vnc locally to run something as different user.

That seems to block this, though not for the reason i expected (i get an error about a mission extension when i try to run xinput list).

</comment><comment><USER33> a bit unnerving. why wouldn't some ad-tracking mechanism that's part of some apps simply collect everything it can and radio it back home?

btw, can this be considered a huge security plus for web apps? they can break out, but at least they have to put in some effort.

<comment><USER34> >why wouldn't some ad-tracking mechanism that's part of some apps simply collect everything it can and radio it back home?

Because the vast majority of GUI software installed on Linux comes from curated app stores (or 'repos' as they used to be called). It's also mostly written without any expectation of making money.

Web apps being sandboxed is a plus point for users in the sense that it increases security (on the local machine - the web app vendor is still free to do whatever they want with your data). It's also a negative since it means any code you want to execute on your own hardware has to be approved by the browser vendors (web standards don't really provide any user controlled way to break out of the sandbox[1]). The standards generally operate in a lowest- common-denominator way such that the vendor of a browser your don't even use can prevent you from utilising your own hardware by stalling web standards indefinitely.

[1] the old plugins interfaces like NPAPI do exist, but are being phased out and aren't supported at all on web-only platforms like ChromeOS and FirefoxOS, as far as I'm aware

</comment></comment><comment><USER35> xorg developers seem to think the X server currently does cover this: [https://bugs.freedesktop.org/show_bug.cgi?id=38517](https://bugs.freedesktop.org/show_bug.cgi?id=38517)

</comment><comment><USER36> A non-problem in practice as far as I can tell. It's also a very convenient feature.

<comment><USER33> i personally would appreciate a security popup from the OS asking me if i want to give full access to an input to any app. otherwise, to each only his own, and the possibility of applying for global shortcuts perhaps...</comment></comment>


Ask HN: Whould you be interested in an PDF customization API? - <AUTHOR>

We are building an API which allow to integrate some external data (POST request) to an existing design. That allow to integrate easily web2print feature in any website. <comment><USER2> How would this be different from the multiple products already in the market?

FPDFI, PDFLIB and Zend_PDF wkhtmltopdf flying-saucer

<comment><AUTHOR> All theses library are about creating a PDF from scratch whereas our API should allow to customize an already existing PDF

<comment><USER2> Editing draw stream is creation. Once you parse the original the only real way to update the original stream is mark invalid and push in the updated stream.

If you are only looking to edit xmp/meta/comments then you could possibly use an edit or amend but would still need one of the pdf libraries to post process.

</comment></comment></comment><comment><USER3> I can just emit PS and use ps2pdf. PS is just text, so any language can do that. There's already an API - it's called Unix pipes!

<comment><AUTHOR> never heard of that ;) Indeed, manual processing is an option if you are ok to add some code any time a user want a new PDF design. That's not a really scalable process if your number of PDFs is increasing. It's also not a viable option for less technical users

<comment><USER3> I'm sure it's computationally equivalent to what you're doing - it's a function from some input data and some template to a PDF file - so I don't follow your thesis that it would be less scalable (for some definition of scalable that you don't give).

You could even use some tech like Handlebars to do it with Node.js, so using your existing stack.

<comment><AUTHOR> By scalable I mean accessible to a large number of user because that won't require too specific skills. My assumption is CSS is a more common skills than linux commands</comment></comment></comment></comment>


Why do we develop high blood pressure? - <AUTHOR> http://sciencebulletin.org/archives/11183.html <comment><USER2> Blogspam of

[http://www.physoc.org/press-release/2017/why-do-we- develop-h...](http://www.physoc.org/press-release/2017/why-do-we-develop-high- blood-pressure)

The original has footnoted additional references.

TL;DR: "In 90-95 percent of people, high blood pressure has no identifiable cause..."</comment>


Blippy users' credit card numbers found on Google - <AUTHOR> http://venturebeat.com/2010/04/23/blippy-credit-card-citibank/

<comment><USER2> Lots more discussion here:

<http://news.ycombinator.com/item?id=1288471>

</comment><comment><USER3> I am still amazed by the kind of thinking that even allowed a site like Blippy to get funding.

"I've got a great idea. It's a web site that tells people what you just bought."

Talk about solving a problem nobody has.</comment>


Let your customers do the selling - <AUTHOR> http://sendgrowth.com/blog/let-your-customers-tell-the-story-of-your-brand/

<comment><USER2> This reminds me of the tips and tricks I've read about when you have customer complaints.

Especially in the early stages, really engage the customer. Get the customer involved in solving their own problem by telling them what the situation looks like from your perspective and if they have other ideas. Then over-deliver. Zappo's once delivered a pizza to a customer that misdialed them.

Those experiences are what convert detractors to promoter-evangelists.</comment>


Ask HN: What service do you use for cloud backup? - <AUTHOR>

<comment><USER2> Tarsnap [http://www.tarsnap.com/](http://www.tarsnap.com/)

$0.25 per (deduped) GB/month

</comment><comment><USER3> Google Photos [http://photos.google.com](http://photos.google.com)

It works very nice with iOS for photos and videos and it's unlimited and free. Google rules! :) I love the Webapp and how I can do albums, easy video upload and download from iOS, nice!

</comment><comment><USER4> BackBlaze. $5/month/machine.

<comment><USER5> After my data crashing and not having a working back up, i've been looking into BackBlaze. How in the world do they offer UNLIMITED backups for 5$/month? Have you had any experience with retrieving this data? I'm curious

<comment><USER4> I have retrieved single files from the web interface. I have not needed a full restore, but if you do, the best way is probably to have them send it to you on a USB or HDD (and that costs extra).

The first upload took over a week, but subsequent updates are happening all of the time. On an older PC (2009) I had to move it to daily (evening) backups instead of continuous.

It does not (by default) backup literally the whole machine (although you can fiddle with options to get it to do that). It's set up to do your data (not OS or Applications). It does not provide a bootable clone.

I strongly suggest you also have a full bootable backup locally and treat BackBlaze as disaster recovery. I have a Mac and use TimeMachine -- but anything that makes you a bootable drive (or could restore to one) is fine.</comment></comment></comment>


Staffed by mimes - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2014/11/staffed-by-mimes.html?utm_source=dlvr.it&utm_medium=twitter <comment><USER2> If you use words, you have to have them translated into N languages. With pictograms, you likely don't need any translation.

<comment><AUTHOR> If you only use pictograms, there are some that _nobody_ understands.

<comment><USER2> But at that point, the customer has likely already paid for the item, you've saved countless translation costs, and what do you (as a company) then care?</comment></comment></comment>


GNU Smalltalk Koans - <AUTHOR> http://skim.la/gnu_smalltalk_koans/ <comment><USER2> Very nice.

This reminded me of a tool that my college professor created many years ago called The World of the Actors [1]. He used in his class to teach Smalltalk and OOP.

I can't seem to be able to find the source, though.

[1] [https://pdfs.semanticscholar.org/4fb7/5b3cb8ef7adb36c0871931...](https://pdfs.semanticscholar.org/4fb7/5b3cb8ef7adb36c087193181f464ce9384a5.pdf)

</comment><comment><USER3> The grey text on white is unreadable. Which is a shame as I genuinely wanted to read it.

<comment><USER4> As a young designer I redesigned a major news site with a lighter gray text on white.

I looked great to me - perfect and very readable. But I didn't consider the older eye, or other eyes, which don't let in as much light.

Hopefully the author will learn and adjust. Contrast is good.

<comment><USER5> Not just eyes, shit computer and phone screens. The worst screens have half the colors and a quarter the brightness (and relative contrast) of the best.

<comment><USER6> Yup.

A lesson for the designers among us: almost no-one is viewing your site on your 5k iMac screen. Design accordingly

</comment></comment></comment></comment><comment><USER7> Smalltalk is very efficient according to function point analysis that is how many rows of code you need to produce code.

[http://www.cs.bsu.edu/homepages/dmz/cs697/langtbl.htm](http://www.cs.bsu.edu/homepages/dmz/cs697/langtbl.htm)

<comment><USER8> This study is more than twenty years old. Smalltalk would score very low compared to today's languages.

Function points are a pretty useless metric anyway.

<comment><USER9> > _Smalltalk would score very low compared to today 's languages._

Citation needed. Why would it "score very low compared to today's languages"? At best "today's languages" caught up with some things Smalltalk offered, but they still don't have the base model so succint and flexible, so it's just piles of sugar on top of algol.

</comment></comment></comment><comment><USER10> Nice to see some Smalltalk examples although I'm heavily biased to terminal languages like Awk, Perl, and Python, I'd rather see something more like Pharo which I think makes more sense in the ST world. I hear a lot about the joys of ST, but Id like to see some short coding sessions to get the idea. Most demos I see are either "let's look at all the goodies like class inspector, debugger...etc", or "let's look at this example where I can't follow along as we're like 9 classes deep".

I should probably do the "profStef" tutorial.

<comment><AUTHOR> One problem GNU Smalltalk addresses for me is "getting started" because it mostly takes tooling out of the equation. Mostly because my experience was of normal install a new programming language and integrate it with my current tools hiccups. But there was not an entire alien landscape filled with many overlapping windows as with Pharo or Squeak. I can focus on learning the language and its semantics without orthogonal cognitive loads. I think this helps me more readily achieve flow.

Part of what made a sustained attempt at learning Smalltalk difficult for me was that traditional Smalltalk IDE's did not allow me to approach Smalltalk as just another programming language living in the same Turing tarpit as Awk or Perl or Python. Smalltalk IDE's make a set of design decisions that embody a particular philosophy regarding the "best way to use a computer" rather than "here is another way to use a computer." They are not the best way for _me_ to use one.

<comment><USER11> That is, of course, by design. To me (I have been a professional Smalltalk for a while), GNU Smalltalk drops the essence of a traditional Smalltalk environment and while I was "hmm, interesting, maybe if I ever have a use for it I'll look at it", I never needed it. A Smalltalk IDE is an extremely powerful fool, and IMHO the most powerful tool we've invented so far. Having said that - I do think that Pharo and friends maybe should be more friendly to what I as a developer expect today from my tools: mostly keyboard-driven, no overlapping windows, etcetera.

<comment><AUTHOR> I think there are two separate design issues. One is the architecture of the Smalltalk development environment in terms of displaying information about classes and objects and lists of related methods and the running system and so on. That's great and and powerful and entirely orthogonal to the WIMP interface and the particulars of the screen presentation.</comment></comment></comment></comment>


Thinking of Doing a PhD? Take this simple test - <AUTHOR> http://blog.prof.so/2013/06/test.html <comment><USER2> Here's my two cents (I got my Ph.D. in physics from U. Chicago):

I went to grad school because 1) Chicago physics was famously challenging and I wanted the challenge, 2) Everyone else I knew went to grad school - I didn't know how to look for a job, 3) Chicago was a big city with good live music and nice architecture.

All were wrong - the only acceptable answer I believe is "I love science so much, I want to be a scientist for the rest of my life and nothing is going to stand in my way."

What happened was: 1) The challenge was 100x more than I really wanted. I found out early I didn't want to be a scientist, but decided I would stick it out like a perversely beneficial jail sentence. 2) I'm a very, very, very social person. Oops - big mistake. You don't make enough money to date. The mental challenge of living a lifestyle in complete opposition to my core personality was the most difficult challenge (5 years in a dark basement trying to detect light from single semiconductor nanocrystals). But, I found out I could take loans and moved to the artist neighborhood - punk rock, dating and beer helped. (Wine-women-song? Sex-drugs-rock n' roll?) 3) I met some of the most interesting people I've ever met in my life and that made it all worth while. I did some cool things and in the middle of the financial crisis I was able to make a career change because the Chicago physics Ph.D. superficially let me get my foot in the door. 4) I went to a NATO physics conference in Turkey, met a non-scientist woman and married her. Now I'm a capulcu. 5) Having a Ph.D. is a great conversation topic at parties. 6) I did some really cool science, but was exposed to many carcinogens and high voltage equipment at a young age.

My Dad was a Marine and I feel like I went through a Mental Marine Corps, no disrespect to the real Marines. Boot camp is not fun, but it turns you into a man of a sort. The first 2 course years were like a boot camp.

The financial impact of not entering the job market hits you even for years after you finish your Ph.D. You'll be behind other people your age for awhile.

I should just turn this into a blog post! HTH

<comment><USER3> Every day you're Capuling? :)

I have a real question about this: is there something in your head that prevented you from stopping? Is it just something that has always been a part of you, or did you just make a decision that for once in your life, you were going to stick with something?

<comment><USER2> I'm pretty tenacious and don't give up easily in general, which has led me to go down with several sinking ships (women and startups). I did realize I was involved in something special - the hard part was getting accepted to the program and for condensed matter physics, it was fairly straightforward to get your ph.d. (not easy, straightforward). Pick an exotic material, do a measurement no one has done and write about it.

I was unmarried, no mortgage or car payments and I had already completed 2 years out of an estimated 5.5. I just had to ignore my annoying advisor, focus and try to enjoy the cool, interesting parts of the science. I loved machining my own metal parts. And also I had to get away at times and try to have a life outside the lab. So, I decided to stick with it.

No regrets - I'm 44 now, and I admit I was fairly bitter about the experience for at least a decade after I finished.

The last thoughts are: Lot's and lot's of work. Can you be force-fed your favorite food 24x7 for 5 years and still like it? Like how Homer Simpson thwarted the devil force feeding him donuts?

I did have an office mate who worked 9-5, was a 6'2" former speed skating champion of Canada, wife and kid and was always planning to work for McKinsey and company, which he did after completing his Ph.D. in 4 years. Other people have different experiences. I was a hard worker, other people were brilliant.

</comment></comment></comment><comment><USER4> I wish someone would post an article that actually provided a serious, levelheaded view of the ups and downs of a PhD as well as what it's actually like instead of the overly negative articles? I understand that it might not be what it seems, but it's hard to figure out what's for real and what's just somber humor for the uninitiated.

<comment><USER5> There are plenty of those. Here's one: [http://www.cs.unc.edu/~azuma/hitch4.html](http://www.cs.unc.edu/~azuma/hitch4.html)

There's also, I believe, a CMU computer science "guide to graduate school survival" out there.

I don't think that this (somewhat self-deprecating) graduate school literature is unrealistically negative. Academia _is_ pretty awful.

Life-wise, graduate school is a pretty negative experience. If you enjoy the subject matter and have an almost obsessive need to dive into it, it's a great time in that regard (and you will be spending 60+ hours per week on your work) because you can really study without having to deal with the bullshit that professors have to fend off (committees, tenure politics, grant-writing). The rest of your life will be somewhere from mediocre (if you don't care about the academic game, already dead-set on leaving post-PhD) to awful (if you try to play for keeps); even successful and happy graduate students experience this.

The upshot of graduate school is that, except for the money and low status-- and those aren't issues for everyone-- it's actually better than being a professor. You don't have to serve on committees or sweat tenure decisions or disciplinary hearings for cheating undergraduates, and you have a 5- to 7-year period where geographic moves under adverse circumstances won't happen.

<comment><USER6> Probably worth pointing out that this particular poster has an extremely negative view of many of their life experiences! (e.g., look for their comments about working for Google.)

<comment><USER5> Actually, my year of graduate school was pretty positive, as far as things go. No complaints. I did look ahead and realize that academia was not the best deal in the world.

Also, you're a douche for bringing up irrelevancies like that.

<comment><USER6> I think that, if someone asks for a level-headed analysis of grad school, it is totally worth pointing out that an anecdotal response is from someone that has highly charged and divisive opinions about many things, especially institutional culture!

Also I'm pretty sure I've seen you say that you're proud of the fact that your perspective on life isn't typical -- so at least own that fact here.

</comment></comment></comment></comment></comment><comment><USER7> Part I

I will give an answer focused on STEM field Ph.D. programs in the US.

Pros:

Professor Career. A Ph.D. is nearly essential for a career as a professor. If you want such a career, then about have to get a Ph.D.

Learning. A Ph.D., both in your coursework and your independent study, can let you learn much more about your field. Some of what you learn might be quite powerful and valuable later in your career, especially if you want to be an entrepreneur and found a business where some powerful, valuable 'secret sauce' technology will be a big advantage for the business.

Jobs. Some employers will pay extra for a Ph.D. Jobs in US national security, working for the Federal Government directly or work in the 'military- industrial' complex are common examples.

Cons:

(A) With a Ph.D., working for someone without a Ph.D. can be awkward. Why? Because most organizations still want to have a hierarchy much like a Ford plant 100 years ago where the supervisor knew more and the subordinate was there mostly just to add muscle to the thoughts of the supervisor. Then a subordinate who knows more can be a threat to the career of the supervisor. Related phenomena include 'goal subordination' in organizational behavior and the Peter Principle.

(B) After the success of Google, some Silicon Valley venture partners concluded that for company founders they wanted graduate school dropouts. After the success of Facebook, they concluded they wanted college dropouts. After the success of Tumblr, they concluded that they wanted founders who never went to college, and we have to suspect that really they wanted high school dropouts. They are also big on recent immigrants who, necessarily, don't have a Ph.D. degree from a US research university.

Getting a Ph.D. Below I give some advice on getting a Ph.D. in 12 parts.

Qualifications: I hold a Ph.D. in Engineering from a world famous US research university where my research was on some applied math. I've been a college professor teaching applied math and computing, and I've worked in applied math and computing for problems in business and US national security. I've published peer-reviewed original research in applied math and computer science. Currently I'm a founder of a startup where the crucial, core 'secret sauce' is some applied math I created.

(1) Research. In any of the better US research universities, very likely the main issue for getting a Ph.D. is your research. In simple terms, do some good research and find that your path is pleasant. Struggle with research and find your life not so good down to much worse.

So below I will give some ideas that can help you do sufficiently good research.

(2) Criteria. The main criteria for research is work that is "new, correct, and significant". Below I will give some ideas that can help you achieve each of these three criteria.

(3) Engineering. In the STEM fields, I'd concentrate on engineering. Of course the 'M' in STEM is for mathematics, so there I'd concentrate on some version of applied mathematics, e.g., 'mathematical sciences', hopefully in a school of engineering where your research can be some mathematics for a practical problem. For just why should concentrate on engineering, see below.

(4) Mathematize. For how to do good research in the STEM fields, my recommendation is to 'be wise, mathematize'. That is, quite broadly the most respected research, especially in the STEM fields, is to find mathematical solutions. Advantages of mathematization:

(A) If you present your mathematical solution as theorems and proofs, then it can be fairly easy for you to check that your work is correct and quite difficult for anyone else to argue that your work is not "correct".

(B) In fields of engineering, nearly everyone struggles with math. So, if you have a good math background, then you can have one heck of an advantage.

(C) Applied math is one astoundingly powerful way to get good solutions to practical problems. So, (I) start with a practical problem. (II) Find what mathematical assumptions are reasonable for that problem and make a faithful conversion of the real problem into a mathematical problem. (III) Using the assumptions, find a solid, powerful mathematical solution to the mathematical problem. (IV) Convert the mathematical solution to a real solution, e.g., via software. (V) Write a paper on the work (and/or start a business to deliver the results). So, in moving logically from the real problem to the real solution (as a paper and/or business), you have taken a detour through some mathematics; this detour can be a big advantage over slogging through just intuitive or empirical techniques.

(5) Achieving the Three Criteria. There is an advantage in being in engineering: You are likely permitted to start with a practical problem. If you start with a recent practical problem, then nearly any solution you find can be called "new" if only because your problem was new. Or, if you are working on a problem in large server farms, how the heck did von Neumann, Kolmogorov, Maxwell, or Newton have already solved it? If the practical problem is important and you make some solid, visible progress on it, then your work can be called "significant". If your solution is mostly mathematics, with theorems and proofs, then it's 'correct' essentially only from passing checks on the theorems and proofs.

It can help your solution be regarded as 'significant' if in some sense it is provably the best possible, that is, 'optimal'. So, maybe your solution is the least cost, least time, least mean square error, least type II error, etc.

<comment><USER7> Part II

(6) Background. A good way to win a 100 yard dash foot race is to start one foot from the finish line. Otherwise, get a head start. Or, get an 'unfair advantage'.

So, for the approach of 'mathematizing' engineering, start with a solid undergraduate degree in pure and applied math. Then get a Master's concentrating on selected topics in pure and applied math.

E.g., even if you want to get a Ph.D. in computer science, as an undergraduate, mostly just f'get about the undergraduate computer science courses and be a math major instead. The undergraduate computer science material won't much help you in computer science research, but the math can be an overwhelmingly strong advantage.

As a math major, after the usual undergraduate calculus sequence, take theorem proving courses in abstract algebra and linear algebra -- the first is useful at times, maybe more so in the future, and the easy place to learn to prove theorems, and the second is likely the most important material in mathematical analysis and applied math.

To continue, take a second course in linear algebra. A good start is the now classic P. Halmos, 'Finite Dimensional Vector Spaces'. It was written in 1942 when Halmos, a fresh Ph.D. from Doob at U. IL, was an assistant to von Neumann at the Institute in Princeton and is really a finite dimensional introduction to von Neumann's Hilbert space. For more, see the books by R. Bellman or R. Horn.

Work carefully through W. Rudin, 'Principles of Mathematical Analysis.' Supplement that with Fleming, 'Functions of Several Variables', Buck, 'Advanced Calculus', etc.

As a crucial start on optimization, work carefully through, say, Chvatal, 'Linear Programming'.

Somewhere get a good theorem proving course in ordinary differential equations; that can be a good start in a lot in applied math and on deterministic optimal control theory.

At one of the first chances, take a careful pass through Royden, 'Real Analysis' and the real half of Rudin, 'Real and Complex Analysis' \-- a good course would help weight the more and less important ideas there.

Then a long dessert buffet is Luenberger, 'Optimization by Vector Space Techniques'.

With that background, you can do probability and stochastic processes the serious way via the more serious authors, e.g., L. Breiman, D. Brillinger, K. Chung, E. Cinlar, J. Doob, E. Dynkin, I. Karatzas, M. Loeve, J. Neveu, S. Shreve, and more.

For more, attend research seminars: Don't often try to follow much of the content but just use the seminars as suggestions for new fields, problems, techniques, names, references, etc. Also you may meet some people or learn about career opportunities that could be helpful.

If after a Bachelor's or Master's want to drop out of school for a while, then do so, get a job, stay single, and outside of work lead a simple life and study some more pure and applied math from some of the best sources. Hopefully get some practice applying math to real problems.

Get a collection of real problems that might use for your Ph.D. research (remember, your Ph.D. is to be in engineering). Make some first cut progress on those problems. If you can get some solutions, then write them up as papers. If some of your papers look publishable, then try to publish them.

(7) Ph.D. Program. Now apply to a Ph.D. program. Include your papers, especially the published ones.

Your mathematical background can be a huge advantage. In particular, consider working in optimization and stochastic processes with a solid background in measure theory and functional analysis. Heck, nearly everything going on in a big application, a server farm, a large network, ..., the economy is a stochastic process where we want to optimize.

Do what the department insists on, and otherwise continue your research. Take your best research and submit it as your Ph.D. dissertation. If there is any question about the quality of that research, then publish it; or just submit work that you have already published. That the work was accepted for publication in a good journal tends quickly to settle all doubts about sufficient quality.

In particular, proceeding in your Ph.D. program as outlined here, you have (A) obtained your own background in pure and applied math, not depended on your department for that background, and have quite likely obtained a better background than any of your professors; (B) have selected your own research problems and not depended on your department or its professors for research problems; (C) have done the core of your research in applied math with theorems and proofs which are comparatively easy to show are correct and difficult to criticize; and (D) have used publication of your work preemptively to establish a respected, outside, objective proof of quality.

(8) How to Do the Research. Mostly the mathematics is just math and not very intuitive and is solid and not just guessing. But finding that math, that is, original math, can use quite a lot of intuition and guessing for finding what might be true and finding ways to prove it is true.

My view is that the most important work in math research is intuitive with a lot of guessing, a lot of simple models, and a lot of simple, intuitive, testing of intuitive guesses.

(9) University. Generally you are better off at the best research university you can get into. The less good universities can force you to jump through no end of silly hoops and be so insecure in their own expertise as to delay and delay saying that your work is good.

(10) Courses. At a really good university, it may be that the graduate courses are not much like undergraduate courses and, instead, are essentially just introductions to narrow parts of research by experts in those parts and, really, intended only for students wishing to pursue research in those parts.

(11) Done.

Accept your Ph.D. and go do something else.

Your professors may have helped you get a job, if so likely an academic job; thank them, and if that job is what you want, then take it; else proceed with your career along lines you've had in mind.

(12) Warning.

A Ph.D. program can be dangerous, harmful to you and your life and career and even fatal. If you are not well protected with your own background in, say, math, your own research problems, your own research, and your own publications, and hopefully your own financial means, then your education and much of your life can be in the hands of others who can be clumsy, competitive, nasty, arrogant, domineering, abusive, destructive, sadistic, incompetent, etc.

It can be that, really, your professors don't have any good research problems for you. E.g., even in an engineering school, they may have nearly no contact with real problems from off campus and, thus, little or no help in finding a real problem for your start. Your background in each of real problems, math, computing, and business can easily be much better than theirs. Each of your professors may have been beating their head against some hard problem for the last 15 years while you have some good insight into some good, new problems you have a good chance of solving. It is accepted that one of the keys to success in research is good problem selection.

You can feel that you are in jail without being accused of a crime, with an indeterminate sentence, tortured by your professors as jailers, and with no chance of parole.

There is a special warning for students who made Valedictorian in high school and PBK, 'Summa Cum Laude', etc. in college. In the text version of D. Knuth's 'The TeXBook' is:

"The traditional way is to put off all creative aspects until the last part of graduate school. For seventeen or more years, a student is taught 'examsmanship', then suddenly after passing enough exams in graduate school he's told to do something original."

So, a student who has done really well based mostly on fantastic memory, pleasing the teachers, dotting i's and crossing t's, doing just what was requested, working desperately for praise and approval from others, terrified of any chance of criticism, out to 'change the world' in major ways or bust, can find themselves in a situation of inhuman stress, then depression, then incapacitation, then more stress, then clinical depression, then death. No joke.

<comment><USER8> Thanks for this.

One question: why "stay single"?

</comment></comment></comment><comment><USER9> If you're able to make a living doing a PhD (from your stipend and being a teaching assistant), it might help to tide you over till the economy improves. But obviously, this article is just for fun!

If you're looking for a more serious analysis about whether you should do a PhD, see here: [http://careers.guardian.co.uk/phd-right-career- option](http://careers.guardian.co.uk/phd-right-career-option)

</comment><comment><USER10> My best anecdote of thinking about going to PhD, was when I went to a prof I knew( not my adviser, somebody who I took class from), and asked if I should go for a PhD. The conversation went

      -Hey Dr.X, I wanted to ask your honest opinion if I should go for a phd?
      -No.
      -Why?
      -If you were going to go for a PhD, you'd not be asking me. In fact, you wont be asking anyone.

After that conversation I went for my summer internship at Microsoft Research, where the creme de creme of computer science congregates, and yes, he was right - the best scientists cannot even imagine having a job and not doing research.

</comment><comment><USER11> My favorite choice is D) asleep. now I realized I should get my PhD now !

<comment><USER12> if you're IN a PhD program, you definitely shouldn't be doing a PhD.

</comment></comment><comment><USER13> I've been reading far too much about the downsides lately when trying to decide if I want to do it, so this was a fun diversion. I'm 28, fresh out of a CS MS program, work full time at a job doing computer security 'research' and really still feel like I don't know as much I as I want too.

Interesting, the question about family/friends is what peaked my interest. My girlfriend of 10 years is about ready to kill me if I commit 4-6 more years.

</comment><comment><USER14> The test might be perfectly adequate to decide whether you should do a PhD.

However, I can't stop thinking that tests where the outcome is based on Mostly A's (or B's or C's or ...) are designed for pre-teen pupils deciding whether they should break up with their this-week boyfriend or have a chocolate or vanilla ice cream.

</comment><comment><USER15> It thinks I am already a PhD student; funny! Neat. I do daydream about applying for the Computer Science PhD program at Stanford and moving out to the bay area, but then I snap back to my senses and focus on building my company.

</comment><comment><USER16> Funny, but not to be taken too seriously!

</comment><comment><USER17> Great article! We're creating a tool for PhD students: bohr.launchrock.com

<comment><USER18> I watched your video, but I feel like it didn't quite tell me what 'bohr' actually does to help me write (or read?) papers.

</comment></comment><comment><USER19> Funny! Under no circumstances, avoid doing a PhD at all costs

</comment><comment><USER20> Answering as a newly minted PhD in Epidemiology in the US, with my thoughts and commentary on the "Correct" answers.

1\. When you finished your undergraduate degree, you ...

Worked for six months as a research assistant, and realized that while I liked the work a lot, I liked the idea of asking my own questions more, and knew there was no way I was really going to be able to do that without a PhD, regardless of how very supportive and generally awesome my work environment was.

2\. You think that the hardest part of postgraduate study will be ... D. getting an appointment with your supervisor

Hard, but not the hardest. The hardest was when the "What am I doing with my life, is this all a mistake" changed frequency from once a semester to once a month, then once a week, then toward the very end essentially a rolling wave of panic and writing.

3\. You like the idea of research, because ... D. you are wholly unemployable

This one made me roll my eyes a bit. I'm employable, and more employable now than when I started (whether or not going from an MS to a PhD changed much is up for debate). I like the idea of research because I like asking questions that haven't been asked. I like planning the approach, and seeing it come together, and ushering said idea to print.

4\. When confronted with a difficult problem to solve you tend to be ...

Staring at the whiteboard I bought from an office liquidator. Usually with markers of about 10 colors.

5\. If faced with a challenge requiring a wholly new solution you usually ...

Make sure it can't just be simulated first.

6\. If asked to write up your work you ... D. spend a week configuring LaTex appropriately

Smirk at the math/physics/CS types who are convinced that their way is the only possible way science gets done, and go back to Powerpoint. Keynote if I'm feeling flashy.

7\. Somebody criticises your discipline, you ... Since it's a fairly small number of specific criticisms, by now I've got a pretty well developed tier of questions to help guide the conversation. Did you read X? In X, did you notice Y, or read the companion article by Z?...

8\. When it is suggested that that the solution to a particular challenge might be best found within another discipline you ...

I'm not at all surprised, considering my field as a discipline has kind of camped out at an intersection and shamelessly stolen from others.

9\. You have told your family and partner that you are considering doing a PhD, they are ...

They were supportive at the time, and supportive still.

10\. You will be part of a research team, this will allow you to ... Lab Happy Hour.

11\. Your friends say you are ... "in my program, he's one of the infectious disease guys."

</comment><comment><USER5> I actually looked at this from a different perspective: the workplace. I was only in a PhD program for one year (left to work on Wall Street) but have 7 years in the industry.

A is the disengaged MacLeod Loser, slightly motivated by social acceptability but averse to hard work and risk.

B is the slimy and superficially impressive but unoriginal executive (MacLeod Sociopath) alpha male.

C is the true Technocrat, the problem-solver who's an ideal student but generally "difficult to manage" in the workplace and usually gets fired a couple times before finding the right niche.

D is the terminal middle manager (MacLeod Clueless) whose self-deception prevents him from accepting the fact that he's actually checked-out (in practice, if not in mindset).

</comment><comment><USER21> lol

c, c, c, c, b, d, c, b, c, c, c</comment>


Cool-retro-term: A terminal emulator which mimics the old cathode display - <AUTHOR> https://github.com/Swordfish90/cool-retro-term <comment> SG- Reminds of "Cathode" app for OSX:

[http://www.secretgeometry.com/apps/cathode/](http://www.secretgeometry.com/apps/cathode/)

it seems they have an iOS version now too that lets you SSH to your servers. Also I believe the demo version would appear as tho the cathode screen was about to fail and get worse and worse.

<comment><USER2> Great, except not authentic. They forget that image on the screen, affects the image on the screen. So basically same dim image looks different than same bright image. Geometry often also changed when brightnes was changed. It's complex thing to receate authentic CRT.

Also many emulations fail with phosphor decay in very obvious ways. So it's not being done in a correctly at all. This cathode project is good, but many of these are clearly done by people, who haven't ever used the authentic thing and do not know what it should be like.

I remember that I laughed when people were talking about 25 ms TFT being slow. From good green / amber display you could still read text after 5 seconds since powering it off. ;)

I had one of these, lovely. [http://sales.hansotten.nl/uploads/msx/monitoren/IMG_6798.JPG](http://sales.hansotten.nl/uploads/msx/monitoren/IMG_6798.JPG) And this beauty is pretty modern one, because it's color display. With many older CRTs you had to use 40 chars per line, because image was so fuzzy that 80x25 would have been unreadable.

About noise, I have seen some extremely cheap and old VGA adapters generate so much noise and timing jitter into signal, that it looks like old TV even with modern dispalys. I got really baffed by it when I first encountered it.

<comment><USER3> That Philips monitor, that's a blast from the past! My parents bought me one of those back in 1984 for my BBC micro. Then I had it hooked up as a second monitor on my Opus 286 PC that I bought when I started college in 1985 (1MB RAM, 12Mhz 286, 37.5MB RLL 3.5" disk) for C debugging. I was a bit fancy back then and had two video cards in my PC. The C compiler I used (pretty sure it was the Microsoft C V5 one) knew how to talk to a second video card.

I kept the Philips around for years and years then donated it somewhere along the way with a couple of CGA and EGA monitors I'd collected over the years.

Just a wee nitpick, that particular Philips monitor wasn't "colour" as such, it had amber phosphor instead of green or white. That said it was a really nice display, very crisp and sharp and a bargain at around 99 quid in the day.

Getting back on topic, the best displays (in their day) I ever used were the Data General Dasher 2 and D200's. Sadly the later Dashers (the model 20's with the cream and brown cases) shipped with crappier CRT's that would wobble when sat next to any switched mode power supply.

</comment></comment></comment><comment><USER4> In a modern world where we backlight semiconductors to produce high dpi screens, it almost feels weird to think we used to fire electron guns towards our eyes. I was always partial to the amber screen.

Has anyone recently played with an old Asteroids cabinet? The screen is a black and white CRT. When you fire a missile, the screen effect is insanely bright. I'd forgotten just how intense that was.

I can't wait until someone pieces together an art piece that makes use of all the crazy analog video effects that we used to take for granted, but now look like alien technology.

<comment><USER5> Asteroids was a vector game, interesting technology:

[http://en.wikipedia.org/wiki/Asteroids_%28video_game%29](http://en.wikipedia.org/wiki/Asteroids_%28video_game%29)

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

<comment><USER6> Better resolution and frames per second than modern games :)

<comment> john-waterwood Like a plotter, effectively infinite resolution (not really infinite because of the phosphor elements being finite, but still).

The limitation shifted elsewhere of course, and that's in the complexity of the scene, specifically the number of objects.

Still, interesting tech and can even be adapted to control a laser unit that renders on say a big building or even the clouds (the real ones).

<comment><USER7> Playing Asteroids on a building would be kind of neat. Has anybody tried that?

<comment><USER8> Yup. There were some laser enthusiasts that connected their projection systems to MAME and created Laser MAME.

Laser galvo speed is a big factor in making it work effectively but there have been some great demos, like John Knoll (from ILM) playing Atari Star Wars on a theatre screen:

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

</comment></comment></comment></comment></comment></comment><comment><USER9> See also "Phosphor"¹, a screen saver part of XScreenSaver², but _also usable as a terminal_ :

        /usr/lib/xscreensaver/phosphor -scale 2 -delay 0 $SHELL

① [http://www.youtube.com/watch?v=G6ZWTrl7pV0](http://www.youtube.com/watch?v=G6ZWTrl7pV0)

② [http://www.jwz.org/xscreensaver/](http://www.jwz.org/xscreensaver/)

<comment><USER10> Also xscreensaver-data-extra,

      /usr/lib/xscreensaver/apple2 -text -fast -program $SHELL

</comment></comment><comment><USER11> As an old cathode display user, I'd really like to have a terminal emulator which mimics the modern LCD display.

</comment><comment><USER12> In my X-ray crystallography/structural biology lab we still use CRTs from over a decade old Silicon Graphics systems. They are the only displays that can do a 120Hz horizontal scan, which is darn critical when you are looking at protein and drug structures in quad-buffered stereo!

Sadly, the CRTs are dying off over time and it gets harder to find replacements that can work as well as they do. There are LCD alternatives, like Zalman, but they never impressed me much :-(

<comment><USER13> Care to explain what the issue is? Delay? Blurriness?

<comment><USER12> Flicker. Anything less than 120Hz can give severe eye strain and headaches over long (30-60 min) work sessions.

As to the LCD replacements, the anti-aliasing is just not as _smooth_ (yes, I'm being subjective) as on the CRTs. Perhaps, a "retina" level resolution display with 100+Hz refresh-rate will be a real solution. But those are probably still at the R&D stage and will be ridiculously expensive at launch! And the graphics cards to drive them as well!

<comment><USER14> I'm probably misinterpreting your requirements, but you should look into Korean IPS monitors. They're generally very cheap, are far better at reproducing colours than standard LCD monitors, have higher pixel densities (1440p@27") and can often be overclocked (90-120hz). The best deals are usually on ebay, shipped from Korea.

[http://www.blurbusters.com/overclock/120hz-1440p-ips- monitor...](http://www.blurbusters.com/overclock/120hz-1440p-ips-monitors/)

<comment><USER12> I'd gladly try that out for personal use!

But it is an entirely different manner when your purchase has to be approved by a pyramid of bureaucrats and more importantly, buying things at online auctions (eBay, gasp!) or even otherwise (amazon) takes weeks to be approved. And oh!, we need five of those monitors to start with (and they better work!).

</comment></comment></comment></comment></comment><comment><USER15> Check out the nice collection of fonts too. :-)

[https://github.com/Swordfish90/cool-retro- term/tree/master/a...](https://github.com/Swordfish90/cool-retro- term/tree/master/app/qml/fonts)

I've been playing with them in iTerm2 and having flashbacks.

</comment><comment><USER16> I've been developing a Clojure on Node.js curses terminal UI library[1] for some months, and though development has been going stronger than ever lately, I feel my motivation doubled up in seeing my interfaces displayed in this glorious orange glow. I should start working on a text game about being alone in a spaceship or a war-ravaged post-apocalypse right now. Suddenly my brother will go from joking that my computer must crash a lot because all he ever sees is terminals to being in awe.

I had tried Cathode for OSX but it didn't work, and now you come and tell me I can have it for free on my linux dev box and that it works flawlessly? Thank you.

[1]: [https://github.com/goldfeld/i9n](https://github.com/goldfeld/i9n)

</comment><comment><USER17> Looks pretty good! In reality[1] the "CRT effect" isn't quite so intense, but I think that's just down to settings. This definitely has the right glowy and slightly-fuzzy feel to it.

[1] My Wyse-55: [http://i.imgur.com/7x2JdmV.jpg](http://i.imgur.com/7x2JdmV.jpg)

<comment><USER18> That's a remarkably sharp display and clean keyboard you've got there, it looks like it was unboxed yesterday!

<comment><USER17> Thanks! Yeah, I bought it as a refurbished unit and the company that did it does a nice job.

</comment></comment></comment><comment><USER19> Does it accurately emulate the burning eyes and headaches after a long day? Burn-in artefacts and simulated line noise would be nice additions ;)

</comment><comment><USER20> I should take a look to their shaders and tune up more Trillek CRT shader :

[https://plus.google.com/118048310717476799717/posts/4CSV9LHq...](https://plus.google.com/118048310717476799717/posts/4CSV9LHqq41)

[https://plus.google.com/118048310717476799717/posts/diBzDKJ2...](https://plus.google.com/118048310717476799717/posts/diBzDKJ2gYY)

<comment><USER21> You might also appreciate [http://timothylottes.blogspot.com/2014/08/scanlines.html](http://timothylottes.blogspot.com/2014/08/scanlines.html)

</comment></comment><comment><USER22> This reminds me that I have two Wyse WY-85 green screen terminals in the attic. I got them when they were being thrown out by a university in 1997 or 1998. They've been sitting there getting more and more depressed and dusty. At some point I really need to grab a Pi and a USB<->serial adapter and get them up and running. I've seen some blog pages from a couple of other folks who have managed to get them working in a similar way.

At this rate my wife will throw them out with the perfectly valid excuse that if I haven't set them up in the last fifteen years, I'm unlikely to do so in the next fifteen.

</comment><comment><USER23> Just a quick glance at those screenshots and I'm instantly transported twenty years into the past, sitting in the campus computer lab printing out a report at 3 a.m. the day it's due.

It's weird how the brain works.

</comment><comment><USER24> Someone™ posted an issue last july that this exquisite piece of software retro art did not compile on OS X. After a while someone™ actually managed to compile it on OSX, and the original author is working on a port, but until then we have to make do with the Cathode app.

Only problem with the Cathode app is that it flickers more and more till you get an epileptic fit if you don't upgrade to the paid version.

<comment><USER25> Well, on the Mac, you pay for stuff, that's just the way it is. If you care about gratis & libre software, start dogfooding a free OS.

<comment><USER26> That's complete recycled bovine waste my friend.

Just because I choose to use OS X does not mean I'm ignoring the bsd base its built on, nor not enjoying using / contributing to open projects.

</comment></comment></comment><comment><USER27> It packages up a nice collection of vintage fonts for use in other applications: [https://github.com/Swordfish90/cool-retro- term/tree/master/a...](https://github.com/Swordfish90/cool-retro- term/tree/master/app/qml/fonts)

</comment><comment><USER28> Looks like something out of Fallout. Awesome. Just the kind of thing you need on your Pip Boy.

<comment><USER29> Yeah, the only thing missing is the cathode ray 'desync' effect which occurs when you first switch on the Pip-boy. That level of 'polish' on the Pip boy is fairly amazing in trying to emulate a good ole cathode ray tube ...

</comment></comment><comment><USER30> I would really like to do something like this in HTML5 + WebGL for some retro game ideas I have. Like, even doing this with a Z-Machine interpreter (Zork, Hitchhiker's Guide to the Galaxy, etc.) would be fun.

</comment><comment><USER31> Funny how being around in the days when this was common I couldn't wait to see the future. Now I am in the future and people get excited about recreating the past. I can't win.

<comment><USER32> Back in those days, sitting behind a WY-85 connected to a VAXstation 3540, I was terrified by a thought that these awful, ugly, clumsy x86 PCs are possibly the future. And now, the future turned out to be even worse than I imagined.

</comment></comment><comment><USER33> Here's an fork that works for OS X. [https://github.com/chowyuncat/cool-retro- term/tree/osx-hacks](https://github.com/chowyuncat/cool-retro-term/tree/osx- hacks) Swordfish's osx branch is broken.

</comment><comment><USER34> Awesome terminal, but too bad it's so cpu hungry. My laptop heated up in like 5 minutes.

</comment><comment><USER35> Well done... down to getting to color of an old vt220 right... (that's the orange one)

</comment><comment><USER36> $ ./cool-retro-term

loadAllColorSchemes

<blank window opens>

There's a menu, but nothing clickable. It's interesting though. If I "touch /tmp/asdf", then the file gets written. So it is actually executing what I type, it's just not displaying anything?

Debian Wheezy

</comment><comment><USER29> Has someone tried getting it to compile/run under Windows?

<comment><USER7> There is something, I am not sure what, wrong with the 3278 font on Windows.

</comment></comment><comment><USER37> Is the borders around it necessary? Because personally I think that it would look great without the borders. Or is it to simulate the roundness of the monitor?

<comment><USER38> You can remove the border (and change everything else) in the settings.

<comment><USER39> My build (installed with yaourt on Arch, just like it says on the page) crashes when I try to.

</comment></comment></comment><comment><USER40> Awesome! I remember seeing this on reddit earlier in the year when it was in much earlier stages. Looks really great now!

</comment><comment><USER41> While neat, the cpu consumption this is insane. It's not even as bad when I play unaccelerated HD video.

<comment><USER38> Interesting. I couldn't get it to go over maybe 5% on one core. Maybe it offloads some of the graphics work to the GPU.

</comment></comment><comment><USER42> Can't wait to use this in video projects. I already have a Kickstarter in mind.

</comment><comment><USER43> LOL, very cool. But I think my eyes would hurt if I looked at it for too long.

</comment><comment><USER44> thats metal as fuck

</comment><comment><USER45> markdown file, so old school.

</comment><comment><USER46> This has been reposted many times both here and on reddit.

<comment><USER47> [https://hn.algolia.com/?q=https%3A%2F%2Fgithub.com%2FSwordfi...](https://hn.algolia.com/?q=https%3A%2F%2Fgithub.com%2FSwordfish90%2Fcool- retro-term)

<comment><USER48> It used to be called cool-old-term.

[https://hn.algolia.com/?q=https%3A%2F%2Fgithub.com%2FSwordfi...](https://hn.algolia.com/?q=https%3A%2F%2Fgithub.com%2FSwordfish90%2Fcool- old-term)

I don't mind seeing it again, though.</comment></comment></comment>


PHP 5.4: a huge list of major changes - <AUTHOR> http://php.webtutor.pl/en/2011/09/27/whats-new-in-php-5-4-a-huge-list-of-major-changes/

<comment><USER2> IMO this puts PHP's syntax on par with other languages. Unfortunately the libraries still suffer from multiple conflicting conventions.</comment>


Ask HN: Does anyone have BSL-3 biotech incubator space for rent? - <AUTHOR> I'm trying to get a LAMP testing operation going and I'm wondering what my options are. I anticipate just needing the space for 3-6 months and don't want to get locked into a lease. <comment><AUTHOR> I'm trying to get the operation I suggested from [https://news.ycombinator.com/item?id=24048775](https://news.ycombinator.com/item?id=24048775) going in full compliance with FDA, since no one else seems to be interested in doing it and it's an astounding opportunity.</comment>


Job Ready in 9 weeks to become the best in the market... - <AUTHOR> http://firebootcamp.com

<comment><USER2> The proliferation of these kidns of boot camps is startling -- I wish the best to anyone who signs up, but to be good at just about anything, you need to put in more than 9 weeks...

<comment><AUTHOR> The claims made on that site are pretty damn bold... No problem with getting people into coding but to be job ready and be "the best in the market"... wow...</comment></comment>


Is IoT (Internet of Things) a sustainable business model? - <AUTHOR> http://www.triplepundit.com/2015/08/internet-things-sustainable-business-model-ever/

<comment><USER2> IoT isn't a business model, it's a set of emerging technologies that's altering how companies design & build electronics hardware. This will likely open up some _new_ business models (with startups to go along with them), but many of the big winners are likely to be existing companies that adopt IoT technologies for their products.</comment>


Show HN: Luakernel – Lua + SQLite + musl libc running on x86 - <AUTHOR> https://github.com/ers35/luakernel <comment><USER2> Since there is nothing obvious on the page: This is Lua+SQLite running on _bare metal_ x86.

Lots of questions: does it actually have any performance benefits? A network stack? How do the mechanics of getting/editing files work?

<comment><USER3> The codebase is so small that it's quite easy to take a look to answer the questions:

* no networking at all

* performance - doing what?

* file primitives are implemented purely in Lua, and what is currently there resembles a pre-initialized ramfs. Closing a file is a NOP, the concept of numerical file descriptors is not fully implemented yet. So - no block devices yet.

* aside from file primitives, you have lua coroutines as the core of the scheduling, inb()/outb() (bytewise port I/O), and putpixel/clearscreen in the API implemented in C, as well as basic keyboard handling (using inb/outb wrappers) and graphics primitives (using putpixel/clearscreen) implemented in Lua.

I suggest to take a quick peek at luakernel.c and luakernel.lua in the codebase.

<comment><USER4> If you want Lua running on bare metal with a network stack you can use the rump kernel[1].

[1] [http://rumpkernel.org/](http://rumpkernel.org/)

</comment></comment></comment><comment><USER5> It would be very interesting if this could be combined with snabbswitch for some truly awesome bare-metal lua networking.

<comment><USER6> I've never seen snabbswitch before, are there any lua extensions to get it to emulate tcp/ip stack and present the data stream to your lua code??

<comment><USER5> It basically talks to certain network-cards directly, bypassing the TCP/IP stack. AFAIK it presents raw ethernet packets to the lua code which have to be parsed by the application (i don't know exactly if there isn't some code present in the repo to deal with sockets and such directly). The repo: [https://github.com/SnabbCo/snabbswitch](https://github.com/SnabbCo/snabbswitch) Under src/apps there are some examples.

<comment><USER7> is it a .ko or an user space app?

<comment><USER4> Userspace, it mmaps that PCI space itself.

</comment></comment></comment></comment></comment><comment><USER8> Downloaded the iso and ran under a vm but it crashes as soon as I try any command.

I'm curious what's the easiest way to test this?

[1] [https://github.com/ers35/luakernel/blob/master/bin/luakernel...](https://github.com/ers35/luakernel/blob/master/bin/luakernel.iso)

<comment><USER9> Try running it under qemu[1] or bochs[2]. A "virtual machine" software such as VMWare or Virtualbox is not the same as a low-level "bare metal" CPU emulator such as the two I suggested. The latter programs make assumptions about how the guest OS will behave that probably aren't valid for this project.

I suggest starting with bochs since this project has a bochsrc.txt in the git root that will be automatically picked up if you just run "bochs" in that directory.

[1] [http://wiki.qemu.org/Main_Page](http://wiki.qemu.org/Main_Page)

[2] [http://bochs.sourceforge.net/](http://bochs.sourceforge.net/)

</comment></comment><comment><USER10> Pretty interesting, just a pity he didn't specified an actual license, as "disclaims all copyright" has no legal value and even if it had, it would certainly mean different things from one country to an other (for example in France you can't, even yourself, put something you've produced in the public domain as you can't cede your paternity 'right')

<comment><AUTHOR> I took inspiration from SQLite: [https://www.sqlite.org/copyright.html](https://www.sqlite.org/copyright.html) [https://github.com/ers35/luakernel/blob/master/dep/sqlite3/s...](https://github.com/ers35/luakernel/blob/master/dep/sqlite3/sqlite3.h#L4)

I agree that the licensing terms need clarification.

<comment><USER11> Richard Hipp went on to say he wishes he didn't use public domain, because of its ambiguity.

see: [https://web.archive.org/web/20120510151444/http://methodlogi...](https://web.archive.org/web/20120510151444/http://methodlogic.net/BSDFossil.html)

</comment></comment></comment><comment><USER12> What does this need to be useful for real work? Ie serve html? A network stack, file system, process mgmt?</comment>


Posthumous lust and the internet: a love story - <AUTHOR> https://www.laphamsquarterly.org/roundtable/hot-or-not-history <comment><USER2> Historical figures are lucky: born before the advent of digital flash photography. EVERYONE looks great on grainy film, even better on black-and- white-film, and even better on a commissioned don't-you-dare-reproduce-my- double-chin oil painting. Having said that, I'm sure many of these great figures were able to make use of their sexy wiles: being attractive doesn't mean being classically handsome, it means having a glint in your eye and a persuasive charm.

</comment><comment><USER3> Damn right. Emperor Meiji was a _baller_.

Also worth mentioning is Hackernews's historical waifu, Hedy Lamarr -- siren of the silver screen (and one of the first actresses to appear nude in a mainstream motion picture), and coinventor of an early manifestation of spread-spectrum radio.

<comment><USER4> I'd also include young Stalin: [https://1.bp.blogspot.com/-uMBKOQvp7KM/WJQgaqxtNTI/AAAAAAAAM...](https://1.bp.blogspot.com/-uMBKOQvp7KM/WJQgaqxtNTI/AAAAAAAAMOw/9WFKgBbxCJwnMMydncy82tfayoVF4PCmgCLcB/s1600/young_Stalin_1.jpg)

That haircut is glorious.

<comment><USER5> And young Mao, for that matter...</comment></comment></comment>


Ask HN: Apply late or wait? - <AUTHOR>

Would you say it's better to wait and apply next cycle, or to apply late anyway and try again in the winter if your application gets rejected?
Essentially, are there any good reasons not to apply late?
Say for example, is it a black mark to have an earlier rejected application for the same idea? Opinions appreciated! <comment><USER2> No, it's not a black mark. There's no particular reason not to apply now, if you're ready.

<comment><USER3> Paul, is being accepted in another 'incubator' a black mark? We submitted early this time though.

<comment><USER2> No, not at all. Lots of the startups we fund also applied to and were offered funding by other YC-like organizations.

</comment></comment></comment><comment><USER4> Apply late so you can have that awesome story of being the company that barely decided to apply after the deadline and then went on to be the next Facebook ;-)

</comment><comment><USER5> Go for it. So many places set an arbitrary deadline because they know a few will come in late, so they build in a buffer. Plus you never know, someone may back out for some reason and they need another one to round out the numbers.</comment>


Early Modern Recipes (1600-1800) in a Modern Kitchen - <AUTHOR> http://rarecooking.wordpress.com/ <comment><USER2> The cutoff at 1800 seems odd given Louis Eustace Ude's _The French Cook_ comes out in French in 1813, and had a strong foothold in England prior to 1800. [1] If I understand correctly, he was also one of the first to bring what we now consider modern gastronomic techniques into British cooking. He may present an interesting case study for the period before Grimod and Brillat-Savarin.

[http://www.cooksinfo.com/louis-eustache-ude](http://www.cooksinfo.com/louis- eustache-ude)

</comment><comment> jack-r-abbit There is a group in San Francisco called the Guild of Cookery[1] that is doing this with old recipes and running pop-up dinners based on Game of Thrones feasts. I went to one and it was fascinating to hear them talk about finding old recipes and sourcing ingredients as authentic as they could get. Interesting stuff.

[1] [https://www.facebook.com/guildofcookery](https://www.facebook.com/guildofcookery) \- sorry, they only have Facebook

</comment><comment><USER3> I imagine people who are interested in this would also be interested in the Silk Road Gourmet: www.silkroadgourmet.com. Everything from Babylonian recipes to reconstructions of Roman fish sauce.

</comment><comment><USER4> If you like deciphering ancient recipes, you may interested in "The Forme of Cury: A Roll of Ancient English Cookery Compiled, about A.D. 1390": [http://www.amazon.com/The-Forme-Cury-Ancient- Compiled/dp/142...](http://www.amazon.com/The-Forme-Cury-Ancient- Compiled/dp/1426425759)

It's remarkable that English written over six centuries ago is still more or less comprehensible, albeit with a little effort.

</comment><comment><USER5> Boy, that beef roll looks great. I definitely need to give that one a try.

These kinds of historical recipes are always fascinating to me. Some survive and are still quite good - my girlfriend made a middle eastern dish that apparently hasn't changed in a long, long time (shakshouka) and it turned out surprisingly complex and wonderful.

<comment><USER6> I actually just cooked shaksouka tonight. It's interesting to note that tomatoes are natively American and didn't even make it to the middle east until the late 1700s.

<comment><USER7> >tomatoes are natively American

So are chillies (chili peppers). Yes, Shakshouka is good.

</comment></comment></comment><comment><USER8> Heston Blumenthal's London restaurant Dinner by Heston[1] has a similar theme, with British recipes from the 14th to 20th century. The only restaurant I've been to where the menu had a bibliography

[1] [http://www.dinnerbyheston.com](http://www.dinnerbyheston.com)

<comment><USER9> And if you are into that, his cookbook Historical Heston contains a lot of the recipes and background for some of the items at Dinner. Eventually picked it up just for the tipsy cake recipe...

</comment></comment><comment><USER10> It's frustrating how much they alter the recipes. Do it like the funny text says!

<comment><USER11> Yup. The fish custard may have actually turned out had they followed the recipe. And there are fish-custard-y recipes from other cultures that turn out and taste great...

</comment></comment><comment><USER12> Wow, mac & cheese has been around longer than I realized -

[http://rarecooking.wordpress.com/2014/06/30/maccarony- cheese...](http://rarecooking.wordpress.com/2014/06/30/maccarony-cheese/)

</comment><comment><USER13> Of the recipes that I read, cherry brandy is the easiest by far — you macerate several pitted cherries in a jar for several days — and not alien at all to a contemporary reader with an interest in these things. But should it have been quite so easy? 'Brandy' is almost as general a term as 'wine' or 'beer'. Which brandy available to an American in 2014 would be most comparable to the brandy available to an English cook in 1601, I wonder?

</comment><comment><USER14> The SCA do a lot of this sort of thing, so if you're interested, then the links at [http://www.medievalcuisine.com/favorites/cookery-pages-by- pe...](http://www.medievalcuisine.com/favorites/cookery-pages-by-people-of- the-sca) might be to your liking.

</comment><comment><USER15> I liked this, I have some of the 1500s or so recipes from when I have been inspired watching historical cooking documentaries, but the problem for me has been figuring out how to translate them properly to modern ingredients.

</comment><comment><USER16> My grandmother had a cookbook from the 1920s and she claimed she had to update all the recipes to account for increased egg size. From the first recipe it doesn't look like that's the case here.

<comment><USER17> Some recipes are more sensitive than others. Also, they seem to just be feeling their way through with no real way to compare their results with the originals.

</comment></comment><comment><USER18> @rare_cooking, here. Thanks for checking our our project. Let us know if you try any of our recipes (as we cooked them or otherwise) and how it turns out.

</comment><comment><USER19> I am not much of a cook but everytime I cook, recipes never work.

Sometimes, it seems like that if you follow the receipes measurements exactly, your food almost never tastes like what you expect. There always needs a bit of human discretion.

As such, I find video recipes to be far more effective. You can see them cook and get a feel of what "cook meat until brown" really means, or what is a "sprinkle of green onion"

<comment><USER20> I've found that part of the problem is that there's a very bad user experience with recipe formats. They assume that one will get all ingredients out first and will only start to follow the instructions once everything is ready. Almost no one does that all of the time.

The back and forth reading that you have to do results in errors because you lose your place, skip a step, add an ingredient in the wrong order, etc. That really impacts the results. In this vein, I've been working on a format that lets you just go top to bottom with much better results. Would love to hear your thoughts.

[http://www.makebetterfood.com/recipes/](http://www.makebetterfood.com/recipes/)

<comment> jack-r-abbit Your format is most certainly NOT for me. I am one of those people that do get all ingredients out first. I also get all my required measuring instruments out ahead of time. I also read the entire recipe so I can plan my steps. A normal recipe format is ideal for me. Your format is confusing to me. But everyone does things differently. I'm sure your format has an audience. Good luck.

<comment><USER21> In fact, it is much better to do what you describe. My cooking life became much easier once I learned to get a proper mise-en-place going. By the time I actually turn on a burner or anything like that, _everything_ is fully prepped and ready to go in a pre-measured container.

<comment><USER22> How can you do a mise for, e.g., one-off home baking? In the case of familiar recipes I find it easier and cleaner to use a JIT process...

<comment><USER21> I don't bake, I only cook so your specific example I don't know.

I'll also admit that when I'm dialing something in ("needs more X") that obviously that's not prepped ahead of time.

Anything else I find it easier and cleaner to just have a bowl of X ready to go. It goes in the dishwasher within minutes of using it, and my cutting board and such was already cleaned.

</comment></comment></comment></comment></comment></comment><comment><USER23> The image presentation on the site is beautiful. Is that a native feature of wordpress?

<comment><USER24> Sort of. WordPress provides the gallery; the carousel comes from the Jetpack plugin [1] which is included on wordpress.com sites and can be installed [2] on self-hosted sites.

[1] [http://jetpack.me/support/carousel/](http://jetpack.me/support/carousel/)

[2] [http://wordpress.org/plugins/jetpack/](http://wordpress.org/plugins/jetpack/)</comment></comment>


New Level 7 Hash Function: Prvhash - <AUTHOR> https://github.com/avaneev/prvhash <comment><USER2> What are the "levels" of hash functions?

<comment><AUTHOR> There are 1-5 levels. Level 7 is a marketing trick.

</comment></comment><comment><AUTHOR> PRVHASH is a hash function that generates a pseudo-random number sequence derived from the message. Resulting hashes closely follow normal distribution of bit frequency. PRVHASH is conceptually similar to keccak scheme, but is a completely different implementation of this concept.

PRVHASH can generate 32- to unlimited-bit hashes, yielding hashes of roughly equal quality independent of the chosen hash length. PRVHASH is based on 64-bit math. Hashes beyond 256-bits still require extensive testing, but, for example, any 32-bit element extracted from 512- or 2048-bit resulting hash is as collision resistant as just a 32-bit hash. The use of the function beyond 512-bit hashes is easily possible, but has to be statistically tested. The extension of the hash function to 128-bit math also works well: this increases its properties exponentially.

</comment><comment><USER3> You can see its properties here [https://github.com/rurban/smhasher](https://github.com/rurban/smhasher)

Passes all smhasher tests for a tiny size (157 byte on x64), but slow as every more secure hash. I would put it as alternative to people using siphash. Personally I see no use case for siphash at all. Slow, big, insecure, easily brute forcable.

</comment><comment><USER4> I cannot look at this name and not want to pronounce it as "perv-hash"

<comment><AUTHOR> This is excellent! (not in "pervert" sense). "pervee" is "first" in Russian.</comment></comment>


Emergency dose of epinephrine that does not cost an arm and a leg - <AUTHOR> http://m.imgur.com/gallery/th6Ua <comment><AUTHOR> Some insistance and comparison-shopping through a pharmacy database result: "My new script fell into the generic price catagory which, with the coverage we have, ran me a whopping $5."

Which somehow the existing quasi-market system failed to surface.</comment>


Ookla Discontinues Netindex - <AUTHOR> http://www.netindex.com/

<comment><AUTHOR> This is very disappointing, especially for non American people as netindex was one of the few places which had enough data to make accurate decisions about picking an ISP and comparing what you get to what is expected in an area.

I hope someone steps up and builds up an alternative.</comment>


Now Google is grooming a biotech firm / Company invests $3.9 million in business begun by Brin's bride - <AUTHOR> http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2007/05/23/BUG0QPVKGF1.DTL&type=tech <comment><USER2> This is like throwing a nickel into a homeless hat.</comment>


Asymmetric Information in Wage Negotiations: Hockey's Natural Experiment (2013) [pdf] - <AUTHOR> http://economics.usf.edu/PDF/Asymetric%20Information%20Porter%20Kamp.pdf <comment><USER2> tl;dr US Hockey league published its players salaries starting in 1989. Over next five years, wages rocketed, importance of team negotiating tactics / prestige vanished and player performance became a major correlation to highest pay.

In short asymmetric data on employee wages (company knows all salaries, employee knows just one) leads to inefficent outcomes

Even shorter - everyone's salary and pay should be published - that will fix pikkety's problem

Even even shorter - how the hell do you measure performance?

<comment><USER3> To nitpick, it's the "National Hockey League" (NHL) and has seven Canadian teams and 23 American teams (likely increasing to 8 and 24 soon).

Publishing of salaries has really created another fun side of the games for fans. Numbers junkies now have the luxury of advanced on-ice analytics as well as some cool financial info in the salary cap era.

</comment></comment><comment><USER4> Economic inequality is a hot topic right now. Employers knowing everyone's salaries, but not the employees, puts the employees at a disadvantage when negotiating salary.

One option would be to require all companies to publish employees salaries. Would this requirement be more or less onerous than other options?

One argument is that it hurts businesses - but if _every_ business is required to do it, then it is an even playing field. Obviously that cannot happen in an international business setting - so would it put the countries that implement it at a disadvantage, or would the economic gains outweigh the decrease in competitiveness?

<comment><USER5> Regulation like this would be absurd considering anyone can legally publish their salary publicly. Salaries are not public because employees want them not to be public.

I don't want lawmakers or trade unions undermining my right to privacy under some manipulative power-play guise of "fairness". We are all free to make our salaries public, if we think it is in our best interest to do so, let's talk about and focus on that and not be so naive as to believe regulations will magically solve a cultural issue.

<comment><USER6> In the USA, outside of California and possibly a few other states, it isn't clear this is legal. Employers may be able to prohibit employees from publishing their salaries, although they can't prohibit employees from discussing compensation _with each other._

<comment><USER5> Okay. This is a good data point and where I think we culturally and legally should be focusing our attention; laws should be passed to expand employee liberties and ensure the right to disclose wages for a specific class of employees before considering laws to regulate and encumber businesses.

</comment></comment></comment></comment><comment><USER7> Shouldn't someone simply build a "log-in-with-LinkedIn" website that allows people to list their current and former salaries?</comment>


Would you switch off a client's website if they refused to pay you? - <AUTHOR> http://designispolitical.com/business/would-you-switch-off-a-clients-website-if-they-refused-to-pay-you/ <comment><USER2> I would do whatever is in my power to legally make their life miserable and drive them out of business.</comment>