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.

From Drush Clear Cache to... Rebuilding Cache in Drupal 8: What's the Difference?
The Earth is round, a buttered toast will always fall butter-side down and doing clear cache is every Drupal developer's best practice, these are all globally-accepted truths! And speaking of the latter, when you discover that the familiar Drush clear cache technique is no longer universally unique you wonder: why the change? Why go from clear-cache, to... actually rebuilding cache, starting with Drupal 8? What's the catch? This new way to clear Drupal cache must be stemming from a certain limitation that earlier versions of Drupal presented: Partially completed cache-clearing operations threatening to grow into fatal errors. And now, let's dig into more details on:   clear Drupal cache: why & when the 4 methods for clearing your cache in Drupal Drush clear cache vs rebuilding cache: differences, the initiative behind this change, main benefits to expect    So, shall we proceed?   Clearing Your Drupal Cache: Why Bother? And When? First of all, here's the “motivation” that drives Drupal to create a cache in the first place: Each time a Drupal site has to render a certain web page, it is “forced” to perform specific database queries; and since all these queries have a negative impact on the overall page loading time, Drupal “decides” to store these web pages, once it will have rendered them, in a cache for later (streamlined) reference. OK, now that we've settled this whole “cause and effect” process, let's see why and when you should clear cache on your Drupal site:   when you're troubleshooting problems on your website; clear Drupal cache before you undertake any debugging, since this might just confirm to you that the “alerting issue” was nothing but a bad cache entry whenever you want Drupal to quickly record all the updates that you will have performed via the UI, all the changes you will have applied to your code when you're moving your website to a new host when you're installing a new theme or module on your Drupal site; just another scenario when Drush clear cache should be the very first step to take while you're troubleshooting   In a few words: clearing your cache might just be one of the most frequent actions you'll take while working (or simply maintaining) on a Drupal site.  And in many cases, the one that will “save the day”, without the need to apply other more complex techniques from your “arsenal”.   4 Different Methods to Clear Drupal's Cache  For there are several ways for you to clear your Drupal site's cache. Just go with the one that best suits your work style:   1. The Easy Way: Clear the Drupal Cache From the User Interface  By far the handiest (and some might say “the less-efficient”, too) method to clear Drupal cache is via the UI:   just go to Administration>Configuration>Development>Performance  and hit the “Clear all caches” button   It won't be long till Drupal displays the “Caches cleared” message for you! And that's it! 2. Drush Clear Cache (Drupal 7) or Drush Cache-Rebuild (Drupal 8) And now, the second method in your “arsenal”: the clear Drupal cache command line one! A two-way method, better said, which depends greatly on the version of Drupal on your website: 7 or 8? In this respect, here's the “magic command” to use for clearing your Drupal 7's cache: drush cache-clear all  or drush cc all Whereas in Drupal 8, this is the Drush command for tackling your cache: drush cache-rebuild or, alternatively, these 2 aliased commands: drush rebuild or drush cr And here I'm sure you can already tell which are the specific steps to take for handling your cache in Drupal 8 using Drush (still the most convenient way to do it):   first of all, you open a Terminal window and CD in your Drupal 8 website's root (a step that you can overlook if it's Drush aliases that you're using): next, your run your “magic formula”, your Drush command (“drush cache-rebuild” or “drush cr”) and wait for it to complete its task before going back to your website and finally, you just reload the page you were on, in your web browser   3. Run the /core/rebuild.php file for Clearing Your Drupal 8 Site's Cache  Among all the improvements that Drupal 8 “lures” us in with (built-in WYSIWYG, a Twig templating system and so on), there's the /core/rebuild.php file standing out! And “promising” us to streamline our frequent (and time-consuming) cache tackling tasks that we need to carry out during development: The Drupal 8 site in question doesn't even have to be working and the whole process doesn't require Drupal Console or Drush either! How about that? The one and only requirement (for there still is one) is that your site's configuration supports it.  And how can you check whether your site's config accepts this functionality? Well, there 2 methods at your disposal:   in case you're working locally, just ensure that $settings['rebuild_access'] = TRUE; in your settings.php (settings.local.php) or run this script in your command line: /core/scripts/rebuild_token_calculator.sh; then just use the results there as query parameters for /core/rebuild.php (https://goo.gl/qTrJ9d)   And voila! This “trick” will rebuild all cache without even requiring for the Drupal 8 site itself to be working during the whole process!  Which makes it the perfect “plan B”, whenever you don't have Drupal Console or Drush installed where you're working! The only condition is that your websites' configuration supports this functionality!   4. In the Database: Truncate all Tables Starting With “cache_” Spoiler alert: by “truncate” I do mean emptying, not removing! The fourth method to clear Drupal cache involves clearing all the data from the cache-related tables in your database. Meaning all the tables starting with “cache_”. For this, you just go over to your phpMyAdmin, select all the cache_* table and then click “Truncate” in the “with selected” drop-down menu placed at the bottom of the page: TRUNCATE cache_config; TRUNCATE cache_container; TRUNCATE cache_data; TRUNCATE cache_default; TRUNCATE cache_discovery; TRUNCATE cache_dynamic_page_cache; TRUNCATE cache_entity; TRUNCATE cache_menu; TRUNCATE cache_render; TRUNCATE cache_toolbar; As for the command line, feel free to scan through and then to tap into the valuable info that you'll find here: https://goo.gl/1b4otB here's another practical example: Let's say it's Sequel Pro — an SQL GUI app — that you're using. For truncating those specific tables, connect to the server, track down your site's database, have those specific “cache_” tables highlighted and just choose “Truncate tables”, from the drop-down menu! Also, in the above-mentioned “scenario” you could alternatively go to your PhPMyAdmin's SQL command field or MySQL CLI and run the above-mentioned command:   From Drush Clear Cache to Cache Rebuilding in Drupal 8: Why the Change? Here's the challenge that the conventional Drush clear cache (or “drush cc all”) used to make us deal with: Drupal's using caching intensively and therefore, it implicitely creates lots of inter-dependencies. Only partially flushing this heavy load of caches used to pose some major risks for any website. This is where the “cache-rebuild” method stepped in, starting with Drupal 8! It practically rebuilds (re-bootstraps) the whole Drupal site, after making sure that all cache is perfectly cleared. A “check and double check” technique, you may call it, which makes sure that:   your site is up and running all cache gets flawlessly flushed!   Drupal 7's so very popular Drush cache command itself gets cleared and replaced with “cache-rebuild” in Drupal 8. Which (the Drush cache-rebuild command specific to Drupal 8) carries out the following tasks:   clearing the APC cache  bootstrapping Drupal calling drupal_rebuild()  removing the Drush cache    4. Wrap-Up Summing it up now, the essential info to remember is that:   “clear cache” should be on top of your “best practices” list as a Drupal developer  you have not just 1, but 4 methods to choose from, depending on your work style and context: via the UI, clear cache using Drush, by truncating your “cache_” database tables, by running the /core/rebuild.php file Drupal 8's cache-rebuild is a step forward from the conventional cache-clear practice; it adds a new “re-bootstrapping” operation to the “cache clearing” process! ... Read more
RADU SIMILEANU / Mar 02'2018
PhoneGap vs React Native: Which Platform to Choose for Building Your Mobile App? And Why?
A great developer experience or a great user experience? A familiar web technology for you to code in or native-like performance for your users? And these are just some of the questions “taunting” you right now, while dealing with a PhoneGap vs React Native dilemma, right? Each platform comes with its own “temptations” to... lure you in:   PhoneGap promises you an “easy life” as a mobile app developer, enabling you to use any JavaScript library and framework that you're comfortable working with React Native promises you to inject native-like performance into your app and thus...  to perfect the user experience   So, which one to go with?   PhoneGap: A Brief Overview A compromise! This is, in my opinion, the perfect word/metaphor to describe PhoneGap. A compromise in terms of user experience and performance, since it's hybrid mobile apps that you get to build using this technology:   a JS/CSS/HTML app having a browser-based UI (giving you the freedom to work in any of your preferred web technologies) that exposes native mobile device APIs and data; accessing phone components through the API navigator   While a more “formal” definition would go something like this: PhoneGap is a distribution of Apache Cordova — coming with a few tweaks and custom packages —  that you can use for embedding websites in mobile apps via WebView. In short: more than a website, yet not a fully native mobile app. A hybrid app compromise!   A Few Words About React Native  In a  PhoneGap vs React Native debate, the latter would always have its native components rendering “trump card” up its sleeve: For a React Native-powered app is written in JS, like a PhoneGap one, yet it doesn't just render a webview, but REAL native components instead! And that, my friend, would also win over users: it's better user experience and zero compromises on performance that you get “rewarded” with for using React Native. You could also take this mobile app development platform as the answer to users' becoming more and more demanding: If hybrid, HTML 5 and/or mobile web apps used to be enough to “satisfy” their needs, while being a “blessing” for developers' budgets, as well, mobile users started to crave native-like performance. And so, React Native emerged! It's a convenient “bridge” between JS and native platforms:   React Native apps get written in JavaScript they “play by the rules” and meet the standards of the operating system ... while accessing a big part of the native platforms via this metaphoric “bridge” that React Native creates   PhoneGap: Tempting Benefits vs Discouraging Disadvantages Now in order to get an accurate score to our “PhoneGap vs React Native” debate here, we'd better go “pros and cons harvesting”, right? So, without any further ado, I'll list some of PhoneGap's “irresistible” advantages first:   it “spoils” the developer with a wide range of frameworks/libraries to choose from; if you're a big fan of web technologies, if you enjoy building UIs in HTML and CSS, you'll love the rich collection of choices that PhoneGaps puts at your disposal therefore, PhoneGap is easy to work with and developer-friendly it's not bound to any specific framework  PhoneGap-based apps perform within wrappers targeted to each platform and use API bindings that comply with the all the given standards for accessing each mobile device's data, network status, sensors it's based on the “write once run on every platform” philosophy: you get to “reap” the benefits of cross-platform development; just “work your magic” in any of the web technologies that you're comfortable with and have your app running on all available platforms … with no need to get yourself tangled up in each platform's native development language your app will have a similar UI on all native platforms    And now, the limitations that you need to consider when building mobile apps using PhoneGap:   by far the biggest inconvenience is the sluggish performance (leading to poor user experience, needless to add); and it's a more than predictable drawback considering that the web was created for web pages, not for heavy, animations-loaded, complex apps you risk to get all the issues of the web, as well, right out-of-the-box, along with your PhoneGap hybrid app. Bugs specific to certain browsers or styles that work differently depending on the browser here included!    In short: on one hand, you get to enjoy a great developer experience, on the other hand, you risk to compromise the user's experience!   React Native: Top Pros and Cons In a PhoneGap vs React Native “competition” the former would always fall behind when it comes to performance: React Native is undoubtedly faster. And here are some other benefits to "reap" for using React Native to build your mobile app:   it renders real native components instead of a webview also, since it renders NATIVE views without using webview as an intermediary, expect to face no browser compatibility challenges there's strong social proof, highly relevant evidence for its reliability: Instagram, Airbnb, Uber it's committed to the “learn once, write everywhere” philosophy; once you're familiar with React, you'll be writing native apps in no time, with no need to delve into Java or Objective-C coding, unless you want to extend your app's functionality moreover, React's backed by a huge community, so during your learning time and then during your app development process, you can rely on plenty of “expert” support  the user experience is significantly improved: a React Native app will always have a native look and feel to it compared to a mobile web app  also, since it renders native views, expect smoother, high performant animations, as well   Yet, React Native does come with some drawbacks, as well, that might discourage some (even you!):   you need to be familiar with React, there's way around it you'll need to write an app for every native platform (due to that above-mentioned JS-native platform based structure) since some of the components might be platform-specific don't expect to be able to use HTML: it's native components that you'll need to "juggle with" And The Answer to “Your PhoneGap vs React Native” Dilemma” Is... “It depends!” If you've already used React for the web, so you're definitely not stepping on alien ground, go with React Native! It would be a pity not to leverage your React knowledge and not to benefit from all the top performance that you get to inject into your mobile app! Not familiar with React? And, moreover, you love having an entire “palette” of familiar web technologies at hand, to just “grab and use”? Then you'll love PhoneGap's “developer friendly” approach! The END! Hope I've included all the most relevant pros and cons and managed to pull off some good explanations on why some developers get seduced by Facebook' baby, React Native, while others prefer to tap into familiar PhoneGap's own advantages. How about you? Where do you stand now?  ... Read more
Silviu Serdaru / Mar 01'2018
How to Use Gulp To Streamline Your Theme Development Process in Drupal 8
Automate all site-building tasks and streamline your theme development process! In short: reduce development time and boost your productivity as a Drupal 8 themer with Gulp! But how to use Gulp to automate your workflow? How do you set it up and run its toolchain in conjunction with Drupal? How do you move away from the old practices of the “good old days”,  when you had to write your themes in pure CSS? Since you had no alternative... How do you “harness Gulp's power” to automate tasks that are crucial for your Drupal 8 theming process such as:   compiling SASS and LESS watching/generating CSS files from SASS testing generating static design pattern pages reloading the browser  optimizing assets: images, JavaScript, CSS   Well, keep reading and “thou shalt find out”!   But What Is Gulp, After All? I confess I couldn't come up with a better definition for Gulp, than the one on the official site: "… a toolkit for automating painful or time-consuming tasks in your development workflow, so you can stop messing around and build something." More often than not referred to as “build tools”, Gulp is a front-end automation tool aimed at streamlining your theme development process. Basically, it enables you to have all those tasks that are critical (and time-consuming) for your workflow run... automatically! And thus to give your productivity as a Drupal themer a significant boost!   Why Use Gulp over Other Theme Development Streamlining Tools? Here are 3 of the strongest reasons why:   because Gulp configurations are conventionality simpler, shorter because using Gulp you get to capitalize on a wider community support because it runs faster, as well   How to Install Gulp A word of caution: since Gulp is a node module, make sure you install Node.js (this, of course, if you haven't installed it already) first things first. Needless to add that:   you should go for the latest version of Node.js the installation process depends (and may differ) greatly on the Operation System that you're using   Install Homebrew, then run the following command: $ brew install node Now, for installing Gulp, type the following command: npm install gulp-cli -g Where “npm” stands for the “Node Package Manager” used for installing Gulp on your PC. And where the “-g” flag signals that Gulp should be installed globally on your PC.   Creating Your Gulp Project: Set Up Your Package.json File As you well know, Node.js uses “npm”, a package manager “in charge” with downloading and installing all the modules required for a given project. And all these modules get defined in a “package.json” file.  So, this is the step you, too, should take now: setting up your package.json file in the very root of your Drupal 8 installation. For this, just run the following command inside that directory: npm init It's inside this newly created package that all the key information about the node packages required for your specific project gets stored! Therefore, make sure to fill up all the needed information as you put together your package.json. Note: still, you should also know that all the prompts are ideally intuitive and that even if you leave those fields blank, you can always come back later and change the default values. Remember to set the entry point to “gulpfile.js” and, once you add the required information for your project, keep in mind to specify your git repository. An Important Word of Caution! Your “How to use Gulp to automate my theming tasks in Drupal 8?” question should be accompanied by: “How to prevent triggering a segmentation fault?” One that you might involuntarily trigger once you run Drush. Since Drush will consider the node package's own .info file files as part of Drupal and since it doesn't recognize their format... trouble happens. Here's how you avoid segmentation fault: add a script to the package.json file, whose main role will be to remove all the .info files from the node_modules folder And now, let's go back to our package.json setting up process! One last piece of advice that I'd like to add: if you've run the “npm init” command for creating your package.json file, remember to identify the “scripts” section and to replace the following line: "test": "echo \"Error: no test specified\" && exit 1" … with this one: "postinstall": "find node_modules/ -name '*.info' -type f -delete" And one more thing: set up the following .npmrc file in your theme folder's root: unsafe-perm = true Here's how the “intro” of your package.jso file' structure will look like: "name": "...",   "version": "...",   "description": "...",   "main": "...",   "author": "...",   "private": true,   "devDependencies": {     "browser-sync": "...",     "gulp": "...", Once you have your package nicely set up, go ahead and install Gulp into your project by running this command: npm install gulp --save-dev  Note: you might be wondering why you need to install Gulp... again. The answer is simple: first, you installed Gulp globally and now you're installing it into your Drupal project! In this respect, it's  “--save-dev” which will let your PC know that Gulp needs to be added as a dev dependency in your packgage.json. All Gulp files and dependencies associated with it will get downloaded and a “node_modules” folder will get created.   Set Up Your Gulpfile.js You're not yet done with setting everything up! There's still one important step to take before you discover how to use Gulp to create and to automate your site building tasks: setting up the gulpfile.js! For this, just:   go to your custom theme directory manually create a gulpfile.js file by either using the cmd/terminal or just by right-clicking to create a new file   Note: keep in mind to change the config variable so that it should match your paths! Also, make sure that all your CSS gets stored in the same “CSS” directory in your theme (for example: sites/all/themes/my_theme/css/application.sass)    How to Use Gulp to Create and Automate Key Tasks for Your Workflow And finally, we've reached our “destination”!  The very goal of this blog post after all: determining which site building tasks are crucial for my/your own workflow, creating them and then automating them all with Gulp! Do you fancy automated:   Sass compiling into CSS? cache clearing “detection” of all the changes you will have applied to your .scss files? page reloading?   And your “wishlist” might go on...  Well, the answer to your “How to use Gulp to automatically run task “x” or “y”?” is simple:   Just run the gulp [task_name] “magic formula” in your terminal!    Here are some examples:    gulp.task('watch', function () which will watch for all the changes applied to your scss files and automatically recompile  gulp.task('reload', ['clearcache'], function () which will clear cache, then automatically reload the page  gulp.task('browser-sync', function() which will automatically run the BrowserSync server In order to get the whole process started, simply type “gulp” in your terminal. The END! Your turn now! Time to use Gulp to its full potential and to automate all those key (and time-consuming) aspects of your theme development process in Drupal 8!  ... Read more
Silviu Serdaru / Feb 28'2018
15 Android App Development Tools Essential for Every Developer's Toolbox
Simplify! This is the right way to go if you're “obsessing” over your productivity as an app developer. Declutter your toolbox and keep only the truly essential Android app development tools in there!   But which are they? What are the tools for developing Android applications that shouldn't miss from any developer's personal “arsenal”?  The most effective ones when it comes to helping you:   become (even) more efficient by improving your workflow and thus speeding up your development process develop higher-quality apps And this is where this blog post here comes to “the rescue”! It's a selection of THE fundamental Android app development tools that you should keep at hand (take it as your productivity-boosting toolkit). Ranging from: IDEs to emulators to design tools to game engines … and geared at streamlining your debugging, your performance-checking, they make the best Android developer tools to rely on in 2018: 1. LeakCanary Stay vigilant and alert for detecting any memory leaks in your Android apps right on the spot! But mind this doesn't take too much of your valuable time! Instead, rely on this powerful tool in your developer's toolbox for identifying them. It will take this time-consuming “burden” off your back and alert you any time it tracks down a memory issue threatening your app.  Moreover, LeakCanary provides you with a full stack trace so you can have those memory leaks fixed right away, too. 2. AIDE You'll have a crush on this tool if: you're a beginner, struggling to get started with that innovative Android app idea of yours (and, hopefully, to turn it into the next big thing in terms of Android app development) you're planning to learn Java and Android SDK: it will practically enable you to follow your favourite tutorials with highlighted code and then to get them tested... in real-time, on the very same device! In short: the irresistible advantage of AIDE and the very reason why it's got included in this selection of essential Android app development tools is that it runs on Android! Just imagine it: You get to develop your Android app on your device, nice and easy, then you get to test it... on that very same device! This is the true “superpower” that this development tool provides you with!  Note: don't expect it to be free, for it isn't, nor to “spoil” you with a full load of features.  3. Vysor The power that you'll unlock by including this tool in your smartphone application development process? It mirrors your real device on your PC. And this does turn into a true power if you're one of those developers who hate building their apps on emulators, yet they crave the advantage of using one. There's more! Vysor will even mirror your live app demos on projectors and big TV screens. So, if you think that this functionality matches your own work style, that it streamlines your workflow and helps you create a better app with greater ease, go for it! 4. Stetho Debugging native Android apps will never be the same again! That if you use this open-source platform wearing Facebook's signature here when you go “bugs hunting”.  And not only that it makes your debugging work so much easier, but it's also geared at landing you a much needed helping hand with your: inspecting the SQLite database checking the View hierarchy monitoring network operations A debugging tool that shouldn't miss from your toolkit! 5. B4A, One of “Speed-Injecting” Android App Development Tools  For “rapid development” is what you'll achieve by leveraging this tool's features. And these are: the ability to develop Android apps using the much simpler BASIC programming language  a visual editor for manipulating your views to your liking wireless debugging In short, B4A (Basic for Android) makes such a convenient IDE and interpreter enabling you to create your app in a simpler procedural programming language. Plus, it comes packed with other advanced features to speed up your development process (as above-mentioned).   6. Android Studio The “Holy Grail” of all Android app development tools! Officially it's the IDE for Android.  But in reality, it's your own “Swiss knife” to use as an Android developer! Since it plays multiple roles crucial for your mobile app development workflow: it's a compiler that you get to leverage to create a file system for arranging your app project, to create multiple APK files it's an editor for the programming language that you'll decide to use in your app's development process (whether it's Java, Kotlin, C++...) it's an XML editor (providing you with a “design view”, as well, that will guide you in displaying your app's elements on the screen; crucial for keeping up with Google's Material design guidelines) it also includes the Android SDK itself (yet, the Java SDK needs to be downloaded separately) In terms of pros and cons, do expect a steep learning curve for developing with Android SDK and Java. But once you've got through it, do expect to gain access to unlimited support, to a whole bundle of advanced features and to unmatched integration functionality. From this standpoint, Android Studio is the “can't live without” tool-set for any developer!  7. Codota Does this scenario sound familiar to you? You hit a dead end down your app development roadmap and you need to go over to Github or StackOverflow and have a quick look at some code examples! Well, Codota enables you to do precisely that, but without having to leave your IDE. Talking about speeding up your development process, right?   8. GenyMotion Far gone are the days when GenyMotion used to be “just” the developers' top choice whenever they wanted to create their apps using an Android emulator. It has now grown into a complete platform whose powers you get to harness for: developing your app testing it deploying it Do consider it as a “candidate” to be included in your own toolbox of Android app development tools essential in your work this year. 9. Visual Studio with Xamarin These days you get Xamarin right out of the box with Visual Studio, Microsoft's IDE. One supporting a whole wide set of languages: JavaScript, C#, VB.net, and others, too, via extensions. And what's the “deal” with Xamarin? What makes it “essential” for your toolbox?  it enables you to develop cross-platform apps using C# (have you been “toying” with the thought of developing an app both for Android and iOS using the very same code?) … to test them on different devices that are connected to the cloud A word of caution: accessing and working with Java libraries isn't really “a child's play”, do be prepared for that; also, you need to accept that you'll be losing some of Google's cool integrated features and support. 10. Source Tree It makes any smartphone app developer's trump card making his work on Git as efficient as it can get! Basically, this tool's aimed at making Git cleanly organized so you can visualize all your work there — commits, changes, branches — in the form of an easy-to-navigate-through structure. And all this without the need to use the command-line! One that can only boost your productivity, as it helps you sweep through Git with great ease! 11. Fabric, One Those Powerful Android App Development Tools You Should Be Using And its power lies in all the capabilities that it's been invested with. It provides you with a whole set of features designed to help you: develop deploy extend … your Android apps' functionality fast and easily.   12. Eclipse Once developers' very first choice when they started selecting the Android app development tools to build their toolboxes with. This until it got “dethroned” by Android Studio! And yet, Eclipse should still be part of your toolkit. It's an IDE that supports a wide range of programming languages after all (Java with the Android SDK here included).   Note: still, do not expect it to get you “spoiled” with out-of-the-box support, like Android Studio does, so be ready for some setting up work! 13. InstaBug A tool that takes “bug hunting” to a new level! Practically it empowers users to share video, audio recordings, screenshots, detailed logs whenever they detect anything suspicious in your app. And these user-generated “signals” become priceless in your constant attempt to keep your app bugs-free! 14. Unreal Engine If it's a cross-platform, feature-packed game app that you're planning to build, this game engine might turn out to be your best “ally”! Here's why: it provides easy support for Android it's open source when it comes to graphics, it does have an advantage over its “rival”, Unity   15. Takt Team up with Takt in your major lags and bugs detecting “adventure”!  This library will help you check your app's FPS thoroughly and spot down bugs right in its development phase.  For you don't want them to linger on in there once your app's being used in its production phase, now do you? The END! I know what you might think right now: Each developer's toolbox depends solely on his/her preferences, goals and personal work style. It's perfectly true and I've anticipated this “objection” myself. Therefore, I've grouped here only those truly essential Android app development tools that one should “carry” in his/her toolbox. ... irrespective of his work style and goals set for his/her app. ... Read more
Silviu Serdaru / Feb 24'2018
When & Why Use RESTful Web Services Instead of The Traditional SOAP-Based Ones?
When to use REST? What are some practical use cases of REST web services? How does it work? What's the “catch”, why has this new architecture for web services had such an impact on the industry? How is it any different/better than SOAP? Why use RESTful web services after all? “Tormented” by all these questions related to the REST approach/alternative to building web services? Relax now, you'll have your answers in a minute (or a few seconds)! For here are the REST-related “enigmas” that I commit myself to solving in today's post:   What is REST and how does it work? Which are the specific use cases for building web services using the REST architecture? What's driving it? Why is this technology increasingly popular? What sets REST apart from the traditional SOAP approach to web services? When NOT to use RESTful web services?   And now... the answers that I promised you:   What Is REST and How Does It Work? Here are some valid answers to all your “What?” questions: “What is REST?”, “What are web services”, “What are RESTful web services?”   REST is the native API of web browsers REST is how one creates web services web services are... the future of everything: creating and publishing APIs that would do CRUD (create, read, update and delete) … thus making machine-to-machine communication possible, making apps' functionality accessible to multiple users and external systems RESTful web services are those resources on the web that can be tapped into for retrieving certain information   “And how does it work?” First of all, we should get one thing straight: REST is not an official standard! It's more of an architectural style, the one organizing a network of systems, where the “systems” are basically servers and clients. Here's how it works: Clients make a request to the web servers; the latter process it and, in response, return the appropriate web pages. And in this request-and-response equation, RESTful web services are the very resources on the web that servers tap into for retrieving the requested data. Does this definition shed any light on your RESTful web services-related questions?    Why Use RESTful Web Services? Here's the actual context where the RESTful web services technology emerged and “grew like a beanstalk”, with a huge impact on the industry: The web “exploded” and, starting with web 2.0, the interaction between websites and client apps, between multiple sites, multiple devices, sites and databases, became increasingly intense. And more and more “demanding”, calling for a new technology that could handle and streamline this communication taking place on the web. And here's where web services and REST, a new way of building them, emerged! The REST architecture is designed to build:   maintainable lightweight scalable    … web services, which make retrieving the data requested and “exposing” all that information far less cumbersome. As compared to the conventional SOAP/XMLRPC web page-scrapping method. Data's being passed on the web, from one website/app/device/database to another, faster than ever these days. Just think about all those websites incorporating Twitter and Facebook content! Or of websites “capturing” data coming from multiple sources: financial information, sales data, online communities... RESTful web services is the technology that streamlines all these intense data “harvesting” processes! This is the answer to your “Why use RESTful web services?” question.   When Should You Use RESTful Web Services? 5 Practical Use Cases There are specific use cases when you should go “the RESTful way”. Adopt this approach to building web services if:   1. In your distributed app it's crucial to keep the coupling between client and server components to a minimum:   you'll need to be able to update your server frequently, without having to update the client software, as well your server's going to be used by multiple clients, yet you don't want them to have control over it   Just make sure you follow all the REST constraints for achieving this kind of basic level of coupling. Maintaining a purely stateless connection will be challenging, but not impossible if you “follow the rules”.   2. It's a custom, on-demand digital product that you're developing Such as an Ubercart or Drupal online store that you're putting together on a remote cloud server:   you set it up create a suitable architecture that would scale the environment if/when this your custom product goes viral   3. You want your game's high scores and user community forums to be displayed both in-game and on the web Let's say that you're a mobile/console game developer facing the above-mentioned “challenge”.  In your practical use case you can:   have your Drupal site publish an API, using Services (thus doing “CRUD” with the data that needs to be “harvested”) leverage a RESTful type of communication with the Drupal site in order to retrieve that data and have it displayed in-game, on mobile/console, too   4. You want to create a user alert system on your e-commerce website One that would alert your customers, via your e-commerce mobile app, whenever a product that they visualized becomes available (or its price drops). Also, you want those alerts to pop up in an iPhone app and on Facebook, too. And the solution is: Your Drupal site (for yes, it's a Drupal site that you own in this scenario) will use Services & a custom module to have the example.com/alerts/uid API published. And it's this specific API that the iPhone app and Facebook will use for manipulating that particular content to be shown in the user “alerting” message.   5. You want to provide (paid) access to commercially-controlled data Such as movies, music, stock or trading data. Imagine that you own an event venue and you publish a ticketing API. People (such as ticket brokers) will be charged for gaining access to it. In short: RESTful web services for can be used for all kinds of commercial activities, as well. Just use them to create and to publish the API that will do CRUD with precisely that commercially-controlled data that people are willing to pay for gaining access to!   What Sets REST Apart from the Traditional SOAP Approach to Web Services? Of simply put:  Why use RESTful web services instead of the traditional SOAP-based web services? Here's a list of strong arguments:   with REST, all that intense data interaction is more lightweight; it doesn't weight so heavy on your web server like a SOAP page-scrapping method would with REST, only the specifically requested information gets retrieved, instead of having whole web pages scrapped off the “target” content (like with the SOAP approach) the architecture is way simpler than the SOAP one and it leverages the standards (and protocols) of modern web   And what does this last argument even mean? It means that heavy SOA (Service Oriented Architecture) is shifting to lightweight WOA (Web Oriented Architecture), since these days apps need to tap into a web that's “packed” with REST resources. And so, instead of leveraging a few point SOA services, data gets collected and displayed via millions of granular REST resources. Developing arbitrary apps, that interact over the network, has become conveniently easier. Complex things (systems) get simplified!   When not to Use REST Web Services? There are — as I've just pointed out — use cases when the REST approach is the perfectly suitable one: business-to-consumer apps. But there also are specific cases when RESTful web services don't work so well: B2B apps! Take this practical example here: A bookstore might find it a bit more challenging to make a volume purchase from an online vendor as compared to a regular customer.  It would need to “juggle with” several apps to track shipment, sales, determine re-orders etc. And where do you add that one app might need to be re-entered into other apps, turning the entire process into an overly complex, hard-to-manage one.   The END!  Have I managed to answer your “Why Use RESTful web services?” question or not quite? Or just partially?  Do be honest and, if it's the case, share your other REST inquiries and dilemmas with me! Or point out those use case examples or explanations presented here that you'd like me to shed some more light on. ... Read more
RADU SIMILEANU / Feb 23'2018
Magento Enterprise vs Magento Community: Which One's Best Suited to Your Needs?
So you've made up your mind: it's Magento “fuel” that will be powering your e-commerce website. And now you're facing challenge no. 2: Magento Enterprise vs Magento Community!  Which one of the 2 Magento platform's editions is right for you? What are the key differences after all? Which one's best suited to your current feature needs? And how about your daring goals and growth plans? Which one's scalable enough to accommodate your expansion plans? The quickest/easiest/surest method to “find your match”: confronting your current requirements with each one of the 2 Magento editions' sets of features and functionalities. Note: the method is the same if you're having a Magento vs Drupal Commerce "dilemma" instead, for instance. Then draw the line and just do the math! So, without further ado, let's dig up the:   Magento Enterprise features  Magento Community features  And draw the profile of the “ideal” online store for each one of the 2 Magento editions   1. Is Magento Free? Price Tag vs Value With or without a price tag on. This is the most rudimentary “Magento Enterprise vs Magento Community” comparison that one could make.The first one does come at a price, while the open source version is free to download off the internet and, implicitly, free to use. And now the question that arises is: does the price tag come with added value, as well? Without question! The Magento Commerce edition —  merging, since June 2017, the Enterprise and the Magento Cloud Edition —  comes not with 1, but with 2 price tags on. Along with a heavy load of enterprise-level features and high-end functionalities. And it's your own needs and goals that will tell you whether... it's worth it. Whether a free variant, with basic online selling capabilities or a bulky feature set, with a heftier price tag on, suits you best.   2. Top Magento Open Source Features  The open-source community edition is Magento's downloadable version. And, as you can expect, it provides much of the same functionality, same basic performance and shares the core features with its enterprise counterpart. And here are some of these core features that you can power your e-commerce business plans with and get your functional online store up and running in no time:   modern tech stack regular updates automated code merge payment integrations scalability automated testing flexibility (install the extensions of your choice to ramp up your site's functionality) responsive layout fast product import integrated video & marketing tools integration customizable & mobile-compatible admin dashboard guest checkout registered customers   A word of caution: Determine your site's specific goals and needs right from its planning phases.This because implementing specific functionalities from your “wishlist” might require you to install additional plugins and to craft some custom code.     3. Does Your e-Commerce Business Fit the CE Client Profile? It does if your answer is “Yes” to most of the following questions:   Is it a small-scale e-commerce project that you're starting? Are you planning to keep extension/plugins implementation to a minimum; can you already predict that there will be no need for custom modules in the future? … no need for 3rd party design and web development teams to handle your not so complex site project? Are you looking for an e-commerce platform that should provide you with the basic features needed for getting your store up and running? On a shoestring budget? No plans to grow from a small e-commerce site into an enterprise online store? Or to enter new markets? Is it a versatile platform that you're looking for? One leveraging open source for delivering you a significant load of basic plugins and templates to custom-tune your store with? … and to deliver rich experiences to your customers with?   In short: Magento's open source community edition (CE) is built, from the ground up, with the basic needs of small e-commerce business owners in mind. It's a turnkey solution for small sites. Note: having just a few products doesn't necessarily mean that your site's needs are basic. Therefore, this is no indicator that you should opt for Magento Open Source.   4. Magento Enterprise vs Magento Community: Do You Have Any Expansion Plans? Just think these growth plans through and the sooner the better:   Would you like to enter new markets at some point in the future? Would you like to ramp up and customize your site's current functionality at some point? How much do you want it to grow? Is scalability a critical feature for you?   Do set up your e-commerce goals at this phase of the project! For once you've got your site running on Magento Community (or Open Source), switching to Magento commerce will be more challenging than you expect:   the two editions' code bases are different you'll need to give your website a full redesign the Magento Open Source templates that you will have installed won't work in Magento Commerce   So, take some time to think about the future, your e-Commerce site's future... Since “upgrading” it, later on, to Magento Enterprise, comes with inconveniences and compromises that you'll have to make (e.g. losing some of your team's hard work).   5. Top Magento Enterprise Features  Magento Commerce — the 2-in-1 Enterprise & Cloud edition of the platform — provides you with enterprise-level features right out of the box.  Along with the price tag comes the added value transposed into a set of online selling capabilities that you don't get with its open source counterpart. So, do consider this when you're having a Magento Enterprise vs Magento Community dilemma. Capabilities geared at meeting your enterprise online store's complex demands from an e-Commerce platform. And here are the enterprise edition's top features:   PCI compliance MAP pricing cloud hosting 24/7 technical Magento support, including a dedicated account manager  RMAs visual merchandiser: drag & drop UI and sorting rules for easily organizing your product category pages by variables of your choice (best/newest products, by color etc.) segmentation & targeted promotion features: personalize your customers' shopping experiences full-page caching improved UX: features such as wish lists and gift registry advanced marketing features: it provides you with reward points that you can use for setting up your own customer loyalty programs better performance: expect better page loading times as compared to Magento Open Souce geo-targeting B2B features: create custom catalogs and multiple payment options, set up multiple buyers, create several company accounts etc. content staging enhanced security out-of-the-box: PA-DSS payment bridge, credit card tokenization... separate databases for Product data, Checkout, Order Management: a major performance boost improved tax calculation functionality   In short: Magento Commerce offers you more out-of-the-box functionality as compared to Magento Community, where you'd need to engage in custom coding and extension implementation to have these features “injected” into your site)   6. Go With Magento Commerce If... … you plan to launch a large, enterprise-sized online store or a small-scale one, but you're “nurturing” major expansion plans! In this case, the Magento Enterprise vs Magento Community “dilemma” is an easy one: Magento Commerce (now including the enterprise version, as well) is perfect for you!  For your big, “needy” website site, that you expect to:   accept non-standard forms of payments, too (e.g. check or cash in hand) enrich your customers' shopping experiences with functionalities such as gift registries, wishlists, buy gift cards provide you with advanced inventory management and detailed reporting functionalities, with no need to install any extensions (or to write custom code) for this   … definitely needs a more robust, premium-grade features-packed platform. And Magento Commerce is the one.    The END! So, how about now? Do you find it any easier to decide for one of the 2 Magento editions? Do any of the eCommerce business needs and expectations that I've outlined here match your own? If so, which of the 2 feature sets  —  Magento Enterprise's and Magento Community's — suits them best?       ... Read more
Serge Karpyuk / Feb 22'2018
Which Is The Open Source Document Management System That Best Meets Your Needs?
The future belongs to those that not only store their heavy load of documents in a conventionally digitized form, but also “maneuver” it with utmost efficiency: have instant access to it, track it, retrieve it, organize it. How? By leveraging the perfectly suited open source document management system! Speaking of which, I'm sure you've already got your “feature wishlist” ready:   it should be easy to learn and to use  it should provide you with version control … with cloud access functionality … with document workflow … with document tagging it should come be equipped with an intuitive, user-friendly interface it should be free   But since it's open source document management software that I'll introduce you to in this post here, feel free to take this last “wish” off your list! OK, so this is how the ideal, the one size-fits-all-contexts DMS looks like. But which one's the best for your own business? The one that best meets your specific business needs'? Your organization's unique requirements? For narrowing down your choices you should submit yourself to this quick questionnaire:   What type of documents will you be storing though your future DMS? Where will you/your team need to access them? In a single office, across an entire infrastructure of offices scattered around the globe, on mobile devices? Is it a plug & play, a full-featured custom solution that you need or just the software to meet your needs? Which (your needs) are the “standard” ones, fitting into a particular market. What is your budget?   And while you're still pondering on some of your answers, let me narrow down your choices even more. To a list of 6 document management systems worth your attention:   1. Alfresco, On Top of The List of Any Organization Looking for The Right DMS Geared, from the ground up, to meet the particular requirements of those enterprises having critical documents to store and manage. Therefore, the best answer to your “What Is Alfresco?” question would have to be: "A robust enterprise open source document management system, fueled on open source, powerful enough to automate document-intensive processes within an organization" And here are some of its most “tempting” features:   its complex user role system ensures effective collaboration across large teams/departments robust content repository freedom of customization: feel free to tailor custom workflows and content models to perfectly suit your specific needs its collaboration web interface is geared at boosting team productivity public source code: it leverages core open standards access to a full set of add-ons and community-maintained extensions that you get to extend your DMS's functionality with it seamlessly accommodates any productivity app \that you may want to integrate later on: Google Docs, Microsoft Office etc. Alfresco mobile apps (for Android andiOS)   Should I also point out that NASA and the European Union, themselves, capitalize on Alfresco's:   open standards unparalleled robustness in handling massive amounts of content convenient extensibility unmatched freedom of customization that it “spoils” its users with?   2. LogicalDOC Takes Open Source to a New Level An open source document management system that comes in two flavors:   Professional Community    A highly versatile one, that can be used in any web browser, perfectly “equipped” to:   handle a significant load of documents boost the team's productivity while enhancing team collaboration, as well   Some of LogicalDoc's top features are:   quick & easy installation and intuitive use  multilingual full-text indexing task manager & events log version control & document searching local file system reporting & statistics task manager & events log Web Services (SOAP & RESTful) import from ZIP archives   And the list is literally an endless one! Do consider this feature-loaded, free open source document management software when looking for the right DMS to meet your requirements.   3. Seed DMS, A Powerful Open Source Document Management System If for you “the best document management system” means “the most powerful one”, then you might want to take the Seed DMS for a test drive. It's mature enough, so it's already built a strong reputation around it, and it's enterprise-ready. Built to store and to share huge loads of documents. And now, here are its other strong points worth your full attention:   real-time collaboration version control  users & groups management HTML documents editing built-in metadata support (author, description, keywords) document review & approval workflow full-text search functionality for creating online presentations  multi-level content directory, which supports +32000 documents    Should I go on? For, the deeper I delve into the pile of Seed DMS features, the more I find. Or even better: how about you give this open source document management system a chance and see whether these features do meet your organization's particular needs.   4. Feng Office: More Than “Just” a DMS  Why “more”? Because you get so much more than just the “standard” document management and team productivity-enhancing features.  And these additional, beyond the “conventional” functionalities are:   Task management Time tracking Workspace management Knowledge management   Its set of features also include:   automatic alerts & reminders notes calendar timesheet wiki & forum support reports & tags workflow processes task templates   5. OpenKM, A Conveniently Extensible DMS And extensibility, coming from its OpenKM plug-in architecture, is not its only “superpower”. Versatility comes right after, since it practically supports:   all web browsers all major DBMS databases all common file types (OpenOffice, PDF, Office, XML, HTML, JPEG etc.)   Moreover, it empowers teams to set their own rules (logic) for automating the documentation process. For example, imagine that you'll need to set up a rule specifically for moving a particular document to a new destination. You can do that with OpenKM! And now, the (almost) full list of features that this open source document management system has been supercharged with:   workflow OpenMeetings integration document encryption/decryption functionality automatic key extraction antivirus integration web services API OCR integration HTML editor a functionality to create new documents leveraging pre-built templates and forms Dropbox integration mobile interface & Google apps synchronization metadata navigator (along with categories, thesaurus, keyword...)   6. Kimios, The Best Alternative to the Heavy Document Management Software If it's an alternative to the robust, heavy “document managing machines” that you're looking for, lightweight Kimios makes the perfect fit for your needs. And it's not just its lightness that convinced us to add it to this list of document management systems, but its entirely service-oriented architecture, too (among others). This means that it follows the client-server model: Web client, Kimios for Office, Kimios Explorer and all the other supported third-parties are connected to the main Kimios server. To its central server, “in change” with exposing the web service layer covering Kimio's features. Speaking of which (this DMS's features):   repository customization using metadata customizable search engine document-centered functionalities: create, delete, update check-in-/out feature version control  user rights management bookmarks documents (along with creating bookmarks and advanced requests functionalities)   And it goes on and on... and on. Note: Kimios does integrate with Microsoft and Windows Desktop environment, but only under commercial license! The END! These are the top 6 open source document management systems that you should consider selecting the right one for you from. And this no matter how your own list of feature needs& specific requirements might look like.  ... Read more
Serge Karpyuk / Feb 17'2018
Node.js App Development: 11 Coding Habits for Making The Most of This Framework
Last' year's “Should I learn Nodejs?” dilemma has turned into an “I'll strive to become a better Nodejs developer!” resolution this year. Nodejs is already developers' “adored” framework and building "the next big thing" in terms of Nodejs-backed apps is the new challenge in 2018! And this definitely calls for a shiny and new set of coding habits to integrate into your Nodejs app development workflow. New code practices to stick to when writing Nodejs apps, new coding standards that you should follow and techniques to master for using this framework to its full potential. To your future apps' advantage, of course. Speaking of which, here's a list of 12 Nodejs development pieces of advice for you to consider if one of your resolutions for 2018 has been: “To become a Nodejs padawan!”   1. Start to Learn The Basics of Import and Import() Think ahead of ES modules' current situation. Which is the following: ES modules have been supported since Node.8.5 it's true, though, that they're still wearing their “experimental-modules” flag yet they're already being used, intensively, with the @std/esm library (and transpilers) Do consider learning the basics and be ready to level up from there. Since it's pretty obvious that 2018 has lots in store for the ES modules. 2. Integrate Asynchronous Programming Into Your Nodejs App Development Workflow There are 2 ways of carrying out your input/output operations and setting up your Nodejs development environment: synchronously, having your resources blocked for some time  asynchronously (Node.js' innovative application of asynchronous programming): where tasks can be carried out simultaneously since the resources don't get blocked  Now just consider a scenario of multiple operations to be performed, where resources keep getting blocked... This would have a dramatic impact on your Nodejs app's performance! In other words: embrace the asynchronous code! Use async-await! Turn it into your own “trump card” for handling async events and embrace the simplified version of the once so overwhelming code bases. 3. Modularize Your Code: One of The Very Best Coding Habits to Develop  Keep it small! Get into the habit of writing “bite-sized” chunks of code replacing the tediously long blocks of code that you might be used to right now. Here's why: it will be fairly easier for you to embrace the asynchronous coding philosophy this way small-sized pieces of code will be easier to handle, adjust and closely monitor both for you and for anyone in your development team  handling a cluster of bite-sized chunks of code gets particularly convenient when it's a complex Nodejs app development project that you're dealing with 4. Master Containerization & Adopt the Microservice Architecture Since the Nodejs application architecture is a microservices-based one.  Therefore, one of the best code practices to incorporate into your workflow is using containers. Containerize your Nodejs apps and streamline your services deployment by tapping into these 2 techs this year:   Docker:   the software technology to generate your containers  … which are nothing less than all-in-one pieces of software encapsulating all the resources that they need to run: system tools, code, runtime, system libraries  containers that will increase your deployments' security level and that you even get to use for simulating production environments locally    Kubernetes:    an open-source system that you get to use for automating everything Docker containers-related: scaling, deployment, containerized apps management...   Friendly advice: before you jump straight to containerizing your services, take some time to upgrade your existing code; for this, apply the principles included in the 12-factor app methodology.   5. Nodejs Application Performance Monitoring: Make It an Ongoing Process Especially if it's a complex microservice ecosystem that you need to keep a close eye on! Monitor your system, using the ever-improving toolbox at your disposal, detect and fix errors before they even get to catch your app users' attention.  Close and on-going monitoring sure is one of the very best Nodejs app development habits that you could develop this year!   6. Mind The Bugs in the Code, That You Might Leave Behind Be alert and avoid those scenarios where you leave trouble-making bugs behind, as you “knit” your web of code.  And being alert means:   tracking your error events detecting errors in their early infancy   Note: luckily for you, incorporating this practice into your Nodejs app development process is somewhat easier when using this framework.    7. Get Acquainted With HTTP/2 Again: always be one step ahead of the game! And since we can't but anticipate that HTTP/2 will be going from experimental to stable this year in Nodejs, make sure it won't “take you by surprise”. HTTP/2 has multiplexing and server push, with a signification impact on the native module loading in browsers. So, there's no doubt about it: it's going to lose the “experimental” flag, that it has been wearing since Nodejs 8.8, and become the new standard with Nodejs this year.   8. Use Semantic Versioning: Another Nodejs App Development Habit to Form  And this practice is what sets apart a Nodejs padawan from a Node.js... enthusiast. If you've decided to learn Nodejs this year, make sure you delve deep(er) into its set of best practices (don't just scratch the surface): use semantic versioning for letting the users know that you've updated the app. To inform them about the actions that they should perform in order to update the app to its latest version. In short: by updating your packages without SemVer you risk breaking up your precious app!   9. Turn Securing Your Nodejs Application Into Your Top Priority Make sure your Nodejs app is 100% secure above all! Apps' security has been both the vulnerable aspect and the ultimate objective for app developers in 2017. And 2018 is no different from this standpoint! Run tests over tests to “challenge” your Nodejs app's security by tapping into all the apps that this framework puts at your disposal: Snyk Data Validation Node Security Platform Brute Force Protection Session Management If there's a vulnerability there, somewhere, within your app, make sure you track it down before... it gets exploited!   10. Adhere to The JavaScript Standard Style for Writing Your Code Following a set of coding standards will just guarantee you that no big issues will show up later on. In this respect, the JavaScript standard style makes the best choice for your Nodejs app development workflow. Here's why: you get to “hunt down” style issues and coding errors early in the development process it sets the single space after keywords “rule” it will automate your code's formatting by running standard-fix  it sets the “function name followed by space” standard and the “single quotes for strings” one 11. Put All Your “Require” Statements at the Top  “Pin” this app development advice right on top of your list of best practices! It will make all the difference! By grouping all your “require” statements right at the top you'll practically: steer clear of performance issues, since “Require” is synchronous and it will simply block the executions (thus avoiding ugly scenarios) Major tip: use Node's built-in module loading system; it comes with a "require" function which will automatically load the modules existing in separate files. END of the list! These are the top code practices & new “healthy” habits to get into this year for making the most of this framework. And thus turn your Nodejs app development projects into the next famous apps built with Nodejs! ... Read more
RADU SIMILEANU / Feb 15'2018
Drupal SEO Best Practices for 2018: 8 Easy Steps to Take to Boost Your Google Ranking- Part 2
I am a woman of my word and so, as promised to you in yesterday's post, I'm back now with a handful of Drupal SEO best practices to follow this year. Best practices, valuable tips & tricks and key Drupal SEO modules waiting for you to unlock their optimization power and “inject” it into your website... All which, once put together, will give you a significant boost in (Google) ranking. So, shall we?   5. Build Your Keyword List, One of the Drupal SEO Best Practices to Stick to So, you've given your links a “deep clean” (as seen in Part 1), turned on your Google Analytics “tracking” power and your Drupal SEO Checklist's engines, too. What next?  Putting together your targeted keyword list! And this is one of those Drupal SEO best practices that can either “turbocharge” or turn your entire site optimization strategy into worthless effort. That if you underestimate its “superpower”. And here are the tools to rely on when you go “keyword hunting”:   Google Keyword Planner:    it shows the no. of searches for each potential keyword that you could rank for so you'll know whether it's worth adding it to your list or not, depending on the traffic that it can generate   Google Trends:   it gives you an insight into how a specific keyword has “performed” over the years    Moz:   a whole SEO toolkit put at your disposal, including tools for keyword research, link building, site auditing, reporting, you name it...   WordTracker:    it puts a whole “ecosystem” of keyword-identifying tools at your disposal   6. From Lifeless Keywords to "Living", Keyword-Optimized Content Now it's time to sprinkle your keywords across your website. And not just anyhow, but... strategically! Your “battle plan” should include the following content optimization steps:   create (if there isn't one already) one page for each target keyword  consider removing certain keywords from your list before designing new keyword-optimized pages; some keywords may just not be suitable for your particular business write custom page descriptions, page-focused titles, add page-relevant keywords … and make sure to optimize the content on each one of these targeted pages, pulling off a proper keyword density    7. Add 2 More Essential Modules to your Drupal SEO Toolbox 2 Drupal 8 SEO modules, to be more specific: the RDF UI module and the Linkit module (available in Drupal 7, as well).   RDF (Resource Description Framework) UI:   it's built, from the ground up, with the idea of empowering you to (seamlessly) integrate Schema.org with your Drupal site (whether during or after the development process) … another one of those Drupal SEO best practices with a clear impact on your Google ranking with this on-page markup “on”, it will be fairly easier for search engines to “understand” what each page on your site is about … and thus deliver richer search results   Linkit:   it “spoils” you (or I'd better say your content team), with a convenient UI for easily setting up links right in the WYSIWYG, using the autocomplete field it sees that they're properly formatted, that they use the right path and that they're up to date, as well   8. "Fast" Is Just Another Word for "Optimized" As fast as your budget allows! Fast-loading pages will:   have a huge impact on the overall user experience “please” the search engines and signal them that your site's optimized for speed and thus for enhancing UX and implicitly give you the boost in rankings (the reason why you've put together this whole Drupal SEO strategy in the first place, right?)   From the dozens of techniques, tools & modules at your disposal, that you can leverage for optimizing your website for high speed, I outline just one: the Google AMP module. Integrating it with your Drupal site you'll be killing two birds with one stone:   you'll give your site a massive performance boost you'll make it mobile-responsive    A Note of Caution as a Conclusion Focusing on your links and forgetting all about the right keyword density across your site's content. Or injecting high speed into your website and forgetting to setup Google Analytics for your website.  Or undermining the meta tags' critical role and focusing exclusively on building your target keyword list, won't give you that boost in ranking that you're aiming at. Make them ALL work together! Take these 8 Drupal SEO best practices as a clock mechanism: in vain do 7 parts get all your attention. If you neglect just the 8th component, the whole mechanism/SEO strategy won't work /won't give your site that boost in ranking that you're expecting. ... Read more
Adriana Cacoveanu / Feb 14'2018