Lighthouse score is now 91%.
* https://www.webpagetest.org/result/200227_RM_75b0bc807f4fc90...
770 karma · joined September 28, 2011
Lighthouse score is now 91%.
* https://www.webpagetest.org/result/200227_RM_75b0bc807f4fc90...
One worse: Emacs. =]
Lighthouse score is now 91%.
* https://www.webpagetest.org/result/200227_RM_75b0bc807f4fc90...
* https://www.webpagetest.org/result/200227_RM_75b0bc807f4fc90...
Great questions.
> Ex how do you define the installable icon for the Add to home screen > icon ?
Pep tries to source the default icon from the site itself, eg a high resolution favicon, if possible.
If unavailable, or a different icon is preferred, the user is prompted for one. But by default, Pep tries to source such data and information the best it can.
> Or how do you choose what gets in the cache for offline access ?
Requests are observed, in the ServiceWorker, to determine which assets are requested on different pages and across the whole site. Those observations are turned into confidence scores, per asset, to determine which assets should be cached (and pre-fetched if not already cached).
You can, of course, pin certain assets for offline caching 100% of the time. But, by default, Pep does its best to cache requisite resources as determined by observed site activity.
Thank you!
> On a separate note, how many users know about or bother to “Add to > screen”?
PWAs are relatively new. Not many users know about installing them yet. But that's changing. See the install flow videos here
http://i.imgur.com/vVoDtbW.png
to see what installing a PWA looks like from the users perspective.> Can the number of users launching from the home screen be tracked?
Definitely.
In the PWA's manifest, you can specify the `start_url`. This can include a sentinel to differentiate a PWA launch vs a browser session, eg
"start_url": "/?launch=pwa"
That's actually a great idea to add to Pep. Kudos.If Google precludes certain users, we'll switch to something that doesn't.
Pep's not married to Google's CDN. Which other CDN(s) do you, or would you prefer to, use over Google's?
Thank you for weighing in.
I don't want to build native apps. So I built Pep. It turns your website into a Progressive Web App (PWA) with one line of code. It's kind of like Workbox (https://developers.google.com/web/tools/workbox), but with adaptive pre-fetching, CDN, and responsive asset batteries included.
I'd love your input; feedback is how good products become great.
> It's asking website owners to install JavaScript that uses the website owner's visitors' bandwidth for purposes other than visiting the website.
We endeavor to create a communal web where everyone cooperates and benefits, and we want to make that as easy as just visiting your favorite website. Everyone shares a little surplus bandwidth to help each other load the web faster, sustain their favorite sites, and earn rewards. Everyone wins.
That's a different web than the current web. Right now, with the current web, no one shares and nothing is shared with you. The web isn't communal; it's adversarial. Ads interrupt you and trackers stalk you. We want to change that.
It will take time. Just like how the once frightful notions of getting into a stranger's car (Uber) or sleeping in a stranger's house (Airbnb) are now banal. These things take time.
But, of course, if preferred, an opt out is two clicks away. Sites with Arc must display Arc's widget in the lower left so visitors can learn about Arc and easily opt out (or back in).
> I think that puts me in a dangerous position just for surfing example.com.
When one visits nytimes.com, they don't know what files will be downloaded and cached on their computer before they hit [enter]. They trust nytimes.com not to hand them inappropriate content (porn, violence, etc).
Arc has that same responsibility -- to only cache appropriate, legal content. It's our responsibility to get that right. And we will.
- Sites, and their content, are reviewed and vetted before they get access to Arc's CDN.
- Automated checks are run on assets for appropriateness, a la Google's SafeSearch Cloud Vision API. Inappropriate content never enters the network.
On top of that, only fragmented, encrypted data is cached on devices. Devices never receive the full puzzle -- only a single, fragmented puzzle piece, scrambled beyond recognition.Hope that helps.
Also, and wholly unrelated: big fan of Movie Code. =]
On smaller devices, a few kb of important data in LocalStorage was periodically deleted without user intervention.
> do you believe it will be used for nefarious purposes?
If one is nefarious of heart, https://github.com/samyk/evercookie supersedes ImmortalDB.
Though many browsers still support it. https://caniuse.com/#feat=sql-storage
Don't hesitate to let me know if you have any questions or comments about ImmortalDB. Feedback is how good products become great.
For improved resiliency.
You can also configure IronDB to only use any two datastores of your choice, if you so desire: IronStorage's constructor takes an Array of storage implementations of your choice. See https://github.com/gruns/irondb#api.
> So you delete data when the user wants to delete data. Which database doesn't have this feature?
A database where the data therein can be deleted without warning. Browsers unceremoniously delete IndexedDB, LocalStorage, and SessionStorage under storage pressure. See https://developers.google.com/web/fundamentals/instant-and-o...
> doesn't use Flash, Silverlight, or Java -- which do?
Evercookie, a similar library, uses Flash, Silverlight, and/or Java.
See https://github.com/samyk/evercookie.
> No offence to the author but all this sound malicious. Perhaps this is why evercookie isn't maintained?
No offense taken.
Thank you for your feedback, kreetx. Don't hesitate to let me know if I can answer any other questions, or if there's anything else I can do for you.
If you find any bugs, or have any ideas to improve IronDB, don't hesitate to let me know.
https://developers.google.com/web/fundamentals/instant-and-o...
IronDB redundantly stores data in multiple datastores -- cookies, IndexedDB, LocalStorage, and SessionStorage -- and self-heals if the data in any thereof is deleted or corrupted. For example, stored data is safeguarded in the event the user clears their cookies or IndexedDB is purged due to storage pressure.
tl;dr: IronDB is resilient in the face of data deletion. localForage isn't.
Don't hesitate to let me know if there's anything else I can help with, bazizbaziz.
See my other comment, here: https://news.ycombinator.com/item?id=18297177
I'll explicate this in the documentation. Thank you for your feedback, bazizbaziz.
IronDB doesn't.
See https://developers.google.com/web/updates/2016/06/persistent....
Great point, though. I'll highlight this in the documentation. Thank you.
And under storage pressure, browsers evict data stored in IndexedDB, LocalStorage, and/or SessionStorage. See
https://developers.google.com/web/fundamentals/instant-and-o...
IronDB is resilient in the face of such events.
Thank you for your feedback. I'll add an explanation about such in the documentation.
IronDB's goal is to store data reliably, e.g. in the face of storage eviction, but not against user intention. If the user clears all browsing data, that willful action is respected.
Thank you for your feedback. I'll clarify this in the docs.
That's a wonderful idea. I'll investigate the best way to accomplish this. Thank you.
Don't hesitate to let me know if you have any other ideas; feedback is how good products become great.
- arc.io with documentation, demos, and examples in Python, C, Ruby, and Node.js.
- Support for other developers to build and ship Arc apps.
- Installer is 60MB, down from 140MB.
- Updated to the latest VirtualBox v4.2.18.
- Bug fixes, security fixes, and performance improvements.
49 days ago Arc was ready for a blog post. Now it's ready for laps
around the track.Kidding. Arc is registered with launchd, Apple's daemon manager.
To halt Arc, unload it from launchd with
launchctl unload ~/Library/LaunchAgents/com.arc.arcd.plistAnd great suggestion; it could certainly be made clearer. Thank you.
In the future, Arc will be agnostic and support multiple hypervisors. One could use LXC on Linux, HyperV on Windows, VirtualBox, etc.
Arc is a daemon that runs on your system, like DropBox. Browsers can use arc.js and instruct Arc to run native code in lightweight Linux virtual machines.
Arc is a stronger approach than maintaining browser plugins. Arc apps, like web apps, are up-to-date every time they're opened. They also have full access to their Linux virtual machine and can use Linux programs as-is. Browser plugins can't provide that.
For size, Arc's installer will continue to shrink (it's down to 60MB from 140MB). A custom built VirtualBox should be quite small. However, VirtualBox does require admin to install while qemu does not.
In the future, Arc will be agnostic and support multiple hypervisors. One could use qemu, VirtualBox, HyperV on Windows, kvm on Linux, etc.