Hacker Newsnew | past | comments | ask | show | jobs | submit | tmin's commentslogin

'Patterns in Prehistory' class where we learned about pre-history civilizations. Saw that there is a book, 'Patterns in Prehistory: Humankind's First Three Million Years', which covers the topics were covered in that class. Initially, I was like 'why should I learn pre-history?' and I postponed it until the last semester of my undergrad. Learning different civilizations and their religious beliefs made me start questioning my religious belief.

And an NPR podcast, "Is Believing In God Evolutionarily Advantageous?", which explains why human are religious.

Those two changed my religious belief, so I can say that they changed my life.


A government can ask the ISPs to shutdown the internet. That is what Myanmar military did recently and apparently it has been happening often in Africa. What if ISPs won't shutdown the internet? Is there any changes that can be done to support free flow of information?


There are ways the government can force the ISPs to shutdown the internet, like cutting their electricity or takeover their system... Even if solutions like Bridgefy works, they still cannot communicate with people outside the nation, and I wonder if the government can just find out people using the system and arrest them.

I think it would be more useful to think of measure to hide under surveillance, and access outside information even if ISP block some of the connections to outer internet. This is what currently happening in China, an arm race between the state and developers.


But why would you do that?


Because every programmer should at least once. Writing a compiler/interpreter is the ultimate exercise for any CS student/professional. that and maybe a file system/database or toy OS or server, because it encompass most aspects of CS.

Anybody that can do this things can probably take on any programming job, because they require a fundamental understanding of how computers and programs work.

Furthermore, It also help when suggesting realistic features to other language developers, or write proposals, or assess languages themselves.


Nah this is not really essential.


cool, you can do it once, in college


Why not?

Programming languages are not a solved problem (or parsing, or diagnostics, or...).

We are today, barely, getting practical solutions to how write safely, fast and ergonomic (for example, rust) and yet:

- Compiling performance is abysmal in most compiled langs (except pascal family)

- And errors...

- And debugging...

- And interactive compilers...

- And ... (thousands of other stuff)

Somebody must try to do this stuff, because if not, forever will be at mercy of C, C++, JS, the shell, unix, etc. Who wanna the cobol effect forever?


Why is Pascal better at compiling performance?


Nicklaus Wirth cared about not wasting machine resources.

He also wrote “a plea for lean software”:

> “Abstract: Software's girth has surpassed its functionality, largely because hardware advances make this possible. The way to streamline software lies in disciplined methodologies and a return to the essentials. The paper discusses some causes of "fat software" and considers the Oberon system whose primary goal was to show that software can be developed with a fraction of the memory capacity and processor power usually required, without sacrificing flexibility, functionality, or user convenience.


Is made to be fast. Also, C/C++/rust is made to be slow.

One recent article that touch it (for rust):

https://pingcap.com/blog/rust-compilation-model-calamity


It seems like one problem with rust is that it is a single threaded compiler.

We’ve reached the ends of fast CPUs. To gain performance improvements, we need to use multiple cores, and process it in parallel.

I wonder if this is an opportunity for github or Microsoft to host a cloud compiler? Just check in your code to github, and the cloud compiler will compile it across thousands of servers, all running in parallel.

Cost: $100/month per engineer.


> It seems like one problem with rust is that it is a single threaded compiler.

That could be a symptom but is not the root cause.Is just that the syntax/features choices (as choiced!) are hostile to fast performance.

Even going parallel, I bet a pascal compiler will beat it overly, because you can give rockets to turtles but are still turtles...


Many reasons! Languages are tools for solving entire spaces of problems. There are languages for music synthesis, database relations, templating , mathematical proofs, etc - but the list is by no means exhaustive and new languages are always needed, and I bet there are wonderful languages in our future that we didn’t know we needed.


Because why not? It can be a fun an very insightful process, as you'll learn about and have to apply techniques you may not have heard of otherwise.


If nobody made their own language, we wouldn't have any languages, and you'd have to write in machine code.


Yeah, basically a fun exercise in parsing/compiling/optimization.

OTOH what makes a language usable is literally everything else - package manager, IDE support, compile/parsing.


> Yeah, basically a fun exercise in parsing/compiling/optimization.

Among other things, sure.

> OTOH what makes a language usable is literally everything else - package manager, IDE support, compile/parsing.

You have parsing/compiling in both categories. It's easier than ever to add IDE support for your homemade language, too, because of things like the LSP. Package management isn’t easy, but if you are building a specialized DSL and bundling the parts key to the domain, or if you are exposing a bridge to an existing ecosystem with strong library availability and decent package management, a language-specific package manager is probably not super important for usability.


> OTOH what makes a language usable is literally everything else

But that could be because we haven't had any real innovation in languages for ages, so except for some superficialities and details, the languages are essentially the same.


It's a great learning exercise.


In my current team, we post our daily status on a slack channel: what we do yesterday and we are going to do today. We try to keep to one or two points. We have remote people so that works out well. Standup is optional. On Monday meetings, each person tell one thing that we are going to do. Sometimes it is two things but the point is to focus.


This is the way it should be.

Meetings should only be between business / leads to get scope onto canvas.

If I'm blocked I'll seek out the person who can most help me. I can easily find 5-10 minutes to write out a summary, but on my terms when I'm not in coding mode.

Now, I'm freelancing, likely to be team lead for the company assuming they get financing - and I keep taking notes and reading ways to organize better. We have a ton of work to do, it's a financial mobile app that has 0 tests on the api (I'm single-handedly running the API development Laravel + vue (for some web views)). Money is tight so I'm the only dev on web side and we have 1 ios dev.

The hope is to be full-time at this by Christmas w/ a 6 figure salary (my first +6 figures).


One of the best classes that I had was very hard in homeworks but was easy on the grading. It was literature and art class taught by a lawyer. I felt that I grew up a bit after that class. The class was also rated high by students


I was thinking primarily of my history with stem (really, specifically the t and e); I feel like the arts are still more classically oriented, because a degree isn’t anywhere near as required, and theres weaker guarantees on income streams, such that its been relatively unaffected by the university trying to fulfill the role if trade schools. The same would be true of mathematics, phds in general, and probably most of the hard sciences.

Undergrad feedback I wouldn’t trust at all regardless of major, Masters is major-dependent (ce, cs are particularly screwed) and phd candidates are probably fine. Simply by looking at the why the general population is even in the major (eg ask an undergrad and the reason is probably not actual interest in the subject: parents, jobs, money, dropout-major, couldn’t decide, best grades in hs, etc). Their feedback will naturally reflect the misaligned incentives

If your interest in feedback is to make sure the teachers are actually good at teaching, anyways.


How to fight spam if sender identity is not known? Currently I get at least a few marketing calls a week and don't know how to make them stop other than blocking the numbers.


From the Signal blog post:

> To prevent abuse, clients derive a 96-bit delivery token from their profile key and register it with the service. The service requires clients to prove knowledge of the delivery token for a user in order to transmit “sealed sender” messages to that user.


They add:

> Additionally, blocking a user who has access to a profile key will trigger a profile key rotation.

People who don't know you can't use the new sender privacy beta feature, but if you are willing to risk spam then you can allow everyone to use it:

> users who want to live on the edge can enable an optional setting that allows them to receive incoming “sealed sender” messages from non-contacts and people with whom they haven’t shared their profile or delivery token. This comes at the increased risk of abuse, but allows for every incoming message to be sent with “sealed sender,” without requiring any normal message traffic to first discover a profile key.


The sender's identity is known to the recipient.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: