JEG2 / highline

A higher level command-line oriented interface.
Other
1.29k stars 137 forks source link

Introduce :capital_letter menu option #242

Closed dmitriy-kiriyenko closed 5 years ago

dmitriy-kiriyenko commented 5 years ago

Pretty trivial thing to be able to list items with capital letters.

Ana06 commented 5 years ago

We have implemented this in a Mobprogramming session at stage in RubyConfBY with 250 other people. @dmitriy-kiriyenko I find really rude that you send a PR with only your name when the idea and part of the code we wrote it all together. There are 250 people that can confirm this is not a code you wrote alone. The feature is not difficult to implement (if that is what you are trying to prove) and this was also not was the session was about, but about working with other people and try something different in a conference. I will send tomorrow a PR with all the co-authors.

JEG2 commented 5 years ago

We'll wait for the proper PR.

abinoam commented 5 years ago

Great to hear that from you @Ana06 Please send me the video abinoam at gmail.

Ana06 commented 5 years ago

@dmitriy-kiriyenko we didn't implement the test during the mob programming session, so I have taken yours in 99af06f (of course giving you proper attribution). I have also added you as co-author in the commits from the mobprogramming session. I hope that it is fine :wink:

dmitriy-kiriyenko commented 5 years ago

@Ana06,

I wrote that code alone. Each solution I came out with, I came out with like 10-15 minutes earlier that the crowd. I sent this at the same exact moment you finished your session with test and duplication refactoring. You wrote the code without test and with absolutely horrible duplication, where you have one place with 'a' and 'A', one place with '`' and '@' and one place with 97 and 65, which is really ugly.

I added test and extracted 'a' vs 'A' and sent it. Didn't want to steal anybody's victory, but I had the hypothesis that crowd programming is way less efficient that just normal work and wanted to check that. When you started work, I forked, cloned, installed gems (and I had to also install cmake in a room with 50 people connected to WI-FI), and then proceeded with the solution. The solution crowd came up with I could have submitted in 20 minutes after gems were installed. But code without test to open source is something I just can't do, and the code you came out with is also way too bad -- such amount of duplication, especially with different fashion -- remember how we had to look up what's the equivalent of '`' -- is also something I would never show proudly as my code.

I hope you did not take any offense and I tried to explain my motivation. I did not find crowd programming session too efficient. I am sorry for all bad feelings this PR or this explanation can cause.

Ana06 commented 5 years ago

@dmitriy-kiriyenko

I wrote that code alone. Each solution I came out with, I came out with like 10-15 minutes earlier that the crowd. I sent this at the same exact moment you finished your session with test and duplication refactoring. You wrote the code without test and with absolutely horrible duplication, where you have one place with 'a' and 'A', one place with '`' and '@' and one place with 97 and 65, which is really ugly.

I added test and extracted 'a' vs 'A' and sent it. Didn't want to steal anybody's victory, but I had the hypothesis that crowd programming is way less efficient that just normal work and wanted to check that. When you started work, I forked, cloned, installed gems (and I had to also install cmake in a room with 50 people connected to WI-FI), and then proceeded with the solution. The solution crowd came up with I could have submitted in 20 minutes after gems were installed. But code without test to open source is something I just can't do, and the code you came out with is also way too bad -- such amount of duplication, especially with different fashion -- remember how we had to look up what's the equivalent of '`' -- is also something I would never show proudly as my code.

@dmitriy-kiriyenko the first thing I asked in the session is that you please don't solve the problem in your own laptop. Of course implementing this alone takes much less than doing it in a mobprogramming session, specially if you do it with 250 people. The objective of mobprogramming is not necessarily productivity (I recommend you to read the Mob Programming book by Woody Zuill and Kevin Meadows where productiveness vs effectiveness is discussed). And productivity was also not the objective of my talk. The objective was to show an approach that you may not know to work as a team, to present the benefits it has and to held a different/original talk. You may have not though about all the preparation that there was in that talk: I read the mobprogramming book, hold two smaller preparation sessions at my company, looked a lot to find a project and issue that is adequate for the session, set up the working set up, carry a keyboard with US layout from home, etc. That you preferred to implemented it in your own instead of paying attention to the session to prove that it was not efficient is really disappointing. I would prefer you have participated in the talk with your good ideas (that is clear that you had them) instead.

I agree with you that writing code without tests is a bad idea. The only reason why this was not done is because we ran out of time. This is also the reason why I've cherry-picked your test in the other PR. Otherwise I would have implemented myself before sending the PR.

Anyway, I have added you as co-author in all the commits. Github co-authors feature makes so easy to share authorship that I think it is not worthwhile to discuss about it. I hope it is fine for you. :smile: