Oddbean new post about | logout

Notes by Mario Zechner | export

 Played around with mach APIs a little to see how hard it is to inject code into a running process. Pretty similar to what you need to do on Windows.

Maybe this PoS code is helpful to others.

https://github.com/badlogic/macinject

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/112/815/886/760/725/644/original/e6bbd39b00742379.mp4 
 Fun fact: On ARM64, trivial functions may not have enough space for a long jump to a newly allocated memory area with new machine code.

Praise be x86_64 for its generous prologues and epilogues! 🫠

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/112/815/898/729/263/190/original/2eb0ea570c6d05c3.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/112/815/898/733/308/683/original/738ae9c0084ad2b6.png 
 Built a little BlueSky related thing these past two days. Let's you watch posts with a specific #hashtag in it live, as well as create a thread for that #hashtag yourself. Great if you want to comment on a TV show together with others.

https://skychat.social

The somewhat more interesting part: it's entirely running client-side. That includes sipping from the firehose. There's no libf or that yet, so here you go, ymmv:

https://github.com/badlogic/skychat/blob/main/firehose.ts

Also ... 
 Quite a few people sure were surprised to learn that all their posts can be read without a BlueSky account. Especially those who fled Xitter to be a bit more sheltered from harassers and nazis.

Welp. 
 For all its faults, Mastodon is the better platform for people who care about having control over their data. It's definitely not perfect in that regard either, but at least it tries.

Also, it has GIFs and videos and polls. Based on BlueSky's dev velocity, they'll have that sometime 2032. 
 The past two nights I wrote a "thread reader app" for BlueSky.

https://skyview.social

Oh boy. The protocol is absolutely insane. RPC galore, responses are only partially typed. The docs are pretty much useless.

But the "funniest" part is this: there's no privacy. And I don't mean missing DMs.

All your posts are available through API endpoints. Without any authentication. By design.

The "invite-only" thing may have you think otherwise.

Here are my last 100 posts.

https://bsky.social/xrpc/com.atproto.repo.listRecords?repo=badlogic.bsky.social&collection=app.bsky.feed.post

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/246/791/778/477/909/original/9070f60b3991b347.png 
 Quite a few people sure were surprised to learn that all their posts can be read without a BlueSky account. Especially those who fled Xitter to be a bit more sheltered from harassers and nazis.

Welp. 
 Hey, balkan bubble. Any croatian software developers here, that want to build a grocery price comparison site for Croatia (possibly based on my OSS work) and talk to Jutarnji list about it?

Just gave them an interview. They want to also hear from local software developers.

Please share. 
 Yay, the grocery price tracker project rewrite now almost has feature parity with the original project, while being much easier to "port" to other countries.

Few more nights and its ready. All you need to do is plug in your own scrapers (usually < 200 LOC) and translate strings.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/184/034/467/474/248/original/689869a194b62d42.png 
 nostr:npub19s0k0k3a2svnra9j5rdlagsr0ymz7vqspmzryt6md565q289ulwq4l7f5q nostr:npub13065syh7jvy2arqq... 
 @50b353e9 @2c1f67da @8bf54812 I'm currently finishing a rewrite which should make it easier for folks in other countries to plug in scrapers for local stores and do i18n. I'll post about it here once it's ready. 
 There's now a grocery price tracking tool for Australia based on my little thing. Created by @e7ee3334 

https://hotprices.org/ 
 Day 6 of Rona: Not testing positive anymore still feel blargh. Spent most of the day with the boy outside, so my better half can rest properly. 

Wow, this sucks. 
 nostr:npub1kzg2dwt8wqv9fq7z6zvhswx9aa802xllassnkaqnmftwxru0ucjqf95k6a nostr:npub10r22zfd5vhjqaajm... 
 @43d7c4ea @b090a6b9 it wasn't a lot of work, and it was 3 people, with me doing the bulk of the work. This is easily reproducible. 
 I'm glad to learn that grocery stores fuck over their customers all over the world, including but not limited to Canada, Switzerland, Spain, New Zealand and Australia. 
 Yeah, the irony of sending grocery vouchers for the same grocery stores that I go up against with my platform is not lost on me.

Anyways, we've been able to send out ~4500 vouchers in a bit over a year to as many families. That's about €220,000 worth of donations.

~6000 families have signed up with us, about 1500 are still waiting for a voucher.

If you can spare some money, here you go:
https://cards-for-ukraine.at/donate

