How Dropbox Did It and How Python Helped

Considering to use Python for my cross platform data management project


Another Neuron killed by Microsoft Series I – Excel Conditional Formatting

look at d3js

Besides work as an open-resource API, It is quite inspiring to how human should interact with Data.

With keen interest in cognitive science, I understand the importance of visualizing data in helping human process the way-too-much information.

For that, today I just wanted to color a cell by value in other cells. that is.

After some struggles I managed to reference the cell next to it (that is) with some over complex formulas

Note: I know there are some tricks for relative reference but I am not the one to master it. I dont vba or write non-readable excel funcitons everyday. I am able to do it when I need, but it just always takes me too much time on simple stuff like this.

I put the formula into the cell and it evaluates as TRUE

In conditional Formatting I put the same formula, it does not work.

The formula is sth like AND(xxxxx()(xjkl())=a,yyyyyy(fads())=b)

Only after some neurons get killed, I removed the AND() function and it works. WTF

I have no interest to check if it is unsupported, for me this is a bug.

N Reasons not to have a Townhall in big corporations

In oder not to let complaints filled up my work and my life,
I can only think like I am studying the corporate behavior as if I were an anthropologist.

Cheap talk. And more cheap talk.

In economics, there is a concept named Cheap Talk. This is the single most crucial thing in explaining corporate behaviour. From its very narrow meaning, when there is better incentive for the guy to lie than to tell the truth, every message is meaningless.

With that in mind, it can be easily understand people talk not to communicate but to show that they talked (“I-warned-you-in-last-email-behaviour”).

Therefore, 70% of the speak is cheap talk. The whole incentive model is wrong. No our team is not doing great. The newly roll up application is not pretty cool. It is OK for google and Facebook to say their have just developed something pretty cool. only because they do.

It is actually a status update. And like most employees, he is puffing how well he has been doing.

But I am not even his manager. Like what is the point of watching Debate of proposed Chief Executives, when you cannot vote.

Not for human

Another thing is, human’s attention for listening only last for consecutive 15-20 minutes as suggested by cognitive scientist. With boring content it can be even shorter.

A town hall lasting for 2 hours with 200 people joining over the globe, at least 12.5 days are wasted for day dreaming.  Some remaining are wasted by the content. Translated to money term, a very modest average salary of $200 people there, omitting any business class tickets, accounted for around $80000.

Again, cognitive science, and common sense.

It is common sense, and scientifically proven that people are less creative and less willing to share under Stressed environment.

It it also common sense, and scientifically proven that people are stressed when they meet people with higher status. When you see your boss’s boss’s bosses and your boss’s boss’s bosses gathered, you are not that comfortable.

Most importantly, why bother on those statistics when we all know it is fake? Even Jamie Dimon’s testimony wasn’t that detailed.

No, there is no value added

After all only something like “Townhall has been organized successfully with xxx participants” being feed up to even higher level management. Is that really important? not as important as “Missed town hall saved a man-month”, or put it realistic, “80k Cost-reducing with 1MM productivity boost”

There is nothing good for the one hosting, nor the one forced to be listening.

The original idea is sharing, let employee feel they are involved and get respected. That just doesn’t work, you dont even have that culture.

Go to beaches for parties and some real 15mins talk, do create more values.

A year of work

It has been a year after I started to work as a Full-time IT guy. Time for a reflection.

I always reflect, sometimes too much but without enough organizing.

Many of the topics here worth detailed review in upcoming posts.
In this golden position I spent so much time and effort to get and with some expectation, right after I start I smell something wrong in it and I also find those problems are so common.

The situation here is perhaps particular bad, dont alignt with Bills of programmers and get 1 to 2 marks for the Joel Test

I truly believe what those famous bloggers say. It is 2012 now, ergonomics and Cognitive science have being quite developed. 

Since the very beginning I started to really hate my working environment, a bit over sometimes. Some personal issues do make that much worse,I need to admit.

Where is the hammer?

A physicist go to CERN, expecting the LHC but get a pinball machine for higgs boson simulations.

I am not a pro, but I do wonder why they are willing to pay quite a lot, doing numerous initiatives in HR but always lack the basic hammer and nails.

It’s like a carpenter that need to take a bus to the town, fill in a form, call his boss to buy a nail and go back for every nail he need to build a house. He is paid quite well not for gaining anything from his extra work but to compensate he feel retarded.

Some hands on experience on many new softwares. At least new for me. Lotus Note, IE6, firefox 3.6, which still require quite many processes to get. I spent time to debug “missing functions” in Chrome and afterwards I find it is a chrome 5 and took so much effort and tricks to get a chrome 19. Not to mention many applications that pops up tons of alerts in basic workflow.

With the great cost-reducing initative, we have nice VMs with 20GB harddisk. Packed with some other useful firm utilies like checking whether your email include the word “Internal Only” or sending any binary program. With remaining practical usage of 5GB. 3GB went for the heavy firmwide eclipse and the remaining for your checkout of branches of the application code from SVN.
It is a legend in the modern world you do maintain a close to 0-kb available hard drive.They offer you a 1TB share drive. Dont get me wrong it is 1TB-shared-by-hundreds drive. With 15GB usage I was flagged as high-profile user and receive senior management emails and calls asking me to free up some space. They emphasize VM is not for developer and the other department try to virtualize everyone’s machine and withdraw my 2GB ram desktop.

Chrome hangs, code can’t compile, putty throw out of memory exception, all due to insufficient disk space. Brand new experience, while not really what I wanted as my life is really short comparing to the universe.

