Get Unstuck

Inspired by https://www.interviewcake.com/article/python/coding-interview-tips I thought I could make a variant. We’re no longer talking about a coder and an interviewer, we’re talking about a solution provider and their client.

 

Get unstuck.

Sometimes you’ll get stuck. Relax. It doesn’t mean you’ve failed. Keep in mind that the client usually cares more about your ability to cleverly poke the problem from a few different angles than your ability to stumble into the correct answer. When hope seems lost, keep poking.

Draw pictures. Don’t waste time trying to think in your head—think on the board. Draw a couple of different test cases. Draw how you would get the desired outcome by manual effort. Then think about translating your approach into product.

Solve a simpler version of the problem. Not sure how to find the 4th most important demographic in the market? Think about how to find the 1st-most-important and see if you can adapt that approach.

Launch a naïve, inefficient solution and optimize it later. Use brute force. Do whatever it takes to get some kind of launch, traction, or engagement.

Think out loud more. Show what you know. Show what you thought might work and why it won’t work. You might realise it actually does work, or a modified version does. Or you might get a hint from the client.

Wait for a hint. Don’t stare at your client expectantly, but do take a brief second to “think”—your client might have already decided to give you a hint and is just waiting to avoid interrupting.

Think about the bounds on time and effort. If you’re not sure if you can optimise your solution, think about it out loud. For example:

  • “I have to at least look at all of the items, so I can’t do better than market testing.”
  • “The brute force approach is to test all possibilities, which is incredibly lengthy.”
  • “So, because the answer will contain n^2n​2​​ items, it follows that I must at least spend that amount of time.”

 

Thanks to Parker Phinney and Cake Labs. No intent to violate https://www.interviewcake.com/terms-and-conditions

New video codecs: new sounds great, new takes years.

If you are a video algorithm engineer, it’s likely that you spent years at university studying something abstruse in mathematics or particle physics. Or, perhaps, visual/mechanical reproduction systems.

When you take a commercial job working for a video encoding company, I enjoy reading your patent applications. I like seeing your standards-body submissions. It’s great seeing your names in the minutes-of-meeting for boards and committees. Sometimes, I get to meet you and shake your hand.

It’s even better when your submissions for a new video codec are not only accepted, but when they are endorsed and your peers start using the reference encoder components, the reference decoders, and when everyone uses the same videos to test compliance.

What’s hard is that this all takes years. Years! IBCs and NABs come and go, MPEG committees meet and disband, and time passes.

The result?

A provable, reference, standard for interoperability. And/or a set of parameters that others can go and innovate with. Products, systems, and even optimised circuits that map your math into personal enjoyment.

Codec is a portmanteau of coder-decoder or, less commonly, compressor-decompressor.

[ https://en.wikipedia.org/wiki/Codec ]

 

What hurts you, and the industry, is if someone decides there’s “a breakthrough” that is possibly based on a story.

Like, “Adams Platform“:

Investors who believed him ended up $27 million poorer. Despite the huge loss and the failure of the technology to work, no one has ever been prosecuted.

The Adams Platform technology could compress video by a ratio of a thousand to one, Mr Clark said. It could transmit full-screen, broadcast quality video over a standard phone line, he said. It couldn’t.

The claims seemed even more outrageous in the early 2000s, when broadband internet had yet to become the commonplace it is today. The potential seemed unlimited, and Mr Clark excited a huge amount of interest as well as a fair amount of scepticism.

It all amounted to nothing, and the company he floated on the ASX to exploit Adams Platform quickly folded after admitting there was no evidence the technology worked.

 

And like many others.

Now, if an amateur can download MediaInfo and look at a sample file that has been apparently encoded by a new codec, yet get all the encode parameters from the known codec x264:

x264 is a free software library for encoding video streams into the H.264/MPEG-4 AVC format.

[ http://www.videolan.org/developers/x264.html ]

……is it really new?

 

viz:

cabac=1 / ref=4 / deblock=1:-2:0 / analyse=0x3:0x133 / me=tesa / subme=11 / psy=1 / fade_compensate=0.00 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=0 / chroma_qp_offset=-2 / threads=7 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / fgo=0 / bframes=3 / b_pyramid=1 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=2pass / mbtree=1 / bitrate=1240 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / ip_ratio=1.40 / aq=1:1.00

 

And if the same amateur can view this video in a standard player, without any decoder component installed, is it really a new codec?

 

New sounds great: new takes years.

 

 

LockTight – one more final update ;-) for Mac OS X Mavericks 10.9

surf image from http://www.flickr.com/photos/35740357@N03/7257446130

from http://www.flickr.com/photos/35740357@N03/7257446130

Well, I managed to recompile it for 64-bit and for Mac OS X 10.9.

 

I can’t say that I can support it, or debug it, but if it works for you: fantastic!

 

LockTight for Intel (v0.1.2) (zip archive, 48kbyte file, HTTP download)

 

I’m referring to LockTight for your Intel-based Mac, per:

http://www.gkoya.com/2006/11/23/locktight-for-mac-os-x-intel/

 

Nevertheless, this is being provided without any support statement and without any expressed warranty or merchantability statement. It is virus- and malicious code- free.

 

NO WARRANTY

1. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

2. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

 

 

PC versus Mac: the winner is…

…who cares?

I am amazed at grown adults who think that there is even such a thing as PC vs. Mac. It’s no more sensible than Ford vs. Holden.

My system

Just use the best tool for the job, one or more of:

  1. The job at hand
  2. Your actual job
  3. Your preferred job; your aspirational job

This is why my “daily driver” is my MacBook Pro running Mac OS X, and why I have two other laptops on my desk running 32-bit Windows.

That is all. :-)

I Work For You

I tried to offer my services via Twitter, and had zero takers. Fair enough, maybe my circle is too small.

So, I blog it here, out in the open.

Contact me, and I will do your work for a day, for free.

You could take this opportunity to “hand me the keys” and go to the beach.

Or, you could take the chance to get some project work done, or done faster.

You could use me as an extra pair of hands.

No, I will not be a slave, Man Friday, or workplace masseur, or anything similar.

My offer is serious, if you want to take me up on it.

Location: Sydney, or you pay me the cost-price of travel to/from your preferred location.

What do I do?

Read on after the break for details. Continue reading