skysight-inc/HackerNews huggingface dataset:
I can create a Docker image for just about any app written in any language that runs on Linux with a few lines of Dockerfile, whereas you need fat binary support from each programming language compiler/interpreter/linker/whatever.

Correct?
I didn't mention javascript. Why should I need to enable cookies/localStorage to navigate?
Here's a radical thought: don't use a presentation deck! Hand out a collection of images, printed or via pdf file, give the student a couple of minutes to quickly become familiar with it, then just talk about each of the major figure in the handout. This was my solution to 'powerpoint hell' when sharing results in grad school, I don't know if it really applies to your case (non-expert students), but it may be worth a shot. Hell, its better than reading off slides! Good luck!
I'm also getting up there in years (approaching 30 years of experience since I started programming when I was 12). It hit me the other day that since technology cycles last about 3 years, then I've seen 10 of them. Here, let's list them:

80s:

* Programming for small business with HyperCard

* Programming flowcharts in Visual Interactive Programming

90s:

* Programming in C/C++

* Programming in assembly language

* Programming in Scheme (Lisp)

2000s:

* Programming in the shell

* Programming in PHP/MySQL

* Programming in Javascript

* Programming in Swift/Objective-C/Java

* Programming in MATLAB/Octave

Bonus:

* Wanting to program in Elixer/Clojure/F# etc

I could probably write a book on most of these. The last one is nebulous because functional programming languages tend to drop all the contextual familiarity of mainstream languages on the ground and force us to start over. I think that's why they haven't caught on yet.

So I'm in mourning about that, but also that cargo culting has gotten so big. I spend the majority of my time now working around the inherent flaws of whichever paradigm I'm using. So that might be reconstructing the call stack knee-deep in callback hell or learning the entirety of a framework in order to extend the one piece of functionality that it should have had to begin with. It wears on you.

If it takes 10 years to master something, then what's one to do after 20? 30? History begins to repeat itself and it's not fun the second time around. For example the rush to static types is sounding alarm bells but people don't know how bad it can get because they haven't been 10 levels down in template hell.

You sound depressed, but that's ok because depression is inevitable if we apply our problem solving skills to daily life. The real world is not a computer, it doesn't require that level of prognostication. Trying to create a life free of mistakes causes us to relive them over and over again, until all we remember is how we've failed.

Most of the anxiety felt by older programmers comes from the market takeover of computer science. Reading survivor bias articles all day gets more taxing the longer your ship hasn't come in yet. There should be a viable alternative like the undying lands of academia where older programmers can congregate and make the world a better place. But that's been under attack too and we would likely find the same sweatshops there. We're long overdue for a programmer's guild that funds open source projects whose unicorns make more than enough money to go around for everyone. An alternative to capital as a buy-in. I imagine a future where we earn a stipend to write languages and frameworks that don't suck, rather than toiling all the days of our lives away chasing money that never makes up for the lost time. That's what I would work towards, ideally.

I shouldn't have written all this but it's Sunday so what the heck. I definitely hear you. Email sent!
These slides are from the talk given at the Open Source Summit (formerly known as LinuxCon) last week in Prague. The abstract given at the talk page https://osseu17.sched.com/event/ByYt/replace-your-exploit-ri... is

