1 पॉइंट द्वारा GN⁺ 2024-08-29 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Oral-B iOS ऐप के 290MB में से 233MB asset catalog से आते हैं, और ऐप के आकार का ज़्यादातर हिस्सा कई toothbrush models के लिए PDF assets लेते हैं
  • Oral-B का सबसे बड़ा asset Sonos_M9_rose 7.8MB का है, और कई PDFs में पूरा toothbrush नहीं, बल्कि सिर्फ handle और buttons हैं
  • Comino.bundle में 20class_seqlen26_6p5h_20200302-095627_comino_android_production जैसी files हैं, जो model weights लगती हैं
  • Colgate Smile ऐप 378MB का है और उससे भी बड़ा है; Unity framework 125MB और न हटाए गए binary symbols इसके बड़े होने के मुख्य कारण हैं
  • Colgate ने main bundle और widget extension में 60MB assets और localization files को duplicate करके शामिल किया है, जिससे कम से कम 120MB बिना किसी functional value के ऐप size बढ़ाता है

Oral-B ऐप size का ज़्यादातर हिस्सा PDF assets हैं

  • Oral-B ऐप के कुल 290MB में से 233MB asset catalog से आते हैं
    • यह कुल size का 80% है
    • ज़्यादातर अलग-अलग toothbrush models दिखाने वाले PDF assets हैं
  • सबसे बड़ा PDF asset Sonos_M9_rose है, जिसका size 7.8MB है
  • कई PDFs में toothbrush की पूरी image नहीं, बल्कि सिर्फ handle और buttons शामिल हैं
  • एक और ध्यान देने लायक item 15MB Comino.bundle है
    • इसमें 20class_seqlen26_6p5h_20200302-095627_comino_android_production जैसी files शामिल हैं
    • ये files किसी तरह के model weights लगती हैं

Colgate Smile की बड़ी समस्या घटाई जा सकने वाली bloating है

  • Colgate Smile ऐप का size 378MB है
  • ऐप “guided brushing” feature की वजह से Unity का इस्तेमाल करता दिखता है
    • Unity framework 125MB का है
    • अगर उस feature में value है, तो Unity का इस्तेमाल अपने-आप में समझ में आने वाला चुनाव माना जा सकता है
  • बड़ा waste production ऐप में binary symbols न हटाने की बात है
    • binary symbols symbolication के लिए इस्तेमाल होते हैं
    • अगर DSYM को crash reporter पर upload किया जाता है, तो इन्हें production ऐप के अंदर शामिल करने की ज़रूरत नहीं है
    • सिर्फ binary symbols हटाने से कुल लगभग 60MB, 15% कम किया जा सकता है
  • bloating का एक और कारण duplicate inclusion है
    • Colgate ने main bundle और widget extension में assets और localization files के 60MB duplicate शामिल किए हैं
    • लाल nodes duplicate items के रूप में दिखाए गए हैं
  • Colgate ऐप में कम से कम 120MB ऐसा size माना गया है जो users को कोई functional value नहीं देता
  • संबंधित लेख:

