skysight-inc/HackerNews huggingface dataset:
I have been using UBports on my primary phone (Nexus 5) for the past year. It has been mostly great. All the expected things such as phone calls, text and web browsing work just fine. They have an app store with a fair number of apps, although obviously nowhere near to what is available for Android. Updates for the OS have been quite regular every few months. I have previously been using LineageOS on Nexus 5x, but personally I find UBports better. It is much closer to a real Linux distribution than Android, while still being a pretty usable mobile OS.
I guess the sentiment is more like "Don't make students start programming in IDEs first"

I get it. It shields them from understanding what's happening underneath. But not everybody is interested or needs to know all the things happening underneath, and its okay. If they're going to learn the whole stack, they will.
Show HN: Intuitive Guide to Light, and Life
> and general concepts of writing software.

Especially if it is their first experience writing code. Until a student learns to tolerate the discomfort of "the machine isn't doing what I want for some inscrutable reason", it makes no sense to throw them into package-management errors.
CS50 looks quite like what you're describing. One learns:

- C

- Python (+ Flask)

- JavaScript

- SQL

I think this was the order. They learn C the most.
Intuitive and Visual Guide to Linear Algebra
Because GPIO for communication protocols is what is termed "bit banging", normally for high speed communication stuff you have a dedicated ASIC that handles all the low level signaling itself and presents a high level (possibly DMA) interface to the CPU.

With bit banging/gpio you are using the CPU itself to write/read the raw binary signal of the GPIO, usually with no buffering. This involves tight loops and polling and is slow because the CPU must marshal and construct all signaling (including timing!) in a synchronous way, bit by bit, rather than just dumping a block of data into memory somewhere and having a high level ASIC deal with it (or reading said block).

A good analogy might be writing your friend a long note and then having him read (The high level interface) it vs phoning your friend and sharing the note, one letter at a time.(the low level bit banging interface), which do you suppose would be faster, and less demanding of your attention?
I don’t understand your comment about SQLite. Doesn’t the driver manage creating a standard SQLite file? This shouldn’t really be Scala related.

Example connecting: https://github.com/tkawachi/sqlite-scalikejdbc-test/blob/mas...
Even for someone who is interested in knowing what happens underneath. To succeed at actions, it important not to expand the scope of what you're trying to do too broadly.
I’ve heard rumours of a course of five or six lectures Conway did many years ago (before he went to Princeton). The goal is to prove Gödel’s incompleteness theorem but somehow using geometry in some way. I think you need to allow comparing two lines and knowing which is longer (and this foundational thing is hard or maybe impossible) in some sense. I don’t know what is left of eg Gödel numbering or the formal languages stuff because I’ve only heard vague descriptions of this.

I believe the contents of this course were lost to time but I’d like to be surprised.
Not to mention that they spawn and kill off features and products with equal ease and frequency.
This is what I try to point out every time someone tries to say that ad-based revenue models should be made illegal because of various reasons. It is ignoring how useful and accessible ad-supported web products are to pretty much anyone that isn't living in a first world country having easy access to credit cards.

As someone that has grown up in a second world country, barely having any money to pay for food in college, nobody I knew had even a debit card not to mention a credit card, I was very much grateful to have access to Google Search for "free" and the quality of the results it returned and I continued to be grateful and enjoy the products later developed (Mail, Maps, etc).
That seems more a symptom of an organizational dysfunction than an indictment of the language.

To wit, 15 years ago I was on a team where it was “How J2EE can you get?” Ughh. Along the way they(we) basically forgot to solve the business problems.

And that sion was the end of that.
The music analogy here would be: We'd like you to learn the C major scale, but first, please become familiar with Pro Tools.
Keeping years and years of old emails on the server is a bad idea whilst subjected to the third party doctrine, which holds that the government snoops can access your emails without a warrant due to the fact that you do not have a reasonable expectation of privacy if you are storing your emails on a hosted server.

