Screen scraping JavaScript and AJAX heavy pages with Selenium

Screen scraping libraries are popular and easy to use in a variety of languages (such as Symfony Crawler in PHP, Scrapy in Python etc). As these libraries are HTML parsers and not browsers, they cannot render JavaScript. As web pages get more sophisticated, JavaScript has become a core part of the user experience; therefore the tools we use …

Continue reading

Binary search algorithm in PHP

Binary search is a search algorithm that is dramatically faster than PHP’s internal functions (such as array_search) when searching ordered data. How does it work? PHP’s internal function array_search is an example of a linear search; it will iterate over the entire data set until it finds a match working from front to back. This is great …

Continue reading

Improving Vagrant performance

Vagrant is a great tool to automate the set up of development environments utilising a virtual machine. Unfortunately, a virtual machine will rarely perform faster than a local install of your development environment. There are plenty of settings to tweak, and we have compiled some common ones that cause issues that are easily fixed. Increasing …

Continue reading

Mitigating DOS/DDOS attacks for small websites

Distributed denial of service (DDOS) attacks against websites are becoming an increasingly common occurrence due the simplicity and effective nature of the attack. This can be devastating for any online business, as it is common for these attacks to be sustained for large amounts of time, resulting in the website being offline or difficult to …

Continue reading

Magento 1.9 Hosting Requirements

Magento is the most popular choice for E-Commerce solutions, and offers an open source Community Edition to match it’s paid for Enterprise solution. The full system requirements are not immediately obvious as it requires the download of a PHP file to check the environment, which may not be possible when assessing hosting options such as …

Continue reading

Useful Features of PhpStorm (Part 1)

PhpStorm users saw the release of the long awaited new version – PhpStorm8, this week. This major update brings a lot of new features to the popular IDE, so it’s a great time to review some of it’s most useful features. Fuzzy Search: Ctrl+Shift+N The PhpStorm search allows you to search all files and classes …

Continue reading

CSS optimizations everyone should be using

CSS is a standard technology in web design, which most web developers use on a day to day basis. As with all vast technologies, you can never know everything about CSS; we have compiled some of our favourite and most valuable CSS tricks that could save you hours of frustration. Box sizing: border-box This simple …

Continue reading

Weekly Releases: When is the Best Time to Deploy Code

There is always risk when deploying code, however thoroughly tested your application is. Some common pitfalls include: Unexpected differences between Live and Development environments (mitigated by a properly set up staging environment) Human error during any step of manual deployment Difficult to produce bugs (i.e. the classic Heisenbug), that are only discovered when the application …

Continue reading