The latest batch went out today. CW link to shitbird site

https://twitter.com/badlogicgames/status/1702670312981049561

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/750/609/670/451/original/be40aaaaafabdb50.png 
 Oh, and if you want to do this for your own country, you can re-use what we build so far!

https://github.com/badlogic/heissepreise

Happy to help if you need guidance! Adding a store is usually less than 200 LOC if they have a search API in their web store.

https://github.com/badlogic/heissepreise/blob/main/stores/billa.js 
 I don't have a sound cloud, but I have another little project.

https://cards-for-ukraine.at/

We have a charity where we ask for donations which we convert into €50 grocery vouchers for Ukrainian families that fled to Austria. Our state fails them as well.

We are zero overhead, every cent goes towards the vouchers. We pay the rest (envelops, stamps, printer cartridges, etc.)

We are 100% transparent, all contracts/orders/bills/payments here:

https://drive.google.com/drive/folders/1PxOL8A44bIRU1Hdoq87_2iXSLNmnMXQr?usp=drive_link

Bunch of friends doing stuff.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/730/154/213/764/original/186dfad105628f64.jpeg

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/733/851/911/754/original/e2b1b6848d5294d4.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/737/614/041/439/original/e7793ac694abd0dc.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/738/541/084/138/original/ab704435b5f4c640.jpeg 
 Yeah, the irony of sending grocery vouchers for the same grocery stores that I go up against with my platform is not lost on me.

Anyways, we've been able to send out ~4500 vouchers in a bit over a year to as many families. That's about €220,000 worth of donations.

~6000 families have signed up with us, about 1500 are still waiting for a voucher.

If you can spare some money, here you go:
https://cards-for-ukraine.at/donate

The latest batch went out today. CW link to shitbird site

https://twitter.com/badlogicgames/status/1702670312981049561

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/750/609/670/451/original/be40aaaaafabdb50.png 
 And that was my story. Thank you for coming to my TED talk. And don't spend your holiday money in Austria, we suck. 
 I don't have a sound cloud, but I have another little project.

https://cards-for-ukraine.at/

We have a charity where we ask for donations which we convert into €50 grocery vouchers for Ukrainian families that fled to Austria. Our state fails them as well.

We are zero overhead, every cent goes towards the vouchers. We pay the rest (envelops, stamps, printer cartridges, etc.)

We are 100% transparent, all contracts/orders/bills/payments here:

https://drive.google.com/drive/folders/1PxOL8A44bIRU1Hdoq87_2iXSLNmnMXQr?usp=drive_link

Bunch of friends doing stuff.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/730/154/213/764/original/186dfad105628f64.jpeg

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/733/851/911/754/original/e2b1b6848d5294d4.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/737/614/041/439/original/e7793ac694abd0dc.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/738/541/084/138/original/ab704435b5f4c640.jpeg 
 First of all, the minister initially planned to create a price comparison platform "himself". This would have meant that some company he's buddy buddy with would have gotten a million Euro contract and delivered an abmysal failure of a system.

He's now given up on that.

The second upside: as soon as media coverage of our efforts picked up, the price hikes stopped for the most part. I'm obviously not entirely attributing this to our work. But I like to think we played a part in it. 
 And that was my story. Thank you for coming to my TED talk. And don't spend your holiday money in Austria, we suck. 
 Remember the chain of command. The minister decides what actually gets done.

And that minister is a member of the conservative party. You can already guess what gets done, right?

His plan:
1. The grocery chains must publish data. But only for a hand-picked list of basic products. Not the entire sortiment, like we do now.
2. Platform owners can be sanctioned/sued if they display the data the wrong way.

There's are only two up-sides in all of this. 
 First of all, the minister initially planned to create a price comparison platform "himself". This would have meant that some company he's buddy buddy with would have gotten a million Euro contract and delivered an abmysal failure of a system.

He's now given up on that.

The second upside: as soon as media coverage of our efforts picked up, the price hikes stopped for the most part. I'm obviously not entirely attributing this to our work. But I like to think we played a part in it. 
 The suggestion by the competition authority to the minister was great:

1. Using the data should be made legal by the legislature for certain parties, including price comparison platforms and academic institutions.
2. Grocery chains of a certain size must publish all their data in real-time according to a predefined scheme with all necessary meta data to make things comparable and allow matching of products across stores.

Fantastic! Or so I thought. 
 Remember the chain of command. The minister decides what actually gets done.

