New Year Resolution: Technical

Inspired by Professor Matt Might, I decided that in 2017 I am going to try to round out some of my technical abilities. Part of this is driven by the fact I am starting a new job in February that will focus more on software and less on hardware.  As such, I am going to try to focus on learning a new type of technology concept each month. What are my strengths? C++, bare-metal development, software-hardware interface, FPGAs, embedded, etc. What are my weaknesses? Databases! Virtualization! Web!

  1. January: NoSQL (via MongoDB)
  2. February: NoSQL clients (via Python, Pymongo, and MongoDB)
  3. March: RMDBS and SQL (via IBM DB2)
  4. April: ODBC for RDBMS (via IBM DB2, C++, Python)
  5. May: PKI and Authentication (via MongoDB and OpenSSL)
  6. June: Virtualization 1 (Linux KVM)
  7. July: Virtualization 2 (Linux+Xen)
  8. August: RESTful web services back-end (C++ and  Casablanca library, Python)
  9. September: RESTful web services clients (Node.js or Django)
  10. October: Web-based GUIs (Angular+Node.js or Django)
  11. November: GPU programming basics (Nvidia CUDA)
  12. December: GPU programming (more) (Nvidia CUDA)

I thought about adding DevOps tools into the mix, but I think I am sure I am going to pick up a lot on the job in that area, as well as it would probably help to get a better grasp of deploying virtualization beforehand.

Let’s see how it goes! So far I have MongoDB installed and I am working through the intro course with python at MongoDB University.

Synopsys NAS Stable!

I logged into my NAS yesterday and was informed that DSM 6.0.2-8451 Update 7 was available to install. I proceeded with the update, and the NAS started the install. As it neared the 100% mark, I realized that this would be the moment of truth. Will I still have these power management issues?  After some time, I heard that NAS beep, indicating that it had rebooted. I was pleased so far, I didn’t have to manually power cycle the system!  Within a couple of minutes the NAS was back up online and I was able to log in as admin.

Success! It looks like finally the power management issues are behind me. The Intel firmware appears to have fixed the problem.

NAS Firmware Update – M.616

Synology got back to me and said that my issue has a fix identified that will be released in DSM v6.1 bundle. The current baseline is DSM v6.0.2, and v6.1 is a beta version that is available. Since I’m trying to stabilize this system, I did not want to run a beta version of the DSM operating system. Instead Synology provided me an updated Intel firmware version M.616.

Installing the firmware seemed to help, the system installed the firmware and then rebooted without my needing to manually power cycle the system. Manual reboot and shutdown also worked. This time the system firmware also appears to have been updated:


Fingers crossed now!  Hopefully this will be the end of the power management issues. The next test will be when there is an update to the DSM software and if the system can reboot after updating DSM.

More Synology hang-ups

I had some downtime this morning, so I logged into my DS216+ web UI to check on things. The device immediately woke up upon entering its IP address into my web browser which caused me to let out a sigh of relief, thing back to the last time I tried.  My spouse has been heavily using the device lately moving all sorts of photos onto the unit or to her PC. As a file store I really am happy with this NAS, it works seamlessly with her Windows computer and her iPhone. I mapped the photo directory as a share driver on her Windows computer and all has been well. Yet somehow I knew it was too early still to declare victory.

Sure enough there was a DSM operating system software update.  DSM 6.0.2-8451 Update 6 was available, so I went ahead and chose to update. Unfortunately, the NAS hung when trying to reboot! Again power management issues! The status and network LEDs were out, the HDD indicator lamps were solid, and the dreaded dual-blue LEDs by the power button were flashing, indicating an error state. Once again I had to go over to the device and physically remove power.

I verified that if I manually request a reboot or shutdown, the NAS does come back up. At this point the only issue seems to be with rebooting after updating the DSM operating system. It is a minor nuisance at this time, but I am going to put in a trouble ticket to see if there is a solution to this issue. Perhaps Intel firmware version M.615 that Synology seems to hesitant to offer to the user community? What do they know about M.615 that makes them so hesitant?

End of Semester – Still alive and kicking!

This week marked the end of a very intense semester in my graduate program. I had planned to just take Power Electronics and then a business or engineering management-type elective, but a course in advanced ASIC design topics was offered and I signed up. The course was split into two sections: SystemC modeling and then back-end physical design for ASICs. It turned out that both of courses were very intense, and trying to complete all of the course work on top of my full-time job was very challenging. I made it through it all though with solid grades. In the ASIC course, I learned a lot about ARM CPUs, especially the buses (AHB, AXB) that interface with peripheral devices, and I learned a lot about DDR memories too. SystemC was quite interesting, a very interesting way to model a system-on-chip (SoC). As a C++ programmer I really liked working with SystemC!  Most of all though, I thoroughly enjoyed the back-end design: placing standard cells, power/ground networks, clock-tree routing, and data signal wire routing. There are lots of algorithms going on in tools like Synopsys IC Compiler and Synopsys PrimeTime, the clustering and routing algorithms alone are fascinating for those interested in applications of algorithms.

