New Paths for the Turtle

Turtle graphics, a popular approach to introducing young learners to programming, traces its roots back to the original Logo programming language. Logo, an educational programming language designed by Seymour Papert and others in 1967, played a significant role in the development of this technique.

My personal journey with Logo began during my time as a graduate student in education. As a young adult, I struggled with mathematics, finding abstract concepts elusive and distant, while others seemed to grasp them effortlessly. Mathematics became an enigma, something I couldn’t connect with. However, everything changed when I entered graduate school and was given the task of teaching geometry to a fifth-grade student using a special curriculum that leveraged Logo and its Turtle graphics feature.”

A friend suggested several years ago that I learn Python. I had dabbled with computer programming but never stuck with it. He invited me to sit in on a staff development session on using Python in educational settings. Fortunately for me, he introduced them to the Python ‘turtle module.’ There was a connection immediately to my earlier experiences with Apple LOGO, and I began to experiment. I was comfortable on the command line but new to the Python REPL. Nonetheless, I opened a new session and began by importing the ‘turtle module.’

don@pop-os:~$ python3
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

I imported the turtle module and followed my friend’s example. He was on a MacOS computer while I was using a Linux laptop. The results were nearly identical, though.

I enjoyed moving the turtle around the screen and drawing some simple shapes. The true potential of Turtle lies not merely in its capacity to execute commands but in its ability to foster procedural thinking and encourage students to reflect on their thought processes. With the aid of Turtle graphics, programming students can receive instant visual feedback from their code and simultaneously explore mathematical concepts, such as estimation and variability.

Reading books like “Teach Your Kids to Code” by Bryson Payne and “Python for Kids” by Jason Briggs, I learned more about the ‘Turtle’ and Python in general. My love of learning and teaching invited me to think of how I could share this with others. In the past half dozen years, I have taught homeschool classes and conducted workshops in public libraries.

I recently completed a three-day session in a nearby public library. Each of the participating youngsters received a Raspberry Pi 400, which they learned to set up and connect to library-supplied displays and the local area network. The main focus of our classes was getting them started programming with Python. We used the Mu editor included with the Raspberry Pi operating system. In a bit less than three days, the students learned how to program the turtle using simple commands at first, then progressed to ‘for’ loops and the ‘random’ module. Each of the participants was able to take their library-supplied Raspberry Pi 400 home with them.

There is nothing more exciting than seeing students excited about learning. I encourage you to share your skills with young learners wherever and whenever you can.

My open source story

In 1995, an email from my brother introduced me to Linux. Although I had heard of a high school student using Linux to build a web server, my knowledge was limited. Intrigued by my brother’s recommendation, I purchased a copy of Red Hat 5.0 from a nearby computer store. However, my initial attempt to explore it on an older computer resulted in a command prompt without success in running Xserver, leaving me unimpressed. A year later, I stumbled upon Red Hat 6.0 during another visit to the store. Taking it to work, I successfully installed Gnome on a Hewlett-Packard Vectra 75 with a Cyrix processor upgrade. This experience sparked my interest further.

The Red Hat 6.0 distribution came bundled with fascinating software like the Mozilla browser and OpenOffice 1.0, which I hadn’t encountered before. Excited about this discovery, I shared it with my IT team, and together we experimented with another machine. While we could browse Yahoo Mail using the browser, our workplace’s official email system, Lotus Notes, remained inaccessible. It was around early 2001 when I expressed my dissatisfaction with content filters to a vendor, and he suggested I build my own using Linux. This suggestion was an epiphany for me.

