{May 30, 2009}   gsoc week 1

not a whole lot to report. I got the basic plugin structure written, and then I realised that it made much more sense to write a dummy plugin sooner rather than later, so I did that too. I was about to make Containment try and use it, but that’s next week’s task, so instead I wrote a bunch of notes about it and spent friday working on scripty. :)

I think scripty’s ready for some testing now – but that code is rather scary and I’m sure to have made a silly mistake somewhere (other than the one tsdgeos caught), so I’m gonna see if I can test it locally before letting the real scripty run it.

except, it’s saturday and it’s a beautiful day, so first I’m gonna go to the beach :)

another yummy dinner. :)

I actually woke up this morning from a dream about various things I could cook for dinner. lots of ideas there – lentils, corn, gnocci, and something I’ve forgotten… but somewhere there was also the idea of beans, competing with my craving for salad – and so I decided to try making bean salad. :)

I also made regular salad and corn on the cob, but those are both fairly simple. bean salad I’d never made before. in fact, I’d never even heard of it until a month or two ago when I was in safeway looking for instant dinner and found they make a really nice 7-bean salad.

so, I looked up some recipes, and found a three bean salad recipe. I’m not really a fan of chickpeas, so I used a can of romano beans instead, and some mung beans too (绿豆). those were dry, though, so I tossed a bunch of them in water and let them cook for 40 minutes. while that was cooking I washed some dishes and cleaned the kitchen a bit (I dunno if it’s pancake batter or wax on the counters, but it’s gonna take some scrubbing…)

when I first opened the tim of romano beans, I thought the salad couldn’t possibly work – they were soggy and covered in slime. but I rinsed them well, and all the other beans too. the cans of kidney beans and romano beans were larger than the recipe called for, and I vastly underestimated the volume of mung beans, so the salad was looking rather… green. somehow it looked just fine when it was done, though. :) I didn’t use any extra onion or celery. as for the rosemary and parsley, I’m not sure how you’re supposed to chop those finely – my knife just wanted to push them around – but I got them mostly chopped up and tossed them in. for the dressing I made 1.5 times the amount, and it just vanished into the beans instantly – next time I’ll make twice as much.

once I finally had the bean salad done (at 6pm – a bit more than an hour after I put those mung beans on the stove) I put it in the fridge and started on the regular salad. red, orange, and yellow peppers, a perfectly ripe avocado (I got quite lucky, that shop rarely has any ripe ones), some cherry tomatoes, a prepackaged lettuce mix, and a few slices of strawberry. :) then I tossed the corn in the pot – I love how easy corn is, you just peel it and boil it for 10-15 minutes and that’s it. or you can microwave it in its husk if you’re really lazy ;)

I’d almost forgot to make salad dressing. for that I just mixed some nice balsamic vinegar with olive and flax oil, and added some dill that needed using up.

when the corn was ready I pulled the bean salad out of the fridge (yeah, it was supposed to sit for more than an hour, but I was hungry!) and… well… I took a photo, but this damn laptop isn’t reading sd cards any more. wtf… it seems to be failing piece by piece. :( usb, dvd, webcam, now sd too…

in other news, I’m feeling more optimistic about scripty again :) yay.

well, summer of code officially starts today. :)

I have my git repo. I won’t be starting code today, though. it’s a saturday, and I skipped going to the beach to work on scripty, and I’m going out this evening for once.

the last couple of weeks have been busy. I did do some stuff for summer of code – I got help from #kde-usability in designing a non-scary config UI, and sorted out some other little things. most of the time, though, I was busy with other KDE stuff, and real life.

I’ve been slowly chipping away at the security stuff – now that feature freeze has hit, I can check applets’ behaviour without worrying that it’ll change the next day. once I’ve checked all the applets in kdebase and kdeplasma-addons, I’ll set plasma-overlay (the plasma that runs on the screensaver) to only show applets that are safe. I guess I’ll also have to put something up on techbase about how to make an applet safe; there’s some stuff in plasma’s design/ folder right now.

the other thing I’ve been working on – or staring at – is scripty. well, not just scripty, really; I’m interested in all the translation scripts that use svn commands, because they won’t work so well if a project moves to git ;) the code is only partly documented, it’s a mix of c++, bash, perl and python, and it’s kinda scary. but it’s fun. :) I’ve been spending a lot of time looking at it and asking questions, trying to learn how it works and how it can be made to support git modules as well as svn modules without anything breaking. I don’t have plans to move the translation stuff itself out of svn – one thing at a time – I just want it to be possible for parts of kde to switch to git and still get translations.

