[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-offline-deployment-notes-en":3,"blog-adjacent-offline-deployment-notes-en":29,"blog-related-offline-deployment-notes-en":63},{"id":4,"slug":5,"title":6,"excerpt":7,"content":8,"cover":9,"tone":10,"author":11,"publishedAt":12,"updatedAt":12,"readingMinutes":13,"featured":14,"tags":15,"category":19,"seoSettings":28},42,"offline-deployment-notes","Notes on Offline, Air-Gapped Deployment","Factory, government and large enterprise networks often cannot reach the internet, so deployment must be designed for it.","\u003Cp>Our first offline deployment followed the usual process and lost a full day on site: dependencies would not install, fonts failed to load, maps showed nothing. Air-gapped environments need an entirely different checklist.\u003C\u002Fp>\n\u003Ch2>Six things to confirm before go-live\u003C\u002Fh2>\n\u003Cp>OS version and CPU architecture, especially on domestic platforms where images and dependencies must match.\u003C\u002Fp>\n\u003Cp>Who provides the database and middleware, which versions, and whether administrator credentials are available.\u003C\u002Fp>\n\u003Cp>A complete offline bundle: language runtimes, fonts, map tiles and frontend assets.\u003C\u002Fp>\n\u003Cp>Time sync and certificates; clock drift on an intranet invalidates tokens.\u003C\u002Fp>\n\u003Cp>Disk space and permissions for logs and backups.\u003C\u002Fp>\n\u003Cp>Whether remote support is possible on site, or only phone calls.\u003C\u002Fp>\n\u003Ch2>What we do now\u003C\u002Fh2>\n\u003Cp>Everything is bundled into one offline installer and rehearsed end to end on a clean machine before delivery.\u003C\u002Fp>\n\u003Cp>Deployment scripts check prerequisites and fail with a clear message instead of leaving people guessing on site.\u003C\u002Fp>\n\u003Cp>Offline deployment tests preparation, not technical depth. The finer the checklist, the calmer the site.\u003C\u002Fp>","","slate","佳益方圆团队","2026-05-26T13:36:00+08:00",1,false,[16,17,18],"Deployment","Offline","Delivery",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},0,"engineering","Engineering","Hands-on engineering practices in architecture, performance optimization, AI integration and cross-platform delivery from our R and D team.","cpu","blue","article",60,{},{"previous":30,"next":45},{"id":31,"slug":32,"title":33,"excerpt":34,"content":9,"cover":9,"tone":35,"author":11,"publishedAt":36,"updatedAt":36,"readingMinutes":13,"featured":14,"tags":37,"category":38},21,"seven-years-what-changed","Seven Years: What Actually Changed","From three people to twenty, from taking any work to knowing what we are good at. Slower than expected, and more solid.","cyan","2026-05-28T12:23:00+08:00",[],{"id":39,"parentId":20,"slug":40,"name":41,"description":42,"icon":43,"cover":9,"tone":25,"kind":26,"sortOrder":44,"count":20},6,"founder-notes","Founder Notes","Reflections from the founding team on business, management and product, documenting the growth of a software company.","pen-tool",10,{"id":46,"slug":47,"title":48,"excerpt":49,"content":9,"cover":9,"tone":50,"author":11,"publishedAt":51,"updatedAt":51,"readingMinutes":13,"featured":14,"tags":52,"category":56},62,"cheap-usability-testing","Cheap Ways to Run Usability Tests","No lab and no eye tracker needed. Five people, one laptop and an hour reveal most problems.","teal","2026-05-24T13:36:00+08:00",[53,54,55],"Usability","Research","Product",{"id":57,"parentId":20,"slug":58,"name":59,"description":60,"icon":61,"cover":9,"tone":25,"kind":26,"sortOrder":62,"count":20},2,"product-thinking","Product Thinking","Requirement analysis, user experience and product design methods, plus the thinking from business problems to product solutions.","lightbulb",50,[64,74,85],{"id":65,"slug":66,"title":67,"excerpt":68,"content":9,"cover":9,"tone":35,"author":11,"publishedAt":69,"updatedAt":69,"readingMinutes":13,"featured":14,"tags":70,"category":73},30,"integration-api-pitfalls","Five Traps in Enterprise System Integration","However complete the API documentation is, integration usually stalls on field semantics, timeouts and repeated pushes.","2026-10-17T09:00:00+08:00",[71,72,22],"Integration","APIs",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},{"id":13,"slug":75,"title":76,"excerpt":77,"content":9,"cover":9,"tone":35,"author":11,"publishedAt":78,"updatedAt":79,"readingMinutes":57,"featured":80,"tags":81,"category":84},"why-enterprise-systems-age","Why Enterprise Systems Start to Age After Three Years","A system can pass acceptance with every feature checked, then feel awkward three years later. The problem is rarely the code — it is the changes that were never considered at delivery.","2026-10-16T09:30:00+08:00","2026-10-18T15:58:14.648+08:00",true,[82,83],"System Evolution","Architecture",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},{"id":86,"slug":87,"title":88,"excerpt":89,"content":9,"cover":9,"tone":25,"author":11,"publishedAt":90,"updatedAt":90,"readingMinutes":13,"featured":14,"tags":91,"category":95},31,"idempotent-design-basics","Idempotency: Duplicate Submissions Are Not Just Double Clicks","Retries, redelivery and impatient users all send the same request more than once. Idempotency belongs in the API design.","2026-10-05T10:13:00+08:00",[92,93,94],"API Design","Idempotency","Reliability",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20}]