775 reputation
412
bio website
location Israel
age 28
visits member for 3 years, 10 months
seen Jul 4 at 7:50

Since I don't like the restrictive copyleft nature of the Stack Exchange contribution license:

I hereby release all my contribution on the Stack Exchange network into the public domain. This applies worldwide.

In case this is not legally possible:

I hereby grant any entity the right to use my contributions on the Stack Exchange network for any purpose, without any conditions, unless such conditions are required by law.


Dec
18
comment What trends do you see for your profession in 30 years?
@SnOrfus: Sometimes, describing the requirements of the problem is simpler, clearer and more concise than specifying the solution, granted you have a system that can understand the requirements you specified. E.g. in C#, declarative: var underagePeople = people.Where(person => person.Age < 18); vs imperative: var underagePeople = new List<Person>(); foreach (var person in people) if (person.Age > 18) underagePeople.Add(person);
Dec
18
comment What trends do you see for your profession in 30 years?
Do you mean, "less imperative and more declarative "? Functional doesn't necessarily mean declarative.
Dec
10
comment I don't understand the arguments against operator overloading
I'm saying that the potential problem of operator overloading with math operations is small compared to those operators. Doing something clever or crazy with math operators might troublesome, but the operators I listed, which people usually don't think of as operators but rather basic language elements, should always meet the expectation defined by the language. [] should always be an array-like accessor, and -> should always mean accessing a member. It doesn't matter if it's actually an array or a different container, or if it's a smart pointer or not.
Dec
10
comment I don't understand the arguments against operator overloading
+1: Well written, well argued, interesting topic and highly debatable. A shining example of a p.se question.
Nov
29
comment Is the Java package name convention flawed?
@Thorbjørn: A namespace, unlike a domain, isn't, and can't be owned by anyone. It is only a logical division or categorization of code. The chances of collision between you and that other company approaches zero, unless that other company also happens to develop software, in the same technology, and has a similar offering (in short - a competitor of yours). In that case, I'd take RebBingo's suggestion, unless you're okay with having a competing company that has the same name as your company.
Nov
27
comment Conflict resolution between programmers
Would the answers to this question be any different if you were talking about resolving workplace conflicts with other types of knowledge workers? If the answer is no, this question is off topic.
Nov
23
comment Why is it so hard to get people to pay for software?
Good point. But there is one part of games that may balance out DRM somewhat since it's only available for legitimate copies: multiplayer. Since in most games multiplayer is software plus services (S+S) rather than just software, it can't be pirated (although it can be imitated to some degree). This provides an added value that encourages you to purchase the game. DRM is still a pain, though.
Nov
23
comment Method vs Function vs Procedure
Great answer! Just one tiny addition: A procedure should "do something" to the arguments - or cause some other side effect (e.g. printf).
Nov
8
comment Why do so few large websites run a Microsoft stack?
Cost may indeed be the reason, but you bullet list of Microsoft technologies that cost money is wrong: .NET is free, Visual Studio is free (there are paid version too, just like there are paid version of PHP IDEs), SQL Server Express is free (again, there are paid version too), and IIS is an operating system component which is included for free with the OS. Also, you don't have to run the Microsoft stack (just call it by its name: ASP.NET) on Windows/IIS, it can run on Linux/Apache too (with Mono).
Nov
7
comment How do you use blank lines in your code?
@Mike: I don't know, I don't think the guy's around to ask him. I didn't even bother to check if all the methods were properly aligned. Like with a dirty public restroom, you go in, do your thing, and leave as quickly as possible.
Nov
6
comment How do you use blank lines in your code?
I'm assuming your Bad Whitespace example is a shortened version of what should be considered bad. At its current length, it seems unnecessary to split it up.
Nov
6
comment How do you use blank lines in your code?
@Rob: It was used in production code of a large system, but without the comment header, and having large enough method bodies that the alignment puzzled me, since I couldn't see other method signatures in that file. When I collapsed the bodies of the methods, I was able to see the "reason" for the whitespace.
Nov
6
comment Which library/framework did you ditch as being too complex for the problem it is solving?
WCF 4.0 requires no XML configuration file at all. I don't have any experience with interoperability with other technologies (apart from using WCF as a client, which works well), but I can say I found it both easy and intuitive. Even though I started using it without reading any books or having any training (and with deadlines to meet), I was able to hit the ground running.
Nov
5
comment Why SQL is not so widespread in large desktop applications?
Databases are also just "a bunch of files". I'd argue that all the examples you presented are in fact databases, just not SQL-queryable relational databases.
Nov
5
comment What does “Human Readable” mean? Is it a misnomer?
+1: Everything is "human readable" given enough effort. The de facto meaning of "human readable" in computers is: plain text, unstructured or some structure solely composed of textual characters.
Nov
2
comment async & await - poll for alternatives
Why the downvote? It's a courtesy to at least explain yourself after downvoting.
Nov
1
comment async & await - poll for alternatives
I like your inversion of the await keyword. And I also dislike the triple-redundancy of public async Task<int> FooAsync().
Oct
30
comment async & await - poll for alternatives
@Note: Well there's no verb in while. If you do add a verb, like do, then you get do {...} while (x), which does executes the body regardless of x (at least once). Your suggestion of yield while seems very similar to do while, but with opposite guarantees of performing the verb, which might be a bit misleading (but not that much of a big deal). The thing I dislike the most about yield is that it implies the implementation of a mechanism. The whole point of async/await is that you write a asynchronous operation in a synchronous style. yield breaks that synchronous style.
Oct
29
comment async & await - poll for alternatives
But you're not necessarily yielding execution if the task has already been completed. But you're always awaiting the completion of the task (though never waiting).
Oct
13
comment Are captchas worth the decreased usability?
It seems it is a good deal for spammers to pay $2 for bypassing 1000 CAPTCHAs on sites like decaptcher.com. It's horrible - many sites I visit that use reCAPTCHA are now being hit by huge amounts of spam.