Friday, 31 August 2012

About Web Content

If you are involved in any Internet activity, particularly for work or business, you may have come across the term "Web content". It may seem an odd expression and understandably baffles people. However, it is a key concept to understand if you are trying to make a success of an Internet business or other online project. In this article we will outline what Web content is, how it is produced and what people use it for.

Content Types

The Web presents many different types of content to the people browsing it. Content types include text, data and various media types such as images, video, audio and animation, not to mention interactive components. Most modern Web pages contain multiple types of content within them, since Web users have come to expect a stimulating, engaging and interactive experience when they visit a site.

If you are building a website, it is necessary to give careful consideration to the content you wish to include on each page. Striking a balance between having enough content and not too much can be tricky. Text content is arguably the most important in terms of success or failure. Successful text content for a website is relevant to the purpose of the site, provides useful material to the people visiting the site and is written to a high standard of quality.

For media content types, there are a number of additional considerations. For certain media items such as audio, video and animation, end-users may require particular software programs. This can naturally cause problems accessing those media items, particularly for users of certain device types and operating systems. It is also important to remember that many website users are now browsing on mobile devices such as smartphones, netbooks and tablet PCs. In these cases, there may be a low bandwidth and limited Internet connectivity generally. For this reason it is advisable to use media items such as images with the smallest file sizes you can achieve while still maintaining an acceptable level of quality.

Content Delivery

Websites use a variety of techniques for delivering their content to users. Most sites are now dynamic, which means that the content is stored in database systems and built into Web pages when users' browsers request them. This process involves server side scripting. Server side scripts run when users request pages, fetching data from the database and building it into the resulting pages before returning these to the browser, or client.

Dynamic techniques have also produced Content Management Systems for authoring and delivering content. A CMS system allows people who do not have Web development or programming skills to create and publish website content. CMS programs such as Joomla and Wordpress are behind many of the most successful sites on the Web, for retail businesses, online newspapers and magazines, social media sites and many more.

How is Content Used?

Of course the most obvious use of content is to convey information to website users, but there is a lot more to it than that. Some organisations also create text content to drive traffic to their sites, publishing the content on other sites such as blogs and including links back to their own Web properties from there.

Many people focus on attracting search engine traffic using Search Engine Optimisation (SEO) techniques to tailor the text content of a site. These techniques have a limited and reducing value, as the search engines are always improving their algorithms to present their users with the most relevant results first. The only genuine way to perform well in the Search Engine Results Pages (SERPs) is to focus on creating good quality, relevant content on your site.

At its essence, Web content is anything you see on a website. However, the surrounding issues are complex and making best use of content can have a huge impact on the outcome of any Internet project.

See also:

About Randomness

Randomness is a concept with relevance to many different fields and areas of life, from mathematics to computing science and the arts. There are actually lots of different definitions of randomness, for its uses in these different contexts. In this article we'll go over what it means for something to be random, as well as looking at the application of randomness in computer programming and the arts.

I started thinking about randomness when I was developing my Android Nonsense apps, see also this post: Using Randomness to Stimulate Creativity

What Is It Anyway?

In one sense, something being random means it being unpredictable. In another sense, it means having no discernible order. If some sequence of events appears not to conform to any sort of order, this implies that it has not been arrived at through a dedicated method. When something happens as a result of some process in which there is a purpose, this does not normally create random results. In some cases randomness is used in an intuitive sense, while in others it has a very specific objective definition. In mathematical contexts, random sequences are often referred to in conjunction with notions of probability and predictability.

Computer Programming

Randomness is a common topic in computer programming. Often, computer programmers use language utilities known as random number generators. These allow programs to generate a series of numbers with specific parameters, for example within a certain range or with a certain number type such as integer or floating point. Programmers use these for various tasks, some relating to underlying application logic, some relating to user interaction. For example, random functions can be used to present content items to application users in a way that creates a different user experience each time.

Although random number generators are common in computer programming, the numbers produced are not actually truly random. This is because it is impossible, by definition, for a computer program to generate a random series of numbers. In order for a series to be random, there can be no process or method used to generate it, but a computer can only generate numbers using a detailed, specific process. In brief, this means that if a series is generated by a computer, it is not random.

While not truly random, the random number generators used in computer programming are designed to create the appearance of randomness to the end user. For example, if you use a music player such as an MP3 player, you will be familiar with shuffle functions. With a shuffle function, the application uses a random number generator to choose songs from those available. There is in fact another obvious way in which these functions are not really random in addition to the fact that they are computer generated. This is that fact that most shuffle functions are designed not to repeat songs, but rather to play each available song once before playing any one a second time. Again, the randomness here is in appearance rather than strictly in reality.

The Arts

Another common area to experience randomness is in the arts, particularly in comedy contexts. Many people find randomness produces results that are funny, for example through gibberish, or nonsense speak in which people combine random combinations of words. Some computer programs combine this with the random number generation functions to generate random sentences for comic effect. Some songwriters also use randomness to come up with lyrics and song titles.

