Java: random long number in 0

Starting from Java 7 (or Android API Level 21 = 5.0+) you could directly use ThreadLocalRandom.current().nextLong(n) (for 0 ≤ x < n) and ThreadLocalRandom.current().nextLong(m, n) (for m ≤ x < n). See @Alex’s answer for detail. If you are stuck with Java 6 (or Android 4.x) you need to use an external library (e.g. org.apache.commons.math3.random.RandomDataGenerator.getRandomGenerator().nextLong(0, … Read more

HTML5 input type range show range value

For those who are still searching for a solution without a separate javascript code. There is little easy solution without writing a javascript or jquery function: <input type=”range” value=”24″ min=”1″ max=”100″ oninput=”this.nextElementSibling.value = this.value”> <output>24</output> JsFiddle Demo If you want to show the value in text box, simply change output to input. Point to note: … Read more

Revert a range of commits in git

What version of Git are you using? Reverting multiple commits in only supported in Git1.7.2+: see “Rollback to an old commit using revert multiple times.” for more details. The current git revert man page is only for the current Git version (1.7.4+). As the OP Alex Spurling reports in the comments: Upgrading to 1.7.4 works … Read more

Can I hint the optimizer by giving the range of an integer?

Yes, it is possible. For example, for gcc you can use __builtin_unreachable to tell the compiler about impossible conditions, like so: if (value < 0 || value > 36) __builtin_unreachable(); We can wrap the condition above in a macro: #define assume(cond) do { if (!(cond)) __builtin_unreachable(); } while (0) And use it like so: assume(x … Read more

How to generate a random number between a and b in Ruby?

UPDATE: Ruby 1.9.3 Kernel#rand also accepts ranges rand(a..b) http://www.rubyinside.com/ruby-1-9-3-introduction-and-changes-5428.html Converting to array may be too expensive, and it’s unnecessary. (a..b).to_a.sample Or [*a..b].sample Array#sample Standard in Ruby 1.8.7+. Note: was named #choice in 1.8.7 and renamed in later versions. But anyway, generating array need resources, and solution you already wrote is the best, you can do.