skysight-inc/HackerNews huggingface dataset:
If we redefine the word "OOP:object" to mean process-with-mailbox, and redefine the word "OOP:message" to mean asynchronous message passing, then objects and messages make sense and are useful.

Those are not Smalltalk's definitions -- even though I think you're right on about Alan Kay's original inspiration -- and confusion can arise if we redefine terms.
>Living on only 35% of after tax income requires you either A) live extremely cheaply or B) make tons of cash. Roughly speaking, in California...

How about C) Move to a different state? If the goal is to do this in California, then yes, it's probably not possible.
I like how the author made the point about the commenting. I never realised it until I started my work training at a big company. I'm reading my colleague's C# (ASP.NET MVC) code and find it requires no commenting to understand even though I started learning C# pretty much on the job.

I then had to laugh when I needed to explain some JavaScript (and jQuery) I wrote to him and exclaimed, "What the hell is this doing!". I had to get back to him a few minutes later on.

As for Java and C# on the web. I just wish it was more accessible to smaller companies. 100% of my freelance stuff are using cheap hosting that rarely support anything more than Perl/PHP.
>I invest with them in some of their index funds and pay no more than 0.4% in fees

The fees for VTI, which is Vanguard's Total Stock Market Fund is 0.05%.

On top of that, in Canada, most brokers will allow you to buy ETFs in a RRSP or TFSA account for no fees. Very cost efficient.
Jython 2.7 isn't quite all there yet, and last I used the betas it wasn't that practical.
You're mixing up functional and pure. Plenty of "functional" languages let you do IO everywhere.

> The comparison between Slides 81 and 82 is particularly unfair because the "object soup" actually does deal with the database, SMTP, and so on and the functional version doesn't. If you add those in, you're going to get something complicated: perhaps a bunch of monad transformers or some such?

You clearly need state somewhere (something needs to be able to reach the connection pool), so, yes, the comparison is unfair.
Does anyone know a good starting point for learning not just Java, but how to install everything I need? I consider myself the Neo of OOP and a master devops, but every time I tried to use Java I hit a wall of unreadable manuals/guides , software impossible to install/maintain, and mixed opinions among Java devs. Like it can't be used without a dedicated sysadmin.
There are not many technical reasons for not to do that (like the speed of invokedynamic). It has been a consideration for at least one project I was part in.
I think it also ensure installation on first require so you don't have to pre-install then configure. req-package adds some runtime dependency yeah, I don't use it as for now though.
Mobile phone noise figure
I am using java 1.5 features only :)
Actually i never understood this spike about language features. For me the focus is always on the problem what i am trying to solve (VoIP in this case) and never the language. Actually any language would do for me in which i can apply some encapsulation for better code management (think of java classes). The rest doesn't matter :) I was started with C and then C++, but for me C++ is still C with classes :)
I've mostly embraced the JVM (as opposing to hating it), but I find myself reaching for Clojure a lot more than Java (although I have an Android app that I'm tinkering with). I find that an IDE helps (I use NetBeans for pure Java), but whereas I can hack just about anything in Clojure, Python or Go without much hassle, Java slows me down for some reason - I suspect it's the humungous class hierarchies and the time required to find whatever I need to accomplish simple tasks.
Depends on the channel, the day of week and time of day (and the time zone its main constituency resides in) and how long you waited.

There are a few channels I know that are mostly active over the workweek in US pacific time. Others that wake up with the EU, with some extra activity on weekends.

But yes, some channels really are slow and mostly wake up only on specific actions (eg. joining, asking for a question, people answer, everybody gets back to doing their work) - essentially support channels.
you do know that bond prices and the bank rate are linked bank rate goes up bond prices go down - sucks if you lose 20% of your capital that way and that has happened recently
The most interesting thing to me was the importance of ritual in the trials. Bad experiences might be linked to a defficient or lacking framework-- the power of expectation and psycho social cues perhaps being undervalued in all sorts of treatments.
Yeah you're right. The IRS mileage covers insurance. You can alternately calculate your true expense and deduct that, for example, since he's operating a taxi service, he's probably required to have taxi insurance or risk committing insurance fraud. Since that insurance is much higher than normal car insurance, he probably can deduct more.
That even though Scala is better designed than Java, without Java's cruft earned through evolution, most companies will keep on searching for Java developer skills.
How often are you writing a program that only needs to print "Hello World".
That date picker inherits from something though right?
>hold enron to the bitter end.

