Easy Peazy Online Courses & Certifications

This is just a blurb to say online sites like Solo Learn have interactive tutorials with quizzes and certifications for all sorts of programming languages and to some degree, undergraduate computer science. They are super fun, very easy for the experienced, yet enough depth to claim first pass learning of a language and some concepts. So far, C++, Java, Python, SQL, and R have been completed.

New Gadget

nucleo-144

For $18 who can go wrong! Picked up a STMicroelectronics Nucleo-144 board to revamp some skills and do some prototyping. STMicroelectronics literally writes the code for you. Shown is the STM32CubeIDE which includes the linker, debugger, everything, all at no cost. HAL libs, what’s not to like!

Watermarking Technology and Research

Much to my surprise I have received email queries requesting the old watermarking paper that was on the old site be made available again. Without further ado here it is, in all of it’s antiquated glory.

I am also receiving queries for information about watermarking, both video and audio. Frankly, if one wants to pick my brain, I suggest hiring me as a consultant.

That said, I believe some queries are simply engineers looking for resources. I thought I’d outline what I do when trying to ramp up on cutting edge research where the end game is actually innovation in the area. Other engineers might do things differently or better, but this is what has worked for me.

First, I do a Google search, Wikipedia read and I call this the superficial newbies and morons informational hunt. I try to just get almost a marketing feel for the concept. What is it, what is it for, what is the basic technique, where does it go, where it is in R&D currently. I also hunt for code snippets, Matlab scripts and try to play with those scripts, write a few lines of code, just get a technical feel for various approaches. I don’t spend a lot of time doing this, maybe a day tops.

Then, the fun comes in. I run down to a University Research library and utilize the vast databases, journal subscriptions of the Academic system and do a literature search. I also perform a patent search on Google patents and the U.S. Patent and Trademark Office. The tricky thing with patents is to make sure my newly formed vague great grand idea and concept has not already been patented. If it is, well, move on and realize great minds think alike. Yet the patent databases are also a good place to review other ideas and evaluate them. It’s also a great place to see what I do not know and do not understand. If I really cannot comprehend a patent, I then go look up, even in an Academic text what I am missing, what equation, what paragraph, what diagram, to understand the paper or patent I’m attempting to digest.

After a literature search, if I find a gem, I might dig in to that particular paper, but very often I am learning about the technology utilized and mulling ideas and approaches from others. I actually move on from the literature review to finding my own approach versus study someone’s work until I could “Ace the test” on it.

One can even take someone’s idea from a literature search and code it up in Matlab to see how well it works if the brain gears still are not turning. But generally speaking, this is the point I am writing code to learn more about the technology area I’m exploring as well as writing some code to see if my approach and idea is even feasible.

For me, I find writing up some code, drawing a block diagram, even breadboarding a circuit, trying something, is the way I figure out what’s going on. Even if my first efforts are huge fails, I learn something by doing instead of just thinking. I get something on paper, screen, digital bits, somewhere. If I stay stuck in my head, the idea and concept stays there too instead of to prototype.

The above is just a little bit and I hope it helps someone out there. I guess a key is to not be afraid, not be shy. It is our right as engineer explorers to be dumber than a box of rocks and technically clueless periodically. In other words, don’t be afraid of these massively complex engineering research areas. One foot in front of the other, even while banging around in the dark has always gotten me somewhere.

Hey man, turn the light on!

Remote Consulting

There is much misunderstanding of remote consulting.    Many companies have been burned, sometimes badly, by less than ethical consultants who promise the world and deliver nothing.  They may have offshore outsourced a large contract, only two years later to be out millions of dollars and have no results at all.  They might have received incomprehensible spaghetti code or deliverables which literally are a black box to them and no one available to support that project after the fact.

Firstly, I am in the United States, working with Companies under the jurisdiction of Oregon state law and U.S. federal law.  One doesn’t need to worry about international law or lack thereof to ensure they are getting what they paid for.

Secondly, Contractual law enables fairly narrowly defined business relationships if one wishes to write them into a contract.  For example, I write into contracts support clauses as well as intellectual property defense clauses.  This guarantees after the project is complete, if there is a support issue, a question on implementation or God help us all, an intellectual property challenge of some sort, as long as payment is received, I am obligated to support the work.    These clauses are actually superior to an employee, for once that person is gone, there is no getting her/him back without some sort of renegotiation.

Many believe that team building can only happen in an office, or in a physical space.   Remote consulting is really more of a paradigm shift.   One can see from the massive build up on the open source community as well as social networking, the blogosphere, that advances in technology, when utilized, can structure a well organized and managed project that is almost superior to the traditional white board meetings on site.   The reason for this is the electronic paper trail remote communications generate.  Every instant message has a logging system.  Online meeting software literally enables users to control the other’s computer remotely.  VoIP systems have call logging (recording) capability.  For those who want to remember what was said, these technologies  are literally instant note takers and assist greatly in focusing meeting topics, clarifying requirements and detailing project execution.  With today’s technology, one can have an online brain storming session or white board meeting which is in many ways superior. The software itself logs everything, from chicken scratch to the seed of the next killer app for you.  Nothing is lost or forgotten by software, unlike my brain without a cup of coffee.

Remote access to CVS repositories, the advances in Subversion for software control, enable ease of project management better than peering over the Cube wall and asking if that class or function is integrated yet.

Sometimes, in spite of all of this, on site might be necessary.  This can be especially true in large embedded, firmware projects or large custom boards with integration issues.    I will come on site as needed in these cases.  One can be quite surprised at just how much can be achieved offsite even with large integration issues and possible software module resource conflicts and other integration bugs though.  I have been remote consulting for years and when the consultant is responsible, professional as well as the client, it is astounding what one can achieve remotely.

There are other sorts of consulting that require travel, such as to standards bodies.  My general rule of thumb is if the work itself truly requires on site or travel, I will do what it takes to get the job done in these cases.