Reply to topic

[Ask-A-Dev] David Edmundson (Plasma Developer)

User avatar david_edmundson
KDE Developer
Posts
359
Karma
1
OS
donniezazen wrote:1. How do you get a Job at Blue Systems? What kind of qualification does one need? What kind of experience and background does one need?


Everyone who is currently in Blue Systems was already the maintainer or a lead contributor in a particular project typically in their free time (with a few exceptions). In the case of all my colleagues doing a ridiculously good job in their field in areas Blue Systems was interested.

Volunteer open source has an odd way of paying back. It's not immediate and I don't think you should enter _expecting_ a reward or a job to come from it. However it does get you noticed by companies.

There's a line from a Linux Kernel talk I saw when discussing why you should contribute and the guy said "once you get one patch in, you'll get job offers for the rest of your life".
In KDE and the desktop world that's not quite as true, but it still applies. I had an interview offer with Canonical once, because I was doing the Qt bindings in LightDM. One of my colleagues gets regular emails from Google. Unlike regular industry companies can see /exactly/ what you do and it's a good platform to show off.

donniezazen wrote:2. What would you say to someone who is learning C++ and QML to contribute to KDE and gain practical experience as a programmer?


Awesome!
The best way to learn is just to dive in. I started contributing C++ code without knowing any C++. I knew C and Java.. then I just mashed things together copying and pasting things till it worked.

Coding on a big project in a group is very different from coding alone; half the challenge at first is trying to work out where the right big of code is.

The biggest tip to starting out is just to hack and bodge things till it works add print (qDebug) statements everywhere, even if it's not a glamorous way of coding. Then do the same patch again, but better, then do it better again before submitting. Lots of beginner programmers just stare blankly at the code trying to understand absolutely everything, this never gets you anywhere and it gets frustrating.
Dealing with a huge code base doesn't change, no-one is a genius who knows the entire code base to everything. After time you just get faster at searching and traversing code paths in your head and it becomes less daunting.

From within KDE the best thing to do is get associated with a team working on something that interests you. You only stay by doing something you enjoy, and you'll only enjoy it if you're getting the reward of benefiting from something you're working on. It may take a few attempts to find your new "home", but hopefully you will.

Best of luck, hopefully I'll be seeing your name in the commit logs soon.
bshah
Registered Member
Posts
76
Karma
0
OS
1) What was your first patch to KDE or any open source project?
2) You are working on multiple projects, Qt, Telepathy, Plasma next etc etc (God and you know full list! :P ) . So my question is how do you manage time working on multiple projects? Don't you need 25 hours a day?
User avatar lazyit
Registered Member
Posts
125
Karma
0
OS
My question really, want to be targeted both to David but also to Jens, The question is this: Do you think or feel you need to, at some point, to organize a meeting (Randa, or other KDE Akademy Spring) where you will find together the members of the VDG and developers, to draw together a project, where you want to go to KDE, both as regards interface design of all Plasma and both for the individual application, so as to trace a common project, to which go further to decide together how to better coordinate the cooperation and dialogue between these two worlds
User avatar david_edmundson
KDE Developer
Posts
359
Karma
1
OS
bshah wrote:1) What was your first patch to KDE or any open source project?


KNetwalk. I used to play it all the time in lectures. I made it remember the user's username so I didn't have to type it every time.
It was rejected because it was a feature freeze and I received an email like "why would you submit a patch now you idiot !". Not the smoothest start.
Then I had a few more patches that went the same way. I got a patch into an early Dolphin that meant when you typed it with two folders on the command line it would go into split view. I was ridiculously proud of what now seems like a rather pathetic patch.

I mostly worked alone writing things in kde-apps.
Then I did a few patches in Dragon Player (just to make it work) and Ian Monroe (of former Amarok fame) helped bring me into the community.

bshah wrote:2) You are working on multiple projects, Qt, Telepathy, Plasma next etc etc (God and you know full list! :P ) . So my question is how do you manage time working on multiple projects? Don't you need 25 hours a day?


