Zusie – My Relay Computer - <AUTHOR> http://www.nablaman.com/relay/story.php

<comment><USER2> Hi everyone, I am the author of Zusie. I was alerted by a friend about this thread. Thanks for all the interest!

The machine is actually more or less finished, even though the web page doesn't say so. The only thing I was going to add, but haven't gotten around to yet, is a mechanical master oscillator instead of the current solid-state one. I might also add a proper relay based memory someday (I still have thousands of relays in boxes.. :)

</comment><comment><USER3> A very fascinating project, one I would never have the perseverance to see through. Thanks for posting it.

It does, however, end with the machine being "not quite finished" in 2011, can anyone find an update?

<comment><AUTHOR> no, unfortunately I don't think he ever finished it. Though as he notes Zuse built complete relay computers in the early 1940s (using discarded telephone switching relays!). It's interesting that this development in computing has kind of been overlooked (I'd guess because it took place in 1940s Germany).

I came across his work again as I was putting together a relay based oscillator this weekend [1]. I wonder if I have enough relays to put together a half adder. :)

[1] [http://41j.com/blog/2014/12/electromechanical- oscillator/](http://41j.com/blog/2014/12/electromechanical-oscillator/)

<comment><USER4> To qualify the "overlooked" part: In Germany, his work is part of basic computing history every Computer Scientist should have at University. So his general work is far from forgotten.

<comment><AUTHOR> That's really great to hear. Aside from this web page I'd unfortunately never heard of his work before. If you have any references I'd be interested in reading them.

It's interesting that the wikipedia pages on the Manchester Baby, ENIAC, and Z3. All refer to them as "first computers" by one definition or another. I guess the ones you end up hearing about are to a degree culturally determined.

I assumed something similar might have been developed in Japan. And it seems they also developed a relay based computer in 1952 which I found interesting:

[http://museum.ipsj.or.jp/en/computer/dawn/0005.html](http://museum.ipsj.or.jp/en/computer/dawn/0005.html)

<comment><USER5> Well (according to Wiki, at least, [https://en.wikipedia.org/wiki/Z3_(computer)#The_Z3_as_a_univ...](https://en.wikipedia.org/wiki/Z3_\(computer\)#The_Z3_as_a_universal_Turing_machine) ) the Z3 was only accidentally Turing-equivalent, and the hack for writing arbitrary programs on it was only discovered in 1998 (and wouldn't have been practically useful anyhow). The Manchester Baby was operational and ran its first program before the completion of the redesign and rebuild that made ENIAC Turing-equivalent. However, it had only been built as a technology demonstrator/testbed, and it was soon disassembled. (I say Turing-equivalent, but Turing's work wasn't the inspiration for any of these efforts to build a fully-programmable computer.)

</comment></comment></comment></comment></comment><comment><USER6> This one is cool, almost no semiconductors: [http://www.northdownfarm.co.uk/rory/tim/tim-8.htm](http://www.northdownfarm.co.uk/rory/tim/tim-8.htm)

<comment><USER7> It blows my mind to think that, with the invention of the relay in 1835[0] and the invention of boolean logic in 1847[1], a binary computer like this could have been built almost a hundred years before it actually happened. There was just never the right person looking at both parts of the puzzle.

This is my go-to answer for the old "if you could go back in time, what present technology would you invent" dinner party question.

[0] [https://en.wikipedia.org/wiki/Relay#History](https://en.wikipedia.org/wiki/Relay#History) [1] [https://en.wikipedia.org/wiki/George_Boole#Symbolic_logic](https://en.wikipedia.org/wiki/George_Boole#Symbolic_logic)

<comment><USER8> I wonder what it would and could have been used for. Seems like it would have been too large and expensive to be cost effective for most things, wouldn't it?

<comment><USER7> Well, the earliest IBM systems were used for processing census results, so that's one possibility. Ballistic trajectories for artillery were first done with analog computers, so probably not a good match. If you look up the historical usage of log table books, there should be some very good possibilities.

</comment></comment></comment></comment><comment><USER6> I made one of these, to sell: [http://relaysbc.sourceforge.net/](http://relaysbc.sourceforge.net/)

I need to make some more of them..

<comment><USER9> These look gorgeous, I searched ebay for the boards, ;)

Drum memory might be a nice touch.

</comment></comment><comment><USER10> "The movie Tron: Legacy [1], which revolves around a world inside a computer system, features a character named Zuse [2], presumably in honour of Konrad Zuse."

[1] [https://en.wikipedia.org/wiki/Konrad_Zuse#Zuse_Year_2010](https://en.wikipedia.org/wiki/Konrad_Zuse#Zuse_Year_2010)

[2] [http://www.imdb.com/character/ch0209988/](http://www.imdb.com/character/ch0209988/)

</comment><comment><USER11> His 'Zusie Simulator' is also interesting to play with - watch the bits change as the program runs.

[http://www.nablaman.com/relay/sim/zusie.html](http://www.nablaman.com/relay/sim/zusie.html)</comment>


Ask HN (and pg): Move reply button for denser threads? - <AUTHOR>

I was scrolling through a lengthy HN thread when I realized that each comment's reply button has a whole line to itself. If it were moved above the comment to the header like this,

  1 point by evanrmurphy 2 minutes ago | link | reply
 instead of below as it is now, then more comments could fit on one screen. This way longer threads would be easier to take in, because you'd have to page down fewer times to get through them. Disadvantages could include decreased readibility with the removed whitespace and the reply button no longer being where your reply goes (i.e. below the comment) which is a nice touch!
Do you think this would be an improvement? <comment><AUTHOR> The significance of _reply_ 's placement is a function of thread length, since it's only for long threads that you care how many comments fit on one screen. Average thread length has been increasing along with HN's popularity, and the move gets more worth considering too.

<comment><AUTHOR> Last sentence revision: _It's something to consider since average thread length on HN has been increasing with its popularity._

</comment></comment><comment><AUTHOR> _Disadvantages could include decreased readibility with the removed whitespace_

There would still be the header line separating each comment's body, but maybe you do need more than one, considering comments can contain their own blank lines.</comment>


We Called It Gutenberg for a Reason - <AUTHOR> https://ma.tt/2017/08/we-called-it-gutenberg-for-a-reason/ <comment><USER2> Someone here seems to be unaware of the already existing "Project Gutenberg": [https://www.gutenberg.org/](https://www.gutenberg.org/)</comment>


OS X Mountain Lion: Data Loss via 'Save As' - <AUTHOR> http://macperformanceguide.com/MountainLion-SaveAs-data-destruction.html <comment><USER3> My biggest problem is that _Apple is not explaining these changes_.

With the original Save/Save As, the concept was easy to understand after someone took 30 sec to explain it to you. You knew exactly what was happening.

But with Apple's new changes, Apple has made autosave and versions the new paradigm (awesome), but they've done a terrible job at explaining how to do anything _but_ that.

How do I edit something and then save that edit as a new document without affecting the original? If I copy a file, does the whole version history get copied too? What if I send it to someone? What if I want to delete the version history period? What if I want to "duplicate" a file but not save it anywhere, because I just want to mess around with changes for a while?

I've been using Lion since it came out, and I don't really know the correct answers to any of those questions.

<comment> X-Istence The version history is stored by the file system and not by the file itself. If you copy the document you don't store any of the version history and you can't revert (from my experience).

Also, if you send the file to someone they get the latest changes, they don't get any history... the history is snapshots made by the OS much like Time Machine does for backups, except it is done every so often automatically (auto save) and not to an external drive.

The only real cock-up is the Save As. Save As should save the new file, and revert the old file back to what it originally was (the last time I explicitly saved, not the spot that auto save last saved).

If you want to modify a copy of the file, before you start your modifications you simply choose File -> Duplicate and it opens the same document but with a different name. When you save that one it will have an entirely new history associated with it.

The fact that it is a file system feature that is baked into the OS means that all apps can take advantage of it if they want and the overhead is small. It also means that apps no longer need to keep notes about what modifications were done to what, instead being able to rely on the auto save feature. The other nice thing is that since it is not part of the document and is outside of it, data leakage is much less of an issue than with other file formats such as Microsoft Word where recovering previous text is rather simple and can lead to data leaking that you wouldn't want leaking.

<comment><USER4> _If you want to modify a copy of the file, before you start your modifications you simply choose File - > Duplicate and it opens the same document but with a different name._

What if you only decide that you want to save as a different file after you are half way through your modifications?

<comment><USER5> When you choose Duplicate on an edited file, you're given the option to Duplicate and Revert the original file. Handy.

<comment><USER6> That's how it worked in Lion, but Mountain Lion behaves differently -- you get the duplicate with its file name selected, so you can rename it, but the original stays modified unless you think to immediately pick "Revert to last saved version".

I actually liked the Lion behavior better. (Now I wish I'd had the chance to try out the Mountain Lion beta before release, so I could have filed a bug for this.) That's what we get for everyone complaining about the lack of "Save As"...

</comment></comment></comment></comment></comment><comment><USER7> Yeah, I noticed this one too, when cropping a picture and saving it as a new file (in Preview). Both the original and the new one were cropped. A moment of panic later, and I found the revert option in Preview, but _only_ because I knew it existed.

Totally. 100%. Undesirable. I did not _Save_. I saved to a _new file_. The only option now appears to be duplicating before editing (bad) or hoping the application has an 'export' option which sidesteps this (also bad - <USER2> typically presents far more options than save-as).

<comment><USER8> > duplicating before editing (bad)

Why is this bad?

edit: Why are people downvoting me for asking this question? I'm genuinely curious.

<comment><USER7> Because it's a horrible UX paradigm to require. If 'Save As...' had never existed, it wouldn't be unreasonable, but it is (was) a reasonable behavior that every other system I'm aware of has maintained.

This passive versioning thing is quite nice in some aspects, but it's very unknown with most people I've seen. They see a file changed, they assume it's stuck like that now and the original is gone forever. Why would they expect otherwise? Their unsaved file gave no indication of being saved. Every application they open it in, and everyone they email it to, will only get the most-recent version. Even the file-system doesn't tell you when you have multiple versions of something.

<comment><USER8> I see it as part of the iOSification of OS X, to appeal to iPad/iPhone halo converts. My phone has never asked me if I want to "Save changes".

<comment><USER7> I like the feature, to be clear. I just think it's horribly executed, and the education side has been even worse.

The problem is that they took something. Then they changed it, giving it multiple nearly-invisible modes it can be in, which changes from application to application (not all have a 'revert' option, even for versioned files). Then they didn't tell anyone.

For instance. I just cropped this file. How do I know the original still exists? <http://cl.ly/image/2L2X0x042W0N>

Here, I opened it in another application. Are there multiple versions? <http://cl.ly/image/3Y1m3C2r1r2f>

What about in the File menu? <http://cl.ly/image/0F2o2H2i3Z2f>

Finder? <http://cl.ly/image/1C0S3z3Z0q30> or <http://cl.ly/image/463p0O1I3q1C> or <http://cl.ly/image/1F191E3b3U1W> ?

(edit) Oh, cool - there's a "Versions" column. Maybe that has it: <http://cl.ly/image/2703273U3z2U>

This is _bad_.

<comment><USER9> Always assume that every change you make is saved automatically, much like cutting down a physical photo.

If you still want the original photo, and another cut down version, you would use a photo copier to Duplicate the original, then cut the copy.

<comment><USER7> "Always assume that every change you make is saved automatically" - You must have had a hard time dealing with computers until now :)

The real-world analogy makes sense, but it doesn't fit with how things _have_ behaved. This is likely an improvement overall, but it's creating a period of upheaval and damage to people's property where better notification of the changes would make it a non-issue.

To modify and drag out the analogy to absurdity: say you previously made cropped photos by photocopying with a white rectangle mask revealing only the portions you wanted duplicated. Now, suddenly, you find that photocopying with the mask in place _crops your original photo_ , without telling you. Nested a layer deep in the photocopier's menu is an option to undo the changes to your original.

I claim this is fine... if and only if the photocopier tells you of this before or immediately after, so you know to copy the whole thing first, and then cut, or use the 'revert' option. In a couple years that may be unnecessary, but not right now.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Or how about this one: you're editing an existing document and you wish to preserve the original by using "Save As" to create a duplicate when you finish editing, except at some point you hit "Command S" by accident or by reflex and you've now clobbered your original, without warning, and there's no previous version to restore.

That one's been around for 28 years, and was finally fixed in Lion and Mountain Lion.

The "Save As" command has always been dangerous and ridiculous in the way it's typically used for editing and then saving duplicates. Lion finally gives you better and more safer options, but if you're not willing to learn what those are and how it works, if you're hell bent on continuting to do it the old way, then you're not going to like it and you're going to continue to risk data loss like you have for the last 30 years.

I, for one, love the way it works. Yes, I had to sligtly change my workflow but it's change absolutely for the better.

<comment><USER11> I'm confused. All it does is make the "bad" behavior the default, but give you the option to revert it if the original file exists somewhere on disk? That's an improvement?

Versioning (and allowing reverts) is awesome, but changing a decades-old idiom to something that suddenly destroys data is...well, scary, to say the least.

Edit: Someone further down the thread suggested that the function be renamed to "Duplicate and Save". That would totally fix the problem - this is a new interaction mechanism, totally different from what we've all been training on for the _last thirty years_ , and it needs a new name. The feature itself is fine, but hijacking an existing operation's name for it is not cool. It violates the principle of least surprise.

<comment><USER12> I'm not sure there was a way to introduce auto-save while maintaining the "principle of least surprise". I'm astonished, myself. I figured that, thirty years from now, we'd still be losing changes to periodic crashes of unsaved documents rather than force any customer to alter a decades-old workflow.

The problem with "Duplicate and Save" is that it implies that saving is an action that you can take, rather than something which has already happened. As arrrg said, that's not true: in Lion apps, every document which has a name is always saved. There is no longer a state of "changed but not saved".

Change the label to "Duplicate and Save" and us old folks, trained for thirty years to be constantly seeking and pressing "Save" lest we lose everything, will be complaining that there's no way to "Save" without also "Duplicating". Which would not promote understanding, either.

Don't worry, if you and the OP miss the old world of unsaved documents you can always find some old-school applications that preserve the old behavior. Join us Emacs users in the land of hoary UX paradigms! ;)

<comment><USER11> Sure, you can have auto-save without surprising the user. Auto-save to something that isn't the file they opened, and the commit those changes when they invoke "save". The UI itself can show whatever the latest version it has (and offer nifty things like "compare with what's saved"), but the file itself isn't written until the user asks it to be.

I'm not sure what word processing software you've been using for the past decade, but periodic backups and automatic restoration is more or less the norm, now. Heck, even my code editor persists unsaved buffers between sessions.

I think the last time I lost unsaved work in a due to a program crash was probably last millennium. That's the root of my surprise here; there are proven solutions that don't break existing workflows. Why did Apple decide to break them now?

</comment></comment></comment></comment><comment><USER13> Oh man, that is seriously broken. I save-as in Preview all the time when cropping or color-adjusting photos, and this could've produced a very bad day if I had upgraded to Mountain Lion and kept doing that, unwittingly overwriting all my originals. (I haven't upgraded yet, partly to let things like this be come to light before I dive in.)

<comment><USER14> It doesn't overwrite all your originals because files are versioned in Mountain Lion. If you accidentally save changes to your original that you don't want, you can just revert to a previous version.

I used to do what you describe--open the original, make changes, then Save As. Until I accidentally hit Save instead of Save As. Goodbye original.

Now when I want to work off an original I make a copy of it first in the filesystem, then open the copy with the application (Photoshop usually). Since I never open the original with the app, I can't screw it up. I don't have Mountain Lion yet but the "Duplicate" functionality sounds like it will work for me.

<comment><USER15> In Mountain Lion, you don't need to accidentally save changes to original.. it automatically does when you hit Save As (which shows up when holding the Option key). And that is where this becomes bloody annoying. It means every time I do a Save As, I have to revert the "original" file to its "original version". That's idiotic.

</comment></comment></comment><comment><USER8> In Lion, Apple changed the File model completely (everything is saved automatically by default. you no longer have any "in-flight" changes that aren't saved), but they haven't properly educated the users, causing people to assume it's "broken".

With the new model, if you want to edit a copy of a file instead of the original file, you need to Duplicate _first_. I've been bit by this a few times as well, since it's hard to break 20 years of habit, but from an outside perspective I think the new model is less technical and could be more intuitive to new users (real life has no equivalent to "unsaved changes").

<comment><USER16> Indeed, real life has no equivalent to "unsaved changes". And it sucks.

Thats why a smart entrepeneur developed the eraser.

<comment><USER8> And why OS X Lion/ML has Versions and Time Machine

<comment><USER16> That is not an eraser, thats making a copy of your current work every minute, try something new, and if you don't like it, stop what you're doing and retrieve the old one from the filing cabinet.

So now every program needs an infinite, crash and restart resistant, fine grained revert option.

I applaud Apple for their braveness in changing such a core functionality, but I don't want to imagine the trouble this brings when accessing data on network shares (or even the lifespan of your SSD cells).

<comment><USER8> > So now every program needs an infinite, crash and restart resistant, fine > grained revert option.

Yeah, which is why Apple added that in Lion so anything using NSDocument get it for free <http://support.apple.com/kb/HT4753>

<comment><USER17> Interesting. So they didn't really take away "save as" snapshots, just the ability to name them and get to them through the filesystem.

</comment></comment></comment></comment></comment></comment><comment><USER18> Versions has been the single "feature" preventing me from upgrading to Lion, and it makes me sad that things haven't gotten any better in Mountain Lion.

I want to be in control of what I save, when I save it and IF I want to save it.

Versions would be a nice feature if they worked as a background safeguard and not as the main way of persisting changes. Many times I open files to try stuff out, and I DO NOT want anything saved. With images, I end up doing this much more often than actually making changes I want to keep.

I think this whole feature is a sure way of losing data. Have they fixed how versions work with non-HFS+ filesystems yet? The last time I checked, no versions were saved in this case, but the system kept persisting your changes immediately: you edit a photo, make some changes, decide you don't want them and... too late, no way to revert to your original version.

Like someone else already mentioned in another comment, I'm about this close of installing Windows 7 in both my Macs. This is no way for a proper OS to behave and this whole "this is the way of the future, just keep up with the program" blind fanboyism is making me sick.

</comment><comment><USER19> I honestly don't see why people are so upset. I think the way saving is implemented in MLion is fantastic. Instead of relying on old standards, the engineers are looking ahead of the time.

"Normal", non-tech people who aren't obsessed with technology, will find this feature amazing. Actually, let me correct myself - they won't notice this feature, and that's the key.

Save As was a hack, which worked for people who knew about it, but was a total clusterflack for normal users. Normal users rarely revert to old copies and if you really want a duplicate of a file, well, you can always have a "duplicate", which is an available feature.

Using the OSX in this way will be a more pleasant experience, going forward. I am not saying this because I love Apple's design, I am saying this because I've seen this countless times while helping my family with their computer issues.

<comment><USER20> > _"Instead of relying on old standards, the engineers are looking ahead"_

There's nothing wrong with new standards. This might in fact be an excellent way to do things.

The problem is giving new, completely different standards the same name as old standards. "Normal" non-tech people would be just fine with this feature if you named it something different like "save and duplicate" -- and tech people wouldn't be caught off guard by the system _misusing common tech terminology_ to mean something totally different.

</comment></comment><comment><USER21> I cannot believe how the Apple engineers implemented this feature, thinking this makes sense???

      switch (menuEvent) {
        case FILE_SAVE_AS:
           NSString *newFileName = prompt_for_saveas_name();
           [document writeToFile:originalFileName];
           [document writeToFile:newFileName];

?!?

<comment><USER8> Files are always saved automatically in Lion/Mountain Lion. It's more like this

-(void)dataChanged { [document writeToFile:fileName]; }

      switch (menuEvent) {
        case FILE_SAVE_AS:
           NSDocument newDocument = [initWithDocument:oldDocument]
           [newDocument writeToFile:newFileName];

It would be wrong for "Save As" to suddenly unsave your changes.

<comment><USER21> They are even listing the return of "Save as" on the "new features" page:

<http://www.apple.com/osx/whats-new/features.html>

Quoting:

      Keyboard shortcut for Save As
      Use Command-Shift-Option-S to save a document using a different name and location.

It does not say "Use Command-Shift-Option-S to save a document using a different name and location and also overwrite the existing document", even though that's exactly what it does!!!

Crazy!

Edit: You're right, I saved a file.txt from TextEdit, then cat'ed it from a Terminal, then edited it even without trying to save or duplicate or save as; in fact the TextEdit window still shows "File1.txt - edited", but cat shows the new contents.

They shouldn't have brought back "save as" at all if this is they way they are going to handle things, much less list it as a killer feature of 10.8.

<comment><USER8> Did you not read what I wrote? OS X no longer has a concept of "Unsaved changes". It's always saving your file. You write in a new sentence, it saves it (virtually) instantly. The original file was already overwritten when you selected "Save As".

The new "Save As" just makes the old "Duplicate" more handy. I agree it's a poor choice of name, they should have kept it named "Duplicate".

<comment><USER21> Yeah, after reading your post twice and confirming with cat in the terminal it sort-of makes sense.

They still shouldn't list "Save as..." as a new feature, because it sounds like they made it work like every other OS.

 __Also, the textedit window is extremely deceiving when it shows "file1.txt - edited" -- when in fact the file has already been committed to the filesystem!! __

<comment><USER8> Yeah I also don't get what the significance of "edited" is supposed to be, it just reinforces the image of the model not having changed.

<comment><USER22> It shows you that you changed the document since either opening it or creating a version. That is useful information.

<comment><USER21> On every other system I've used, such a message would imply the file has been edited since the last _save_.

<comment><USER22> I don't think you quite understand. There is _no_ last saved. Everything is always instantly saved.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> They should add a third (or fourth?) option: "Move changes since last opening to a duplicated file and revert this file"

It's long and would look ugly, so they'll never implement it. But they should.

(I'm not a pro git user, and don't use `stash`, but I think what I described is like `stash`ing changes, checking out into a new branch, `stash pop` and then `commit`ing...)

<comment><USER24> As Mountain Lion effectively commits all changes to the current branch automatically, the Git equivalent would be:

      git branch new-branch
      git reset -hard <startpoint>

which is effectively what people are having to do in Mountain Lion by hand. The difference is that Git users expect that and know how to do it, unlike your average new Mountain Lion user coming from OS X 10.6 or Windows.

</comment></comment><comment><USER25> I think we're all conflating "worst case" with "common case" of Save As and Duplicate.

In the worst case, the traditional filesystem behavior could lose your data if you accidentally hit "Save" instead of "Save As". In the common case, it let you save off new versions without affecting your existing version.

The (Mountain) Lion paradigm removes the worst case; you can always revert and recover. But the behavior of the common case gives the appearance of lost data, and violates both Principle Of Least Surprise and Do What I Mean.

<comment><USER26> POLS = ? DWIM = ?

<comment><USER27> Principle of Least Surprise (<http://en.wikipedia.org/wiki/Principle_of_least_surprise>)

Do What I Mean (<http://en.wikipedia.org/wiki/DWIM>)

</comment></comment></comment><comment><USER28> I am trying to resist the urge to call Mountain Lion "Mountain 'O crap"

If Microsoft did this they'd be eviscerated crucified.

iOS Developer and Mac user here (as well as Windows).

The madness must stop. I have a feeling Steve will be missed more and more as the years pass.

<comment><USER8> I did some googling and it seems like Windows 8 Metro apps might have similarly neutered file handling. Has anyone tried it out and can report?

<comment><USER29> My understanding is that Metro tends to sandbox an apps data in a way analogous to that of a mobile OS. I believe the intent is to prevent one Metro app from overwriting another apps data or corrupting the file system.

</comment></comment></comment><comment><USER30> Based on how everything else works it would be simple enough for the "Save As" to basically "Duplicate and Save." You press it, give it a file name and you how have two windows. Don't know why Apple didn't do it this way.

<comment><USER8> That _is_ how it works now. When he says "it silently saves the original file", he's missing the point that OS X is _always_ saving your files.

In Lion/ML, if you create a new file, Save it with a name, and afterwards add some text and then close the window, it doesn't prompt you to "save changes", since it's always saving changes. In a model like that, there's no reason for "Save As" to suddenly not save changes in the original window.

<comment><USER31> In ML you can set "Ask to keep changes when closing documents" in the system preferences.

Then OS X is not supposed to overwrite your file without your consent, but it does in this case.

<comment><USER14> Does it? The linked blog post makes no mention of the preference setting you describe, so the author was probably running without that setting (which is off by default). I'll have to try that when I upgrade to ML next week.

<comment><USER31> Yes, I tested it.

Before displaying the Save As dialog for naming your new file a write to the original takes place. They probably just do a copy and rename file operation afterwards.

Interesting fact: if you abort the Save As dialog and try to close the original they ask you to "Revert Changes".

</comment></comment></comment></comment></comment><comment><USER14> The big question here is data loss, which the article alleges but does not really prove. The author basically says "I don't understand versions, so I don't trust them."

Many folks have pointed out that since Mountain Lion auto-saves all file versions, there actually is not any data loss. Just revert the file.

However, my reading of the Apple support document [1] is that versions are discarded over time. It says:

> OS X Lion manages the version history of a document, keeping hourly versions > for a day, daily versions for a month, and weekly versions for all previous > months.

This would seem to indicate that if you downloaded a file from your camera, then made changes that were autosaved to the original file, the original version would be discarded after 24 hours had passed--the several "hourly" versions reduced to a single "daily" version.

If that is true, it is really problematic. If version control software is to be trusted, I think it should not discard versions.

[1] <http://support.apple.com/kb/HT4753>

</comment><comment><USER32> That's insane; it must be a bug. Perhaps they should just stick with the new document model. We'd have to relearn, but a clean break is better than this nonsense.

</comment><comment><USER33> _I dislike auto-versioning as I have no control over the process or even an understanding of the space used_

In this era of cheap terabyte-scale storage, concern about the space used for versions of a document is NOT something that should occupy your mind.

<comment><USER34> Because my Mac Book Air has terabytes of free space??

<comment><USER35> The files are chunked and only the pieces that have changed are stored across versions. In all but the most corner of corner cases, the extra storage used is negligible. (This same chunking also helps iCloud keep iCloud-stored files in sync across devices without using a lot of bandwidth or being out-of-sync for as long during the upload/download process.)

</comment></comment></comment><comment><USER36> Mountain Lion made me greatful for bootcamp. I've resolved to use my Mac Mini as a Win 7 machine from here on out.

</comment><comment><USER37> Is "duplicate, then save" common sense enough?

<comment><USER38> If we were starting without multiple years of experience using "Save As". The problem is a workflow that was expressly used by people to not mess up the original now messes up the original. This is so not good. If we were using OpenVMS (versioning of files is obvious), but it is really a bad design decision. Bringing auto saves to the Mac in the way they did is foolish.

<comment><USER8> Anyone coming from an iPad or iPhone has no experience of "Save As". These are the users Apple are now targeting. Like it or not.

<comment><USER38> Anyone coming from the iPad has no experience with the File menu, and Mac users have years of experience with it. Learning a new interface requires learning some new customs.

This is a huge issue with creation in iOS. It is not a form factor or input problem. It is this strange assumption the every action I do is correct and needs to be preserved. I cannot know that my rewrites will be good before I attempt them. Reverting on iOS is a huge pain if its even possible at all.

<comment><USER8> I wonder if/when Apple will bring Versions to iOS. It seems iCloud on OS X supports it at least.

</comment></comment></comment></comment></comment><comment><USER39> Looks like it's not just SaaS that is susceptible to major feature disruption.

</comment><comment><USER29> If Steve were here, he'd say "Just Save Your Files Differently."

</comment><comment><USER40> This really messes with the way I work with images. I'll open base prototypes and start playing with changes not knowing at that point if I'll want to save them or not. If I end up keeping them, at that point I'd save as a new file. Seems like auto-save should be app level preferences that should be able to be turned off. I don't want to duplicate a file every time I want to do some experimentation!

<comment><USER41> > I don't want to duplicate a file every time I want to do some > experimentation!

But you want to keep it "in memory" while you experiment with it. The new model is more natural: if you paint on a canvas, it's painted. If you want to experiment, use the magical canvas duplicator and work on that copy, then just throw it away if you don't want to keep it.

That said, they shouldn't have brought Save As back. Imposing a new model is already upsetting, making old functionality behave differently is terrible.

</comment></comment><comment><USER42> For the layman I understand this kind of functionality. But as a creative who is constantly saving multiple modified files for clients, this is awful. I'm assuming/hoping Adobe will not integrate this 'feature'.

Apple should have at least changed the semantics. The term 'Save as' is understood by the majority of users to be what it has been for the last couple of decades.

</comment><comment><USER43> It looks like others have found a work-around by leveraging the duplicate feature another other keyboard shortcuts but this it quite annoying.

[http://reviews.cnet.com/8301-13727_7-57481986-263/apple- retu...](http://reviews.cnet.com/8301-13727_7-57481986-263/apple-returns-save- as-to-mountain-lion/)

</comment><comment><USER44> The workflow I've always used:

       Open file > Save with new filename > Change new file > Save changes

10.7/10.8 just removes the last step. The only people having issues are those that confuse the middle two steps.

Or, in unix parlance, you cp then vi. Not the other way around.

<comment><USER13> In vi, though, what I usually do is open a file first, and then if I want to 'save as', I do ':w newfile'. I don't have to decide before I open the file if I want to duplicate it or not, and it would be very unexpected behavior for ':w newfile' to also modify the original file.

</comment></comment><comment> thomas-st defaults write -g ApplePersistence -bool no

Problem solved.

<comment><USER18> What exactly happens when you do this? Do we get the old (sane, pre-Lion) behavior back, or does it just disable versions leaving everything the same (which is worse)?

<comment> thomas-st You get the pre-Lion behavior back.

For TextEdit you additionally have to disable autosave so you don't get error messages:

defaults write -app textedit AutosavingDelay -int 0

</comment></comment></comment><comment><USER45> Isn't this what Time Machine (or git, or svn, or cvs) is for?

</comment><comment><USER46> "Save as" overwrites the original file as well like "Save" does? OMGWTF

</comment><comment><USER47> good

</comment><comment><USER15> Unfuckingbelievable - which einstein inside one infinite loop came up with this gem?

</comment><comment><USER48> welcome to osx the only thing osx has over other platforms is the ease to create good looking gui applications. i do miss it every now and then. but not really that often.</comment>


Ask HN: Where did all the ideas go? - <AUTHOR> I remember before learning programming, I had all these great ideas. Once I learned to program they gradually almost disappeared and new ones did not keep on coming in the way they did. Have you experienced the same? I look back at them on my Evernote and still love a lot of them.. <comment><USER2> I've had this experience over the last few months. The reason, at least in my case, is that I've started applying a lot more filters on the ideas, and have stopped considering any of them as 'weekend ideas' (specially if it's a possible business idea).

Most of my ideas fail on one of these two questions:

1) If the idea is 'revolutionary' (Eg: Go to Mars) --> Why has nobody been able to implement it till date? Can I do it? Am I willing to spend the months and years required for it?

2) If it's already an established market/in-use idea (Eg: Uber for X, Groupon/FB/Amazon clones) --> What will we do differently? If it involves some kind of services, can I guarantee and deliver them on time and am I willing to put myself under that stress?

So, for the last couple of months I've been focusing more on just reading and understanding things, coming up with ideas and rejecting them. Hopefully someday an idea will come that does pass these filters or something that I would be willing to stick with for more than a month...

</comment><comment><USER3> Well in relation to business ideas, the more you are exposed to different environments and people the more ideas you'll find. I probably have 3-4 or more ideas a day pop up, but the reality is most wouldn't make a profitable enough business. But I jot them all down and keep them.

Oddly, when I first start developing I had tons of ideas, then I got into the grind of working on some problems and I couldn't seem to think of an idea to save my life. What I realized later is I had gone from asking tons of questions and being super inquisitive to trying to look for ideas. Today, I find ideas because I talk to people all the time, online, in person etc and I like to ask questions and learn what issues they have. What this has done is I can come up with all types of ideas and at some point potential solutions. Then the key is just what might be worth doing.

</comment><comment><USER4> I have that spreadsheet as well, but most of those aren't probably life changing and I'm achieving 90% of that using other, simpler solutions.

(Example: I bought so many components to play with home automation, but 6 months later I haven't played with it again, because my apt is so tiny that it isn't really needed...)

</comment><comment><USER5> Yeah... I've had this happen as well.

When was the last memorable time you just went outside and gazed at nature?

I find ideas tend to come to me when I'm not around my computer and when I'm just wandering around or looking out at the lake day dreaming.

<comment><USER6> This ^! Very much so, this!

' I become a transparent eye-ball; ' -Thoreau ftw.

Thank God for beautiful sunsets.

</comment></comment><comment><USER7> Are you taking time to just sit and let things bubble up? If not, your mind is occupied primarily with tasks and todos and immediacies.

John Cleese of Monty Python fame has an excellent video on how to be creative. I can attest to how well his method works - and it is a practical, doable method.

[https://vimeo.com/89936101](https://vimeo.com/89936101)

</comment><comment><USER6> Personally, I have encountered this too. And I feel I might have found a way out, but first I want to share some of my thoughts.

Several Commentators have struck on some pillars of the issue. Whether it is lack of time spent thinking or lack of time spent encountering new ideas. I will suggest two more possibilities: 1\. If you are working now, then perhaps a large portion of your creativity has been spent on the problems you are currently facing. Having done this for an entire workday is it any wonder that when you finally have a free moment, you are tired? That all you hear in your head is mental static?

2\. Consider along a similar vein, creativity may be like a muscle. Certainly, I cannot think on hard problems for more than 8 hours straight. Suppose then, that with the transition into the pattern of work, you muscle has become tired. Naturally, it will produce little when un-rested. In my opinion, rest can come from breaking patterns, or from 'stretching' by encountering new ideas, trying to think of or solve puzzles in new ways.

I hit this wall very quickly after college. And I was frustrated for about a quarter, before I found ways to break the mold. What I found was Ted Talks, and news sources like Hacker News. Both these allowed my to be exposed to new ideas. But moreover, I got caught up in the excitement and the mentality of the communities therein. Instead of asking, 'could I ever do this?' I found my self asking, 'How could I not?'. This change in thinking is very powerful, in my opinion. It frames every one of your actions, and changes the tenor of your thoughts for the better.

The last thing I found that helped me, was starting a blog. I had been frustrated by the lack of career movement (shocker I know, and perhaps a bit naive at the time), and by the lack of fresh ideas and challenges. I found that by writing about my thoughts and about my projects, I achieved two things.

First, I found a new challenge, as I am not the best writer. Naturally, writing a blog on any kind of a consistent basis would necessarily exercise that part of me. And Second, I opened my thinking to items beyond just programming. I found issues and ideas flowing from things as simple as an ill- organized meeting.

I don't know if these ideas will help, but you should know you are not alone. Further, I encourage you to not give up, but more importantly, to be unafraid to look in novel places. To summarize a passage written by C.S. Lewis:

"The Man to loves the thought of flying may be discouraged by the loss of the first blush enjoyment when he joins the air force. But if he sets his teeth and continues to walk towards the goal of his original passion, he may yet find other interests along the road. Once he has mastered flying, though it's passion no longer burns as brightly, he may discover a love of gardening or of photography. So long as he is willing to surrender that first hot, bright passion for the quieter longer-burning kind. "

I do not recall the work, but it may have been The Abolition of Man... or perhaps the Great Divorce. If someone know better, I would welcome the correction.

In either case, It captures well the core of the issue. Lament not the loss of your first fruit, and look to the horizon for yet more harvest. Good luck sir/madam, We all wish you the best.

-Edit-

My goodness I am long winded. I formally apologize, but retain my hope that it serves well.

Also spelling and grammar fixes.</comment>


Henry Blodget is a Dope - <AUTHOR> http://www.tomstechblog.com/post/Henry-Blodget-is-a-Dope.aspx

<comment><USER2> I'd never heard about the skeleton crew and the engineers finding their way around the memory limits. Anyone care to expand on that?

</comment><comment><USER3> I think many of the points tomstechblog is making are wrong. In particular, insofar as I can remember, ms-dos was really the only choice that business was making. Yes, there was cp/m, qnx, Coherent, but ms-dos was where it was at.

If his point about ms-dos is in error, then much of the rest of the article is pretty much off the rails, no?

<comment><USER4> I woz there and the article is right. Desqview was GREAT, but wasn't much of a shell, it was a shell for the shells. OS/2 was on everyone's lips, and many people thought it was the next big thing. Windows 3.1 was just okay. Windows 3.11 turned the page with the workgroups stuff and that captured a lot of imagination, even if others were going the same way, it was just easier to grasp.

And people were ready to stop doing "Reveal Codes" in WordPerfect 5.1, so Word started driving a lot of Windows adoption.

And like the article alludes to, OS/2 ran like a slug, even after I upgraded to an astounding 4MB of RAM. In my case I was a bit of a diehard though and usually ran Windows 3.11 inside Desqview, with a double tap on the Alt key I could jump between running copies of Windows, as well as DOS and whatever else I can't remember, maybe OS/2 Warp as well.

Microsoft was most certainly NOT a monopoly. They beat OS/2 fair and square.

<comment><USER5> From: <http://www.investorwords.com/3112/monopoly.html>

Monopoly: A situation in which a single company owns all or nearly all of the market for a given type of product or service.

There is nothing implicit in the phrase "Monopoly" that suggests you didn't beat other people based on price, performance, features, customer service, etc...

Microsoft has had a monopoly on the OS and Office Productivity suites for quite a while, with the OS leading the Office Applications by a few years.

Of course, the pretty much ubiquitous presence of MacBooks around me, at coffee shops, and in the offices suggests that they may finally be starting to see some competition in the OS marketplace. And, if the kids these days are any indication, this trend has a pattern:

<http://itc.virginia.edu/students/inventory/compare/>

I think Blodgett's article was reasonable, and certainly wouldn't refer to him as a Dope.

<comment><USER4> At the time that this article was written, what you're saying was not true. I struggle to see how your response makes any sense in the context of my comment or the article. Word was not dominant, WordPerfect was, Windows was not dominant, which was the point of the article. MS-DOS was dominant, but there were lots of DOS alternatives.

And when you say "Finally see some competition" you're just demonstrating exactly what the article is talking about, discussion that sounds knowledgeable of the history, but isn't.

</comment></comment></comment></comment><comment><USER6> worth paying attention to: *"Windows took off because a small team had the freedom to go of on their own and do something great."</comment>


Substrate VM – A framework that allows AOT compilation of Java applications - <AUTHOR> https://github.com/graalvm/graal/tree/master/substratevm <comment><USER2> This is awesome! Substrate VM not being open source was a major reason I wasn't more excited about Truffle/Graal. Without Substrate VM, startup times for Truffle-based interpreters are terrible (see [http://nirvdrum.com/2017/02/15/truffleruby-on-the- substrate-...](http://nirvdrum.com/2017/02/15/truffleruby-on-the-substrate- vm.html)).

Now anyone outside of Oracle can write cool JIT compilers using Truffle, and have them start quickly! I think it can also be used to compile normal Java programs to native executables.

So great. I was worried that Oracle would keep Substrate VM as a proprietary secret sauce, but that would have really torpedoed the potential of Graal.

</comment><comment><USER3> > Substrate VM is a framework that allows ahead-of-time (AOT) compilation of > Java applications under closed-world assumption into executable images or > shared objects (ELF-64 or 64-bit Mach-O).

<comment><USER4> Is there a way to test it without creating an Oracle account? The documentation leads me to [http://www.oracle.com/technetwork/oracle- labs/program-langua...](http://www.oracle.com/technetwork/oracle-labs/program- languages/downloads/index.html), which requires an account to download the files.

</comment></comment><comment><USER5> I might be misreading this, but it seems like most of SVM is not under Classpath exception (most of the files are missing the magic words), which implies SubstrateVM binaries must be GPL 2. Is this intentional?

<comment><USER6> that's most likely intentional, I'm sure Oracle has a lot of lawyers to look over this kind of stuff ;-)

<comment><USER7> It seems you are right and that they are very aware of which parts of the project are GPL2+classpath and which are not...

[https://github.com/graalvm/graal/issues/269](https://github.com/graalvm/graal/issues/269)

</comment></comment></comment><comment><USER8> For those who has problem understanding relation between Graal and Substrate VM :

[http://www.oracle.com/technetwork/java/jvmls2015-wimmer-2637...](http://www.oracle.com/technetwork/java/jvmls2015-wimmer-2637907.pdf)

Page 4.

</comment><comment><USER6> This is huge, congrats to the team! I hope it helps Substrate VM to get better adoption outside of Oracle.

</comment><comment><USER9> Does Substrate VM have cross-platform support for major operating systems (i.e. for Linux, Windows, MacOS)? If so, can a binary compiled on MacOS run on Windows, and vice versa?

<comment><USER10> Yes, that is the long term goal.

Project Metropolis is about rewriting OpenJDK C++ parts in Java, so SubstrateVM needs to support all major OpenJDK targets.

<comment><USER11> Doesn't (compiled) java run slower than c++ though?

<comment><USER10> Not necessarily.

It depends on the application, how it is written, the compiler and optimizer being used.

</comment></comment></comment></comment><comment><USER12> What's the difference between substrate vm and jaotc?

[https://mjg123.github.io/2017/10/02/JVM- startup.html](https://mjg123.github.io/2017/10/02/JVM-startup.html)

Substrate VM is more mature? jaotc was response to closed Substrate VM?

<comment><USER6> `jaotc` integrates with the HotSpot VM, while Substrate VM provides its own runtime (GC etc.) and intentionally supports only a subset of the JVM features.

FWIW, both use Graal as a compiler.

</comment></comment><comment><USER13> I still remember the original submission, One VM to rule them All.

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

Gosh 4 years already.

Cant wait to see how TruffleRuby perform with SubstrateVM.

</comment><comment><USER14> Extremely happy to see this happen. I had played with a little Graal/Truffle language and tried using SVM when it was closed source, but ended up setting down the project (not really because of SVM, mind you). Maybe now I can restart it. :)

</comment><comment><USER15> So let me get this straight. With Truffle i can get whatever prog lang abd compile it with Graal and either use with Graal VM or Substrate VM.

And i get what ? an executable which includes only what the program needs / uses ?

<comment><USER16> I'm not entirely sure what you're asking, so I'll split it in two parts and hope one of them is applicable.

> With Truffle i can get whatever prog lang abd compile it with Graal and > either use with Graal VM or Substrate VM.

Truffle is basically a toolkit for building language runtimes. It provides a framework for creating AST interpreters. Generally AST interpreters are easy to work with and reason about, but slow. Truffle addresses the speed issue by using Graal's API to perform partial evaluation on the interpreter. So, you get very fast runtimes without having to build a custom VM. But, it also exposes some compiler details by way of an annotation-based DSL if you want to take advantage of it. This includes control for PIC sizes, loop exploding, and explicit branch profiling amongst others.

As a language toolkit, Truffle also gives you an instrumentation framework so you get things like a debugger and profiler for minimal effort. It provides a polyglot system so you can call into other Truffle languages. Since they all inherit from the same base Node class, the compiler can even inline nodes across language boundaries. Truffle takes advantage of that itself by shipping functionality, such as its own native function interface, as its own Truffle language.

> And i get what ? an executable which includes only what the program needs / > uses ?

The SVM can be used to compile any Java program. Truffle-based language implementations are just Java programs. Compiling with the SVM allows you to build a statically linked native binary that contains your language runtime. Generally that binary will have improved startup time, ease distribution issues, and so on. The SVM links in Graal, so you get all that without sacrificing peak performance.

<comment><USER15> Thanks for the thorough explanation. I am curious how hard / time consuming is to reimplement the existing languages in Truffle.

<comment><USER3> > I am curious how hard / time consuming is to reimplement the existing > languages in Truffle.

We focus on getting really high performance from our Truffle languages, so we often forget to emphasise this point: Truffle is the _easy_ way to create languages, as well as the high performance way. Truffle uses the AST pattern, which is how an undergraduate would implement an interpreter after one compilers course. And you can get 90% of the high performance from a simple interpreter, and then work on it a bit more to get the remaining 10% when you find you need it.

<comment><USER15> At this stage how usable is all of this (graal/truffle etc) in real production ?

<comment><USER3> Twitter are using Graal in production right now and say it's saving them real money. Truffle's a bit earlier in development still.

</comment></comment></comment></comment></comment></comment><comment><USER17> I haven't touched java in years, but have known this existed. How does it compare to some of the features added in recent versions of java that do similar stuff?

<comment><USER3> The AOT in the OpenJDK? It actually uses the same compiler, Graal, under the hood. But SubstrateVM is another level - it produces a single statically linked binary of your Java program - no JVM needed on your system or included in the binary. It's all written in Java - the GC and everything.

<comment><USER18> Thanks for the explanation. Is this for Java only, or can it be used with all other languages that produce JVM bytecode?

<comment><USER3> It works on JVM bytecode in classfiles and doesn't have an opinion on where it came from. Some JVM languages may be more likely to use features that aren't supported though, like reflection on classes you haven't annotated. I think we've used it on Kotlin and Scala at least.

<comment><USER18> This is very exciting. Are JavaFx applications supported?

<comment><USER3> I don't know how it's implemented, but JNI works I believe.

</comment></comment></comment></comment></comment></comment><comment><USER19> my biggest peeve is graal/substrate creating and using its own build tooling - for example mx (written in python) to do the build and compilation.

Graal itself uses mx.

I would wish they would use something far more popular and common like Bazel or even Gradle. TBH, mx predates all of these .... but its time to use modern tooling.

<comment><USER10> Bazel is popular for Google employees.

Gradle is an enduring suffering for all Android developers, except the ones blessed with 16GB Xeons and SSDs.

None of them sound modern to me.

Specially Gradle, given my experience on Android development.

<comment><USER19> >Bazel is popular for Google employees.

[https://github.com/bazelbuild/bazel/wiki/Bazel- Users](https://github.com/bazelbuild/bazel/wiki/Bazel-Users)

Asana, Databricks, Dropbox, Pinterest, Stripe and Uber ATG are not Google.

<comment><USER10> All of them irrelevant in the world of Java programming, hence why I wasn't even aware they were using Bazel.

<comment><USER19> There are 13 references to building java projects on that page.

I really don't want to get into a flamewar on this, but Bazel does have a lot of traction and is used in many wildly popular tools like Tensorflow. It would be nice to have that here as well.

</comment></comment></comment></comment></comment><comment><USER20> I wonder how the performance and size of apps compiled with Graal compares with traditional Java apps ?

<comment><USER21> Both app size and startup time should improve greatly with Graal (or with Java 9's jlink or jaotc), the idea is to generate an executable with only the part of the JRE and external libraries that the app really uses.

There was some discussion on HN about this VM before (about performance with TruffleRuby, an implementation of Ruby on the JVM): [https://news.ycombinator.com/item?id=13652541](https://news.ycombinator.com/item?id=13652541)

<comment><USER22> > only the part of the JRE and external libraries that the app really uses

Just curious, how the reflection and dynamic class loading things work when generating an executable?

<comment><USER16> The native image generator performs a closed-world static analysis over your application, the JDK, and any supplied libraries to determine what's actually in use. In cases of ambiguity, it must be conservative and include all candidate classes. Since the output is a native binary without the JVM (and subsequently, without a Java bytecode interpreter), there's no way to dynamically load classes. Reflection is handled by registering classes during the image generation process, I believe. Static MethodHandles neatly avoid any issues as well, if you can work with that.

</comment></comment></comment></comment><comment><USER23> FOSS community (or anyone else for that matter) shouldn't touch anything coming out of Oracle with a bargepole. Given the level of maliciousness, their Open Source work should be considered a minefield.

<comment><USER15> Yeah yeah lets abandon perfectly usable piece of technology because some john smith from the internet hates oracle.

<comment><USER24> > Yeah yeah lets abandon perfectly usable piece of technology because some > john smith from the internet hates oracle

It's doesn't need to be hate, anyone concerned about the well-being of this industry should be wary of being an enabler/complicit. Oracle is actively malicious: remember this is the company that was actively trying to make _API 's_ copyrightable[1]. How many APIs do you use in a day do you think such a ruling would have impacted? You wouldn't be able to have drop-in replacement libraries (or web-services). Hell, it would have made it illegal to fork an open source project unless you got the copyright to the API as well.

Given a viable choice between an Oracle project and a non-Oracle project, always go for the latter.

[1][https://www.computerworld.com/article/2857293/legal/oracle-a...](https://www.computerworld.com/article/2857293/legal/oracle- asks-supreme-court-to-reject-android-copyright-case.html)

edit: changed to past tense: I had forgotten the supreme court refused the case, but that just means the argument hasn't been tested in the courts.

<comment><USER25> >> Given a viable choice between an Oracle project and a non-Oracle project, always go for the latter.

Why? Consider VirtualBox, Java, and MySql. Did anyone get in trouble for using these?

<comment><USER26> Google infamously got in a ton of trouble for using Java since oracle wanted a slice of that pie.

There's a reason the MariaDB fork exists.

<comment><USER10> Rightly so, after they pulled a Microsoft into Java.

Now any Java developer writing libraries is forced to write Android specific versions thanks to how Google forked Java.

No 100% support for all JVM bytecodes, so no invokedynamic support. Cherry picked packages and classes from Java 6, 7 and 8.

It will only get worse with the current Java roadmap.

<comment><USER24> > Now any Java developer writing libraries is forced to write Android specific > versions thanks to _how Google forked Java_.

This is inaccurate. The Apache Project (Harmony) forked Java in the Sun days and Sun refused[1] to provide the compatibility tests (JCK) in order to prove that Harmony was Java. Google adopted the pre-forked Apache Harmony because Sun, in its brilliance, decided that J2ME and _only_ J2ME was to be allowed on mobile. Incidentally, Oracle supported Apache Harmony _before_ buying Sun, unsurprisingly Oracle changed their tune when they became custodians of Java and bribed/negotiated with IBM for IBM to recant its support for Harmony.

1\. [https://www.cnet.com/news/apache-grouses-about-java- compatib...](https://www.cnet.com/news/apache-grouses-about-java- compatibility-checker/)

<comment><USER10> Google the "Do no Evil" company, decided to scumm Sun as proven by Andy Rubin's emails instead of playing by the book like everyone else in the Java eco-system.

Now every Java developer that wants to target Android needs to write Android Java, instead of pure Java.

<comment><USER24> > Google the "Do no Evil" company, decided to scumm Sun...

A jury looked at the evidence, heard the arguments, and disagreed with you. The decision held on appeal.

An alternative interpretation of historical events: had Sun (and Oracle) provided Apache Harmony with the JCK from then, Harmony wouldn't have fallen behind.

<comment><USER10> Winning court cases doesn't necessarily mean justice was actually made.

It is all about who has the best lawyers that are able to influence the jury to achieve the goals of their clients.

The amount of US mistrials is a good example of it.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Apple Loses The iPad Mini Trademark - <AUTHOR> http://www.forbes.com/sites/timworstall/2013/03/31/apple-loses-the-ipad-mini-trademark/ <comment><USER2> Surely this doesn't mean anything? If they are declaring "mini" purely descriptive, nobody else can call their product an "iPad mini", because then they would be calling it an iPad, and merely describing it as small.

</comment><comment><AUTHOR> It certainly puts a limit on what is acceptable trademark in US. In current times, when patent trolls try to block innovation by patenting the obvious, this is a good sign.</comment>


Programmers' Dvorak Keyboard - <AUTHOR> http://www.kaufmann.no/roland/dvorak/

<comment><USER2> I've been using a modification of this one for a few years.

\- I placed the braces, brackets and parens under the same fingers in either hand.

\- I placed 9 at the left of 7, for consistence.

\- I switched shift position of colon and semicolon (I used to write a lot of Python in vim at the time).

\- Some other minor changes.

This is how it looks like:

Unshifted:

      ${[(*+!=)]}%#
      :,.pyfgcrl/´
      aoeuidhtns-\
      ~'qjkxbmwvz

Shifted:

      `97531&02468¨
      ;<>PYFGCRL?@
      AOEUIDHTNS_|
      ^"QJKXBWVZ

</comment><comment><USER3> This caught my eye:

 _Kinesis keyboards unfortunately rocades [sic] the entire upper row one key. This may not matter much if the layout is numbers in ANSI order, but it causes the wrong finger assignment in the Programmer Dvorak layout._

This is either dated or simply inaccurate, because it ignores the fact that on a Kinesis Advantage Pro (like mine) you can remap any key to any other key at the keyboard level.

Of course, I haven't tested this with such a wacky Dvorak layout, or with any Dvorak for that matter. I'm a believer in good ergo keyboards, but I'm not a believer in Dvorak.

<comment><AUTHOR> > I'm not a believer in Dvorak

Is it just a belief or do you have some reasons?

<comment><USER3> I'm just unconvinced. Dvorak might speed up my typing a bit, but I doubt that raw typing speed is a bottleneck for my work, and I doubt that the time saved will justify the sheer amount of time and trouble required to learn and practice the Dvorak layout. Meanwhile, I'm suspicious of the claims of a big ergonomic advantage. I'm not saying that the people who claim to feel better when using Dvorak are wrong -- but I'm not convinced that their results are generally applicable, nor that they necessarily rise above the level of the placebo effect.

I suspect that any time I would spend learning Dvorak would be better spent in figuring out how to get through life by doing less typing in the first place.

In theory, I could argue against the Kinesis in the same terms, but the investment required to come up to speed on the Kinesis is smaller (just a couple of days in my case). And many of its ergonomic advantages -- hands further apart, wrists at better angles, better use of the thumbs, less stretch for the pinkies because their keys are physically closer to them -- are unachievable with any other keyboard, no matter which keymap you use. I would certainly recommend trying a Kinesis _before_ learning Dvorak -- if you're dead set on becoming the smoothest keyboarder in the world, there's no reason not to use both.

<comment><AUTHOR> Fair enough.

</comment></comment></comment></comment><comment><USER4> I use a modified Dvorak optimized for programming, with the most important modifications being the placement of l/L, s/S, and ;/: (the last is particularly important for any programming language that uses lots of semicolons or colons, which is most of them). It's optimized more for minimizing typing load than for maximizing speed, though it is must faster that Qwerty because of the Dvorak base.

Here's the core of my layout:

        q,.pylscrg/
        uoeaidhtnf\
        jx;k'bmwvz

Dvorak typists will find it mostly familiar.

It took a while to learn, but I was planning to learn Dvorak anyway so the marginal cost was small. Modifying my keyboard was easy: I use a programmable Kinesis as my primary keyboard, and used Ukulele ([http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&...](http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele)) to modify my MacBook's default keyboard.

Changing to this layout significantly improved some of my more serious RSI symptoms; in particular, my ulnar nerve problems practically disappeared once I got serious about minimizing pinky keys.

</comment><comment><USER5> A very clever setup, but is it necessary? Programmers, on the whole, don't need to type very fast because they're thinking and _coding_ while typing. Writing code is not like writing an e-mail or a blog post where the brain can work much faster than the fingers.

This keyboard optimizes perhaps the widest part of the pipe - which is awfully fun to watch, but lacking in real productivity increases, I believe.

<comment><AUTHOR> [http://steve-yegge.blogspot.com/2008/09/programmings- dirties...](http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest- little-secret.html)

<comment><USER5> I agree with Steve's point, but he's mostly talking about typing fast to participate in online communities, write more e-mails, etc. That sort of stuff doesn't require a "programmer's" Dvorak keyboard - so my point still stands. The act of _programming_ doesn't require extremely fast input - especially as a lot of people use macros and shortcuts now anyway.

Using Dvorak to be a better participant in online forums, etc, is awesome, but you can use a regular Dvorak keyboard for that.

<comment><AUTHOR> If you are going to learn Dvorak and you are a programmer, you might as well learn "Programmer's Dvorak" and be able to type your programs faster in addition to being a better participant in online forums etc, don't you think?

<comment><USER5> Maybe, but I guess like authors who say you only get the best results when writing slowly with a pen, I feel that speed should never be of the essence when typing code.

That said, I'm not a Java programmer, so I'm somewhat biased in my appreciation of brevity ;-)

<comment><AUTHOR> Okay :) Just for the record, I am not a Java or any other verbose language programmer either.

</comment></comment></comment></comment></comment></comment><comment><USER6> I've been using Colemak for a bit over a month now. <http://colemak.com/>

It's based on some research not available when Dvorak was designed, but with similar goals plus ease of switching from and compatibility with Qwerty (ex: most punctuation and bottom row are unchanged). It took under two weeks to get to about 25wpm, which was about where it stopped feeling painfully slow for me.

<comment><USER7> I picked colemak for this reason. (Which is made ironic because I use emacs and so it doesn't really matter because the keybinds are different anyway.) Its worth checking it out. Hard to tell if a new layout is any better or worse.</comment></comment>


37Signals: Voting With Your Wallet - <AUTHOR> http://www.37signals.com/svn/posts/1208-ask-37signals-voting-with-your-wallet

<comment><USER2> I think lots of internal software at big companies would benefit tremendously if you gave employees the opportunity to "vote with their wallets," or, for that matter, with their feet.

If big companies were sane, they'd use a little free-market competition with internal software projects and have 2 or 3 competitors for each piece of internal software. Projects would be paid in proportion to the number of users who actually used the software.

To prevent collusion and ensure true competition, just mandate that each team use a different programming language. The "language wars" phenomenon will ensure that the teams are rivals.

This also means, to ensure interoperability and internal control, that big companies would have to create internal infrastructure and well defined standards.

<comment><USER3> _If big companies were sane, they'd use a little free-market competition with internal software projects and have 2 or 3 competitors for each piece of internal software. Projects would be paid in proportion to the number of users who actually used the software._

This is exactly how the financial world works. It's expensive, but they've got loads of cash to experiment. I think with any field that has reasonably large systems it would be hard to devote enough time to know for sure you made the right decision. Some good financial systems can take two years to get halfway done and requirements change as the project grows and the markets change.

<comment><USER2> Department of Defense has also done experiments like this.</comment></comment></comment>


Ask HN: Would you pay for someone to answer your StackOverflow question? - <AUTHOR> EDIT: Just to be clear. It would not be happening on StackOverflow but on a different external site.
If so how much?
Would you consider paying more if she/he would personally help you fix it by modifying your code?
Do you think this kind of service is needed?
Update:
There are many unanswered questions on StackOverflow. I wonder if money was involved maybe a large part of them would have been answered. The question is, if these questions were important to their askers, and why people haven't answered them.
I agree that adding real money into StackOverflow may ruin the whole eco-system, though I wonder if maybe there's a place for it somewhere else. <comment><USER2> > "Would you consider paying more if he would personally help you fix it by > modifying your code?"

He _or_ she, really. Personally, I find the "please fix my code [paste large amount of code here]" questions on StackOverflow to be of little value to the community as a whole. I don't mind answering them, but if I look at my own profile (which is a fairly high ~17k rep) my answers that have been most well received/up-voted are almost universally problems that have been abstracted away from "fix teh code" type questions.

In a way, bounties are already a kind of payment, if you consider reputation to be a currency of sorts (and I would).

<comment><AUTHOR> Fixed. :)

Bounties provide a bigger incentive, however it doesn't always work. Do you think that if instead of 50 points of bounty it was replaced with $50, more people would be getting answers for these questions?

</comment></comment><comment><USER3> I think it's a question as to whether someone who has a degree of expertise has any reason to be motivated by money when the payments are so small. In a weird way I think software engineers would be doing the internet a service by accepting small amounts instead of doing stackoverflow exclusively.This way the trend can nudge back toward people getting paid for information - even if it's just little amounts. On the flip side I wouldn't mind paying small amounts for my questions that would otherwise be answered on stack overflow. But it would be very small. $1 here, $10 there.

</comment><comment><USER4> StackOverflow is one of the most helpful community I have come across the Internet and I am an active user. I ask questions at times and try to answer whatever I can. Most of my doubts are answered on SO because someone might have already hit that bump before.

When I answer questions on SO, I never think about earning via my answer because it doesn't make sense. Most people answer on the website for the simple reason of helping someone out. If I don't answer thinking that I won't get anything out of it, then someone else will answer for sure.

I feel that monetizing a part of SO will take away a lot of fun for people like me.

</comment><comment><USER5> I think it would depend on how fast/important the question was to me. But I might pay up to $20 depending on what it is.

</comment><comment><USER6> Isn't it already the kind of thing bountify is doing [https://bountify.co/](https://bountify.co/)?

I have been really happy with the service so far, even though people tend to really put low tips compared to the amount of work required

</comment><comment><USER7> StackOverflow does such a good job now I don't think you could compete. S.O. won't do your homework for you so that's unserved market. If your service was called "Help Me Cheat On My Homework" it might work. ;-)

</comment><comment><USER8> Well, I have seen few times in user's profile that write "If you think I was helpful feel free to send something from my Amazon's wishlist."

</comment><comment><USER9> I think if SO suddenly became a pay-for-an-answer website it would quickly die and be replaced with something else that's still free.

<comment><USER10> Experts-Exchange is still alive.

<comment><AUTHOR> In Experts-Exchange you pay for membership, not pay-per-answer. Actually their business model is quite awkward imo. If you answer enough questions, you don't need to pay which is a weird incentive for supporters imo.

<comment><USER11> The Experts-Exchange UI, last time I saw it, is a catastrophe.

</comment></comment></comment></comment><comment><USER12> How would you react if I tell you I'll only answer if you pay me? (Especially if I know you've paid in the past)

<comment><AUTHOR> Depends on how bad I need your solution.

Another question, would you answer a question for money which otherwise you wouldn't have been answering?

<comment><USER12> You probably won't motivate me with small amounts. As they say, "I don't get out of bed for less than $10000". :) However if you offer to donate to charity, I'll probably be inclined to help you.

<comment><AUTHOR> Hmm that's very interesting.

What kind of charity organizations you had in mind? OSI or others which are not related to coding?

<comment><USER13> If you're going that route, you should allow the contributor to pick from a selection of charities.

</comment></comment></comment></comment></comment><comment><USER14> I think a new Stackoverflow-like site with money involved would be near impossible to take off.

</comment><comment><USER15> As a pro programmer - if I have a problem that I didn't manage to find/google a solution, then it's probably something crazy tough and that only a person in my specific niche can help with. It would probably be too expensive for a service to find such a person & to pay him or her for a reply.

On the other hand, I can imagine novices finding use with this site.

<comment><AUTHOR> And if it was costing a few tens of dollars, would it be reasonable?</comment></comment>


Touring the Mediocrity Factory - <AUTHOR> http://blogs.law.harvard.edu/philg/2015/11/30/touring-the-mediocrity-factory-meeting-with-principal-of-rich-suburban-public-school/ <comment><USER2> John Holt wrote "How Children Fail" in 1964. John Gatto wrote "Dumbing Us Down: The Hidden Curriculum of Compulsory Schooling" in 1992. The more things change, the more things stay the same.

> The proper place and best place for children to learn whatever they need or > want to know is the place where until very recently almost all children > learned it - in the world itself, in the mainstream of adult life.

\- [http://www.johnholtgws.com/how-children-fail-by-john- holt/](http://www.johnholtgws.com/how-children-fail-by-john-holt/)</comment>


Ungoogled Android "/E/ OS" Port to Pinebook and Pinephone (Developer Blog) - <AUTHOR> https://firstname.lastname@example.com/e-os-ports-for-the-pinebook-and-pinephone-596139c76479 <comment><USER2> I hope they will port "/E/ OS" to all the Android One phones as well</comment>


Ask HN: Front-end to Back-end or vice versa? - <AUTHOR>

When you're building a personal project do you start with the front end design and build the back end around it or do you build the back end and conform the design to fit? <comment><USER2> I usually start a web project by doing fairly complete mockups using Balsamiq. From this I can work out what the DB data model should be. Then I build screen by screen.

</comment><comment><USER3> For a straight-forward Django hack: One view at a time, starting with models and finishing with the UI. Core views first. Iterate until complete.

</comment><comment><USER4> I first design a scrap concept, then I build all the back-end and finally I design de full appearance

</comment><comment><USER5> The front end tends to be a command line. Maybe with a config file in plain text if I'm feeling generous. Not much design in it.

</comment><comment><USER6> usually back end first but it is an iterative process of course b/w front and back end.</comment>


Ask HN: For a simple forum, should I use bbPress or is there a HN/reddit style one? - <AUTHOR>

I'm thinking of starting a discussion forum over at my Gifty.co.nz website. I've never liked heavy and ugly phpBB-style forums. I'm really keen on simple and minimalist, so I like bbPress. And PunBB looks okay.
But something with the simplicity and threadedness of Hacker News or reddit would really be great.
Does anyone have any ideas or experience? <comment><USER2> Well, if you want something with the features of HN or reddit, why not use the source code of HN or reddit?

They're both open source and you could alter it so that submissions couldn't be links if you so chose.

<http://arclanguage.org/> <http://code.reddit.com/>

<comment><AUTHOR> HN is simple, but it's written in Arc/Lisp, which I don't know, so customization and maintenance would be difficult.

reddit is a possibility, because I know Python, but I felt it was quite large- scale. Maybe I should look at the code properly, though. Thanks!

</comment></comment><comment><USER3> I'm a pretty big fan of Vanilla (<http://getvanilla.com/>). It doesn't natively support threading, but I think there may be a plugin for that. It's out of the box install is very clean, very simple, and very useful.

Rolling something from the HN or Reddit codebase sounds like a pretty interesting project, though.

<comment><USER4> Vanilla integrates with other AUTH systems fairly easily.

</comment></comment><comment><USER5> I can't remember where I heard good things about this one, but I believe I did at some point:

<http://getvanilla.com/>

You might also look into whether <http://intensedebate.com/> would work for your purposes...it does have threading and voting.

Finally if you or your developer(s) know Python/Django, you could check out the following two Django plugins:

<http://code.google.com/p/django-threadedcomments/> <http://code.google.com/p/django-voting/>

You could pretty easily put together a threaded, votable discussion thread based on these. (In fact, you can find a whole lot of other social networking features in Pinax, which I'd describe as a social networking framework for Django: <http://code.google.com/p/django-hotclub/>)

Hope some of these suggestions are helpful.

</comment><comment><USER6> You could also use <http://www.slinkset.com> for a hosted solution that you could still point your own domain at (assuming you have control over your CNAME records)

<comment><USER7> If you choose to try out slinkset feel free to contact me (email in profile) and I can help you with any questions you may have.

</comment></comment><comment><USER8> If you just mean hierarchies of threads then I know Drupal forums do this. But if you are looking for the voting and vote ordering then I'm not sure. I suspect you'd find some module in Drupal though.

</comment><comment><USER9> Try pgBoard. I don't think it has anything to do with Paul Graham (the pg stands for pretty good). Some examples:

board.vivalavinyl.org board.crewcial.org

Here's the source <http://code.google.com/p/pgboard/>

It's actually a lot like HN.

</comment><comment><USER10> both reddit and HN are open source <http://code.reddit.com/> <http://arclanguage.org/install> (news.arc is included in the arc source).

</comment><comment><USER11> Offtopic: How can I ask question here?

<comment><USER12> Click on "submit", then type in an "Ask HN" type title and type your question in the body.

If it's an interesting question, it will get voted up, probably.

</comment></comment><comment><USER13> <http://www.kubelabs.com/phpdug/> if you like digg style forum.

</comment><comment><USER14> i'd stay far away from bbpress. reddit would work or you have drupal forums as dejb pointed out.

<comment><AUTHOR> Why would you stay far away from bbPress? I really like how simple it looks&feels, and how one just needs PHP+MySQL to get it going. (I'll look into the Drupal forums.)

</comment></comment><comment><USER15> Pligg.com maybe?</comment>


Ask HN: How to begin contributing to open source? - <AUTHOR> I've been coding for 5 years already and I was always interested in open source projects.
I'm always exploring new projects on Github and looking at code from one place or another, but I feel like I do not have the skills to go to the issues, pick one, and begin to help the project in question.
I'm not asking how to make pull requests or anything. Just for advice for someone that wants to introduce himself to the open source world.
So, any tip for picking a first project, without any preferences besides (maybe) the language?
Note: The languages I more or less know are Python, C/C++, Javascript and Go. <comment><USER2> Pick any a project that interest you and whose language and domain matches your skillset. Find its mailing list or IRC channel or whatever community it has. Ask for help selecting a first ticket from the issue tracker.

Most communities are thrilled to get new contributors and willing to put in the effort to get you pointed in the right direction the first time around. If they aren't, move on to another project. In fact, skimming the recent mailing list archives can be a good way to get a pulse on the culture of a project and how welcoming it's community is.

<comment><USER3> Asking the community is the important part.

I went into a community asking where to get started working on a feature I wanted, and I got a lot more pushback than I expected. Basically, it was obvious that I didn't know the codebase very well and was expecting someone to walk me through it. Starting with a small ticket is a good way to get introduced to a limited portion of the codebase, which will help you ask better questions when you inevitably want to add a feature.

I went into another community with a patch for my use case, and it was rejected because it didn't fit with the overall goals of the project. If I had made more of an effort to engage over the mailing list, I could have saved myself a lot of work and perhaps ended up with a better solution.

So yes, absolutely get involved in the mailing lists after doing some basic legwork yourself (get your dev environment set up, read some recent mailing list entries to get a feel for the most active people, etc).

<comment><USER4> I like documenting how the devenv is setup and making a pull request against the readme as an introduction.

Finding the right project from a personality aspect is really key. Not everyone is going to click and that is ok. Finding a project will make working on the codebase and interacting with folks invigorating, the wrong project makes it feel like a job.

</comment></comment></comment><comment><USER5> What about documentation? Often times its easier to improve the docs than to improve the code. And let's face it - most open source projects have awful documentation!

If you don't want to interact with open source project maintainers, you could try writing example programs, tutorials, or guides for products you like - that's another form of contribution.

<comment><USER3> That's exactly what I did in a recent project. Basically, I found a cool library, but the docs were pretty spotty, so I fleshed it out a bit as I became more familiar with the code. I ended up doing some minor refactoring to make the library more consistent (e.g. naming, this was just before a major release).

After that, I ended up finding a bug, and since I was already familiar with the code from fixing minor documentation stuff, I was able to submit a patch without asking anyone.

</comment></comment><comment><USER6> There's a lot of fun projects you can contribute to in the Linux Desktop space. I own the code in the GitHub orgs altdesktop <[https://github.com/altdesktop>](https://github.com/altdesktop>) and dbusjs <[https://github.com/dbusjs>](https://github.com/dbusjs>) and I'm very responsive on issues and pull requests. Another great community is sway <[https://github.com/swaywm/sway/>](https://github.com/swaywm/sway/>) and i3 <[https://github.com/i3/i3>](https://github.com/i3/i3>).

</comment><comment><USER7> Pick a project with an "easy" or "first bug" tag on their issues. If you get stuck, just ask for help. The nice thing about the tag is that it's a demonstration of interest in helping people get started.

</comment><comment><USER8> One idea would be to pick a project that you actually use. This means you'll already have an understanding of what the project is about, and you can directly benefit from whatever work you end up doing, which is a nice added incentive. Even big projects will likely have lots of small fixup/documentation issues which no one has gotten around to, but will add value, so don't feel too put off by the size of a project.

</comment><comment><USER9> I found [https://www.codetriage.com/](https://www.codetriage.com/) helpful when searching for projects.

</comment><comment><USER10> You should find something that your interested in. My first project was Mixxx because I was interested in DJing. This doesn't have to be hobby related, it can be something that satisfies an intellectual curiosity.

Contributing to OSS is a bit like working out, when you get into a routine its easy but starting is very difficult. The trick is to just start.

</comment><comment><USER11> That's a tough one... Find something you're passionate about - something you'd truly like to build yourself.

If there's already something on github, join that - you can even do a fork first, and play around.

Otherwise, just build a new project on github, commit to it, and let people know here/reddit - and see if they'll join

</comment><comment><USER12> I've seen this talk live couple months back, it can be very interesting if you don't know where to start :)

[https://www.youtube.com/watch?v=R82-4eC94xE](https://www.youtube.com/watch?v=R82-4eC94xE)

</comment><comment><USER13> List all the open source dependencies you use at work or at home. Start by checking out the one that turns up the most often and work your way down from there.</comment>


Brent Hoberman and lastminute.com - <AUTHOR> http://bbc.co.uk/news/business-13562046

<comment><USER2> 10+ years on, and we still rarely look past lastminute.com to console ourselves that in the UK we occasionally do this internet stuff too.</comment>


Mozilla's Fira Type Family - <AUTHOR> https://github.com/mozilla/Fira <comment><USER2> Heh, and their samples even use "The quick brown Firefox jumps over the lazy dog". :)</comment>


Ask HN: What is the most compelling reasons to use Linux for development - <AUTHOR>

I am using Linux for all my development work (C/C++/Python/Ruby). My friend, on the other hand, is using IDE (RubyMine) for Rails development in Windows. He was asking me "What's the advantage of using Linux for development work? I can work just fine with an IDE in Windows". I only could come up with superficial points like "command line is more flexible", "Linux has lots of tools to help development", etc.<p>What do you think is the most compelling reasons to use Linux for development vs Windows? <comment><USER2> It's really down to personal preference and what you're developing. If you're developing web software that will run on Linux then developing on the same platform will save a lot of headaches down the line.

Another advantage is that is doesn't take long to find and install development tools. You can go from a clean install to a comfortable dev environment very quickly.

It's also easy to automate. There are lots of little tools that can be strung together to perform boring tasks. I found that it changed my way of thinking, and I often look for command line tools or script if I have to repeat a task for than a few times.

</comment><comment><USER3> I find most opensource projects assume a Unixy platform if not Linux specifically. For instance a quick look at the Rubinius website shows install instructions for Mac and Linux, none for windows. RubyEE on windows? nope. MRI windows support is provided by a third party, that builds it with unix tools on windows. That isn't to say it is a bad thing, just it is a fish out of water. I find gems with native extensions are often less likely to work on windows, but it has been a few years since I fooled around with ruby. Salmon have been known to swim up stream, doesn't mean swimming with the current isn't easier.

</comment><comment><USER4> I personally think the single most compelling reason to develop on Linux is package management. That way, you can with just a few typed commands install multiple versions of many, many different compilers and interpreters. Keeping updated is mostly automatic (or not if you want). Windows requires visiting each website, finding the latest version, downloading, installing, and then updating later-all manual.</comment>


Why I Don't Like Math - <AUTHOR> http://funcall.blogspot.com/2009/07/why-i-dont-like-math.html

<comment><USER2> I didn't realize I liked math until I worked with computers and programming. That's when I suddenly began to understand the concepts of math and its beauty. The language of computers expresses mathematical ideas much better than traditional mathematical symbols, for my particular brain.

Whenever I see a difficult math equation or proof, I look for its expression in a computer language. Maybe this is poor form (I should be trying to understand the language of math) but I save myself a lot of frustration.

<comment><USER3> A lot of mathematicians (Paul Halmos is one example) say that one way to make sure you understand your math is to see if you can re-express it in a different notation. So any time you try to rewrite a math problem to fit the notation you know best, you are aiding your understanding.

<comment><USER4> That's one thing that I love about working through project euler - formal/classic math meets code. I've probably bought 6 or 7 books on particular aspects of math just so that I could properly understand/solve some of the problems too.

</comment></comment></comment><comment><USER5> So basically because you don't understand it.

<comment><USER6> I think his point is more subtle than that. Informal paper math doesn't always neatly line up with formal, computer-processed math---such as numerical processing or theorem proving. This disconnect can be extremely frustrating: I _want_ to believe paper proofs, but simply writing down the theorem statement in a rigorous way can require significant changes. It's the frustration of understanding something on the surface but then realizing that in fact it makes no sense.</comment></comment>


Kiss – A "Less Is More" Linux Distribution - <AUTHOR> https://getkiss.org/ <comment><USER2> Hello,

I'm the creator of KISS and I'm happy to answer any questions anyone may have.

For the code itself:

\- [https://github.com/kisslinux](https://github.com/kisslinux)

KISS on repology.org:

\- [https://repology.org/repository/kiss_main](https://repology.org/repository/kiss_main) \- [https://repology.org/repository/kiss_community](https://repology.org/repository/kiss_community)</comment>


How do I report a security vulnerability about a trusted certificate authority? - <AUTHOR> http://security.stackexchange.com/questions/91292/how-do-i-report-a-security-vulnerability-about-a-trusted-certificate-authority

<comment><USER2> [http://googleonlinesecurity.blogspot.in/2013/10/going- beyond...](http://googleonlinesecurity.blogspot.in/2013/10/going-beyond- vulnerability-rewards.html)</comment>


Should I Apply? - <AUTHOR> > B.S. in Computer Science, Engineering or possess equivalent work experience 10+ years relevant work experience
I see these everywhere.
If I don't a degree and been coding only for 5 years, should I apply? <comment><USER2> What's the cost of applying? Usually nothing besides the time it takes.

What's the benefit of applying? Potentially getting the job.

What's the benefit of not applying? Not spending the time on applying.

What's the cost of not applying? Definitely not getting the job.

</comment><comment><USER3> Yes! Chances may be slim but why not?

You'll learn something from every interview. Even if you don't get the job.

<comment><AUTHOR> I assume ppl write these descriptions with at least some point. I often hear employers complain about tons of unqualified candidates, same as recruiters send me tons of mismatching listings. So I'm thinking maybe if we both consider job description meaningful, we could somewhat avoid this</comment></comment>