OpenVPN vs WireGuard

A VPN stands for Virtual Private Network. It describes the opportunity to establish a protected network connection when using public networks. When connecting to the internet, your data and IP address are hidden by a type of virtual tunnel. These are two of the more popular virtual tunnels. 

OpenVPN is a tunneling protocol that has been around since 2001. It transfers data with either UDP or TCP and is considered the “tried and tested” protocol. OpenVPN can be used on a variety of operating systems including all the major platforms as well as the less popular ones such as Solaris, QNX, Maemo, FreeBSD, and ChromeOS. Unfortunately, one of the drawbacks of OpenVPN is that since it was designed so long ago it was not made with modern processors in mind. This leads to relatively slow speeds in modern times. 

WireGuard is a more modern VPN tunneling protocol that was released in 2019. WireGuard is said to be almost twice as fast as OpenVPN and consumes around 15% less data. Another benefit of WireGuard is its audibility. With only 4,000 lines of code, it is much easier to audit WireGuard compared to OpenVPN’s almost 70,000 lines of code. Not all aspects of WireGuard are better than OpenVPN however, one area it currently lacks in is its ability to maintain a user’s privacy. The default design of WireGuard requires user IP addresses to remain on the VPN server for extended periods of time, which means it’s up to the VPN server to protect your privacy and not the tunneling protocol.  

WireGuard protocol is best known for: 

  • Super-fast connection speeds. 
  • Consumes less bandwidth. 
  • Auditability 
  • You are using a mobile device and you’re concerned about data consumption. 
  • Smaller attack surface 

OpenVPN is best known for: 

  • Uses the vast OpenSSL library for cryptography. 
  • Thoroughly tested and has stood the test of time. 
  • Complete zero logs policy 
  • It is an established open-source VPN tunneling protocol that has the endorsement of a large number of security experts and auditors 
  • Device compatibility 

In conclusion, which one you choose will ultimately depend on what you value more. Individuals may enjoy WireGuard more for its faster speed and the decrease in mobile data consumption. Companies however may not be willing to risk the potential privacy issues and stick to the tried and tested OpenVPN. In either case it is clear that even though WireGuard has many advantages over OpenVPN it is still in its infancy at only 3 years old and problems could arise at any time. Looking at both the advantages and disadvantages of each protocol is the key to making an informed choice about which one you want to use.  

Upcoming PHP conferences – 2019 and beyond

It’s always important to expand your knowledge and stay in touch with the PHP community. One of the best ways to do that besides frequenting forums is to attend some actual conferences to put some faces to their icons.

Below are some of the most notable conferences coming up in the near future that you may be interested in checking out.

Sunshine PHP

February 7-9, 2019
Miami, Florida

Sunshine PHP Conferece

Goto sunny Florida and catch some talks, meet some friends and maybe catch a wave and some rays too. This conference is suitable for developers of every level. The event even features a day of PHP tutorials, five keynotes and 30 talks over 3 tracks.

Laracon EU

August 29-30, 2019
Amsterdam

Laracon

If you’re not already familiar with Laravel you should be. Take this opportunity to attend Europe’s leading Laravel conference. Dozens of speakers, numerous workshops and some of the best technology in PHP. Don’t miss it.

SmashingConf

September 9-10, 2019
Freidburg, Germany

Smashing Conference

With one track, two days, 13 speakers and 260 attendees, expect actionable insights for your work — right at the footsteps of the magical Black Forest.

SymfonyCon

November 19-23, 2019
Amsterdam

Symfony Con

The seventh edition of the SymfonyCon, the international Symfony conference. There will be talks, workshops and lots of discussions and work around Symfony and it’s environment.

International PHP Conference

October 21-25, 2019
Munich, Germany

International PHP Conference

With over a decade’s experience, the International PHP Conference is the must-attend event for web developers from around the globe. Attend inspiring sessions, unique in-depth workshops, and benefit from our experts’ invaluable insights.

Working with Rich Data

The Internet is a busy place. In order for search engines to know what your site is about it is necessary to add data to your pages not just for humans but for search engines to consume as well. If you are an ecommerce site selling cremation urns it is great to have good descriptions of products and meta descriptions too, but to stand out and rank you need to do better than the competition. Rich data is needed.

What is Rich Data?