With the WikiLeaks release of the vault7 material, the security of the UEFI (Unified Extensible Firmware Interface) firmware used in most PCs and laptops is once again a concern. UEFI is a proprietary and closed-source operating system, with a codebase almost as large as the Linux kernel, that runs when the system is powered on and continues to run after it boots the OS (hence its designation as a “Ring -2 hypervisor"). It is a great place to hide exploits since it never stops running, and these exploits are undetectable by kernels and programs.

Our answer to this is NERF (Non-Extensible Reduced Firmware), an open source software system developed at Google to replace almost all of UEFI firmware with a tiny Linux kernel and initramfs. The initramfs file system contains an init and command line utilities from the u-root project (http://u-root.tk/), which are written in the Go language.
I agree that the most powerful opioids should be used very sparingly. But that's quite different from restricting the use of addictive opioids -- which is to say, all of them.
I get your point an all, but he's 74 and charged with RICO conspiracy, as well as other felonies, including conspiracy to commit mail and wire fraud and conspiracy to violate the Anti-Kickback Law

That's a life sentence there so in theory he could try to make a run near the end of his trial...a year or two in hiding. What does he have to lose, his good name? But then he has so much money that even if he was left with $10mil he could in theory start Spanish lessons. The judges should make the super rich to pay for Marshals /FBI to watch them while in bail.

I doubt any judge will show mercy to him and common sense (not always right but..) says there's a LOT of paper trail incriminating him. It's a huge company and lots of salespeople, lots of payoffs. Not done with a wink and a nod.
Mods, please change title to replace Coreboot with "Linux kernel". This is not Coreboot and doesn't involve Coreboot at all :)
Fatima Florez Leaked
So, I had read through the wikipedia references listed in the footnotes (prior to your comment), and came across the Vice article, which if you read (not you, specifically), says it is a minority of diesel vehicle owners (all over the US).

Reviewing the other linked articles from Wikipedia (the majority of which were from 2007), I could not find one referencing WV, but multiple other states.

Not to get into a Virginia versus West Virginia debate (Virginia != West Virginia), are the "rolling coal" experiences of yours because you are driving a Prius or bicycle?

I agree about the "redneck" term, but that is associated with any area, and often embraced, "hillbilly" is considered derogatory to many folks I know.
Scientific Computing doesn't really happen in low level language spaces today. FORTRAN, C and C++ are what powers the Higher Level languages.

Most is done in R, Matlab, Python, and Julia and for good reason. Most people doing scientific computing are not coders that can do the work at a higher level at a productive level.
Manger vs. fan (football fight)
The integrated graphics unit of those is apparently 2-3x as good as the Intel equivalent in some benchmarks[0]. Sounds very promising overall.

[0]: https://heise.cloudimg.io/bound/2300x1400/tjpeg.q90.webp-los...
I use Google Keep.
Not to mention that at a large company, they often same-size (fake rounds of downsizing) and use it as an excuse to fire employees for various reasons. They might off-shore to reduce labor costs like IBM, or be doing it for union reasons like Tesla. That happens far more often than the actual downsizing of a large company.
I suspect Rust also fails hard at interactive code (UIs).

Why? Because Rust's memory management doesn't work well with cyclic structures, and closures are such structures. Closures have shown to be very useful for interactive code (see Javascript).

Someone please prove me wrong. (I'm wondering how Firefox deals with this).
To state the obvious, because it's a billion dollars and the defendant isn't from south of the border.

Not condoning it, just suggesting that's the real reason why.
3) very much exists in julia
If you have to grok the language to write concise code, you kind of prove the parent’s point isn’t it? That is, it’s easy for newcomers to write code that seems to be unreadable.
And vinyl records have been around since the 19050s. Both are associated with hipsters. Doesn't need to be new to be associated with hipsters.
I'll come at this from a different angle. In my 20s up until my mid 30s, I was a part time fitness instructor and surrounded by other fitness enthusiasts. We, both male and female loved the attention we got. We would run races with our shirts off (guys) and the women would run with clothes showing off their midriffs and post the pictures to Facebook. We would all go out in a group wearing things that we knew showed off our bodies.

We thought we worked hard for it, why not show it off?

When I went to interview for classes, I made it my mission to wear something that would show off all the time I spent in the gym and I know I got classes based on the fact that I didn't "look and act like a typical fitness instructor" - I was muscular, young, and came across more like a drill seargent than Richard Simmons.

I've met plenty of women and quite a few men who like the attention.

Even though I'm nowhere near in shape I was back then, when wearing regular professional clothes, I still have people asking me about my workout regimen. I never once hated the attention.
While its subjective, I really think ruby get this part right. When I look at ruby code I don't feel like my eyes hurt, I feel like the code is easy to skim, easy to find what I'm looking for, and there's the right balance between harsh symbols and softer alphanumerics. White space and indenting is also typically good on (good) ruby code. That's part of what I'm trying to keep alive in crystal.
> Endless arguments between these groups resulted in nothing being done in Go

Do you have some links to these discussions?
In practice, there are libraries and also dev-libraries which actually add headers and link-objects to use these same libraries.

IMO you use submodules only for libraries not already included in your package manager.
But this is the point.

My Clojure program is valuable/effective/per-spec without the type burden. So the type burden has slowed my delivery.

And that "one single place" is for this trivial toy program. Now imagine the impedance across the delivery of a real business app.
Say, could you say more about the exact pattern of how you do this?

I've noticed that I have a few "distraction" sites that I'll visit. And then when I hit the end, I'll loop back in hopes of another hit of novelty. What strikes me is how ingrained it is; if I'm not careful I'll find myself on, e.g., Facebook, with no conscious intent. I've even caught myself having a feeling of boredom with what I'm looking at and typing "facebook.com" in the address bar while I'm on Facebook. Is this familiar?

I ask because I'm thinking of building a WebExtension to notice and interrupt this cycle, so that I have to consciously want to use a distraction site. But I'm not sure how big the audience is.
A "dependency mess" exists both with and without package management. A package management system gives you a playbook to follow with tool support, and "winging it" lets you suffer and clean up the mess in your own clever way. The advantage of course is that that clever way CAN work better for your team (for now)
Ever since I read that Intels UEFI reference implementation has a comparable complexity to the Linux kernel[1] I thought it's absolut nuts to have something with such a complexity just to set up the hardware for another operation system. And that's just UEFI and not even touching ME and other stuff.

[1]: https://mjg59.dreamwidth.org/10014.html
My initial remark was premised on charitable interpretation and encouragement toward making the site accessible. That seems a dead end.
More generally, we can show that the attitude that regards any unproven statement as having a 50% probability of being true is trivially self-contradictory. Suppose X is an unknown number, and all we know is that it's between 0 and 100. We can make the following statements about X, none of which is provable with the information we currently have:

1. X < 1

2. 49 < X < 51

3. X > 99

If we assume that each of these statements has a 50% probability of being true, then we trivially get a contradiction, because the probability of the union of these 3 options becomes 150%, because mutually exclusive probabilities are additive.

So the idea that a 50% chance of truth represents a state of no knowledge about the truth of a statement is just wrong. If we actually knew that any one of the above statements had a 50% probability of being true, we would clearly have more information about X than we would otherwise. There is no sense in which a 50% probability of truth is a useful default.
At some point though, what more can you do with characters? After a while the viewer knows everything about them and the setting they exist in. There's nothing more to flesh out.

I grew up watching the Simpsons every day. I stopped watching because I didn't like the new episodes, but also because there was nothing any of the characters could credibly do that would surprise me, or that I hadn't already seen them do.
I watched the talk video and I don't remember it was stated anywhere that Google will replace UEFI/Intel ME. The correct title is "Replace your exploit-ridden
firmware with a Linux kernel".
Learn new things, sure. If you're a company willing to hire someone with aptitude to learn, might as well hire younger only because they're generally much cheaper. To you, and any experienced person I know, I say, jobs and opportunities come from your network - the who you know, not necessarily what you know. People who've worked with you in the past (assuming they liked what you did), are the best source of opportunities. Yes, it may entail doing things you may not like, like networking, coffee, etc, but the ROI is pretty decent compared to talking to recruiters who have no idea what Java8 is and how fast you could pick it up.
They are 200% faster. Says so in the article.

Think when Apple finally moved to Intel and th speed increase. EVEN though Apple claimed they were the as fast if no faster before the switch.

AMD had horrible performance on laptops and they are finally able to say they doubled the speed AKA they had a horrible product before.

"For its own part, AMD claims that the new Ryzen chips will offer dramatically improved performance over its own last generation of laptop chips, with up to 200 percent more CPU performance (for multicore use) and up to 128 percent better GPU performance, although AMD’s last generation of chips weren’t exactly computational powerhouses to start." https://www.theverge.com/circuitbreaker/2017/10/26/16552208/...
I was going to say, iPhone SE or a refurb 6s/7

The upgrade requirement won’t happen with Android if you want official updates
"Virtual machines have significantly more attack surface than either Jails or Zones, think of all the emulated devices."

Nothing prevents you from using jails or zones in your VM.
> 1/ COBOL run in closed environments. This allows these to be rock solid. (no such thing as a dependency nightmare). You don’t have such a thing as different version of Java on your testing and production environment.

Both Go and Java can do that (yes, without having to install a JVM on the target machine).
I like Microsoft's new login system.

I enter my account email then it gives me a unique number related to that login attempt. On my phone it gives me a prompt (via their Authenticator app) to select the correct number out of three choices.

It isn't perfect but it is better than some generic "do you approve this login? yes/no" prompt.

Of course if my phone isn't available I can still login with a password.
I expect the more "ordinary" jobs are with companies that don't hire tech recruiters either?

If so, the recruiters are giving you a biased idea of the market.
Once you take kickbacks, your "professional judgment" is clouded. Are you giving that because it's better for me or because you'll get a bonus for prescribing that?
I dunno. I am self teaching and I am finding things like compilers, os stuff, grammars, fsm, automata stuff, etc quite helpful. Like trying to write a parser helps understand the code I am writing a bit better, as well as understanding how abstractions like futures and promises could be working below the hood. While I understand that I may not be always right in the way I am understanding these stuff, I won't say they are completely useless.
I don't know much about linq expressions, but I can offer you some properties of transducers and you can decide for yourself.

When you initialize any transducer it works on all transducer accepting data types.
Making a new data type accept transducers is trivially easy and once you do it once, your data type has access to all transducers.
Transducers are orthogonally composable to all other transducers so stringing several up and taking them apart is also trivially easy.
Transducers do not create intermediate collections during the process.

I believe none of these are particularly anything new. Possibly the orthogonality is something new as you don't find composability quite like Clojure in many other languages as it's at the heart of the language design philosophy.
Google keep, simple and effective.
> The problem
> ● Linux no longer controls the x86 platform
> ● Between Linux and the hardware are at least 2 ½ kernel

Please release it for general public, so that everyone has the choice (for Intel+AMD CPUs).

> code you don't know about: Kernel -3, Minix 3

Wtf "Minix 3" running invisible behind the scene
So basically you would applaud weaker ethical rules in China?
Rust uses closures quite heavily.

The biggest problem with UIs is that they tend to be based on inheritance, which Rust doesn't have. It's not insurmountable; there are people who have written macros to make this kind of code more concise, or alternative UI libraries that don't rely on inheritance.
Doesn't Coreboot implement UEFI? I suppose a more accurate title is "replace proprietary UEFI implementation"... nonetheless, the idea of putting a full Linux kernel in the firmware (if I'm reading the article correctly), presumably just to boot another one in the actual OS, despite the openness, sounds like it would increase complexity even more.

I think Linus' opinion remains relevant over a decade later:

http://yarchive.net/comp/linux/efi.html

https://plus.google.com/+LinusTorvalds/posts/QLe3tSmtSM4

I'd actually love to see a "replace UEFI with regular BIOS" project ;-)
Where does he say you should run fat binaries in a VM?
“Hey Siri, remind me to check if anyone relied to my pull request tomorrow at 9:30am”

Then I rely on he fact that pending iOS reminders sit on my phone lock screen until I mark them as completed. I also use the “remind me again in an hour / tomorrow” options a lot.
Parts of Intel ME are probably derived from Minix 3.

http://blog.ptsecurity.com/2017/04/intel-me-way-of-static-an...
Justice dept probably froze that already pending trial
Yes, you can check out the Vim editor: https://standardnotes.org/extensions/vim-editor
Does Nim have first class distributed computing primitives? For embarrassingly parallel operations, I can deploy on a slurm provisioned cluster on a supercomputer in about 5 lines of native Julia.

There's a lot of really nice "magic" in Julia. I implemented an experimental numerical system (a binary representation of real numbers) and after generating the +-x/ operations, I had complex numbers, Fourier transforms, and lu decomposition for free.

With the macro system I then wrote a library that let's me generate verilog code and built a hardware implementation of the number system and deployed comprehensive tests cross correlating the results of all operations across native Julia, hardware simulation in Julia,and verilog version transpiled through verilator.

I wanted to play around with Mary Wootters' discoveries about Reed Solomon encoding, so getting working Reed Solomon code over arbitrary galois fields was as simple as building the type rules and basic +-x/ and then again using matrix solving to solve erasures (in this case you can tell the type system there is no order to the type so it doesn't do partial pivoting). Then I needed to do some brute force searching of a large parameter space. The core program for this search is about 25 lines of code in the main loop, which reads like simple math statements out of a well written text, and the backing galois field and Reed Solomon libraries are about 100 and 50 lines, respectively.
let my_str = Rc::new(RefCell::new(Box::new(MyStruct1)));

