nene
I listed my project[1] there, but for some reason it's detected as having 0 issues.
Additionally my project is listed under JavaScript repos, while in reality it's both JavaScript and Ruby project, it just happens to have slightly more JS than Ruby code.
grep 'silver.*needle' haystackI can't really see the benefit of hunting the comments from your code with cursor. It definitely would make it even more unlikely that comments aren't updated when code is changed.
Would have been much better if the review was exposed as an API which you could explore freely. And maybe some embedded silly programming challenges to be able to more effectively read the review. e.g. the example paragraph API could have just .nextChar() and .hasMoreChars() methods, so one would have to write a loop to comfortably read the example.
Opportunities are endless, though the book itself looks interesting.
And then there are articles about building compilers which do support loops etc, but the trick is that these constructs are implemented by some other already existing machine.
So I feel like there's some gap in my education. Pointers, anybody?
Especially what's wrong with a templating system? A templating system on server side can help avoid casual escaping bugs by doing automatic escaping of everything by default. Exactly the same thing can be done on client side.
OK, I think I found the quote that is troubling you:
> It has been well noted by the group that any kind of reliance on a JavaScript library for encoding would be problematic as the JavaScript library could be subverted by attackers.
So basically we are talking about the case where users machine has been compromised? In such a case I don't really see how you can be sure of anything - that user is screwed.
At the same time the article suggests multiple ways of encoding the data on client side... I'm a bit puzzled.
Maybe what they really meant was that you shouldn't hope at server side that the client side correctly performed the encoding, like hoping the client will escape you database query arguments... but that's just basic everyday knowledge.
I'm more surprised that under the title "everyone should read" are three Joel Spolsky books.
What I can say though, is that there is a correlation between a lousily indented code and bugs. Consistency is the key in indentation. Reading non-consistently indented code, that's what drives you insane... but two instead of four spaces... hardly.
You shouldn't be able to just guess the answers one-out-of-four. When I was in school (not in US) there never was such a thing. You simply solve the problem and write an answer, which usually is a simple number.
I've used Ruby quite a while and never experienced any problems with the very same construct in there.
I applaud that you have created a site that tries to compensate the effort to its contributors... I just hope that you have managed to tailor the site to avoid the problems that money can bring.
But the main problem with software patents in particular is that you can never be sure if you're infringing something. You can only hope that you don't.
1. Because of the legalese language in which patents are written it's pretty damn hard to even understand what is patented.
2. Even if you understand what the patent is about, it's probably of little help in implementing the thing by yourself, as the patent just describes the general idea.
3. If you indeed understand the idea, you might then come up with an improvement, but there's no benefit for you in publishing it, as the underlying idea is patented, the only one to gain from it is the patent holder.
4. You are encouraged by the system to not read patents, because if you happen to infringe one, your knowledge of the existence of patent can be used against you.
- It's not case-sensitive, which sucks for searching code.
- It's unable to search for any punctuation characters (searching for "foo()" is the same as searching for "foo"), which totally sucks for searching source code.
- The search finds lots and lots of duplicates. Even multiple matches in one file are listed as completely separate results.
- You can limit the search to one of the languages in dropdown menu, but if your language of choice doesn't happen to be in there, you're out of luck. For example you can't limit your search only to C header files.
Simply by adding package:github.com to Google Code Search search box one can apply a better tool for code in github, but unfortunately the good times seem to be over soon.
Really sad to see it go...
> Although you might expect int and double to be primitive types, they're actually interfaces that extend the num interface. This means that int and double variables are also nums.
class Foo implements Comparable Observable Deniable ...
Why not have interfaces like in Go, where you just define a set of methods and all classes having the methods will automatically implement the interface. Collection<E>
HashMap<K,V>
HashSet<E>
LinkedHashMap<K,V>
List<E>
Map<K,V>
Set<E>
Why not just Array and Hash? And what's up with the whole generics thing - that's just plain old Java. int
bool
String
Object
Why do some types start with lowercase and some with uppercase letter. Why not use a sensible naming convention? square(n) => n + n;
square(5); // returns 25
square2(n) { n + n; }
square2(5); // returns null
Why not have an implicit return value everywhere?I could go just on and on...
Additionally if your language has first class functions, it would feel kind of strange if names of some functions started with $ and others without it.
Might be implemented as:
while (get_location() == work) { sleep(1min); }
go_back_in_time(10min);
trigger_reminder();
Further more, having that kind of naming scheme might actually hold you back from doing parallel development - aka using git to its full potential. I regularly make use of branching even in my personal projects. For example starting the development of new experimental feature while still continuing fixing bugs in the master branch.
The larger the commit numbers grow the smaller will be difference between a number 1935 and git hash af23cc. Besides, git provides easy means for referring to the most recent commits using HEAD, HEAD^, HEAD^^ and so on. There's also --since option for going further back in time.
As a result your commits now have two revision numbers: the hash used and maintained by git and the number used and maintained by you. But there's no escaping from hashes. You're forced to use them anyway. So why supplement them with your own revision numbers? That's like having a digital library system and maintaining a perfo-cards archive at parallel.
For example I was wondering if "new" is a keyword. If it is, then "new string ()" might be something interesting, otherwise it's just a function call.
Similarly this raises a question of whether I can write the following code:
if end of line (str)
This might or might not be permitted because "end" is a keyword. If it is permitted, then the result looks pretty damn ambiguous to me. If it's not then I have to name my identifier differently, like so: if end_of_line (str)
But then I'm skrewing up the style of my code...http://en.wikipedia.org/wiki/Whitespace_(programming_languag...