Rich data comes in many forms. The most common product types are the following:

  • Aggregate Offer
    • lowPrice (floating point)
    • priceCurrency (text)
    • highPrice (number)
    • offerCount (number)
  • Offer
    • availability
    • price
    • priceCurrency
    • itemOffered
    • priceValidUntil
    • url
  • Product
    • image
    • name
    • aggregateRating
    • brand
    • description
    • review
    • gtin/mpn/isbn
    • sku

See this link of an example of this code in action: https://search.google.com/structured-data/testing-tool?utm_campaign=devsite&utm_medium=jsonld&utm_source=product

Optional Data

Experience has shown that even if Google claims a field is optional, warnings will be thrown in the Search Console if not all fields are populated. For this reason, we always scope out all optional fields as required when performing work for clients. Google has a way of making optional fields “required” to get good results so we always do all of this work the first time.

Facebook as a Bonus

Facebook allows for adding products to your product catalog via their pixel. You should 100% be using the Facebook pixel for social media traffic tracking now. When creating the rich data for Google and Google Analytics enhanced ecommerce its the perfect time to create the data structure needed for Facebook product catalogs.

Enabling Rich Data is Necessary

After reading this it is clear that rich data is needed for all websites that want to be relevant on the Internet. Sainsbury Development Limited is a developer that can do this right for you. With many ecommerce platforms we have developed technology that is both custom and nearly ready for production deployment. Check out our Development & Technology page for more information.

Keys to Success for Outsourcing Development

Outsourcing development work has been a trend we’ve seen continue to grow over the past 20 years. As the internet allows us to tear down some of the artificial borders between us tele-commuting becomes a much more viable option. Finding highly skilled developers that are outside of your immediate geographic window gives you the ability to reduce costs and liabilities.

Development Whiteboard

Evaluating development companies

Finding good people is always hard. Like most services we’re unfamiliar with people often refer to word-of-mouth with colleagues and friends. If you have any one that you know who outsources developers it’s a great way to start the search by asking them some questions such as:

  • How experienced is the developer in the area of expertise you need?
  • How much do they charge? By hour or by project quote?
  • What does their availability look like?
  • If they are internationally located does their window for working mesh with when you’re available for questions? Are there any language barriers present?
  • Can they provide some sample work that was done?
  • Do they have any referrals that you can speak to?

How much should you pay?

Costs for different developers can vary greatly depending on many different factors:

  • How experienced is the developer?
  • Where are they located? Developers located in expensive cities like San Francisco will likely be prohibitively expensive due to their cost of living.

There are several popular websites that make trying to find developers pretty easy. Sites like UpWork allow you to easily browse developers by skills, location, availability and price. You should be able to establish a pretty clear picture of the range of development costs available. Beware of using developers on the bottom-end of the price scale. Like many things in life you often get what you pay for. Developers that are high in demand command a premium. Normally when we see work outsourced to countries like Romania we expect to pay a base of $25 USD for PHP development work. Prices of course can go up depending on experience and niche skills.

Creating a successful relationship

Laptop

The most important thing here to know is managing expectations is key to a successful business relationship. Make sure you communicate your most important details such as:

  • Budget
  • Deadline
  • Any other expectations

Here at Sainsbury we recommend breaking projects up projects into manageable phases. Upon completion of each phase of work things are evaluated to ensure the project is on track for success. Using well-established tactics such as agile software development also help the team follow a well established framework for interacting and creating a project that will ensure you success in your future.

PHP 7.3 New Features

The introduction of PHP 7.3 marks some notable improvements as we see 7 going through some stages of maturation. There are also several backward incompatible changes that should be noted as they will break functionality or cripple entire sites that implement it haphazardly.

Compatibility Breaking Changes

BCMath

Some notable changes have been made here regarding the error handling. Previously errors thrown by BCMath were written directly to stderr but now use PHP’s native error handling.

bcmul() and bcpow() now return numbers with the requested scale. Previously numbers left out trailing decimal zeroes which caused issues for many people.

SimpleXML

Here’s a positive change. All mathematical operations involving SimpleXML objects will now be treated as an integer or a float. This marks a big change from the previous handling of treating everything as integers.

getimagesize()

Some smaller notable changes here with getimagesize() that return the mime type of the bitmap images as image/bmp instead of image/x-s-ms-bmp. This is due to a change with IANA (see RFC 7903).

(more…)
Sainsbury Development Limited