Open Source Software

Ik ben een groot fan van open source software. Het voorkomt vendor lock-in; je zit dus niet vast aan een bepaalde partij. Indien akkoord maak ik ook graag de code die ik voor jou schrijf direct openbaar, zoals ik heb gedaan met een uitleen systeem en een collectiemanagement systeem en diverse kleinere herbruikbare componenten, zie b.v. murb op rubygems. Het voorkomt ook het eeuwige herbouwen van bijna dezelfde oplossingen.

Tag descriptor

CentralLogin

An article, posted more than 3 years ago filed in ruby, CentralLogin, gem, rubygem, murb, authorization, authentication, roles, groups, resources, open source, mit, openid & oauth.

A simple OAuth provider by murb. See below for more information, or check out the source of CentralLogin on GitLab. To integrate it with your ruby-apps, use the omniauth-central_login gem.

Introducing CentralLogin, an OpenID Connect Provider

An article, posted more than 3 years ago filed in ruby, CentralLogin, gem, rubygem, murb, authorization, authentication, roles, groups, resources, open source, mit & oauth.

This app builds on the foundations of the Doorkeeper, Doorkeeper::OpenidConnect and Devise to provide a central login system.

While Doorkeeper supports other OAuth flows, CentralLogin focusses on OpenID Connect as it is a more complete, and hence useful standard, for most use cases where you want to support authentication & authorization.

This project builds on years of juggling with different authentication providers and implementations. It may cut corners to be a pragmatic and less flexible solution which you can host on your own. You don't have to tie your users to a closed authentication system such as Auth0, Azure Directory, Cognito (the horror, really, stay away from it) or something else. In the past I've been a happy user of Keycloak, which is definitely way more advanced than this project, but it in the end it is a Java application and hence harder for me to maintain and not focussed on what I think are the core requirements :)

So, are you in the market for:

  • a…

Introducing BrandingRepo (for Rails)

An article, posted more than 3 years ago filed in BrandingRepo, ruby, rails, gem, mit, open source, Git, design & clients.

Ever had the problem that you reuse the same project for a managemable number of clients? Too few to store branding materials in a database, but more than one making it hard to keep separate branches in sync?

Introducing BrandingRepo (for Rails)

The idea is simple: create a configuration file with those files that are specific to different brands/customers and store their mods in a different repository. Repository is quite a big word here: we simply create a config/brands folder in your current branch where you can push and pull your brand specific adjustments from. All managed in the same git repository.