1 टिप्पणियां

 
GN⁺ 2024-08-29
Hacker News राय
  • समझ नहीं आता कि Oral-B ऐप और Colgate ऐप शुरुआत से मौजूद ही क्यों हैं

    • ग्राहकों को marketing और advertising करने के लिए डेटा इकट्ठा करना मकसद है
    • ऐप बता सकता है कि आपने कौन-से दांत ठीक से साफ किए, यानी पर्याप्त समय लगाया, और कौन-से दांत छोड़ दिए या बहुत जल्दी आगे बढ़ गए
      निजी तौर पर मैंने इसे एक बार इस्तेमाल करके हटा दिया, लेकिन जो लोग यह जांचना चाहते हैं कि उनकी brushing efficient है या नहीं, उनके लिए यह उपयोगी हो सकता है। वैसे भी यह पूरी तरह optional है, और ऐप के अस्तित्व को नजरअंदाज करके सिर्फ toothbrush इस्तेमाल किया जा सकता है
    • यही वजह है कि अब AI से लैस toothbrush भी आ रहे हैं। हर साल toothbrush को फिर से invent करने की होड़ में नए differentiator, नए marketing angle और ज्यादा sales बनाने की कोशिश है
    • यह cola या McDonald’s के विज्ञापनों जैसा है। नई जानकारी देने के लिए नहीं, बल्कि logo, brand और नाम को बार-बार दर्शक या user के दिमाग में डालने के लिए
      इससे वह किसी दूसरी “अनजान” brand की तुलना में ज्यादा familiar लगती है और उस brand को खरीदने की संभावना बढ़ती है। ऐप भी ऐसा ही है: हर बार इस्तेमाल करने पर logo और brand आपकी आंखों के सामने ला देता है। कुल मिलाकर डेटा बेचने की जरूरत भी नहीं पड़ती
    • जैसे car insurance कंपनियां data recording device या app इस्तेमाल करने पर safe driving discount देती हैं, वैसे health insurance कंपनियों ने अभी तक “अच्छी तरह brush करने वालों” के लिए discount शुरू नहीं किया, यह हैरानी की बात है
  • दुखद हकीकत यह है कि App Store > Your Account में refresh करें तो 100MB से कम के ऐप्स गिने-चुने मिलते हैं। मेरे मामले में ज्यादातर apps 300MB के हैं, और यह भी सिर्फ updates की बात है
    Android से तुलना की तो वहां apps काफी हल्के हैं। पुराने Objective-C apps बहुत ज्यादा lean थे, लेकिन Swift apps ABI आने के बाद भी बड़े और भारी ही हैं। कुछ वजह developer की laziness है, और कुछ Apple tools का खराब होना भी। compiled CocoaPods या Swift packages में tree shaking या dead code removal नहीं है। Apple ज्यादा परवाह नहीं करता, और शायद उसे बड़े storage वाले नए devices या iCloud subscriptions बेचने में ही खुशी होगी

    • मैंने Google में इसी पर काम किया था। आधुनिक Android app distribution format पूरी तरह इस तरह design किया गया है कि user किसी भी समय सिर्फ जरूरी न्यूनतम हिस्सा ही download और install करे
      resources, architecture और languages जरूरत पड़ने पर ही download होते हैं, और game asset texture compression format जैसे domain-specific elements भी इसमें शामिल हैं। इसलिए device सिर्फ जरूरी textures लेता है, और developer कई formats में distribute कर सकता है ताकि user को उसके device द्वारा supported best option मिले। on-demand code module download और installation भी संभव है। उदाहरण के लिए signup flow को अलग module बनाकर शुरुआत में install किया जा सकता है, और user के signup के बाद उसे हटाकर install size घटाया जा सकता है। एक developer ने customer support के लिए कुछ MB का VOIP module तब तक सचमुच download या install नहीं कराया जब तक support screen न खोली जाए, इसलिए ज्यादातर users के लिए वह कभी install ही नहीं होता
      [0]: https://developer.android.com/guide/playcore/asset-delivery/...
    • Apple के पास भी ऐसे tools हैं। उसने एक नया tool जोड़ा है जिसे dynamic libraries पर भी लागू किया जा सकता है
  • https://xcancel.com/emergetools/status/1828490449881047401

    • अब तक देखे गए Twitter proxies में यह सबसे खराब है। “इस page को देखने के लिए x seconds इंतजार करें” वाली बेवकूफी भरी screen आती है और फिर कहता है “page को फिर से load करें”
      यह illegal streaming देखने की कोशिश में आने वाले spam interstitial pages जैसा है। यकीन करना मुश्किल है कि वहां से असंबंधित किसी ने इसे post किया; यह भयानक tool है
  • data brokers के लिए user data collection इतना valuable business बन गया है, यह परेशान करने वाली बात है। बड़ी कंपनियां अच्छे products के बजाय data निकालने वाले apps बनाती रहें और numbers बढ़ते देखकर खुश हों, यह अच्छा नहीं लगता
    “पहले के दिन अच्छे थे” वाली शिकायत करने लगा हूं, तो लगता है मैं आधिकारिक तौर पर middle age पार कर चुका हूं, लेकिन fridge, dishwasher, toothbrush में apps? जिस दिन dishwasher खुद बर्तन डालने लगेगा, तब शायद hedonic price adjustment स्वीकार कर लूंगा

    • काश data चूसने की efficiency जितनी बढ़ी है, ad quality भी उतनी ही बढ़ती। मेरे पास driving license भी नहीं है और मैं relationship में हूं, फिर भी मेरे devices पर personalized ads का बड़ा हिस्सा dating sites और car dealerships के ads हैं
  • तो आखिर मामला बस इतना है कि अलग-अलग model images को PDF में बेवकूफी से बहुत बड़ा डाल दिया गया है? उम्मीद से अलग। मुझे लगा था यह आगे आने वाले Colgate app जैसा होगा

    • बिल्कुल बकवास। ऐसी चीजें 100% जरूरत पड़ने पर fetch करनी चाहिए
    • सोच रहा हूं क्या उन्होंने web browser के “Print to PDF” feature से PDF बनाया। Chrome जो PDF बनाता है उनका size बहुत बड़ा होता है
    • मुझे लगा था उन्होंने Unreal Engine इस्तेमाल किया होगा। आखिरी बार जब देखा था, minimal app भी 200MB से ज्यादा था
  • Oral-B app कुछ साल पहले काफी हल्का था, latest world news feed दिखाता था, Apple Health में data record करता था, और brushing streaks को encourage करके मजेदार था
    लेकिन उन्होंने पूरा app फिर से लिखा और लगभग सारी features खो दीं, और upgrade के बाद पहली launch के बाद मैंने उसे कभी नहीं खोला। काश iOS App Store में TestFlight जैसा कोई तरीका होता जिससे पुराने versions install किए जा सकें। अफसोस, TestFlight भी अधिकतम 90 दिन ही है। शायद अब BLE sniffer निकालने का समय है, लेकिन one-off unauthorized temporary app के लिए HealthKit permission मिलना शायद संभव नहीं होगा

    • “latest world news feed” मतलब, क्या? Oral-B? world news feed?
    • protocol की reverse engineering पहले ही हो चुकी है। मैं Home Assistant और Bluetooth इस्तेमाल कर रहा हूं, और पड़ोसी का एक Oral-B toothbrush दिख जाता है
    • उस version पर मैंने काम किया था। आगे की चर्चा में मैं चुप रहूंगा
  • साइज से भी ज़्यादा शर्मनाक बात यह है कि toothbrush के मोड बदलने के लिए app की ज़रूरत पड़ती है। मुझे सच में लगता है कि इसकी अनुमति नहीं होनी चाहिए, लेकिन इसे कैसे enforce किया जाए, यह ठीक से नहीं पता

    • आप कौन-सा model इस्तेमाल कर रहे हैं और कौन-सा mode बदलना चाहते हैं, इस पर निर्भर करेगा, लेकिन Oral-B Pro 5000 में app के बिना भी “Daily Clean”, “Sensitive” जैसे cleaning modes और सिरे वाले LED का रंग बदला जा सकता था
      display brushing-time timer दिखाता है, और toothbrush में जितनी tracking चाहिए, उतनी तो यही काफी है। हो सकता है ऐसे दूसरे modes हों जिन्हें button से access न किया जा सके, लेकिन मेरी जानकारी में नहीं हैं
    • पहला काम ऐसा consumer protection agency बनाना है जिसके पास design में defective products को market से हटाने की कानूनी authority हो
      दूसरा काम यह है कि क्या allow किया जाए और क्या ban, इसे ठीक-ठीक define करना। लेकिन companies customers को परेशान करने के लिए जितनी बेवकूफियां सोच सकती हैं, वे इतनी ज्यादा हैं कि अगर assessment और decision अच्छे core principles पर आधारित हों, तो ऐसी agency को काफी व्यापक discretion देना ठीक लगेगा। उदाहरण के लिए, “जो feature companion app के बिना implement किया जा सकता है, उसके लिए companion app की requirement नहीं होनी चाहिए” जैसा principle
    • ऐसी चीज़ों तक के लिए legislation की ज़रूरत क्यों है? बस वह toothbrush मत खरीदो और product को naturally मरने दो
    • मेरे IO में toothbrush से modes बदले जा सकते हैं, लेकिन कौन-कौन से modes बदलने हैं उनकी list app में चुनी जाती है। हालांकि default शायद “सब” है, इसलिए app को एक बार भी run न करें तो भी इसे इस्तेमाल किया जा सकता है
  • असली सवाल यह है कि शुरुआत में ही toothbrush में app की ज़रूरत क्यों है

    • जितना हो सके customer data इकट्ठा करना, उम्मीद है anonymize करके उसे bundle करना, फिर data brokers को बेचना और customer base से और पैसे निकालना
      यह सब “consent” के तहत होता है। क्योंकि आपने app install किया और शायद service terms या privacy policy accept की होगी। इसे product के साथ interaction का समय या frequency गिनने, या आपको इसे इस्तेमाल करने की याद दिलाने वाली service का नाम भी दिया जाता है। जबकि सामान्य adult तो यह काम पहले से कर ही रहा होता है, बस थोड़ा कम accurate तरीके से
    • एक hypothetical example के तौर पर, “dental” gum companies लोगों की brushing habits को demographics और geographic data के साथ cross-reference की गई जानकारी के लिए बड़ा पैसा दे सकती हैं
      अगर data दिखाए कि किसी खास शहर या county में लोग general population की तुलना में 25–50% कम teeth brush करते हैं, तो उस इलाके में ad spend बढ़ाना काफी plausible है। क्योंकि जिन लोगों की brushing habits अच्छी नहीं हैं, वे damage offset करने के लिए dental gum खरीदने की अधिक संभावना रखते होंगे
    • यह दिखाता है कि आपने हर tooth के front, top और back पर पर्याप्त समय दिया या नहीं। electric toothbrush manual toothbrush से अलग तरीके से इस्तेमाल होता है; यह आगे-पीछे चलाने वाला तरीका नहीं है
    • ईमानदारी से कहूं तो मेरा भी यही खयाल था। शायद brushing stats या हर tooth पर लगा time जैसा कुछ होगा
    • मैंने app इस्तेमाल करने की एक वजह बच्चों के लिए देखी है। brushing के दौरान animation चलाता है, stats रखता है, और reward के तौर पर avatar का रंग जैसी चीजें चुनने देता है
  • अनरोल किया हुआ version: https://unrollnow.com/status/1828490449881047401

    • मेरे लिए काम नहीं कर रहा

      Connection failed: User 'u327838624_unroll' has exceeded the 'max_connections_per_hour' resource (current value: 500)

    • लगता है HN traffic से पिटकर down हो गया

      Connection failed: User 'uxxxxxxx_unroll' has exceeded the 'max_connections_per_hour' resource (current value: 500)
      क्या यह MySQL error है?

  • कोई sane इंसान किस वजह से toothbrush app download करेगा?

    • तो toothbrush firmware update कैसे करेंगे? काश यह मजाक होता, लेकिन लगता है Phillips Sonicare के लिए साल में कई बार firmware updates निकालता है