Friday, September 4, 2015

First Look at Yahoo’s MySQL Performance Analyzer

When you deploy an app to production servers, you may experience some database problems as your data grows. Some tools can help you debug and solve your problems, like MysqlTuner, Percona, etc. In this article, we’re going to explore the Yahoo MySql performance analyzer and see what the main features are.

Vector illustration of gauge with pointer in the red, indicating speed

Installation

The analyzer uses SNMP when available, so it’s a good idea to have it installed on your database server.

Because this is a JAVA application, make sure you have JDK installed before proceeding. It requires version 8 to run, but version 7 is fine since it doesn’t use any of version 8’s features. You can read more in the readme file in the repo.

I have a demo application on my Vagrant box, and I will install the analyzer in the root of my application. Let’s start by logging into our machine using ssh and cloning the repository.

vagrant ssh
git clone git@github.com:yahoo/mysql_perf_analyzer.git myperf

To build the application, you need to run the mvn clean package command. After the build process is done, you’ll find a myperfserver-server.zip file under the perfJettyServer/target directory. Move that file to a new directory on your server and extract it. The resulting output contains start_myperf.sh and stop_myperf.sh scripts to manage the server. Let’s use the start script to launch the application. You can read more about the available options in the repo.

Managing Users

After starting the server, open your browser using your machine hostname and the specified port (vaprobash.dev:9092/myperf). You can log in with the default admin account (username: myperf, password: change).

Continue reading %First Look at Yahoo’s MySQL Performance Analyzer%


by Younes Rafie via SitePoint

Ultimate Comparison of Email Tracking Tools

  Once upon a time, clicking “Send” was the end of the line. There was nothing left for the emailer to do but sit back and wait around for a reply. Now, clicking “Send” is just the beginning. Over the past few years, the market for email tracking software has exploded, and for companies that […]

Continue reading %Ultimate Comparison of Email Tracking Tools%


by Joshua Kraus via SitePoint

Build an MP3 Player With AV Foundation

Getting Started with Programming the Intel Edison

After my brief introduction to the Intel Edison it’s time to get more familar with the platform’s software aspects.

I’m going to show how you can start to develop and deploy your ideas, how you can read/write from sensors/actuators and how you can communicate with the Cloud. Giving you what you need to start tinkering and hacking IoT devices.

Continue reading %Getting Started with Programming the Intel Edison%


by Michele Tameni via SitePoint

Tips for Creating Accessible eLearning Resources

Did you know that in France, people with a disability are given free admission to the famous art gallery, the Louvre.

While online content is rarely as mesmerising as the Mona Lisa, many government departments are now required to provide accessible online content to internal staff and the public.

But what does that really mean?

Accessible online content should be available and understandable to anyone—regardless of physical, visual, auditory or mental impairment, or language proficiency.

The reported percentages of users with disability only marginally differ across the globe. The Australian Bureau of Statistics (ABS) records that 1 in 5 people reported that they had a disability. In the USA this figure is 12.1 per cent, and in the UK almost 1 in 5 people (19%) have a disability.

Convert those percentages into people and we are talking about literally millions of users.

But how many of these disabilities affect your department's staff when using a computer to do a task like accounts receivable? Or how many people in your public audience need a screen reader to use a claims portal?

Even if the answer turned out to be one out of 10,000, that person has as much right as anyone else to learn how to use the software/services being offered.

While this article will be useful for developers, I particularly want to talk to the 'project stakeholders' – the people who drive these projects – about what to think about when contracting someone to design and build your eLearning course.

Firstly, What Do We Mean by 'eLearning'?

eLearning is simply the delivery of learning content on a computer/tablet/smartphone via a series of screens or ‘slides’— viewable at any time rather than scheduled in a classroom. Some eLearning has embedded short video clips (eg person speaking, or screen recording of an application), interactive activities such as entering words into sentences and can also include assessment like multiple choice quizzes that provide instant feedback.

Elearning app sketch

Organisations commonly use eLearning for training because it is available at any time and can be delivered to hundreds and thousands of people.

McDonalds till training

Many universities offer eLearning for some course units. eLearning can get funky too, with competitive game elements such as the Till Training Game designed for McDonalds employees (by City and Guilds Kineo).

The Cost of Accessible eLearning

Let's not dance around it: Accessible eLearning takes longer to design and develop and therefore costs more. The higher the accessibility level you seek, the more time and effort it is to achieve a 'pass'.

Invariably extra time will be required to:

  • run each page through an accessibility checker (such as the WAVE tool shown below)
  • test with a screen reader,
  • write effective transcripts for video,
  • write useful and detailed ALT attributes for charts and,
  • include file size descriptions for downloads.

Wave screenshot

While there is some level of automation available, to accurately test accessibility compliance, manual checking is mandatory. How much longer accessible eLearning design and development takes depends on your eLearning provider: experienced vendors will already well-established processes in place staffed with trained personnel already familiar with the success criteria and even perhaps reusable framework elements already designed for accessibility. This is a big advantage.

Converting non-accessible eLearning into accessible eLearning

Unfortunately there is no magic 'one-click' button for converting existing eLearning content into accessible eLearning content — especially if the original output is Flash-based (as is often the case).

The 'conversion' time depends on factors such as base code, level of interactivity, presence of audio and video. Sure, there are definitely some quick wins, like providing ALT attributes to images, but if you have five-minute long videos with audio and animation, you have some work to do.

There are many other potential access issues to consider. For instance:

  • Does the content rely on drag and drop interactions?
  • Is important and relevant content text embedded within images?

The truth is, often it may be more efficient to rebuild the course from the ground up using different eLearning authoring software and techniques than trying to retro-fit accessibility into older course materials.

Continue reading %Tips for Creating Accessible eLearning Resources%


by Adrienne Gross via SitePoint

Adapting RethinkDB For The Evented Web With Pusher

Pusher_rethinkDB_demo

RethinkDB recently released version 2.0, and here at Pusher we're all very excited about how creating real-time apps can now be even easier. Changefeeds, a feature introduced by RethinkDB a few versions ago, allows your system to listen to changes in your database. This new version has significantly improved, opening up interesting possibilities for real-time applications.

While RethinkDB covers listening to events on your server, there is still the issue of publishing these changes to your client, who can build anything from news feeds to data visualizations.

This is where a hosted message broker such as Pusher comes into play. By exposing RethinkDB changefeed changes as Pusher events, you can quickly achieve scalable last-mile delivery that instantly pushes database updates to the client. Not only that, but Pusher's evented publish-subscribe approach fits the logic of real-time applications:

  • Channels identify the data, whether that's a table in a database or, in the case of RethinkDB, a changefeed.
  • Events represent what's happening to the data: new data available, existing data being updated or data being deleted.

As an added bonus, real-time features can be rolled into production fast, in the knowledge that Pusher will scale to millions of concurrent devices and connections, removing the pain of managing your own real-time infrastructure.

To show you how this can be done, this post will guide you through how to create the type of activity streams found on the RethinkDB website. By creating a small Sinatra app, we'll quickly build the JSON feed and high-scores list you can see in our demo. Note that while we are using Ruby and Sinatra, one of the great things about RethinkDB's adapters is how similar they are across all languages. In other words, what we do here can easily be applied to the stack of your choice.

Continue reading %Adapting RethinkDB For The Evented Web With Pusher%


by Jamie Patel via SitePoint

Free Course: Easy Node.js Development Environment With Vagrant