100 words you should use if you are a ThoughtWorker

  1. Smell
  2. Does it scale?
  3. RESTful
  4. Build
  5. Merge Conflicts
  6. WFH
  7. Pairing
  8. Retro
  9. DevOps
  10. End-Point
  11. Pipeline
  12. Is it covered?
  13. Concurrent
  14. Hack
  15. Agile
  16. CRUD
  17. Microservices
  18. Design Pattern
  19. Devbox
  20. UX
  21. Defect
  22. HackerNews
  23. Sign up
  24. Dev Huddle
  25. PubSub
  26. Feedback
  27. Yoda
  28. Transaction
  29. Release
  30. Standup
  31. Context
  32. Roll off
  33. Is it in Prod?
  34. Expense
  35. Community
  36. Travel
  37. Log
  38. Delivery
  39. Team outing
  40. Bootcamp
  41. People Champion
  42. Clone
  43. Open Culture
  44. In Analysis
  45. MacBook
  46. Catchup
  47. Infrastructure
  48. Ready for Sign off
  49. Recruitment
  50. Fork
  51. Immersion
  52. Flat structure
  53. Intern
  54. Spike
  55. Process
  56. Git Patch
  57. Last Mile
  58. In Dev
  59. Lateral
  60. Global Assignment aka GA
  61. Low latency
  62. Sick Leave
  63. Grad
  64. Customer
  65. Inception
  66. STEP
  67. Campus
  68. Iteration
  69. Scrum
  70. Thought Process
  71. Exit
  72. Culture
  73. Local Market
  74. Callback
  75. Fire and Forget
  76. Benefits
  77. QA
  78. University
  79. Sub Millisecond
  80. Timesheet
  81. Value Add
  82. Vacation
  83. Atomic
  84. Volleyball
  85. Deploy
  86. Meetup
  87. Parked
  88. Black box
  89. Training
  90. Downstream
  91. Go Live
  92. Threads
  93. Away Day
  94. Policy
  95. Conference
  96. DropBox
  97. Check-in
  98. Credibility
  99. Performance
  100. Pass/Pursue

Introducing DuggOut.com

I am happy to announce DuggOut.com to public. It was in beta with internal testing with my friends for the past few months. If you watch Cricket, then you should start using the site right away!

Some highlights from the site:

Player Profile, Stats and News, MS Dhoni’s profile:

MS Dhoni - Player profile



Open Cricket Search: Search for anything in Cricket

For example, ask when was the last time south africa chased down 400+ successfully? and you’ll get the answer as “12 March 2006″

when was the last time south africa chased down 400+ successfully?

Slack – Hyperlink Message Format – Markdown

Slack does not support hyperlinks in your message format when you type in Desktop app or Web app. But it does support hyperlinks when you use the API. The message format is “<url|text>”. An example below:

So when you post the above message to Slack using its webhook API:

It looks like this below:

Slack Hyperlink Markdown Format

Faster Autocomplete with typeahead.js, Elasticsearch & nginx

ElasticSearch is a search server built on top of Apache Lucene. You can push millions of documents into its throat, it will index them in real-time. And when you search for a query, it returns the matching documents faster than you blink (which takes 100ms atleast). Can’t believe? Check the numbers below:

I am searching for “sachin stats” against 300,000 documents. The result is in seconds. 0.019 is 19 ms.

Now we need to connect this search API into our typeahead js UI. There are two options:

  1. Expose the Elasticsearch port 9200 over the web. This can be dangerous. Anyone would be able to scan your entire index.
  2. Use nginx reverse proxy as a middleman to redirect requests for a specific URL (say /autocomplete) to the corresponding Elasticsearch API.

How you would do option 2:

Nginx configuration for the reverse proxy:

opencricket in the above configuration is the index name in Elasticsearch. So all requests (GET, POST etc.,) to your nginx server with the url /autocomplete is redirected to Elasticsearch API running on 9200.

This is your Bloodhound configuration of Typeahead.js to send your autocomplete queries to Elasticsearch directly. This was tested in typeahead js v0.11.1. There were lot of changes introduced in typeahead options recently. If you are using the latest version, check the documentation.

Now, let’s check the app:

Faster autocomplete (< 20 ms)

As you can see, the time each autocomplete call took was averaged at 20 ms. Awesome! Now, make your autocomplete faster!

Open Cricket – Search for any cricket match

Ask about any cricket matches:

Won by a team in a series: matches won by india in world cup in 2015
Lost by a team batting 2nd: matches lost by india against australia batting 2nd in odi
Won by a team chasing a target: matches won by south africa chasing 400 in odi
Played by a team in a year: matches played by australia in test in this year
Played by a team scoring a particular score: matches played by sri lanka scoring 600+ in test
Won by a team against a particular team: matches won by india against pakistan in world cup
Won by a team with specific wickets left: matches won by india with 10 wickets left in odi

Try it out, and post your feedback in the comments!

IntelliJ – Use Java 8 Lambda in Watches/Evaluate Expression while debugging

In Mac OS, IntelliJ uses the default Apple provided JDK 1.6 to run the IDE. Because of this nature, you cannot use Java 8 syntax such as Lambda in Watches, Evaluate Window etc., during debugging.

To fix this, run IntelliJ under Java 1.8. Right click IntelliJ in Applications, and “Show Package Contents”. Open “Contents/Info.plist” and set JDK version as 1.8 like this:

Open IntelliJ now, and you should be able to use Java 8 functionalities while debugging!

Cucumber/Capybara – Random Error – Circular dependency detected while autoloading constant

Randomly, the first test in our test suite used to fail with an error – “RuntimeError – Circular dependency detected while autoloading constant <Mode/Controller name>”

The reason is that Capybara loads your app in multithreaded environment by default. Some of your app code using require might not be thread safe. Hence use

in your environment test file, for eg. config/environments/test.rb.

This is fixed in Rails 4.2. But for versions before 4.2, use the fix above.

failed to reconnect to node – ElasticSearch log

If you see “failed to reconnect to node” in your Elasticsearch log and you have only one running node, you need to the set the value for network.publish_host to in /etc/elasticsearch/elasticsearch.yml

Open Cricket – New Metrics – Not Outs, Strike Rate, Average & More

Introducing the following metrics today in Open Cricket stats search engine:

* Not outs
* Individual score
* Strike rate
* Average
* Thirties
* Maiden Overs
* Best Bowling Figure
* Econ rate
* Bowling Average
* Bowling Strike rate

Few sample questions:

which player has the highest not outs in ipl

which player has the best individual score in ipl

who has the best strike rate in t20

who has the best average in odi in India

which player has the most maiden overs in world cup

who has the best bowling figure in test?

who has the best economy rate in this year

which csk player has the best bowling average in t20

Try it out or ask your **own** question.

Open Cricket – Get stats from a specific team

Now, you can search for a stat within a particular team.

which player has the most wickets in world cup?
which “(indian|sri lankan|csk|rcb)” player has the most runs?

which indian player has the most wickets in world cup?

which sri lankan player has the most runs in Asia in test?

which indian player has the most runs in world cup in 2015?

which csk player has the most runs in Chennai?

Try it out and provide your feedback below.