Using predictive analytics to spot students in danger of dropping out - <AUTHOR> https://mobile.nytimes.com/2017/02/02/education/edlife/will-you-graduate-ask-big-data.html <comment> d--b Instead of you know, having smaller classes and personal relationships with the students...

I mean this is completely backwards. "The computer is telling us you may have difficulties."

<comment><USER2> When I TA'd, I found that the students who ended up having trouble were the hardest ones to develop a relationship with. They never came to see me during office hours, never came to complain about grading, so I never had an opportunity to get to know them. When the end of semester came around and it became apparent how badly they were doing, it was too late to help them.

<comment> d--b You were a TA though, so you didn't have a lot of experience with these things. Perhaps after a few years, you would have been able to spot those who didn't seem to be catching on.

<comment><USER3> Or perhaps we could help experienced and inexperienced TA's alike with some kind of standardised analysis tools.

</comment></comment></comment></comment><comment><USER4> It's interesting to see basic math ability also predict nursing success. Here are some previous observations about math ability predicting programming aptitude: [https://news.ycombinator.com/item?id=8741868](https://news.ycombinator.com/item?id=8741868)

I wonder what's going on here. Perhaps math ability is just a proxy for "general intelligence," which is useful in all fields? Or simply correlated to the quality of student's schooling prior to arriving at university? Or perhaps it is indicative of character traits like perseverance and self-confidence?

As a math author, I can't help but think that unblocking people fear of math could lead to significant improvements in society. It sometimes feel like basic math is a "gatekeeper subject," that decides student's academic outcomes. Can't memorize these stupid facts that are being drilled into you at the age of 10? Then you will never finish college/university! It doesn't need to be this way...

<comment><USER5> I don't know if it reflects "general intelligence" but rather the ability to just sit down and think/work through something abstract (which is more about patience than inteligence.)

<comment><USER6> What do you think is abstract about high school math? Solving linear and quadratic equations, converting between forms, factoring, applying trig formulas, applying integral and derivative rules + regurgitating memorized ones, etc. were the most concrete tasks I was given in high school outside of gym class. Just follow the procedure you were taught, and if it doesn't work, you were either misremembering the procedure or sloppy in one of the steps.

The things I consider abstract were literary analysis papers, "identify the mystery element based on these lab results" chemistry problem sets, etc. where you had at most some small procedures to string together, not a single given procedure that would solve the whole task.

<comment><USER4> I guess the "abstraction" the parent refers to is the fact that math isn't connected to any _specific_ domain (e.g. history, chemistry, or bio), but instead it is an all-purpose tool. Also, an equation like a*x+b = c is not something you can touch or otherwise be familiar with from everyday experience.

(At first I wanted to reply and say how the procedural math skills you outlined in your comment are not what "real math is like" but then I remembered my high school math classes which consisted of exactly the same topics, taught without much explanations. No wonder everyone hates math...)

</comment></comment></comment></comment><comment><USER7> This would be useful... if universities know how to actually help people who they thought were in danger of failing. As it stands "help" is usually "creating a paper trail to prove to the feds that we tried", it's basically like getting fired in the real world with the main difference being that in college you at least have a sliver of hope even after the paper trail exists.

</comment><comment><USER8> So that's why they teach Organic Chemistry to aspirant medical students. It's not about the chemistry itself, which the kids won't ever need in the course of their professional life, it's all about pattern recognition skills. If you can't hack orgo because you can't spot a pattern you won't be able to do well in medical school.

<comment><USER9> Or, y'know, because the AMA has to come up with an endurance test to discourage challenges to their occupational licensure monopoly.

<comment><USER10> The AMA constrains supply by limiting the number of med school seats; the classes and coursework don't matter for that.</comment></comment></comment>


OpenGL and OpenCL are deprecated in MacOS Mojave 10.14 - <AUTHOR> https://developer.apple.com/macos/whats-new/ <comment><USER2> Discussed earlier: [https://news.ycombinator.com/item?id=17231593](https://news.ycombinator.com/item?id=17231593)</comment>


GTK 3.99 - <AUTHOR> https://blog.gtk.org/2020/07/31/gtk-3-99/ <comment> c-smile GTK still misses:

