ChaniBlog











{January 29, 2009}   jamaica

Jamaica is beautiful. Relaxed, no pollution… things aren’t *always* as clean as I’d like, and service is iffy, but what surprised me is that the people look noticably clean. Lots of youth in crisp uniforms. Religion is quite obviously an important part of the culture over there. Prices are about the same as america, which is disconcerting because it feels like china somehow. Old buildings, perhaps, and the street vendors in the city, and people on the road always trying to sell something. There’s a strange mix in the city… I saw some stone walls that reminded me of ireland. lots of little remnants of britain there, too. They drive on the left. The driving reminds me of china, though. ;) I overheard something about a bus carrying 400 people, and another bus that hit a pedestrian and people got upset and shot the driver.
o.0
oookay then. moving on.
I found Jamaican accents really really hard to understand. Sometimes it’s hard to believe they’re speaking english. The cars talk with their horns, too… daskreech can tell you about that. :)

as for the conference… I can’t remember if I blogged about the talks, but other people have said enough there. no need to repeat it. unfortunately I missed most of till’s talks, trying to get homework done. In retrospect, maybe i should have skipped the homework.

I did get some hacking done, though… there was that post I made about the victory calendar, and I worked on keyboard shortcuts for a while. I really should have written something down sooner, because I can’t remember much about that now. just that I wish I’d started on it sooner, because it was so easy… oh, yes: keyboard shortcuts have changed in 4.3 – I think I’ll wait for the 4.2 celebrations before blogging about that :) I considered backporting, but decided that if I end up needing to change them again it’s best not to break everyone’s memory twice. by the time 4.3 is released they should be configurable, too, so it won’t be such a big deal.
there is one downside to this, though: 4.2 has no keyboard shortcut for “add widgets”. ctrl-a was causing conflicts too much, it seems, and nobody thought up an alternative when they removed it. finding unused keyboard shortcuts is hard, even more so when you don’t know what you’re sharing them with… this will be solved properly in 4.3.

something I don’t recall anyone else blogging about is our karaoke attempts in the evening… there was a karaoke place nearby, but their machine was broken that week. then daskreech got his hands on some home karaoke dvds, but couldn’t find a working mic. the next night we tried again, with some online flash karaoke thing. the karaoke played just fine… but the mic did not. sound from the mic went into the computer and never came out. nobody had one of those old crappy sound cards that echoes the mic (making skype unusable). :( nobody even had an option for that on their sound card. I tried arecord | aplay but there was far too much static. so, no karaoke :( we tried our best, though.
next akademy, there will be karaoke. somehow. it will happen. :)

there was also the rum tour on thursday… I’m sure other people have blogged about that in more detail – most of what I remember is drinks, sugar, more sugar, and more drinks ;) it was funny when they got me and ade to be the “ass” and crush sugar cane. mmm, sugar. the cane itself didn’t taste so great after it was crushed – not sure why the real donkey was so happy to eat it. :)

and the beach… the beach was unforgettable. :) I now understand why people go to such places for their vacations. fine sand, mild water, the relaxing atmosphere…
well, the water wasn’t always so calm ;) one night mid-week it rained, and the water changed… the rest of the week there was seaweed being washed up on beach, the water looked grey and choppy, and the waves were a fair bit bigger. daskreech persuaded me to go into the water anyways, and I’m glad I did. :) those big waves are fun! if you jump at just the right moment, the wave catches you, and for a moment it’s like you’re suspended in midair. :) or you can dive under the wave, which ade seemed to prefer.

not everything in jamaica was so wonderful, though. there was one thing that kinda soured it for me…