Below is a screen capture of my clock-tree in an ARM CortexM0 design. It reminds me of a fractal in some ways! All in all it was a really useful course, and working with ASICs always makes me think about trying to find a job in the semiconductor industry…fascinating technology.


I plan to finish the program and “graduate” at the end of the next semester. I willl take a course in VLSI system design as well as a managerial accounting course. Yes, I am backing down and taking a business course! I learned my lesson this semester with two engineering courses, it was just so intense. VLSI will be a great course, and I think that an accounting course would at least be useful knowledge.

Notebook computer for a nerd

I am really struggling with the decision for a new laptop. I really need one, my ASUS X401A is quite challenged by my workload, such as opening more than 8 tabs in chrome, or the battery holding a charge longer than 30 minutes.

I was thinking of getting a MacBook Pro, but the October 2016 product line really left me disappointed. The basic MacBook Pro would have been fine except that there are no USB type-A ports! My Logitech M570 trackball does not come with a USB-C adaptor. Furthermore, my external DVD-RAM drive, USB thumb drives, and USB hard drives are all USB type-A. I suppose one day when the rest of the computer industry has taken the leap of faith and moved away from USB type-A, may then I will switch. But not today. Then I looked at the MacBook Air, and actually it would be ideal, but the screen resolution is very dated and I just feel like for the price that Apple is selling it for, it ought to have a much better display resolution in 2016.  So no Apple this time around…

I have a Dell XPS13 developer edition at work, and I was thinking I would get one for myself at home. I have an older version at work, and the only annoyance is that no matter what I try I cannot disable the trackpad while typing, so the mouse cursor jumps all over the place. Of course at work this is not much of an issue as I use an external mouse at my desk. More disturbing though is that current versions with Kaby Lake Intel processors have an annoying “whine” coming from the power supply. The Dell user forms are full of complains about this, and I am now  going to have to avoid this notebook computer until Dell can determine the fix. It is ashame, because this really would be the ideal machine for me, but I know the whining sound would take its toll.

So where does that leave me? I want a portable ultrabook that I can install Linux on and do some basic software development. I looked at some of the HP and ASUS product lines, but there seem to be issues with Linux and Kaby Lake support on some of these devices. The ASUS device I liked seems to no longer be sold too.  So now I’m looking at Lenovo, the Carbon X1 Thinkpad. I was considering the T460 Thinkpad, but I really want something portable and lightweight.  The X1 has everything I want, except that the it costs so much more to go from a 128GB SSD to a 256GB SSD. Oh and it comes with Windows, so I would have to blow that away.

I am thinking that I will go with the small hard drive in the end though. After all, my Mac Mini is now my primary desktop device, and I do have the NAS on the home network too. What do I need more than 128GB of storage for? Would I even use the additional 128GB, so is it worth an extra $250?

More Synology Woes

My issues with power management on the Synology DS216+ appear to continue. After my last trouble-ticket was opened with Synolgoy, they remotely installed a BIOS patch. I am not positive about this, because from what I can tell the BIOS version and date have not changed. Regardless, this patch did fix the issue with the device hanging on shutdown and reboot. The NAS now completely shuts down, and it does come back up on-line after reboot rather than hanging.

To my surprise this morning the NAS device appeared to be stuck in a sleep state. All LEDs were off, except for the Status light which was slowing blinking green, the low-power, sleep mode indicator.  I was not able to access the device via the Web GUI or the Synology Assist application. That usually means trouble. I even tried ssh and ping to access the device, but it appeared to be stuck in a sleep state. I tried to press the power button to wake it up, but there was no change. Eventually, I had to hold the power button down for a few seconds to initiate a hard reboot. This is an improvement though! I didn’t have to physically remove power on the back of the device.

After reboot, I was still not able to access the Web GUI. Synology Assist did find the device on a new IP address, however. It appears my FIOS modem/router decided to move it off of the previous IP address that the NAS had been using for months. Thanks, Verizon. This just underscores my need to work on the home network when I get some time off from grad school and work later this month.

The IP address change explains why SSH, ping and the Web GUI were unresponsive, but it does not explain why Synology Assist could not find my NAS. Unfortunately there were no clues in the notification log and . I disabled automatic updates to the system, so I just had notifications letting me know there were some DSM software updates available.

I installed the lasted OS patches and package updates. For now I suppose I just need to monitor and watch the behavior of the device. I hope hanging on sleep will not become my next issue to contend with!

And I will not be happy if the answer is to install the M.615 patch…I am still on M.613 after requesting M.615…