With minimal knowledge of Linux and no prior experience building a content filter, I embarked on a rapid learning journey. Armed with a Dell Optiplex GX1 equipped with a Pentium II-300 processor, I upgraded the hard disk and purchased Suse Linux 7. Through my exploration, I came across Squid and Squidguard and discovered Mandrake Linux, which appealed to me for various reasons. I also learned about the Red Hat Package Manager. Leveraging these newfound tools, I successfully built the first non-proprietary content filter in the history of Western New York’s public schools. Initially using Mandrake and later Fedora Core 1 on the older Dell machine, I employed Squid and Dansguardian to meet the requirements of CIPA compliance with E-rate. Although I faced some resistance from other technicians, I gradually demonstrated the legality and practicality of this solution over time.

This was just the beginning of my Linux journey. While developing the content filter, I delved into Samba and created our first network-attached storage device, providing our teachers with a reliable file backup solution. Subsequently, we built a Samba server running Fedora Core 1 and 2. I found stories of other schools utilizing Linux and learned about the K12 Linux Terminal Server Project. I taught myself Linux and Linux system administration through online forums, Google searches, and several books. I became a passionate advocate for open source, often promoting it at regional technology coordinator gatherings.

Using idle computers tucked away in closets across our school, I assembled a working demonstration of the K12 Linux Terminal Server. With an old Pentium II-300 boasting a mere 192 megabytes of RAM, I acquired special boot ROMs and repurposed additional older computers as thin clients for the server. One of our principals was so impressed with the results that he suggested implementing this solution in one of our computer labs. The success of the trial led to equipping two computer labs and numerous computers in classrooms and libraries with the K12LTSP solution. As the project expanded, we needed a more robust server and acquired a Dell PowerEdge with an advanced RAID controller. However, this setup proved incompatible with K12LTSP packages on Fedora Core 4. That’s when I discovered K12LTSP on CentOS. We adopted the CentOS 4 LTSP server as our DHCP server, seamlessly integrating it with Microsoft’s Active Directory. It served us well for over three years until we eventually virtualized our servers using VMWare ESX.

My foray into learning Linux empowered me to explore and create in ways I never imagined possible. Initially, open source presented challenges, with some components requiring unfamiliar configurations. However, I overcame these obstacles by relying on search engines and reading forums on the internet on Red Hat, Fedora, and other Linux user groups. Subsequently, I secured grants funded by our New York State Legislature, allowing me to attend Red Hat System Administration training in March 2003. A year later, another grant facilitated my participation in the Linux Boot Camp hosted by Training Camp and taught by Ross Brunson. Brunson’s teaching method involved building a system “from the ground up” with Red Hat 7.0, starting with the command line and gradually transitioning to a graphical user interface.

Equipped with experience and training, I became a resource for other regional school districts. Recognizing the tremendous potential of teaching students Linux, I seized every opportunity to do so. Unlike other operating systems, Linux allowed students to learn the fundamentals and progress to building their files and web servers. I utilized tools like VirtualBox to virtualize other Linux systems, such as Ubuntu and Debian, providing students with additional learning opportunities. Beyond developing a deep understanding of the operating system, my students and I familiarized ourselves with various open-source projects such as Audacity, OpenOffice.org, Apache, WordPress, Drupal, and Moodle, to name just a few.

The open-source ethos resonated with my desire to serve individuals and small businesses, which continues to this day as I work as a consultant for my own information technology business.

The foundational knowledge that propelled me toward advanced studies continues to animate my life and career. I teach young people and adults about Linux using platforms like the Raspberry Pi computer at our local library and other venues. Linux and open-source software have also spurred my exploration of social entrepreneurship, heavily influenced by what I have learned and witnessed within the open-source community. Later this month, I will be able to teach middle school students how to use Raspberry Pi 400 computers and Python at a local library.

This article is adapted from https://opensource.com/life/15/6/my-linux-story-don-watkins

4 Ways Open Source Software Can Improve Education

