Programming The Sierras

Insights to high quality software development

Author: admin (page 1 of 3)

3D Graphs

1977, my senior year at Roosevelt High School, Seattle Washington, on the third floor, in Mr. Erickson’s math classroom lived a state-of-the-art Wang-600 Programmable Desktop Calculator:

640 words of memory. Not 640K or Megabytes, 640 words. It could graph mathematical formula, play tic-tac-toe and generate random numbers. I learned to program on the Wang and the flatbed plotter was the bomb.

My pièce de ré·sis·tance was a program that drew 3D-Graphs, like this:No photo description available.

This work was exciting and got me an A in Programming as well as trigonometry (go figure). I learned about divide-by-zero errors, off-by-one errors and accumulated rounding errors. The plotter exposed me to the concept of APIs.

However, it was simplistic, it just drew several 2D graphs with their starting position offset by a fixed an increment. None of the calculated values were saved (no memory to do that kind of stuff) and, well, it worked. This was Version 1.0.

It took ten to fifteen minutes to finish one full graph.

Fast forward to 1984 when I snagged my boss’ Turbo Pascal 1.0 disk and loaded it on my brand new IBM AT (running at 6 megahertz). My first project was to recreate my 3D graphing program which I did in color and now took only five minutes to draw a screen. Yet this was still version 1.0, just in a different language, on a different platform.

At this time, the CEO and founder of the company was asking other Programmers if they would be interested in joining the Department of New Technology where they were starting a new product line, a deviation from our COBOL products, written in C. I left my 3D graphs displayed on my monitor while I was away from my desk for everyone to see. So, when it came to recruiting me they didn’t even ask me if I was interested, they just told me “Your new desk and computer is over here and here is a book on Programming in C. Start.” I attribute some of the expediency on my 3D program.

2021 Comes around I decided to recreate it yet again but this time in JavaScript! With modern computer power I can draw a much higher resolution graph in a fraction of a second:

No photo description available.

The JavaScript development process is very streamlined; edit-test-edit-test, no edit-build-link-start-the-debugger-test. Excitingly fast. This environment also allowed me access to more memory and processor power than ever before so I moved on to Version 2.0; first calculating the x,y,z values then rendering them. I had envisioned this as the ‘right’ way to do it back in 1983 when I first dipped my toes into programming C on a Unix box powered by an 8086 with 512K of memory but my work was interrupted and it never came to fruition.

The modern environment of Windows10, the FireFox browser and gigabytes of memory allowed me to do it the ‘right’ way.

Not stopping there I enhanced it, drawing the perpendicular lines too:

May be an image of footwear

This had vexed me until now but the whole idea of first calculating a grid of values and rendering the points allowed this. But then I got it to hide the lines you shouldn’t be able to see if it were a real 3D shape:

May be art

