Product & Tech Blog


Varnish + HTTP Cache: An intro guide for web developers – Part 1

Varnish, the web application accelerator: Varnish development was initiated as a project within VG as a direct response to increasing demand hitting our servers hard. Existing caching systems were simply not fast or flexible enough to deal with VGs needs; and so Varnish was born with it’s first official release

How to make Ubuntu play nice with VMware

Here at VG a large amount of our services are deployed on virtualized servers in our VMware cluster. A majority of these servers are running CentOS, but from time to time there is a need for other distributions, like Ubuntu. In this short write up we will go through a

Make your stuff look better – in 3 easy steps!

Many developers dread that final part of a project when they have coded up a brilliant piece of work and all that is left is making it look presentable. Unfortunately, it’s repeatedly proven that technical brilliance is easily overlooked unless it looks half decent and preferrably a bit unique. And

Communicating designs across departments and borders – the productivity & communication rig.

As an in-house design department we are always searching for tools to communicate new concepts, ideas and finished designs to management, journalists and decision makers.

Scrum? What a drag!

I attended a Scrum Master course at Crisp last week. These are some of my reflections from that course (which I recommend by the way). But first: why would I take a course on something I’ve been using for at least 5 years? I think it’s because I’ve seen so

iOS7-bug: Shows white page when getting 304 Not Modified from server

It seems like after Apple upgraded almost every line of code in the iPhone they also introduced a bug regarding browser cache in Safari. If your site takes advantage of the Last-Modified or ETag headers, you will probably run into this problem as well. The iPhone will send a If-Modified-Since

CSS: Block formatting context

Floats, absolutely positioned elements, block containers (such as inline-blocks, table cells, and table-captions) that are not block boxes, and block boxes with ‘overflow’ other than ‘visible’ (except when that value has been propagated to the viewport) establish new block formatting contexts for their contents. ~ W3C, CSS 2.1 Confusing? I

Avoid Dependency on 3rd Party Sources With Composer

Composer is the defacto standard dependency manager for PHP out there, also here in VG. We use it for not only our internal packages, but for all external packages like ZF2, Symfony, PHPUnit, etc. For the most parts it has been a pleasant experience, but it creates a hard dependency towards

Servant leadership — Why and how your leader should work for you

Historically, effective leadership has been characterized by a command-and-control approach to managing teams and solving problems; power, direction and autonomy was primarily reserved for higher ranks in the organization. Subordinates were encouraged to find a box to sit in and only influence the aspects of the process or company they

Dissecting Javascript clicks in UIWebView

In VG we make heavy use of UIWebView, almost all of our iOS apps is a mix between native code and HTML. This is nice and dandy for presenting all sorts of content – being a newspaper means tons of webpages with ads, frames, javascript menus and whatnot. Generally this

Inheriting configuration in Zend Framework 2 applications

When working on Zend Framework 2 applications you might come across situations where you need to differentiate the application configuration for the different application environments, be it development, staging, testing and/or production. This can be cache TTL‘s, Memcached hosts, Redis hosts, debugging levels and more. Instead of copy/pasting the complete

EditorConfig: Consistent coding style

If you’ve worked on more than one project in your coding career, you’ll probably have come across different coding styles. While some projects prefer an indentation of four spaces, others might prefer to only use two. Some may even use tabs. Then there’s line-endings, charsets and trailing whitespace. When you