Thirty Years – What A Ride!

Thirty years. It can feel like an eternity, or like just yesterday. That is how long I have been working in the IT industry, as of 2 weeks ago.

When I graduated the Swedish equivalent of High School in the spring of 1988, I did not know what lay ahead. If anyone would have told me where I would be 30 years later, I am not sure I would have believed them.

Computers, and especially programming, was my big interest. I had spent every available hour in the computer room in school. I went there during breaks between classes (if only 15-20 minutes) as well as during lunch break (usually 1 hour long. I learned to eat really fast, to maximize my time in front of the computer… Then after school I often spent 4-5 hours learning to program, either from books, magazines, or from other students.

After I graduated, I was not really motivated to go to college. But I found an intensive one-year college level education in systems programming and computer science. It would be classes 8am to 5pm, 5 days a week. Today you would probably call it boot-camp…

Unfortunately the class did not make, it needed a couple more students. So in the beginning OS September 1988,after about 2 weeks of classes, we were told to come back in January. We were encouraged to find a job or internship in the mean time. So I started to call around to different companies I found in the yellow pages.

After a few days I got a hit, a company was looking for a first line support technician. I sent in my application (I did not even have a formal resume) and a copy of my high school grades. A week later (on a Friday) I had an interview, and the following Monday I started working there. This company was Microsoft.

Needless to say, I learned a lot at Microsoft. I return to the class during the spring semester, worked at Microsoft during the summer break and then again after I graduated at Christmas.

After a year in the Air Force for the (then) mandatory military service, I intended to go back to Microsoft, but I was offered a job as a programmer at another company, and I jumped at that option. From there it just continued, via 5 years as an IT journalist and then over 20 years working mainly with Lotus (later IBM) Notes and Domino.

There are times when it feels it was just like yesterday I was writing Pascal code for a computer running CP/M-86 as operating system. Or when my coworker and I, who lived in the same apartment building (but on different floors and in different ends of the building) decided to run RG58 coax cable between out apartments, so we could network our computers. Or when I went scuba diving in Egypt and brought an IBM ThinkPad 701C (the model with the expanding keyboard) and a digital camera with me, so I could write a diary to publish on my personal website. Yes, it was pretty much a blog, way back in 1995…

But when I look at how technology has changed, it feel like the middle ages.

Our network at school (yes, we actually has one!) had a hard disk the size of a small shoebox, and with a capacity of 30 MB, to be shared between students and teachers. Yes, it’s not a typo. 30 Megabyte! Today most hard drives have at least twice that amount of memory just for cache…

Compare that with my mobile phone, on which I am writing this post while riding a bus from Dallas to Houston. It has 2185 times that memory (64 GB) built in. I have an additional 200 GB in the form of a micro SD card. This amount of storage would have been unfathomable 30 years ago.

Today we have internet access everywhere. I can sit in my car, in a restaurant or on a bus in the middle of nowhere and still have access to all the knowledge (not to mention cat videos) in the world. In fractions of a second I can perform a search that would have been virtually impossible 30 years ago.

I can turn on and off the lights at home, no matter where in the world I am. I can check the temperature in the different rooms and change the AC settings, if needed. I get an automatic alert if there is smoke I the house, or water where it is not supposed to be. And I can check the status of my laundry remotely.

I can talk to the computer, phone and other devices and have them turn lights on or off, tell me what the weather will be later that day or the next few days, or play any music I ask it to play. This is just like in Star Trek or 2001, except it is for real.

I can buy anything I need from the comfort of my home, or from anywhere in the world, and get it delivered within a day or two, sometimes even the same day.

At the same time I do miss the days back when I started with computers. It was like a new frontier, an unknown area where you had no idea what could happen next.

I still remember the excitement when I managed to create something new and cool, and I got it to work after spending countless hours working on it and troubleshooting the code. It is rare that I feel that excitement today, in the same way. But it still happens. .

I am very fortunate to be able to work with what I love, and have been able to do it for this long. I am looking forward to the next 30 years with great excitement.

1 Comment

Good vs bad customer service

Today I experienced some very good customer service, and that made me think about how important that is when it comes to how a company is seen by customers (current and prospective).

What happened was that I downloaded the latest version of Ytria‘s developer tools (scanEZ, toolBarEZ, viewEZ, designPropEZ and signEZ). I been using those tools for year, and was very excited when I found out they had just released a major new version. So I downloaded it as normal, installed it and then logged in to our account to get the new license keys. I then found out that the license had not been renewed last fall. I got the invoice and passed it on within my company, but somewhere on the way it got dropped.

So now I had the new version installed, but could not use it as I did not have any valid license keys. I found the old invoice, mailed Ytria and they told me that we could just pay that invoice and the license would be reinstated. They even gave me temporary license keys so I could get up and working even before that payment was sent out from our accounting department. I had not expected that, and this little thing really impressed me. I have always liked their tools and their customer service and support is excellent.

Then we have the opposite. Recently my wife broke her phone, a Samsung Galaxy Note5. She is dependent on it and uses it every day, not only for calls and internet but also to sign things with the pen (that’s the reason she got the Note). She contacted the insurance/replacement company AT&T is using for this kind of exchanges/insurance claims and started the process online. Then when she talked to them they told her that the Note5 was back-ordered and they did not knwo when they would get one in for her. They could not tell if it would be a day or two weeks. My wife was using her old Galaxy S4 temporary, and she was not happy to hear this. So we all switched our family plan (with 5 phones, a tablet and a hotspot) to T-Mobile withing a couple of days. We are even saving some money after switching (if you sign up for three lines you get one without any extra cost), plus we all got brand new phones (Samsung S7 Edge) with a “buy one get one free” offer. We also got a few other goodies (one VR headset and one year free Netflix per phone).

So in one case the company made an existing customer happy and gained long-term loyalty, in the other case the company lost a customer spending $400+ on their services and pushed us to a competitor.

PS. If you are a Notes/Domino developer or admin, Ytria will have a webcast on Wednesday, May 11 where they will demonstrate the new version and it’s features.

 

2 Comments

We are living in the future

bttf-arrival-date

The last few years I have revisited the stories of some of my childhood favorite sci-fi authors, and in particular Robert A Heinlein. It is fascinating to read stories written in the 50’s and 60’s and compare them to what actually happened.

Last week I finished The Door into Summer (1956) which takes place in 1970 and in 2000. It is amusing to read about the household (and other) robots and how they are programmed using a kind of electronic tubes. My robotic vacuum at home is the size of a pizza box, not the human sized robots described in the book. Voice recognition is mentioned, but according to the book it is too complicated and bulky, except for a very limited vocabulary. Today we have voice recognition in every mobile phone, and programs like DragonDictate (later Dragon NaturallySpeaking) have been around since the late 90’s.

In The Moon Is a Harsh Mistress (1966) one of the main “characters” is the computer Mike, who takes up a large building and control all of the Luna colony. This echos the quote attributed to IBM’s Thomas J. Watson: “I think there is a world market for maybe five computers”. The philosophy back then was that centralized computer power was the way to go, not the distributed systems we have today. And they were still using telephones with wires in the future. Today we use smart phones with more computing power than Heinlein could ever imagine, and probably more computing power than the computer in the book.

And in Starman Jones (1953) the crew calculate their position largely manually, with the help of a computer that requires all the input data entered with binary switches, and returns the data in binary code using lights. The positions of the stars (used for the calculations) are recorded using “plates” which have to be developed, in other words traditional photography. Digital photography have today pretty much killed off traditional “chemical” photography using film.

There are of course many examples of where authors been right and describe technical equipment which have actually been developed, like the water bed (Heinlein in aforementioned The Door into Summer) and tablet computers (Orson Scott Card in Ender’s Game from 1985).

So in many ways we already live in the future, and in an even more amazing and technologically developed world than even the greatest sci-fi writers could imagine. I don’t think anyone envisioned Internet and it’s importance, even if Orson Scott Card does write about a world wide computer network used for information and discussion in Ender’s Game. But by that time Internet already existed (just not the world wide web) and the electronic bulletin board systems (BBS) were becoming popular in the late 70’s and early 80’s. Personally I started connecting to BBSes in 1986 (possibly 1987) and in 1990 I connected to my favorite BBS almost daily.

Sure, we don’t have the flying cars everyone expected, or even the hoverboards from Back to the Future II (1989). But I believe that the rise of Internet is perhaps the single most important event in recent history. It has revolutionized shopping, you can now connect to a site on the other side of town or the opposite side of the planet and talk to people or purchase products. We have sites like Wikipedia and Stack Exhange where we can learn things and ask questions, not to mention online learning.

We have home automation that rival what is described in sci-fi books and movies. At home we are renovating (or rather rebuilding from scratch) our bathroom. We are going to install a Moen digital shower system as well as a pretty high-tech toilet. We already have a number of Insteon lights all over the house, controlled though a hub and a smart phone app (some lights are even turned on and off on a schedule based on sunset and sunrise), as well as a robotic vacuum. The latter is cleaning the house twice a day by itself, which is keeping the pet hairs under control and improving the air quality substantially. There is so much more you can do to your home these days, including changing the temperature remotely and even monitoring and controlling your hot tub.

My car has a radar to automatically break if someone walks out in front of the car, and this feature has been improved even more in the latest models. When the car is not braking by itself, the radar assisted cruise control let you drive safely behind other cars while you stream live radio from the other side of the globe through the Internet to your phone and then over bluetooth to the car stereo.

I love living in the future.

2 Comments

Gone fishing. Or rather gone scuba diving.

I am currently away for a little over a week, taking a vacation in Curaçao. This next week I am planning some relaxing scuba diving, but for now we are just exploring the beautiful capital Willemstad.
So don’t expect any technical writing for a little bit. See you in December.
 
wpid-20141122_150327.jpg

wpid-20141122_123807.jpg

wpid-20141122_102650.jpg

wpid-20141122_102432.jpg

Superior Producer 001

Superior Producer 003

Superior Producer 002

Superior Producer 004

2 Comments

I am back.

On June 11 I had some major surgery at Medical City in Dallas. It was a planned surgery to remove part of my intestines to prevent future outbreaks of diverticulitis. I been having about 2-3 outbreaks a year for the last 12 years or so. Normally they perform surgery after just 2 severe cases. I was not looking forward to the surgery and recovery, knowing that I would not be able to work for at least 3-4 weeks, and after that just half days for a little while. But the benefits of the surgery outweighted the negative sides.

Scar 10 days after surgery. YOu can also wee where the drainage tubes were located.
My scar 10 days after surgery. You can also see where the drainage tubes were located.

I was a bit nervous before surgery, but everything went well. Í am now the owner of a scar about 14 inches long across my abdomen, and lacking about a foot of my colon as well as a tennis ball sized clump of scar tissue from years of infections. If anyone is interested, the procedure is called sigmoid colon resection.

I had to stay at the hospital for a week (I was released in the evening on June 17) and then stayed 3 days at a local hotel to avoid having to go up the stairs at home. On June 20 I was finally home. I started working half-time last week, but after two days at the office, I was in severe pain/discomfort and had to rest for a day before I started working from home instead. Thankfully I have a great boss who let me do that.

For the first 5 days after surgery I was not allowed any solid food, then I went to a low fiber diet.  Two weeks after surgery all dietary restrictions were lifted and I could eat anything I wanted.

For obvious reasons I have not been blogging during this time, I have mainly been resting. But now I hope to be able to do some blogging again. I have already returned to the developerWorks forums and StackOverflow.

If you, or anyone you know, is suffering from diverticulitus, look into this surgery. I have already been able to eat things I had to exclude from my diet for years, like sesame seeds, chopped garlic and raspberries. Despite still not being fully back to normal, and having some pain every day from the healing process, I would highly recommend this surgery.

If you live in the DFW area, I can highly recommend Medical City. Great facility with wonderful staff. I also want to recommend dr Robert Cloud, my surgeon. He was great at explaining the procedure in detail and answered all my questions. His office was also very quick to respond to email.

 

9 Comments

World Wide Web turning 25 years this week

In some articles it is claimed that Internet turns 25 years old this week, which of course is not true. But the World Wide Web is. It was on March 12, 1989 that Tim Berners-Lee wrote a proposal for a hypertext system that would become what we call “the web”. In 1991 the first webpage was created and published at CERN.

Since then the web has exploded. I first got in touch with web pages and HTML in 1994, and in 1995 I had my own little server running on my work computer. I don’t think I could imagine what the web and other internet technologies would lead to back then.

Back then pages were static, and Javascript was not invented until later (in the end of 1995). Everything was done server-side, so the pages needed to be reloaded to display new or updated information.

Today we have dynamically loading pages, with client side scripts that perform Ajax calls and update elements on the page without reloading the page.  Sure, specialized software like Lotus Notes had similar functionality way back, but required special clients and servers. Now we also have Javascript libraries like jQuery to help in development. It’s like night and day compared with how it was back in the mid-1990’s.

But it is not only the technology that has changed. What the web (as well as the rest of the Internet) is used for has also changed. From being more of an encyclopedia, where you were looking up information, today the web is used for commerce in a way I don’t think many expected back in the mid-90’s.

Today you can use a computer or smart phone anywhere in the world, and buy anything from toilet paper to a new car. We have auction sites like Ebay, big commercial juggernauts like Amazon as well as classified sites like Craigslist. Almost any retailer offers online purchases today.

Here is just a sample of what I bought online in the last week or so: Swedish Björn Borg underwear, a Kensington Proximo tag to use with an iPad at a trade show and a charger and two spare batteries for my GoPro camera. Just a few years ago, I had to wait for my sister to come visit or me going over to Sweden to be able to buy those particular underwear, for example.

The other day I was at JC Penney to buy a couple of Levi’s jeans for my sister’s boyfriend. In Sweden, a pair of $40 jeans can cost over $150… I had the model and the size, but since they had several different shades of blue, I simply took a couple of pictures of the different ones and mailed then to my sister on the other side of the globe. Within a few minutes I had a response and knew which ones to get. I know this was technically not using World Wide Web being used, but this is still a huge development from 25 years ago, when Internet mail was just plain text.

We truly are living in the future, and it is a future that no sci-fi writers envisioned. There are some 1980’s writers that envisioned a world-wide network, with discussion forums and email (e.g. Orson Scott Card in Ender’s Game from 1985). When I recently re-read Isaac Asimov’s I, Robot, as well as Robert A. Heinleins The Moon is a Harsh Mistress, I noticed how they for example still used land-lines for telephony, and that most of the computer technology felt very antiquated. Nothing of what we take for granted today was mentioned, like email, instant messaging, Google search engines or Wikipedia-style reference sites with all it’s collected knowledge.

Some things from the sci-fi stories have come true, like communicating with a computer using your voice. Today that computer is (in most cases) our smart phones, having more computing power than even the most powerful computer back in the 90’s…

What will the next 25 years give us? Who knows. Faster, smaller and more powerful computers and higher connection speeds are obvious. The 5G wireless networks are already in the development stage. But what will the next big leap be? Artificial intelligence? I guess we will see. What do you think will be the next big step in technology?

0 Comments

Happy New Year – My Year in Review

2013 has been a very interesting year for me.

It started with a trip to Connect in Orlando that almost did not happen. The company I work at was in a money-saving mode, and denied my request to attend. I had already resigned myself to this and come to terms with the fact that I would be missing Lotusphere for the first time since I stared going in 1997. It was made even harder as I heard several of my friends in the community saying that they feared this would be the last Lotusphere, either for them or for the conference itself, in the shape we knew it.
But suddenly out of the blue I was offered a press pass to cover Connect, like I had been doing in the past for a few publications (as well as a blogger, during the now-cancelled blogger attendance program). With the conference fee covered, and with a kind offer from a friend in the community to share his room, I purchased my own airline tickets, requested vacation days at work and headed to Orlando for what I thought might be the last time.

Connect 2013 was, despite the name change, better than I expected. It was a great conference, my schedule was full of excellent sessions and I got to meet many of my friends again. There were a few faces missing, but many of the familiar faces and voices were seen and heard during the week.

Unfortunately, one voice was silenced forever the Sunday before Lotusphere. Kenneth Kjærbye was killed in a motorcycle accident, during a yearly ride with other attendees and presenters. This of course affected many in the community, but my opinion of IBM increased more than a few notches from hearing how well they responded to the tragedy.
This was not the only familiar face in the community that we lost. Rob Wunderlich and Jens Augustiny both passed away, also way too early,  in 2013. You will all be missed.
There were also some other emotional farewells at Connect 2013, with long-time attendees being there for the last(?) time.

On a more personal level, things changed as well in 2013.
I still haven’t started working very much with XPages, but with the release of Notes and Domino 9.0 in 2013, it feels like XPages are more solid and ready for prime time. My workplace is still on Notes 8.5.2 Basic client, which limits me to classic Notes development. I use Notes/Domino 9.0 at home, though, and I am very impressed with the stability.
I also started on a web application, developed using Bootstrap and jQuery, working with a Domino-based backend. I can’t talk too much about this project yet, but it has a lot of potential to help children in need, and I am very happy to be in a position to work on it.

I also moved, something that if you know me is a big deal. I don’t like to move. I actually loathe moving, which is why I had been living at my apartment for 9 1/2 years when I finally moved. But the reason I moved was to move in with my girlfriend in Dallas. In the end of 2012, I was lucky enough to meet Chrissy, and during 2013 the relationship developed to a level where we decided that I should move in. It is wonderful, but also sometimes annoying, to be in a relationship with someone who is on the same level as oneself when it comes to intelligence, logic and knowledge. Sometimes I wish her mind was not as sharp, like when she manages to out-logic me in a discussion. 🙂

Work have been steady busy. I have been involved in a couple of projects where we provide data from Domino databases to external applications. In one case it was to create a nightly export in CSV format to be used in a SalesForce application, other one was to create a RESTful web service to return JSON used in a web application being developed for our underwriters. I have of course also been busy keeping up with the requests from different department heads to modify their different mission-critical Notes application, based on new business requirements and regulatory demands as well as department reorganizations.

The end of 2013 was the pinnacle of the year. Not only did I get moved in with Chrissy, I also received a surprise email telling me that I had been selected IBM Champion. Professionally, this is huge for me. I feel very flattered and humble to be on the same list as so many of the great names in the community, people who I looked up to and learned from for years.

Looking forward to 2014, I have a busy year ahead. Connect 2014 is coming up in just over 3 weeks, and this time work approved and paid for the trip. Despite some missing faces, I hope that Connect 2014 will be as good as previous years, and that I will learn new technologies, learn more about what I already know, and connect with new people.
I also have some additional trips planned. Hawaii in the end of March for a conference (hopefully with some personal time available, as I have never been there before), London in May to visit my best friend who lives there with his family, and perhaps a quick trip over to Holland to visit Chrissy’s cousin who is living there, a real life (well almost) Indiana Jones. 🙂

I am also planning to step up my blogging some in 2014. 2013 was the first full year of my blogg being hosted on WordPress, but I did not setup the statistics to save more than the last 120 days, so I don’t have a full years worth of statistics, something I realized just the other day. I wrote 60 entries this year on my blog, as well as seven on SocialBizUG.org, but I hope to be able to create even more content in 2014.

So in closing, I want to wish everyone reading my blog a Happy New Year, may 2014 be a great year for you and your families.

2 Comments

Some personal thoughts and a big Thank You

Last week, Volker wrote this excellent article about Tomas Duff (a.k.a. Duffbert). Then yesterday the news reached me about the sudden death of Rob Wunderlich, a long-time member of the Lotus community. I had already started on a post — in preparation of my upcoming 25 year anniversary of becoming an IT professional — where I was going to acknowledge a number of people who meant much to me and who were important in making me to what I am today. I have decided to post this text a bit earlier than originally planned.

There are so many people who helped me and supported me over the years, and without them I would not be where I am now professionally. Some took a chance on me and gave me jobs where I grew professionally, others were more like mentors or inspirations, and some were teaching me how to do things with computers or in code. I know I am probably forgetting many who deserve to be mentioned. But I want to thank the following:

  • Tonny Olsson – my cousin who worked at Hewlett-Packard and let me see my first computer (complete with a plotter and an acoustic modem he used to connect to HP from our house) in or around 1975. He also introduced me to the world of HP calculators and RPN.
  • Peter Nilsson – my childhood friend and classmate, who introduced me to Basic programming when he got a VIC-20. We spent an evening (right after he got it) entering a program from the handbook, but we did not get it to work that day. Later on we got some programs working.
  • Henry Jacobsson – My teacher in computer science/programming in High School, who allowed me write my code in Turbo Pascal for CP/M-86 instead of the special language COMAL (a mix between BASIC and Pascal). He also taught me the basics of how to plan/design an application. I also want to thank Henry for not kicking me out when I hacked his systems administrator account and assigned myself 1MB of storage on the 30MB hard disk we had on the server. Normally each student got 4kB, but I wanted more. 🙂
  • I also want to thank several of the older students in the school’s computer club, who helped us younger students when we had questions. I want to mention Hjalmar Brismar, Petter Aaro and Matthias Bolliger, who were always there with advise and knowledge.
  • Arne Josefsberg – head of tech support at Microsoft, he took a chance and gave me a job without me having touched any Microsoft program previously.
  • Rolf Åberg, Magnus Andersson, Anna Söderblom and Micael Dahlquist – also at Microsoft. They helped me learn all kind of new things, from Windows programming using C and the Windows SDK to regular C programming using QuickC, from Excel to Word for DOS. I also ended up wothing with Micael at another job a few years later.
  • Per Engback and Ingvar Gratte – my two main teachers at the systems programming class. Despite this being just a one-year class, I learned plenty, especially C programming and Unix.
  • Krister Hanson-Renaud and Harald Fragner – two programmers/hackers who inspired me over the years, and who also introduced me to the world of Bulletin Board Systems (BBS). I had been exploring some earlier bulletin board systems back in 1987-88, but it was in 1989-90 I became “social” on these networks. Both Harald and Krister wrote their own BBS systems, and I ended up running one of them myself for a short time, but it was more of a test.
  • All my friends on CT and SKOM, the two BBS:s I frequented the most, between 1990 and some time in 2004. Here I learned about online debates, flame wars and of course plenty about hardware, software and programming techniques.
  • Lars Dahmén – the editor-in-chief at Computer Sweden who hired a 22 year old programmer/hacker in the role of journalist, despite no previous journalistic experience. Obviously he saw some possibilities in me, as I stayed for five years until I moved to IDG in Boston. Lars was a great boss, a very competent manager and is a very nice person. It’s hard to find that combination, and I think I have to say that he is the best manager I ever had. Thank you for not giving me too much grief about my messy desk and my shot-up hard disk on my bookshelf. He also tasked me with developing some of my first actual Notes applications, for internal use at the magazine, and approved of my moonlighting with Notes development (see Enrico Barile below)
  • Eva Sparr – the managing editor at Computer Sweden, and who I reported to directly. She usually gave me very free reign to explore new stories and test software/hardware as I saw fit, something that helped me develop my analytical skills.
  • Erik Geijer, Anders Lotsson, Maria Lindström and Kenneth Bäcklund – four of my colleagues at the magazine, experienced journalists who gave me a crash-course in writing, journalism and penmanship. A big thank you for all the time you spent giving me advise and proof-reading my articles. Erik also introduced me to HTML in 1994.
  • Enrico Barile – he exposed me to Lotus Notes, and started me on the path to where I am now. We spent many evenings at his office, building websites using InterNotes Web Publishing, which eventually merged with the Notes server in version 4.5 and became what we today know as the Domino server. I mainly worked on the HTML part, but I did learn a lot about Notes/Domino.
  • Morris Effron – my boss at IDG in Boston. He hired me from across the Atlantic, to become a full-time Lotus Notes developer. Not only did he trust in my skills and ability to learn new things (I had been writing several Notes applications, but nothing extremely complex), he sent me to several classes to increase my skills both on the technical side and on the social side. When someone from Boston, born in New York, think you are too direct and rude to the users and send you to a class to be nicer to people, that is a sign you are a bit rough around the edges. 😉
  • And of course all my friends in the Lotus/ICS community. Over the years I have gained enormous amount of knowledge from your sessions at Lotusphere, blog entries and direct discussions (in person at conferences or through Sametime/email), or though services to the community. In addition to Tom Duff, who I already mentioned, I would like to list just a few: Rocky Oliver, Andrew Pollack, Brian Benz, Scott Good, Julian Robichaux, Francie Tanner, Rob NovakChris Blatnick, Declan Lynch, Chris Miller (the one-slide-man!), Paul Mooney, Bill Buchan, Mark Myers, Matt White, Bruce Elgort, Yancy Lent (thanks for PlanetLotus!), Jake Howlett (who I never met, but who’s site codestore.net have been a great resource over the years), Joe Litton, Stephan Wissel, Tim Tripcony, Nathan Freeman, and so many more. Not to forget all the Lotus/IBM people I met at Lotusphere, like Maureen Leland, Dan O’Conner, Mary Beth Raven, Susan Bulloch and all the others I been harassing over the years in the Ask the Developers lab at Lotusphere. I also want to thank everyone who presented at Lotusphere and shared their knowledge over the years.
  • Finally I would like to mention my parents, Marie-Luise and Stig Martinsson. Today (September 2) would have been my dad’s 87th birthday. They were great parents, and gave me the freedom I needed to read books all summer long (even if my mom sometimes thought I should go outside for a bit) and to take apart old radios or mechanical calculators, or solder together some electronic contraption in the basement of our house. Later, when I spent all my free time after school in the computer room, they were concerned that I was negligent with my home work, but they never forced me to abandon programming. And when I look back, I realize that all those thousands of hours spent in the computer room is what made me to what I am today.

So again, to everyone who in one way or another had a hand in bringing me to where I am today, a huge thank you. And forgive me if I did not list everyone, or I would be writing this list until Christmas…

Part of the Lotus community/bloggers meeting for BALD at Lotusphere 2011.
Part of the Lotus community/bloggers meeting for BALD at Lotusphere 2011.

 

The traditional end-of-Lotusphere picture, from Lotusphere 2010.
The traditional end-of-Lotusphere picture with part of the community, this one from Lotusphere 2010.

 

Blogger community at Lotusphere/Connect 2013. Photo by John Roling (CC-BY-NC-ND).
Blogger community at Lotusphere/Connect 2013. Photo by John Roling (CC-BY-NC-ND).
6 Comments

Today I became the father of a teenager

On August 2, 2000 at noon my son Erik was born, almost a month early, through emergency cesarean. His weight was just 4 lbs 6 oz, and he was tiny.

image

image

Today Erik turns 13, he is already taller than his mom and not that much shorter than me. That little thing that only slept, ate and produced dirty diapers is now playing soccer, building LEGO and even taking a shower occasionally when forced… 🙂

Happy birthday, Erik! I am very proud of you. You are a great son.

image

0 Comments

Should everyone be a programmer?

For years, there has been a debate if anyone can (or should) learn programming or not. While reading the Notes and Javascript groups on LinkedIn, as well as the Notes forums on IBM developerWorks, I have read more than one post where someone wants to learn Javascript or Notes programming, but don’t have any programming experience/knowledge.

Can anyone learn to program? No. I would say half the population could learn at least the basics and mechanics of programming.  So should everyone of those learn to program? In my opinion, absolutely no. Remember, it is widely considered that it takes about 10 years or 10,000 hours to be good at skills like  programming or playing an instrument. A majority will not invest that time in practicing unless they really have the passion.

I think you also need to have a special mindset to become a good programmer. If you learn to program just because you think it is a good career, or something that will pay you a decent salary, but you don’t have the deep interest or the right aptitude, then you will most probably not be a good programmer.

I’m still wondering: why do people who can’t write a simple program even entertain the idea they can get jobs as working programmers? Clearly, some of them must be succeeding. Which means our industry-wide interviewing standards for programmers are woefully inadequate, and that’s a disgrace. It’s degrading to every working programmer.

At least bad programmers can be educated; non-programming programmers are not only hopeless but also cheapen the careers of everyone around them.

Jeff Atwood, Coding Horror

 

Passion

A sign of a good or great programmer is passion. You must be really interested in it to be good at it. Anyone can learn to drive a car, but you need passion and dedication to become a Nascar or F1 driver. This is what drove me to spend hours every day after school in the computer room, until the school closed for the night and I was kicked out. I did not have a computer at home, so this (together with the breaks between classes) was my only chance to practice programming. I wanted to learn, to be good at it, to get the computer to do what I wanted it to do. I wanted to find a problem and solve it, and then find a better way to solve the same problem, until I was satisfied I had the best solution I was able to create.

 

Problem Solving Skills

When you are a programmer, no matter what level, you need to be able to solve problems. If you are a junior programmer, you might get a task assigned to you by a more senior developer, but you still need to break down that task into smaller parts and solve the problem.

After a fair bit of trial and error I’ve discovered that people who struggle to code don’t just struggle on big problems, or even smallish problems (i.e. write a implementation of a linked list). They struggle with tiny problems.

So I set out to develop questions that can identify this kind of developer and came up with a class of questions I call “FizzBuzz Questions” named after a game children often play (or are made to play) in schools in the UK. An example of a Fizz-Buzz question is the following:

Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.Most good programmers should be able to write out on paper a program which does this in a under a couple of minutes. Want to know something scary? The majority of comp sci graduates can’t. I’ve also seen self-proclaimed senior programmers take more than 10-15 minutes to write a solution.

Imran Ghory, Imran on Tech

 

Logical and Abstract Thinking

This skill goes hand-in-hand with problem solving. You must be able to think though a problem and look at the logic behind it. What tasks/steps are being done in what order? What holes are there in the process? Where could things go wrong? You must be able to anticipate where errors might happen and put in preventive code for that.

 

Technical Knowledge and Interest

You need to understand the platform you are working with. For Notes and Domino this means understanding about views, forms, documents, as well as the Domino Object Model. For Javascript it means understanding the browser Document Object Model.

You also need to understand the limitations of the platform, and how code is handled internally. A typical example is how new Notes developers still often use GetNthDocument(), because they don’t understand how it works. In most cases, GetFirstDocument/GetNextDocument() is the preferred way to loop through a collection. Yes, there are some cases where GetNthDocument() can be used without any degradation in performance (I believe in a ordered collection, i.e. the result of FTSearch), but to avoid confusion, I alway recommend new Notes programmers to avoid using that specific function altogether.

But you also need to know about related technologies. If you only know Lotusscript or Formula language, you will have a much harder way to integrate with other systems. In the case of Notes, you need to know about XML, COM, HTML, CSS, Javascript and JSON, and understand what Ajax and REST are and how to use them. Knowing — or at least understanding — Java is also a plus. For Javascript, you need to know HTML and CSS well, in addition to the browser DOM. Each language and platform has its own set of skills you need to have some knowledge about.

Finally you need some basic match skills, as well as knowing your language. If you don’t know about the Modulo operator (available in all programming languages I know), you will struggle with your Fizz-Buzz code…

 

Aptitude

This is really a combination of everything listed above. Either you have it, or you don’t. You can’t teach aptitude.

Despite the enormous changes which have taken place since electronic computing was invented in the 1950s, some things remain stubbornly the same. In particular, most people can’t learn to program: between 30% and 60% of every university computer science department’s intake fail the first programming course. Experienced teachers are weary but never oblivious of this fact; brighteyed beginners who believe that the old ones must have been doing it wrong learn the truth from bitter experience; and so it has been for almost two generations, ever since the subject began in the 1960s.

Saeed Dehnadi and Richard Bornat, School of Computing, Middlesex University

 

So if you don’t have passion and aptitude for programming, perhaps you should consider some other type of work? The world don’t need more programmers who can’t program. But we need to find the ones that have the aptitude and passion and help them become better programmers, or at least give them the chance to learn.

Luxor ABC 80 computer

The year I started 7th grade, a computer club was founded in my school. I had never programmed before, but I liked technology and had a cousin who worked as an engineer at Hewlett-Packard in Sweden, so I joined the club from the beginning.
In order to get an access card to the computer room, we had to take a couple of evening classes in Basic programming and general computer knowledge. While I was waiting for the classes to begin, I went to the library and borrowed a book on programming, read it and wrote programs in a notebook, just to understand the principle. When the classes started, I already had a good idea about how it worked, and soon I was spending all my free time after school in the computer room.

Atlas – My graduation project in High School

Over the next 6 years, I spent probably an average of 3 hours per day writing code, understanding how the computers worked, testing and learning different programs, and exchanging ideas with other and older students. I even choose programming (combined with geography, another favorite subject of mine) to be the subject of my graduation project. Together with my best friend, we calculated that we spent about 800 hours on the project. It even involved me writing a graphics program first, to allow us to draw the maps to use in the program…

We need to give the students of today, starting already in Middle School, the opportunity to learn programming. They need teachers with real work experience as programmers, not just theoretic experince. I know that for example Bruce Elgort (well known in the Lotus/IBM community) is teaching programming at Clark College in Vancouver, WA. But I think we need to find the students with aptitude for programming much earlier and help them become successful.

Perhaps with better education in the US, there would be less of a need to import foreign workers on H-1B visa. Or at least the companies would have a harder case to argue for importing less costly workers from India and China if there were enough good programmers already living in the United States to hire.

 

5 Comments

Are inexperienced developers the death of Notes?

Lately I have been more active in the IBM DeveloperWorks forums, as well as on StackOverflow, trying to help people with development problems. As I am just myself starting with Xpages, I been staying in the forums for "classic" Notes development.
I have noticed a trend, based on the postings. It seems like there is a substantial number of new developers who are not very familiar with Notes/Domino development. They sometimes think Domino works like a relational database.
There are then several who are posting about very simple things, that can easily be found in the online help, or by looking at the properties for an element. Like how to extend the last column in a view to use all available space.
There was even one user asking about how to duplicate a specific @Formula in Lotusscript, when the help file got a cross reference to the class and method to use…

There are others who does not seem to even understand the basics, either when it comes to programming in general or specifically of Notes/Domino.
Some of them don't understand data types. They declare a variable as integer, then make a calculation that results in a value of say 3.5, and is then wondering why the result is 4.
Others don't understand the difference between strings and variables, they are surprised when @SetField("myField"; "myField + 1") does not give them the expected result (the value in the field ‘myField’ increased by one).

On StackOverflow it is possible to see what other areas the user posted in. Some of the users seems to have a background in Java, SQL, .NET or other platforms. My guess is that they been thrown into a Notes projekt after their company took on a new development project, with the hope that they could learn it quickly. I think this could be dangerous, from some of the code I have seen, the lack of experience and understanding of the Notes/Domino platform will cause sub-standard or slow code, which of course will make executives think that Notes is a bad development platform. After all, if the expensive consulting company (or the off-shore based development house with all developers being at least Ph.D.) can't write fast and good code, the platform must be at fault, right?

Another thing I noticed over the last year or so is that in the Notes-related groups on LinkedIn, there has been a number of requests for the answers to the IBM certification tests. They have originated from both some big consulting companies and from within IBM. None of them were from the US (or Europe, if I remember correctly), but from countries more traditionally associated with outsourced or "off-shore" development. My guess is that the companies want their developers to be certified on paper, as they can either charge higher rates, or pass themselves off as being “experts” on the platform.
A number of the questions in the DeveloperWorks forums were posted under names that often are associated with the same countries/regions.

What I think we are seeing is the result of American and (in some part) European companies using cheaper off-shore development companies in order to save money. What they don't think of is that, unless the developers has a good knowledge of the product, that a local developer with many years of experience will create the same or better result in a much shorter time. So even at a higher hourly rate, the end result will be less expensive as well as better.

I want to make it clear that I don't think all developers in the countries typically associated with off-shoring (India, China, Russia, the Baltic states, Brazil, etc) are bad programmers. I know very competent developers from several of those countries, and I know some not-so-good developers in Europe and North America.

What I am afraid of is that off-shore development companies takes on Notes-projects, expecting (or hoping) their staff will quickly learn the product/platform and quickly develop the requested solution. In the process they are making Notes look bad as they don't understand the platform.
At the same time, the companies that is purchasing the solution are just looking at the hourly rate, and perhaps an initial estimate of how quick and inexpensive (due to low hourly rates) the project is promised to be completed. In the long run, I fear that Notes/Domino as a platform will suffer because of this.

The project management triangle  is still true:

You are given the options of Fast, Good and Cheap, and told to pick any two. Here Fast refers to the time required to deliver the product, Good is the quality of the final product, and Cheap refers to the total cost of designing and building the product. This triangle reflects the fact that the three properties of a project are interrelated, and it is not possible to optimize all three – one will always suffer. In other words you have three options:

Design something quickly and to a high standard, but then it will not be cheap.
Design something quickly and cheaply, but it will not be of high quality.
Design something with high quality and cheaply, but it will take a long time.

ProjectTriangle

Of course, an experienced Notes/Domino developer can make the rule somewhat invalid, but it requires extensive experience. 🙂

I don’t have a good solution. Perhaps companies thinking about outsourcing development need to be more diligent at selecting developers, requesting details about their previous experience, etc. Perhaps they need to ask more questions, including how many years of Notes/Domino experience the developers have. Personally, I would not suggest hiring a consulting company who haven’t had a presence at Lotusphere or at least had some of their developers speak there or at any of the LUG-conferences around the world. Many of the best Notes developers also got blogs where they post code and/or information, I would require a link to some blogs as well, so I could judge the quality of their code.

 

0 Comments

End of content

No more pages to load