Author Archives: cearo

… no excuse …

Crawford Lake, ON, Canada

Crawford Lake, Ontario, Canada, 2013

… no excuse …

It’s been more than a year since my last post. In the world of blogging, that is an absolute no-no. As they say, there is no excuse for that. But you know that nevertheless I am going to give you some excuse anyhow. Or at least I am going to tell you what I have been up to.

First of all, let me say that my dalliances in the computer world over the last year included hardware as well as software.

On the hardware side of things, the first major new try out involved a ChromeBook notebook PC. The second new element was a Raspberry Pi 2. And the third new element was my first use of an SSD drive (other than the one in the ChromeBook, that is).

Software wise I dabbled in a lot of different things, with very mixed results. A lack of focus and an info overload meant that some of the directions I pursued were not further explored than getting to a fully functional install of a system, rather than actually developing in it.

One of the defining factors on the software side was that I was becoming a bit disenchanted with everything web development related.

Basically it was starting to look more and more as a mess to me. And that was at least half a year before I saw the articles essentially complaining about the same thing. That combined with my old and continued interest in OOP (Object Oriented Programming) led me to looking for a pure OOP software development system, which, contrary to web development, relied on one language system and was mostly self contained. So I had a look at one of the very first OOP systems: SmallTalk.

I also installed Simple Text as an editor. I have hardly used it, although I am writing this blog entry on it. The other thing I did with it, was testing it out guided by some pages in the ‘Coding with JavaScript for Dummies’ book.

On the ChromeBook I installed ‘crouton’, allowing me to run Linux on it. This worked amazingly well.

I also started exploring several JavaScript frameworks. This included installing things like Grunt, Bower, Yeoman, AngularJS and NodeJS. Managed to install these on several computers with different Linux distros, mostly Ubuntu variants. Again hardly used them.

Which brings me to the next item: choice of Linux distros and Linux window managers. If you are not familiar with Linux this must sound strange to you. So let me quickly first point out that contrary to Microsoft and Apple operating systems there are different Linux distros out there, and by that, I do not mean outdated together with new versions, but indeed a choice of distros which are all different, yet all up to date. And second even within the same distro you may have a choice of different but equally up to date window managers.

I have always been interested in using at least two different distibutions, one of which would be a full fledged distro with all kinds of software on it and a rather heavy weight desktop (i.e. KDE as part of Kubuntu). The other one following from attempts to find distro/desktop combinations which start out as lean as possible. The latter has not always been as easy as one would expect. Amongst others I worked for a while with CrunchBang Linux. It got discontinued, but might get a new lease of life as CrunchBang Plus Plus. I also use Xubuntu as a light weight system and have used Lubuntu too.

I mainly use Ubuntu supported versions, including Lubuntu, Xubuntu and Kubuntu, in either long term support versions or the latest versions. You don’t see Ubuntu itself mentioned here, because the Unity desktop Ubuntu comes with is aimed at all kinds of screens, including touch screens,tablets, phones, rather than specifically desktop screens as used typically in development systems. But Ubuntu like many main distros issue new versions on a regular basis (in Ubuntu’s case each April and October). While it is not impossible to upgrade in situ from a previous version, that may well take longer than a fresh install. Because of that I got intrigued by rolling release distros, once I heard about them. Actually, this blog entry is written running a rolling release distro. But it has not been a smooth ride getting going with a rolling release. I even combined the rolling release idea with the light weight system idea. As such I am writing this on a notebook PC running ArchBang Linux. Meanwhile I am also trying out at least two other rolling release distros, be it from within VirtualBox running on Xubuntu. Why? Well I realized I have been spoilt over the years by the Debian based package system (typical for Ubuntu and a lot of other Debian derived distros) and its many available package managers with graphical front ends. Most rolling releases I found were based on Arch Linux with its ‘pacman’ based management. Attempts to find another system not based on Arch have not been successful. Well maybe the one I am installing right now within VirtualBox may be a better choice. More about that in a more detailed blog specific to rolling distros?

