Last night I was very saddened to learn that a young man I knew at IUPUI had killed himself three days prior. He was a few semesters behind me, so I first met him when he was in ECE362, a required course on assembly programming, that I taught with my friend Nathan. He was a hard worker, often coding away in the lab, but he never seemed to get angry about it; the frustration he showed seemed quite minor. Indeed, I had contacted him about coming to work with me after he graduated.
It was a real shock to learn of his suicide.
Today I received my Purdue BS EE diploma in the mail, which was very nice. That degree took some real effort, and I am proud of having done so well academically and met so many interesting and inspiring people.
I also received an email informing me that my senior design team had won the Spring 2016 Dunipace Senior Design Award, which I understand to be the Engineering and Technology Department's Bepko Award for Spring 2016, which meant we each received an award applied to our Fall 2016 tuitions. As I no longer live in Indiana, I will regrettably be unable to attend the award ceremony on April 7th in Indianapolis.
Two days ago I logged into my university account to find that my unofficial transcript now states that my BS EE was awarded on December 18, 2016. Excellent.
Today at 12:30 I finished my last final exam for my BS EE. Now I wait to see what grades will come back. There is a good chance of two As and a C, but we'll see. I have some grading of my own to do for the course I assisted.
What is curious is that I feel neither joy nor satisfaction at having completed everything. Rather I just feel exhausted from the stress of finals now in the past.
My girl and I celebrated at the Indianapolis Rock Bottom Brewery with some fellow engineering students, recent or current graduates. The bison burger was tasty!
On December 22, 2016, the last grade was submitted to the registrar, with the following results:
- ECE 321: Electromechanical Motion Devices, B
- ECE 421: Advanced Digital Logic Design, A
- ECE 463: Introduction to Computer Communications Networks, A
Now I wait for someone to sign off that my degree is indeed complete. My program GPA wound up 3.612, but my degree GPA was 3.803.
Yesterday I updated my copy of BBEdit, a Mac-only text editor from Bare Bones Software that I have been using for over a decade. I never got far with the program during my English-teaching career, but this semester the program was particularly useful to me in writing Python code for the final project in ECE 463.
After installing the update, I opened the About… window and scrolled down to find a familiar name. I cannot recall what I might have done to get on the list, or whether that is coincidentally someone with the same name, but there I am:
One of my three electrical engineering electives for this final semester is ECE 463: Introduction to Computer Communication Networks. About two weeks ago, we were assigned a final project: Design a P2P Connect-Five game that communicates using the HTTP Protocol.
My partner, Jun Lin, and I quickly decided to use Python for the client-side GUI, since I had done a fair amount of GUI work in the course of my internship this past summer. We opted for Python 3 and used the Anaconda distribution. I did nearly all the Python GUI with the use of tkinter. Because the Spyder3 IDE was taking more time to adjust to than Spyder 2, I ended up relying on Bare Bones Software's BBEdit text editor--the power of which I am now beginning to appreciate--and Mac OS X Terminal. That was it!
Jun Lin worked some magic--the only word I can use, since I know nothing about PHP--for the server-side scripting. Initially we ran the server off my GoDaddy shared hosting account, but we found that it would block us after too many accesses from the same IP addresses. That forced us to turn to a different host, which we happened to have.
Anyway, we will demonstrate the game in class on Wednesday, but I wanted to put up some screenshots. I plan to make my Python GUI code available online at some point, because it would surely be helpful to others.
The following screenshot show the game at startup. We were required to have a 19x19 game board. I opted for check buttons, because they are easy to work with and make nice arrays.
The other screenshot shows a win. Every time black--you (peer is pink)--makes a valid move, my algorithms scan for a vertical, horizontal, SW–NE, or NW–SE win. If one is found, the peer is notified of their loss and scores are updated accordingly. If the peer logs out midway, that is correctly handled. We are rather proud of our game!
Though it began with my reluctance to depart for school, the day turned out to be a very good one for a couple of reasons:
- I was able to figure out viable algorithms for Connect 5, our peer-to-peer final project in ECE 463.
- Purdue's main campus will let me attend Commencement up there.
- A friend called to thank me for passing along the contact information of a recruiter who has since hired him. He is excited about moving to Michigan to work.
- Another friend I had not seen in a while happened by and said he had heard good things about my growing programming skills. They are definitely better, but they are still low.
- My 463 partner found out how to use the old PHP 5.3 that my hosting arrangement provides, which will allow our P2P game to work nicely.
Additionally, it was unseasonably warm: 71°F.
As of now, I have just eight more Fridays until I finish my engineering degree.
For my networking course, we are assigned some labs that require using a Wireshark, a free packet sniffer. These labs have forced me to start learning some basic commands in Terminal. I am currently running Mac OS X 10.11.
To get one's IP address, assuming en1 to be what you want:
ipconfig getifaddr en1
To find your DNS address:
To flush the DNS cache:
sudo killall -HUP mDNSResponder
The first week of classes has ended, with both relief and repudiation. Since returning from my internship in Arizona, there has been much to do here in Indiana. I have also spent three days taking a Japanese friend to a doctor for a dangerous eye infection. My 2011 Honda Fit has all-electrical steering, no hydraulics, that has begun failing briefly and intermittently, so that is in the shop to be examined.
In addition to doing a final section of the assembly programming lab for ECE 362, I have three electives:
- ECE 321: Electromechanical Motion Devices about motors, generators, magnets, inductors, and such.
- ECE 463: Fundamentals of Computer Communications about networking, which looks to be quite interesting.
- ECE 421: Advanced Digital Logic Design, a VHDL course that requires much work with Xilinx' Vivado.