LATEST FROM OUR BLOG

Take your daily dose of (only) relevant news, useful tips and tricks and valuable how to's on using the latest web technologies shaping the digital landscape. We're here to do all the necessary information sifting for you, so you don't have to, to provide you with content that will help you anticipate the emerging trends about to influence the web.

Top 10 Drupal Security Best Practices: Effective and Easy to Implement
With popularity comes trouble... In this case here meaning: security vulnerabilities and risky over-exposure to cyber threats. And this can only mean that securing your website, that's running on the currently third most popular CMS in the world, calls for a set of Drupal security best practices for you to adopt. And to stick to! There's no other way around it: a set of strategically chosen security measures, backed by a prevention-focused mindset, pave the shortest path to top security.    Stay assured: I've selected not just THE most effective best practices for you to consider adopting, but the easiest to implement ones, as well. Quick note: before I go on and knee-deep into this Drupal security checklist, I feel like highlighting that:   Drupal still has a low vulnerability percentage rate compared to its market share the majority of Drupal's vulnerabilities (46%) are generated by cross-site scripting (XSS)   And now, here are the tips, techniques, and resources for you to tap into and harden your Drupal site's security shield with.   1. The Proper Configuration Is Required to Secure Your Drupal Database  Consider enforcing some security measures at your Drupal database level, as well. It won't take you more than a few minutes and the security dangers that you'll be safeguarding it from are massive. Here are some basic, yet effective measures you could implement:   go for a different table prefix; this will only make it trickier for an intruder to track it down, thus preventing possible SQL injection attacks change its name to a less obvious, harder to guess one   Note: for changing your table prefix you can either navigate to phpMyAdmin, if you already have your Drupal site installed, or do it right on the setup screen (if it's just now that you're installing your website).   2. Always Run The Latest Version of Drupal on Your Website And this is the least you could do, with a significant negative impact on your Drupal site if you undermine its importance. If you neglect your updating routine. Do keep in mind that:   it's older versions of Drupal that hackers usually target (since they're more vulnerable) the regularly released updates are precisely those bug fixes and new security hardening features that are crucial for patching your site's vulnerabilities.   Why should you leave it recklessly exposed? Running on an outdated Drupal version, packed with untrusted Drupal modules and themes? Especially since keeping it up to date means nothing more than integrating 2 basic Drupal security best practices into your site securing “routine”:   always download your themes and modules from the Drupal repository (or well-known companies) regularly check if there are any new updates for you to install: “Reports” → “Available Updates”→“Check manually”      3. Make a Habit of Backing Up Your Website And here's another one of those underrated and too often neglected Drupal security best practices! Why should you wait for a ransomware attack and realize its true importance... “the hard way”? Instead, make a habit of regularly backing up your website since, as already mentioned: There's no such thing as perfection when it comes to securing a Drupal site, there's only a hierarchy of different “security levels” that you can activate on your site And backing up your site, constantly, sure stands for one of the most effective measures you could apply for hardening your Drupal website. Now, here's how you do it:   make use of Pantheon's “one-click backup” functionality test your updates locally using MAMP or XAMPP or another “kindred” software harness the Backup and Migrate module's power, currently available only for Drupal 7 export your MySQL database and back up your files “the old way”... manually   There, now you can stay assured that, if/when trouble strikes, you always have your backup(s) to retrieve your data from and get back “on your feet” in no time!   4. Block Those Bots That You're Unwillingly Sharing Your Bandwidth With No need to get all “altruist” when it comes to your bandwidth! And to share it with all kinds of scrappers, bad bots, crawlers. Instead, consider blocking their access to your bandwidth right from your server. Here's how: Add the following code to your .htacces file and block multiple user-agent files at once: RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^.*(agent1|Wget|Catall Spider).*$ [NC] RewriteRule .* - [F,L] Or use the BrowserMatchNoCase directive as follows: BrowserMatchNoCase “agent1” bots BrowserMatchNoCase "Wget" bots BrowserMatchNoCase "Catall Spider" bots Order Allow,Deny Allow from ALL Deny from env=bots Use the KeyCDN feature for preventing those malicious bots from stealing your bandwidth! 5. Use Strong Passwords Only: One of the Easiest to Implement Drupal Security Best Practices More often than not “easy” doesn't mean “less efficient”.  And in this particular case here, simply opting for a strong username (smarter than the standard “admin”) and password can make the difference between a vulnerable and a hard-to-hack Drupal site. For this, just: Manually change your credentials right from your admin dashboard:  “People” → “Edit”→ “Username” while relying on a strong password-generating program ( KeePassX or KeePass)    6. Use an SSL Certificate: Secure All Sensitive Data and Login Credentials Would you knowingly risk your users' sensitive data? Their card information let's say, if it's an e-commerce Drupal site that you own? And how about your login credentials? For this is what you'd be doing if — though you do recognize the importance of using an SSL certificate —  you'd still put this measure at the back of your list of Drupal security best practices. In other words, running your site on HTTPs (preferably on HTTP/2, considering all the performance benefits that it comes packaged with) you'll be:   encrypting all sensitive data that's being passed on, back and forth, between the server and the client encrypting login credentials, instead of just letting them get sent, in crystal-clear text, over the internet.   7. Use Drupal Security Modules to Harden Your Site's Shield For they sure make your most reliable allies when it comes to tracking down loopholes in your site's code or preventing brutal cyber attacks. From:   scanning vulnerabilities to monitoring DNS changes blocking malicious networks identifying the files where changes have been applied   … and so on, these Drupal modules will be “in charge” of every single aspect of your site's security strategy. And supercharging your site with some of the most powerful Drupal security modules is, again, the easiest, yet most effective measure you could possibly enforce. Now speaking of these powerful modules, here's a short selection of the “must-have” ones:   Password Policy: enables you to enforce certain rules when it comes to setting up new passwords (you even get to define the frequency of password changes) Coder : runs in-depth checks, setting your code against Drupal's best practices and coding standards Automated Logout: as an admin, you get to define the time limit for a user's session; he/she will get automatically logged out when the time expires SpamSpan Filter: enables you to obfuscate email addresses, thus preventing spambots from “stealing” them Login Security: deny access by ID address and limit the number of login attempts Content Access: grant permission to certain content types by user roles and authors Hacked!: provides an easy way for you to check whether any new changes have been applied to Drupal core/themes Security Review Module: it will check your website for those easy-to-make mistakes that could easily turn into security vulnerabilities; here's a preview of this module “at work”     8. Implement HTTP Security Headers Another one of those too-easy-to-implement, yet highly effective Drupal security best practices to add to your Drupal security checklist: Implementing (and updating) HTTP security headers “Why bother?” Cause:   first of all, their implementation requires nothing more than a configuration change at the web server level their key role is letting the browsers know just how to handle your site's content … thus reducing the risk of security vulnerabilities and brute force attacks   9. Properly Secure File Permissions Ensure that your file permissions for:   opening reading modifying them   … aren't too dangerously loose. Since such negligence could easily turn into an invitation for “evil-minded” intruders!  And it's on Drupal.org's dedicated page that you can find more valuable info on this apparently insignificant, yet extremely effective security measure    10. Restrict Access To Critical Files  Told you this was going to be a list of exclusively easy-to-implement Drupal security best practices. Blocking access to sensitive files on your website (the upgrade.php file, the install.php file, the authorize.php file etc.) won't take you more than a few minutes. But the danger you'd avoid — having a malicious intruder risking to access core files on your Drupal site — is way too significant to overlook.   END of the list! These are probably the easiest steps to take for securing your Drupal site. How does your own list of Drupal security tips, techniques, and resources to tap into look like? ... Read more
RADU SIMILEANU / Apr 06'2018
How to Set Up Google Analytics on Your Drupal Site: A Dead-Simple Step-by-Step Guide
Who are your visitors? Where do they come from? And what do they do precisely during their visits on your Drupal site? How long are their visits? What content on your site do they linger on and what content do they “stubbornly” ignore? Needless to say that for getting your answers to all these questions you need to set up Google Analytics on your website. Since: “This data--aka analytics--is the lifeblood of the digital marketer.” (Jeffrey Mcguire, Acquia, Inc. Evangelist) The good news is that integrating it is nothing but a quick and simple 3-step process. And the great news is that: Drupal's got you covered with its dedicated Google Analytics module, geared at simplifying the otherwise tedious and time-consuming process. So, shall we dive into the installation guide?   1. But First: Why Web Analytics? And Why Precisely Google Analytics? In an UX-dominated digital reality, that takes personalization to a whole new level, user behavior data turns into... superpower. And by “user behavior data”, I do mean web analytics. Therefore, injecting a web analytics service into your Drupal site is like... injecting true power into its “veins”. But why precisely Google Analytics? Why set up Google Analytics on your Drupal site instead of another web analytics tracking tool? Is its popularity a strong enough reason for you to jump on the trend? To answer your question, I do think that its own key features make the best answers:   audience demographic reporting: discover where your site visitors come from, their native languages, the devices and operating systems they use for accessing your website... goal tracking: monitor conversion rates, downloads, sales and pretty much all stats showing how close (or far) you are to reaching the goals that you've set for your website acquisition reporting: identify your site's traffic sources; where do your visitors come from exactly? on-site reporting: gain a deep insight into the way visitors engage with specific pieces of content on your website, so you know how to adjust the experience your deliver them on your site/app to their specific needs  event-tracking: tap into this feature for measuring all activities carried out on your Drupal site   And the list of features could go on and on. Providing you with a high-level dashboard and enabling you to go as deep as you need to with your “data digging”. For Google Analytics is only as powerful as you “allow” it to be. It empowers you to dig up both surface and “in-depth data”. Moreover (or better said: “thanks to...”), being such a feature-rich tracking tool, Google Analytics's highly versatile, too. From email marketing to social media marketing, to any type of marketing campaign that you plan to launch, it's built to fit in just perfectly. To power all forms of marketing strategies. And where do you add that it's been a while now since we've been having Google Analytics for mobile apps and the Google Analytics 360 suite, too! 2 more powerful GA tools to add to your web analytics “tracking arsenal”.   2. The Drupal Google Analytics Module and How It Will Make Your Life (So Much) Easier Let me try a lucky guess:  Your Drupal site has... X pages (have I guessed it?) The “standard” way to add Google Analytics to your Drupal site would involve: Copying the tracking ID that Google Analytics provides you with and pasting it on each and every page on your website. A hair-pulling monotonous and time-consuming process, don't you think? And it starts to look even more cumbersome if you think that you have the alternative to set up Google Analytics on your Drupal site using the dedicated module. But how does it streamline... everything more exactly?  You'll just need to paste that Google Analytics javascript snippet for tracking data right to this module's Configuration page and... that's it! The module will take it from there! It will distribute it itself to all the pages on your website. Less effort, less time wasted for carrying out in a tedious and repetitive activity. And more time left for customizing all those statistics features to perfectly suit your goals and your site's needs. Luckily enough, the Drupal Google Analytics module puts an admin-friendly UI at your disposal precisely for that:   use it to track down key data  use it for tailoring your web analytics-tracking activity to your needs: by user role, by pages etc.   3. Set Up Google Analytics on Your Drupal Site In Just 3 Simple Steps  As promised, here's a “dead-simple 3-step guide on how to add Google Analytics to your Drupal site (“leveraging the power of the dedicated Drupal module here included”)   Step 1 The very first thing you'll need to do is sign up for a Google Analytics account if you don't have one already. And then to add your Drupal site (obviously!). And here are the quick steps to take:   go to www.google.com/analytics hit “sign in” (you'll find it in the top right corner) and select “Google Analytics” from the unfolding drop-down menu click “Sign Up” and just follow the given steps for setting up your new account next, follow the instructions for setting up web tracking   Now you should be able to see your Drupal site displayed under your account, on your admin page in Google Analytics. And it's now that you should be able to retrieve your site's “Tracking ID”, as well. You'll find it in the “Property Setting” section.   Step 2 The next major step to take as you set up Google Analytics on your Drupal site is to actually go back to your site and... install THE module itself. Since I've already praised its “superpowers” and how they “conspire” to make your life easier, I'm not going to point them out once again. Instead, I'll go straight to the steps to take once you've enabled the module on your website:   access its configuration page (you'll find the “Configuration” tab on top of the page, “flanked by” the “Modules” and the “Reports” tabs) there, right under the “General Setting” section, just enter your “Web Property ID” … which is precisely the Google Analytics tracking code that you've just retrieved at Step 1   And this is precisely the “magic trick” that's going to add the Google Analytics tracking system site-wide. A monotonous, multiple-step process turned into a one-step operation. This thanks to the Drupal Google Analytics module!   Step 3 Here you are now, ready to save your settings and to officially harness the power of Google Analytics on your website! Normally you should be just fine with the default settings that the service provides you with, right out-of-the-box. Yet, if you need to “refine” your searches, your entire tracking activity, feel free to do that. To explore all the options stored in the “Tracking Scope” tabs for you. Speaking of which, let me give you just a few examples of how deep you could narrow down your “investigations” and customize the modules:   roles: a setting which lets you define which user roles to track (and which roles the system should ignore) domains: indicate whether it's a single or multiple domains that you need monitoring privacy: it enables you to make visitors' IP addresses anonymous pages: indicate precisely which pages on your website you need to track messages: track and monitor the messages displayed to your site visitors search and advertising: keep track of your internal site searches and AdSense advertisements; do keep in mind, though, that some additional settings might be needed!   And... more! You actually get even more power for configuring your JavaScript setting and adding custom variables. The END! This is how you set up Google Analytics on your Drupal site in 3 dead-simple steps, a streamlined process powered by the dedicated Drupal module. ... Read more
Adriana Cacoveanu / Apr 05'2018
Apache Solr vs Elasticsearch: How Are They Different? How Do You Decide? Part 2
And I'm back, as promised, with 5 more key differences meant to help you solve your Apache Solr vs Elasticsearch dilemma. To help you properly evaluate the 2 open source search engines and, therefore, to identify the perfect fit for your own use case and your project's particular needs.   6. Node Discovery Another aspect that clearly differentiates the 2 search engines is the way(s) they handle node discovery.That is, whenever a new node joins the cluster or when there's something wrong with one of them, immediate measures, following certain criteria, need to be taken. The 2 technologies handle this node-discovery challenge differently:   Apache Solr uses Apache Zookeeper — already a “veteran”, with plenty of projects in its “portfolio” —  requiring external Zookeper instances (minimum 3 for a fault-tolerant SolrCloud cluster). Elasticsearch relies on Zen for this, requiring 3 dedicated master nodes to properly carry out its discovery “mission”   7. Apache Solr vs Elasticsearch: Machine Learning Machine learning has a way too powerful influence on the technological landscape these days not to take it into consideration in our Apache Solr vs Elasticsearch comparison here. So, how do these 2 open source search engines support and leverage machine learning algorithms?   Apache Solr, for instance, comes with a built-in dedicated contrib module, on top of streaming aggregations framework; this makes it easy for you to use machine-learning ranking models right on top of Solr Elasticsearch comes with its own X-Pack commercial plugin, along with the plugin for Kibana (supporting machine learning algorithms) geared at detecting anomalies and outlines in the time series data    8. Full-Text Search Features  In any Apache Solr vs Elasticsearch comparison, the first one's richness in full-text search related features is just... striking! Its codebase's simply “overcrowded” with text-focused features, such as:   the functionality to correct user spelling mistakes a heavy load of request parsers configurable, extensive highlight support a rich collection of request parsers   Even so, Elasticsearch “strikes back” with its own dedicated suggesters API. And what this feature does precisely is hiding implementation details from user sight, so that we can add our suggestions far more easily. And, we can't leave out its highlighting functionality (both search engines rely on Lucene for this), which is less configurable than in Apache Solr.   9. Indexing & Searching: Text Searching vs Filtering & Grouping As already mentioned in this post, any Apache Solr vs Elasticsearch debate is a: Text-search oriented approach vs Filtering and grouping analytical queries type of contrast. Therefore, the 2 technologies are built, from the ground up, so that they approach different, specific use cases:   Solr is geared at text search Elasticsearch is always a far better fit for those apps where analytical type of queries, complex search-time aggregations need to be handled   Moreover, each one comes with its own “toolbox” of tokenizers and analyzers for tackling text, for breaking it down into several terms/tokens to be indexed. Speaking of which (indexing), I should also point out that the two search engine “giants” handle it differently:   Apache Solr has the single-shard join index “rule”; one that gets replicated across all nodes (to search inter-document relationships) Elasticsearch seems to be playing its “efficiency card” better, since it enables you to retrieve such documents using top_children and has_children queries   10. Shard Placement: Static by Nature vs Dynamic By Definition Shard replacement: the last test that our two contestants here need to pass, so you can have your final answer to your “Apache Solr vs Elasticsearch” dilemma. In this respect, Apache Solr is static, at least far more static than Elasticsearch. It calls for manual work for migrating shards whenever a Solr node joins or leaves the cluster.  Nothing impossible, simply less convenient and slightly more cumbersome for you:   you'll need to create a replica  wait till it synchronizes the data remove the “outdated” node   Luckily for you, Elasticsearch is not just “more”, but “highly” dynamic and, therefore, far more independent. It's capable to move around shards and indices, while you're being granted total control over shard placement: by using awareness tags, you get to control where those shards should/shouldn't be placed by using an API call you can guide Elasticsearch into moving shards around on demand The END! Now if you come to think about it, my 10-point comparative overview here could be summed up to 2 key ideas worth remembering:   go for ApacheSolr if it's a standard text-search focused app that you're planning to build; if you already have hands-on experience working with it and you're particularly drawn to the open-source philosophy go for Elasticsearch if it's a modern, real-time search application that you have in mind; one perfectly “equipped” to handle analytical queries. If your scenario calls for a distributed/cloud environment (since Elastic is built with out-of-the-ordinary scalability in mind)   ... Read more
RADU SIMILEANU / Mar 16'2018
Apache Solr vs Elasticsearch: How Are They Different? How Do You Decide? PART 1
Apache Solr vs Elasticsearch, the 2 leading open-source search engines... What are the main differences between these technologies? Which one's faster? And which one's more scalable? How about ease-of-use? Which one should you choose? Which search engine's the perfect fit for your own:   use case specific needs particular expectations?   Obviously, there's no universally applicable answer. Yet, there are certain parameters to use when evaluating these 2 technologies.  And this is precisely what we've come up with: a list of 10 key criteria to evaluate the two search engines by, revealing both their main strengths and most discouraging weakness. So you can compare, weight pros and cons and... draw your own conclusions.   But First, A Few Words About The Two “Contestants” I find it only natural to start any Apache Solr vs Elasticsearch comparison by briefly shading some light on their common origins: Both open source search engine “giants” are built on the Apache Lucene platform. And this is precisely why you're being challenged with a significant number of similar functionalities.   Apache Solr Already a mature and versatile technology, with a broad user community (including some heavy-weighting names: Netflix, Amazon CloudSearch, Instagram), Apache Solr is an open source search platform built on Lucene, a Java library. And no wonder why these internet giants have chosen Solr. Its indexing and searching multiple sites capabilities are completed by a full set of other powerful features, too:   dynamic clustering faceted search  NoSQL features & rich document handling full-text search  real-time indexing   Elasticsearch  It's a (younger) distributed open source (RESTful) search engine built on top of Apache Lucene library. Practically, it emerged as a solution to Solr's limitations in meeting those scalability requirements specific to modern cloud environments. Moreover, it's a:   multitenant-capable distributed full-text ...  search engine, with schema-free JSON documents and HTTP web interfaces, that it “spoils” its users with. And here's how Elasticsearch works: It includes multiple indices that can be easily divided into shards which, furthermore, can (each) have their own “clusters” of replicas. Each Elasticsearch node can have multiple (or just a single one) shards and the search engine is the one “in charge” with passing over operations to the right shards. Now, if I am to highlight some of its power features:   analytical search  multi-tenancy grouping & aggregation  distributed search    1. User and Developer Communities: Truly Open-Source vs Technically Open-Source A contrast that we could define as: “Community over code” philosophy vs Open codebase that anyone can contribute to, but that only “certified” committers can actually apply changes to. And by “certified” I do mean Elasticsearch employees only. So, you get the picture: If it's a fully open-source technology that you're looking for, Apache Solr is the one. Its robust community of contributors and committers, coming from different well-known companies and its large user base make the best proof. It provides a healthy project pipeline, everyone can contribute, so there's no one single company claiming the monopoly over its codebase. One that would decide which changes make it to the code base and which don't. Elasticsearch, on the other hand, is a single commercial entity-backed technology. Its code is right there, open and available to everyone on Github, and anyone can submit pull requests. And yet: it's only Elasticsearch employees who can actually commit new code to Elastic.   2. What Specific Use Cases Do They Address? As you can just guess it yourself: There's a better or worse fit, in any Apache Solr vs Elasticsearch debate, depending exclusively on your use case. So, let's see first what use cases are more appropriate for Apache Solr:   applications relying greatly on text-search functionality complex scenarios with entire ecosystems of apps (microservices) using multiple search indexes, processing a heavy load of search-request operations   And now some (modern) use cases that call for Elasticsearch:   applications relying (besides the standard text-search functionality) on complex search-time aggregations, too open-source log management use cases with many organizations indexing their logs in Elasticsearch in order to make them more searchable use cases depending on high(er) query rates data stores “supercharged” with capabilities for handling analytical type of queries (besides text searching)   … and pretty much any new project that you need to jump right onto, since Elasticsearch is much easier to get started with. You get to set up a cluster in no time.   3. Apache Solr vs Elastic Search: Which One's Best in Terms of Performance? And a performance benchmark must be on top of your list when doing an Apache Solr vs Elasticsearch comparison, right? Well, the truth is that, performance-wise, the two search engines are comparable. And this is mostly because they're both built on Lucene. In short: there are specific use cases where one “scores” a better performance than the other. Now, if you're interested in search speed, in terms of performance, you should know that:   Solr scores best when handling static data (thanks to its capability to use an uninverted reader for sorting and faceting and thanks to its catches, as well) Elasticsearch, being “dynamic by nature”, performs better when used in... dynamic environments, such as log analysis use cases   4. Installation and Configuration Elasticsearch is a clear winner at this test: It's considerably easier to install, suitable even for a newbie, and lighter, too. And yet (for there is a “yet”), this ease of deployment and use can easily turn against it/you. Particularly when the Elasticsearch cluster is not managed well. For instance, if you need to add comments to every single configuration inside the file, then the JSON-based configuration, otherwise a surprisingly simple one, can turn into a problem. In short, what you should keep in mind here is that:   Elastricsearch makes the best option if you're already using JSON if not, then Apach Solr would make a better choice, thanks to its well-documented solrconfig.xml and schema.xml    5. Which One Scales Better? And Elasticsearch wins this Apache Solr vs Elasticsearch test, too. As already mentioned here, it has been developed precisely as an answer to some of Apache Solr well-known scalability shortcomings. It's true, though, that Apache Solr comes with SolrCloud, yet its younger “rival”:   comes with better built-in scalability it's designed, from the ground up, with cloud environments in mind   And so, Elasticsearch can be scaled to accommodate very large clusters considerably easier than Apach Solr. This is what makes it a far better fit for cloud and distributed environments. And this is the END of PART 1. Stay tuned for I have 5 more key aspects “in store” for you, 5 more “criteria” to consider when running an Apache Solr vs Elasticsearch comparison! Still a bit curious: judging by these 5 first key features only, which search engine do you think that suits your project best? ... Read more
RADU SIMILEANU / Mar 16'2018
7 Essential Things to Look for in Your Potential eCommerce Services Provider
Contending with the... paradox of choice? With a handful of tempting options in terms of ecommerce services providers that seem to be fitting your project's needs entirely? And choosing gets frustratingly challenging since they all “tempt” you with:   a visually-arresting design “backed up” by an ideally simple navigation structure a team fluent in SEO, ready to propel your site right on the “highest peaks” of Google rankings an impressive experience in implementing e-commerce-specific features and functionality 24/7 assistance: both pre- and post-launch issues and nasty bugs stand no chance to escape their team's vigilance module, theme, and plugin customization skills to suit your ever-growing needs   … and the list goes on So, how do you decide when all your choices seem to be equally... promising?  What's the proper evaluation system to use on all these “candidates”? How do you narrow down your own checklist of “must-have experience and expertise“ to the essentials? And what are the essential things to look for in a potential e-commerce services provider anyway? Keep on reading...   1. Use This Checklist to Rate Other eCommerce Websites from Their Portfolio Engage in some research work first, starting with the candidate's own portfolio. Look for other ecommerce websites listed there and start evaluating the following aspects/site components:   the overall design: as a first-time visitor on those websites, do you find them visually-appealing enough? navigation: it should be as simple and, therefore, intuitive, as possible; easily navigable inventories here included imagery and particularly product images: are they high-quality? is there any type of interactive chat system integrated, that users can use for dropping their questions? is there a review system implemented; are customer testimonials displayed and visible enough? checkout: the simpler the better; in this respect, the single-step checkouts, with visible “Add to cart” buttons, leading you straight to the payment page, make the surest “bet” is there a status bar informing customers know just how many more steps there are left till they complete the checkout process?   All these are crucial aspects to check off your preliminary checklist, so mind you give them due consideration. Track down all the above-mentioned elements (adding a “minus” to your evaluation list if they miss), then take your time to analyze and to rate them one by one! The completed projects of an ecommerce services company are filled with valuable “hints” in regard to how your own project might end up looking/performing!   2. Does The Platform Suit Your Budget and Back-Office Administration Experience? And you might want to start your conversation precisely with this question: “What ecommerce website development platform would you use for my project?” From WordPress to Magento commerce, to PrestaShop, to OpenCart, to Drupal Commerce, the range of possible answers to this key question is wide enough to get you thinking. ... to get you pondering on whether their platform suits:   your planned budget for this ecommerce project the time you're planning to invest  your team's skills and hands-on experience in back-office management   Do you want your online store to be up and running in no time? Conveniently easy-to-use and overall... simple?  Or is it a big ecommerce website, with a large inventory, incorporating a whole infrastructure of complex ecommerce functionalities, that you have in mind? There's a specific platform to go with for every type of need and goal that you might have. Make sure your potential ecommerce services provider has already built itself a reputation working with that particular platform that best suits you and your project!   3. Put SEO Expertise High on Your List When Choosing Your eCommerce Services Provider Need I add more? The expertise and time invested in building a visually-arresting, ideally easy-to-use website gets reduced to... wasted efforts if they're powered by an effective SEO strategy. Now it's the perfect time to tackle specific SEO goals that your potential partner would have to meet:   putting together SEO-friendly URLs integrating meta tags relevant to each page achieving mobile responsiveness using certain page load time optimization techniques   And the list of SEO-oriented goals and aspects to evaluate at this phase continues with the analytics tools that this ecommerce services company has in its toolbox. In short: look for proofs that this company's proficient in turning key customer-behavior data and valuable stats into... actionable insights for you to leverage.   4. Carefully Consider Their Time Estimate: Do They Leave Any “Room” for Extensive Tests? In other words: “fast” could also mean:   “Let's skip or reduce the pre-launch testing to bare minimum!” It's a trap, don't fall for it! Make sure that the time estimate that they'll give you:   complies with your own release schedule does cover the pre-launch testing period, too   A time needed for them to do their own testing, for your own team to run theirs and, of course, for this partner team to get all the identified bugs and issues fixed.   5. Do They Commit to Crafting High-Converting Copy, too? If so, look for relevant “samples” of copy they've already crafted for past clients. Is their copy:   persuasive enough? clear, concise, yet informative? simple, yet engaging?   Does it efficiently outline/tell those products', those brands' unique features/stories? Then, you might just have a “winner”. Still, there still are 2 more essential aspects to check off your list before you can give your final “verdict”. Keep on reading...   6. Can They Meet Your Current and Future Customization Needs? Maybe a standard turnkey solution doesn't suit your ecommerce project's specific needs. Maybe those plugins need some tuning work to meet your specific requirements.      Or maybe you want that free Drupal 8 ecommerce theme that you like best to be perfectly adjusted to your own needs. Is this ecommerce services company IN for customization, too? Or do they stick to assembling pieces provided by an open-source platform when putting together your ecommerce website? Be skeptical when you're being offered “one size fits all” solutions! When you detect proofs of zero experience or total lack of enthusiasm at the perspective of having to custom-tune those:   ecommerce theme plugins modules   … to your project's particularities and to your own future goals.   7. How About Post Launch Support? What if You “Detect” New Issues Then? Is it a “full-option” type of ecommerce services package that they'll provide you? Will they be there, ready to intervene, if, after your website' launch, you detect any bugs that escaped the pre-launching testing phase? Or if new issues breakthrough? Now it's the perfect time to let them know about all your expectations regarding post-launch assistance.   The END! Time to evaluate some “candidates” now and, with this evaluation system at hand, to choose the ecommerce services provider that makes the perfect fit for your project's needs! ... Read more
Serge Karpyuk / Mar 15'2018
Mobile App Development Services: 9 Key Questions to Ask Your Potential Provider
Price, level of expertise and estimated time! These are the 3 main criteria that any organization planning to have a mobile app built use to evaluate potential mobile app development services providers, right? And yet, the cost of development sure isn't just about the money. Take time factor and commitment, for instance! They, too, get reflected in your bill. A suspiciously short time estimate might be a signal for you that they'll be skipping a crucial step or two from your app's development process. Also, a “large” team might be a numerous team of enthusiastic and hard-working... junior developers only.  So, how do you properly evaluate your potential mobile app development partner? How do you know for sure whether their services and level of expertise are enough to help them deliver you a mobile app that meets your requirements entirely? Gaining in-depth knowledge about their team members and collecting reviews from former clients are just some of the key steps to take during your “investigation”.  And since no other “evaluation method” could beat an open face-to-face talk, here are 9 essential questions to ask your potential provider:   1. "What's Your Specific Workflow?" In other words: how do they usually approach their mobile app projects? What's their work strategy? What key phases does it include (or exclude)? Everyone's “boasting” with their adoption of the agile development these days, right? Make sure you go beyond the standard talk about the agile approach and ask them to name the specific phases included in their process flow.  A good workflow would need to include at least these 5 crucial steps:   preliminary research on the type of app to be built, along with all its particularities and specific functionalities to be implemented (analyzing the target audience here included) a feasibility study the prototyping phase the UI optimization phase the MVP building phase   Do dare raise an eyebrow if your potential “partner in crime” strives to convince you to go straight to MVP. It's an alarming sign that they're not the professionals that you might want to handle your brilliant app idea.   2. "What Technologies Does Your Team Have a Deep Expertise In?" Another crucial question to dare asking your potential app development services provider whether:   you've already started working on your app and you're now just outsourcing some aspects of your project; it's vital that this team should be proficient in that particular technology that you're currently using in your project   you haven't yet started your project and you haven't yet chosen the mobile app development technology(s) that will be powering it either; it's crucial to know then how easily this team of mobile app developers can adapt to a new technology along the way   3. "How Many “X Technology” Developers Are On Your Team? Juniors or Seniors?" Expertise, hard to quantify, but crucial for ensuring that the resulting app will live up to your standards! Therefore, once you've dug through their never-ending list of technologies that they have a hands-on experience of, go deeper with your “investigations”. Identify just how many developers are familiar with your required technology. Are they mostly junior or experienced developers? And, most of all, do dare to ask for some sort of proof of their seniority levels. Some “blind” CVs or even samples of older code would be perfect.   4. "What Would Be Your Time Estimation on My Project?" And time sure is money! Do keep in mind that the average time invested in a mobile app development process is of 4-6 months. Compare the time estimate that this potential mobile app development services provider gives you with this “average time” for developing an... average mobile app. Next, ponder on their estimate a bit:   if they commit themselves to delivering you your app faster than their competition, then you might want to put their offer on top of your list if their shorter development time is counterbalanced by a higher price, don't rush to take them off your list!   A higher price might as well be a proof of the seniority level in their team. As well as of an efficiency-boosting workflow that they may be leveraging within the company.   5. "Does Your Portfolio Include Any App Development Projects Similar to Mine?" And by “similar” I definitely do not mean “identical”. Are they familiar with your industry? Have they implemented the same functionalities in some of their previous app development projects? Such as integrating a particular payment gateway, for instance? Have they been working mostly with start-ups or enterprises?    6. "Any Former Clients' References for Your Mobile App Development Services?" Why should your “research” be any different than that of a potential customer? Someone looking to make a purchase, who usually conducts a multi-leveled research: forums, customer reviews etc. Therefore, one of the key criteria when evaluating your mobile app development services provider is their former clients' references. Dare to ask for such recommendations and read client reviews on research company sites, such as Clutch.co, for instance. They do a wonderful job combining multiple evaluative metrics for identifying the leading companies in various industries (interviewing former clients being their no.1 research technique)  Ask questions about some of their past projects: the challenges they faced, solutions that they've come up with, time invested in those projects etc.   7. "How Much Will My Project Cost? And What Does The Price Tag Cover?" For putting a price tag on is equally important as knowing from the very beginning precisely what services your “bill” would include. Speaking of which, here are some of the fixed aspects that you should make sure that will get included in that price estimate:   research & preliminary consultancy UX prototypes, mockups design mobile app development project management all infrastructure costs guarantee licenses   Also, a key parameter to use when you're “weighting” their cost estimate is the seniority level of the developers that will be assigned to your project.  Since their proven experience and expertise would automatically influence the price. If the given price is suspiciously low, you might want to question those developers' overall level of expertise. Which, in the end, might lead to longer development times. So “cheaper” might turn out to be... more expensive actually.   8. "What Files Will I Be Given Access to During the Project?" Transparency is a strong indicator that this might just be the mobile app development company that you want to partner with. Don't hesitate to ask about the files that you can access during the project. Wanting to know what's going on, at every stage of your future app's development process, is only legitimate. And speaking of the files that you should be entitled to have easy access to, let me mention just a few:   time reports weekly updated staging and production environment source code test environments/demos the project management's dashboard itself (whether it's Jira, Taiga or maybe Trello that they're using)   The more involved you'll be in the process, the quicker you'll detect issues that you dislike or simply specifications that you'd like to create. And the more chances will be for the final product to meet your requirements entirely!   9. "How Do You Communicate With Your Clients Throughout The Projects?" And probably this is precisely the question that you should be starting your “interview” with. Knowing what:   communication tools they'll be using (Slack, Rocket) what project management boards what time you can contact them at, their overall availability and response times the calls' frequency' how often you'll be getting in touch with the team working on your project … is vital. Zero or poor communication and timeliness risks to turn all expertise, efficiency-enhancing workflow, conveniently low price and short development times into... nothing but “details”. What if you want to make some recommendations? Or to inform the team about some late scope changes? What if the team itself needs further clarifications from you? Now it's the perfect time to express your expectations when it comes to this part of your future collaboration: communication. And also, to have your doubts if the potential app development services provider doesn't seem too open to implementing your suggestions. To committing itself to frequent calls and so on.   The END! These are the 9 crucial questions to ask or the 9 things to look for in a new mobile app developers company that you consider collaborating with. Would you have added a few more? If so, what other questions? What is your own criteria when you're evaluating potential development teams in order to assess if they're the right fit for your app project?  ... Read more
Adriana Cacoveanu / Mar 10'2018
What Are Some of The Best Free Drupal 7 E-commerce Themes?
Building or “redecorating”? Are you putting together your online store from scratch or refurbishing your current one? No matter which one of these 2 scenarios fits your plan, you must be running your own “investigations” right now: which are the very best free Drupal 7 eCommerce themes out there? Having a “top X” selection at hand would definitely speed up your “research”, right? A top including:   feature-rich themes, “loaded” with all those functionalities crucial for any eCommerce business, such as freedom to style your own product pages, checkout forms, custom cart, “add to cart” button, custom login and logout    Drupal 7 responsive themes themes empowering you with plenty of customization freedom   Well here's the selection of 5 Drupal themes for e-commerce that you should start your "investigations" with.   1. Omega Kickstart Jumpstart your Commerce Kickstart theme development using this base theme as a... strong “push”. A responsive subtheme, a “kickoff” to your whole theme development process on Commerce Kickcstart, Omega Kickstart comes packed with all the crucial features:   it's free it's built with Drupal Commerce in mind its layout is fully adjustable to any screen size (desktop, tablet, smartphone) it's conveniently more user-friendly than the pre-built Omega   Therefore, it makes the perfect impetus for kick-starting your theme development plans!   2. AT Commerce, One of the “Feature-Overloaded” Free Drupal 7 eCommerce Themes  A “full-option” Drupal commerce theme we could say! AT Commerce “spoils” you with out-of-the-box support for the Drupal Commerce module and Ubercart and .... “overwhelms” you with a heavy load of great features. Now to name just a few:   it's equipped with support for a lightweight and nonetheless responsive slideshow pre-built support for a Color module (Garland or Bartik); this enables you to go beyond the 3 default color combinations and, using the color picker at hand, to “color up” your theme to your liking heading styles that you're free to customize built-in Superfish module support  custom login block support for 26 regions a custom and configurable responsive grid layout for the front page and the taxonomy pages (that you're free to disable if you want to) Google fonts  mobile support  multiple image field alignment options   And the list is a never-ending one.  As you can see, AT Commerce is a theme that not only that provides you with a wide range of e-commerce-specific functionalities, but with almost unlimited customization freedom, too. You'll get to put together your site's “signature” web design in no time, with no need to “get your hands dirty” in code. From creating your “trademark” color scheme, to “playing” with all the settings that would impact the overall design and layout, your styling power is significant. A word of caution: do keep in mind that this is a sub-theme; before you get to leverage all the above-mentioned AT Commerce features (plus a few more) on your own website, you'll need to install the latest version of the AdaptiveTheme. It's this theme that will provide the needed core functionality   3. Commerce Theme Here's another one of those free Drupal 7 eCommerce themes geared at helping you get a fully functional and attractive online store up and running in no time! Moreover, the theme behind this theme “tempts” you with a Commerce Installation Profile bringing you, right out-of-the-box, all the needed functionalities to start selling your products. A profile coming with built-in Drupal Commerce support and perfectly organized files enabling you to easily customize any eCommerce component you need to.   4. Storefront As its name suggests:   if it's a clean and “inviting” storefront that you need to implement on your eCommerce site, this is the theme to consider! One that “plays well” with Drupal Commerce and that you can easily style up, further, adjusting it to your customer's future preferences. In short: Storefront is that Drupal commerce theme that will implement a clean and appealing interface to your Commerce Kickstart installation. And now if I am to highlight some of its key features:   responsive techniques via media queries various settings to “play with” for customizing your site framing, home grids, your color schemes, layout... an entire collection of template files essential for eCommerce sites: review pane, cart block, product-node options for cleaning up checkout panes, various form elements (specific to add-to-cart links, product attributes) and check-out layouts   Note: since this theme's compatible, out of the box, with the first version of Commerce Kickstart, the team behind it commits itself to making Storefront “play well” with the second version, as well.   5. Metropolis A versatile (“fitting” all site types) and feature-rich theme “praising” simplicity. This is a concise, yet comprehensive definition of Metropolis, one of the most popular free Drupal 7 eCommerce themes. A more detailed definition would need to include “details” such as:   the fact that it's a tableless theme, with a 1-2 column layouts it provides you with a superfish drop down menu comes “equipped” with 10 collapsible block regions an image slideshow, that you get to customize to your liking via the Views Slideshow heading H1 optimization for boosting your SEO efforts primary and secondary links custom login and logout options   The END! These are the top 5 free Drupal 7 eCommerce themes that you should consider evaluating first. To check whether their built-in collections of eCommerce-specific features suit your own needs and goals or maybe just partially.  ... Read more
Silviu Serdaru / Mar 09'2018
OPTASY: One of the Top Developers in New York, According to Clutch
Oops!...We did it again! We've got awarded 4 spots in Clutch's latest research highlighting the top-performing development companies in New York. It's in 4 of the industries included there that OPTASY's got recognized as one of the top developers in New York: Drupal development, PHP development, e-commerce, Shopify and web development. Moreover — as if just being listed there, among all those leading development firms in New York, hadn't been enough — we got ranked #2 as Drupal developers, respectively #3 as PHP developers. And, ranked top 15 in three other industries, as well!    Now with the risk of showing lack of modesty, we have to admit that we had been starting to feel quite “at home” on Clutch's matrices. Those highlighting the leading web development companies in Canada, in various industries. But to be recognized as one of the top developers in New York is simply an... overwhelming surprise! And it's almost an organic process if we come to think of it: it's our clients' encouraging feedback that made us open an office in New York, too (besides the one in Oakville, Canada). And it's their feedback, again, that reassures us now that we've made the best decision. We help our clients grow — powering their own ideas with our expertise and experience —  and, in return, they fuel our own growth plans. As natural as that. And this is precisely why we're particularly honored not just to be recognized as one of the top developers in New York, but to get ranked as a leader by Clutch itself.To get listed as a leader on any of their researches is already an honor for us. This because the Clutch team doesn't apply “just” the conventional evaluative metrics when analyzing the “candidates”. Metrics such as industry experience or market presence.  And it's not just data-driven content that they support their selections and hierarchies on, either. Instead, they actually interview both past and current clients of the given companies in order to identify both their strengths and weaknesses. In other words: First it was our clients that named us one of the top leaders in New York, then the Clutch team came to pinpoint their recognition.  See why we're overly honored whenever we get listed on Clutch? Why we can't thank our clients enough for sparing some of their time to answer Clutch's questions; to put their experience with our team and their opinion on our work into words?  Having our passion for what we do reflected in our clients' feedback is such a confidence-booster for us! And receiving, once again, a Clutch recognition can only confirm to us that: our client-centered approach and commitment to excellence make the best long-term strategy. And that we should stick to it. A big “Thank you!” to all our clients for their recognition and a big “Thank you!” to the CLUTCH team for the dedicated efforts put into each one of their famous researches. ... Read more
Adriana Cacoveanu / Mar 07'2018
MuleSoft Alternatives: 7 Other Integration Solutions You Might Want to Consider
Here's where you probably stand now: you need to integrate all your on-premise systems or cloud (or both) applications and to automate them in a perfectly orchestrated infrastructure! And you're asking yourself: “Should I go with Mulesoft's capabilities?” “What if I evaluated other integration solutions, as well?” “What are my other options?” “Which are the Mulesoft alternatives?” Since it's been a while since Mulesoft's Anypoint Platform's been competing with other technologies for users' preference in the enterprise integration software landscape. And competition sure is fierce, and so is your paradox of choice:   each technology comes with its own type of infrastructure  … geared at delivering integration as a service each one's packed with specific capabilities, designed to meet particular integration needs   MuleSoft Anypoint Platform: A Few Words A comprehensive, yet succinct definition would go something like this: MuleSoft provides companies with a next-generation integration platform (Mule ESB & CloudHub) for connecting all their systems (SaaS and enterprise apps) both in the cloud and on-premise. “And how does it work?” “What can you achieve by using it?” You might then ask yourself. Here's my three-version answer to your legitimate questions:   MuleSoft manages and secures the continuous data flow between all the existing systems in your organization it provides your team with self-serve exiting APIs, thus supporting their innovative initiatives it practically unlocks data via APIs, “injecting” it in the indicated external apps and systems from your enterprise infrastructure   Now, if I am to briefly point out some of MuleSoft Anypoint Platform's biggest advantages:   it enables you/your team to deploy your application on cloud with utmost ease it enables your team of developers to easily put together some truly complex orchestration flows: all it takes is some drag & drop on the user-friendly dashboard the containers that it provides and its conveniently simple, user-friendly graphics can only streamline developers' workflow even more it supports interaction with other platforms via web or REST services it complies with all major connection and data representation standards it enables simple and fast APIs exposure    And by far one of the biggest edge that Mulesoft has over its competitors: It's an integration platform that enables different existing apps and systems to connect with each other, acting as a bridge transporting data back and forth between them; and this data flow takes place within your enterprise or across the internet Mule ESB still is one of the most easily (and widely) integrated applications. And now, it would be only fair to point out some of MuleSoft's limitations, as well, right?   it is particularly suitable for complex integration scenarios (since it supports Java code, as well) in short: you'll need to consider having an experienced Mulesoft developer (with some Java background) in your team you might want to be able to interact with MuleSoft support right from the design environment (which is not yet possible) when it comes to dataweave mapping, you'll need to ensure, yourself, that all the fields are mapped, by inserting the right names; you can't rely on some sort of control mechanism to double check that for you instead structuring a process hierarchy is not exactly “piece of cake”, since you'll have to set up flows and sub-flows in the very same XML configuration files   Apigee: One of The Most Popular MuleSoft Alternatives And what makes it such a popular alternative (and implicitly one of MuleSoft's biggest competitors) is the fact that almost all components can be scaled horizontally! But there's more! More reasons why many companies choose Apigee over MuleSoft when looking for the best integration software to “power” their own integration scenarios:   it provides very good documentation (plus a blog), covering all the details of the most “popular” failures and valuable advice on error handling it empowers new users to get started right away, with very little guidance needed: they get to develop a Proxy and APIs right away a conveniently easy to use console   Tibco BusinessWorks Another “rival” that the Anypoint Platform needs to share its worldwide fame with!  Here are some of the strong points that make Tibco BusinessWorks the no.1 choice for plenty of enterprises looking to seamlessly and effectively interconnect all their systems:   it comes “packed” with lots of integration options: you get to test and to troubleshoot the whole process within the designer, you can write (a file activity), then automate a process in just a few hours and to easily deploy it in the Tibco Administrator it's conveniently easy to monitor it handles data manipulation and integration of heterogeneous systems remarkably it makes transforming and analyzing data, as well as managing error cases, ideally quick and simple you get to enable communication between multiple different systems without the need to set up custom APIs short time to market it supports legacy system integration it supports REST services development   JitterBit What is JitterBit's edge over Mulesoft? What convinced me to add it to this list of “MuleSoft alternatives”? It's easy to use! It's a simple way for enterprises to connect all their apps, devices and critical data that they need to get “flowing” for running their business! "Simplicity" and "ease of use" are the 2 keywords to describe this integration solution. And here are some more reasons why JitterBit's on this list:   it's easily customizable it's built to connect a lot of different sources and targets in the “data flow” circuit (SQL  DB, Salesforce, CSV, iSeries, IBM) it enables your team to set up operations (and to apply changes to, when needed) quick and easy, so you can leverage your entire infrastructure within minutes not only that it sync data collected from multiple different systems, but it uses multiple data formats, as well (both for intake and output), which takes the burden of writing custom ETL scrips off your back no steep learning curve   Zapier How can Zapier here, one of the Mulesoft alternatives, meet your integration needs?  It empowers you to automate tasks performed between other online services: Gmail, Salesforce, Basecamp, 249 etc. And here's how Zapier's “arsenal” of features and functionalities looks like; the ones that you get to tap into for connecting and automating all your apps nice and easy:   automated & connect applications automated workflows easy automation developer platform fast build processes    Informatica Cloud Data Integration You sure aren't nickel and dimed in choices when it comes to data integration tools! Informatica Cloud Data Integration is yet another full-featured, complex solution to consider:   it comes with all the capabilities needed for connecting all your on-premise/cloud applications and make them share data no matter what type of apps, since it supports NetSuite integration, Eloqua, Salesforce, Workday, Marketo, SAP, Oracle it enables you to extract data from your ERP systems, to transform it and then to “inject” it into your operational data stores   Oracle Integration Cloud Service As its name “divulges”: it's Oracle's cloud-based integration platform that we're putting into the spotlight here! Similar to the Mule app since it, too, provides a data environment in exchange, Oracle ICS's “job” could be summarized as follows: It provides a user-friendly web-based interface which makes possible for “citizen integrators” to peform basic mapping between the interconnected (cloud) applications. But the 2 key features that turn it into one of the Mulesoft alternatives are: unlike Mule, Oracle provides an enterprise information integration, too (EII) it provides several different adapters, suitable for a wide range of cloud-based business applications Practically, with just a few clicks, you can set up a connection to the Oracle Sales Cloud, SAP, RightNow, Salesforce, Oracle E-Business Suite and the list can go on... And now to mention just a few more of Oracle's strengths:   it's easy to use (and I've just mentioned here its user-friendly web-based UI) it takes just a few clicks to access your integration platform; no need to bring your own servers or software to the table   MuleSoft vs Dell Boomi Not only that it “spoils” its users with an easy to use UI, drag and drop convenience for creating new processes and excellent support, but there's a whole “pile” of other features that make Dell Boomi one of the Mulesoft alternatives:   it provides a multi-purpose PaaS integration cloud  cloud-to-cloud integration B2B integration multiple tenant platform SaaS-to-SaaS integration    Furthermore, if I were to highlight its biggest strengths, I'd pick up 3 main benefits that you can reap from choosing it as your integration solution:   getting a simple integration up and running will only take you about a couple of hours great visual interface that will speed up most of your team's tasks you get out-of-the-box connectors to Taleo, Salesforce, plus many other popular SAAS   But (for there is, indeed, a “but”) there are also 2 discouraging drawbacks that I have to point out to you:   the XML split does cause some irritating issues it's overly “picky” when it comes to the data format and the data type that it accepts   Now, if I am to sum up this “MuleSoft vs Dell Boomi” comparison in just one succinct, yet complete phrase, it would have to be the following: While Dell Boomi's geared at providing you with comprehensive solutions for cloud integration, Mulesoft's “specialized” in API-based integration. This is the key difference between the two integration solutions!   In Conclusion  Determine and evaluate your integration needs first! It all boils down to this... And that way before you jump to weighting each one of these integration technologies' strengths and limitations! For it's only after you've defined your needs that you should start looking for the software capable to meet them. ... Read more
Serge Karpyuk / Mar 05'2018