- I guess yours might have been intended to be a facetious comment, but a quick google for designer weaving shows up a UK company as the first hit for me that sells their work for approximately $1500 per square foot.
If the demand for this work is high, maybe the individual workers aren't earning $100k per year, but the owner of the company who presumably was/is a weaver might well be earning that much.
What the loom has done is made the repeatable mass production of items cheap and convenient. What used to be a very expensive purchase is now available to more people at a significantly cheaper price, so probably the profits of the companies making them are about the same or higher, just on a higher volume.
It hasn't entirely removed the market for high end quality weaving, although it probably has reduced the number of people buying high-end bespoke items if they can buy a "good enough" item much cheaper.
But having said that, I don't think weavers were on the inflation-adjusted equivalent of 100k before the loom either. They may have been skilled artisans, but that doesn't mean the majority were paid multiples above an average wage.
The current price bubble for programming salaries is based on the high salaries being worth paying for a company who can leverage that person to produce software that can earn the company significantly more than that salary, coupled with the historic demand for good programmers exceeding supply.
I'm sure that even if the bulk of programming jobs disappear because people can produce "good enough" software for their purposes using AI, there will always be a requirement for highly skilled specialists to do what AI can't, or from companies that want a higher confidence that the code is correct/maintainable than AI can provide.
- Thanks, I hadn't realised that. It's so long since I properly used the Kobo, I didn't recognise any of the names.
- I dug one of mine out of the cupboard and just checked. There's an option for refresh after every: with options from 1 page to 6 pages. I guess better than I remembered, but that's still not what I was after.
What I really want is for the framebuffer to remember past pixels, so that the blacking out is restricted to only areas where there previously were pixel. I don't really mind noise on where the text was while the page is replaced, it the big areas flashing black needlessly that's distracting.
I might try out this firmware over the holidays though. If I get back into using the kobo as an e-reader, maybe I'll look at the issue myself now that it's open source, if it's not been addressed by someone already.
- I wonder if it's the same thing that happens on a personal level in other countries, just happening on a more macro scale.
Thinking about my own life, when I moved to university all my possessions fitted in a car with both me and my mum as well. I was happy. After university, I went travelled for a year and all my possessions fitted inside an 80L rucksack. I was happy.
I came back to my own country. Got a job. Got money. Started buying toys because I could, but everything still fitted into my room in a shared house (plus a few things in the common rooms).
5 years later, I bought a house and all my possessions fitted in 2 car loads, but this time with just me driving. But then, I wanted furniture, so I got a load of big bulky things delivered. And over the years, I've been buying more and more things and never really felt like I needed to throw anything away because I had lots of space.
Now, if I do the exercise in the article, I agree. Everything I can see is stuff I wanted. I might not have used it for 10 years, but it's still in good condition, I still have the purpose in mind that I bought it for, and it's wasteful to just throw away. But despite that, it makes me sad because it's just clutter. Every I look in my house, it's just stuff, most of which I don't really need and haven't used in years, but... I might. Just today, there was an article about Kobos, and I dug out my 3 Kobo's that have been untouched for years. Would I have been sad if I'd thrown them out and couldn't now use them? I'm not sure. When I go travelling for a month or more at a time and only use half of the things in my suitcase, I kind of wonder what the purpose of everything else in my house is.
Anyway, that was long and rambling, but my point is just that as we get older and have more capacity, we naturally want to buy nice things that we want in the moment. I have had times in my life when money was scarce (for my family in childhood and also when I was out of work for about 3 months during the financial crisis), and so the urge to keep things that are in good condition is very strong. If I fall on hard times again, I could still use them.
If you look at society as a whole in China and Taiwan, you see a place where the vast majority of the population were poor if their lifetimes. I remember reading an article once about how the average family in 1980s Beijing would aspire to own (not even own, just aspire) a family bicycle, a watch and a radio. Compared to the West, their lives were incredibly frugal, not out of choice, but out of necessity. As their society's standards of living and purchasing power has rocketed over the last few decades, people are obviously able to buy more, but the older generation will always remember the hard times. Changing your scarcity mindset is incredibly difficult - I've wanted to declutter my house for at least 3 years, but it's really hard to actually do it, especially when you have the space to store things. Now just extrapolate that up to a whole society, collectively going through the same process, but because they're all in a similar mindset, that just reinforces the idea that this is normal and the right thing to do.
It's weird though. Whenever I'm walking down the road, and someone has their curtains open and the lights on and you can't help but look - whenever I see something really sparse - a sofa, a TV, maybe a cabinet or bookcase, I feel so jealous that I can't just do that myself. It's not like I even need to buy anything to make that happen, I just need to dispose of everything else!
Personally, I've made a plan to take at least one full carload of stuff to the tip and take a bag of stuff to a charity stuff over this Christmas holiday, just to try to start the ball rolling on changing my mindset. But I know it won't be easy, because I've had the same thoughts in previous years...
- I guess maybe mine is just too old from before they got this sorted.
From what I remember, mine always fully turns black then clears before rendering. Even big areas of the page that are white both before and after, there was always a full screen black flash. I wouldn't be at all bothered if it was just the areas with text that went fully black before clearing, but it's very jarring full screen.
- I have a few of these Kobo Touch readers that haven't been touched in years, so no idea if the batteries even still work. Even though I'd never tried them before, I got 3 as a local shop (WHSmiths in the UK) was having a clearance sale as they were being discontinued, so I got 3 of them for less than the price of 1 would normally cost, and I'd read they were quite hackable.
I really liked the idea of using them, and while I did take one on holiday once, I found that I just couldn't put up with the slow speed of page transitions and the screen flickering every page turn.
For the speed issue, if it's limited by the time to render a page, I wondered why they wouldn't just cache the rendered previously page and pre-generate the next page while you were reading the first.
I understand why the page flickers, but it always seemed to me that doing partial refreshes of the screen would be much better aesthetically. Maybe the more recent ones actually do that, although I got the impression that manufacturers had just moved back to LCD screens because people liked colours more than battery life. Certainly not long after I bought my Kobo, my mum upgraded from an e-ink Kindle to an LCD one which seemed like a step backwards to me, but she was much happier with it.
So, just wondering if any of the issues around page turning are addressed in this custom OS and app. If so, I'll dig around in my junk box to try it out. Otherwise I guess they're likely to stay there for another decade!
- > I'm still confused about why multiple clients would be pushing the same message
From the information given in the article, it states categorically that the relays do not ever connect to other relays (which makes you wonder why they even choose to misname them if they're not actually relaying anything).
It then continues saying that clients need to connect to multiple (but not more than a dozen) to be able to receive all content from anywhere. The only inference I can make from that is that a client is responsible to receiving a message from one "relay" and transmitting it to another.
The obvious question then is how does the client know if the other relays already have the message? There are two obvious options:
* The client informs the relay about every new message it receives from every other relay. That means each relay will be informed about each new message from the vast majority of the clients that connect to it, which is obviously going to be expensive. It would also put the burden on clients to remember which relays they've informed, and if they add a new relay, the client would presumably have to replay every message it knows just in case the relay is missing it.
* The other option is that the client has to query the relay for a list of every single message on the relay and only forward on new messages to the relay if the relay says it doesn't have it. This could potentially be even more expensive, and even if the client/relay maintain some kind of shared state, if the client tries another relay, it'd have to re-download the entire list of messages. Even if we're only talking about message IDs, that's a huge amount of data to download.
In any case, if relays will just accept any old message and rely on the clients to check they were signed correctly, then it stands to reason that any relay can be trivially DDoS by bombarding it with junk. The impression the article gives is that relays would never verify the authenticity of a message itself, because that would break their distributed model.
The article doesn't provide any detail about how its new "relay" solution works. It just stops abruptly after asserting that relays fix everything, with no explanation. This is exactly the reason why I said the article feels like it's cut short.
So, without any hints to its possible implementation, one can only speculate and I personally can't see any way in which this solution would be better than a peer-based solution where "relays" actually relay messages between themselves. It's possible that whatever the author has created is truly innovative and groundbreaking, but they haven't chosen to tell us why in the article.
- Even if the military plane had its transponder off, the civilian plane didn't. The military pilot had no justification for not knowing the civilian plane was there and at a minimum adjusting its altitude to make this a non issue.
- Reading the comments below make me feel like I should maybe be expected to already know what nostr is. But anyway, I don't and reading this article, it felt like it just suddenly cut off at the end.
It explained all the traditional approaches, which are all able to help discoverability and shareability of data between servers, and then says "the solution is relays" and then describes something that doesn't seem to be relaying anything. It sounds like a single dumb, untrusted message store on a single server that doesn't relay anything anywhere. It even specifically says "Relays don’t talk to each other, and users only need to join a small number of relays to gain autonomy—at least two, and certainly less than a dozen".
Not sure where the less than a dozen relay bit comes from. Are they expecting clients to do all the relaying between the relays? If so, wouldn't you get every relay getting pummeled by a load of clients simultaneously, all trying to push the same message. It sounds like the complete opposite of what you actually want. The article seems to just stop short at exactly the point when it should say how what they're proposing actually works.
- The real problem is that this question starts from what I think is a stupid premise.
If a startup that never had employees uses AI, should be it be taxed differently to a startup that never had employees that doesn't use AI? If so, what is the justification for that? It seems to me it can only be some hypothetical idea that humans might have been able to do some of the work at that company, even if they never have employed people to do that work.
Should a company be taxed more when it reduces employee count for any reason that doesn't involve AI? I'd say not, because otherwise you're forcing companies that are strapped for cash into near or actual bankruptcy instead of being able to downsize.
If a company should be taxed more for reducing employee count while also using AI, but not if they don't, wouldn't you just expect companies to outsource the AI component of the work to other companies?
It seems to me that the crux of this article is trying to find a justification to tax companies working in the AI space more without clearly articulating why.
Yes, the industries of today are going through a seismic shift, similar to the sewing revolution when sewers were losing jobs to machines, or when farm workers tilling the land by hand were replaced by machines, secretaries no longer being required as managers got computers and found it easier just to send an email themselves, etc.
In the near future, just as before, people whose skills are no longer required by industry will have to adapt to survive. But taxing industry just because it's becoming more efficient just has the effect of making that industry less competitive globally.
- > I have a few really good hardware ideas, but I don't believe I could ever market them fast enough and far enough to make it worth spending the R&D to make them happen.
Yeah, almost a decade ago I had a dream of creating a drone startup with some very specific tech that would have required several years of R&D to create. The end product would have been relatively cheap to manufacture, being basically a PCB with a large FPGA plus a bunch of relatively cheap sensors.
I actually got about 6 months into the project, and then realised that although it was a great project and if it worked well, I'd be able to make units for about 25% of a viable RRP and be able to recoup all my time doing R&D without an income with maybe 5k units in direct sales. And then it slowly dawned on me that if I could build it for 25% of a viable RRP, then the Chinese cloners could do it even cheaper, and all they'd have to do was reverse engineer the protection on the FPGA bitstream to clone it and clone a pretty simple PCB. At the time, the drone market was full of cloned components for a fraction of the price of the original price, or of open source projects sold for half the price of the official boards to support the project.
In such a situation, the only way to really survive is to innovate faster than the cloners can copy it, but that's kind of predicated on making a product that you know isn't what you want the final product to be from the start, so that you can drip feed the improvements into the market every time the previous version was cloned. That would also have the side effect of alienating the early adopters, as well as making new customers wonder how long it'd be before the new product was obsolete. Ultimately, I decided that realistically it wasn't viable to continue doing R&D for another couple of years, unsure if I'd actually be able to pay myself going forward.
- If you don't know their birthday, you can presumably never answer that question in any case.
If you only know the birth year and keyed 99 as the month for unknown, then your algorithm would determine they were of a correct age on the start of the year after that was true, which I guess would be what you want for legal compliance.
If you don't even know if the birth year is correct, then the correct process depends on policy. Maybe they choose any year, maybe they choose the oldest/youngest year they might be, maybe they just encode that as 0000/9999.
Again, if you don't know the birth year of someone, you would have no way of knowing their age. I'm not sure that means that the general policy of putting a birthday into their ID number is flawed.
Many governments re-issue national IDs to the same person with different numbers, which is far less problematic that the many governments who choose to issue the same national ID (looking at you USA with your SSN) to multiple individuals. It doesn't seem like a massive imposition on a person who was originally issued an ID based on not knowing when their birthday to be re-issued a new ID when their birthday was ascertained. Perhaps even give them a choice of keeping the old one knowing it will cause problems, or take the new one instead and having the responsibility to tell people their number had changed.
Presumably the governments that choose to embed the date into a national ID number do so because it's more useful for their purposes to do so than just assigning everyone a random number.
- > Norwegian PNs have your birth date (in DDMMYY format) as the first six digits. Surely that doesn't change, right? Well, wrong, since although the date doesn't change, your knowledge of it might. Immigrants who didn't know their exact date of birth got assigned 1. Jan by default... And then people with actual birthdays on 1 Jan got told, "sorry, you can't have that as birth date, we've run out of numbers in that series!"
To me, what your example really shows is the problem with incorrect default values, not a problem with encoding data into a key per se. If they'd chosen a non-date for unknown values, maybe 00 or 99 for day or month components, then the issue you described would disappear.
But in case, the intention for encoding a timestamp into a UUID isn't for any implied meaning. It's both to guarantee uniqueness with a side effect that IDs are more or less monotonically increasing. Whether this is actually desirable depends on your application, but generally if the application is as a indexed key for insertion into a database, it's usually more useful for performance than a fully random ID as it avoids rewriting lots of leaf-nodes of B-trees. If you insert a load of these such keys, it forms a cluster on one side of the tree that can the rebalance with only the top levels needing to be rewritten.
- I've got lots of travel stories, not of which are as impressive as most of the other stories here, because I was never in a situation where I needed help but I have definitely experienced strangers where I'm a foreigner in their country just randomly deciding they're going to be nice to me. Nothing earth shattering, but definitely things that were the highlight of that particular trip.
The most recent one was walking through an "ancient village" in China, looking around at all the cool houses and poking my head into the obviously shop ones. There was one shop (I think, I never did actually find out!) with a load of traditional instruments that you could see through the open front door and someone playing to the side of the door. I poked my head in, and they stopped playing as they were too embarrassed to play for an audience, but I had a bit of a chat with her in Chinese about the instrument - it was a guqin, and similar concept to the guzheng I'd had a couple of hours of lessons on as part of my language classes back home. (The difference is that guqin is more like a 7 string violin without frets, a guzheng is 21 strings each a different note). About a minute later, a guy popped in and explained that the woman was shy playing in front of others, and when she told him that I'd mentioned the other instrument, he sat down and said "I'll teach you to play!". Which he did for about 10 minutes and then said, "Follow me, pipe, pipe, pipe!" He then took me down a small street and into a different shop that turned out to be a school for bamboo flutes (called xiao), which are like reedless descant recorders, so you have to make the base sound with your lips. Despite knowing the fingering from learning the recorder as a kid, I only managed to produce a note about 20 or 30 times from 100+ attempts, but they were impressed anyway. He sat me down to drink tea, and brought it all the other students and teachers and just had an impromptu tea party. Despite being in a bit of a hurry by then as I needed to catch the bus back to where I was staying before they stopped running about 10pm, I ended up being there for about 3-4 hours. They were probably going to just be hanging around their studio anyway, and the cost of the tea they used was probably a dollar at most, but it was a unique experience for me to see something that probably the other thousand people who visited that day would walk past and didn't even know existed! Plus I got to practice my language skills in a completely different way than I'd done before.
One act of kindness from me in my early 20s, when I had a year travelling around Australia, was offering to buy a meal for a homeless guy begging outside McDonalds. It seemed such a simple thing, but it was clearly very transformative for him. Obviously, he would get some money each day from people throwing coins into his hat, but he said that about 90% of people walked past him and completely ignored him, and even the people that donated usually didn't even make eye contact. He told me it was the first real conversation he'd had with someone for about 5 years and for just a few dollars and 10 minutes of my time, I was able to make him feel that someone did actually see him as a real human being with his own story to tell. It definitely shaped me as a person too, because I saw how something so simple and easy for me made such a big difference to him.
- Presumably not, as it's a contractual thing when you upload something to Google Play. Not sure if there are rules about only uploading to Google Play if you use it at all.
I've no idea, but I presume it's not even possible to use the Google Play purchasing API if your app isn't on the Play store.
- Depending on the amount of inserts, it might be more efficient to create all the indexes in one go. I think this is certainly true for normal columns.
But I suspect with JSON the overhead of parsing it each time might make it more efficient to update all the indices with every insert.
Then again, it's probably quicker still to insert the raw SQL into a temporary table in memory and then insert all of the new rows into the indexed table as a single query.
- Shared the same in a comment below, but probably worth adding as a top level comment.
Google are doing exactly the same as Apple previously were doing, mandatory from end of next month - January 28, 2026.
Their new requirements: https://support.google.com/googleplay/android-developer/answ...
- I received an e-mail earlier this week saying that their new policies will be mandatory by January 28, 2026.
https://support.google.com/googleplay/android-developer/answ...
It's incredibly similar to what Apple had before.
- Similarly, for my e-mail server, I manually add spammers into my exim local_sender_blacklist a single domain at a time. About a month into doing this, I just gave up and added * @* .ru and that instantly cut out around 80% of the spam e-mail.
It's funny observing their tactics though. On the whole, spammers have moved from bare domain to various prefixes like @outreach.domain, @msg.domain, @chat.domain, @mail.domain, @contact.domain and most recently @email.domain.
It's also interesting watching the common parts before the @. Most recently I've seen a lot of marketing@, before that chat@ and about a month after I blocked that chat1@. I mostly block *@domain though, so I'm less aware of these trends.
My question is why does anybody have to be liable at all? Most normal people would consider this just to be a freak accident.
Sure, there's learning points that can be taken from it to prevent similar incidents - e.g. erecting a fetch around the field (why didn't you suggest that the field owner be liable) as it can be reasonably foreseen the situation of a ball escaping and being a nuisance to someone else (maybe it just startles someone on the road, maybe it causes a car crash, whatever), or legislating bars or plastic film on the barber's window, etc.
But here nobody seemed to act in any way negligently, nor was there any law or guidance that they failed to follow. It was just the result of lots of normal things happening that normally have no negative consequences and it's so unlikely to happen again that there's nothing useful to be gained by trying to put the blame on someone. It was just an accident.