Holding Enron in a portfolio consisting of hundreds of securities will have little impact on the overall portfolio returns. That's the whole point of diversification.
It says "during your saving years", which I understand to mean while you are working. This would seem to leave you the flexibility to adjust if your return doesn't meet your expectations (as compared to an assumption of X% return while retired).
F2 on my IDE. One key, no need for Ctrl-Shift-R
The biggest thing for me is that the tooling around Java makes maintaining large projects extremely easy. Being able to refactor hundreds of files in a few keystrokes without worry lets me sleep well at night. It's certainly a lot faster to get up and running with a dynamic language, but the initial build out is a small percentage of the overall time you are going to spend with a codebase.

I've also built just about everything in Java from HFT algos, to an exchange, to a web server, to thick clients so I have an idea in my mind about how to solve any new problem that comes up.
Feynman: Jiggling Atoms [video]
The massive bugginess is #1 what eventually killed my motivation for the game. (Plugin scene drama and Mojang EULA dickery being items 2 and 3).

It's very hard to enjoy the game when making builds over a certain size leads to all manner of graphical glitches and memory leaks and other weirdness that you need to be intimately familiar with the operation of the Java virtual machine in order to fix. A number of these bugs lead to world corruption - I remember back when 1.7 had its initial release, there was a certain configuration of redstone blocks and mine carts that would "corrupt the world state" and leave you with an unplayable world.
Yeah, it's not a very good or well-focused article, but it's hard to write convincingly on why a building looks ugly, right?

Was it strictly necessary to make the new WTC tower so secure against terror attack that it looks like a bunker from street level? The original Twin Towers weren't even destroyed from a street-level attack. They couldn't and didn't make the building airplane-proof, and if you're going to bomb something in NYC from street level the WTC is hardly the only or best target. So I think the security requirement was poorly thought through.

As for historical awareness, I think American culture is in the grip of sentimentality and nostalgia. This is the same country that stubbornly rebuilt a gradually sinking city that lays below sea level when it was inevitably destroyed by a hurricane. What's wrong with putting up a tasteful memorial and redeveloping the site in a way that meets the needs of the community?
In C++ at least there's not much stopping you from putting every single class and method in a single header file like an animal.
No, I'm assuming he should be bringing home about what the after-tax minimum wage earner brings home for 50 hour work weeks at minimum wage.

But you are right, I should deduct expenses before taxes.

I don't think the end-result is terribly different though. Maybe $1-2/hr
It's easy to make python faster, you have PyPy, you can even program everything in python and then make a simple C code for the bottleneck and wrap it with python.

Php it's another example, Facebook uses php and it made changes to its compiler in order to make it way faster.

So bottom line, if people feel better writing in Python let's write Python and improve it to make it faster.
Your symptoms sound like sleep deprivation to me.

To all those programmers out there, do remember to take care of your bodies: eat a balanced diet, get some sunshine, exercise regularly, and please, please get enough sleep.
It's a pain when you are first learning and typing every keystroke, but with a modern IDE (IntelliJ) you don't really need to worry about things like this.
I think that IRC is a great medium. I first came in contact with it in 1993 and I've been using it ever since. These days I use it for two things: keeping contact with friends (I'm an expat) and helping people out in programming channels.

As others have noted, I think IRC is one of those things that will just keep chugging on, unaffected by trends.

It's been great for getting to know people all over the world. Relationships started on IRC have, among other things, given me my wife and my current job.
> Persistence and syncing for non-nerds.

Also, lack of addressability. IRC is primarily targeted towards channels while all the needs of current IM systems are targeted towards one-to-one messaging. Possible with IRC, but you have to jump through hoops.
A few things ...