There should be more than enough material based on what I have explained here, to come up with a few more posts, talking about the same issues in more detail. So as they say: ‘More to follow!’

Chris Rogiers for CeaRO Corporation, July 21st, 2015

Getting started with OS X and iOS7 development in XCode

Skyline of Toronto (Ontario, Canada), as seen from Toronto Islands

Toronto skyline – September 2013

Thanks to social media and the internet, it has become a lot easier to quickly reach people with a common interest. ‘Meet Up’ groups are a nice example of this. You literally get a choice out of hundreds of groups. Especially in the big cities and their surrounding suburbs the choice is plentiful.

I have been going for years to a ‘Meet Up’ group in Toronto (Ontario, Canada) which specializes in all things which combine high tech and creativity. This group started out as FITO, which stood for ‘Flash in Toronto’. Long before Apple made Adobe’s life difficult by not supporting Flash for its iOS mobile operating system, this group went way beyond Flash and as long as it was new, creative and computer based it was welcome. But the name did not really cover the load any longer. The declining interest in Flash itself over the last few years was actually a good excuse for changing the name to CreateInTO. And we have seen remarkable presentations, once a month, every fourth Wednesday. Among the most recent presentations we saw the Oculus Rift (a few weeks before FaceBook announced it was buying it) wearable 3D monitor system, the Bubl 360 degrees camera, an OpenFrameworks demo on Mac and Raspberry Pi. OS X and iOS actually are often the tools used, even if not necessarily the subjects of the presentations.

A few months ago somebody was trying to start up another Meet Up group in Mississauga (Ontario, Canada) for people interested in programming. From the start it was decided that this group would in the first place be looking at development for mobile, and be open to suggestions and people from all levels of expertise (including beginners) and backgrounds. In the first few meetings a choice was made to look into programming for iOS. But it became clear that the group would also cater to other systems and that members would freely help each other with whatever system somebody would need help with. To get our feet wet, so to speak, we decided that starting on our own trying to put a typical ‘Hello, World! ‘ program together was the way to go. Talking about iOS that means programming in Objective-C and with the Apple XCode IDE (integrated development environment) on an Apple Mac.

I was intrigued by the use of Objective-C and by the way this translated into graphical environments such as OS X and iOS. With Objective-C being based on the C language and the Apple systems being based on a framework from the mid eighties, brought back by Jobs from NextStep to Apple, I decided to make this first ‘text showing’ program (yes, I am sick and tired of ‘Hello, World!’) a test case. That is a test case for showing the progression from a terminal based C program, over an Objective-C based terminal program, towards a graphical based (GUI) program, first for OS X and then for iOS7. This shows the use of different code libraries and the use of GUI frameworks as provided by Apple. It shows clearly how much more code is involved in GUI programs. But it also demonstrates how much of the code is provided by Apple.

So I ended up with four examples, the first of which also included an introduction mentioning where it all comes from. It also is a good introduction in the use of XCode as a development environment. Apple makes XCode freely available to everyone who has a Mac computer. It consists of a set of tools which goes way beyond just a developer’s editor. Apart from the compiler and linker integration, there is also source version control Git, a profiler, a debugger and a graphical drag-and-drop editor for the visual aspects of the program. What is also very nice is the iOS simulator, with which you can see your program running on a simulated iPhone or iPad.

Because these examples are supposed to also show how they are put together in XCode, they contain numerous screen shots, detailing step by step the complete creation of the programs. I have included the guides for these examples in PDF format:

Intro and C in terminal on Mac:       BeginningProgramDevelopmentforOSXandiOS_Part_I

Objective-C in terminal on Mac:       BeginningProgramDevelopmentforOSXandiOS_Part_II

Objective-C graphical on Mac OS X: BeginningProgramDevelopmentforOSXandiOS_Part_III

