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

Hm, not sure I totally understand what you mean, but I shared some examples of when it's been helpful. My favorite is using it as a continuous cleanup tool for dead code. You wouldn't necessarily want that to just run all the time, but it's nice in a nightly cadence

this is a big deal, markets gonna tank tomorrow morning... and then realize AI is still a thing and recover

Or realize it means interest rates are sure to be dropping.

and remind themselves there is way too much cash sloshing about for a broad-based and lasting market retreat.

https://fred.stlouisfed.org/series/M2SL


AI is a bubble; well, the stock market as a whole is, being led by an AI boom. At the end of a bubble (and it's not clear if we're there yet) markets find ways to self-finance. A crash means not just that the value is lower, but that the leveraged bets are now due, and those have to be paid by selling more.

When it crashes (and it's not clear when that will be), it will crash back to a cash-value baseline. And, sigh, it's not clear where that is. But it won't magically start going back up. The cyclic reinvestment engine needs to be reinvented every time.


Emerge Tools has an old thread on why it's actually so big: https://x.com/emergetools/status/1810790280922288617


Thanks, that thread is great!

They have a neat treemap breakdown here: https://www.emergetools.com/app/example/ios/com.google.Gmail

130MB is localization data.

This detail was interesting too: https://twitter.com/emergetools/status/1810790291714314706

> There's over 20k files in the app, 17k of which are under 4 kB. In iOS, the minimum file size allocation is 4 kB, so having many small files causes unnecessary size bloat. Gmail could save 56.4 MB by moving their small files to an Asset catalog


Yep, localization is a huge size bloat for enterprisey apps that support many locales. There is no Apple provided way to dynamically download select localization packs based on the device locale. Meta came up with their own solution: https://engineering.fb.com/2022/05/09/android/language-packs...

The small filesize issue is something we commonly see in games, was surprised to see it for Gmail.

And btw we open-sourced much of our analysis after being acquired by Sentry: https://github.com/getsentry/launchpad


130 MB for localization? At 50 languages that would be 2.6 MB/language. If we assume an average 50 bytes per string and another 50 for an identifier, that's 27,000 strings.

That doesn't seem right. Localization feels like it should add a few MB. Not over 100. (Plus shouldn't it be compressed, and locally uncompressed the first time a language gets used?)


Localization doesn’t just mean string translations. Apple platforms give you the freedom to redo the UI to fit the language. For example, parts of System Preferences (not sure about Settings) would look completely different in languages with long words because the original design for English simply didn’t fit. The translators rearranged buttons to make the text fit.


I just looked. In this case, it is just string translations.

In the version I'm looking at there are 27,470 .strings files totaling 69 MiB, but they take up 155.9 MiB of disk space due to the 4 KiB filesystem block size.

The keys for the strings take up 39% of the space while the values take up 61%. About 12% of translations are duplicated (the word "Cancel" is translated like 53 times)

So 55% of the space used for strings localization is just pure waste due to having so many small files. The long keys are rather wasteful too and about 12% of the translations are duplicated (i.e. the word "Cancel" is translated 50+ times per language).

Some of this is arguably Apple's fault. Their whole .string file per table per language is incredibly space inefficient by default.


Sure, but that's a few KBs for each locale at most. Still a long way to 100 MB.

They probably just have lots of leftover localized assets that nobody dares to touch as they aren't sure if it's used anywhere.


Thank you! I've been wondering about exactly this, your explanation makes complete sense.


Any rtl language will probably require a lot of different assets. If for no other reason than gradients. Plus anything asymmetric.


The version I'm looking at has 27,470 strings files, mostly of them less than 4 KB each.

Since the iOS filesystem uses 4 KB blocks, it looks like about half the space is just wasted.


It probably isn’t just text that is localized.


images also may need localization.


4kB is also the minimum file size on Linux, so I imagine a similar issue could exist on Android.


The Gmail app on Android is 150MiB in size.

Android traditionally puts resources into a compressed archive, though, so by simply using an archive for storage, Google may be avoiding the 4k size problem.


Wonder if it is better to create separate localized app download such as gmail-japanese, etc.


Google Play offers such functionality already, it's called App Bundles. Instead of uploading an entire APK, the developers can upload the app assets that get bundled into device-specific APKs containing only the resources necessary for the end device. So you'd only get native libs for your phone CPU architecture, translations for the device language and image assets matching the device resolution for example. In fact, I think it's mandatory now to use the app bundles format (but you're still free to configure it to some extent)

I now see the article is about iOS app, but it looks like the Android app is anywhere between 50mb and 100mb (depending on the apk download side I look at) which is much more reasonable



Author here. Thanks for sharing this. It seems they released an updated version of this analysis last year [1]. It matches what I saw when analyzing the IPA. I tried to do a deeper analysis on the code itself using several tools, including Google's own bloaty [2] which was not very useful without symbols, classdumpios [3] which revealed something like 50k interfaces starting with "ComGoogle", and Ghidra [4], which I left running for a day to analyze the binary, but kept hanging and freezing so I gave up on it. Perhaps comparing the Android and iOS code could lead to something more fruitful.

