Learning in public
Nov. 10th, 2015 09:37 amI am more and more thinking I want to contribute to Open Source. Now, one way is to overcome all the inertia and get going again with Dreamwidth, but I don't want to put all my eggs in one dubiously viable basket. So I'm considering other possibilities.
ghoti has talked about saying she's interested in contributing to OS and getting fobbed off with, you can still contribute without writing code, you know. Which is of course sexist and patronizing and annoying, but in my own case, I think I might be more use in peripheral ways than focusing on writing code. I'm not bothered if that's considered feminine, I'm bothered politically that everything else about making effective software is lower in prestige than writing actual computer code because of having girl cooties, but personally I am not aiming for prestige, but rather for my own satisfaction. Also, I do want to learn how to program, but I have a long way to go before I have the skills to be useful, whereas I'm already pretty good at nourishing communities, and at assimilating information and communicating it effectively, so I'm hoping to leverage those skills a bit while I'm also learning.
Also at work I've been sitting at the feet of Dr Yardley, an amazing palliative care consultant who has a PhD in Medical Education, and one of the people I most look up to of everyone I've met since I've started working in a Medical School. She's been teaching me about Wenger and Communities of Practice, which is relevant to the thing where medical students have to hang around in clinical environments and transition to actually being allowed to do things to patients. So I'm thinking about Open Source in terms of Wenger's concept of Legitimate Peripheral Participation; ideally I'd like to find a community (the whole of the FLOSS movement is way too big to be a Community of Practice, just like the whole medical profession isn't one) where they have a clear understanding that they can't achieve their other goals unless they actively work to integrate new people who aren't currently experts. Equally, thinking about myself as a potential member of the community and what I can contribute, because it doesn't count as LPP if you barter volunteering your labour for educational opportunities, rather both the volunteering and the learning are supposed to be part of working towards shared goals.
The standard advice for people wanting to get involved in Open Source is that you should scratch your own itches, ie work on things that would actually make your own experience better. And that makes sense, part of of why I want to get into OS is that I never stick with learning to program schemes that depend on completing artificial exercises, I need to do something that's actually useful. But I don't yet actually have the skills or experience to be able to identify my "itches", let alone figure out how to deal with them. So I think the first step towards contributing to OS is going to be to use Free software more. And not just to use it passively, but to pay attention to what I'm doing and what parts of it are difficult and could do with being improved.
So step zero of this plan is to install Ubuntu on my netbook. I have friends who would probably do this for me if I asked them, but getting my machine running the Free operating system is only a secondary goal. What I really want to do is to experience the process from the point of view of a total beginner. And maybe one way I can start to contribute fairly quickly is to write sensible tutorials or advice to other people going through the process. The thing is, I'm probably better than average at learning new skills independently, I'm comfortable with Quacking for solutions to problems, troubleshooting, trying a few different things to see what works, and not just giving up the first time I run into a snag. And yet I find a lot of Open Source stuff really inaccessible. There is information out there that's absolutely basic step by step, series of screenshots showing you what options to choose, but that doesn't give you any knowledge of what to do if anything doesn't go to plan or really any understanding of what you're doing. At the other end of the scale, there's highly technical stuff which I can't even search for because I don't know how to formulate the questions. There's also a frighteningly huge volume of what to me seems like actively hostile stuff, people asking for help getting shouted at or mocked for not already knowing how to do something. I don't at all delude myself I can fix this all by myself, but I think I can contribute to making some better resources, and that's part of what attracts me to Open Source, you don't have to be able to fix everything that's broken, you can make something incrementally better. I want to apply that mindset to social things, basically, as well as technical issues.
And more long-term, I might learn enough to be able to help a bit with at least finding and reporting the kinds of things that make installing the OS and getting started not go smoothly, as well as just talking about them. I know lots of actual programmers hate testing, but I am somewhat attracted to it as a concept because it seems to me like science, doing experiments to find out exactly in what circumstances things go wrong and changing things systematically to fix them. My experience on LJ and DW suggests that it's generally helpful for testing and bug-finding if you can at least read code, and that's a level of programming ability I'm reasonably confident I can reach without unfeasible time investments. But anyway, we'll see.
Anyway, I have so far failed to get Ubuntu onto my netbook, and I'm framing this as a success at gathering data on how hard it is, rather than a failure at installing the OS. And like a good little scientist, I've documented the experience in my dev journal; you're welcome to take a look if you're curious but I don't want to shove that kind of boring detail stuff in everybody's faces.
Advice is cautiously welcome. I really don't want to hear all the arguments for why Ubuntu is rubbish, I have my reasons for starting from there, and if I find that it isn't the system or the community I'm looking for, fair enough, but I have made up my mind to try at this point. Equally I don't want people to offer to take over and sort stuff out for me, however well-intentioned, because I want the experience of figuring it out at least as much as I want the end goal of having a netbook running Linux. But if you want to give me advice on where to start with troubleshooting my installation process, I would be grateful.
And if you want to give me more general advice about getting started with contributing to Open Source, then I would definitely like to hear it. I'm most likely to listen to advice that takes into account that I'm reasonably intelligent even though I'm female and don't have much in the way of programming experience, but also doesn't assume any prior knowledge at all.
Also at work I've been sitting at the feet of Dr Yardley, an amazing palliative care consultant who has a PhD in Medical Education, and one of the people I most look up to of everyone I've met since I've started working in a Medical School. She's been teaching me about Wenger and Communities of Practice, which is relevant to the thing where medical students have to hang around in clinical environments and transition to actually being allowed to do things to patients. So I'm thinking about Open Source in terms of Wenger's concept of Legitimate Peripheral Participation; ideally I'd like to find a community (the whole of the FLOSS movement is way too big to be a Community of Practice, just like the whole medical profession isn't one) where they have a clear understanding that they can't achieve their other goals unless they actively work to integrate new people who aren't currently experts. Equally, thinking about myself as a potential member of the community and what I can contribute, because it doesn't count as LPP if you barter volunteering your labour for educational opportunities, rather both the volunteering and the learning are supposed to be part of working towards shared goals.
The standard advice for people wanting to get involved in Open Source is that you should scratch your own itches, ie work on things that would actually make your own experience better. And that makes sense, part of of why I want to get into OS is that I never stick with learning to program schemes that depend on completing artificial exercises, I need to do something that's actually useful. But I don't yet actually have the skills or experience to be able to identify my "itches", let alone figure out how to deal with them. So I think the first step towards contributing to OS is going to be to use Free software more. And not just to use it passively, but to pay attention to what I'm doing and what parts of it are difficult and could do with being improved.
So step zero of this plan is to install Ubuntu on my netbook. I have friends who would probably do this for me if I asked them, but getting my machine running the Free operating system is only a secondary goal. What I really want to do is to experience the process from the point of view of a total beginner. And maybe one way I can start to contribute fairly quickly is to write sensible tutorials or advice to other people going through the process. The thing is, I'm probably better than average at learning new skills independently, I'm comfortable with Quacking for solutions to problems, troubleshooting, trying a few different things to see what works, and not just giving up the first time I run into a snag. And yet I find a lot of Open Source stuff really inaccessible. There is information out there that's absolutely basic step by step, series of screenshots showing you what options to choose, but that doesn't give you any knowledge of what to do if anything doesn't go to plan or really any understanding of what you're doing. At the other end of the scale, there's highly technical stuff which I can't even search for because I don't know how to formulate the questions. There's also a frighteningly huge volume of what to me seems like actively hostile stuff, people asking for help getting shouted at or mocked for not already knowing how to do something. I don't at all delude myself I can fix this all by myself, but I think I can contribute to making some better resources, and that's part of what attracts me to Open Source, you don't have to be able to fix everything that's broken, you can make something incrementally better. I want to apply that mindset to social things, basically, as well as technical issues.
And more long-term, I might learn enough to be able to help a bit with at least finding and reporting the kinds of things that make installing the OS and getting started not go smoothly, as well as just talking about them. I know lots of actual programmers hate testing, but I am somewhat attracted to it as a concept because it seems to me like science, doing experiments to find out exactly in what circumstances things go wrong and changing things systematically to fix them. My experience on LJ and DW suggests that it's generally helpful for testing and bug-finding if you can at least read code, and that's a level of programming ability I'm reasonably confident I can reach without unfeasible time investments. But anyway, we'll see.
Anyway, I have so far failed to get Ubuntu onto my netbook, and I'm framing this as a success at gathering data on how hard it is, rather than a failure at installing the OS. And like a good little scientist, I've documented the experience in my dev journal; you're welcome to take a look if you're curious but I don't want to shove that kind of boring detail stuff in everybody's faces.
Advice is cautiously welcome. I really don't want to hear all the arguments for why Ubuntu is rubbish, I have my reasons for starting from there, and if I find that it isn't the system or the community I'm looking for, fair enough, but I have made up my mind to try at this point. Equally I don't want people to offer to take over and sort stuff out for me, however well-intentioned, because I want the experience of figuring it out at least as much as I want the end goal of having a netbook running Linux. But if you want to give me advice on where to start with troubleshooting my installation process, I would be grateful.
And if you want to give me more general advice about getting started with contributing to Open Source, then I would definitely like to hear it. I'm most likely to listen to advice that takes into account that I'm reasonably intelligent even though I'm female and don't have much in the way of programming experience, but also doesn't assume any prior knowledge at all.
(no subject)
Date: 2015-11-10 12:18 pm (UTC)I already, admittedly, had a bootable USB stick at hand, so I didn't have to worry about that bit. I guess you can end up with a smaller initial download by doing a "net install" (if that's a choice; basically suck down packages during the install process, rather than in advance; I tended towards that at slow download speeds, it feels better to go "minimal image, get things running and lean back while the computer does its thing", than "spend oodles of time before you can actually begin"), but on the same order of total download.
As for the bootable USB stick, I have no specific device, unfortunately. I've not (that I can recall) even made one, but I do recall that when I was looking at installing Ubuntu on this here laptop (for which I could borrow a stick), I ended up at Pendrive. and went "uh, bother".
(no subject)
Date: 2015-11-10 12:39 pm (UTC)(no subject)
Date: 2015-11-10 12:49 pm (UTC)(no subject)
Date: 2015-11-10 02:32 pm (UTC)(no subject)
Date: 2015-11-10 01:25 pm (UTC)There are really two parts to Sage; there's the open-source computer algebra software, and there's SageMathCloud, which gives you access to a cloud-based Linux system which runs lots of open-source scientific software, including Python and R as well as Sage. It's new enough and under construction enough that trying to use it and posting complaints to the mailing list is a genuinely useful form of participation. But I'm also finding that having quick access to a setup where I can write a couple of lines of code is really useful to me: every so often I have a research task like formatting a big table, which is tedious but doable by hand, and having a program that can automate it right there makes me far more likely to try automation. There are Sage workshops in Europe occasionally, though it looks like the next one (Oxford in March) is very focused on math research. There is also some funding for women-only Sage workshops.
Data Carpentry and Software Carpentry might be more relevant to you personally: they're really focused on teaching scientific computing well.
(no subject)
Date: 2015-11-10 07:33 pm (UTC)* In my experience, participating in open-source projects that have something to do with scientific computing is fun, because you can leverage your existing knowledge as a scientist.
* Python is useful and pleasant to work with.
(no subject)
Date: 2015-11-11 12:13 am (UTC)(no subject)
Date: 2015-11-11 12:41 am (UTC)My friend Adriana has written about Sage a bit for Ph.D. Plus Epsilon, though!
(no subject)
Date: 2015-11-10 03:41 pm (UTC)(no subject)
Date: 2015-11-10 06:06 pm (UTC)Testing is excellent; I know somewhat less about that.
(no subject)
Date: 2015-11-10 10:35 pm (UTC)(no subject)
Date: 2015-11-10 10:37 pm (UTC)Not all of them. :(
(no subject)
Date: 2015-11-10 11:36 pm (UTC)(Sorry for the rant. But this is where OS software falls down for me every time.)
(no subject)
Date: 2015-11-11 12:12 am (UTC)(no subject)
Date: 2015-11-11 11:48 am (UTC)So now you've got two problems: an extremely ridiculous architecture that must be very awkward to maintain (and might have its original roots in the whole multi-platform requirement) and some hard-to-reproduce bugs where the unfortunate user clicks on the wrong thing or tabs away from the save app and goes back to the Gimp or _something_, and of course with a problem like this 'i did something and then everything stopped working' I'm not going to file a bug report, so it won't get fixed.
(I know filing bug reports is good citizenship, but I'm up to my ears in them and I have three outstanding ones, and I don't have spoons for more.)
(no subject)
Date: 2015-11-11 09:45 am (UTC)(no subject)
Date: 2015-11-11 12:28 pm (UTC)(no subject)
Date: 2015-11-10 11:27 pm (UTC)1) I decided that while contributing to OpenSource is all very nice, and kudos to people who do it, I actually have plans for my own software that will fill gaps and make people's lives better. I also don't feel competent enough to make a meaningful contribution. I do write a programming blog with advice (which has been hacked, so is currently offline, GRRRR), and I'm engaged in a programming community, so I'm making my contributions there.
2) I picked my tools very selfishly: I'm writing an app for myself, so it's got to work on a Mac, and I don't care about the rest of the world. Making things widely accessible is great; but I've put my own needs first.
3) Programming is frustrating enough as it is, so I'm using every advantage I can: a language I like, a framework that makes my life better. Sometimes that means restricting who'll be able to use the software in the end, but see above: I'm ok with that trade-off. I'm putting my mental health first, and my mental health *will* be compromised by batting my head against walls and feeling stupid and incompetent over and over again. Some forms of computing and some developer communities are more prone to this than others; nothing I've seen from Linux so far has made me want to delve in.
4) If I had to decide on an Open Source project to contribute to, I'd a) pick something I'm passionate about - a tool that I've seen people struggling with (in my case, that's interactive exploration of information), or ) something cool that makes them happy (bias here: a friend of mine is involved with a drawing app that people use to create wonderfully cool stuff.). And then I'd look for a project that has a community attached which I want to join, that's got much of the DW vibe of encouraging people even when they're new to programming, that's inclusive and welcoming. I'd run a mile from anyone who sneers at newbies because I'm not tough enough to sit these things out, and fuck that shit, I shouldn't have to be.
(no subject)
Date: 2015-11-11 12:46 am (UTC)(Although I'm a bit dubious about full Ubuntu, this one's struggling to run XP rn and I know Ubuntu's had some bloat lately too...)
(no subject)
Date: 2015-11-11 11:54 am (UTC)The biggest issue I usually have with installing Linux on a new machine is honestly making sure all of the drivers will play nicely with Linux. This is kind of an Open Source politics issue tbh. Basically, not all hardware manufacturers will create drivers specifically for Linux. OTOH, if Linux programmers try to create drivers on their own, they have to be careful not to do anything resembling reverse engineering or they can be hit with a lawsuit (even though they are making a product available to more consumers, for free, and not making a profit at all). It's ridiculous. So now when I am buying new peripherals -- printers, *anything* with Bluetooth or wifi in particular, etc -- I try to check forums first to see if people have had success getting it to work with Linux. Also to see if a lot of fenangling was involved getting it to work (because if I reinstall my OS, I might have to do all the wrangling alllll over again.)
for a first install, the big issue most people have with hardware compatibility is usually video cards (if there is going to be any issue with compatibility). probably with a netbook you have on-board video, but that doesn't mean you won't have some issues?
also on a side note, I have Linux running on an older netbook. I ended up installing a suuuper light version of Linux as it's a much older netbook. Gnome 3 -- which is the basis upon which current GNU Linux distributions are built, be they Fedora or Ubuntu or whatnot -- is made to have a more dynamic "look we are almost like a tablet" kind of feel, but it can be more of a resource hog that way. (believe me there have been many discussions about this.) There are a lot of flavors of Ubuntu, some of which are based on KDE (rather than GNU) and also some which are packaged with fewer default programs. There's also Xubuntu, which operates on Xcfe (which is a lightweight base that is less shiny but more stable and less of a hog). I think it may require more system space but am not sure? I think my netbook basically runs the Fedora OS version based on Xcfe.
hope some of this is helpful (at least as background knowledge), and let me know if you want to chat on IM or email back and forth or PM or whatnot.
(no subject)
Date: 2015-11-12 09:36 pm (UTC)In general, lots of Open Source projects need people who can do other things than code, documentation foremost among them. Anyone who devalues the contributions that aren't code should have their feet stomped on until they understand, because good documentation means both more users and more likely developers.
A good community thing that I like about Dreamwidth is that they often flag up things explicitly that are good for new developers, which make it easier to make contributions and feel welcomed into the community.
I've also been using some form of Linux on desktop and laptop computers for about...15 years, now, so I can be available for questions or other issues, if you would like another resource from a user perspective that's probably pretty close to your own.