Right so, I only need to cut down 1 hour from a normal person. I stopped shaving and being social.
The latter is surprisingly easy.
bshah
Registered Member
Posts
76
Karma
0
OS
david_edmundson wrote:It was rejected because it was a feature freeze and I received an email like "why would you submit a patch now you idiot !". Not the smoothest start.


Somewhat my story. :D I ported Activity bar to QML at start but whole development shifted to Plasma Next and it never got to KDE4 users.. ;D
User avatar david_edmundson
KDE Developer
Posts
359
Karma
1
OS
lazyit wrote:Do you think or feel you need to, at some point, to organize a meeting (Randa, or other KDE Akademy Spring) where you will find together the members of the VDG and developers, to draw together a project, where you want to go to KDE, ...


I've said in an earlier thread I'd like a few designers to get involved in specific projects, so someone who gets attached to KMail and working on that should go to PIM sprints etc. Getting designers paired off with projects I think is important. Not everything is on Plasma.

As for getting all the designers together, I would support that happening. Follow everything at http://ev.kde.org/activities/devmeetings/ if you want it to happen. I think all the perks (and also rules !) that apply to devs apply to designers too in exactly the same way.
User avatar jensreuterberg
Registered Member
Posts
598
Karma
3
OS
Cont. from David due to LazyIT's question being aimed a bit to me too:
The pairing off thing - its a brilliant idea and I would like to get it going as soon as possible tbh. I mean at one point the idea is to move the VDG into a community proper and the VDG transformed to community organizers in which case I would love to see a method like that where individual members become active in one project and the design goals are being set as a group effort.

The issue being that I dont know right now how to get from here to there - and hopefully next week I'll start a thread and start talking ideas about that.


KDE Visual Design Group - "Sexy by default - Powerful through cooperation"
User avatar GreatEmerald
Registered Member
Posts
84
Karma
0
OS
david_edmundson wrote:The best way to learn is just to dive in. I started contributing C++ code without knowing any C++. I knew C and Java.. then I just mashed things together copying and pasting things till it worked.


Hah, that's pretty much how I learned coding in general (it was in UnrealScript, and now I code in C and D, the latter being surprisingly similar to UnrealScript).
User avatar ScionicSpectre
Registered Member
Posts
30
Karma
0
I think it's great that KDE Telepathy rose to bring the benefits of telepathy to KDE where Kopete seemed to have stagnated somewhat. I've always admired KDE for making strong technical decisions that are logical and practical.

I recently read your post on the Dot about the improvements made and the enhanced vision/direction going forward. While I understand it is still being discussed, what are your big hopes for KDE Telepathy? If you had a dream of what it could become, what do you see?

Also, a slightly more technical question- which chat clients on other platforms (Windows, OS X, the web) do you think work best with KDE Telepathy? If I can use more of those features like collaborative editing with my non-Linux using friends, I'd get a real kick out of it. :)
User avatar david_edmundson
KDE Developer
Posts
359
Karma
1
OS
ScionicSpectre wrote:I think it's great that KDE Telepathy rose to bring the benefits of telepathy to KDE


Thank you very much. As a dev we normally just get the hate of "YOU BROKE XYZ" (even though we deliberately didn't touch Kopete at all).
The move is definitely the right thing long term. Thanks to Telepathy we have every protocol from libpurple; plus a few of own. I think we must have the largest support of any IM client o/

I'm excited about Ubuntu Tablet and Jolla taking off, that'll bring in some big telepathy users and we might see even more backends from those camps.

ScionicSpectre wrote:Also, a slightly more technical question- which chat clients on other platforms (Windows, OS X, the web) do you think work best with KDE Telepathy? If I can use more of those features like collaborative editing with my non-Linux using friends, I'd get a real kick out of it. :)


Adium is just brilliant. Just the way you drag and drop the tabs, or the window for configuring notifications. Despite being on OS X, I think it's a really good example of open source working well; and not always being ugly or unusable. I want to be the modern equivalent of that on KDE.

As for what works best, it's more about the protocol than the client. At the sprint I made everyone start using KDE Talk, which is a standard (quite old) jabber server, rather than Facebook and Google Talk, and I was really surprised by how many things "just work" perfectly. We had group chats, file transfers, a video chat. We even shared a document with a chat room, and everyone had Kate open and could edit it. It was awesome. A lot of these were things that I'd managed to convince myself were broken because I spend so long in Facebook and Google Talk.

Using a *real* jabber server makes a difference.

In general I hate Jabber. A new spec appears, but no client implements it because no server does, no server does because no client does. It's a massive chicken and egg problem. The specs are rather odd too, there's a spec for talking to your fridge (XEP 0347), HTTP over XMPP (XEP 0322) and sending faxes (XEP 0342) and yet multi user video chat is _still_ in draft and fragmented.

Offline messaging is a problem; you can't be sure if you send a message the other person will get it. their server might not store them equally their client might not support retrieving them. The only thing you can do is send and hope. From building a UX POV that's really difficult. Losing messages is about the worst thing an IM client can do.

...but despite all these things that suck about XMPP, everything else is so much worse ! (or closed)
I've got a bit of hope that Telegram (when they release the servers) might be a saving grace; but it's early days.

As for the collaborative editing, I think it could be seen on gnome at some point (underneath it's just gobby over telepathy tubes) everything else... I doubt it'll work.
We're using a custom XMPP protocol for sending raw blobs of data. It's quite clever; it does some session negotiation and will either send data directly OR via a socks proxy OR worst case in the stream itself through all the intermediate servers. From the developer perspective this data stream is exposed as a TCP socket we can read/write to or connect to an existing app.
User avatar GreatEmerald
Registered Member
Posts
84
Karma
0
OS
david_edmundson wrote:Thanks to Telepathy we have every protocol from libpurple; plus a few of own. I think we must have the largest support of any IM client o/


...huh. I never knew that, and I had always used Pidgin. But if KDE Telepathy can do the same thing yet integrate into KDE better, then I'll give it a try! Speaking of which, does it integrate with KWallet?

david_edmundson wrote:...but despite all these things that suck about XMPP, everything else is so much worse ! (or closed)
I've got a bit of hope that Telegram (when they release the servers) might be a saving grace; but it's early days.


What about SIP?
User avatar david_edmundson
KDE Developer
Posts
359
Karma
1
OS
GreatEmerald wrote:Speaking of which, does it integrate with KWallet?


It does.
Try it, worst case, go back to pidgin.
Pidgin does a few things better than us, we do some things better than them (IMHO more things better, but I am biased)

GreatEmerald wrote:What about SIP?


I don't really know a lot about SIP. We have some SIP users; none of the active devs use it as far as I know.
User avatar scummos
Global Moderator
Posts
1134
Karma
7
OS
david_edmundson wrote:As for the collaborative editing, I think it could be seen on gnome at some point (underneath it's just gobby over telepathy tubes)

You should be able to use it on gnome just fine, although I didn't try. (The protocol is called infinity, by the way, obby is the old thing and dead ;) )

As for other platforms there's no theoretical reason why it wouldn't work, it's just lots of components which would need to be ported. Especially Telepathy as a whole, incl. dbus, which seems to be a bit whacky (?) at the moment. If that is done our stuff should more or less just work, esp. since kate is already ported.


I'm working on the KDevelop IDE.
User avatar jensreuterberg
Registered Member
Posts
598
Karma
3
OS
I just want to squeeze in something here:
David will answer questions up until monday and will then be replaced by another dev. But I wanted to take this moment to say "Goldstars all around, you guys rock!". David, awesome answers and openness - guys (Scummos, ScionicSpectre, GreatEmerald, Bshah, LazyIT, JasonWert, Sogatori and DanniZazen) you are really a damn credit to our community. <3


KDE Visual Design Group - "Sexy by default - Powerful through cooperation"
tjennings
Registered Member
Posts
5
Karma
0
OS
As a KDE developer, what technology, library, framework, or tool that KDE provides do you think is most under-utilized by KDE developers?

 
Reply to topic

Bookmarks



Who is online

Registered users: Baidu [Spider], Bing [Bot], gfielding, Google [Bot], hiteshshah, lucianosalomoni, Majestic-12 [Bot], pseco, Sentinel, TheBeheader, Yahoo [Bot]