Ok, i’ll begin with a disclaimer. There are a whole bunch of people studying and classifying humour very actively. I am just a dillettante, hobbyist.
1. Dark/morbid/pessimistic world view/nihilist/we’re all screwed anyway/In the looong run, we’ll all be dead type. This is also used, while taking hacky,non-sustainable, quick-fix type shortcuts.
2. The am superior/sophisticated because i see a subtler/finer/intellectually sharper/ view of the contradiction/irony of things. Usually manifests with some form of sarcastic undertones.
3. The humour as a fencing tool to make a point. Am not sure the difference between this and type 2 is significant enough to be classified separately, perhaps this is a super class of type2.
I used to think most often falls under type2 but nowadays, think it’s actually a reversed situation.
Very few cases have a clear status hierarchy as in type 2.
4. Humour as story-constructor in narrative decision making style attempts to influence other’s decisions.
In this case, it clearly takes the path, of subtly/even unnoticeably hinting that hey am on your side.
I remember one of my past managers telling me,”I appreciate the humour, but know the place for it. This is not one.”
Well, I basically wanted to reply, I thought and made a choice, before sending that mail.
Anyway, the point he was trying to make was that it was an official communication,
and I was making fun of the process. My point, specifically being,
I was using humour to make a point. I was poking fun at the absurdity of a specific policy.
Of course,I did not pursue that argument at all, but that incident left an to be examined later,
mark in my memory.
The reason, I think is because, I have something of a reputation of making jokes about serious conversations.
In retrospect, I think it’s because, I am otherwise way too serious for carrying the convo of their topic, otherwise.
Infact, am so serious, I usually end up yelling at them, and my point of view is usually so different, that they are left astounded.
Anycase, the incident is notable, probably because of the complete lack of response, from the party at whom it was targeted at.
Attention Economy/Attention metaphors
Ever since i read this post on
by Venkatesh rao, i have been thinking of the metaphors we use for our
We live in an attention economy
Steve Jobs, and his persona was a good example of it. Good as in someone who
exemplified the power of attention and what it can be put use to. While i must
say, i haven’t used many apple products, I don’t think all of their products
deserve to be worshipped. I agree they have been the leaders with iPad and it’s
a cool technology alright(along with ipod of course). But they have always made
design decisions that have alienated a nerd,power user like me.
Anyway, the point am trying to make is that with the mouse, Mac captured the
attention of a range of audience lot bigger than the small,programming and/or
nerd community. You can extend that to explain almost all of their products.
They were all designed to capture the majority of (sigma, for summation)attention
of the consumer population. That was Steve Job’s vision and the Reality
Distortion Field**, is his ability capture who he was talking to/selling his
It struck me that majority of us use the clock metaphor when it comes to our
i.e: it’s a replenishable resource.
1 – A phrase if i remember right coined about 4-5 years ago in some pop-best
seller (research required on what it was).
** – I have no personal experience meeting, so my only idea of the
RDF is that from reading and watching “pirates of the silicon valley”
*** – My emotional core/moral value system definitely looks down at manipulating attention to profit or make money, but the rational side of me sees it as ok and normal in the case of what steve jobs did, just as we have magicians. I assume if any of that had led to federal policy changes, that in turn caused loss of lives, even the rational side would be furious about that.
And paulgraham is an optimist and believes total economic activity(productive output??) will only grow in the future.. hmm..http://www.paulgraham.com/invtrend.html
Am reading his post on trends in startups. and i still think his optimism is closer to the truth.
the reasoning he gives for his conclusion is via negativa, but most likely i like optimism is why i agree, any case.
I also realize the reason i like his posts so much, he knows the basic math of stats and calculus,
and better can express his opinions and ideas about trends in reasonably simple words, though,
i think his avoidance of equations makes his posts a little verbose, but it is perhaps justified(nay pragmatic), given the math hate/fear that prevails and topics he writes on.
Like a lot of bad things, this didn’t happen intentionally.
He’s definitely an optimist :-P,
I would have interpreted,Series A investors wanting to invest a minimal amount of the company stock’s worth as definitely malicious planning, but then i have no real experience.
You can’t fight market forces forever.
, That’s a great quote for any article on economy.
I have been reading the series of dissecting “The Office” by venkatesh rao at the ribbonfarm. And watching the actual TV serial series in a mad obsession.
Some, opinions on the decision making behind the story-line writing. For ex:
from the branch closing episode to the next. I would call there was a
experiment and changed the next episode storyline based on the TRP rating.
But seriously, i was getting sick of Michael was preferring the stanford branch
And as is natural with any psychology parallels/articles characterized or defined only with words, found myself comparing with the articles. It keeps running through my head.
The more i ithink about work and what i should get done next, the more i realize, i have already become the checked-out loser. Darn it….
Ok, he has a sub-division within the loser list.
The staff-loser and the line-loser.
The definition being that the staff-loser’s function is to be the priest of the hierarchy while the line-loser’s function are closer to revenue-generation.
Now, because of the HIWTYL policy all human beings learn to employ automatically in any social situation you can expect the organization’s bureaucracy to be as heavily riddled with defensive policies as possible.
My instinctual shying away from Team Lead/Project Lead position signal that i have a reflexive aversion towards becoming a staff-loser. I don’t think they are useless, in the unfortunate real world we all live in, they are a necessity, if only to save businesses from oppurtunistic humans. It’s only probably in a Ayn-Randistic Ideal world they can be avoided altogether.
Well, the next thing to do is unlearn the habits of checked-outness and learn
the habits of the socio-path.
Rule 1: Bayesian decision making. estimate potential risk and potential rewards
in any career move(i.e: 8-9 hrs a day of what you do in office.
Rule 2: To quote Venkatesh Rao from his ribbon farm post.” The risk-management work of an organization can be divided into two parts: the unpredictable part that is the responsibility of the line hierarchy, and the predictable, repetitive part that is the responsibility of the staff hierarchy.”
So this means, when in doubt about which is good for your career take the unpredictable option.In your personal family system (IFS)
Rule 3: To quote him again “Bureaucracies are structures designed to do certain things very efficiently and competently: those that are by default in the best interests of the Sociopaths.
They are also designed to do certain things incompetently: those expensive things that the organization is expected to do, but would cut into Sociopath profits if actually done right.And finally, they are designed to obstruct, delay and generally kill things that might hurt the interests of the Sociopaths.” Take the priority of your decisions not from the bureaucracy and the rules/system it makes, but from what you want to achieve/get done.
Oh and while doing that, keep in mind that bureaucracies are hardly ever set in stone and do change, perhaps a thixotropic fluid is a good analogy.i.e: They have high viscousity(read resistance to change), while under normal conditions, but are less viscous when stressed. I might even suggest this is the key behind Jack Welch’s successful turnaround of GE*. One could argue that he personally created the stress required to get the GE Bureaucracy to adopt changes required to earn profits.
Rule 4: Recognize your habit patterns in taking sides within the social groups. Make sure you use ambiguity by deliberate choice(calculating the effect of it on your social status) rather than by reflex habits(read heuristics) shaped by past experiences.
*– While i don’t claim to have a lot of knowledge about the history of GE or of Jack Welch’s term at it, I have read his book “Straight from the Gut” and think i have some guess at his approach/ideas in decision making.
I was messing around with opencv library for C++ and it’s interface.
Very soon, after I began typing out code from web pages and compiling, I got tired of running the compilation command manually from the terminal.
Not to mention, since I had built opencv from source, I had to explicitly pass -I folder.
Soon, I was wishing I can just run make and get the code to run.
Well, instead of that I figured out a way to run make and just compile and create all object files in the current folder.
Here’s the MakeFile I ended up using:
TARGETS=$(patsubst %.c, %,$(PROGRAMS_SRC))
$(foreach var,$(PROGRAMS_SRC),g++ $(var) -o $(patsubst %.c, %,$(var)) -$(CPPFLAGS); )
The two key things I learnt were patsubst and foreach. I had seen patsubst and wildcard, while running through LCTHW before.
As the name implies, wildcard keyword is a regex to match a bunch of files.
patsubst is again regex, but this time to replace a set of text.
foreach is simply a way to iterate over a list of values in a variable. I just end up running the g++ command for each of the file.
Note: Am using .c extension here, though i should really be naming the files .cpp and using that in this makefile.
Note2: This assumes all of your code is confined to one file(except for library imports). Otherwise this just won’t work.
Dear Indian Startups with scaling problems:
1.Excuse is not a solution. (‘Startups are chaotic’, is an excuse, and does not solve any problems.)
2.Funding != Revenue
3.Survival !==> Growth
4.Employees get the short stick or draw the short straw in most startups.(i.e:Limited max benefits*, and quite an amount of loss(more than monetary, time, energy etc.)), So try to find other ways to compensate.
5.The employment contract is like postpaid. The employee comes in to work and gets things done over a month and gets paid after.
(which is another downside(to employee,but upside to employer) of the standard employment + payment structure. ).
Keep that in mind when you form policies to stop payment on the employee giving notice etc, perhaps more importantly before sending an employment offer,pick a temporary offer if you are not comfortable.(aka, fucking think about all implications of your choices when making policies that affect all the company)
In other words, your internal policies are what make the tradeoff between customers vs employees, sales vs engineering etc… Make sure you consider them(tradeoffs) carefully and they align with your goals.
6.If you want to manage your programmer like a Machine Shop(i.e: blindly borrowing management principles from the assembly line) worker, then don’t be surprised when they act like one.
7.If you say “I don’t think “, when you really mean “I can’t imagine why “, you are miscommunicating(aka perjury in legal parlance).(that can be a decision, heuristic, idea, etc.)
8.There are certain assumptions a software engineer makes. Like,
a,the office space is quiet enough here one’s self think.
b,The colleagues understanding and knowledge is within a reasonable difference(> or <) between the self.
9. Shifting the burden of proof/blame not equal to open discussion/culture.
* — Am assuming no stock options.
Honesty as a value proposition. — VGR writes here about honesty as a meaningful value addition
(on its own,i.e: considering honesty as a separate entity in the hiring decision is meaningful) to the modern corporate environment.
Ofcourse, most of his suggestions are based on executive management positions.
Anyway, my experience, suggest that treating honesty as a single dimensional value is not enough.
Honesty under uncertainty vs Honesty under certainty form two very different beasts.
I believe it’s easier to be Honest under certainty. I think when there’s uncertainty,
people tend to form stories(scripts as vgr would call it), and everything they say, do, report etc. are built around it.
There’s a question about intentionality of this specific type of dishonesty, but I’ll leave that to philosophers.
I’ll just observe that the forms of this dishonesty, map very well with another VGR work on his mailing list “Be Slightly Evil” deception.
Now, of itself it doesn’t exactly mean lying, but it doesn’t exactly mean you can take what is reported to you at face value either.
Either way, the point I was making is honesty about probabilities and their expected values, is very very hard to ascertain in interviews.
But they have an inherent value that’s near impossible to quantify or enumerate.
Honesty under uncertainty is perhaps the hardest to practice. When you don’t have a revenue stream that meets your expenses,
but are hoping to meet the expenses in the future, you have a strong incentive to believe you have a very good chance of achieving that.
Not to mention the set of cognitive biases, human beings are so very vulnerable to.
None of us are perfect Bayesian agents.
The biggest challenge in startups I have seen so far is communication of aprior probabilities and the dependent probabilities.
Another area this honesty about uncertainty comes into play is investment advising, people management,HR management,academic research,etc..
In my experience these are the areas where a whole lot of signalling and powerplays link goes on.
In investment with NNT seems to have started some work in exposing some of the dishonesty.
Since I have no experience working with that field, I won’t comment on what effect it has had,
but will point out that it was one of the areas, which used to have flashy,after-work life, and a very heavy, formal signalling at work life.
Another perhaps side-effect of this Honesty about uncertainty is under-confidence.The converse definitely seems true.
Lack of honesty under uncertainty, seems to have a high correlation with over-confidence.
The trouble with looking for honesty and treating it as an economic proposition is that, it rarely works one way to be honest between two agents…
And very typically, in business uncertainty is treated with dishonesty(A strong positive bias, driven by positive signalling needs), and people who have made honesty a habit can’t stand it.
Infact some habituation or set of causes lead some eople to demand and expect a honesty, to the level of trying to quantify probability values to personal uncertainities and use it to compare decisions for inconsistency.
To use the Gervais Principle terms, Losers avoid/deny uncertainities. They prefer to turn a blind-eye to uncertainities. They prefer to escape from the uncertain parts of reality.
The Clueless, run bravely against uncertainty. In the presence of uncertainty, they activate their super-hero fantasies and try to run against it and fight.
The Sociopaths, realise they have limits on what they can do against uncertainty, but figure out how they can use it and the predictable behaviours of people around it to get what they want.
A set of epiphanies
Thinking about functions, while writing an application is as likely to lead to overuse of functions as overuse of objects. it’s all in the thinking habit more than in the paradigm(OOPS vs functional programming)
Expectation management: is just a very crude, buzz word for referring to the practice of quoting/predicting/setting schedules/targeted time when others should pay attention to check/verify/test the result(i was tempted to say when others should expect, but yay, managed to avoid it).
I definitely love attention of other people. Though it’s clear it’s not as simple as just liking it all the time. It seems there’s a temporal phase component(sine wave??nah.. am being too wishful.. prob. more complex, but good heuristic to start with). I wonder if there’s some number component tooo. i.e number of people who are paying me attention. past experience suggests that a big number > 50-100 is unnerving. Am convinced am comfortable at a number closer to 50. Though, i think that measure has another confound factor of strangers vs people i already know or have spent considerable time with
When i hear about people not having official documents like DL, passport,etc.. my bias or sense of respect for them changes negatively it seems. though am uncomfortable with calling it sense of respect.
Reading this post from Rushabh Mehta about going to or not going into sales <a href="http://erpnext.com/to-be-or-not.html"> </a> Made me realise a lot of things. 1. Am not a product guy. because i can’t maintain that sustained focus irrespective of the rate/speed of feedback. 2. Am impatient and want quick/instant feedback. Maybe i can be the product guy for some type of apps, where there’s a very short feedback cycle, but for the most part i just am not that guy. 3. Not to mention the limitations of my own rationality. Am now very convinced of a career change.
My auditory attention is untrained/under-trained. That’s basically why i have so much trouble in verbal communication clarity. i have to put deliberate attentional capacity to speech and listening that i don’t have any left to see the gaps in what i hear.
With the request to change REST Api back to the standard http querystring parameter now i understand. It’s a waste of effort. But it’s ok because am paid a lot less than that .Net developer who has to learn json to consume my API. Darn it. that’s the end.
I am beginning to realize, that the time to
Looking for ahava* via the scientific method(<a href="https://en.wikipedia.org/wiki/Nullhypothesis">NHST</a>) might be craziest thing you ever do and is likely to render you peaceless and lonely for the rest of your lifetime…. But it does lead to an interesting life. *– Hebrew for love
A good heart may be a necessary condition for a heroic/ethical/moral life, but definitely not sufficient. Infact, para-phrasing Million Dollar Baby show me a hero who’s all but heart, and i’ll show you a shooting star that’s gonna get 15 minutes of fame and then fade into nothingness.
Before asking a question, think what you will do to find out the answer. In most cases, you’ll find that you don’t even care about the answer and asking the question is rather moot/pointless.
the more specialized your role/expertise/area becomes the more your job becomes that of convincing a group of people to follow something or some way. The more i think or write about s/w architecture, the more i think it is about convincing people. than getting something done asap.
the beauty of dynamic typing is also it’s bane. i.e: Not worrying about type conversions, can easily blow-up into badly designed code base, especially when you’re part-timing into a project.
also just realized that vim addiction’s side effect. copy, paste without functionality understanding.
Writing and building a s/w application from scratch is exactly like writing/proving a rigourous theorem.that’s why i got into it. EWD was right. but it is also a little masochistic and in the words of Hofstadter, yeah, the rest can be left to the rigourous mathematicians. that’s why i want to get out of creating software. i didn’t realize it before because, i never really created software at IBM. it is this epiphany that 3 years of working at IBM has cost me. and it is this epiphany i find the costliest of all prices i have paid in making that decision.
Beginnig to get annoyed at vim at dealing with text and doing it great, but being crude like using a butcher’s knife at a neuro-surgery table. i really need to start using some other ide or consider emacs.
Realize why function composition is such a good idea and very useful. in big projects with humongous code bases, chaining multiple functions is a necessity. Using a language that doesn’t design for it is painful for the same reason. And it’s for the same reason java and .Net shops are so big and hierarchical. And more importantly, slow or rather programmers who work in those languages tend to become lazy and have poor understanding of how the computer works.
The browser is not a pure functional object. it provides lot of semantic ambiguities that are grounded in being designed for endusers, most of whom don’t know math.
Very clearly, i have an overactive/ am over-dependant on ACC. it needs to be actively suppressing something pretty much most of the time. i am beginning understand the source of the bipolar lisp programmer internet meme and it’s appeal to so many other programmers.
So does that part that is responsible for simulation(of any kind) of real-life experiences..
Error handling in python is a pain if you set the value to None and check it everywhere. and a pain if you use try catch. in the first case you have to go catch the error at every function that calls a given function. in the second if there’s a failure, you don’t really get the stack trace of where it occurred only where the exception was raised/caught. Damn.. i can almost see why the either approach is haskell is better for the programmers. first thought is it works because of the type system. but would like to know more details than that.
Another way to put venkatesh rao’s HIWTYL’s strategy is that people automatically assign higher malintention to errors of commission than to errors of omission.
the more the number of states involved in your application the more the code base size in moving them around. The more the number of states in your application’s db design, the more configurable it is and that’s the core of the trade-off.
creating separate python files to separate two different set of functions at the start of an application is a crazy idea(because it’s one of those naming issues, that’s neither here nor there and is only likely to confuse you in delivering the completed functionality).. You’re better off writing out all the functions required for the application functionality and then splitting them and renaming the files as necessary.
Just when i was beginning to berate python’s philosohpy of reabability for not providing the ability to subtract two lists, i realize, i can use sets for the same purpose and there is a possible semantic confusion avoided by that policy. hmm… i think i understand the benevolent dictators attitude
Am now tired of the multiple layers i have created for vip migration project. it doesn’t seem to make any sense to have so many layers.
Problem with imperative programs?? One misplaced return function can waste half a day of a programmer’s effort, because it doesn’t throw any meaningful error/raise exception, but just returns.
Copied music files to that dmguest user’s folder and realized, that i would like a progress bar like see on windows. then realized it’s not on linux, because the coding up something like that would be inaccurate,approximations and some assumption making guesses. Not sure why it’s not available as a cmd line?. thunar file manager has it and am sure other File managers have it too..
Also am beginning to realize that i am probably not someone who can program(John Cook’s blog link: someone who can write large programs, with large probability of being correct). but more of a computer scientist in that context.
Also perhaps, not for the first time, i realize i have been pathetic at quantitative analysis in my life’s past decisions. though i have been fairly good(read slightly above average/median) at qualitative analysis. Remember thinking i am good at managing globally but horrible at managing locally. Remember thinknig am good with global targeting?. Remember 9-10 years ago, deciding, i don’t want to go into a work career in my base degree, mechanical engineering? Remember regretting that even3-4 years ago, hell even now there’s a little wonder in how life would have turned out in that case. Anyway, the truth is it was a good decision in terms of how the market has panned out. i.e: the profit margins growing lower and lower on the ront of manufacturing.
I want a programming language/framework/toolset, that lets me ignore the hacked up together technological mess that is the web,lets me focus on the problems and the math solutions to it, but doesn’t restrict my problem space. But guess what, there isn’t a reasonable compromise. Yesod + haskell seems promising so far, but not sure how it’s going to stand the changes over the next decade or so.
ORM is a big fuck-up because it is a leaky abstraction. but more importantly, it’s leaks are not evident till you’ve invested long enough time in it, to waste. infact that’s pretty much the problem with learning new abstractions. you just can’t be careful enough with which ones you learn.
You know, you’ve fucked up on organizing the code functions across files, when you want to find a function definition and are not sure, where it is. worse, when you start fearing having to search for a function name and not finding in the current file.
ORM is a double jeopardy, actually, because it lets you pretend your tables are objects, which they aren’t. And then forces you to use the object oriented syntax for dealing with them. Duh….
Infact the other jeopardy about object-oriented programming is that it forces you to think in terms of objects/data structures that can do stuff. So you when building an application you tend to think of objects/data structures as core and functions as support structures. it’s reverse. most of the time you need to figure out the functionality as you go. it means quick turn-around time. w
Just had a simple trial run of geany. it’s cool i love the symbols bar on the side.. seems useful. pros: symbol table on the side bar cons: it opens a new terminal window on running, would rather use something plugged in the geany window itself.
I name my functions trying to match what they do and find it a useful indicator that i have to break down the function into smaller ones. too long names are signs that am cramming too many things together.
There’s a enchantment in listening to music in a language that you don’t understand. it’s a taste of the mystery and/or mysticness. listening to japanese music now.
I can use the typeracer game as a test of how co-ordinated my visual attention and typing skills are and whether that leaves any attention level free for logical reasoning. that would be a good test to se e if i should do server admin stuff or development or just go home or just type out journal stuff.
One more epiphany, today when raj asked whether i know C. ofcourse i learnt. i never used it professionally. but been playing around on and off on open-source C projects. and have found the linux C- development chain painful. but have a bad confidence issue that heavily undercuts my confidence level in C. partly left-over from living with brother and his ideas on how C user should be .
Working only with python for a long time is likely to make you pick up bad thinknig habits. like preferring cute, short, readable code over clear, well-commented, efficient code. Am getting the hell out of python for some time now.