Objective-C graphical on iOS:           BeginningProgramDevelopmentforOSXandiOS_Part_IV

Just one last note on Objective-C. It is not so that an Objective-C framework is only available in OS X and iOS. There is a system, called GNUstep, available on Microsoft Windows and on Linux too. Maybe that is a good subject for another post.

Chris Rogiers for CeaRO Corporation, April 18th, 2014

… operating systems galore …

Shadow image of a tree on fresh snow on a blue sky and sunny day

Shadows in the snow – March 2014

It’s been a while since I posted my previous post. Tax filing time, you know. And snow shoveling. Because here in Ontario, Canada, we have had our most brutal winter in 17 years.

But last week I came across an article and a remarkable operating system development.

You all know there is a system called Android. And surely you know that Android is a Linux operating system. All be it that it has not always been as open source as the real Linux advocates would have liked. That seems to have changed for the better though.

You may even have an Android device. That would be a mobile device, yes? And its processor would be ARM based. And although the iWhatevers are ARM based, you surely are not running Android on one of them.

Well guess what, you can run Android on a desktop or laptop running aan Intel or AMD processor, thanks to a remarkable project which now makes an ISO image available for doing exactly that.

Here are two links about this project:

http://www.android-x86.org/

http://sourceforge.net/projects/android-x86/?source=dlp

The first one takes you to the project page,
the second to the sourceforge.net page which allows you to download the ISO file containing the operating system.

No doubt you could burn this image file to CD (it’s only 294MB) and install it as the operating system on any Intel or AMD based computer. You could also install it as the second operating system as part of a dual boot system. It will install GRUB as a bootloader, which has quite a good reputation for dual boot systems. I have two dual boot systems (Kubuntu Linux and Microsoft Windows 7) which installed easily and run well with the Grub 2 bootloader.

But none of that is what I did with it.

I used VirtualBox instead. VirtualBox is a virtualization system freely made available by Oracle. Versions exist for Linux, Mac OS X, MS Windows and Solaris. What virtualization does, is allow you to simulate another separate computer from within the operating system you are running. The simulated computer ‘lives’ inside a single file which is what we refer to as a virtual disk. On that virtual machine you can install an operating system of your choice, either from a CD or DVD, but also directly from an ISO file image, such as the Android one we mentioned earlier.

And that is exactly what we did. We used one of the dual boot machines we mentioned earlier, started up in Kubuntu 13.10 Linux, ran VirtualBox, created a new machine in it and installed Android 4.4 in it from the downloaded android-x86-4.4-RC1.iso file. If you are familiar with development, you may realize because of the RC1 in the file name, that we are using a so called Release Candidate file. This means that this is not a finished version yet, but a trial version. However it worked quite well in our system. The only issue we had, was that in some cases when we used the mouse inside the virtual machine window we could not easily break out of that window with the mouse cursor again. It pays to experiment with VirtualBox to figure out mouse integration, USB integration… and how to set up a new virtual machine in general. And yes, you read that right, this Android does not require a touch screen, because you can use the mouse instead. And if you have a Google account you can use it to download and run software from the Google Play app store.

I have taken a snapshot of the Kubuntu screen in which you also see part of the VirtualBox screen and the window with Android open on top of it. All the app icons you see on this screenshot are indeed apps downloaded and installed from the Google app store.