What it is not:

  • it is not git within git.
  • it is not a design system, nor has it anything to do with it (I think perhaps with a few additional hacks it can be made to work with centrally managed gems/node-modules; like here: https://twitter.com/hopsoft/status/1451358882161332225?s=10)
  • it is not adding brand icons to your project

Installation

Add this …

Maak het open source! Of niet?

An article, posted about 7 years ago filed in open source, gpl, AGPL, netscape, Firefox, chrome, vertrouwen & delen.

Onlangs kwam ik een hommage aan het open source maken van Netscape tegen. Netscape is uiteindelijk verdwenen, maar hieruit is wel Firefox voortgekomen. En geestverwant Chrome. Zelfs Microsoft maakt steeds meer zaken open source. Dus maak wat je hebt (laten bouwen) open source, of toch niet?

Goede redenen om iets open source te maken:

  1. Het kan vertrouwen bieden voor jouw klanten; ze kunnen gemakkelijker migreren naar een andere leverancier.
  2. Je software bestaat waarschijnlijk al grotendeels uit opensource, wel zo eerlijk om ook jouw eigen software te delen met de rest van de wereld
  3. Andere kunnen bijdragen aan jouw dienst-ondersteunende tool (en deze dus zomaar beter maken)
  4. Het helpt als je de Wens hebt om de (de facto) standaard te maken in jouw werkgebied (en aangezien jij het begonnen bent ben jij de expert)
  5. De code wordt veiliger omdat hackers mee ku…

The academic vs the builder

An article, posted more than 7 years ago filed in bazaar, cathedral, open source, architecture, web, w3c, standards, css, xhtml & pragmatic.

“dichotomies make it easier.”

Just over two decades ago The cathedral and the bazaar by Eric Steven Raymond was published. It talked about software development and kind of suggested that a more bazaar like ‘architecturing’ would improve the way complex systems could be build. Nowadays BDUF is a swear-word. In an ever-changing world, you can’t predict the future. So why design for one year. Experiment! Extend!

When I was visiting the Fronteers conference a few weeks ago I had a short interaction where I apologized for my maybe bit academic bias. I remembered I was still quite fond of some old xhtml standard that never really arrived.

Reading the online resilient web design-essay I was reminded of the continuous struggle between practitioners and the standards co…

De principes van murb

An article, posted more than 8 years ago filed in simpel, it, complexiteit, eindgebruiker, design, ux, ui, murb, agile, gebruiksvriendelijk, scrum, opensource, open source, modules, prijzen, kosten & agile manifesto.

Toelichting: Niet iedereen maakt applicaties op dezelfde manier. In de loop der jaren heb ik wat principes ontwikkeld waaraan ik mij probeer te houden wanneer ik oplossingen realiseer. Het zijn handvatten waaraan ik mijzelf probeer te houden. Ik hoop ook dat opdrachtgevers mij hieraan helpen herinneren mocht het, vergeef me, toch nodig zijn. Vandaar deze openbare declaratie.

Simpel

Ook het idee dat zaken veelal onnodig complex gemaakt worden? Het komt maar al te vaak voor dat IT-bedrijven oplossingen willen bouwen die geschikt zijn voor alles. Maar dat heeft een prijs: complexiteit. De software van murb is eenvoudig in het gebruik en ook nog eens goedkoper aan te passen aan jouw wensen.

De eindgebruiker staat centraal

Heb je het gevoel dat de gebruiker wordt vergeten bij lange lijsten met features? Er wordt door murb in de eerste plaats gewerkt aan gebruiksvriendelijke oplossingen. Met een duidelijke mens-machine-interactie en interactieontwerp achtergrond st…

Tag descriptor

SocialLinker

An article, posted almost 9 years ago filed in ruby, rubygem, gem, social_linker, rails, rubygems by murb, share, privacy, google+, facebook, google, twitter, social, open source & opensource.

I had a few projects that I thought could use some share 'buttons', but I didn't like to include the JavaScript loaded and privacy invading share buttons that the networks try to sell you by default. Neither did I like to concatenate the links with all variables required for each project… so I wrote a small rubygem on a back and forth train trip (#ilovetrains ;)): social_linker.

The idea is that you share something about a certain subject, hence you initalize the SocialLinker::Subject and then you'll be able to generate share links from it:

subject.share_link(:facebook)

How it works

Initialize the subject with enough material to generate links from, such as the page's url, maybe the media url (mainly for Pinterest type-shares), a description, tags etc.

For example, initialize the SocialLinker::Subject as follows:

social_linker_subject = SocialLinker::Subject...

Tag descriptor

The `workbook`-gem

An article, posted about 9 years ago filed in workbook, gem, ruby, rails, open source & rubygems.

workbook is simple ruby framework for containing spreadsheet like data in a datastructure that is known to most programmers: the (multidimensional) Array.

News

KeywordFinder gem released

An article, posted more than 9 years ago filed in opensource, gem, ruby, rubygems by murb & open source.

For a project I'm working on, I decided to develop some functionality in a separate gem, so the project doesn't get cluttered too much with special librarly like classes. And since I like open source, I've got something to share with you.

We were dealing with the following situation:

Given a set of the following keywords: "aardappelen", "zachtkokende aardappelen", "zout", "schimmelkaas", "kaas", "oude harde kaas", "kikkererwten", "maïs", "bruine bonen", "shiitake", "boter"

Can you recognize:

"een grote pan zachtkokende aardappelen met een snufje zout"=>["zachtkokende aardappelen", "zout"],
"schimmelkaas" => ["schimmelkaas"],
"(schimmel)kaas" => ["schimmelkaas"],
"old amsterdam (maar een andere oude harde kaas kan natuurlijk ook)" => ["oude harde kaas"],
"g (verse) shiitake in bitesize stukjes gesneden" => ["shiitake"],
"pot hak bonenmix (kikkererwten maïs kidney en bruine bonen) afgespoeld en uitgelekt" => ["kikkerwerwten", "maïs", "bruine bo...

Introducing Web Page Archiver (new ruby gem)

An article, posted almost 13 years ago filed in html, website, ruby, gem, archive, web page archiver, base64, data uri, mhtml, mime html, rubygems by murb & open source.

To the ruby-folks (ruby is a programming language). Just a quick note to inform you that I've coded a new ruby gem:

> Web page archiver is a gem for creating web page archives: single files that contain images, Javascript, CSS, and the actual HTML. Of course you may zip these files, but there is hardly any support for opening and viewing such files without first requiring the user to extract the files before viewing. The solution offered in this gem is either MHTML or HTML with no external references. MHTML (or MIME HTML) is the default archive format for Internet Explorer and Opera, and can also be read in these browsers. HTML with no external references is not written by any browser as a standard archive format (that I know of) but can be read by any browser, as long as it has support for the Data URI-scheme (all modern browsers, although size limits apply to IE8).

More on the Web Page Archiver github page.

Het concept achter de hypes

An article, posted about 13 years ago filed in test, ux, internet, cloud, opensource, hype, open, gebruikerservaring, hack, flexibel, aanpasbaar, ontmaskering, boerenverstand, open source, personal cloud & big data.

Ontwikkelingen gaan te snel om allemaal bij te houden, dat is wat blogs en tijdschriften je graag willen vertellen. Daarom móet je hen ook volgen. Als je alle nieuwe media trends en technieken echter wilt kennen heb je geen tijd meer over om echte dingen te maken. Geen tijd meer om plezier te beleven aan het bouwen van iets, noch tijd om er aan te verdienen.

Gelukkig zitten er achter veel hypes vaak dezelfde concepten die voortborduren op jaren lopende trends. En die zijn best wel te volgen. Zo stuitte ik onlangs op een artikeltje dat ik negen jaar geleden had geschreven over webstandaarden. En in de basis klopt nog steeds (hoewel we ons nu niet meer druk hoeven te maken over Netscape 4.x). Wanneer je over andere soorten displays (waaronder auditieve) nadacht, dan kon je al weten dat Flash en pixelperfect design nooit duurzaam kunnen zijn, en op den duur vervangen moeten worden (‘hypes’ die het goed doen zijn nu responsive design, …