I had the amazing good fortune to attend this year’s JCrete. I’m still here in Crete while I write this on the balcony of my hotel. There is likely no better place in the world to hold a gathering especially an Unconference gathering.
Imagine a gathering where every one in attendance is a potential speaker. Rather that the classic “Sage on a Stage” style presentations, an Unconference is about having open discussions on a range of topics presented by the people attending.
Each day begins where anyone can propose a topic they wish to discuss with anyone in attendance who also has an interest in the topic. This was a new experience for me. No projectors (more or less) and no PowerPoint. The proposer of a sessions begins by explaining why they want to discuss their topic and then for the next hour its a free wheeling discussion.
I proposed two sessions. One responsibility of a presenter is to prepare a summary of their session. As a way to possibly encouraging further unconferences, and they are getting popular, I am presenting my summaries here.
How do we
change Java to keep it relevant in education (or how do we keep Python from consuming
the education sector)?
This session in the Hermes room discussed why Java is losing ground to other languages such as Python in the education sector. Many universities and colleges are turning to Python as their CS1 language. This was not a Python bashing session.
following points were raised:
Is too formal
Has out of date documentation
Lacks promotion of the many cool
Is slow to start up
Because news reports announce Java’s imminent
Because Oracle has a poor reputation
Because Java is perceived as a
server-side/back end language
Because Google searches on how to
Is not perceived as a truly open
. . .
discussion moved to what might need to be added to Java there was a consensus
that there was nothing significant required. Instead the group agreed that
features and libraries that make Java a superior language in education are just
not being promoted. Oracle is perceived as not promoting Java sufficiently. It
sometimes feels like they have lost interest in the language.
in Python you can edit a file in a text editor and run it from the command
line. What some at the session and later at lunch that day did not know is that
as of Java 11 there is JEP 330: Launch Single-File Source Code Programs that
allows a single file to be directly executed without compiling it first.
The conclusion arrived at in the session was that Oracle, Champions, Groundbreakers, and every Java developer must communicate, shout from the rooftops, that Java is the modern language superior to all others in the education sector. And, Java is younger than Python, Python in 1991 and Java in 1996.
Session was held on day 3 of JCrete 2019-07-17
Tutorial: Is it time for an upgrade and by whom?
was held in the Sofa area at JCrete. We were fortunate to have amongst the
participants the Java Program Manager. First, we expressed our love for the
tutorial, an exceptionally well written introduction to Java programming. This
was followed by sadness over the fact that the tutorial had not been updated
since Java 8. As an example, the upcoming new ‘switch’ statement syntax is only
discussed in the JEP document.
brought out that this tutorial remains relevant and what is in it is the core
of the language right up to lambdas. Most of us felt that by not updating it
with each release of Java Oracle was inadvertently sending the message that
they have lost interest in Java. It was pointed out that one aspect of the
success of the Spring platform is their extensive documentation.
The Java PM explained
that Oracle felt that the time and efforts of their developers are better spent
addressing specific questions on the Stack Overflow platform even hoping to officially
make this part of a dev’s workload though for now their devs are just
encouraged to answer Stack Overflow questions. With so many people blogging
about the features of Java, especially the new ones, they felt that updating
the tutorial was no longer an effective way of reaching developers.
the discussion moved to the possibility of turning the tutorial into an open
source project, possibly as part of AdoptJDK. A concern was raised about
maintaining the quality of the documents. As an example the @java twitter
handle sometimes tweets about blogs that upon later inspection turn out to be
less than accurate. Just making the tutorial open source under a creative
commons licence and putting it on a wiki or git repo is not something Oracle
will likely approve. This was a point of contention as some at the session
wanted the tutorial and all code samples contributed.
The Java PM
felt that Oracle would be interested in contributions to the tutorial from
individuals with a track record in training and writing. Even better might be a
major training organization contributing to the tutorial. Reading between these
lines it would mean that further work on the tutorial could be funded by these
companies rather than having it as a volunteer effort. In either case the Java
team at Oracle might be available to review new material for its accuracy.
future of the tutorial is still not certain, our discussions demonstrated that
there are devs out there who hold the documents in their hearts and want to see
it go forward.
This was supposed to be some notes for a possible idea for JCrete this summer. How it became a history of my start as a computer programmer is beyond me but once I started writing I couldn’t stop.
The first programming language course I took was FORTRAN in 1971. I took it in college when code was keyed on punch cards. I was 17 and sex, drugs and alcohol were what interested me most. I couldn’t type and still can’t. FORTRAN did not ignite a passion in me.
Fast forward to 1980 and I’m 26, recently married and working in a mail room. There was so little to do during the work day I started buying magazines and the ones I bought most often were computer magazines such as Byte, Creative Computing, and Micro6502. After about four months I made the decision to buy a computer.
My landlord had a Commodore PET (Personal Electronic
Transactor) and while he took every opportunity to show it off to me all I
remember is that he had to run the cassette tape two or three times to get it
to load. Fascinated none the less I discovered two computer stores in Montreal
in addition to Radio Shacks that sold TRS-80s.
Radio Shack was off the table because I could not find an
employee who knew more than to tell me it had “beautiful plumage”. The next
store, called Future Computers, had a few different machines such as the PET,
the TI/99 and the Apple ][+. They were as knowledgeable as they could be and
were happy to let me play with the different models. The last store was called
Central Distributing. They were primarily a Hi-Fi and TV store but in one
corner they sold Apples. The employee was the most knowledgeable one I had met
anywhere. More significantly was that there was always a few other people who
already owned an Apple or others like myself trying to decide which computer to
There was a community at Central Distributing (still in
business but no longer selling computers). It was the community that convinced
me to buy an Apple ][+. The base unit had 16K of RAM to which I added, for $380,
another 32K of RAM. My last addition was to buy a 5 ¼ floppy disk drive for
$700. That floppy drive made me the envy of the other Apple owners who still
used a cassette recorder.
My wife Cheryl and I, mostly my wife because she had a
better job, borrowed $3000 from a bank with $2000 for the Apple and $1000 to
remove the rust from our GMC van. Vanning as a means of travelling was big in
the seventies and early 80s. I built an RV style interior myself. Good times
and good drugs but that’s a story for another blog.
I sold the idea of getting the Apple computer to my wife by describing it as the best toy I could ever want. I called it a jungle gym for my mind that was becoming stagnant by just working in a mail room. We were just married and no kids yet. I changed jobs not long after buying it and getting our van de-rusted. I became a photography technician at the Dawson Institute of Photography of Dawson College. I was responsible for managing the inventory of equipment that the students used and mixing the various chemicals used in black & white and colour photography.
But when I got home after work, I spent all my free time on my Apple. We couldn’t afford a real monitor and with a resolution of just 40 x 25 I could make do with my wife’s old 9 inch black and white TV. I was obsessed and proceeded to type in almost every program from the magazines I bought. I remember typing in a Space Invaders game and I thought it was the coolest thing. I started modifying the programs. They were all written in Apple Basic that was the second programming language for the Apple. It was written by a small company run by Bill Gates. Prior to Apple Basic there was Apple Integer Basic written by Steve Wozniack but when Apple went from Apple 2 to 2+ the Bill Gates version became the standard.
One task at the photography school that the faculty worked on three times a year was scheduling. There were three groups of photography students, morning, afternoon and evening that had to follow a 15-week semester schedule. The groups were broken down into sections. There were classroom lectures, photo lab and studio lab courses. The faculty would spend two or three days preparing the schedules. In my arrogance I announced, after only having had a computer for a little over a year, that I would write a scheduling program.
I modeled the data structure inside a multi-dimensional array. I’d begin by randomly assigning courses, teachers, and rooms while verifying that I was meeting all the requirements. For example, a course might need to have so many studio hours a week every week and there were multiple sections in the time block competing for the studios. A piece of cake, I thought. If my algorithm got stuck, I planned to unroll backwards and try another arrangement.
It never worked. I could get to about week 10 or 11 and then I could not get any further. My truly amateurish algorithm would end up unrolling back to week 1 and then proceed to move forward but never past week 11. But boy, did I enjoy the coding even if it was a failure. I was now certain that this was my life’s passion. Now, could I salvage anything from this considering I had made promises I could now no longer fulfill.
One component of my system was verification. It contained the rules for a proper schedule and it determined if the schedule could work. As I said, the scheduling process was a two or three day affair plus a day to prepare schedules to be printed for the students. What if the work the faculty did was immediately entered into my program? It could inform the faculty right away of any errors or omissions in their work. Once a schedule was verified it could then print out the schedules for each section. This is what I presented to the faculty. It turned the time from the beginning of manual scheduling to producing error free student schedules to less than two days. I even brought in my own computer and printer to be used as the college did not have any computers at that time, early 1982.
Dawson College, in the early 80s, had decided to set up
computer labs with Apple computers. The Dawson Institute of Photography was
managed by the Continuing Education department of the college and its managers
were aware of what I was doing when I wasn’t mixing chemicals or fixing
cameras. I was invited to speak at a general faculty gathering about small
computers. Dawson already had a three-year Computer Science Technology program
but it was exclusively mainframe. I was one of a handful of employees who were
also computer hobbyists and my Schedule Verification System was an example of a
useful application of these new small systems.
The presentation was a success. It was the first time I ever
did anything like that. Immediately afterwards the chair of the Humanities
department asked me if I wanted to teach a Humanities course. I was flattered
and puzzled. I had just spoken about my experience with an Apple computer and
not philosophy. He told me that what he liked was my style. I could educate,
entertain and captivate an audience. He told me that these skills were not
common in his faculty.
I enjoyed the moment. It was an unexpected offer. Then I had to reveal a truth. After high school, that finishes in grade 11 in Quebec, I went on to a two year college as preparation for a university undergraduate program in Science. Dawson College is one such college although I went to different one. I failed miserably in college. I was expelled after my first semester and then got a job as a shipper at a surgical supply company. I returned to college the following year and while I lasted the whole year, I only passed 3 out of 12 courses. It simply came down to the fact I found other activities rather than schoolwork more fun. Not an original story.
The chair of Humanities said I shouldn’t worry. He’d fix it so I could get hired. He couldn’t. Not long after that the Continuing Education department decided to offer computer courses. As they were non-credit the hiring criteria for regular day courses did not apply. They hired me to teach introductory computer courses.
During this period I became involved with an early users group called the Montreal Apple Core. We met once a month in a church basement. I volunteered to produce the club’s newsletter. I gave some presentations and for a short period of time became the president. If anyone from that period reads this then let me admit that I was a terrible president.
There was a magazine store that carried magazines and books mostly dealing with computers called Le Camelot. They agreed to carry our newsletter that I produced on an old Gestetner copy machine and later with a photocopy machine. You can see images of the magazine throughout this blog.
One day I got a phone call from an engineering firm. They had a contract to build a control system for a water filtration plant in the Montreal area. The plan was to use Apple ][+ computers to control the filtration process and they asked if I could program a graphical user interface. It would show the various stages and readings of the filtration process. As I looked at the palm of my hand I assured them that I knew how to do something like that the same way I knew the back of my hand. I now had my first commercial programming job.
My interest as a photography technician was waning. Truth be
told my enthusiasm and the quality of my work was diminishing. When the
students met with my supervisor to complain about me I knew it was time to go.
With the support of my wife I resigned from the Institute of Photography. By
then I was teaching several non-credit courses not only at Dawson but at other
colleges. This was enough to cover our household bills as our first child was
now a year old.
Between the time I left the photography school in 1983 until 1991 when I became a full-time faculty member in the regular day Computer Science Technology program there was never a time I wasn’t coding for clients. During my first few years as a teacher I continued doing some contract work but I dropped that as I started teaching non-credit evening courses at Concordia University. I even went back to school in the 90s and made up for my failed college time and got as far as two years into an undergraduate computer science program. The need to pay the bills had me doing more evening teaching so I never finished that degree. At least I wasn’t expelled.
If the mood strikes me one day I may write about what I did as a free lancer and that will be part 2. There are some good stories from that period, some I still tell my students. Seven years ago I stuck my head out of my education fox hole and became part of the wider software community by writing, speaking at conferences and even by organizing a conference. I have never regretted the choices I made. I have suffered from impostors syndrome but it never held me back from taking on anything presented to me.
I turned 65 this year. It is now my 30th year at Dawson. After 21 years as chairperson and program coordinator of Computer Science Technology, I stepped aside this year to return to full time teaching. I’ve toyed with looking for new opportunities but I’m not sure I can give up the life style of a teacher. At a luncheon just the other day one of the younger faculty whom I hired gave me a small novelty plaque that stated the 3 reasons for being a teacher; June, July and August. This is what I told him when I convinced him to leave industry and join us.