I don't think I've ever seen a sci-fi rendition of this concept. It means that an advanced enough alien species could come to a planet, from orbit disable all nuclear weapons and power plants, then start their invasion. Not as cinematic as a Death Star planet explosion, but sounds like a good tactical move for a galactic empire.
If you can travel between solar systems and have enough resources that you want to conquer (not just render inhabitable) a gravity well then you likely don’t need to worry about nukes - point defences will be able to detect and neutralise them before they got anywhere near your ship
If you have the ability to travel between stars, it doesn't seem like there's still need to conquer a planet for resources - except for resources that aren't natural.
For example, you can easily just get water from comets/asteroids, mineral resources from uninhabited planets (easier than to fight the inhabitants), and gas/fuel from the gas giants.
However, one resource you cannot get is slaves. Therefore, i predict that any advanced civilization that can travel between stars would actually invade to capture the life forms as slaves, rather than to extract resources.
I think if you have the ability the travel between stars you probably also have machines to do work way more effectively than using human slaves.
Maybe they could use humans for a zoo or something.
Well as two armed slaves, we'd be useless at handling their devices that require all 8 tentacles... We might not even be useful as snacks, having picked the wrong handed proteins. They might annihilate us out of frustration and build a hyperspace bypass instead.
I assume any civilization with the tech to get to earth would also have the ability to shoot down any nukes heading their way or simply throw it in reverse long enough to dodge them, no huge TeV particle beam necessary
I think you can argue that the pervasive use of notebooks is close enough for learning at least, but it's not as good for real development. The edit-and-continue features in Visual Studio for C# (and similar feature in Java) is the closest non-lisp thing we have these days. The languages aren't made for it like lisp are though, you have to do full restarts all the time.
I still wish there was an environment more like Smalltalk for Python.
>The edit-and-continue features in Visual Studio for C# (and similar feature in Java) is the closest non-lisp thing we have these days.
Some years ago I was playing around with Franz Lisp, and noticed an interesting debugging feature in it. A few days later, I was using a then-new version of Visual Studio for writing either C (not C++) or VB, and noticed the same cool feature in it, which MS was calling Edit and Continue.
IIRC, it was introduced in that VS version, but not sure, since I was not a regular Visual Studio user.
Then think about what are the requirements your system needs when it comes to names.
Does the app need to know what a user's name is at all or is a username enough? Does it need to distinguish the family part of their name for anything?
A thing I think is the most general is to just have a Full Name field (min length 1 and either John Doe or something cute as default) And a Nickname or Display Name field if your app needs to show something on screen.
It's not just programmers. Plenty of genealogists, do things like automatically give a wife their husband's (male!) patronym. Even though they see it doesn't work that way in the sources, they seem to feel that it "should" work that way.
In France married women, if they let their guard down, will be given their husband's last name as "nom d'usage" upon almost any sign-up paperwork, without being asked, at least in my experience.
Nom d'usage technically has no legal value, it's just a last name you might want to be addressed as, normally that of your husband but it can be a pen name and whatever. It's optional, and technically only at the request of the relevant person. Men can have nom d'usage too (égalité, after all).
Still, immigration offices, banks, insurances... they often slap the husband's last name if that field is left empty, just because. Why would you want something else, right? She probably forgot!
We started crossing those fields to make it clear she doesn't want a nom d'usage.
We actually couldn't open a joint bank account with both names separated. They'd accept the papers signed in the official names, but the names on the cards and other communication needed to be unified for their system to accept it. They'd accept to reemit card with the correct names only as an exception by abusing the card renewal system apparently
I assume you're talking about Société Générale? I've experienced that, and what's worse it's that's it's broken on purpose. A joint bank account doesn't require the people to be married, let alone to share names. But if they tick the married box, whoops, now it's suddenly mandatory.
To be fair, most of the stuff in "falsehoods programmers believe about $concept" lists are really falsehoods almost everyone believes. Software is just one of the places where the limits of those implicit beliefs might actually become apparent.
Most people never need to think about the details of how names might work in a different culture across the world, let alone work that into any kind of a rule-based mechanism or a rigid information model. If some random person working at a construction site in Europe or the US has no idea that first names and last names aren't a universal thing, that has exactly zero direct effect on anything. In most cases that's probably even true of lawyers or other high-level white collar work.
I'm actually inclined to believe lots of programmers know more about e.g. time [1] than a non-programmer Joe Random does on average, exactly because software developers may actually end up coming across at least some of those issues.
This list would have been so much better with examples or a short explanation how or why the assumptions break in case it is not obvious. The author offers examples on demand [1] but while I would be interested to know them, it seems not important enough to bother the author. Maybe the author sees this comment and has some time to spare, then it could benefit everyone and not just one person asking.
[1] If you need examples of real names which disprove any of the above commonly held misconceptions, I will happily introduce you to several.
I live in Japan (as does Kalzameus), my name will regularly cause problems in computer systems. In fact, quite often I'm not using my name but what I am called in Japanese, and even then it will often fail. Number 1 problem - not enough characters, because most Japanese people only use a few characters for their entire name, don't have middle names, and don't have spaces in their names. And that's just for starters. Should I use what I consider to be my name, my full name, the name on my passport or the name on my residence card…?
It's just not that hard to find problems with name inputs.
It depends but it's usually going to be katakana. Sometimes it would specify what's written on your passport, or residence card. I've even heard talk of using half-width characters, which, luckily, I've not had the misfortune to use yet.
Index vs. preferred name can get a bit wonky. I used to work on software that had a lot of attendee/speaker list functionality. Different types of customer had strong expectations about how names should be displayed and ordered, sometimes even in different contexts (attendees might be listed by last name but speakers by first, etc.). We had medical conferences where everybody would be listed as "Dr. Fredrica Bloggs, MD" but the sort order would be by last name. And that was just for English-speaking customers.
it is really something to be dealt with via locale settings but the lack of standardized data underlying what the locale logic would display really throws a wrench in things
The name used in direct communications can depend on the level of formality and on the context. For example, John / Mr. Smith / Dr. Smith.
Then there is the difference between the "full" name and the legal full name, with all names spelled out. The latter is sometimes necessary, but it can be awkward or inappropriate to use it in most places that expect a full name.
In this case, "listing problems" - as you dismissively call it - takes a lot of care and effort, the article is a distillation of experience and knowledge that very few possess. It's up to you to use this understanding of the problem space to decide which aspects you're willing to trade off. The article's job is to help people make these tradeoffs consciously, instead of designing based on simplistic assumptions made in ignorance.
>What happens in your head when someone calls your name? Surely that's a feeling of identity?
I realize that someone is talking to me, but that has nothing to do with my identity. I doubt that that person and I have the same perception of who I am.
I think the discrepancy here is just different definitions of the word 'identity'. If someone is talking 'to you' then you are identified by that. It's not about your unique internal world, but about your uniqueness among humans (like a primary key identifies a database row).
Nope, literally never. The idea of talking to myself using my own name is even a bit unpleasant, actually. I don’t have a bad name, I just don’t use it in my relationship with myself. Just like I know and like the name of my girlfriend, but I seldom address her by the name, we usually use the honey/love/baby equivalents.
That made me laugh out loud. It's a great reminder why being conscious of the assumptions you make is an important part of development and one that LLMs can't really do.
My passport has two of my names in both Ukrainian Cyrillic and Latinized form, neither of which is my full legal name per Ukrainian law. My id however has a legal full name in Cyrillic, but not in Latin. To make matters worse, the same set of Cyrillic characters can be represented by different Latin characters and it's somewhat up to me to decide how it's spelled when the document is issued. Since I can have more then one passport at the same time, the names in Latin don't even have to match.
Then I have a residence permit in a different country, where my full legal name is spelled in Latin characters based on what is written in my birth certificate (which you guessed -- is in Cyrillic). So the Latin rendering there is entirely based on what I asked the translator to write there.
In the end, out of three documents I can id myself with, no pair has the same combination of characters for my name.
add:
To make matters even worse, my original birth certificate (not the one I have now) was issued by the soviet union and uses russian cyrillic and the same name there is both spelled and pronounced differently.
I can also tell you that the passport office doesn't check anything very well, at least in the US, as my name on my passport doesn't actually match the name on my birth cert or SSN paperwork. I guess I mis-wrote it when I filled it out originally, but now I have to deal with how to get it fixed. For renewals, they only have a "my name changed" field, not a "you messed it up", so I've been ineffective at correcting the issue for years now.
In Ireland, it’s not entirely rare to use different forms of one’s name in Irish and English.
For example, in English our president would be called “ Michael Daniel Higgins”, but in Irish “Mícheál Dónal Ó hUigínn”, and while there’s obviously a correspondence between them, they are pronounced quite differently.
It’s possible to change the version of the name you use on your passport after six months of regular use (compared to two years for any other kind of name change), and in that situation both forms of your name will be listed on your passport.
What's on your passport may not be canonical. In some countries (Ireland and the UK, for instance) your name is, for practical (and generally legal!) purposes, whatever you use day to day; it wouldn't be _that_ uncommon for someone to have name X on their passport but have been going by name Y for years, and in this case name Y would probably be considered their legal name in most contexts.
I'm in that situation now, my UK passport/birth-certificate name is not the one I'm known by.
After several years of getting queried on mismatching ID, now I've moved to another country, I'm going through the process to "rename myself" - and mostly that's a matter of saying "Here's the name I've used for a long time, please make it official".
After the renaming goes through I'll be updating everything to match which will no doubt be a pain. But once it's done I'll have a much easier life.
Just as a really common anglo example, my passport has my middle name, but I will not otherwise use that name unless it's explicitly requested. Even airlines are inconsistent about this, so for most purposes I'm just Firstname Lastname.
At one point I had cards from two different banks, one with my middle name and one without.
See my other comment on Vietnamese names, actually if you have a Belgian passport and a Vietnamese name, your actual given name (the third part for women with the "Thi" middle name) is not shown on your passport or identity card, only the first letter of it.
For French people who have three given names it's the same, although the two last ones are generally not used (you could say they're little endian compared to Vietnamese big endian names, I suppose) so it's not as important.
I have no idea why, and Belgium is the only country I know that does that, but it means your passport name is absolutely not your canonical full name.
If you obtain French citizenship you can "francify"[0] your name; you'll end up with two full canonical names. Nothing really forces you to change your original name in your original nationality.
I'm from Ireland, an English-speaking country in Western Europe. I have a name that is a typical Western name. In theory, I should be the happy path for any name system.
But even I don't have one canonical full name. Even with just the government, the name on my birth certificate, passport, and tax documents is different.
Name 1: I was named by my parents after a friend of theirs. That friend commonly went by a short version of the name (think "Jessie" vs "Jessica", though that's not the real example). Anyway, since I was born in Ireland in the 90s, my parents had me baptised by the Catholic Church, which expected you to name your kids after saints. In the form which the saints used. This was less about any strong faith on their behalf, and more of the fact that it made it easier to get into any of the 90% of schools run by the Catholic Church. I think even then, it depended a little on which priest you were dealing with as to how strict they were with the name rules.
But anyway, the extended, "saint's" form of my name was needed for the baptism, so my parent's put it on the birth cert, plus a middle name. They (and consequently I) never used the extended version of my name, but my birth cert reads "ExtendedFirst Middle Last"
Name 2: Anyway, then my teenage years came and I went abroad and I filled out a passport application form to get one for that. It had fields for first name, middle name, and last name. So I put in the first name I actually use, dutifully filled out the middle name field even though I never use that, and then put in my last name. So my passport has "First Middle Last".
Name 3: Then when I came to actually paying tax as an adult, I had to provide details to the tax office and my first employer that lined up. At this point my middle name was well and truly out of use, so both got just "First Last". This is also the form of my name that appears on most utility bills, professional correspondence, etc.
Name 4: And then on top of that, I have a nickname I'm commonly known by. This is what's on a lot of personal correspondence (sometimes as just Nickname, sometimes as Nickname LastName), what people call me face to face, etc.
Now a lot of countries have a concept of a singular "legal name". In some countries it may be at least procedurally incorrect or sometimes even legally fraud if you were to use something else in passport applications, tax documents, etc. But Ireland does not. If you use something as your name, it is your name. Most government interactions will accept evidence (such as utility bills, employment contracts, etc.) that you've been using it for 6 months to update the above documents.
For any of the 4 variations above, I could provide enough evidence to the government to get them to update the other documents in line, but it's just not important. But if I was to bother I'd use "First Last" as the target name, and I'd actually rather not update the passport as I travel to the US frequently enough and "your name is different to last time you were here" strikes me as the kind of thing to make US immigration unhappy.
Alternatively, you can register a deed poll to get a piece of government paper stating effectively "X Y Z has informed the government they're now known as A B". But this is not a prerequisite to changing your name, just a way of short circuiting the process if you're stuck getting documentary evidence that you have changed your name via other mechanisms.
And that's all before we get into marriages, gender transitions, Irish vs English names, immigrants who anglicise their names, confirmation names, etc.
Yes, people really need to know that unless you are using the browser plugin, you really shouldn't ask it questions like this. (A good rule of thumb I think is if you can't expect a random person on the street to get the question right without looking it up, you shouldn't expect GPT-4 to get it right either.)
Cool. A few questions, don't feel obliged to answer all of them: Is it a custom instruction set? What are similarities / differences to desktop vector instructions like sse/avx (or tpu etc "neural processors")? What's the sw/compiler stack like, how easy is it to port software, or is sw more commonly custom written for the platform?
2) The main difference in simple terms is that AVX instructions have a fixed vector length (4, 8, 16 etc). With the SX the vector length is flexible so it can be 10, 4, anything up to the max_vlen (up to 256 on the latest ones). Essentially the idea is you have a single instruction that can replace a whole for loop. Without a good compiler though that means you have to re-write your nested loops.
3) There's currently two options when it comes to the compiler, you can use the proprietary NCC or use the open source LLVM fork NEC has. NCC is less compatible than GCC/Clang (particularly modern C++17 is problematic) but has a lot of advanced algorithms for taking your loops and rewriting them and vectorizing them automatically. The LLVM-fork currently supports assembly instruction intrinsics but they are still working on contributing better loop auto-vectorization into LLVM.
4) Porting software is not terribly difficult to get working, but quite a bit harder to get performing very well depending on the type of workload. Since the Scalar core is pretty standard, you can almost always take regular CPU code and get it running (unlike GPU code in general). If you don't leverage the vector processor though, the performance you get will be nothing special, especially at 1.6GHz. Most of the software made for it starts off as being CPU code and is then modified with pragmas or some refactoring to get it running with good performance on the VE. In almost all cases the resulting code still runs on a CPU just fine. One example of a project that supports both in a single code-base is the Frovedis framework[1].
I think the chip deserves a little more interest than it does. It's one of the few accelerators that you can 1) Buy today, right now 2) Has open source drivers [2] 3) Can run tensorflow [3]. The lack of fp16 support really hurt it for Deep Learning but it's like having a 1080 with 48 GB of RAM, still lots of interesting things you can do with that.
One thing this article doesn't cover which was a big part of this decision was nuclear waste. Nobody wants nuclear waste sites in their prefectures. There was a plan to use breeder reactors, but that hasn't gone anywhere, and the waste is just piling up at the reactor sites with absolutely no place to dispose it. When the mayor of Osaka even hinted at making an underwater waste site the backlash was huge. I doubt any other politicians will step up after that (nor will their parties allow it). So with waste being in this deadlock state for decades, there's just no way forward for nuclear here.
Brings back memories. My first VPS back in 2003 used UML and it worked great. You could also run it inside Windows as well. Could even get GUI apps running by running Xming on your Windows desktop using CoLinux (http://www.colinux.org/?section=screenshots).
I also agree that this estimate is way off, but I think the idea is to think of the total energy use of the phone when you include the energy used by the servers that provide the services you use in apps. That is much harder to measure. Luckily Google, Facebook and Twitter invest a lot in energy saving at their data centers so it's one of the leanest ways of using compute power. I think that even when you put that energy into the equation, it's still nowhere near a refrigerator.
If you do that you have to include the energy savings from the phone use as well. The television that isn't turned on, the desktop computer that isn't running, the drive to the movie theater that didn't happen. I'd bet dollars to donuts that smartphone use reduces an individual's overall energy consumption.
Systems like Erlang/OTP, Akka, Orbit and Orleans/Service Fabric are built on an actor model where domain objects of the system (e.g. Users, Accounts, Invoices, etc.) exist within the cluster and have a an address so they are like having a bunch of mini servers. These servers typically keep their state in memory so they can respond to query messages quickly. Plus the application can unload idle (or no longer necessary) actors and restore their state when they are needed again. It's very similar to the Linked in-memory key-value idea mentioned in the paper.
I think it is an anti-pattern to design a system where each domain object is a process. Sometimes data is just data and should be managed as such.
I think what makes actor models so nice is the explicit ownership of state. It is not possible to declare "var x = 1" in one file, and access x in another file. You always have to retrieve state explicitly, otherwise it won't be accessible within the scope of your function.