Everyone deserves an equal opportunity for a good education. But, we all know that some folks have monetary constraints that make those educational opportunities less likely to occur. I taught in a school district with a high percentage of rural poverty and our students did not have access to the opportunities that their urban and suburban peers. Closing that gap was always on our minds. That’s when we discovered open source software. Here are four ways that open source software levels the playing field for students.

  1. Cost-effectiveness. Open source software like LibreOffice, provides students with state of the art software that ensures that any document they create is theirs to keep and share with their teachers and classmates. Access to the same software with identical file formats ensures that everyone can share information easily. This is especially important for schools and universities that are operating on tight budgets.
  2. Flexibility. Open source software is typically very flexible and customizable.. There is no vendor lock-in. There are no contractual limits on deployment. Every student and teacher can have a copy of the software and they are free to share it with their family too. Support from active communities of users and excellent documentation are key selling points.
  3. Security. The source code of open source software can be inspected by anyone making it less likely that malicious code could be hidden from view and can more easily be found by security teams. Open source software is updated more regularly than proprietary products. This is because the open source community is constantly working to improve the software, and they are able to release updates more quickly.
  4. Collaboration. The open source community is a large and vibrant community of developers who are constantly working to improve open source software. This means that educational institutions can tap into a wealth of expertise and resources when using open source software.

Here are some examples of open source projects and communities that have a direct connection to education.

  • Moodle: Moodle is an open source learning management system (LMS) that is used by millions of students and teachers around the world. Moodle is highly flexible and can be customized to meet the needs of any educational institution.
  • Jupyter Notebooks: Jupyter Notebooks are a popular open source tool for creating and sharing interactive documents that contain code, text, and visualizations. Jupyter Notebooks are an excellent way for students to learn how to code and to share their work with others.
  • GCompris: Gcompris is a free and open-source educational software suite for children aged 2 to 10. It includes a wide range of activities.
  • Gimp: Gimp is a free and open source raster graphics editing package that is used for image editing and manipulation. Gimp is available on Linux, MacOS and Windows.

Open Source Software: A Cost-Effective, Secure, and Flexible Option

Open source software is developed and distributed under a license that gives users the right to use, modify, and redistribute the software. When you purchase proprietary software, you don’t own it. In many cases, proprietary software is effectively leased to you for a set period. Many companies force their customers to upgrade to newer versions to continue to have access to their creations. That is not the case with open source software. Open source software is the best value in the market, and here are five reasons why that is so.

1. Lower costs

One of the most significant advantages of open source software is its low cost. This can save businesses a significant amount of money on software licensing fees. I am writing this blog with MarkText , a simple yet elegant editor that’s available for Linux, MacOS and Windows.   It saves my work by default in MarkDown, which is an open source format. I can export the file to HTML or PDF or I can copy and paste it directly into LibreOffice Writer or into my WordPress blog. In all cases, I own my work without needing a license for the software.

2. Flexibility

Open source software is often very flexible and customizable. This means that businesses can tailor the software to their specific needs. Businesses and individuals can modify their software or move from one application to another with compatible formats. One of my clients had files written and saved in a proprietary format that was no longer accessible because the proprietary software was no longer on the market. I was able to open and save the person’s files using LibreOffice Writer because it had the filters built into it that allowed that to happen. You can imagine the delight my client felt when her work of many years was made freely available to her in a format that was accessible using a free product.

3. Community support

Open source software often has a large and active community of users and developers. This community can provide support for the software. These communities are responsive to the needs fo users because they have a share interest in the success of the software and are part of a caring community committed to the development of quality software and the maintenance of the communities, many of which are governed by codes of conduct which ensure respect for the users.

4. Security

Open source software is often very secure. This is because the software is constantly being reviewed and audited by a large community of users and developers. This helps to identify and fix security vulnerabilities before attackers can exploit them. An adequate number of eyes on a project ensures that bugs in the software are quickly identified and quickly fixed.

5. Innovation

Open source software is often a source of innovation. By its very nature open source software frequently leads to rapid innovation as communities form around projects of common interest. With a quick look at Github and Gitlab one can easily find new projects or forks of older projects that are leading to new solutions. The development of the Linux kernel and the subsequent proliferation of nearly six-hundred different distributions, each one customized for its community, is but one example.