it took me a while to clue in. I’m pretty oblivious to social things – computers make far more sense to me. so I was at the airport, checking my bag, and the guy who took it wrote his email address and phone # on a luggage tag and stuck it in my passport. when I reached the front of the boarding line he was there again, and I can’t remember what he said, but I got a weird feeling… and about a minute later my brain finally started putting two and two together.
I realised that many of the guys in jamaica had been acting… not quite right. They look at women a different way. :/ If I’d realised it earlier I probably wouldn’t have been hanging out in just a bathing suit. even in such hot weather.
I remembered another odd thing… on the way back from the rum tour we stopped for coconuts. they chop the top off a coconut, you drink the juice, and when you’re done they chop it in half and give you a wedge of coconut shell to scrape out the jelly with. well, when I was done mine, our bus driver took it and had it cut up and scraped out the jelly for me. everyone else got to figure it out on their own. I was annoyed but didn’t make a fuss… I actually thought he was going to eat it himself or something, and was glad to get it back at least. but later that evening he wanted my phone #.
also, when we were on the bus, him and dmitri were surprised to hear that I don’t listen to R&B. I didn’t mention it then, but the reason for that is most of what I have heard of it is violent and/or sexist. or it just makes no sense.

it’s hard to describe how I felt, sitting on the plane, as I realised that at least some of these guys saw me not as a person, but merely a woman. I’ve never felt such an.. uncomfortable, sickening feeling. it really shook me up. :(

it also bugs me that when people act that way, I don’t react. even though I didn’t see the meaning behind the coconut incident until the next day, I didn’t like it at the time… but somehow I didn’t react. perhaps my english/canadian upbringing has trained me to be nice and not make a scene. :P

I’m glad I live in vancouver. I’m glad nearly all the people I know, my friends in RL and the KDE community, are respectful and treat me like a person, seeing my code before my breasts. I’m glad I have guys who love me for my mind and want to talk to me as much as, ah, other things. :) I’m glad there’s a beach in vancouver where everyone is naked and it’s just no big deal.

I now understand, at least a bit, just how horrible it was for women before feminism became strong enough to change our culture… funny how strongly religious places tend to have such unhealthy cultures. Jesus tried to teach tolerance, forgiveness and understanding, and what did people turn it into? homophobia, sexism and oppression. :(

It’s probably a good thing I didn’t figure this out until I was leaving- it’d be awful to still be there and be aware of it. I feel pretty uncomfortable as it is, even now. I’m really glad the kde community is so mature (it is, right? I find a corner of my mind doubting all my impressions of people now), and that I have friends I’m comfortable with. I just want to be myself and relax, and I can’t relax if I’m worried about what people think of me, or if I’m wearing too much clothing in warm weather (my skin’s kinda weird, so sometimes too much clothing is really *really* uncomfortable).

sorry this blog post isn’t as happy as most of my posts, but… I had to write about this. for my own peace of mind if nothing else.



{January 18, 2009}   adventures in plasmaland, part 3

it’s day… 2? now, and near the end of the presentations I got the urge to write code. so now I bet everyone else is in the ocean, but I just can’t tear myself away until I get a few more bits working. :) perhaps it’s a good thing the internet is being crap, or I’d end up on irc… although not being able to commit is a PITA, and will make it harder for me to show incremental code improvements. we need git.

anyways, I started a new plasmoid. I think I might rewrite the other one in C++ – it’s either that or write a bunch of bindings or write a dataengine. but this new one should be more suited to scripting. it’s something pete calls a “victory calendar”. the idea is that you have a list of tasks that you need to do every day (like studying a language or doing pushups), and every day you record whether you did a lot, a little or nothing for each task, and so long as you don’t have lots of nothing you reach victory. :) recording your progress is meant to motivate you to actually do things – either by showing you that you’ve been slacking off, or showing you that you’re doing well – either way you’re less likely to forget about it and give up.

so, being lazy, I start by copying my last plasmoid. then we change the metadata – we need a name, icon, description and sane default size – and delete half the crap in the old code. now we’ve got something we can install and run and it shows a pretty icon. :)

next, I added a label.

layout = new LinearLayout(plasmoid);
layout.setOrientation(QtHorizontal);

//start with one task and name it
taskName = new Label();
layout.addItem(taskName);
taskName.text = "do something"; //setText doesn't exist. interesting.