Yep, even Rust has better syntax ;). The call is a little more gnarly. Keeping in mind that I don't really know rust, my understanding is that this is roughly the equivalent of trying to cast, in C++, shared_ptr<scoped_ptr<MyStruct1>> to shared_ptr<scoped_ptr<MyTrait>>. It's doable, but why the heck would you do it? The C++ equivalent might be:

auto my_str = shared_ptr<unique_ptr<MyStruct1>>(new unique_ptr<MyStruct1>(new MyStruct1));
my_trait_fn(shared_ptr<unique_ptr<MyTrait>>(new unique_ptr<MyTrait>(new MyStruct1(**my_str))));

Which isn't much prettier. Why not instead:

fn my_trait_fn_2(t: Rc<RefCell<MyTrait>>) {
t.borrow_mut().trait_func();
}
fn main() {
let my_str2 = Rc::new(RefCell::new(MyStruct1));
my_trait_fn_2(my_str2.clone());
my_str2.borrow().my_fn();
}

EDIT: Added a C++ example which actually compiles. EDIT x2: Fixed a double free.
So far AMD has ignored fixing this pretty much because "only privacy nerds" care about it. Well, some of those privacy and security nerds happen to work for companies like Google and even have influence over those companies' hardware purchases.

So now AMD has just lost a big chuck of potential Google business, and who knows what kind of other potential contracts, because it continues to ignore this issue instead of actually showing some leadership on it.

