[HN Gopher] ING open-sources Lion, a library of accessible and f...
       ___________________________________________________________________
        
       ING open-sources Lion, a library of accessible and flexible Web
       Components
        
       Author : d4kmor
       Score  : 127 points
       Date   : 2020-02-13 11:44 UTC (11 hours ago)
        
 (HTM) web link (medium.com)
 (TXT) w3m dump (medium.com)
        
       | ng7j5d9 wrote:
       | Every time I see yet another library of web components I think of
       | the classic XKCD about standards.
       | 
       | Apparently there were N web component libraries but none of them
       | were just what ING wanted, so now there are N+1 web component
       | libraries.
        
         | spankalee wrote:
         | At least these are interoperable with plain HTML, vanilla
         | JavaScript, Markdown, and frameworks. There's value in actual
         | standards.
        
         | ergo14 wrote:
         | And they all work together if you want. I see no problem here.
        
       | Ruphin wrote:
       | In case anyone wonders if this is actively beig used, Lion
       | currently powers the internal ING web component library that
       | applies our own design system on top. It is the foundation of the
       | "next generation" web platform for all our web programs
       | internationally. In some countries, it also powers our mobile
       | offering through webviews/Cordova.
       | 
       | Many hundreds of web developers at ING use it for their projects,
       | and all active web development is using powered by it. Lion is a
       | core component of our web strategy. At this time, over 10 million
       | customers are using products built with it, on a daily basis.
        
         | ktpsns wrote:
         | Hi Ruphin. I guess you are a developer at ING -- may I ask you
         | something Off-topic?
         | 
         | I have a simple giro account at ING and just would like to
         | query the balance regularly with a script. Nothing fancy at
         | all. Is there some API you offer? I've seen your website
         | https://developer.ing.com/ but it seems that developer access
         | is only intended for developing activities and not intended for
         | "productive" usage, even if it is with the giro bank account of
         | the developer.
        
           | Ruphin wrote:
           | Hi ktpsns,
           | 
           | As far as I know it is currently difficult to get API access
           | as an individual. The APIs are available to third party
           | developers as is required by European regulation, but they
           | have to go through a procedure to receive access to
           | production data.
           | 
           | We have several teams working on improving our open APIs,
           | including availability. If you reach out to me by email I
           | will ask one of the teams and let you know when we expect to
           | be able to offer what you're looking for. You can find my
           | email in my profile.
        
           | inferiorhuman wrote:
           | In the United States, TD Ameritrade offers (and has for many
           | years) an API (both trading and account stuff) to any account
           | holder upon request.
           | 
           | https://developer.tdameritrade.com/
        
       | DonHopkins wrote:
       | I've been looking for something framework-agnostic like this to
       | make a fresh implementation of pie menus.
       | 
       | Here's the documentation and source code of my old jQuery pie
       | menus, which are getting pretty long in the tooth, and which I
       | need to reimplement as Web Components in TypeScript.
       | 
       | https://donhopkins.com/mediawiki/index.php?title=JQuery_Pie_...
       | 
       | https://github.com/SimHacker/jquery-pie
       | 
       | The challenge is how to design widgets that developers and
       | designers can easily skin, and totally customize the presentation
       | and feedback by mixing and layering different technologies (like
       | css, html, canvas, and WebGL, for example), independent of the
       | tracking behavior.
       | 
       | And how to design a complete set of callbacks and tracking
       | notifiers and hooks that enable developers to provide rich
       | feedback that's deeply integrated with their application (like
       | drawing the feedback based on application state, or previewing
       | the effects of the pie menu gesture in the app, while the menu is
       | still tracking).
       | 
       | You can do some kinds of simple styling with CSS, and more kinds
       | of deeper designs with html templates, and all kinds cool
       | customization with JavaScript code and dynamic HTML.
       | 
       | And you can define and configure trees of menus/slices/items with
       | JSON, XML, or HTML structures, including graphical and layout
       | properties, and event handlers.
       | 
       | Or you might want to procedurally draw some or all of the widget
       | with a canvas (while using html text for the labels, which is
       | much easier to deal with and more accessible than drawing text in
       | a canvas).
       | 
       | Or you might want to draw the menu items or background or even
       | the labels in 3D with WebGL.
       | 
       | How can one web component handle all these different ways of
       | mixing and matching rendering and feedback?
       | 
       | For example, these Unity3D pie menus can display text and image
       | feedback in the 2D overlay, mixed with 3D objects (drawn in an
       | overlay camera, not actually drawn directly in the world, or
       | objects in the world would occlude them).
       | 
       | https://www.youtube.com/watch?v=sMN1LQ7qx9g
       | 
       | >Unity3D Pie Menu Demo: I've made a general purpose pie menu
       | component in C# for Unity3D, which supports text items, image
       | items, and 3d object items too!
       | 
       | Another hard question is how do you define and configure these
       | widgets? There's a whole spectrum of different people with
       | different use cases, from downloading dynamic JSON menu trees
       | from a web server, to writing annotated html trees that degrade
       | gracefully to usable menus with JavaScript disabled, to building
       | and styling menus in an interface builder at design time, to
       | procedurally generating them with an api at runtime, to
       | integrating with an existing tool's editors like Unity3D at
       | authoring time, or even to enabling game players to build and
       | customize their own menus at playtime.
       | 
       | The Unity3D editor makes it possible to construct trees of
       | menus/slices/items out of 3d objects in the world, and edit their
       | properties with custom editor control panels, and configure
       | callback handlers that can modify the menus and 3D objects during
       | tracking to provide feedback. (Like making the 3d menu items spin
       | and scale and fly around, or mapping your face from the camera
       | onto a mesh in the center of the menu, and tilting the mesh in
       | the direction of the selected slice, to simulate the pie menus in
       | The Sims.)
       | 
       | The Coral Menu and Trace Menu from Simon Schneegans' Bachelor
       | Thesis are perfect examples of the kind of fluid dynamic layout
       | and feedback that I'd like to implement with HTML components and
       | the canvas 2d api:
       | 
       | https://vimeo.com/51072812
       | 
       | >The Coral-Menu
       | 
       | >The first prototype is targeted at users who often search for
       | items due to their manifold menu usage. It displays hierarchies
       | with ease. Even very deep hierarchies are easy to explore. Many
       | items are displayed by increasing the pie's radius and stacking
       | the labels which are displayed next to their sector on top of
       | each other. The following clip demonstrates the behavior. As you
       | can see, the items of sub-menus are indicated by little dark
       | blobs at their parents. This menu is quite fast to use because of
       | the mouse making a smooth movement.
       | 
       | https://vimeo.com/51073078
       | 
       | >The Trace-Menu
       | 
       | >The second prototype addresses itself to users who often make
       | use of the same menus. Thus they know where to find an entry and
       | want to select it blazingly fast. In contrast to the Coral-Menu
       | each sub-menu is a complete 360-degree-Pie-Menu with one entry
       | being the parent menu. The hierarchy is visualized by a path
       | between the visited menus. This menu features a so-called
       | "Marking-Mode": The user may draw the path (the "trace") to the
       | desired entry with one continuous gesture. Watch the following
       | clip and you will understand this behavior -- the Marking-Mode is
       | used for the very last selection.
        
       | spankalee wrote:
       | This is the first truly white-label web component set that I know
       | of. It's intentionally not a design system, and looks pretty ugly
       | out-of-the-box until you customize it with your own styles.
       | 
       | I think it's a really interesting approach, and has the
       | possibility to be a Bootstrap-like foundational layer.
       | 
       | I work on lit-html and LitElement, which Lion uses, and we're
       | working on new userland theming systems (and standards too) that
       | will make using and theming a set like this easier.
        
       | aphextron wrote:
       | The problem with Web Component libraries I've seen (including
       | this) is that the moment you use any external libraries, you lose
       | the entire point of Web Components. That is, to have fully native
       | reusable bits of code that can be built upon and used
       | interchangeably with any other tech stack just like an <a> tag or
       | an <input>. As soon as you start using libraries with a build
       | process you might as well just use React or Vue or whatever else.
        
         | sime2009 wrote:
         | Can you elaborate a bit on what you mean plz? What's the link
         | between "interchangeably" and having a build process?
        
           | aphextron wrote:
           | >Can you elaborate a bit on what you mean plz? What's the
           | link between "interchangeably" and having a build process?
           | 
           | My point is that as soon as you introduce a build process,
           | imported dependencies, etc. then you might as well just use
           | React components. The power of web components is that you can
           | just drop them on a page and use them with zero dependencies
           | or proprietary APIs to learn.
        
             | benforreal wrote:
             | But a build process ensures you can use imported
             | dependencies internally AND use them with zero dependencies
             | on your page (other than the JS component definition
             | itself). Even if you don't have a build process and just
             | use ES6 modules, the Web Component manages its own
             | dependencies such that you don't have to worry about it
             | (the only friction there being if folks use bare import
             | modules). Whereas with React components, you'll always be
             | dependent on a React runtime.
        
         | spankalee wrote:
         | The benefit of web components is interoperability. It doesn't
         | matter what build tools you might or might not use to make web
         | components, you consumer them the same way:                 1.
         | Load the definition       2. Create an element with any DOM API
         | or HTML.
         | 
         | Nothing about web components says you shouldn't use
         | dependencies or build steps.
        
       | hncynic23 wrote:
       | A financial institution doing something for free? what is this?
        
         | johannes1234321 wrote:
         | They are not doing it for free
         | 
         | * They build it for internal use, primarily
         | 
         | * They use it for advertisment (hey ING bank would never be
         | mentioned here otherwise)
         | 
         | * They can eventually use it for recruiting (send high quality
         | PRs, they might like you)
         | 
         | * If they are lucky they get cheap bug fixes (not free, as
         | review and community work costs time)
        
           | geofft wrote:
           | They also get to demonstrate their way of doing things in
           | public, which in a field as active and mercurial as frontend
           | web development has value in influencing where changes go. If
           | they have a particular solution to a problem that's not well-
           | solved elsewhere, they can influence the world to follow
           | their approach to solving it (or at least not pull the rug
           | out from under them) instead of going a totally different way
           | and turning their code into technical debt.
        
       | skrebbel wrote:
       | It's an impressive sign of the times that a traditional bank
       | publishes free & open source software. Banks are extremely risk
       | averse by nature, and publishing open source is risky in all
       | kinds of ways.
       | 
       | What if a developer copies&pastes some GPL code? What is some
       | open source dev work gets done on a big project billed to a
       | client? What if an external contributor contributes some code
       | that gets merged, but it turns out to contain an obfuscated
       | backdoor and this ends up inside our online banking apps? What if
       | a company uses our open source code and it's broken and they sue
       | us? (they'll have no leg to stand on, but it's still a worry for
       | management not used to open source).
       | 
       | Really there are all kinds of complicated stories (sensible and
       | not) about ownership and responsibility that need answering
       | before an organisation like this will give off the green light to
       | publish open source. I bet this was not a few developers asking
       | the boss and the boss going "oh yeah sure, go ahead". Hats off.
        
         | sandermvanvliet wrote:
         | When working at one of the other big banks in the Netherlands I
         | had a security officer ask me: "So are we using any open source
         | software?" I had the pleasure of seeing his face go white after
         | I told him pretty much every bit we had from OS to framework,
         | compilers, languages and everything in between was open source
         | software...
         | 
         | It wasn't a surprise that we couldn't open source some of our
         | stuff "because security"
         | 
         | So yeah, good to see this sentiment is changing
        
           | ci5er wrote:
           | ING has always been a pretty open/modern/progressive business
           | on a number of fronts. I wouldn't take this as typical. (In
           | other words - they aren't Chase and vice-versa, not anything
           | against Chase in this claim)
        
         | reaperducer wrote:
         | _It 's an impressive sign of the times that a traditional bank
         | publishes free & open source software_
         | 
         | Another example: JPMorgan Chase:
         | https://github.com/jpmorganchase
        
         | pierre wrote:
         | I went through the hoops of open sourcing some code in a global
         | 50 company. The development team push for it restlessly for a
         | year. The reality is that the culture in not there yet and I
         | had to go through security, compliance and legal. We had to
         | rewrite some code as one of our apache 2.0 dependency had some
         | GPL dependencies.
         | 
         | We finally get the go when we cornered an exec during an off
         | site event and he finally agreed to let us do it.
         | 
         | Big company are unfortunatly not ready by default to contribute
         | back, it s not in the culture, and you get pushback from
         | internal IT team thinking the code / architecture /
         | documentation is not good enough yet to open source (hint : it
         | never is) once you have clear the compliance / legal / branding
         | / security side of things.
         | 
         | Hats down for the tech lead / dev / manager that convinced ING
         | to open source this one. I hope that getting in front of HN
         | will allow the dev team to get a little more budget to maintain
         | this project a little longer.
        
           | d4kmor wrote:
           | hey, one of the devs that pushed for it here. Fully correct -
           | getting everyone on board and then to actually approve it
           | took a long time and a huge amount of effort. Even then
           | although the code was open source we had been in a pilot
           | phase where we have not been allowed to promote it. But now
           | it's share it is much as you can And yes we hope to get a big
           | community externally and internally which will improve the
           | components overall
        
       | boughtOut wrote:
       | ING is actually Capital One.
        
       | actionjezus6 wrote:
       | What is this, a noble well-respected banking institution or a
       | software house? Preposterous! /s
        
       ___________________________________________________________________
       (page generated 2020-02-13 23:00 UTC)