187 karma · joined December 16, 2010
Disclaimer: been to Oodi and think it’s great. I’m not a regular user of libraries in any sense, though. I used to be, 20 years ago, and appreciate the current trend exemplified by Oodi as something perfectly befitting Finnish societal values and ethos as I understand them. Ymmv, of course.
If you are required to hold on to the data for legal purposes such as dispute settlement, there is no issue. The customer can request you delete such data but you have no obligation to do so. Issues arise when holding on to the data is no longer "necessary". At that point soft deletion is not enough and you must be able to remove personal data regarding that customer from your systems. Source: IP lawyer I talked with last week on this.
From what I can tell, one good way of going about this in case you really do not want to throw away data – such as when you're doing event journaling – would be to have all personal data encrypted. When the data reaches its expiration point or is requested for deletion, throw away the decryption key and all you're left with is is the metadata which you are allowed to hold on to for purposes of running your business.
EDIT: This concept is called 'cryptographic deletion'. Here's one whitepaper on the subject. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.397....
> Why Haskell is Interesting
It used to be that you couldn't just plug in Cycle.js to JSX by default, because the function used for virtual-dom node creation had a signature that slightly differed from what JSX expects. These days @cycle/dom exports hJSX [0], which is compatible.
[0]: https://github.com/cyclejs/cycle-dom/blob/master/docs/api.md...
Yeah, it's HTML and JS - but whereas Cordova provides you with one web view to build your app in, Steroids applications have multiple views joined together with native navigation. We ship with a lovely CSS framework by default to make building UIs a snap. The command line features livereload, so your changes can be reflected instantly on the device. And because it's Javascript, you can debug using the tools in Chrome and Safari - a vast improvement over printlns.
You might find this page illustrative: http://www.appgyver.com/supersonic/ui
A Single Page Application will usually consist of any number of logical views handled in a single web browser view. Since the app is Javascript and HTML, everything is loaded in the same runtime environment and switching between views is actually about swapping things in and out of the DOM. We feel that this isn't a very good approach when you're doing mobile applications, not least because everything you do will be an approximation of the native UI capabilities. Companies like Facebook and LinkedIn have famously failed to deliver hybrid mobile apps with a good enough user experience when using the traditional SPA approach.
This is where an MPA architecture comes in useful. As opposed to a single runtime environment in a single web view, multiple web views can be run concurrently and the native layer is used for transitions between them. This is different from both SPAs and traditional server-side architectures which you could call "multi-page" if you squinted a little. Besides the readily felt advantage in user experience, the approach also has architectural benefits which help out in growing your app. When your Javascript runtime is working towards rendering exactly one kind of view instead of dozens, there are radically fewer possible states and thus less issues with global state leaks and the like. In short, it helps make development simpler.
Hope this clarifies. As a dev, I think the ability to leverage multiple concurrent web views is one of the core advantages of the platform.
Nice job, Marc. Your thoughts on the subject are much appreciated. Thanks for your kind words on the tutorials!
As for the pain points you had along the way - we feel you and are working toward improving the development experience. Rest assured that the amount of assorted tricks you need to learn to develop a premium application with Steroids will be going down.
The project file structure will be improved to make it easier to tell what parts an app consists of. The focus will be on presenting Angular modules as units of functionality. We find that dealing with preloaded views is cumbersome at the moment, and view handling altogether is ripe for a bit of restructuring.
We also believe that there could be more approachable ways for reacting to eg. the application resume event you mentioned, and for communicating between views. An application that consists of several views each running their own JS environment gets surprisingly tricky to get right, and is not a problem you would prefer to be solving when trying to get your app idea off the ground. For instance, you want to have a bit of data that's persisted to localStorage but that gets rendered to multiple views; in this case you'll want to notify the other views in case any changes occur. Currently, implementing this behaviour must be done essentially manually by our users. Steroids Add-ons implements a few measures to improve the situation behind the curtains, but we don't have something to offer everyone at the moment. For this, and for other use cases where you need to deal with asynchronous and non-local data access, we're brewing solutions right now.
Thanks for the valuable feedback. _b
EDIT: Disclaimer: I'm a PHP guy trying to make a break for it, and the question was both rethorical and tongue-in-cheek.
This is an excellent quote. It says things about humanity that I haven't been able to put to such succinct form before. Thank you.
I couldn't agree more. I've long since lost the ability to get offended by pretty much anything 4chan could throw at me, so I must be pretty biased at this point. My view, however, is that the trolling and gore are in essence just a filter for potential audiences. In the early days, not rarely would there be threads up posting gore with the explicit goal of getting rid of newbies. (The actual vocabulary associated with these subjects on 4chan is rather more crude and graphic, and I will not denigrate this discussion with voicing it aloud.)
By getting past the filter, ie. being able to scan boards and threads for relevant content and not getting too offended on the way, you will have proven to the collective consciousness your ability to partake in discussions of taboo matters and doing so with a certain degree of objectivity and an open mind. That's the point after which actual discussion can happen. Combined with anonymity and volatility of content, this quality makes /b/ not only a cesspool of humanity but a place where entirely new kinds of conversations can take place and new ideas be entertained.
To understand the essence of moot's argument of prismatic identity, I find a certain underlying understanding of the scene where he's coming from is also necessary. It's not often that I see this point discussed, but I think it's important. Thank you for bringing it up.
File::close = ->
Et voilà, all Files are closeable.