last weekend I was out on a sailboat relaxing, and when I came back mattr had picked up the scripty thing. he did a straight port to git (ie, replace all svn commands with git ones) then handed the project back to me – he’s got lots of bugzilla work to do. I finally started writing some code for scripty last night.

I’m a bit frustrated with it today, though. I found some svn externals, and they’re a problem because obviously they can only refer to *svn* repositories, and the best solution there can be right now is to have a script that updates stuff that can be run instead of svn up… but one translator has told me that’s not acceptable. so, well, I might have wasted the last couple of weeks :(

anyways, I guess I should focus on my gsoc project now. plasma mouse stuff… finally we won’t have to have hardcoded contextmenus in all the containments. :) this week I’ll just be getting a skeleton made up based on the wallpaper plugins…

last week I set up my git-svn repos for gsoc, and at first all seemed well. but a few days later, svn decided it wasn’t going to update until it had reclaimed the folders I had converted to git. :P silly svn.

see, I have kdelibs and kdebase checked out from svn, but kdelibs/plasma and kdebase/workspace/plasma are git repositories now. svn didn’t like this. I talked to a guy in #svn who insisted this couldn’t be done and I should give the folder back to svn. I wasn’t going to give up so easily, so I talked things over in #kde-devel… there was this –set-depth and –depth thing in svn update, but the documentation was brief and confusing, so that day I settled on having a separate plasma-git folder and editing cmakelists to compile that instead of plasma.

I wasn’t quite happy with this duplication, though, and something in the back of my mind kept coming back to this depth thing… yesterday I had an idea for how I might be able to use it, and today I googled for more information on the flag, and found it, and tested it, and it *does* behave the way I want. :) in fact it’s slightly easier than I expected.

so here’s how you turn kdelibs/plasma into a git repo without breaking svn for the rest of kdelibs:

cd kdelibs;
mv plasma plasma-svn; #do check for uncommitted data before deleting it
svn up --depth=empty plasma;

now svn will ignore plasma (and plasma-svn unless you explicitly update that). if you don’t have a gitsvn repo yet you can create it in there (git svn clone, if you use a revision # it must be one that touched that part of svn). if you’ve already got a git repo started, you can move it in like so:

mv plasma/.svn plasma-git/;
rmdir plasma;
mv plasma-git plasma

and from then on, you’ll have a hybrid repository. svn up will happily ignore plasma, so remember to git svn rebase it after you svn up. :)

{May 12, 2009}   birthday fun

so I had quite a nice birthday this year :) friday I woke up in boston, and got to meet the other kde-north-america-gsoc students :) I’d left my sunglasses at home, so of course it was lovely and sunny. we spent most of friday chatting and introducing ourselves; there were snacks, and then expensive hotel food (but good food, and I was hungry… and wanted a nice drink on my birthday… the bill was not so pleasant), and then we went off to see star trek. yes, the imax theatre was in a furniture store. we got there over an hour before the movie started, and a line had already formed.

I spent both friday and saturday night reading, so I was kinda tired in hte mornings. oops. :) still, I made it downstairs in time for breakfast.

at MIT we hacked, and talked, and talked some more… US customs had given me a stern warning about not doing work, even though gsoc hasn’t actually started yet, so I figured I was better off looking at Something Completely Different: scripty, the set of scripts that automate translation-y stuff. I’ve been wanting to look into it for a while now, if only to understand why amarok hasn’t moved to git yet ;) the code is kinda scary and a few people have suggested I just throw it away and write something new. I’m not certain I’ll actually have the time to redo scripty, but it’s worth a shot.

satuday afternoon I heard singing in hte hallway, and found an anime karaoke group :) I went back to kde’s room and tried to persuade them to go, but then I got distracted by my computer and they ended up going to dunkin donuts, and by the time I went back to the karaoke room they were packing up :/ another karaoke fail. :P but I still got to chat with some students, and two of them took me down through the basements to a secret little hacker space :) MIT has twisty passages. much cooler than SFU.

eventually we went out that evening, too late to really see the city – especially since it was pouring rain – but we had delicious indian food, and then delicious ice cream even though we were pretty full already (jeff bought mine as a bday present – yay :) :) and then we reached the bowling alley half an hour before closing – just enough time for one game :) candlepin bowling is a lot harder to score points in. I like the small balls, though – much easier for my little arms ;) which reminds me, now that I have a wii I’ve got to get wii fit or DDR or something so that I can play games that’ll trick me into getting a little exercise ;)

as for sunday, it just kinda… vanished. we had to leave MIT at 3:30, because my flight was at 6:05, and a couple of the other students had flights shortly after that. I do remember having burritos on sunday – boston has the most awesome burritos ever. and they sell horchata too, a yummy drink that I’ve only found in one other place so far – the mexican restaurant in china. I took an extra burrito with me on the plane, and ate it in minneapolis, and it was still pretty awesome despite being cold. :)

I remember trying out my new mouse, too. I bought one in the airport on the way over, because it was 50% off and I’m a little tired of the trackpad, but it’s an ugly brick and the defective usb port on the right-hand side of my laptop won’t work with the mouse, so I have to plug it in on hte left and fully extend the cord, which is kinda silly… and I just keep forgetting it exists :) in fact I could be using it right now… if I can find it…

I really wish I could’ve stayed there longer – one weekend is far too short a time to spend with fun kde people. still, it was nice to get home too. I got in late sunday night, and on monday pete cooked a nice dinner and one of the roommates made cupcakes, and they sang happy birthday n’stuff :) there are some nice things about not living alone. :) and I expect cory and devon are still planning to drag me out and get me horribly drunk…

{May 5, 2009}   one last feature

so monday was feature freeze. I spent part of the day looking at the Icon plasmoid, and decided that the only problem it had that wasn’t a bug was too big to deal with in one day. after dinner I remembered that I had one other thing left on hte feature plan… making it possible to paste stuff as well as drag it to the desktop.

for a while it’s been possible to drag arbitrary content onto the desktop and turn it into a plasmoid, but a few times I found myself trying to paste text instead (dragging’s kinda annoying with a trackpad) and sadly it didn’t work. I’d assumed I wouldn’t have time to get to this feature, but there were still a few hours left in the day, and when I looked into the code I found out there was really very little work to be done. :) two hours later I had a patch that made paste do the same thing as drag&drop. whee :)

this’ll be configurable in 4.4, as part of my soc project, but I just didn’t want to wait that long for such a sensible action that takes so little effort.

{May 3, 2009}   more food

so I did the roasted veggies & tofu thing again. :)

last time I think I used two packs of tofu – this time I used three. I also got more veggies, including a small butternut squash. I used less soy sauce and a spoonful of some garlic chili sauce for the tofu – that didn’t turn out so well, they didn’t really soak up *any* flavour. I’m not sure if I just need to use more, or if there’s something else I can do.

as for the veggies, I decided to time how long chopping them took, because I always seem to underestimate that step. :) washing and chopping four medium potatoes took 5-10 minutes. peeling and chopping two yams took ten minutes. peeling and chopping the squash took twenty. I was a bit unsure how to handle that squash – hte peeler didn’t take off all the skin, so I ended up cutting some off with a knife too, and then I had to take out the seeds inside – turned out to be easier to just chop slices away from the outside of the part with the seeds.

washing and chopping four peppers took seven minutes, and so did the bulb of garlic. the onion jason offered to chop – apparently his contacts protect his eyes. :) after that I spent about 5 minutes putting oil, salt, pepper and herbs onto the veggies. there was no fresh rosemary at the shop today, so I tried thyme. plus a bit of dried rosemary. :) yum.

I made the gravy with a little less miso & soy sauce this time, plus more mustard. it was nice, and much milder. somehow we barely had enough though – strange, because last time there was lots of leftover gravy. maybe I just used less soy milk this time, or let it thicken more. or maybe people just ate more. :) we had a guest staying that I’d forgotten about, too, so while we did have leftover tofu and veggies, there was just exactly enough spinach (another thing we’d had more than enough of last time).

I remembered to chop the spinach before washing it this time, and to flip the veggies and tofu. :) unfortunately we have a rather small oven, and I had two pans of veggies and one of tofu, so they weren’t cooking as fast or as evenly as I’d assumed. I ended up shuffling them around a fair bit, and the veggies came out ok, but the tofu suddenly went from barely-cooked-looking to puffing up. oh well, it made some of it a bit tough, but with gravy on top it was still good. :)

instead of tomatoes around the edges, I sliced up some strawberries and apple :) a nice spring plate. it’s kinda funny how rarely fruit is used in meals, because it works quite well.

and this time, I remembered to take pictures. :)

pretty plates:

the hot food:

ready to eat:

{May 2, 2009}   fooooood

so I was going to blog about food again, wasn’t I?
last weekend I was at LFNW, so I didn’t cook. tomorrow I need to cook, but I still haven’t decided what I want.
but the week before my last food post, I made something yummy that I don’t want to forget about. roast veggies, baked tofu and miso gravy on spinach. :)

it was pretty simple, really. I sliced up and marinated a pack of firm tofu in soy sauce (and a tiny bit of hot sauce). I chopped up some potatoes, a yam, a couple of peppers, most of a bulb of garlic, and possibly a onion into bite-size pieces, coated them with oil, salt and pepper, and… I think I used half a pack of rosemary, too. then I put the tofu and veggies onto baking sheets, stuck them in the oven, and started on the miso gravy.

I used an online recipe for the gravy… iirc it was this one. I only used a cup and a bit of water (that way the ingredients fit easily into my measuring jug with the nice spout) and added extra soymilk later. I think I forgot about the pepper, though, and didn’t add any salt as it was *quite* salty enough already.

with that cooking, I forgot to turn the veggies and tofu over (oops), chopped the ends off a bunch of spinach, washed it, and chopped up a tomato or two. I would’ve sliced some avocados but couldn’t find ripe ones that day. by then I think everything was nearly done (roast veggies generally take 40 minutes at 400-ish; here’s a veggie roasting tutorial). I took everything out of the oven, poured the gravy back into the measuring jug (it’s not fun to pour liquids out of a frying pan), and dinner was done. :)

for my own plate I put down a layer of spinach, added a pile of tofu and veggies on top, arranged some tomato slices around the edges, and poured gravy over it all :) I like it when my food is pretty as well as delicious. shame I didn’t take a picture.

hmmm. maybe I’ll do that again tomorrow. or maybe I’ll do mushroom soup. decisions, decisions…

it’s raining today… possibly for the first time in a week. the weather lately has been, on the whole, quite lovely. blue skies and sunshine and cherry blossoms :)

I’ve been hiding inside most of the time, though. there’s always some reason go out in the sunshine for a little bit, but then I’m back at my computer, writing more code. :) it’s really nice to be getting code written again. well, it’s frustrating too at times – but now that it seems to be coming together, I feel good.

assuming nobody objects to my review requests, 4.3 will have configurable keyboard shortcuts for plasma. :) whee. the defaults in 4.3 are completely different from 4.2, but I don’t have to list them, because you can just go into the config dialog and see for yourself. :) the reason they changed is that people kept finding conflicts, and I got sick of trying to dance around whatever shortcuts some random plasmoid might possibly want to use someday, so I made them all emacs-style shortcuts that start with alt+d. now all I have to worry about is something trying to use alt+d (although I have a feeling alt isn’t a good modifier to use; if you have a better suggestion for something that’s unlikely to conflict with anything and isn’t a pain to type, tell me now).

once that’s in, I need to do some cleanup on the kaction creation code, and some actioncollection stuff I’m not quite happy with. I’d be writing that code right now, but it’d be a PITA to keep it separate from this already-getting-big shorcuts patch. as soon as feature freeze hits I have *got* to set up git-svn :P

while I’ve been waiting for a review on the shortcut code, I poked at the sreensaver a bit, changing some text (and discovering that one of my libplasma changes was clobbering text on the lock action, and I managed to break the config action aaagain).

I’m hoping that the unlock-y actions will be a bit clearer now: when the screen is locked, the action that unlocks and leaves the screensaver is “unlock”, and the action that unlocks but keeps you there is “configure widgets”. when the screen isn’t locked (either because you clicked “configure widgets” from a locked screen or from the screensaver kcm) the action that leaves is “leave screensaver”, and the action that relocks it is “lock screen”. I’m still not 100% happy with these strings (or the icons for these actions), but they should make more sense than the old ones. string freeze is coming, the goose is getting fat… um. aanyways. :) screenshots!

there’s also a bunch of other things I was planning to work on… once feature freeze hits, I can go around checking widgets for security stuff (I do hope I can fix all security issues without string changes – why’s the string freeze so soon?) and the Icon plasmoid has some bugs that… really bug me. and of course there’s summer of code approaching :) whee, it’s going to be a fun summer.

et cetera