Randomness is also involved in art in a creative sense. Many people find randomness is a great way to stimulate them creatively. This can involve using computer programs again, for example to generate random words or pictures. The unpredictability of randomness produces surprising results that appear to stimulate the creative functions within the human brain.

Life


We experience randomness in many areas of life, from the weather to throwing a dice or shuffling a deck of cards. In many cases you see random sequences and are not aware of it, and in many more you see sequences that appear to be random but are in fact not. Whatever way you look at it, randomness is a part of life.

See also

Random Number Generators
Using Randomness to Stimulate Creativity

Android Widget Development

Android developers can create widget applications that users display and interact with on their device homescreens. Android widget development is a little different to standard Android application development. In this article we will run through some of the ways in which developing widget app differs from developing ordinary apps for the Android platform. If you are hoping to attempt Android widget development, it is recommended that you try creating a standard app first, before moving onto widget apps.

Differences Between Widget Apps and Standard Apps


Many aspects of application structure remain the same between Android widget apps and other apps. One of the main ways in which widgets differ is in how they are launched. Rather than the user launching the app by selecting it in their device menu or from a shortcut icon, with a widget application the user must add it to their device homescreen display. This is normally accomplished by long-pressing the homescreen and selecting the widget from a list. Widget applications are downloaded and installed using the same procedure as for other applications. Once a widget is on the user's screen, it will typically continue to run until the user removes it.

Some widget apps update with information from the Internet or from the system itself. For example, common widgets display information about the phone itself, such as the battery level, network connectivity and phone settings. Additionally, many widget apps retrieve data over the Internet, which is then displayed within the widget user interface. Many widgets are not interactive, simply displaying information within a graphical presentation. However, some can be configured by pressing the widget icon, then choosing settings. Such apps require a more advanced level of development than the ones that are not interactive.

Application Elements


In many ways the elements of a widget app are the same as those in other apps, with a few fundamental differences. With a widget, you don't need to implement a main Activity to launch when the app starts up. Instead, you extend "AppWidgetProvider" and provide methods specifying what should happen when your widget updates. The widget will be automatically updated at a period you specify within your application metadata. This comprises an XML file in your Resources directory. You also need to specify the widget class and metadata in your application Manifest XML. Within the XML metadata for a widget, you can also dictate the dimensions and other properties of your app.

Options

These are the main options in a widget app, but there are many other possibilities. For example, if you need your app to update at a greater frequency than what is allowed when declaring it in the XML resources, which is at most every 30 minutes, you can provide a class extending the "AlarmManager" class. You can optionally also register one or more of your app classes to receive system broadcasts. These are announcements that are available system-wide, often pertaining to information about phone state. Widget layouts are also subject to some restrictions. For example, you can only use certain layout types for an Android widget, including Frame, Linear and Relative layouts. Optionally, you can create an Activity which the Android system will run when your app starts up. This is commonly used to set configuration options for widgets.

Approaching Development


Although widget apps are developed and released using the same process as normal apps, the testing process is sometimes a little more complex. There is a significant limit to the value of testing certain widgets using an Android emulator, or virtual Android device. The most reliable approach is therefore to run these apps on real devices over a period of time in order to gain a true sense of how well they function. This is particularly the case for widgets that receive system broadcasts and other announcements, as these announcements are not entirely authentic on an emulator. For example, the battery level on the emulator by default stays at 50%, which is not very helpful if you are attempting to create a battery level widget.

Devices

As with any Android app, developers need to consider the increasing range of devices running the Android platform when constructing widgets. This is especially so for design matters. Sticking to designs that are relative and will adapt gracefully across different screen sizes is doubly important for widget applications, since they basically comprise visual displays of information. Again, thorough testing is essential to result in a widget app that will function reliably and therefore be a success.

See also:

Thursday, 30 August 2012

How To Get Started With Web Development

Anyone can teach themselves the skills involved in Web development, but if you're a beginner it can be difficult to know where to begin. In this article we'll go over the basic areas to get yourself acquainted with. Ideally, if you can work through each area in turn, getting yourself to a reasonable level of competence in each before moving on to the next, you'll build a solid foundation in the discipline that you can continue to grow over time. If you do not have much technical experience, try not to be intimidated by the number of technologies involved, just focus on one at a time and within a short period you'll be well on your way to being a competent Web developer.

HTML

The first area to get to grips with is HTML. HTML is known as a markup language. The content of most Web pages is structured within HTML markup. This markup consists of elements and attributes, with each content item in a page listed within one or more element structures.

The first step in creating any Web page is working out what the content is going to be, which may include text, images, media such as videos and interactive items. Once you decide on these content items and have them ready, you will structure them within HTML markup.

The HTML dictates the structure of a page, with each item listed within the body section, and information about the page listed in the head section. The head section gives the user's Web browser information it needs to display the page. To learn basic HTML, you should ideally cover: making a page, including text, links, images and HTML attributes. Once you have the basics of HTML mastered, you can look into other client side technologies.

CSS

Cascading Style Sheets determine the styling and appearance of Web pages, in conjunction with HTML code. CSS code for a page can appear along-side the HTML elements, in the page head section or in a separate file saved with ".css" as the extension.

