Monday, January 31, 2011

Absolutely wonderful news from NZ

I've been saying it for a long time, schools spend too much money on their IT infrastructure, and Albany Senior High School from northern Auckland proves it:

NZ school ditches Microsoft and goes totally open source - schools, New Zealand, Microsoft, linux.conf.au, Linux, open source, education - Open Source - Techworld

With wonderful solutions such as Userful and an entire eco-system of open source applications available to every major Linux distribution out there, there is no justification for schools to run on proprietary software.

Moreover, there is a popular, false argument:

Despite the dominance of Windows, teachers and students were largely receptive to using the software, Brennan said. The main area of objection was over the use of particular packages. "There's a perception that students should train with real-world products," Brennan said, but that was outweighed by the advantages of being able to give every student access to any software they needed, rather than having to restrict use because of limited licences, especially in specialist areas such as music.

Brennan is correct, but he should have gone further. The fallacious argument that learning to use one program effectively locks someone out of another, similar program might make sense to people who did not grow up with computers, but not to those who have been using them from a young age. However, as Brennan says, using open source makes computing resources available to all the children.

A child who uses LibreOffice at school will not take long to adjust to Microsoft Office, nor will a child who uses GIMP (GNU Image Manipulation Program) at school need more than a brief course to become accustomed to Photoshop, if he or she decides to get training in it after school. And besides all of these applications are getting better all the time, and more and more smaller businesses understand the overwhelming advantages of using open source software.

So not only does a child benefit from a generalist computer education with open source software, but it is most certainly feasible that having trained in LibreOffice, GIMP, Inkscape, etc. might actually be advantageous when it comes to getting a job. At the very least, having experience in the above is much better than having none at all on account of not being able to afford the licence fees.

Robot waiters: the end of customer service as we know it?

Many depictions of the future include robots performing jobs like waiting on tables and cleaning the streets. A group of students from Bangkok University in Thailand are using Linux to bring us one rude step closer to such a world.

Bangkok University Students Develop Waiter Robot

The question remains whether they might make the waiter robots too realistic and program them to get orders wrong sometimes and avoid eye contact with you when you want to change your order.

LXer: 6 of the Best Free Linux Point-of-Sale Software

Many businesses are already using Linux Point-of-Sale software. This list illustrates yet again that there are plenty of reasons to consider alternatives to Windows-based POS software:

LXer: 6 of the Best Free Linux Point-of-Sale Software

What do you think? What is your experience with POS software?

Saturday, January 29, 2011

How to use Weebly to create a brilliant eBay listing

If you've sold on eBay, you know that the easy, unrewarding way of describing your listing is by simply adding text:

Where, oh where, shall I begin?
Now, you could use professional templates or master the desktop software out there, and there's nothing wrong with that.  However, if you use Weebly, there is a way to make your listing look great, with just a little tweaking to get it just right.

You will need:

  1. A Weebly account
  2. An eBay account
  3. A browser that allows you to view the source code of a web page (e.g. Firefox)
  4. A text editor capable of finding and replacing search terms (e.g. gedit in Linux, Notepad in Windows)
First, create a page in Weebly and make it look beautiful:

Don't you want to read more?
Next, publish your page.


Now go to your published page,



And then jump into the source code.  Find the section that says:

And copy everything between and the end of the content:

Paste this code into a text editor, and follow this example:


Obviously, you need to substitute http://www.yourownurl.com

And there you go: now all you have to do is paste this text into the empty description box in eBay and you have a professional listing!






Why Gmail is my first and only choice

One of the first questions I ask when I meet a client is, "what do you use for email?" Usually it's Outlook, sometimes Hotmail, occasionally Gmail.

This article illustrates yet again why Gmail is my first, and only choice, even if you use a desktop client such as Outlook, or even better, Thunderbird.

How To Quickly Find Messages With Attachments In Gmail

Gmail is incredibly powerful webmail and thanks to Google's generous inbox allotment you never really need to delete your emails unless you really want to.

I will write a separate post soon listing the main reasons why you should strongly consider making Gmail part of your email setup.

I love Google Command Line (googlecl)

Here's how to add a year's worth of networking events to Google Calendar in one fell swoop in Linux:

1) Open your terminal (ctrl+alt+T in Ubuntu)

cd ~/Documents/bin #where I keep shell scripts
gedit networking2011.sh

