Category Archives: Software & Systems

Semiconductor and Systems posts

2017 Technology Trends Forecast

In January 2017 I did a technology trends forecast, thinking I might make it an annual effort.  So here we are 2 year later and I'm reviewing how I did....    any comments?

Biotech products/technology:

  1. Graphene based biosensors for sale
  2. 1st CRSPR 2.0 genomic editing platform drugs hit market

Digital Penetration:

  1. Voice command device share growth and 1st voice command in cars (native not Applink)
  2. Blockchain standards (Ethereum) will begin re-seeding peer-to-peer with big scaleup in P2P with 5G rollouts (~2018-20)

IT Infrastructure and Software Architecture:

  1. Graph storage model query languages "narrowing down to a few" migrating towards a (few) standards much as SQL did for the relational storage model (e.g. MS "Trinity", Google "mapreduce", Oracle "Spacial", Apache "Neo4j", Teradata "Aster")
  2. Containers take off (Docker vs Kubernetes)
  3. AI "fad" fades, deep neural nets continue to improve more classic apps (classification problems with separate training/runtime) sped up by GPU's / Silicon to include video scene recognition.

Business Models/Companies:

  1. SAAS Consolidation w/continued growth in  hybrid cloud implementations leveraging cloud OS's

Social:

  1. Steady Cyberwarfare in the news, speeds security improvements with "Secure Remote Password"  SRP Protocol
  2. Personal Bots continue to flame out (AI hype)

Cool Products:

  1. 1st Folding OLED products (phones/tablets) by Christmas (mfg capacity expansion)

I've Been Hacked!

wordpress-hack

On August 20, I recieved an email from my hosting provider (www.Arvixe.com) saying they deleted something bad from my directory and I was likely part of a phishing scheme. When I went to the website every page  said:  "hacked by Hwins2005"    Bummer....

So here I am on August 23 after 20 hours of deep dives into WordPress,  (opening more PHP files than God intended), a bit of Apache, every tool CPanel offered and I'M BACK!  I still have a ticket with my provider which is making it's way up the queue.

This is a record of those lovely hours. I hope it is helpful for anyone that has to go through it.  First however is the emotional aspect... it is a mini version of a feeling I had many years ago when my house was broken into.  A feeling of invasion, violation of personal space and anger. People have this feeling  and it is why privacy is manifesting itself politically, whether it's the NSA, Scott McNealy's 2009 quote: "You Have Zero Privacy Anyway. Get Over It" or Facebook data-mining your friends to  get a better credit score on you... GET THE F*%$ OUT OF HERE!

So here's what I did:

TRY TO FIX THE EXISTING SITE

  1. Read about the first 6 or 7 search items on "WordPress Hacked"  (half were advertisements)
  2. Logged into wp-admin and realized that my backup settings were not scheduled and my backup was months old (while fearing I was doing something bad by logging in)... more Bummer
  3. Ran a backup because the searches said to
  4. Downloaded a malware plugin and ran it ( $ to get the fix-it plugin)
  5. Deleted that plugin then downloaded and ran another ( $ to get the fix-it plugin)
  6. Ditto for that plugin
  7. Spent some time cruising WP directories and opening files hoping for a hail mary
  8. Gave up
QNAP Storage Server

Qnap NAS Storage Server

