skysight-inc/HackerNews huggingface dataset:
These posts come up often on HN and I always comment in agreement. I am the same. I have 7+ years experience and have worked on successful projects. I rarely have bugs in production (I can't remember any actually). I maintain projects that are 5+ years old so I know my code stands the test of time. (5 years might not be a lot to some I guess). I've mentored junior programmers and I spend my time reading about tech/programming stuff. I've probably listened to most of the software engineering daily podcasts.

I would still fail a programming interview.
https://halshs.archives-ouvertes.fr/halshs-01824541/document

suggests all may be true: TRANSPAC was X.25 (presumably terminated similarly at MIT? I know nothing about ITU.), USENET piggybacked on voice networks, and 1988 was presumably when regular IP packets started being routed.
Sweden has a higher unemployment rate than the US.

https://www.bls.gov/news.release/pdf/empsit.pdf

https://www.thelocal.se/20200713/new-stats-reveal-growing-un...
nice, what's the performance penalty of running on docker?
This is a really hard problem. If you use exceptions at any level they have to be generated consistently, or the solution will be what we have now.

Because that's the other thing--you can't guarantee InterruptedException will even be delivered to a thread. An underlying library can just eat it or the thread could be waiting on a socket [1], etc. This kind of behavior the bane of correctness or even getting operations like clean server shutdown to work at all in some cases.

So I think this really needs to be something like CSP that's built into the language in a way that makes the behavior consistent in all cases even if it introduces coding patterns that have other costs. Java _did_ get object locking and data visibility right by building in simple primitives like the synchronized keyword into the language. You can create deadlocks but the behavior is clean enough it's not hard to program around them.

I would also be fine with just dying as long as there is a way to clean up shared data structures. However, that can't be manual because it's just about impossible to ensure that such cleanups are correct. Databases use transactions to get around that problem.

[1] https://stackoverflow.com/questions/1024482/stop-interrupt-t...
Consider “Developer Advocate” or “Developer Evangelist” roles. You need to know how to code and be able to correspond with technical people, but your code won’t typically go into production. You might find helping others use a platform to be more rewarding than doing so yourself.
Given NZ's geography, a niche like providing remote pilot projects power until cable or renewables are constructed would make the tech worth pursuing. You could back out without sunken costs or environment damage if the pilot doesn't go ahead.

NZ is proposing to go fully renewable by 2030 as well as promoting higher EV targets for 2023. We already import many right-hand drive Nissan Leafs reaching their 7-year EOL from Japan, so re-purposed batteries for off-grid storage will become very cost effective in short order.

Our aluminium smelter is also slated to close in a year which frees up about 10% - 15% of national electricity, and we have pumped storage for day/night loads separate from hydro.

Given the political climate here, niche opportunities abound imo.
The US movie industry already censors itself from anything that can remotely offend China.

NBA forbids all its employees from speaking in support of HK.
Csn you provide more details on what you're doing now and how you made that transition?
Million-Dollar, One-Person Businesses
I feel the same way and it causes me to think about suicide all the time.
I suspect that most Java devs have literally never considered anything beyond "Handle it here or rethrow it as-is".
The team at Sun really got this right.

I recall an interesting precursor in Solaris/ System V - the OS package guidelines recommended using your _stock ticker_ as part of the short name.
Sure, my claim is exactly that there are infinitely more propositions that are not about justice. My claim is that justice concerns a finite set of propositions that can be enumerated (as in, murdering someone involves propositions related to justice, making decision about whether to take a deep breath right now does not involve propositions related to justice).
They're promotions if you get paid more. They're demotions if you get paid less.

People refuse promotions all the time because they don't want the role/responsibility and prefer other stuff besides money. Doesn't mean it wouldn't have been a promotion.
Not every company, but some companies, Apple included, like to experiment for the simple reasons that some of the experiments pan out and it pays for ones that don't.

This makes more sense for tech companies. I work mostly for large banks and there definitely is less experimentation but there still is more experimentation than one would think (I have couple large Clojure projects very close in my org).
Before thinking about creating, or participating in an "online" community, think about the same without the online.

A community is first formed by humans. The online piece is just a platform, or a place of logistics.

This may throw you back in time but read Scott Peck's The Different Drum, to get a real feel of what a community is.
> The developers have convinced themselves that they're right on this

This is a complete misrepresentation of the issue. Adding namespaces to crates.io is a social problem, not a technical one, because adding them means you now must do the work of arbitrating disputes over an identity layer, which is a job unfit for part-time volunteers, which is all that crates.io has. The only alternative to arbitrating your own identity layer is to tie yourself to some other preexisting identity layer (e.g. GitHub, DNS), which raises questions about the notion of project ownership, the potential transfer of ownership, the immutability of the package registry, and all the while just pushes the "race to register" to a different sphere.

If crates.io had full-time employees rather than only volunteers, I'd be all for paying someone to handle identity problems in exchange for the existence of namespacing. But who's going to pay for it?
Nit. CS50 is Harvard (EdX). 6.001x is MIT's. But I agree. If someone hasn't studied computer science (but does have some programming knowledge), one of those is a good place to start.
I don't think grocery stores pay capital gains tax on the sundries they sell. If you sold a whole grocery store, then yes. But inventory is not considered a capital asset.

https://en.wikipedia.org/wiki/Capital_asset
> There's something to the idea of rehabilitating "obscurity", or at least recognizing that "cost" is part of threat models, and you can raise costs for particular attack vectors by degrees instead of "to infinity".

Exactly! Especially when you can create a high cost asymmetry, low-cost for you to add, high cost for the attacker to bypass.

Agree that the SSH examples aren't the best. I would have picked DRM.
Because it won't have any power. The person will just run around between meetings preaching about the right way to do things, while everyone else in the room rolls their eyes and ignores it.

The _main_ problem is not that the govt lacks the _knowledge_ about what to do ... it is that they lack the _will_ to do it.
Changing SSH port is far more efficacious at reducing nonsense than the Twitter poll in the article suggests:

> "I ran an experiment with a virtual machine exposed to the internet which had sshd listening on port 22. The server stayed online for one week and then I changed the ssh port to 222. The number of attacks dropped by 98%. Even though this is solely empirical evidence, it’s clear that moving off the standard ssh port reduces your server’s profile."[0]

> "In the time that I gathered 7,025 connection attempts to my SSH daemon on port 22 I received 3 on port 24."[1]

Also, great top comment by 16s[2] in this HN thread, "Why putting SSH on another port than 22 is bad idea".[3]

[0] https://major.io/2013/05/14/changing-your-ssh-servers-port-f...

[1] https://danielmiessler.com/blog/security-and-obscurity-does-...

[2] https://news.ycombinator.com/item?id=6615994

[3] https://news.ycombinator.com/item?id=6615734
I feel we really need to normalize a tech hiatus in our industry. Whenever people see gaps on resumes it usually brings up red flags, but more and more I'm thinking people taking 1-2 year breaks from technology to work in another field will more than likely make them better (or at least more happy) people when they re-enter the tech workforce.
Instead of bells we got FS, GS, RS, and US.

But come to think of it, ASCII was (ca. 1960) firmly based in the cards + operator days.
If you need training data and don't mind it being from grey-area sources, I can help with supplying the audio tracks from some of his narration or acting work. Email's in my profile.
China would rather see TikTok U.S. close than a forced sale
Though it would be a tragicomic shame if you got caught by a nasty 0-day while the clown up at port 34015 narrowly escaped and earned enough time to patch before pre-mapped host scans begun.
Most are not. If you bet on the capability of most people to be able to reach a reasonable goal, you're likely to be pleasantly surprised.
Hmmm. I admit yours is easier to create an icon for.

Not sure about recognition, or the vaguely defined requirement to avoid Poe's Law.
> The way I see it, simple code must be simple. If you want to do complex things, the language should allow you to do it some way.

The simple code must be simple, but not simpler than that. For exploratory code it's fine to ignore the failure paths; for production code, it isn't. Java's checked exceptions force you to operate in the "production code" mode, so the language isn't super-convenient for prototyping. I'd personally like all exceptions to be checked, but with "checked exceptions as warnings" mode by default - with an understanding that production code will be built with "warnings = errors" switch.

> If there isn't a return value, I don't.

What if there isn't a return value in the success case, but there is one in case of failure (i.e. the error)?

> Why do you need checked exceptions, as opposed to regular unchecked, typed exceptions?

You don't need, but you probably want them. Unchecked exceptions are invisible in the method's signature; to get a list of exceptions you need to handle, you'd have to dig through implementations of everything downstream of your method.

There's a trend across different languages to use algebraic data types (Result, Expected, etc.) to allow returning a valid result XOR an error, which by design make you deal with a possible error if you want to get the result. Exceptions are essentially the same thing, except with less boilerplate (in C++/Java-style language), but you need checked ones to actually force the programmer to deal with failure modes.
Yes. Get a stainless steel one and use it forever.
Aaaagh! I forgot about that one. This is like Lucy pulling away the football from Charlie Brown.
I absolutely love Elixir and use it all the time, I really just wish it had a type system (that's not the slow behemoth Dialyzer). I understand the difficulty of typing processes and I don't envy the task, but as a user of the language it would make it that much better to work with! Just imagine working with a language like Elixir that has the type system of F#!
I love this comment because it's a great example of how the exact same data can be used to support opposing narratives. The raw data here is that California sees a certain quantity of bottle recycling and has a certain level of social safety net.

* One narrative is that the high bottle recycling rate shows a problem with the social safety net.

* Another narrative is that recycling rate shows that it is itself functioning as part of the solution to the social safety net.

Sort of like how a high rate of airbag use could make a statement about how safe or unsafe driving is.

I don't know which of these narratives is closer to the truth, but I think it's good example to use to help train ourselves to realize that many narratives are possible and part of critical thinking is not jumping too quickly from raw data to any one particular interpretation.
> Like in the UK, Tesco have just inexplicably switched from using cardboard egg containers to plastic ones. Is that my fault?

If you keep buying them, yes. Tesco's beancounters (who are legion) are certainly going to keep track of the overall cost and revenue structure. Assuming the plastic containers cost less and are sold in equal amounts, they will push forward to roll out plastic over cardboard where they can.

If they want price signals, give them price signals. Vote with your wallet.

We buy our eggs from a nearby farm. Tray of 30 is good for a week, and sometimes two. Better quality than what Tesco or Sainsbury's offers, too.

EDIT: we also return our cardboard trays to the farm shop when we buy a new batch. Reuse >> recycle.
How do you feel that your negative mental state is improving your performance?

I had every problem you describe, and it leads to horrible procrastination. I don't think I would be employable at all without my anti-anxiety medication.
Keep programming. The only permanently bad developers are the ones who like the bad code they write. If you don't like the code you write, and you pay careful attention to code that you do like, you will naturally start to write better code if you let yourself.

> I have basically no CS knowledge

Lots of people have this knowledge, and it comes into play rarely enough that asking for help when you need it won't put a huge burden on your coworkers.

> my solution is more likely to be a complete mess

Think of yourself as a writer. Don't publish first drafts. Don't give people estimates based on when you can finish a first draft. If you can tell it's bad, you can fix it.

> I can recall my last interview tripping up on questions about very basic OOP concepts, which you'd think I'd have internalized now

Don't feel ashamed of that. What people consider "basic OOP concepts" is strongly driven by the language they use as their reference for OOP and even their style in that language. Javascript and Java have very different OO fundamentals. Learn what good code looks like in the language you're using, learn why, and practice.
Since the video's quite long, here are some basics on April.

Repo: https://github.com/phantomics/april

April compiles APL to Common Lisp. It has almost all of the lexical functions and operators featured in Dyalog APL, the leading commercial APL interpreter and the most featureful APL implementation. It has many more features than the FOSS GNU APL, which is based on the old IBM APL2.

Dyalog APL's source code is about 500KLOC according to Dyalog's staff. GNU APL is over 100KLOC per its homepage. April's .lisp files currently stand at 6350LOC.

APL interpreters have traditionally been hard to connect to external data sources. Because APL is typically implemented as an interpreter, any connection to a database or other external system needs to be built into that interpreter as a plugin. April is called from within a Lisp program and you can pass it any array-formatted data. You can use CL libraries to read from any database or other source, format the data as an array and pass it to April for processing.

April takes some features from the k language, including ($[oneorzero;1;0]) if-statements and (g←{[a;b;c]a+b×c} ⋄ g[1;2;3]) n-argument functions.

April is extensible - you can easily create an extension to the language with more functions and operators, and you can also re-implement the utility functions that are used to parse and compile the language. The language is designed from the ground up to support extension. There is also a framework to extend the compiler to optimize common idioms, for instance ⊃⌽,200 200 200⍴⍳9 is optimized to just fetch the last row-major-ordered element of the big array instead of actually taking the time and memory to ravel and reverse it.

The second half of the video features a preview of a hardware startup called Bloxl that's powered by Common Lisp and April. Bloxl is a big transparent block wall with LEDs inside the light up to create pixel graphics. April was used to build the animations that run on Bloxl.
They didn't make the claim that no namespaces had anything to do with this, that's an inference you're making from the specific list, when it could be for any number of reasons. For example, these are some of the largest package management ecosystems in the world, so they're more likely to be attacked than smaller ones. (You can of course come back and say that there are other massive ecosystems too, but that's kind of my point: there's more to a discussion than a random article listing a few ecosystems.)

I stated my reasoning in my comment: you can typo squat a namespace, just as easily you can any identifier. I don't see any inherent difference between the two.
The quote was a guideline, not a requirement. Cognitect (who makes the clojure CLI tool) doesn't even control clojars, the main clojure maven repo, so they wouldn't be able to enforce that even if they wanted to.
Feel free to reach out – happy to see if I can help.
You know what I'm missing from your post? What you like to do.

I mean, why do you want to program? What do you get out of it? Which kinds of problems interest you?
Well, I read the abstract, but I must admit it didn't help me at all :shrug:
App Store Review Guideline updates now available
Most of what you're talking about isn't that important. People don't pay you to be smart, they pay you to build things that will make them money. Interview culture is only tangentially related to this so it can be a bit weird but the #1 thing to be thinking about is "how can I make people money" and if you can talk about that you can usually get work with a smaller or less prestigious company.
Interesting. Yes, I reached those systems through both Telenet / SprintNet and TymNet. Those were fun times!
Want to make social media posts, blogs, and digital ads 10x faster?
I got some great news! Aspire, the AI powered marketing content studio is coming soon, so be sure to sign up for early access! www.aspireto.be

I would love to talk to anyone who is interested in the product (particularly Digital Marketers and Entrepreneurs) to hear thoughts and feedback to ensure that I create a product you’ll love :)
Totally loved it!
I agree with the main thrust of your post, but there is some level of technical problem because the Rust language doesn't support namespaces in crate names themeselves, and so you have to deal with that (or not...) in some capacity too.
Seeing a lot of ‘reminder to take your medication’ pager messages. Was that some sort of pager service you would pay for? Or could you send yourself scheduled pages?
If epic doesn’t need a platform, there are OEM’s who will make them a bare metal smartphone.

Everything on top of that is the platform on top of which they are building their system.

Anyone who thinks the App Store is just stripe plus a file server simply doesn’t understand what is involved.
The Official Go Modules Documentation
Shrink your Conda Docker images with conda-pack
? because it's fun and it's free?
> purely as a hobbyist

This is my first clue that you're not nearly a bad as you think. The biggest obstacle to becoming a good programmer is hating to program. Many people nowadays want to get into software because they can make money. There's nothing wrong with this, but if you really don't enjoy programming it's going to be more painful than it's worth. The fact that you like it is a good sign.

I saw in the comments that you've been doing this for a year or two. Programming takes a long time to get good at.

I recommend reading Peter Norvig's classic essay "Teach yourself programming in 10 years" https://norvig.com/21-days.html

It takes two years of programming to really break out of the beginner stage in my experience. I define this period as the period where you have to think much more about writing code than about the problem. The means that you really can't do much software development in the true sense because just getting programmings to run and run consistently take a lot of mental effort.

Years 3-5 are the intermediate stage where you can solve most common problems without having to think about programming too much, but programming itself is still a source of friction when it comes to completely projects. At this stage you begin to think more about how to structure larger and larger projects, learning some clever techniques, and understanding some of the more specialized techniques in your language of choice.

Expertise happens when you don't have to think about programming any more and are exclusively concerned with larger design problems. This is the point where you can reasonably write a program and, barring a few typos, will run on the first try.

Don't stress too much about being a great developer, just keep coding and you will improve.
Deepfakes, Zero Emissions, Alpaca
New species of “supergiant” isopod uncovered
How to Fill in the Blanks with Language Models
You didn't mention whether you really want to be a developer or not. Alternatively there are lots of ops and sysadmin jobs around, maybe that is an option. Or project management, business analyst even sales.
I have tried (unsuccessfully) to argue this point at a previous employer.

Email server certificate expired and IT sent messages teaching people to ignore cert validation errors.
That's a quarter million USD per year.

You are telling me that senior VPs make 2.5 million USD each year?
Keep reading. Later on:

> Thus, 16 bit audio can go considerably deeper than 96dB. With use of shaped dither, which moves quantization noise energy into frequencies where it's harder to hear, the effective dynamic range of 16 bit audio reaches 120dB in practice [13], more than fifteen times deeper than the 96dB claim.

> 120dB is greater than the difference between a mosquito somewhere in the same room and a jackhammer a foot away.... or the difference between a deserted 'soundproof' room and a sound loud enough to cause hearing damage in seconds.

> 16 bits is enough to store all we can hear, and will be enough forever.
The claim that: "we emit so much garbage into space that it would probably make no difference for sufficiently advanced civilization" is a technologically wrong claim. Under some emitting power to some specific destination, the kind of emissions we commonly make drop to the levels which are below all the noise levels, effectively making them unrecognizable. Under the noise levels, it simply can't be resolved.

The only way for our common emissions to be recognized would be if the "other civilization" already has some receivers in our solar system or very close to it. But if we assume that we have to send something in the direction to some distant star to get their attention, then it can be better not being "too loud."

For the start, even on Earth you have to have a license to use some bandwidth, and some are completely forbidden for mortals. And again, imagine some indifferent Vogon bureaucrats deciding what to do with the annoyance...
It appears the OP of this thread is the author of the paper, for what it's worth, so if anyone could summarize it it would probably be them.