And that minister is a member of the conservative party. You can already guess what gets done, right?

His plan:
1. The grocery chains must publish data. But only for a hand-picked list of basic products. Not the entire sortiment, like we do now.
2. Platform owners can be sanctioned/sued if they display the data the wrong way.

There's are only two up-sides in all of this. 
 And they also officially said it's very likely the grocery chains use automated systems to follow each other in prices.

No word on the other data. We'll find out what they think end of October when the full report is scheduled to be released.

Now, here's how the chain of command works in this sector.

The competition authority is apolitical but under the reign of the politically appointed minister of economics. They can only report and suggest to him.

He then decides what gets done. 
 The suggestion by the competition authority to the minister was great:

1. Using the data should be made legal by the legislature for certain parties, including price comparison platforms and academic institutions.
2. Grocery chains of a certain size must publish all their data in real-time according to a predefined scheme with all necessary meta data to make things comparable and allow matching of products across stores.

Fantastic! Or so I thought. 
 I'm but a lowly computer nerd and lay person, and not someone with an economics degree. I simply handed the data over in the hopes their experts would figure this shit out.

Well. Today they presented their first preliminary report.

In it, they basically copied my long ass email with answers to their questions from earlier more or less verbatim. They agreed with my conclusions regarding what needs to be done on the legal and technical site.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/669/285/478/026/original/1e5d0fd84bcb928e.png 
 And they also officially said it's very likely the grocery chains use automated systems to follow each other in prices.

No word on the other data. We'll find out what they think end of October when the full report is scheduled to be released.

Now, here's how the chain of command works in this sector.

The competition authority is apolitical but under the reign of the politically appointed minister of economics. They can only report and suggest to him.

He then decides what gets done. 
 The basic gist of that feedback:
- Legal: it must be legal for us to crawl and publish the price data the stores put out on the web in their online stores
- Technical: ideally, stores would be forced to put that data out in a normalized form, so matching and comparisons become easier. We already did that ourselves though, with some data science and heuristics, so no biggie if that doesn't happen.

Besides that feedback, I also send them a shitton of data and patterns I found. 
 I'm but a lowly computer nerd and lay person, and not someone with an economics degree. I simply handed the data over in the hopes their experts would figure this shit out.

Well. Today they presented their first preliminary report.

In it, they basically copied my long ass email with answers to their questions from earlier more or less verbatim. They agreed with my conclusions regarding what needs to be done on the legal and technical site.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/669/285/478/026/original/1e5d0fd84bcb928e.png 
 All that media coverage of my platform and the platforms of other people, with whom I've started to converse and who've became friends of sorts, triggered the competition authority of Austria.

You know, the guys and gals who's job it is to sniff out anti-competitive behaviour, cartels, price gauging and coordination and so on.

They contacted all of us to ask what we'd need to continue doing our work. They actually saw value in that.

We provided them with a shit ton of feedback. 
 The basic gist of that feedback:
- Legal: it must be legal for us to crawl and publish the price data the stores put out on the web in their online stores
- Technical: ideally, stores would be forced to put that data out in a normalized form, so matching and comparisons become easier. We already did that ourselves though, with some data science and heuristics, so no biggie if that doesn't happen.

Besides that feedback, I also send them a shitton of data and patterns I found. 
 Of course you do, cause you are a smart cookie.

While their claim that they decreased the regular price is correct, they also increased the discounted price that comes into play every other X weeks/days.

So they are again technically correct: the regular price was decreased.

But on average, a consumer pays more if they buy the product every week, as the discounted price has been increased. The average is higher than before.

Sneaky. 
 All that media coverage of my platform and the platforms of other people, with whom I've started to converse and who've became friends of sorts, triggered the competition authority of Austria.

You know, the guys and gals who's job it is to sniff out anti-competitive behaviour, cartels, price gauging and coordination and so on.

They contacted all of us to ask what we'd need to continue doing our work. They actually saw value in that.

We provided them with a shit ton of feedback. 
 But there's a more "nefarious" kind of price decrease.

As I said, Austria is a country of insane amounts of cyclic discounts. Many products will be sold for their "regular" price for one week and a discount price the other.

The real price for the consumer is the average of the regular and discounted price.

Given this knowledge, do you notice something with the prices for this product the grocery chain claims to have decreased the regular price on?

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/634/020/369/009/original/c199f87051fe1f97.png 
 Of course you do, cause you are a smart cookie.

