ZNGA down 7.5% from price of IPO - <AUTHOR> http://www.google.com/finance?client=ob&q=NASDAQ:ZNGA Can't wait till this POS drops to 2-3$.  This is ripe for a short when the market enters a short to medium term downtrend. <comment><AUTHOR> Can't wait till this POS trades in the two to three dollar range, which, given its lack of earnings it should be. This stock will be ripe for a short entry when the market enters a short to medium term downtrend.

I'm sure talent will start fleeing once they cash out options and stock.</comment>


Feedback Requested on a New Concert Aggregate Site - <AUTHOR> http://saltroads.com/ <comment><USER2> Really nice layout, I felt really comfortable just scrolling through looking at the artists, even though I have no interest in concerts at all. Can you not search for anything though?

<comment><AUTHOR> We are building out a search feature. It will be built out from the "Calendar" section. Thank you for taking the time to leave feedback.</comment></comment>


Password bypass flaw in Western Digital My Cloud drives puts data at risk - <AUTHOR> https://techcrunch.com/2018/09/19/password-bypass-flaw-western-digital-my-cloud-drives/ <comment> java-man how is this not intentional?</comment>


GUIs Considered Harmful (1992) - <AUTHOR> http://porkmail.org/era/unix/guis.txt <comment><USER2> Discoverability. CLIs are notoriously bad at discoverability. GUIs, on the other hand, are much better about showing a user what options / commands are available.

If you look around, GUIs and CLIs are both around because they are each good at specific kinds of tasks. We use CLIs to remote into servers because it doesn't require much bandwidth and it works with high latency, etc.

The right tool for the right job. I don't understand this mentality that people have that one tool is superior to another in all cases (e.g., linux is always better than Windows, open source is always better than proprietary, etc).

<comment><USER3> _> GUIs, on the other hand, are much better about showing a user what options / commands are available._

In general this is only the case if the user is browsing and not looking for anything in particular. That is, when the user is trying to learn about the program in general.

If you're trying to find anything in particular, that thing might be hidden in an options window in a submenu of a submenu somewhere. The only effective way to find it is to google for the functionality and to hope that someone else has already asked the same question. This is my experience with Inkscape.

A well written, flat manpage can have much better discoverability than a GUI with poor or hard to search documentation. Bad manpages are of course considered harmful.

<comment><USER4> Yes this is a big plus for CLI. I don't know how many times "something --help | grep keyword" has immediately solved a problem while for GUI apps you always need a google search. I mean it's not really that bad, you always have the browser open anyways and 99% of times someone had the same problem before, but still, it just feels cumbersome.

<comment><USER5> In most GUI apps on the Mac you can do this kind of thing through Help > Search..., though.

Not sure about other platforms, but I sure use that feature a lot in e.g. intellij.

<comment><USER6> I was going to mention PyCharm. The Jetbrains editors (intellij) are about the only GUI app that I've ever replaced a CLI app with and been happy. Their discoverability and documentation played a big part in that.

</comment></comment></comment></comment></comment><comment><USER7> Maybe I'm biased because I work on a git GUI, but even if you ignore the discoverability and accessibility argument, I think graphically displaying information is useful.

Think about a kanban application - it's just not something that makes sense as a CLI thing. And yes, you could take exclusive control of and draw to the whole screen and use special characters to draw the board, but at that point you're just making a GUI out of text. Usable via terminal emulator does not necessarily mean CLI tool to me, at least within the context of OP's arguments. A lot of the things OP argues have to do with composition. CLI tools are useful in scripts because you can pass them inputs programmatically access and use their output; in this sense, a tool like vim or lynx doesn't fit OP's definition of a CLI tool, they're more like text-based GUIs.

<comment><USER8> Funnily enough, I scroll down the HN frontpage and see: "Taskbook: Like Trello but for the Terminal"

I didn't open that yet, but the coincidence just made me smile (if you can call trello a "kanban" board)

<comment><USER7> So the git client I work on has a built in kanban that syncs with github issues, and I work on that part of the application as opposed to the git graph itself - Having dedicated the last 6 months of my life to a kanban, I'd be really interested to see how they solve a bunch of the UX issues surrounding not having a drag and drop pointing device, which in my mind is like the central interaction in a kanban board. Thanks!

</comment></comment></comment><comment><USER9> Programs should have a UI that make them as useful as possible. For a large client app "useful" means discoverable, efficient.

For a small text utility such as "grep" a good UI night absolutely be CLI.

I don't see how someone would argue that a photo editing app, music workstation, IDE, CAD program etc would somehow be better because it had a graphical UI that was layered "on top" of something that was textual?

I think some of the Unix people bashing (no pun I intended) GUIs just don't use programs where GUIs shine. Sure there are cases where a GUI could and should be layered on top, but for complex media apps it normally doesn't make sense.

<comment><USER4> I agree, there's always types of programs where one beats the other. I will never argue that a CLI browser, photo editor (if it exists?) or IDE for say Java has any advantage over a GUI. It's the stuff "in the middle" where it gets interesting. Even if you only consider power users or developers, many times the Windows user still resorts to GUI apps either out of habit or since there is no built-in CLI solution to the problem, and if you need to download anything anyways you might just go with a GUI app.

But let's take find as an example: as a power user you might want something a little more involved than what the window search GUI offers, but as soon as you end up with something that involves AND and OR expressions a GUI is already subpar, and then you might want to process the files so you need either an "export to text file" function, or the ability to specify a command to execute. And even if the tool offers both, it's still hard to impossible to automate that task. You might find yourself ending up trying a dozen different file search utilities since you find one you manage to actually embed in an automated workflow. My experience is that Windows people just don't automate in many cases, although it's obviously absolutely possible to get all the GNU tools etc. on Windows too. They're just not being used that much.

<comment><USER10> > _photo editor (if it exists?)_

ImageMagick. Mighty efficient, if you know what you want to do, and need to do this on couple hundred images.

<comment><USER4> Sure, I was more thinking of hand tuning a photo (retouch, cover up, remove a person in the background). But even if you just tweak contrast and brightness a GUI probably still wins if you don't know the exact values you want to apply beforehand.

But batch processing on its own is another great example where CLI shines. With GUI apps you have to rely on the app shipping that feature, and then it's almost guaranteed it works slightly different in every app, has different semantics, hidden in a different spot etc. On the command line, the batch processing is external to the tool doing the processing, constructed using features of the shell, so once you understood how to batch process with one utility, you can do it with everything.

</comment></comment></comment></comment><comment><USER11> Building a GUI that consumes a command line interface turns that command-line USER interface into an APPLICATION PROGRAMMING interface, and that's asking for trouble. USER interfaces and PROGRAMMING interfaces are different things, with different, sometimes conflicting purposes and goals. Conflating the two leads to fossilization and confusion for users and application programmers alike. It also causes unnecessary conversion to and from brittle human- readable formats.

