Thursday, July 25, 2013

GIT: working with local branches

LIST ALL LOCAL BRANCHES

@ my_project $ git branch
  clock
* copyright
  copyrights
  develop
  master




CREATE and SWITCH TO NEW branch DND

@ my_project $ git checkout -b DND
Switched to a new branch 'DND'





DELETE LOCAL BRANCH called DND

@ my_project $ git branch -D DND
Deleted branch DND (was 9a59234).

Wednesday, July 17, 2013

Android: close keyboard

When I am entering text into EditText and then hitting Save Button I want the keyboard to close.


 closeSoftKeyboard(myEditText);
...
}
private void closeSoftKeyboard(View view) {
   InputMethodManager imm = (InputMethodManager)       getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
   imm.hideSoftInputFromWindow(view.getWindowToken(), 0);

}


getActivity() is needed when you use it in Fragment.

Eclipse: increase Java line width wrapping

Java standard line width wrapping is set for 80 which is archaic and unusable with today's screen sizes. Here are instructions how to change it.

1) Go to Eclipse -> Preferences..., search for "Formatter" -> Edit...
2) rename the Active Profile name to something meaningful to you (e.g. company name).
3) open "Line Wrapping" tab
4) Change "maximum line width: from 80 to something like 140 or 160 (for 15 inch macBookPro)
5) Apply, OK
6) format your code (shift+command+F)
7) Export Formatter for other team members.



Tuesday, July 16, 2013

git: copy file to subfolders


I had a need to copy a file "commit-msg" to git folders called "hooks" while preserving permissions. Since there were a lot of these folders this command helped a lot.

find . -type d -name hooks -exec cp -p commit-msg {} \;

Explanation:

find -type -d :: Unix find command for directory
-name hooks :: name of the folders
cp :: Unix copy command
-p :: preserving permissions
{} :: whatever are the results
\; :: end execution

Monday, July 15, 2013

WARNING: UNPROTECTED PRIVATE KEY FILE!

If you are getting this kind of error the the permissions on your files are modified incorrectly:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0744 for '/home/your_name/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/your_name/.ssh/id_rsa





@ .ssh $ ls -alt
..
-rw-r--r--@  1 your_name  staff   222 Nov 26  2012 id_rsa.pub
-rw-r--r--   1 your_name  staff   887 Nov 20  2012 id_rsa
...
@ .ssh $ 

To fix this problem change permissions:

@ .ssh $ chmod 600 id_rsa
@ .ssh $ chmod 600 id_rsa.pub
@ .ssh $ ls -alt
total 80
...
-rw-------@  1 uki  staff   222 Nov 26  2012 id_rsa.pub
-rw-------   1 uki  staff   887 Nov 20  2012 id_rsa_cnh
...
@ .ssh $ 


Wednesday, July 10, 2013

Android: restarting app (APK) via adb

Often when you work with APK you need to restart it, it is much faster to create a Bash script for that:

echo '*** restart XYZ APK***'
echo 'Continue?'
read input
adb shell am force-stop com.xyz.package;
adb shell am start -n com.xyz.package/.SomeMainActivity

Monday, July 8, 2013

Android: sending commands from computer

I found that often I have to send HOME, or BACK commands to my Android device.

KEYCODE_HOME
adb shell input keyevent 3

KEYCODE_BACK (you might have to execute it few times to get to HOME)
adb shell input keyevent 4

KEYCODE_CALL - opens the Call log
adb shell input keyevent 5

KEYCODE_ENDCALL - if not calling, same as pressing power button (you get choices: Power off, Airplane mode, Silent mode)
adb shell input keyevent 6


KEYCODE_VOLUME_UP - more noise
adb shell input keyevent 24

KEYCODE_POWER - same as pressing power button (you get choices: Power off, Airplane mode, Silent mode)
adb shell input keyevent 26


KEYCODE_CAMERA
adb shell input keyevent 27

KEYCODE_CLEAR
adb shell input keyevent 28


Full list of codes:

0  -  KEYCODE_UNKNOWN
1  -  KEYCODE_MENU
2  -  KEYCODE_SOFT_RIGHT
3  -  KEYCODE_HOME
4  -  KEYCODE_BACK
5  -  KEYCODE_CALL
6  -  KEYCODE_ENDCALL
7  -  KEYCODE_0
8  -  KEYCODE_1
9  -  KEYCODE_2
10  -  KEYCODE_3
11  -  KEYCODE_4
12  -  KEYCODE_5
13  -  KEYCODE_6
14  -  KEYCODE_7
15  -  KEYCODE_8
16  -  KEYCODE_9
17  -  KEYCODE_STAR
18  -  KEYCODE_POUND
19  -  KEYCODE_DPAD_UP
20  -  KEYCODE_DPAD_DOWN
21  -  KEYCODE_DPAD_LEFT
22  -  KEYCODE_DPAD_RIGHT
23  -  KEYCODE_DPAD_CENTER
24  -  KEYCODE_VOLUME_UP
25  -  KEYCODE_VOLUME_DOWN
26  -  KEYCODE_POWER
27  -  KEYCODE_CAMERA
28  -  KEYCODE_CLEAR
29  -  KEYCODE_A
30  -  KEYCODE_B
31  -  KEYCODE_C
32  -  KEYCODE_D
33  -  KEYCODE_E
34  -  KEYCODE_F
35  -  KEYCODE_G
36  -  KEYCODE_H
37  -  KEYCODE_I
38  -  KEYCODE_J
39  -  KEYCODE_K
40  -  KEYCODE_L
41  -  KEYCODE_M
42  -  KEYCODE_N
43  -  KEYCODE_O
44  -  KEYCODE_P
45  -  KEYCODE_Q
46  -  KEYCODE_R
47  -  KEYCODE_S
48  -  KEYCODE_T
49  -  KEYCODE_U
50  -  KEYCODE_V
51  -  KEYCODE_W
52  -  KEYCODE_X
53  -  KEYCODE_Y
54  -  KEYCODE_Z
55  -  KEYCODE_COMMA
56  -  KEYCODE_PERIOD
57  -  KEYCODE_ALT_LEFT
58  -  KEYCODE_ALT_RIGHT
59  -  KEYCODE_SHIFT_LEFT
60  -  KEYCODE_SHIFT_RIGHT
61  -  KEYCODE_TAB
62  -  KEYCODE_SPACE
63  -  KEYCODE_SYM
64  -  KEYCODE_EXPLORER
65  -  KEYCODE_ENVELOPE
66  -  KEYCODE_ENTER
67  -  KEYCODE_DEL
68  -  KEYCODE_GRAVE
69  -  KEYCODE_MINUS
70  -  KEYCODE_EQUALS
71  -  KEYCODE_LEFT_BRACKET
72  -  KEYCODE_RIGHT_BRACKET
73  -  KEYCODE_BACKSLASH
74  -  KEYCODE_SEMICOLON
75  -  KEYCODE_APOSTROPHE
76  -  KEYCODE_SLASH
77  -  KEYCODE_AT
78  -  KEYCODE_NUM
79  -  KEYCODE_HEADSETHOOK
80  -  KEYCODE_FOCUS
81  -  KEYCODE_PLUS
82  -  KEYCODE_MENU
83  -  KEYCODE_NOTIFICATION
84  -  KEYCODE_SEARCH
85  -  TAG_LAST_KEYCODE