Thursday, February 12, 2015

Git Rebase

Rebase when you've been on a branch for a few days and you know there have been changes to master.

That way, when you do push your branch up for a pull request and code review it can be easily merged in with the master branch.

Assuming you're on my-feature-branch...

Rebase Commands


git checkout master
git pull
git checkout my-feature-branch
git rebase master
git push -f


Notes

Be sure to run git push -f, not what git is likely to suggest after you run the git rebase master command (git pull).

If you do have the misfortune of pulling changes into the rebase work you did, then you'll end up with a bunch of recent commits to the master branch, that you've already accounted for, in your pull request...

...and you will likely need to delete that branch and recreate it by cherry picking the commits you need.

References

http://git-scm.com/docs/git-rebase


Share this article



This work is licensed under the Creative Commons Attribution 3.0 Unported License.

Tuesday, February 10, 2015

fmt.Printf format reference

Here's the fmt.Printf format reference for Go (golang):

General

the value in a default format%v
type of the value%T

Integer

+255Always show sign%+d
'ÿ'Single quoted%q
377Octal without leading ‘0’%o
0377Octal with leading ‘0’%#o
ffHex lowercase%x
FFHex uppercase%X
0xffHex with “0x”%#x
U+00FFUnicode%U
U+00FF ‘ÿ’Unicode with char%#U
11111111Binary%b

Integer width

|    1|
|   12|
|  123|
| 1234|
|12345|
|123456|
|1234567|
|1    |
|12   |
|123  |
|1234 |
|12345|
|123456|
|1234567|
Minimum width=5. Expand if wider.%5d
%-5d (Left justify)
|    1|
|   12|
|  123|
| 1234|
|12345|
|12345|
|12345|
|1    |
|12   |
|123  |
|1234 |
|12345|
|12345|
|12345|
Width=5. Truncate right if wider.fmt.Printf(“%s”, fmt.Sprintf(“%5d”, value)[:5]))
fmt.Printf(“%s”, fmt.Sprintf(“%-5d”, value)[:5])) (Left justify)
  or
fmt.Printf(“|%5.5s|\n”, strconv.Itoa(value))
fmt.Printf(“|%-5.5s|\n”, strconv.Itoa(value)) (Left justify)
|    1|
|   12|
|  123|
| 1234|
|12345|
|23456|
|34567|
|1    |
|12   |
|123  |
|1234 |
|12345|
|23456|
|34567|
Width=5. Truncate left if wider.fmt.Printf(“%5d”, val % 100000)
fmt.Printf(“%-5d”, val % 100000) (Left justify)
|0012345|Pad with ‘0’ (Right justify only)%07d

Float

original%f (=%.6f)
6 digits after decimal
%e (=%.6e)
6 digits after decimal
%g
smallest number of digits necessary
%.3g
total number of digits=3
12345
1234.5
123.45
12.345
1.2345
0.12345
0.012345
0.0012345
0.00012345
0.000012345
0.0000012345
12345.000000
1234.500000
123.450000
12.345000
1.234500
0.123450
0.012345
0.001234
0.000123
0.000012
0.000001
1.234500e+04
1.234500e+03
1.234500e+02
1.234500e+01
1.234500e+00
1.234500e-01
1.234500e-02
1.234500e-03
1.234500e-04
1.234500e-05
1.234500e-06
12345
1234.5
123.45
12.345
1.2345
0.12345
0.012345
0.0012345
0.00012345
1.2345e-05
1.2345e-06
1.23e+04
1.23e+03
123
12.3
1.23
0.123
0.0123
0.00123
0.000123
1.23e-05
1.23e-06

String

love is "愛"Normal%s
"love is \"愛\""Double-quoted%q
`love is "愛"`Back-quoted if possible. Otherwise, double-quoted%#q
"love is \"\u611b\""Double-quoted. ASCII only.%+q
6c6f76652069732022e6849b22Hex lowercase.%x
6C6F76652069732022E6849B22Hex uppercase.%X
6c 6f 76 65 20 69 73 20 22 e6 84 9b 22Hex with space.% x

String width

|    1|
|   12|
|  123|
| 1234|
|12345|
|123456|
|1234567|
|12345678|
|123456789|
|1234567890|
|1    |
|12   |
|123  |
|1234 |
|12345|
|123456|
|1234567|
|12345678|
|123456789|
|1234567890|
Minimum width=5. Expand if wider.%5s
%-5s (Left justify)
|1|
|12|
|123|
|1234|
|12345|
|12345|
|12345|
Maximum width=5(Expand up to 5).%.5s
|    1|
|   12|
|  123|
| 1234|
|12345|
|123456|
|1234567|
|1234567|
|1234567|
|1234567|
|1    |
|12   |
|123  |
|1234 |
|12345|
|123456|
|1234567|
|1234567|
|1234567|
|1234567|
Minimum width=5. Expand up to 7.%5.7s
%-5.7 (Left justify)
|    1|
|   12|
|  123|
| 1234|
|12345|
|12345|
|12345|
|1    |
|12   |
|123  |
|1234 |
|12345|
|12345|
|12345|
Width=5.%5.5s
%-5.5s (Left justify)
|    1|
|   12|
|  123|
|  123|
|  123|
|1    |
|12   |
|123  |
|123  |
|123  |
Width=5. Truncate if wider than 3.%5.3s
%-5.3s (Left justify)
|0012345||12345  |Pad with ‘0’. Doen’t work when left-justify%07s

Struct

{sam {12345 67890}}Normal%v
{name:sam phone:{mobile:12345 office:67890}With field names%+v
main.People{name:”sam”, phone:main.Phone{mobile:”12345”, office:”67890”}}Go’s syntax%#v

Boolean

true
false
Boolean%t

Pointer

0x1842c220Pointer with 0x%p
1842c220Pointer without 0x%#p

References

http://golang-examples.tumblr.com/post/86795367134/fmt-printf-format-reference-cheat-sheet


Share this article


This work is licensed under the Creative Commons Attribution 3.0 Unported License.

Monday, February 2, 2015

Running out of RAM on Yosemite

If you notice that you're running out of RAM on OSX Yosimite...

First, open you Activity Monitor, click the [Memory] tab and sort by "Memory"

If WindowServer is hogging your RAM then resetting you mac's PRAM might fix things.

Reset your mac's PRAM

  • Close all open apps
  • Press CMD + Option + ESC (***)
  • Put your mac to Sleep
  • Wake you mac
  • Restart your mac
  • Press CMD + Option + P + R (keep it down until you hear at least 2 chimes)

(***) Here's where you force quit anything left open. It's okay to leave Finder open

Notes

If you also have excessive CPU utilization, you may want to Repair Disk Permissions, which adds a step to the above process:

Reset Disk Permissions and your mac's PRAM

  • Close all open apps
  • Press CMD + Option + ESC (***)
  • Put your mac to Sleep
  • Wake you mac
  • Restart your mac
  • click “Repair disk permissions”
  • Restart your mac
  • Press CMD + Option + P + R (keep it down until you hear at least 2 chimes)

References

http://support.apple.com/en-us/HT201560
https://discussions.apple.com/thread/6623697


Share this article

profile for l3x at Stack Overflow, Q&A for professional and enthusiast programmers


This work is licensed under the Creative Commons Attribution 3.0 Unported License.