First, I'm not worried much about the integration of memory and experience of an extra 50-100 years of life into ones day to day life. If you compare the nuance and complexity of daily urban life in 2014 to, say, daily peasant life in the 15th century, it's a much, much more dramatic enlargement of "scope" than simply adding more years of current experience. I think we have every reason to suspect people will handle it just fine.

What we should worry about, or at least own up to, is that an extra 50-100 years of life is about as revolutionary to us as our current health and food security is to those 15th century peasants. Which is to say, a 15th century peasant could have had the same fantastical questions about "what in the world will people do when they have all the food they could ever want and never go hungry?".

And as we know, the answer is that most of them will just slowly eat themselves to death in front of the (tv or tv equivalent).

So perhaps we can extrapolate from there ... some small number will experience a golden age of speaking italian and learning to play harpsichord, but most will be bloated and stationary with a VR headset on.
Because clearly individual small time investors make the majority of all investments... Err, wait no. Sure, there is also a huge market for elemental fluorine that does not mean it's something you want in your house.

Don't get me wrong there generally small risk adjusted net gain in any portfolio if you spend the effort picking the correct set of bonds. The problem is there a far more complex financial instrument than stocks which makes them really easy to mess up. Add to that the current returns and it's just a poor bet for most people.

Also, I note you in no way actually defended them. In there defense a condo association saving up for known long term repairs are basically an ideal bond invester.

PS: A 1/10 th percent gain on 50 billion is worth a lot of effort a 1% percent gain on 50k is not worth much.
80% of the problems with java as it's usually written are bad policy rather than fundamental language problems. But there are real cases where language limitations mean you have to either use an unpleasant framework or write unpleasant code.

Jersey's annotations are pretty nice, but they're still annotations, not really part of your code. You can be bitten by silly errors like an implementation's annotations not quite matching those on its interface, and when (as is often the case) the annotations get repetitive for a group of similar services, there's no way to factor the common part out. In Spray I can write route definitions that are just as neat as the Jersey ones, but it's plain old code which is an enormously powerful concept; a route can be refactored just like any other code.

Guice is similar, e.g. declarative transaction support; better than managing database transactions by hand, but annotation-based proxying is a bit "magic" and confusing to debug. In Scala I can use a monad for transactional operations; the code (using for/yield) is almost as effortless as annotations, but operations which use the database show that in their type and the type system enforces that my transaction boundaries are in the right place. Even more importantly, refactoring in the normal way is safe.

