Elementary OS 0.3 "Freya" is released - <AUTHOR> http://sourceforge.net/projects/elementaryos/files/stable/ <comment><USER2> Interesting fact: This version was supposed to be called Isis until, well you know...

Isis is a nice name with interesting mythological significance. Sad that it has been ruined for the foreseeable future.

<comment><USER3> ... Uhm, no, I've no idea what's wrong about it now. Care to inform us of what you're talking about?

<comment><USER2> [http://en.wikipedia.org/wiki/Islamic_State_of_Iraq_and_the_L...](http://en.wikipedia.org/wiki/Islamic_State_of_Iraq_and_the_Levant)

Pretty surprising that you don't know about it since they have been dominating news coverage for more than a year now.

</comment></comment></comment><comment><USER4> I installed the previous release (luna) a while ago on an older pc I had laying around. I was really impressed. Though much of it is a ripoff of OS X design it's a pretty well done ripoff and coming from a Mac I think it's the most usable linux distro I've used so far. I'd love to see more adoption of this project, as it has a lot of potential to make linux more usable to non- technical types.

<comment><USER5> This is a very well-polished distribution in terms of usability and user interface. I don't care actually if they ripoff some good design examples as long as it gives a good overall feel. And it certainly does. I remember it was one of the fastest growing linux distribution some time ago...

</comment></comment><comment><USER6> For anyone who likes the look of it but doesn't want to go off their current Linux distro, you can just download the Pantheon desktop.

[https://wiki.archlinux.org/index.php/Pantheon](https://wiki.archlinux.org/index.php/Pantheon)

<comment><USER7> Last I tried it didn't work very well in Arch, but that may have changed over the past month or so.

</comment></comment><comment><USER8> Magnet link, amd64 iso:

      magnet:?xt=urn:btih:fc85dc999730a42de3924444aadbcfa183b5f388&dn=elementaryos-freya-amd64.20150411.iso&tr=https%3A%2F%2Fashrise.com%3A443%2Fphoenix%2Fannounce&tr=udp%3A%2F%2Fopen.demonii.com%3A1337%2Fannounce&tr=udp%3A%2F%2Ftracker.ccc.de%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&ws=http%3A%2F%2Fsuberb-sea2.dl.sourceforge.net%2Fproject%2Felementaryos%2Fstable%2Felementaryos-freya-amd64.20150411.iso&ws=http%3A%2F%2Fignum.dl.sourceforge.net%2Fproject%2Felementaryos%2Fstable%2Felementaryos-freya-amd64.20150411.iso&ws=http%3A%2F%2Fheanet.dl.sourceforge.net%2Fproject%2Felementaryos%2Fstable%2Felementaryos-freya-amd64.20150411.iso&ws=http%3A%2F%2Fcitylan.dl.sourceforge.net%2Fproject%2Felementaryos%2Fstable%2Felementaryos-freya-amd64.20150411.iso

<comment><USER9> You broke HN ;)

<comment><USER10> I don't know which I prefer, overly large page width, or overly large overflowed scrollable div.

</comment></comment></comment><comment><USER11> Official website: [https://elementary.io](https://elementary.io)

<comment><USER12> As a new potential user I'd like to see more screenshots on the front page before I send them my money or download and install the OS. A video preview of 2-3 minutes would be even better.

<comment><USER13> There is a surprising lack of information on the website. Here are a couple links that help fill in the gaps.

"elementary OS is a Linux distribution based on Ubuntu. It makes use of a desktop with its own shell named Pantheon,[2] and is deeply integrated with other elementary OS applications like Plank (a dock), Midori (the default web browser) and Scratch (a simple text editor). This distribution uses Gala as its window manager..." [http://en.wikipedia.org/wiki/Elementary_OS](http://en.wikipedia.org/wiki/Elementary_OS)

"elementary OS Freya vs elementary OS Luna - What's new?" [https://www.youtube.com/watch?v=1CBS6RDLTNA](https://www.youtube.com/watch?v=1CBS6RDLTNA)

It looks intriguing. A host of application level services built on linux leads me to think of this as a KDE-like effort to remake the desktop.

<comment><USER14> A browser that's not Firefox or Chrome scares me slightly, considering the amount of resources that go into securing them, yet they all fall at cansecwest.

How vulnerable can I expect to be running Midori?

<comment><USER15> Midori is WebKit-based, so it's only as vulnerable as Safari.

<comment><USER16> That's not actually true. A browser is not as secure as it's engine. The thing is really more complex than that.

There are configurations concern, certificates, security layer, apps/plugins/add-ons, bugs within the ui layer...

<comment><USER15> Sure, but the bulk of the issues are in the renderering engine, and for that they are sorted.

<comment><USER16> I know, it's the exposed part after all, but still I wouldn't recommend it as "secure as safari".

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> This is one of the linux flavors i actually like using. Great going guys.

</comment><comment><USER5> Do you know if the Elementary OS Luna gets updated automatically to the new Freya version?

</comment><comment><USER18> Freya Release Post: [http://blog.elementary.io/post/116134677986/freya-is- here](http://blog.elementary.io/post/116134677986/freya-is-here)

</comment><comment><USER19> Can I Upgrade Luna to Freya?

</comment><comment><USER3> So between this and mint cinnamon, what's the best choice to install to parents and friends that have little knowledge of *nix, but need a PC to work, email and IM with?

</comment><comment><USER20> Anyone use linux (via Virtualbox) on a MBP? I really miss Linux but I really do not wanna fuck around with hardware/drivers anymore. And eOS is just gorgeous.

<comment><USER21> I'm sure you can run Linux without a virtual machine of any kind on a Mac. With the right hardware (which MBP of some generation just might be) there's no need to fuck around; everything just works (and, unlike Windows, you can count on pulling a hard drive from one machine and putting into another). I have installed Ubuntu 14.04 on a white 2008 MacBook and it just worked.

<comment><USER3> Indeed. Macs are pretty popular for running Linux, since they have a very small variety of hardware that's mostly supported just fine, don't have locked bootloaders or any weird stuff like that (I'm looking at you, Sony), and offer pretty good hardware and price.

</comment></comment></comment><comment><USER22> How is the HiDPI support in this version? I'm afraid to go to the trouble of making a live usb if everything is small.

<comment><USER11> > We're pretty close to being able to support HiDPI displays like Retina, but > we're not quite there yet.

[http://blog.elementary.io/post/113920029861/hey-guys-i- love-...](http://blog.elementary.io/post/113920029861/hey-guys-i-love-the- design-of-freya-but-does-it)

</comment></comment><comment><USER9> I wonder how sustainable is their development method, are the UI changes to apps accepted upstream?

<comment><USER15> I'm guessing you're a Spanish speaker? In English it's "sustainable", not "sostenible". :)

<comment><USER9> hah thanks ;) I do use both languages frequently, fixed.

</comment></comment></comment><comment><USER23> Thinks this Linux distribution gets the desktop look right!

<comment><USER21> For those of us who equals 'right' with 'the way Apple does it'? Serious question; I am unfamiliar with this particular distro, and I've tried using a Mac and couldn't get used to it.

<comment><USER24> I like eOS. Like you I don't use Mac because of a few things that totally breaks it for me. eOS looks kind of like Mac OS X but IMO does a few things a lot better.

For example consider just the fact that you can get a nice desktop where you can apt-get all your[0] normal programs and they look nice. Or the fact that the menu follow the window in question instead of being locked to the top of your screen.

[0]:yes I consider myself a linux user who sometimes have to use other OS, not the other way around.

<comment><USER21> I guess I have to try it. I think they could have explained how they are different and what their point is, on their site.

Their Human Interface Guidelines are 'coming soon' [https://elementary.io/docs/human-interface- guidelines](https://elementary.io/docs/human-interface-guidelines).

Are they just a few guys?

<comment><USER25> Yup, it's mainly just a few guys in their free time IIRC. The HIG has been coming soon for several years now though.

</comment></comment></comment></comment></comment><comment><USER26> Free, online operating systems that "install" in less than 2 seconds and never ask for any payment are the wave of the future. Oh, and did I mention the integrated AI?

My web-based implementation of Unix: [https://www.urdesk.net](https://www.urdesk.net)

To go straight to the AI: [https://www.urdesk.net/desk?intro=bertie](https://www.urdesk.net/desk?intro=bertie)

I am always looking for help!

<comment><USER15> > This site only works with an up-to-date version of Chrome!

Also, that's not really an operating system. It's a web-based desktop environment, like the late g.ho.st, but not an OS.</comment></comment>


Updating Torrents via DHT Mutable Items - <AUTHOR> http://www.bittorrent.org/beps/bep_0046.html <comment><USER2> This is an intriguing addition to Bittorrent; this kind of feature exists in IPFS [1], but of course Bittorrent has a much, much larger install base, so this progressive enhancement could bring similar or near-equivalent features to a wider audience.

This implementation relies on BEP 44 (Storing arbitrary data in the DHT) [2], which, together with the design of the DHT, does have some security implications [3].

[1] [https://ipfs.io/](https://ipfs.io/)

[2] [http://www.bittorrent.org/beps/bep_0044.html](http://www.bittorrent.org/beps/bep_0044.html)

[3] [https://gist.github.com/substack/eadd13302d785dc13aac#file-r...](https://gist.github.com/substack/eadd13302d785dc13aac#file- results-markdown)

<comment><USER3> IPFS still doesn't have a content discovery mechanism, which I found very disappointing. It's not a killer app without that.

<comment><USER2> Well, to be fair, neither does HTTP, short of either name-services (DNS), or crawling-and-indexing.

IFPS has IPNS [1], the name services (the feature most-directly relevant to the Bittorrent enhancement in question).

To date, I'm unaware of an IFPS crawler-and-indexer search engine.

[1] [https://github.com/ipfs/faq/issues/16](https://github.com/ipfs/faq/issues/16)

<comment><USER3> Why is that fair? They're designed for different purposes. IPFS falls far short of being useful in a transformative way because it lacks this important feature. Otherwise, it'll be a kind of gimmicky alternative to HTTP, "auto- archiving HTTP", that never got used for anything real.

<comment><USER4> Did you ever use the web in 1995?

Content discovery is neither a part of HTTP nor the architecture of the web. It's a feature if it's current landscape, built on top of existing non-ideal ALI and brute force (scanning).

Good web search (represented by Google) appeared around 1998, years after the general availability of the web, when the corpus of web pages was already large. Up to this moment, search is powered by ad revenue.

I don't see how IPFS is significantly different in this regard.

<comment><USER3> It isn't 1995, this is exactly my point. If we're trying to design new systems, we shouldn't design them with the exact same problems. What's the point of "decentralizing" if it just means another Google?

<comment><USER4> The approach of yacy.net may be partly applicable to IPFS.

Donating resources to a "traditional" scanning search engine is also probably doable. But unlike Web, IPFS lacks intense linking and thus "citation ranking" (PageRank-like). Measuring relevance is harder.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> This is an okay idea, but it doesn't really solve the big problem facing BT right now: content discovery.

Mutable Items are good for updating content, but that doesn't matter if nobody can find it.

There needs to be a BEP for a way to host, serve and search metadata about torrents, not just their info-hashes. This should be priority #1 for BT devs. Fortunately, there is at least some related thinking in this direction: [http://www.bittorrent.org/beps/bep_0044.html](http://www.bittorrent.org/beps/bep_0044.html) although I don't think that it really goes far enough, as there is no standardization around how the data for searching will be structured, etc.

<comment><AUTHOR> Torrent sites could publish their database dumps via this extension, and consumers would automatically download their updated index. A torrent can be anything; it can also be a list of other torrents ;) So it does help with content discovery.

<comment><USER5> An index? That could be huge. I think it's senseless.

So many p2p protocols have support for p2p search (to my mind comes Kademlia), why can't BitTorrent have p2p search?

<comment><USER6> Vuze (formerly known as Azureus) has (or at least had a prototype of) p2p search.

I wrote a paper on building a torrent search index quickly using the DHT records that this feature emitted at the time. [http://static.usenix.org/events/woot10/tech/full_papers/Wolc...](http://static.usenix.org/events/woot10/tech/full_papers/Wolchok.pdf)

<comment><AUTHOR> Great work with this. Are you still in academia doing research?

</comment></comment></comment></comment></comment><comment><USER7> Wow, the first thing I think of is that this could be a fantastic vector for malware. Anyone who implements this should make it very clear the underlying data can change.

<comment><USER8> To be fair, torrents were always a fantastic vector for malware.

<comment><USER9> To be fair, the internet has always been a fantastic vector for malware.

<comment><USER10> To be fair, human cells has always been a fantastic vector for infection.

</comment></comment></comment></comment><comment><USER11> So, what is stopping this to be the ultimate distributed social media platform?

I mean, I should be able to publish a relatively simple sqlite database that contains:

\- my public posts

\- my public encryption key

\- list of my friends

\- my private posts encrypted with the friends' public keys

Then I should seed at least my and my friends databases, so even if some of my friend is offline, his/hers database is still available.

<comment><USER2> Network effects and lack of off-the-shelf implementations.

<comment><USER11> Network effects are clearly a major issue, but wrapping the concept to a webpage and/or mobile app should not be a major hurdle. If I have not missed something.

If I only had some more time on my hands...

<comment><USER2> Although the subject matter is different, GitTorrent [1] actually uses techniques you propose, by using BEP 44 to store Git revisions in the Bittorrent Mainline DHT, and Bitcoin to store cryptographically-signed usernames in the Bitcoin Blockchain.

You can look at how that implementation was done and what issues they encountered to see what it would take to implement a distributed [something], where that [something] in your case is a social network.

[1] [https://github.com/cjb/GitTorrent](https://github.com/cjb/GitTorrent)</comment></comment></comment></comment>


The third wave of open source migration - <AUTHOR> https://blog.tidelift.com/the-third-wave-of-open-source-migration <comment><USER2> If you work for a big engineering organization you will find yourself questioning things that are being built a lot. Open Source alternatives often have higher quality and better support, yet engineering organizations opt to build their own. You might wonder why? It's because growth is the name of the game. Any engineering leader wants bigger and bigger organization under her/him so what they do is they green light projects that mostly don't make sense but they can pretty much lie about how essential it is to build in house to the board/CEO.

When winter comes, those projects don't make sense anymore because cost cutting measures are in mandate. The same leader might even make the case for the Open Source alternative.

I've seen this enough times to know it is a pattern in our industry.

<comment> em-bee but it's not always malicious.

sometimes building something new seems obvious. i have to push hard to get people to back up that obviousness with evidence. (provide me with evidence that these existing solutions are not suitable before we build a new one from scratch.

sometimes building something new seems easier or cheaper than the effort required to evaluate alternatives, especially if the solution only takes a few days or weeks of work (take the obviousness factor above into account).

another factor is the seemingly common dislike of working with other peoples code. especially when it's known that modifications will need to be made. do we take this system with a lot of legacy code where we have to modify 20% or is it easier to start over and build what we need?

<comment><USER3> In house tools can also offer a lot more stability than OSS/commercial equivalents that will often require you to be on their upgrade treadmill. Very few companies will plan for this kind of maintenance so it's important the developers align with that and don't take on unnecessary burdens.

There's more OSS than ever but there is a huge lack of stability in most of it.

<comment><USER4> This is key. Extremely many "OSS" projects are also not up to quality standards and require significant engineering time for understanding, auditing and perhaps integrating the thing, even before deploying it. The bigger the set of useless features on a project, the bigger the risk in introducing an unknown into the critical paths that allow you to ship/provide a product/service. While many global "base" technologies like Postgres, enterprise Linux, Redis, NodeJS, Tomecat, the JDKs, etc are solid lighthouse projects with better quality than what "just writing your own" without world- class engineering teams and investment could produce in a reasonable amount of time, many others are just not that good. The cost of "adopting" a 2nd- or 3rd-rate FOSS solution may be very high and introduce significant technical debt down the road.

In way to many companies, engineers (including engineering managers) have to explain to a non-technical C suite that OSS/FOSS IS NOT FREE and NOT GUARANTEED TO BE CHEAPER than going with proprietary or self-written, minimal, tested and concise solutions in any given context. They can be, of course, and with some engineering investment they can be for the longest time in the feature, but every case is different and a "wave" certainly is not what just removes the need to do this kind of evaluation.

<comment> em-bee i disagree that extremly many Free Software or Open Source projects are not up to quality standards. i use them every day and 95% is of high quality. higher than many closed source applications or libraries.

this is not a FOSS question. (i would not touch a closed source library as s potential dependency with a 10 foot pole. it's either FOSS or i write it from scratch)

this is a question of the ability or willingness to adopt and maintain 3rd party dependencies.

fear of FOSS could be added as another reason, but that reason is even worse than mere unwillingness to work with other peoples code.

in order to use a 3rd party application or library as a dependency you must be able or willing to maintain it yourself, in case you run into an issue with its support. (that's one of the big points of FOSS, btw)

you are right about unnecessary features being a risk, but again, that has nothing to do with FOSS as a choice.

</comment></comment></comment></comment></comment><comment><USER5> We are witnessing this since weeks at Odoo. ([https://odoo.com](https://odoo.com))

Last month, we lost a big project against SAP (budget 5m€): the company choosed SAP because their holding was willing to pay for the project. Last week, the same prospect came back to Odoo: as the holding could not afford such a project anymore, the company has to pay from its own budget. So, they choose Odoo (<1m€ budget)

I believe the next wave is a replacement of proprietary expensive business applications: ERP, SAS, BI...

<comment> c-smile Am I right that this has nothing with FOSS per se but just about "X is cheaper than Y" kind of reasoning?

<comment><USER6> Yes. Odoo is open core, and many components are closed, and those are far from being free.

<comment><USER7> Is there any good resource on what addons are not open-source?

<comment><USER6> [https://www.odoo.com/page/editions](https://www.odoo.com/page/editions)

Quite a few actually. If you're a software shop or digital agency, I think the Odoo Studio and marketing automation features are the big gaps.

For the latter, there's Mautic.

However, good CRUD builders are difficult to find. Seatable is promising, haven't evaluated it yet.

</comment></comment></comment></comment></comment><comment><USER8> This is a hilarious video that captures the state-of-play of open-source frameworks in Data Science:

[https://twitter.com/wdaali999/status/1161973951565881345?lan...](https://twitter.com/wdaali999/status/1161973951565881345?lang=en)

Basically, anything not open-source is not cool any more - SAS, matlab, SPSS. Kids are not learning these frameworks in school and don't want to use them. I see open-source taking over Data Science by the time this recession is over: Jupyter, conda, Scikit-learn, TensorFlow, PyTorch, RStudio, and even PySpark.

<comment><USER9> > I see open-source taking over Data Science by the time this recession is > over

Hasn't this already happened by now?

<comment><USER8> Datarobot, dataiku; domino datalabs - all unicorns with proprietary data science frameworks. Not dead yet.

<comment><USER10> yet

</comment></comment></comment></comment><comment><USER11> Kind of like "follow your passions", "open source" is a great way for software developers to work at way below the market rate to provide provide great value to corporations for very cheap. Through github stars and "recognition" the corporate world has managed to gamify software development and get enthusiastic developers to develop and give away literally billions in software value.

No wonder the MBA's view software developers as suckers.

Read through HN, and you see maintainers of hugely popular open source software that probably has saved corporations billions of dollars, burned out, mentally exhausted, living in poverty and begging for donations.

</comment><comment><USER12> I think there's substantial value in replacing expensive system components with free alternatives. Things like FusionAuth / [https://fusionauth.io/](https://fusionauth.io/) for user identity (full disclosure, I'm an employee) and Pentaho Kettle [https://github.com/pentaho/pentaho- kettle](https://github.com/pentaho/pentaho-kettle) for ETL and data transformations can help.

It is important to recognize the value of developer time too, though. There's a cost in dev time for setting up a "free" project.

That's why I think that any open source project that gets too popular will have to have a cloud vendor strategy, otherwise they'll get done to them what AWS did to Elastic Search.

I also thought it was interesting that the author mentioned support for the various application libraries. I know that there have been several "tip" type applications (gittip, gitcoin.co) that try to align incentives and allow open source developers to make a living.

<comment><USER13> >>> That's why I think that any open source project that gets too popular will have to have a cloud vendor strategy,

This.

In fact sadly one of the marks of a successful OSS project is ability to pay yourself, and even perhaps commercial success. In Linus' day it was enough to have a whip round online to buy a faster Pentium machine, but these days it's a foundation and cloud offering.

<comment><USER12> I was at a conference last year and talked to someone who said that the investors he knew were shying away from investing in open source software companies because anything that was successful would just be copied and operationalized by AWS/GCP/Azure.

I hope that isn't the case, but we'll see. Maybe the answer is niche operations that are too small or domain specific to be noticed by the big folks.

<comment><USER14> I'm pretty sure there's room for smaller verticals these days. It's been demonstrated many times that if you have the best front-end to the problem space, and you add some services on top, everything under it can be totally commodified but you'll still get customers.

From there the strategy would depend on whether you want to stay small or not: To get bigger, you'd start going deeper into the open stack to scale things up and provide a wider array of services. If you stay small, your organization will necessarily be more focused on interfaces and compatibility while maintaining that top-end UX. In both instances there are plays for open source, but with different characters; the big company will tend to code-dump an enterprise toolchain, the small one will primarily be a contributor to a foundation project or open some of their internal interfaces.

<comment><USER15> > _It 's been demonstrated many times that if you have the best front-end to > the problem space, and you add some services on top, everything under it can > be totally commodified but you'll still get customers._

Examples please? (I might be in that situation)

</comment></comment></comment></comment></comment><comment><USER16> One big area where open source unfortunately falls flat is end user application software. In this market, proprietary applications do add real value.

Unfortunately, there isn't a very good business model to fund developers to work on such applications, when the application itself is not a sell-able product.

These sorts of projects can work if there's a significant overlap between end- users and capable developers. If there isn't, then they're often woefully inferior to the commercial alternative.

<comment><USER17> Open-source sucks at UX. I think because there's no community behind open- source UX like there is in the inner workings of systems, where people just want to get shit done.. You have to pay UX developers and designers to do their job, because it's generally not a job you'd do for free or in order to accomplish "something".

<comment><USER18> I wonder why UX designers don't want to work for free while software developers do work for free?

<comment><USER17> As a software developer, I'm writing to benefit me because I use the code I write.

What I write and share is directly re-usable to others.

We can walk a path and share our work, and others can take it and copy it immediately.

Whereas with UX.. Most of the time it's written for the benefit of someone else. And it's not something that can be used elsewhere very easily.. Often needing to be completely re-worked to be useful anywhere else.

<comment><USER18> You're talking about libraries. And parent answered to message about end user software. Sure, you might use your own end user software, but so can UX designer.

<comment><USER19> If the designer isn't also a software developer who writes a new application to scratch their UX itch, then they must work with some existing project, which presumably has existing users..

It's probably always going to be harder to contribute design overhauls than bugfixes & features.

</comment></comment></comment></comment></comment></comment><comment><USER20> I think the growth is on a continuing streak and there's not a need for a RedHat style support for every package.

I think using these packages and projects requires more due diligence and planning on staff to pick and support, but I think the current highly variable support project by project works out well. And then for big stuff (Linux, Postgres, etc) some commercial support is brought in.

I'd much rather see more support for companies donating developer hours to patches and features. Some way to recognize in kind and labor contributions and expand recognition for these kinds of contributions. I think this works better for software than trying to get every company to pay into some support fund. If you want to pay structured licenses for everyone, there's a model for that. Trying to shoehorn license fees on top of open source loses a lot of the efficiencies, I think.

<comment><USER21> Disclosure: I work for Red Hat

I think you're missing the real value here of the support model and services a company like Red Hat can provide to large orgs.

It's not about having support for every package, it's more about having others do the hard, expensive work of presenting you a portfolio of projects known to work well together, so you can focus on adding your own business value rather than spending hours duplicating effort from others and debugging arcane issues.

To some extent you can't out-source everything (and I personally wouldn't recommend that. I think having some in-house experts is really important), but not everybody should roll their own OS, DB, container orchestration, etc.[1], and finding consistent options that work together can be difficult when you have huge, diverse, engineering departments with different values/priorities.

I don't disagree with you: I think contributions in either code or donations are a _great_ way to support FOSS projects. I just think there is also a lot of business value in the support contract style method, because you're not just buying insurance, you're buying real value in the form of somebody presenting you with a portfolio of disparate open source projects that have been integrated and tested together.

[1] Note I'm not talking about "React v. Vue" which I agree support wouldn't make sense for.

<comment><USER22> Thanks for the insight. How might someone in a position to spin up services for this be able to think about capturing this sort of a market?

I work at a DL/ML hardware company; and many here on HN would know that packaging DL libraries correctly is a nightmare and a half. In fact a good chunk of our value prop is offering an open source pre-baked bundle. It's great (and I've deployed it on some friends' machines and they love it) but it's, let's say three-quarter-baked and moving it into a "fully supported" model with domain-specific expertise isn't something that our company has figured out how to transition into (also not easy given our company is really small), and given business strategy and software strategy are independently difficult enough problems.

Do you (or any others) have any suggestions?

<comment><USER12> > Thanks for the insight. How might someone in a position to spin up services > for this be able to think about capturing this sort of a market?

Obligatory (from 2014) "Why There Will Never Be Another RedHat: The Economics Of Open Source": [https://techcrunch.com/2014/02/13/please-dont-tell-me-you- wa...](https://techcrunch.com/2014/02/13/please-dont-tell-me-you-want-to-be- the-next-red-hat/)

<comment><USER22> Thanks for the link!!

Luckily it's not the only path for growth... As I mentioned we're a hardware company so it's more like we want to wind up as a Dell (or in a worse scenario, IBM, which isn't too shabby)

<comment><USER23> As the article the grandparent links to shows, RH is maybe the singular example of a big successful pure OSS software company. It seems almost all other big successful OSS companies have adopted some kind of 'hybrid' strategy such as open core, many after first unsuccessfully trying to emulate RH.

To a hw company, I think the issue of how to monetize SW is to some extent clearer as well as pretty different than for a pure sw company. You're selling a tangible physical product, but customers are not interested in the raw hw but the complete package of hw plus supporting sw (drivers, SDK, whatever) + support. So you have to choose what is the appropriate model for you. E.g.

\- Use profits from HW sales to develop OSS that makes the HW more useful to customers, and thus increases HW sales. For instance, one argument in favor of this would be that drivers included in the upstream kernel and user-space software in distros makes it easier for customers to use your HW. And you'll get OSS brownie points which might also help drive sales.

\- Or make the SW free but not OSS, in case you're worried that your competitors could just take your OSS and use it with their HW.

\- Or make proprietary SW that you sell in addition to the HW. I'm not sure customers care about how you split the total bill they're paying, and free (as in beer) software is certainly a lot easier to deal with for customers (e.g. license hassles). But again, it depends.

\- Oh, and another potential advantage of the OSS SW model is the 'commoditize your complement' angle (do a web search on that phrase if your unfamiliar with it). tl;dr You can use OSS SW to undercut a pure SW competitor, as your income is protected by your 'HW moat'.

</comment></comment></comment></comment></comment></comment><comment> c-smile Could be, but only if companies that are behind OS products will survive by themselves. We hear crack sounds here and there already.

Yet, "the rise of hosted cloud services like AWS, Google Cloud, and Microsoft Azure" is just "anti-pattern" for the subject of the article. Commercial companies that exploit (fuzzy term here but still) OS software.

<comment><USER8> I think the next wave of OSS products will be AGPL-v3 licensed. It's the "cloud condom" model - it protects you from the cloud vendors. They have internal bans on using it, as it forces them to open up their internal software architecture. But AGPL-v3 is still a valid open-source, despite what the shrills at AWS will tell you (they just want to operationalize open source projects, not lead them).

<comment><USER24> AGPL-v3 isn't going to protect you from cloud vendors, they will just release the source and beat you with their marketing budget. Or they will just re- implement your APIs/interfaces from scratch and still win.

</comment></comment></comment><comment><USER25> Open source is a two edge sword. If developers voluntarily contribute to the projects, it could be positive.

But increasingly it's becoming a source of cheap labor. It used to be that you get a college degree and start a job. Now you need years of schooling, unpaid internships, postdoc and unpaid scientific contributions, an extensive GitHub page with open source contributions, etc to get the same job. The competition for better CVs will push individuals towards taking years of unpaid jobs against their will, which is negative.

<comment><USER26> I get that expectations have changed, but I have lots of friends graduating with a Computer Science BS, with nothing on their githubs, who do well on their interviews and get entry-level positions making six figures.

Edited: And no one I know does unpaid internships -- most CS majors are making $20-40+/hr over the summer of their second or third years in college.

<comment><USER27> I graduate this May with a CS degree, that about mirrors my experiences. The vast majority of competent and even semi-competent students have no problems getting good paying internships, and jobs out of college. I appreciate that unpaid internships are a really bad situation in some fields, but fortunately CS is pretty lucrative right now.

</comment></comment></comment><comment><USER28> That article was nearly content-free. Brief review of history and then some talk about a supposed "third wave" of migration is not clearly characterized, nor actually foreseen in any detail ("certainly X would be a good place to start" \- thank you captain obvious).

No discussion of anything signifcat:

* Are commercial corporations contribution back to FOSS software they use?

* * Additional functionality and bug fixes?

* * Grants/donations of money, hardware or even developer time?

... Amazon, Google, MS run mostly FOSS on their clouds, and pocket billions, but certainly don't give much back.

* Does "open source components" just mean FOSS inside but closed commercial outside, or do companies transition to making FOSS?

* What about hardware? Or at least, device drivers and firmware?

* What about all those SaaS and PaaS platforms even the article itself mentions? Their engineering setups, and software in particular, are mostly closed. Where's that promised "wave" for them?

</comment><comment><USER29> The third wave of open source software is no software at all. It is only a matter of time before Amazon doesn't care whether it's licensed Apache2 or not. They will just take software and sell it. You have a problem with that? Have fun suing them... Year 1..2..3..oooo. you are quite the fish..4..5. broke. Out of money.

Tech is dead.

<comment><USER29> Ha. The two comments that critique Amazon got down voted with negative points. Does Amazon have cronies patrolling Hacker News to squash dissidents?

<comment><USER30> You must be referring to the "love-hate" relationship between Amazon and open source software as described eg here?

[https://www.zdnet.com/article/amazon-and-commercial-open- sou...](https://www.zdnet.com/article/amazon-and-commercial-open-source-in- the-cloud-its-complicated/)

"Vendors developing those open source products started accusing AWS of strip mining, i.e., reaping the benefits of the products, without contributing back to their development."

<comment><USER24> I hate to defend Amazon, but it seems that they do contribute back to open source:

[https://aws.amazon.com/opensource/](https://aws.amazon.com/opensource/)

For example running `git shortlog -ne` in the Linux kernel git repository will show a number of Amazon folks with many commits to their name.

<comment><USER31> Linux contributions are not the best example, since it's GPL, and you pretty much have to contribute back to get your changes mainlined, and end-users can request your changes at any time.

Now, if they contributed back to FreeBSD, that would be meaningful, since they don't have to.

<comment><USER24> Amazon doesn't distribute Linux on server hardware (just consumer hardware like the Kindle) so they don't have to give back for server aspects of Linux like KVM, yet in the Linux kernel code, the Amazon employees are mostly submitting patches for things like KVM, not for Kindle hardware support.

It would surprise me if Amazon use FreeBSD, I thought they use Xen & Linux KVM exclusively?

<comment><USER32> Disclosure: I work for AWS.

See [https://twitter.com/cperciva/status/1211125881264934917](https://twitter.com/cperciva/status/1211125881264934917) for one example of working with FreeBSD.

      It's truly awesome that I can send an email to Amazon
      saying "we're seeing an odd performance issue here" and
      get back "here's a FreeBSD kernel patch I just wrote which
      provides a 10% performance boost".

      And people claim that Amazon never contributes back to
      open source...

I linked the patches here. Not all of the work is from an AWS engineer: [https://twitter.com/_msw_/status/1220088310443307008](https://twitter.com/_msw_/status/1220088310443307008)

      https://reviews.freebsd.org/D23322
      https://reviews.freebsd.org/D23323
      https://reviews.freebsd.org/D23324
      https://reviews.freebsd.org/D23325

</comment></comment></comment></comment></comment></comment></comment><comment><USER33> I'd love to see more open source hardware as the next wave. The ardiuno seems like it's a success.

<comment><USER34> I don't care as much about open source hardware as open interfaces or drivers.

I hate that every single thing you buy requires an app and a login and a shitty proprietary driver.

(why does my mouse need a cloud account?)

In general hardware folks don't do software well. Software is just a checkbox.

Meanwhile there's a world of great folks out there that will make their hardware get up and dance given the chance.

Honestly they should commoditize software to increase sales of their hardware.

</comment></comment><comment><USER10> I feel like now would be a good time for an open source FHIR-compliant electronic health record to start building integrations for any non- Cerner/Epic company in the market. Which the more I learn about healthcare is approximately all of them.

</comment><comment><USER35> >Now, after one of the longest bull market runs in history, the road ahead is again uncertain.

The rumors of this bull market's death have been greatly exaggerated. The DJIA is still up over 18% over the last 3 years, or ~6% annually; barely a percent below average. The NASDAQ 100 has almost completely recovered its' losses from the initial COVID-19 crash. Major drivers of the market over the last 10 years like $FB, $AMZN, $MSFT, and $AAPL are through the roof. Granted that a lot of this is fed meddling, and yes a lot of people from the service and hospitality industry are out of work, but the primary engine of our economy is humming along. I would not be surprised to see a record Q3 this year.

<comment><USER36> Amazon's marketplace and delivery service have a "captive" market due to the closure of bricks and mortar retail.

The general move to the cloud rewards AWS/GCP/Azure with the two primary "winners" currently being AWS and Azure. This will continue as companies move to the cloud, but expect there to be a flattening of growth.

As for Facebook and Google, they rely on advertising, which relies on consumption. When there is 10+% unemployment and 20+% underemployment, consumption is highly likely to at least flatten if not fall off a cliff, particularly in elective consumption like high end electronics.

The share market is not indicative of the economy and is a lagging indicator of company revenues.

</comment></comment><comment><USER37> I don't understand the second wave relation to open-source and free software. They moved to cloud platform to save cost and non of these platforms are open source.</comment>


For 10 to 14 yo children who use the Internet, the computer is a bigger draw than TV  - <AUTHOR> http://www.nytimes.com/2008/08/25/technology/25drill.html?partner=rssuserland&emc=rss&pagewanted=all

<comment><USER2> How could this possibly surprise anyone? What will kids like more:

       1) A TV

       2) An interactive TV that completely encompasses the feature set of (1) while also providing endlessly more flexible and varied content

<comment><USER3> especially porn</comment></comment>


Ask HN: a good book on start-up fundraising? - <AUTHOR>

Looking for a good book that covers various aspects/stages in the funding process. any recommendations? <comment><USER2> Venture Deals, by Brad Feld and Jason Mendelson. The full title is "Venture Deals: Be Smarter Than Your Lawyer and Venture Capitalist." It's aimed at founders who have little understanding of the processes, players, and terms in a funding round. It's definitely worth the $30 cost.

<comment><AUTHOR> hey thanks a lot !

</comment></comment><comment><USER3> Pitching Hacks: How to pitch investors by Naval and Nivi of AngelList - <http://venturehacks.com/pitching>

Venture Deals: Be Smarter than Your Lawyer and Your Venture Capitalist by Brad Feld and Jason Mendelson - [http://www.amazon.com/gp/product/0470929820/ref=as_li_tf_tl?...](http://www.amazon.com/gp/product/0470929820/ref=as_li_tf_tl?ie=UTF8&tag=pretgrap-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0470929820)

<comment><AUTHOR> thank u very much! this is really helpful :)

</comment></comment><comment><USER4> Not sure if this is what you're looking for, but its free so: [http://www.scribd.com/doc/55945011/An-Introduction-to- Stock-...](http://www.scribd.com/doc/55945011/An-Introduction-to-Stock- Options-for-the-Tech-Entrepreneur-or-Startup-Employee)

<comment><AUTHOR> really appreciate it! it is definitely useful.</comment></comment>


Ribbon Hero, a game to hone your Microsoft Office skills - <AUTHOR> http://www.officelabs.com/Lists/Posts/Post.aspx?ID=88

<comment><USER2> Lamest gimmick since the "W-W-W-Windows 386" rapping lady.</comment>


Ask HN: Modern day web development for someone who last did it 15 years ago - <AUTHOR> TL;DR -> Want to build a relatively simple responsive website like say Hacker News with Authn support (custom and Google OAuth). What is a minimal set of JS/CSS frameworks, templating engine, deployment tools, IDE I need?
Details:
I am a professional Software Engineer (Google) and well versed in "Backend" Infra stuff and creating APIs. But when it comes to building anything with GUI, I am completely lost in the maze of modern day web dev! Last time I built a website was a bunch of mostly static pages (all hand generated - no templates either) with some JS plugins for a top bar nav. Life was simple with a simple SFTP to the webserver (Geocities or similar!) for hosting.
Of course over time, web development has become much more complex (primarily because Websites do much more now a days than they used to), and I see a plethora of frameworks, transpiled languages, etc such as: Gulp, Typescript, JSX, Dart, Angular, React, Bootstrap, Babel, Wordpress, Drupal, Flutter, NPM, Web assembly, Vue.js, Minification of code before deploying, jQuery, and a gazillions others. It's hard to build a mental model when things are happening at 4 level of abstractions away, e.g., Typescript translated to some JS framework code which then uses jQuery underneath and which finally calls something I can actually relate to: document.getElementById()! Also missing from my skillset is debugging Websites using tools such as Chrome dev console.
Has someone in similar situation tried to learn modern day web-dev toolchain? Any suggestions, tutorials, etc are well appreciated! For backend server side, I am comfortable with Python (so prefer Flask or Django), but Node.js is also fine (used it a bit couple of years ago). Suggestions for an IDE/plugins are also welcome (I have been using Vim for most of my life). <comment><USER2> I can understand your frustration as I am currently in the same spot. I saw this post[0] in HN yesterday which is great introduction to the modern web development. I hope the author writes a 2nd part to the blog post.

[0] - [https://www.vrk.dev/2019/07/11/why-is-modern-web- development...](https://www.vrk.dev/2019/07/11/why-is-modern-web-development- so-complicated-a-long-yet-hasty-explanation-part-1/)

<comment><USER3> thanks for this, enjoyed the post

</comment></comment><comment><USER4> > What is a minimal set of JS/CSS frameworks, templating engine, deployment > tools, IDE I need?

None. You don't need any of that to build a modern web site. The web is still, at its core, HTTP requests that send text to a browser, that in turn renders what it receives. Even though web site do more these days, they still run JavaScript to do it, which you can still code in a basic text editor.

The better question is what problem do each of the modern tools solve, and which of those problems matter to your goals? Odds are, yes, you'll want some. And many people will tell you their favorite combo of tools and declare it to be the answer.

My recommendation is find your own answer, by first sticking with what you know, and adding one piece at a time. If you know python, stick with that. Django has its own toolkit, and it works. Whether or not you like it is up to you. But it is a starting point. You can always start from there, add on modern CSS. Bootstrap is at least decent to let you work with some recent CSS frameworks to see how they operate, but there are certainly other choices as well. React and Vue are popular, I believe for good reason, so I'd at least try a few tutorials to see how they strike you. Over the course of trying those, you'll pick up webpack, babel, and npm, and get to understand the ecosystem.

If you play with one tech on the side each week, in a couple months you'll better be able to answer those underlying questions of how each solution solved problems in web development. And you'll be able to make your own choices of which ones you want to stick with.

</comment><comment><USER5> For a site like HN you don't need a JavaScript framework. Just pick a popular framework like Rails, Django, Laravel, Phoenix, etc (basically just pick the popular framework for your language of choice) and do server side templates. Most if not all of these can be converted easily into a backend API for a JavaScript framework frontend later anyways.

</comment><comment><USER6> Start with Bootstrap. Build as many sites as you can just using Bootstrap and then study what the classes are actually doing. Then replicate the classes and make changes to them. Bootstrap has enough that if you go through each thing it has, you will have a decent appreciation for the look and how the CSS/HTML/JS fits together to make a site. Then start using jQuery heavily. Find jQuery modules and use them. Play with the options. Then start playing with the code. Those 2 things will be good enough to then move on to something more complicated; which ultimately is just abstracting these basics and attempt to make them easier. But you have to already know what is happening if you don't want to get confused as to why you are using the tool and what your other options are besides this tool.

</comment><comment><USER7> Read everything you can about CSS Grid. Use MDN or caniuse.com to see if it will work with what browser. Read about semantic HTML and things you can do with the latest spec/standard [https://www.256kilobytes.com/content/show/4399/get-these- dep...](https://www.256kilobytes.com/content/show/4399/get-these-dependencies- off-my-lawn-5-tasks-you-didnt-know-could-be-done-with-pure-html-and-css)

Stay with Vim and just manipulate the DOM [https://youtu.be/h_e5pPKI0K4](https://youtu.be/h_e5pPKI0K4)

</comment><comment><USER8> You can remain a backend developer and still have a good career & money, especially considering mobile apps need APIs which are purely a backend thing.

But if you want to make a clone of HN, you don't need much frontend experience. Any backend framework and basic HTML & CSS skill is all you need. Don't waste your time with client-side Javascript frameworks and the (IMO insane) toolchains for such a simple project.

Speaking of IDEs, JetBrains' products are good. If you use multiple languages I suggest you buy the "Ultimate" edition which is IntelliJ IDEA which can support all the other languages with (official) plugins as opposed to language-specific versions like PyCharm which are cheaper but only focus on one language.

</comment><comment><USER9> I was in the same boat as you around 5 years ago, when I finally bit the bullet and started down the "modern" path.

My recommendation is to just start on your project, and see how far you can get using your 15 year old skills. Once you hit a road block to something you want to accomplish, start looking at some "modern" solutions to the problem, and pick one up that feels best for you.

You may find you need almost none of the tools listed above, and the ones you do pickup, you will understand why they exist in the first place.

That said, I recommend trying out a JetBrains IDE, as it will give you lots of sane defaults out of the box, including auto-completion which is kinda great for dynamically typed languages. VIM plugins are available as well.

</comment><comment><USER10> Then there is the issue of whether you want to invest time learning technologies that are still unstable. The stuff you learned 15 years ago is probably still working (and you can make a website with that too). Will modern javascript be around in 15 years?

</comment><comment><USER11> Some differences between then and now are also different idioms such as CSS naming conventions.

See GetBEM.com - for Block, Element, Modifier naming.

For instance, current conventions are to put a class name on far more HTML elements than years earlier, and avoid using hierarchical specifiers. (Yes, I know, at first it may seem to defeat the _cascading_ within "CSS" without the hierarchy, but it's more nuanced than first glance.) It's especially useful when hiring front-end/UI developers to maintain the project after your initial build, as many will have learned BEM at various coding bootcamps.

</comment><comment><USER12> My suggestion is always just use what you need.

Responsive website? Use Bootstrap or Foundation.

Want to build for mobile? React Native, Ionic, or Cordova. These will also take you down the React or Angular path.

Just need minimal API access? Don't go further than jQuery.

Need something heavier? E.g. CRUD dashboards, listing sites, social media, you can pick up a web framework.

For IDEs, Sublime Text is almost a direct step up from vim. It's the fastest and lightest, has the most shortcuts, even a 'vim mode'. It's fairly cheap (compared to say, WebStorm) and doubles up as a great text editor and note taker.

</comment><comment><USER13> Just in the last days I built a new web site (a list of children's books, so many identical types of boxes).

I thought it would be a nice opportunity to finally learn a bit of Flexbox or CSS Grid.

I failed with both. Until I realized I could use both, lay out the grid of boxes and then have the content of the boxes flex. I'm sure everyone does that, but the introductory articles I've read never mentioned that it's not either-or.

</comment><comment><USER14> As someone who more or less recently did this, I can tell you about my journey. I went from fulldev LAMP stack (with some JQuery) to Vue ... which immediately got me embroiled webpack config files, linters, Babel, ES5+ES6 syntax and all the rest. Vue is great and pretty quick to pick up the basics, but as soon as you try to veer off the tutorial train you start finding unhelpful code examples that require a bevy of alternative things to learn and the stack keeps getting bigger and wider in every direction. As someone who started learning webdev in the Perl days when you couldn't just Google answers, this was the worst part of picking up new things - there is no "one path" to do anything, everyone uses a slightly different stack and all these tools are intertwined in a way that makes progress very tedious without direct guidance.

For example, I learned the basics of Vue then tried to hack something together. But all the example code I found was using single file components (SFC) which is an alternative file structure for Vue that I had to learn first in order to make sense of the code samples. Then I needed to setup Webpack for some reason or another and Babel just seemed useful, so I spent a while in config hell learning all about those. In order to keep things simple I tried to avoid learning Vuex and Vue Router but I kept finding sample code that used both to the point I ended up learning them in order to unroll code samples, then I learned about event busses as an in-between solution to passing data around - at which point I decided I might as well just use Vuex after all. But it was frustrating to have to learn a big stack of things from a side channel to really understand code I was reading... I dare you to find a Vue tutorial/sample beyond a basic introduction that doesn't use some combination of those things.

That being said, I ended up going a step further and now I'm using the Quasar Framework. Quasar is like a wrapper around Vue that lets me avoid fussing with Webpack/Babel/Linters/SASS/hot reloading configs and I would have probably been better off doing a basic Vue tutorial then going right to Quasar. It also simplifies the frontend with integrated material design and that has always been the tedious side of doing full stack stuff for me, especially when fussing around with early stage ideas.

So, finally, getting to the plusses: Hot reloading lets me edit/upload a file and have the webpage change beneath me without even refreshing, that's pretty cool. Frontend work is much, much better and simplified. I rarely have to fuss with positioning CSS nightmares or worry about different screen sizes or browser differences because that is all abstracted away from me, and I am fine with that. And once it is setup with Vuex, the API-style data communication to the backend is a simple and clean way to separate the front/back.

OAuth has turned out to be a hairier beast than it has any right to be, but for me that is still a work in progress. Any advice on a simple solution for that would be appreciated!

<comment><USER15> I've been developing VueJS with Vuetify lately using only the CDN links with editing an html file.

Quasar and Vuetify are very similar, with Quasar appearing to have a few more components. The documentation is even very similar, and I like the readability of Quasar a little better.

It's good to know this exists!

<comment><USER14> I looked at Vuetify too but what finally sold me on Quasar was the integrated deployment to mobile, desktop and PWA.

</comment></comment></comment><comment><USER16> If you just want to get something done check out Elm lang.

</comment><comment><USER17> Does someone know a tutorial for people like OP? Someone that knows programming but not modern web dev.

I want to write such tutorial.

> It's hard to build a mental model when things are happening at 4 level of > abstractions away

I feel you.. the JS ecosystem needs more guidance. I'm trying to do that with Reframe: [https://github.com/reframejs/reframe](https://github.com/reframejs/reframe). The goal of Reframe is to precisely to guide you through web dev and give you a good and simple start.

It's new and work-in-progress though.

Feel free to hit me up on discord ([https://discord.gg/kqXf65G](https://discord.gg/kqXf65G)) if you have questions about web dev. I'm happy to help.

Also, I'm looking for people to write such "modern frontend for backend developers" tutorial, if someone reading this would be up for it.

\----

As for your questions:

> What is a minimal set of JS/CSS frameworks, templating engine, deployment > tools, IDE I need?

If you need an SPA then I'd recommend [https://github.com/parcel- bundler/parcel](https://github.com/parcel-bundler/parcel). There is also [https://github.com/facebook/create-react- app](https://github.com/facebook/create-react-app) which is super popular but I don't recommend it. (Because it's based on Weback and I believe that Parcel will eventually become the state of the art to build web assets.)

If you need SSR then [https://github.com/zeit/next.js](https://github.com/zeit/next.js).

If you are not sure whether you need an SPA or SSR, let me know. I'm happy to elaborate.

Another option is to use to the web framework I'm building ([https://github.com/reframejs/reframe](https://github.com/reframejs/reframe)). The nice thing about it is that it allows you to build an SPA as well as an SSR app. And even better is that you can start with an SPA and easily switch to SSR later and vice versa. This means that you can start hacking today while later deciding whether SPA or SSR is right for you. So my (biased) recommendation would be to use Reframe. Although Reframe is new and if you're not an early adopter, then it's probably nothing for you right now.

> a plethora of frameworks, transpiled languages, etc such as: Gulp, > Typescript, JSX, Dart, Angular, React, Bootstrap, Babel, Wordpress, Drupal, > Flutter, NPM, Web assembly, Vue.js, Minification of code before deploying, > jQuery, and a gazillions others

I recommend to start with the simplest setup possible and later decide if you want to add niceness to your stack. That is: JavaScript with Parcel, Next.js, or Reframe. You'll eventually realize over time what you need or not.

And I wouldn't even start with bootstrap, instead I would use CSS flexbox.

As for API between your frontend and backend you can use [https://github.com/reframejs/wildcard- api](https://github.com/reframejs/wildcard-api). It's another thing I built and it's much much easier than GraphQL and REST. Which is neat to get up and running quickly.

In a nutshell: start with minimalistic simple stack. You'll figure all the rest later while building your app.

> Auth support (custom and Google OAuth)

Just curious -- why do you need custom auth? Why not social login only?

</comment><comment><USER18> Vue is all you need to know.. [https://fullstacknews.com/t/vuejs](https://fullstacknews.com/t/vuejs)

<comment><USER19> According to the question asked, I don't even think you'd need any JS framework. If you do, Vue is a fine framework, but it's far from all you need to know - there's a lot that has changed since 2004 that is a prerequisite to Vue.</comment></comment>


2014 is the year of simple apps. How about this one? - <AUTHOR>

- 6 by 6 grid - 4 numbers to play with 0, 1, 2 and 3 - All numbers in the grid have different values - from 0 to 3 - When you tap a number you deduct 1 from it and the adjacent numbers
The goal of the game is to get all numbers in the grid to zero, hence Zeros.
As this is the first game we develop, we would love to hear your feedback?
Game is free to download here: https://play.google.com/store/apps/details?id=com.isenselabs.zeros.app&hl=en <comment><USER2> The game is really nice and addictive. I highly recommend it!

<comment><AUTHOR> Cheers, coming out soon for iOS</comment></comment>


Worried about the stock market? Don't be, says Tom Perkins - <AUTHOR> http://valleywag.com/346763/worried-about-the-stock-market-dont-be-says-tom-perkins <comment><USER2> I'm always shocked when something non-retarded is written on valleywag.</comment>


The World's Smartest Chimp Has Died - <AUTHOR> https://www.nytimes.com/2019/08/09/opinion/chimpanzee-sarah.html <comment><USER2> I frequently run this thought experiment in my head. The world's smartest chimp is as smart as a young child, maybe. Now imagine an alien race who are like us as we are to chimps. In the same way that we are unfathomably intelligent to chimps (so much so that they don't even understand how far the gap is between us and them), consider how scary it would be to encounter an alien that was that much smarter than humans are.

<comment><USER3> I think this only works if you consider intelligence only in relative terms. I like to think that humans have at least some "absolute" level of intelligence required to understand that another creature can be more intelligent than us, whereas chimps probably can't grasp that concept. So it'd be easier for humans, I reckon.

</comment></comment><comment><USER4> As is frequent by the media and animal enthusiasts there is a bias towards emphasizing evidence that fits your desires and beliefs, but ignoring the evidence that does not. The evidence that this chimp could use language via manipulation of "plastic magnetic tokens that varied in size and color to represent words" is weak, and the structure of the tokens made it appear to carry meaning even when randomly selected and placed, according to several experts in the field I spoke to at a conference some years ago on the matter.

<comment><USER5> I also found the quote below to be weak evidence. Especially because the second paragraph makes it seem like "choosing the correct solution" (of two options) was more of a probabilistic thing. For one researcher she usually chose one thing and for another researcher she typically chose another. Does that mean she was solving the problem for her preferred person and prove theory of mind? Seems weak.

"To have a theory of mind is to be able to attribute purpose, intention, beliefs, desires, and other attitudes to both oneself and another person or animal. In order to test whether Sarah could understand that people had thoughts that differed from her thoughts, she was presented with short video tapes where a human actor in a cage was trying to perform a task, like trying to get some bananas that were inaccessible. After watching the video Sarah was shown two pictures, one that would allow the actor to reach his goal (a box) the other not (a key). She successfully solved the problems for the actor.

But there was some concern that she was putting herself into the position of the actors, which would be a pretty exciting cognitive feat on its own, but wouldn't show that she attributed attitudes to the actors. So she was presented with more videos, one in which the actor was her favorite caretaker and another in which the actor was someone she didn't really like. Sarah selected the right responses more often for the actor she liked, and the wrong responses for the actor she didn't much care for."

<comment><USER6> Agreed, it seems like there's an equally good argument for the opposite conclusion (that this experiment makes her less likely than we would have thought). Something like: she's good at mindlessly mimicking things, and pays more attention to the video when it's the trainer she likes.

</comment></comment></comment><comment><USER7> When did nytimes start guessing whether I'm using private browsing? (not to mention they get it wrong, although I can guess why they might think I am using private browsing)

Luckily blocking all 1st party scripts fixes it, and makes the page a lot faster to boot.

</comment><comment><USER8> The world's smartest chimp that we know of.

</comment><comment><USER9> I think that the smartest chimp probably isn't in captivity.</comment>


Ace - Sinatra for Node with Fibers - <AUTHOR> https://github.com/maccman/ace# <comment><USER3> Might not be the best name for a JS lib/app since ACE is already a popular in- browser editor: <http://ace.ajax.org/>.

Also encouraging the use of node for synchronous processing (even when using coroutines) is unlikely to be high performing when scaled up. If you have work to do, it'd be best to defer to another service and let node work as a router.

<comment><USER4> Not to mention the ACE C++ system, which has been around for years and is widely known: <http://www.cs.wustl.edu/~schmidt/ACE.html>

</comment></comment><comment><USER5> Regarding coroutines. The very reason Node.js is awesome is because it forces you to do evented programming and makes it apparent what is blocking and what isn't. That's the beauty of Node. The event loop is not a bug, it's a feature. Why program in JavaScript if you don't want to do evented programming? Why use Node.js if you don't want to see the difference between blocking and non- blocking code?

On the flip-side: This looks like a solid implementation of what lots of people have been waiting for (fibers in node).

<comment><USER6> "Why use Node.js if you don't want to see the difference between blocking and non-blocking code?"

This is a persistent fallacy in the Node community, but there is nothing that requires a "sleep(1000)" in a language to block all execution in other contexts in that language. That is a weakness of your chosen base language, not an immutable truth. Better languages have been doing this for many years now.

I actually sort of agree with you, but you've got it backwards; if you're going to program in a reasonable paradigm instead of manually chopping your code up to suit a weak language and weak runtime, why not use a language actually meant to do this? "Fibers" (as they are termed here) are the right way to go, but they should be designed in from the beginning, not layered on the fourth or fifth layer of the code. You'll never really be able to get them right up there, because they belong much lower.

</comment></comment><comment><USER7> This project looks really nice, though I really wish there was an easy way to segment routes into multiple files since it seems like an application w/ any kind of complexity would get out of hand quickly.

I didn't see a way by just skimming the docs - is there an easy way?

<comment><AUTHOR> Yes, the 'app' global will be available in every file you require in.

</comment></comment><comment><USER8> Alex, nice to see you working with fibers.

I've recently ported Stick from RingoJS to Common Node. It seems to be similar to Ace (also using fibers etc.): <https://github.com/olegp/stick>

In fact, some of the libraries I've made to work with it, like mongo-sync (<https://github.com/olegp/mongo-sync>), should work with Ace as is.

</comment><comment><USER9> This reminds me of Zappa.js (<http://zappajs.org/>), one of my favorite CoffeeScript implementations of a web server on Node (although it's mostly just a wrapper for express). I'd be curious, though what advantages there are in creating a totally new web server (this approach) from Zappa's backwards compatible with Express.js's approach.

</comment><comment><USER10> This appears only to support one-at-a-time synchronous control flow. Giving up parallel tasks is a funny proposition in node, as it's one of its greatest strengths. So this framework still seems limited in the potential uses, but maybe it will grow over time.

I wrote a library based on fibers that can provide similar benefits to any node application. It also gives simple patterns for error handling, makes debugging easier by maintaining stack traces across async boundaries, and provides really easy ways to do series and parallel flow control.

Take a look at <https://github.com/scriby/asyncblock>.

It would actually be pretty cool to integrate asyncblock into this project as it could provide the flow control portion for free.

<comment><AUTHOR> No, this still supports parallel tasks and evented programing. Fibers let you program in a synchronous manner, but it still be asynchronous behind the scenes.

<comment><USER10> I'm saying the framework doesn't have support for parallel tasks within a single request. For example, the case of kicking off two database queries in parallel, then doing something when both are finished. I understand that each request executes in parallel.

It's possible I missed how the framework supports parallel tasks, can you explain? The only thing I saw was wait(), which gives you "series" instead of "parallel". It's true people could still use callbacks/libraries to implement parallel tasks, but then we haven't gained much.

<comment><AUTHOR> Ah, I see. Yes, you could use promises to implement something like that - <USER2> it's something that I could definitely add. However, I would say that multiple async calls are pretty unusual.

The usual CRUD scenario is that you do a DB lookup, then perhaps alter the object, save it to the db, and return to the client. All tasks are performed sequentially. Unless multiple async calls are a common scenario, then I think I'll leave them out. Is there more multiple async examples you can think of?

<comment><USER10> I think in the real world there are a variety of cases that benefit from parallel operatio...

-Anything dealing with disk I/O like copying or reading files -Sending / receiving from S3 or other file repository -Making a request to external web services as part of a request -Working with document DBs like Mongo where instead of a join you can do one query per table in parallel

I would love it if you could check out asyncblock and see if you like how it helps manage control flow with fibers. It would be easy to integrate with what you have already. We use asyncblock in a very large node based application, and it's really helpful for keeping business logic straightforward and simple.

Another possibility would be using node-sync (<https://github.com/0ctave/node- sync>) if you prefer their approach.

</comment></comment></comment></comment></comment><comment><USER11> Looks very similar to connect and express. Can anyone explain how this is different/better?

<comment><USER12> The use of node-fibers is how it's different. Up to you on whether or not you think that makes it better.

</comment></comment><comment><USER13> Quoted from the documentation: "Every request is wrapped in a Node Fiber".

So...essentially, this behaves like a traditional web server? A process listens for incoming connections, then spins up a new process/thread/fiber to handle the request?

<comment><AUTHOR> No - a Fiber is completely different to a process/thread. The server is still evented. <https://github.com/laverdet/node-fibers>

</comment></comment><comment><USER14> This is pretty cool. I personally like comb's executeInOrder [http://pollenware.github.com/comb/symbols/comb.html#.execute...](http://pollenware.github.com/comb/symbols/comb.html#.executeInOrder)

</comment><comment><USER15> Sounds great =D I've never used fibers in Node, but I'm quite experienced with Fibers and EventMachine aka EM-Synchrony. How do Fibers affect 1.debugging & stack trace and 2. performance & garbage collection ? Thx

<comment><USER8> Debugging is a lot easier since you get meaningful stack traces. Performance is slightly lower due to context switching - check out the Common Node benchmarks I mention in another comment.

</comment></comment><comment><USER16> This looks very promising and is different from the other node.js web frameworks. Very well thought out.

</comment><comment><USER17> I think it's much more similar to Goliath than to Sinatra.

</comment><comment><USER18> If you have to use synchronous code in JavaScript you're doing it wrong.

<comment><USER12> I'm not saying I like it, but this isn't synchronous code, which I think the readme does a pretty good job of explaining.

</comment></comment><comment><USER19> I still don't see the draw of using coffeescript server side. Why bother using the language (javascript on node.js) if you are just gonna turn it into something else? Wouldn't ruby suit your needs better?

To some degree I kinda feel like many shops are doing it just so they can say they use node. Maybe that isn't the case.

<comment><USER20> There's a benefit to running the same language on the client and the server, even if that language isn't JavaScript.</comment></comment>


Hacking a Tesla Model S - <AUTHOR> https://blog.lookout.com/blog/2015/08/07/hacking-a-tesla/ <comment><USER2> > We also found a number of vulnerabilities that allowed us to, with physical > access to the vehicle, to gain root access to two of the infotainment > systems

You should not have to depend on vulnerabilities to gain root access to a computer you own.

I'd rather like to see e.g. a system protected by a unique ECC SSH key, and you get the copy of the private key in paper together with your manual, as well as instructions on how to regenerate it.</comment>


Graphene-based foam stays soft and squishy even at super cold temperatures - <AUTHOR> https://phys.org/news/2019-04-graphene-based-foam-soft-squishy-super.html <comment> gene-h So with this we could make packing peanuts for pluto! Soft and squishy materials have surprisingly important applications. An O-ring not behaving squishy at cold temperatures was responsible for the Challenger disaster.[0]

[0][https://en.wikipedia.org/wiki/Space_Shuttle_Challenger_disas...](https://en.wikipedia.org/wiki/Space_Shuttle_Challenger_disaster)</comment>


The World Eats Cheap Bacon at the Expense of North Carolina's Rural Poor - <AUTHOR> http://qz.com/433750/the-world-eats-cheap-bacon-at-the-expense-of-north-carolinas-rural-poor/

<comment><AUTHOR> Bloomberg article on the rise of bacon: [http://www.bloomberg.com/bw/articles/2014-10-06/bacon-why- am...](http://www.bloomberg.com/bw/articles/2014-10-06/bacon-why-americas- favorite-food-mania-happened)

</comment><comment><USER2> To be fair, most of them are probably vehemently republican (of the "dont give ghetto welfare queens my gubmint money" type), so environmental protections are down in that "god damn commie talk" list for them. Until it affects them, personally.

<comment><USER3> Duplin County, the subject of the article, has about 2 registered Democrats for every 1 registered Republican. They voted for Kay Hagan, and their local politicians are Democratic.</comment></comment>


How Excessive Government Killed Ancient Rome (1994) - <AUTHOR> http://www.cato.org/pubs/journal/cjv14n2-7.html

<comment><USER2> Technically the Roman Empire didn't end until the Byzantine Empire fell in 1453 -- and you can bet they lasted so long because they didn't have "think tanks" like the Cato Institute giving theoretical policy advice on why Egypt fell to Rome.

<comment><USER3> Byzantium/Constantinopole lasted longer, but old Rome was destroyed from within. The monetary economy was debased into insignificance, then to supply the state they resorted to direct confiscations of produce (in a largely barter economy). Then, since people tried to move away, they were slowly bonded and turned into serfs. Previously free artisans were locked away into trade guilds. The destruction of the Western Empire was a catastrophe, but it was an overall improvement for ordinary people.

<comment><USER2> But maybe what killed Rome was the brain drain to Byzantium/Constantinopole? If you redefine the center of your universe then Rome becomes a outpost rather than a center of gravity. Although for the ordinary people you could be very right. Although I think there's a bad tendency to assume that the US = Ancient Rome, the two are very different creatures in so many ways...</comment></comment></comment>


Emoji are "mathematically" more secure than passwords - <AUTHOR> http://abcnews.go.com/Technology/emoji-password/story?id=31774933

<comment><AUTHOR> Company blog post claims 480 times more permutations[1] are harder to crack then 4 digit passcodes.

[1] [http://www.intelligentenvironments.com/info-centre/press- rel...](http://www.intelligentenvironments.com/info-centre/press-releases/now- you-can-log-into-your-bank-using-emoji-1)</comment>


Node.js Implementation of HomeKit Accessory Server - <AUTHOR> https://github.com/KhaosT/HAP-NodeJS <comment><USER2> This is awesome! I have a PI that controls my 433MHZ sockets using a NodeJS server. Using this with Siri would be really cool.</comment>


Understanding .NET 2015 - <AUTHOR> http://blogs.msdn.com/b/bethmassi/archive/2015/02/25/understanding-net-2015.aspx <comment><USER2> Recently I got to use some C# on Linux (with Mono framework), and I gotta say it wasn't bad. I didn't do anything with GUI elements, was all back-end server code.

C# wouldn't be my top "go to" language, but I would put it above Java. I liked some of the generics handling better, it can be less verbose it seems.

Monodevelop is not on par with Visual Studio, but it is solid and worked well for me. I usually don't like IDEs, but for a new language/framework and large projects it was very helpful to have it.

Wondering if open sourcing .NET core will breathe a new life into Mono project and maybe it is going to be bigger thing that what we expected -- we'll start seeing more back-end usage of .NET.

F# is nice too, and if anyone stayed away because of having to use Windows, maybe now is a time to take a second look.

<comment><USER3> > I liked some of the generics handling better, it can be less verbose it > seems.

It pays off in spades in a lot of situations, but the biggest I've noticed is Android development. Hitting a network from a button press in Xamarin is as simple as:

        button.OnClick += async
        {
           var data = HitTheNetworkForSomeData();

           // Note that since this is still async,
           // you may want to set a global or have a
           // different approach to handling data than
           // "standard" Android development.
           DoSomethingWithTheData(data);
        }

In native Android, it usually looked like this:

        button.SetOnClickListener(new OnClickListener() {
           new HitTheNetworkTask(this, this).execute()
        });

        @Override
        public void onNetworkTaskDataRecieved(String data) {
           doSomething(data);
        }

        public class HitTheNetworkTask extends AsyncTask<Void, Void, String> {
           Context mContext;
           NetworkDataTaskCallbacks mCallbacks;

           public HitTheNetworkTask(Context context, NetworkDataTaskCallbacks callbacks) {
              mContext = context;
              mCallBacks = callbacks;
           }

           @Override
           public String doInBackGround(Void... voids){ // I'm not pulling your leg here
              return doTheNetworkTask();
           }

           @Override
           public void onPostExecute(String data) {
              callbacks.onNetworkTaskDataRecieved(data);
           }
        }

It's downright frustrating having to use Java once you're used to C# and .NET.

<comment><USER4> It's a shame Android is still stuck on Java pre-8, as your Java example could be nearly as consise as the c# with Java 8.

<comment><USER3> In this particular case, yes. Another issue that comes up is when you've got fairly type-heavy code. C# having real generics just makes things much simpler than in Java.

<comment><USER4> Yes c# generics are often a lot less painful, due to lack of type erasure, and support for variable number of type parameters etc.

Having said that, more is possible with Java than many people realise. You can read statically available generic type params at runtime (field declarations, supertype tokens etc) . There are also workarounds for most of the erasure problems like methods that vary by generic type parameter only.

Java has some nice things itself too. Structural typing of single method interfaces/lambdas makes numerous things much easier. Default methods on interfaces let you do trait-like things nicer than with extension methods. Static imports reduce verbosity. More powerful enums etc.

c# approach to type inference seems to be to infer the left hand side of expressions with "var". Java infers types on the right hand side with the diamond operator, method type parameter inference, lambda to interface type inference. The Java approach makes code using fluent chained invocations less verbose, while the c# approach reduces the verbosity of assigning to lots of intermediate variables.

<comment><USER5> Having to rely on reflection is bad though.

<comment><USER6> Why? I hear this a lot, but I never understood it. I do a lot of work with reflection to achieve things I can't otherwise do (around application extension, dynamic systems for games, etc.).

I mean, _attributes_ are reflection, and they're absolutely invaluable.

<comment><USER5> Because it's not maintainable in a large code base. You write your code, and move on to something else, someone else comes a long and does a refactor, but they and/or the IDE misses the member names that were in strings. The program crashes on the next deploy because it built just fine.

Reflection is like anything else it can be used properly and it can be abused. I've seen it abused far too many times.

I realize there are times in Java when reflection is unavoidable (Android's animation libraries rely on it), but I consider it to be a feature of C# that, so far, I've never had to use reflection in C#.

<comment><USER7> A killer feature of the Ceylon programming language is its typesafe metamodel. Metamodel references are refactored like everything else in eclipse.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> There are spelling squiggles in the article's first image :]

[http://blogs.msdn.com/cfs-file.ashx/__key/communityserver- bl...](http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs- components- weblogfiles/00-00-00-81-88-metablogapi/1425.image_5F00_2D285E88.png)

Apart from that: I'm really curious and sort of excited to see what the next years will bring in terms of development using .Net in general and C#/F# specifically, on multiple platforms.

</comment><comment><USER9> What I still don't understand in this picture is the what does the _future_ look like in terms of the .NET _framework_.

.NET Core sounds great, and its great that they are unifying the implementation, not just the API, for many of the "app models". But, its unclear to me if there's the intention for .NET Core to fully succeed .NET Framework at some point in the future. Or, rather, will some of the app models we see on top of the Framework right now (WinForms, WPF apps) be built with .NET Core in some future version?

<comment><USER10> I think the reason why the future isn't spelt out is because they don't know (or haven't decided). The last 12 months have been massive steps for Microsoft (open source, multi platform). I would expect they would wait and see how their customers & community react.

Also Azure is a massive component to all of this (they make money of Azure, they don't make a massive amount of cash from someone using .Net).

Microsoft have a long history of keeping old versions alive (unlike say Apple). Eg Internet Explorer, Windows XP, Office, Win Forms vs MVC

I'm sure .Net core will take over one day. In the same way .Net 4.5 overtook .Net 2 / 1.1 etc.

</comment></comment><comment><USER11> Any reasons I should switch to Java or other technologies?

What I get with the (much hated) Microsoft stack:

\- C# with LINQ and async await

\- Roslyn compiler as a service which speeds up development

\- mature .NET framework

\- more and more open source and cross platform parts and smaller independent libs

\- typescript

\- Xamarin cross platform tools

I also use python and used Java in the past. I don't see any reason why Java should be better?

<comment><USER12> \- JRebel or Spring Loaded

\- Groovy is nice and still very similar to Java(no learning curve)when you want syntactic sugar like LINQ or JDBC SQL without all the boilerplate code.

\- IntelliJ Idea is similar to Visual Studio + Resharper.

But the biggest reason to start using Java is its extremely mature and rich ecosystem!

I'm currently doing software development on Windows with C#.Net and Visual Studio without ReSharper and I really miss Linux, Java and IntelliJ Idea :(

</comment></comment><comment><USER13> Happy to have a in depth article like this; bookmarked for later today hopefully.

My background is in the LAMP stack but now work in an enterprise environment where everything is .NET (though much older .NET than this article is talking about).

I want to throw myself into it but right when I started there was all this new talk about vNext and changes to .NET and all this other excited, though daunting, discussion around it.

Was hard to know where to start.

</comment><comment><USER14> .NET Native ... It would be great to have it for back-end also as opposed to only front-end. I'd take that 60% startup increase in IIS also, the first request is always slow...

<comment><USER15> > I'd take that 60% startup increase in IIS also, the first request is always > slow...

But startup cost is less relevant in a server scenario. In a server you startup once per ~1B requests or more. In a front-end app, it might run 10 requests and then stop.

<comment><USER14> Agreed. But we do have API for internal jobs that are only used a few times a week. Then there is also the other 15%-20% memory reduction discussed in the article that I'd like to have back.

</comment></comment></comment><comment><USER16> I learned to code with python, php, and javascript mostly. I could never get into visual studio / .net, it always felt so long winded compared to python.

<comment><USER17> give [http://pytools.codeplex.com](http://pytools.codeplex.com) a try!

</comment></comment><comment><USER18> I like that now there is a viable alternative to Java across various platforms. Java the language is alright but the ecosystem is something else entirely.

</comment><comment><USER19> It looks like the open source cross-platform version of .NET, v5 ("core"?), is something that was written completely from scratch?

Why wouldn't they open source the v4.x version? And why is WPF, Windows Forms, and ASP.NET placed above the .NET 4.x block in the diagram?

Is .NET v5 Core a from-scratch lightweight reimplementation that can't run the full stack? If not, why the huge separation?

<comment><USER20> It is fairly clear on the GitHub repositories.

It's not a reimplementation but a gradual publish of existing code, upgraded to meet the required standards (some of it was not written with being open in mind).

WPF will not be available on non-Windows platforms. That has always been the case and will remain so - it has a far to deep integration with the OS for it to ever be platform independent and a reimplementation would be an absolutely ginormous effort.

<comment><USER19> Thanks for clarifying.

And on a tangent, I guess the WPF thing was expected. But! I also thought WPF is mostly a re-implementation of all the windows widgets on top of a framebuffer - it doesn't use native win32 buttons, dropdowns, text rendering, etc etc...?

<comment><USER21> It doesn't depend on Win32, but MilCore depends on DirectX 9, so I guess it would be hard to port to other platforms.

</comment></comment></comment></comment><comment><USER22> The discussion in this corefx github issue is pretty interesting to follow.

[https://github.com/dotnet/corefx/issues/973](https://github.com/dotnet/corefx/issues/973)

It probably answers a few of the questions several have asked in this thread with regards to what the .NET Core is.

</comment><comment><USER23> I thought Microsoft was phasing out .NET and encouraging people to write their GUIs in JavaScript. That's what they were saying early last year.

<comment><USER24> I think the state of the Windows Store shows that approximately nobody took that seriously.

Unfortunately there are a few libraries I use at work that were released around the whole Windows RT/JS debacle, so their documentation takes a little more figuring, and is frequently incorrect, due to only having code samples in these dead/orphaned variants.

<comment><USER25> I think part of it is that MS tied WinRT to full screen-only apps, a mistake they're fixing in Windows 10. Some of the features of the WinRT API look neat.</comment></comment></comment>


Ask HN: Ubuntu Must-Have Apps - <AUTHOR>

I just loaded the latest version of Ubuntu (9.04) What apps would you recommend I get right away? <comment><USER2> Here are the first things I install:

aptitude install firefox-3.5 (Ubuntu 9.04 shipped with Firefox 3.0 by default).

Nightly builds of Chromium: <https://launchpad.net/~chromium- daily/+archive/ppa>

miro (simple "internet TV" video podcast player)

thunderbird, gnumeric, abiword (my preferred lighter-weight alternatives to the default Evolution and OpenOffice apps)

gnome-do (like the OS X app Quicksilver)

inkscape (vector drawing)

git, git-svn, mercurial, darcs, bzr, subversion, cvs

irb, rubygems

</comment><comment><USER3> I suggest: Openoffice.org - stable (3.1.0?),kivio or dia - diagramming,opera and/or firefox,gnucash,abobe acrobat reader (acroread), qcad, hp device manager (hplip?) if you have an hp printer, vlc media player, glabels - business cards and the like (I just prefer this to OOo for this purpose)

This software covers most of my office/design type needs.

</comment><comment><USER4> It really depends on what you want to do. I like to have Wine installed so that I can run some Windows apps, but if you don't use Windows, that will be less important. I've also used QEMU in the past to run a virtual Windows machine inside of Linux.

I use Google Chrome for normal browsing and Firefox for development, so I would try to get Chromium working.

[http://code.google.com/p/chromium/wiki/LinuxBuildInstruction...](http://code.google.com/p/chromium/wiki/LinuxBuildInstructions)

I also use vlc for playing DVDs, video, and audio clips.

<http://www.videolan.org/vlc/download-ubuntu.html>

There aren't really any killer opensource apps that Ubuntu is missing. The fast majority of what you will need for development is available in the repositories.

</comment><comment><AUTHOR> I just came across this: Scribes - Textmate for Ubuntu and it made we wonder if there was any other hidden Gems.

</comment><comment><USER5> HoN if you like games, currently in beta.I have a few invites left if you want one.

</comment><comment><USER6> if you don't have them already: build-essentials, python, svn

Chromium is also a must.

</comment><comment><USER7> If you "sudo apt-get grammar" you can get an app that will teach you how to properly use hyphens so you don't say things like "Ubuntu must have apps" which implies that Ubuntu doesn't have applications but you think it must.

<comment><USER7> Oh, you changed it just to spite me! :-)

Except "Ubuntu-must-have-apps" is just as bad! The hyphen goes between "must" and "have" to signal that "must" is part of an adjective and not a verb!

<comment><USER7> I know Grammar Nazis on the Internet are annoying but people will think you are not smart. You know how it's a really big turn-off when you read Craigslist posts and girls are like "your really funny" and you just wince? It's like that! Except without the girls!

<comment><USER8> I bet you're a redditor. lol</comment></comment></comment></comment>


Ship Code Faster: Announcing GitHub Integration GA - <AUTHOR> https://blog.heroku.com/archives/2015/2/6/heroku_github_integration <comment><USER2> Am I missing something or has Heroku pricing gone from insane to complete batshit since I last looked?

For 6 "performance dynos" (a whopping 30G RAM!) they ask a price of $2842/mo.

Does that include a personal assistant and foot massages?

<comment><USER3> At that price it only makes sense if you have something to automatically and agressively resize your app. Something like scale up to 6 dynos for a couple hours after you hit the front page on reddit, then scale back down.

<comment><USER4> Or adhoc or scheduler jobs (similar to cron jobs). Mine run twice per day but only consume 25.128h per month because the breakdown is per minute.

</comment></comment></comment><comment><USER5> > If an issue is encountered during a Heroku deployment, be it manual or > automatic, you can always rollback to the last known good release from > either the CLI or in Dashboard.

How do you know if the build failed other than looking at the dashboard?

When deploying through the CLI, I can check the exit status of the command so my CI can take care of it and notify me of any issue.

<comment><USER6> If the build fails, it won't be deployed and no rollback will be necessary.

With automatic deployments, if you have metrics or monitoring and discover a problem with a deployment, you can use rollback to revert. Just like you would have done with a release created by git-pushing to Heroku.

<comment><USER5> But how can I be notified of the fail?

When I deploy I don't look at the dashboard, I go back to business until my CI tell me deployment succeeded or failed.

<comment><USER7> > _But how can I be notified of the fail?_

In lots of deployments you can set to receive an email or even SMS for one...

</comment></comment></comment></comment><comment><USER8> I don't understand the benefit to this as opposed to the CLI?

<comment><USER9> Disclaimer: I don't use the git CLI and I've deployed maybe 3 apps to Heroku, all just playing around with it.

Isn't this so that someone can just keep Github up to date and they don't need to use the CLI and do `heroku push` or whatever every time there is an update?

We use Microsoft Azure for some public sites, and there is both Github and BitBucket integration where you can automatically deploy updates to certain branches (e.g. `master` or `develop`) to the site.

<comment><USER10> You could use something like "git push heroku master" before, but with this you dont need to setup a separate remote when using github+heroku, you can simply just push to github, that means the code that you see on github is the same as the one running on heroku, that wasn't always the case before.</comment></comment></comment>