I'd go a step further and say that software should first and foremost be libraries exposing carefully designed APIs, then have user facing tools (command line and/or GUIs) built upon that.

</comment><comment><USER12> I know that Microsoft have promoted powershell in their OS, and I believe they tend to build a GUI on top of powershell commands.

I'd love an "ouput powershell window", which displays the powershell that a GUI is running under the hood.

I mainly write apps that talk to sql, so always try to include a "sql called" debug output in applications that I write for the same reason: It makes it easier for other people (me, when I forget what something's doing) to pick up what's going on.

</comment><comment><USER13> I think a nice solution for what the author is looking for in a GUI, namely the ability to write a script that controls them, is achieved today by something like AppleScript, which pretty much does exactly that: you can write little scripts that allow you to have basically full control of the application's UI (and in some cases, the parts not visible). So you really have the best of both worlds: a nice, pretty, and simple GUI interface that most people can use, and a scriptable backing that can be queried and manipulated in useful ways for purposes such as automation.

Less related: This is from 1998, I believe, but I guess the general date is obvious from the title itself.

<comment><USER14> If I understand it correctly it's actually from 1992.

As for Applescript: how precise can we get with it actually? I think when applications use native toolkits Applescript can figure quite much out on its own, but with custom elements (an Electron application), is this still the case?

<comment><USER13> > If I understand it correctly it's actually from 1992.

I think you're right–the 1998 is the date it was forwarded, or something like that.

> As for Applescript: how precise can we get with it actually? I think when > applications use native toolkits Applescript can figure quite much out on > its own, but with custom elements (an Electron application), is this still > the case?

AppleScript can do everything you, the GUI user can do, at least for native applications. There is an API for adding functionality that doesn't map cleanly to a user interface through scripting dictionaries, so from a certain perspective it can actually do _more_.

With regards to Electron, all bets are off: the application only has this functionality if it writes it itself. This is one of the reasons I generally have a distaste for Electron; it really breaks a lot of nice things that the system provides that are nonobvious if you don't use them but really hurt if you do.

<comment><USER15> While they might not work well with Applescript, Electron apps can be scripted with a tool like [https://electronjs.org/spectron](https://electronjs.org/spectron).

</comment></comment></comment></comment><comment> jf- We've already had 'considered harmful essays considered harmful' [1], now I'm waiting eagerly for someone to write 'software development considered harmful', followed speedily by 'communication via any form of symbolic representation considered harmful'.

[1] [https://meyerweb.com/eric/comment/chech.html](https://meyerweb.com/eric/comment/chech.html)

</comment><comment><USER16> I don't know. I think the original idea for Windows was that services are accessible through APIs on a system-wide message bus (COM) and the various GUIs are simply clients for those APIs.

I'd argue that, if that design were held through (and an easy to use universal client for COM had been available) it could have become even more versatile than unix. But of course, that's not what happened...

Then, today, we have a new trend where "GUI-only" functions are actually used deliberately to implement security restrictions or preserve business models.

And then there is the mess that is "web-based" GUIs...

<comment><USER17> > And then there is the mess that is "web-based" GUIs...

I am an all-for-native guy (Qt, etc.), but the "web-based" GUIs are actually bearable from the stand point of the developer with a CLI:

their data interfaces are HTTP, so it's easy to hook them into CLI tools

their graphics are decently accessible through Selenium

<comment><USER16> True. From an API standpoint, SPAs actually improved the situation a lot: Introducing an API boundary and separating concerns is now a routine part of developing an SPA.

</comment></comment></comment><comment><USER18> > Gratuitous distractions from the keyboard only slow down the experienced > user.

This is true even for GUIs. I used to maintain an accounting software. Everything could be done just with the keyboard. You could use the mouse, but it was optional.

People were registering hundreds of invoices a day. That will not be possible if they need to take their hands out of the keyboard, go to the mouse, move it and go back to the keyboard.

Web UIs are extremely inefficient. But it is not a big deal as they are designed more for leisure than for the professional. Hacker News or Reddit interface is good enough to write a message like this one.

I would like to see which interface use professional Reddit posters. From Russian trolls to /r/hailcorporate professionals need an interface that is not so mouse dependent.

The command line it is also a GUI, mine at least allows me to use the mouse to copy/paste text. But it is an optional feature that I don't need to use each time I write a command.

</comment><comment><USER19> I think the perfect engineering is to build two pieces: the data functionality should be built into a CLI tool that could potentially be triggered by a human or other third party software, and then build a UI on top that mainly interacts with the CLI. Essentially this is the MVC pattern we nowadays mainly talk about in a web context.

</comment><comment><USER20> >That way, naive users can use push-button GUIs, blind users can use Braille terminals, and sophisticated users can program solutions to intricate problems.

ha! I hope this was tongue in cheek...

<comment><USER21> why? i mean, i hold the same opinion sincerely. see neovim for a contemporary instance of the same: [https://neovim.io/doc/user/starting.html#--embed](https://neovim.io/doc/user/starting.html#--embed) (--embed, --headless, --listen).

</comment></comment><comment><USER22> Circa 1992.

</comment><comment><USER23> GUIs are problematic in the same way command line tools are: there is no way to access the internal functionality of both from a programming language.

Programs should come in three levels:

1) libraries, so anyone can make a program off them. 2) command line tools, which use the libraries to achieve specific goals. 3) GUI tools, which use the libraries or tools to show a nice graphical representation to the user.

<comment><USER24> > 1) libraries, so anyone can make a program off them. 2) command line tools, > which use the libraries to achieve specific goals. 3) GUI tools, which use > the libraries or tools to show a nice graphical representation to the user.

I often wonder if this entire notion of a 'program' is not useful. What people really want, I think, are _components_. Give people components and they can wrap CLIs around them if they want. Give people components and they can drop them into GUI workspaces if they want. Microsoft COM may be pure unmitigated evil... but the vision, the dream, was on the right track. This thing that happens today where developers throw big, monolithic programs at users doesn't really make anybody happy.

</comment></comment><comment><USER25> One could argue that web GUIs are the best of both worlds. If done right, user can easily discover new functions and how they are used, while they still allow interaction with other apps through REST API. They can also be used remotely, the HTTP stream can be forwarded through different means (SSH,...), there are standard ways of authentication,... If done right.

</comment><comment><USER26> And even in modern CAD systems the GUI makes no sense anymore.

Most better ones separated the kernel from the GUI already, where the GUI only serves for random input and as viewer, but the kernel allows scripting to automate tasks. The GUI's became so complicated, it's easier to design by rules and scripts and avoid osnap'ing to random objects lying in the view.

<comment><USER27> And it should be like this, in the early days of GUI it was a mess and in many places still is, but people understood how to use it properly - eg as a "frontend" part of an application "kernel".

So in my view GUI is not harmful, but completely the opposite. It gives you tons, tons of possibilities and improvements. If used sensibely, of course.

<comment><USER28> On my Linux box I'm running the Awesome WM, and I don't see how anything could possibly be better than it (or anything that works similarly, obviously).

I open terminals, neovim, etc. in tiling mode with the WM automatically arranging things according to my settings. Much like tmux etc.

Firefox opens in full screen on a separate tag, automatically. As does VSCode.

If I want to run something that fits best with a floating window style I can set that up on another tag and it's all automatic. I stay in one WM/mode the entire time and move seamlessly between whatever tool I want to use and I use that tool in the manner it's best used in.

What could be better?

</comment></comment></comment><comment><USER29> To use most CLI programs efficiently you need to remember commands and parameters to avoid scrolling through man in pursuit of "that one parameter combination I used last month but cannot find in my terminal history".

On the other hand I love GUI apps which show which CLI command corresponds to the selected action (zenmap for example).

</comment><comment><USER30> But this is the age when people post video tutorials on youtube to tell you what to type in the CLI...

</comment><comment><USER2> > A precision pointing device that didn't require taking your hands off the > keyboard would help.

IBM created this for the ThinkPad. I had a Dell D830 with the little mouse between the G/H keys and the left/right buttons just below the spacebar. It was amazing.

<comment><USER31> Trackpoint. Still in use on new ThinkPads and some other laptops. IBM/Lenovo even has/had desktop keyboards with it.

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

</comment></comment><comment><USER32> Also, when you get yourself into trouble with a CLI, you can usually look back through the session history and figure out what went wrong. GUIs often have an undo stack, but there's no real log what you've done.

</comment><comment><USER33> I wish the command line approach was used in the WWW. The world would be so much better place if web resources provided REST API as a primary way to access the data and the web UI was only one possible visualization.

</comment><comment><USER34> My opinion is that the pattern object -> action is better than action -> object. That isn't necessarily the same thing as GUI vs. CLI, but there is some correlation.

