February 13, 2012
Help to get online in Melksham
Here's one for your friends or relatives (or the people next door) who are not yet online. Specific help in the Melksham area!
Wiltshire Online is Wiltshire's program to get you online, and from 20th February for a period of six weeks, Melksham is going to be a pilot area to help people get online. If you're not a yet a user of the Internet, volunteer "Digital Champions" will help you to get online, to learn how to use the internet, to learn if it's something you want to do permanently, and to help you do so.
The program is run out of Wiltshire's Professional Development Centre at 3, Lancaster Park, although Digital Champions will probably meet you at a public access computer location such as the Library or Well House Manor. The program's also concerned with those who may be unable to get out, and these days with "mobile Internet:, a digital champion should be able to visit you if appropriate. Contact number - 01225 898464.
Did you know ...
* Over 8 million people in the UK are not online
* The biggest thing holding people back is the lack of internet access
* You can send emails from one computer and read replies on another
* There are pubicly available internet facilities in Melksham
P.S. The Wiltshire online website is at http://www.wiltshireonline.org ... that information is included for completeness as this article is really intended for people who are not yet online!
Posted by gje at 10:40 AM
| Comments (0)
More about Graham Ellis of Well House Consultants
Related topics: via article database
A customer thanks Well House Manor
"Thank you" means so much. And this floral display - a "thank you" gift from one of our customers who's an expert at making such things means so much to us at Well House Manor. It's proudly in display in reception, and it's a credit to the whole team who's looked after this particular customer.
This is the quieter time of year in the hotel business - although we're fully booked tonight and tomorrow night, we do have room availability later this week and beyond, and would love you to try us out. Our main site is at www.wellhousemanor.co.uk which includes an up to date availability chart, and a booking link.
P.S. - we're in Melksham, Wilshire
Posted by gje at 08:17 AM
| Comments (0)
Related topics: via article database
Training to do a job, or training to pass an exam?
Are 46%, 47%, 48% or 49% of visitors to "UK Online Centres" aged 55 or older? I'm told that the answer is 48%. But what a stupid question to put into a test to see if I know enough to be a "Digital Champion" to help people who are not (yet) online get online. Whatever the answer is, it's not going to make any difference to how I help teach / instruct. In fact, it's a classic example that tests to see if someone's been following a course rather than to assess their suitability to perform a certain role when they have completed the course.
One of the big differences between a commercial course such as the ones we offer at Well House Consultants and a college course is that we train you to do a job, and they train you to pass an exam. Neither is necessarily better than the other - they're different. If you're a company / looking for training "in post" / a contractor with a particular job to do, our approach is probably better. But if you're a student / job seeker looking for credentials to help you get a job and wishing to learn a regulated topic (such as Java, where you can become a "Java Certified Programmer"), then the training to pass an exam is probably the most effective use of your time and money.
P.S. The percantage of visitors aged 55 and more to a "UK Online Centre" may be 48%. Is that figure since the centres opened, or over the last three months or six months? I'll bet the figure changes a little up and down over time, and that at some point every answer that was offered was correct!
Posted by gje at 08:01 AM
| Comments (0)
Related topics: via article database
February 12, 2012
How do classes relate to each other? Associated Classes
How do classes relate to each other? Associated Classes ... or ... define: Associated classes, parent classes, superclasses, subclasses, base classes, abstract classes, interfaces and mixins.
Associated classes are the odd ones out here. They're classes that are used within other classes.
Let me give you an example, from the Object Oriented PHP course I gave on Friday. We defined a class called visit, in which each instance contained an array of access objects (as well as some other data). One or more accesses make up a visit, and so every visit object must contain access objects, but that's not in the same way that properties and methods are inherited - a term which applies to all the other terms that I used above.
Let's look at all the other terms, and let's do so by example.
I define a class called pubtrans which contains information about a public transport offering. However, whilst publid transport by one more or another is more or less the same, there are differences in the code logic needed. So I call my pubtrans class a parent class and I then provide extra (extended) logic to define a subclass for a train, and I also provide extra logic to define another subclass for a bus.
The parent class is sometimes referred to as the superclass, and you'll also find the term base class used to refer to the class on which another is based.
A class is referred to as an abstract class if you won't be creating (constructing) members directly. Taking our pubtrans as an example, that's likely to be an abstract class - every piece of public transport is some subtype of public transport be it a train, a bus, a ferry or a pogo stick. In an abstart class definition, you can usually include a requirement that each subclass must implement a particular method, thus ensuring that all the objects in this object tree are polymorphic.
An interface is a definition of a number of methods that must be defined in a class which implements it. It's rather like an abstract class which is so abstract that it contains no code at all. The advantage of an interface is that classes can implement multiple interfaces, this giving you something which approaches multiple inheritance in a language which only supports single inheritance such as Java.
Finally, a mixin is code / methods which are shared between a number of classes by being "mixed in" or added to them. They're currently used in Ruby and Python (of the langauges that we train on) and will be present in PHP 5.4 onwards where they will be part of traits and offer a wider selection of operatons such as aliasing and exclusion and will as mixingin.
Posted by gje at 03:49 PM
| Comments (0)
Related topics: via article database
Design Patterns - what are they? Why use them?
Object orientation provides a wonderful bag of components, but they need to be linked together to provide a full set of facilities for data handling. And very often that linking together is in a way which can be standardised - along the lines of "you normally do it this way". Such standardised methodologies are known as Design Patterns
When teaching Object Orientation, we go through the mechanisms of the language, and application design (see "Designing your applications using UML techniques"). And I cover a little - a very little - about design patterns. Delegates need to be aware of them, but a course that included a deep study of design methodology and patterns would be extended from what we currently offer by at least a day, with delegates who are converting from another OO language finding that the extra time was mostly revision.
However, last week's PHP Course ran quickly - bright delegates, all starting with more experience that our stated prerequisites, and in the training room 30 from 30 minutes before class officially started each morning. So we got on to the mechanisms of OO programming in PHP on the final afternoon of the main course, rather than starting it in the official way on the Friday morning. Which gave me time to talk about UML techniques in more detail, and to add in some more coverage of Design Patterns than is usual.
In a new source code example ([here]), you'll find a number of design patterns in use - some being commonly accepted / named ones, others which are our / my own patterns.
There's a factory pattern which takes raw data and creates an object from it. A factory differs from a constructor in that it often has to do preliminary work on the data, and indeed it can return objects of different types depending on the data actually passed in, and indeed it can return an array / list / hash / dictionary of objects. A factory method is a static method, provided within a class to place the logic of interpretting the incoming data source into objects, even prior to the creation of any objects.
There's a comparator pattern, which compares two objects. Static (class) methods can work on the data for all objects in a class, dynamic (object) methods work on a single object. Yet so often you want to compare two objects. Which is the larger? Which is the older? And that's where you'll use a comparator design pattern.
As an extension of the comparator, we often use a standard (static) pattern to find the largest or oldest - no formal name for this one, but you'll find an example called "longest" in the source example.
We've also got an example of a very simple getter pattern to retreive a property, but this particular example didn't use some of the other common design patterns such as setter and singleton. That's fairly typical - you'll use design patterns for the standard stuff, and then your own (or modified) code beyond that to add the functionallity that's unique to your data and the application thereof.
I spoke earlier about the decision we've had to take at Well House Consultants as to how far we go along teaching design methodologies and design patterns in our programming language courses. I believe we have the mix about right for most delegates who come on public courses. But if you're looking to learn about object orientation in Perl, PHP, Python, Ruby or C++, and would like an extra day or two covering the topics I describle in this article, please ask. We can usually (diary permitting) add an extra day onto the end of our courses to cover the subjects. Typically, it will be a private course - and we'll only charge you as if it was another day on the public course. A bargain way to learn about designing your application, and learn about it in the language that you'll be using!
Posted by gje at 09:47 AM
| Comments (0)
Related topics: via article database
February 11, 2012
Designing your application - using UML techniques
When you're planning to write an application, you shouldn't just start writing code - you should think about what you're going to do and plan ahead. But how do you plan ahead? How do you ensure that you've thought of things from various angles?
UML (Unified Modelling Language) is a way of drawing (modelling) a system through a series of diagrams of different types - there are 7 basic types - and there are various software packages that can help you. But to go the whole hog and use them all on a small system is overkill, and on courses I often suggest to delegates it's far more practical to think things through and to know that you could draw the diagrams, rather than to draw them all with all the formally designated shapes and symbols. For an application I specified and started to write yesterday, I drew some example diagrams, which I'll share with you here.
The application requirement is to analyse a day's web server log files and extract information from them about the types and lengths of visits (a typically woolly or fluffy initial spec). Let's draw some diagrams ...
The Use Case diagram. "Where does the data come from, where does it go, and who provides it / who requires the answers". Where "who" is a job role, rather than an individual's name. The application that I started to write is indicated by the red arrow - taking the log files and provding a management / decision helping report.
The Object diagrams. For each of the data types (objects), we're defining what the contain - what other objects, how many of them, etc. In this example, we're defining a "visit" as containing one or more "requests". Each visit will contain one "browser" object and one "ip" object.
Class diagrams. Where data types have subclasses / other subsidiary types, you'll need to work out your interitance tree. In this example, website access requests within a visit are divided into "request" objects which are specifically requested by a visiting user, and "require" objects which are called up within a page by a request - that's accesses for things like style sheets and embedded images.
Sequence diagrams. When the application (or a part of it) is run, what actually happens? In this example diagram, a browser calls up a web server via the http protocol. The server application may call up an SQL database, or it may use data it already has (cached?) on the local disc and not use the database stage. This diagram helps you spot bottlenecks, and provides you with a route to finding what's happened if the application fails to run to completion.
The Deployement diagram. This shows you all the tools that you need, how you go from test and development system through to pre-production systems, the live system, and on to backups. It will include things like the source code control system that you use, and provide you with an indication of how you can roll back if some thing goes wrong, and an assurance that (if you follow the diagrams) that you really do have a backup of everything so that you can roll back.
State diagrams. For each type of object - what creates it, and what happens when it's finished with. And what happens in between. If calculations are done, is that as the object is set up, or as the results are needed? Are results cached? ... for more complex objects (such as sessions in a shopping cart), what's the page the object owner - shopper - is currently on?
Procedural diagrams. Also known as "flow charts" ;-) ... a diagram of the operation of each method. Procedural diagrams can be converted to actual code on some of the more sophisticated UML tools.
When you're learning Object Oriented Programming, you really need to learn the syntax and principles of the language elements, and also how to design to make best use of those elements. These diagrams - informally or formally - provide you help with the design.
There's a code example - a first (and incomplete) example showing code to support some of the diagrams above [here] from yesterday's Object Oriented Programming in PHP course.
Posted by gje at 10:18 AM
| Comments (0)
Related topics: via article database
February 10, 2012
Gypsy and Billy enjoy the snow
I know my feet would get cold - so we careful about taking the dogs out for too long in the snow. Yet on our brief walk this morning, they really let off steam.
The field that backs onto the Spa houses is enjoyed by many dog walkers. It was quiet at 07:30, but tracks in the snow showed us that we were far from the first.
That's Gypsy
and that's Billy!
Posted by gje at 05:51 PM
| Comments (0)
Related topics: via article database
Snow comes to Melksham, Wiltshire - pictures
Last night, I travelled home from Uni (City University, Islington) late in the evening ...
Even in London, some snow was settling
Chippenham Station at Mindinght-10 ... a delayed 22:15 from Paddington drops off passengers on a slippery platform
The station car park - vehicles of the stragglers, and perhaps of those who have decided to stay in town overnight
The A350 - the road to Melksham - as you don't usually see it
It's now daylight, and snow is still settled. A quick check reassures me that our team, even through the snow, made it to work on time and breakfast will already be served in a toast room at Well House Manor - our delegate, business and leisure guest hotel here in Melksham.
Posted by gje at 07:27 AM
| Comments (0)
Related topics: via article database
February 08, 2012
Melksham Campus - a blog you can read, and a place you can comment
I'm a member of the SCOB - the Shadow Campus Operations Board - and last night I attended a meeting to learn about the uses that are being made of current facilities, from their users, about their current concerns, and about what they would liek to see for the future. I can't possibly be knowledgable about everything - so I have to learn, and to help (with other members of the SCOB) gather views, requirements and desires, so that we can come up with something which best meets the needs of Melksham for future years.
This SCOB membership makes me intensely busy - we met in full last week and will do so again next week. I have a meeting on Saturday afternoon, another on Monday evening and that one I mentioned yesterday (Tuesday). And I'll be at a meeting with a SCOB element tonight too. It's been like this for a while, and will continue to be so. BUT questions like "What is the SCOB?" and statements like "Never heard of you" are all too common. And that's not really a surprise - after all, how do you reach everyone?
To make it far easier for people to find out what's going on, and for people to be able to make inputs, the SCOB is starting a website, in the format of a blog where all the SCOB members can post. Comments will be accepted - and indeed encouraged - to allow inputs from anyone, and we'll be providing "Open question" posts so that anyone can raise anything they wish. Of course, it's not "one size fits all". The website is at http://www.melkshamcampus-scob.org.uk/. There is already information being provided to users at some existing sites and to groups and individuals who are interested, the press is being informed (and we have excelllent local press in Melksham), and more will follow.
My answer to the person who said "Never heard of you" is "you have now" ... that's good. It's even better because we're able to start a conversation - we have a route through which we can reach you, and a route through which you can make comments and ask questions.
Posted by gje at 03:15 PM
| Comments (0)
Related topics: via article database