While their claim that they decreased the regular price is correct, they also increased the discounted price that comes into play every other X weeks/days.

So they are again technically correct: the regular price was decreased.

But on average, a consumer pays more if they buy the product every week, as the discounted price has been increased. The average is higher than before.

Sneaky. 
 And lo and behold. There was fun to be had.

There are products that are cyclic in their price changes. E.g. this axe shower gel, which they listed as having a lower price now.

Yeah, you lowered the price from 3.99 to 2.99. But that follows the exact pattern this product's price had over the last couple of years.

Technically correct. But not a permanent price decrease.

Second picture is another example of that.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/615/851/515/018/original/cc86e3efc587b18c.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/626/432/866/695/original/d44397a5968ca176.png 
 But there's a more "nefarious" kind of price decrease.

As I said, Austria is a country of insane amounts of cyclic discounts. Many products will be sold for their "regular" price for one week and a discount price the other.

The real price for the consumer is the average of the regular and discounted price.

Given this knowledge, do you notice something with the prices for this product the grocery chain claims to have decreased the regular price on?

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/634/020/369/009/original/c199f87051fe1f97.png 
 The spot check showed that their claims were true on the surface.

But I'm a stickler for data, so I looked a bit closer.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/610/384/505/474/original/9889807e3820ecf8.png 
 And lo and behold. There was fun to be had.

There are products that are cyclic in their price changes. E.g. this axe shower gel, which they listed as having a lower price now.

Yeah, you lowered the price from 3.99 to 2.99. But that follows the exact pattern this product's price had over the last couple of years.

Technically correct. But not a permanent price decrease.

Second picture is another example of that.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/615/851/515/018/original/cc86e3efc587b18c.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/626/432/866/695/original/d44397a5968ca176.png 
 The grocery chains got a little iffy about all that somewhat negative media coverage, some of which was spurred by my continued analyses.

They started to put out these things in the store. It basically says "We've already lowered the prices of 450 products for you this year". With a sortiment of 22000.

They were also dumb enough to put out a machine readable PDF with all the products they lowered the price for.

With a little data science magic, I was able to match those with my database...

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/602/081/065/596/original/a313072d9493f2d7.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/605/501/802/858/original/3bc9eedfa2bc4ea8.png 
 The spot check showed that their claims were true on the surface.

But I'm a stickler for data, so I looked a bit closer.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/610/384/505/474/original/9889807e3820ecf8.png 
 Given the historical data I had, I was able to also check for patterns in the discounts they give. How often, how high.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/593/115/488/284/original/9efec2295b4d62e2.mp4 
 The grocery chains got a little iffy about all that somewhat negative media coverage, some of which was spurred by my continued analyses.

They started to put out these things in the store. It basically says "We've already lowered the prices of 450 products for you this year". With a sortiment of 22000.

They were also dumb enough to put out a machine readable PDF with all the products they lowered the price for.

With a little data science magic, I was able to match those with my database...

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/602/081/065/596/original/a313072d9493f2d7.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/605/501/802/858/original/3bc9eedfa2bc4ea8.png 
 If I were trying to describe it in more flowerly terms: It's asymmetric information war fare.

The stores tell you they are good and benevolent and only have your interest at heart, so here are discounts. Discounts for everyone. They even gamified the whole thing with stickers. I shit you not. People collect stickers they put on the products in the convery belt at the register. There's also apps, which will give them all info on you

In reality it makes it impossible to know how much things cost 
 Given the historical data I had, I was able to also check for patterns in the discounts they give. How often, how high.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/593/115/488/284/original/9efec2295b4d62e2.mp4 
 Then I looked at an aspect pretty unique to Austria: discounts.

You see, in a normal country, with a competitive grocery market, you usually have about 10%-20% of products that get discounted on average.

In Austria, that rate is 40%. It's a fantastic way to obfuscate the actual price of a product. As a customer, you'll never know what you'll pay on that day until you see the current discounts directly in the store.

The chains are very generous and will send you discount leaflets via mail. 
 If I were trying to describe it in more flowerly terms: It's asymmetric information war fare.

The stores tell you they are good and benevolent and only have your interest at heart, so here are discounts. Discounts for everyone. They even gamified the whole thing with stickers. I shit you not. People collect stickers they put on the products in the convery belt at the register. There's also apps, which will give them all info on you

In reality it makes it impossible to know how much things cost 
 Then I looked at an aspect pretty unique to Austria: discounts.

You see, in a normal country, with a competitive grocery market, you usually have about 10%-20% of products that get discounted on average.

In Austria, that rate is 40%. It's a fantastic way to obfuscate the actual price of a product. As a customer, you'll never know what you'll pay on that day until you see the current discounts directly in the store.

The chains are very generous and will send you discount leaflets via mail. 
 We could also show that the exact same product cost up to 40% less in Germany, a country with higher mean income and higher cost of living.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/552/903/537/173/original/9b3295ed513368b0.png 
 @80f08b97 you know the law. Everytime I entertain you with my bullshit, you must donate to the charity and spread the word. 

I don't make the rules.

https://cards-for-ukraine.at/donate 
 We could show shrinkflation, meaning products with less content are sold for the same or even higher price.

Examplified by e.g. laundry detergent.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/549/312/442/426/original/f114274365ca43a6.png 
 We could also show that the exact same product cost up to 40% less in Germany, a country with higher mean income and higher cost of living.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/552/903/537/173/original/9b3295ed513368b0.png 
 This wasn't only happening in the low-price chain-brand segment. It also happened in the mid-range segment of self-branded goods.

And it all started happening when inflation went through the roof.

Clearly, something was up. My guess was: tacit collusion, meaning, oligopolic price coordination without explicit coordination.

Meanwhile, others have build platforms like I did as well. And they too saw these patterns.

There were more.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/527/018/507/265/original/5089f7d5a5939793.png 
 We could show shrinkflation, meaning products with less content are sold for the same or even higher price.

Examplified by e.g. laundry detergent.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/549/312/442/426/original/f114274365ca43a6.png 
 E.g. given the historical data, I could see price movements for a product across the two chains. And you won't believe what I found (well, you know what's coming...)

Them fine grocery chains changed the prices of the self-branded low cost products with one to two days, or even on the same day. And they both came up with the exact same price.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/514/351/551/937/original/80a37e6d400ecb14.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/516/459/158/757/original/3a1cbcf3cc3e1777.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/517/372/390/085/original/23faf5a79dceb321.png 
 This wasn't only happening in the low-price chain-brand segment. It also happened in the mid-range segment of self-branded goods.

And it all started happening when inflation went through the roof.

Clearly, something was up. My guess was: tacit collusion, meaning, oligopolic price coordination without explicit coordination.

Meanwhile, others have build platforms like I did as well. And they too saw these patterns.

There were more.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/527/018/507/265/original/5089f7d5a5939793.png 
 My first analysis actually happened before I build the platform. I was manually comparing prices of products the stores themselves offer in the lowest price segment. Things like grocer store brand milk or flour.

I compared 40 product pairs across the two biggest chains. And lo and behold: their prices matched exactly to the cent!

An NGO picked this up on Twitter and did the analysis for 600 product pairs. Same picture.

With my platform in place, I could do more advanced stuff. 
 E.g. given the historical data, I could see price movements for a product across the two chains. And you won't believe what I found (well, you know what's coming...)

Them fine grocery chains changed the prices of the self-branded low cost products with one to two days, or even on the same day. And they both came up with the exact same price.

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/514/351/551/937/original/80a37e6d400ecb14.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/516/459/158/757/original/3a1cbcf3cc3e1777.png

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/517/372/390/085/original/23faf5a79dceb321.png 
 I scrambled to integrate his data into my platform. I added analytics tools. And then I ran my first few analyses. And my jaw dropped.

"Well, that's a bit to much of a price increase even given higher energy prices."

So I started to dig. And boy did I find a lot of things...

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/495/019/054/782/original/35ca1d17ec19c69a.png 
 My first analysis actually happened before I build the platform. I was manually comparing prices of products the stores themselves offer in the lowest price segment. Things like grocer store brand milk or flour.

I compared 40 product pairs across the two biggest chains. And lo and behold: their prices matched exactly to the cent!

An NGO picked this up on Twitter and did the analysis for 600 product pairs. Same picture.

With my platform in place, I could do more advanced stuff. 
 Then we also got German and Slovenian stores. Then we normalized product categories across stores and added some light data science techniques to match the same or similar products across stores to make prices more easily comparable. You know, iterative improvements.

And then some anomymous guy in Twitter send me the data he crawled for the two biggest chains. Starting in 2017. And that's when thinga really got interesting... 
 I scrambled to integrate his data into my platform. I added analytics tools. And then I ran my first few analyses. And my jaw dropped.