[1] https://x.com/emergetools/status/1943060976464728250

[2] https://github.com/google/bloaty

[3] https://github.com/lechium/classdumpios

[4] https://github.com/NationalSecurityAgency/ghidra


Looks like it's mostly strings, probably due to localization. They should consider compressing each localization/language, and decompressing the needed bundle on first startup (or language change). Even better: Download the language bundle when needed.


Well, that's a question for OS level. If the OS doesn't require the user to download the language and so language-switching to a new language is doable as an offline operation, I could see it being frustrating that switching to a new language must be done online.

So compression/deduplication is probably the better option. Rather than storing as 1 zip per language, though, you'd probably want a compression format that also eliminates duplication that may occur between languages if you're storing all languages compressed on the system. That means you'd need compression to handle the entire language complex being in one massive compressed blob and you'd just extract out the languages you needed. I assume there are some forms of zipping that do this better than others.


So is the extra space not accounted for from then to now AI related pieces?



Reminds me of r/SubredditSimulator


What browser are you using?


Not OP, but it's not currently working in Netscape 4.5. At least I assume it isn't (haven't tested). Happy Halloween!


This high pitched noise issue happened to me last week using noise cancellation on a flight, but I was using Airpods 4 (not Pro). I think this problem isn't only limited to the Pro models


Sentry | San Francisco, CA | Full-time

Sentry helps devs catch & fix bugs — used by millions of devs worldwide. We’re growing the platform and product surface area and hiring aggressively across engineering:

Highlighted Open Roles (SF, CA):

- Senior Staff Engineer, Platform

- Staff Machine Learning Engineer, AI

- Engineering Manager, Analytics Platform

- Engineering Manager, Product Platform

- Senior Software Engineer, Developer Infrastructure

- Senior Software Engineer, Infrastructure

- Senior Software Engineer (iOS), SDK

- Senior Software Engineer, Issue Workflow

Apply here: https://sentry.io/careers/#openings


Are any of the jobs remote friendly? Saw one was interested in Rust experience but had hybrid requirement


It's been dead a loooong time


Was it ever alive? I never understood the premise. It’s for, what, people who feel they don’t spend enough money and are looking for new things to subscribe to? Is that a big market?


this guy never misses


$610M, all cash??? How were they worth that much... all they seemed to ever do was rebrand


"Arc isn’t just a Chromium fork. It runs on custom infrastructure we call ADK — the Arc Development Kit. Think of it as an internal SDK for building browsers (especially those with imaginative interfaces). That’s our secret sauce. It lets ex-iOS engineers prototype native browser UI quickly, without touching C++."

https://open.substack.com/pub/browsercompany/p/letter-to-arc...


A UI framework? What’s the other $608m for?


Yeah, I kinda read that as "it's not just a chromium fork with additional code. the code is organized. nobody has ever done that before!"


Or... A UI framework? what's the other $612m for?


Just like the old Carlin joke. Made me chuckle.


I wanted you to know that, due to this comment, I "lost" approximately 45 minutes watching George Carlin's best jokes


What was the joke?


Is a browser SDK for iOS worth that kind of money targeted users who are comfortable with Objective-C and not C++ even a market of note.

It would be one thing if they said it is for say JS developers or something a-la electron there are plenty of apps from MS teams to slack to linear etc who perhaps would pay for that enough, but swift /objective C dev not comfortable with c++ would be minuscule market ?


ObjC is mostly dead, and most Swift devs are not comfortable with C++.


C++ isn't all that much harder or different from Swift to learn. They play fairly well with each other, you can import and call C++ quite easily from Swift.

It is not like switching from a REPL, browser friendly,inferred typed forgiving language like say JavaScript to Rust with the occasionally cryptic compiler, the unforgiving borrow checker and ownership concepts.

Perhaps people are less comfortable with the libraries and SDKs and tooling from the C++ world for app development. I didn't imagine that such a market was worth buying a company for $610M in 2025 when most apps are web based in one way or other.


Sounds perfect for Atlassian's love of "imaginative" interfaces.


For all those playing at home: this blog post contains 46 em-dashes.


that's kinda funny since that's basically exactly how firefox does it with the chrome of the browser being javascript and html and css itself.


How's that different from Electron?


Probably a Swift wrapper for the Chromium Embedded Framework.


Cool, but $600m cool? I don't see how.


100% agree. The odds of this investment paying off feel slim to none.


It would have made sense if they had a large user base or groundbreaking tech, but they are just a Chrome fork with a very niche set of users.


Probably they were just chasing the hype because the word AI appeared in the browser, considering the news mentions “browser with AI features”. So does their acquisition news.

I hope I am wrong.


I mean have you seen some of the valuations for VSCode forks with some AI slapped on haha. I agree that this seems a lot for what I assume is a product with no solid revenue stream


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

Search: