Cross platform GUIs and Nim macros - <AUTHOR> http://serv.peterme.net/devlog/cross-platform-guis-and-nim-macros.html <comment><USER2> In 2012 I could pack a whole Python interpreter, Qt and various image- processing libraries into an InnoSetup installer that just-so scratched the 12 MB mark; I doubt this has changed significantly.

Contrary to what the linked (more interesting) survey article suggests, Qt _is_ usually the answer to most issues when it comes to cross-platform UI.

Gtk is not bad, but Gtk is what it is: it was created because Qt couldn't be used for licensing concerns (at the time) by people unexperienced with the matter (compared to the Trolltech staff), and is maintained by people who, for the most part, care about Linux. Qt on the other hand is supported commercially, and puts far more effort into supporting more platforms better. [Also the tooling and docs are really nice].

<comment><USER3> Side note:

Back when I did Win32 packaging of cross-platform applications, I never liked InnoSetup much, mostly because of the many levels of unpacking into temporary directories, but also because it was relatively slow and not as compact as it could be. Instead, I always preferred NSIS using the makensis command.

Among others, NSIS can be compiled on *nix systems, but still produces a Windows executable file (like a cross compiler), so you can put it in your cross compiling toolchain. That way, you can create your full Windows port including installer without ever having to touch a Windows.

<comment><USER2> InnoSetup was very easy to get started with and get the expected results, while NSIS looked more complex. I'm not particularly opinionated about installers as long as they install and uninstall things :)

</comment></comment></comment><comment><USER4> A better solution: FreePascal + Lazarus. Cross Platform. Native. Compiled. A RAD tool that is tough to match.

<comment><USER5> Recommending Delphi (or something compatible like FreePascal) is not going to win you my support.

Every Delphi-based app I have used has been a horrible bodge of bugs.

<comment><USER6> I think that would have more to do with the applications themselves as opposed to anything intrinsic to Delphi. I've used plenty of applications written in Delphi and they've worked fine. Skype for Windows was written with Delphi (and maybe still is).

Delphi's pretty good. You should try it out: [https://www.embarcadero.com/products/delphi](https://www.embarcadero.com/products/delphi)

</comment></comment></comment><comment><USER7> Why does the fact that GTK "looks non-native on Windows" disqualify it? If it's pretty enough for Linux, isn't also good enough for Windows? (Also my personal opinion is that it doesn't look too bad.)

<comment><USER8> With GUIs, consistency is the primary concern followed by 'pretty'.

Non-native breaks consistency, rendering 'pretty' fairly meaningless.

<comment><USER9> That's an absurd notion. Is chrome inconsistent because it doesn't look like a GUI toolkit?

<comment><USER10> Yes, and it annoys the hell out of me. Even Chromium's "GTK+" theme doesn't look right next to other GTK applications, where as Firefox does.

</comment></comment></comment></comment><comment><USER11> The state of the Web in 2017: This page is nothing but text but just renders as a blank page until you allow JavaScript

<comment><USER12> Or, until you turn off CSS (firefox: View->Page Style->No Style).

Then all the text appears, even without any JS running.

<comment><USER13> Nice! Is there also a way to print the text? I just get almost empty pages.

<comment><USER12> There is a way, but it involves a bit of work (again because the author used styles that hide everything unless the JS runs).

Save the page to disk (Firefox: File->Save Page As).

Then open the saved html file in a text editor and delete all of the <link> tags in the <head> section that reference style sheets and save the changes.

Then open the edited html page from disk, and the result will be printable.

</comment></comment></comment></comment><comment><USER14> I am looking for a cross-platform GUI library that feels native across Mac/Win/Linux and has well maintained bindings in a language that is not C++ - an impossible task it seems.

<comment><USER13> GtkAda is a binding for Ada. Ada is like Pascal but much more powerful. GTK is available for Linux, Windows and OSX. However, you could also use Qt and import from C++ to Ada.

[http://www.ada2012.org/](http://www.ada2012.org/)

[http://www.adacore.com/gtkada/](http://www.adacore.com/gtkada/)

[http://compgroups.net/comp.lang.ada/gtkada-for- macos-x/14082...](http://compgroups.net/comp.lang.ada/gtkada-for- macos-x/1408220)

[https://www.gtk.org/download/windows.php](https://www.gtk.org/download/windows.php)

<comment><USER14> That's a _very_ interesting solution. I've been curious about Ada for a long time, but never found a reason to use it for anything - this might be it!

Thanks for bringing it to my attention.

<comment> david-given A few years ago I did a writeup on the language. [http://cowlark.com/2014-04-27-ada](http://cowlark.com/2014-04-27-ada)

tl;dr: there's a great deal to like about it, but its quirks are very quirky.

<comment><USER13> Thanks for pointing this out. It is really good and important to know Ada's weak points. OTOH I agree that there is a great deal to like.

</comment></comment></comment></comment></comment><comment><USER9> It seems like the only real complaint this article addresses is that gtk (or other non-native toolkits) add a ~20mb dependency, and Windows didn't have a good package manager (since static compilation is preferred).

Frankly, this is a non issue. Windows users are used to this. It comes with the territory. Toolkits like GTK and Qt are full featured, densely documented, fast, look good, and work well in any OS.

</comment><comment> awinter-py took me a second to realize how important this is; my brain dismissed the final solution as 'so what, that's just like HTML'.

then I got it -- the ability to use code generation to be declarative is incredible.

having the ability to mix declarative (HTML / data structures) and imperative (javascript) is what makes react so powerful. The ability to do that almost- natively inside the language is amazing.

<comment><USER15> Yeah I think one of the main things that React offers is a DSL for trees (JSX) that can lexically close over and also splice in JavaScript. Languages that allow creating your own DSLs offer this for other realms such as shader coding, logic programming etc. within the metalanguage.

<comment><USER16> _> Languages that allow creating your own DSLs offer this for other realms..._

Rebol & Red are examples of this, there's a GUI dialect called VID [1][2] and in companion with this is a Draw dialect [3][4].

1\. [http://rebol.com/docs/easy-vid.html](http://rebol.com/docs/easy-vid.html)

2\. [https://doc.red-lang.org/en/vid.html](https://doc.red- lang.org/en/vid.html)

3\. [http://www.rebol.com/docs/draw.html](http://www.rebol.com/docs/draw.html)

4\. [https://doc.red-lang.org/en/draw.html](https://doc.red- lang.org/en/draw.html)

</comment></comment></comment><comment><USER17> I've been struggling with finding a good cross-platform C#/.NET framework that can tie into Visual Studio.

So far, you're making your entire UI in code (Like WxWidgets), having to use an app like XamarinStudio to even get fully packaged OSX apps, along with requiring an external framework such as [https://github.com/picoe/Eto](https://github.com/picoe/Eto), (its official package is broken in Xamarin though)

I understand that win forms may not be great when you start to build a bigger application with a lot more presentation and data, but it makes building simple apps easy and convenient. We need something like that cross-platform.

If anyone knows more about re-creating windows form apps cross-platform in a nice manner, I'd appreciate the info.

<comment><USER18> I don't spend much time w/ that stack, but Avalonia [1] seems to be a big player. Even better, they recently merged .Net core support [2]. You of course lose some native look and feel.

1 - [https://github.com/AvaloniaUI/Avalonia](https://github.com/AvaloniaUI/Avalonia) 2 - [https://github.com/AvaloniaUI/Avalonia/issues/314#issuecomme...](https://github.com/AvaloniaUI/Avalonia/issues/314#issuecomment-277459855)

<comment><USER17> What is the benefit of .net Core and how would that be used in comparison to .net Framework 4.5?

<comment><USER18> This may be too small of a place to explain it and I'm not completely familiar w/ the ecosystem, but .Net core is the .Net runtime built for cross-platform use. It doesn't have all of .Net framework, but they are adding a bit at a time. See [https://www.microsoft.com/net/core/platform](https://www.microsoft.com/net/core/platform)

</comment></comment></comment></comment><comment><USER19> Speaking of cross platform UIs, on iOS the page hijacks scrolling so you can't scroll past the wx widget code segment.

<comment><USER20> I came here to comment on that as well.

I tried flicking the page right above the code fragment, but it turns out the scroll hijacking disables iOS's native inertial scrolling, so there's no way for me to read the rest of the article until I get back to my desktop.

I don't see the need for down-votes here: clearly many authors (in absolute terms, if not relative terms) tease their viewers with 30 minutes of reading, only to frustrate them by making the rest of the page inadvertently unreachable. I would think of these kinds of comments as a courtesy to the author.

<comment><USER21> I also hit this very frustrating point in the article on iOS where it became impossible to scroll further.

</comment></comment></comment><comment><USER22> There is a project to get IUP working on OSX.

[https://github.com/ewmailing/IupCocoa](https://github.com/ewmailing/IupCocoa)

<comment><USER23> And also iOS, Android, and a native web browser backend via Emscripten :)

This was a proposal/prototype/intro video for IUP for iOS & Android for the IUP community.

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

Repos:

[https://github.com/ewmailing/IupCocoaTouch](https://github.com/ewmailing/IupCocoaTouch)

[https://github.com/ewmailing/IupAndroid](https://github.com/ewmailing/IupAndroid)

[https://github.com/ewmailing/IupEmscripten](https://github.com/ewmailing/IupEmscripten)

</comment></comment><comment><USER24> Do most GUI toolkit whinges ever come to accept the fact that most of these issues would go way if Trolltech/Qt/Digia/Nokia would actually bite the bullet and create a simple C interface to the C++ that even other C++ compilers cannot link cleanly to?

C++ and its co conspirator Javascript have done so much to hinder programming development over the past 20 years.

Linux has been round for over and there isn't a decent opensource graphical debugger for Linux that Visual Studio will have to step in some time in the future. All this is soooo depressing.

</comment><comment><USER13> Brilliant idea! The code sample is the most clean GUI code I have ever seen. However, I haven't coded GUI for a very long time, so it may be that there are also other good GUI APIs which I don't know about.

Nevertheless, this DSL reveals how powerful Nim actually is. It seems many developers have not realized it yet. With Nim they get C performance, seamless C FFI, and a very expressive pythonic syntax. I am using Nim for years now, and it's amazing how productive coding can be.

<comment><USER25> > the most clean GUI code I have ever seen

That's because it doesn't actually do anything...

</comment></comment><comment><USER18> I wish someone would pick back up wxc, the C interface for wxWidgets. IIRC the latest updates are in the wxc folder of wxHaskell [1]. That any non-C++ language is able to somewhat "import C++" (i.e. Nim and D) is nice and all, but doesn't really help the larger community and can be brittle in some C++ situations.

1 - [https://github.com/wxHaskell/wxHaskell](https://github.com/wxHaskell/wxHaskell)

</comment><comment><USER26> Even with cross platform toolkits you will never have apps that feel right.

The right(TM) way to do it is to write a GUI for each platform separately.

<comment><USER27> Actually I would prefer a GUI emerging which is the same across all platforms (except the lowest parts of the plumbing I suppose).

OpenGL would be a good candidate for rendering.

</comment></comment><comment><USER28> So I have used wxWidgets in the past with the help of python bindings and enjoyed using it and my end product. I hear electron[1] is picking up these days for cross-platform dev - anyone got experience with it?

[1] [https://electron.atom.io/](https://electron.atom.io/)

<comment><USER10> Only from an end user perspective and frankly I hate it. It has all the size and performance problems complained about in that article but without the benefit of native widgets. And frankly if I wanted to run a web app on my desktop then I'd rather run it in my preferred browser.

I know I'm getting old (in IT terms) and grumpy but I'm unconvinced our current frontend web stack are the right tools for modern web development; albeit it's what we're stuck with. So I'm even less convinced that it's the right stack for "native" desktop applications.

<comment><USER9> > It has all the size and performance problems complained about in that > article

Complaining about electron being bloated now is just like complaining about gtk being bloated back in the 90s.

<comment><USER10> To be honest I've never been a massive fan of GTK either. Then or now. Though at least I can sympathise a little more with why GTK existed and at least GTK is native so still had better comparable performance (ie performed better on average hardware of that era than electron performs on average hardware of this current era).

</comment></comment></comment></comment><comment><USER29> No one mentions fltk? I never used it, but is there some reason it's unsuitable?

<comment><USER30> FLTK is extremely lightweight and easy to use, and quite fast to boot. It doesn't integrate very well with e.g. platform accessibility hooks and stuff like that (but then, not many toolkits do). Highly recommended if you're using C++.

FLTK's major problem is that it is too much of a C++ system; while wrappers for some languages exist, a lot of the properties that make it desirable in C++ are lost through those wrappers.

<comment><USER31> The language itself also has some serious race conditions that are impossible to debug unless you're on really slow/embedded hardware. For example, I used the Dillo web browser (which is FLTK-based) for a couple years when I was stuck on an 800MHz PC, and when the system was swapping heavily, doing things like opening the (FLTK-generated) file-save dialog or dragging a window scrollbar (IIRC) would lock the mouse - FLTK uses X11 cursor locks to constrain the cursor in some situations, and due to the system's heavy I/O load, FLTK wasn't releasing the locks, and I had to kill the entire browser.

<comment><USER30> Interesting. But why do you think this is a race condition?

<comment><USER31> Hmm. Good point; AFAIK Dillo doesn't use threading.

I'm honestly not sure what was causing it, but I know that it only happened when the system was swapping a _lot_. So something that expected something else to be done or take a short amount of time didn't.

For all I know it could be the way FLTK is using Xlib (I don't think it uses XCB yet).

</comment></comment></comment></comment></comment><comment><USER32> This post is like a copy paste of this one: [https://news.ycombinator.com/item?id=13952007](https://news.ycombinator.com/item?id=13952007)

</comment><comment><USER33> Why not using YAML for the UI definition? Easier, simpler and universal.</comment>


Ada on FPGAs with PicoRV32 - <AUTHOR> https://blog.adacore.com/ada-on-fpgas-with-picorv32 <comment><USER2> I'd like to use Ada for an embedded project, but I've got a few concerns - that development time would be considerably longer, that finding other people able to maintain the codebase would be hard, and that the resulting code would be considerably less performant than equivalent C.

Has anyone worked with Ada or deployed it in a real product? How does it compare to "microcontroller C" with no strings and statically declared memory?

<comment><USER3> I've worked with Ada but not deployed it in a real product, so take what I say with a grain of salt, but:

> that development time would be considerably longer

It really depends on how good the support for the platform you're working on. If it is well-supported / documented, then you'll be at least as fast as with C.

> that finding other people able to maintain the codebase would be hard

Eh, it's a pretty straightforward language, and anybody reasonably talented (which most embedded programmers certainly are) should be able to maintian it without difficulty.

> and that the resulting code would be considerably less performant than > equivalent C.

Definitely not the case. Ada is basically a bare metal language (notably, no garbage collector), so it is very performant, and just as easy to reason about performance and underlying assembly code as C. There are some runtime checks that are enabled by default (e.g. bounds checking) which contribute to slightly slower performance, but these can be easily disabled if needed.

> How does it compare to "microcontroller C" with no strings and statically > declared memory?

It's basically the same, but with far fewer "gotchas" to trip you up, but stricter typing and nicer semantics, together with a pascalesque syntax (more english like, without curly brackets, which you may or may not like). I've only ever used it with statically declared memory (although it does have features like memory pools which reportedly make managing heap-allocated objects easier).

</comment></comment><comment><USER4> I will upvote just about any project that uses the phrase "you don't even have to build the compiler anymore."

I just started getting into FPGAa and Verilog, so I appreciate these kinds of writeups.

Thank you.</comment>


The Bicentennial of George Boole - <AUTHOR> http://blogs.scientificamerican.com/guest-blog/the-bicentennial-of-george-boole-the-man-who-laid-the-foundations-of-the-digital-age/ <comment><USER2> > Both men were from Lincolnshire, England, and had Unitarian leanings, which > impacted their career paths in the Anglican dominated world of their eras.

And in the linkbait below:

> Men Are Attracted to Nonconformist Women

I really _hope_ this is a machine-learning fail, though that's probably too good to be true.

</comment><comment><USER3> My HS computer class teacher was fond of bad puns, and would say "Was George Boole true to his wife, or not".

I tried to one-up him and came up with my own geeky version of Hamlet's famous monologue: Hamlet : 2B + !2B. That is the question. Me: Easy, the answer is TRUE.

</comment><comment><USER4> I don't think AND () or NOT affect Google search only " " and -

One unmentioned illustrious descendant of Boole is Geoff Hinton the Godfather of modern Neural Networks.

<comment><USER5> I was pleased to see Boole celebrated the other day in a Google Doodle (on .co.uk, at least) but unsurprised and disappointed to see they still don't allow his contribution to the world to be used, easily, on the world's biggest search engine.

Would've been nice for the day, I thought.</comment></comment>


Why programming is a good medium for expressing poorly understood ideas (1967) - <AUTHOR> http://web.media.mit.edu/~minsky/papers/Why%20programming%20is--.html <comment><USER2> My programming lecturer used to say "programming is the process of breaking a problem down so a high speed idiot can understand it, if you don't understand the problem then you can't explain it".

He also said that a programmers most useful tool was a pencil and a 5mm square A4 pad.

After years of solving thorny problems by getting away from the screen and scribbling in a pad I can't say he was wrong.

<comment><USER3> He was very wise on this matter. The best code I've written was thanks to first designing it on paper.

<comment><USER2> He was an insanely smart guy, Type 2 Unixbeard (the skinny one with the pony tail rather than Type 1, the portly one with the T-shirt of a bankrupt tech company).

Back in the 80's he worked on the software that ran/runs digital switching for (iirc) BT, high scale, high reliability stuff in C.

<comment><USER4> I had only one Unixbeard professor, and he was the best one I had in my program. He was also a Type 2.

<comment><USER5> I wish I had had a Unixbeard prof.

</comment></comment></comment></comment></comment><comment><USER6> > Underlying our approach to this subject is our conviction that "computer > science" is not a science and that its significance has little to do with > computers. The computer revolution is a revolution in the way we think and > in the way we express what we think. The essence of this change is the > emergence of what might best be called procedural epistemology  the study > of the structure of knowledge from an imperative point of view, as opposed > to the more declarative point of view taken by classical mathematical > subjects. Mathematics provides a framework for dealing precisely with > notions of "what is." Computation provides a framework for dealing precisely > with notions of "how to."

[https://mitpress.mit.edu/sicp/front/node3.html](https://mitpress.mit.edu/sicp/front/node3.html)

From SICP preface, which is the quote that actually matters, this is inspired by Minsky's quote. I hate that the quote that went public were all the other less inspired quotes from SICP.

<comment><USER7> Watch Hal Abelson explain this on video, right at the start of the first 1986 SICP lecture: [https://www.youtube.com/watch?v=2Op3QLzMgSY](https://www.youtube.com/watch?v=2Op3QLzMgSY)

</comment></comment><comment><USER8> I'd love if all the formulas on Wikipedia were written as pseudo code with meaningful variable names. I'd understand them so much faster.

<comment><USER9> Seriously! Any programmer would get pilloried for working solely in single letter variable names. It's so tedious that this is the norm in math.

<comment><USER10> And then they run out of Latin letters so they switch to Greek. Then they run out of Greek letters so they switch to Hebrew...

You have to remember that math is written for the sake of mathematicians' brains, not for the sake of dumb machines which accept only linear strings of a limited character set through a teletype. A mathematician can look at a formula and subconsciously break it down into constituent parts based on its _shape_. Multi-letter (word? phrase?) variable names would only serve to add unnecessary clutter and obscure the shape of the formula. Meaningfulness of names is a secondary concern, if it is a concern at all; meaning can be established in the text surrounding the formulas or equations; and if things indeed get too complex for a set of a few formulas, the option is always there to switch representations -- to computer code or pseudocode.

<comment><USER11> I think I've never seen Hebrew. Or maybe I've seen it and didn't recognize it as Hebrew. Do you have an example?

<comment><USER12> Quick one: [https://en.wikipedia.org/wiki/Aleph_number](https://en.wikipedia.org/wiki/Aleph_number)

<comment><USER13> There are also Beth numbers ([https://en.wikipedia.org/wiki/Beth_number](https://en.wikipedia.org/wiki/Beth_number)), closely related to Aleph numbers, but as far as I know that is the only place hebrew letters show up in mathematics.

</comment></comment></comment></comment></comment></comment><comment><USER14> It is a little tough to slog through now, though I'm sure it would've been pretty enthralling in '67\. I liked this from the conclusion quite a bit, though:

 _A computer is like a violin. You can imagine a novice trying first a phonograph and then a violin. The latter, he says, sounds terrible. That is the argument we have heard from our humanists and most of our computer scientists. Computer programs are good, they say, for particular purposes, but they aren 't flexible. Neither is a violin, or a typewriter, until you learn how to use it._

I also liked what seems to be a pretty central point of the article (which I admittedly only skimmed): just because some medium (e.g. computer programming) has very precise requirements (e.g. in terms of syntax) for the _forms_ expressions can take on, does not imply that the content of what can be expressed is similarly constrained.

<comment><USER15> I disagree. The content and expression become constrained because a description of the problem domain has to be forced to fit inside them. Usually you can only make this happen with a drastically over-simplified model.

One of the tragedies of AI and CS is that it's easy to delude yourself that you've understood something because you can make a toy model of it - when in fact non-toy models that are comprehensive enough to be useful to a domain expert tend to be sprawling, irregular, complicated, and not very coherent.

The problem leads to a kind of paradox: _Most human behaviour can 't be simulated with an algorithm that's simple enough for humans to understand._

Violins turn out to be a good example. It's trivially easy to sample a violin sound. But sampling is _nowhere close_ to being able to model the musical data bandwidth in a performance by a real string quartet.

<comment><USER16> This isn't limited to CS. It's true of all science. And yet, building models is better than not building them.

"All models are wrong but some are useful" [https://en.wikipedia.org/wiki/All_models_are_wrong](https://en.wikipedia.org/wiki/All_models_are_wrong)

</comment></comment></comment><comment><USER17> "We must not fall into anthropomorphic ways of thinking about machines; they do only what their programs say; they can't be original or creative." In debunking this fallacy, I would have thought that the "Computers Are More Flexible Than You Think" argument wold only need to go halfway, and "Brains Are Less Flexible Than We Think" could take us the rest of the way there. Of course, in 1967 I imagine the support for the second argument was much thinner than it is now.

</comment><comment><USER18> I love ancient wisdoms.

</comment><comment><USER19> The beauty is in that a weighted graph of lambdas could be build out of conses even back then. The idea that _code is data_ (and it could be generated by a program itself) was already there, but they have dropped this right intuition and turned back too early, and the dark ages of Java and packer's mindset followed.

</comment><comment><USER20> Another page where I'm all too happy to use stylebot and make the CSS less awful.

Couldn't figure out how to resize the text unfortunately.</comment>


US weighs up options in response to Russian hacking - <AUTHOR> https://www.ft.com/content/1de86910-9099-11e6-a72e-b428cb934b78 <comment><AUTHOR> One of the things I find fascinating about this article is how cyber warfare deterrence requires that you publicly show force (and thus, your cyber capabilities), which also puts you at a disadvantage against your adversary since they can learn your secrets/capabilities as a result. Very fascinating!</comment>


The Internet - and what it could be - <AUTHOR> http://blog.tomcarnell.com/2012/03/internet-and-what-it-could-be.html

<comment><AUTHOR> Ok, apart from the 'plug' about LiveDirectory, I really wish there were some standard like the:

<http://example.com/services.json> <http://example.com/data.json>

as suggested in the article.</comment>


Eagerly Anticipating PHP 5.3 - <AUTHOR> http://eng.genius.com/blog/2009/04/08/eagerly-anticipating-php-53/

<comment><USER2> Seeing as I'm at work and can't upgrade from IE 6.0 I can't view this site. Ahh Well.

<comment><USER3> Sorry to hear you have to use IE6. Having to support IE6 with our application causes us endless grief so we decided to join the anti-IE6 movement with our blog. Can you use Firefox, Safari, Opera, or Chrome at work?</comment></comment>


How to quickly but effectively become technically conversant - <AUTHOR>

For a non-technical entrepreneur wanting to up her technical capabilities what would you recommend?<p>Not looking to be a programmer, but ideally learn enough to better lead and work with engineers and/or build a crappy prototype. <comment><USER2> I'm still learning so take my advice with a grain of salt. That being said, first we ought to applaud you for taking the interest in understanding what goes on behind the scenes and better communicate with the engineers.

If I may, there are three courses you could look into. I've only taken the last one, which is fantastic for people that don't have a CS background. You'll learn about data structures.

The other two I just came across them today.

Now, the intent of this is only to give you a general idea of the amount of information these people deal with. If you happen to be a P.M. and deal with clients, this will help you avoid making promises for x feature to be ready x day due to lacking an understanding of what must be done to get it working. And so forth... Once again, I'm just starting, so take my advice with a grain of salt.

[https://class.stanford.edu/courses/Engineering/CS101/Summer2...](https://class.stanford.edu/courses/Engineering/CS101/Summer2014/about) [https://www.coursera.org/learn/insidetheinternet](https://www.coursera.org/learn/insidetheinternet) [https://www.coursera.org/course/pythonlearn](https://www.coursera.org/course/pythonlearn)

<comment><USER3> Oh god, really. It's not that hard. If you're into it and enjoy learning about it, then your head just fills up. It's like moving to a new town and getting used to the place.

<comment><AUTHOR> I agree with that - I've blown through a number of codeacademy and code school courses just because I've found it so interesting. But now I feel like I have this floating knowledge of some coding without a foundation of context to set it on. So would love to get recommendations of where to start with the real basics (like data structure etc).

<comment><USER4> Can you be a little more specific about what you're ultimately hoping to build, or learn? I'd generally agree with the commenter who suggested you pick a simple problem and then try to solve it. That's the only way to understand where these bits and pieces you've learned fit into the broader picture. I'm getting the sense that that's what you're after here, at least initially -- a general understanding/overview of how this stuff all comes together in the real world? Is that right, or no?

<comment><AUTHOR> Ultimately, I would love if I could build a very basic prototype (of a web app) so that I can scrappily build a product to test. I recognize that that is not an easy task and would take a significant investment to get to proficiency, let alone mastery. But as someone that is analytical but not "technical", it can be exceedingly frustrating to have an idea that you want to implement and create but you don't have the know-how to do so. So I'm trying to find a way to teach myself to fish without becoming a master fisherman. And in the process I also hope that I can become a more effective entrepreneur because I will be able to communicate not only intent and design to the engineers, but appreciate the feasibility and development path.

<comment><USER4> It's hard to offer more specific direction without having at least a vague idea of what type of web app you're trying to build. If you're looking for a "read X book" or "do Y tutorial" type of answer, there simply isn't one, not for what you're trying to achieve. The answer is, learn as much as you need to in order to start building stuff, even if you don't know what the hell you're doing at first. When you get stuck, search around on StackOverflow and elsewhere; if that doesn't work, seek out help from your local Python/Ruby/whatever Meetup and try to find other people willing to teach (you seem genuinely curious and respectful so that should make things a little easier). Just remember that you're a smart person, so when (not if) you're made to feel like an idiot for not knowing some silly basic thing, don't back down. Keep searching, keep building, keep asking questions until you get there.

I'm far from an expert but I've been through this. I was in a very similar position to you less than a year ago and have since then gone from absolute zero technical knowledge to becoming a shitty-but-enthusiastic self-taught hacker. I'm happy to chat more specifically if you want to message me directly (first name: Linda; last name: last 4 letters in my HN username; email: firstlast@gmail).

<comment><AUTHOR> Thank you for the thoughtful response - that's in fact the type of direction I was looking for - even just learning of StackOverflow has been helpful... and I may take you up on the offer to connect further.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> There is only one way to learn: have a problem then solve it. It has to be a real one, too.

So go and find (small) problem, work out how to solve it and implement it. Then if you really want to learn: promote and sell the damn thing.

<comment><AUTHOR> Thanks for this practical advice - I guess what you're saying is it doesn't matter if it's JS or Ruby or whatever, just play around until you figure it out. Will give that a shot.

</comment></comment><comment><USER5> Sorry there are no shortcuts. Study as hard as you can and spend as many hours you can practicing programming. Then in a few years you'll be able to productively work with other developers.

<comment><AUTHOR> Thanks for sharing your perspective - helpful.

</comment></comment><comment><USER6> I would say just learn basic data structures, and understand client/server model. Learning about these two will help you have conversation about how your product strategy goals go along with engineering design. You probably shouldn't need to talk with your engineers in deeper details but at design level.

Hope this helps.

<comment><AUTHOR> This does help - thank you. Part of the challenge is understanding exactly what it is you're seeking to learn. This helps me narrow down what I should be trying to understand as I build my expertise.

</comment></comment><comment><USER7> Spend a lot of time reading technical material, and be active on Twitter and other places were engineers hang out. Watching videos also helps. There's a lot of JS/Rails/Python stuff on YouTube etc...

<comment><AUTHOR> Oh I hadn't thought about going to YouTube for videos - I'll certainly check that out. Thanks for your tips - definitely helpful!</comment></comment>


Ask HN: Building a mobile app with JavaScript in 2019, which stack to choose? - <AUTHOR> I mainly work as a Node.js freelance dev. and for a client, I have to build a small mobile app (4 screens, very basic features: HTTP requests for login and signup, and just fetch and display data). The app might get updated with more features in the future
I don't know which tool to use for this, the 2 contenders are:
- React native: Not sure how mature it is, but there is a learning curve for sure, as I don't know react really well
- Cordova + Onsen UI: Cordova is pretty mature, but the app will be a webapp mimicking a native app, could feel awful to use
Do you have any opinion on those tools? Do you have any recommandation? <comment><USER2> Check also derived frameworks from VueJS

[https://superdevresources.com/vuejs-mobile- frameworks/](https://superdevresources.com/vuejs-mobile-frameworks/)</comment>


CMS trends for 2014 - <AUTHOR> http://despreneur.com/cms-trends-for-2014/

<comment><USER2> I'm slighly confused by the article's premise ("2014 will be the Content's year") and it mentioning tools such as Wix, Squarespace, or even Macaw, who can't be considered as CMS but rather complete website builders.

Apart from its templating system and its vibrant community, one of WordPress' strengths is sticking to an admin interface that _is_ actually focused on content: simple form elements and a decent WYSIWYG.

Drag & drop and in-place editing are technically impressive but don't belong in a CMS: I don't see editors and website owners using it on daily basis to update and manage their content.

<comment><USER3> I think the biggest hurdle we still face when it comes to online publishing is the clash between WYSIWYG and structured markup. Editors, in my experience, don't like working with structured content. But the web is not WYSIWYG. Tools like markdown attempt a compromise, but are still not suitable for many non- technical editors. Do we need a mind-shift, or a new piece of technology to solve this?

<comment><USER4> Yeah this is the main problem but I don't think it's really fixable in the near future.

There's 3 types of content:

\- Arbitrary written content

This is where markdown shines and IMO completely solves content creation.

\- Arbitrary written content with mixed in assets

Nothing works here. Ever try floating some text to the right of an image when you don't have access to CSS or the raw html because we have to assume the content creator has no technical knowledge.

Even wordpress fails horribly at this but it's such a common thing you want to do.

\- Structured content that has clear properties

This is pretty easy to design a nice UI for because it's no longer "anything". For example a todo item or a photo that belongs to a gallery. All you have to do in this case is create a form field for each property. It's something a non-technical person could do.

<comment><USER2>
      - Arbitrary written content with mixed in assets

      Nothing works here.

You're right. Offering a simple way for a non-technical user to manage (locally) his layout is the challenge of most WYSIWYG.

I don't use Medium but was quite impressed by this quick demo: [http://www.youtube.com/watch?v=iO8hysXMfvQ](http://www.youtube.com/watch?v=iO8hysXMfvQ)

Check out around 2:00 how images are inserted within the text. The interface works because it offers only 3-4 possibilities: zoomed in/normal size, full width/left float. Also, there are only 2 levels of heading.

This limited interface is a great compromise between a content-focused experience, and some layout flexibility.

<comment><USER4> The demo looks good but look how much fiddling he had to do to get the images the way he wanted them at certain points. There are so many little quirks that you can't really solve intuitively, you end up having to brute force a solution every time.

He even dealt with a number of non-image quirks and he probably coded the editor. Like when the paragraph and header were both bolded and he had to go back and fix it.

Medium is also highly targeted to blog posts too. A lot of non-technical users somehow want the ability to edit the content on the pages of their web site that might have fairly complicated markup/css to get the desired result.

<comment><USER5> You can solve the fiddling by replacing the whole UI with markdown. Oh, how will he push images to his liking then? Easy: {{image: cat2.jpg, left}} Ok. and howto make it fit the page and baseline without stretching out of the aspect ratio? {{image: cat2.jpg, fit}} Make a button for that like the Left,Centered,Right aligned text buttons and you're done. Even better remove the button and make the whole shit context sensitive, so that after dragging a picture you can do actions on it without having to mess with drag&drop. People don't get drag&drop, really, just trust me here. Most people aren't as aware as you about drag&drop and it doesn't always work too. Buttons help.

But yeah TinyMCE is DEAD.

<comment><USER4> Yeah I definitely agree with the drag/drop method not being popular for a lot of people. I'm not sure why, I guess it's because most people were brought up with "open the file dialog and pick the file".

If it were that simple there would be more good editors around. You should try to prototype what you're talking about and open source it, maybe it will gain traction if it's implemented well.

<comment><USER5> Thanks for the motivation, I'll have some more thought on that and try to implement it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> I always thought the C stood for compromise because that's almost always what you have to do when you use a CMS.

I don't think the future is drag/drop codeless systems. Good luck when your clients ask for very specific work flows that you can't bundle up in a pretty little draggable box!

Then get sad when you realize you have to dive deep into the code except now you're dealing with a 100,000+ line codebase that you didn't write or even worse a large plugin that some random dude wrote which has the worst coding practices possible.

</comment><comment><USER6> The article doesn't mention API based CMSes, which are IMO a better approach to content management.

[http://prismic.io](http://prismic.io) seems promising.

<comment><USER7> Yeah I think the main omission was the whole trend towards markdown/git/api based "CMS" which basically means that most tech people have junked the whole idea of a traditional CMS, few of which have an API though there is CMIS.

<comment><USER5> Wrong. Personally for me a dead end criteria is a CMS without an API. But you mean most people don't need it right? I also think that's not right, because many companies want Mobile Apps, Intranet tools etc. and integrating their crap with the CMS through an API makes a whole lot sense.

I looked at [http://prismic.io](http://prismic.io), but I haven't found anything that's opensource and comes close to it. Do you know something like that?

<comment><USER7> No not saying most people dont need it, they are a reducing pool, the people who do need it have moved away already.

<comment><USER5> >> […] people who do need it have moved away already.

hmm, what do you mean and to which platform?

I was thinking of enterprise users and companies who mostly start with a cheap cms, then add features here and there then an app, then an intranet thingy and at the end you have a spaghetti architecture, because everything has it's own front-end without a unifying API. It's rare that developers write their own solutions, you can say, hey nobody would do that, but the reality is far from that. Most devs simply use what's there and try to integrate different projects "by their own way".

I found some things that can be done better at prismic.io and think there is some wasted potential there.

\- It requires writing your own controller that needs to implement caching or you have a 500ms delay for API requests

\- No multilanguage from the beginning (gotta bake your own solution, that's not so fun)

\- Slugs for objects in collections are ugly (see blog example)

Here are all REST API based "CMS", unfortunately, none of them is actually perfect. [http://www.programmableweb.com/apitag/CMS?protocol=REST](http://www.programmableweb.com/apitag/CMS?protocol=REST)

</comment></comment></comment></comment></comment><comment><USER8> I'd personally include the upswing on static site generators. Not exactly a traditional CMS, but still a system that manages content.

In particular, I'd site NPR's work on their static site process:

[http://blog.apps.npr.org/2013/02/14/app-template- redux.html](http://blog.apps.npr.org/2013/02/14/app-template-redux.html)

<comment><USER3> NPR stuff looks good, but their focus (from an initial skim) appears to be we apps - correct? That might be running before we can walk - how about getting all content-driven sites (blogs, portfolios, etc.) onto SSGs first - I think that's where the really big wins are.

<comment><USER8> Yes, I'd say that their sites fit into more of an "app" category. More reading, for the curious:

[http://blog.apps.npr.org/2013/09/13/using-a-static-site- to-c...](http://blog.apps.npr.org/2013/09/13/using-a-static-site-to- crowdsource-playgrounds.html)

</comment></comment></comment><comment><USER9> A friend just asked me about doing a website for her bicycle repair business, and after thinking about it I thought that what I would like is a docker container that runs a lightweight httpd for serving static pages, a git server to allow her to push updates, and probably a simple web interface for deploying them. That way after the initial deployment my involvement should be pretty minimal. Maybe something like it already exists?

Edit: [http://hyde.github.io/](http://hyde.github.io/) looks like it might be a good starting point for something like the above, with bonus static site generation, markdown etc.

</comment><comment><USER10> This article is horribly flat, once again bundling a blanket term "CMS" to apply to multiple needs and applications, and then using a great title like "Trends"....In essence this post is blogspam.

</comment><comment><USER11> > Next year WordPress will still be a leader.

> 2014 will be yet another year of doing more while writing less > code...Webydo, Froont or Macaw

Yeah right. As someone who'd consider themselves a WordPress expert and has been building clients sites with it (and other OSS offerings like Magento) for a long time there is no way in hell someone is going to use a WYSIWYG builder to create WordPress themes/sites.

If WordPress is the leader, maybe the argument that there is less code writing going on is a general one that means folks are using the CMS with plugins instead of rolling their own solutions -- where clicks replace code, in a sense. But you or someone else still needs to build the templates, customize the admin, register functions and nav and widgets, etc.

I suppose if you're really hell-bent on building a site with WordPress without coding you could like at a DMS add-on like PageLines but really, for most work with WordPress, you're writing code at some point.

</comment><comment><USER12> "From writing code we will move to dragging and dropping, having everything visual and instant."

Sure, if he says so...

</comment><comment><USER13> I had to do a double-take on Wix. (Even went to look at the numbers myself.) I had no idea that it had 1 Billion + in market cap. That's crazy impressive for a company in the crowded website builder space.

Edit: Back in August (most recent numbers I found), they had 679,536 paid subscriptions. That's insane.

</comment><comment><USER14> I am not sure about the future of these "website builders". They have been around a long time, however for anything serious they almost/always disappoint.

</comment><comment><USER15> His examples are exactly what's wrong with content management systems. They're too complex. I'm trying to build an insanely simple system at [http://markdawn.com/](http://markdawn.com/) which emphasis content in a very strong way — content and only content.

I'm really working to make the interface as invisible as possible and mobile (iPhone) first. I hope I can get an API out in 2014, then it can be integrate with all Markdown editors and apps out there. It's cloud hosting for your Markdown files.

</comment><comment><USER16> I am a little tiny bit dumber for having read this.

</comment><comment><USER17> One static site generator that I recently discovered and plan to make frequent use of next year is Middleman (Ruby), which is like Jekyll, except less focused on blogging and more app-like conveniences...for example, being able to use erb rather than going through Liquid:

[http://middlemanapp.com/](http://middlemanapp.com/)

Overall, I'd like to see static-site generators become more widespread as an option. I've seen a few great sites/products recently in which the developer felt they needed to deploy a Wordpress instance even though their site was little more than a landing page and a few about pages. The less friction there is to getting content up, the easier it is to be motivated to create content.

<comment><USER18> I'm a big fan of Middleman too. Means I can use Haml, Sass, CoffeeScript etc. along with various Ruby view helpers to keep the templates tidy, then build the whole thing as part of the deployment process. Blog posts are in Markdown, which is even better, and the whole thing has live reloading. Very slick development process.

I wonder if it would be possible to build a CMS-alike on top of Middleman - something with a web interface to manage the content, edit templates and scripts etc., but using Middleman to generate a static site when changes are pushed. I guess it's another thing to add to the list…

<comment><USER17> This is not inherently related to Middleman, but I'm hugely grateful to it because through Middleman, I stumbled on to Slim, which is a nicer-looking Haml alternative that even allows Markdown. I've started using it in my Rails app and that alone was a game-changing improvement.

The way that Middleman can be so easily extended with plugins and gems the way that a Sinatra app can, while still maintaining the simplicity of a static app...It's really a breakthrough for me.</comment></comment></comment>


Call for a global Immigration Reform - <AUTHOR> http://lostinjit.blogspot.com/2012/04/call-for-global-immigration-reform.html <comment><USER3> Immigration controls are not designed for us -- they exist to appease people's irrational fear of migrants ("stealing our jobs", "the country's full", etc.). That's why here in the UK we reject the idea of detention without charge for terrorism suspects, but are perfectly happy to lock up asylum seekers for years at a time. It's outrageous.

<comment><USER4> _here in the UK we reject the idea of detention without charge for terrorism suspects_

That's not always been the case. Internment without trial was practiced in the UK for terrorism. It tends to be counter-productive, and _increases_ violence. (cf. <http://en.wikipedia.org/wiki/Operation_Demetrius> )

<comment><USER3> You're right. Just to be clear, I wasn't arguing in favour detention without trial for terrorism suspects or anyone else. I just wanted to illustrate how people's irrational fear of migrants appears to exceed even their irrational fear of terrorism.

</comment></comment></comment><comment><USER5> Schengen Agreement, at least kind of sorted this problem for the lucky ones to be a citizen of a member state. For the rest of us, we'll continue to be dogged by this for a long time to come. Immigration laws world wide run on the premise that once we hit our 30's, we want to settle and have a career, a degree and/or a family. Nomads are not majority. Tax laws are also equally as draconian, in reality.

I've found starting a business in my "home" country, and moving between countries with favorable working holiday schemes and long duration tourist permits is the most effective but won't be sustainable past 30 unless I set up another business in a country friendly towards foreign investment (I'm looking at you, Singapore).

<comment><USER6> What changes after you turn 30?

<comment><USER5> Most Working Holiday visa programs are age restricted to people 18-30 years old, in addition to a lot of other immigration laws change.

</comment></comment></comment><comment><USER7> How on earth does showing you're an open source Python programmer prove you're not planning to seek random low paid employment of the type immigration controls generally seek to stop?

<comment><USER8> Typically you have enough credibility to go and find a better job. Also, if you're a person living out of open source, it's relatively easy to check your credibility and how easy it is for you to find a job. "I wrote an obscure clock in python" is different than "I wrote python". The latter person is certainly employable at a large set of companies.

<comment><USER9> but how would an immigration officer know how to check a Bitbucket account for credible references? Those people are government workers and not software engineers

</comment></comment></comment><comment><USER10> I think what the author is calling for is somewhat impractical (if, say, Thailand issues such a stamp, why should Canada or the USA have to respect it)?

On the other hand, I don't really understand why countries like the US, Canada, and Japan don't enter into agreements with EU/EEA countries to allow for visa-free travel, work, and residence agreements.

</comment><comment><USER11> So by just being a digital nomad that makes money online you get access to a country that spent billions and maybe trillions of dollars building its infrastructure?

My opinion is that you are going to benefit from that, so here is what I think is a fair deal for digital nomads seeking to browse the USA:

Duration: 0.5-2 years. renewable after 5 years.

Cost: $5,000 for the visa + $600/month.

Work: No. But you can do consulting for accredited companies.

For that cost, I get access to a great infrastructure, culture, people, universities... I don't have to pay taxes, I just pay a monthly fee which is the equivalent of what I get.

Once I finish my tour, I just leave the country.

<comment><USER12> If I were to visit a country, stay there for a few weeks or months, and write programs, I would be paying rent to a local landlord (which goes into the landlord's property tax), sales tax whenever I purchase anything, gas tax whenever I drive, and even income tax if I did consulting for a local firm. That's almost exactly the same as what ordinary citizens of my host country pay, and unlike them, I don't even get to vote (taxation without representation?) and I'm OK with that.

Now, why do I need to pay extra just because I hold a passport with a different color? Like everyone else in your country, I'm paying for my use of your infrastructure. Nobody's getting a free ride there.

</comment></comment><comment><USER13> I'm sorry to write that, but I think that you're being a little bit douchy. You have a way of thinking parallel to these celebrities demanding exclusive access to shops and shit.

I am a genius Ukulele player, and if you ever read Ukulele Monthly you would know me and that I have no problem with attendance at my super-expensive concerts. But I don't expect border officers to read Ukulele Monthly, or even to know what Ukulele is.

<comment><USER14> Even Google has never heard of a magazine called "Ukulele Monthly", so I can understand why border officers might be unaware of its existence.

<comment><USER13> TBH I wasn't even sure what Ukulele is, and had to check on Google Images if it's possible to use the word "play" when referring to it.

<comment><USER14> It's a small stringed guitar-like instrument exclusively designed for singing chirpy songs about the many wonderful things that can be observed while cleaning windows.

</comment></comment></comment></comment><comment><USER14> Borders are imaginary lines. But unfortunately border control officers are not and usually have little time for philosophy on the nature of socially constructed boundaries.

Perhaps you could just tell them that you decided to retire early and go on a continuous global tour while you were still young enough to enjoy it.

<comment><USER15> "Imaginary" lines that people fight and die over. Are you really this deluded? Nations exist. People bound together by the land and cultural and genetic heritage is a real thing.

Unsurprisingly many people with strong ties to their nation don't see the net benefit of making it especially easy for rootless cosmopolitans to crash in. After all, you can't count on them in a tight spot. They have no loyalty.

<comment><USER14> People fight and die over a lot of imaginary things. Nations are concepts that exist through a shared belief in the existence of nations. People can be bound together by land and heritage without having had the idea of nations or national borders.

Also, while the walls that are put along the imaginary lines may have a reality to themselves, the lines are much more fluid and are unbound to the physical items that represent them. Hadrian's wall is still marking the northern extent of the old Roman Empire, however the current border between England and Scotland is much further north and is represented by nothing other than the occasional sign and line of paint and for the vast majority of the length of this line has no indication on the ground of its actual whereabouts.

[edit] And as far as loyalty goes, loyalty is independent of patriotism and is perfectly capable of transcending geography.

<comment><USER16> "Hadrian's wall is still marking the northern extent of the old Roman Empire"

There is another further North - the Antonine wall:

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

There is quite a lot of Roman infrastructure North of Hadrian's Wall - <USER2> I had a wander along part of Dere Street last weekend: <http://en.wikipedia.org/wiki/Dere_Street></comment></comment></comment></comment>


16characters - FriendFeed & AIM - <AUTHOR> http://16characters.com/

<comment><USER2> This is pretty pointless. FriendFeed will look at this feature and just copy it into future feature sets. I don't see the point in building features into an application that isn't your's.

<comment><USER3> For a company that just got 5 mil in funding, getting some traction, and perhaps looking for engineers, this might be the ticket to getting a call from pb.</comment></comment>


Privilege escalation vulnerability in FreeBSD bhyve - <AUTHOR> https://www.freebsd.org/security/advisories/FreeBSD-SA-16:32.bhyve.asc <comment><USER2> FreeBSD gotta check that privilege.</comment>


Epic to circumvent Apple and Google payment system in Fortnite - <AUTHOR> https://www.epicgames.com/fortnite/en-US/news/announcing-epic-direct-payment-on-mobile <comment><AUTHOR> As far as I know, they never made an exception to anyone over the years. I wonder if they did this time or is just epic trying to force their hands and will end badly.

[https://www.epicgames.com/fortnite/en-US/news/the- fortnite-m...](https://www.epicgames.com/fortnite/en-US/news/the-fortnite- mega-drop-permanent-discounts-up-to-20-percent)</comment>


JuicyDrop – Winamp Music Visualization with JavaScript and Canvas - <AUTHOR> http://www.nihilogic.dk/labs/juicydrop/ <comment><USER2> Actually, no. That's a winamp-like skin with some random audio player. I doubt that skin is in javascript and the player is generic something. Nothing like winamp at all. Audio visualizations in javascript would be a betetr title.

<comment><USER3> The title does state that it's Winamp music visualisation.

<comment><USER4> when the OP commented it was: "Winamp in JavaScript. Yes"

</comment></comment></comment><comment><USER5> Can we just accept that javascript is as practically turing complete as any other language and move on with our lives? :P

<comment><USER6> Turing completeness has little to do with it. JS was always Turing complete, yet these little exercises were not possible 5 years ago.

<comment><USER7> Not desirable either. Not sure they are desirable now either.

<comment><USER8> ars gratia artis

</comment></comment></comment></comment><comment><USER9> UI appears but all boxes are dark on Chrome 31.0, OS X.

Edit: enabled Flash and it's playing. Looks like this is Flash/AS, not JS.

<comment><USER10> Not sure what you're talking about. This is plain Javascript.

<comment><USER11> I don't believe it is. I have click-to-play for plugins, which means that JS runs without issue, but I have to specifically allow any plugins, e.g. Flash.

I get the same thing as parent when I visit -- black boxes -- along with an indication in my address bar that plugins have been blocked.

Looking further at the source on index.html, I see this:

        soundManager.url = './'; // path to directory containing SoundManager2 .SWF file

So this is very obviously just a shell around a Flash file.

</comment></comment></comment><comment><USER12> It's not a valid javascript post if it doesn't say how many lines of code did you use.

Edit: grammar

</comment><comment><USER13> Posted 4 years ago. [https://news.ycombinator.com/item?id=532080](https://news.ycombinator.com/item?id=532080)

</comment><comment><USER14> Ah yes, Atwood's Law ([http://www.codinghorror.com/blog/2007/07/the-principle- of-le...](http://www.codinghorror.com/blog/2007/07/the-principle-of-least- power.html)) strikes again.

<comment><USER15> My first thought ^^

</comment></comment><comment><USER16> I know everybody is tired of these Javascript POC apps but I think it's a testament to the fact that it's so easy to implement webapps vs desktop stuff, and can perform functionally well.

If Google released a version of Chrome that could camouflage itself as a desktop app (browser-based UI over C++ functionality, but that browser appears as it's own app rather than another damn open tab) I think we would see a flourishing of better desktop apps rather than just everything-you-can-think- of-stuck-in-a-browser.

EDIT: Funny I got downvoted because the responses that follow are probably the greatest amount of insight/interest on the whole page. The rest of the comments are just whining about how this isn't a perfect Winamp emulation lol.

<comment><USER17> I don't know of a good framework to cache an app in localstorage so its available offline transparently. IE, you want it so once someone runs your "app" once, and adds it as an app (a .desktop file, whatever the equivalent in Windows is, etc) so that it only ever pulls the pages from the network when an update is found.

<comment><USER16> heh i don't want to build an APP!! that's kinda the point, lol.

i'm not an app developer. i make audio stuff with machine learning tools & I'm a web dev to pay the bills. But in this case all i really want is to build a desktop application (c++,java,whatever) and have a browser-based UI... but not have it appear as a browser tab.

</comment></comment></comment><comment><USER3> Audio visualisation/winamp-like/winamp/take your pick, it's still a cool experiment. I'm digging the music choice too.

</comment><comment><USER18> Ahhh, the days of milkdrop...

Best viewed via a crap projector thrown onto a hippie's face.

Surely we can simulate that in js as well now?

Fuck, we can probably do it in css.

<comment><USER19> Speaking of Milkdrop, the sources of milkdrop 1 and 2 have been released [1]. A couple developers have taken the milkdrop 1 sources and built them into a cross platform visualization software called projectM [2]. Milkdrop forever!

[1] [http://forums.winamp.com/showthread.php?t=214971](http://forums.winamp.com/showthread.php?t=214971) [2] [http://projectm.sourceforge.net/](http://projectm.sourceforge.net/)

</comment></comment><comment><USER20> Forget the visualizer go to the article for the visualizer and enjoy pseudo- playing Mario Brother's in the Background!

</comment><comment><USER21> Looks like it's a bit old if it's still using jQuery 1.2.6 from 2008.

<comment><USER11> Good eye, see drobati's comment -- it was evidently posted here 4 years ago.

</comment></comment><comment><USER22> Oh, I hoped that would recreate Winamp's AVC. Sigh ...

</comment><comment><USER23> The mp3s that are commented out are the best ones.

</comment><comment><USER24> cool tribute, but yeah... missing all the stuff that made winamp actually cool.</comment>


Leon – An Automated System for Synthesizing and Verifying Scala Programs - <AUTHOR> http://leon.epfl.ch/

<comment><USER2> Here are some resources on Leon, including github link, videos of talks, and more papers: [http://lara.epfl.ch/w/leon](http://lara.epfl.ch/w/leon)

</comment><comment><USER3> Looking at this example[1]:

          def size(l: List) : Int = (l match {
              case Nil => 0
              case Cons(_, t) => 1 + size(t)
          }) ensuring(res => res >= 0)

What happens if the length of the list is greater than `Int.MaxValue`? Reading the part of the code that says `ensuring(res => res >= 0)` I would expect that it checked for overflow, but I don't understand what prevents this from overflowing, especially since the case classes that define the list are public and as a consequence I may create arbitrarily long lists.

Am I missing something?

[1]: [http://leon.epfl.ch/#link/bb8d258a234aaeb380d9e1c46aa60b13-1](http://leon.epfl.ch/#link/bb8d258a234aaeb380d9e1c46aa60b13-1)

<comment><USER4> Good catch. Leon indeed currently models the `Int` type as mathematical (unbounded) integers. There is a project in the works to correct this semantic difference with Scala, and have `Int` be signed 32-bit bitvectors and `BigInt` be the mathematical integers. At that stage, Leon will also be able to generate the kind of bound checks you were expecting.

For the types of problems we had been looking at, the current state is arguably not a major issue (if you are really building a list of 2^31 elements, you're probably facing other problems), but for the sake of being formal, the semantic mismatch must be addressed.

</comment></comment><comment><USER5> Where's the paper? :)

<comment><USER4> For the verification part, the main paper is "Satisfiability Modulo Recursive Programs", SAS 2011 [1]. For the synthesis part, the most up-to-date paper is "Synthesis Modulo Recursive Functions", OOPSLA 2013 [2]. As is usual with CS papers, searching for the title in your favorite search engine may or may not help you find a PDF version.

I'm an author on both papers, so feel free to ask any questions here as well.

[1] [http://link.springer.com/chapter/10.1007%2F978-3-642-23702-7...](http://link.springer.com/chapter/10.1007%2F978-3-642-23702-7_23)

[2] [http://dl.acm.org/citation.cfm?id=2509555](http://dl.acm.org/citation.cfm?id=2509555)</comment></comment>


Room to grow: a Twitter data center - <AUTHOR> http://engineering.twitter.com/2010/07/room-to-grow-twitter-data-center.html

<comment><USER2> How do you suppose their power and cooling needs are "unique" (i.e. different from any other company that has a datacenter)?

<comment><USER3> May be less circadian than a typical enterprise datacenter, due to Twitter's global reach and continuous usage during waking hours.

<comment><USER4> I don't think that's it. Back when I was tracking tweets/sec on twitter's streaming API (which is supposed to be proportional to their real traffic) the pattern looked pretty circadian. Take a look: <http://www.flickr.com/photos/hoop2w1/4208393947/>

</comment></comment></comment><comment><USER5> No more failed whale? At least less of them anyhow. That seems like a big move and a good one doing that earlier than later.</comment>


When power is toxic: Dominance reduces influence in groups - <AUTHOR> https://phys.org/news/2020-07-power-toxic-dominance-groups.html <comment><AUTHOR> I'm not sure that this can be extrapolated to mammals much less humans. With respect to primate groupings the general perception is that dominance translates into priority with respect to decision making.</comment>


Why macOS update experience is so bad? - <AUTHOR> Today I made big mistake and updated macOS during work hours.
Download process was fast, like 3 minutes. But update took 1.5 work hours.
With Windows 10, I'm used that if Windows asks for restart, then it's time for small coffee break and after I return to my chair update is done.
But that's not how macOS update works. <comment><USER2> Gee, maybe they're doing different things?</comment>


People Who Live in Small Towns and Rural Areas Are Happier Than Everyone Else - <AUTHOR> https://www.denverpost.com/2018/05/18/small-towns-rural-happiness-study/areas-are-happier-than-everyone-else-researchers-say/ <comment><USER2> Correct link.

[https://www.denverpost.com/2018/05/18/small-towns-rural- happ...](https://www.denverpost.com/2018/05/18/small-towns-rural-happiness- study/)

</comment><comment><USER3> Paper: [http://sci-hub.tw/http://www.nber.org/papers/w24592.pdf](http://sci- hub.tw/http://www.nber.org/papers/w24592.pdf)

</comment><comment><USER4> > OOPS! THAT PAGE CAN'T BE FOUND.</comment>


Ask HN: What do you use for data visualization? - <AUTHOR>

<comment><USER2> Python for data analysis and matplotlib and ipython notebook for visualization.

</comment><comment><USER3> I really like Tableau.

</comment><comment><USER4> Graf.ly is not bad</comment>


6 Web Development Extensions You Should Be Using (But Aren't) - <AUTHOR> http://blog.crossrider.com/post/30036172083/web-development-extensions

<comment><USER2> Great resource for developers

<comment><AUTHOR> Thanks. We wanted to show off some of the lesser known extensions out there that are really useful</comment></comment>


MacBook Pro 13" Touch Bar 2018 Teardown - <AUTHOR> https://www.ifixit.com/Teardown/MacBook+Pro+13-Inch+Touch+Bar+2018+Teardown/111384 <comment><USER2> So for the first time in more than a decade, I bought a non-Apple personal machine. (Thinkpad X1C 6th gen). It's _okay._

In the first week of ownership, I ran into the issue that the LTE is flaky coming up from hibernate. Trying to debug that issue (spoiler: there is no fix) really made me appreciate how Apple is operating on a different level from other PC manufacturers. The fact is that Lenovo doesn't have the expertise to make an LTE card or write drivers for it, and neither does the company that makes the card for Lenovo (Fibocom). Fibocom takes an Intel reference design, buys Intel chips, throws the other components on the card, glues some Intel code together and ships it. Lenovo buys it and puts it in the machine, but doesn't really know how it works. When it doesn't work, it's not Intel's problem (they just make reference designs and sell the chips), it's not Fibocom's problem, and even though Lenovo takes responsibility, it's out of its depth in fixing the problem.

Compare Apple. They don't just take an SSD and slap it in a machine. They make their own SSD controller and combine it onto a chip with other functionality. Non-upgradable? Yes. But at least they understand how their own machine works.

<comment><USER3> As I read this comment, my mouse and keyboard stopped working (MacBook Pro 15" 2018) because they can only connect to my laptop via USB-C (required a reboot)

Saying there are no driver issues cannot be true, just by googling for cases under support.apple.com

<comment><USER4> Do you use Discord? There's an issue at least a year old for me wherein if I have been using discord for a while, quitting discord kills my mouse until I unplug/plug my mouse back in and reopen Discord. No other electron apps do this.

<comment><USER3> No discord here. In this case I fully disconnected my USB-C devices, replugged and they were still unresponsive. I then rebooted and everything worked again.

</comment></comment></comment></comment><comment><USER5> Most interesting tidbit:

> Apple was careful to mention its latest third-gen keyboard in its press > release. The added quietness seems a bit underwhelming to our ears, and we > suspect there's something more going on... As you may have heard, there's a > brand new silicone barrier under here. _Apple says this new addition is > purely for soundproofing, but it bears a suspicious resemblance to their > 2016 ingress-proofing patent—one that might help prevent the keyboard > failures we keep hearing about._ This bears further analysis. We'll have a > deeper dive on the keyboard situation later in the week. Stay tuned!

Relevant image:

[https://d3nevzfk7ii3be.cloudfront.net/igi/Xi2aYwBSYTs2fZT1.h...](https://d3nevzfk7ii3be.cloudfront.net/igi/Xi2aYwBSYTs2fZT1.huge)

<comment><USER6> Would it kill them to say "We're sorry about the keyboard problems. Here's what we did to try to address them"?

My future buying decisions will depend a lot on my confidence level in the keyboard.

<comment><USER7> It could be legally problematic. Admitting to a general fault could lead to a full on recall which given how integrated the keyboard is could cost almost the same as replacing every single machine.

(Of course, with $100bn+ in cash, they probably _should_ do this, but I can see why they wouldn't.)

<comment><USER8> I don't like the improvements they made that actually make the new MBPs worse for what I do. I also don't trust them regarding the keyboard issues and will wait two years before even considering a new MBP. If my old MBP breaks it will be some other manufacturer with questionable long term quality but much lower price. They lost my faith and doing a major recall would do lift their image in my eyes tremendously.

</comment></comment></comment></comment><comment><USER9> Interesting to note that the SSD is literally 4 chips permanently soldered on both sides of the motherboard, they don't even bother with an NVMe M2 drive. So you can't upgrade your hard disk to a larger one ever - you have to choose when you buy it.

I guess that contributes to it being the fastest ever hard disk in a laptop: [https://www.macrumors.com/2018/07/13/2018-macbook-pro- fastes...](https://www.macrumors.com/2018/07/13/2018-macbook-pro-fastest- laptop-ssd-ever/)

<comment><USER10> Haven't the drives been soldered on board for quite a few years now? At least since the 2016 redesign, right?

<comment><USER11> Not in all models. The non-touchbar 2017 13" had an upgradeable ssd.

<comment><USER12> If you can find something to upgrade it with!

<comment><USER11> Well, yes, there's that. I assume you'd have to get one pulled from a busted machine on eBay.

<comment><USER12> Which caps your upgrade at whatever largest size Apple ever sold, which you may already have.

</comment></comment></comment></comment></comment></comment><comment><USER13> From a comment on the article

 _> Looks like one of the Thunderbolt ports on the right-hand side, probably the one closest to the headphone jack, is connected to the T2 by way of a USB switch. This is probably the port that is used to perform a DFU restore of the iBridge, like on the iMac Pro ( [https://help.apple.com/configurator/mac/2.7/#/apdebea5be51](https://help.apple.com/configurator/mac/2.7/#/apdebea5be51)) It's possible that data recovery could also be performed via that Thunderbolt port given the right tools._

The T2 ARM coprocessor secure enclave with encryption keys is connected to an external PCIe bus that is also connected to the main x86 CPU? Is there a risk of DMA attacks like PCILeech? What policy restricts devices that can pair with the T2?

</comment><comment><USER14> Unrelated side note: I recent had my MacBook 2016 repaired under Apple's recently announced keyboard repair program. Previous keyboard repairs came with topcase + battery replacements. This keyboard repair does feel like it replaced the whole keyboard and topcase, but it did not replace my battery. I'm not sure if they changed their repair process to make repairs easier on them or cheaper on them and that's what spurred the extended repair, or what.

</comment><comment><USER15> > Given this MacBook's non-removable storage, Apple must have a new recovery > method. Any ideas?

None?

<comment><USER16> I work at an Apple certified repair center. Theres a tool called the "Customer data transfer tool" that connects to a certain port on a logic board thats hard wired directly into the SSD. On the other side is a USB C cable that is connected to the machine with a new logic board. This will work even if the rest of the logic board is dead, as the SSD circuitry is isolated.

You can read more about it here: [https://9to5mac.com/2016/11/24/apple- special-cdm-tool-macboo...](https://9to5mac.com/2016/11/24/apple-special-cdm- tool-macbook-pro-ssd-recover-repairs/)

<comment><USER17> Unfortunately this doesn't apply for warranty repairs directly through Apple, as Apple won't bother using this port. They'll just tell you you're SoL and happily remind you of their iCloud services for backups. I had this happen to me on my 2016 TB MBP where the logic board had issues detecting the power level of the battery and wouldn't boot. I knew of the port, and asked them to use it, but their response was that the warranty would only cover like-for- like repairs and that I was responsible for backing up the data. Fair enough, except that Time Machine can and will lie to you about whether it actually backed up the data on your machine. Which is exactly what happened with my machine when I got it back and attempted a restore. Thankfully I had a separate non-Time Machine back up that I could use to bring my data back, but it wasn't fun manually restoring my OS profile and settings. I even managed to get a CS rep to confirm with me over the phone that I was not the only person to have had this happen to them.

Apologies for ranting here; I just hope I can save another person from this BS if they attempt to rely on this port. Through the entire process no Apple rep would confirm the existence of the tool so they made it seem like I was forced to use them for the warranty repair with total data loss.

If I may ask, samcat116, what's the normal procedure for handling warranty repairs at a certified repair center like the one you work at? Is it just labor cost, with parts billed to Apple? And does that include the copying of the data off the SSDs? I'm imagining for warranty repairs the easiest way to handle them is to just swap the logic boards out like Apple does and not bother doing actual diagnosing at the board level like [https://www.youtube.com/user/rossmanngroup](https://www.youtube.com/user/rossmanngroup) since the customer isn't paying for parts?

</comment></comment></comment><comment><USER18> > _NXP 80V18 secure NFC module_

Does that mean there's an NFC antenna somewhere on the laptop?</comment>


Ubuntu Font Family - <AUTHOR> http://font.ubuntu.com/

<comment><USER2> Why all the hassle (you must be a Ubuntu development member etc.) just to download and test some fonts ? Surely this is supposed to be open source ?

<comment><USER3> As of yesterday the font is included in Maverick, so anyone can get it now on maverick with a quick apt-get install ttf-ubuntu-font-family, and it should also be on default new installs and as people upgrade.

Since it's in the distro, the source is too, which you can grab from [https://launchpad.net/ubuntu/+source/ubuntu-font-family- sour...](https://launchpad.net/ubuntu/+source/ubuntu-font-family-sources). There isn't a simple "just grab this .ttf" URL, AFAIK, but whatever, it'll be installed by default :)

The HOWTO that font.ubuntu.com links to has some old sections still in it from the phased beta.</comment></comment>


John Resig: Unimpressed by NodeIterator - <AUTHOR> http://ejohn.org/blog/unimpressed-by-nodeiterator/

<comment><USER2> I agree with all the points here except for the part about bit flags. Bit flags are still arguably the best way to store "sets" of non-duplicate information. For example, if I wanted to aggregate the kinds of nodes I'd want with John's API, I'd have to accumulate them in an array, then use apply() because I can't pass that array in. Then there's the problem of duplicates, and also easily being able to check, add, and remove. All these operations are of course possible with an array (even if they contain duplicates), but it seems a bit much to go down a route where all these operations are inherently O(N) when there is an O(1) solution that isn't _that_ hard to learn. Additionally you can easily construct shorthands for often used combinations: ElementsAndText = Element | Text. In the array world, you're going to be having to concat arrays to achieve a similar effect. It's also really nice that you can say "ALL" just with 0xF...FFFF (-1) and be assured that it is future proof, whereas in the array world if new nodes creep in in the future, you have to now go back to every instance where you called this and add a new parameter. I suppose the "easy" fix for this is to just say that if nothing is passed in it means "all", or alternatively have an ALL constant.

We recently tackled a similar issue in Cappuccino and our solution was to create two parallel ways of specifying this information that were transparently convertible: a pure bit flags version and a strings version, such that (Selected | Highlighted) is equivalent to "selected+highlighted". You can pass in either the string form or the bit form to the methods, and you can convert between them as well. All in all, none of the "JS people" using our framework seemed to mind the use of bit flags.

<comment><USER3> We're talking about JavaScript, so Scheme is a better example than C. At the level of abstraction Javascript deals in, bit twiddling like this should not be necessary. Even using all caps constants just feels dirty. And JavaScript isn't even any good at bit twiddling, as it doesn't use native machine integers.

</comment></comment><comment><USER4> Sure, but aren't you the guy whose claim to fame is taking DOM API's written by people who think in C++ and translating them into JavaScript? Get to work!

</comment><comment><USER5> This is a nice example for the (not so) subtle brain damage that java has inflicted upon a whole generation of developers. John points out nicely how the insanity even creeps into other languages when nobody's looking...

<comment><USER4> I think here C++ is more likely culprit.

</comment></comment><comment><USER6> He's right about this rightfully being a node method rather than a document method. But if the common developer can't understand bit flags, I don't think they are going to have a long career. And I can't think of a good reason to use entityReferenceExpansion=false unless you're going out of your way to handle entities yourself (which he's clearly not inclined to do).

<comment><USER7> The common developer or the common web developer? I think most web developers can go very far without ever using bit flags - especially considering that no common JavaScript or DOM APIs use them.

"And I can't think of a good reason to use entityReferenceExpansion=false..." It's all about the element of least surprise - are developers more likely to expect the syntax that they see on the page (e.g. &foo;) or something else in its place. Whatever the right answer is to that question should be made the default option and left as that.</comment></comment>


Advantages of monolithic version control - <AUTHOR> http://danluu.com/monorepo/ <comment><USER2> I find discussions on this topic highly interesting. Thank you for this piece.

I myself summarized Google engineers' reasoning behind the monorepo decision. It may be found here [https://www.extreg.com/blog/2017/02/googles-ultra-large- scal...](https://www.extreg.com/blog/2017/02/googles-ultra-large-scale- monolithic-source-code-repository/) and it's based on this original article [http://cacm.acm.org/magazines/2016/7/204032-why-google- store...](http://cacm.acm.org/magazines/2016/7/204032-why-google-stores- billions-of-lines-of-code-in-a-single-repository/fulltext)</comment>


SourceForge.net Gets A Makeover - <AUTHOR> http://sourceforge.net/?

<comment><USER2> Why do they have FullSync on the front page? Last file update: 2005-03-08. Review page [1] has loads of mentions of non-running, non-syncing, and "too buggy to depend on". Not exactly a stellar project to be featuring so highly.

Meanwhile, it seems their navigation hasn't really changed, just received a new coat of paint. On the ScummVM pages, for instance: still shows 5 items in the main nav, unless support / develop is clicked. Then 4 more menu items and breadcrumbs appear, mouse-over menus on develop and the new ones, "support" changes to "donate", "share" appears out of nowhere, and the styling changes (different mouse-over font color on the navbar, for no reason). They also still have the crappy click-to-reload-the-page-to-navigate on the download- files list, side-by-side diff doesn't show word / character changes, just by line, and anything to do with the repo (browser, patches, etc) is a complete style and layout change from the rest of the site.

Put it back in the oven, it's not done yet.

[1]: [http://sourceforge.net/projects/fullsync/reviews/?sort=usefu...](http://sourceforge.net/projects/fullsync/reviews/?sort=usefulness)

</comment><comment><USER3> I worked there a little over a year ago and in that time they had 3-4 'makeovers'. In the same time they had like a 90% staff turnover including the CEO and a lot of upper management.

</comment><comment><USER4> Interesting redesign. In 2009 they did a previous redesign, which Chris Wanstrath from GitHub critiqued at RailsConf <http://www.youtube.com/watch?v=JUUvq48Gb3w> (Around 17:45). It looks like they've improved since then, but I couldn't even create a project, the system gave me a 400. Also, the site seems really slow, but possibly that's because they just relaunched.

While they get a lot of flak because they have supposedly lost to GitHub, I'll admit that far more people have heard of SourceForge compared the GitHub, and I must applaud their willingness to at least attempt a major redesign.

</comment><comment><USER5> Seems a shame one of their homepage 'featured' projects (ScummVM) has just moved to github.

<http://www.scummvm.org/news/20110212/> <http://github.com/scummvm/scummvm>

</comment><comment><AUTHOR> IMO, the most useful page is pretty well hidden (you have to search an empty string): <http://sourceforge.net/search/>

<comment><USER6> Seems like a lot of the useful content is hidden. I had hopes that they had learned from GitHub, but it still takes multiple clicks to see any code.

</comment></comment><comment><USER7> Too little, too late. Github has won.

<comment><USER8> Uh you're high. You're in a bubble...

Quantcast: [http://www.quantcast.com/profile/trafficGraph?wunit=wd%3Anet...](http://www.quantcast.com/profile/trafficGraph?wunit=wd%3Anet.sourceforge&wunit1=wd:com.github&drg=&dty=pp&gl=6mo&reachType=period&dtr=dm&width=522&country=UK&ggt=large&showDeleteButtons=true&v=-1957318692)

Trends: [http://trends.google.com/websites?q=sourceforge.net,+github....](http://trends.google.com/websites?q=sourceforge.net,+github.com&sa=N)

Alexa: [http://traffic.alexa.com/graph?&w=400&h=220&o=f&...](http://traffic.alexa.com/graph?&w=400&h=220&o=f&c=1&y=r&b=ffffff&n=666666&r=2y&u=sourceforge.net&&u=github.com&);

By what measure are you talking about? Ah of course. The "It's shiny new so hot right now within my small circle of friends!" metric.

<comment><USER9> The vast majority of the traffic that hits Sourceforge is there to download software, not contribute to the projects. When we spoke to them a few years ago, they said their main competitor was Downloads.com not us (GitHub).

Don't get too caught up using graphs to assume relevancy, Myspace still gets a lot of traffic.

<comment><USER8> and traffic = mindshare = $$$

My point was that "Github has won against sf" is a rather naive comment.

And as you rightly point out, github and sourceforge aren't really in competing markets anyway - making the original comment even more nonsensical.

<comment><USER8> > Don't get too caught up using graphs to assume relevancy, Myspace still gets > a lot of traffic.

Also not sure what you mean. Traffic == relevancy. If something gets a lot of users, surely by the definition of the word, it's 'relevant'.

Sounds like crazy valley bubble talk to me.

</comment></comment></comment></comment></comment><comment><USER10> The new design looks much better than the previous. I digg it.

<comment><USER4> I am sad that you got downvoted because you have a discenting opinion. I am curious though, what do you like about the new design? More whitespace? Better color choice? New features?</comment></comment>


LawPivot Seeks To Kill (Well, Slash) Startup Lawyer Fees - <AUTHOR> http://www.wired.com/epicenter/2011/03/lawpivot/

<comment><USER2> An $80 fixed fee for each startup-related law question seems like a great deal if you get somewhat extensive advice - i.e. something more than "come in to my office and we'll talk about it". Also, barriers to entry for this type of idea seem pretty low. Stackoverflow could easily use their existing Q&A framework to enter the legal advice market, minus some sort of document handling?

I'm sure there are other existing companies in the Q&A space as well. Maybe it depends if LawPivot does a good job getting extensive (detailed) answers to these questions, rather than superficial answers.

<comment><AUTHOR> I've used SO a lot for technical matters. I would be worried about taking legal advice from them if there's no "responsibility" for bad advice. IANAL but I think that if you take payment for advice you give, then there is a little bit more accountability.</comment></comment>


Make Your Web Site 'Groovy' - <AUTHOR> http://www.forbes.com/2010/02/02/computer-programming-java-technology-business-intelligence-groovy.html

<comment><USER2> Dudes, Dan Woods here, A copyediting error introduced that problem. The sentence now reads: "Groovy has its own version of Ruby on Rails, an open source project called Grails, which is now part of VMware."

</comment><comment><USER3> It is awfully hard to take an article seriously when basic errors like this are made:

"Groovy has its own version of Ruby called Grails, which is now part of VMware"</comment>


Sync – securely stores all your data in your completely private cloud - <AUTHOR> https://www.sync.com/

<comment><USER2> Another service on the "cloud" bandwagon...

<comment><AUTHOR> Agreed. A new cloud hosting service comes out every month...

I would like to see more tools like Sparkleshare/Seafile, that allow some sort of self-hosting.

I simply can't trust these services with my intellectual property. I am pretty sure some of them are stealing trade secrets, despite their privacy policy.

The 'freemium' / 'try before you buy' model doesn't always apply. If I'm not paying, there is an unwritten law of Internets that says Cloud services can pillage all the data. Of course, I am open minded about whether that's the case, but it's always a possibility; especially with the lesser known Cloud services.

<comment><USER2> I hear you... Maybe its me but I don't see the benefit of storing data in the cloud unless its shared docs, pics, backups, etc.

I mean I'm in the software biz and I work with a team all over the planet and we have one folder on google docs to share development docs. Other than that I don't have a need for it except to back up my HDD. Which is just really an offsite for the server at my house.</comment></comment></comment>


Ask HN: Is Java spring boot rally the defacto standard now? - <AUTHOR> Hello, I'm not really up to date into microservices.<p>I for one would use smaller and more scalable solutions? But it seems that this framework won the race, but why? <comment><USER2> 1) [https://github.com/akullpp/awesome- java#microservice](https://github.com/akullpp/awesome-java#microservice)

Another new one from redhat: [https://quarkus.io/](https://quarkus.io/)

[https://developers.redhat.com/blog/2019/03/14/quarking- drool...](https://developers.redhat.com/blog/2019/03/14/quarking-drools-how- we-turned-a-13-year-old-java-project-into-a-first-class-serverless-component/)

[https://redhatofficial.github.io/#!/main](https://redhatofficial.github.io/#!/main)

2) The J2EE BigCo (now JEE) vs Spring Framework legacy (Pivotal).

[https://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edit...](https://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition)

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

3) [https://martinfowler.com/articles/microservices.html](https://martinfowler.com/articles/microservices.html) -> 'decentralized control of language'

[https://www.reddit.com/r/microservices/](https://www.reddit.com/r/microservices/)

</comment><comment><USER3> In Java world, Spring has really gotten entrenched and with good reasons. Spring Boot and other spring auxiliaries solve a lot of boiler plate code issues. Spring also comes with batteries like Spring Batch, Data, security etc. So it's usually a good choice on the Java based applications stack.

I would recommend others like Vert.x, Play, Axon etc.

<comment><AUTHOR> Yeah, but I wonder about the over head. Why do you want to use a framework with like 200mb over head for even the smallest thing?

That does not sound "micro" to me..</comment></comment>


Many to Many, 28th May [London, UK] - <AUTHOR>

The next Many to Many is on the 28th of May.
Many to Many is a slightly different type of tech event. Instead of the traditional 'one person talks to audience' format, Many to Many aims to foster group discussion. There are 3 discussions topics per event, each discussion leader opens with a short (5m max) intro, before opening up to a half-hour group discussion.
The idea is that everyone shares their experiences, asks questions and learns from each other. We've been running this event for almost a year, and have had some amazingly positive feedback.
This format evolved from us attending other tech events and finding often the most valuable parts of (e.g.) a presentation about technology X were in the questions and discussions at the end of each talk - except this time was often cut off in order to make room for the next talk. So we decided to make an event entirely about the discussions & questions.
The event is mainly aimed at engineers/tech people who are interested in web/mobile startups in London, but we happily get designers/product people attending and leading discussions too! The event is free, and being a startup event, naturally pizza, beer and soft drinks are all provided :).
The next event is on the 28th of May, in Shoreditch, London, UK. The leaders and discussion topics:
- Sam Phillips (eBay) - "Giving and receiving feedback"
- Ollie Glass (Makeshift.io): "Turning hacks into products"
- Nicholas Skehin (Citymapper) - [topic TBC]
If this sounds like fun, please join the announce list on http://www.manytomany.co.uk/ , and I'll send over details of how to get a ticket.
We cap the number of people that attend in order to keep the conversation high quality. If we get oversubscribed, we draw randomly for tickets. I'll be allocating tickets soon, so please do sign up ASAP
Cheers,
Tom
https://twitter.com/many_to_many <comment><USER2> Sounds awesome.

Clickable link: [http://www.manytomany.co.uk/](http://www.manytomany.co.uk/)

<comment><AUTHOR> Thanks! Beat me to it :).

</comment></comment><comment><USER3> What time?</comment>


Wunderkit - A new way to organize your life - <AUTHOR> http://get.wunderkit.com/

<comment><USER2> New? Hasn't this been around for months?</comment>