MWD01 – Embracing the evolving digital world

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:

GITSource 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.

Java - Php - MySQLOpen-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 RubyJava 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.

Symfony and ComposerDependency 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.

MVCModel-View-Controller (MVC): MVC is the modern software pattern for implementing user interfaces in a scalable and future proof manner. It divides a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user. The central component, the model, consists of application data, business rules, logic and functions. A view can be any output representation of information, such as a chart or a diagram. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants. The third part, the controller, accepts input and converts it to commands for the model or view. It is clear that over the last 5 years all dominant and enterprise grade languages and application frameworks have quickly evolved towards the recognition of this universal and most desirable pattern: Java with Spring for instance, PHP with Symfony, CakePHP, Codeigniter, Yii and more, .NET with ASP.NET, Ruby with Rails. Even Javascript currently undergoes the same rapid evolution client side, with amazing and highly performing framework like Backbone, Knockout or the most recent Google AngularJS.

Web services and apisAPIs 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.

VirtualisationVirtualisation: 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.

Web-Scale ITCloud 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 AnsiblePuppetLabs, Docker and Chef for instance. And these guys are going to take the industry by storm over the next 2-3 years.

Monitoring UXUser 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.

Next to Part 2 – Getting the MAC workstation ready

 

 

MWD00 – Getting ready for modern web development

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:

  1. 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.
  2. Getting the workstation ready: IDE, text editors, DB utils, network utilities, cloud services and more
  3. Getting the DEV environment up and running: VMs, provisioning, sharing on the cloud
  4. Setting up a BUILD and DEPLOY factory:

And more to come, watch this space.

Next to Part 1 – Embracing the evolving digital world

Chef Conf 2014 – Welcome keynote

Video

The future of web-scale IT automation is here, with Chef. Listen to the inspiring welcome keynote by Barr Crist, CEO of Chef Inc.

Appcelerator issues world largest developer survey ever

Appcelerator & IDC - Mobile Developers Survey 2012Appcelerator and IDC surveyed 5,526 Appcelerator Titanium developers from August 22-28, 2012 on their perceptions about current debates in mobile, social, and the cloud as well as their development priorities. This constitutes the world’s largest mobile developer survey ever conducted to date and reflects the tremendous growth of the Appcelerator ecosystem. Some of the key findings reveal that mobile developers believe that a mobile-first startup could disrupt Facebook, disappointment with nearly every aspect of HTML5, Apple’s continued reign as the platform of choice for developers, and top predictions for mobile in 2015:

  • How a mobile-first startup could disrupt Facebook
  • Disappointment with nearly every aspect of HTML5
  • Apple’s continued reign as platform of choice for developers
  • Android’s development decline for the fourth quarter
  • RIM’s decline to all-time low
  • Optimistic potential for Microsoft’s Windows 8
  • The mobile developer profile
  • Top Predictions for mobile in 2015
  • … and much more!

This constitutes the world’s largest mobile developer survey ever conducted, and reflects the insight and perceptions about current debates in mobile, social, and the cloud as well as their development priorities.

Top5 form factorsOne of the findings I find most amazing relates to the top5 form factors developers predict they will build apps for by 2015: Smart TVs get an astounding 85%, and I’ll let you discover the 4 other ones, which DO NOT include smartphones, tablets nor desktops 😉

You can download the report here

AMPLI Report 2012 is out, and brings some news

As an Australian resident and professional, this was obviously a highly expected publication. But as a citizen of the world, any of you guys out there should also grant it a bit of your interest and time, since Australia is now the #1 digital nation in the world!

It’s not me saying it, it’s Google for instance, in their “Mobile Planet” interactive report: Australia is well ahead of most advanced economies in terms of smartphones penetration for instance.

Smartphone penetration in 2012

And that’s what the AMPLI report 2012 confirms, with a higher figure of 76% smartphone ownership among the population surveyed. Considering that, it’s fair to say it’s good “lab” data for our all market researchers around the globe.


The Australian Interactive Media Association (or AIMIA) has faithfully prepared and published this survey for 8 years in a row now, bringing a remarkable contribution to our industry. Here are some facts I’d like to highlight here to feed your geeky appetite:

  • AIMIA AMPLI report 201276% smartphone penetration (p16) => That puts Australia #1 now, before the US and UK!
  • 40% of Apple devices, then 18% Samsung (p18)
  • 42% shop online on mobile (p27)
  • 50/50 use of apps and mobile web (p33)
  • 85% of people use less than 10 apps a week (p57)
  • Top apps are Map/Navigation, games, news, social, photo/video (p59)
  • 50% of smartphone users also have or are considering a tablet (p71)
  • Apple has 77% market share for tablets (p73), but Samsung and Acer ramping up
  • Greater use of mobile websites on tablets (as opposed to apps) (p79)

And obviously there are plenty of other very interesting data! Plus guess what … IT’S FREE FOR ALL! So just get it now 🙂

Cookbook: HTML5 for creative directors

HTML5 for creative directorsJohn Allsop from Wedirections has just published an interesting short 30 pages book about HTML5, to help an audience of creative professionals understanding what sort of new features and capabilities they can leverage for their projects and customers.

