Conclusions about Wide Finder, C++, OCaml, JoCaml, Erlang and friends – [Regarding the length and overall ugliness. It is the result of a number of incremental changes, where each change was done with a least effort approach, i.e. no serious refactoring has been done between the different versions.]
Fast image enlargement through seam insertion in OCaml – [I’m the author of the GIMP LiquidRescale plug-in. I was quite impressed by the difference in performance of the two algorithms, so I started hacking on my version. I have a number of comments, also referred to your previous posts on this topic, which I think you’ll be interested into, since I see you do care about performance issues:]
Ruby rewrites my CSS, eigenclass.org repainted (think of the children and their eyes) – [The referrers are useless, since they have no description, and the top ones always point to yourself anyway. I agree that the links list on the right is unreadable and overwhelming (what’s the difference between "popular" and "most seen", anyway?). The line-height of the paragraphs is too small, now, making everything run together, and you wash out your heading’s contrast, rather than increase it for emphasis. And there’s no extra whitespace between paragraphs. I’ve always read Eigenclass in spite of the design.]
Outperforming Ferret at searching, 3X faster indexing, code online – [This is what happens actually: I’m performing binary search to obtain the suffixes matching the query term in O(log N) time. At that point you have M hits (each is but a 32 bit integer, for the time being, telling you the offset within the full-text store) which have to be bucketed into Q (Q << M) documents. Documents are scored based on the number of hits (with different weights for each field, e.g. a match in the URI is more important). So for each hit (= suffix, i.e. an offset), I do]
A simple full-text search engine in 200 lines of Ruby – [It’s just that, by construction, there are no suffixes starting with a non-word character, so you can look for "bar * baz" but not for "-foo". It is possible to change the criteria used for "suffix selection" on a document basis (or even in different sections of a document) very easily. For instance, you could use n-gram analysis to locate words boundaries (just the start suffices) in a text written in Japanese, and arbitrarily sophisticated lexing to index source code.]
Ruby HEAD’s been evolving in the last 4 months (2006-10) – [Some highlights follow, but refer to the [[expanded changelog|Changes in Ruby 1.9]] for the details (several [[RSS feeds with abridged ("differential") summaries|differential RSS feeds]]]
Changes in Ruby 1.8.5 – [* added RSS::RootElementMixin#to_xml ([[ruby-talk:197284]]), which can be used to convert feeds to a different RSS version as follows:]
call_stack 0.1.0: making ruby-breakpoint/Rails’ breakpointer work with Ruby 1.8.5 – [hmm, the new Binding.of_caller differs from flgr’s if you call it inside a block, because its definition of the "caller" is different; it matches the call stack, unlike Ruby’s #caller, which includes "virtual stack frames" corresponding to execution inside blocks.]
Binding.of_caller and breakpoint breaking in 4 days (Ruby 1.8.5) – [I’ve taken a look at ruby-debug (it looks very nice btw.) and indeed it’s a superset of my hack. It seems it’s going to be a bit slower (haven’t timed it yet) because it does more things in the event handler, though. I’m releasing what I have so far so people can keep using script/breakpointer. If it turns out that there’s no difference in speed I’ll be happy to see it replaced by ruby-debug :-)]
ruby-wmii 0.3.1: bookmark manager, generalized menus, view history… – [The bookmarks manager is quite promising, but it would be more useful to me if it were generalised past the current restriction of only bookmarking websites. The system could be expanded to bookmark quite a few different types of things. It would be great if I were able to use the bookmark manager to access the PDFs of papers I have. In a way, this would make the system serve as a much simpler replacement for beagle/tracker/etc. I’m not sure of the best way to do this – whether it would be better to write support for each format, or to have a more general command form for the bookmarks, with each bookmark specifying a command to be run. The latter would seem rather easy to do, and would allow quite interesting functionality.]
rcov: code coverage for Ruby – [* detection of uncovered code introduced since the last run ("differential code coverage")]
rcov 0.3.0: happier Rails (code coverage analysis) – [Another important addition is the ability to detect aliased source files: this was very needed to analyze Rails apps, where a file could get loaded under several different names, due to the extensive usage of #require with relative paths.]
Call graphs to analyze code dependencies, or just because. – [* (related to the latter) the call graph can be confusing because we’ll have lots of calls originating in methods taking a block, like Enumerable#each. Also, it’d be better to skip methods like Class.new so we don’t lose control flow information when different paths coalesce.]
Better code coverage for Ruby: rcov 0.1.0 prerelease – [C0 coverage analysis (as done by rcov) tells you which lines of code have been executed: you typically use it to find the areas of your program that have not been sufficiently tested, i.e. those that were not run by your test cases. C1 coverage refers to the different branches of conditional statements, for instance,]
Changes in Ruby 1.9, second update (2006-01) – [In addition to the [[full changelist|Changes in Ruby 1.9]], there’s a [[HTMLdiffish hmm… diff|https://eigenclass.org/hiki.rb?c=diff;p=Changes+in+Ruby+1.9]]. ]
More about naming conventions – [The difference between dvar and dvar_curr is fairly subtle; in the following example, ]
Analyzing the stdlib – [* results differ the most for small files, due to the edge effect associated to the last token; but this doesn’t really matter because these are the files where the markov process is more likely to be periodic anyway…]
Continuations are so much easier to grasp than 2ch and Japanese – [Being pretty satisfied with that, I decided to reply to the original message on 2ch. This surely cannot be difficult, can it? I know these kanji, alright. I fill the name field. Mmh can do without the email address. OK. Now the contents; I just paste the Ruby code without adding any text: I’m not running the current Konqueror instance with XIM, and I’m too lazy to run another (GTK-based) browser just to be able to compose in Japanese with im-ja (I don’t feel like writing somewhere else and pasting into the form either). Done. There’s a large button; I can’t read all the kanji but it surely means "submit". Mmmm a new page seems to ask for confirmation before sending and shows my message. One sec, the indentation is gone. Ugh.]
Ruby – [* a less naïve [[implementation of instance_exec|instance_exec]], which allows you to eval code with a different self while passing arguments to the block]