skysight-inc/HackerNews huggingface dataset:
I completely buy the idea "write everything in one language", even if I do it with a different language for completely different reasons.

In general I think "use the best tool/language for the job" and anyway any tool/language will have pros and cons, nothing is perfect.

My context is I was a big ECMAScript fan, then I moved to use something called ActionScript 3.0 and there I just found the "right balance" between verbosity, correctness, speed, etc.

That's the work part, I use AS3 and AIR to build mobile app for iOS/Android.

Then there is the hobby part, in 2006 Adobe open sourced their ActionScript Virtual Machine (AVM2), I started to work on it (OSS project RedTamarin) in 2008 because I had this silly idea "it would be fun to run AS3 on the command line".

So, few months ago, with a not too bad release of this RedTamarin project, in the spirit of "use your own dog food" and trying to push the limit of what can be done with this open source project, I kind of decided to use only AS3 for all development, either work or home.

I don't do that because I think it is better or faster, but mainly to see how much I can reuse in code and logic, and if ultimately it make things easier for me (as any dev I'm lazy).

The result is quite interesting, so far I can run AS3 in shell scripts, as server side CGI, as command line tool, and tons of different use case I would have not necessarily explored if I didn't forced myself to use the same language for everything.

My point here is the same way you can learn a different programming language every few months/years to learn new stuff, there is also a value of forcing yourself to use only one programming language for everything.

In my case it forced me to explore some context deeper instead of taking them for granted, sure some ppl could say you waste your time because you're reinventing the wheel, but I would argue you learn a lot more when you try to know all the little details that make a wheel works :).
"Email is 20 years old and has all of the same restrictions and quirks that it had when it was first used in 1993."

E-mail is much older than that. SMTP, the mail transfer protocol that's standard today, became widely used in the 1980s.[1] E-mail between machines on the ARPANET (the precursor of today's internet) dates back to 1971, and already used the "user@host" form at that time.[2]

[1] https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol

[2] https://en.wikipedia.org/wiki/Email#Rise_of_ARPANET_mail
"Most likely because they prefer the policy to stay at a length that it's feasible to read"

I don't see how telling users how long you retain their data (to take one example) is going to lengthen a privacy policy very much. But even if it does, it's poor practice to omit important privacy information just to keep a privacy policy a certain length. One could argue that the sheer length of a privacy policy is an indication of just how much data a company collects. (The less data they collect, the less they have to say in their privacy policy.)
>I have done so consistently for the past decade.

We need a rule in financial threads that you can't boast about your investment results unless you're willing to prove it.

>Or you can try an ETF linear combination

Oh, brother. The guy back-tested 4 years of data (one of the all-time great bull runs) with a portfolio of 3 ETFs, one of which is a 3X leveraged QQQ fund. Do you not see the problems with that strategy?

This is why amateurs get crushed. Then they blame the financial world.
Uranium Ore for sale on Amazon.com
There was an engineering issue with wind loading on the clad version of the spire so they left it off.
Once you get used to working in Java (and have a relatively stable toolchain you can depend on), it's realistic to develop applications in Java almost as quickly as Clojure, though complex aggregations that Clojure makes one-liners will often be vastly slower to develop.

IntelliJ makes a lot of things easier as well.

When it comes to Java, you just need to really get familiar with your tools before you can be as productive, but once you are you can move quickly. Using Java 8 doesn't hurt either, streams are pretty decent.
Also, even if this sort of neurological deterioration, like the deterioration of the immune system you mentioned, isn't the result of damage, that doesn't mean similar techniques couldn't be used to prevent it.
I'm a bit ashamed to ask, but .. as someone that is using vim quite a bit (but certainly no expert), I didn't recognize any of those.

Can you elaborate and explain what you're missing and what for?
Right there with you. I can't count the number of times he helped me on IRC.
Why would you ever _not_ want typechecking?
I am one of those people who have lived this advice and after 10 years of following some of the recommendations here, I can confirm that it works.