I stole this code from the nowplaying example. what I found interesting is that it’s using the qt properties system, so instead of taskName.setText(“do something”); we have taskName.text = “do something”;
while adding the label, I also set the layout to be horizontal. I’ll need a better layout later, but for now I’m just making one task with one day’s record.

so, that pretty icon… that turns into the progress indicator. :)

progress = new IconWidget();
progress.setIcon("view-calendar-tasks");
layout.addItem(progress);

//and the icon does something!
plasmoid.moreProgress = function()
{
print("triggered!");
progress.setIcon("configure");
}
progress.clicked.connect(plasmoid.moreProgress);

we make a function to change its icon, and connect that to its clicked signal. we’ll need three states with appropriate icons soon, but for now I’ll just make it change back to the configure icon.

victory!

and so another plasmoid has begun… and I want to go to the beach now. :) after we get that progress icon working we’ll need to configure the name of the task, allow more than one task, then track and display data from previous days.



{January 17, 2009}   campkde, day 0

wheeee! I got off the plane in jamaica, and felt the relaxed atmosphere at once. :) the customs line was horrendous, but I met up with some other gearheads there :) and after much delay we were off to the resort. I wasn’t expecting it to be such a long drive… we got to see some of jamaica before dozing off, though. it kinda looks like a clean non-asian version of china, to me. ;) oh, and we bought peanuts from one of the street vendors who run alongside the cars to sell their stuff.

the resort has a beautiful little sandy beach by the bar/restaurant, and the water is only a few yards away. lovely mild water (I won’t call it warm, but it’s not freezing), hardly any rocks or seaweed or driftwood or other annoyances that are everywhere in vancouver waters… there was a bonfire on the beach, and after dinner several of us ended up going out for a swim… god, looking up at the stars from the water on a warm night is just… breathtaking. so many stars, and the waves and the air are just so relaxing… :)

of course, this a conference, not a vacation… so it was just a matter of time before geekiness returned ;) I kinda started a discussion about plasma out there in the waves. it was a bit hard to have discussions with big waves randomly crashing down on us, but we managed. (ok, they seem big to *me*, I’ve never seen a wave big enough to unexpectedly dump water on my head while I’m swimming before.)

eventually we came in and stood around hte embers of the fire, which were still quite warm, and I scribbbled down some notes on what we’d discussed. I won’t worry about those now, I can think more about them later now that they’re safely on paper. :) more people arrived, yay, and …. and it’s 2:30am and breakfast is at 8:30. bedtime! perhaps I’ll blog some more tomorrow. :)

this place is incredibly relaxing. great place for a conference. great place to be in general, really.



{January 8, 2009}   adventures in plasmaland, part 2

we’ve got a bit more in the way of javascript bindings, and only one of my teachers has posted homework, so I decided to work on kconfigmenu some more. :)

now that it can install and run, I want it to display a pretty icon. so, first thing, we create an icon:

icon = new IconWidget();
icon.setIcon("configure");

re-using kde’s confiugure icon once again. :)
but it turns out that plasmoids have no layout by default, and that’s not good… so at the top of the file we have to create one, and then after out icon is made we have to put it in the layout.

layout = new LinearLayout(plasmoid);
icon = new IconWidget();
icon.setIcon("configure");
layout.addItem(icon);

now, unfortunately javascript plasmoids are defaulting to 200×200 on the desktop, and if i try to resize my plasmoid it overrides the configured size every time plasma restarts (a Bad Thing). that’s gonna have to be fixed in the bindings; until then, I start with a ridiculously large config icon. :)

Update: fixed! I made it possible to set a default size in the metadata :)

now that that’s working, the next step is to figure out how to put things in hte contextmenu.
ideally my code should pop up a menu on left-click instead, but I’m going to be lazy right now and try to get it working before I get it pretty.

getting a dummy action in the contextmenu was easy. copy&pasted this from the tiger plasmoid:

plasmoid.setAction("myAction", "Select Me!", "plasma");

plasmoid.action_myAction = function()
{
print("myAction triggered!");
}

and once again I’ve committed it.
it even has an icon! :)
the action

