The blog of , a Ruby on Rails development team
Known from Rails LTS, makandropedia and Nanomize

Rails 2.3 now supports Ruby 2.3

Rails 2.3 is 9 years old this week. And it's now compatible with Ruby 2.3.

While this is not a drop-in solution and will involve some manual work 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.

If you don't want to or are unable to upgrade your Ruby version, there is no action required on your part. Rails 2.3 LTS will continue to work on Ruby 1.8.7, and we are committed to supporting 1.8.7 indefinitely.

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

Some assembly required

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

However, our 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.

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.

If you want to attempt the upgrade, we have written a detailed upgrade guide.

Introductory interview with Daniel

Introduce Yourself

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

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.

How did you first learn about makandra and what drew you to makandra originally?

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.

What is your role at makandra?

I'm working as a software developer.

What are 3 words to describe makandra?

  • professional
  • efficient
  • caring

What challenges are you looking forward at makandra?

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

What book did you read last?

My bedtime reading for the last few years: The Adventures of Sherlock Holmes (pages: ~1400, pages before falling asleep: ~5 => I'm good for the next 280 years with this book)

Vim or Emacs? (Be careful here…)

Vim (but I'm still learning)

Best vacation you've been to?

A trip through the states (west). Quote: "It's not hard to be easy-going when you're living in California"

If you were an animal what would you be?

Some kind of bird (not sure which) as long as I can fly

If you had to eat one meal, every day for the rest of your life, what would it be?

Oma's Apfelnudeln mit Kartoffelsuppe (yeah that's an established term)

Welcome to makandra, Daniel!

2017 web tech predictions and good ideas that will not happen

1. Web devs will start owning performance on mobile

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.

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 overworked CPUs and exhausted batteries.

In 2017 we will see teams succeed in making fast apps by simply loading less stuff. Expect radically smaller Javascript payloads and a move to minimalist CSS boilerplates. 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.

Good idea that will not happen in 2017: Google search results showing how many minutes a page load will suck out of your battery.

2. IoT hype will continue to endanger the public

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.

I predict that there will be at least one large-scale DDoS attack caused by unmaintained household devices.

Good idea that will not happen in 2017: Regulations enforcing a best before date for networked devices, until which manufacturers are required to produce security patches.

3. Native apps must stop competing with the web (or die)

With two thirds of users having access to Progressive Web App features like store-less installation and offline support, the sweet spot for native apps must move or disappear.

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.

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.

Good idea that will not happen in 2017: App stores allowing low-friction inclusion of unprivileged PWAs in their listings. We probably blew that chance by not buying Firefox phones in 2015.

Introductory interview with Natalie

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.

Introduce Yourself

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.

How did you first learn about makandra and what drew you to makandra originally?

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! :)

What is your role at makandra?

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.

What are 3 words to describe makandra?

  • expertise
  • passion
  • reliability

What challenges are you looking forward at makandra?

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!

Are you messy or organized?

Some kind of organized mess from my point of view.

Best vacation you've been to?

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…

Do you have a favorite quote?

My favorite quote is from Socrates: "Someone who believes being somebody has just stopped becoming somebody."

Welcome to makandra, Natalie!

Know your APIs

Last month we unrolled another project: A social media center for one of Germany's largest insurance companies. The R+V Newsroom streams activities by R+V and R+V24 from eight different sources, giving a total of 14 different accounts polled, adding about 9 new posts each day. Until today, about 200,000 imports have been performed.

It's all about APIs

Polling APIs is different from usual single-box coding where errors are usually your own bad. Since we need to handle uncertainties implied by remote systems, our code needs to be particularly robust. Since we're talking to eight different systems, we need to talk eight different API languages. And since we're regularly checking data streams, we need a reliable way to find the point we left off for each of them.

Each network has its own associated importer that knows a) how to fetch new posts and b) how to write them to the database. With API client gems like twitter, koala, yt and xing_api, this is no big deal. Some sources had to be consumed more manually, like Wordpress RSS feeds, and to display press releases we're even scraping their web page.

The key for robustness is asynchronous import scheduled by whenever and performed by Sidekiq. When an import fails (due to an API unavailability like during the the DNS DDoS last month), a clever configuration makes sure it is retried a number of times before we're notified of its failure.

But it's not just flexible input, the R+V Newsroom also provides its data in various formats. Besides the website, it offers widgets that can be embedded into other pages and display a limited, filtered list of posts. Additionally, the post stream is available as RSS and JSON, leaving the choice on how to consume the data to the user.

Great UX with reasonable effort

In the frontend, the R+V Newsroom makes use of a number of great libraries to leverage user experience.

Number one is our more and more established Javascript library Unpoly. Think Rails + intelligent Turbolinks + Angular directives + power modals. Unpoly turns a plain full-page server-side website into a snappy app while requiring only little changes in your code. As a side effect, it leaves the frontend with lean Javascript (~280 lines of Coffeescript) and even has the website still accessible when Javascript should be turned off. You should give it a try!

We further sped up the page by delivering images in the right sizes for each device. Since monitor resolution is ever increasing, images need to be served in higher resolutions, too. At the same time, the traffic from mobile devices increases—devices, that mostly have little bandwidth and usually sport far smaller screens than desktop computers. By using the awesome lazysizes, we could accomplish a flexible and maintainable delivery of "just right" images to whatever device visits the page. Read more in this in-depth blog post.

Another notable improvement was made to file uploading in the backend. You all know these plain file input fields that make any webpage feel like it's 20 years old. It does not have to be this way! jQuery-File-Upload is a mature library that lets you build awesome, snappy file uploads that are customizable and play well with server-side components like CarrierWave. See an in-depth example in the makandropedia.

Hosting by makandra

Having this new platform with a great UX, R+V decided to add the other half of UX: reliable servers. The Newsroom is hosted on makandra's powerful Rails infrastucture. Like web applications from Audi, ABUS and ProSieben, the R+V Newsroom runs on redundant machines that are properly scaled and caringly maintained.

With all this in place, the R+V Newsroom is a solid platform with a snappy UI in both frontend and backend, looking forward to its next 100,000 imports.

Four party cooperation

The R+V Newsroom is the result of a multi-company endeavor. Conception, project management and customer communication was done by d.tales, a content marketing agency from Munich. Christian Ringleb crafted these clean, bluey designs, while we were growing the Newsroom line by line. Thanks for the sweet cooperation!

Our address:
makandra GmbH
Werner-von-Siemens-Str. 6
86159 Augsburg
Contact us:
+49 821 58866 180
Commercial register court:
Augsburg Municipal Court
Register number:
HRB 24202
Sales tax identification number:
Chief executive officers:
Henning Koch
Thomas Eisenbarth