Intent to deprecate: Insecure HTTP - <AUTHOR> https://groups.google.com/forum/#!topic/mozilla.dev.platform/xaGffxAM-hs <comment><USER4> How about we solve the "certificate" situation first?

I've just paid lots of money for "certificates". I quote the word, because they don't actually certify or even signify anything. The whole procedure for "domain-verification" is a joke, and many outfits are incompetently run (their "verification" e-mails bounced from my servers because they ended up in RBL, which nobody seemed fit to correct).

I see this as a scam, or extortion — pay up, or you won't be "certified". And pay up significant amounts of money, if you want a wildcard cert.

If we care about encryption just for the sake of encryption, let's change our browsers to allow self-signed certificates. Label them as such, but don't label them as "unsecure", because the padlock icon really isn't any more secure than a self-signed cert.

<comment><USER5> How do you check the difference between your self-signed cert for your site and _my_ self-signed cert for your site?

<comment><USER6> I rarely care. Even the CA-signed certs are usually for "RL Media Enterprises Inc." or something equally opaque to me, rather than something more meaningful.

Bluntly, the refusal of a certain part of the security community to _simply secure transport first_ and then worry about authentication on top of that is both frustrating and mind-boggling.

<comment><USER7> I sure care. If my browser starts to accept YOUR self-signed certificate for gmail.com, we're back at http.

<comment><USER6> _we 're back at http_

No. With http I can phish you, and anybody else can read or alter that phishing attempt. With self-signed certificates, I can phish you, and you know that my phishing attempt was neither altered in transit nor read by anyone else. We now have a channel over which we can negotiate authenticity.

If you went to my blog and saw that a CA had verified that I am who I claim I am, that doesn't particularly help you, because you don't know anything about me. But you might like to know that, whoever I am and claim to be, no _other_ party is interfering with our communication. My issue is not with things like Gmail or my bank, but with the thousands of "ordinary" sites where learning the identity of the business that owns the site doesn't actually give me any useful information. That is, even if I see the name of the company in the certificate, I don't have a reason to trust them more than I would trust a phisher because I have absolutely no sideband interactions with them to begin with.

</comment></comment></comment></comment></comment><comment><USER8> Hey, this is Richard, the author of the post. All the feedback here is great, but if you've got thoughts on whether we should pursue this strategy or not, please comment on the mozilla.dev.platform list.

