Reputation
2,090
Top tag
Next privilege 2,500 Rep.
Create tag synonyms
Badges
7 15
Newest
 Yearling
Impact
~69k people reached

Aug
7
comment How do I bundle library files for use in branches?
@DocBrown - I repeat: I wrote exactly what I meant to write. While I don't believe that artifacts and source code belong together, that does not mean that they can't be stored in the same repo. I just think alternatives are better. Feel free to post your own recommendations, I don't feel like getting into a debate in the comments.
Aug
7
comment How do I bundle library files for use in branches?
@Ixrec - "local" copy, sure, but why in the source control repo? Perhaps I've been spoiled by the Java ecosystem, where Maven Central has been a reliable resource for ten years or so. But even when I was writing C code back in the 80s, we kept our source separate from our builds.
Aug
7
comment How do I bundle library files for use in branches?
@DocBrown - no, I meant exactly what I said. In my view, libraries are dependencies used by your source code, and artifacts produced from your source code, but they are not source code in themselves. You may have a need to store libraries-as-dependencies in a locally-managed repository, but I believe that even there a source code management system with its "forget nothing" design is inappropriate.
Aug
7
answered How do I bundle library files for use in branches?
Aug
7
comment How do I bundle library files for use in branches?
Why is it a big issue? As others have pointed out, the space is only consumed on the client, not the server. And there are many techniques for minimizing that space, the simplest being to delete the branches once you've merged them to trunk. You can also use --depth and --set-depth to control what gets pulled to the client. Or you can create an archived-branches directory where you svn mv branches after merge (although, really, deleting them is far better).
Aug
1
comment What happens if dependency repository is deleted on GitHub?
Forks are free. If it helps you sleep at night, do it.
Jul
26
comment What should JITed bytecode do exactly?
Another geezer data point: the DEC PDP-11 Fortran compiler from the 1970s also used a threaded interpreter. They might have done it for ease of implementation, but I strongly suspect that they wouldn't have done it if the performance was bad (and that was pre-cache, with a machine architecture that was flexible enough to run the processor backwards).
Jul
26
comment What should JITed bytecode do exactly?
@delnan - Forth is extremely cache friendly, so I would not be surprised at that claim. Whether you could write (and maintain) a Forth program that's equivalent to an arbitrary C program is another matter (caveat: it's been 30 years since I used Forth professionally, so take that comment with a grain of salt).
Jul
11
comment long (or bizarre) file paths
And as a general comment: why not just store on the heap. Perhaps as a linked-list structure where each node holds an arbitrary-length path component? Yeah, it's overkill for tiny pathnames, but I suspect that it won't be called so often that the overhead is noticeable.
Jul
11
comment long (or bizarre) file paths
One example that I've seen of excessively long paths are Scala (generated) classfile names. There are many Scala projects (including the compiler itself) that you can't build on eCryptfs (the default home-directory encryption on Linux), which has a 240 character pathname limit.
Jul
11
comment Why is heap size fixed on JVMs?
@Ben - yep, you're right. And my second sentence points out that there are alternatives. I don't, however, agree that a fixed-size heap is the wrong way to manage GC in the general case. A properly tuned JVM uses the "right" heap size; in my experience long GC pauses happen when the JVM hasn't been properly tuned. And often the "right" heap size is far smaller than you might think.
Jul
5
comment Why don't open source projects pay more attention to backward compatibility
You would probably be better served by posting your actual problem over at SO. It surprises me that Maven, at least, would have backwards-compatibility issues -- I'm still running Maven 2 build scripts that I wrote 6-7 years ago.
Jun
27
answered Is Logger.getLogger(MyClass.class) the best way to initialise log4j loggers?
Jun
26
comment Is Logger.getLogger(MyClass.class) the best way to initialise log4j loggers?
That said, I prefer loggers as instance variables rather than class variables, so eliminate the static keyword and replace Foo.class with getClass().
Jun
26
comment Is Logger.getLogger(MyClass.class) the best way to initialise log4j loggers?
What do you find verbose about this (setting aside Java's syntax)?. You have to create a variable to hold the logger, and you have to tell getLogger() the name of the logger to get.
Jun
10
comment Explicit DAG instead of Vector Clocks for synchronisation
Yeah, my understanding of vector clocks is that they're intended simply for an accept/reject decision: "node C is trying to update this piece of data, but it isn't aware of node B's update".
Jun
10
comment Explicit DAG instead of Vector Clocks for synchronisation
I may be misunderstanding what you're saying, but it's unclear how a graph of all events leading to a state could be smaller than a vector of counters. Unless you're in a system that has an extremely large number of nodes and an extremely small number of changes.
May
22
comment What is the functional programming answer to type-based invariants?
In your example, a 2-tuple is a Fraction only if it was produced by one of the "fraction" functions (or, as a more relaxed definition, can be used by them). Otherwise it's just a 2-tuple, with no special meaning.
May
22
comment What is the functional programming answer to type-based invariants?
@BenAaronson: types are just conventions describing the use of data. In a language that provides classes and encapsulation, that convention is embedded in the class implementation. In a language that provides functions and simple collections, that convention is embedded in the function implementation. There's really no difference.
May
7
answered Legitimate cases of having .equals() behaving inconsistently with .compareTo()?