Product & Tech Blog


The Gathering Contest

Level Up, VG and Prisjakt join forces and have a joint booth during annual easter LAN-party The Gathering, which is located in Hamar Olympic Hall. The booth will be open from 8:00 a.m to 10:00 p.m throughout the event. Here you can get some refreshments, play games or just chill out. Not only will we

Comparing your privates in PHP

While working with some code that should compare two different instances of the same class I discovered a “hidden” feature in PHP. I was going to compare several private properties between to objects and started making a piece of code to perform the actual comparison using getters for the properties.

Visualizing the most read articles on VG

D3. Behind this name is a pretty neat concept, called Data-Driven Documents. I took a look at the framework last year after seeing a lot of cool demos using it. It’s really flexible, and is not tied to a specific form of presentation – you can use D3 to generate an

Xcode Plugins

If you haven’t done so already it’s time to check out some Xcode plugins. How about managing cocoapods from inside Xcode or getting a Todo-list window generated from your code comments? Clang-formatting your code, install new color themes or getting a minimap-view like in Sublime text?

Deploying apps in OpenShift

After you’ve set up OpenShift with a node or two, deploying applications is as easy as it gets. You can do lots of stuff in the broker console, but RHC is the way to go: RHC is a RubyGem installed like all others:

To set it up:

Swagger docs in ZF2 with examples – Part 2: Swagger UI

This blog post on Swagger UI is a follow-up on my recent post on Swagger annotation parsing in ZF2. If you’re not already set up with Swagger annotation parsing in you ZF2 app I recommend that you read part 1 first. In the last post we got ZF2 set up

OpenVPN configuration files + Ubuntu’s network manager

OpenVPN has feature that exports client configuration files. While it is definitely possible to run OpenVPN from the command line, I prefer to have a GUI that allows me to easily connect/disconnect from VPN. Ubuntu’s network manager and the .ovpn configuration files exported from OpenVPN does not play well together,

Swagger docs in ZF2 with examples – Part 1: Setup and annotations

So everyone is building APIs now – parsing and outputting JSON is not that hard. Some people even build truly RESTful APIs, or something not too far from that. Before, when building APIs was about SOAP with XML schemas and WSDL specifications, people spent so much time building their APIs

VG+ 2.0: From Native to Hybrid App.

VG+ is VG’s premium subscription based digital product and VG’s third editorial product, it consists of the best content from the printed VG newspaper with the best content from VG’s free news site Context aware content tailor made for each platform ensures the ideal reading experience per device. The

Building your own PaaS

In this series, I’ll go through installing, using and extending Openshift Origin, a Platform as a Service (PaaS), developed by RedHat. Check it out at What is Openshift? In short, Openshift consists of two things: A broker, and a node. (or two brokers for redundancy and hundred nodes for

Generating code coverage of Behat tests

Yes, I know, it sounds silly, but bear with me. The nature of acceptance tests is not really to tests units of code, but to assure that the behavior of your application meets a certain set of criteria (Behat Scenarios). When your applications grow over time, code coverage can be

Varnish + requests with no Content-Length header

HTTP 1.1 introduced the concept of chunked transfer encoding. This (among other things) enables us to send a request without knowing how large the content is going to be at the time we start the request. An example usage would be where you generate content on-the-fly. You could potentially send chunks