“HTML5 for Creatives takes a high level, yet in depth, look at the capabilities, use cases, strengths and limitations of the whole suite of related technologies that are broadly referred to as “HTML5”. It’s written specifically for people who make decisions about the use of technologies, particularly in the creative industries, (but it’s more than a little relevant for other industries as well) rather than for developers and implementors. We keep it high level, so there’s no code to worry about, but we’ll also delve into these technologies in some detail.”

The PDF is available for free, and is certainly worth having more than a close look at. It tackles and kicks out a number of urban legends and preconceived ideas with both honesty and clarity. However, consider it for what it is, an introduction to a complex topic, good enough for awareness but insufficient to jump into a real life project. Some chapters are very promising yet frustratingly embryonic (such as “Device APIs”). The take on Native Apps vs/with HTML5 (hybrid apps) sounds reasonable to me, although the discussion already starts being a bit outdated according to me.

A good download anyway! Thanks John.

http://www.webdirections.org/blog/html5-for-creatives/

Lessons from Breaking Dev 2012

Breaking DevelopmentReblogged from LukeW

In his “Beyond Mobile, Beyond Web” talk at Breaking Development in Dallas, TX Scott Jenson talked about native apps, the Web, the future of mobile, and the role of just in time interactions in the Internet of things.

“Native applications are a remnant of the Jurassic period of computer history. We will look back on the next 10 years as the time we finally grew out of our desktop mindset and started down the path of writing apps for an infinite number of platforms. As the cost of computation and connectivity plummets, manufacturers are going to put ‘interactivity’ into every device. Some of this will be trivial: my power adaptor knows it’s charging history. Some of it will be control related: my television will be grand central for my smart home. But at it’s heart, we’ll be swimming in world where every device will have ‘an app’. What will it take for us to get here, what technologies will it take to make this happen? The principles of the open web must apply not only to protocols but to hardware as well. How can we build a ‘DNS for hardware’ so the menagerie of devices has a chance for working together?”

You can read LukeW’s insightful notes on this talk here.

Another summary of what went on and was said lately at GigaOM Mobilize 2012, courtesy of Kevin Tofel.

Gigaom

A long, early Saturday flight home highlighted the end of our Mobilize 2012 event, giving me plenty of time to digest all of the salient points made by our speakers and panelists. Many of these spoke to not only the current state of mobile, but the future too. And that future is fast approaching as we’re watching improvements in mobile broadband networks, better software tools, smarter app discovery engines, and hardware cycles that are revving faster than ever.

Some of the more poignant thoughts from our Mobilize speakers exemplify this theme, so here are a few I thought worth sharing:

View original post 368 more words

Benefits of Server-Side Device Detection

ImageThere’s a great article on Smashing Magazine to help clarifying on this complex topic of device detection, and most importantly of device “capabilities” detection. Even very senior developers and designers often fail to adopt the right practices in leveraging device detection for responsive design or progressive enhancement. Quote:

“The expansion of the Web from the PC to devices such as mobile phones, tablets and TVs demands a new approach to publishing content. Your customers are now interacting with your website on countless different devices, whether you know it or not.

As we progress into this new age of the Web, a brand’s Web user experience on multiple devices is an increasingly important part of its interaction with customers. A good multi-device Web experience is fast becoming the new default. If your business has a Web presence, then you need fine-grained control over this experience and the ability to map your business requirements to the interactions that people have with your website.

Drawing on the work of people behind the leading solutions on the market, we’ll discuss a useful tool in one’s armory for addressing this problem: server-side device detection.”

I agree that the proper way to do it is to do it on both sides:

=> Server-side detection is fast and fairly reliable, it’s smart and scales for high traffic sites, and coupled with the right device database (Wurfl, Device Atlas, Netbiscuits) it allows unique server side content personalisation and UX optimisation.

=> Client-side detection is much more granular and accurate, and it allows UI/UX designers to get the best out of each target browser, especially regarding rich media. But it can be cumbersome and slower, as we have to deliver Javascript code payloads to be run from the device at loading time. Plus it’s likely to lack flexibility and integration with the Content Management Systems in most Enterprise scenarios.

In my own experience, what I gather from the market and from our customers is that server-side device detection is critical to unleash the full power of content and feature personalisation, in a progressive enhancement approach (as opposed to just responsive design maybe).

Read the full article here

More

The New Multi-Screen World according to Google

ImageGoogle just released a few weeks ago a very interesting survey report regarding the new internet and media consumption habits, shedding an interesting light on a new heavy trend: Multi-screening.

Today 90% of our media consumption occurs in front of a screen. This cross-platform behavior is quickly becoming the norm, and understanding it has become an imperative for businesses. Here are some insights from our latest research:

  • 90% of consumers begin a task on one device and then complete it on another device. Smartphones are by far the most common starting point for this sequential activity.
  • TV no longer commands our full attention. In a typical day 77% of viewers use another device while they are watching TV. Because of this, a business’s TV strategy should be closely aligned and integrated with the marketing strategies for digital devices.
  • While consumers are using more than one device simultaneously, content viewed on one device can trigger specific behavior on the other. Businesses should therefore not limit their conversion goals and calls to action to only the device where they were initially displayed.

Discover many more valuable multi-screen insights by downloading the full report here.