This really excited me. I call this Version 3.0. I uploaded it to my web site (http://www.brianroys.com/3D-Graphs.html) and you can run it on your own computer or even your phone! It isn’t just a picture like the above but your browser is actually calculating the X,Y,Z values and rendering the graph you see! 10,000 values. On your phone!

You can change the Z scale by hitting the ‘Z’ or ‘z’ keys (or using the buttons) and it will re-render the graph! On your phone!

I’m continuing to enhance it so stay tuned.

Wealth

I play the lottery, probably more than most people and I’ve been playing since Florida got the lottery back in the ’80s. Lately I’ve been pondering the associated question of ‘What would I do if I won the lottery?’ and a lot of the things I used to wish for I no longer need or want or I can just go out and buy. The list is shorter.

But there is another list, the list of things I have and am grateful for:

  • Underwear. This was my first realization. I was putting away clean laundry when I came across a pair of shorts that were starting to show wear and tear, some holes and thin spots; I THREW THEM AWAY. I just up and threw them away. Sure they were still wearable but see, I had bought two packages of underwear at Sam’s Club plus the shorts I already had gave me more than two weeks worth so I didn’t need to see how much longer I could stretch their lives, I could just throw them away. I want to point out that this doesn’t really cost much money but it is a frame of mind kind of change.
  • Another similar wealth is cat bowls; we have a lot of cats and we need a bowl each. I happened upon smallish stainless steel bowls at the Dollar Tree store so I bought enough for each cat and that was cool. Then I would be pressed to collect them all up at once, wash them in time to feed them next meal. So to maximize the luxury I bought (they cost ONLY a dollar each) more, like so we have two bowls per cat and a few odd ones. Now I am relaxed about the cleaning of cat bowls, peace of mind and it didn’t really cost that much.
  • We paid off our house last year. Wow, that is a weight off our shoulders. Now all we have to pay is taxes (and insurance if we want).
  • Two newish Mazdas in Soul Crystal Red; a CX-5 and a 3. They are both 2018 models so look like little brother / big brother versions of each other. To see the two of them in the driveway is awesome.
  • We have a nice TV, it was top-of-the-line LG, 65 inch. Sure there are bigger ones, maybe a bit brighter but not much. We have a Amazon Prime and Disney+ and Netflix so there is more than enough content to watch all day long if we were in such a frame of mind. And it is good stuff tool.
  • I have memberships or passes to several venues and that relieves the burden of ‘how much does this cost?’ when deciding what to do or where to go. I have an hour to kill; I’ll run down to the gun range and shoot up some targets. I have several hours to kill; we’ll take in a movie. Is it a nice day? Go to Busch Gardens for an hour or two. With the pass at the Range and Gardens I don’t have to try to fit everything in all at once, I can relax and enjoy myself without having marching orders.
  • We live in Florida, F-L-O-R-I-D-A. People visit from all over the world to enjoy our sugar sand beaches and callm, warm waters.
  • The modern/current technology gives us treasures unthinkable when I was a child. Let’s not talk about the computing of my smartphone but how about light bulbs; we used to use 100W bulbs that rendered most of that wattage as infrared (just plain heat). I have a floor stand lamp in my office that sports four bulbs, it is only rated for 60W due to the plastic components melting but I have 75W equivalent bulbs that only consume 10W and none of that is heat. I don’t have to expend air conditioning to offset the heat generated by my lighting. Ahhh.
  • Location, location, location. I love where I live. I live in a fantastic neighborhood with sidewalks on both sides of the street, three private parks (only residents are allowed), and shady trees lining the streets. There are a dozen places to eat within walking distance from home including a Carrabbas and an Outback Steakhouse, and three convenience stores and two Publix stores within a five minute drive. There are 24-hour Walmarts within ten minutes to the north or the south and fifteen minutes to the east or west. My house is comfortable and more than spacious enough for us (including cats).

A Tree Falls…

The philosophical thought problem was presented as “A tree falls in the woods and no one is around to hear it, does it still make a sound?” This promptly digresses into a discussion of what ‘sound’ is and ‘no one’ and so forth. But they miss the point: IT DOESN’T MATTER!

In old houses and buildings the interior walls were made up of thin strips of wood (lath) then plaster was smeared over the lath and smoothed out. On the back side of the wall the plaster would ooze between the strips of wood (if it was done right) then harden. The backside was ugly. But it doesn’t matter. It doesn’t matter because nobody will ever see that side of the wall, and even if they ever did it was when the house was being demolished or new wiring was being installed or whatever and the old plaster that had oozed between the lath was as it was supposed to be (ugly). The ugliness doesn’t matter.

I installed a bathroom light in my rental house, the fixture was made of thin flimsy metal, it barely held its shape when it wasn’t screwed to the wall. The metal was dangerous with sharp edges. But these issues were not a problem once installed, secured to the wall, out of reach of anyone poking it or cutting themselves on the edges. It doesn’t matter.

I added a feature to an existing program but the existing code was crazy and convoluted, poorly written, but because it worked in all the ways it was ever used or needed to work, it was fine.

There was a cosmic cataclysm that killed everything in an entire galaxy. Everything. 100 billion stars, trillions of planets and moons a few of which were inhabited, probably even had sentient races.  Everything was cooked with hard radiation for a million years. This is very sad but it happened long, long ago, far, far away. It has zero effect on me, it can’t possibly be otherwise.

So I buy a pack of a dozen pairs of socks, I do laundry about once a week. The question I mulled over was “Which is better: to rotate through all dozen or just the same six? Sooner or later some will show signs of ware and then I’ll toss those. But along the way I’ll have warn-but-serviceable socks…” The answer is YOU ARE OVER THINKING IT. Just wear the dam socks.

A tree falls in the woods. Whatever. Shrug. Nothing to me.

Analog vs. Digital

When I was young, like back in the 1970s I read articles talking about the benefits of converting from Analog to Digital, the revolution that will spread through the world and into each and every crevice of our lives. An example given was a washing machine and how much easier it would be to have it controlled by a computer instead of switches and relays. That instead of filling with water until a full-sensor switched the valve off, it would wire the water level sensor into a digital box that would then activate to open or close the water fill valve.

Well the year is 2019 and I still have an old analog washing machine and it works fine with its switches and relays. It even has four wash modes, three water levels, and an optional extra-rinse phase. I did not see the advantage.

What I recently realized about those old articles was they missed the point; sure analog works fine, for now. With the current level of sophistication the clock driven switches of the washing machine works fine. But once you start adding sensors and controls and requirements of operation, the complexity of relays and wires and switches, the rat’s nest of wires, quickly spirals out of control and becomes unmanageable.

For example, back then, my step-father Doug designed an alarm system for our house. It had time-delay relays and and locking relays and switches and regular relays and lights and was a glorious creation. But he scrapped it for a Radio Shack system that was digital because it was just too complex to get it to work the way he wanted it to work. And changing how it worked required rebuilding it completely, unsoldering the wires and relays and switches.

Cars are another great example; it used to be there was just the ignition switch that ran from the battery to the starter and that worked fine. But modern cars it requires you to have the brake pedal depressed and the transmission in park. Wires now had to run wires back and forth and the brake light switch down by the pedal has to be wired in to do so much more and sometimes it was a matter of ‘when it is off’ and other times it was ‘when it is on’. A low level of complexity can be managed with switches and relays and wires but add just couple more and it becomes unmanageable.

The solution is to run all the sensors and switches directly into a computer that has outputs to control every device or control. From there the software controls what does what depending upon the situation. So, when you wire the brake-light switch into a computer you can just reprogram it to add features like ‘tap the brake pedal to close the door’ (the Tesla X does this). It is relatively easy to write an involved if-then-if-not-then-else conditional. And instead of running all the door-open switches in series to the dome light you run each one to the computer and one of the outputs would be the dome light, this way you can also determine which door is ajar and display that on the dash.

My next washing machine will have sensors that measure how big the load is, how dirty it is, factors in the water quality and do a better job of washing my clothes. That is the advantage.

The House at 7030

By 1955 the trees had been cleared from the View Ridge lots revealing the spectacular views of the Cascades, Lake Washington, Mount Rainier, and, well, the Sand Point Naval Air Base at the bottom of the hill. This is when my mother, Elaine Roys, a bookkeeper at Peter Kiewit and Sons construction company asked around the office about who she could get to design a house that would stand out in the neighborhood, for her and my dad, Frank. Now, Peter Kiewit and Sons is a company that builds big commercial building and hospitals and freeway on-ramps and the like but they have a subsidiary that did residential construction and they suggested an up and coming architect by the name of Ben Woo.

Ben wanted to get to know my parents before designing their house so he invited them over to learn to play Mahjong with he and his wife. After months of Saturday night Mahjong games he felt he knew my parents well enough and designed their house. His Chinese-American sensibilities rendered a look and feel that could be called the standard in mid-century modern architecture.

Growing up, everyone in my family knew to play Mahjong and in her later years, my mom was the Mahjong shark at the Wallingford Senior Center.

At that time Peter Kiewit and Sons was doing a project in Alaska and the crew had to be furloughed to Seattle for the winter months but, being union, were still receiving pay so the foremen were picked from the lot to build her house. Nothing but the best.

I heard bits and pieces about the construction:

  • Very pregnant with my older sister, my mother went around the house with a putty stick filling nail holes in the woodwork.
  • “There is enough rebar in the driveway you could park a tank on it and not crack it.”
  • “The plans called for construction paper (tar paper) but they had some plastic sheet with wire mesh left over from a project that they used instead.”
  • “They ordered twice as much wood as they needed for the living room ceiling, picked through it, sent the rest back.”
  • A carpenter was pondering while looking at the unfinished window sill: “I know how to do this with two cuts but I think there is a way to do it with only one.” It was done with only one cut.

Ben Woo went on to become a highly regarded architect and a pillar of the Chinese community in Seattle.

On My Mother’s 90th Birthday

Today is June 3, 2018, my Birthday, the 90th.

The world I knew most of my life has changed many ways. I grew up in the 1929 depression, the Real Depression. Banks closed, people (working types) lined up for food. We used and reused everything. We were fortunate. My father was a high school teacher and my mother a very fine piano teacher. We were close to a farming community so we had fresh food. People bartered services for food. Dad bought gunny sacks of potatoes, onions, carrots, cabbage and whatever was available. We raised chickens from brooders to adults. Dad caponized many (we started out with 400 chicks) sold a bunch but kept enough for us. The hens gave us eggs and we had chicken every Sunday.

Postage, I recall, was 3c for regular mail, but airmail was 5c (reserved for emergencies) We had a small air field close to us (Felt’s Field) and every night at 10 o’clock the mail plane took off.

Then WWII came along. jobs really picked up. On Dec 7 ’41 we were guests of the Minister and wife for Sunday Dinner, celebrating Larry’s 5th birthday when the NY Philly was interrupted to tell of the attack. The world changed. I was 13 and in the 8th grade. My home chores included cleaning (vac & dust) the house every Saturday, and shop for groceries (balance the food money ($20 a week) and the ration points. Meat, canned goods, sugar, coffee, butter, etc. etc.) and have dinner ready by 6 PM. Mom had pupils until 6 and usually again at 7.

The phone system has changed. When I was very young (pre school) you picked up the phone and the operator asked for your number. My aunt (Mine) was a telephone operator before she left for the UW. She knew my voice when I called to see if Bobby John could play. I don’t know when the dial came into use. By the 60s? or 70s the touch tone came in. All outside (long distance) calls were chargable. My Dad did not tolerate charge fees, or pay to park. Now I have a cordless phone (actually 6 of them in the house) and no long distance fees. I also have a cell (for emergencies only). Electronics make me dizzy so I avoid it if possible. The young ones can handle electronic toys from birth. I really think many have lost the capabilities to communicate with people. They have their nose in their toy.

Cats I have known and loved.

Cats were always important to me. In my childhood they existed by luck. They received table scraps and a few birds, maybe a mouse ????. Their care was haphazard as I look on it now.

As an adult the first cat I had was for Xmas 1950. We were just married in Sept, and Frank brought home a kitten from the pound. She was Snookie (reg. name was Snikleficity). We had her for 15 years, and she was great. Our first apt was on a hill in the UW district (20th NE). When I came home on the bus from work, she was waiting for me on the roof of a garage on lower street level. She heard my walk before she saw me and would come to greet me. Six years later when we first had Becky she was very put out and jealous. But one day, maybe a couple of months later, she jumped up to investigate Becky, decided she was OK and was her protector. A stray cat came in and was about to go upstairs, Snookie whipped the stray until it escaped. She was a great cat I we loved her dearly.

She was soon replaced (I had to have a cat) by a lovely black, Sheba. And had Mitzie, a beautiful Calico. She had one kitten, had to be taken to the vet to save her and the two kittens she couldn’t deliver. But she became Aunt Mitzie to several other litters produced by SuLin a not very nice but gorgeous Persian. She had a lot and I couldn’t catch her between litters. Mirtzie would wash the babies, cuddle them and try to nurse (it didn’t work) That was 3 cats.

Then we had Sugar and Spice. Sugar was a beautiful long haired white and Spice was a short hair black. One day my Mother was visiting, and sat at the piano playing for about an hour, Sugar at her side on the floor, intent on the music. When Mom thought she wanted to go rest, Sugar took her back to the piano. Mom thought she was the smartest cat she had ever known. We loved both cats a long time, but they finally left us. I still had Spice when a friend of Mom’s at her retirement apartment wondered if I could take a cat that had to be taken as a stray. That was Sherman. He was taken to a vet by the owner of the ret Home, had him cleaned up, shots, etc. and was presented me with a lovely Tabby we had for 19 years. He was special, a gentleman. He greeted visitors at the door, in a group he would welcome each person. He saw me through some hard years. Lost Mom and Douglas. When he had to be put down (he had kidney failure) I was devastated.

NOTE: the above was a hand-written essay my mother never told me about. We found it clearing out her house after she passed away 6 April 2019. She had more cats than she told but I’ll leave her story as-is.

New Development vs Debugging

I was asked which I prefer; New Development or Debugging. I used to say New Development because you get to create and design and plan and build and interact with the customer first-hand. Now I say Debugging because there is no downside, no liability, only rewards and praises. But it could also be said that I need to get out of my comfort zone.

When developing new products you have a clean slate and that is the double edged sword: you get to create fresh, you also get blamed for picking a bad architecture. When debugging existing code you have to work within the existing framework and that is the double edged sword: you have to work with the mess, the bad ideas, the junk code of your predecessors but when you fix a bug you get accolades and kudos.

You can make a living doing either one and if you live long enough you get to do both with the same code base: fix your own bugs. That is humbling and educational.

There is refactoring: rewriting code that was once good but is now no longer viable. Just don’t break anything.

Transitions

My Career, the High Points, the low points, things not in my resume.

MBSI

Spring of 1982 I was about to become unemployed and a friend told me about a company just around the corner that was hiring programmer trainees. I don’t know how she knew I was into that but grateful nonetheless. I stopped in at the office of Micro Business Software Inc, third floor of the Colony Building and met with the CTO, Scott Snow (maybe he was “VP Tech”, I don’t remember). I told him I was interested in the job, that I knew how to program, had taught myself FORTRAN and Wang 600 machine language. He was impressed and asked me for a resume so that night I typed out what was more of a cover letter since I had no professional programming experience. The bottom line (actual last line of the letter) was “I’d like to start work on Monday”. He read it over and said “OK”. And that was it! That was all there was to the hiring process. I was handed a book on CP/M and was started on editing COBOL programs. This is how I started my career in Programming.

MBSI sold COBOL accounting programs for small businesses to use and the source code for companies to customize for vertical markets. In 2002 I did a google search and found RealWorld COBOL source code I worked on in 1983 was still being sold!

And I kicked ass: I managed the DEC mini computers and did all the bulk editing jobs with TECO macros (I became a maistro), and did some bleeding edge development.

Once I was explaining to a co-worker what was wrong with a big complex ‘if’ statement and the right way to do it and he pointed out ‘you have real savvy’. I didn’t appreciate that as much as I should have.

Later, a couple years down the line, MBSI renamed itself RealWorld Software and moved around the corner. At this time we acquired IBM ATs running 286 chips at 6 megaherz (ooh aaaah) and I snagged my co-worker’s Turbo Pascal disk, loaded it on my AT and wrote my first program in Pascal a 3D graphing of mathematical formulas. I wasn’t shy about my work and would leave the graphs displaying on my screen.

About that time, 1985, the owner of the company, David Gale, spun off a Department of New Technology. They were interviewing other programmers to see if they wanted to join the group and learn to program in “C”. They didn’t even ask me, they just gave me a new computer, a new desk and Plum’s book on how to program in C and told me “Start”. I ate it up.

Practical Software

That new department became a new company, Practical Software, a small company. We moved up stairs. Shortly and through attrition I became VP Tech or VP Programming. I worked long and hard on developing DOS applications in C. We had our own UI and DB libraries. Now that I look back on it, we should have sold those as products, that would have been rich.

David bought the building next door and renovated it. Practical Software moved in and enjoyed a big comfortable space. I had a twelve by twenty foot office with a big sliding glass door looking out to the common area. Cool.

Money dried up and the products finished and out the door so I had to find new work. At that time, 1991, the newspapers were the only source of jobs and I quickly found jobs that fit my skills

TTI

Southern Datacom

Over the previous months I had collected business cards and had a three or four inch stack. It was just something I did. When I was out of work I just started cold-calling names in my stack of cards when I got to Gary Eng of Southern Datacomm. Gary had a shop set up in a store front even though they had no customer traffic, it was just an affordable location and I had stopped in to chat a couple of times on my afternoon walks. The call went like this:

“Yes, can I speak with Gary Eng?”

“Is this about the Programmer position?” (I hadn’t even mentioned who I was)

“Aaah, YES, this is about Programmer position.”

So I made an appointment to come in for an interview. One of the best interview processes I ever ran: every question they asked I had a “Yes, I just used that technology in the XYZ project…” kind of answer. The process went from manager to manager and finally to the President, Gary, he just waved me away with a “I don’t need to talk with Brian.”

This was before the days of cell phones so by the time I had gotten home the message was waiting for me that I had the job.

The down side (it turns out) that I was under very heavy performance pressure, my pay was dependant upon it, and my stomach was upset for the duration of my employment (to the very day). And I never got the review I was supposed to get (my fault for not pressing the issue). Anyway…

Axiom

So its 1992 and I’m working at Southern Datacom, hating every day until the day I got the call: “Hi. This is Steve Palmer, I know you from RealWorld but now I’m with David Greenbaum here at Axiom and we’ve been talking about high powered programmers we could hire and your name keeps coming up. Want to talk?”

So I was hired, like that night. But everyone at Axiom worked at their own home, everyone. So I had to set up my own home office and that was cool. So for ten years I’d work at my little home office, crank out the code, handle support, write documentation and own my two products (CellManager and RefManager).

I learned MicroStation Development Language (MDL) and that put many a paycheck in my pocket. There are few MDL programmers and when one is needed my phone lights up. I’ve done work, several contracts, for Verizon using MDL and my knowledge of MicroStation.

The down-side of this was that I was locked into a procedural language writing event driven applications while the rest of the world was getting on the Object Oriented Programming bandwagon. I was behind the times. I didn’t get to play with OOP for years.

Sandia National Labs

“I’ve emailed you the specs for a project we’re doing for Sandia National Labs. We farmed it out to a company in India but just today they told us they didn’t know how to do it. It is due Wednesday after next and it is a government contract so if we screw it up we won’t get any more.”

Steve went on to give me ideas on how to accomplish the task, full go-ahead to work as many hours as I need and they would cover extra expenses as-needed. So I did.

I wrote a multi-thousand line MicroStation Basic ‘macro’ (I found out macros were never expected to be more than a dozen lines or so) that performed the tasks required within the constraints defined.

I got to chat with the people at Sandia National Labs and that was fun: “You guys make atomic bombs, don’t you…”

I delivered just in the nick of time. And I received a bonus. And the following Friday I was at a screening of an indie-movie and David Greenbaum, the owner of Axiom, was there too. He enthusiastically introduced me to his table “This is Brian, he saved our bacon.”

LinkFixerPlus

Pegasus Digital Imaging

Early in 2002 I learned a lesson getting hired at Pegasus. I called, made an appointment and took the interview, it went well enough but I got a call a couple of days later telling me they went with another candidate. OK, I kept looking. But two weeks later I called back and asked “So, how is that other programmer working out?” and I got hired, begrudgingly and the manager, Chris, asked “so what pay rate had we been talking” (money had never been mentioned) and I said $70K, he groaned and agreed. This was a problem and would never work out. I handled it wrong, he handled it wrong, it was doomed. The lesson is ‘if you aren’t the one they wanted, you aren’t the one they wanted, second place it the first loser.

Corpus

The

Youngsoft / Integrated Health Plan

So I just finished the job with Corpus/Verizon and put out my feelers, starting to get some action when I get a call: “Hi, this is Jill from Youngsoft up in Detroit. We have you on our short list for a job in Saint Pete., actually you’re the only one on the list so don’t screw it up for us. We’re going to pay you $48 per hour and you have to work from home. Do you want medical/dental? You need to go over and meet with the Project Manager, Jennifer, she will get you started.”

So I met with Jennifer (Who used to be a guy named Ed!) she gave me an envelope with screen sketches on the back (yes, really) and a CD with a sample database; “We need it to do <this and this>. Call me when you have a prototype ready to show.”

So I went home and in three days had a running application that did what she had asked so I called her up and told her. “Great. Meet us at 10:00 Wednesday”

I show up Wednesday, I put it up on the big screen, the room has managers and clerks and everyone and I give them a show-and-tell. We order out for lunch. They give me feedback and I have a laundry-list of features and changes and they end the meeting with “Great. See you next Wednesday.”

And that is how it went for two and a half years.

The Great Recession

Loop LLC

Aricent / Verizon Data Services

This was a doomed project: they intended to hire a team of MDL programmers in the Tampa area to work out of the Telecom Park building (F4) but only got me.

Insight Global / AAA

Price Waterhouse Cooper

Modis / Chase Paymentech

Vastec

Applicant Insight

Bridgeline Digital

Pegasus Transflo

SaviiCare

Reputation

It takes only two or three events to get a reputation. Good or bad, if you do something, something out of the ordinary, something notable, do it two or three times and people will expect it of you or know you for it.

I show up to work wearing a bowtie, next wednesday my co-workers are asking where the bowtie is and that is how ‘bowtie Wednesday’ got started. Next thing I know I’m expected to wear a bowtie for a video shoot and that the big finance guy has been talked into wearing a bowtie and I have to do so when he shows up.

The takeaway is don’t squander your reputation.

Tools

Blacksmiths were in an enviable position: they could build most of their own tools. Need a pair of tongs, start hammering out a pair of tongs. You may have to borrow a hammer but a bad hammer is not much worse than a good hammer and then you can pound out a better hammer. And it builds from there.

Programmers are in much the same position; they can build their own tools. This started early on with compilers and editors; we needed something to start off with then we used them to build better editors and compilers. And it happened fast. As a matter of fact there is some kind of designation when a compiler can compile the code used to build itself.

Through the years, programming has created many of its own problems; version control, sprawling projects, poorly written and hard to maintain code. It has also created its own solutions; MVC, Git and Visual Studio, are the current pinnacle of progress.

Older posts