https://en.wikipedia.org/wiki/Stored_Communications_Act

How often do you need the mails from years ago? Archive them to a local mailbox and include it in your normal backups.
I know mindfulness is the latest trendy thing, but it's worth simply observing your habits and trying to recognize when you do something that could cause added stress.

If you're like me, you pick up your phone 1000x per day, so it's a constant interruption. I have lots of notifications on, so as soon as I get a new email, I see the notification and then read it. All of these little things seem insignificant on their own, but they add up.

If you're interested in doing some observation of your habits to get a more nuanced sense of what you like and don't like about your current digital life, I recommend the first couple of chapters of this book: https://www.goodreads.com/book/show/25246881-mindful-tech
No offense taken! I think you're broadly right that I could be doing a better job on reassuring messaging, and I'll put that on my work queue.

I also hope to solve any bus factor problems before leaving beta. Right now if I were struck down, I think I'd still have about 9 months worth of free AWS credits on the account running the service, plus any profits. (It's not quite a self sustaining business yet, but it's not that far from it either.)
I see your work around Stack Overflow a lot and I’d like to thank you for that: your answers and contributions have helped me significantly, multiple times.
I agree, and it has been going on for a very long time. I have coworkers who's productivity (if you can call it that) would slide to zero if you took away Eclipse. If it isn't implemented in an Eclipse plugin, well forget it. Setting up the deployment environment is so far outside of their capability as to be a joke. And these people have been out of college for over a decade.
This can fuck right off. My elitist university decided that if it wasn’t pure C built on a Linux box, then it wasn’t worth using. Consequently, I never learned how much more enjoyable and quick programming could be until I used VS at my first job. Even worse, I was a VS novice, struggling to perform even the most rudimentary of debugging techniques, despite being fairly fluent in GDB/Valgrind.
https://mobile.twitter.com/benwilliamson/status/124011360637...
Apparently UK has 15 machines that can do this, for a population of 80M.
Well if you hosted "Ways to Surf the Decentralized Web" only on the decentralized that no one knew how to access, it wouldn't be too useful
Great story.

As a kid in the 80s, one of the standout images is of my father sat - motionless, absorbed - in front of a brilliant blue CRT.

I often think back on that fondly when I see my own son puzzling at what I might be doing on VS Code.
It's probably a strength in consumer, but were it not for the extremely fortunate set of circumstances leading to the iPhone, Apple would be a little company selling macs.
Do you have an example of paying customer giving Google >=$1m a year and still get steamrolled by AI without being able to get in touch with a human and correct the issue?
Because then someone who doesn’t have Google’s money could actually compete. It wouldn’t become a huge exercise in dumping.
I don't get why we don't use an S3 like filesystem with tags now, folders are very limiting. Get rid of folders, tag things properly, and then make a good search interface. Then you add a yeah for each file that has its old path, "/user/bin" for example, so that legacy folder structure still exists somewhere for legacy programs.
Thanks! That helped me in my attempt at this: https://github.com/wasmitnetzen/dynjandi
> Students do not like Racket

That is kind of the killer, isn't it? 10+ years of Racket and students still hate it. If they can learn introductory CS without suffering through Racket, why force them to do so? (Disclaimer: I think Racket looks interesting but I have never tried to use it for a project.)

But why not allow students to vote with their feet? Offer Racket and Python and see which course's graduates do better in the rest of the major.
Forget the talk about pay too high, too low. This is a way to help our neighbors who are hurting, a way to help with our skills.

A question I'll ask is, someone like me; retired from a long development career, experience in many languages but not COBOL. Could I take this course, or a similar one, and be useful to prop up a rickety code base on a volunteer basis? If yes, are any of these states allowing remote work on it?
Oh thank you! I love seeing how people use technology in new and unintended ways.
General info is available here:
https://en.wikipedia.org/wiki/Gravitational_time_dilation
Sun had vision, I don't think Oracle ever did.

