65,857 reputation
13155279
bio website pelicandd.com
location France
age 27
visits member for 4 years, 3 months
seen 6 hours ago

Freelance developer for the last six years, I'm specializing myself in quality and productivity for the last two years. I spent the last year working in a Dilbertesque company, watching people doing everything they can to make projects fail.

For a long time, I worked with Microsoft technologies, but recently started to build Linux-based DevOps infrastructure—an excellent way to learn lots of new things.

I'm mostly active on Programmers.SE, but try to participate on other sites as well.

Do you want to:

Feel free to contact me by email at arseni.mourzenko@gmail.com.


9h
comment How to speed up the following matlab code
I'm voting to close this question as off-topic because it belongs to CodeReview.SE.
Jan
26
comment Is it possible to make some methods invisible/non-usable to some classes in Java?
You probably can with Reflection, but the fact that you need to have this sort of control is very problematic and probably indicative of severe issues in your architecture and/or design. Can you explain more the context?
Jan
26
comment How to avoid chatty interfaces
entities are likely to be read only 1-2 times after being added: so we have "thousands being added everyday", let's say 20 000, which means 20 000 to 40 000 of reads per day. This is less than 0.25 to 0.5 reads per second. Doesn't look like it should be your concern: most databases and apps deal with hundreds of requests per second.
Jan
26
comment How to avoid chatty interfaces
A huge problem with that is data duplication. This is a case where it's easy to have a single source of truth with a n↔n relationship. By adding tags, you add a second n↔n relation, and it becomes ambiguous which one should be trusted if data discrepancies appear.
Jan
25
comment How to avoid chatty interfaces
@ErenErsönmez: the more data you have, the more critical caching appears. As a rule of thumb, compare the number of reads to the number of writes. If "thousands" of documents are added per day and there are millions of select queries per day, you'd better using caching. On the other hand, if you're adding billions of entities to a database but only get a few thousands of selects with very selective wheres, caching may not be that useful.
Jan
25
comment How to avoid chatty interfaces
@ErenErsönmez: GetUser, instead of querying the database, will look in the cache. This means that it doesn't actually matter how many times you'll call GetUser, since it will load data from memory instead of database (unless the cache have been invalidated).
Jan
14
comment Are `switch` statements generally used wrong?
@Jules: good point. I think it depends on the culture of a particular programmer. Having spent the last 7 years working with C#, I can hardly imagine myself writing fallthrough cases in any language. Other persons with a different background may find it not only acceptable, but even natural.
Jan
14
comment Interface or boolean?
@Cem: Since you use interfaces "exactly the same as the second example", you're already in a situation where interfaces are the correct way to go.
Jan
14
comment Interface or boolean?
@Cem: if Click() does the same thing in any class, you can use inheritance and implement it only once. Of course, at some point, you'll be annoyed by the lack of multiple inheritance, but then you can move your properties to another class and call it from the original classes.
Jan
14
comment Interface or boolean?
@Cem: I don't understand your comment. The number of possibilities is the same whenever you use interfaces or booleans.
Jan
14
comment Interface or boolean?
@Cem: Your concern being the mess with as and an if block all over your code, I guess? I edited my question to show how code duplication can be avoided.
Jan
14
comment Are `switch` statements generally used wrong?
@YasmaniLlanes: "The lack of break statements is the whole point": yes, I know. The problem is, it makes the code error prone, given that the error can easily be avoided.
Jan
14
comment Are `switch` statements generally used wrong?
@JTrana: great point. I added it to the answer, although I can't find a great example where if/if/else can be replaced by a switch.
Jan
7
comment Handling Slow External API's in Web Application
Without knowing the details, the question is impossible to answer. Maybe you should simply switch to an API of a competitor, or roll your own. Maybe caching the results is the answer. Maybe you are requesting too much information from the API or do too many unneeded requests...
Dec
31
comment To what extent can impact analysis of a code change be automated?
You may be interested in how Visual Studio determines which unit tests are affected by the changes to the code happened since the last time the tests were run. Search for Test Impact Analysis.
Dec
30
comment GPL covers the linguistic data in *spell dictionaries?
This question appears to be off-topic because it is about licenses and intellectual property. It should be addressed to a lawyer.
Dec
22
comment Is embedding data in a executable considered a good practice?
Do you mean using Resources or actually embedding images in constants in source code?
Dec
20
comment The Better Parts and Delegation: Is Crockford Too Extreme?
The question may apply to everything Douglas Crockford says. For example, isn't it too extreme to forbid the usage of == and != operators, while there are actual cases where I do want type-agnostic [in]equality? Crockford's pieces of advice should be mandatory for any beginner and are highly recommended for intermediate programmers, and are good for 99.9% of situations you encounter. When you face the remaining 0.1% of the situations and you know the language enough, you're free to go against what is told in Crockford's books and talks.
Dec
19
comment How to store/deal with data available to other classes
You can use dependency injection to pass the instance of the class to the methods which need it.
Dec
19
comment How to store/deal with data available to other classes
A few notes: (1) Building shouldn't be static. (2) You shouldn't have GetX() or SetX() methods in C#: use getters and setters instead. (3) Your List<T>-type fields can be readonly. (4) You shouldn't return List<T> in GetColumns: use a more generic type, such as IEnumerable<T>. (5) Don't use List<T> in parameters: use a more generic type, such as ICollection<T>. (6) void Group() may not be that intuitive, especially given the popularity of IEnumerable<T>.GroupBy() which returns a value instead of modifying state.