With the name as a graduate trainee, I got countless trainings and on of the highlight is a one-month training camp in India. For over 80% of them, the only thing wrong with it is the stuff are completely useless.

The true gears

As in university, I understand sometimes you need proactively to network and social in workplace, and I did manage to do so.

In contrary to what I expected when I just join, now I do know I am totally uninterested and reluctant to expand my networking.

The working culture is way different from the office in central. In the back-end you know more well you are just one of the human resources. Your time is not as precious.

Meetings. Interruptions. Ways of wasting cognitive power. As a developer who need to code I am threatened and always try to prevent any kind of disturb.

I am not able to justify this, as that is perhaps most important stuff in a workspace. Even so I will say one possible reason is I found there is nothing meaningful to achieve together, especially with those project managers.

Perhaps they do nothing wrong. It is the problem of the culture and the incentive model, again.

Employee like me understand that here your job is not trying to avoid owning any mistakes, which is the biggest mistake of a IT firm. Not much is being pushed bottom-up. There is no creativity at all, what is the point to risk changing a legacy system? more than 50% of the effort is used to show status update. another 20% is about pushing your job to others.

Meanwhile, the high levels try to create anything they can think of and push it down, to satisfy their desire of power and make noise for their bonuses. Who cares since they are never the ones who will be doing. And later they change their mind.

The firm try to squeeze out every single buzzword of IT project management like agile, scrum, Orchestration, while they achieve 0 objectives behind them. Everything started with wrong estimation. Driving too much workload with this limited resources.

10% by the employee at lowest level turned into real work. Together with the original nature of software development, this is further reduced and with the lower efficiency accounted by many reasons , real output is like 5%, with the usually wrong objective in the first place. Here most people act as project managers with some technical skills, with not much real technical development taking place.

Just noted that many essays in the old book Peopleware (1999) or Mythical-Man-Month provide better insights to the above.

With this working experience, I understand much more on issues from bad family relationships to lack of political interest in Hong Kong.

The bright side

Being positive, as the legends of building your own castle-in-the-air from a dorm room or garage are still not rare, together with the particularly bad IT discipline in Hong Kong it is not that hard to be better.

I am not trying to complain everything and expect successful career without any pain. I just criticize for doing better. It is not my way. As a really junior it is my duty and opportunity to work on what I was given responsibly. The various backgrounds on working altitude of post-80s is another topic.

I really believe one day I will go for bigger monitors. My simple career objective is to be in a workplace that I can do some meaningful stuff. Very likely it will my own.

Gone are the days working till 10pm, 5 days in a row. Luckily now I have really nice direct managers (No, you are not supposed to be reading this), which are really technical and open to new ideas. I also did strive for some new opportunities.

Only in recent months I am able to write more code, try out some new stuff and develop a whole application from scratch.
Technical stuff

Another upside for this year is I do get a taste of much more technologies. Not those toy examples in schools. I also started to organize my ideas and look for opportunities in a much formal way.

I did not master any of them, but I got some hands-on experience for everyone and will have an idea whether to put them in my future applications

I am the type of person sometimes like a kid that gone mad if I can’t do something I like.
I try to spend all commuting time on technical stuff, reading books with my lovely kindle, coding in the weekend, having my own projects. It is fine as I am passionate about true IT stuff and that also do make my life easier.

New stuff for me tried in work

  • Groovy
  • Metaprogramming
  • Webshpere MQ,
  • Spring framework, with dynamic language..JMS
  • Jenkins(Hudson, ant, maven), crucible, api level Jira & confluence
  • Selenium for testing
  • some real  javascript
  • BDD with jasmine, js-server for java script uni-testing
  • distributed and concurrent programming

Outside work:

  • Play!
  • Guice
  • android applications
  • Google APIs and a bunch of google/ IO videos

Didn’t try yet:

  • Coffeescript
Reading and exploring new stuff is the root to work as a professional developers. Leider- unfortunately not many do that in Hong Kong

These are popular, simple but fundamental, served as a good start for me

  • Clean code
  • Spring In Action
  • Javascript: Good Parts
Project management and software engineering. Classics but still very close to reality. Need more recent books to adapt the concepts to the current world.

With my master of computer science, I need to read some really academic stuff

It is also a challenge to take care of the workload after your prolonged daily work in office.

To be honest, I simply can’t. I am still the type of students that skip most of the lectures, missed some of the assignments.

However it is good to keep up academic learning. If I don’t do it now, it will be really hard if not impossible to go for any high education in related field. Also and I still insist I am not a bad student, bad student are those accept everything without critical thinking.

For the CS stuff, I found that still enhance my understanding and topics itself are interesting. Even though most assignments are boring and even worse than the tasks in the office, still it is good that most of my time studying counts,  and someone give me a qualification

Everyone in the office will tell you it is useless and ask you why not a MBA. enough for that and I know I am doing what I want.

I still wish to further my study, likely in Cognitive Science and definitely in a foreign country. I need to test my self whether I can do so and I like it.

Perhaps this post is too long not being organized enough, but this is my true thoughts and I hope it’s still a good start.  All in all, I am fortunate enough that I have quite clear directions on what I am going to do. I will try my best to keep it up.

I should always…

I should always blog more, just like I should always write more unit test.

Here are some topics I would like to cover in code level

  • Play! From Scratch
  • Using Spring to configure JMS in multiple VM
  • Roboguice Framework From Scratch