(Also e.g. the lifecycle features in Spring are really valuable (and virtually impossible to do without annotations in Java, at least pre-8). In Scala there's scala-arm, which achieves the same thing in a monadic way, with the same advantages as doing that for database transactions. And since the same abstractions are used in both cases, you can write types and helpers that work with both "database operation" and "requires lifecycle-managed resource")
You're right, it doesn't work at scale. California (four times more populous than Switzerland) is plagued with plebiscites on every imaginable topic. Often they get passed into law while being in direct conflict with other previous or even concurrent referenda.
...For a very personal definition of "Everything".
Yup, you're correct. I should deduct the expenses first.
Catching Up is Irrelevant
It's not xenophobic to want not to have so much difficulty that it interferes with the service. When you have a hard time communicating directions, it's a problem. Which is what this person experienced. Xenophobia is disliking of people, not disliking the inability to share directions.
There isn't "The JVM", there are certified JVMs and quite a few of those allow for AOT compilation to native code.
http://en.wikipedia.org/wiki/X_Athena_Widgets ?
In current version of Groovy you can mix static and dynamic typing in different sections of code by telling the compiler what are your preference.
http://haxe.org/ ?
Haha. You haven't ever been to Alabama, I take it? In 2012 they got 32000 people to sign a petition in favor of secession.
I've always thought it would be nice if the kernel exposed this ability to regular userland applications. On Unix systems, Ctrl+Z of a terminal application will suspend it, but not across reboots. Core files are very close, yet typically they are only produced in response to a crash, and aren't really meant for resuming a process. Obviously there's lots of limitations (eg shared memory could cause issues, hardware states could change), but for a lot of cases it would probably work pretty well.

Not only is it great for triggering crashes, but if you then broke out into a debugger, you could toy with toggling register and memory contents and then single-step through the instructions to see what happens. It's really substantially easier to debug software under emulation because of features like these.
It will give you faster compilation speed, though.
Why is it delusional? The company should be willing to pay an amount based on the benefit they're receiving. Does a feature developed by someone living in NYC or SF make the company more money than the same feature developed by someone living in Ann Arbor or Atlanta? Offering a premium for people to work on-site versus remotely makes sense. Discounting the value based on expected difficulties with linguistic or cultural misunderstandings makes some sense. But I really don't see why you should be adjusting based on the work location in a more general sense.
25k / year living expenses still works out to about 40k per year. And you have a lot of room mates. But now if it's only a quarter of your income, you need...

100k / (1 - (0.28[1] + 0.093[2])) = 159,489.

Plus if you retire, you're going to be managing your own health insurance, so the required living expenses number increases, probably by thousands of dollars a year. And it's not like you can flip from a frugal living style to a more flagrant one afterward, so you're going to have to live with room mates for the rest of your life, and never eat out, still.

[1] http://federal-tax-brackets.net/2014-federal-tax-brackets.ht...

[2] http://www.tax-rates.org/California/income-tax
"You just don't get Rails [Python / ...], ri-ight??"

;)
Yes, compared to what IRC was in the 90'ies - definitely. In the age of DLS the then common ping floods aren't as effective anymore ;-)
While I'm idling about there in several channels like #citadel, it has become quiet there, and non technical channels seem to die out.
I guess IRC has to less XML inside to be hip or commercialy supported nowadays.
we'll see how long irssi keeps working ;-)
I've never been a big fan of Spring so I was pleasantly surprised to discover Dropwizard which includes the tools you've mentioned, a few others, some best practices, and a little glue.
Test your web, mail and network services from multiple locations. Free
The broadcast currently contains 758 articles, of which 676 are Wikipedia pages.

The remainder are:
- 15 gutenberg texts (e.g. Moby Dick, Fairy Tales, by The Brothers Grimm, ...)

- 10 open access Harvard papers

- 54 dw.de news articles

and...

“Making (Up) an Archive: What Could Writing History Look Like in a Digital Age?” - outernet://dash.harvard.edu/handle/1/11297828

There Can Be No Turing-Test--Passing Memorizing Machines - outernet://dash.harvard.edu/handle/1/11684156

Corbett Report Episode 293 - The Ebola Effect - uternet://www.corbettreport.com/episode-293-the-ebola-effect/

The Place of the Gospel of Philip in the Context of Early Christian Claims about Jesus’s Marital Status - outernet://dash.harvard.edu/handle/1/11041837

The Activity of Reason - outernet://dash.harvard.edu/handle/1/3415961

Corbett Report Episode 293 - The Ebola Effect - outernet://www.corbettreport.com/episode-293-the-ebola-effect/

Civilization Starter Kit v0.01 - outernet://opensourceecology.org/outernet://opensourceecology.org/outernet://opensourceecology.org/Civilization_Starter_Kit_v0.01.pdf

Two Randomized Trials Provide No Consistent Evidence for Nonmusical Cognitive Benefits of Brief Preschool Music Enrichment - outernet://dash.harvard.edu/handle/1/11276120

The Collage of Humanity - https://collage.outernet.is/
Civilization Starter Kit v0.01 - outernet://opensourceecology.org/outernet://opensourceecology.org/Civilization_Starter_Kit_v0.01.pdf

Civilization Starter Kit v0.01 - outernet://opensourceecology.org/Civilization_Starter_Kit_v0.01.pdf

The Parable of Google Flu: Traps in Big Data Analysis - outernet://dash.harvard.edu/handle/1/12016836
"Learning from utopia: contemporary architecture and the quest for political and social relevance." - outernet://dash.harvard.edu/handle/1/10579145