Here are my 5 simple rules that I followed, no lottery/IPO, just a steady single income.
- Max out 401K and get company match
- Max out Roth IRA for me and my wife
- Invest in Vanguard S&P 500 Index Funds, some international funds and some bonds
- Invested in a property in India
- Lived below 35% of the salary
- Always bought a used car and kept the car for as long as it runs

Results
- After 10 years, I am financially independent
- I am working for Google just because I enjoy working and not because I need a paycheck
- My wife works as a teacher and she enjoys her job as well. She is working because she likes to and not because we need a paycheck

What was hard ?
- To see friends buying expensive cars just after getting their first job and not doing the same
- Friends buying > 1M$ houses while I kept renting since I like the flexibility and staying in a community
- Friends going on exotic trips

I think at the end, its worth it.
Does anyone know if there is an implementation of the key-press-light-flash-delay temporal illusion anywhere online? I'd love to try that out and experience the light flash "before" the key press after conditioning my brain to integrate the 200ms delay.

If there isn't one, I may have to write it. It sounds really trippy.
I have known successful people who aren't mean but in corporate America ruthlessness, callousness and near sociopathic behavior is rewarded. There is stupid internet meme that goes as follows:

COO to CEO - what if we invest in our people and they leave?
CEO to COO - what if we don't and they stay?

Of course the real reply is

CEO to COO - shouldn't we have fired them all by now?
I'm starting to put together my own Java web framework to make things easier to get started quickly and borrowing ( heavily) from other language frameworks. https://github.com/bluedevil2k/Jiffy
> [1] http://en.wikipedia.org/wiki/United_States_free_speech_excep....

speech is unprotected if (1) ... and (2) ... and (3) "the work, taken as a whole, lacks serious literary, artistic, political, or scientific value"

Political speech especially is sacrosanct in US jurisprudence. It's widely held as the reason we even need free speech. On the balance of protected speech, having a legitimate political message is not a thumb so much as a foot on the scale.

If you grant that money spent to promote a political message counts as political expression, by limiting it we're talking about censoring a lot of speech, across the entirety of political discourse. You will not find any restriction on any speech anywhere in law that even approaches it in scope. And we'll be censoring exactly the speech we feel is most important not to. This will not fly.

So, you need to either come up with a reason not to consider money spent to promote a message as an expression of that message, or come up with a justification for why, despite this being speech with a valid political message, it is vitally necessary that it be censored.

Either of those could plausibly be argued, but the arguments I've seen are mainly along the lines of "Money obviously isn't speech!" and "Clearly, the rich shouldn't be allowed to speak louder than the poor!" In the eyes of Constitutional law, those things are neither obvious nor clear.
I was a #1-ranked stock analyst (computer software and services industry) in the 1980s. I took a portion of my parents' money and doubled it in 18 months, by splitting it among 5 stocks that went to 4X, 3X, 3X, 0X and 0X. Then I left Wall Street, told them I no longer was in a position to do such stock picking, and they should put their money into Vanguard index funds.

They were not pleased, and felt I let them down by not being more active in investing for them.
please dont put this in django mainline. this kind of thing is a perfect candidate as a 3rd-party project
In the strongly typed language Scala you get the same benefits as in the duck type languages, and even better :-) You can do:

val usersById = HashMap[UserId, User]()

if elsewhere you have defined: `type UserId = String`. This is very readable I think :-) And changing the type of UserId is done in one place only.
> Changing `Foo a = new Foo()` to `Bar a = new Bar()` doesn't seem that bad... except when you have to propagate that change through the code base. Half of Java's tooling is dedicated to solving a problem that doesn't exist in good duck-typed languages or those with type inference.

A sweeping change like that is hard in Java, but it's nearly impossible in Python. That is, unless you're willing throw up your hands and assume your new duck looks enough like the old one, and cross your fingers that you don't find out in production one day. With a modern IDE like Eclipse, it's a fairly trivial matter to find all references to the class, navigate call hierarchies and make the necessary changes to adapt to the change in type. In a sizable Python program, good luck. You're pretty much forced to rely on string searches - hope you picked a distinctive function name - or interactive debugging. Ease of refactoring is a huge win for static types IMHO.
That's why I like Limbo and later Go's implicit typing:

a := Foo():

a now has whatever type Foo() returns. If you change the definition of Foo then you don't have to cascade your type change through all of your source code.
This is so ironic it's laughable. The entire point of Bitcoin is that its inherent decentralization inhibits regulatory activities like determining which businesses are and are not allowed. Yet the VC-funded ecosystem sprouting up around Bitcoin is so antithetical to its thesis of decentralization that the best tooling available is increasingly more centralized. Put another way, the decentralization of Bitcoin is actively against the interest of many of the companies starting to serve its market. BitPay, Coinbase, etc. are all predicated on the assumption that customers will transact almost entirely through their centralized platforms, foregoing the many benefits of decentralization, in exchange for the convenience of a nice GUI around Bitcoin. At the end of the day, what really is the difference between Bitcoin and credit cards, if the merchants enabling websites to seamlessly accept Bitcoin are just as regulatory as the credit card companies they are seeking to displace?

It just seems so backwards to me. I could write a longer post on this but it's way off topic.
Small SRP
There _are_ some new or recent innovative buildings going up in Manhattan, though. Hearst Tower is quite amazing and has a bunch of innovative systems (it's LEED certified and all that but also has meaningful improvements in comfort and efficiency), and the building going up right now at 10 Hudson Yards is a miracle of CAD that probably could not have been built 10 years ago.
How do redundant classes and interfaces improve maintainability over time?
A significant amount of the article is arguing that Java for everything is better because the author and his coworkers already knows it. I can make the same argument for Python _for me_. And for my company too; we have a ton of Python developers already, so it makes sense to write things in Python if possible in case someone needs to change or improve anything.

The author also talks about how Java's verbosity is a trivial issue, and in terms of "stuff you have to type", I agree. The point isn't to save a few characters to type. To me, the problem with Java's verbosity is that it _impedes understanding_. The excessive notation required by type declarations and generics and so on are visual noise that distract from what the code is doing.

There are some valid points raised too, such as concerns about Python's scalability, but that's an argument for _choosing the right tool for the right job_, which, while mocked at the beginning of the post as a way to avoid an interview question, is still good advice. For a lot of projects, Python is fast enough to handle the expected processing, has an ecosystem with libraries that handle all of the things the project might need to do, and is portable enough to run on the platforms necessary. For some projects, it fails one of these, and another language may be a better choice. That's okay!

I think the best takeaway here is that it is sometimes useful to see if you can leverage your existing knowledge in one programming language by applying it to a task you don't normally use it for. By all means, write shell scripts in Java, maybe that's really useful! Or maybe write a GUI in Haskell! Transpile BASIC to frontend code!

(For context, I use Python for web development (both small and large sites), scripting, and a few personal projects like a music player or emulator. I did a bunch of Java in college and some internships.)
I'd say not too good.

Of course there are those two projects everyone mentions, Grails and Gradle, but I would say it's more correct to describe them as the only two niches where Groovy is actually used a bit, it's not like Gradle and Grails are just "flagship products" of a greater ecosystem.

For both, there are already better replacemens available, so I don't think they will grow much in the future.
Nobody expects CDATA sections in XML
Alpha is going to send 500 kg to orbit, while Beta - "which will likely be made up of a number of Alpha bodies in parallel staging" - 1100 kg. Sounds like a less mass-efficient design?
There's the language and there's the ecosystem. A lot of negative feelings that still linger are, IMHO, directed more at some of the painful historical aspects of the ecosystem: J2EE XML configuration hell, EJBs, bloated application servers, XML for everything, JAX-WS, SOAP, ant, classloader problems, maven dependency hell, 10 different logging libraries, etc... A lot of this stuff truly sucked.

But I feel things have improved over time. Dropwizard, gradle, embedded jetty, jersey, guava, Spring boot, etc... The trend is towards minimizing configuration and overall, the ecosystem has become somewhat more manageable. I wouldn't necessarily call it pleasant, but it's better.

An as for the language itself, Java8's lambdas + streams provide significant improvements.

Compare this (Java 7):

public static List<Integer> sortDescending(List<Integer> ints) {

ints.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.equals(o2) ? 0 : o1 < o2 ? 1 : -1;
}
});

return ints;
}

to this (Java 8):

public static List<Integer> sortDescending2(List<Integer> ints) {

ints.sort((o1, o2) -> o1.equals(o2) ? 0 : o1 < o2 ? 1 : -1);

return ints;
}

(Example is contrived, since you could use the built in Collections.reverse() to achieve the same result. My main point is that we have eliminated ~4 lines (counting braces) of ceremony.)

All that said, I'd rather be using Clojure.
Poll: What is your primary editor?
Diakonos
GEdit
jEdit
Mochiattto
SKEdit
Smultron
Ah, sorry. Today, I think ATS2 is better than any Haskell compiler.
It's also not very useful.
For kernel programming. < ATS2 is better
For example an automobile can be thought of as an emitter of pollution, if your problem concerns pollution, or, it can be thought of as a particle, if your problem concerns traffic congestion.

The auto "fits" into each of these different problem domains.
>it among 5 stocks that went to 4X, 3X, 3X, 0X and 0X

What stocks?
Matt Cutts bought federal tax-free and California muni (also tax free for him) bonds. The point of my speaking up was pointing out how odd, narrow, and narrowly-specific his recommendations are. You've now added your voice to the chorus. Your recommendations are also -- narrow and a little odd.

If you're a Googler with a 3% Cali muni, that's equivalent to a taxable 6.07% yield. Beats cash.
I suspect readability isn't a big priority for you.

Here's how I'd write this, lambdas or not:

public static List<Integer> sortDescending(List<Integer> ints) {

ints.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (o1.equals(o2)) {
return 0;
} else if (o1 < o2) {
return 1;
} else {
return -1;
}
}
});

return ints;
}

My personal perspective is that your use is a typical abuse which turns simple code into something unreadable and overly complex. This makes code hard to maintain and buggy. Not to mention, it's nigh impossible to step through in a debugger..
Becoming a millionaire today is easier than ever before.
That's an institutional failure in this case. I certainly wouldn't expect a dev to setup backups for the company database, for instance. A VCS and issue tracker should be a company-wide (or at least department-wide) thing, not something you setup (or not) from project to project.
Totally. https://news.ycombinator.com/item?id=8676444 addresses how it could be approached in a safe[r] way.
If you are prone to having the "if (cmd == 'run') run();" pattern in multiple places, no language is going to fix your copy pasta and the maintenance issues it has. Java absolutely has mechanisms to fix that and factor it out, it just bs to say otherwise.
Sad to see how much IRC has declined recently. I spent much of my youth on DALnet, and that's what forced me to learn about computers. There was lots of hacking, exploits, social engineering, you name it. Combine that with how IRC standardly revealed everyone's IP, and it made for quite the environment. If you were going to run major channels back then, it was either learn to protect yourself, or get pwn3d. I had no choice but to do the former, and I'm still working with computers today.
A lot of companies still use irc for intrabusiness communication, though Slack is becoming increasingly popular. I've worked for several startups that conducted business in an official private irc channel. It's especially useful for communicating with remote workers.

Interestingly, Twitch uses irc in its backend to power all of the realtime chat that accompanies its streams.
In the grand scheme of things, I doubt the education differential between Americans and the Swiss is enough to explain why direct democracy works in one place and not the other.
موعد اختبارات التخصص لمسابقة التربية والتعليم 30 الف معلم
Switzerland Has Military Bunkers Turned Data Centers
I doubt you'll believe me, but there are a lot of 100% independent investors that are on twitter and forums as well as write in-depth blogs who consistently outperform the market and do not resort to any sort of tricks like this.

Of course, you have to find them (and I'm certainly not going to share as I have made a significant investment of time finding these people, and many of the stocks they buy are small caps), and you also have to (or should) do your own due diligence on every purchase.

Seeking Alpha specifically is mostly full of people like you describe, but there is also some honest, legitimate advice there.
Theo Jansen’s Lumbering Life-Forms Arrive in America
>you do know that bond prices and the bank rate are linked bank rate goes up bond prices go down

Yes, that is true. But how is the bond price relevant, from the Fed's perspective, if they aren't selling the bonds?
Thanks for the reply, but I'm still not seeing the connection to algebra?
Think about it, does it really?

To parse Foo x = new Foo();, javac has to perform type inference on the right hand side to figure out its type, and then check whether that type is a subtype of the left hand side. Telling the compiler: "hey, trust me, variable x is of type Foo" doesn't make the compiler's job any easier at all.
> An error ocurred getting user media. Code:undefined

It happens with Firefox, Midori and Chrome.
I'm not mad, but your constant insistence that you're not wrong 'in context' is nonsensical.

I mean that literally, it doesn't make any sense, given the facts you've been told.
Yea, at the end of the day there is just a ton of emotion tied up with this site - so you're right in that the security requirements / monumentality of it probably go beyond what the optimal specifications should be. It's kindof a timeless debate, how to balance the emotional with the rational (going way beyond just architecture). The emotional aspect is definitely supercharged in this case.
The tech sector is the third strongest sector (of 11 sectors) over the past five years: http://news.morningstar.com/stockReturns/CapWtdSectorReturns...

So what he's describing, beating the S&P 500 by a bit over that period, isn't implausible. Comparing his portfolio's performance to the S&P 500 is an obvious mistake and, more importantly, attributing his portfolio's performance to anything other than luck (good or bad) is very silly.

I didn't pull apart his post as much as I might (it's indicative of a whole range of bad ideas people have with regard to investing, like his ideas regarding sector-specific investing) but the notion that really needs to be attacked is that beating the S&P 500 or total market index can be regarded as indicative of some special ability without taking into account the portfolio's risk.
There could be a thousand people on hn who follow the same strategy, it's not that unlikely that it works for one of them and having it work for him makes it more likely that he writes about it.
In Java 8, those one liner aggregations are now possible and part of the standard library.
This is good advice but may also have some element of survivorship bias. If you haven't noticed, not everybody works for Google. In fact, not everybody works for a company that will match their 401(k). If you're lucky enough to be taking home a six figure salary (not to mention one that grows with bonuses as you progress) every year, maybe this advice is good. But you should consider in your advice that not everyone is taking home $xxx,xxx per year, plus bonuses, plus full company 401(k) matching and all benefits. You are very lucky that you were able to live below 35% of salary.

Still, I wonder if advice would be different for people who are making less?
For the love of God, NO!
I was taught OOP using Modula-2 in 1989, by defining structures and functions that took a pointer to the struct as first parameter. No inheritance goodies! I used that style in C until 1996 when I definitely moved to C++. Probably why I am not terribly dismissive of OOP but very much of things like inheritance trees, the Java OOP style, and the overuse of GoF in architecture, literature and especially programming discussions.
They share a currency and have intertwined economies, the currency is managed for all the countries and this is nothing like the Zimbabwe situation.
> You can simulate the behavior of a single bond by rolling your investments into shorter and shorter duration bond funds over time.

As I noted, there are ways to address interest rate risk with bond funds, but you're ignoring the most important question in the context of this discussion: how many retail investors who put money into bond funds actually know about laddering strategies?

> But if a bond's price has declined because of increased interest rates, this means you will be able to re-invest the coupon at a larger yield...

This is true, but you have to wait until maturity unless you're willing to sell your bond at a loss. Despite the low interest rate environment, there are still a good number of retail investors buying exposure to long-dated bonds because they don't take the time to understand their investments. Many of these investors will either have to realize potentially painful losses or wait a long time before they have the opportunity to buy new bonds with higher yields.