Conclusion

There are many good reasons to use open source software. These reasons include lower costs, flexibility, community support, security, and innovation. If you are looking for a cost-effective, flexible, and secure software solution, then open source software is a good option to consider.

Here are some additional resources about open source software:

I hope this blog post has been helpful. If you have any questions, please feel free to comment below.

Linux Mint: A Stable and Reliable Operating System for Your Everyday Needs

I own two laptops. One of them is a System76 Darter Pro which is the older of the two computers. It came with Pop!_OS preinstalled when I bought it over four years ago. I’ve experimented with Fedora, Ubuntu and Linux Mint on this computer, and I’ve settled on Linux Mint because its easy to use and its a great way to introduce new people to Linux. I have found Linux Mint to be the easiest way to transition folks who are former users of MacOS and Windows. There are three main reasons that I recommend Linux Mint.

First, the software is also open-source, meaning anyone can contribute to its development. This makes Linux Mint a very cost-effective and secure operating system. Second, it’s easy to use. The Cinnamon desktop is very similar to Windows and MacOS, so new folks will find it easy to get up and running. There are also a wide variety of tutorials and documentation online to help them learn more about Linux Mint. Third, the distribution is stable, reliable, and regularly updated. Linux Mint is based on Ubuntu and Debian and it’s been under continuous development since it was first released in 2006.

The Cinnamon desktop is very intuitive, and most folks who are at least a little computer savvy can easily find the software that they need to accomplish the tasks they want to. The power of Linux Mint is simple enough for a neophyte to use yet powerful enough to satisfy the needs of a power user. Linux Mint’s ‘Software Manager’ is easy to find in the ‘Main Menu’, and if you can’t find it there, you can begin typing ‘software…’ in the default search bar at the top of the menu. I have found that most of the software that I need to be productive is found in the default install, but other software can easily be added from the command line or the ‘Software Manager.’

Linux Mint supports ‘Flatpak’ out of the box which is another feature I have come to appreciate which is different from its upstream Ubuntu base. Linux Mint also comes with a ‘Backup Tool‘, which makes it easy to backup your important files to another disk. Linux Mint is powerful yet doesn’t burden your system even if you have a computer past its prime. Linux Mint is designed with privacy in mind, so it is not sending your information to a third party. Mint is easy to use yet powerful enough for developers.

Why Flatpaks on Linux Make Sense for Users

Introduction

Linux is celebrated for its flexibility and customization options. However, one aspect that has historically presented challenges for users is software installation and management. Thankfully, the advent of Flatpak has revolutionized the Linux ecosystem, offering a solution that simplifies software deployment and enhances user experience.

Streamlined Software Distribution

Flatpak, a universal package management system, allows users to install and update software from a central repository effortlessly—no need to look for the latest package or manually resolve complex dependencies. With Flatpaks, you no longer need to worry about conflicting library versions or package compatibility issues, as applications are bundled with all their necessary dependencies, creating a self-contained environment. This streamlined software distribution ensures a seamless experience, freeing users from the burdensome tasks of dependency hunting and manual installation.

Enhanced Security

Computer users ‘ security is a paramount concern, and Flatpaks significantly boosts this area. By encapsulating applications and their dependencies within sandboxes, Flatpak offers a layer of isolation that helps prevent software vulnerabilities from compromising the entire system. Each Flatpak runs in its container, limiting its access to system resources and ensuring any potential security breaches remain within the sandbox. Moreover, with frequent updates and security patches available through the central repository, users can easily stay protected against emerging threats.

Application Portability

One of the standout advantages of Flatpak is its ability to run applications consistently across different Linux distributions. By packaging applications with their necessary libraries, Flatpaks eliminate compatibility issues and allow users to enjoy their favorite software regardless of the underlying distribution. This application portability level dramatically simplifies switching between different Linux flavors or even sharing applications with friends and colleagues. With Flatpak, you can say goodbye to the frustrating search for software that works on your specific distribution.