[Now enter your input using Google Calendar's Quick Add syntax]

  • start with #!/bin/bash
  • For ease of reference put the location as commented header
  • add --verbose to see the magic happening when you execute the file
  • Below is my schedule as an example:

#!/bin/bash



#Maroondah


google calendar add "Your Business Online workshop at Council Offices 304A Maroondah Highway, Ringwood 2011-05-25 09:00-14:00" --verbose
google calendar add "TRAVEL to Council Offices 304A Maroondah Highway, Ringwood 2011-03 08:00-09:00" --verbose


#Kingston


google calendar add "Starting Your Business workshop at Kingston City Council 1230 Nepean Highway, Cheltenham 2011-02-23 12:30-17:30" --verbose
google calendar add "TRAVEL to Kingston City Council 1230 Nepean Highway, Cheltenham 11:30-12:30" --verbose


google calendar add "Your Business Online at Kingston City Council 1230 Nepean Highway, Cheltenham 2011-08-10 17:30-22:30" --verbose
google calendar add "TRAVEL to Kingston City Council 1230 Nepean Highway, Cheltenham 2011-08-10 16:00-17:00" --verbose


google calendar add "Marketing For Growth workshop at Kingston City Council 1230 Nepean Highway, Cheltenham 2011-08-24 16:30-21:30" --verbose
google calendar add "TRAVEL to Kingston City Council 1230 Nepean Highway, Cheltenham 2011-08-24 15:30-16:30" --verbose


#Richmond


google calendar add "Climbing The Mountain To Business Growth at Richmond Town Hall, 333 Bridge Road, Richmond 2011-03-30 17:30-21:00" --verbose
google calendar add "TRAVEL to Richmond Town Hall, 333 Bridge Road, Richmond 2011-03-30 16:30-17:30" --verbose


google calendar add "Business Planning Basics Seminar at Richmond Town Hall 333 Bridge Road, Richmond 2011-03-16 17:30-21:00" --verbose
google calendar add "TRAVEL to 333 Bridge Road, Richmond 2011-03-16 16:30-17:30" --verbose


#Melbourne


google calendar add "Business Planning Basics seminar at Small Business Information Centre 113 Exhibition Street, Melbourne 2011-02-23 17:15-20:30" --verbose
google calendar add "TRAVEL to Small Business Information Centre 113 Exhibition Street, Melbourne 2011-02-23 16:15-17:15" --verbose


google calendar add "Skills For Growth at Southern Cross Building Level 27, 121 Exhibition Street, Melbourne 2011-03-07 09:30-15:00" --verbose
google calendar add "TRAVEL to Southern Cross Building Level 27, 121 Exhibition Street, Melbourne 2011-03-07 08:30-09:30" --verbose


#Knox
google calendar add "Networking Seminar at Knox City Council 511 Burwood Highway, Wantirna South 2011-07-20 17:30-21:00" --verbose
google calendar add "TRAVEL to Knox City Council 511 Burwood Highway, Wantirna South 2011-07-20 16:00-17:30" --verbose


#Malvern


google calendar add "Your Business Online workshop at Malvern Town Hall 1251 High Street, Malvern 2011-05-31 17:30-22:30" --verbose
google calendar add "TRAVEL to Malvern Town Hall 1251 High Street, Malvern 2011-05-31 16:30-17:30" --verbose


google calendar add "Networking Seminar at Malvern Town Hall 1251 High Street, Malvern 2011-08-18 17:30-22:30" --verbose
google calendar add "TRAVEL to Malvern Town Hall 1251 High Street, Malvern 2011-08-18 16:30-17:30" --verbose


#St Kilda


google calendar add "Green Your Business, Grow Your Business seminar at St Kilda Town Hall 2011-03-23 17:30-21:00" --verbose
google calendar add "TRAVEL to St Kilda Town Hall 2011-03-23 16:30-17:30" --verbose


#Brunswick


google calendar add "Building Successful Brands Learning Lunch at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-02-09 11:30-14:30" --verbose
google calendar add "TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-02-09 10:30-11:30" --verbose


google calendar add "Greening Your Business Learning Lunch at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-03-09 11:30-14:30" --verbose
google calendar add "TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-03-09 10:30-11:30" --verbose


google calendar add "'Selling Online Made Easy' Seminar at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-03-23 09:30-13:30" --verbose
google calendar add "TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-03-23 08:30-09:30" --verbose


google calendar add "Introduction to E-Business Seminar at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-02-23 09:30-13:30" --verbose
google calendar add "TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-02-23 08:30-09:30" --verbose


google calendar add "Introduction to E-Business Seminar at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-05-28 09:30-13:30" --verbose
google calendar add "TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-05-28 08:30-09:30" --verbose


Now your file is almost ready.  Back to the terminal:

chmod +x events2011.sh
./events2011.sh

And there you go.  That's it.

Here's how it turned out for me:

clockworkpc@dell-inspiron-1564:~/Documents/bin/google$ ./events20110128.sh

Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Your Business Online workshop at Council Offices 304A Maroondah Highway, Ringwood 2011-05-25 09:00-14:00']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Your 0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Council Offices 304A Maroondah Highway, Ringwood 2011-03 08:00-09:00']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Starting Your Business workshop at Kingston City Council 1230 Nepean Highway, Cheltenham 2011-02-23 12:30-17:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Start0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Kingston City Council 1230 Nepean Highway, Cheltenham 11:30-12:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Your Business Online at Kingston City Council 1230 Nepean Highway, Cheltenham 2011-08-10 17:30-22:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Your 0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Kingston City Council 1230 Nepean Highway, Cheltenham 2011-08-10 16:00-17:00']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Marketing For Growth workshop at Kingston City Council 1230 Nepean Highway, Cheltenham 2011-08-24 16:30-21:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Marke0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Kingston City Council 1230 Nepean Highway, Cheltenham 2011-08-24 15:30-16:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Climbing The Mountain To Business Growth at Richmond Town Hall, 333 Bridge Road, Richmond 2011-03-30 17:30-21:00']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Climb0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Richmond Town Hall, 333 Bridge Road, Richmond 2011-03-30 16:30-17:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Business Planning Basics Seminar at Richmond Town Hall 333 Bridge Road, Richmond 2011-03-16 17:30-21:00']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Busin0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to 333 Bridge Road, Richmond 2011-03-16 16:30-17:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Business Planning Basics seminar at Small Business Information Centre 113 Exhibition Street, Melbourne 2011-02-23 17:15-20:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Busin0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Small Business Information Centre 113 Exhibition Street, Melbourne 2011-02-23 16:15-17:15']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Skills For Growth at Southern Cross Building Level 27, 121 Exhibition Street, Melbourne 2011-03-07 09:30-15:00']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Skill0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Southern Cross Building Level 27, 121 Exhibition Street, Melbourne 2011-03-07 08:30-09:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Networking Seminar at Knox City Council 511 Burwood Highway, Wantirna South 2011-07-20 17:30-21:00']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Netwo0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Knox City Council 511 Burwood Highway, Wantirna South 2011-07-20 16:00-17:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Your Business Online workshop at Malvern Town Hall 1251 High Street, Malvern 2011-05-31 17:30-22:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Your 0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Malvern Town Hall 1251 High Street, Malvern 2011-05-31 16:30-17:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Networking Seminar at Malvern Town Hall 1251 High Street, Malvern 2011-08-18 17:30-22:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Netwo0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Malvern Town Hall 1251 High Street, Malvern 2011-08-18 16:30-17:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Green Your Business, Grow Your Business seminar at St Kilda Town Hall 2011-03-23 17:30-21:00']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Green0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to St Kilda Town Hall 2011-03-23 16:30-17:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Building Successful Brands Learning Lunch at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-02-09 11:30-14:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Build0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-02-09 10:30-11:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Greening Your Business Learning Lunch at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-03-09 11:30-14:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Green0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-03-09 10:30-11:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u"'Selling Online Made Easy' Seminar at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-03-23 09:30-13:30"]
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-'Sell0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-03-23 08:30-09:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Introduction to E-Business Seminar at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-02-23 09:30-13:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Intro0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-02-23 08:30-09:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'Introduction to E-Business Seminar at Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-05-28 09:30-13:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-Intro0, status: 201, reason: Created
Gdata will be imported from /usr/lib/pymodules/python2.6/gdata/__init__.pyc
Your pythonpath: None
Initialized googlecl.service.BaseServiceCL
missing_reqs: ['src']
Option convert: True
Option delimiter: ,
Option hostid: clockworkpc@dell-inspiron-1564
Option src: [u'TRAVEL to Brunswick Business Incubator, 420 Victoria Street, Brunswick 2011-05-28 08:30-09:30']
Option user: alexandergarber
Option verbose: True
args: []
Loaded token from file
Successfully set token
ID: insert-TRAVE0, status: 201, reason: Created