now, what we want is some data to make actions out of. if I was using c++, I would start with KService::List modules = KServiceTypeTrader::self()->query("KCModule"); – but I’m not. I’m just using a simple javascript API. there *is* a dataengine that will execute arbitrary commands, and kcmshell4 can output a list of all the modules… but then I’d have to parse the list, and I’d only get the module name (in a not-very-userfriendly form) and the description (which isn’t always something I can show as a title either).

hmmmmm. I’m gonna have to think about this next step a bit.



{January 8, 2009}   faith of the heart

it’s been a long road
getting from there to here
it’s been a long time
but our time is finally near…

I never really got into the show (probably something to do with moving out and not having a TV) but I loved the theme song for Enterprise. it popped up on my playlist today, and got me thinking… with kde 4.2, our time is finallly near. :) time for us to no longer look to the past, but to the future instead. Plasma now has just about all the features kickoff had in kde 3.5, plus a bunch of stuff kicker could never do. I’m sure there are a few odds and ends to round up still (the biggest being contextmenu plugins, iirc) but those will come easily, and we can shift our focus to plasma’s future. finally, we can return to reinventing the desktop, pulling it out of its decade-long slumber and creating new, better ways of interacting with our computers. we’ve provided a classic experience for people who are fine with that (if they’re not happy now they never will be), now we can get back to making something awesome for all the people the classic desktop does *not* work well for. :)

So, what will the future bring? In february we’ll be meeting again to make some plans. aaron emailed plasma-devel the other day with some of the things he plans to work on – a design studio, jolie stuff, media centre stuff, security, js binding improvements and more. I’m hoping to help with the javascript and security myself, but there are plenty of other things I’d like to see happen.

I’m hoping for more use of Activities, with plasmoids that are aware of what activity they’re in and become more useful… maybe some openid coolness, which will open up more doors to who-knows-what… export and import of containments, so that you can have stuff you don’t always want running but don’t want the hassle of setting up from scratch repeatedly (I can see that making testing a lot less painful)… a smarter taskbar… another wave of useful little plasmoids…

and we’ll see plenty of cooler things that i can’t imagine, I’m sure ;)

on the less-shiny side of things, I hope to see some work on a dbus interface and keyboard interaction. imagine pulling up krunner and resizing a plasmoid (or panel) to be exactly 42 pixels tall… most people don’t care, but I know there’s an OCD minority that would love such control. ;) and there are more practical applications of keyboard interaction – imagine binding a keyboard shortcut to a specific containment, so that you could view it instantly (either a desktop or a panel containment – think autohidden panels and “ohshitthebossiscoming” activities ;) ).

of course, remember that none of these are promises. they’re just the ideas and hopes of one developer – a developer spending far too much time on homework instead of kde these days. :/ so I really can’t say how many of these things will happen for 4.3, or even 4.4 – we’ll have to wait until a more concrete feature plan appears.

still, with the crazy pace of plasma development, you can be sure that lots of stuff is going to happen, and it’s going to keep getting better and better. :) whatever 4.3 brings, it’s going to be fucking awesome. :)



{January 5, 2009}   back to school

well, the first day of a new semester is over. it’s been a fairly good day. the burnaby campus was closed (even though buses were running) but the surrey one was open, and all my courses are there. the first course was cancelled anyways because the teacher didn’t think he could make it. :)

I got my upass, sold an old textbook, managed to get into the bookstore at a time when it actually had no line and buy one of my textbooks, and discovered I’ve got a friend in each of my classes. macm 316 looks like it’s going to be annoying (the teacher has a thick accent and mumbles), but cmpt 383 will probably be quite interesting.

how much time I’ll have for KDE this semester remains to be seen, but I *am* going to campkde, and there’s another tokamak soon (oh god I hope I can keep up with my courses with all this travel) so if all else fails I’ll have a chance to hack then. :) aseigo and notmart’s work on the qtscript bindings seems to be going quite well, so this week I think I’ll try to focus on getting ahead in class wherever possible and preparing for my courses. of course, having said that I’ll probably get distracted by shiny code anyways ;P



et cetera