Blog

Let’s talk about…PHP

Originally created by Rasmus Lerdorf in 1994, PHP is a general-purpose scripting language that is especially suited to web development.
PHP is open source, meaning that everyone has free access to the source code and can use it for their own development purposes. One of the most popular languages on the web, PHP is the language behind open source content management systems such as Joomla and WordPress.
PHP is known as a server-sided language, meaning that the code is executed by the computer you requested the page from. The results are then handed over to you, and displayed in your browser. With PHP, you can do things like create username and password login pages, check details from a form, create forums, picture galleries, surveys, and a lots more.
There has been an enormous increase in PHP adoption and many large web applications have been developed in PHP. PHP has many benefits:
1) The fast, flexible and pragmatic nature of PHP allows you to implement complex solutions quickly.
2)PHP runs on practically any platform and seamlessly integrates with other technologies (e.g. Java), allowing you to re-use your current software components.
3)PHP also offers great flexibility, allowing you to implement changes even after starting development, without losing valuable time.
4)Due to the popularity of PHP, there is an abundance of free resources available, allowing you to use code and extensions created by other developers.

Read More

Instagram Now Offers In-story Ads

Last week Instagram announced it will now offer ads within stories, their new Snapchat-esque content curation feature. This change comes as no surprise—user adoption for the new ‘stories’ feature now matches Snapchat’s, and Instagram’s overall user base has doubled from 300 million to 600 million in just two years, meaning it has the potential to continue growing its appeal to marketers.
Instagram Stories was initially met with skepticism. Its features—sharing, viewing, and monitoring who interacts with it— are suspiciously similar to Snapchat. Instagram has said that their adoption of ‘stories’ was simply following the market trend they’ve observed from several other social media platforms.
Instagram’s new marketer and advertiser friendly features aren’t just all looks. The meat comes in the form of analytics and data, which Snapchat can’t match yet. This feature is what will give Instagram an edge as marketers’ preferred photo and video social media platform. Data is key in decision-making and ‘like-chasing’ is no longer the norm. Instagram’s advertising features sync with Facebook’s targeting abilities, making it much more powerful.
Instagram has been around since 2010 and has quietly become a mainstay in the everyday person’s social media suite. With time it has evolved from mostly an artistic medium to a place where influencers and brands meet to increase their reach, opening a new world of opportunities for marketers. Regardless of the copycat nature of the stories feature, the overall evolution of their offering is worth analyzing. They’ve added features that matter to both consumers and sellers and made them valuable. Rather than alienating their existing base for the sake of being cool or cutting-edge, they stepped back and thought about how to offer what their consumers wanted within the apps established capabilities.
It’s important for marketers to know and understand the different tools that we have at our disposal, as well as the audiences that they can reach. When you’re running on a lean budget or a small production team, it’s important to prioritize your efforts and work smart. In this case, Instagram has made a strong case for marketers who were on the fence about integrating Snapchat into their marketing strategy by offering an alternative that is not only familiar but effective. Rather than trying to build out a completely new audience on a separate platform, they can simply continue to nurture their existing followers.
As video becomes a more prevalent format of content, it’s important to know where it will have the most impact for your brand. The only way to know whether your efforts are paying off is through data, and companies are responding to this demand.

Read More

Choosing a Content Management System: Joomla!

A content management system enables you to build web sites without extensive technical knowledge.
The most popular content management systems nowadays are WordPress, Joomla and Drupal. All three are open source, meaning they are cost free and available to everyone, and each one varies significantly in terms of feature set, capability, flexibility and ease of use.
In this blog post, we will look at why so many organisations choose to build their websites using Joomla instead of other open source content management systems.
Why Joomla!?
Offers ease of use as well as advanced functionality
Joomla’s power lies in its simplicity – you are guided through the installation process enabling you to get your prototype website up and running in no time at all. There are bundled default HTML templates which you are free to use, or you can procure the services of a software company to work with you to create a robust and exciting design for your new website. Once you’ve settled on a design and it has been set up as a Joomla template, simply create your content categories, publish your content items and build your navigation menu, and your website will be ready to receive visitors in no time at all. If you run in to problems along the way, don’t worry! Joomla has a great support network, with a diverse user base ranging from like-minded enthusiast webmasters to established software companies offering commercial support.
Great choice of extensions available
Joomla has a strong developer community with a large library of extensions available, allowing you to quickly add functionality to your site. Joomla extensions are divided into five categories – components, plugins, templates, modules and languages. Each of these differs in function, power and capability, with many being available to use free of charge. Without being too technical, think of a component as a functional part of your website. A good example would be functionality that allows you to easily create and publish HTML forms in order to capture visitor feedback and engage with your visitors. A complimentary plugin for this component would be the automatic conversion of textual email addresses to actual clickable HTML mailto links that let you address and compose emails with a single click. Finally, a complimentary module for this HTML form component would allow you to embed one of the forms in a small sidebar panel on any given page in your website – a great way contextualise your visitor feedback.

Read More

Five common causes of SQL Server performance issues

Our staff are highly skilled when it comes to Microsoft SQL Server database design and administration and aim to incorporate this experience into all our developments and deployments.
However, not all of our client systems are under our control from their inception. We sporadically encounter situations where client systems are found to be exhibiting performance problems, and in these instances we aim to work with our clients to first triage and then improve the situation. Here we detail, from our experience, five of the most common causes of SQL Server performance issues.
1) Missing or improper maintenance jobs.
While most clients will configure maintenance jobs for backup purposes in an effort to adhere to business Recovery Point Objectives (RPO) and Recovery Time Objectives (RTO), it is not uncommon for other maintenance tasks to be misused or overlooked altogether. All SQL Server databases require periodic tuning to ensure that built-in functionality is at an optimal level, and maintenance tasks such as update statistics, reorganise indexes and rebuild indexes can all play their part in achieving better performance.
2)Default SQL Server configuration.
There is often a lot of care and attention that goes into planning a SQL Server deployment, but if the SQL Server is not configured to correctly utilise the available infrastructure then even the best plans can be wasted. Changing just a few of the configuration defaults such as the tempdb location, maximum server memory, or the max degree of parallelism (MAXDOP) can ensure your database server makes full use of the available hardware benefits.
3)An ever-increasing database size.
Most databases will grow over time, and while such growth is normally expected and planned for at design time, many databases will simply exceed expectations of usage and longevity. Initial sizing of database files is important, but equally important is ensuring that any auto-growth settings are appropriately configured and controlled for the periods beyond expected usage. Archiving solutions designed within applications may also help systems longer term, depending on business requirements around data retention and availability.
4)Scale up and scale out.
Although usage and longevity may impact the amount of data stored in a database, it can also impact the amount of queries run against that data. Though such queries won’t necessarily impact the database size, they can have other negative impacts depending on their frequency and complexity including locking of data and overall query speed. One solution may be to simply scale up the hardware on which the SQL Server instance is installed, however other solutions may see scaling out of the data through replication to dedicated servers for reporting purposes or even more complicated data warehousing solutions for better overall reporting performance and further data analysis.
5)Cached execution plans and parameter sniffing.
These features are actually designed to improve performance by ensuring that queries are run in the most efficient manner possible. However, when creating these plans SQL Server makes the assumption that the query will be reasonably consistent. As such, the first time the execution plan is generated the values used try to ensure the plan is the most efficient it can be. But in instances where values may change dramatically or can lead to drastically different sizes of results, this assumption can lead to the queries being inefficient on subsequent runs. Fortunately, in such scenarios there are means that, when appropriately applied, will ensure the query recompiles the execution plan each time.

Read More