Maybe it's time for AMD to actually differentiate from Intel on this issue?
Much Python, especially written by newcomers, has very poor readability. I can't read most C++ at all, personally. It's easy to write unreadable code in most languages - especially when you're unfamiliar with the concepts and abstractions that language utilises.
> I think ageism (in software) is largely a problem in startup culture.

Yes and no. Larger companies don't like hiring older employees because they can get more bang for their buck by hiring young(er) people who are willing to stick with the company for life. Being an older programmer who has been at the same company for 30+ years isn't proof that the company doesn't engage in ageism. It also means they're unaware of the current state of the hiring market and how brutal it's become over the past 10 years.
“It is so badly written.” The author tries Doubleday instead and his little book makes an impression. The Da Vinci Code sells 80 million.

Absolutely true. It is awfully written. And indeed, is just awful in so many ways. Not just the writing. But it sells, like cheap chocolate and Avengers movies.
The 7±2 was thoroughly proven for sequences of numbers, letters, words, etc. by George Miller and followers. Much has been done since, and this shows that for many things we can handle fewer chunks. That "7±2" is still used for the larger idea of "cognitive load" makes it a cliche and a metaphor.

So it is just as true as I intended. We live in a world of unsupported opinion. I'm 77 and from a world in which one was supposed to have considerable support for an opinion before voicing it. I realize that this is out of step these days, and especially with web fora.
> Rust uses closures quite heavily.

I suppose they only support read-only free variables then?