Categories
Hardware Process Tampa Bay What I’m Up To

Scenes from Day 3 of the “UC Baseline” cybersecurity program at The Undercroft

Wednesday: Day 3 continued the heavy hands-on portion of Hardware 101, the first segment of my five weeks at UC Baseline, the cybersecurity training program offered by Tampa Bay’s security guild, The Undercroft.

After taking apart and reassembling a desktop, it was time to up the ante and do the same with at least one laptop. I started with a Dell Latitude E5500, a bulky beast by today’s laptop standards, but one that’s more user-serviceable — and more easily taken apart — than most.

First step: Removing the battery.

The bottom panel was easy to pop open. It was held in place by nothing fancier than standard Phillips screws, which provided easy access to the RAM.

Next on the removal list: The optical drive. Once again, pretty straightforward — remove some anchoring screws, and then use a flathead screwdriver tip to push the the drive casing out.

The fan was quite easy to remove, as was the CPU heat sink.

Unlike the previous day’s desktop machines’ CPUs, which were in ZIF (zero insertion force) slots, laptop CPUs aren’t typically swappable, as they’re generally soldered onto the motherboard. This machine had a notebook-grade Core 2 Duo, which was typical for a mid-level laptop in the Windows 7 era.

It was also pretty easy to remove the keyboard…

…and once that was done, detaching the screen was a simple process.

With the disassembly complete, I laid out and labeled the parts that I’d extracted:

“All right, next challenge,” said Tremere, our instructor for the Hardware 101 portion of the course. “Disassemble, then reassemble the small one…”

I flipped it over, pleasantly surprised to see standard Phillips screws that were easy to access:

At this size, a laptop’s battery-to-actual-computer ratio jumps significantly:

This machine was still intended to be somewhat user-serviceable, so the battery and RAM were still easy to remove:

The drive didn’t take much effort to liberate, either:

The fan/heat sink combo didn’t put up much of a fight:

This is a machine made specifically for writing TPS reports and not much else, judging from its CPU. Still, I’m sure it could still do a serviceable job running a modern lightweight Linux — assuming it survives my disassembly and subsequent attempt to put it back together again.

Here are both patients, spread out across the operating table…

Re-assembly took a little longer, and I didn’t bother with photos of that process. I did manage to get it back together again, and with no extra parts!

I even the screen reattached! Later, I found a power adapter, and the machine managed start and get up to the BIOS screen, although the screen looked a little dim. Since I’m not trying out for a CompTIA hardware certificate, I’ll simply declare the procedure a success and not get too bogged down with fussy minutae such as “functioning” and “usable”.

Categories
Programming What I’m Up To

Computer Coach’s “Intro to Python Coding” course (taught by Yours Truly) starts tonight!

The online Intro to Python Coding course that I’m teaching on behalf of Tampa Bay’s own Computer Coach Training Center starts tonight at 6:00 p.m.. For the next five weeks, on Monday and Wednesday evenings from 6:00 to 10:00, I’ll be leading a class of Python learners through “code along with me” exercises in the Python programming language.

Photo: Joey deVilla points at a projected screen of code with co-presented Angela Don.
Dropping code science at BarCamp.

The format of the course will be pretty much the same as the one I use at Tampa iOS Meetup, where I lead the group through a “code along with me” exercise. I project what’s on my computer on the big screen, and everyone follows along, entering the code as I explain what’s happening.

Since Python has a REPL (Read-Evaluate-Print Loop), I can also have the class go through some exercises and try little coding challenges. It will be a “learn by doing” kind of class.

The main textbooks for the course (which will be provided to students) are Python Crash Course, 2nd Edition…

Book cover: “Python Crash Course, 2nd edition: A Hands-On, Project-Based Introduction to Programming”

…and Automate the Boring Stuff with Python, 2nd edition (which is free to read online):

Book cover: “Automate the Boring Stuff with Python, 2nd edition: Practical Programming for Total Beginners”In order to minimize confusion, we’ll all use the same tools in the course, namely the Anaconda Individual Edition distribution of Python 3.7 and associated tools…Logo: Anaconda…and Visual Studio Code:

Logo: Visual Studio CodeBoth are available free of charge, and run on macOS, Windows, and Linux.

It’ll be fun! Watch this space; I’ll post some snippets from the course as it progresses.

Interested in signing up? Visit Computer Coach’s site and speak to them. Don’t dawdle — it starts tonight!

Categories
Current Events Programming What I’m Up To

I’m teaching an online Python programming course!

Photo: Man’s hand on Mac laptop, with Python book on the side. Caption: “Intro to Python course / Starts this Monday!”

Graohic: Computer Coach Training Center logoI’ll be teaching a live online course on Python programming on behalf of Computer Coach Training Center starting Monday. Here are the details:

  • What: Intro to Python Coding course
  • When: Monday and Wednesday evenings, 6:00 – 10:00 p.m., starting Monday, July 13 and ending Wednesday, August 12 (6 weeks, twice a week)
  • Where: Online.
  • How much: $900 — and Computer Coach has grants that can cover the cost if you’re unemployed and based in the Tampa Bay area (contact them to see if you qualify)
  • What you’ll need:
    • A computer that was made sometime in the last ten years. My main computer is a 2014-era MacBook Pro, but I’ll be doing demonstrations on a 2012-era Lenovo ThinkPad running Linux Mint, a 2009-era Compaq laptop running Peppermint Linux, and a $35 Raspberry Pi.
    • An internet connection. This is an online course, after all.

