Video Compression

VideoNerd

  • Bear in mind that Absence of Evidence of SW product malfunction does not always mean Evidence of Absence:

We commonly can’t say with 100% confidence whether a SW Product is “bug-free” or not.  Notice that i deliberately put the word ‘commonly’, because there are few cases when all potential (or expected) input data fed to the SW product actually consists of a very limited number of samples, which we can all verify and consequently to prove or disprove whether the SW product works correctly or not.

But in most cases potential input data set is astronomically huge to be tested during a reasonable period of time. For example, if you developed a SW encoder, try to estimate the range of all potential input video contents.

We usually test SW products on a limited representative set of input samples. Therefore, there is a risk that our SW module would fail on some ‘evil’ case.

So, we can only announce either the product’s status is “no bug detected yet” (if you are pessimistic) or “no bug detected so far” (if you are optimistic).

If you do not have evidence that something exists, it does not mean that you have evidence that it (the something) indeed doesn’t exist.

  • Ockham’s Razor Principle for SW Engineering:

In the modern translation Ockham’s Razor principle says: “Do not multiply hypothesis beyond necessity”. There is an alternative formulation: “of two [or more] competing theories, the simpler explanation of an entity is to be preferred

i re-phrase this principle for SW engineering: “Do not add code beyond necessity“.

 

  •       Don’t confuse the part with the whole

 

  •   The world as it really is   >   the world as it appears to us (to our senses).  Human Eye senses much more the visual cortex perceives.

 

  • SW Engineer must be always on the move

Don’t stop learning, don’t stop extending professional scopes. Always be learning even if you half-alive.

 

  • Always try to reproduce the bug

If you are required to fix a bug, always try to reproduce the bug to avoid searching a black cat in a dark room with no cats.

 

  •    Listen more than you speak

 

  • Consider programming languages like C++  as a tool to solve problems and not as a solution

 

  • On SW engineer career:  exploration or exploitation

SW engineering is so diverse that at the start of his career each SW engineer should decide whether to specialize in one field (exploitation) or each N-years to change field (exploration).

For example, I decided exploitation career and above 20 years I have been specializing in video compression.  Most of SW engineers I am familiar change fields each 2-3 years, this is example of exploration career.  

Like in medicine there are two types of doctors: family doctors (exploration) and narrow specialists (e.g. mamologist).

Similar in SW engineering, a good team should be composed from “exploration” engineers and “exploitation” ones, the proportion is dependent on many factors.  

 

  • SW Engineer should know:  more abstraction, more overhead and hence more cycles

Martin Fowler has said, “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”

  • SW Team Manager during an interview of candidates should remember the famous psychological  Dunning-Kruger effect:

The most incompetent are the most confident of their abilities and the most intelligent are full of doubt.

 

  • To be doubtful in your intuition and always remember –  the human intuition sees reality through a deceptive lens

 

  • Upon starting a new task always focus on what to do instead of how to do

 

  • Never accept conjectures as truth and remember we are biased to perceive the world far more deterministic than it actually is (for details pls’ read the book of Kahneman Daniel “Thinking, Fast and Slow”)

 

  • Avoid magic numbers in code. Magic numbers have no semantic content to speak of; they are what they are. A mental effort is required to reveal the semantic meaning of a magic number.
  •   While performing a task focus on the things that matter and ignore the things that don’t.

 

  •   Never turn off your brain while your computer is working

 

  • Don’t be afraid to say to your manager or a peer – “I don’t know”, if you really don’t know.

 

  • Bear in mind that Math is abstract because any selected number should not correspond or refer to something

 

  •  When writing code, try to make it to be as explicit as possible and avoiding of going into tricks.

 

  • Descartes 1637: I think, therefore I am.  Rephrasing: i am programming, therefore I am

 

  • As an engineer or an manager in a hi-tech company you should be aware that between God and CEO there is an intermediate level – Board of Directors.

 

  • The Latin phrase memento mori means “remember that you must die”. For SW engineers this phrase means – all data you allocate must die (i.e. to be de-allocated).

 

  • There is no flawless SW engineer, therefore there is no flawless SW product.

 

  • Improbable is not the same as impossible (‘improbably’ means highly unlikely). In  other words, if something can horribly go wrong, it will; it is just a matter of time.

 

  • Frustration can be a great teacher

 

  • As computer program grows it becomes increasingly susceptible  to crashing and misbehaving, because conflicting instructions buried in miles of code. More staff is required to maintenance such growing monster.

 

  • You need use both methods: Deduction and Induction, where Deduction works from a hypothesis to a conclusion while Induction works in the opposite direction: from evidence to hypothesis.

 

  • Don’t pursue high job titles. Job titles are irrelevant. What’s relevant – your knowledge, experience, innovativity and skills.

 

 

 

  • Bear in mind success comes after long hard work.

 

  • Bear in mind the correlation is not always transitive relation.Firstly, what’s the transitivity:  ‘a’ is greater than ‘b’ and ‘b’ is greater than ‘c’, hence  ‘a’ is greater than ‘c’.For counter-example, let’s consider the following situation:  I prefer ice-cream ‘a’ to ice-cream ‘b’. I also prefer ice-cream ‘b’ to ice-cream ‘c’. Does this mean that I prefer ice-cream ‘a’ to ice-cream ‘c’?

 

  • Not all uncorrelated variables are unrelated.

 

  • To develop technology, you need to understand how things work.

 

  • Bear in mind the Pareto Principle (or the 80/20 rule) which states that for many phenomena 80% of the result comes from 20% of the effort.  Generally speaking, in each team 20% makes 80% of total work.

 

  • Bear in mind: Low probability events are not zero probability events

 

  • Learn how to learn and learn how to learn to learn …

 

  • Three pillars of system observability: logs, metrics, and traces. Logs – timestamped record of relevant events while the system is running. Metrics is utilization data measured over intervals of time, e.g. CPU/GPU usage, GPU clock value. Traces are series of causally related events, e.g. in Server-Client system the trace can be: send a request, process request, send reply, receive the reply, process the reply.

 

  • Law of Sufficiency: if a solution meets specifications and it is fast enough then this solution is sufficient.

 

  • Gödel’s second incompleteness theorem states no consistent axiomatic system can prove its own consistency. In other words no system can be safe from hacking.

 

  • Statistical inference is the act of generalization from a sample to a population with some degree of certainty.

 

  • How to keep up with a rapidly advancing field – read technical literature and participate in technical blogs, ask directly experts.

 

  • Taken from LinkedIn:

, an

 

  • In natural sciences, an experiment and/or observation is the scientist’s way of asking Nature a question.

In Client-Server paradigm, Nature is Server, the scientist is Client and the experiment/observation is a query. You need arrange the query (the experiment) correctly to get a correct response from Server and not a garbage. Server can be stuck and you need wait for a response.

 

  • There are many theories on how consciousness came to be, but no concrete proofs.
    There exist so called theory of emergent consciousness: create enough neural connections out of ordinary matter (e.g. organic molecules) and at some point consciousness emerges naturally.
    Alternatively, create sufficiently rich in nodes and connections a neural network and at some point consciousness emerges, then you press “the red button” and kill the conscious being.

 

  • There is a wide gap between intention and reality

 

  • Sometimes laziness is beneficial. Let’s suppose you are asked to supply 89 pencils from the box of 100 pencils. Instead of counting 89 pencils, it’s better to pick 11 pencils and put them aside. Then the box will contain 89 pencils and you merely supply these 89 pencils. So you counted 11 pencils instead of 89 ones.

 

 

  • Random sequence definition from Computer Science point of view: random sequence can’t be recorded by means of a program (an algorithm) which is shorter than the sequence itself.

 

  • If you have to take a decision under uncertainty (most of cases), bear in mind that mistakes cannot be avoided.

 

  • One of main questions of Data Analysis:
    Can we be confident in the patterns that we are seeing in the data or what we are observing is just noise?

 

 

The best ideas often come from those who are willing to listen, rather than those who are eager to speak.

taken from LinkedIn, published by Tyler Smith

 

  • Most Meetings Are Useless. Some meetings are merely a speech of one or two persons, escape them.

 

  • from the book “Machine Learning God”, by Stefan Stavrev

 

  • Boundaries exist only in the human brain (or mind).

 

  • Never apply the following rule: if you don’t know to explain something (e.g. a bug in a program), pretend it does not exist.

 

  • Generally speaking, learning is the process of converting experience into knowledge.

 

  • Equations that changed our understanding of the Nature

 

  • Difficult does not necessarily mean impossible

25 Responses

  1. The next time I read a blog, I hope that it doesnt disappoint me as much as this one. I mean, I know it was my choice to read, but I actually thought youd have something interesting to say. All I hear is a bunch of whining about something that you could fix if you werent too busy looking for attention.

  2. I believe this is one of the so much significant info for me. And i am happy studying your article. However want to statement on some common issues, The web site style is perfect, the articles is truly excellent : D. Just right job, cheers

  3. Just desire to say your article is as astonishing. The clarity in your post is just spectacular and i could assume you are an expert on this subject. Well with your permission let me to grab your RSS feed to keep up to date with forthcoming post. Thanks a million and please continue the gratifying work.

  4. Along with the whole thing that appears to be developing inside this area, many of your viewpoints are relatively stimulating. Having said that, I beg your pardon, because I can not subscribe to your whole suggestion, all be it stimulating none the less. It appears to us that your opinions are actually not completely justified and in simple fact you are generally your self not totally convinced of your point. In any event I did appreciate reading through it.

  5. Hey very cool web site!! Man .. Excellent .. Wonderful .. I’ll bookmark your site and take the feeds additionally?KI am happy to seek out a lot of useful information here in the submit, we’d like work out more strategies in this regard, thanks for sharing. . . . . .

  6. You could certainly see your enthusiasm in the work you write. The world hopes for even more passionate writers like you who are not afraid to say how they believe. Always follow your heart.

  7. I?¦m not sure the place you are getting your information, however good topic. I needs to spend a while studying much more or working out more. Thanks for wonderful information I was looking for this info for my mission.

  8. I’m not sure why but this web site is loading extremely slow for me. Is anyone else having this issue or is it a problem on my end? I’ll check back later and see if the problem still exists.

  9. After study a few of the blog posts on your website now, and I truly like your way of blogging. I bookmarked it to my bookmark website list and will be checking back soon. Pls check out my web site as well and let me know what you think.

  10. An interesting discussion is worth comment. I think that you should write more on this topic, it might not be a taboo subject but generally people are not enough to speak on such topics. To the next. Cheers

Leave a Reply

Your email address will not be published. Required fields are marked *