Isolated Environments for Testing

Flatpak provides an excellent environment for testing new software without the risk of destabilizing your system. Creating isolated application sandboxes allows you to freely experiment with beta versions, bleeding-edge releases, or even unfamiliar software without worrying about potential conflicts or unintended consequences. This remote testing environment safeguards your system from potential harm and allows you to explore and discover new software confidently.

Community-driven Collaboration

Flatpak is an open-source project that benefits from a thriving community of developers and enthusiasts. This collaborative ecosystem ensures a wide variety of software is available in Flatpak format, with developers actively contributing to the central repository. Moreover, Flatpak empowers users to provide feedback, report bugs, and even contribute to the packaging efforts, fostering a sense of ownership and community participation. By embracing Flatpak, users become part of a more significant movement that aims to enhance the Linux experience for everyone.

Conclusion

In conclusion, adopting Flatpaks on Linux offers users various compelling advantages. From streamlined software distribution to enhanced security and application portability, Flatpak simplifies the once-complex landscape of software management on Linux. With isolated testing environments and a vibrant community-driven ecosystem, Flatpak paves the way for a more user-friendly and inclusive Linux experience. 

This article was written with an assist from ChatGPT.

Introducing Whisper

I love interviews. It’s a great way to get to know a person and it’s often a great way to learn. One of the most challenging aspects of interviews is capturing exactly what the interview subject had to say. I have used my mobile phone to capture a subject’s voice. I have also used Audacity. In both cases, I am left to transcribe that content into written form. Now the paradigm is changing with the advent of Whisper which is an openly licensed program developed by OpenAI. According to OpenAI’s website introducing Whisper, “Whisper is an automatic speech recognition (ASR) system trained on 680,000 hours of multilingual and multitask supervised data collected from the web.”

It’s an amazing software and easy to install on Linux which is my daily driver. I used Pop!_OS but you can easily install Whisper on Fedora-based distributions also. You need to make sure that Python is installed and you can easily test that by entering the following command.

$python3 –version

In my case the result was

Python 3.10.6

Then install a Python virtual environment.

$ sudo apt install python3.10-venv

Next, you need to install Python pip3

$ sudo apt install python3-pip

Initialize the Python virtual environment for Whisper with

$python3 -m venv whisper

I changed into the ‘whisper’ directory with

$cd whisper

Finally, I installed ‘whisper’ with

$ pip3 install whisper

Now I am ready to use this amazing new tool to transcribe mp3 and mp4 files into easily readable text. If you don’t have any and you would like to try out Whisper you can point your web browser at Librivox and download a free book or part of one. I chose Robert Frost’s ‘Mending Wall’

I can use ‘whisper’ from the command line to convert the mending wall mp3 to text

$ whisper 04_mending_wall_frost_bc.mp3 –model base

In a little over a minute ‘whisper’ has converted the ‘mp3’ to text that can easily be read. The conversion outputs 5 files. One of them is a text file with the text of the ‘mp3’. Here are the first few lines taken from 04_mending_wall_frost_bc.mp3.

“Mending Wall by Robert Frost, read for libravox.org by Becky Crackle, November 16, 2006, Canal Winchester, Ohio. Something there is that doesn’t love a wall that sends the frozen groundswell under it and spills the upper boulders in the sun, and makes gaps even too can pass abreast. The work of hunters is another thing. I have come after them and made repair where they have left not one stone on a stone, but they would have the rabbit out of hiding to please the yelping dogs.”

As you can see the results are accurate

You can create a Python script to automate the process.

import whisper

model = whisper.load_model(“base”)
result = model.transcribe(“04_mending_wall_frost_bc.mp3”) print(result[“text”])

Using the Python script provides a much cleaner output.