FYI: In the VirtualBox window you can also see that there are two other virtual machines defined: Linux Mint 16 and Manjaro (misspelled with double o, sorry) Linux. Linux Mint is a Linux distribution developed as an alternative to Ubuntu, based on Ubuntu, but with the Unity window manager replaced by a choice between the Mate and the Cinnamon window managers. Both of these window managers stay closer to what people were used to from Gnome and some other window managers. Mint to some extent took over the leading position which Ubuntu held for so long before it switched to Unity. Manjaro is based on Arch Linux. What sets Arch apart from most other distros is the fact it has a rolling release distribution system. Which means that you do not need to install a new version every now and again, but that you can just keep up to date through regular updates of system files as well as program files. It is however not considered as the best choice for the faint of heart, because it does not have the graphical user friendly install program common to many other distros and is really in the first place a CLI (command line interface) system. Meaning that it does not include a window manager as part of the initial install. Manjaro is based on Arch, but has a graphical installer and installs a window manager. These are just examples. On another system I also have an MS Windows XP virtual machine. That is because I use two older scanners (a slide scanner and a handheld line scanner) for which I could not find Linux drivers. On the virtual machine I was able to install drivers and software from the original CDs which came with the devices. They work and the scan files are also accessible from the host operating system, Kubuntu 13.10.

Android 4.4 x86 in VirtualBox running in Kubuntu 13.10 on an AMD processor

Android 4.4 x86 in VirtualBox running in Kubuntu 13.10 on an AMD processor

 

Chris Rogiers for CeaRO Corporation, March 19th, 2014

FOSS … operating systems

ice covered berries

Icestorm – December 2013

Although FOSS advocates, we do use proprietary operating systems such as Microsoft and Apple operating systems for specific tasks (although for some of these tasks we could use FOSS) and most of all for testing our creations on different systems, even if they are developed entirely with FOSS tools. And for development we typically do use FOSS tools, including the operating system.

In our case we use Linux. To keep it simple, just like most people, we speak of Linux as an operating system, but it isn’t. It is a kernel (the core system) around which the operating system is built with all kinds of additional software. Linux (the operating system, not the kernel) also comes in different varieties, called distributions or distros for short. There are an amazing number of Linux distros out there. Amongst the best known are Debian, Ubuntu, Fedora, OpenSuse and Slackware. Often these come themselves in different varieties, such as desktop versus server varieties, but also often varieties based around different window managers. So it definitely is not a ‘one system fits all’, which it typically is with proprietary systems.

We use a few specific varieties of Ubuntu, according to the different characteristics of different pieces of hardware we use. We are aware that we could use any number of other distros just as effectively, but our familiarity with Ubuntu, and specifically with its package manager (Synaptic), has made us stick with Ubuntu. All be it not the main variety known as Ubuntu, with its Unity window manager. It would take us too far at this moment to explain this. But we would like to point out that this should not at all be interpreted as criticism on the Unity system. As a matter of fact we consider Ubuntu to have been ahead of the curve with Unity, in comparison with its proprietary competition when it comes to integrating smartphone, tablet, netbook, notebook and desktop computing. Development however is typically done on desktop computers, and big screens, and ‘touch’ doesn’t come into it.

A traditional desktop window manager based on KDE or older GNOME derivatives therefore is our preferred choice. Ubuntu officially supports such a version, called Kubuntu. On lower performing hardware, one might want to have a look at Xubuntu, or even Lubuntu. Also note that even on these versions running on older, lower spec equipment, you would still be running a kernel that dates back only a few months and with software which was updated, well, in Linux, that could well be today…

It may surprise you that beneath the surface there are quite a few similarities between the Apple Mac operating system and the Linux distros. The reason being that the Linux kernel was created to mimic the Unix operating system, and years ago Apple switched from its own system to one based on a version of Unix. This stems from Job’s short stint with a company called Next, which after limited success in hardware (NextCube), open sourced its NextStep operating system (Unix based). NextStep led to the new Apple OSX operating system. Of course depending on the window managers used by any given Linux distro, it may look more similar, or less, or even not at all like a Mac system. Some mimicked MS Windows systems, some even the old Amiga systems.

As a matter of fact there are also some Unix distros available for free use, such as FreeBSD and OpenBSD.

Point is, we have an abundance of choice, or what in French may be expressed as: l’embarras du choix’.

Chris Rogiers for CeaRO Corporation, January 16th, 2014

FOSS for developers … what is out there?

twig with ice covered berries

Icestorm – December 2013

