This article skips a few important steps - how a faster CPU will have a demonstrable improvement on developer performance.
I would agree with the idea that faster compile times can have a significant improvement in performance. 30s is long enough for a developer to get distracted and go off and check their email, look at social media, etc. Basically turning 30s into 3s can keep a developer in flow.
The critical thing we’re missing here is how increasing the CPU speed will decrease the compile time. What if the compiler is IO bound? Or memory bound? Removing one bottleneck will get you to the next bottleneck, not necessarily get you all the performance gains you want
I wish I was compiler bound. Nowadays, with everything being in the cloud or whatever I'm more likely to be waiting for Microsoft's MFA (forcing me to pick up my phone, the portal to distractions) or getting some time limited permission from PIM.
The days when 30 seconds pauses for the compiler was the slowest part are long over.
The circuit design software I use, Altium Designer, has a SaaS cloud for managing libraries of components, and version control of projects. I probably spend hours a year waiting for simple things like "load the next 100 parts in this list" or "save this tiny edit to the cloud" as it makes API call after call to do simple operations.
And don't get me started on the cloud ERP software the rest of the company uses...
Compiler is usually IO bound on windows due to NTFS and the small files in MFT and lock contention problem. If you put everything on a ReFS volume it goes a lot faster.
I've seen a test environment which has most assets local but a few shared services and databases accessed over a VPN which is evidently a VIC-20 connected over dialup.
The dev environment can take 20 seconds to render a page that takes under 1 second on prod. Going to a newer machine with twice the RAM bought no meaningful improvement.
They need a rearchitecture of their dev system far more than faster laptops.
I got my boss to get me the most powerful server we could find, $15000 or so. In benchmarks there was minimal benefit and sometimes a loss going with more than 40 cores even though it has 56. (52? - I can't check now) sometimes using more cores slows the build down. We have concluded that memory bandwidth is the limit, but are not sure how to prove it.
i have not (above machine was a intel), someone else did get a threaeripper though I don't know which. He reborted similar numbers though I think he was able to use more cores still not all.
The larger point is the fastest may not be faster for your workload so benchmark before spending money. Your workload may be different.
I don’t think that we live in an era where a hardware update can bring you down to 3s from 30s, unless the employer really cheaped out on the initial buy.
Now in the tfa they compare laptop to desktop so I guess the title should be “you should buy two computers”
Another thing to keep in mind when compiling is adding more cores doesn't help with link time, which is usually stuck to a single core and can be a bottleneck.
At no point did anything say when I was creating stacks that this info would be public for other users of the site! I was shocked to find what I’d been ranking (which luckily was just chip flavors) available for anyone to see. What if I’d tried putting clients to evaluate in there?
You can’t just collect personal data and share it like that!
Their privacy policy does say "When you create a Stack, please be aware that all content you input is public and can be viewed by anyone.", but I agree, it's super unintuitive that this is the case.
The "Create Stack" button should probably say "Publish Stack".
(and ideally also an "unlisted" checkbox, which generates you a uuid-based sharing URL)
One thing this article doesn’t mention is how this all falls apart when you spend time in more than one country.
My UK bank (Barclays) won’t let me install their app on my US iPhone (i.e. my phone that uses a US based iCloud account). Tesco won’t let me use their loyalty app. I can’t install an app that’ll let me order Starbucks or McDonalds in the UK (I only have access to the US versions of these apps). I can’t watch Star Trek because the US paramount plus app detects I’m in the UK and I can’t install the UK version.
I could switch to a UK iCloud account but then when I’m in the states everything falls apart the other way round.
I recently travelled to Europe and found that a number of transportation apps disallowed me installing them. Toll road apps, public transit, etc…
It was a major pain, and to make it worse I got fined €130 by Ausfinag for not paying tolls, but I couldn’t install their app and I bought the wrong sticker at the gas station because as it turns out there are a bunch of special areas with additional tolls above the base toll. I tried my best to comply but the system is totally user hostile.
Also as a tourist, I’m glad that DB app just works for me to register and buy tickets so easily with out hassle (though their trains scheduling is the problem)
There is a country wide sticker/digital vignette you can get for different periods of time and a handful of tunnels that cost extra money that you can pay in cash or by card at the time you drive through one of those. How is that a mess?
Of course a system like Germany where you don't have any tolls is even easier but compared to France or Italy where you constantly have to pull over for toll stops and end up paying a multiple more for most trips I think this is pretty great
You can’t jump the toll gates in Italy, so even if I am a completely clueless tourist it is easy to comply with the laws.
What gets me is that I bought the Vignette but didn’t know there was an additional toll and a 130€ fine seems pretty large for the infraction severity. I would be more OK if the police pulled me over and gave me the ticket, but the cameras just scanned my license plate and sent me an automated fine. If the system was trying to enforce compliance instead of punishing me they could have just sent me a bill for the toll I didn’t pay (which was a few €).
My ugly solution to this problem is to have a free Oracle Cloud VM in the other country that I use to run a VPN (Oracle provides instructions [1]). I then connect to this using OpenVPN on my phone, which allows me have a Google account that thinks I am in the other country and so allows me to install apps that are restricted to that country. I don't have the VPN connected all the time - only when I want to access the App Store using the Google account that I have for the other country.
To be a little pedantic, your solution is a solution to your problem, but only a fraction of the problem you're responding to. Your VPN won't help access the UK apps that require a UK phone localization if those same services aren't also available in the region of your VPN exit node. And since he's talking about UK-specific apps and services, VPNing his US phone back to the US isn't any help.
This is essentially what's known as 'digital migration'[1] in mainland China. Many streaming services aren't available in China; foreign companies that do operate here often have their features reduced. So, apart from buying foreign SIM cards and using multiple Apple accounts, we typically subscribe to something called 'airports,' which provide standardized, open-source VPN protocols with servers (called 'nodes') in various regions. Besides bypassing internet censorship, these nodes often use residential broadband and specify which streaming and LLM services they can unlock.
I recently complained to my local cities transportation office that their mobile app for bus tickets was only available for German Google users. The actually changed it now.
When I was young in Europe the trend was that the place where you live will dictate and limit less and less of your life. Technology, traveling, motivation of people will allow roaming, postcode independent existence.
Well, the trend froze up very fast and is in full reverse nowadays, I am in my early 50s and I believe me and my children's life will such more and more, be even more difiicult by the reverse of intents towards a more unified humanity. The law and all working with law will remain a big fucking barrier even if the representatives the people choose to form their life (politicians) would magicly become nice and selfless and efficient, they fight hard to do business the same shitty way as 100s of years ago, all differenty in all puny geographic regions, in as much diverse as possible, as incompetible with each other as possible. And several happily collaborate as it is a fix income to do unoptimal and fragmented way, happily waste our resources providing services in this muddy water.
Not just freedom of living and work, but things even more basic:
Have you tried crossing the border with Germany or Austria by train? You'll most likely get a mini deportation squad on board, despite all agreeing to Schengen Convention.
> I could switch to a UK iCloud account but then when I’m in the states everything falls apart the other way round.
If it’s only two countries, you can sign in and out of the App Store only with two regions. This is how I maintained a Japan and US region account on the same device. The thing that sucks is changing between accounts for updates, but it does work to some degree.
That might also be because it's not legal to geoblock consumers within the "single european market" EU strategy thing. The bank might have not blocked German residents from using their UK bank account before and now they noticed there's no reason to bother people with geoblocking and so it still works after the UK broke out of the EU
You can also sideload or use something like Aurora Store to access Play Store content without restrictions. Yet another reason iOS is a nonstarter for me.
I don't see why I should even have to set up multiple accounts. For the vast majority of these apps, I see no reason they need to be geo-locked anyway.
Yep, as someone who also travels between countries regularly, it's complete nonsense. "This app isn't available in your region" - what do you mean, I am literally in your region.
The sad part is sometimes just switching languages/locales on your phone (i.e. changing the language from US English to British English) fixes this as it's all the code checks.
You can add multiple Google accounts - one for each country, and switch between them on the Play Store. That's how I'm able to access apps from my home country and resident country.
As for using the apps themselves, you might run into issues depending on what restrictions they have - IP address, SMS verification, etc.
I have two Google accounts, one in the us, one in Germany. So far that has divided to get around this for the apps I encountered it. But I'm not a heavy phone user...
I can't buy overnight bunk tickets on Ukrainian trains anymore because I need to authenticate, and the only authentication methods require either Ukrainian citizenship or residency cards.
I can't install the app for my new Amex card because my Google account was opened in Canada and I live in Germany now.
And it keeps getting worse every year. I'm worried that eventually my American and Canadian banking apps will stop working...
The internet was supposed to make this shit simpler.
> I can't buy overnight bunk tickets on Ukrainian trains anymore because I need to authenticate, and the only authentication methods require either Ukrainian citizenship or residency cards.
In fairness, that specific case is probably intentional. They have quite limited train capacity as all passenger air travel was forced to switch to trains/busses, and I suspect they're trying to save it for locals. It is annoying though; I've been to Ukraine quite a few times recently and have used that app myself.
It's actually to stop buying and selling tickets on the secondary market, which is fair. It's just the tech mismatch causing unintended consequences. Even the guys at Privatbank were shaking their heads at the absurdity (and they're the ones who run one of the authentication mechanisms. Even having a bank account there in your name is not enough).
I had to keep two phones for this purpose[0] and pay two cellphone bills, one in the USA and one in the UK. It helped when traveling in Europe though because then you are only paying UK data rates, not USA-on-vacation rates.
It is still an insane situation, though.
[0] LloydsTSB had the same restriction on app store
You can purchase data-only sims that last a couple of years in the UK with generous monthly data allowances for a one time upfront fee. May save you overpaying for two separate bills.
If you create multiple Apple accounts in different regions, you can switch to that regions app store in the App Store app (this doesn't have to do with your iPhone iCloud account) by logging in to the relevant account.
I have a US and an Aus Apple Account, and I switch the account on App Store to get apps that are region locked.
Yes, I've long given up trying to reconcile this mess and bought three separate cell phones with three separate sim cards to for the three countries where I spend non-trivial amount of time.
I have an account at a credit union that only offers SMS 2FA, and requires it for every login. I can't connect to that phone number when I'm abroad, so I can't access my account.
Have you considered getting a voip number? Google Voice, Twilio, etc.
As an aside, I think it's insane that banking apps almost always have 2FA via SMS, which is known to be less secure than a TOTP authenticator, whereas my Nintendo account has TOTP 2FA, and passkey support. Heaven forbid I want more security options for my banking than for my videogames.
AFAIK this is only a problem on iPhone, not Android?
Note: I have an iPhone. It sucks. Same issue. I have bank accounts in other countries. The app needs an update. To install the update I have to switch countries on my account which instantly voids any and all subscriptions through Apple. It's insane.
It's even more crazy that every single Apple employee I know has this issue but for whatever reason it's not fixed.
Searching "<city> transport app" with large cities, the first restricted example I found is for Sheffield, which is limited to the UK: https://play.google.com/store/apps/details?id=com.yorcard.ts... . (It's the official app, the contact email ends .gov.uk.)
I feel your pain. I’ve been dealing with this since 2011. The thing that makes it even worse is subscriptions. You can’t switch app stores while you have subscriptions.
Good point. How do you ensure that the APK for your banking app is authentic on the Play Store?
Maybe we should ask all banks to publish their apps via F-Droid build service so the build hashes on both the Play Store and its mirrors can be checked for third-party modification.
My bank publishes a Play Store link to their app on their website. If I assume that Google would not maliciously hijack their app ID, I can assume that the app is authentic.
Expecting my bank to listen to suggestions about publishing hashes for F-Droid users is not realistic, so assuming that they would never do this, how would I verify the app outside of the Play Store?
I’m really curious about the number of requests you end up making. I’d imagine that this would get expensive fast in a web app - AWS charge $0.40 per million read requests, so if you’re seeing ten request to your app server a second and that ends up making a hundred requests to S3, that’s going to come in at at about $34 a day!
We don't use it for anything interactive or user-facing, it's too slow for that. It's for some large+cold data that is used in batch analysis jobs that need to query out a small subset of the data using relatively complicated indexed queries. We probably don't get more than a few thousand queries per day through the system which is no big deal and basically free, but migrating this cold data to S3 allowed me to save a few terabytes in our expensive SQL Server cluster which is a big deal.
A lot of this article seems to be conflating two things:
1. The ability for the code to process the error and recover from it
2. The ability to sensibly log, trace, and later for a human to understand the error after the fact
The later of these is best handled by using a tracing library systematically throughout your code to spit out open telemetr and “logging” the error within your local span. You can then debug the problem with a tool like honeycomb which’ll give you a much clearer idea of what’s going on. Having tracing in place will also help you debug in cases where you don’t have errors but your system is running slowly, doing something unexpected, etc.
This greatly reduces the problem domain you have to solve in actual error handling to just having the computer recover when something is recoverable. And in these situations it turns out that most recoverable errors are best expressed as “non-errors” once they migrate any distance from the origin of the error (e.g. the record not found turns into a standard “user not known” status return value - it’s no longer an error, but an expected behavior of the system!) So for these “short lived” errors that are either handled locally or bubbled up all the way to the top and never handled, I’ve found that Go’s native basic error framework is fine.
I don't think there's a way to check for sure but I'd say that's pretty likely. There are billions of android devices, and Linux servers, while popular, are probably less common just because servers are less common than consumer devices in general. But maybe I'm wrong!
Fowler's Law on Unicode: There's always another bug, you just haven't found it yet.
Dr Drang's script counts the number of _characters_ not the number of _glyphs_. This matters because there's more than one way to represent é: Either just as unicode character \x{e9} ("NFC") or as a combination of "e" and the combining character that adds the accent ("NFD")
For example for "léon" this prints out "l3n" for me.
Before I put down cash I have basic questions, like “how do I type a square bracket?” and “how do I type a backtick?”
The on-screen keyboard is pretty good, but makes coding and typing markdown hard. Will this solve this?
Also, this seems to be missing cursor keys. How do I move back and forward precisely? If the onscreen keyboard is hidden, I can’t even long press on space to move the cursor.
That’s actually one of the main reasons I like Obsidian - that I can easily use vscode with it. Obsidian’s backend is just markdown files on the file system which you’re free to edit with another editor at the same time as you have Obsidian open (it’ll notice file system changes and update any open documents near instantly). I even have a plugin setup that when I hit a keyboard shortcut it executes the necessary vscode command line tool to open whatever I’m viewing in obsidian in vscode.
I would agree with the idea that faster compile times can have a significant improvement in performance. 30s is long enough for a developer to get distracted and go off and check their email, look at social media, etc. Basically turning 30s into 3s can keep a developer in flow.
The critical thing we’re missing here is how increasing the CPU speed will decrease the compile time. What if the compiler is IO bound? Or memory bound? Removing one bottleneck will get you to the next bottleneck, not necessarily get you all the performance gains you want