Buy @ Amazon

Search This Blog

December 20, 2013

Talk Kata - Repeating Conference Talks

In the hard business of engaging the audience..

There are many kind of katas in the software world that I've been trying and practicing over the last 4 and odd years. Towards the end of last year, 2012,  I've started applying the concept of Katas in Public Speaking domain and I call it "Talk Katas".

Talk Kata is all about sharing your thoughts by way of talks to different set of groups, again and again and learn the art of public speaking in the process. It is with deliberate practise of public speaking can one hone the art of communication.

Attendees enjoying the talk
"When Agile becomes Fragile" is a topic I've been talking about in all of the recent conferences. It only gets better and better with every talk based on personal conversations, feedback etc. I've with the attendees after my talk.

Come year 2014, I'll again be talking about this in PMI Chennai edition as part of their invited talk series.

For the curious minds, the presentation deck evolution with each conference or invited talk is below:

An invited talk at Honeywell Technologies Solutions Lab, Bangalore India in October 2013. [1.5 hours talk incl. QnA]

A talk at Dev Day SriLanka, in November 2013 [1 hour talk incl. QnA]

A talk at Agile Kerala, in November 2013 [45 minute talk incl. QnA]

I've brought in subtle changes in the order and content in my presentations and was experimenting with different things to see what rings the bell in the minds of attendees to my talk. Learning is continuous and is indeed fun!

And guess what, I tried this with my other talk as well. See the subtle changes of presentation deck in slide-share on the topic of "Standup: Why I hate it and how I started to enjoy it?"

Bottom line: Talk repetition is just fine so long as you've the passion to deliver and the audience group is different and are enjoying your talk.

Moral of the blog post:  Deliberate practice maketh a person better and better in what (s)he does.

Side note: Every speaker has his/her style. I have mine (and you identify yours). I experiment a great deal with tons of zeal in a quest to learn more and more on what aids community learning. For the interested, I'll share some of my base-line techniques in public speaking in an other blog post. There is so much to learn and I'll share as I learn my lessons. Keep visiting..

Some feedback of my talk on this topic are below:

More can be found below:

Recursive chmod settings based on file or directory

I recently had to do this and below are the commands that I ran to get things done.
$ find ./my-folder -type d -exec chmod 755 {} \;
$ find ./my-folder -type f -exec chmod 644 {} \;
where the pattern is:
$ find [search-path] -type [d | f] -exec chmod [access-rights] {} \;
-type d => files of type directory
-type f => file of type "file", a non-directory
{} => replaces every file path found at the find command
\; => is to escape the semi-colon. And semi-colon is required to denote the end of command.
 If not escaped, the shell interprets it instead of find command.
755 => make a file readable/executable by everyone and writable by the owner only.
644 => make a file readable by anyone and writable by the owner only.

And as I was doing this, I tried reading a discussion in stack-overflow on this and found an even simpler command:
$ chmod -R a+rX ./my-folder
where the pattern is:
$ chmod -R a+rX [directory-name]
-R => recursively change permission
+ => add permission settings on the given role. Use - to remove permission settings against a role.
a => a implies all roles. Others being u for user, g for group, o for others
r => r implies read permission. Others being w for write permission and x for execute permission.

Note: I used X (capital) and not x (lower case). What does it mean? The capital X implies that if the file to be operated on is a directory then make it executable, else leave its executable permission bit untouched. It is also interesting to learn that this permission symbol makes sense for "+" operations and are ignored in other cases.

Further reading and references:

December 15, 2013

Work around to file protocol in browsers

There are times when you're dabbling with Front-end technology like EmberJS, AngularJS, etc.

You'd wish to load the just crafted web-pages of yours in a browser to see the work in progress state.

What do you do? First attempt is to load the page in the browser with the hardcoded local-disk location. It would be something like file://usr/kartz/frontend_apps/fake_app/test.html

This attempt might most likely fail in many modern browsers, especially if you have included any local javascript, css and similar assets. Are you here and wondering why?

This is due to browser security constraints. The work around to this is to serve this/these kind of files from web server so that the protocol becomes http.

But you don't want to get into the overhead of starting/managing a web server for this. You don't want to copy your file into the web-server  or work in the web-server's app directory.

You want your project source in your own chosen location and wish for some light-weight browser that you can start from your very own working directory of your project and load the files in the browser via http protocol.

If you've python installed in your OS (FYI - Mac comes with python packages), your life becomes easy. Python thankfully has a SimpleHTTPServer module that you can kickstart and get going with your real learning.

Below is the command to start this server:

usr/kartz/frontend_apps/fake_app$ python -m SimpleHTTPServer 8888
-m : run named library module as a script (terminates option list)
8888 : is a port that you want to this HTTP server to listen to

Update: In Python 3.x, this module SimpleHTTPServer, is merged with http.server, thus the above command becomes:
usr/kartz/frontend_apps/fake_app$ python -m http.server 8888 --bind

Happy learning!