ABANDON THE EXISTING SITE AND REBUILD ON A STAGING SITE

  1. Decided to build a "staging version" and was always intrigued what the performance of a WordPress stack would be  on my QNAP TS-419U II NAS
  2. Built a clean MySQL/WordPress/Apache stack on the QNAP and the
    performance SUCKED (minutes to do  single digit second tasks on my hosting provider)!
  3. BTW I'm a BIG fan of QNAP and their hardware/software. This server has a Marvell  2GHz single core processor and it just wasn't up to managing the RAID as well as the WP Stack.
  4. Before the hack I was moving my trading  code (C#.Net, C++, Amibroker and Matlab) to the cloud using virtual machines in Virtualbox mixing Win7 and Centos.  I intended to automate the configuration and provisioning with Vagrant.
  5. Great stuff but  realizing I was getting far away from fixing my blog,  I Gave Up ( ummm..... more like postponed to  fix the specific, instead of the general problem  )

TRY TO FIX THE EXISTING SITE OR REBUILD AT THE HOSTING PROVIDER

  1. I started running phpmyadmin browsing the SQL tables and removed a bunch of users, changed my admin account Usernames and Passwords and the character code from UTC-7??? Back to UTC-8.
  2. Deleted (not just de-activated) all plug-ins except the most basic.
  3. Without a terminal on CPanel to "grep" my way through all the WP files I kept wondering how long it would take to build a diff tool to compare my site to the WP release on GITHUB. Then I found Anti-Malware and Brute-Force Security by ELI.  I installed and ran it.
  4. The plug-in did not find the problem but gave me about 10 suspect files. I opened them with the CPanel editor and pasted the current GIT versions.  When saving, the editor informs whether anything changed, two files had changed.
  5. The site and pages still redirected to the "hacked by Hwins2005".  I figured if my php files were cool there must still be issues in the javascript
  6. I deleted my Theme and reloaded it
  7. I'M BACK

Whew....   probably saved $250 to have someone clean it for me but I learned alot about WordPress' architecture and improved my CPanel and overall web stack chops. I'll be attempting to harden things more going forward.

Cheers,

virtualbox       vagrant   centos

Disassembling Software Architecture

modelt

Disassembled Model T - Henry Ford Museum

I've been time traveling after seeing a great O'Reilly Video by Mark Richards on Software Architecture Patterns http://goo.gl/vAQloM. He includes some well thought out metrics as well.

Mark describes 4 of the 5 architectures in his book(s):
1) Layered
2) Event Driven (brokered and not-brokered)
3) MicroKernel
4) MicroServices
5) Space Based

I remember the early days of IC design (70's-80's) when product ideas became components in future products (the engine of exponential growth). The 1T DRAM, 6T SRAM, PLA's, ALU's started out as chips on boards but eventually were microcoded together to create a microprocessor, then SOC etc.

In the mid 90's I saw Mr. Silicon Graphics and Netscape Jim Clark (I consulted with Jim in 1983 when his "Geometry Engine" ran slower than simulation) at a Stanford Hot Chips conference. He forecast...

1) "We used to build small/consumer products by cost-reducing components for big systems"

2) "In the future we will build big systems from cheap components developed for small/consumer systems"

He spotted the pattern.

After the video I compared Mark's 5 patterns to  "Software Architecture in Practice", Bass et al,  a Stanford U. early 00's Software Architecture class textbook.   Chapter 18 of 19 is "Building Systems from Off-the-Shelf Components". I'm struck by how software architecture has moved from case studies to building with off-the-shelf components Just like early IC's.

Fast forward to the mid 00's when I ran a SaaS company warehousing chip measurement data. The product started with a 3-layer architecture (browser + "big ball of engine" + OracleSQL). We bogged down trying to add new features. How do we dis-assemble and re-factor the engine while the car is in the race?  A recent piece by Mat Stine at http://pivotal.io/ pointed to two recipes from SoundCloud http://goo.gl/nluAmU and Karma http://goo.gl/HpUOSp . Nice to see my problem dis-assembled 10 years later.

TAKEAWAY: BUILD SIMPLE SYSTEMS FROM SIMPLE STANDARDIZED BUILDING BLOCKS. Unless you're on the bleeding edge of speed, the benefits over a product's lifecycle outweigh any monolithictarball  approaches appear to bring. For you scrummy, lean and agile folks, kludge a prototype but don't evolve a prototype into a platform.

George Whitesides does a TED talk http://goo.gl/YGd6ta about the same idea (importance of building complexity from simple building blocks) to build pieces of paper that diagnose diseases... Same movie different actors...

So there... at the "right" level of abstraction you can re-factor West Side Story into  Romeo and Juliet by changing the UI.

The Connection Machine

The Connection Machine -space based architecture