There is all kinds of FOSS software out there. From operating systems all the way up to web server, mail server, instant message servers, cloud systems, social networking systems, blogging systems, database systems, graphical editing software, office suites, … You name it, and it probably exists as FOSS.

Not only does it exist as FOSS, but it may very well be freely available for different operating systems. This allows you to limit yourself to using free software on non-free operating systems.

In most cases this software will function identically in different operating systems, and certainly will be able to exchange its data files across different operating systems. There are two big advantages to this.

First, it allows people on different operating systems to use the same software and exchange their data amongst each other.

Secondly, it allows for people to gradually acquaint themselves with software before they switch to a free operating system, and when they do to immediately be productive and feel at ease. Typical examples for general use are OpenOffice and LibreOffice, and Eclipse and NetBeans for full blown integrated development environments.

This post is just a general introduction to what is out there as FOSS. Separate post will give more details about some of the software we use or at least know of.

Chris Rogiers for CeaRO Corporation, January 16th, 2014

FOSS…why use it?

ice covered berries

Icestorm – December 2013

Well we can think of a number of different reasons. We also do understand that for some people and their needs, FOSS may not provide all they need. Nor do I believe that FOSS software is per definition better or safer in use than proprietary software.

But for us there are and have always been enough good reasons to use FOSS software either on its own or in combination with proprietary software. But the reasons for it also have a lot to do with the fact that we are developers and experimentors.

So here are the reasons which come to mind and which apply to our preference for using mostly FOSS software:

        • price of course;
        • community based support;
        • open file formats;
        • ample choice;
        • mostly good enough for our needs;
        • no use impediments.

Price needs to be seen as more of a reason than just the purchase price for any given piece of software. As developers and experimentors, we like to fully try out all kinds of software before we commit to it. If we had to pay for the ones we keep using as well as for the ones we abandoned, we would end up really poor. We often try to use software on different systems. If we needed to buy separate licenses for each install… We often move from one system to another, or drastically update hardware. Proprietary software often takes a dim view of these practices. Small businesses do not need to buy additional licenses as they expand their workforce. Free lancers can choose the software most appropriate for a given project and then abandon it, moving on to their next project, using different tools and yet not spending more money. That is what I mean by no use impediments.

Chris Rogiers for CeaRO Corporation, January 16th, 2014

FOSS…what is it? Where does it come from?

ice covered tree branches

Icestorm – December 2013

Let’s get back to what I mentioned in our very first post: FOSS.

As said before it stands for free and open source software. And I am not going to talk here about the different licensing systems and how they refer to FOSS. I know there are a lot of different licenses in use, even for software which you are free to use, and often free to use for your own private, public or even commercial purposes. Examples are GPL2, GPL3, MIT, Apache, Mozilla…

The software may be written by a community of people who spend their time and efforts freely on a piece or system of software they are passionate about. Sometimes these communities are supported by commercial organizations. In which case the commercial organization may derive publicity, shared software in its commercial offerings or service and support contracts from it.

But it may also be the property of a commercial organization and written by their employees or bought by acquiring a company, which developed it or bought it or by buying out a community project . Examples of these are two IDEs (Integrated Development Environment): NetBeans (formerly owned by Sun, now by Oracle) and Eclipse (IBM) and the MySQL database (Sun, Oracle).

Sometimes when a piece of software moves from the community to a privately owned status, people loose confidence in the future of the product, but being open source, the original community group or a newly developing one may fork the software and further improve it and expand it. That is what happened with OpenOffice, which led to LibreOffice (office suites). MariaDB is considered the alternative to MySQL.

For us, developers, it does not necessarily matter where it comes from or where it is going. Somehow there always have sprouted up enough free alternatives, when needed. We have never been caught out by a file format which was no longer supported nor by not having access to files which are in proprietary formats.

Chris Rogiers for CeaRO Corporation, January 16th, 2014

Resources

Alton Mill, Caledon, ON, Canada - September 2013