CSS code can instruct the user's Web browser to display page items in particular ways. CSS dictates such display properties as text/ font style, colours, backgrounds, layouts, borders, margins and padding. The CSS declarations identify particular elements within a page by referring to the element type or using ID and class attributes included in the HTML markup.

The basic techniques involved in CSS are not complex, but the tricky part is testing your pages in different Web browsers, as your designs may appear with significant differences between them. Once you've learned basic HTML, learning the essentials of CSS is not difficult.

JavaScript

JavaScript is used to make Web pages dynamic and interactive. JavaScript code appears within the Web page HTML markup, either in the head or body section, or in a separate file saved with ".js" extension. Such scripts can respond to user interaction with a page, for example altering the appearance of a page element when the user hovers their mouse over it.

Writing JavaScript code is a fundamentally different activity to writing markup code. When you write JavaScript, you are effectively writing programs, with instructions for the Web browser to execute one after another. JavaScript areas to get yourself acquainted with for basic Web development include using logical structures such as loops and conditionals, variables, functions and event listeners. Try not to be too overwhelmed by learning JavaScript if you have no programming experience, as most websites only require small excerpts of code anyone can learn.

Server Side

So far we have focused on client side technologies, which are those technologies that operate in the user's Web browser (the client). Web development also involves technologies functioning on the Web server. These include database technologies and server side scripting.

Many websites store their data in databases in systems such as MySQL or XML data files, rather than coding the data directly into HTML files. In these sites, when the user's browser requests a Web page, a server side script runs on the server computer that is hosting the site. The script may carry out various processes, including querying a data source. The server side script takes the data it has retrieved and builds it into HTML structures, sending these to the user's browser to be rendered there are they would be with a standard HTML page.

If you want to continue learning Web development skills once you have a good grasp of client side development, you can try learning a server side scripting language such as PHP or ASP, as well as data technologies such as SQL and XML.

Conclusion

Web development involves many different skills, with new and emerging areas including HTML5, advanced JavaScript topics such as jQuery and mobile development. If you're new to the area this can all seem pretty intimidating, but in reality most of the technologies are accessible enough for you to teach yourself with the help of the many free Internet tutorials.

There are lots of websites for learning these skills, with W3Schools the main starting point for most people hoping to teach themselves. If you do want to get stuck into Web development, it's best to focus on one skill at a time and not worry too much about how fast your skills are progressing.

Links:

Evaluating IT Training

It's impossible to overstate the importance of performance measurement with training, and IT training can have an enormous impact on an organisation. If you're involved in Information Technology training, it's well worth taking the time to evaluate the success of your efforts, so that you can identify any areas for potential improvement and maximise on those areas that are proving to be most productive. If you are an employer, it is of course vital to check the relative success or failure of any IT training programmes you have engaged in for future reference.

IT training comes in many forms, from picking up skills on a day to day basis to formal courses with well defined learning outcomes. There are also a number of key aspects to consider when approaching evaluation of IT training, including both content and quality of the material in question.

Does the Material Cover Enough Ground?


It is naturally the case that an IT training experience is only successful if it covers the topic in question in enough detail and depth. If the course was accompanied by an outline of objectives, this is worth referring to. A questionnaire can be a useful tool in establishing success or failure in this regard. Trainees can be given such a questionnaire, which can be multiple choice or include areas for more detailed feedback. It's advisable not only to check that specific topic areas were covered by the training, but also to ask trainees if the topics were sufficiently explored and illuminated, rather than being glossed over.

Is the Material Produced to a High Standard?

A training experience may cover relevant material but still fail to equip trainees with adequate knowledge or skills. The quality of training content is therefore hugely important. This can include the quality of teaching materials such as written content or presentations, as well as the teaching quality itself where training staff are concerned. Trainees can be asked if they felt the material was effectively communicated to them, in a way that improved their practical skills.

Is the Material Relevant to the Job?


Any IT training course is surely aimed at giving trainees practical skills that will prove to be useful on the job. In some cases this is a difficult aspect to measure, particularly in cases where employees are not yet doing the job, but are undergoing training in preparation for it. For employees undergoing training for an existing job, this can be a useful checkpoint. This issue is particularly relevant to managers making decisions about purchasing IT training products. Employees are also in the best position to determine the accuracy of certain IT training processes.

Measurement Tools


The most basic tool for IT training evaluation is a simple questionnaire. In some cases trainees may also be interviewed for more detailed information. However, one activity that is often neglected is a practical evaluation. IT training is primarily about skills rather than knowledge. For this reason it can be extremely valuable to engage trainees in practical tests following their training. Ideally, this should involve trainees carrying out actual tasks that will be involved in their jobs. A typical example would be using a new software program to carry out a common task. There may also be some value in carrying out this and other evaluation processes after a delay in time following the training, to establish whether the skills have been gained on a long term basis.

Getting General Feedback

It's always worth taking the time to allow, and encourage, employees to suggest future improvements to a training programme. This can include suggestions of additional areas or tasks to include in the training. Successful IT training processes are a continuous dialogue between trainer and trainee, with iterative improvements over time resulting in higher levels of success into the future.

See also: