# Recent Posts

336 posts found

 posted almost 2 years ago Andrew Stacey 118 posts Forum: Instiki – Topic: Bugs I just tried on a completely fresh install and found that it happened just as you described: the name used was the old name (and it gets swept twice). That was a sqlite3 database. I’ve tried to install mysql on my mac to test this there, but get to a crash when I run instiki. Not sure why, seems to be related to the gem not finding my mysql lib files but it’s taken too much of my time already to try to fix it to test further. I can try it on my linux machine later. However, the evidence certainly suggests that there is a difference between mysql and sqlite3 on this one. posted almost 2 years ago distler 80 posts Forum: Instiki – Topic: Bugs Sorry, I follow exactly the steps you outlined, and it’s adequate+subcategory (and its variants) that get cleared from the cache, not adequate+subcategory+>+history. The scenario you outline (involving the old name being forgotten before the cache gets swept) is exactly what the before_save action is supposed to avoid. Then the cache gets swept again in an after_save action. Now, the only thing I can think of is that I tested this under SQLite3, rather than MySQL. Perhaps the driver for the latter does something funky. But that seems unlikely… posted almost 2 years ago Andrew Stacey 118 posts Forum: Instiki – Topic: Bugs I know you don’t believe in the Cache Bug … I had a page on the nLab which I renamed. Looking at the logs, then I see the save command. It ends with:  "alter_title"=>"1", "new_name"=>"adequate subcategory > history", "author"=>"Andrew Stacey", "web"=>"nlab", "id"=>"adequate subcategory"} The next log items are: 24808: 2012-10-18 14:22:26 +0400: Reading page 'adequate subcategory' from web ' nlab' 24808: 2012-10-18 14:22:26 +0400: Page 'adequate subcategory' found 24808: 2012-10-18 14:22:26 +0400: Checking DNSBL 214.7.76.192.bl.spamcop.net 24808: 2012-10-18 14:22:26 +0400: Checking DNSBL 214.7.76.192.sbl-xbl.spamhaus.org 24808: 2012-10-18 14:22:27 +0400: 192.76.7.214 added to DNSBL passed cache 24808: 2012-10-18 14:22:27 +0400: 192.76.7.214 24808: 2012-10-18 14:22:27 +0400: Reading page 'adequate subcategory' from web 'nlab' 24808: 2012-10-18 14:22:27 +0400: Page 'adequate subcategory' found 24808: 2012-10-18 14:22:27 +0400: Maruku took 0.148016386 seconds. 24808: 2012-10-18 14:22:27 +0400: Maruku took 0.165203678 seconds. 24808: 2012-10-18 14:22:28 +0400: Expired fragment: views/nlab/show/adequate+subcategory+>+history (0.3ms) There are then a slew of more expirations, the first ones being adequate+subcategory+>+history. The last ones are also adequate+subcategory+>+history. I just tried on my course wiki. Here are the steps I took: Edit a page and change it’s name. Remove the automatically-inserted redirect. Save the page. Result: the expiration sweep does not include the old name and includes the new name twice. I’m wondering if this could be the culprit: app/controllers/revision_sweeper.rb:  def before_save(record) if record.is_a?(Revision) expire_cached_page(record.page.web, record.page.name) expire_cached_revisions(record.page) end end I notice that in the save post data then the name is the new name and the id is the old name. Could it be that the record object is populated with the new name before this action takes place? I’m not very good at tracing through ruby code, but if my guesses about what happens are right then the before_save action takes place just before the save action is executed in page.revise. If so, then by this time the name is the new name and the old name has been forgotten: in wiki.rb then the call is page.revise(content, new_name, revised_at, author, renderer) and very early on in the revise method then I see self.name = name. Perhaps the revise should save its name in old_name and then the before_save can use that if it differs from the current name? posted almost 2 years ago 20tsed56 1 post Forum: Instiki – Topic: Debugging uninterruptible sleep that is huge data to handle … posted almost 2 years ago Andrew Stacey 118 posts Forum: Instiki – Topic: Debugging uninterruptible sleep Agree completely. The processes that were handling the list call were entering uninterruptible sleep and were using a large amount of memory - of the order of 300Mb to 500Mb. The system would get bogged down if there were more than one of them, but even one would take a reasonable amount of time to complete. My suspicion is therefore that it relates to writing the file to disk for caching. So I suspect that there really is a problem with the hardware and that having several processes trying to write the same file was exposing it. (There was a change in hardware underpinning the VPS recently.) posted almost 2 years ago distler 80 posts Forum: Instiki – Topic: Debugging uninterruptible sleep It looks as though it is the “All Pages” request that is clogging up the works, … at 7000 pages then it’s a bit cumbersome, to say the least, I have no idea why that would be an issue. It’s not as if Instiki has to do anything with those 7000 pages, apart from retrieving an alphabetical list of their names (and URLs). If that’s indeed your problem, it would be nice to know why. posted almost 2 years ago Andrew Stacey 118 posts Forum: Instiki – Topic: Debugging uninterruptible sleep I’ve added the timestamps and process ids to the logs and that’s made things a lot clearer. It looks as though it is the “All Pages” request that is clogging up the works, and there appear to be some spiders that don’t respect robots.txt and find “All Pages” fairly early on in their crawl. You’ve mentioned before the possibility of adding a pageinate routine to “All Pages”. Would that help me, do you think? Or is it easier just to disable it (at 7000 pages then it’s a bit cumbersome, to say the least, so I’ve no compunction at simply disabling it altogether). Incidentally, I found I’d forgotten that bzr doesn’t set permissions so some stuff in public was unreadable. That might explain why the SVG editor wasn’t working for me as there were a couple of files from that affected. posted almost 2 years ago Andrew Stacey 118 posts Forum: Instiki – Topic: Debugging uninterruptible sleep I strongly doubt that it is due to instiki itself, but it would be nice to isolate exactly what causes the problem. Thanks for the link. After watching top all day, I think things are going into D state far more than I would expect so I’m going to contact our server provider. To help in debugging this, I’m going to add the process pid to the logging messages as that’ll make it easier to link what I see in top to what I see in the production.log. posted almost 2 years ago admin 57 posts edited almost 2 years ago Forum: Instiki – Topic: Debugging uninterruptible sleep Attach gdb to the process and try to figure out where it’s stuck. It would be interesting to me if there was an Instiki-specific reason these processes were getting stuck. But, so far, there’s no evidence for that. posted almost 2 years ago Andrew Stacey 118 posts Forum: Instiki – Topic: Debugging uninterruptible sleep I’m getting a slew of processes getting into “uninterruptible sleep” and staying there. They sit there, eating CPU and memory, until the system slows down enough that folks complain. Do you happen to know how to debug these? From what I’ve read, this is likely to be something getting stuck on I/O. One thing that occurred to me was that all the processes are logging to the same file. Could they get stuck in some sort of queue for that? (Also from my reading around, it would appear that the root cause of this is more likely to be at the kernel end, and thus an issue with drivers and hardware, than with instiki. Still, I’d like to know what it is that is triggering the sleep.) posted almost 2 years ago distler 80 posts Forum: Heterotic Beast – Topic: MathJax 2.0 The latest commits, to Heterotic Beast, upgrade it to MathJax 2.0 (from 1.1). This loads (a little) faster, and also sports a SVG rendering option (selectable from the context menu). posted almost 2 years ago distler 80 posts Forum: Instiki – Topic: MathJax 2.0 The latest commits, to Instiki, upgrade it to MathJax 2.0 (from 1.1). This loads (a little) faster, and also sports a SVG rendering option (selectable from the context menu). posted almost 2 years ago admin 57 posts Forum: Instiki – Topic: S5 vertical alignment I don’t know of a totally robust way to do it. My CSS-fu is weak. But Test Vertical Alignment ------------------------ This is centered on the slide {: style="margin-top:25%;text-align:center;} is a pretty good approximation to what you want. posted almost 2 years ago admin 57 posts edited almost 2 years ago Forum: Instiki – Topic: Bugs And another one, this time in how maruku parses its meta-data. This was actually only a problem for IALs attached to 
•  elements. Fixed in the latest Maruku. (This commit gives the complete solution. Its predecessor was only a partial fix.) (N.b.: Maruku is now unvendored, so a ruby bundle update will pull in the latest version from Github.) I’m unable to run the inbuilt SVG editor on my computer (running Mac OS X, Lion). Works fine for me under Lion. (I haven’t updated to Mountain Lion, so I can’t make any promises about that. But I’d be surprised if there were any OS dependence of this; it ought to be a function of the Javascript engine in your browser. Or perhaps I misunderstood: were you running the server on Lion, or just the client?) posted almost 2 years ago Andrew Stacey 118 posts Forum: Instiki – Topic: Bugs And another one, this time in how maruku parses its meta-data. It would seem that not leaving a space at the end of {: #identifier} means that the } gets into the identifier. Presumably this is the case here as well: What’s the id of this element? I get: 
• What’s the id of this element?
 in the source. posted almost 2 years ago Andrew Stacey 118 posts Forum: Instiki – Topic: Bugs I’m unable to run the inbuilt SVG editor on my computer (running Mac OS X, Lion). The window launches but none of the icons are present and although the buttons highlight when I hover over them, nothing happens when I click on one. This is with Firefox, Chrome, and Safari. Not sure what additional information you would like on this. posted almost 2 years ago cameron smith 1 post Forum: Instiki – Topic: S5 vertical alignment I apologize if I missed it somewhere else, but how do you specify that the content on each slide in an S5 slide show should be vertically centered? posted 2 years ago jl345 6 posts Forum: Instiki – Topic: Bugs I tried a little test case… $cat subtest.rb #!/usr/bin/env ruby puts '/some/other/string'.gsub( '/some/other' + File::SEPARATOR, '' ) puts '/some/other/string'.gsub( Regexp.escape( '/some/other' + File::SEPARATOR), '' ) puts '/some/other/string'.gsub( Regexp.new( Regexp.escape( '/some/other' + File::SEPARATOR ) ), '' )$ ./subtest.rb string string string $ruby --version ruby 1.8.7 (2012-06-29 patchlevel 370) [x86_64-openbsd]  I believe that my first and third examples are both correct and equivalent, going by official docs. The second example works, too, in this case, because a forward slash is apparently not one of the characters escaped by Regexp.escape(), which is curious, because now I am unable to reproduce the error that occurred in the rake task before I altered the code. So I’m more and more confused. posted 2 years ago distler 80 posts Forum: Instiki – Topic: Bugs Hmmm. Both look wrong. What I think we want is: table_name = f.gsub( Regexp.new(Regexp.escape(Rails.root.join('dump','fixtures').to_s + File::SEPARATOR)), '').gsub('.yml', '') The point being that the output of Regexp.escape is a (properly-escaped) string which is suitable as input to Regexp.new. posted 2 years ago jl345 6 posts edited 2 years ago Forum: Instiki – Topic: Bugs --- instiki-0.19.4/lib/tasks/fixtures.rake.orig Sat Jun 30 19:40:02 2012 +++ instiki-0.19.4/lib/tasks/fixtures.rake Wed Jul 18 01:33:06 2012 @@ -74,7 +74,7 @@ task :import_all => :environment do ActiveRecord::Base.establish_connection Dir.glob(Rails.root.join('dump','fixtures',"*.yml")).each do |f| - table_name = f.gsub( Regexp.escape(Rails.root.join('dump','fixtures').to_s + File::SEPARATOR), '').gsub('.yml', '') + table_name = f.gsub( Rails.root.join('dump','fixtures').to_s + File::Separator, '').gsub('.yml', '') puts "Importing #{table_name}" import_table_fixture(table_name) end  That’s what I have anyways, but be careful, because somehow I got File::SEPARATOR in the wrong case in my bumbling around. I guess I got lucky: File::Separator is defined too, so no harm done. posted 2 years ago distler 80 posts Forum: Instiki – Topic: Bugs If you’ve found a mistake in the rake task, please send me a patch. posted 2 years ago jl345 6 posts Forum: Instiki – Topic: Bugs Ahh! I figured out what went wrong with my PostgresQL import. The tables were just fine in fact; just the last sequence numbers for all the primary keys had all gotten set to one for some reason. It worked fine once I got the sequence numbers adjusted to the last row in each table, so now my installation of Instiki appears to be working great on PostgreSQL. Again, Instiki is an awesome wiki, and I’m already using it to take math notes and such for stuff I have to learn. posted 2 years ago jl345 6 posts Forum: Instiki – Topic: Bugs Hi! I was experimenting around, trying to migrate this wiki to PostgreSQL 9.1.4, following your instructions, and I think there was a little bug in instiki-0.19.4/lib/tasks/fixtures.rake, line 77, where it looks like a string was escaped for a regular expression, but then it was being matched as a literal string with all the extra backslashes. After I think I more or less fixed this, I was able to run $ env RAILS_ENV=production bundle exec rake db:migrate --trace $env RAILS_ENV=production bundle exec rake db:fixtures:import_all --trace Now my database has all the tables in it, populated with rows, and I can view the pages, but when I try to edit a page, there is an error, because it looks like the primary keys were not set up properly on these tables, so I’m still trying to figure this out. Any ideas? (I think I need to make sure there is utf8 support, too…) Thanks! posted 2 years ago jl345 6 posts edited almost 2 years ago Forum: itex2MML – Topic: weird math fonts I didn’t mean to do that, but you like to make the forum better and better, so all’s well that ends well, I hope… With the STIX fonts, those letters do all look the same, in the curlier script. *** However, I think part of the problem is that the calligraphic BEFHIKLM live in a totally different area of Unicode than the other calligraphic letters. Your ”ℬ” at U+212C certainly doesn’t immediately follow the ”𝒜” at U+1D49C. The very next symbol after ”𝒜” is ”𝒝” (undefined), followed by ”𝒞” and ”𝒟”, because the Unicrats who designed these things in their infinite wisdom ensured that only a portion of the “calligraphic” alphabet was put in a different codepage on an alternate plane of existence, where some fonts may or may not even have glyphs, and the glyph may very well look different, because there is absolutely no assurance in Unicode of any consistency in the way fonts are going to be applied across such vastly different planes of the code space. Why isn’t it possible to put real ASCII letters in a calligraphic font? Seems like it should work but it doesn’t, in my browser anyways:  Probability Space Ω F P  posted 2 years ago distler 80 posts Forum: Heterotic Beast – Topic: MySQL Gotcha If you’re going to use Heterotic Beast in production, you need to be running MySQL 5.5.3 or later, and follow the advice in this blog post. Otherwise, the lack of support for Unicode will come back to bite you. posted 2 years ago distler 80 posts Forum: itex2MML – Topic: weird math fonts P.S.: Congratulations on figuring out how to make this page ill-formed! It took a bit of work to fix the issue. posted 2 years ago admin 57 posts edited 2 years ago Forum: itex2MML – Topic: weird math fonts Perhaps you need to install the STIX fonts (see here for some slightly out-of-date, but still useful instructions). I see those calligraphic letters all set in the same font. And, moreover $ℙ$ and $ℚ$ are set upright (as, for that matter, are $𝔸$ and $𝕓$). Alas, what you see is strongly-dependent on what fonts you have installed. In more detail: On my system, ℬ (U+212C) is available in STIXGeneral, Apple Symbols and Arial Unicode MS. But 𝒜 (U+1D49C) is only available in STIXGeneral. In current versions of Firefox, I believe the default value of font.mathfont-family is MathJax_Main, STIXNonUnicode, STIXSizeOneSym, STIXSize1, STIXGeneral, Asana Math, Symbol, DejaVu Sans, Cambria Math so the version in STIXGeneral is what I see. posted 2 years ago jl345 6 posts edited 2 years ago Forum: itex2MML – Topic: weird math fonts Maybe it’s just general persnicketiness on my part, but why do $\mathrm{ℬℰℱℋℐℒℳℛ}$ appear (in Firefox and rekonq) in a different type than the letters $\mathrm{𝒜𝒞𝒟𝒢𝒥𝒦𝒩𝒪𝒫𝒬𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵}$? And how can I get a letter like $ℙ$ or $ℚ$ to stand upright like $\mathrm{ℙℚ}$ but by itself without getting italicized? (Sorry for the new username. I lost my password and for some reason Yahoo can’t get mail from the forums.) posted 2 years ago jl344 4 posts Forum: itex2MML – Topic: Bugs Good enough then and thank you. I thought $X_a b$ was producing an unacceptable space, but that was just a Firefox peculiarity. posted 2 years ago admin 57 posts Forum: itex2MML – Topic: Bugs That’s a “feature”, not a bug. As described here, $ab$ is a single token in itex (tranlated to ab); $a b\$ are two tokens (translated to ab`). MathML is semantically-richer than (La)TeX, and this convention gives you the ability to enter multi-character tokens, which will be interpreted as such, when translated to MathML.