Friday, January 28, 2011

thinkMoult - The kde-www war: part 2

This is an informative, thought-provoking discussion of the problems facing kde.org and it is relevant to anyone who is interested in web design, particularly in business.

thinkMoult - The kde-www war: part 2

26 Tricks to Help You Tame Google Calendar - PCWorld

This is a great article on getting the most out of Google Calendar, which is excellent, especially if you want to enjoy the benefits of cloud computing and synchronised devices.

26 Tricks to Help You Tame Google Calendar - PCWorld

On switching to GNU/Linux and free open source software.

This is a good article to start a conversation on migrating to Linux from Windows.

Switching to Desktop Linux? 6 Ways to Ease the Migration - PCWorld Business Center

It also raises the broader question of whether you should switch to Linux.

This in itself is a useful question, because it involves assessing how well your current IT systems serve your needs. Be it your choice of software, your operating system on your desktop or laptop, or your entire IT infrastructure, weighing up the costs and benefits of switching to free and open source software, long and term and short, is a good idea in any business.

iTWire - LCA 2011: How to catch FOSS infringers out

As Linux becomes more and more widely utilised, those who care about free and open source software should make themselves aware that some companies use free source code without making this fact public.

iTWire - LCA 2011: How to catch FOSS infringers out

An example of this was Telstra's use of GPL-licensed source code in its T-Hub devices, which it took an engineer to discover off his own bat.