Middle-Period Discourse on the Zhong Guo: The Central Country - outernet://dash.harvard.edu/handle/1/3629313

Be Careful What You Ask For: Reconciling a Global Internet and Local Law - outernet://dash.harvard.edu/handle/1/9696322

Thinking about prestige, quality, and open access - outernet://dash.harvard.edu/handle/1/4322577
You will be excited to learn about gcj, then. The Gnu Java compiler compiles to native code, but it's currently not maintained, so newer Java features are out of reach.
Having literally deciding to learn java last week for no particular purpose other than having enough understanding to be able to comprehend our software (which is written primarily in java) and prevent brain deterioration, I'm encouraged by the fact that the comments in this thread (so far) don't appear to be very negative (like when reading about php).

While I did buy a book, I wonder if anyone has any suggestions on a good java beginner's book assuming someone has "prosumer" programming knowledge (shell programming, some perl, some php, sysadmin skills and so on). Suggestions?
Interesting but not always correct.

Eg: slide 64 encourages the reader to "Using sum vs inheritance", and then goes on to show the "good" algebraic datatypes (no behaviour, just data) vs the "bad"... multiple class implementing the same interface (which I wouldn't call inheritance).
One thing in that article stands out:

"OO is the “structured programming” snake oil of the 90' Useful at times, but hardly the “end all” programing paradigm some like to make out of it."

In 2014, I think it's important to remember that "structured programming" was, basically, "hey let's use FOR and WHILE loops, and subroutines, instead of a big pile of GOTOs", and think about what that says about any author who describes it as "useful at times" and "snake oil."
A Rosetta Stone for Physics, Topology, Logic and Computation
Java's start up time makes it pretty crappy for command line utilities.
Did you try going into insert mode in vimium before trying it?
Where? Rules instituted by force of arms (which you refer to as "regulations") and extortion backed by same (which you refer to as "taxes") are global. Short of war, Antarctica or establishing a seastead, you cannot escape them, period. And in the latter two cases, you stand a very high chance of simply inviting war at any rate.
How do you take a kid on a citibike?
That looks like a reiserfs bug. Is there any reason to go with reiserfs these days instead of ext4, xfs, btrfs?
That's not really an issue with scale so much as uneducated Americans being unable to function.
Aren't there also going to be lots of shops in the new Fulton St transit station?
We were discussing quality, not popularity.
Sure, it's my own software. I hook up saving and loading states to key presses, so eg F5 would save, F7 would load. And then F6/F8 would increment or decrement the save slot number.

You basically have to capture everything possible: all memory, the state of all the CPU registers, the state of all hardware registers, etc. Obviously disk would be a real challenge, where you'd have to keep a delta list of disk changes since program start, or simply not serialize that state. If you miss anything, you can have problems loading states correctly. However, there is quite a bit of tolerance between theory and practice, so if there is something that you really can't capture the state of for some reason (like a hardware write-only register when you weren't logging what was previously written to it), a lot of times you can get away with it anyway.

Because the system I am using is so old, snapshots are only 300KB each. Sometimes I dump them to disk, sometimes I just keep them in RAM. I know that a PC would be much more challenging, given how much more hardware is at play, and because VMs aren't quite the same as pure software emulation like qemu (though you could potentially use qemu for this too), but VM software does implement this snapshot system, so clearly it's possible.

You know when the bug is triggered through the visual output. And what's cool is that by saving periodic snapshots automatically to a ring buffer, you can code a special keypress to "rewind" the program. So it crashes, then you go back a bit, and save a disk snapshot there, and wait to see if the bug repeats. If it does, then you turn on trace logging and dump all of the CPU instructions between your save point and the crash. Then you go to the crash point, and slowly work your way back to try and find out where things went wrong.
"protest _against_ it"

Sorry. I'm still fighting a rearguard action against you crazy Americans' perversion of our language a "long time" ago.

(I know. I know. Someone will be along in a minute to tell me that "protest it" was original authentic British English centuries ago.)