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
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!
About The New Site
Folks, I just put up this new site. It is WordPress and chosen because it is responsive design, accessible from anywhere and simply mega easy to style, modify and maintain. Expect to see more details as I add all sorts of techno babble, skills and projects on the site.
For the moment I am a consultant who works remotely. I have strong expertise in audio signal processing, compression standards, in particular ISO/IEC MPEG, as well as ITU G.7xx speech codecs. I also am an optimization expert and live to write cryptic assembly that I actually comment so one can follow along at home. C is my best language with my Kernighan and Ritchie still with me in tatters. I do have many other languages, including the antiquated Fortran and the obligatory C++.
I have a strong hardware background and have implemented projects on all sorts of embedded architectures. Yes, I do run a popular economics site, based in Drupal 7.x, where I did all of the coding modifications. The site currently resides on a CentOS 6.x, unmanaged VPS that I configured and maintain.
I build my own systems too. They will have to pry my Wiha T4 Torx from my cold dead hands, I am that geeky.
Other skills will be added to the site and overall I’m out to be more chatty. I am a notorious lurker who posts little, yet knows a lot. We’re out to change that.
H.264 in WebRTC
Cisco just did a solid and released H.264 into open source for use in WebRTC. Cisco is absorbing the estimated $13 million in licensing fees from MPEG-LA. The reason Cisco did this was to avoid transcoding of H.264 streams from other video clients, a wise choice. The IETF is determining which video compression algorithm will be the baseline for webRTC this week.
Mozilla will incorporate webRTC, including H.264, into the Firefox browser and Chrome already has it. Google is sticking with VP8 and is a major developer and contributor to webRTC. The IETF vote is in Atlanta this week and we’ll update this post with who won out in the video codec selection. We hope both are supported, yet Cisco is right, the last thing one wants to be doing in a real time stream is transcoding H.264 to VP8. It does seem that stand alone proprietary video conferencing and streaming solutions are going the way of the dinosaur, although webRTC as the meteor which killed the beast is yet to be determined.
Real-time communications in the browser utilizing native codecs and javascript sounds too good to be true and that is becuase it is. Underneath the hood are the typical real time streaming issues such as NAT transversal, firewalls, latency, QoS and synchronization, to name just a few. WebRTC latency was reported to be 150ms with a mininimum of 100ms. While that mets ITU QoS, it is pretty much the crappy out of sync video conferencing most of us experience daily.
It appears at the IETF meeting there was no consensus on which video compression algorithm to make mandatory for webRTC. It also appears both is not an option, so far and Nexus has hardware implementations of VP8 while hardware acceleration for H.264 is available in many chipsets.
On a technical note, I am downloading the source for webRTC, focus on Opus, (Xiph), since supposedly it is not ported, never mind optimized, on many embedded platforms. I’ll write up what I find in another post.