I don't really think salesforce's early 'no software' bit counts as vision either. Maybe.

There are huge swaths of mundane companies that make up most of the econony, wherein I would say there's a lack of vision in the way we understand it. What they have is operational tenacity, rigor, professionalism, and a near term vision to 'make money'. For better or worse, that's what we have.
> made very few improvements to it,

Before the acquisition Youtube were getting their ass kicked about all the copyright violation on the site, they were losing money, they had no ad revenue sharing with video creators, they only supported low-resolution video, and only in an Adobe Flash player.

All of which changed after the acquisition.

I would agree, of course, that there's plenty wrong with Youtube these days, and the pace of innovation has dropped a lot.
It's more of a browser-based game (pbbg) than a traditional text-based MUD. Plus, the inter-person interactivity seems less than a MUD, too.
Actually I agree for the Java world here. Thanks to the design of Java and many Java libraries you cannot write a little more complex Java code from your mind. Even importing all this nested OOP libraries is complicated without an IDE. For me Java is really a language which is impossible or too time consuming to master without a good IDE.

Working for many years in the python world professionally some people are still amazed that I'm essentially using more or less a normal text editor. IDE is optional for many languages but for some languages it's a strong requirement.
The point of the article is the very concept that the compiler and the Java runtime environment are not the same thing (which an IDE obfuscates to some extent) is what he wants students to learn early on. (And details like that). This leads into a lot of important concepts around how programming languages are seen by the computer.
People who learn the tool alone are substantially unhireable.

When you hire a developer you usually need them to also be at least be something of an expert computer user, especially if they're going to be working on a small team without 20 other experts to micromanage them.

Over-reliance on the IDEs leaves people appliance operators that are lost when there isn't a magic button to press.

It isn't just an issue in the job market. "Programmers" who aren't sufficiently advanced computer users can't advance their own projects in academia either-- they're stuck working on precooked assignments. I suspect this is one of the forces that has resulted in academic research being utterly starved for competent software engineering (though the main one remains that competent software engineers can get stable high paying jobs, and academia provides them with neither).
>Opera, back in it's old age before dying and becoming a Chinese owned Chrome skin approached this.

I thought that Opera Unite was magical, and bewilderingly, it was pretty simple. It is my hope that Vivaldi attempts to bring it back.
I never said building the connectivity was free, In fact I said the opposite.
Uh or just be a friendly, sociable person with at least something to offer. I'm also confused why you would need to use Tinder to find sex workers online, I'm sure there are plenty on there but why not just go on like Twitter?
yep.. I came here to read why Eclipse sucks compared to IntelliJ or something. Turns out, he hates _all_ IDEs.
Excellent comment, thanks for sharing.

You said:

> This has to involve a huge amount of actually talking to customers. If not, its pretty much guaranteed to fail.

Do you have any advice for doing that well?
HTTP is an open protocol and can be accessed from anywhere as IP address is reachable.

medium.com is centralised platform, your custom domain is not.
Apollo 13: Home Safe [video]
This is a fact-based discussion of language trade-offs. The strength of a statically typed functional language, that you are forced to specify correctness of the program at increasingly abstract levels of the type system, is also its downfall because this is inherently inflexible if the business use case of that software suddenly demands incrementally mutating some part or introducing subtle violations of the constraints the system was designed to enforce. The entire goal of encoding correctness and rendering it difficult or impossible to violate a given notion of correctness is intrinsically at odds with the business purpose of software. This is fundamental. It is a real, physical problem that makes strict functional languages significantly worse suited to business settings than imperative or even object-oriented paradigms, and is supported by language popularity, adoption and success rates.

The fact that classes of bugs prevented by compilers are not very important and are just as adequately caught with lightweight unit tests is more empirical but critical nonetheless.

