I am fan of Daniel Lemire, Professor LICEF Research Center, TELUQ Université du Québec. Love his blog.
Here’s his twitter bio
Autodidact with a Ph.D. who loves two of these three things: computer science, programming and sex on the beach.
In this recent post titled Elegance as a luxury, loved the following points about working on problems, be it software, mathematical or life.
I go slowly. Instead of rushing at the end, I try to make sure I really understand the problem. I try to see its natural components. I divide up the problems in small, manageable parts (that fit in my short-term memory).This is where my students most often go wrong. They are trying to go too fast. To try to teach them to go more slowly, I often simply ask them questions about the problem.
As much as possible, I work locally. That is, I work on parts of the problem that only require a few facts. I only move to another part of the problem once I am done with the current part.
When I was younger, I would eagerly jump from one part of the problem to another, hoping for a breakthrough. Unconsciously, I was hoping for a flash of insight. I took me years to understand that insights are more likely to come if you focus on a narrow issue.
I spend a lot of time contemplating alternatives. When I was younger, I would latch on the first credible approach I could think of. Why solve the problem in two different ways when only one way will do? I have since learned that comparing different approaches, and understanding why one is better than other, is often how you derive the most important insights.
I spend almost as much time checking my answers than deriving them. I have since learned that even “obvious” facts should be triple checked. I cannot recall how many times I got “stuck” on a problem because of a faulty assumption, or faulty derivation.
Of all the points, I need the most improvement on the last. Don’t forget to read the whole text here
A few days back needed an excel sheet which had dynamic dependent drop down list.
I had to choose one unit, based on that choose the second thing and based on the first two choose the next thing. Sounds easy. Go try.
Following two resources gave some glimmer of hope but it nose dived as soon as it met my requirement. But….
A Dynamic Dependent Drop Down List in Excel
Create Dependent Drop Down Lists
After half a day of fruitless experiments, and a night’s sleep,the problem was solved.
With a little combination excel vba and some formulae, got what I wanted.
So here’s my take on getting 3 dependent dynamic drop down in excel. Enjoy!!
The excel sheet can be downloaded from here!
Users of Mac, Linux and Unix operating systems have it easy.
Along with the omnipresent zip, they do have ready-to-use tools for most compression formats built right into the operating system.
Windows user lack the luxury. To unzip a tar or tar.gz format in windows, a 3rd party download like winrar is required.
Reluctant to install one more software in my virtual box window, I was looking for a download free solution. This exploration brought me to the standard python module tarfile.
This did the trick.
Here’s a simple small python script to untar a tar or tar.gz file in windows without any download, provided you have python installed!!
Stumbled upon this link from an old bookmark.
The first FORTRAN compiler was a milestone in the history of computing,
at that time computers had very small memories (on the order of 15KB,
it was common then to count memory capacities in bits), they were slow
and had very primitive operating systems (if they had them at all).
At those days it seemed that the only practical way is to program in
The pioneers of FORTRAN didn’t invent the idea of writing programs in a
High Level Language (HLL) and compiling the source code to object code
with an optimizing compiler, but they produced the first successful HLL.
They designed an HLL that is still widely used, and an optimizing compiler
that produced very efficient code, in fact the FORTRAN I compiler held
the record for optimizing code for 20 years!
This wonderful first FORTRAN compiler was designed and written from
scratch in 1954-57 by an IBM team lead by John W. Backus and staffed with
super-programmers like Sheldon F. Best, Harlan Herrick, Peter Sheridan,
Roy Nutt, Robert Nelson, Irving Ziller, Richard Goldberg, Lois Haibt
and David Sayre. By the way, Backus was also system co-designer of the
computer that run the first compiler, the IBM 704.
The new invention caught quickly, no wonder, programs computing nuclear
power reactor parameters took now hours instead of weeks to write, and
required much less programming skill. Another great advantage of the new
invention was that programs now became portable. Fortran won the battle
against Assembly language, the first in a series of battles to come,
and was adopted by the scientific and military communities and used
extensively in the Space Program and military projects.
The phenomenal success of the FORTRAN I team, can be attributed in part
to the friendly non-authoritative group climate. Another factor may be
that IBM management had the sense to shelter and protect the group,
even though the project took much more time than was first anticipated.
Interesting, read the complete article here
And while you are at it, don’t miss reading the FORTRAN SAGA
Pinholes are peculiar. From the distance they don’t allow you to see anything, but come closure and you can see the world.
Same is true for knowledge about a subject. From a distant you feel you know everything in a subject. But as you come closure, you actually see where you stand.
Small projects are like that too. From a distance they look trivial and unimportant but as you dig into them, they reveal and teach a lot.
What do you think?
Here’s a list of some of my recent small projects!
Excel’s inbuilt functions are powerful. They can achieve a lot. Almost anything can be conquered with these functions.
Recently needed a function to know which row is being modified. As far as i know, there’s no way this can be achieved by using excel’s function. This is where little bit of vba helps.
Here’s the code that helped.
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column = 3 Or Target.Column = 4) Then
If Target.Row > 1 Then Cells(1, 6) = Target.Row
In the above sheet change method, the code checks if any row has changed in the columns 3 and 4 and if something has changed beyond row 1 in these columns, the F1 cell is updated with the row number.
Simple and small code but very useful when one wants to know which row is getting modified in excel.
The information about the row being modified can be used to do lot of things using excel in built functions.
Now think where can one use this. Stay tuned I have a follow up post on the use.
“….. life is messy and haphazard, full of quirky contingencies, unexpected bifurcations, serendipitous discoveries, unanticipated encounters, and unpredictable outcomes”
From the book The believing brain
It’s so true at so many levels! What do you think?