Autumn Leafs

Where do we get our information and ideas?

Obviously there is an abundance of resources available to the web development community. Some links can be found in our first post.

But there is a lot more out there, on web sites, in magazines and books and through meetings and eNewsletters.

For meetings, you may want to have a look at Meetup : you can look up groups for all kind of purposes and in any given geographical area. A good example is a Meetup group meeting in Toronto, ON, Canada called CreateInTO. As its name implies this group is interested in all kinds of different creativity, including art installations, web development and design. This group has grown out of FITO, which stands for Flash in Toronto. But as Flash itself did not cover quite enough different forms of creativity its members got involved in, the group was renamed. Obviously this also reflects to some extent the gradual inrcrease in choice of other technology, such as HTML5 and CSS3, as well as numerous additional JavaScript libraries and frameworks.

As for books, there are a lot of publishers out there who specialize in computer and web related subjects. Amongst the ones I use most are O’Reilly, Apress and Packt. Nowadays we look mostly at eBooks of course, although I still like to have some reference works available in print. eBooks make it easy to copy pieces of code to your editor of choice when trying out what the books are explaining. Beware however, the copy and paste sometimes leads to strange effects, such as for instance, the use of `, where  ‘ is what you need. In many cases you can actually download the code from the publisher’s web site, which is the safer option. Another advantage of working with some of these books is that you can be included on the publisher’s email list for getting offers sent to you.  You can even get pre-release versions of books at strongly reduced prices, and yet get all the updates up to and including the final version for free. Many publishers make their eBooks available in many different formats, such as PDF, ePub, mobi… I usually use PDF on desktop and notebook computers, but ePub on my tablet.

About magazines I am not going to say a lot, except that there are many available, but availability may vary from country to country, and so may delivery times for the printed versions. Again many are available digitally. Despite living in Canada, I still often prefer the British magazines, and those are typically available here in print at least a month after the digital versions. Yet, somehow, the magazine format, bigger than a book format, makes me prefer some of the print versions. However many digital versions come in interactive formats better suited to use on computers and tablets.

And then there are the web sites of course. Too many to give you a list here. There is just one web site that I will mention because it hosts the code and documentation of many projects, systems and libraries and even allows you to host your own code: GitHub. Git itself is a versioning system (and so much more) which was written by Linus Torvalds of Linux fame. His system had so much immediate success, that it was adopted worldwide, and certainly not only by Linux users.

I suppose this will give the visitor of this blog post enough to check out right now. So for now, I will leave it at that.

Enjoy!

Chris Rogiers for CeaRO Corporation, December 12th, 2013

 

RGB Burlington flowers

…introducing CeaRO…

CeaRO Corporation

What CeaRO does…

The CeaRO Corporation was established many years ago as a starting point for a discovery journey into everything web development and computer related.

The CeaRO web sites were in the first place a testing ground for studying developments and new tools in the worlds of web development and FOSS (Free and Open Source Software).

And to a large extent that is still the case.

Currently, late 2013, that includes our initial steps in experimenting with a WordPress based blog (which you are reading now), a starting point for a social network (based on elgg) and a cloud environment (based on eyeOS).

Meanwhile we have also developed  a few web sites for clients, either separately with design, development and graphical elements provided by CeaRO Corporation, or with graphical design by daVinci Inc., or with graphical design and site layout design by the client.

We strongly concentrate on use of web standards and systems based on top of them. Standards such as HTML, CSS, JavaScript, PHP. Systems such as a PHP server back-end framework (CakePHP) with a relational database (MySQL) and JavaScript frameworks and libraries front end.

Here are a few links which are useful starting points when looking into some of the items mentioned earlier:

 

The world of web development and design is an ever expanding moving target. Which is what makes it so exiting to be part of.

Do you want to enjoy the ride together with us?

Chris Rogiers for CeaRO Corporation, December 8th, 2013

Chris Rogiers