[https://lists.mozilla.org/listinfo/dev- platform](https://lists.mozilla.org/listinfo/dev-platform)

[https://groups.google.com/forum/#!forum/mozilla.dev.platform](https://groups.google.com/forum/#!forum/mozilla.dev.platform)

<comment><USER9> As I mentioned in the thread in question:

"Basically, the current CA system is - again, to put this as gently and politely as possible - fucking broken. Anything that forces the world to rely on it exclusively is not a solution, but is instead just going to make the problem worse."

Please keep that fact - that the CA system is, as I put it with all the gentleness and politeness it deserves, "fucking broken" beyond any repair - <USER2> mind.

(And no, "the CA system is fucking broken" is not an opinion; it is a verifiable fact, as much as the concept of gravity is a verifiable fact)

<comment><USER10> If it's not a bother can you elaborate on the way(s) it's irreparably broken?

<comment><USER9> The idea of having to trust a central authority for verification is the root cause of the vast majority of the brokenness; it means that proper TLS-based security for the web is not only financially prohibitive for even individuals in developed nations, let alone developing (with very few exceptions in the CA space providing cheap or free certificates), but is also a single-point-of- failure in terms of security.

Nowadays, we have this magical thing called a "blockchain" that can be used for everything from currencies (Bitcoin) to domain names (Namecoin); with some further refinement, using a blockchain as a certificate authority would fix both problems right away.

<comment><USER10> I certainly agree it should be replaced, but I think it's a bit off the mark to say that self signed certificates should be trusted the same as CA signed ones (something that badrami was suggesting throughout the thread). Yes, certificates insufficiently identify a site's owner but self signed certificates are as bad as a CA's worst case scenario.

<comment><USER9> When it comes to security, you should always assume worst-case scenarios are going to occur.

In which case, the equivalence of self-signed and CA-signed is entirely on- the-mark. There's no _real_ guarantee that the certificate authority is any more secure or trustworthy than, say, my five-year-old niece.

This is why decentralized systems (lately, that's been interpreted to mean "systems using a cryptographic ledger or blockchain" or "systems that rely on mesh topology graphs" (i.e. something similar to Namecoin or something similar to PGP, respectively), but those aren't the only models out there) are ultimately necessary for this; that way, you don't _have_ to trust one arbitrary centralized authority, but instead can trust, say, a majority of a collection of hundreds or thousands or millions of such authorities coordinating via an agreed-upon protocol/convention/etc. My own bet would be on a cryptographic ledger (PGP-style webs-of-trust aren't nearly as end-user- friendly, whereas a "blockchain" has more potential in that area, since it's easier to abstract away from the end user), but pretty much anything at this point would be less convoluted - and more secure/trustworthy/effective - <USER3> the current system.

<comment><USER10> I disagree. There's a significant amount of security we gain from collectively using the CA system over self signed certificates. If a CA is subverted my browser or OS vendor can pull the CA or the CA, if trustworthy, can revoke the certificates.

Let's say a CA has issued certificates for example.com to someone with nefarious intent. It's discovered that the CA's security is completely compromised and my vendor pulls the plug. In our current scenario I can visit example.com while being MitM'd and my browser vendor has made sure I get a big alert when I connect.

In a scenario without CAs, I visit example.com and my browser vendor has no idea that I'm being MitM'd nor do I since I've never been to example.com and examined the certificate.

Is it perfect with CAs? No. Will some get victimized by a CA's carelessness regardless of when it's caught? Probably. But most of us remain more secure with it than without it. For most users on most sites it works albeit haphazardly. It should absolutely be replaced. But to suggest that the security benefits should be abandoned because it's possible that it could happen is short sighted. It would be open season on internet users.

<comment><USER9> > I disagree. There's a significant amount of security we gain from > collectively using the CA system over self signed certificates.

You're actually _losing_ security by trusting the CA model, though. You have no means of control or independent audit. This is the same reasoning behind free-and-open-source software being inherently more secure and trustworthy than their closed-source counterparts; "transparency is a dependency of trust" is just as applicable here as it is in any other security-sensitive situation.

This is why decentralization is absolutely essential, and the longer we go on sitting on our haunches and pretending that the current system is "good enough", the worse the problem becomes.

> If a CA is subverted my browser or OS vendor can pull the CA or the CA, _if > trustworthy_ , can revoke the certificates.

That trustworthiness is a very big if.

> In a scenario without CAs, I visit example.com and my browser vendor has no > idea that I'm being MitM'd nor do I since I've never been to example.com and > examined the certificate.

There are numerous ways to achieve certificate verification without relying on a centralized CA system. Even with self-signed, you can detect private key changes (this is how SSH is protected against MITM attacks; in practice, this rather-simple security measure has been _very_ hard to circumvent). For more verification, there are plenty of ways to achieve that in a decentralized manner, be it web-of-trust (PGP-style) or a cryptographic ledger (Namecoin- style) or something else entirely. Hell, there are already systems like DNSChain that implement the latter approach; that would be infinitely better than the current system.

> But to suggest that the security benefits

What security benefits? All the purported "benefits" are _entirely fictional_ , since they rely exclusively on arbitrary trust in arbitrary entities. That's not security, no more than me handing you a briefcase full of cash and you promising you'll hold onto it for me is "security".

The sense of security you feel with the current CA system is very much false. You're relying enirely on luck, and have absolutely zero assurance that your luck will continue to be good.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> What is the point? If you need a secure connection then use https, if there is no value securing the connection then use http. Why deprecate a working technology that continues to have many valid use cases?

As an analogy this strikes me as deprecating an array for a linked list because a list has certain features that array's don't. Ie. there is a time and place for both.

<comment><USER12> Can you list some of the use cases where you can do something using HTTP that you can't using HTTPS? I had always assumed one was a superset of the other, feature-wise.

As long as HTTPS offers all features of HTTP, then the reason to deprecate HTTP is to prevent accidental use of it, and websites which don't know/care from leaving their users vulnerable.

<comment><USER13> Things you can do with HTTP that you can't do with HTTPS:

* Create a website for free (you have to pay for certificates to use HTTPS)

* Report sensor data from small embedded devices with extremely limited CPU

* Your JS can talk to APIs that don't yet support HTTPS (e.g. NextBus). If your serve your JS over HTTPS, your browser will complain if you try to access a HTTP-only API.

* Transfer large files at gigabit speeds on consumer-grade hardware

<comment><USER14> _> Create a website for free (you have to pay for certificates to use HTTPS)_

No you don't. You can get free certificates.

But even if that was true, it's still a misleading argument. You can only make a website for free if you are OK with your website not having a domain name and running it off your personal laptop with electricity paid for by your roommates/parents. For any _actual_ website, there are already a multitude of real costs of which a certificate is just one more.

 _> Report sensor data from small embedded devices with extremely limited CPU_

If your CPU is really so limited then why are you using HTTP at all? Use a custom binary protocol with or without encryption as appropriate.

 _> Your JS can talk to APIs that don't yet support HTTPS (e.g. NextBus)._

Then those APIs suck - avoid them and/or ask the providers to get with the program.

 _> Transfer large files at gigabit speeds on consumer-grade hardware_

AES-NI can decrypt at 3.5 cycles per byte. With _modern_ consumer grade hardware you will not find symmetric streaming crypto to be a serious bottleneck.

<comment><USER15> > You can only make a website for free if you are OK with your website not > having a domain name and running it off your personal laptop with > electricity paid for by your roommates/parents.

Actually, if you are willing to do without your own second-level domain name and just have a third- or fourth-level domain name, there are plenty of services where you can have a free web site (or app) running of over HTTP. E.g., any number of free (or free-within-limited-quota) static site hosting services, or even Google App Engine.

Of course, in the Google App Engine case, you also get HTTPS for free (within usage quota), as long as you are willing to have an <app>.appspot.com domain name, so the "create a website for free" isn't really a "with HTTP, but not HTTPS" thing.

<comment><USER13> Sure, although GAE is blocked in China. AWS works, and has a free tier that will get by for a year, but doesn't give you free certificates.

Also, for a lot of newbies, installing SSL certificates is a PITA.

0\. You realize you need a SSL certificate. You're presented with a dizzying variety of options and already lost. Are you supposed to get Positive SSL, Negative SSL, Essential SSL, Comodo SSL, Start SSL, Wildcard SSL, EV SSL, Rapid SSL, Slow SSL, or EV SSL aux Mille Truffles et Champignons? Most newbies ask, "Why isn't there a simple [click here to get HTTPS certificate] button?"

1\. You get your certificates by e-mail, but you still can't install them directly. Your webserver wants a .pem file, so you Google "How do I create a PEM file". The top 10 tutorials tell you to concatenate THREE files: your_domain_name.crt, DigiCertCA.crt, and TrustedRoot.crt in that order. What you received by e-mail was FOUR files: AddTrustExternalCARoot.crt, COMODORSAAddTrustCA.crt, COMODORSADomainValidationSecureServerCA.crt, and your_domain_name.crt. You're lost, no tutorial is helping with what to do with FOUR files instead of THREE, in what order to concatenate them, and StackOverflow bans your question. You're fed up, quit, and use HTTP. (Not me; I'm describing an actual case of observing someone else's frustration trying to set up HTTPS.)

The only way HTTPS will gain popularity is if we can get rid of the certificate-issuing economy and make it _easy_ for newcomers. The majority of content creators unfortunately do not understand the basics of security nor can we expect them to have the patience to learn it.

<comment><USER16> That. I have managed to get through the steps but there was nothing simple about it and I wouldn't be able to replicate it without looking it all up again. Unfortunately, SSL isn't even an option on my el-cheapo shared webhosting service (as I understood it, it needs a dedicated precious IPv4 address).

Contrast this with Dan J. Bernstein's wonderful CurveCP. It's so simple to set up and requires no CA involvement; you just need to be able to add a NS server entry.

<comment><USER9> > as I understood it, it needs a dedicated precious IPv4 address

A _good_ webserver would actually be able to provide multiple SSL certs on a single IP address by using "Server-Name Indication" (SNI). This is definitely (as far as I know) supported on nginx, and probably supported by Apache's httpd.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> I'm not saying it's a bad idea, but the thought that once HTTP is deprecated I'll need to go through extra effort to manage the myriad of devices in my LAN is bothering me. The configuration interfaces of these devices (routers, printers, IP cameras, etc.) mostly don't support HTTP. Most never had updates available and certainly never will. We're not just talking about 5+ year old devices (which despite their age still function as designed): none of the most recent routers I bought support it, except if flashed with some powerful and well maintained alternative firmware.

I'm already annoyed enough by firmware update tools that only work with a specific old version of Internet Explorer... I rather not throw dozens of equipment away just because browsers started to insistently refuse HTTP connections. Let's not talk about the fact that I often spin up simple HTTP servers on my computer just to be able to transfer files to other machines on the same network, and I rather not have to worry about creating certificates (to then find out that the machines in question are "obsolete" too and don't support HTTPS?).

Can we just consider HTTP to be like telnet? Old, super insecure, definitely not meant to be used by everyone daily and definitely not over the Internet, perhaps not even available/installed by default, yet super compatible and simple to implement both for the client and the server.

I really hope that should mandatory HTTPS become a thing (and I'm not saying it shouldn't), an exception is added for local area connections.

<comment><USER18> This just makes me think that we need is not an "improved HTTPS", but to rip out TCP/IP and encrypt everything at that level.

Now we only need to convince either Google or Microsoft to implement something like that in their OS and _encourage /mandate_ the use of it. Only these 2 matter because they are the owners of the biggest platforms.

Yes Apple has a pretty big platform, too, but it's kind of irrelevant since it's a closed Apple-only ecosystem anyway so if it adopts something it doesn't mean the others will too. On the other hand, if either Android or Windows adopts something as major, I think the other one would, too.

What I'm thinking is something like MinimaLT or perhaps Trevor Perrin's "Noise" if it ever becomes real.

[http://cr.yp.to/tcpip/minimalt-20131031.pdf](http://cr.yp.to/tcpip/minimalt-20131031.pdf)

</comment></comment><comment><USER19> I find myself with some cognitive dissonance. This makes perfect sense.

But selfishly, I've worked for many corporations that operate an http proxy that they scrutinize and they proxy https which they cannot scrutinize (without detection), so I feel comfortable that they are not. (Yes I periodically review the certificate store for changes).

If the vast majority of sites were https, they might decide to do MITM for those https connections and either instruct everyone to ignore the warning or install their own certs on all of the computers. Indeed I think many corporations may already do this. I would probably not use many websites if they made that change.

<comment><USER20> Wouldn't the corporation install it's own root certificate in that case? you can MITM without notification. presumably they could tack it on after workstation install.

If they're already going through the trouble of monitoring everyone's traffic, a few extra steps don't seem like that big of a hassle.

Of course, you're right, some large fraction won't bother with their own root cert, and their users will learn many bad habits.

<comment><USER19> > Wouldn't the corporation install it's own root certificate in that case?

Yeah, but I can audit the certificate store (and I have). On some systems, I am granted local administrator privilege. I wouldn't take out any certs that they install, but if I found that they installed and/or used one, I'd probably stop using most public websites (at least the ones that I have a username/password with).

</comment></comment></comment><comment><USER21> All I ask is please don't block non-HTTPS sites from browsers. I don't want to have to set up a valid SSL cert for every development environment I work with.

<comment><USER22> I see no reason not to blindly trust localhost - there is no way to MITM the connection anyway.

<comment><USER23> That's interesting. I've never tried so I don't know, but can you issue an SSL cert to CN "localhost" or does it need a fully qualified domain name?

<comment><USER24> In don't think any ca is going to give you a cert for local host, but open ssl is happy to make a self-signed cert for random single-word CNs, and chrome will trust them if you tell it to.

</comment></comment></comment></comment><comment><USER25> Nobody has brought this up yet:

If we deprecate HTTP, then certificates can be used as tools of censorship by governments.

We require an alternative to the current HTTPS scheme first.

<comment><USER26> ...and the governments will then be virtually the only ones who can still inspect traffic, since they can still get CAs to issue certificates for them. Moving everything to HTTPS dependent upon CAs only makes the whole Internet more centralised, which is horrible for privacy and anonymity.

They will all say it's "for your security", and arguably having this centralised root of trust does lower risk of attacks from random groups, but at the same time it's allowing them more power. To CAs and governments, a lot of things around encryption seem to be oriented in the direction of "if we don't have control over it, we disapprove." Self-signed certs are only one example of this; see all the other issues surrounding mobile device encryption. It's only good encryption to them if they are the ones in control of it.

Quite frankly, to me it seems random hacker groups have a lower chance of cooperating and tracking you in the same way that governments can.

I believe the relevant quote in this situation is again the classic "those who give up freedom for security deserve neither."

</comment></comment><comment><USER27> It's unfortunate that this is necessary. I like the concept of decentralized cache systems, but in the future CDN will be the only option for low latency.

<comment><USER28> That's what bothers me. HTTPS Everywhere means MITM Everywhere. Terminating HTTPS connections at a CDN means the CDN is the man in the middle. You don't have to attack secure servers that handle important stuff any more; just get a backdoor into Cloudflare. This makes "authorized law enforcement access" easier than ever.

On top of that, HTTP2's "it all has to go through one hole" approach means that CDNs become almost mandatory for big sites. The Web is becoming a lot more centralized. It's more secure against random attackers, but much less secure from inside jobs at CDNs, authorized or not.

The Great Firewall of China people must love this.

<comment><USER29> HTTPS has never guaranteed that you were speaking directly to a given entity. In the case of a corporation, what does that _really_ mean, anyhow? Your web request is being handled by the CEO him- or herself?

It only means you are speaking to a device or set of devices that the certificate-holding entity has authorized to speak for them. No certificate technology can prevent a company from delegating authority to another entity's devices.

It isn't that this isn't necessarily a problem... it is that there is no way in which certificates ever solved it, nor a way in which it can solve it, and there's no choice. Whenever you're talking to X.com, you are almost certainly also talking to a third-party web stack, for instance, which means that trust has been delegated by the certificate holder to some other party's software. There's hardly a website around that doesn't have a whackload (technical term) of third parties already in the connection anyhow.

The certificate-holding entity is ultimately _responsible_ for what they do with your trust. But the certificate can do nothing to constrain those actions. It's just a glorified number with some other glorified numbers attached to it.

It does seem to me though that HTTP2 should actually make it _easier_ to do without a CDN in the end, though. Initial HTTP2 support will just be "HTTP1, but on HTTP2!" which really provides minimal advantages over HTTP1, but over time as we see web frameworks start to take direct advantage of being able to push down resources preemptively, the advantages of CDNs for all but the largest sites start to fade. (Perhaps not "eliminated", but certainly lessened.)

(Incidentally, as people will presumably start releasing HTTP2 benchmarks soon, keep on eye on the details. Embedding HTTP1 inside HTTP2 is not the interesting performance question and will never have big gains... the correct question to investigate is what are the gains to be had from _fully_ using HTTP2 natively. Many SPDY benchmarks had the same problem... of course SPDY isn't faster if it's still essentially speaking HTTP1 to the target website.)

</comment></comment></comment><comment><USER15> Generally, I think this is a bad approach. I think that configurable blocking of HTTP with user-controlled (or, for managed environments, policy-controlled) opt-in to allow HTTP for safe domains makes some sense. But not deploying new features for HTTP and limiting existing features on HTTP does not; true, one could set up a root CA and deploy certificates and manage TLS for internal, including local-box, testing, etc., but it doesn't make sense for browser to require it.

Configurable blocking of HTTP provides all the benefits of HTTP deprecation without the adverse side effects for the situations where HTTPS is an unnecessary headache, so it should be preferred.

</comment><comment><USER30> The biggest downside I see is that it would no longer be possible to host a simple website, without also having to publicly expose the vastly increased attack surface that the OpenSSL code base brings to the table.

</comment><comment><USER31> If this is a very long-term plan, I'm all up for it. In the short term, we're just not quite where we need to be in order to enable SSL even on less- important sites or sites that don't require any credentials.

From a hardware perspective, I'd say that by now the problem is actually solved. Hardware is powerful enough to handle SSL connections.

What's currently tricky is that too big a chunk of clients still doesn't support SNI which really doesn't go well with the increasing scarceness of IP addresses.

Needing one IP address per unique domain name, aside of the administrative overhead (multi-homing still is somewhat inconvenient) will just not be feasible as the costs for IP addresses is starting to skyrocket.

This will be fixed by either IPv6 growth (you wish) or the death of non-SNI systems, but it'll be years if not decades before we can ignore XP and Android 2.3, especially as there's no good fallback path for these clients as the SSL negotiation (and subsequent hostname validation failure) happens way before the host could react.

<comment><USER32> "too big a chunk of clients still doesn't support SNI"

I'm not sure that's true today, what's your list?

XP is only a problem when using IE. Android 2.2 and 2.3 are well under 10% last numbers I saw. They are very close to where we can make a greater good argument.

<comment><USER31> Windows XP, Android 2.3 and many scripts running on various old but still supported Linux Distros (RHEL 6 for example) and, of course, the Bing Bot.

</comment></comment></comment><comment> mark-r Doesn't HTTPS require a dedicated IP address? With the exhaustion of the IPv4 address space, the timing couldn't be worse.

<comment><USER33> No, they fixed that. The hostname is sent before the cert is chosen.

<comment><USER34> No it isn't fixed for all devices. Windows XP is one example and even though it is no longer supported by Microsoft, at least 17% of devices on the internet are still using it.

<comment><USER33> That's not a problem with XP, that's a problem with people that use obsolete versions of IE.

Note that the subject here is talking about what to do in future browser versions, so IE8 never comes into the picture.

</comment></comment></comment></comment><comment><USER35> I agree with some of the skeptical comments here, and wanted to add one more use case they are not thinking about: [http://localhost:NNN/](http://localhost:NNN/)

There are many cases where you might want a service on localhost to be reachable via HTTP. Technically this should be exempt from https rules entirely, since who would the man in the middle be? If someone can MITM 127.0.0.1, they own your box already.

It is _impossible_ to get https certificates for localhost/127.0.0.1, making SSL with an approved cert impossible for local services.

</comment><comment><USER36> I am wondering if this will go anywhere. It seems to me that if anyone would be willing to do this it would actually be the Chrome team, not Mozilla. Mozilla currently lacks the market share to pull this off, and lately their moves have been more targeted in a different direction.

Having said that, I am really happy others are thinking along the same lines as I: HTTP should be relegated to a legacy protocol and the warnings need to very similar to what you get when accessing a site secured by a self-signed cert.

</comment><comment><USER37> The recent disabling of TLS1.0 on so many sites means I'm finally going to have to upgrade my cell-phone, as there aren't any TLS1.1+ supported browsers for PalmOS.

<comment><USER38> What sites are disabling TLS 1.0? According to the SSL Pulse report[1] it's the most-supported version of SSL/TLS by far (99.7% support). TLS 1.1 and 1.2 are disabled by default in older versions of Internet Explorer so not supporting 1.0 would lose those viewers which is enough reason to keep it enabled for almost all HTTPS sites.

[1] [https://www.trustworthyinternet.org/ssl- pulse/](https://www.trustworthyinternet.org/ssl-pulse/)

<comment><USER37> Sorry, my mistake, it's SSL 3; I can't even load the Qualys SSL client test.

</comment></comment></comment><comment><USER39> What about devices I access via IP address which have no DNS. Like my home router, or my printer, or my iPhone when I'm connecting to an admin web interface, or my NAS...?

Obviously I'm not going to setup a home domain, DNS, and SSL certs installed on all these devices just so they can use the latest HTTP/2.x features in their admin panels or user interfaces?

</comment><comment><USER40> What the hell. Someone please stop this madness.

</comment><comment><USER41> I know Google wants to do something similar with Chrome.

I have so many comments - but the first being don't they realize that they will have to make this option which will be disabled by most enterprises?

</comment><comment><USER42> In order for this to really take off a campaign with the popular basic plug and play hosting providers to install free/cheap SSL would be needed.

</comment><comment><USER43> Do child protection software filters work with HTTPS?

<comment><USER44> Child protection filters would work much better as browser extensions.

<comment><USER45> Why?

I'm not familiar with how those typically work, but intuitively from an architecture standpoint, that sounds like something that should sit as a filter between the browser and the outside world. Browser as monolith of functionality seems undesirable.

<comment><USER46> Trusted filters (such as ad blockers, parental censorware, network monitoring) must to be _inside_ the trust boundary to be effective. That is the best way to ensure they are not imposed _en masse_ against people's will.

In-path filters outside the trust boundary are, I'm afraid, the very first casualty in our efforts to mitigate the threats of nation state adversaries, as they resemble the attacks used there too much to survive. I, for one, will not mourn them.

</comment></comment></comment></comment><comment><USER47> In my opinion:

* A big warning sign when the site is not using TLS, but not a pop-up

* No warning when the site is using TLS

That would be a correct way to force websites to use TLS.

</comment><comment><USER40> First .google domains, now this? We should stop using this stupid thing named DNS.

[https://gnunet.org/gns](https://gnunet.org/gns)</comment>


Lensrentals Repair Data: 2012-2013 - <AUTHOR> http://www.lensrentals.com/blog/2013/08/lensrentals-repair-data-2012-2013

<comment><USER2> Interesting data, and I don't even take photos. It could be very interesting to see aggregate data from independent iPhone repair men; I'm convinced the home button of the iPhone 4 had a life expectancy of around 7 months.</comment>


The "Fiduciary Rule" and Unintended Consequences - <AUTHOR> https://www.aqr.com/cliffs-perspective/caveat-investor <comment><USER2> As a proponent of the Fiduciary Rule, this is actually one of the best critiques against it. A lot of unintended consequences are highlighted, one of them: ex post judgment of whether an investment was in the client interest or not.</comment>


Snoopers charter amendment is back in bill again (again) - <AUTHOR> https://gigaom.com/2015/01/31/british-securocrats-try-to-sneak-in-snoopers-charter-yet-again/

<comment><USER2> Aren't we, the people, getting tired of constantly having to work to thwart our governments attempts to erode our rights? Isn't something fundamentally wrong with the system if we must constantly do this? And to little avail, because slowly but surely they eventually succeed at whittling them away.

</comment><comment><AUTHOR> Lords West, Blair, Carlile and King have inserted a large amendment to a bill at the last minute yet again.

This appears to be very similar to the last amendment although not identical. They withdrew the previous amendment last week.</comment>


What is an entity system framework for game development? - <AUTHOR> http://www.richardlord.net/blog/what-is-an-entity-framework <comment><USER2> Idea we played with was one step further--take the entities and have their components/state data backed as atoms, and create separate buffers. During update, read from buffer A and write state to buffer B, then swap. This should allow for fairly trivial use of a worker pool to handle concurrent updates.

<comment><USER3> That's how I wrote the inner core for one of the Tiger Woods PGA games for EA.

<comment><USER2> Ha! That's awesome, you're awesome. :)

</comment></comment></comment><comment><USER4> What's cool about this architecture is that it lets you define your game objects in terms of data, not code. You're able to change your game objects at runtime.

I made a small C++/QT implementation here:

[https://github.com/surjikal/cbgos- experiment](https://github.com/surjikal/cbgos-experiment)

And here's a screenshot of a game I built with it:

[https://raw.github.com/love-rollercoaster/space- game/master/...](https://raw.github.com/love-rollercoaster/space- game/master/assets/images/revenge-of-the-asteroid.png)

This is supposed to be an 3d asteroids clone, but the asteroid and spaceship graphics components were swapped. So you're controlling an asteroid, and your goal is to destroy spaceships.

</comment><comment><USER5> Interesting to see the evolution from the original game loop to the final system, kind of reminded me of these drawings "from ape to modern homo sapiens". One thing that bothers me with the final result, though, is that you end with a system where you can't tell the difference between two kinds of entities. If in your system infantry can climb aboard a spaceship but not the reverse, you can't guarantee that statically, unless you have a separate layer for this kind of logic.

<comment><USER6> You'd define a climbing behaviour by a component on the entity.

So your spaceship might have a 'Climeable' component on it and your infantry might have a 'Climber' component. So only a 'Climber' could go onto a 'Climeable' , but not the reverse.

<comment><USER7> You will also need to qualify these interactions beyond the "class-compatible" test, using flags or exclusion groups or a similar technique to say which climbers can climb atop which climbables. This happens in many areas of interaction between entity components: damage, physics, visibility, etc.

</comment></comment></comment><comment><USER8> This[1] is a pretty good resource on ES.

1 [http://entity-systems.wikidot.com/](http://entity-systems.wikidot.com/)

</comment><comment><USER9> This is interesting, reading some of the linked documents, my naive generalization is that it pushes the entities into using things like maps and dictionaries instead of static properties. The "system manager" stuff just pulls things out of the maps and feeds them to functions to do work, so it is very much 'data-driven' and I must assume more work is put into "configuration" of the entities, just like a data-driven business process requires "configuration" of the order processing pipeline.

i.e. Can some of the complexity of a 'true' entity component system by simply reduced to favoring dictionaries and maps instead of static properties?

<comment><USER10> Definitely. ECS feels very functional, in that it purposefully eschews OO in favor of something more dynamic.

<comment><USER11> ECS is very OO. OO vs. functional is orthogonal to dynamic vs. static.

<comment><USER10> Sorry, yeah, should have said something not class-centric.

</comment></comment></comment></comment><comment><AUTHOR> What would be an ES-friendly way of modeling relationships between entities? It's hard to give up the speed of pointers in say C++ and use instead handles for example (tho they would come with other advantages like lifecycle handling).

</comment><comment><USER10> I've always wondered if this idea was usable in general purpose application programming. It is very similar to DCI.

<comment><USER11> Dynamic and mixin inheritance cover most of what entities are doing. Given a more expressive language where these inheritances could be expressed succinctly, you would probably find them very useful.

<comment><USER8> It's a sort of interesting divergence from what you'd expect, though. (There's no "one way" of course, but) The Components (mixins) have all of their logic centralized in Systems which get called by the simulation tick. Adam Martin (t-machine.org) writes about how it's similar to a relational model, and even suggests the Entities and Components be stored in an RBDMS when its feasible for performance (MMOs). If you're not using a database, then you're sort of replicating the relational model in your code.

      entity: id
      component: id field1 field2 field3...
      entity_component: ent_id com_id

Then your tick iterates the Systems, each does a query for the relevant components, applies transformations, and puts back in the datastructure. So your logic is very centralized, and the entity behaviors are basically declared by a combination of choosing its Components and choosing the active Systems.

<comment><USER11> Driving behavior via time is easy once you have your object plumbing. You may also requisition events for this purpose and allow for them to be plumbed separately, if that's useful. I just wrote a paper on such a system, coincidentally:

[http://research.microsoft.com/apps/pubs/default.aspx?id=2112...](http://research.microsoft.com/apps/pubs/default.aspx?id=211297)

Entity component systems are not true behavior systems: they do not implement subsumption of behaviors as reflexes. Check out Rodney Brooks' subsumption architectures which is 20+ years old now and used heavily in robotics. The Kodu team used this heavily and I adopted it to one of my own languages once:

[http://research.microsoft.com/apps/pubs/default.aspx?id=1793...](http://research.microsoft.com/apps/pubs/default.aspx?id=179364)

Elephants don't play chess indeed!

<comment><USER9> managed time sounds a lot like how FRP (Functional Reactive Programming) and even things as simple as Rx (Reactive Extensions)

<comment><USER11> Yes, those are both covered in the paper (back in Section 5).</comment></comment></comment></comment></comment></comment>


Shortcat: Spotlight for OS X's UI - <AUTHOR> http://shortcatapp.com/

<comment><USER2> This works surprisingly well! I especially like it in apps like Messages and Finder (try holding shift to see the hierarchy of the UI). It's also a good measure of site accessibility when used in the browser. Cool!

<comment><USER3> The Messages app doesn't work too well at the moment due to a weird way they expose the attributes of the conversation list, but I'll be adding a workaround soon.

I'm hoping this app will cause developers to try to make their apps/sites more accessible now that more people benefit from more accessible UIs.

</comment></comment><comment><USER4> I always thought that one of the main UI advantages of Windows vs. OSX is the keyboard control (at least until Microsoft made it a lot worse with the introduction of the Ribbons). This might be a very cool addition to OSX! Keep at it, this has IMO a potential market similar to better touch tools.

<comment><USER3> Yeah, I never figured out how to navigate around the UI with the keyboard on OSX as well as I did on Windows... I'll be adding faster menu access as well!

<comment><USER4> Well, because you can't. Mac OS in its essence has traditionally been developed for a Mouse/Keyboard combination - Keyboard only is not regarded as the "Mac way". I'd say that this is actually a pretty good match for Laptops, since the touchpad is very close - as long as the touchpad is good you can work pretty efficiently with this combination. However, on Desktops I've always felt limited by OSX compared to Windows and I think this is because your app is missing ;).

Let's just hope Apple will never shut the doors for Apps like yours. Given their current direction it's not unthinkable unfortunately.

<comment><USER3> There are ways to do it, like focusing the menu bar and what not, but I never remember shortcuts for that, which is one of the reasons I wrote Shortcat. Shortcuts themselves are another thing to have to remember, and I have a terrible memory. Until a shortcut becomes muscle memory, I find them annoying.

I don't think Apple will shut the door for Shortcat unless they're willing to remove the Accessibility API completely. That said, the Mac App Store doesn't allow apps that use the Accessibility API which is rather annoying...

</comment></comment></comment></comment><comment><USER5> This is awesome! I use Vimium, an extension for Chrome that does something similar, but have always wanted to be able to use my keyboard for the entire OS. <http://vimium.github.com/>

</comment><comment><USER3> Hey, I'm the developer behind Shortcat. Feel free to ask me about the app!

<comment><USER6> Nice work Jack! Going to see if I can work this into my Alfred flow.

Only a small request from me - a smaller menu bar icon and/or an option to hide it altogether (though I'm using Bartender to hide it for now).

<comment><USER3> Thanks!

Right now, I'm working on making it faster and more stable before I move to cosmetics, but if you request it at <http://shortcat.userecho.com/> and enough people vote it up, I'll make it a priority :)

Also, is Bartender more stable now? I had issues with it not working well when I first heard about it a few months back.

<comment><USER6> It's been pretty stable for me, the latest feature of momentarily unhiding icons if they change is great. Allows me to see when Dropbox is syncing or Time Machine backing up. Only issue I have is with apps that have transparent modals that won't trigger via keyboard shortcuts (Translate Tab). Definitely recommend it though if you like things tidy.

</comment></comment></comment></comment><comment><USER7> "Movement saved: 242,553 pixels".</comment>


In Defense of Latin - <AUTHOR> https://lithub.com/look-latin-is-not-useless-neither-is-it-dead/ <comment><USER3> Latin is the most powerful natural language I know.

The reason is that the grammar is so developed that the word order is essentially arbitrary, and that, together with other grammatical features, gives rise to a method I have not seen so fully realized in any other language:

It allows you to express the _content_ in such a way that the _way you express it_ matches the content.

For example, consider the verses:

        Daedalus interea Creten longumque perosus
        exilium tactusque loci natalis amore

Here, exilium (= "exile") logically belongs to the first verse. The flexible word order has allowed the author to arrange it so that this word appears _in isolation_ (i.e., "in exile") from the verse it belongs to, while still fitting the metre (hexameter), thus matching what is being described with the form that is used to describe it. The suffix "-que" that can be attached to Latin words to mean "and" makes "longumque" also quite long as a word, stressing how long the exile is.

Especially in the Metamorphoses, this strategy is extremely common and applied masterfully: If something is being described that is _hard_ to do, then the sentence is structured in such a way that it is comparatively _hard_ to understand, by using an unusual word order etc. If things are far apart, the words are themselves far apart etc. For quick things, words are omitted that cannot be omitted in other languages etc.

<comment><USER4> _The reason is that the grammar is so developed that the word order is essentially arbitrary_

Lots of languages are like this. Czech, Slovak, Hungarian, Polish, etc. And those are just the ones that I know.

      Janu miluje Petr. -- PETR loves Jana.
      Petr miluje Janu. -- Petr loves JANA.
      Petr Janu miluje. -- Petr LOVES Jana.
      etc etc

The only people who say that Latin is uniquely flexible are those people with no experience in other languages. If expressive inflection and flexible word- order are your thing, you have lots of languages with millions of living speakers that fulfill that requirement.

Latin is not magical. It's just another language. I'm happy that the author enjoys it (language, any language, makes a great hobby!), but I wish we could skip the hyperbole around Latin's alleged virtues just because the Romans happened to use it.

<comment><USER5> You're not quite right. Classical Latin had a lot of things that virtually no modern language has: a fully developed passive conjugation, a fully developed conjunctive, and - the cherry on the cake - a rigorously expressed separation between phases (consecutio temporum). Latin is quite magical, and even if it was actually more crude than some of its contemporaries like Ancient Greek and Sanskrit, it's still sweeter than virtually all modern languages, some of which don't even have a past perfect tense or more than one conjunctive form.

<comment><USER6> I have no idea what "fully developed passive conjugation" is, but my language is very old and I imagine very difficult for English speaker to learn. There is an example how fun it can be: [http://www.lituanus.org/1987/87_1_04.htm](http://www.lituanus.org/1987/87_1_04.htm)

<comment><USER7> It means that every conjugation of an active verb has a corresponding passive form, as in your link: esąs - buvęs - būsįas versus esamas - būtas - būsimas . But that's underselling it a bit, because Latin actually had a full 3-dimensional matrix of conjugations: time-based tense (past, present, future), goal-based tense (completed or ongoing), and action (active or passive), with accompanying participles for each case. To compare with your link, I notice Lithuanian seems to lack passive participles ("while being beaten" is the corresponding example), while keeping some of the circumstantial conjugations (frequency, intent, necessity, conjunct phrases) that older languages did have, but Latin did away with.

In more analytical languages, most of these constructs have been replaced with auxiliary verbs (as in English: I see versus I'm seen, I'm watching versus I'm being watched). With full conjugations, entire sentences can change in tense or action without affecting word order. This may not seem that special if your native language is like that, but as the OP started out saying, it allows for much more expressiveness in (predominantly written) language.

<comment><USER6> If I got it right, Lithuanian does have passive participle (neveikiamasis dalyvis). In the case of "while being eaten" it would be "valgomas". "While being beaten" -> "mušamas". He was silent while being beaten -> Mušamas jis tylėjo.

To quote Wikipedia:

        the Lithuanian language is unique for having fourteen different
        participial forms of the verb, which can be grouped into five
        when accounting for inflection by tense. Some of these are also
        inflected by gender and case. For example, the verb eiti ("to
        go, to walk") has the active participle forms einąs/einantis
        ("going, walking", present tense), ėjęs (past tense), eisiąs
        (future tense), eidavęs (past frequentative tense), the passive
        participle forms einamas ("being walked", present tense), eitas
        ("walked" past tense), eisimas (future tense), the adverbial
        participles einant ("while [he, different subject] is walking"
        present tense), ėjus (past tense), eisiant (future tense),
        eidavus (past frequentative tense), the semi-participle eidamas
        ("while [he, the same subject] is going, walking") and the
        participle of necessity eitinas ("that which needs to be
        walked"). The active, passive, and the semi-participles are
        inflected by gender, and the active, passive, and necessity
        ones are inflected by case.

</comment></comment></comment></comment></comment></comment><comment><USER8> University required one year of Latin, or two years of French, German, or Spanish. I opted to go for the 'easy' route... and took Latin. Fast forward when our company was expanding into EMEA, and had a coding gig in France. I spoke no French, the guy I was working with spoke no English, but both of us could do parsable Latin. The code comments as we worked together were priceless when the next wave of folks came in.

<comment><USER9>
        // quae est infernum

</comment></comment><comment><USER10> Studying Latin and Ancient Greek in high school unlocked so much knowledge and intuition for me:

* Easy to grok how Romance languages work (French, Italian, etc), you can make up a lot of vocabulary on the spot, knowing Latin, and still be right

* Borrowed words from Latin in whatever language (English, German) are intelligible, you don't have to learn their meaning because it's a composite of something Latin

* THis immediately affects your expression in writing as well as speech positively

* Fantastic literature in original script readily accessible

* Many good hours spent with improving the translations of especially tricky passages, analyzing sentences and grammatical structures had great overlap with how I approached thinking deeply about my other passions, Math and Astronomy so I got better at both groking and structuring information as well as patterns of thought when it comes to analyzing interesting problems. Honestly, at the end of high school I hadn't cared had I become a classical philologist if not for the earning prospects of that path.

In contrast, how English was taught as a foreign language never came close. It was a totally uninspiring experience.

</comment><comment><USER11> Latin is "dead" and that's its advantage.

English is well "alive", and living implies mutation. In 500 years, our children would be reading our English as we read Shakespeare (that is, with difficulty); and in 1000 years, our English would become what Beowulf looks like today (that is, you can't recognize a word).

Latin doesn't change. Caesar's Latin is Vulgate's Latin, which is Newton's Latin, which is the Pope's Latin, which is the Latin used in Harrius Potter et Philosophi Lapis and Winnie ille Pu.

What is dead may never die. The "English" as we know it will die. Latin will not.

<comment><USER12> Latin is not dead, it is alive and its modern dialects are called Portuguese, French, Catalan, Spanish, ....

The relationship between Latin and e.g. Spanish is _exactly_ the same as between Beowulf-era English and the English we're speaking now. So I don't understand your argument that Latin is unchanging whereas English isn't.

<comment><USER11> French and Castilian and friends are standardized against some spoken variant. And spoken languages inevitably change over time.

Latin is standardized against the writings of the classical authors, and to a lesser degree, the medieval authors. These authors, being dead, can't change.

</comment></comment></comment><comment><USER13> Hillaire Belloc made the interesting claim that it was thanks to Latin that the various European languages were able to develop so freely: you could always communicate in Latin when you traveled.

He also noted that the various lingua francas since Latin was lost have tended to suffer from becoming the world language. Looking at English today one is hard pressed to disagree.

<comment><USER14> How has English suffered from becoming the world language? I don't see it.

<comment><USER15> I suppose one could argue that the people who come to English as a world language are not that great at the language, and thus they are not capable of helping it improve. (this is however belied by evidence that often those authors who have most helped English develop have been at the periphery of the culture)

I often see something that could inspire this argument when I travel, people have made a native and English version of a sign or some sort of text. The English is riddled with laughable errors - why? Because everyone knows English and why would you ever hire a translator, just get Jules down in accounting to do it, he's great! (only it turns out Jules is not great)

I will now, at the end of my explanation of how I think someone might want to make the argument, explain that I myself am not a supporter of the argument (nor do I know if this is indeed what Belloc supposed) and hope not to get one of those responses telling me how wrong I am in believing what I do not have a particular belief in.

<comment><USER16> I'm inclined to suggest the blame lies the other way around: some of the more stupid, ugly and arbitrary grammatical quirks which ought to be dropped from the English language or made optional and context sensitive persist only because they act as a means to identify the writer is a native speaker and/or sufficiently highly educated.

<comment><USER17> The interesting part of that to me, too, is how many of them roundabout derive from eras where erudite and highly educated English speakers were forced to learn Latin as well, and in so doing apply Latin grammar rules to English that don't apply to natural English. The most obvious example being "never end a sentence with a preposition", which is a very clear grammar violation in Latin, but natural English has ended sentences with prepositions for a very long time.

To a lesser extent I think it is also Latin education's fault why the "objective" case continues to linger in English, despite being so mostly dead, as it acts as an education marker. `Whom` is a zombie only insisted upon by certain educations and should just be buried and put out of its misery. The confusion around `me` versus `I` and which scenarios to use which probably will only get worse.

<comment><USER18> I am unfamiliar with objective. Are you referring collectively to the accusative and dative?

<comment><USER17> English merged accusative and dative centuries ago as it dropped most other cases, and this merged almost-a-case is generally called the "objective case" by English grammarians. Though the more accurate from the point of view of Latin grammarians name for the case is that English has an "oblique case".

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

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> In my 50-year career in IT, I have noticed a positive correlation between success and skill at analysis, and training in Latin.

I was forced to study Latin for six years (plus two years of classical Greek τα ζωα τρεχει). I was not interested at the time, and did not fully benefit from the discipline that was imposed on me. I wish I had paid more attention.

</comment><comment><USER20> Gardini's book sounds like fun, but I want to put in a plug for an older one that might be of more interest to this crowd: _Ad Infinitum: A Biography of Latin and the World It Created_ by Nicholas Ostler.

This is a general-reader history of the Latin language that goes from its origin up until its use in the present day (too bad the book was written before the current obsession with the phrase "quid pro quo" in the US!).

Anyway, it really is a riveting tale, and it makes Gardini's argument for him: Latin really was the "language of the West" for the better part of 1500 years, and its ghost lingers on.

</comment><comment><USER21> I had Latin in high school. While I liked reading the stories and deciphering the verbs and case systems, I didn't see what the point of it was. I was assured I'd understand later, with some spiel about how it's a great literary language, how in medicine everything is (was) in Latin, how it is part of our history etc...

More than a decade later, I'm convinced, without bitterness, that it's a waste of time. Sure, it's not completely useless. The stories and culture were interesting (most of it taught in my native language of course, nobody ever learns to read it fluently, let alone speak it), and I'm sure learning to read Latin developed me in some sense, but not nearly in a way that it was worth that many hours per week, years on end. Time that could have been spent on useful skills or leisure, and almost all of the supposed benefits of Latin could have been gotten from learning a language that is still alive. Here in the north of Belgium most of us get French, German and English anyway. Maybe a non-European language would have been way more enriching.

Developing a passion for linguistics further cemented that view, because it taught me a lot of the mythos around Latin is plain wrong, "bad linguistics". Latin is not special, not better, not more logical or free or sophisticated or expressive or anything else compared to other languages. Of course it's beautiful and special, but every language is beautiful and fascinating and has its own unique interesting features. And of course some of the literature or poetry is unique and hard to express in other languages, but the same can be said for Japanese or Dutch. Nor did Latin lie at the root of other non-Romance European languages, Dutch and Russian and Greek are sisters and any similarities are simply retained from some common ancestor (or from language contact, which went both ways). Truth is, Latin is an unremarkable language from an unremarkable branch of Proto-Indo-European. I'm not saying that as a bad thing, the same holds for most other European languages, it's just that the only thing that made it special was that its speakers took over the world. Had history gone any different, we'd all revere Old Albanian, Common Slavic, Proto-Germanic, Proto-Mongolic etc...

I'm open to having my mind changed on this (as long as it doesn't involve bad linguistics), and of course, if people feel it personally enriches, I believe them and I'm happy for it.

<comment><USER22> > nobody ever learns to read it fluently, let alone speak it

That's probably part of the problem. Learning a language is no fun if you can't actually use it.

</comment></comment><comment><USER23> If I understand the argument advanced by the article correctly (trivial though it may be), it is as follows: things may be worth investing your time into not just because they are useful, but because they are somehow emotionally satisfying.

While I completely agree with this argument (precisely because it is so trivial), I find it essentially pointless. While "usefulness" of an occupation can be somehow quantified and used to convince other people that a particular occupation is worth doing, emotional satisfaction is subjective and not comparable between different individuals. While someone gets a kick out of reading Latin, another may find pleasure in playing sports or gaming. One pastime in no way seems better than the other.

She toys with this question by asking why not study German, Russian, Arabic, or Chinese instead, and I think completely drops the ball with the answer.

The article can convince only those who share the author's aesthetic values.

</comment><comment><USER24> > _I won't enter into a discussion on the meaning of "utility," a concept with > variations and stratifications that are centuries in the making, and which > itself merits an entire book_

late 14c., "fact of being useful," from Old French utilite "usefulness" (13c., Modern French + utilité), earlier utilitet (12c.), from Latin utilitatem (nominative utilitas) "usefulness, serviceableness, profit," from utilis "usable," from uti "make use of, profit by, take advantage of" (see use (v.)).

[https://www.etymonline.com/word/utility](https://www.etymonline.com/word/utility)

</comment><comment><USER25> Latin by it self is utterly useless (I had it for 6 years in secondary school sometimes even 12 hours a week, so I'm a bit biased). However, it's difficult, and needs constant work and attention, and there are not many things in school that are like that, so this has value. You could replace Latin with chess, or violin or whatever other difficult thing that needs constant deliberate effort to get any level and achieve the same pedagogical effect but with more fun.

</comment><comment><USER26> The biggest value of Latin in today's world is the existence of what are called _Latin roots_ in English.

Latin (and Greek also) roots are building blocks which are 'clicked' together to form many, many English words. We don't have to learn the meaning of several hundred separate words, when we can learn a handful or so roots and discern what an unknown word, new to us, means by disassembling it into its component roots.

Examples: (Latin) vid/vis=see, audi=hear, equi=equal, voc=voice

              (Greek)  scope=see, micro=small, tele=far

Using these roots we can make up words like 'microscope', 'equivocal', 'auditorium', etc, etc.

So if we come across some new word like 'television' and break that down to the Greek 'far' and the Latin 'see', we can work out that a television is something that lets you see something that is far away. The word 'telescope' does the same thing using Greek-only roots and also lets you see something far away in a different manner.

In the past, it was considered bad-form to mix both Greek and Latin roots in the one word, but since the arrival of 'television', it seems we aren't as fussed about that any more.

<comment><USER27> Actually, your examples just showed how useless roots are to make up words. I wouldn't be able to guess the meaning of any of the words you mentioned just by knowing their roots. So maybe they're easier to memorize than random syllables, but that's about it.

</comment></comment><comment><USER28> I happen to love this quote:

'If the Romans had been obliged to learn Latin, they would never have found the time to conquer the world.' -Heinrich Heine

</comment><comment><USER29> A totally different comment: any one know if arbitrary word order so important feature of Latin as a language, why no such thing in computer language.

Lisp is Most flexible I suppose but basically it is fixed form (verb x). Whatever verb is it governs how x is interpret. Also you cannot eliminate (). Hence the basic and simple structure is fixed.

Not sure any use of arbitrary word order.

<comment><USER30> Surprisingly nobody has mentioned Perligata yet.

Latin's (or Ancient Greek's, or Hungarian's) ability to reorder words because of inflectional endings is not absolute; you still have things like subordinate clauses and prepositional phrases, even though they're not as ubiquitous as in Romance languages or English. You can reorder things locally, but not over long distances, and some things have to move together.

Interestingly, lots of programming languages have the freedom to reorder big chunks over long distances without altering the meaning, while I've never used a natural language that had that feature. I think the reason for the large- scale freedom is mostly that in programming languages you are usually defining named entities (subroutines, methods, classes, variables, constants, inference rules, predicates, rewrite rules, and whatnot) that the rest of the program interacts with by mentioning their names.

Languages with named arguments allow you to reorder named argument lists freely. My own Bicicleta takes that to somewhat of an extreme and also allows it within "subroutines", depending on dataflow dependencies to drive sequencing.

<comment><USER31> "Interestingly, lots of programming languages have the freedom to reorder big chunks over long distances without altering the meaning, while I've never used a natural language that had that feature"

wouldn't that be a cognitive burden that would hit our brains quicker than a computer, namely short term memory?

Far off re-ordering would be like trying to do mental math in your head that requires memorizing very many results.

<comment><USER30> Maybe, but this applies equally well to programming languages!

</comment></comment></comment></comment><comment><USER32> I'm an Italian Software Engineer raised in Rome and I did studied Latin in High School. This is a topic that I care about deeply. LATIN IS BOTH DEAD AND USELESS. Unfortunately most of italians strongly disagree on these two points like the author of the article and my father. Latin is spoken by very few people and it has very little utility. Latin is much less usefull and much less spoken than all modern Latin derived languages. If you learn Spanish, Portuguese, French, Italian or Romanian you will be much better off. The whole argument of Latin being useful to learn later on another Latin language is pointless. If you learn Spanish you will likely learn any other Latin derived language much faster than if you knew Latin.

Latin is no more. Don't cling to the past. Move on. English, Spanish and Chinese are the new Latin today.

</comment><comment><USER33> This article reads like a fever dream for me

</comment><comment><USER30> > _When we study Latin, we must study it for one fundamental reason: because > it is the language of a civilization; because the Western world was created > on its back._

I think Greek fits this bill much better. Archimedes spoke Greek; Marcellus spoke Latin. Plato and the scholarchs spoke Greek; Sulla, who burned the Academy, spoke Latin. Euclid, Ptolemy, Chyrippus, and Eratosthenes spoke Greek. The intellectual achievements of the Romans were, by contrast, as pitiful as their military conquests were amazing. Even the Roman Empire eventually switched to Greek, which is why the oldest surviving copies of many Christian texts are in Greek, not Latin. (Perhaps the originals were even written in Greek.) When the lost knowledge of the ancient philosophers was translated from Arabic into a Western language, that language was, in large part, Greek; Μανουήλ Βρυέννιος and Θεόδωρος Μετοχίτης, to which we can trace the mathematical genealogy of Gauss and Euler, lived in Constantinople (the capital of the Roman Empire) and spoke Greek.

And of course if we're interested in _fecundity_

> _Dante would never have composed his_ Divine Comedy _without the model of > the_ Aeneid, _nor Milton his_ Paradise Lost

obviously the Greek Homer sang in is considerably more fecund, because the _Aeneid_ is explicitly a fanfic of the _Iliad_ ; and Livy was explicitly imitating Herodotus, and Cicero the Athenian rhetors.

More generally, the Renaissance Gardini wishes to flatter owes at least as much _directly_ to Greek texts, both from ancient Athens and from Byzantium, as it does to Latin texts. Gardini's attribution of the Renaissance to a revival of exclusively _Latin_ culture is simply wrong. His complete omission of the importance of Classical Greek influence in the Renaissance is so glaring as to call his integrity into question.

So why, then, was Latin an important academic language 400 years after Μανουήλ Βρυέννιος? Because of the Roman Catholic Church, which was the only refuge of learning remaining in the violent, brutal, ignorant society of medieval Western Europe until the Reformation; and because, after the fall of the Caliphate, the Islamic world, which had been such a light of knowledge throughout that darkest of ages, also succumbed to persecution of scholars and extinguishment of wisdom. China and India had their own remarkable advancements, but they were too far away to correspond much with European scholars.

So Latin filled the role in Europe that Classical Chinese filled throughout the East, being the language of scholarship and culture, permitting the invisible college to transcend the pathetic national borders of the petty thugs that call themselves princes and nobles. The great universities of Europe mostly arose as seminaries, and for centuries all theses were published in Latin. This continued to some extent up to the 20th century: a couple of months ago, I was reading an anthropology paper published around 1910 about folktales of the Native American Ute tribe, and at the point where Coyote and Lizard start having sex, the paper abruptly switches from English to Latin for a couple of pages, perhaps to evade the Comstock Act prohibition on distributing obscene materials through the mails.

I think studying Latin is worthwhile in order to understand that history, and there's a lot of it. But it's not because Western Civilization was built by Rome; on the contrary, Western Civilization barely survived being conquered by Rome, largely thanks to the Muslims.

<comment><USER34> Well, people like St Augustine, Erasmus, Newton, Leibniz, Descartes, Gauss and so on also kinda matter, and even if there is no disputing that Ancient Greece was intellectually far more important than Ancient Rome, the fact that Ancient Greek has probably less of 100 years worth of really important stuff (ignoring Homer) whilst Latin was used by the world's foremost minds for centuries (as you note) also must count for something.

Also I don't understand your point about Western Civilization barely surviving Roman conquest – surely much worse things could have befallen the Greek heritage?

<comment><USER30> Indeed, we can imagine a past where Greece's learning was as lost as the Maya codices. But we could also imagine a past in which the Academy wasn't chopped down, where the Library at Alexandria wasn't burned but survived until the present day, where Chrysippus's works on logic weren't lost, where Archimedes's invention of the calculus (and whatever else he would have discovered if he hadn't been murdered by Roman soldiers) didn't have to wait until the 18th century, where there was never a Diocletian to condemn the peasantry of half a continent to serfdom for a millennium and a half, where perhaps we could read the literature of Carthage, where Egyptian hieroglyphics were never forgotten, where the Antikythera Mechanism wasn't a dead end but simply an early stage in a long line of calculating mechanisms that continued to develop for centuries.

We could imagine Europe without a Dark Age, and we could imagine a world where the progress of European science did not end even before the Dark Age began. What would that world look like? I don't mean to suggest that it would be a matter of sweetness and light — Athens, too, had its share of slavery, wars of aggression, and political persecution, to say nothing of damned Lacedaemon — but what if intellectual and cultural progress in Europe hadn't halted and even gone backwards for more than a millennium?

Too, Ancient Greek's heyday was not a mere century. Basilios Bessarion, who taught Johannes Argyropoulos in Padova, lived in the 15th century, around the time of the fall of Constantinople. The wrestler Plato was born around 428 BC; his Academy survived until Sulla chopped it down in 84 BCE. Ptolemy didn't live until the second century CE. From Plato's birth to the fall of Constantinople was almost 1900 years. I think that's substantially more than 100 years of really important stuff.

<comment><USER7> Also, Plato also didn't come into existence in a void. The exact creation date of the Iliad isn't known, but it's assumed to be around the 8th or 9th century BC. That means that Greece had a culturally stable society for some 500 years before Plato was born, even though it was mostly composed of interdependent city states rather than central rule. The first time that was achieved was under Alexander the Great, so well after Plato.

</comment></comment></comment></comment><comment><USER29> Obviously as an extract the quote can only single out certain aspects of the thing. Here Latin has arbitrary order, history, beautiful etc. Also should have said it is the common root of or at least strong influence to European language.

But still why today learn it depend upon the key question. If I do not learn it what is the impact. Not sure. That is my answer.

Learning Hebrew for bible reading. If forced German for philosophical work. Latin? Not sure.

<comment><USER12> Latin was the common international language of Western Europe for more than a thousand years _after_ the Roman Empire collapsed. Even until the 19th century there are some (admittedly by then a bit rare) examples of major treatises composed in Latin rather than in a national language.

There is a gigantic body of literature, science, history, philosophy, and so on, all written in Latin.

If civilization survives long enough, people will probably still be studying English thousands of years from now for similar reasons, even if there are no more native speakers.

</comment></comment><comment><USER35> As people put more and more effort into making the past accessible, the value of learning older languages decreases. It used to be that the raw source works were often all people had access to. Now you can find annotated translations of amazing quality.

And for the most part, that's a great outcome. There was a tremendous cost to teaching everyone Greek and Latin.

<comment><USER36> There's a huge value in understanding Latin, or at least some parts of it - <USER2> allows you to derive a vast dictionary of words that have been subsumed into the English language.

Sure there's derivability of terms in English, but the depth to which that is true doesn't really compare.

<comment><USER12> Most of our Latin-based vocabulary came to English not directly, but via French. So wouldn't learning French be more useful as a means to building erudite English vocabulary?

<comment><USER11> Indeed, about 29% of English vocabulary came from French; yet another 29% are directly from Latin[0].

Take your comment as example: excluding the Anglo-Saxon words, 5 are directly from Latin and 2 from French:

Latin words: Latin, Latinus vocabulary, vocabulum directly, directus via, via erudite, eruditus

French words: French useful

[0] [https://en.wikipedia.org/wiki/Foreign_language_influences_in...](https://en.wikipedia.org/wiki/Foreign_language_influences_in_English)

</comment></comment></comment></comment><comment><USER37> An article about language with a confusing title[1]. I found that studying Latin made me pay more attention to English use.

[1] [https://brians.wsu.edu/2016/05/19/bias- biased/](https://brians.wsu.edu/2016/05/19/bias-biased/)

</comment><comment><USER31> Ok, how do I learn Latin?

But what reasources are there to understand and read Latin? It seems every resource wants to teach me I need to inflect, which I already know.

I want audio books, children's games, in short comprehensible input.

</comment><comment><USER31> Clifford Truesdale (1919-2000), arguably the best American Thermodynamicist after Gibbs, insisted on writing his papers in Latin and opened his own journal just for that purpose.

He also wrote his papers with a quilt.</comment>


Google's Opening Statement - Language is free - <AUTHOR> http://www.wired.com/wiredenterprise/2012/04/google-opening-argument/

<comment><USER2> First off, I am clearly in complete agreement with the argument presented.

That said, now that this case is live and in the media, it should be noted that there's a certain deep irony in it. Andy Rubin directed all GPL code (all that was practical, anyway) to be removed from the Android userspace out of fear of IP purity concerns. And in the process of all that forking he did deep harm to the open source community. Not just code was forked, but infrastructure was abandoned: compare the level of robustness and transparency of Fedora/Debian/Ubuntu/OpenSUSE packaging to that of the "I cooked a ROM, download it here!" culture in the android world.

Yet Rubin allowed the use of the developer tools of a clearly proprietary product from another company without batting an eyelash. And no one called him on it. And now they have to have this ridiculous fight. So what was the point of forking Linux again?

<comment><USER3> I fundamentally disagree that Android did deep harm to open source. That's just absurd.

<comment><USER2> I said it hurt the community. Your code is open. And much of it is great. But it's not something that can be meaningfully shared.

Again: compare the community work available at Launchpad or rpmfusion or build.opensuse.org (compatible, signed, versioned packages with automated dependency tracking) to "I cooked a ROM doodz!". The far and away _best_ example of community work in the Android world (Cyanogen) is, what, five _months_ behind the core team at even shipping the software that's already in the field? It's depressing.

And what's absolutely infuriating to me (and the point of this rant) is that you _started_ with all that good stuff and threw it out the window chasing some ridiculous notion of IP purity that -- surprise! -- was basically worthless as you're being sued over IP anyway.

<comment><USER3> Do you really think the legal picture would be any different if Android were under copyleft?

<comment><USER2> Of course not, that wasn't my point at all. I think the _community_ picture would be very different if Android had inherited the infrastructure and community of desktop linux instead of charging ahead with needless and inferior reimplementations of glibc, udev, init/upstart/systemd, rpm/dpkg, etc... in a way that cut them off from the rest of the linux community.

Ubuntu and Fedora users can package stuff for others in a robust way, including modifications to the system libraries. How nice would it be to fix the awful accelerometer polling on the Galaxy Nexus and point users to a RPM repo? Try out some new gesture tuning? See the point? That kind of work exists, sort of, in the Android world, _but it sucks rocks_.

And the reason for all this breakage was, ostensibly, "IP purity" and the desire to avoid law suits and ambiguity about the software licensing. Which, as it happens, was a fools errand anyway as the platform is being sued regardless.

Is it clear now what I'm saying?

</comment></comment></comment></comment></comment><comment><USER4> There was a tribe in Chile that tried to sue Microsoft for supporting their language, not sure what came of it.

[http://en.wikipedia.org/wiki/Mapuche_language#Microsoft_laws...](http://en.wikipedia.org/wiki/Mapuche_language#Microsoft_lawsuit)

</comment><comment><USER5> Are they arguing that _all_ languages are free or that the Java language specifically was free? If it's the former it seems a little strange. If I tomorrow invented some programming language that for instance described some novel way to handle concurrency, why wouldn't that be protectable? I'm not pro-patents but languages being public domain per default doesn't seem right either

<comment><USER6> If you are arguing for monopolies on ideas, that makes you pro-patent.

<comment><USER5> Aren't all patents ideas? Surely the difference between a patent or not can't be whether the ideas is a physical object or not.

If all patents were abolished tomorrow I wouldn't mind, but as so long as they aren't it seems silly that some things that really demand a high degree of creativity and innovation isn't protected. That kinda seems to be the point of patents, not like coming up with the idea of buying something with 1-click

<comment><USER6> Creativity and innovation have been happening for much of human history. Perceived unfairness that the progress of technology doesn't delineate individual's contributions isn't really something that has held back society.

On the other hand, the patent litigation game is negative sum (it destroys wealth) and mostly enriches lawyers: <https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1930272> <http://techcrunch.com/2011/08/19/terrible-cost-patents/>

In addition to the litigation costs, the prohibition to build incrementally or to reuse or rediscover ideas makes R&D more expensive for lesser results.

So making ideas exclusive has not rewarded R&D and has made society poorer overall, despite rhetoric about incentives, propriety, and fairness.

<comment><USER5> I'm not arguing for patents, only that a programming language should probably be patentable if other similar creative efforts are, I don't see why they should be exempt. I agree with you that patents are bad overall (if that's your stance) and should be revamped or abolished.

</comment></comment></comment></comment></comment><comment><USER7> Isn't this about the implementation of the virtual machine rather than the language itself?

Funny enough, thinking about a project over the last few weeks I found myself wondering if there were any legal restrictions to implementing your own JVM with commercial purposes. I couldn't find any guidance on this at the Oracle site. Maybe the answer to this question will be borne out of this trial?

<comment><USER8> I _believe_ all the implementation patents have been dismissed by the USPTO bar 1/2 of one which is still undergoing review. What is left is Oracle's claim of language copyright which will hopefully get the ruling it deserves.

</comment></comment><comment><USER9> If that is true, does that mean anyone will be free to implement any programming language developed by anyone, regardless of the designers' wishes?

Looks like there be will no monetary incentive in inventing a very innovative languages when the big guys can just come in and re-implement it and not pay a cent.

<comment><USER10> Ignoring the first-to-market incentive (which is substantial), is there any monetary incentive now? Has anyone else ever tried to make a business out of somehow "licensing" a general-purpose programming language minus implementation?

The concept doesn't even make sense. Do you pay someone to let you speak English? Why would you pay someone to let you "speak" any other language?

<comment><USER11> What if I ship a language with implementation but would like to prevent others from implementing it?

Sometimes language implementations are the product - things like R, Matlab and Mathematica are close examples. What if I figured out a much better programming language for Finance software and would like to prevent every other company from implementing it?

This debate is far more complex than what people think.

<comment><USER12> The value of Mathematica is not that "Integrate[Sin[x^2], x]" is especially brilliant syntax.

<comment><USER13> Wolfram Research is infamous for claiming copyright to the language of Mathematica threatening to sue the University of California. They have also have a long history of causing automatic translators and shims for converting Mathematica syntax code into other systems to disappear (supposedly based on the language copyright).

<comment><USER10> Do you have any meaningful citation for these events?

The only mention I can find of the incident you seem to be alluding to is a brief, vague, and un-sourced mention in a text file dating to 1991[1]. I'd be entirely unsurprised to learn that there is far more nuance to the story than what you and said file state, or that the incident was largely the result of a game of telephone.

[1] [http://progfree.org/Copyright/against-user-interface- copyrig...](http://progfree.org/Copyright/against-user-interface- copyright.txt)</comment></comment></comment></comment></comment></comment>


SEC Adopts Rules to Permit Crowdfunding - <AUTHOR> http://www.sec.gov/news/pressrelease/2015-249.html <comment><AUTHOR> Looks like Title III of the JOBS Act will take effect in early May</comment>


Ask HN: Benefits of technical books beyond transferring knowledge? - <AUTHOR>

Nonfiction books provide background knowledge. They're also generally well written and thus improve one's language, which could also apply to fiction books.<p>Technical books, however, contain a lot of technical concepts, less background knowledge, and are written more with the aim to convey concepts efficiently rather than for the sake of being well written. With that in mind, could technical books still provide any benefit beyond the technical knowledge they aim to transfer? <comment><USER2> I've used technical books to learn (or rather, improve my grasp of) a different language. Learning from nonfiction books is difficult because the vocabulary and grammar is usually quite advanced. A lot of the concepts found in technical books are already familiar to the reader so that reading them, even in another language, turns out to be much easier.</comment>


Is Linux ruining my chance at a good software engineering career? - <AUTHOR> http://stackoverflow.com/questions/193487/

<comment><USER2> He's totally missing the point of studying computer science. It doesn't matter if you are using Linux or Windows during your studies; a proper education in CS will give you a foundation on which you can easily adapt to any platform, language, or environment. My school was almost entirely Unix-based, and my first job was with Microsoft. They weren't concerned at all about whether I was familiar with the Win32 API, C#, COM or anything similar - and this attitude was consistent across all new hires, not just college hires. Most competent companies (the ones you want to work for) will recognize this as well.

But in any case, there are an enormous number of jobs that do not require knowledge of Microsoft-based technology.

</comment><comment><USER3> The majority of commercial software shops are probably developing on the MS stack. Smaller shops, startups, small online services are more likely to be on the LAMP stack. My shop is on the MS stack, and we will hire people with solid OO design, database design, and n-tier application architecture chops. The toolset isn't important.

Likewise, when looking for a job, look for people making something you wants to make, with similar attitudes and interests to yours, and care less about the tools they're using.

The comments at Stack Overflow are all over the map I notice.

<comment><USER4> Most companies I worked for gave MS Windows to their employees, but the web applications we developed would be hosted on Unix/Linux servers.

</comment></comment><comment><USER5> There are plenty of Google employees building their (arguably ;) good software engineering career using mainly Linux, just an example.

</comment><comment><USER4> Are the majority of jobs really for Microsoft products. I am surprised.

<comment><USER6> The dull ones, mostly.

That said, the company I work for has an IT department that is not happy at all to issue non-windows boxes for employees. You can have one, but then you will have to manage it yourself. We have a couple Windows servers but all our software run on *nix-ish boxes.

At least I could install cygwin and X on top of XP.

<comment><USER7> _"You can have one, but then you will have to manage it yourself."_

You say that like it's a bad thing ...

<comment><USER6> Depending on what you have to do, it's not, but I have to edit documents that live in a sharepoint server a couple times a week and I never quite figured out how to do that without a Windows box. That and exchange managing our e-mail makes moving my corporate-issued computer out of Windows somewhat risky career-wise.

Believe-me, I have meditated on this more than once.

<comment><USER8> You can access basic IMAP from an Exchange server. I was using thunderbird at my last job and it worked fine. Connecting to the LDAP server for the global address book took a bit to figure out. I finally got it all connected and figured out though. If your Exchange usage is more than email and shared addresses I don't know how much further you can get into it without Outlook. Not because it's impossible only because I didn't try to do it.

As far a sharepoint goes I don't have any real experience with it but it looks like you are able to use it on linux but the activex controls will not work(of course):

<http://technet.microsoft.com/en-us/library/cc263526.aspx>

<comment><USER6> Sadly, we use Exchange for corporate calendar and contacts. Evolution sort of works, but I have seen it refusing to connect or update stuff more than once.

Had I sufficient memory (machine has 1 GB of RAM), I would go down the VirtualBox/VMWare route.

</comment></comment></comment></comment></comment></comment><comment><USER9> Knowledge of Linux is what greatly helped my software engineering career: I've been told at interviews how rare it is to find a software engineer who understands the OS as well as operations/systems administration concerns.

If the author is seeing only .NET/Windows jobs, he should either modify his job search query (or look on different sites) -- to look for employers where software development is the core competency (versus "IT" programming jobs), or look elsewhere (either on another job site or in another geographic area). In addition, if he knows Java learning .NET will be trivial.

</comment><comment><USER10> I have the distinct impression that familiarity with the command line and the Linux's commandline tools give me quite an edge over Windows-based developers I work with.

\- Something wrong with the build? Use ant or maven from the command line, so I can be sure it isn't the IDE screwing things up. Should be possible for Windows developers, but I've never seen'em manage it.

\- Need to collect some data from a log file? Grep/sed/awk are often fastest and sufficient.

\- Windows desktop search nowhere nears the power of 'find'.

\- Hmmm, what port is the JVM debugger listening on again? ps auxwwf | grep java. Ah yes, 9001.

I would feel extremely handicapped developing on a Windows system.

<comment><USER11> I contracted at Microsoft a few years ago, and even they didn't use Visual Studio, just vim and a make clone with some extra win32 support (build.exe) and sometimes windbg.

I can actually get by on a Windows box with just Emacs and Perl, though I do miss stuff like lsof.

<comment><USER12> You know about the sysinternals tools, right? There's a gui version of lsof in there.

<http://sysinternals.org/> (redirects to MS technet page)

I think [http://technet.microsoft.com/en- us/sysinternals/bb896655.asp...](http://technet.microsoft.com/en- us/sysinternals/bb896655.aspx) (Handle) is the lsof-equivalent.

</comment></comment></comment><comment><USER13> 1.) Go get a C# or .net book with a shiny cover 2.) Go download Visual Studio 2008 Express 3.) Get to work.</comment>


Silk Road 317.0 Shut Down - <AUTHOR> https://medium.com/@abarisser/silk-road-317-0-shut-down-b12470515b74

<comment><USER2> Funny and makes a point, but it seemed that toward the middle of the piece there was also a (not-too-subtle) mocking of hipsters, which I thought was both (a) pointlessly out of place in this piece and (b) actually counter- productive, because it snapped me right out being immersed in the piece ("what? Hipsterism, a 2010s-cultural fad, in the year 2340?").</comment>


Ask HN: Roadmap returning to college with small network, no job, little income? - <AUTHOR> Hello everyone, thanks for giving this a read.
To make a long story short, I graduated with a Bachelor in Fine Arts degree in 2007. Worked on campus doing tech support, then later turned into web development. I've picked up several contract web development jobs since graduating.
That came to a screeching halt in early 2015.
After being turned down repeatedly for jobs due to a lack of relevant knowledge and my previous experience being snubbed, I'm choosing to go back for an education. My colleagues and Facebook friends haven't given me good job leads. I have been poor for a few years, and I'm not motivated to make new friends anymore.
I'm hoping to be as successful as possible, but having been out of school for so long and in a more difficult position (I need a stable full-time job, I have a weak support network) I have no idea where to begin.
Since I already have programming experience, majoring in CS may be a bit too redundant and on-the-nose, so perhaps a EE major with CS minor is a possibility. I have a related interest in low-level programming and would love to eventually get into a job at a large semiconductor firm, or working on hardware for a company with a vision I really like.
But I need advice on things like managing your time, studying, what jobs to work at, networking, etc. At this point I'll even take inspirational or tales of caution, every bit helps.
My job background is mainly in web dev, doing LAMP stack and JavaScript (Node, React, jQuery) development,  C# .NET, HTML and CSS. <comment><USER2> My first advice would be some self reflection-

"My colleagues and Facebook friends haven't given me good job leads. I have been poor for a few years, and I'm not motivated to make new friends anymore.

"I have a weak support network"

Careers are built on networks- a college degree is a checkbox for some _jobs_ but has little to do with your _career_. The time invested in building up friendships is much more valuable than class time.

The effect of your network dwarfs any career advancement the degree will give you- and your career will undoubtedly continue to suffer even with a degree unless you build that network.

That said- LEARN. Be knowledgeable and capable and your contacts will be confident in utilizing or referring you for work.

<comment><AUTHOR> Admittedly that may be one of my big failings since graduation- I continued to treat subsequent jobs as simply "jobs" and not a career.

When I got out of college I had a very incomplete view of what getting a career afterwards entails. I didn't get an internship, I didn't go talk to my professors after school, I didn't care about clubs (because I didn't participate in clubs in HS). Career center wasn't very helpful for art majors. I did not live near campus, as I took the train to commute daily.

I'd be thinking it's okay if I didn't get an internship because I've already had relevant part-time experience at that point. So I just hopped online to apply to more jobs. And figured, as long as I'm professional and do my job well, everything will be fine.

Also, it was difficult to foresee the appeal and benefits to networking for your career, because I had trouble making friends in college and in jobs, and I fell back on my high school friends for social activities. Whether I was working as a cashier at Sears or building web pages for a local client, my social life and work life were always separate.

I found most of my classmates in art classes difficult to relate to. There are no clubs or social groups for art majors, either. This turned me off from attempting to make friends in college and I stuck with my old high school friends. I think it's harder to appreciate the benefits of networking if you have a hard time finding people with common interests. So I missed the forest for the trees.</comment></comment>