In-depth insights on content, code, and creativity
Many people think web development is mainly about code: code in frameworks, code connecting systems, code in different languages. And it’s true, web development is full of code. But it’s also about much more than code; it’s about serving clients.
What makes your web development team a great partner instead of just "those technical people you have to deal with"? Good communication. A solid understanding of your needs. Digital solutions that meet those needs. All of which, ultimately, amounts to good customer service.
With more than one-third of Americans using Dr. Google to search for medical information online, and one in every 20 Google searches related to health information, there is undoubtedly a need for quality medical content on the internet.
Ensuring your website is accessible to people with visual, auditory, speech, cognitive, and neurological disabilities -- including all of its text, images, video, audio, and even forms and checkboxes -- is good business practice.
Making your website accessible to people with visual impairments involves ensuring that screen readers effectively communicate all essential information to the user -- including information conveyed in toggle boxes. Here's an example of a toggle box that needs to be made accessible. Let's walk through how it's done.
When it comes to creating newsletter campaigns, you have to compile the content and then send that content out through an e-mail marketing service. Having a content management system helps in order to structure your content and automate the creation of the newsletter HTML. Here's an example of a newsletter integration with WordPress and Mailchimp.
Custom tags are very useful for adding custom functionality to rich text fields beyond simple formatting and embeds. Here is a walkthrough of how to implement custom tags in eZ Publish 5.x compared to an eZ Publish 4.x / legacy install.
In developing a website platform for book publishers, we wanted to provide fully featured page layouts that publishers can customize. We've built many custom publisher websites, but with ReaderBound it is important to offer ready-to-use widgets as building blocks for editors to organize into their own layouts. By achieving this balance, ReaderBound is a flexible but powerful platform.
When running an intranet or an otherwise password-protected site, you sometimes need to share confidential or sensitive files, specifically PDFs. It is a challenge to balance the confidential nature of the files while allowing privileged users to download and work with the files normally. One lightweight approach is to stamp a watermark onto each page of the PDF. Instead of just a big "confidential" watermark you can customize each download so that each file is stamped with, for example, the current user's name and the current date.
In early 2015, we decided to trade in our downtown Vancouver office for a new Mugo HQ in downtown New Westminster (30 minutes outside of Vancouver)! Although the main motivation behind the move was to have a more central location relative to Mugonites' homes, we've been very pleased with the surrounding area and amenities.
The eZ Publish 5 series has been a successful step forward for eZ Publish with the adoption of the Symfony stack and the ability to run dual kernels with the new and legacy stacks. However, content preview functionality has gone through many fixes through the 5.x version. The final fix comes in eZ Publish 5.4.5, which is very important since eZ Publish 5.4 is a milestone release that will be used as a stepping stone for upgrades through to the 6.x series aka eZ Platform! Here's how to update your code to make your editors happy with proper content preview!
With the Online Daily Evaluations portal, student (or "trainee") doctors and attending doctors can easily evaluate each other after every hospital shift with a customizable online course evaluation form. This ensures that mandatory student evaluations are completed within a CanMEDS compliant and RIME compliant evaluation system, and that students get the most out of the learning experience. In such key environments as emergency medicine and anesthesia departments, doctors and patients can appreciate every bit of efficiency! Here is a brief walkthrough of how Online Daily Evaluations works.
The eZ Publish search extension eZ Find offers many sorting parameters for its search results, the most common being by relevance / score, and by date. On large sites, sorting by date can lead to non-relevant results showing up first. What if you want to sort by date and relevance, essentially boosting newer content but still giving you relevant results?
When it comes to local development environments, in a lot of cases Mugo uses VirtualBox images and manages them with Vagrant. These environments are sometimes created after the production environment has been set up. To make a local development environment as similar to production as possible, one approach is to actually copy the production server.
As of eZ Publish 5.4 / 2014.11, there is a new way to define custom image filters and image aliases. This is because image alias generation is now using LiipImagineBundle, with the underlying Imagine library from avalanche123. In this post we will review the old and new ways of configuring image aliases and filters along with a useful example.
A good caching system keeps elements in the cache as long as possible, but clears them as soon as the elements are updated. For content pages in eZ Publish and most content management systems, "purge-on-publish" features are well documented. When it comes to JavaScript and CSS files, there are usually different caching systems involved, and these are important to configure. Otherwise, you'll end up with the all-too-familiar problem of a broken front-end on deployments, where the only fix is to have users do a "hard refresh" (CTRL+F5) in the browser.
When working with a CMS, you might decide to store some files in Dropbox rather than in the CMS for several reasons, including storage, workflow, and performance considerations. The Dropbox Chooser is one of 2 Dropbox Drop-ins. The "Chooser" enables users to generate a file link from a Dropbox account, and the "Saver" enables users to save a file to a different Dropbox account. The Chooser is often most useful for CMS editors.
Using the Dropbox Chooser with the eZ Publish Administration Interface saves editorial staff a lot of time by giving them direct access to the file links they need without having to jump between Dropbox and eZ Publish. The Chooser UI also allows you to upload files to a Dropbox account, making it even easier to get everything done within one operation.
eZ Publish has had multi-language features (also called "internationalization") built into its core for over a decade. If you're considering building a multi-language eZ Publish website from scratch or to add additional languages to a single-language eZ Publish site, there are many technical details to be aware of. However, before you begin, it's important to develop a list of requirements for how end users and editors will use the languages on the site.
eep (Ease eZ Publish) is a command line tool we introduced in a previous post, which in combination with other command line tools like awk, grep and xargs makes for powerful one-liners. The examples in this post will highlight its versatility and show just how quickly and conveniently eZ Publish related tasks can be accomplished using eep. Get ready for some command-line fun!
When using eZ Publish's eZ Find extension on a public facing site or project -- arguably any project -- it is vital to secure it to prevent unauthorized access and potential data loss. eZ Find is powered by Apache Solr, an open-source search server based on the Lucene Java search library. Its power and flexibility make eZ Find a great tool when working with a lot of content in eZ Publish.
There are a number of ways a Solr installation can be secured. We'll look at BasicAuth via Jetty UserRealms and iptables firewall rules in detail.
Vagrant and Ansible are tools to efficiently provision virtual machines (also called VMs or simply boxes).
This blog post will begin with a short discussion of why one would invest the time to use these tools, then cover the required software, an overview of how Vagrant works with VirtualBox and the use of Ansible to provision a VM.
Using HubSpot together with Salesforce, you can tie your inbound marketing campaigns to your customer and lead records for a nearly complete view of every user interaction with your business. (Add some analytics and you're all set!) However, with so much data syncing going back and forth, you must take care not to go over your storage and API call limits in Salesforce. Surprisingly, data overage charges are not cheap, and if you use up your API call limits, not only will your data stop syncing between HubSpot and Salesforce, but other systems -- such as your website -- will not be able to access and update important data.
In order to increase the image serving performance of high-traffic websites and improve the editorial user interface around image management, Mugo Web came up with an alternative way to serve content images in eZ Publish. It is aptly titled the "Mugo Image Server for eZ Publish".
eZ Publish 5 comes with built-in Varnish Cache support. Essentially this means that when content is published in the eZ Publish back-end, it notifies Varnish so that the Varnish cache is cleared. This feature is often called "purge-on-publish" and makes it so that you can cache your pages for a very long time, but that edits refresh the cache and thus appear immediately. To get this native support, you just have to use the "new stack" in eZ Publish. However, even if your legacy site is not ready to be fully upgraded to the new stack and you are running eZ Publish 5 in "legacy mode", you can take advantage of this native support.
Some time ago I wrote a blog post about integrating Salesforce and Marketo in a web marketing solution powered by a content management system (in this case, the eZ Publish CMS). Recently, Mugo had the opportunity to migrate one of our clients from Marketo to HubSpot. The decision to move to HubSpot was made for non-technical reasons; regardless, it is useful to review the technical differences and challenges when it comes to integrating the marketing systems with a content management system.