There’s a long-standing tradition in computing which compels beginners doing anything new to print out these words. It goes all the way back to 1974 from an internal memo in Bell Laboratories, written by Brian Kernighan:
While the origin of “Hello World” starts before most of us were even born, we each carry it on today. There have been a few times I’ve seen the “Hello World” concept derided by those who say it’s not a good way to learn a new programming language, platform, or framework. That is true. But it’s a start, and a lot of the time, the start of something is the most important part.
It’s important to celebrate these small victories along the way. If Malcolm Gladwell’s 10,000 hour estimate for mastery of a subject is true, one needs several tools to help them retain their bearings through any such journey:
It all starts with this: being interested in something enough to try it out. That’s what gets you started. If you can think back to anything you’re good at doing, I’m sure you can remember the place where you started, and I’m almost sure you started for the simple fact that you were interested.
What did it feel like when you wrote your first “Hello World”? It felt like you were getting somewhere, right? I remember the first programs that I ever wrote on my father’s Commodore 64. They certainly weren’t anything special, but they were my code. And I was learning and doing things I had never done before.
Here’s where one can really help others. When you write something like “Hello World”, you know you’re just barely scratching the surface. When you start to realize how much more there is to learn, it can become very disheartening. Even the smallest gesture from someone who’s done it before can really help you keep going.
This one only occurs after some experience. You have to be able to draw from your past experiences where you’ve met similar challenges and succeeded. Sometimes you can use the same tactics you used then, sometimes you just have to keep plodding forward because you know you’ll eventually conquer this challenge, too.
All of this cultivates to one’s motivation to keep going, keep learning, keep doing. That’s the most important part of learning. The more I’ve seen in life, the more I believe in the human ability to learn almost anything. I’d be willing to say that–barring biological capabilities and challenges–one’s ability to master a subject is 90% learning and maybe 10% natural ability.
And that’s why it all starts with “Hello World”. It’s that moment that captivates you, when it clicks for the very first time and you’ve created something new for yourself. “Hello World” stands for something larger. It means “I’m just learning this new thing. I can’t do anything amazing just yet, but this is my first step.” And first steps are very important, for none of the steps following matter without it.
Yes, the title is sensational, but I really needed to get your attention.
Today is May 1st, known by many as “May Day”. With a long history, this day is known as a spring celebration, full of life and rebirth. Furthermore, it is also known as “International Workers’ Day” in recognition of the Haymarket Massacre in Chicago, where workers rioted for us to enjoy our now standard 8-hour workdays. Even though working conditions are not great for many around the world, collectively, most of us are better off than we would have been in the 1800s. And of course, it also evokes “mayday”, the international distress signal.
So I can think of no better day to discuss your job with you. Yes, you. Especially if you are a friend of mine, and especially if you work in manufacturing, service industry, transportation, clerical, middle management, or many other jobs I’m not thinking of right now, quite honestly. Right now, even the lowest of income groups in the US (and others, I’m sure) enjoy luxuries that their counterparts 100 years ago would have never dreamed of. And most of it is due to advances in technology.
Make no mistake. There’s a good chance automation will replace your current job within the next 20 years. Even less for some of you. Think about that for a moment and plan it out. If you’re less than 20 years away from retirement, this is something you will have to deal with.
We are at both an exciting and terrifying time in history right now, from a technological perspective. We have so many pieces of the puzzle available to us. Right now, I have everything I would need to create a tabletop manufacturing-style robotic arm that could automate certain tasks. And I could do it with equipment that cost less than $500 (3d printer, soldering equipment, tools), and supplies costing less than $200 (plastic filament, hardware, motors, electronics). If I can do all of this for that cost, imagine what companies with much larger resources are planning right now. And they will. Not because they hate workers, but humans are messy and unreliable compared to software and automated systems. Sure, they’re motivated by money, and many even by greed, but it’s not malice. Nevertheless, make no mistake, it will happen anyway. Just think of all this talk of automated cars and the boons for human safety, but also the loss of many driving and transport-related jobs. Instead of being angry Luddites about it, let’s be productive.
Okay, now that I’ve convinced you (I hope), what can we do about it?
Prepare yourself and your families. If you think your job could be easily automated, this is imminent. You can no longer ignore this. Learn skills that are not easily automated now so you’ve got something to move to later on. Think about starting a business. Make options for yourself.
Prepare your children. Make sure they’re developing skills that cannot be easily automated so they will have decent job prospects when they become adults.
Talk to others. I don’t hear anyone talking about this except for a select few. However, this is something that will affect a lot of lives. Make sure those around you aren’t caught unaware.
Thanks for sticking with me through this post. I’m sure it seems incredulous or difficult to take, but I’m glad you’re thinking about it.
For Christmas, a friend of mine bought a SYMA X55W quadcopter for me. It’s a pretty low-cost quadcopter that has fairly good performance and durability.
However, it wasn’t long after I had started flying, that I had to re-adjust the trims throughout the flight. I had a suspicion as to what was going on. The battery pack was shifting around inside the quadcopter while it was flying, causing the center of gravity to shift around as well!
So, I decided to fix it using my new 3d printer!
First, I needed to get access to the battery area to take some measurements. That means taking this thing apart basically completely. You can do this basically with just a very small phillips screwdriver. And maybe a plastic spudger.
After I got the thing apart, I measured the battery area in the frame, and I measured a battery. Then I designed this piece to fit into the frame securely under the control board support.
I printed it in white PLA and installed it.
The battery is much more secure now!
I posted the design for this on Thingiverse, so you can follow along if you have the same model or a compatible model of quadcopter.
It was just my youngest daughter (of ten years old) and me last night. CJ wanted to go to a family-friendly comedy show that we have enjoyed going to before. Afterwards, we walked around Westport to find a place for dinner. The Westport area in Kansas City is popular on the weekends. Because of that, it usually has a few folks on the street either playing music for money, selling things on a blanket, or simply begging for change. After walking a bit, CJ asked if we could leave and go somewhere else. I could tell something was wrong, so I asked her what was up. “The homeless people here don’t scare me or anything, but I just feel so sad that I can’t do anything to help them.”
CJ has a huge heart, so when we passed by an older man begging on the street corner, she didn’t hesitate to dig through her coin purse that she had brought for shopping, and hand him all the coins she could find. He was thankful. As we kept walking, I could see her tearing up. When I asked her what was wrong, she simply said “Sometimes I wish the world were a better place.” What does a parent say to that? Sheesh. But I had to say something, so I drew in a long breath.
“It’s up to all of us to try to do just that, sweetie. As humans, we should all be striving to make the world a better place. Otherwise, we’re just taking up space.” Being a lifelong tinkerer, I’m more comfortable with conversations of action rather than lament. Plus, I felt this was more productive. I resolved to continue our talk even after we reached our restaurant and got seated.
While waiting for dinner to arrive, I raised the topic again. Sure, we discussed why people don’t always give money to those who beg for it, and she already knew most of the reasons. But we also talked about the state of mental care in this country and how people who can’t afford that care far too often end up on the streets. I also brought the context to a larger scope, talking to her about how we as people should be trying to solve the underlying problems of things like homelessness at a systemic level, in addition to the quick fix of giving someone some change.
“Daddy.” she said, “When I’m an adult, I want to start a homeless shelter. Will you help me when I do?”
I smiled and said, “I will help you anyway I can, whether it’s for a homeless shelter or any other way you can help the world. But we don’t have to wait until you’re an adult. Let’s talk about how we can help people now, too.” So we discussed making care packages of socks and other essentials to keep in our cars to give to people in need, and reaching out to shelters and other places to volunteer more.
When our food arrived, CJ immediately cut her burger in half and set it aside with some fries. I made sure to set aside some of my food as well (which isn’t difficult anyway, with our huge restaurant portions in the US) After we left the restaurant, we went back to the same old man on the street, glad to find him still there. He gratefully accepted the food we shared with him, and the extra ten dollar bill I gave him. I patted him on the shoulder and looked in his eye as he said, “God bless.”
CJ and I walked back to our car, feeling a little better for what we’d done, but also knowing there’s still so much more to do.
My father, David Killingsworth passed away at 4:15pm Saturday, February 20th, 2016.
He had been battling several infections for the last year, and had been in hospital care since mid-November. I was visiting then, and when I assisted him to get to dialysis that day. Some part of me knew that would be the last day he would see his own home. 3 months later, after making the decision to cease dialysis and all medicines to start hospice care, we spent his last week with him. Later, on Saturday, he was unresponsive most of the day and finally passed in his sleep in the afternoon.
But this post isn’t about his death, so much as it is a post about his life and the things I have learned over the years from him.
My father was a baker and bakery manager most of his career. He did some other things like driving a truck and being a mechanic in a shop, but mostly he was in a bakery. This meant that most of my life he got up very early in the morning, around 3-4am. I remember waking briefly to a light or the sound of his electric razor in the mornings, then drifting back to sleep. He cared a lot about providing for his family and was the sole source of income for us until my sister and I reached school age, when my mother went into nursing school and after she graduated.
Outside of work, he was usually working on the house, cars, or outside–and dragging me along with him. He always said I was a pretty good helper after I got off “top dead center”. From my earliest memories, I can recall searching for tools with their cryptic symbols on them trying to find the right one to hand him while he was under a car. Working on cars for us developed into something more than a task or chore, it was social time, too. Time for us to be guys and talk–or not talk. Most of the time we’d be joking around, but we had some really good talks while turning a few wrenches.
“You’re not going to learn any younger!” was frequently what I would hear, whenever I protested that I didn’t know how to do something. I’ve turned to using this phrase with my own kids sometimes, as well as the kids on the robotics team I coach. What this phrase lacks in correct grammar, it gains in gritty, no-nonsense truth.
By the time I reached high school, the two of us acted more like friends than a father and son, I felt. For the most part, I kept my stuff in order, but I knew if I didn’t he became “dad” again very quickly. Otherwise, we’d joke around, horse around, even after I got big enough to give it back to him! I remember flopping down opposite him on the couch, placing my legs lazily up on his knees. He’d say nothing, but start pinching and plucking the hairs on my calves until I had enough and pulled my legs back. We would tease and goad each other frequently, calling each other “weenie boy” or “pud”. This comfort level translated in to when we would work together. Others would be surprised at how we would talk to each other as we worked on, but the two of us never minded or took it negatively. Those words were signs of approval to each other more than any superfluous words could be.
“The difference between the apprentice and the master is that the master knows how to fix his mistakes.”
This is probably the best advice I had ever gotten from my father. He kept hammering this into me many times throughout my life and I needed that. This is what fancy educational studies nowadays call a “growth mindset” instead of a “fixed mindset”. But my dad had it all along. He always told me there’s no problem ever with making a mistake, as long as you don’t keep making the same mistake again. Learn from your mistakes and move on.
Even after I had grown and moved out, my father and I were still close and he was always there whenever I needed him. After my first marriage, when I found myself being a single father, he came and stayed with me many days to take care of my daughter. We spent a lot of time together then, and had lots of talks. Sometimes we’d play a video game together (okay, I would play and he would watch, lending advice occasionally.) And with my second marriage, he even taught his favorite recipes to my wife and would frequently sit with us in the kitchen as one of us cooked, just to visit.
For a while, he and my mother had a place on Pomme de Terre Lake. It was small, no-frills accommodations, but the scenery was wonderful and it had a dock on the lake as well. We would take the family out and he would pull us on tubes with their boat. He took great joy in skipping us across the water, while we clung to the tube with white knuckles. Lots of great memories there.
My dad and I have been through a lot over the years, from lying in the back of his old truck, watching fireworks, to his lectures at me for not turning in my homework, helping him on work on cars, houses, trimming trees, mowing lawns, going fishing and just driving around and talking. And I think that’s what I’ll miss the most. Nothing will ever replace those talks and his advice–whether I wanted it at the time or not. But I’m glad I got it now.
I just bought a StandDesk and started using it. This is my review (so far).
My last job as a team lead, I was up and walking around quite a bit. Now that I’ve started working from home, I started thinking about all the sitting I’m doing and have gotten rather tired of it. When I was looking for a desk, I had three requirements:
Both sitting and standing height (tall enough for a 6’3″ person, don’t care if it’s electric or crank)
Very sturdy, even at standing height
Something nicer than a laminate top (my old desk was laminate and bubbled up quite a bit)
That said, there are lots of very expensive sit/stand desks out there, and I wanted to stay under $1000, shipping included. There were a few options I came up with, but I settled on the StandDesk. So this is my experience with purchasing the StandDesk, receiving it, unpacking and setting it up.
My desk came in three shipping boxes. One for the frame, one for the crossbar (optional), and one for the desktop . I opted for the black frame with the cable tray and crossbar, and the 60×30 bamboo top.
The box for the frame was very heavy! This might be a bit to carry for some people, so be careful or find a friend to help you. As I opened the frame box, one of the first things I noticed was the feet of the desk. They are heavy, very sturdy, with solid welds. These puppies aren’t coming apart any time soon.
The main cross-member of the frame, which houses the lift motor, was pretty heavy as well. Construction is solid. The only thing I found wrong with it was a rattle inside my motor housing. It sounded like a screw was loose and rolling around inside. It would have taken a lot of effort to disassemble the frame to get to the inside of this part, so I left it there, hoping it stays out of the way!
Also, the directions didn’t say anything about the power cable coupler which was inside the frame. Make sure to set it in place and tighten down the plastic nut on the inside!
The two telescoping legs were also very solid and well built. I especially liked the curved tubing coming out of the more square tubes in the bottom. One tough spot I found though, was removing the protective plastic caps over the hex shafts sticking out of the top of each leg.
You really have to pull hard to get these off, so don’t worry that you might break them when you pull. Just get your fingers around the top lip and pull as hard as you can.
After assembling the legs on the crossbar upside down, you continue assembly by putting the feet on next.
StandDesk provides a really nice, long hex wrench for assembly, and it’s great for most things. However, it was not quite long enough on the short side to really reach the screws down in this hole. So you need to use creative angles to tighten these screws up. Another note is that they provide hex cap screws, split washers, and flat washers for each and every connection! Cheap desks would not provide you those washers for every screw, so this is a real nice to have for tight, sturdy construction that will last and be able to flex with use.
Another thing to note, as you build this frame upside down, when you put the feet on, hold on to it! The frame could easily topple over in this position and you don’t want it landing on your foot or marring your floor!
The plastic feet for the floor screw into place and are adjustable. I screwed them in all the way, then counted the rotations I unscrewed them to make sure they were all the same height. After you get all the feet in place, it’s time to flip the whole thing over!
Next are the desk supports, to which the desktop will be mounted. These go on solid as well, but they are a tight fit over the gear boxes. I had to press down on the top of the housing as you can see in the picture above, to get the supports to slide into place.
Next for me was the crossbar. I was really glad to have this as an option, because I want my desk to be very sturdy and not have to worry about it being shaky at standing height.
Oh no! When I opened the box for the crossbar, the plastic bag that held the hardware had broken and fallen out all inside the box. I recovered most of the pieces from within the box, but I was still missing 3 of the 4 split washers, so I had to install the crossbar without them.
The construction of the crossbar was nice and solid. However, I noticed some rough edges and places where the finish had been scratched or marred.
Although the chips were a bit of an annoyance, I didn’t worry about it too much, because they probably won’t be visible during any daily use. After getting the crossbar installed, it was on to the cable tray.
I really like this cable tray. It fits the desk perfectly, has plenty of room in it, and it’s solid all the way, unlike the wire cage variety that still look terrible with all the cables hanging about. I did notice some bumps under the finish on my cable tray though. I hope they weren’t rust. But again, these bumps are in a place where no one will notice them.
After that, the frame is complete, and it’s time for the desktop.
For the desktop, I will have to apologize. I failed to take pictures of how the desktop was packed, which was amazingly well. It had pieces of particleboard around the perimeter of the desktop in all directions and was very well and securely padded all the way around. All in all, a great job packing. After placing the top on the frame, bolting it down, and then fastening the lift controls to the underside of the top, it’s all done!
What a great looking desk. It really looks nice and I’m proud to have it at the center of my home office.
…but wait! I seem to have some parts left over, and that’s never good, right?
There are these two foam blocks, and four plastic caps? feet? something. I still to this day have no idea what these parts are for as they are never mentioned in the instructions or anywhere else and it doesn’t look like they would fit anywhere I can find.
At any rate, the desk is all set up and works wonderfully. The motor noise is a dull hum, which is definitely audible, but not overwhelming by any means. I really like the preset buttons which allow me to get up, hit a preset, then walk over to get more coffee while my desk raises or lowers. All in all, this desk has been a great purchase so far and I would recommend it.
It’s official, I’ve accepted an offer to work at Automattic!
I’m really excited to join the team at Automattic. I’ll be working on the forefront of the web writing code for WordPress and related products. I’ll also be working remotely from my home office again, which will grant me more flexibility in my schedule for my family, robotics team, and other stuff.
So, a little more information on Automattic/WordPress:
They are a small company who does big things:
400+ total employees
WordPress is the most popular Content Management System by a huge lead.
I believe this is going to be a great move for me, as Automattic fits very well with my personal ethos and workflow. I’m definitely going to miss all the people I’ve worked with over the last 3.5 years, but I’ll keep in touch as I move on!
More often then not, we need to take time to stop doing everything and just be.
This is a picture of today’s sunset I took today, when I stepped outside for just 15 minutes or so. I waited for just the right moment, walked outside, sat up against a large tree and just watched. Cars went by, dogs barked, life went on while the sun crept over the horizon.
Admittedly, this isn’t something I do all that often, but I should. I think we all should take some time out of our days to stop rushing through life to the next destination or task. We all have work, families, life, side projects, hobbies, chores, and other obligations. But 10-15 minutes isn’t too long to go somewhere and just be.
I’m writing this to remind myself at a future date when I feel I don’t have time to do this. Hopefully, I see it and remember why it’s important. But I hope you can get something from it as well. Have a great day!
Now that robotics season is completely over, and life has returned somewhat to normal. Back in December, I was working on my very first video game to release, and I said I would return to it when the robotics season was over. And here I am, after our last competition for the year.
Since I’ve turned my thoughts back to the game, I’ve decided to also do the artwork for it. This isn’t too brash of a decision for me for a few reasons:
I’ve got passable experience working in Photoship/GIMP.
I’ve got some recent experience in Illustrator/InkScape.
The graphics for this game should be clean, simple, and uncomplicated.
So, I feel I’ve got a fighting chance here. If there were any more complications in the artwork, I would definitely be seeking help in this area. As it is, I’ll be having a couple of artists review and critique my work before I get too far anyway.
Behold! My mediocre artistic drawing skills!
Well, I guess that’s all for now. I’ll post more updates as we go!
Lots has happened since the last post at the beginning of the build season. The team has completed a robot, completed a practice robot, went to regional competition and learned quite a lot. I’ve learned quite a lot, too.
Our team, System Meltdown (FRC 2357), did great at competition this year. They really came together as a team at the end. We ended up moving on to the playoffs and making it to the quarterfinals. We almost made it to the semifinals as we tied for points. The best part was that our team and our robot performed very well in the playoffs especially. It was the other teams who had trouble this time.
Aside from the expected learned bits of taking more time and commitment than expected, navigating the politics of the local school system, and keeping teenagers on task, there have been some unexpected lessons:
Parental support makes a huge difference.
This one is a little obvious if you think about it, but other than bringing kids and picking them up, our team parents not only bring food to each of our shop sessions, but one of them organizes the whole effort of doing so. They show up in large numbers to any outing we have, help mentor the team, and donate everything from cleaning supplies to workbenches. Amazing.
There’s a wide spread of commitment between students.
Some students are very committed and productive, but others are only casually there. I figured this would be the case, but there really is a very stark difference. However, there were a few cases of students who just needed some direction and latched on as soon as we found it for them. In many cases, the age of the student matters little. We have some very committed freshman, and some marginally committed seniors.
This would use almost every facet of my engineering knowledge.
I naively thought that the technical leads from previous years would have this down by now. But they all still need help somewhat to fairly frequently. Within a single shop day, I would find myself helping with software, explaining the actions of mechanisms, demonstrating how to solder wires, how to work a spreadsheet, and checking for essay grammar.
There are teams out there who work with much less than we have.
I knew we had it pretty good with the financial support we get from our school district. However, we really don’t have enough space for all 35+ students trying to make a shop, computer lab, etc. out of a standard classroom. But at a scrimmage this year, I spoke to a mentor who said their team stores their robot and equipment in the science classroom closet, and getting zero support from the school district. Talk about making the best of your situation!
Goals are important!
Last but certainly not least. It may seem obvious, but I believe this point cannot be overstated. Our team had 3 goals this year. We achieved two, and almost the third. However, the overall success we realized was definitely a result of working toward those goals.
And that’s it for this competition season. But it doesn’t stop here. I will continue to keep meetings going in the off-season and we will continue to work on projects for fundraising, community outreach, team training, and other technical activities.