To register for this course, visit this page and tap the Attend Online button. Someone from Computer Coach will contact you.

Screenshot: The Meetup page for the Python course, with the “Attend online” button highlighted.

The course description

Photo: Woman’s hands typing on Mac laptop.

This is an introduction to the Python programming language. Now in the top 10 programming languages according to the TIOBE Programming Language Index, it is versatile enough to have a wide array of uses, from simple scripting to powering Instagram, Spotify, Netflix, Dropbox, and more. Its combination of simplicity and vast scientific and math libraries have made it the preferred programming language for data science and machine learning. If you’re looking for a first programming language, Python is an excellent choice.

 

This is not a passive course! This isn’t the kind of course where the instructor lectures over slides while you take notes (or pretend to take notes while surfing the web or checking your social media feeds). In this course, you’ll be actively taking part in the learning process, entering code, experimenting, making mistakes, correcting those mistakes, and producing working applications. You will learn by doing. At the end of each session, you’ll have a collection of little Python programs that you wrote, and which you can use as the basis for your own work.

The course will start at the most basic level by walking you through the process of downloading and installing the necessary tools to start Python programming. From there, you’ll learn the building blocks of the Python programming language:

  • Control structures that determine what your programs do,
  • Data structures to store the information that your programs act on,
  • Functions and objects to organize your code, and
  • Using libraries as building blocks for your applications.

You’ll write all sorts of programs…

  • You’ll use Python in “immediate mode” to perform quick calculations (and you’ll sharpen your command-line skills in the process).
  • You’ll write scripts to simplify or automate tedious tasks.
  • You’ll build web applications.
  • And since it’s a networked, data-driven world where no application is an island, you’ll learn how to use Python to interact with web services and databases.

Better still, you’ll learn how to think like a programmer. You’ll learn how to look at a goal and learn how you could write a program to meet it, and how that program could be improved or enhanced. You’ll learn skills that will serve you well as you take up other programming languages, and even learn a little bit about the inner workings of computers, operating systems, and the internet.

 

Categories
Uncategorized

Intel/Microsoft Parallel Programming One-Day Course: September 20th in Montreal

Xzibit: "Yo dawg, I heard you liked processors, so we put processors in your processor so you can process while you process!"(If you don’t get the joke, here’s a little explanation.)

Moore’s Law isn’t dead; it just ended up taking on a new form. Named after Intel co-founder Gordon Moore, it refers to the observation that for the same amount of money, the number of transistors that can be place on a chip would double every 18 months. Moore described this trend in 1965 and expected it would continue for at least a decade; it’s held true for almost 50 years.

For a while, this doubling of transistors translated into a doubling of processor speed. We entered the 1990s with 286 processors running at about 10 MHz and left the decade with chips closing in on the 1 Ghz mark. But we didn’t get that hundredfold speed increase in the following decade; those extra transistors became multiple cores, so instead of speed, we got parallel processing engines.

To take advantage of these cores and get the speed increases that we’d grown accustomed to, it’s going to take parallel programming. It’s tricky to get right, and I have personally ruined some good programs with some bad threads, and you might have too. That’s what Parallelism Techdays (no relation to the TechDays conferences we’re putting on across Canada) are all about.

Parallelism TechDays: Developers -- Learn from Intel and Microsoft - Free 1-day course on parallelism and threading

Parallelism Techdays is a FREE one-day course taught by Microsoft and Intel where you’ll learn about parallelism and threading. This is your chance to learn about threading your applications for multi-core platforms.

This course is aimed specifically at Windows C++ programmers using Visual Studio. You don’t need to be familiar with threads, but it’ll help. If you’ve got beginning to intermediate experience with threads in C++, this course is for you!

Here’s the agenda for the day:

  • Thinking in Parallel
    • Why go parallel?
    • Types of parallelism
    • Task-based parallelism vs. traditional methods
  • Getting Started with Parallelism
    • Approaches to converting serial code to parallel
    • Approaches to creating parallel code from scratch
    • Intel Parallel Advisor with test application
  • Implementing Parallelism
    • Choosing a parallelism environment
    • Reasons we will focus on Intel TBB/Microsoft PPL in this class
    • Overview of TBB/PPL
  • Debugging and Correctness (Introduction)
    • Overview of special bugs and parallel programs (deadlocks, data races)
    • Debugging a parallel program (demos of Microsoft Visual Studio 2010)
    • Correction of data races (demo of Intel Parallel Inspector)
    • General guidelines for parallel processing
  • Tuning
    • Understanding parallel performance
    • Performance tuning process
    • Demos: Intel Parallel Amplifier, Microsoft Visual Studio 2010
    • General strategies for solving parallel performance issues

The course starts at 9:00am and concludes at 4:00pm, with 6 hours of instructional time, plus breaks and lunch. Register now – the Montreal event is happening soon!

This article also appears in Canadian Developer Connection.