1\. Anything close to AdjustWindowRectEx() function. See: [https://docs.microsoft.com/en- us/windows/win32/api/winuser/n...](https://docs.microsoft.com/en- us/windows/win32/api/winuser/nf-winuser-adjustwindowrectex)

2\. MoveWindow(window,rect) where rect is window frame rectangle. Instead GTK has 6 other functions that do something close but no one of them do MoveWindow.

See: [https://stackoverflow.com/questions/58103333/set-frame- posit...](https://stackoverflow.com/questions/58103333/set-frame-position-of- decorated-gtkwindow-on-screen)

Windows has these functions, MacOS has their direct equivalents, but GTK does not have such, IMO basic, functionality.

Will we have anything like that in GTK4?

<comment><USER2> Wayland does not allow clients to make decisions such as the precise placement of windows for security and sanity reasons, so I do not think that these will ever be added.

<comment><USER3> Then Wayland is kind of stupid. Why is that restriction needed or why do the developers think that it is a good idea to have it?

For example, when the user has arranged the windows of an application in some way, and then wants to save and then restore the placement of windows, how should it be done by the application?

<comment><USER4> > how should it be done by the application?

It shouldn't be done by the application. It's the window manager's job to manage windows.

As a user, I absolutely do not want applications to be able to put themselves wherever _they_ want. The windows go where _I_ want, and the window manager gives me a single place where I can manage all that.

<comment><USER5> More specifically, I want to give _some_ applications the ability to place windows where they want, warp the mouse, grab certain keys globally, snoop input, and so on. And I want to give _other_ applications a small sandbox where they can't steal focus or hurt anything.

X11 could have been evolved in this direction by sandboxing applications within little mini-universes within the existing protocol. Windows solved this problem without breaking compatibility: [https://en.wikipedia.org/wiki/User_Interface_Privilege_Isola...](https://en.wikipedia.org/wiki/User_Interface_Privilege_Isolation)

I have a fundamental philosophical disagreement with the Wayland and GNOME camp. They believe that they can enumerate all interesting use cases and that each app should fit in one of their pre-defined boxes. I'm old school and believe in making systems that provide mechanism, not policy, and that give applications the ability to do unanticipated things.

<comment><USER6> Why don't you propose a protocol to solve the issues you have? If it solves a problem other users have it would get adopted I'm sure (except maybe GNOME).

I'm not a Wayland developer but it's what I observed in the issue tracker of my WM. A limitation is often overcome by a protocol and a basic implementation after. If you put the work in, the wlroots and KDE people are always very nice and will help you get started.

[https://github.com/wayland-project/wayland- protocols/tree/ma...](https://github.com/wayland-project/wayland- protocols/tree/master/stable)

[https://github.com/wayland-project/wayland- protocols/tree/ma...](https://github.com/wayland-project/wayland- protocols/tree/master/unstable)

[https://github.com/swaywm/wlr- protocols/tree/master/unstable](https://github.com/swaywm/wlr- protocols/tree/master/unstable)

<comment><USER7> They did propose a protocol: X11 plus sandboxing, modeled after the windows approach to sandboxing.

<comment><USER6> And they are free to continue adding features and maintaining their preferred software choices. Nobody else seems to want to do it. IIRC the X11 maintainers are the same people who started Wayland.

> [https://blogs.gnome.org/uraeus/2019/06/24/on-the-road-to- > fed...](https://blogs.gnome.org/uraeus/2019/06/24/on-the-road-to-fedora- > workstation-31/)

> Once we are done with this we expect X.org to go into hard maintenance mode > fairly quickly. The reality is that X.org is basically maintained by us and > thus once we stop paying attention to it there is unlikely to be any major > new releases coming out and there might even be some bitrot setting in over > time. We will keep an eye on it as we will want to ensure X.org stays > supportable until the end of the RHEL8 lifecycle at a minimum, but let this > be a friendly notice for everyone who rely the work we do maintaining the > Linux graphics stack, get onto Wayland, that is where the future is.

But we were talking about Wayland here. You're free of course to fantasize about hypothetical scenarios or propose features to software nobody wants to maintain.

<comment><USER8> One of the problems is that X is effectively being deprecated in favor of something that isn't X 2.0: it has different goals, different targets, different ideologies, and not to mention different architecture.

Eg Wayland is unashamedly Linux-centric (mind you, definitely not the same as Linux exclusive), while X most definitely isn't. One was designed to allow for remote rendering, one wasn't. One integrates the window manager functionality and one doesn't. The list of course goes on.

<comment><USER2> The things you list have not really been true in the real world for a long time. Modern Xorg uses the same Linux exclusive APIs as Wayland, is not network transparent, relies heavily on window manager and compositor features, etc. Modern Xorg and Wayland are more or less conceptually identical. Wayland just replaces the X server with a UNIX socket and has a clean slate for APIs.

<comment><USER9> 1\. You're conflating X and Xorg.

2\. Network transparency is still there and I use it everyday. The problem is toolkits (GTK and others) who decided it would be 'simpler' to redo everything themselves in a canvas. Of course the result of not taking advantages of X primitives was a massive slowdown over the network.

3\. Wayland sits at an odd place, not having the advantages of being a proper protocol in the sense of X (complete abstraction from the substrate), while at the same time not having the advantages of being a direct API to hardware (simplicity, performance).

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> The part of GTK+ I've always hated the most is how much it relies on GObject, which is probably one of the worst ideas ever conceived by mankind. Reinventing a whole object system using C and shitload of macros is such an aberrant idea I cannot even start ranting on why it's an utter abomination. The fact it was born mostly from the hate the GNU project always harboured for C++ is what has always bewildered me the most. I understand that C++ in the nineties was a steaming pile of manure, but basically reinventing a poor man's copy of Objective-C just because they desperately wanted to write their stuff in C, and nothing else, is just too much.

And for what? GCC was basically the reference implementation of an Objective C compiler, a language that basically boils down to an object system hastily glued on top of C. I don't think it would have been so unreasonable to use that instead of rolling their own... I guess they had their reasons for not doing that, or not cooperating with GNUstep for that matters.

The irony is that has led to the creation of a million language bindings, such as Vala, Gtk#, PyGTK, Gtkmm, gjs, ... just to lower the massive learning curve of writing GTK applications in C. This is something Qt has clearly never struggled with, given that I've yet to see a relevant Qt app not based on C++ or (recently) QtQuick.

<comment><USER11> I mostly agree with you, whenever I want to put a simple native linux gui on top of some tool I'm disappointed by the difficulty of the GObject api. However, one advantage is that the C abi hasn't budged as the binary lingua franca. The C++ abi can change, but that only happens every decade or so, so it's not that bad. The worse part is that most FFI libraries always support C perfectly and C++ is always "experimental". So you can quickly throw together a library for a language that wraps GTK without worrying about the ABI. The downside is, obviously you want to smooth over GObject in MyCoolPyGTK, so each library develops its own API which you have to learn over and over, and you end up with 12 tabs open of the shoddy MyCoolPyGTK docs, GTK docs, GObject docs, and reverse engineering how they talk to each other behind the scenes. /rant

<comment><USER7> > _However, one advantage is that the C abi hasn 't budged as the binary > lingua franca._

That's nice in theory, but hasn't gtk stopped providing API compatibility between minor releases?

<comment><USER12> That's not the point. The point is other languages don't have FFI for c++ because it doesn't have a stable/standard abi, so it's much harder to make bindings to qt than to gtk for most languages.

<comment><USER7> Version one might take a bit longer, but you don't have to re-write the qt bindings every three months.

I'm all for ABI stability, but without API stability, it's meaningless.

<comment><USER12> First of all Gtk doesn't require a rewrite every three months...

Secondly, at least for dynamic languages, you typically don't need to worry about wrapping Gtk's API, you just wrap GObject, and use introspection to dynamically generate classes.

</comment></comment></comment></comment></comment></comment><comment><USER13> It's a serious blast to the past, and not necessarily a good one, to see versioning treated like this, where they'll pick 3.9? as a form of alpha/beta/RC phases for 4.0.

I think semver (more-or-less a formalization of what was already becoming popular before semver got published) makes more sense. Go ahead and use 4.0-alpha.1, 4.0-beta.1, 4.0-rc.1 as needed. The strings still sort fine.

<comment><USER14> The problem is that "4.0" sorts before "4.0-alpha.1". Not saying that 3.99 is better, but something's gotta give.

<comment><USER15> If you're lexicographically sorting, maybe? But if you're doing that, 3.10 and 3.2 won't sort correctly, either.

<comment><USER16> Nah, this was never really about lexicographic sorting. Pre-semver, there was general consensus between systems like dpkg and RPM about how version numbers worked. This is a bit of a simplification, but it roughly works out like this:

* Split version number into version numbers separated by non-alphanumeric components (e.g., 3.10.2 becomes (3,10,2) and 3.2 becomes (3,2)).

* Compare two versions item by item numerically (in this case, 3==3 but 10 > 2 so 3.10.2 is newer than 3.2).

This is a massive oversimplification, and if you're curious you can read more at [https://fedoraproject.org/wiki/Archive:Tools/RPM/VersionComp...](https://fedoraproject.org/wiki/Archive:Tools/RPM/VersionComparison) for the gory details.

Source: long ago I worked at a company named Ximian that shipped a software update product that worked on systems using both RPM and dpkg, and I had to deeply understand this problem space.

<comment><USER17> Ha ha. _waves_

</comment></comment></comment></comment></comment><comment><USER18> Can someone point me to a roadmap/changes to be expected for GTK 4.0? I've looked on the blog and googled around, but couldn't find an authoritative source.

<comment><USER19> [https://gitlab.gnome.org/GNOME/gtk/-/milestones/1](https://gitlab.gnome.org/GNOME/gtk/-/milestones/1)

</comment></comment><comment><USER20> Anybody can share some recent experience with Gtk on Windows? In previous versions it worked, however results where quite "special" from a Windows point-of-view. Did they manage to get a more native feeling? Or is it still better to use wxwidgets on top?

I have some toy Qt projects for non-technical users, but with recent licensing stories around the Qt Company I'm looking at alternatives.

<comment><USER21> I tried gtk-rs on Windows last year (2019). Everything about it was alien.

\- The theme was Adwaita. [https://github.com/B00merang- Project/Windows-10](https://github.com/B00merang-Project/Windows-10) claims to be a Windows 10 GTK theme, but doesn't feel like Win32 to me. Win32 is mostly gray (with some white elements), while this theme is white.

\- The title bar buttons were "missing images" because vcpkg's GTK installation forgot to include images.

\- Using ShareX to Ctrl+PrintScreen (region screenshot), then clicking on a GTK window, included the shadow around the window. The shadow was custom- drawn, not delegated to Windows.

\- Dragging a GTK window to the side of the screen produced custom-drawn blue rectangles, not native Windows Aero Snap. Aero Snap was custom-drawn.

<comment><USER20> So still only an option for porting few special applications for making them available at all and nothing for building applications purposely cross platform.

</comment></comment></comment><comment><USER22> Is GTK 3 -> 4 expected to be as big a clusterfuck as 2 -> 3?

I'd really rather not go through all that again.

<comment><USER23> What were the problems with this transition?

<comment><USER24> There are so many that I could spend several hours ranting about them.

If you invested time and effort in writing GTK+ 2.x applications, the GTK+ developers spent zero time caring about API compatibility even for cases where it would have cost them nothing to maintain. They just had to rip it all out just for the sake of it, even when single line compatibility forwarding functions would have been entirely sufficient to avoid breakage.

This is the fundamental dichotomy with GTK+. Its developers want to hack on the toolkit itself for their own amusement and occasionally for GNOME features. They don't care about the needs of the application developers who would use their toolkit to write actual applications. God forbid it's used for its intended purpose. If you invested thousands of hours into using it, they will not bear that in mind as they rip out stuff people used for over two bloody decades in the name of "progress". Like GtkHBox. Gone. There since 1997 and used by every GTK+ application on the planet, but that's no reason to keep "old code"!

That's their choice. But other libraries like Qt do take better care of the interests of their customers and end users, and don't gratuitously break core functionality on a whim while chasing shiny new things. In the above example, the GtkHBox class is replaced by GtkBox with an "orientation" property.

Now, any sane developer would retain GtkHBox and simply implement it in terms of GtkBox with a defaulted "orientation" to horizontal. New way works. Old way works. No breakage. Everyone is happy. But they just had to rip it all out in the name of "progress". Consider how many instances of this there are in a large codebase. Hundreds to thousands in a big UI. The breakage was entirely avoidable and quite unnecessary. Maintaining the compatibility code would have been a tiny effort with a few one-liner compat functions, but ripping it out imposed huge problems upon every user of the library. "Cleanliness" needs to be traded off against "breaking end users", but they have the scale dialled all the way to one side, which is spectacularly unhelpful and inconsiderate.

That's just one class and one example. You could write a book enumerating all of the other instances. It's that bad.

No one who looks at this rationally in 2020 should be choosing GTK+ for a new project. You know in advance it will end in tears and frustration, as all of the value you created will be destroyed on a whim by developers who should know better, but go ahead and break everything anyway just because they can. That's their choice. But it's our choice to not get sucked into the bizarre world where this kind of software maintenance is considered in any way acceptable or justifiable. Seriously. These people are on another planet. What project intentionally gives the finger to all of their developer base? A really messed up one with nonsensical priorities.

Sorry if this comes over badly. If you can't tell, I've got a bit of pent-up frustration after spending far too many hours of my life trying to work around GTK+, submit patches which are ignored, and try to develop applications in spite of GTK+, not because of it. I should have just used Qt from the start.

<comment><USER25> >retain GtkHBox and simply implement it in terms of GtkBox with a defaulted "orientation" to horizontal.

I'm sorry, I understand your frustration but to me this is a terrible example and kind of makes the rest of your post look like complaining about a non- issue. This is exactly how it's already implemented in GTK 3. GtkHBox was deprecated there and slated for eventual removal, then it got removed in GTK 4 because the whole point of it is an API break and removal of deprecated functions. If this bothers you, you can keep using GTK 3 which is now considered feature-complete. The situation with GTK 2 was the same, you could keep on using it if you didn't want to bother updating your application.

<comment><USER24> Wow, that response demonstrates exactly what is wrong with this library and its developers.

"You can carry on using the old version" is a real cop-out which does not address the substance of the complaint in any way whatsoever.

Yes, I know it's being removed in GTK+4. You didn't _have_ to remove it. You chose to. And to hell with the consequences. You could have kept it pretty much indefinitely with near zero maintenance overhead if you cared about compatibility and the extent to which that core functionality was used.

I am always surprised at how much time gets wasted on trivia, and yet a simple maintenance issue like this is too difficult despite requiring much less effort.

<comment><USER25> I'm not a GTK developer so please spare me the shooting of the messenger. All I did was read their documentation. From what I've seen there are very few paid developers actually working on GTK. Everyone else is volunteers and none of them are interested in maintaining deprecated APIs for any protracted amount of time. Even with the removal of a lot of deprecated functions in GTK 4, there is still a ton of untested code sitting around that nobody really maintains. You're welcome to write tests for these and maintain an external compatibility layer yourself if you want, but it makes no sense to expect other volunteer developers to do this for you when the old versions are considered stable.

<comment><USER24> > "Everyone else is volunteers and none of them are interested in maintaining > deprecated APIs"

This is a complete cop-out. It's maintained by several RedHat employees as part of their duties, and a handful of volunteers.

Every software project on the planet, including commercial ones, is maintained with limited resources. The amount of development and maintenance which is possible is constrained by the available developer hours, and work is budgeted based on that.

The cost/benefit of maintaining the compatibility code is so low that it's not even worth the effort to remove it. The time taken to drop it was likely on a par with the time to retain it. It was already written. But the cost _imposed on all their userbase_ after removing it is absolutely huge. And it means that an application can't target old and new versions due to the break. That wreaks havoc with support lifetimes and imposes thousands of developer-hours of effort for porting. Lots of effort... just to get back to where you were. Unjustifiable.

I could understand if there was a huge benefit to be gained. But there isn't. And when you look at what they do spend their time on, so much is wasted on other activities that justifying its removal based upon developer resources wears a little thin. It's a weak justification which ultimately boils down to just wanting to, and completely ignoring the actual users of the library.

<comment><USER25> If the cost/benefit is so low then you do it. I'm completely 100% serious about this, I assume you have some customers lined up who are willing to pay for this so just take the money and don't worry about what anyone else does. Make it as an external library so you don't have to spend time convincing upstream to merge and maintain it. None of the existing volunteers are willing to do this work, and the paid developers get paid to work on what Red Hat customers pay them to work on, which evidently is not related to maintaining legacy applications at all. If they want to leave money on the table, that's their problem. There is nothing wrong about what you're saying but it's mostly hot air, you're preaching to the choir here.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> Good for them. Does this mean we're going to get a GNOME 4 as well? I'm quite curious to see what neat things the new version of GTK enables in practice.

<comment><USER27> While the toolkit certainly has an influence on all core apps that are part of GNOME, the shell is entirely independent of GTK. So, highly unlikely there will be a GNOME 4 any time soon.

<comment><USER28> Eh I bet there will be. Every Gnome/GTK version until 3.22 had the same version number and were released at the same time. The only reason that stopped is because GTK 3.22 was supposed to be "stable" and "the last GTK 3" version while Gnome still wanted to do updates.

</comment></comment></comment><comment><USER29> Anyone know if they've finally added thumbnails aka "icon view" to the file picker?

<comment><USER30> That would be an issue with the GNOME DE, not the GTK toolkit.

<comment><USER29> Nope... it's been an issue in GTK's tracker for over 16 years. They would have passed the buck long time ago if it wasn't their issue.

<comment><USER30> I stand corrected.

</comment></comment></comment></comment><comment><USER31> Telegram has shown the enormous potential of Qt with the latest update. Not that I have a horrible time with GTK, but Qt just feels better and lighter overall. qutebrowser is another example of the amazing potential of Qt.

<comment><USER32> Personally, I much prefer GTK apps over Qt ones. What makes you think that Qt does it better?

<comment><USER24> Qt doesn't even compete with GTK+, it's in an entirely separate class which GTK+ will never reach. It's an entire application development framework of over a dozen libraries, only a few of which are related to GUI functionality. And for the libraries where there is overlap e.g. QtCore and QtWidgets, the Qt design and functionality is again such a step up that it's not even worth comparing.

GTK+ is a simple and limited X11 toolkit. It can be visually attractive. But it's not something you would chose rationally based upon features, code quality, code maintainability or having a good developer ecosystem and support. Because it would come in last place on every metric, unfortunately.

There are very good reasons people don't use GTK+ for commercial projects. Or even open source projects, unless they haven't learned the hard way yet. Fundamentally: its developers don't prioritise the needs of the very application developers who should be their primary customers.

(I used to develop open source and commercial GTK+ applications. What a huge waste of time and effort that was. Utterly soul destroying how many unfixable bugs I had to find and work around.)

<comment><USER33> > It's an entire application development framework of over a dozen libraries, > only a few of which are related to GUI functionality.

Do you not consider GLib and associated libraries to also fulfill this application development framework role?

<comment><USER24> Good grief, no! It's not remotely comparable to the array of Qt libraries. Can it handle XML parsing, XSLT transforms, SVG rendering, database access, OpenGL scenegraphs, gamepad input, networking, chart rendering. No. It doesn't even do one of them, and that's not even the full list.

GLib is a set of basic C functions for missing standard library functionality which range from acceptable to awful. An "application development framework" it is not. It's a set of simple helper functions and some primitive containers with so-so performance and very little safety.

Use the C++ standard library and avoid 99% of it with containers that work properly and classes that aren't fragile because you're still pretending that C can do object orientation and object lifetime management sanely. It can't. Constructing vtables by hand with GObject might be clever to prove a point, but it's no way to write a robust application that the compiler can actually type check and that static analysis can find problems with.

<comment><USER25> >XML parsing, XSLT transforms, SVG rendering, database access, OpenGL scenegraphs, networking

Off the top of my head there is libxml2, libxslt, librsvg, libgda, libclutter (and now GSK with GTK 4). Networking is included in the gio part of glib.

Unfortunately there are no good gtk/gobject-style libraries for generic gamepad input or chart rendering as far as I'm aware.

<comment><USER24> > Off the top of my head there is libxml2, libxslt, librsvg, libgda, > libclutter

None of which have anything to do with GTK+ as an application development framework. They are independent projects.

<comment><USER25> These are the libraries that most GTK applications are using for those purposes. You can bikeshed about whether they call themselves an application development framework or not but Qt is also split up into separate projects in separate git repositories like this.

<comment><USER24> The Qt libraries are released together as an integrated whole, all using common functionality in QtCore and being designed to work together.

The libraries you mentioned are a random collection of unrelated open-source libraries. There is no comparison. It's not "bikeshedding" to point out a completely baseless argument.

<comment><USER25> As far as I can tell, those projects I mentioned are all either maintained by GNOME developers under the GNOME umbrella, used in a large number of GTK apps, or they use glib/gobject and make extensive use of the same design patterns as GTK. It's confusing to me how you're trying to say they aren't designed to work together. The situation is the same as Qt, the only difference there is that it's centered around their C++ QObject design patterns.

If the argument is that the Qt libraries are all developed together by paid Qt Company developers then sure, that's true, the libraries I mentioned aren't like that where one company is working on them. But that's different than saying they're designed to work together.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment> Const-me I use it as needed, but I think it's way too complex overall.

Here's an example: [https://github.com/Const- me/Vrmac/blob/master/RenderSamples/...](https://github.com/Const- me/Vrmac/blob/master/RenderSamples/09-VideoPlayer/GTK.cs)

Win32 equivalent: [https://github.com/Const- me/Vrmac/blob/master/RenderSamples/...](https://github.com/Const- me/Vrmac/blob/master/RenderSamples/09-VideoPlayer/Win32.cs)

</comment><comment><USER34> What a bargain! All that amazing software for just $3.99 :)

But seriously, thanks folks. Enjoying your stuff every day

</comment><comment><USER35> GTK is openly hostile to 3rd party developers and theme makers, ever since gtk became synonymous with gnome (around 3.0). This is going to be a nightmare for open-source developers and distros, which will likely be forced to support both for a long time to come.

Me? I'll keep writing tcl/tk applications. It's stable, cross-platform, and did I mention it's stable?

</comment><comment><USER36> Does the .99 versioning irk anybody else? It seems like a very inelegant solution.

<comment><USER37> Using negative numbers (like 4.-1) would be worse, because of version string parsers using '-' as a delimiter.

</comment></comment><comment><USER19> Still waiting for an acrylic blur (or some other type of blur) to bring Gnome to parity with modern desktops.

<comment><USER38> I don't understand what you're asking for. Can you explain?

<comment><USER39> Transparency with a blur effect for windows. So you can see some of the color that's behind them without all the detail. I'm... not really a fan of it. It drives me crazy in windows that terminal transparency is for the entire window (even the text!) and not just the background.

<comment><USER19> I don't think anyone is asking for the blur to encompass the text in a terminal. Is this a bug? I could have sworn when I used Windows Terminal that this wasn't the case, but it has been a while.

<comment><USER40> If you turn on the acrylic mode, yeah, it covers the whole window. I have the preview of WT installed here and acrylic looks awful compared to how it did back in Windows 7. Probably a function of the way Microsoft wants you to use it in "modern" Windows 10 as opposed to Windows 7 as there are marked differences in how acrylic looks compared to the Windows 7 era and less configurability.</comment></comment></comment></comment></comment>


Vitalik Unveils Ethereum 2.0 Roadmap - <AUTHOR> https://medium.com/@Cobinhood/vitalik-unveils-ethereum-2-0-roadmap-conference-notes-505270a48674 <comment><USER2> It strikes me as an (non-invested) outsider that Ethereum seems to benefit from having a figure like Vitalik who can act as a Torvalds-esque figurehead, setting the project's technical direction. And that, in contrast, the non- participation of Satoshi Nakamoto has left a power vacuum at the heart of Bitcoin, which results in the kind of bloody and attritional battles required to move it forward. Because everybody and nobody can claim to be the heir to Nakamoto's technical vision.

Clearly Ethereum has had more than its share of problems, but as things stand, I feel it has a greater chance of becoming a truly disruptive technology than Bitcoin, which seems to have become stuck in a technical quagmire.

<comment><USER3> > Ethereum seems to benefit from having a figure like Vitalik who can act as a > Torvalds-esque figurehead

If Vitalik got hit by a bus tomorrow Ether price would drop 95%. A currency does not need a leader who directs it. Also it should be very difficult to make changes to a 150 Billion $ currency.

<comment><USER4> Ethereum is not a currency though. It's a decentralised platform to build apps on, like the App Store. ETH is the oil that pays for the decentralised processing resources used by said apps that are run on the platform.

A platform that isn't finished needs a leader, and I would say Ethereum needs a leader a lot more than Bitcoin. If all development on Bitcoin would stop tomorrow, it would still keep running and have a potential future as digital gold. If all development on Ethereum would stop tomorrow, it would most likely fail as a project. The value proposition is very different.

Also, since oil isn't very useful without something to use it in (a car, plane, other use cases), it actually makes perfect sense (to me).

ETH could very well also become a functional currency once the supply gets capped in a future hard fork. But for now, it's more oil than currency.

</comment></comment></comment><comment><USER5> For those interested, the videos from the livestream are available here: [https://www.youtube.com/channel/UCVmRAQeesq4TA3rdvbz- IkQ](https://www.youtube.com/channel/UCVmRAQeesq4TA3rdvbz-IkQ)

The presented material by Vitalik is largely similar to his Devcon 3 presentation. Most (all?) Devcon 3 videos were just posted today as well: [https://www.youtube.com/channel/UCNOfzGXD_C9YMYmnefmPH0g/pla...](https://www.youtube.com/channel/UCNOfzGXD_C9YMYmnefmPH0g/playlists)

For those that don't like watching videos, here's the FAQ which summarizes sharding: [https://github.com/ethereum/wiki/wiki/Sharding- FAQ](https://github.com/ethereum/wiki/wiki/Sharding-FAQ)

And here's the actual code for the sharding python poc: [https://github.com/ethereum/sharding](https://github.com/ethereum/sharding)

</comment><comment><USER6> Protocols like IPFS, BitTorrent produce tangible value for the users. In all fairness it would be nice to see them getting at least something in order of $10 million for their nice effort.

These new ICO's are manufactured to give the company that develops them hundreds of millions or even speculative billions in paper.

How long until people realize again that these products have near-zero marginal cost?

Artificial scarcity can be circumvented by just copying Ethereum and creating cheaper alternative.

<comment><USER7> Ethereum produces tangible value for it's users: transferring money and ability to create ICOs (just to name two). People value transferring money. It's a challenging technological task, which the humanity has been trying to solve for many years. It's a task that many people find useful. You don't mind paying 3% to your credit card company, do you? Even if you do, evidently many people around the world don't. Why is Ethereum (or another cryptocurrency) not considered "tangible value"?

It wasn't clear if you were talking about actual Ethereum itself or any of the ICOs that are based on it. If you were talking about ICOs, the answer is even simpler: they are just like stocks. It's like you asking "why are people giving all this money to that company?". It's because some of those companies have a business, or a business idea and people want to support it. (There are scams too, of course, but sometimes it's not easy to know which one is real and which is a scam, and so people take chances.)

> Artificial scarcity can be circumvented by just copying Ethereum and > creating cheaper alternative.

You're welcome to try, if you think it is so simple. Ethereum Classic-people have tried, and they even had an actual legitimate reason (the DAO hack), not just a vague "we want to create a cheaper alternative" motive. Look at the price charts and see how well it went for them.

<comment><USER6> >Ethereum produces tangible value for it's users

Yes. I agree.

The potential capital efficiency for for these services is vastly greater than credit cards. You are trying to undersell the potential in distributed computing platform and smart contract technology if you defend the current cost structure.

The promise of these technologies is to reduce cost of financial transactions almost without limit.

Lets look into the future of efficient and revolutionary transaction and smart contact technology.

If billion people do 10 transactions per day (alternatively 10 billion 1 transactions per day) with cost $0.01 per transaction, the cost of this service would be only $10 million per day or 3.65 billion a year. Remove the operating costs in competitive markets and the profit margins will be extremely low.

The beauty of efficient established markets is that profits will be driven down. Artificial scarcity created by different coin protocols is temporary phenomenon. It dies when the hype dies.

</comment></comment></comment><comment><USER8> Interesting to see how Ethereum pops up whenever technical aspects are revealed and how Bitcoin pops up whenever the price crosses some boundary.

<comment><USER9> Just because you don't know why something is going on, doesn't mean it's arbitrary.

In this case it's because of a path to mass adoption: [http://coinivore.com/2017/11/26/bitcoin-reaches-time- high-95...](http://coinivore.com/2017/11/26/bitcoin-reaches-time- high-9500-top-south-korea-bank-tests-bitcoin-wallet-vault/)

<comment><USER10> Mass speculation

<comment><USER9> That's like, your opinion, man.

</comment></comment></comment></comment><comment><USER3> Any time I read about Ether I think about this -

"12 Million ETH were created to the development fund, most of it going to early contributors and developers..."

At today's rate that's $5,860,200,000 USD. Who were these early contributors, how much did each get, and why do they get to have 12.5% of the entire economy on day 1? How is that a fair currency? I've read there were only 60 some "early contributors". Where's the list?

On their FAQ, under "Is the ether supply infinite?" there are two paragraphs of goobly gook basically saying "we haven't decided yet" ("an area of active research").

How can anyone take this currency seriously? What is so special that makes you invest in this instead of Bitcoin?

<comment><USER11> Because Ether is actually usable (even without smart contracts) as a form of money since the transaction fees are really low compared to Bitcoin. When you pay somebody using Bitcoin, you currently pay $5 to $8 as transaction fee and it needs about 1 1/2 hours for the money to arrive. When you use Ether, you only pay $0.25 (or even lower) as a fee and the system needs less than 20 seconds to confirm your transaction.

The Bitcoin model is simply unsustainable if the exchange price continues to explode.

<comment><USER12> Bitcoin also worked ok before the number of transactions went high, is ether protected from that kind of thing? If for example amount of ether transactions go up 3 orders of magnitude?

And it would be nice to have even smaller fees on Ether and transaction time less than a second, so it could be better than VISA/Mastercard.

<comment><USER4> Afaik Ethereum is already processing double the transactions of Bitcoin, very cheaply, and near instantaneous (e.g. little to no transaction backlog).

The issue of Bitcoin is not the technical part; it's that no consensus can be reached between people on what is the right course of action, leading to multiple forks of the network.

<comment><USER3> > Ethereum is already processing double the transactions of Bitcoin

Take a look at the charts here, [http://bc.daniel.net.nz](http://bc.daniel.net.nz)

It's not "free" to process more transactions. At some point you are no longer p2p and decentralized when the requirements to run a node go up so high, so quickly .

<comment><USER4> I'm not sure on the exact details, but I believe those are full nodes. I believe there are also light nodes that are only a few gb in size when you sync them (e.g. a lot of the historical less relevant data is truncated).

I'm assuming those full nodes will eventually be intended to be run in data centers.

</comment></comment></comment></comment></comment></comment><comment><USER13> Great vision. Ethereum still has a long way to go but it's great to see this roadmap, together with the increasingly crowded Ethereum developer meetups.</comment>


SearchMe Launches New Search Engine With Heavy Backing From Sequoia - <AUTHOR> http://www.techcrunch.com/2008/03/11/searchme-launches-new-search-engine-with-heavy-backing-from-sequoia/

<comment><USER3> I beta tested this service today and I am little impressed with this search engine. The thing I liked about this service is that the screenshots of the webpages are prominent and gives fair idea about the contents unlike Google where the results become fairly blind and some times we just have keep on clicking many links till we land on required page. Its also unlike Snap service, where the screenshots are small and even if they are large on their homepage, the navigation is is not as smooth. But, I guess there is long way to go for this service till we can compare it with Google, because the search results are very poor for atleast the keywords I searched. For "Tom Cruise", the the wiki page was right at bottom and imdb was nowhere in the sight. The top results were of some less profiled webpages. One more poor point is that the metadata or the text details for the results are also very poorly integrated, making it hard to find out the details about the results.

</comment><comment><USER4> Dubious benefit. $31M in VC huh? I'm not sure you can't produce something with equally dubious benefit, with the fancy coverflow interface, with the Yahoo Search API and say, a Websense URL categorization database.... in a matter of an hour

Also.. how is this going to work for Flash based resources??

<comment><USER5> > how is this going to work for Flash based resources??

Thumbnailing Flash is fairly trivial if you take a bitmap from a browser rendering component. Indexing Flash is more of a PITA.

</comment></comment><comment><USER6> When I saw the Coverflow idea, I didn't think, "Aha! Time to take on Google!" But then again, I didn't imagine it used on a touchscreen iPod, either. So who knows.

</comment><comment><USER7> When I search using Google, I use the context (e.g. the text excerpt) of the search results to decide which search result to choose more than the ranking.

I would like to see create a VR-type search experience - with a cocktail-party type auditory experience - where as you moved to another search cluster - <USER2> context of that cluster would increase in volume and as you moved away, it would decrease. Or maybe this makes sense only to me.

</comment><comment><USER4> ok.. well just to prove point..

<http://www.80concepts.com/sillyme/?q=diamondback>

If anyone has a websense categorization type database, I could categorize this in 30 minutes.

$31M, that's not much to show for it.</comment>


Physician Training Stress and Accelerated Cellular Aging - <AUTHOR> https://www.biologicalpsychiatryjournal.com/article/S0006-3223(19)31329-0/fulltext <comment><USER2> Residents don't sleep much, so this doesn't surprise me at all.

Related, the residency process needs to be massively reformed. The flimsy justification for making people responsible for human lives work 80 hours a week is usually that the long hours help them learn faster. But that's really BS. The brain has an incredibly hard time forming new memories when sleep deprived.

I know a couple of nurses who often talk about how spaced-out residents are at night. They'll page them to consult on something, usually waking them up. The residents will usually just blearily agree with whatever the nurse was planning on doing, so they aren't getting in meaningful physician supervision.

<comment><USER3> The pioneers of the modern residency system were fueled by copious amounts of cocaine & other stimulants. Perhaps we need to reevaluate the requirements & expectations we place on medical residents today. It's essentially a form of professional hazing, and I personally know many surgical residents that are literally operating on people today while absurdly sleep deprived (by no fault of their own, just the insane hours of their program).

That said, if whoever's operating on me is running on 3 hours of sleep I'd rather they be hopped up on stimulants than not...

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

<comment><USER4> One time I met with the head of an union and he told me many tough jobs (mining mainly) were perfomed while on drugs, which aren't available anymore causing all kinds of issues for the workers. I wonder if there was truth in that statement and maybe some formal research on this.

<comment><USER5> As I recall, the CIA did do a fair amount of this research on this, up to and including implanted cortical stimulators, which created some serious backlash.

Getting prescribed "on/off" switches in pill form is a well-known thing in the military. You just can't do combat air patrol over remote areas of Asia without some uppers. This quickly went from the pilots (mid-grade officers) and other fight crew, to being adopted by folks who have to go halfway around the world routinely (flag officers).

It's an active topic of conversation, some do, some don't. As a military physician who was a line officer and has been through 5 years of graduate medical education (internship + residency), and now occasionally has to do those round-the-world trips, it's not clear to me that there's an obvious right answer in policy or per-person. We (leaders and followers alike) expect leaders to function at the outer limits of human capacity, and have for a long time. I can tell you this: it doesn't get easier with age: a fairly common definition of success as a leader is proving your ability to take on more responsibility, so the more you do, the harder it gets. So avoid starting early.

</comment></comment></comment></comment><comment><USER6> I've worked on a human performance assessment program for nearly 10 years.

We induce stressors cross the spectrum to better inoculate volunteer candidates from stress and enhance their resiliency.

They are often suffering from sleep deprivation/deficit.

We have very robust safety procedures in place.

After observing hundreds of volunteer candidates in depth over nearly a decade, I would say that sleep deprivation/deficit is an exceptionally and deceptively dangerous problem.

Akin to carbon monoxide poisoning in a way.

Members of the military and first responders may need to operate for extended periods with little to no sleep/rest. And that includes physicians in training for things like mass casualty scenarios.

So it IS worthwhile to possess "reference points" of personal adversity to manage decision making while stressed.

But to LIVE a sleep deprived life of a physician resident is nothing short of madness and a recipe for failure.

I've been under Assessment. And it certainly feels like it ages you prematurely. And anecdotally, it appears to do so to many of our candidates. Temporarily.

I've had my telomeres measured a few times.

Fortunately, active effort to target 7+ hours of daily consistent sleep, fitness, nutrition, and other choices seem to play a factor in outlier telomere length.

Or I'm just lucky.

Just because we have always done it this way with residents, doesn't mean we should.

<comment><USER7> >We induce stressors cross the spectrum to better inoculate volunteer candidates from stress and enhance their resiliency.

Oh god. That gives me flashbacks to university. They gave us this super messed up exam schedule - writing majority of waking hours & not knowing what class/course/topic you're walking into. Asked the profs WTF is up with the cruel exam plan and that was that exact answer: The professional exam (country's CPA equivalent) is structured like this so yeah we structured your exams to intentionally & artificially create stress. Dry run for that level of unreasonable pressure. Never occurred to me that my uni profs might be out to intentionally stress me before that comment.

Speaking of residents - that's a key thing that gets me through all that stuff. Reminding myself that I'm not a surgeon...nobody dies if I screw up. I can do crazy stress, long hours, little sleep like a boss but 99% sure I could not emotionally do that if my steady hand determines whether someone lives. The people that can - happy concede that they are a better man than I am.

<comment><USER8> > The professional exam (country's CPA equivalent) is structured like this so > yeah we structured your exams to intentionally & artificially create stress.

Even on second and third thought this seems insane. I can understand doing it on something that turns out to be relatively inconsequential as a learning experience, but doing it for people's PEs and final exams? That sounds like a great way to overwhelm every possible feature related to engineering quality in favor of "how well do they survive an unrealistically horrible stress- test". Because, like you said, _nobody dies if you screw up_. Being able to handle acute stress is not that useful for a civil engineer or similar. Teaching people to handle chronic stress? Maybe, but the research I see says that there _is_ no way to deal with chronic stress and even attempting it damages you, potentially permanently. Acute stress, nope.

<comment><USER7> >this seems insane

A little bit. Big part of the issue was that the professional exam results were published by originating university.

So there was this really perverse incentive for universities to send only the most battle hardened candidates into the process to kept the very public stats on the uni's performance on these independent professional exams high.

And if you think that's wild - it gets better. This being HN: Some enterprising genius looked at this entire process and decided he's going to set up a recruitment company that does nothing other than exporting survivors of above process. Literally park them anywhere globally - nothing really matters & nobody cares where cause clearly these guys can cope and collecting a juicy placement fee is easy money. One of the best/safest business models I've ever seen - leverages a beautifully subtle anomaly in the global labour market that isn't immediately obvious to outsiders.

>Being able to handle acute stress is not that useful for a civil engineer or similar.

Alas in my particular world (Accounting/auditing) it is. 3 months of soul crushing stress and rest of year is more relaxed. Rinse & repeat.

>Teaching people to handle chronic stress?

That's one saving grace I guess. I find that 3 months of intense stress is bearable. Or rather it's about the limit of my endurance.

Certainly not healthy - talking about this purely practically.

<comment><USER8> > Alas in my particular world (Accounting/auditing) it is. 3 months of soul > crushing stress and rest of year is more relaxed. Rinse & repeat.

Cripes.

And I bet that the soul-crushing stress even after you've gotten the license is probably because you don't have enough people licensed to do the work, which in turn is because the universities try to keep their stats high which artificially restricts the supply. And there's probably a feedback loop going on where the industry considers the stress "normal" and adds it to the PE because "that's how the industry is and you need to be able to handle it", normalizing the deviance and inducing evaporative cooling [1].

No offense, and thank you for being able to handle your job because auditing is one of those things that's certainly necessary for the smooth functioning of civilization and it really sounds to me like the supply of that capability is dangerously restricted, but... yet again I am thankful that my interests guided me to a career in software engineering.

1\. [https://www.lesswrong.com/posts/ZQG9cwKbct2LtmL3p/evaporativ...](https://www.lesswrong.com/posts/ZQG9cwKbct2LtmL3p/evaporative- cooling-of-group-beliefs)

<comment><USER7> Yeah sometimes I wonder about that career choice of mine. Software or actual engineering would have been cool.

>it really sounds to me like the supply of that capability is dangerously restricted

In some countries yes quite restricted, don't think dangerously so. Way more scared of them rubberstamping poor candidates. Plus auditing isn't particularly difficult to be honest.

>one of those things that's certainly necessary for the smooth functioning of civilization

Maybe. I'm not 100% convinced. I'll definitely take the job security though.

</comment></comment></comment></comment></comment></comment><comment><USER9> A decade or two back, the US Navy used the recruiting slogan "Accelerate Your Life."

On submarines, it wasn't uncommon to see men who looked unusually old: full head of grey hair before age 40, perhaps.

I have never been a medical resident, but submarine service can be pretty damn stressful; we jokingly called the service "the life accelerator" because of how fast people seemed to age.

I always chalked it up to natural deviation, but maybe it'll turn out to be a genuine effect of sustained stress.

<comment><USER10> Are submarines more stressful than surface ships? I was never in the Navy but I've heard surface warfare officers complain that they were constantly sleep deprived. Between standing watches, training, maintenance, and managing subordinates they barely got a few hours of poor quality sleep per day.

<comment><USER11> Subs keep their air at significantly lower oxygen concentrations for fire safety reasons which may contribute to the stress. I had a teacher tell stories about sailors putting bags over whatever emitted the oxygen and then breathing it directly.

<comment><USER10> The average PPO₂ on submarines appears to be no lower than the air in Aspen CO. People living in Aspen don't age faster than normal. Since higher oxygen levels cause oxidative stress in the body it's even possible that lower oxygen might protect against some aging symptoms.

<comment><USER12> Isn't the new meta that aging isn't due to oxidization but to an impairment to the body's anti-oxidization mechanism _due to under-oxidization_? Because, if that's the case, more oxygen would slow your aging by putting your anti- oxidization system to work.

None of this is oversimplified and stupid.

</comment></comment></comment></comment></comment><comment><USER13> Not surprised at all. I have friends still in med school. Apparently there's an exam called the Step 1 where you can only take it once, and if you pass but don't do well enough then you get shipped to somewhere not great to do your residency. I thought the hardest part was the MCAT but I was totally wrong :(

<comment><USER14> Step 1 can be retaken, along with all the other exams of the USMLE.

<comment><USER13> You're right; you can retake the Step 1 up to six times. However, you can retake it if you fail, you can't retake if you pass. AFAIR that's what my friends were worried about; you can retake if you fail but if you were planning on failing why retake it. It's the pass with a low score that sends you to a bad place.

<comment><USER15> Correct.

</comment></comment></comment></comment><comment><USER16> Just graduated from medical school. Started out with 0 gray hairs. Now I have salt and pepper hair on the sides. Not worth it.

</comment><comment><USER17> North American Neurosurgeon here. My opinions are based on my personal experience and my understanding of the literature. I am not an expert in residency well-being or work-hour restrictions.

First: the literature is unequivocal about the effects of chronic sleep deprivation. This cellular aging article fits within what is known already. Sleep deprived humans are dumber, more stressed, and now age faster that non- sleep deprived humans.

The tacit assumption for work-hour restrictions is that sleep deprived physicians result in inferior medical care for patients. It turns out that the literature does not support the tacit assumption. When researchers looked at complications/mortality pre- and post- work-hour restriction, there was no difference. This result is somewhat counter-intuitive, and has been reproduced in various contexts. The one mortality benefit that has been for physicians themselves: less physicians get into car accidents after their call shifts. It's worth noting that there is literature to suggest that less ICU errors are made by sleepy residents, however, this also didn't translate into mortality differences.

So what's happening? There are a few interpretations of these results. The first is that resident physicians really aren't important for patient care, and that the majority of care provided comes from attending physicians. For anyone who has been admitted to an academic institution, this interpretation is silly and is unsatisfying.

The second is that there are sufficient checks and balances. When a sleepy physician makes a silly mistake, nurses can catch errors "this patient has an infection; are you _sure_ you don't want to start antibiotics?" and pharmacists can catch errors "You ordered a hundred times the lethal dose. I'll correct that for you." When the day-team comes by and hears about the patient, they can quickly fix the errors made. Having made some silly errors myself, this certainly plays at least part of what happens.

The third is that most of medicine is rote. Frankly, after a few years of doing the same thing over and over again, you don't really need that much brain power to do a lot of medicine. I have admitted hundreds of people with brain tumors over the years, and the immediate workup and management for the majority for patients is identical. I can do this in a sleep-deprived state. I am not saying that some cases are more complicated than others. As a HN analogy: consider how much sleep you need to print "Hello World!" in your favorite language.

The fourth is that the ability to capture complications / mortality is increasing at the same rate as residency work hour restrictions are resulting in better patient care. In other words, we're searching and finding problems we wouldn't have caught otherwise. It's hard to counter this argument, but I don't know of any data for or against this position.

There are certainly more reasons, but I think the point is made. It's not obvious, it's multifactorial, but it's definitely robust.

OK, so the obvious question is this: Why do resident physicians need to work so hard?

First, let's look at the statistics. Suppose you're providing neurosurgical care for a catchment area of a million people. Brain tumors, as a category, affect 1:10,000 people. This means you'll be admitting 100 new brain tumors a year. However, not all brain tumors are the same (in fact, depending on how you want to slice the pie and what you consider a tumor, there are on the order of 200 different tumor diagnoses). Some tumors are common (e.g. metastatic lung tumors) and some are literally a one in a million diagnosis. In order to see the gamut of tumors in your training, you simply need the time in hospital. In my estimation, brain tumor surgery has a mean of 3.5 hours, with 95% of the cases being between 90 minutes and 24 hours. This means that the average academic center is doing at most two tumors per day. The argument here is that you need the hours to see the cases. There's no doubt that sleepier doctors learn worse than non-sleepy doctors. But I can tell you that I have participated in very rare operations in sleep deprived states, and I remember the approaches much better than common operations I've seen in non- sleep deprived states.

Suppose we are interested in maximizing physician well-being, regardless of the literature supporting patient outcomes. The simple solution is to simply restrict work hours. So, who runs the hospitals? One approach is to hire more residents. Well, residents eventually need jobs. Suffice it to say, swamping the medical profession with more doctors who have less training is not an intuitively satisfying solution to the problem. Moreover, more doctors means more handovers. Increasing handovers has been shown to result in order more unnecessary tests for patients, and to result in inferior patient care.

Restricting work hours means that surgeons may have to train longer. Well, at minimum in the US, becoming a neurosurgeon is 4 + 4 + 7 years of post- secondary education (undergraduate, medical school, residency -- residency used to be 6 years). Many residents choose to become subspecialists, adding another year or two (or possibly 3 or 4). Further work hour restrictions could turn the 15-year training process into a 16 or 17 year process. Fair enough, this could solve the problem. But really? From a purely economic perspective, this is silly. Think of the opportunity cost of educating yourself for 20 years (i.e. 20 years of debt) to work for 25 more before being asked to retire.

Suffice it to say, it's a tough problem. In recognition of this last point, many specialties are moving towards competency based training. That is, graduating surgeons when they meet a competency rather than having spent sufficient time in hospital. This is a no brainer in other fields (e.g. flying planes, building bridges). While this is in fact reflecting the times (greater emphasis on patient safety than in the past), there's no doubt in my mind that this is being implemented because those in power feel that they are graduating surgeons less competent than the generation before them.

This last point, is in my opinion, the important question to ask. If anyone knows of any literature about this last point, I'd be grateful.

<comment><USER18> It sounds like the strategy is put in a lot of hours doing routine cases (where little learning happens) in order to experience the rare cases. This seems inefficient? Couldn't residents be called in to look at the rare cases?

I guess they would need to be close by when it happens, but that doesn't seem to justify sleep deprivation?

Or maybe there are other ways to increase the odds of seeing a rare case?

<comment><USER19> This is the difference between coding the solution to a tough technical problem yourself versus watching someone else code it.

There can only be so many assistants.

<comment><USER17> I'm told by my anesthesia friends that it take about 6 weeks to train someone to be technically proficient at putting someone to sleep and waking them back up again.

The five years of training are needed to understand why you're doing it, and to see enough disasters to know how to get yourself out of the disaster situations.

While I don't fly planes, I would imagine flying a plane would be similar.

I also drive a car. While I was technically proficient while I got my license, it took years to get to the point of predicting the behavior of other drivers on the road, and to not panic when unexpected events happened (hydroplaning, odd pedestrian behavior, etc.).

<comment><USER19> It's a similar telescoping training problem in Radiology. We can train someone to have basic proficiency in interpreting a specific imaging examination in a relatively short period of time, but building the knowledge base, following up ambiguous diagnoses with pathology correlation, and seeing sufficient volume requires 5 years after internship. This doesn't even include all the knowledge we have to know for image acquisition, artifacts, and protocol design/QA. After all, you don't see what you don't know.

Yes you can look at case books and question banks and sample teaching cases, but until you are dictating the case primarily and have to decide whether to call a diagnosis which will have profound downstream treatment implications, it's a very different experience. While most specialists are comfortable with their area of imaging, I'm talking Radiologists remote reading cases for a rural location, where their report will determine if the patient is transferred and to where, with significant costs to the system and the patient if they are wrong.

I'm not sure how to "fix" it other than adopt a variant of the "commonwealth" competency-based system in Australia, where residencies have "usual" terms but if someone is competent and willing to sit the board certification exam early, they can try.

</comment></comment></comment></comment></comment><comment><USER20> Do intense residencies make better doctors or is this one of those self destructive cost saving measures?

Sort of reminds me of the concussion situation in football. Some coaches, I believe especially college level, are looking at subbing in other training methods to reduce on field practice time and thus chance for injury. Maybe walking the hospital floor 12 hours a day isn't the best training.

<comment><USER21> I think a lot of it is just hazing. Attendings probably feel like just because they were given a hard time during residency they need to do the same to the newcomers.

</comment></comment><comment><USER14> Procedural specialities will always need an extreme amount of hours spent honing their skills. Considering that your experience is the basis for a good outcome for your future patients when you are solely responsible, you know that the more you work the better off you'll be.

The procedural specialities operate on a hierarchy that emphasizes underlings doing most of the grunt work while senior residents can be all day in the operating room. There's likely a better way to do it, but this is how it has been done for decades and just won't change.

<comment><USER22> Perhaps working 50 hour weeks and being well rested would result in faster and more efficient learning than working 80 hours. Yes - you have to do your time, but humans don't learn well sleep deprived.

You could try and force them to work 100, or 160 hours per week and I suspect you'd rapidly find quality of work and learning nosedive.

I think it's worth considering 80 hours is already on the wrong side of that curve.

</comment></comment><comment><USER23> Is the medical profession finally looking in the mirror?!?</comment>


Ask HN: What helps you push through? - <AUTHOR> When you are overworked, tired, have low motivation to continue and possibly on the brink of burnout.. what helps you drive what you're working on to the finish line? <comment><USER2> Exercise. Enough sleep. Good food choices. Take care of the body first, then, (for me) things that make me laugh in a wholesome way. Hugs from loved ones. It's all counter-intuitive, because it's "taking the foot off the gas". The drive to the finish line is fine if it's truly close, but you sound like you're part of the legendary death march, which can go on for a loooong time. We think for a living. Thinking works better in rested, relaxed bodies and excited, curious minds.

</comment><comment><USER3> Where I work we try not to work like that. We break up work into manageable chunks. If someone is sick they take sick leave. If a project is too big for two shoulders it has probably been broken up anyway. Treat work like it's the teams (although each item has one owner at a given time). Also avoid fake or real deadlines, but do provide estimates. This all fits into knowing your velocity and working standard hours such as 40h.

Outside of work, choose to relax, which might mean leaving a lot of stuff you should do go. Maybe the house doesn't need to be tidy, or the kids can watch tv without you feeling guilty. Or use ubereats instead of cooking, or pause the side project, skip the run etc.

</comment><comment><USER4> Gus Fring said it better than I ever will:

 _" What does a man do, Walter? [...] A man provides. And he does it, even when he's not appreciated, or respected, or even loved. He simply bears up and he does it, because he's a man."_

<comment><USER5> THIS. But it's important to emphasize that Gus was saying this in the context of providing for ones family. There is no greater motivator...

</comment></comment><comment><USER6> Slowing down. Most things can wait another day, so I do my best to take the time I need to relax and recover.

A stress-free, relaxed brain used for 6 hours is much better than stressful brain used for 10h.

</comment><comment><USER7> Getting a good night's sleep is important, in many ways.

[https://digest.bps.org.uk/2019/11/21/a-lack-of-sleep- causes-...](https://digest.bps.org.uk/2019/11/21/a-lack-of-sleep-causes- anxiety-but-dont-worry-about-it/) [https://www.psychologytoday.com/us/blog/practical- mindfulnes...](https://www.psychologytoday.com/us/blog/practical- mindfulness/202007/one-word-protects-your-brain-diabetes-and-dementia)

</comment><comment><USER8> Turning forty and having kids has been awesome. I spent the prior 20 years so ambitious and so worried I wouldn't make something of myself. I was always reading books and watching YouTube videos on business,leadership, and self improvement. Staying up all night coding.

I got pretty lucky and created a small business when I was 32. That business is still alive today, but I don't put anymore effort into it aside from doing customer support. That's probably a big part of why I feel like I can finally sit back and enjoy my life and children. I've always had low expectations, and I feel like I accomplished more than I thought I would. I haven't made that big of a dent, but it's been enough for me.

I don't know where I'm going with all this. I'm just glad I'm not constantly thinking about success—it can be so draining. I used to be worried about becoming who I am now, satisfied, somewhat complacent. It's the happiest I've ever been.

<comment><USER9> I'm curious. What type of business is it?

<comment><USER8> Saas for ebay sellers and feedback management

</comment></comment></comment><comment><USER10> Surprisingly, it's the skill of doing less than I can. The act of holding back has actually significantly boosted my focus. I write about it in [https://algodaily.com/lessons/how-to-have-a-slow-and- boring-...](https://algodaily.com/lessons/how-to-have-a-slow-and-boring- successful-career?view=article), but purposely moving slower does the following:

1\. It makes you focus on the task at hand, since you're no longer thinking about another vector (speed)

2\. It guarantees that your daily energy reserves are enough to keep you interested

</comment><comment><USER5> My wife and kids. I'm the sole breadwinner and want to give my kids a greater life than I had. My dad was (still is) a deadbeat and didn't support me and my siblings at all.

A routine also helps me stay driven and avoid burnout because I know what to expect each day and there is a clear end in sight.

</comment><comment><USER11> My family. I wanted to quit my job with nothing lined up, and even went so far as putting my two weeks in. They told me to shut up and get back to work, and in hind sight, its made all the difference in keeping me as a productive member of society

</comment><comment><USER12> I would question why I was not planning to go somewhere else. If that's how you feel, then you should be changing direction. This might come off elitist, or arrogant, but you have one life. One life to spend, not only for yourself, but with the ones you love, and with the things you would like to deal with. It shouldn't be something that makes you feel miserable, if you have any kind of choice.

</comment><comment><USER13> For me it's learning but mostly technical learning. This isn't the same for everyone though. It took me a long time to stumble onto this.

Think about finding what motivates you like you think about finding the right diet: experiment and iterate.

<comment><USER13> Also, Dr. Huberman of [http://hubermanlab.com/](http://hubermanlab.com/) has been making the round on podcasts talking about the neuroscience of motivation.

tl;dr We are motivated/rewarded (at the neurotransmitter level) when we feel that we're on the right path. What makes you feel like you're on the right path?

This feeling of being on the right path causes dopamine to be released which quells the anxiety/quit sensation (adrenaline/norepinephrine) that's caused by struggle and is what leads to burnout.

</comment></comment><comment><USER14> There's got to be more to life than this. I know a lot of people will reply with motivational techniques and philosophies, but being 'on the brink of burnout' isn't a thing that should be accepted as normal in our work lives. Life is too short to live it like that.

</comment><comment><USER15> Step away and do something completely frivolous for a few hours. Usually a pink panther film I have seen countless times or FPS going after zombies. I need to access another part of the brain and "turn off" the area that has been overworked. At least that is how it feels.

</comment><comment><USER16> I've done it before, the late nights, the 100 hour workweeks. It's difficult to push yourself and it always take out a good chunk of you long term like physical exertion would.

Learn to pull yourself, either with self-motivating goals or habits.

</comment><comment><USER17> You must find time to relax guilt-free.

Look into Shamatha meditation which is single-pointed concentration, it's relaxing and good for your mental state.

</comment><comment><USER18> [https://www.youtube.com/watch?v=5JAHAFvcr2o](https://www.youtube.com/watch?v=5JAHAFvcr2o)

</comment><comment><USER19> Reminding that everything is temporary

</comment><comment><USER20> to challenge the premise -- it is worth thinking this through: why is it necessary to drive what you're working on over the finish line? if you reduced your inputs of energy, time and caring to moderate levels that can be sustained without negative physical or mental health impacts -- would you personally receive comparable output?

re: burnout

> [...] level of caring couldn't be sustained in the absence of results.

> My clients are perfectionists [...] They have very rigid ideals in terms of > win-lose [...] Their expectations of success are through the roof, and when > their reality doesn't match up with their expectations, it leads to > burnout—they leave no room for error or failure at all in their formula.

> Older workers, as it turns out, have more perspective and more experience; > it's the young idealists who go flying into a profession, plumped full of > high hopes, and run full-speed into a wall. Maslach also found that married > people burn out less often than single people, as long as their marriages > are good, because they don't depend as much on their jobs for fulfillment. > And childless people, though unburdened by the daily strains of parenting, > tend to burn out far more than people with kids. (This, too, has been found > across cultures; in the Netherlands, a recent survey by the Bureau of > Statistics showed that twice as many working women without children showed > symptoms of burnout as did working women with underage children.) It's much > easier to disproportionately invest emotional and physical capital in the > office if you have nowhere else to put it. And the office seldom loves you > back.

\-- [https://nymag.com/news/features/24757/](https://nymag.com/news/features/24757/)

re: not burning out

> Poor is the person without Slack. Lack of Slack compounds and traps. Slack > means margin for error. You can relax. Slack allows pursuing opportunities. > You can explore. You can trade. Slack prevents desperation. You can avoid > bad trades and wait for better spots. You can be efficient. Slack permits > planning for the long term. You can invest. Slack enables doing things for > your own amusement. You can play games. You can have fun. Slack enables > doing the right thing. Stand by your friends. Reward the worthy. Punish the > wicked. You can have a code. Slack presents things as they are without > concern for how things look or what others think. You can be honest. You can > do some of these things, and choose not to do others. Because you don't have > to.

> Most times are ordinary. Make an ordinary effort.

> Make sure that under normal conditions you have Slack. Value it. Guard it. > Spend it only when Worth It. If you lose it, fight to get it back. [...] > Make sure to run a diagnostic test every so often to make sure you're not > running dangerously low, and to engineer your situation to force yourself to > have Slack.

\-- [https://thezvi.wordpress.com/2017/09/30/slack/](https://thezvi.wordpress.com/2017/09/30/slack/)</comment>


Use an Old Linux Computer to Put your Baby to Sleep - <AUTHOR> http://www.labnol.org/software/old-linux-computer-for-baby/10420/

<comment><USER2> That'll work for a while. Then the kid's going to be up half the night recompiling his kernel.

</comment><comment><USER3> I can't find the link, but I remember reading an article a while back about utilizing the opening/closing of the CD drive to manually push the reset button on a server.

It was a sysadmin's story of how one of the servers needed a manual reboot every so often and it could only be done with someone physically being there to push the reset button. He set an old computer up with the CD drive directly facing the server's reset button. From there, he set up a cron job to send the "eject/close" command remotely whenever something went wrong with the other server.

Story ends saying that they no longer use that server, however that other computer just sits in the corner, faithfully ejecting/closing its CD drive to this day. Hopefully someone here can provide the link :)

<comment><USER4> That was a lesson from The Daily WTF:

<http://thedailywtf.com/Articles/ITAPPMONROBOT.aspx>

</comment></comment><comment><USER5> He probably has to buy a new cdrom drive every second day.

</comment><comment><USER6> instead of two eject commands (eject and eject -t, as prescribed in the link), you can also use eject -T (this will toggle between open and close) :)

<comment><USER7> aah the baby rocker one lined

        while true; do eject -T; done;

</comment></comment><comment><USER8> Just to set the record straight, it could be done with any *nix-ish OS such as BSD or OSX.

</comment><comment><USER9> Very clever hack :)

</comment><comment><USER10> What a waste of power.

<comment><USER11> Nonsense. Anyone who's ever experienced a cranky child and a wind-up rocker would gladly sacrifice a few kwh's for some peace and quiet! The fans in that old beast probably provide some nice soothing white noise as well.

I myself collect usb cdroms that no longer read correctly for use as impromptu servos. You just never know when you're gonna need your linux box to pull a latch or give something a nudge.

Edit: Oh... Or this: <http://news.ycombinator.com/item?id=868523>

Psst don't tell Arrington. The "crunch-monitor" would be more than I could handle.</comment></comment>


Microsoft Anti-Gmail Ad - <AUTHOR> http://www.youtube.com/watch?feature=player_embedded&v=TDbrX5U75dk

<comment><USER2> It is pretty funny, but the ads makes it seem as if there are real people snooping into your emails when it's actually just some bots that are trying to serve you ads (which is inevitable) that might relate to you, isn't that better than just having random stupid ads show up on your page?

I appreciate it when Gmail tells me that I'm missing the attachements or when it asks me to add the event written in text in the email to my calendar.

I'm not saying Google is not evil, but it's hypocritical of Microsoft to say this while they're actually doing the same thing reading people Facebook statuses on bing and so on.

</comment><comment><USER3> As crap as Hotmail is, I found this pretty funny.</comment>


Lynis – Security Auditing Tool for Linux, MacOS, and Unix-Based Systems - <AUTHOR> https://github.com/CISOfy/lynis <comment><USER2> On this note, i wonder if automated tools like this will become more commonplace. I know next to knowing about security[1], but i'd love for there to be some sort of self-updating simple service i can run that constantly updates and checks my router, home servers, IoT devices, all ports, etc. for known exploits.

Surely a lot of this stuff can be automated. The simpler the tool the better - a single binary would be great. Is this a pipe dream?

 _edit_ : I feel like part of the problem would be shipping all the exploits. Legal matters aside, it would at the very least mean having to code exploits for thousands/millions of things. Though, perhaps a pluggable/linkable framework for this security could be a sort of proof of work. Ie, whitehats could publish the exploits by writing the plugin.

 _edit2_ : I'm aware that this tool is _sort_ of what i'm talking about, but this mainly focuses on a single unix machine, right? Nor does it support windows. I wonder why we can't just make this ultimately simple? Ie, single binary?

[1]: Well, i know enough to know how little i know.. which is nearly nothing heh.

<comment><USER3> Constant monitoring for known exploits? Aren't you just describing an antivirus?

<comment><USER4> More like a vulnerability scanner. Signature based antivirus apps are mostly useless nowadays, but being able to tell me I'm running a broken version of OpenSSL is very useful.

<comment><USER5> Threatstack will do that. Their agent runs on your machine as a kernel mod and will alert you to any libs being used (e.g. openssl, libcurl) whose version matches a known CVE.

</comment></comment></comment></comment><comment><USER6> This has been posted once before, its cool.

Do people actually use it though?

<comment><USER7> Yes, I'm a security consultant and we often run this on client machines during security tests. It provides a nice assessment of the machine.

<comment><USER8> I am a total security novice, but I do have a Linux VPS that I host some low importance stuff on. Would running a tool like this be appropriate?

<comment><USER9> Think about the headache of remaking the VPS from scratch, rehosting everything on it and having to reset any password that is shared with another environment.

Also consider the cost of dealing with the data falling into the wrong hands. Even data that is not personal can hurt you financially in the long-term.

The cost of running security tools is minimal when you take it all into account.

<comment><USER8> I guess I wasn't clear. I know I should be doing some sort of security testing, I am just curious if this tool is appropriate.

</comment></comment></comment></comment></comment><comment><USER10> what would be the difference between something like this and say using puppet to apply and manage CIS requirements?

<comment><USER11> I think that is a good point. If you can codify your security checks, there is a good chance you can write automation to fix them with configuration management.

I think there may be some cases where you don't feel comfortable automating the full remediation, e.g., requires reboot, so separate audit system might be useful. There is also something nice about writing your audit rules, being able to show auditors "this is what we check for", and then running that across your infrastructure. In that case InSpec ([http://inspec.io/](http://inspec.io/)) might be more useful for writing custom compliance controls.

It would be nice if there was a $CONGIG_MANAGEMENT_SYSTEM_OF_CHOICE module that did common security fixes, and you could just pick and choose which to apply.

On a side note: Holy ^&$% Lynis has a lot of shell! Like a crazy amount of POSIX shell code!

</comment></comment><comment><USER12> This is awesome. Thanks.</comment>


Jshell: The Java Shell (REPL) - <AUTHOR> http://openjdk.java.net/jeps/222 <comment><USER2> If you're looking for a REPL for Java, try the Groovy shell (comes standard with an install of Groovy).

Meant, as the name implies, for Groovy, but since Java is a subset of Groovy, works fine for any Java code, too.

It's great for quickly trying out an API or library. Also makes it easy to just drop a bunch of jar files onto the classpath.

<comment><USER3> > Java is a subset of Groovy

Java is _not_ a subset of Groovy. Some syntax valid in both will behave differently in each, e.g. default visibility, and how == behaves.

</comment></comment><comment><USER4> I had to implement a Java REPL like this one in school.

My experience of using it is that tells me that without a undefined type keyword it becomes very boring to use. Each time you have to define a variable you have to write all type info:

        Map<String,String> foo = new HashMap<>();

If java had a inferred type declaration, like Golang, Swift, Scala, etc. This would be much simpler:

        var foo = new HashMap<String,String>();

But from what I think there is nothing like that on Java's roadmap. In fact, I think it was proposed and rejected in the past.

<comment><USER5> What's wrong with simply: Object foo = ...

Not quite var, and it would require the interpreter to do a little bit more work when invoking methods to avoid the necessary downcasting.

<comment><USER6> Because you're sacrificing consistancy and type safety for object to avoid increasing the syntax which feels like optimising for the wrong metric.

<comment><USER7> It's a REPL! It's for debugging. If you're not optimizing for ease of use, you're optimizing for the wrong metric.

<comment><USER8> You could also just add support for the "var x =" notation into the REPL as a preprocessing step that translates it to the appropriate typed representation.

</comment></comment></comment></comment></comment><comment><USER9> If someone is interested in using something like that (minus the API part), right now, try this: [https://github.com/albertlatacz/java- repl](https://github.com/albertlatacz/java-repl)

<comment><USER10> Why everyone keeps forgetting beanshell? It is both a shell and a scripting language with context bridges to pass object back and forth from java, it was doing everything groovy became and then some but three or more year earlier

<comment><USER11> Because it was left to rotten?

Last time I checked it, in 2010, it didn't had any commits.

<comment><USER12> The last release from the original author was 2.0b4 (2.0 beta 4) in 2009.

However, there is a community fork "beanshell2"[1], which was created exactly because the original was left to rot. It looks like the most recent change to beanshell2 was February 2014, so it may be going the same direction.

[1]: [https://github.com/pejobo/beanshell2](https://github.com/pejobo/beanshell2) (formerly [https://code.google.com/p/beanshell2/](https://code.google.com/p/beanshell2/)

</comment></comment></comment></comment><comment><USER13> I'd add my vote for using Groovy's shell (groovysh) for Java REPL. The shortcuts and conveniences the Groovy lang provides make it perfect for this kind of application.

<comment><USER3> > The shortcuts and conveniences the Groovy lang provides make it perfect for > this kind of application

Groovy's original purpose, as frequently stated by its creator James Strachan, was exactly this kind of application. There's been a lot of other things going on with Groovy since then which anyone considering using it would have to evaluate. Although other JVM scripting languages existed at the time of its birth in 2003, e.g. Jython since 1997 and Beanshell since 1999, Groovy brought more to the JVM than Beanshell had and did it using Java's syntax style, unlike Jython. Groovy's also used a lot in scripts for manipulating and testing JVM classes. And it's this use of Groovy that made it a good match for Gradle, i.e. short 50-liners defining builds.

Groovy's been extended to other use cases since then. Graeme Rocher had a meta-object protocol added to Groovy so he could bundle it as the scripting language of Grails (used just like Ruby is in Rails). The backers of Grails have an overbearing attitude towards Groovy, as they do all the software Grails bundles. They muscled in on the consulting market for Spring until they got bought out by SpringSource in 2008. Grails 3, released earlier this year, bundled Gradle for the first time, and the Grails backers will no doubt use that as justification to attack Gradleware's placing in the market for Gradle consulting, and so ultimately wrest control of Groovy via its primary applications from its neutral home at the Apache incubator.

Groovy was also extended in version 2 by a static type-checking and compilation facility, which was duplicated from an addon created by Alex Tkachman. Making no headway into the overcrowded market for statically-typed JVM languages, last year the Groovy backers then repurposed that static-typing facility to make Groovy target the Android platform. This year, Groovy's sole full-time developer supporting it all was retrenched when the Groovy/Grails group moved from VMware/Pivotal to OCI Consulting.

I'm picking Groovy will remain popular on the JVM for scripting and REPL work, including Gradle build scripts, for quite a while. It will never be used much for statically typed work on the JVM or Android, and eventually its use for scripting a web framework will slowly decline as Grails follows Rails into eventual obscurity perhaps 5 years down the line. Groovy will continue to suffer from leadership difficulties, perhaps with the Grails group taking control of Gradle via a sustained attacked on their consulting business, and through this eventually taking over the Groovy code base at, or from, the Apache incubator. I wouldn't want to pick the time frame for all this, though!

<comment><USER14> vorg, some corrections for you. Only 2 of 6 did go to OCI. Another 2 did go to Gradle. And then about Alex Groovy++. At least you are not spreading the false rumors anymore that the codebase was copied. I have not seen any original ideas in Groovy++. So what exactly has been duplicated? Plus, Groovy's static compiler uses flow typing, Groovy++ not. It has a big impact. How can you call this duplication at all? That is as much duplication as Java is a duplicate of C.

And I actually think you belittle Alex with your focus on Groovy++. Alex best work on Groovy was the introduction of callsite caching. That was his best and biggest work. In terms of features of the language there are surely numerous other things. But they are sources of trouble. And that is because he did never finalize his work. Instead he always wanted to have new things and added half-done code to Groovy. That goes for the stub based compilation, for mixins, for many of his internal changes. I could make a really long list. Most of these things have been a huge step forward and a huge source of trouble.

</comment></comment></comment><comment><USER15> I developed something similiar but for the Android API, it goes together with an app, but it is also a Java Read-Eval-Print Loop where the code is executed on the device. It's in beta phase. [https://runondroid.com](https://runondroid.com)

<comment><USER16> Oh very cool. I've used sl4a for this, but it would be very nice to have access to the original Java API for experimenting with new features for an actual native Android application. I look forward to trying it out.

</comment></comment><comment><USER17> For those of you in the Bay Area, there is a Hackathon (SVJUG Meetup) at Google on July 11th that is expressly dedicated to JShell - [http://www.meetup.com/sv-jug/events/223263007/](http://www.meetup.com/sv- jug/events/223263007/)

Drop by, check it out & please stop the Snarky "Should have had it 10 yrs ago" comments.

</comment><comment><USER18> As they mention, BeanShell was already serving this purpose, and really would provide a great foundation for building what is needed. The fact that it hasn't been updated much kind of speaks volumes of the importance of this effort.

</comment><comment><USER19> BlueJ [1] is geared at beginners, but it includes a codepad for trying out Java code and also provides a way to interact with objects.

[1] [http://www.bluej.org/](http://www.bluej.org/)

<comment><USER20> All IDE's do. Please stay away from BlueJ, its compiler is terrible.

</comment></comment><comment> github-cat So each programming language are becoming more and more alike. Many of them are not pure OOP or pure functional language anymore.

<comment><USER21> OOP and functional has never really been a meaningful axis to categorize programming languages. There are more difference between Smalltalk(OOP) and Java(OOP) than say, Smalltalk and Lisp(supposedly more FP).

It's probably better to categorize things based on (pick one of) semantic, runtime (JVM vs Beam vs blablabla), productivity, correctness, readability etc.

</comment></comment><comment><USER22> Much of the description of Jshell is in the future tense. Can someone give us an idea of the state of progress?

<comment><USER23> @Elrac : You can get the shell running if you have linux or mac. Yesterday, I tried on windows but couldn't get it working yet. Instructions are here : [http://www.jclarity.com/2015/04/15/java-9-repl-getting- start...](http://www.jclarity.com/2015/04/15/java-9-repl-getting-started- guide/)

<comment><USER22> Cool, thanks!

</comment></comment></comment><comment><USER24> Too late. Learned Clojure.

<comment><USER11> Great if are allowed to use it at work. Many of us are not.

<comment><USER25> Sorry to have to ask, but why choose to work at a place that doesn't use tools that you like, or does not give you the autonomy to use your best skills?

<comment><USER26> Because life is about tradeoffs. Optimising for criterion A mean sacrificing the opportunity to optimise for criterion B. And there are far more important criteria than programming languages for which to optimise choice of employer.

</comment></comment></comment></comment><comment><USER27> I read JS-Hell. Not the best name for a shell.

</comment><comment><USER28> This is big news. Java should have had this one from the start.

My question is, what took so long? What prevented it?

<comment><USER10> Beanshell was there since 1999

<comment><USER29> Yes, finally someone remembered it!

Reinventing the wheel is so human...

<comment><USER10> I know right? But if you say groovy and the like are just respin of age old stuff they treat you like an old fart

And to think that when I advocated for writing business logic in a scripted language in 2003 everyone was looking at me like I was crazy (well italy is always quite behind last trends, so while in the states they were starting with scripting languages we were still writing ejb with xml - and we still do in many places)</comment></comment></comment></comment>


Show HN: Dataset – How America Gets Injured - <AUTHOR> https://www.statwing.com/demos/injuries#workspaces/118819 <comment><AUTHOR> OP (and Statwing cofounder) here. Questions and feedback welcome, both on the dataset and the tool.

Hat tip to Jeremy Singer-Vine and his "Data Is Plural" weekly newsletter of public datasets[1] for pointing out the existence of this dataset (which we transformed pretty significantly to make easier to work with).

[1] [http://tinyletter.com/data-is-plural/archive](http://tinyletter.com/data- is-plural/archive)</comment>


This guy is recreating Pokémon in HTML5 - <AUTHOR>

Slideshow about his process: http://buff.ly/1kgvEjh<p>Play here: http://buff.ly/1kgvHve <comment><USER2> I'm curious why in slide 37 he says to structure your JS code and then in slide 38 he apparently prefers the 'new setup' to the 'current setup'. I am curious why he considers one 'structured' and the other 'unstructured'.

</comment><comment><USER3> I walked around a bit, and while it's a little jittery, it's a really cool concept and actually works pretty well.

</comment><comment><USER4> I broke it. Every keyboard entry started opening the menu.

</comment><comment><USER5> amazing.

</comment><comment><USER6> crazy</comment>


Huawei Just Copied the iPhone–Down to the Last Screw - <AUTHOR> http://www.wired.com/2016/05/huawei-iphone-screws-ifixit/ <comment><USER2> Click bait title, doesn't look that much like a rip off as much as it looks like two phones with usb and 3.5mm jack in same end of the phone</comment>