</comment><comment><USER35> I always thought something like this would be neat to explore further: [https://www.youtube.com/watch?v=gifzjhyBwOc](https://www.youtube.com/watch?v=gifzjhyBwOc) (warning: contains some intense flashing at a couple points).

A GUI is ultimately producing a stream of actions; these actions can be reified as text and displayed. Then you can copy the text to perform the actions again, modify the text, include it in scripts, and so on.

</comment><comment><USER36> What's up with this "considered harmful" being used everywhere lately?

<comment><USER37> You disprove your own point, this is from 1992

<comment><USER38> It's still had a comeback recently

And yes it's 80s/90s newsgroup flamebait. The author concedes GUIs are useful, they just want access to APIs.

</comment></comment></comment><comment><USER39> What OP fails to see is that GUIs are 80% of the reason why you see technology all around you. It's the layer of simplification the vast majority of people need. PCs didn't catch on until the GUIs were born. GUIs help architects design the same buildings OP lives in. 99% of the stuff in his home were designed and crafted tnx to a variety if GUIs in the process.

Having a contrarian view is fine. But keep things in the correct perspective.

<comment><USER40> The author was not against GUIs. The author was against having GUI only apps.</comment></comment>


Retropiler: Java 8 Standard Library Backport for Android - <AUTHOR> https://github.com/retropiler/retropiler <comment><USER2> Quoting u/JakeWharton on Reddit to here:

> The runtime includes GPL classes which will force your application to GPL. > Despite the Apache 2 license the project reports, do not use this unless you > understand what adding GPL code to your application means. You are not > subject to the classpath exemption when the code is bundled in your app.

[https://www.reddit.com/r/androiddev/comments/69rvf4/retropil...](https://www.reddit.com/r/androiddev/comments/69rvf4/retropiler_java8_standard_library_for_android_sdk/dh92vkp/)

<comment><USER3> If I package my Java app together with OpenJDK JRE then GPL code is bundled in my app and I can use "classpath exemption".

If I take OpenJDK JRE, fork it, make Retropiler out of it and publish it under "GPL plus classpath exception" and then package my Java app together with Retropiler then GPL code is bundled in my app - it is the same as above. Why I am not subject to the classpath exception in this case?

<comment><USER3> I checked again:

1) OpenJDK allows you to fork under a) GPLv2 or b) GPLv2 + Classpath Exception (see [http://openjdk.java.net/legal/gplv2+ce.html](http://openjdk.java.net/legal/gplv2+ce.html), "If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version." where library=OpenJDK and exception=Classpath Exception).

2) Android's OpenJDK fork is licensed under GPLv2 + Classpath Exception (see [https://android.googlesource.com/platform/libcore/+/master/L...](https://android.googlesource.com/platform/libcore/+/master/LICENSE))

3) Retropiler OpenJDK runtime is licensed under GPL only (see [https://github.com/retropiler/retropiler](https://github.com/retropiler/retropiler), "The Java classes in runtime/ module which were copied from AOSP are licensed as GPL.")

They could fork OpenJDK and license it with classpath exception which would allow you to (statically or dynamically) bundle your app with OpenJDK under any license. But since they didn't include the classpath exception your app bundling parts of the Retropiler's OpenJDK fork must be under GPL! So you can use it only for open source projects...

</comment></comment></comment><comment><USER4> Why aren't Java runtime environments install-able on Android like they are on almost any other operating system?

<comment><USER5> Oracle sued Google for "stealing their java API specs" so they probably aren't touching the Android platform any time soon. However, there is a Java ME SDK that runs on constrained devices such as ARM phones. There is also an emulator called phoneME.

<comment><USER6> It is ironic how so many [1] JDK vendors were able to work together with Sun, now with Oracle, just Google seems to have some issues following the same rules and licenses.

But hey, lets fork Java and do no evil.

[1] - [https://en.wikipedia.org/wiki/List_of_Java_virtual_machines](https://en.wikipedia.org/wiki/List_of_Java_virtual_machines)

<comment><USER7> Given that Java licensing seems to have been negotiated and was likely very different per company, the fact that some licensed versions exist doesn't actually give too much info. There are accounts of what happened when from the court filings though, and people have distilled that[1].

In any case, I hardly think prolonged failed business negotiations constitute failing to "do no evil".

1: [http://www.pcworld.com/article/253666/a_timeline_of_oracles_...](http://www.pcworld.com/article/253666/a_timeline_of_oracles_java_lawsuit_against_google.html)

<comment><USER6> Doing a business without the necessary licenses in place, forking the Java eco-system by creating an implementation that isn't able to run any random Java library due to partial implementation, is surely the contrary of "do no evil".

When Java 9 finally gets out, and looking forward to Java 10 roadmap, this situation is only going to get worse.

<comment><USER3> Everybody has rights to fork Java. Oracle gave those rights with OpenJDK under the GPL+classpath exception license. As long as you follow this license, you are free to do what ever you like with OpenJDK. Essentially it means you must stay GPL+classpath exception, but you can add/change/remove any part you like.

<comment><USER6> Better read it again, it does not apply to embedded systems, because Sun wanted to sell J2ME licenses.

<comment><USER3> You are talking about Oracle JDK and it's "field of use" restriction which prohibits usage on embedded systems (see [http://www.oracle.com/technetwork/java/javase/terms/license/...](http://www.oracle.com/technetwork/java/javase/terms/license/index.html)). But I am talking about Open JDK which does not have this restriction (see [http://openjdk.java.net/legal/gplv2+ce.html](http://openjdk.java.net/legal/gplv2+ce.html)) and can therefore be used by Google for Android.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Since Android N the Java implementation is actually OpenJDK so I guess this is primarily useful to support older Android versions.

<comment><USER9> It doesn't use Dalvik anymore?

<comment><USER8> Dalvik is a Java runtime implementation (well technically not but let's keep things simple) just like OpenJDK's hotspot; It compiles bytecode to machine language which your device (PC, smartphone, etc.) can execute.

Bytecode is the thing the Java compiler produces (class files) from your Java source code.

Android N only switched to the Java API (base classes) of OpenJDK. As far as I know they didn't switch runtime environment.

(I know dalvik technically doesn't run bytecode but some other form of intermediary code optimized for mobile devices. I sidestepped that to keep things simple)

<comment><USER10> They did change runtimes from Dalvik to ART, from Android L on.

</comment></comment></comment></comment><comment><USER11> The classpath exception is when the library is linked. Because Android DEXing involves converting all third party libraries to a single classes.dex file, this is contrary to most definitions of "linked". So using Retropiler will probably out you in violation of the GPL unless you can win in court saying that it is only linked.

Edit: technically dalvik and ART actually execute code from .odex and .oat files

<comment><USER11> One thing that might be possible but probably not easy is to force a multidex layout where all the Retropiler code is in a separate dex. I'm not sure how easy it is to force the build system to do this though.

</comment></comment><comment><USER12> I thought the Android team is switching to native Java 8 support anyway?

[https://android-developers.googleblog.com/2017/03/future- of-...](https://android-developers.googleblog.com/2017/03/future-of- java-8-language-feature.html)

<comment><USER2> That targets only Android 7 and above (and even then a subset of the features). If I understand correctly, this actually allows you to target any Android version at or above SDK 15 (Android 4.0.3), because it monkey patches your code to replace part of the standard library with external libraries. Then, when you decide to deprecate Android 6 support one day, you should be able to smoothly transition to fully native Java 8.

<comment><USER3> According to this table: [https://developer.android.com/studio/preview/features/java8-...](https://developer.android.com/studio/preview/features/java8-support.html#supported_features)

you can use Lambda expressions and Method References with any Android version... but without Java 8 libraries...</comment></comment></comment>


Ask HN: Why do no current Type 2 Hypervisors support DirectX 11 or higher? - <AUTHOR> I was curious as to the technical reason why no current Type 2 Hypervisor can support a version of DirectX version higher than 10?<p>Sure, I could use Linux + KVM or Hyper-V on Windows 10, but those can get messy and don't have quite the ease of use of a program like VirtualBox or VMware Workstation. <comment><USER2> I'm also curious about this!</comment>


How The Huffington Post Works - <AUTHOR> http://www.huffingtonpost.com/2011/02/10/huffington-post-bloggers_n_821446.html <comment><USER2> I honestly can't imagine that the guy means what he writes. There's just no way someone can be so narrow-minded.</comment>


Statecharts: A Visual Formalism For Complex Systems (1987) [pdf] - <AUTHOR> http://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts.pdf <comment><USER2> This paper was superseded, in a sense, by two of Dr. Harel's later papers:

 _The STATEMATE Semantics of Statecharts_ (1996)[1]

 _The Rhapsody Semantics of Statecharts (or, On the Executable Core of the UML)_ [2]

There is also a full-length (out of print) book on the STATEMATE system, which shows how Statecharts can be used used in combination with two other chart types (Activity and Module charts):

 _Modeling Reactive Systems with Statecharts: The STATEMATE Approach_ (1998)[3]

With permission of the publisher, the entire book can be downloaded for free from the professor's website[4].

The 1987 paper is worthwhile, but it can be skipped in favor of the more recent papers and the reader won't miss anything essential.

Dr. Harel has also published a detailed history of the development of Statecharts (i.e. the formalism itself):

 _Statecharts in the Making: A Personal Account_ (2007)[5]

[1] [http://www.wisdom.weizmann.ac.il/~harel/SCANNED.PAPERS/Seman...](http://www.wisdom.weizmann.ac.il/~harel/SCANNED.PAPERS/SemanticsofStatecharts.pdf)

[2] [http://www.wisdom.weizmann.ac.il/~harel/papers/RhapsodySeman...](http://www.wisdom.weizmann.ac.il/~harel/papers/RhapsodySemantics.pdf)

[3] [http://www.wisdom.weizmann.ac.il/~harel/reactive_systems.htm...](http://www.wisdom.weizmann.ac.il/~harel/reactive_systems.html)

[4] [http://www.wisdom.weizmann.ac.il/~harel/STM.Book](http://www.wisdom.weizmann.ac.il/~harel/STM.Book)

[5] [http://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts.H...](http://www.wisdom.weizmann.ac.il/~harel/papers/Statecharts.History.pdf)

</comment><comment><USER3> One of my favorite tools! I've implemented many (too many) protocols with HSMs. I've also implemented lots with traditional FSMs. I've met people like me who have done both. Most would choose HSMs for most applications. If you're into SM compilers then they might not be that interesting (I'm not -- I like to see the logic in code that _I_ write).

As an exercise in seeing the advantages, take a look at a network protocol RFCs like for TCP, BGP or SIP, and redraw the state diagrams there as statecharts. I've found that HSMs help in the beginning when I'm understanding what I'm doing (how about finding omitted states!); in the middle as I'm implementing; and in the end, when I'm maintaining. In my experience they definitely commend themselves vis-a-vis FSMs in commando ops (i.e. parachute a smart engineer into hostile unknown territory and have them fix a broken state machine under heavy fire).

Of course, much depends on your HSM implementation itself. This book ([http://www.state-machine.com/psicc/](http://www.state-machine.com/psicc/)) is a good resource, though the last time I looked the code is sorta old-timey C++. There are definitely more contemporary/template-ly ways to do it.

</comment><comment><USER4> I started to figure out if I could use statecharts for systems design but then read this critical piece and became less enthusiastic mbreen.com/breenStatecharts.pdf

Could someone with practical experience of them comment of their usability?

<comment><USER5> The paper has some good insights into how statecharts can obscure or confuse solutions, but some of the issues are avoided by experience or practice of using statecharts. Combining orthogonal states and history, for example, is rightly criticised in the paper and is the equivalent of a 'code smell' for me personally, largely because it becomes difficult to reason about the behaviour of the system being modelled. The two main benefits of state charts are the clustering notation and separation of concerns by linking statecharts with directed events (rather than using orthogonality). History is sometimes useful in specific circumstances, though those often arise from how you structured the statechart rather than a system design issue.

In short I'd say to try not using deep history or orthogonality and see how you get on. Use them minimally and rarely in combination. I've found statecharts to be fantastic at clarifying my understanding of systems and their design, but like any tool, they take practice.

<comment><USER4> Thanks for the summary! This does sound a bit more encouraging towards Harel's work

</comment></comment></comment><comment><USER6> Harel's Statecharts are used a lot in automotive with Stateflow, the state machine tool of Mathworks MAtlab/Simulink.

</comment><comment><USER7> These always remind me of Milner's Bigraphs, although they're quite different in semantics.

</comment><comment><USER8> This could be nice for modelling UI state

<comment><USER9> "Statecharts in User Interfaces: Warding Off Complexity", Erik Mogensen, RESTFest 2014. [https://vimeo.com/109808288](https://vimeo.com/109808288)</comment></comment>


The mystery of Germany's low coronavirus death rate - <AUTHOR> https://www.vox.com/world/2020/3/27/21196246/coronavirus-germany-death-rate-covid-19-cases-italy-europe <comment><USER2> If you just look at the coronavirus deaths in Germany they are increasing at pretty much the same rates that Spain and Italy did. I wonder if Germany is a few days behind the UK and has just tested way more people making it this outlier.

<comment><USER3> Germany was hit as one the first European countries. And they aggressively went after each possible contact and tested all of them. It was hit weeks before Italy. Their testing capacity is the highest in Europe (I'm leaving out Russia, as I don't trust their testing numbers. Maybe they do just antibody or temperature tests).

The UK was infected very very late from a tourist in Ischgl, Austria, which got it from Italy. Weeks later. Same timeline as with the other scandanavian infections.

So Germany is more than a month ahead of the UK. The rates are increasing, because they are testing so much. (Not enough for my taste, but this Europe, not Asia).

The death rates are so low because no centres of seniors where hit yet, the age group is much younger. And the treatment in the ICU's is doing pretty well.

<comment><USER2> I hope this is the case. The increasing number of deaths is a fairly recent occurrence in Germany with them surpassing ten deaths two days after the UK did.</comment></comment></comment>


How to write a dev job post that inspires people and doesn't suck - <AUTHOR> http://mattdorey.com/post/1329475978/im-not-dead-and-curve-is-hiring

<comment><USER2> Your requirements list is ridiculous, and will exclude everyone you want to find. Does your applicant REALLY need to be the one guy in the world who has a degree, AND certification from a hardware vendor, AND has written scripts for Amazon EBS, AND has a background in cryptography, AND has built and configured everything from down to disk subsystems up to Java, etc... for at least 8 years? I don't think this mythical man exists, and if he does, he _just might_ be worth so much more than you can pay that the list of off hours and customer support responsibilities would have him pass you right by.

I'm being harsh here, but I don't know anyone qualified that would look at that enormous list of requirements and actually apply. The only thing that list might be good for is catching lots of keyword searches on job sites, getting you tons of unqualified applicants.

<comment><USER3> I think the "here is the sort of person you are" bit is more alienating. You allocate part of your monthly budget to speeding tickets? You play Halo 3? Of course these obviously aren't phrased as job requirements, but are still alienating for the potential applicant, who gets the idea that his new boss is the kind of person who has odd expectations about behaviour.

<comment><USER4> Really? I _loved_ that bit! I want to apply for a group of people who have personality.

Anyone who couldn't see that that was a bit of creative writing expressing the themes wanted is someone who's not really fit for the job, imo.

</comment></comment></comment><comment><USER5> See, I _don't_ like this job description. To me, it misses the point of job descriptions: to attract the best possible candidates. This is a very long list of _requirements_. They are indeed charming, and they do indeed sound all the right geek dog whistles. But they are all about why the candidate will be valuable to the company.

It's definitely better to be explicit and evocative about how important the role is going to be, and that does make this ad better than most HR job ads.

But an even better job post would spend the majority of its words selling the job to the candidate.

(Also, the skills list at the bottom is a straight-up unforced error. There are obviously candidates who are very much worth considering who will not meet all these requirements. From bitter experience: give anyone an excuse to believe that they're not qualified, and chances are they'll take that excuse. A constant thrum of feedback we get: people aren't applying to Matasano because they're afraid they're not "good enough", which is shocking for us to hear. Our only spelled-out requirement is "ability to code in any language"!)

</comment><comment><USER6> My problem with this job post is that it is long. Very long. I'd start by cutting out the "key attributes" section (is it really a good idea to include "If you were hit by a buss tomorrow it wouldn't matter." in a job post, regardless of the point you are trying to make?) I would then cut down the requirements section to something digestible.

I had a look at least one job listing from each of the five current posts in <http://news.ycombinator.com/jobs> and I think that they are all better examples of good job listings that don't suck. Most of them are succinct -- they say what the future employee will have to do, a few actual firm requirements that they have, and why I should apply (sometimes including some perks). They are formatted too.

<comment><USER7> I agree with too long. I found myself skipping the first sentence of each paragraph ("You watched the x-files a lot as a kid...") because I knew they'd be jokes.

</comment></comment><comment><USER8> Good luck finding such a teammate and making that guy work on a web based dental software.

Sigh. Posts like this slap me in the face that maybe we're in the wrong part of the world to do software business. Here's our list of interview questions for a web developer position we couldn't fill for the last 2 months.

      1. What is Javascript and why is it needed?
      2. Could you talk about HTTP GET and POST.
      3. What is OO? Have you "heard of" design patterns? (Most haven't even heard patterns at all.)
      4. Could you talk about any other languages than you currently use? (mostly ASP.NET and PHP)

We have seen very few applicants fulfilling us beyond the second question. And the ones that do cost an arm and leg. This happens in Istanbul, a city of ~15 million.

<comment><AUTHOR> Well, we've managed to build a large and talented dev team with this approach thus far. I guess once we start having difficulty finding capable devs we'll have to lower the bar. Sigh.

</comment></comment><comment><USER9> _Your [sic] okay with sometimes not getting the credit you deserve because you know most people just aren't capable of seeing what you do. Your contribution is less visible because you're constantly playing defense, fixing problems before they happen._

I'm ok with a lot of people not giving me credit because I know I do a good job. But it's important that _some_ people value what I do. For example, am I going to be paid more or less than a salesman? Is that role really seen from within the company as the mission-critical everything-depends-on-you role you're painting, or is winning new clients considered more important? Is that reflected in remuneration?

Also, please spell and grammar check your job postings. I do so for my CV.

<comment><USER10> I agree. The spelling and grammar errors are flags that this was written by someone who does not pay attention to detail. Someone who does not pay sufficient attention to detail has no business making the kinds of demands made in that job post.

</comment></comment><comment><USER11> "Our exact GPS co-ordinates are 40°18'47.86" N by 111°42'22.48" W at an elevation of 4,757' (according to Google Earth)."

Dude, just tell us the location. No need to get clever.

</comment><comment><AUTHOR> Thanks all, this is good feedback. The intent behind this was to innovate in this area by making the posting stick out so that the posting gets more visibility but also helps weed out candidates. We are looking for one person and we want to set the bar high for this position.

I'm surprised that each requirement/attribute was taken so literally, but I can see how people could view it like that after reading it again.

To be honest, if we could find someone that met most of this criteria I think we would be very happy. I wouldn't say they need 8 years of experience in each area, however my hope is that they would have worked with these technologies over the last period of time in varying capacities.

It will be very interesting to see how people take this and who applies. Maybe I'll post the results up so people can see after the search.

Thanks for the candid feedback.

Matt

<comment><USER12> Something that has thrown me off here: The position very clearly reads as a senior System Administrator / Engineer, with some project management and lead experience. But the title is Director of Infrastructure. Speaking from my experience, a director is a manager of managers.

Is this req really a director role? If so, where are the criteria for the leadership and managerial components? The listing goes into quite a lot of detail about the technical side on things that would end up being optional when deep-diving with the right candidate.

If not, and it's actually a "director of the machines that compose the infrastructure", IMO the education bar is too high: I've never worked at Google, but I don't know anyone with a masters degree that gets Nagios alerts.

Lastly, as an outsider, I see "Customer up-time and data integrity is the most important thing in our company and we need someone who has the experience, depth and skills to lead this area of our company.", but the listing does not speak to the candidate's responsibilities with regard to the development / architecture of the software itself. A senior technical contributor or a manager with this charter will spend no small part of their time in design and code reviews. Frankly, in a lot of shops this position has to argue with Dev to keep them from doing things that seem clever but can't be operationalized, whether due to an unforseen technical restriction, or because the new idea will have a lot of corner / edge cases that will make administration of the application very error-prone.

Had I not moved across the country in the last year, I'd definitely consider throwing my hat in the ring... UT is on the short list of places I'd move next round, too. Good luck and please post a follow-up!

</comment></comment><comment><USER13> I know the job market is sick these days and many people are jobless, but I do believe that someone with such skills is already involved in a startup, working at a company or have filled his life. If this person left a company or get fired, he'll immediately find job offers (8 year of experience, he should be popular in his field!).

That being said, none of those you are dreaming of will look at your job post. Take a look at: [http://www.google.com/intl/en/jobs/uslocations/mountain- view...](http://www.google.com/intl/en/jobs/uslocations/mountain- view/swe/software-engineer-mountain-view/index.html)

I like this job post. It mention requirements, role, responsibilities. Short and precise. I'm, however, more interested in the life at Google and the photos, which are covered in depth.

</comment><comment><USER14> I don't like this description for various reasons.

One of which is you're is not the same thing as your: "What if you're servers go down?"

</comment><comment><USER15> A charm to read, but I still find it too inflated. I guess it could be equally effective if it was twice as short bu to the point.

</comment><comment><USER16> <http://img87.imageshack.us/i/96lw2.jpg/>

</comment><comment><USER17> I liked the quoted job description (i.e. the one _not_ to do) better.

</comment><comment><USER18> Great input on what's really important in a job description. Interesting Gen Y take on making sure the job description has a "what in it for me" section, since I know Curve Dental has a fun team working environment. And, I do think the description could save a few words.

That said, Curve Dental is a rockin place to work. I've seen their HQ office and there have high energy and happy people. They are a "contender", not a "pretender" in the Cloud-computing space with industry pundants applauding their direction & leadership. Microsoft's VP said cloud programming is "tough" and so I'm sure the list of truly qualified technical people for such a job is short.

Best of fortune to those techies who qualify because cloud computing is where it's at and Curve Dental has the leadership and the funding to make a bunch of people happy on payday.

<comment><USER19> I think you'd better serve your client if your PR machinations were a little less obvious.

<comment><USER9> Absolutely. Whoever this is is really hurting this job post for this audience.

<comment><AUTHOR> Wow. This was our PR firm. They took the liberty of getting involved in the discussion.

Sorry, this is totally inappropriate and lame.</comment></comment></comment></comment>


Ask HN: I have 50k. How do I make it more without a startup? - <AUTHOR> <comment><USER3> The only way to make it grow is through investing it. The more risk you take on, the higher it has the chance to grow. However, at the same time you have an increased risk that you'll lose your investment.

A money market account is safe and leaves your liquid assets in a state where you can get them easily. The downside is a poor rate of return.

Tax-exempt bonds (local, state or federal) are an attractive option provided that the rate of inflation doesn't exceed your rate of return or reduce it to effectively nil.

Another sensible option would be to pay off any debts you have. Your income is your best way to grow wealth, and every dollar you pay in interest is a dollar taken away from your future earnings. Even though this isn't as exciting an option as putting your money in the stock market, this might be your best bet longer-term.

If you have no debt, then the $50k would go a long way towards a down payment on a home - that way you can stop paying rent, which is another source of wasted earnings.

<comment><USER4> I agree with the rest of the advice, but buying a home is not a good investment in all parts of the country/world, nor at all times. A home you own decreases your mobility and thus your employment options, especially if the labor or housing market in your area plummets in the future.

In other markets, home ownership and all its associated costs (including property taxes and maintenance) is more expensive in both the long and short term than renting.

For instance, for what I pay in rent in NYC (PLUS a down payment), I would have to commute at least 3 times as long to afford to buy an equivalent home. And also have to add the responsibility (in time and expense) for maintenance - from upgrading the plumbing to shoveling snow from the sidewalk.) Further, it'd be much more difficult to see friends, whom I'd no longer live near. That's all time that could instead be spent with friends and family, being healthier, or even making money on a side project or freelancing.

And if you get poor terms on your mortgage (think variable rate loans), you're just setting yourself up for pain.

</comment></comment><comment><USER5> The subreddit /r/personalfinance has a wiki article about "windfalls", the principles of which apply here (section "Get educated on saving and investing"):

[https://www.reddit.com/r/personalfinance/wiki/windfall](https://www.reddit.com/r/personalfinance/wiki/windfall)

</comment><comment><USER6> I got 'talked into' moving a chunk of money out of a current account into a combination of investment ISAs and Personal Investment Plans with Scottish Widows. Over 5 years they have increased in value by about 35%, so average 7% per year. Here is one of the ones I used:

[http://webfund6.financialexpress.net/clientsv21/scottishwido...](http://webfund6.financialexpress.net/clientsv21/scottishwidows2/PerformanceChart.aspx?typeCode=FIXX5)

I went in knowing nothing, and wouldn't have done it if my bank hadn't pushed me in that direction (the department of the bank no longer exists) and I guess I got lucky, as it has worked out well for me.

PLEASE NOTE: investment ISAs/Personal Investment Plans with Scottish Widows can go up and down. Also bear in mind I an openly saying I know next to nothing about this, so please don't jump into anything without researching it carefully.

</comment><comment><USER7> Get a job.

There's no way for you to reliably make even 20k in the next year off of an investment of 50k unless you are going to be personally involved in it. You will also almost certainly make at least 20k at your job in the next year, and can probably figure out a way to increase your salary by 20k.

<comment><USER8> Put 5k in NYSE:BND for your emergency fund, Fidelity/Vanguard/Etc work about the same. Then put 5500 in Roth IRA NYSE:VOO. Then do the same for your work 401k account if you have one. Put the rest in a brokerage account in NYSE:VOO, maybe save 5500 for 2018 IRA.

</comment></comment><comment><USER9> Try an index fund.

<comment><USER10> Same boat here. I'm really scared of a stock market crash.

<comment><USER11> Me too. Low fee index funds always seem to be the generic answer but after reading many articles and a couple of books about it, I am still not convinced. It seems to me that the rate of return has a lot to do with when you enter/exit the market and it is well known that you can't time the market so how is this different than any other gamble?

There was also a popular article(NYT?), which I can't find the link to at the moment, that showed me that only if you invest in the market for around 30 years or more, can you get a decent return. To me that makes sense if you want to leave your kids a little something after you're gone but not for your own lifetime.

Can someone educate me on this? Does everyone reply "index funds" because it is fashionable to do so or am I missing something here?

<comment><USER12> > It seems to me that the rate of return has a lot to do with when you > enter/exit the market

Most people "enter the market" continuously by depositing a percentage of their pay each month of their career and "exit the market" slowly and continuously during retirement 40 years later.

The booms and busts in between become irrelevant and you're left with a nice and high average rate of return.

<comment><USER13> In fact, even if you started investing in an S&P 500 index fund at the top of the market right before the big crash of 2007 (financial crisis), you'd still have a very decent return today.

<comment><USER11> That article convinced me otherwise. I wish I could find it now because I'd love to get some input on the numbers that, I'm assuming, I'm reading correctly.

<comment><USER14> I can't check without the article, but some mistakes I've seen - <USER2> reinvested dividends (~2%/yr,) and unrealistic tax figures

on the other side, you've got people who ignore inflation and assume 10% a year returns promising ridiculous growth

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> 'more' in terms of value? Then, take a break and roam the world. You can sustain for 2-3 years and do a RTW at a slow-n-steady pace and also make some money in the interim :)

</comment><comment><USER16> Buy Bitcoin for 50k and sit on it. Not even kidding. :)

<comment><USER17> Only if you have the calm and patience to sit through a major dip. Or wait until then to buy.

Bitcoin as an "investment" is a lot more volatile than most other options. But, as of now, also a lot more profitable.

</comment></comment><comment><USER18> Given that you are in Australia, I suggest that you look at Forager Funds Management. I think they provide a reasonable way to enter the stock market.

<comment><USER19> I concur.

<comment><USER20> Shill - check the post history

</comment></comment></comment><comment><USER4> If you take a few months off to live on that money and learn something new, would it be enough to increase your earnings by $100k total over the next 5-10 years? That's also an investment, and one that's got a decent chance of doubling your money in a reasonable timeframe.

</comment><comment><USER21> Index fund, real estate. Personally I like real estate because I find the principles of it intuitive.

</comment><comment><USER22> I would recommend reading the book "Your money or your life"

</comment><comment><USER11> An unusual recommendation perhaps but recently I've been thinking of starting a small online business. Investing in that seems to offer the better risk to reward ratio. It also doesn't require a large capital to start. Consider that perhaps?

<comment><AUTHOR> I don't have time to start a business, otherwise I wouldn't ask (see the title). I just look for ways to make it more with doing one time jobs (like investing, buying selling etc.) which I don't have to do the thing on a regular basis but one time and make it 51k after some time, for example.

<comment><USER11> When I say small online business, I was thinking more along the lines of drop shipping or novelty items from china which you can resell. There's a big difference between the effort required for a startup and populating a shopify account...

If you're after no effort at all, then investment is probably the best advise you would get. But that does carry some risk. As always, the risk/reward ratio...

</comment></comment></comment><comment><USER23> Dear Sir, SEEKING YOUR IMMEDIATE ASSISTANCE. Please permit me to make your acquaintance in so informal a manner. This is necessitated by my urgent need to reach a dependable and trust wordy foreign partner. This request may seem strange and unsolicited but I will crave your indulgence and pray that you view it seriously. My name is. DAN PATRICK of the Democratic Republic of Congo and One of the close aides to the former President of the Democratic Republic of Congo LAURENT KABILA of blessed memory, may his soul rest in peace. Due to the military campaign of LAURENT KABILA to force out the rebels in my country, I and some of my colleagues were instructed by Late President Kabila to go abroad to purchase arms and ammunition worth of Twenty Million, Five Hundred Thousand United States Dollars only (US$20,500,000.00) to fight the rebel group. But when President Kabila was killed in a bloody shoot-out by one of his aide a day before we were schedule to travel out of Congo, We immediately decided to divert the fund into a private security company here in Congo for safe keeping. The security of the said amount is presently being threatened here following the arrest and seizure of properties of Col.Rasheidi Karesava (One of the aides to Laurent Kabila) a tribesman, and some other Military Personnel from our same tribe, by the new President of the Democratic Republic of Congo, the son of late President Laurent Kabila, Joseph Kabila. In view of this, we need a reliable and trustworthy foreign partner who can assist us to move this money out of my country as the beneficiary. WE have sufficient ''CONTACTS'' to move the fund under Diplomatic Cover to a security company in the Europe in your name. This is to ensure that the Diplomatic Baggage is marked ''CONFIDENTIAL'' and it will not pass through normal custom/airport screening and clearance. Our inability to move this money out of Congo all This while lies on our lack of trust on our supposed good friends (western countries) who suddenly became hostile to those of us who worked with the late President Kabila, immediately after his son took office. Though we have neither seen nor met each other, the information we gathered from an associate who has worked in your country has encouraged and convinced us that with your sincere assistance, this transaction will be properly handled with modesty and honesty to a huge success within two weeks. The said money is a state fund and therefore requires a total confidentiality. Thus, if you are willing to assist us move this fund out of Congo, you can contact me through my email address above with your telephone, fax number and personal information to enable us discuss the modalities and what will be your share (percentage) for assisting us. I must use this opportunity and medium to implore You to exercise the utmost indulgence to keep this Matter extraordinarily confidential, Whatever your Decision, while I await your prompt response. NOTE: FOR CONFIDENTIALITY, I WILL ADVISE YOU REPLY ME ON MY ALTERNATIVE EMAIL BOX ...Thank you and God Bless. Best Regards, MR DAN PATRICK.

<comment><USER24> What happened to downvotes?

<comment><USER25> Downvoting worked for me</comment></comment></comment>


SEO optimization - Some best practices - <AUTHOR> http://blog.searchistheos.com/2008/07/search-engine-optimization-seo-best.html

<comment><AUTHOR> Here is the translation of the parts in French (courtesy google translate)

Linking

1.Intégrer la première mention du mot-clé sous forme de anchor text, pointer vers une page interne de votre site parlant du même sujet

Google Translate :

Integrating the first mention of the keyword in the form of anchor text, point to an internal page of your site speaking the same subject.

My interpretation :

Use the keyword as anchor text pointing to an internal page related to the keyword or describing the keyword.

For ex.,  Search Optimization

Site Content

2 ou 3 expressions-clés par page maximum o Ne mentionnez chaque mot-clé plus dd e 4 fois par page

Google Translate :

1\. 2 or 3 key phrases per page maximum . Use each keyword more than 4 times per page

3\. Mot-clé 2 fois dans le premier paragraphe, et 1 fois dans le dernier pour coohérence d'ensemble

Google Translate :

Keyword 2 times in the first paragraph, and 1 time in the last one for overall consistency

8\. Pour chaque mot-clé, environ 150 a 250 mots

Google Translate :

For each keyword, approximately 150 to 250 words

<comment><USER2> Why was this down modded? Upvote.

</comment></comment><comment><USER3> [http://www.seomoz.org/blog/the-web-developers-seo-cheat- shee...](http://www.seomoz.org/blog/the-web-developers-seo-cheat-sheet)

<comment><USER4> Another +1 — the article link isn't great at all — those new to SEO should definitely check out the SEOmoz one you provided instead.

</comment></comment><comment><USER5> Another case of RAS syndrome (Redundant Acronym Syndrome)

<http://en.wikipedia.org/wiki/RAS_syndrome>

</comment><comment><USER2> I hate SEO so much, but it's such an integral part of the ticket business as keywords/ads are ridiculously expensive.

Although we've done a ton of SEO work for TicketStumbler, we refuse to employ some of the slime tactics other ticket sites use.

To quote Dustin Curtis (dcurtis): "user experience > SEO".

</comment><comment><USER6> Did anyone notice that part of his list is in French?

</comment><comment><USER7> it seems too focus too heavily on keyword density. also a internal link, can only pass your own rank (competing with yourself)</comment>


Project Natal: hands on review - <AUTHOR> http://www.siliconrepublic.com/news/article/15353/new-media/project-natal-hands-on-review <comment><USER2> _Having no controller means there's nothing to learn_.

I'm continually amazed at the no-nonsense business, engineering and gaming sense and deep insights that Nintendo brought to the Wii. Reading the Iwata Asks articles provides great nuts'n'bolts info from their design process.

<http://wiiportal.nintendo-europe.com/455.html>

Microsoft seems to be in the razzle-dazzle, bullshit phase at the moment. That quote at the top is so wrong I wouldn't know where to start with someone who believed it. I sincerely hope the actual engineers building this aren't listening to their own hype.</comment>


Ask HN: How to contribute to the fight against COVID-19 as a software engineer? - <AUTHOR> As a currently remote, housebound software engineer in the U.S., I've grown increasingly restless amidst the current COVID-19 panic and I would like to help in any way I can.
My day-to-day work no longer satiates me as a fellow human to all those suffering as a result of COVID-19 or to those fighting it on the front lines.
I do not have any active online projects for which I can grant free access, and would rather not make a one-time donation to non-profits at this point. I'd prefer to participate in COVID-19 mitigation & recovery efforts if possible.
Are there any avenues/channels out there connecting those in need of a software solution for the COVID-19 situation to those willing to create said solutions? Are there other ways to contribute as a software engineer? I'm open to pretty much anything. Thank you! <comment><USER2> [https://helpwithcovid.com/](https://helpwithcovid.com/) tries to bring project and developers together.

Funny that the same question was asked within 10 minutes ([https://news.ycombinator.com/item?id=22641549](https://news.ycombinator.com/item?id=22641549)), great to see so much interest in helping!

<comment><AUTHOR> Thank you!</comment></comment>


Why is a prison company storing the voice prints of even innocent people? - <AUTHOR> https://www.fastcompany.com/90307401/why-is-a-prison-company-storing-the-voice-prints-of-even-innocent-people <comment><USER2> As far as the system is concerned, no one is innocent. They just have not yet been convicted of a crime.

Therefore, record all the voiceprints for future use is a valid pattern for them.</comment>


What can you ask for in a job negotiation, beyond salary?  what's common - <AUTHOR> https://www.hpe.com/us/en/insights/articles/how-companies-can-sweeten-the-deal-to-attract-new-it-hires-1808.html <comment><USER2> Since this is HP, how about not providing technology to ICE and the Israeli occupation?</comment>


Jobs Is Said to Assist With Book on His Life - <AUTHOR> http://www.nytimes.com/2010/02/16/technology/companies/16apple.html

<comment><USER2> I read Isaacson's Kissinger biography - an excellent biographer; a well sourced and written book. Expect a real tome.

</comment><comment><USER3> I hope the book will be available for my Kindle.

More seriously, I've read his Franklin and Einstein biographies and they are great.</comment>


Why voicemail systems need to be optimized - <AUTHOR>

Shouldn't a voicemail say "Sorry [NAME] isn't here. Leave a message.... BEEP"<p>Not this way: "Sorry the person you have reached at 310-555-5555 is not available at the moment. If you would like to leave a callback number press 1 now. If you would like to leave a message please wait at the end to leave one or press 2... ... ... BEEP" <comment><USER2> That's intentional. More minutes wasted by customers results in more money in the pockets of the wireless telecom companies. (Overall.)</comment>