makandra BlogWe're a Ruby on Rails development team. You might know us from Rails LTS, makandropedia or Ruby backports.//blog.makandra.com/2018-07-26T10:05:23Zmakandra GmbHHow custom elements will change web developmentmakandra-blog:2018/07/how-custom-elements-will-change-web-development2018-07-26T10:05:23Z2018-07-26T10:05:23ZHenning Koch<p>I wish we never explained web components by "well, it's actually four different things, but I won't tell you which one you care about."</p>
<p>Spoiler: <strong>It's custom elements</strong>. It's always been custom elements.</p>
<p>Since forever, library authors have felt the pain of needing to match JavaScript with DOM elements. For instance, if you're writing a date picker, someone needs to call <code>YourDatePicker.init(element)</code> for every <code>&lt;input class="date-picker"&gt;</code> that gets attached to the DOM.</p>
<p>There is no built-in way or even standard way to do this. Every library shipped their own solution to this, using a jQuery plugin, global activation function, magic onload handlers or a framework-specific base class.</p>
<p>Custom elements make all of that go away. Just use <library-element> in your HTML, or create it using the framework of your choice and it will Just Work ™. No JavaScript ceremony required to make a DOM element come alive. It's a giant step forward for how we bootstrap web apps, or how we share code between apps.</library-element></p>
<p>I think that leap is the reason we're seeing an increasing number of JavaScript libs switching to custom elements for script/element matching, although browser support is an <a href="https://caniuse.com/#feat=custom-elementsv1">unholy mess</a>. Microsoft is dragging their feet with Edge and of course pretends IE11 doesn't exist anymore, while at the same time blocking upgrades from IE11 to Edge on Windows 7. Firefox hides it behind a feature flag. Safari mostly supports it with some caveats.</p>
<h2 id="the-polyfill-from-hell">The polyfill from hell</h2>
<p>"But we can polyfill it". Except you can't easily because it breaks assumptions of your build pipeline in interesting ways. You see, Chrome's native support for Custom Elements v1 requires native (not transpiled) ES6 classes because politics. And your app probably ships ES5 prototype spaghetti in production. So the Babel or TypeScript presets you use to support IE11 will break custom elements in Chrome.</p>
<p>Now you need TWO builds of every JavaScript file: One with native ES6 classes for Chrome and another with dumbed-down ES5 constructors for IE11. (hat tip to <a href="https://twitter.com/moonbeamlabs">Lucas Dohmen</a>)</p>
<p>Understanding and maintaining two build pipelines is totally doable for an experienced development team, but will probably keep custom elements out of the mainstream for now. An interesting date to note here is Jan 14th 2020, when Microsoft kills Windows 7 / IE11 and we might finally be able to ship ES6 code without transpilation.</p>
Introductory interview with Robinmakandra-blog:2018/06/introduction-interview-robin-kara2018-06-12T12:05:23Z2018-06-12T12:05:23ZRobin Kara<h3 id="introduce-yourself">Introduce Yourself</h3>
<p>Hey there! I'm Robin Kara, living in southern Augsburg with a nice view on my garden. After work I love tinkering, discussing, hanging out
and having some beers with other tech-enthusiasts and makers at the <a href="https://openlab-augsburg.de/">OpenLab</a>.</p>
<p>Before joining makandra I was helping cloud providers in the EMEA region to have their storage backend running lightning fast, highly
available and automatically provisioned. Even before I left school, both Linux and Ruby already were the tools of my choice when it came to
solving problems. Computers being my hobby and making some nice summer jobs possible, it was just natural for me to start a apprenticeship
for IT professional after graduation. Generally speaking, I would always prefer and advocate free software over closed source software, as
long as it does the job well.</p>
<h3 id="how-did-you-first-learn-about-makandra-and-what-drew-you-to-makandra-originally">How did you first learn about makandra and what drew you to makandra originally?</h3>
<p>Given my personal interests it's no surprise that I first learned about makandra at our local hackerspace. When I was looking for a new job
where I wanted to do more Linux during the day, I was very glad to hear from Andi (who occasionally stays at the
<a href="https://openlab-augsburg.de/">OpenLab</a> too) that makandra could use some support with their server operations. The fact that I could also
improve my ruby skills at makandra even put the icing on the cake. :)</p>
<h3 id="what-is-your-role-at-makandra">What is your role at makandra?</h3>
<p>I'm working as an operations engineer, keeping your servers happy and ready.</p>
<h3 id="what-are-3-words-to-describe-makandra">What are 3 words to describe makandra?</h3>
<ul>
<li>agile</li>
<li>reliable</li>
<li>ambitious</li>
</ul>
<h3 id="what-challenges-are-you-looking-forward-at-makandra">What challenges are you looking forward at makandra?</h3>
<p>For now, I'm looking forward getting known to all the fancy projects you host and build on our OpsComplete infrastructure. Usually it's a
lot of fun for me to understand or debug complex computer networks, so I hope I can find some potential for optimizations of our
infrastructure.</p>
<h3 id="are-you-messy-or-organized">Are you messy or organized?</h3>
<p>I'm desperately trying to formalize and organize everything but in the end I'm a chaotic nature and love to see how beautiful things emerge
from chaos.</p>
<h3 id="best-vacation-youve-been-to">Best vacation you've been to?</h3>
<p>Two weeks in Sweden's nature with some colleagues. Next to our holiday home in the forest we had a hot tub, a nice fireplace and a cold
lake but absolutely no mobile internet connection. That was just the perfect setting to relax and experience nature.</p>
<h3 id="describe-what-you-were-like-at-age-10">Describe what you were like at age 10.</h3>
<p>I was an easygoing but always bubbly guy, wondering about a different detail of our wondrous world every day. Often, my parents had to hold
me back when I got a new toy and immediately started taking it into pieces to understand its inner workings.</p>
<h3 id="do-you-recall-any-embarrassing-moment-at-work">Do you recall any embarrassing moment at work?</h3>
<p>Yes. Once, I showed up at a customers site in Czechia for some weekend maintenance work, but unfortunately "off by one" week. I only
realized it when I gave my customer a call to ask when he would show up and he told me "next week".. I don't want that to ever happen
again. ;-)</p>
<h3 id="if-you-were-an-animal-what-would-you-be">If you were an animal what would you be?</h3>
<p>A robin, I guess.</p>
<h3 id="people-would-be-surprised-if-they-knew">People would be surprised if they knew:</h3>
<p>I did use Microsoft Windows for a certain challenge, out of free will.</p>
<h3 id="what-book-did-you-read-last">What book did you read last?</h3>
<p>Homo Deus, it's worth reading.</p>
<h3 id="vim-or-emacs-be-careful-here">Vim or Emacs? (Be careful here…)</h3>
<p>:set nocompatible and the party starts.</p>
<h3 id="what-tools-are-you-using-that-you-dont-want-to-miss-anymore">What tools are you using that you don't want to miss anymore?</h3>
<p>Well, I probably couldn't live without my screw gun and my battery powered circular saw anymore. When it comes to software tools, I love my
i3 window manager, taskwarrior, notmuch, vim and zsh running on a debian based distribution.</p>
<hr />
<p>Welcome to makandra, Robin!</p>
Rails 2.3 now supports Ruby 2.3makandra-blog:2018/03/rails-2-3-now-supports-ruby-2-32018-03-21T12:00:00Z2018-03-21T12:00:00ZHenning Koch<p>Rails 2.3 is 9 years old this week. And it's <a href="https://railslts.com">now compatible with Ruby 2.3</a>.</p>
<p>While this is not a drop-in solution and will involve <a href="https://makandracards.com/railslts/47192-ruby-2-3-support">some manual work</a> for those who want to upgrade to Ruby 2.3, it will allow Rails LTS 2.3 applications to benefit from the 2x - 4x performance improvements of Ruby 2.3 over 1.8.</p>
<p>If you don't want to or are unable to upgrade your Ruby version, there is no action required on your part. <a href="https://railslts.com">Rails 2.3 LTS</a> will continue to work on Ruby 1.8.7, and we are committed to supporting 1.8.7 indefinitely.</p>
<p>If you have already added some monkey-patches to make your Rails LTS app work with Ruby 2.x, we recommend to remove the monkey patches and follow our <a href="https://makandracards.com/railslts/47192-ruby-2-3-support">upgrade guide</a>.</p>
<h2 id="some-assembly-required">Some assembly required</h2>
<p>You can now upgrade your Rails 2.3 LTS application to Ruby 2.3 without a need for the numerous patches and workarounds related to Rails that were necessary for a Ruby upgrade in the past. It also means that we will test all new releases against Ruby 2.3 (as well as 1.8.7).</p>
<p>However, your application will very likely have some incompatibilities outside of Rails itself (either in your own code, or in third-party gems). Upgrading will require the attention of a Ruby developer, and a moderate amount of work and testing, depending on the size of your application.</p>
<p>We have managed to upgrade two medium-sized Rails 2.3 applications in about 2 days of effort each. Both are now running at roughly twice their former speed. Your mileage might vary.</p>
<p>If you want to attempt the upgrade, we have written a <a href="https://makandracards.com/railslts/47192-ruby-2-3-support">detailed upgrade guide</a>.</p>
Introductory interview with Danielmakandra-blog:2017/06/introduction-interview-daniel-strassner2017-06-23T09:30:59Z2017-06-23T09:30:59ZDaniel Straßner<h3 id="introduce-yourself">Introduce Yourself</h3>
<p>Hi, I'm Daniel Straßner, living in a town close to Augsburg. During leisure time I like fiddeling with my Raspberry PIs (there's four of them). I use them as Media PCs and server playgrounds so I can experiment with stuff like Docker, which works extremely well (check out <a href="https://blog.hypriot.com">hypriot</a>). Other than that I care for the preservation of Bavarian heritage and customs. This means you could see me doing a Schuhplattler or playing the button box at public events around here.</p>
<p>Before I got into the IT industry I studied business mathematics in Augsburg. It was an internship that got me interested in software development. After my bachelor I decided to do a graduate program in computer science. During college I worked for several software companies as a working student.</p>
<h3 id="how-did-you-first-learn-about-makandra-and-what-drew-you-to-makandra-originally">How did you first learn about makandra and what drew you to makandra originally?</h3>
<p>I learned about makandra as I found an ad for a Ruby-on-Rails workshop at the University of Augsburg. I couldn't attend the workshop, however, I checked the makandra webpage from time to time as I really liked makandra's core values and their approach to developing good software. When the time came to decide for a topic for the master thesis, I got in contact with makandra and was lucky that they had plenty of interesting new problems to solve.</p>
<h3 id="what-is-your-role-at-makandra">What is your role at makandra?</h3>
<p>I'm working as a software developer.</p>
<h3 id="what-are-3-words-to-describe-makandra">What are 3 words to describe makandra?</h3>
<ul>
<li>professional</li>
<li>efficient</li>
<li>caring</li>
</ul>
<h3 id="what-challenges-are-you-looking-forward-at-makandra">What challenges are you looking forward at makandra?</h3>
<p>As trends in the software industry are vastly emerging it will be interesting to decide for new technologies we could add to our stack. People at makandra use to make well-considered decisions about software, so don't expect us to do <place-hipster-framework-here> right away.</place-hipster-framework-here></p>
<h3 id="what-book-did-you-read-last">What book did you read last?</h3>
<p>My bedtime reading for the last few years: The Adventures of Sherlock Holmes (pages: ~1400, pages before falling asleep: ~5 =&gt; I'm good for the next 280 years with this book)</p>
<h3 id="vim-or-emacs-be-careful-here">Vim or Emacs? (Be careful here…)</h3>
<p>Vim (but I'm still learning)</p>
<h3 id="best-vacation-youve-been-to">Best vacation you've been to?</h3>
<p>A trip through the states (west). Quote: "It's not hard to be easy-going when you're living in California"</p>
<h3 id="if-you-were-an-animal-what-would-you-be">If you were an animal what would you be?</h3>
<p>Some kind of bird (not sure which) as long as I can fly</p>
<h3 id="if-you-had-to-eat-one-meal-every-day-for-the-rest-of-your-life-what-would-it-be">If you had to eat one meal, every day for the rest of your life, what would it be?</h3>
<p>Oma's Apfelnudeln mit Kartoffelsuppe (yeah that's an established term)</p>
<hr />
<p>Welcome to makandra, Daniel!</p>
2017 web tech predictions and good ideas that will not happenmakandra-blog:2017/01/2017-web-tech-predictions2017-01-04T12:00:00Z2017-01-04T12:00:00ZHenning Koch<h2 id="web-devs-will-start-owning-performance-on-mobile">1. Web devs will start owning performance on mobile</h2>
<p>2017 will be the year where 20 seconds time-to-interactive on mid-range phones
stops being cool. If you don't think that's an issue, maybe stop testing for mobile
with a MacBook Pro and a small browser window.</p>
<p>Every Javascript library, Bootstrap release, web font and icon set adds seconds to load time
on low-powered devices. The time has come for developers to own that trade-off instead of
piling even more work on <a href="https://www.youtube.com/watch?v=4bZvq3nodf4">overworked CPUs and exhausted batteries</a>.</p>
<p>In 2017 we will see teams succeed in making fast apps by <em>simply loading less stuff</em>.
Expect
<a href="https://preactjs.com/">radically</a>
<a href="http://unpoly.com/">smaller</a>
<a href="https://vuejs.org/">Javascript</a>
<a href="http://intercoolerjs.org/">payloads</a>
and a move to
<a href="https://milligram.github.io/">minimalist</a>
<a href="http://purecss.io/">CSS</a>
<a href="http://getskeleton.com/">boilerplates</a>.
I even expect to see see web design with traditional web-safe fonts
to save that 500 KB download of Open Sans which looks as dated as Arial these days.</p>
<p><strong>Good idea that will not happen in 2017:</strong>
Google search results showing how many minutes a page load will suck out of your battery.</p>
<h2 id="iot-hype-will-continue-to-endanger-the-public">2. IoT hype will continue to endanger the public</h2>
<p>Pushed by consultants, every device that does not need to bundle Wifi and a web server will do so in 2017.
Hence we're going to see a lot more botnets of unpatched toasters and lightbulbs.</p>
<p>I predict that there will be at least one large-scale
<a href="https://krebsonsecurity.com/2016/10/hacked-cameras-dvrs-powered-todays-massive-internet-outage/">DDoS attack caused by unmaintained household devices</a>.</p>
<p><strong>Good idea that will not happen in 2017</strong>:
Regulations enforcing a <a href="https://www.heise.de/newsticker/meldung/33C3-Hacker-rufen-nach-Mindesthaltbarkeitsdatum-fuer-vernetzte-Geraete-3583224.html">best before date for networked devices</a>,
until which manufacturers are required to produce security patches.</p>
<h2 id="native-apps-must-stop-competing-with-the-web-or-die">3. Native apps must stop competing with the web (or die)</h2>
<p>With two thirds of users having access to <a href="https://developers.google.com/web/progressive-web-apps/">Progressive Web App</a>
features like store-less installation and offline support, the sweet spot
for native apps must move or disappear.</p>
<p>If you're working on native apps right now, make sure to build something that cannot be done on the web:
Large offline media, background audio, low-friction payments.</p>
<p>I predict that in 2017, several high-profile media properties will abandon
their native apps in favor of PWAs, lowering maintenance costs and increasing engagement.</p>
<p><strong>Good idea that will not happen in 2017:</strong> App stores allowing low-friction inclusion of unprivileged PWAs in their listings.
We probably <a href="https://discourse.mozilla-community.org/t/firefox-os-connected-devices-announcement/6864">blew</a>
that <a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Security/Security_model">chance</a> by not buying
Firefox phones in 2015.</p>
Introductory interview with Nataliemakandra-blog:2016/12/introduction-interview-natalie-krehan2016-12-23T10:27:59Z2016-12-23T10:27:59ZNatalie Krehan<p>At makandra we're welcoming 2 to 3 new colleagues per year.
We'll publish short introduction interviews like this one with Natalie, who joined our development team this year.</p>
<h3 id="introduce-yourself">Introduce Yourself</h3>
<p>I am Natalie Krehan, living in Augsburg. Before joining makandra, I studied computer science with multimedia and besides my study worked as working student in the project management of an IT company.</p>
<h3 id="how-did-you-first-learn-about-makandra-and-what-drew-you-to-makandra-originally">How did you first learn about makandra and what drew you to makandra originally?</h3>
<p>Searching for an IT company where I can learn all skills and knowledge to become a professionell developer, I discovered a job opening for makandra's trainee and I thought "that would be perfect". I turned on my heels and walked to the next computer to write my application and voila - now I am here! :)</p>
<h3 id="what-is-your-role-at-makandra">What is your role at makandra?</h3>
<p>In 2016 I have finished the trainee programm and wrote my bachelor dissertation at makandra. Now in 2017 I am joining the team as a developer.</p>
<h3 id="what-are-3-words-to-describe-makandra">What are 3 words to describe makandra?</h3>
<ul>
<li>expertise</li>
<li>passion</li>
<li>reliability</li>
</ul>
<h3 id="what-challenges-are-you-looking-forward-at-makandra">What challenges are you looking forward at makandra?</h3>
<p>Honestly I can't tell what challenges I will face at makandra. I am new to the developer working life and I coudn't possible imagine all challenges waiting for me. But I am really excited to meet and master all of them!</p>
<h3 id="are-you-messy-or-organized">Are you messy or organized?</h3>
<p>Some kind of organized mess from my point of view.</p>
<h3 id="best-vacation-youve-been-to">Best vacation you've been to?</h3>
<p>I can not really descripe the destination of our vacation trip, but I can describe the feeling I had. I loved those trips most, where we just jumped in our old lovely VW bus and just kept driving until we reached a spot we liked and stayed. On those trips we see a lot of cute little cities and gorgeous secret spots on deserted beaches or in mysterious pine forests. And if we fellt like moving on….we just hoped on our bus and were back on the road again…</p>
<h3 id="do-you-have-a-favorite-quote">Do you have a favorite quote?</h3>
<p>My favorite quote is from Socrates: "Someone who believes being somebody has just stopped becoming somebody."</p>
<hr />
<p>Welcome to makandra, Natalie!</p>