Avoiding NullPointerException in Java

This to me sounds like a reasonably common problem that junior to intermediate developers tend to face at some point: they either don’t know or don’t trust the contracts they are participating in and defensively overcheck for nulls. Additionally, when writing their own code, they tend to rely on returning nulls to indicate something thus … Read more

Which “href” value should I use for JavaScript links, “#” or “javascript:void(0)”?

I use javascript:void(0). Three reasons. Encouraging the use of # amongst a team of developers inevitably leads to some using the return value of the function called like this: function doSomething() { //Some code return false; } But then they forget to use return doSomething() in the onclick and just use doSomething(). A second reason … Read more

Why does Google prepend while(1); to their JSON responses?

It prevents JSON hijacking, a major JSON security issue that is formally fixed in all major browsers since 2011 with ECMAScript 5. Contrived example: say Google has a URL like mail.google.com/json?action=inbox which returns the first 50 messages of your inbox in JSON format. Evil websites on other domains can’t make AJAX requests to get this … Read more

Difference between @staticmethod and @classmethod

Maybe a bit of example code will help: Notice the difference in the call signatures of foo, class_foo and static_foo: class A(object): def foo(self, x): print(f”executing foo({self}, {x})”) @classmethod def class_foo(cls, x): print(f”executing class_foo({cls}, {x})”) @staticmethod def static_foo(x): print(f”executing static_foo({x})”) a = A() Below is the usual way an object instance calls a method. The … Read more

How do I delete a remote tag?

You can push an ’empty’ reference to the remote tag name: git push origin :tagname Or, more expressively, use the –delete option (or -d if your git version is older than 1.8.0): git push –delete origin tagname Note that git has tag namespace and branch namespace so you may use the same name for a … Read more

How do I update or sync a forked repository on GitHub?

In your local clone of your forked repository, you can add the original GitHub repository as a “remote”. (“Remotes” are like nicknames for the URLs of repositories – origin is one, for example.) Then you can fetch all the branches from that upstream repository, and rebase your work to continue working on the upstream version. … Read more

Setting “checked” for a checkbox with jQuery

Modern jQuery Use .prop(): $(‘.myCheckbox’).prop(‘checked’, true); $(‘.myCheckbox’).prop(‘checked’, false); DOM API If you’re working with just one element, you can always just access the underlying HTMLInputElement and modify its .checked property: $(‘.myCheckbox’)[0].checked = true; $(‘.myCheckbox’)[0].checked = false; The benefit to using the .prop() and .attr() methods instead of this is that they will operate on all … Read more

How do I read / convert an InputStream into a String in Java?

Summarize other answers I found 11 main ways to do this (see below). And I wrote some performance tests (see results below): Ways to convert an InputStream to a String: Using IOUtils.toString (Apache Utils) String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8); Using CharStreams (Guava) String result = CharStreams.toString(new InputStreamReader( inputStream, Charsets.UTF_8)); Using Scanner (JDK) Scanner s = … Read more

How do I get a timestamp in JavaScript?

Timestamp in milliseconds To get the number of milliseconds since Unix epoch, call Date.now: Date.now() Alternatively, use the unary operator + to call Date.prototype.valueOf: + new Date() Alternatively, call valueOf directly: new Date().valueOf() To support IE8 and earlier (see compatibility table), create a shim for Date.now: if (!Date.now) { Date.now = function() { return new … Read more