Friday, July 24, 2015

Need sources of "IT for youth" (not programming)

At a recent event there was a participant who posed a serious problem. She has plenty of resources available to assist young women who are interested in learning to code. She also knows plenty of young women who are interested in other STEM topics in general but not interested in programming. Young women who have tried to code but found it is not for them. Learning the basic concepts of programming in order to understand the logic is great and important but there are other aspects to the IT world than just programmers. This event participant was looking for ways to interest (or keep interested) young women in information technology with tasks other than programming.

I keep meaning to put together a panel presentation for conferences about how to contribute to or make a living with open source when you do not consider yourself a programmer. I know people that do design, testing, documentation, security compliance, administration, and community management. They all have technical skills with various levels of scripting knowledge or have formerly been programmers. At least one has done special programs with the schools (teaching the use of InkScape) and is hosting a summer intern to assist with her UX job.

My panel idea is focused around contributing to open source projects and is targeted more at adults. It is a starting point for ideas. However, there are other IT related projects that can be of interest to youth (and other non-programmers) interested in other aspects of computers.  [Note: these are US infinitives aimed to help a group in Florida]

I believe that the event participant is a system administrator who can script and work with devops but does not consider herself a coder - much like my background. She is looking for ideas on how to share the message with today's youth that there is more to computer science and information technology than being a programmer. Here are some of my thoughts:

Originally for Junior ROTC programs but expanded to any high school group.

USFirst - Teaches teamwork through robotics which involves design and electronics as well as the programming.

Kaggle - "The Home of Data Science" has competitions that teach data science concepts and contribute to all kinds of research. Many projects need some scripting (coding) skills but others are more about statistics, graphing, and visualization. Check out the tutorials section.

Also check out local meetups and ask for assistance presenting options to youth. Look for groups such as:

  • HackerSpace or MakerSpace or Makers groups
  • Any group inventing with Raspberry Pi, Arduino, or similar devices
  • Meetups entertaining wearable electronics topics.
  • Groups working with 3-D printers (perhaps even for a good cause like

If anyone knows of programs specifically teaching system administration or network administration to youth, let me know so I can pass on the links.


Thursday, July 23, 2015

A non-coder CAN contribute to open source

I am a Fedora Ambassador. I am Linux instructor. I am an advocate for Open Source initiatives be it project management, government, code, or anything else. It drives me bonkers when someone says they are not involved with an opensource community because they "don't code".

I attended Open Source Day at the Grace Hopper celebration several years in a row. Over and over I asked if someone was going to stop by the event and was told "No, I don't code". Over and over I tried to explain the many other ways of contributing to opensource projects.

Thankfully the past few years have brought much more awareness in this realm. More and more projects have a community advocate. Conferences like OSCON promote community building, documentation workshops, and how to let people know how they can contribute. Conferences like "All Things Open" promote the idea that not all opensource is about code.

Non programmers can write docs. They can design logos. They can help with user interface design. They can test fixes or new features. They can triage bugs by verifying that the submitted report can be recreated and adding additional details, logs, or config files. Larger projects need some infrastructure support that is more administration and security compliance than Java programmer. Many people who consider themselves non-programmers do have some pretty good scripting skills and can assist with packaging for distributions.

Meanwhile many (not all) programs to enhance diversity in opensource projects (a much needed enhancement for many projects) appear to focus on the coding side of things. Girls who code, pyLadies, OutReachy, and even Google's Summer of Code. Some are more in name than content. For example I know of at least one summer of code project that was more about documentation and packaging than programming. OpenHatch on campus programs are focused on programming contributions but their database of projects looking for assistance also includes a category of bugs labels as documentation.

Additionally - and much worse - calls for more contributions that end in hashtags like #programmer or look for "non-technical" people to write docs and test code, just further alienate non-programmer contributors. I may not feel like a "coder", but I am definitely "technical" and I can and do contribute to open source projects.

I wonder how those that complain "we have too many users and not enough contributors" count those contributions?
  • Is is purely with the committer logs to the code source?
  • Do they count contributions to documentation? Or infrastructure trac systems?
  • What about (valid) bug reports?
  • The person that tests fixes, new features, or early release code AND provides feedback in crucial to a project. Are they a user or a contributor?
  • What about the person who helps out other users on a mailing list or in a chat room only a user or are they also a contributor?
  • Do the project developers really want to provide all the support and bug triaging in addition to writing the code and test suites?
What is the distinction between committer and contributor? Does it matter? Should it matter? The nature of open source is that anyone can use it without contributing back. Contributions may be the currency of open source (another OSCON quote), and suggestions, requests, and word of mouth advertising  may only be worth pennies, but they are contributions and just as important to a project as the trackable technical contributions. Once you catch and real in the interested technical contributor that can help out so much with non-programming tasks, what is to say they won't learn some programming along the way and even create a patch or even a new feature for your project in the future! Meanwhile they are doing other valuable work so programmers can code.

There were two talks at OSCON this year that I missed but by their descriptions address some related concerns:


Tuesday, July 21, 2015

My Linux Story

This post is inspired by themed weeks. In January there was a theme of "Open Source Careers" for which I never got organized enough to write my story.  I recently found my draft and did not find it totally horrible.  I think the site is still running "My Story" articles and I thought of submitting it there, but to me it is not that exciting.

I am Technical Trainer and Consultant specializing in Open Source technologies. The majority of my career has centered around Linux operating system deployment, configuration, and interoperability. I mostly work with Red Hat products and their upstream and downstream projects. For the past two years I have also worked with Cloudera and projects related to the Apache Hadoop ecosystem. I also have a particular interest in security topics.

For over 15 years I have earned a living working exclusively with Open Source products but how did I get here?

In many ways it started before Linux existed. In college I had friends who were "admins" in the engineering computer lab. I did not do so well in my CS programming classes but as a hobby and to spend time with my friends, I learned a bit about newgroups, ftp sites, and Unix systems. As a data aide student intern, I realized I made a good translator between the astronomers and the C programmer computer support staff. I could read just enough code to identify the problem area and not enough to actually fix it.

Fast forward to the adult life of entry level jobs. My experience as a user landed me the opportunity learn system and network administration for a PC Helpcenter. This is where I learned about network operating system installation, configuration, and interolperability. When Linux hit the enterprise I jumped on the opportunity to learn, support, and teach Red Hat Linux, SuSE, Caldera, and Turbolinux- not all of which exist today.

Initially almost all of the students in any Linux Administration class were already sysadmins using other operating systems such as AIX, Solaris, HPUX, and NT. Now I have students who are new to system administration learning directly on Red Hat Enterprise Linux. There are a number of colleges teaching distributed computing using Linux including some using books I have contributed to as a reviewer. You do not need to learn other systems first anymore.

By the year 2000 I was working exclusively with Linux products. I earned a living teaching as an independent contractor with a variety of distribution delivery partners. I expanded my skills by finding ways to contribute to the upstream projects and I always encouraged students new to Linux to do the same.  I became a contributor to Fedora through the Docs project and as an Ambassador. I followed the infrastructure team but never found the consistent time to be a true contributor. I participated in test days, did some bug squashing and helped document packaging guidelines.

I still do not consider myself a "coder". I am not a C programmer or a Java developer. I can read just about anything and I have not survived the work of sysadmin without learning a fair amount of scripting. The Free and Open Source Software (FOSS) ideals have made it possible for me to excel even with the mental block against learning to code. I understand the logic, I can architect the psuedo-code, but I am not good at writing from scratch to correct completion. With FOSS, I can find scripts that are close to what I need and play around until I get what I need. I often do not ever have to get a full section of code written without a solid example on hand. Configuration management products such as Puppet, Chef, and Ansible and deployment products such as Spacewalk, Cobbler, and Ambari also help with automation without having to do the sometimes complex structural programming and error handling.

I love teaching. I love seeing the light bulb come on when a person figures out how something is supposed to work. I love figuring out how new products work and where they fit in the market. I love learning and I always learn something new when teaching. These days I do less daily administration and support tasks but more architect design. I also have spent more time testing products and writing instructions - for myself, for book reviews, for curriculum, and for conferences.

With new and emerging technologies such as Apache Hadoop, OpenStack, and Docker there is always more to learn.  I am still a Fedora Ambassador but over the past couple of years, I have not had (or made) the time to contribute to other subgroups.  I am actually looking for new, smaller project to get involved in next.  Probably something in the Hadoop ecosystem related to security. I am sure I can make contributions through testing, bug triage, and documentation.


NCAA rant Part II: How much blame goes on the faculty vs the coaches?

It may be the job of the NCAA to ensure academic eligibility. It is the job of the academic institution to provide quality education.  I think the coaching staffs should put more pressure on the public schools to make sure talented athletes are prepared to enter college academically. There are many ways to learn and many ways to be "brilliant", "gifted", or "smart" [See Disrupting Class ISBN-10: 0071592067].  From grade school to graduate school; from coaches to NCAA advisory boards; we can all do better for the kids.

Once in school, the university provides advisers and tutors for all students, including the student athletes.  The coaches should be reviewing the measurable stats - how many credits, completion of required classes, and grade point averages. Most also review stats such as attendance in class and at study hall or tutoring sessions.

Critics believe that the coaches should have known that the classes were not up to standards.

The coaches should be checking in with the student athlete that they are being given the opportunity to learn what they want to learn. During the same time period that is being investigated, women's basketball athletes completed degrees in a variety of departments including sciences (pre-med). A student approaching the staff (both coaching staff and academic adviser staff) with a particular goal was assisted in achieving that goal. For those students unsure of options outside of sports, everyone - parents, students, coaches - rely on the provided faculty advisers for guidance. How would a coach, who is provided with an faculty adviser for the team, be expected to realize that there were classes given that did not meet the expected standards.

There was misconduct at the university. It has affected the accreditation status of the institution. That decision was "probation". Does the NCAA really have the need (or even the right) to pile on punishment? Especially when that punishment will have the greatest impact on student athletes that were not even enrolled in the university at the time of the misconduct. Additionally, if it the academic side that was offering bad classes, why is the university athletic department not backing all of their coaches?

I'm not the only person wondering.

I can actually understand the university holding off on a contract extension, but purely as a financial decision. There are plenty of reasons to extend the contract. There is a big question about the amount of monetary fines that may come from the NCAA which could have an affect the salary of the contract renewal. Too bad the department cannot comment in ongoing investigations. Like I previously posted in part I of my rant... the extended time frame involved in this investigation only hurts the next class of students. 


NCAA rant Part I: Don't punish the younger siblings.

I have nothing but well wishes for the UNC Women's Basketball students who have chosen to transfer. They need to do what is right for them and their futures both on and off the court. [It was much fun watching Ms. Muvunga play with Team USA in the Pan American Games]

What I do not like is the future generation paying for the sins of the past. Or any of the actions that many people must put up with because of the bad behavior of a few. A few successful terrorists and an explosive devise in a shoe means we all take our shoes off at the airport.  A reputation of gang members or criminals hiding in hoodies results in hard times for men, and particularly dark skinned men, wearing hoodies.

UNC student athletes in all sports are getting a bad rap because of transgressions in the past. Don't get me wrong, I believe that individuals and institutions should be held accountable for their actions. But when the 18 year old gets in a car wreck you don't take the keys away from the younger siblings.  Why, especially when the process is so long, should the current players be sanctioned for the benefits received by the past teams Worse in this case is that those students were doing as advised by the grown ups and did not know they were getting inappropriate benefits. Of course, these classes where also offered to students not on academic scholarships - so is it really an inappropriate benefit per NCAA?  Or just violations of academic accreditation - bad yes, and accreditation is used as one of many qualifiers for NCAA eligibility, but accreditation violations are investigated and sanctioned by a different body, not the NCAA.

As an alum and fan, I am tired of the current students being laughed at for attending UNC. Being bullied and teased and questioned about their classes.  The UNC School of Journalism and Mass Communication is one of the best in the country. As are a number of other programs but I point that out as a department and subject that many athletes are interested in for after their playing careers.  Others choose nutrition or exercise and sports fitness in hopes of staying in the field as trainers or coaches.  Again, departments not implicated in the scandal.   Don't blame this years kids for the bad behavior of adults 5 years ago.

The school has proven enough reform to retain accreditation even if it is with probation. If the NCAA decides the school should receive sanctions, they need to find a way for that to affect the past teams and not the future teams.  Make the school pay back all earnings from the relevant post seasons, maybe even fine them the amount earned by the winner of those NCAA tournaments. Vacate wins if you must. Forfeit earnings from upcoming post season play. But preventing future teams from playing post season, being seen by scouts, earning the trophy and the rings is wrong.  It is taking the keys away from the younger siblings for the errors of the older children (and the parents). Stand behind these kids and say that the program NOW is in good shape both on and off the court.