HNHacker News
TopNewBestAskShowJobs

Ezku

187 karma · joined December 16, 2010

submissionscomments
Ezku··on Finnish breaks natural language processors
In singular genetive and nominative cases no less, so, absolutely no grammatical fancy going on there.
Ezku··on Oodi, Helsinki’s new flagship library
Hmm. I feel that. I’m sensing a dichotomy here between understandings of ”library as a place of study” and ”library as a communal place of sharing cultural artefacts”. Since the latter involves a lot of other things besides books and the silence required for deep study thereof, maybe a new word not derived from books (liber->library for English, kirja->kirjasto for Finnish) would indeed be appropriate?

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.

Ezku··on Show HN: Fnm – Fast and simple Node.js version manager built in ReasonML
Thanks! Perhaps a caption noting this would improve the pitch :)
Ezku··on Show HN: Fnm – Fast and simple Node.js version manager built in ReasonML
I use nvm currently. Can I ask how this compares to nvm, perhaps issues with nvm that it tackles? Is it performance? :o
Ezku··on Dop: Distributed Object Protocol
Maybe check out Gun (https://gun.eco)? It's CRDT-based and the docs make it look like they're taking things like consistency seriously. I have no experience with it, so can't make a recommendation either way, though.
Ezku··on Sandspiel – A falling sand game built in Rust and WebGL
Love the performance, no trouble with 60fps. The swirly wind, fire, and smoke effects are beautiful! It’s also the only part here with which I would not know how to get started building, could anyone share their thoughts on the implementation?
Ezku··on EventStore: Open-Source, Functional Database with Complex Event Processing in JS
I would gladly hear more about this scenario. Why did the initial approach not work? How is the follow-up going to improve on that? And why was a rewrite the best way to fix things? Thanks for any insight you can share.
Ezku··on Graveyard Keeper: How the graphics effects are made
That’s a really cool idea. Thanks for the article too, it provided for some excellent illumination. (Badum-tish. Sorry.)
Ezku··on A guide to rhythm in web typography
I believe you're right. I also believe you've just demonstrated how adding cards, borders and so on breaks vertical rhythm. You've decided to prefer adding cards and borders to keeping vertical rhythm, but one could also come to the opposite conclusion. What do you think?
Ezku··on GCP and Confluent partner to deliver a managed Apache Kafka service
For me, the best way to think about Kafka is as a distributed log. That said, it does feature rather robust transformations of log entries - does KSQL count as ”queries or whatever”? https://www.confluent.io/product/ksql/
Ezku··on Ask HN: How are you implementing GDPR-compliant soft deletes?
That's a good thing to point out, thanks. No, I'm afraid that bit is my own speculation.
Ezku··on Ask HN: How are you implementing GDPR-compliant soft deletes?
> it helps for documentation purpose should the dispute arise over some issue in future.

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....

Ezku··on Reasoning About Program Behavior Algebraically [pdf]
That's Haskell. Slides 4 & 5 also hint at that, although it's easy to miss:

> Why Haskell is Interesting

Ezku··on Microscale – turn random Wikipedia articles into music
You might be interested in Wikirock, a Finnish group who _also_ turn random Wikipedia articles into music. They're on Spotify: https://open.spotify.com/artist/3c7rymM4Z143IeZiTJJbQ6
Ezku··on Show HN: A simple, fast and user-friendly alternative to find, written in Rust
Really cool, I've needed this quite a number of times. Thanks for the tip!
Ezku··on Messenger.com Now 50% Converted to Reason
Try giving this page a read: https://reasonml.github.io/guide/what-and-why/
Ezku··on Input Mono – A Typeface for Code, from Font Bureau
As a long-time Input Mono user, I have to say I've found it to be an extremely well designed typeface for my programming needs. It does not call attention to itself, but does its job of beautifully nonetheless. After a short acclimation period it simply faded into the background. There was never a time that I was disappointed in its rendering on mac, on either retina or regular displays. Would definitely recommend you give Input Mono a try.
Ezku··on If TypeScript is so great, how come all notable ReactJS projects use Babel?
Our team is using Flow, and most devs use Nuclide[1] for the autocompletion and type hint popups. I can't compare it to any TS IDE, I'm afraid, but I can attest it's way more comfortable than doing without.

[1]: https://nuclide.io/docs/languages/flow/

Ezku··on Yolk.js: A user interface library built on RxJS and Virtual-dom
I believe Andre himself isn't a big fan of JSX so doesn't make a big number of introducing it in the documentation, but you can totally use it.

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...

Ezku··on Supersonic: New UI Hybrid Framework – Ionic, AngularJS, Cordova
Hi, AppGyver dev here. Our platform expands on the web view approach, allowing you to leverage existing web development experience when getting started.

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

Ezku··on Supersonic: New UI Hybrid Framework – Ionic, AngularJS, Cordova
Hi, AppGyver dev here. I understand the confusion around that claim. Especially taken out of context (http://www.appgyver.com/supersonic/ui) you can read it as ridiculous hyperbole over something readily achieved with eg MVC architectures. I'll try and explain the difference between SPAs and MPAs and why we think the latter has merit.

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.

Ezku··on Tips and Tricks Learned Releasing an Hybrid App Using Steroids.js
One of the Steroids devs here.

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

Ezku··on Rent-a-coder hilarity (2008)
Programming with such functions is called total functional programming. Here's a nice little introduction to the subject[1], and if you're a fan of code and math you should probably check out the other blog entries as well.

[1]: http://blog.sigfpe.com/2007/07/data-and-codata.html

Ezku··on How High School English Class Ruined Your Proposals
I think the phrasing was purposefully self-ironic, but in the sense of excessively technical expressions rather than having too many words.
Ezku··on PHP Addiction
Since PHP is a template language at heart, they go ahead and use PHP. For PHP folk, I guess the question is: how do people handle templating simply in other languages, since they can't use the host language itself for that?

EDIT: Disclaimer: I'm a PHP guy trying to make a break for it, and the question was both rethorical and tongue-in-cheek.

Ezku··on Poll: How many hours do you work per week?
I can confirm 37.5 goes for Finland as well.
Ezku··on This 28-Year-Old Is Making Sure Credit Cards Won't Exist In The Next Few Years
Link to TFA on one page without the fluff: http://www.sfgate.com/cgi-bin/article.cgi?f=/g/a/2011/11/10/...
Ezku··on How to work from home without going insane (purple monkey dishwasher)
> our first approximation of other people is ourselves

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.

Ezku··on 4chan's Chris Poole: Facebook & Google Are Doing It Wrong
> If anything, the post quality is deceiving, not immediately apparent. I couldn't understand at first, but then it became obvious. 99% of the posts are striped from any real content, they are irrelevant single words, offenses, fked up puctures, funny pictures, etc. But then, in 1% of the comments lies the real value of 4chan.

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.

Ezku··on More information on Google's new web language, Dash
Not to detract from your point of vastly different things, but you picked a bad example. You add a method to the prototype:

    File::close = ->
Et voilà, all Files are closeable.
← PreviousPage 2 of 3Next →