Codecademy is an education company. But not one in the way you might think. We’re committed to building the best learning experience inside and out, making Codecademy the best place for our team to learn, teach, and create the online learning experience of the future.
lynda.com is an online learning company that helps anyone learn software, design, and business skills to achieve their personal and professional goals.
$ ruby -e “$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)”$ brew doctor
$ brew install ruby
$ \curl -sSL https://get.rvm.io | bash -s — –autolibs=read-fail
- IntelliJ for Java
- PHPStorm for PHP => That’s the one I am mostly using (US$99 for a personal license)
- Web Storm for general purpose HTML/CSS development
- PyCharm for Python
- Rubymine for Ruby
- Appcode for iOS development
$ brew update$ brew install git
$ cd /~/my_dev_folder // Putting yourself in the folder you intend to store your web app$ vagrant init hashicorp/precise64 // Installing a standard Ubuntu 12.04 LTS 64bits box$ vagrant up$ vagrant ssh // You are logged in!
This is all very exciting and promising. It explains why leading CMS vendors like SDL, Sitecore and Adobe are fiercely competing on this new segment of CXM, or Customer Experience Management, seeking the Grail of ultimate context-based personalisation. And it also justifies the rapid emergence of all these startups focused on analytics and performance monitoring: Crazy Egg Qualaroo Optimizely, New Relic, Fuel Deck, etc …
Yet, I can’t help wondering if all this technology is going to help me actually getting right my “context first” strategy without a radical change of perspective on the online presence of my company and my brands? Measuring variety and complexity is great to understand it and gain insights, but it can be outrageously onerous to action, as any digital marketing manager can tell. And even so, once all is measured and charted, can that really help me overcoming complexity, reaching this state of simplexity (6) I am looking for, and starting to produce delightful experiences which will turn my visitors into lifelong consumers and advocates?
The 3S: Search, Social, SpamIn fact, direct or bookmark access has decreased over the past few years, as most of the traffic comes from either Search engines (primarily Google), and increasingly from Social networks (primarily Facebook). According to recent studies, and depending on industry verticals, between 40% and 60% of the traffic comes from organic or paid search, and around 20-25% comes from social and referrals, leaving only 20%-40% to direct visits. (7) (8) Apart of this last chunk would be generated by another powerful source of traffic: Email Direct Marketing, EDM or “Spam” for the sake of pulling together our 3S: Search, Social, Spam.So WHY are visitors coming to my website? Because they’ve been searching for something, because a friend has shared an interesting information with them, or because they have received a call mail call to action. In all 3 situations, your website should be able to capture this information, and pull together some context for personalisation.
The 3 clicks rule for engagementObviously, there will always been situations where you can’t collect much about your direct visitor, due to their privacy settings for instance. Therefore you’ll have to get the best out of their first few clicks and interactions to profile them and tailor their experience. As a rule of thumb, and beyond the myth (9), aim at locking WHO they are and WHAT they are after in a maximum of 3 clicks, in order to serve them best informed content from the 4th one and onward, and produce delight.
“Flash is dead, long live the rich web! Beyond the now very conventional statement, it is about time for digital marketers and creative developers to acknowledge the reality of a “yet again” moving landscape, and to understand what is the new winning way of digital engagement, in a multi-screening world. Strategists, UX specialist and creative technologists are now busy scouting and monitoring the most innovative trends, at their bleeding edge. Here are some of their findings in the field of cross-browser and cross-device support, mobile applications and gamification. Welcome to the post-flash era.”
About one year ago, I published this private blog post, about the end of Flash and the emergence of new ways to engage the audience in the multi-screen world. For the records, I have copied a moderated version of the full article below, but in a nutshell what I was saying back then is the above.
The multi-screening world was, and still is a reference to the famous report from Google available here: http://www.google.com.au/think/research-studies/the-new-multi-screen-world-study.html
In another article published in B&T in November 2013, I also mentioned the fact that the future of digital engagement would largely rely on richer and interactive video and 3D/immersive experiences, and I shortlisted Rapt Media as a promising new contender in this arena.
This said, it was only half a surprise today to read this article on The Next Web:
And I can only strongly agree to the invoked key factors: Mobile and semantic markup for SEO and social.
Well done Erika, now following you on Twitter to learn more about your vision of the rich and semantic next web 🙂
- http://html5test.com allows you to measure the compliance of your browser with the HTML5 standard as a whole. On a scale of 0 to 500, without surprise Chrome leads with 463 pts as of July 2013, versus only 320 for IE9 and IE10.
- Responsive web framework: HTML5 Boilerplate, Bootstrap, Foundation
- Device and feature support detection: Modernizr
- CSS enhancements: Gumby
- File system interactions on the device: Manipulating and exchanging documents back and forth between local storage on devices and cloud services.
- Media interactions: Leveraging the camera and the microphone is better done within a native and locally running app. Take a simple barcode/QRcode scanning feature for instance, but consider also the engagement potential of Augmented Reality.
- Gaming: Despite the ubiquitous broadband network, there are still situations when the user is off the grid, the game assets are too heavy, or the user experience cannot suffer from unreliable streaming.
- Interoperability: Users have more and more appetite to multi-task and move content across multiple feature centric apps on their device, regardless of network conditions and real time access to cloud services.
- Encryption: With recent coverage in the news of massive privacy infringements, not only by hackers but also by government services, strong data encryption is essential, starting with the Finance vertical.
I have been coding and managing digital projects for the last 15 years, and this has already been through a number of evolutions, revolutions and complete paradigm shifts. Just listing a few areas to try to illustrate were I’m going here:
Source Control Management (SCM): aka CVS , Perforce, and ClearCase back in the days. Subversion had some glorious days, but over the pas few years the crowd has moved to GIT, made popular and ubiquitous by the amazing code sharing platform Github. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. It is easy to learn and has a tiny footprint with lightning fast performance. It outclasses other SCM tools with features like cheap local branching, convenient staging areas, and multiple workflows. It’s best suitable for distributed teams working in a peer to peer context and it is certainly the SCM of the decade, you can’t avoid it, even if you’ll keep an eye on emerging competitors like Mercurial.
Open-Source Software: Long gone are the days when you’d pay for closed source software without a blink, with the double risk of getting ripped off with ongoing maintenance costs, and being locked into a technological dead end. Web technologies are experiencing a sort of Cambrian explosion on an incredibly short timespan. People try before they buy, they want to access source code to customise it and suit their specific requirements, share it with business partners to encourage interoperability. As a customer today you will happily pay for a service and a subscription rather than for the codebase, you will pay for advanced features and integration rather than for the core functionality. It is on the ground of such a need for interoperability and agility that the open-source model has grown and become mature including in the Enterprise Arena. It is true in all compartments: Operating systems with Linux distributions such as RedHat and CentOS, databases with MySQL and PostgreSQL, server-side languages such as Ruby, Java and PHP, content management frameworks such as Drupal or Alfresco, and it is just the beginning. “Start free and scale up with service and features” is the new motto in the global era, and far from just “open” and “free”, Open Source is a true guarantee for stability, security, interoperability, enterprise grade.
Dependency management: Along the lines of interoperability, we see a growing number of technologies built on top of large aggregations and third party dependencies, and this leads to an increasing interest in managing software packages, bundles, plug-ins, add-ons, … An iconic example in the CMS arena is WordPress which proposes the most comprehensive library of 3rd party plugins to address various needs and features, from simple contact form handling to broad scale e-commerce. At a lower level, this translates into component libraries for web applications frameworks such as Symfony (PHP best managed with Composer for instance) and Rails (Ruby best managed with Bundler), and down to languages themselves, with Pear and PECL repositories for PHP, and Rubygems for Ruby. This is now even investing the field of deployment automation with platforms like Capistrano, Vagrant and Chef.
APIs and web services: Going hand in hand with the MVC revolution, the emergence and silent multiplication of web services and public APIs (Application programming interface) on the web is staggering when you consider it: There’s a crowd of agents and open endpoints out there just waiting for you as a developer to leverage them and unleash their power within your application. Programmableweb maintains a directory of 11,000+ APIs, and they are not alone (here and here for instance). All world-class service providers offer their own, such as Google. APIs are driven by a set of specific technologies, making them easily understood by developers. This type of focus means that APIs can work with any common programming language, with the most popular approaches to delivering web APIs being SOAP and REST. REST with JSON has become the favorite of developers and API owners, because it is easier to both deploy and consume than other implementations. Even though REST + JSON is not a standard, it is now seeing the widest acceptance across the industry. Again, interoperability is the key driver here, and it is important to make sure your applications can consumer 3rd party web services, and expose new specific ones in the most robust manner. Online providers event specialise in the brokering of web APIs, like for instance Zapier, ElasticIO and Talend.
Virtualisation: I can’t really remember the last time I had to play with a real physical server on which I installed Windows or Linux to create a web hosting environment: It was probably more than 10 years ago, on a super expensive and rackable Dell pizza box. Since then, all my web hosting providers have been offering virtualised environments on mutualised hardware, and this has grown to a super massive scale lately with a pack of providers led by Amazon and including Rackspace, Digital Ocean, Brightbox and many others. As I write these lines, I have 4 different systems running on my Mac, for development and productivity purposes, courtesy of Vmware Fusion or Oracle Virtual Box: Beyons Mac OS X 10.9 as a main host, I have Windows 8.1 and 2 server flavours of Linux (CentOS 6 and Ubuntu 12). Virtualisation means versatility and cost efficiency, since anyone can now run a fully fledged web server from home for just a fistful of dollars.
Cloud and web-scale IT: Cloud has been a buzz word since a few years now, but we are still hardly realising what it means in terms of volume, scale and commoditisation. Amazon has been pioneering this space and still largely leads it, allowing individual and businesses to fire up dozens of virtual servers and and run web apps anywhere in the world in just minutes, for competitive monthly charges based on consumption. What it really means is that IT infrastructure is not anymore the realm of super specialised engineers and techs, it is now almost completely commoditised, and we enter the age of what is called “Infrastructure as code”, where any mid weight dev-ops can fire up a world class architecture of undress of servers by simply running a shell script of a few lines: Literally scary! New contenders in this market of IT automation and web-scale IT are Ansible, PuppetLabs, Docker and Chef for instance. And these guys are going to take the industry by storm over the next 2-3 years.
User Experience Optimisation: Last but not least, as the years 2000’s have been the decade of CMS, the current period is undoubtedly focused on better managing user experiences online, and that’s achieved through a variety of means, including HTML5 rich and device agnostic user interfaces, personalised and interactive content. But at the end of the day, this is only possible through an extremely granular monitoring of performance, instant capture of exceptions and errors, and fine grained analytics. Google is still a heavyweight in that space, and enterprise content management systems battle fiercely to stay visionary leaders (Sitecore Customer Engagement Platform, Adobe Experience Manager, SDL Tridion, …) However, from a developer perspective there are huge opportunities to create value in that space, through server side and client side monitoring of web apps. And a significant number of startups have invested that space, such as NewRelic, Sentry, FuelDeck. These are essential components to deliver optimised online experiences.
Latest update: 21/04/2014
In this series of articles, I’ll store in these columns both for myself and future generations of developers some insights regarding modern web development. I’ll cover a broad spectrum of areas including IDE, source control, database access, network utilities, environment provisioning, deployment, testing, monitoring, etc.
This will be largely focused on open source server-side languages and technologies such as PHP, Java, Ruby, Python, deliberately leaving aside Microsoft closed source technologies such a .NET, which require their own very specific toolkit and workflows.
Also, as a Mac user I will obviously favour recipes for Mac Os X, but as far as possible I will document viable alternatives and walkthroughs for Windows 7/8 as well.
Our journey will follow the following flexible roadmap:
- Embracing the evolving digital world: Where I’ll discuss the major underlying trends no developer should ignore nowadays and would factor in their strategy to be an efficient and proficient developer.
- Getting the workstation ready: IDE, text editors, DB utils, network utilities, cloud services and more
- Getting the DEV environment up and running: VMs, provisioning, sharing on the cloud
- Setting up a BUILD and DEPLOY factory:
And more to come, watch this space.