These are real problems with the arguments in favor of strict functional programming. But instead of engaging with them, they are disingenuously called “language wars” as if they are less legitimate just by using this phrase to describe them.
The Cliqz browser implements the Dat protocol. Here's a writeup on the implementation: https://www.0x65.dev/blog/2020-03-02/implementing-the-dat-pr...

Disclosure: I work at Cliqz.
The closest I've found is https://jmp.chat/

I'm waiting for voip.ms to enable mms support then I'll probably roll something with asterisk. Although I saw https://github.com/zoenb/mx-puppet-voipms the other day.
... and nobody complained, because most people don’t actually enjoy having to put up with racists.
Agreed, or proactively email users when they are experiencing severe degradation
One thing stops me using UBport is no full disk encryption support. The reason seems to be there are no way for them to get around the bootloader of a standard Android phone to boot an encrypted UBport. With a more open hardware Pinephone, are there any roadmap for them to implement on it?
Like a film reel. Time is just a collection of static states that from a certain perspective create the illusion of linearity.
> What they can’t do, unless they’ve figured it out on their own, is operate a computer outside of the confines of the IDE they’ve been taught.

Understanding what a file is and what a text editor should be prerequisites for entering a computer science department. Someone who doesn't understand these concepts has no business learning to program.

At my "not MIT" school, it was expected that most incoming CS students understood some basic programming before they entered school.

A CD department that tolerates students who don't know what a file is probably has other problems.
>Using Java or Python in a professional IDE like IntelliJ IDEA, NetBeans, PyCharm, or Eclipse is not a good first introduction to programming for computer science students, whether they’re in the field to become web developers, systems software engineers, or academic computer science researchers. //

So "for computer science students".

Which seems like too major a thing to miss out of the title.

Also, how does webdev fit in here: seems like webdevs should probably be using IDEs from lesson 2. And I say that as someone who started their web content production path writing HTML in pico.
> ... how programming languages are seen by the computer

Learning a programming language has nothing to do with how it's seen by a computer. That's a different class (a class on compilers, maybe). You can even turn Java into Javascript if you want to[1]. The fact that the compilation/transpilation flow here is Java -> Java Bytecode -> JS is meaningless in the context of learning Java.

[1] https://github.com/google/j2cl
"At Alibaba, every month Dragonfly is invoked two billion times and distributes 3.4PB of data. Dragonfly has become one of the most important pieces of infrastructure at Alibaba."

For those that are confused, this is a lot more descriptive:

https://d7y.io/en-us/docs/overview/what_is_dragonfly.html
I know it is like some people don't realize epidemiological-ly what is important is staying away from other people. Hiking in remote area where there are no other people is not a problem. Driving for 26 something hours, and likely not interacting with anyone is not a problem.

Your essential grocery store trip is a much risk of getting you ill or spreading illness...

However, doesn't cannoning balling involve speeding? I think that's what people should be more worried about. It's not like the roads are a 100% empty.
I was referring to the second part of his post. Also this class is not introduction to programming it is upper division and considered one of tougher classes in terms of workload.

The assignments aren't trivial. Take look at them:

http://web.cs.ucla.edu/classes/spring20/cs131/homework.html
Avoid the virus [game] [TypeScript] [cloudflare workers]
Ask HN: How would you design a streaming service like this?
I'm a fullstack developer and would like to learn how to build a streaming service in depth. What I want to create is essentially twitch clone but not really. I want to create a tutoring app where tutor and students would broadcast video. So 1 tutor 10 students in a video chat.

This video chat needs to be recorded as well.

I can get one-on-one video chat work more or less using webrtc + TURN servers. But no way to record it.

Ideally this would be great:

- all users connect to each other using webrtc

- video also gets recorded and saved in S3.

- without anything touching the server.

If not possible, then it has to be the server...

from what i understand about the server is that you..

- take the incoming stream (usually using a software? can't use webrtc to server for this?)

- save it in storage and also broadcast it to others.

- complexity comes in with transcoding and stuff.

all links, suggestions, questions and advises appreciated.
Misses category of avatar chat apps:

https://extendedmind.io/blog/2020/3/20/video-conferencing-wo...

We have seen massive growth on https://hubs.mozilla.com which can be self hosted https://hubs.mozilla.com/cloud
The author brings this up as a reason for using an IDE:

> This is valuable in an introductory course, as it avoids wasting class time and lowers the barrier to entry

and then proceeds to argue why other things are more important than that.

I don't like Eclipse or other IDEs, having watched my fellow students get stymied by basic issues that I could resolve with one or two relatively simple instructions on the command line. I think IDEs can be a crutch that programmers ought to learn to do without. Learning what the "real" tools are will pay dividends—quickly too.

That being said, I think it's important that the barrier to entry be low. Java almost necessitates the use of an IDE. There's so much "enterprise" cruft involved in doing the simplest things that, unless you have an IDE to hide it, you're going to confuse beginners.

A better choice of language and tooling can help here. I think starting off with something like Racket would be best. Those who need an IDE (out of laziness, familiarity, whatever) can use DrRacket, and then switch to running their programs from the command line shortly thereafter with next to no transition overhead.
I lost a 12 year old Twitter account (with nearly 10k followers) last month as well. No communication whatsoever from Twitter, even after I opened a ticket about it.

I'm beginning to think that publishing anywhere except my own site is foolish.
Damn you can do this whole thing with Cloudflare for free? That's why that's a failure blog :'D

I'll give it a try at some point...
Complexity theorist here. In addition to your point, there's another commonly-overlooked problem: TC isn't quite the actual top! There are ways to make problems that, even with an oracle for solving Halting, are still hard [0].

It seems like folks are very quick to confuse the expressiveness of a machine with the expressiveness of analyzing programs for that machine; usually, a program is far harder to analyze than to run.

I think that a better way to view the post's author's point is by unpredictability. Given a short program in a weak setting, we can not only predict what the program will do, but what the program cannot do, usually because it is too short or too simple. In a Turing-complete setting, though, there are short programs with very unpredictable behavior.

[0] https://en.wikipedia.org/wiki/Turing_degree
> he even offered us a monetary bonus for bringing a new employee

As far as I know, that is very common, at least in the places I worked. If someone mentions in the interview that you tipped them about this company and they are hired, a bonus of 500-1000 for each of you is what I would typically expect the policy to be in medium to large companies. Their thinking is probably that talent is hard enough to come by already and that recruiters are way more expensive than that. (One company I interned at, I remember the boss complaining how big a cut external recruiters get, though I don't know the actual percentage it sounded like in the order of 10% of a year's wages just for getting you in touch.)
Vimeo? DailyMotion? LiveLeak?
I'd sign up for something like that in a heartbeat.

I used to do COBOL, but the problem is that possibilities for advancement are very limited - there's far more jobs available - and promotion pathways - for a Python or Java coder than there is for a COBOL coder.

In exchange for a refresher in COBOL and a guaranteed job, yes that is a much better deal.
I was one of the 12 people who wrote a lot of Apple Pascal in the early 80s. One a day I got a call from a tech writer who was reviewing Turbo Pascal for Byte or some other programming mag. He had heard through the grapevine that I did Pascal and brought over an Osborne luggable and a copy of Turbo pascal for CPM. I fell in love instantly. Although I was a die-hard Apple guy at the time, the PC version of TP eventually turned me into a PC programmer overnight.

One other thing, it was so cheap and fast that people started using it as their text editor of choice. It would be interesting to know how many copies of TP were sold that never compiled a line of code.
Game of Life, Simulated in the Game of Life (2012) [video]
When Friendster and Orkut and MySpace were around, the same argument (So Big) prevented me from creating my own social networking site.
From the article: "One thing that I miss is the fact that in GMail folders are actually labels and you can have multiple labels for an email."

Which competing services (apart from Outlook) offer Gmail-like labeling for individual messages?