"Well, that's a bit to much of a price increase even given higher energy prices."

So I started to dig. And boy did I find a lot of things...

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/495/019/054/782/original/35ca1d17ec19c69a.png 
 The whole thing runs client-site. The server fetches the latest data from the stores once a day. All data fits into 5mb of gzipped JSON. Small enough for the client to do anything. The server just serves 8 static files. It can handle serve all of Austria easily and could be scaled trivially. It's just static files.

Being the idiot I am, I also made it open-source:
https://github.com/badlogic/heissepreise

And as usual, people flocked to it and contributed. In no time we had all stores in Austria in there. 
 Then we also got German and Slovenian stores. Then we normalized product categories across stores and added some light data science techniques to match the same or similar products across stores to make prices more easily comparable. You know, iterative improvements.

And then some anomymous guy in Twitter send me the data he crawled for the two biggest chains. Starting in 2017. And that's when thinga really got interesting... 
 All these orgs only had their self-interest in mind. After two weeks of this bullshit, I figured I might as well gamble and put this thing up in my own name.

Surely the grocery chains won't sue me. The bad PR would easily outweigh whatever little inckme loss they'd suffer from a few hundred people using the site to find the cheapest product.

You see, I'm basically just crawling the stores online stores. Most of them have an API. I then normalize the data across the stores, and expose it. 
 The whole thing runs client-site. The server fetches the latest data from the stores once a day. All data fits into 5mb of gzipped JSON. Small enough for the client to do anything. The server just serves 8 static files. It can handle serve all of Austria easily and could be scaled trivially. It's just static files.

Being the idiot I am, I also made it open-source:
https://github.com/badlogic/heissepreise

And as usual, people flocked to it and contributed. In no time we had all stores in Austria in there. 
 Here's a selection of media coverage of the entire thing.

https://heisse-preise.io/media.html

It spread like wild fire and made the minister look like an idiot.

I took the thing down in fear of retaliation by the grocery chains. My plan: get a big NGO, news outlet or political party to host the thing and be a legal shield for the endevour.

Almost every NGO, media outlet and political party got in contzct with me (not the other way around). There were lots of promises and big words but zero action. 
 All these orgs only had their self-interest in mind. After two weeks of this bullshit, I figured I might as well gamble and put this thing up in my own name.

Surely the grocery chains won't sue me. The bad PR would easily outweigh whatever little inckme loss they'd suffer from a few hundred people using the site to find the cheapest product.

You see, I'm basically just crawling the stores online stores. Most of them have an API. I then normalize the data across the stores, and expose it. 
 the responsible minister claimed it's an immense task and will take til autumn. It will  only include 16 product categories (think flour, milk,etc.). And it will only be updated once a week.

Given how Austria works, some corp close to the minister would have gotten the contract for a million on two to create a POS just enough so the minister can say "look, I did something!"

Well. I heard that and build a prototype for all products of the two biggest chains in 2 hours. The media picked it up...

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/423/805/824/503/original/df6ba82cf8856376.jpeg 
 Here's a selection of media coverage of the entire thing.

https://heisse-preise.io/media.html

It spread like wild fire and made the minister look like an idiot.

I took the thing down in fear of retaliation by the grocery chains. My plan: get a big NGO, news outlet or political party to host the thing and be a legal shield for the endevour.

Almost every NGO, media outlet and political party got in contzct with me (not the other way around). There were lots of promises and big words but zero action. 
 Today was ... interesting. If you followed me for the past months over on the shitbird site, you might have seen a bunch of angry German words, lots of graphs, and the occassional news paper, radio, or TV snippet with yours truely. Let me explain.

In Austria, inflation is way above the EU average. There's no end in sight. This is especially true for basic needs like energy and food.

Our government stated in May that they'd build a food price database together with the big grocery chains. But.. 
 the responsible minister claimed it's an immense task and will take til autumn. It will  only include 16 product categories (think flour, milk,etc.). And it will only be updated once a week.

Given how Austria works, some corp close to the minister would have gotten the contract for a million on two to create a POS just enough so the minister can say "look, I did something!"

Well. I heard that and build a prototype for all products of the two biggest chains in 2 hours. The media picked it up...

https://cdn.masto.host/mastodongamedevplace/media_attachments/files/111/071/423/805/824/503/original/df6ba82cf8856376.jpeg