Random musings from danvk


  1. Steve Madancy said,

    June 29, 2008 at 11:22 am

    Hi Dan,

    Just wanted to drop you a note to let you know how much I appreciate your iTunes track parser script (which I downloaded from Doug’s Applescripts for iTunes). I consider it an absolute necessity for creating any kind of large-scale iTunes music library.

    Although I see that it’s been more than 3 years from your last update, I’m hoping that you’re still interesting in maintaining the script. If so, I have a feature that I’d love to see incorporated into the script: support for the “sort” parameters such as “sort name”, “sort composer”, etc. that were introduced into iTunes 7. There is no easy way to access these fields in an automated way, and using your track parser on those fields would speed up the process immensely.

    All the best,

    – Steve Madancy

  2. Stefan Nowak said,

    February 3, 2009 at 5:22 am

    Bug Report: Perl expressions in Track Parser 1.3 result in AppleScript Error

    Goeden dag (Good day) Mr Vanderkam! :-)

    I am using your iTunes Track Parser 1.3, and stumbled across a problem.
    Using the scanf style regular expression on song names works fine!
    But using the perl regular expression on song names does not work, both your predefined ones and also my attempts to create new ones.
    I always get the AppleScript error:

    Cant get every item of “”

    As the quotation marks often matter quite strongly in programming languages, it is important that I tell you the correct quotation marks. Unfortunately I cannot copy the error text, but at least I can attach a screenshot, but also there it is hard to really see which kind of quotation marks there are. I hope you can read it properly.

    I have about 80 clips (from a humor radio show) which are all named in the scheme:

    Show Name DDMMYY

    and I wanted to rename them to:

    Show Name YYMMDD

    so that they properly sort by date.

    So I developed this RegEx:

    s/Show Name (\d\d)(\d\d)(\d\d)/Show Name $3$2$1/g

    My software environment:

    Track Parser 1.3
    Mac OS X 10.5.5
    iTunes 8.0.2
    Applescript, installed Editor version is 2.2.1, don’t know how to find out the version of the interpreter.
    perl (revision 5 version 8 subversion 8)


    Originally I sent this bugreport to you via email, but it bounced, therefore I now try it through a website comment. In case you need the attachment, please request it at the email address, which I specified (hidden to the public).

  3. saLOUt said,

    June 8, 2009 at 1:49 pm


    hope this isnt be misplaced here…

    I tried the python and ruby code from http://danvk.org/josephus.html
    with these results on my linux system with an up-to-date opensuse:

    RUBY, n= 200 !!!, m = 3:
    Person #128, alive

    PYTHON, same parameters:

    File “python.py”, line 21, in kill
    if self.alive == 0: return self.succ.kill(pos,nth,remaining)
    RuntimeError: maximum recursion depth exceeded

    Things changed… you can chose the new winner.

    Greets saLOUt

  4. onetimejunk1 said,

    August 5, 2009 at 12:58 am

    I have feedback for your Track Parser 1.3.1 script I want to email you however your readme listed email address and other simple logical possibilities bounce – please email me back and I’ll resend my feedback.

  5. Vitit Kantabutra said,

    November 17, 2009 at 8:16 pm

    Thanks for your post comparing Perl/Ruby/Python. I’ve run into the same problem with Ruby’s puts as you have. I tried to find documentation on puts that would explain this but haven’t found it so far. Here, however, is my best guess… Ruby is a strongly-typed language, and since it expects only strings to be concatenated with other strings, it doesn’t allow concatenating a String with a Person, or whatever non-String object you were trying to concatenate with a String. However, if you were to pass a Person object directly to puts, that may be OK. It is quite imaginable that puts first tests its argument by calling the “.class” method, then convert the object into a String if it isn’t already one. Just my guess though.

  6. Spencer Bliven said,

    December 9, 2009 at 2:53 pm

    Yet another Track Parser comment:

    I ran into the same problem with regular expressions as Stefan Nowak, and wrote a patch for your script that seems to fix it. This doesn’t seem the place to say more, but feel free to contact me if you’re still updating it.

    Twitter: antidemagogue

  7. Dave Inman said,

    January 27, 2010 at 5:11 pm

    I liked your Ruby, Perl, Python examples of the Josephus problem.

    I ran each myself under Scientific Linux 5 with n=100
    for the number of soldiers. Neither Ruby 1.8.5 nor 1.9.1p243 died of stack ailments. Perl 5.8.8, too, ran fine. Python 2.4.3, however, died of stack ailments. With n=85 Python ran. All but Ruby 1.9.1p243 were 64-bit executables.

    I suspect some time has passed since your own tests were made and things changed. Thought you might
    like to know.

  8. Richard said,

    August 3, 2010 at 9:47 am

    Hi Dan;

    I’m very impressed with your high resolution Buddhabrot render as I have just completed my own as well. I wanted to ask you what three RGB iterations you used for the high res one so that I can try to reproduce something similar.

    You can read more about mine at: http://www.richardrosenman.com/project/?cid=224

    Again, great work!


  9. Nathan said,

    September 9, 2010 at 3:54 pm

    I just stumbled onto your Perl/Ruby/Python thing at http://danvk.org/josephus.html and noticed that you prefer to use tabs over spaces to indent, and dinged Python for not allowing that. You can un-ding Python; tabs are perfectly legal. The only thing you can’t do is mix tabs and spaces for indentation, which is nuts anyway.

  10. Chitranjan V said,

    October 2, 2010 at 10:30 am


    Do you have catalogue of all functionalities or features or capabilities covered in libraries?
    If so can you let me know where I can find it? and
    if not, can you create one?

    I found draggable and sortable tables functions which was nice and quite useful.

    Thanks and regards
    Chitranjan V

  11. Alan said,

    November 29, 2011 at 11:39 am

    Hi there,

    LOVE YOUR OLD SF org site. Can you email me so I can ask some questions about how difficult it would be to set up the same thing or something similar for our Belvedere Tiburon Historical society? Thanks alot. Alan

  12. Miguel said,

    December 15, 2011 at 7:06 pm

    Hi Dan,

    Hope you’re doing well! My name is Miguel Palma and I am contacting you on the purpose of integrating your OldSF project into our Augmented Reality (AR) browser “junaio.”

    I know the images are owned by the San Francisco Public Library, but was wondering if you could give insight on how you got access to the images for free? We’re interested in doing the same, then mapping it out using an AR browser.

    Please let me know if you’re available to chat and trade notes. Would be great to hear from you.

    Miguel Palma

  13. Brian Estes said,

    August 17, 2012 at 5:50 pm

    I was looking at your Perl/Python/Ruby page (http://danvk.org/josephus.html) and see your comment about Ruby syntax. I’m sure you’ve learned this by now, but don’t see a note, so here goes.

    puts “Winner: #{winner}”

    winner = first.kill(1,3,n)
    # If I use puts “Winner: ” + winner, I get an error:
    # in `+’: failed to convert Person into String (TypeError)
    #puts “Winner: ” + winner
    puts “Winner: “, winner

  14. Bruce said,

    September 25, 2012 at 11:57 am

    In this one http://danvk.org/josephus.html

    Why Ruby code is not working:

    If you use puts “Winner: ” + winner, but String class does not have a method/operator + for adding a Person class. winner.to_s will not be called.

    Ruby never do auto type conversion, even for numerical types.

    And it is correct that Ruby official interpreter is not good at deep stack.

    Ruby coding is really enjoyable to me too, but sadly it is not widely accepted in the industry so I rarely used it now :(

  15. KingStakh said,

    November 6, 2012 at 4:29 am

    Good day! I want to ask your design for the site oldsf.org. Can I buy a license for this development. I have been collecting old photos of my small town in Belarus, has a large collection and I want to put it on the internet. I really liked your solution to this problem in your project. Design I’m going to do myself.

  16. Rutu said,

    December 7, 2012 at 3:21 pm


    Just wondering if there is any way to still use lmnopuz? I’ve been on a wild goose chase through the internet for the past hour or so trying to find interactive puzzle sites….you said it lmnowave worked on Google shared spaces….but now that’s incorporated into their hangouts….is there still a way to use lmnowave? Please let me know – I’d really appreciate it!

    Rutu ^__^

  17. Jenni Piccinone said,

    December 9, 2012 at 6:34 am

    I’m still learning from you, but I’m trying to achieve my goals. I absolutely liked reading all that is posted on your blog.Keep the tips coming. I loved it!

  18. Joshua Singer said,

    January 31, 2013 at 3:57 pm

    Thank you for Old SF – great stuff. Have been waiting for someone to geo-ref all those photos (really!)

    One correction though – you have many photos of SF State Teachers college located at the current SF State campus. The current campus is only since 1953. The original location was downtown at Waller and Buchannan.

  19. ramanjaneya gupta said,

    July 26, 2013 at 6:39 am

    hi,my table is in under div tag it set overflow:scroll then it is not working can u help me

  20. Zack said,

    November 8, 2013 at 4:55 pm

    I have been looking for quite some time for Boggle statistics and data that is like the data you have provided.

    I would love to be able to get in touch with you for more extended sets of data for a project I am working on.

    Please get ahold of me, my e-mail is ExplosiveDuck@gmail.com

    Thank you so much!

  21. Ben G said,

    November 15, 2013 at 6:50 pm

    Hey dude,

    I’m a huge fan of OLD SF. Shot an email through the contact form there regarding an SF history project I’m doing.. let me know if you got it/know who I should talk to on it


  22. Mike Hockurtz said,

    January 30, 2014 at 8:45 pm

    About Track Parser:

    Dan, where are the custom scripts PHYSICALLY located?

    I’ve got dozens of scripts (love your script, BTW, it’s indispensable to me, which is part of the urgency) and I have been on Snow Leopard and iTunes 10 until now. I am required to upgrade to Mavericks (and iTunes 11) by tomorrow so I can use this stupid new software that only runs on Mavericks.

    It’s not in iTunes, and I looked in /Library/Application Support, but without some kind of name, I can’t even Spotlight them so they can be copied to the new disk.

    If there’s no resolution, I plan to keep the Snow Leopard drive in its own case and boot to it for personal stuff. I’d much rather just figure this out. :-)

    I’d appreciate your help. Really just need to know where the “01 – Beatles – Taxman” stuff is so I can migrate it to the new disk.

    Thanks in advance.

  23. Alexander said,

    February 4, 2014 at 1:07 pm


    I’ve used your algorithm for converting hexadecimal and decimal numbers of arbitrary position, and extended it to work for binary and octal bases aswell as part of my conversion project (see noseglid/canumb at github).

    I just wanted to contribute a small bit, if you initialize ‘outArray’ in your ‘convertBase’ function to ‘[ 0 ]‘, rather than an empty array ‘[]‘, it will work for the special input 0 aswell. As of now that returns undefined.

    Take care.

  24. Burton Lourence said,

    June 27, 2014 at 12:32 am

    I have to tell you that it’s hard to find your articles in google, i
    found this one on 21 spot, you should build some quality
    backlinks in order to rank your site, i know how to help you, just type in google – k2 seo tips and tricks

  25. Flynn said,

    September 11, 2014 at 11:25 pm

    I read a lot of interesting posts here. Probably you spend a lot of time writing, i know how
    to save you a lot of work, there is an online tool that creates
    high quality, google friendly posts in seconds, just search in google – laranitas free content source

Leave a Comment