Telstra caught in copyright wrangle

Tiny Linux Plug Computers: Wall Wart Linux Servers - Choosing the Right One - Tutorials - LinuxPlanet

This looks like a great idea for anyone who wants a home server!

Tiny Linux Plug Computers: Wall Wart Linux Servers - Choosing the Right One - Tutorials - LinuxPlanet

Application Whitelisting Product Available for Mac and Linux Users Through Channel: ChannelPro-SMB

Application Whitelisting Product Available for Mac and Linux Users Through Channel: ChannelPro-SMB: "CoreTrace, a cross-platform application whitelisting provider, is offering an enterprise-ready application whitelisting product for Mac and Linux endpoints. The company's Bouncer 6 provides application whitelisting's three key benefits — advanced threat prevention, configuration control, and application intelligence — on Windows, Mac, and Linux."

How to Be More Productive in Ubuntu Using Keyboard Shortcuts - How-To Geek

This article gives a gentle introduction to using keyboard shortcuts in Ubuntu.

How to Be More Productive in Ubuntu Using Keyboard Shortcuts - How-To Geek

To put it bluntly, if you master keyboard shortcuts you will master your computer. It is true that for the most part you can do things with a mouse, but until an input device becomes available that can beat the speed of reflexive keyboard shortcuts (e.g. telepathic input), there's nothing better, easier, or faster than good old fashioned combinations like ctrl+c, ctrl+v, and ctrl+x.

How to Use Linux Commands in Windows with Cygwin - How-To Geek

This might make working on a Windows machine a little less painful.

How to Use Linux Commands in Windows with Cygwin - How-To Geek

It's a program called Cygwin, and it allows you to use a *nix-like terminal in Windows.

Tuesday, January 25, 2011

How to provide computing access to 10 users with one computer

If you are looking for a way to provide a fully fledged desktop PC to many users at the same time, but don't have the budged for a fleet of computers, this is a brilliant solution:



To find out how Clockwork PC can help to provide such a solution for you, feel free to get in touch with us.

Check list of items to back up before deleting windows or formatting your hard drive

Sometimes the only way of getting your computer to run as smoothly as it used to is to format the hard drive.  When you do so, it is important to back up all of the data that you use:

Documents
Downloads
Music
Pictures
Videos
Bookmarks (Favorites in Internet Explorer)

Anything else?

Also, if you use proprietary, licensed software such as Microsoft Office, you'll have to have your activation code ready when you re-install it.

Sunday, January 23, 2011

How Can I Make This Script Better?

The following script fetches all the comic strips that are available from the Bizarre Cathedral to date.
It is a very crude script:

1) I had to copy and paste the wget command 90 times
2) It won't fetch anything newer than comic strip #91
3) Every strip is called strip.jpg
4) The scripts saves each instance of strip.jpg into its own folder, i.e. /www.freesoftware.magazine.com/files/www.freesoftware.magazine.com/nodes/[4 digit number]/strip.jpg

How would you rewrite this script so that it does the following?

1) Fetch all of the comic strips with one line
2) Fetch everything from the very first to then newest
3) Save all the comic strips into one folder
4) Stamp each one with the number of the folder that it sits in on the website
5) Exclude any strip that has already been downloaded

THE SCRIPT:

#!/bin/bash

cd /media/DATA/Websites

wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_1
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_2
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_3
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_4
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_5
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_6
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_7
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_8
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_9
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_10
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_11
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_12
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_13
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_14
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_15
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_16
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_17
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_18
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_19
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_20
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_21
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_22
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_23
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_24
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_25
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_26
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_27
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_28
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_29
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_30
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_31
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_32
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_33
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_34
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_35
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_36
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_37
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_38
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_39
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_40
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_41
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_42
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_43
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_44
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_45
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_46
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_47
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_48
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_49
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_50
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_51
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_52
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_53
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_54
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_55
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_56
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_57
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_58
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_59
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_60
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_61
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_62
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_63
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_64
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_65
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_66
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_67
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_68
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_69
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_70
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_71
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_72
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_73
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_74
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_75
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_76
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_77
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_78
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_79
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_80
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_81
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_82
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_83
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_84
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_85
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_86
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_87
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_88
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_89
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_90
wget -A "strip*" -r -l 3 http://www.freesoftwaremagazine.com/columns/bizarre_cathedral_91

exit