“Mending Wall by Robert Frost, read for Librevox.org by Becky Crackle, November 16th, 2006, Canal Winchester, Ohio. Something there is that doesn’t love a wall that sends the frozen groundswell under it and spills the upper boulders in the sun, and makes gaps even too can pass abreast. The work of hunters is another thing. I have come after them and made repair where they have left not one stone on a stone, but they would have the rabbit out of hiding to please the yelping dogs. The gaps I mean, no one has seen them made or heard them made, but at spring-mending time we find them there. I let my neighbor know beyond the hill, and on a day we meet to walk the line and set the wall between us once again. ”

Whisper has an MIT license

Vegan Zucchini Quiche

I love quiche. I was looking for a vegan zucchini quiche recipe and I found one with ChatGPT.  I am anxious to try this recipe soon.

Ingredients:

  • 1 pre-made pie crust
  • 2 cups grated zucchini
  • 1 cup diced onion
  • 1 cup diced bell peppers (any color)
  • 1 cup diced mushrooms
  • 1 cup shredded cheese (such as cheddar or mozzarella)
  • 1 cup unsweetened almond milk (or any non-dairy milk of your choice)
  • 2 tablespoons nutritional yeast
  • 2 tablespoons olive oil
  • 1 teaspoon dried basil
  • 1 teaspoon dried oregano
  • Salt and pepper to taste

Instructions:

  1. Preheat your oven to 375°F (190°C).
  2. In a skillet, heat olive oil over medium heat. Add diced onion, bell peppers, and mushrooms. Sauté until the vegetables are softened.
  3. Add the grated zucchini to the skillet and cook for another 2-3 minutes, until slightly tender. Season with dried basil, dried oregano, salt, and pepper. Remove from heat and let it cool slightly.
  4. Place the pre-made pie crust in a pie dish and press it firmly against the sides and bottom.
  5. In a mixing bowl, combine the almond milk and nutritional yeast. Stir well to ensure the yeast is fully dissolved.
  6. Spread the sautéed vegetables evenly over the pie crust, followed by the shredded cheese.
  7. Pour the almond milk mixture over the vegetables and cheese, making sure it covers them completely.
  8. Place the quiche in the preheated oven and bake for 30-35 minutes, or until the crust is golden brown and the filling is set.
  9. Remove from the oven and let it cool for a few minutes before slicing and serving.

This zucchini quiche without eggs makes for a delicious and savory dish, perfect for brunch or a light dinner. Enjoy!

Traveling to Sudbury

We are about a week away from traveling north to Sudbury Ontario. We’ve never been there and that’s the charm of going. It’s going to be our 40th wedding anniversary and my wife wanted to visit a new place. So we’re off to Sudbury. It’s on about the same latitude as Escanaba Michigan which is a place we visited about twenty-five years ago.  I love to travel but I’m always mildly apprehensive at the same time too. What will the road be like? Are there gas stations in Northern Ontario? You know the usual things that an anxious person imagines.

We both love visiting Canada and this will be my second visit to the province this spring. Last month I drove up to Niagara-on-the-Lake and took in Prince Caspian at the Shaw Festival.  This trip is a much more ambitious undertaking. It’s about a three-hundred-eighty-mile trip almost due north. That’s six hundred sixteen kilometers which sounds more impressive. I’m trying to learn more about Sudbury and the route of the trip north which is on Route 400.   Podcasts are one of my favorite sources of information and I’ve been looking for ones that talk about travel in Northern Ontario.

Learning Git

I’ve had a GitHub and GitLab account for a number of years and I even have some code and other files on those sites.  Now I’m finally learning how to use Git. I’m part of a writers group that will soon be publishing our content using Git and I figured that maybe I ought to learn how to contribute to the content properly. Yesterday I found a really great video at LearnLinuxTV which provided me with a great introductory lesson and piqued my curiosity about learning more. I watched “How to Setup Your First Repository and Use Version Control.” I’m amazed at how useful Git is. I don’t know why I waited so long to learn the fundamentals.