David Yip's Journal
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
David Yip's LiveJournal:
[ << Previous 20 ]
| Monday, January 2nd, 2006 | | 6:23 pm |
interesting developments Microsoft donates $25,000 to Creative CommonsWow. Nice. If Microsoft next donates to, say, the FSF, I think that’ll cause a small portion of the Free Software community to implode with confusion. Obviously, Free Software and the Creative Commons aren’t that closely intertwined, but they do share some similarities, and (it appears that) many people associate one with the other. (from digg) | | Wednesday, December 28th, 2005 | | 5:30 am |
sundry
- Congratulations, Ted!
Working with newborns (and children, for that matter) can indeed be mysterious. An anecdote: one of my cousins is autistic, and although he's made (and is making) great strides to deal with autism, I still find that communicating with him can be a brain-twisting affair.
I think watching children succeed offers infinitively more joy than any aspect of closed-source software, though, especially when you know you've had a hand in the matter. :)
Best of luck to you and Stephanie!
- Artemis is amazing: there's a reason why I've listened to various tracks off of "Gravity" 85 times in the past two weeks. :) Check 'em out.
- I'm working on Inkboard again; the branch based on Bob Jamison's cross-platform Pedro Jabber mini-client (Pedro source available at http://inkscape.org/win32/) is coming along nicely.
I'm moving really slowly, and I apologize for that. Unfortunately, schoolwork and my senior project prevent me from working on Inkboard during the academic year, except during breaks.
It's not much of an excuse, but it's what's happening. I'll try to move faster...
| | Sunday, December 11th, 2005 | | 10:08 am |
on guile As far as documentation of the scm interface is concerned, the current position is that it is a bit confused, but that the situation should improve rapidly once the 1.6.0 release is out. -- guile reference manual "Confused" is an amazing understatement: the documentation barely lines up with release 1.6.7. Even for basic stuff (well, for Guile's supposed purpose, you'd think it be basic) like converting Scheme strings to C strings, you've got to dig around in Guile mailing lists to get the right calls, lest you be presented with error messages like frontend.cpp:103: error: cannot convert `const char*' to `scm_unused_struct*' for argument `1' to `scm_unused_struct* scm_string(scm_unused_struct*)' which doesn't mean "wrong type" so much as "this call doesn't really exist, but we left it in anyway". When I first discovered Guile, I thought it was a great idea, and I wondered why I didn't see it in more applications. Well, now that I'm using it myself for a rather small-scale application (elementary raytracer scene description language for a Computer Graphics assignment), I think I know why. Current Music: Gravity - Artemis - Prayer | | Thursday, November 24th, 2005 | | 8:08 pm |
playing around (extracted from my other LJ) If anyone wants to play around with this, feel free to do so. It's a quick CPS transformation of a memoized Ackermann function calculator. It can calculate up to (A 4 1) in reasonable time, but anything beyond that, it seems, is intractable. I don't really know why I did this, but it was fun. :) (Well, okay, I have some idea -- as I wrote on my other LJ, I like big numbers. I'm not sure what caused me to write this all of a sudden, though.) [edit: Yeah, there's the obvious speedups to be had by making use of the closed-form solutions given on the MathWorld page -- no idea why I didn't put those in sooner. Fixed.]
(define buf ())
(define ack
(lambda (x y k)
(let ((val (assoc (list x y) buf)))
(if val
(k (cdr val))
(cond
((zero? x) (k (+ 1 y)))
((= x 1) (k (+ 2 y)))
((= x 2) (k (+ 3 (* 2 y))))
((= x 3) (k (- (expt 2 (+ 3 y)) 3)))
((zero? y) (ack (- x 1) 1
(lambda (v)
(set! buf (cons (cons (list x y) v) buf))
(k v))))
(else
(ack x (- y 1)
(lambda (v)
(ack (- x 1) v
(lambda (v)
(set! buf (cons (cons (list x y) v) buf))
(k v)))))))))))
(define A
(lambda (x y)
(ack x y (lambda (x) x))))
| | Sunday, October 16th, 2005 | | 9:32 am |
Plural Memefic: This post tells part of a story. You can continue this story on your own website or blog. Simply:
- Put these instructions at the top of your post.
- Link to the post you’re continuing from (you can start from any post you like; it doesn’t have to be the “last” one).
- Write as little or as much as you like; you should dedicate it to the public domain so other people can continue the story.
- Post it.
- If other people continue the story from your post, you may (at your discretion) append links to those posts as a service to the reader.
Alright, here goes. I'm not much of a writer, so this will most likely come off as rather trite and boring, but hey, we've all got to start somewhere. I might revise this as the day goes on. PluralPrevious post: The Prize by MenTaLguY This post is dedicated to the public domain.Sybil's eyes widened as she crept closer to the box. It was as a vacuum, drawing her in; it took her a superhuman effort to break free of the stone's maw. Pure ...?, she said, in a cracked, fascinated voice. ...Chthonium, Victor replied. The quiet awe with which he had initially announced his discovery had been vanquished by the strong pride of a man presenting the spoils of war to his lady. Victor's eyes remained fixed upon the stone. Beautiful, isn't it? Sybil enthusiastically agreed. Her taste for natural beauty had been finely tuned by years of adventure and discoveries of new, exotic formations. Yet few things had captured her attention so quickly, so completely. It's incredible, she said, turning to smile at Victor. I suppose your journey was quite a success? Indeed it was! exclaimed Victor, now ebuillent. He tore himself from the table to face Sybil. I'm convinced that there must be more where I found this little stone. It would be foolish of us to not -- and here he pounded his fist in the air, almost hitting a surprised Mr. Crouchfeld in the stomach with his elbow -- explore further! There was a short interlude as Victor's enthusiasm boiled down -- still quite excitable, but safely contained. Mr. Crouchfeld, having narrowly avoided a battle for air, composed himself and walked over to Victor's right side. It's certainly an amazing find, Victor, Sybil said. She, too, was quickly being hooked. An exquistely beautiful stone, with some rather peculiar properties. But I know you aren't one to grow this excited over mere surface features. What's on your mind? I'll discuss that with you later, love, Victor said, drawing an expression of ire from Mr. Crouchfeld. Someday, I might tell you, too, he stated as an off-hand remark. For now, though, I need to secure this. Come with me, Crouchfeld! he said, as he headed for the stairs. Mr. Crouchfeld grunted and turned away to follow him. Sybil waited until the two men had cleared the flight of stairs. Then she went back to the desk, opened the drawer, and resumed her examination of the object that had occupied her attention. It was a small, slightly weighty box covered in velvet felt, a couple of inches in each dimension. It was left to her by her father, who, like her, frequently ventured out into the world in search of its minerological mysteries. He had left that morning on another exploration. She opened the box. It was lined with an inky black felt, much like the small boxes in which small jewelry is stored. There was, however, no jewelry in this box. She stared at it, momentarily dumbfounded. What could cause it to weigh so much? It's just an empty box.The afternoon light crossed the box, and Sybil now saw what was inside. Rapidly condensing water drops lit a rough spherical surface; she was entranced with the prisms' dance in the void. | | Tuesday, October 11th, 2005 | | 4:37 am |
gahaagagagaaggagagagagggggh Almost done with take-home midterm exam for Design and Analysis of Algorithms.
GAH.
On the plus side, fall break is coming up, which means I'll actually have some time to do stuff besides schoolwork. Like Inkboard.
It's really quite annoying when you're tired enough to sleep -- but can't. | | Sunday, September 25th, 2005 | | 7:40 pm |
| | Wednesday, September 7th, 2005 | | 2:16 pm |
not dead I'm still here, and still working on Inkboard, just at a slower pace. Classes have started up again, so homework and the like have taken higher priority. One pondering: Last night I picked up a (free!) copy of the Proceedings of the Second Annual ACM-SIAM Symposium on Discrete Algorithms. The first paper I turned to dealt with a problem called the Canadian Traveller Problem, which (as far as I can tell) is like TSP, but with blocked roads. The paper considered several variations, such as roads that would open in a certain amount of time (recoverable CTP), randomized blockages (stochastic CTP), estimating worst-case travel time with an upper bound on blocked roads (k-CTP), and finding the blockage that would maximize travel time from nodes A to B (the "k-Vital Edges problem"). Why is the Canadian Traveller Problem (see http://portal.acm.org/citation.cfm?id=127835 for a PDF of the paper) called the Canadian Traveller Problem? Is the road system in Canada that bad? :P The explanation for the name doesn't seem to be anywhere in the paper or on the Web, and although I suppose it's not terribly important, it's always neat to find out where names for problems come from. | | Friday, August 26th, 2005 | | 4:56 am |
From the things-that-I-can't-believe-I-didn't-dis cover-earlier department: Birthday Song, Requiem, by Lia: http://www.amazon.co.jp/exec/obidos/ASIN/B0002CCN7Y/249-4163735-0017967Lia is one of the "I've girls" (or 歌姫「うたひめ」/ utahime (lit. "song princess"), as they're also known). I've (full name: I've Sound) is a group of Japanese electronic musicians that crank music out with a factory-like level of output. They do music primarily for anime and H-games (well, I've only noticed it in bishoujo games, but everyone tells me otherwise...) Despite (or, maybe, because of) I've's rate of productivity, a lot of it is actually pretty good. As might be expected, it's pretty easy to detect the same instruments, musical devices, and even chord structures/progressions reused in their music, but despite the repetition it's not bad at all. Well, in my opinion, anyway. Oh. The song? Excellent. Uplifting. [Insert more positive adjectives.] Really, quite beautiful. Lia's voice is high-pitched, but not nearly as squeaky as, say, SHIHO's or KOTOKO's, which really enhances the atmosphere of the music -- it makes it much more ethereal than J-poppy. There's some things I would identify as engineering issues - like a guitar solo that gets really, really loud at its climactic point - but those are rather minor points, and I can fix that in Audacity, Cinelerra, or Ardour if it really starts to bug me. I haven't translated the lyrics -- I haven't really had time, and I'm not good enough at Japanese to translate it at a hearing or glance -- but here's a page I found with a transcription. Those of you more knowledgable and/or experienced in the Japanese language can enjoy it: http://www15.plala.or.jp/scp/birthday_song.htmlPlease don't tell me what the lyrics are, though -- I'd like to translate them for myself. (Language practice and all.) I'm not sure if the lyrics are meant to have religious connotations. The inscription on the CD cover (Mark 16:6- 7?), reproduced on the page I linked, would hint at that, especially given the content of the quoted verses, Mark 13-16 (at least), and the song's title, but the Japanese have a habit of using English sentences for their appearence, and not so often for their meaning. (The widespread examples of Engrish are great examples of this.) Guess I'll find out... | | Friday, August 19th, 2005 | | 12:04 am |
U.S. News Ranking
From: [email address redacted]
To: All.Campus@rose-hulman.edu
Congratulations, Rose-Hulman is ranked No. 1 AGAIN!
Because of your dedication, hard work and talents, Rose-Hulman has for
the seventh consecutive year been ranked No. 1 by engineering educators
who responded to the annual survey conducted by U.S. News & World
Report.
Wow. Even with the massive amount of negative publicity generated by internal controversy with Midgley, RHIT is still ranked #1. I don't know how much the ranking really means; the only thing I've found it to be good for is bragging rights. Furthermore, the qualifier kills a lot of value the "we're ranked #1" phrase might have. ("Hey, we're ranked #1 amongst undergraduate institutions that do not offer a doctorate degree! Wahoo!") It's kind of neat, though, to see that campus politics haven't affected at least that facet of Rose. [edit: Two things: 1) I finally set up a Windows development environment for Inkscape. 2) I now see the Inkboard-induced problems people are having building Inkscape on Windows. I know where my time's going to be spent for a while...] | | Tuesday, August 16th, 2005 | | 6:31 am |
well, it might even be Inkscape related Anyone have any good recommendations for a pen tablet? In order of importance, here are the use cases:
- I do a fair bit of video editing and compositing work in my spare time. One task that comes up often is vector masking/object extraction/whatever you want to call it: basically, selecting regions for extraction over a range of frames. Sometimes you'll get lucky and be able to do this with (say) chroma or luma keying, and sophisticated packages (i.e. discreet combustion or After Effects' keylight) can do a pretty good job, but sometimes there just isn't any substitute for the human touch. (That, and I don't have a copy of combustion or After Effects.)
Masking with a mouse is possible, but it's like trying to draw with a crayon stuck in a block of wood. (Of course, you can edit what you've drawn, but it still takes a while to tweak all the curve handles and such to get it right. And then you get to tweak the mask for the NEXT frame in the same fashion.)
- I like to doodle mechanical things. I think this came out of my obsession with Mark Kistler's Draw Squad while in grade school, and it'd be cool to have a way to get these things into the computer without going through the scanner.
I'd really like Linux and Windows compatibility, in that order. I've been looking at the Wacom Graphire3 4x5 -- it's fairly cheap, and I think it'll do what I need it to do. However, I'd love any ideas or comments.
[edit: Wacom's tablet wizard thingy says that I should get the 9x12 Intuos3...
...for only $449.95!
Yeah. How about no?] | | Tuesday, August 9th, 2005 | | 4:25 am |
Here's hoping for Discovery's safe return. | | Monday, August 8th, 2005 | | 5:06 am |
On a suggestion from mental, I've reworked a good deal of Inkboard's internals to watch for commits to the undo log instead of observing changes to document nodes directly. Most stuff now works (again), with some exceptions. Hopefully I can sort those out, clean up the code, and commit this new version soon. The Inkboard protocol is now substantially different and incompatible with the old Inkboard protocol, but I'm not going to worry about changing the protocol version just yet, as the Inkboard code hasn't really had a public release beyond CVS. The final remaining challenge, really, is the design and implementation of a reliable synchronization model. The current (naïve) synchronization model works fairly well for two participants and can extend to more, but it scales poorly. In the Inkscape Jabber conference room, Arnia provided me with a link to the Palimpsest revision control data model ( http://cs-people.bu.edu/dgd/thesis/original_paper.html), which seems like a promising candidate for Inkboard's undo system. By reading SoC blog aggregators I came across another paper on this topic, by Chengzheng Sun et al: Achieving Convergence, Causality Preservation, and Intention Preservation in Real-Time Cooperative Editing Systemshttp://www.it.swin.edu.au/personal/yyang/papers/ACMTOCHI1998.pdfIt's not really a long paper, but it's not the sort of thing that I can fully comprehend at 4 AM, so I'll hold off on commentary. I don't yet know how either of those models in Inkboard can be implemented. For now, though, I need to fix existing bugs with the new model -- concurrent modification issues, although extremely important, are fairly low on my priorities list. Sloppy handling of concurrent modification issues can make a collaborative editing tool tiresome to use, but a buggy collaborative editing tool is just unusable. (Though, I suppose that one could argue that sloppy handling of concurrent modification IS a bug...) | | Sunday, August 7th, 2005 | | 5:55 am |
when bug hunts make you feel really dumb ...you know, the amount of damage that a missing break; in a switch block can do is terrifying.
It's also rather mortifying when you discover that the root cause of an elusive document synchronization bug is what basically amounts to a typo. | | Friday, August 5th, 2005 | | 5:24 am |
I recently found out that Sufjan Stevens and the Illinoisemakers performed live at the nearby Bluebird Theater not too long ago. Actually, just a little under a week ago. I really wish I could have caught that. The man and his group are absolutely incredible artists: they fuse folk, rock, and minimalist (!) musical styles, among countless other genres, into something which is extraordinarily detailed, varied, beautiful, and addictive. The group's latest album, Illinois, represents their abilities quite nicely. Ah well. If Sufjan continues his plan to produce an album for all fifty states of the USA, I'll hopefully have another chance. -- Working on thinking up a better undo/redo implementation for Inkboard...developing a proper undo/redo for interactive, collaborative document editing in which all participants have full modification rights on all objects is, I've found, quite a tricky proposition. I'd blog about ideas if I had any that seemed promising... | | Monday, August 1st, 2005 | | 1:48 am |
garbage and glory (well, sort of) With a great deal of help from MenTaLguY (the guy's amazing), I've managed to convert the node-tracking mechanism to use the Boehm-Demers-Weiser garbage collector. It's nice: it runs quite fast, and I've been able to greatly simplify the code, since I don't really have to explicitly delete anything. It's not so hard, once you grok what's going on...it took me a while to do that, but I think I get it now. I'm going to convert some other classes soon; we'll see how that goes. Though, first, I should probably commit what code I have, before I begin breaking more of it.
On a completely different note: I've been keeping up with LOVELESS for a while, but only managed to watch the last episode recently. It's weird. I don't know if the weirdness was intentional or was due to budget problems (which seems to be a common situation in TV anime productions) but...yeah. Whoa. Well, it's the last episode...for now, it seems. Check the last sentence of http://loveless.tv/cgi-def/admin/C-010/diary/tdiary/index.rb?date=20050627: 皆様のチカラが、再び、このスタッフを集結させる事ができるから‥‥。ではでは‥です ☆ everyone's power - [once more - [this staff (make gather)]-thing] can do [because] [is] = (roughly) "it's all your power that can make this staff gather come together once more, so..." So, I guess that means that if people show sufficient interest in a second season, tv asahi will do it. How to show that interest? I'm not sure, though financial support usually works pretty well. This isn't meant to be advertising. If anything, it's uncontrollable fanboyishness. Current Music: LOVELESS MAXI-single opening - Okina Reika - Tsuki no Curse | | Wednesday, July 27th, 2005 | | 1:27 am |
sessions, slashdot, surrealism Session files now work...sort of.
The problem I've been running into, like every other problem, is a referential integrity issue -- this time, not between documents, but between sessions.
Here's a simple example. Alice and Bob are in a session:
1) Alice creates a gradient. This gradient, in current versions of Inkscape, will be assigned an ID. Call this ID grad. Assume that Alice does not modify this ID attribute. 2) Alice sets the fill of a path to grad.
Now Alice and Bob finish up their session. Later, Alice wishes to replay the session. She opens up the session file, and everything is playing back correctly. However, when she reaches the time when she adds the gradient -- surprise! -- it won't appear as the star fill. Actually, the star will appear to have no fill.
The problem is that the gradient fill, having no id attribute, was assigned an automatically generated ID during session replay -- say, grad2 -- and the Inkboard session file player can't detect this. It still thinks the ID of the gradient is grad, because that is what is written in the file.
How to fix this? I'm not really sure what the best way is. The concept is simple: for each node reference in the SVG tree, cross-reference it to the Inkboard node ID during session logging. When we load up the session file, we can load that table, which wil enable us to rename node references before interpreting them. Problem solved.
Well, almost. The implementation isn't so simple...or, at least, I haven't yet thought of a simple way to do it. I'll need to think about it a bit more.
Comments appreciated. (Hopefully, I wasn't totally incoherent up there. If you've got some ideas but aren't quite sure what I'm doing, please drop me a line anyway. I'd be happy to explain it a bit further, as long as you give me some time -- I'm going out of town again soon.)
Ooh, cool, I've CVS access now. I'll commit the Inkboard code after I finish its documentation and smooth out what rough spots I can.
Inkscape v0.42 made slashdot, which I find to be a little surreal. | | Sunday, July 24th, 2005 | | 6:24 am |
this needs (more) advertising One of the nice things about having a blog syndicated in multiple feeds is that it makes it easier to advertise cool stuff :) For example, this bit of Inkscape amazingness by ScislaC: http://www.deviantart.com/deviation/13601477/--- Inkscape stuff: Nothing new, feature-wise; a lot of the stuff I did today was internal. I decided to clean up and simplify the message queuing / message dispatching code: it was one of the last things that I had left unchanged from the original Inkboard codebase, and although it worked it had some odd bits of cruft that didn't really do anything. Those have been removed, and the node/queue setup converted to a more modern C++ coding style. In particular, using STL containers in the queue class cut the queue class LOC count down to ~37% of what it originally was. And it's faster, too. Not Inkscape: Really going to be out of town for a week or so; hoping to get some air, sun, etc. during that time. See you all sometime next week, or week after that :) | | Saturday, July 23rd, 2005 | | 6:37 pm |
Whoops, slight schedule mishap. I'm not leaving until tomorrow. | | 5:57 am |
I'll be up at Breckenridge this weekend, so I probably won't be in touch for a few days.
I'll be bringing along my laptop; hopefully I can finish up session file playback and then get back to the problem of presence announcements in chatrooms.
...though, really, the better use of my time might be getting away from the computer for a while... |
[ << Previous 20 ]
|