[09:15] <conscioususer> (ping)
[09:30] <delcoyote> pong
[14:23] <rodemire> quit
[15:54] <dpm> hi all, is everyone ready for the first day of Ubuntu App Developer Week?
[15:54] <jml> Yes!
[15:54] <dpm> :)
[15:55] <Andy80> yess :)
[15:55] <tviking> Yep!!
[15:56] <dpm> awesome :)
[15:59] <dpm> Let's give a warm welcome to Jonathan Lange (jml), who'll be opening the UADW with a talk about the app developer strategy for Ubuntu
[15:59] <jml> Hello and welcome to App Developer Week!
[15:59] <jml> As dpm said, my name's Jonathan Lange.
[15:59] <jml> I work at Canonical.
[15:59] <jml> For most of the last five years I've been working on Launchpad, but recently I've started working on the Ubuntu developer programme
[15:59] <jml> Which has been really fun.
[16:00] <jml> We believe that to get Ubuntu from 20 million to 200 million users, we need more and better apps on Ubuntu
[16:00] <jml> And in fact, more than that, that we need a thriving ecosystem of applications on Ubuntu
[16:00] <dpm> skype:johnoxton.co.uk
[16:00] <dpm> skype:elachuni
[16:00] <jml> Two simple goals:
[16:00] <jml> 1. More and better apps on Ubuntu
[16:00] <jml> dpm: hello :)
[16:00] <jml> 2. Thriving ecosystem
[16:00] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/09/05/%23ubuntu-classroom.html following the conclusion of the session.
[16:01] <jml> *ahem*
[16:01] <jml> I guess I started early
[16:01] <jml> anyway, for those that turned up late, my name is Jonathan Lange and I work at Canonical trying to make it possible to have many more and better apps on Ubuntu
[16:02] <jml> so we can get a heap more users :)
[16:02] <jml> To get more and better apps, we need to have more developers -- the kind who are writing apps for Windows, OS X, iOS and Android -- to think of Ubuntu as a platform to develop for.
[16:02] <jml> There are a lot of bits to that.
[16:02] <jml> One is actually making some place that app developers can go to in order to learn how to develop for Ubuntu
[16:02] <jml> A bunch of folk at Canonical are working on that now, and you'll see their results on developer.ubuntu.com in the next few weeks.
[16:03] <jml> Also, on Thursday, there's a talk about how they are doing the work
[16:03] <jml> see the schedule in the topic for more details
[16:03] <jml> (btw, ask questions on #ubuntu-classroom-chat and I'll answer at the end of the talk)
[16:03] <jml> Another part is actually *defining* some sort of platform for developers to target.
[16:03] <jml> Which is really, really hard.
[16:04] <jml> Part of the glory of Linux is that there are so many choices at practically every level of the stack.
[16:04] <jml> Roll your own daemon? Use upstart? Use launchd? Use systemd?
[16:04] <jml> Want a GUI? Use Qt or GTK+? Is that Qt with QML or standard Qt? PyGTK or PyGI?
[16:04] <jml> Oh, you want an IDE? What, isn't vim good enough for you? Well, I guess there's umm...
[16:04] <jml> Eclipse, and Anjuta maybe.
[16:04] <jml> Lots and lots of choices.
[16:04] <jml> Also, neither Ubuntu nor Canonical really has any control over them
[16:05] <jml> We "just" import the best open source software and integrate it really well.
[16:05] <jml> So that's a really tough problem, and if you've got any great ideas I'd love to hear them. :)
[16:05] <jml> Hmm. This is getting rambly.
[16:05] <jml> Time for a list
[16:06] <jml> To make Ubuntu a proper, first-class developer platform, we need three things:
[16:06] <jml> a) a place -- developer.ubuntu.com
[16:06] <jml> b) a definition -- ???
[16:06] <jml> c) a channel
[16:06] <jml> By "channel", I mean a smooth, short, safe path from developers to their users and back again.
[16:06] <jml> At one end of the path is a developer who has just released a gold version of their app (or game or what-have-you)
[16:06] <jml> At the other end is a user who has just installed that app and is happily running it for the first time
[16:07] <jml> As a developer, I want to get from the first end to the second end as quickly as possible
[16:07] <jml> This is for two reasons
[16:07] <jml> The first is that a large part of the reason I write software is to have people _enjoy_ it. They can't do that until it's installed and running on their system.
[16:07] <jml> True fact.
[16:07] <jml> The second is that they probably won't give me any money until then, and I need money to fund my software writing habit.
[16:07] <jml> As a user, I want the same things, sort of.
[16:08] <jml> I want to get the latest apps and the latest updates for apps as soon as they are available. I don't want to wait.
[16:08] <jml> Also, if I have to pay for software, then I want it to be smooth, easy and safe, and I most definitely want it to go to the right person.
[16:08] <jml> And it's around this channel that a lot of exciting work is taking place
[16:09] <jml> Trying to make it smoother, shorter & safer both ways.
[16:09] <jml> Let's be more specific
[16:09] <jml> At the user end, we have the Software Center.

[16:09] <jml> There are a bunch of people working on this (mvo, tremolux, achuni, noodles, mpt, etc.)
[16:09] <jml> And it's a huge part of what we need to make Ubuntu a more attractive target for developers.
[16:10] <jml> If people can't figure out how to find the app they want, install it and run it, then there's no point in writing apps that they want, is there?
[16:10] <jml> There's also a bunch of associated stuff like ratings and reviews that fit in here.
[16:10] <jml> On the other end, the developer end, things are (to me) a little more interesting
[16:10] <jml> First up, Ubuntu's release cycle means that it takes between three to nine months to go from "released application" to "application in released Ubuntu"
[16:11] <jml> And if the Software Center only has apps that are in the released Ubuntu, that means 3-9 months before I can get *any* feedback from users
[16:11] <jml> Which is rubbish.
[16:11] <jml> (Well, thinking only as a developer who wants people using their app. The full picture is somewhat more nuanced.)
[16:11] <jml> Luckily, there are ways to get applications into the Software Center more quickly than that.
[16:11] <jml> If it's a paid app, then they can be submitted through <http://myapps.developer.ubuntu.com>.
[16:11] <jml> That can be if they're libre or proprietary. We don't care, as long as they are charged.
[16:12] <jml> More info tomorrow at 1900 UTC.
[16:12] <jml> If it's a free, libre app, then they can be submitted through the Ubuntu Application Review board
[16:12] <jml> I don't have a URL for that -- they are elusive folk
[16:12] <jml> (maybe someone else here does?)
[16:12] <jml> But you can get more info tomorrow at 2000 UTC
[16:13] <jml> All of this gets us the "short" part of that "smooth, short, safe" path I talked about
 url for ARB -- https://wiki.ubuntu.com/AppReviews
[16:14] <jml> But before *any* software can be installed from the Ubuntu Software Center, it has to be packaged.
[16:14] <jml> And frankly, many developers have neither the time nor the inclination to do so.
[16:14] <ClassBot> ali1234 asked: What about unpaid, proprietary apps?
[16:15] <jml> ali1234: They are a special case, and generally the authors of those have to speak directly to Canonical. I *think* (but am not 100% sure) that Skype is an example of this.
[16:15] <ClassBot> Andy80 asked: are you already in touch with Rovio guys? I'd like to have Angry Birds in Ubuntu. I can ask one of them if you want or make them and Canonical be in touch.
[16:16] <jml> Andy80: thanks. I'm pretty sure that Canonical has already been in touch with them. That'd be a great question to ask John Pugh in his session on Friday.
[16:16] <jml> ali1234: I think the partner repo is the current mechanism for getting unpaid, proprietary apps into Ubuntu
[16:16] <jml> ali1234: and if there are plans to change that, no one has told me.
[16:17] <jml> fwiw, Canonical's interest is in paid stuff, because we keep some of that money, and libre stuff, because we love open source and think it's vital to a sustainable platform.
[16:18] <jml> (he says, very broadly, as an informed engineer who doesn't make business decisions)
[16:18] <jml> anyway, where was I
[16:18] <jml> packaging!
[16:18] <jml> Lots of developers never ever want to do it.
[16:19] <jml> The Angry Birds guys, for example, probably never want to read the Debian policy manual
[16:19] <jml> (which has twelve chapters and seven appendices, just so you know)
[16:19] <jml> This makes that "smooth, short, safe" path I mentioned earlier a lot more rough and full of potholes
[16:19] <jml> Most of the work that I am doing currently is in making that smoother.
[16:20] <jml> I've been taking the great work that james_w has done on pkgme (http://pkgme.net)
[16:20] <jml> and have been making it automatically package binary tarballs
[16:21] <jml> since that's what we're getting when most people submit their apps to us
[16:21] <jml> We've got the proof-of-concept done
[16:21] <jml> ... and written up a spec: https://wiki.ubuntu.com/AutomagicBinaryPackaging
[16:21] <jml> And achuni's team have started adding hooks into myapps.developer.ubuntu.com
[16:22] <jml> so the idea will be that people can submit binary tarball over the web, and then they'll be automatically packaged, put into a PPA and queued for testing
[16:22] <jml> without the developer having to know anything about it
[16:23] <jml> pkgme is pretty generic, so we're also hoping (slightly longer range) to allow more "backends" than just binary tarball
[16:23] <jml> Python apps, Ruby apps, HTML 5 apps etc.
[16:23] <jml> for commercial apps, there's currently a very short turn-around time to getting them reviewed & approved
[16:24] <jml> for gratis+libre apps, it's a bit longer, but the ARB is working on that.
[16:24] <jml> (More info tomorrow at 2000 UTC w/ stgraber)
[16:24] <jml> There's a whole bunch of questions that will need to be answered
[16:25] <jml> A big one is safety
[16:25]  * jml decides about answering questions
[16:26] <jml> OK. But I really want to talk about safety and other controversial subjects :)
[16:26] <ClassBot> Andy80 asked: to make developers life easier, what do you think about preparing a better documentation for "Ubuntu API" ? I make you a clear example: without the suggestion from Andrea Azzarone I would never know that there was an "EmptyTrash" d-bus method exposed by Nautilus 3 :P luckly he told me about it and I was able to work on a bug in few hours.
[16:26] <jml> Andy80: heck yes.
[16:26] <jml> Andy80: we're hoping to start that sort of documentation with developer.ubuntu.com in the next few weeks
[16:26] <jml> Andy80: there are some things that make it complicated though
[16:27] <jml> 1. We have to make opinionated choices about what to document
[16:27] <jml> e.g. the ayatana notification bubble thingy is an obvious thing to document and call part of the "Ubuntu API"
[16:28] <jml> but when we pick Nautilus, we're implicitly saying that KDE isn't part of that Ubuntu API
[16:28] <jml> which is maybe fair enough
[16:28] <jml> the more options we provide, the more documentation we need to write *and* the more confusing that documentation becomes
[16:28] <jml> 2. There's a *lot* of stuff to document
[16:29] <jml> So it's going to have to be a Canonical + community effort. It's just too big a challenge.
[16:29] <jml> 3. It's got to be well coordinated and curated
[16:30] <jml> The last thing we want is a wiki full of docs that are of dubious quality & currency, and aren't findable. We want something that's better than MSDN, the Java docs, Android docs etc.
[16:30] <jml> 4. It's hard to guarantee such an API long term
[16:31] <jml> since we don't write the libraries, often.
[16:31] <jml> As an example, my friend & colleague ev has been porting a bunch of stuff from PyGTK to PyGI recently
[16:31] <jml> not because he wants to, or because it's fun, or even because it will provide a better user experience
[16:32] <jml> it's because PyGTK isn't supported any more for GTK3+ and PyGI is.
[16:32] <jml> That's a change in API that's beyond our control
[16:32] <jml> Ok, and last one...
[16:33] <jml> 5. To document something you have to figure it out
[16:33] <jml> and that can often take some time. e.g. rickspencer3's recent posts to planet about how to copy and paste in GTK+ apps, or drag and drop.
[16:34] <jml> Andy80: so yes, we'd love to do it, and in a few weeks when the new d.u.c is up, that will be the very beginning.
[16:34] <jml> and we'll need your help.
[16:34] <jml> OK.
[16:34] <jml> So we talked about how we're smoothing the path from user to developer by automatically packaging
[16:35] <jml> And how we're shortening it by enabling app authors to get their app onto stable versions of Ubuntu
[16:35] <jml> through either the ARB or myapps.developer.ubuntu.com
[16:35] <jml> I want to say a very little about how we're going to make it safe(r)
[16:35] <jml> Hmm.
[16:35] <jml> How do I put this
[16:36] <jml> If there's one thing we can learn from Windows, it's that it is a bad idea to let people download random crap from the Internet and then run it.
[16:36] <jml> And if we allow app authors to just write stuff and get it into the software center, then we have that problem
[16:37] <jml> "Review" and "testing" can't be the answer
[16:37] <jml> Some random website I looked at, which is therefore totally trustworthy, said that the iPhone app store gets over 1000 new apps submitted per day
[16:38] <jml> I want Ubuntu to be that popular for app authors
[16:38] <jml> But I also want Ubuntu to be the stable, trusty, well-integrated system that I know and love today.
[16:39] <jml> there's always going to be a lot of tension here
[16:39] <jml> but there's some technical stuff we can do to reduce that tension
[16:39] <jml> which is application isolation
[16:40] <jml> What we'd like to do (and this is all very vague atm) is have some way of automatically (maybe?) wrapping applications up in some sort of container so we can trust them to not do damage to the system
[16:40] <jml> Either accidentally or intentionally
[16:40] <jml> (actually, "accidentally" is probably the best thing to aim for. It's almost impossible to stop someone messing with your computer deliberately if you are running their code and they want it badly enough)
[16:41] <jml> Arkose (https://launchpad.net/arkose) by stgraber has made some great strides here
[16:41] <jml> I'm looking forward to playing with it (shamefully, I haven't yet), and maybe integrating it into pkgme or something similar
[16:41] <jml> Which would go some way to making that path safer.
[16:42] <ClassBot> Andy80 asked: don't you think that "isolating" apps could make applications only compatible with Ubuntu? For example if someone makes an application that works on 99% distro BUT it requires more coding to be compatible with Ubuntu, the developer would say: ok.. I don't release it for Ubuntu.
[16:42] <jml> Andy80: hmm. possibly.
[16:43] <jml> Andy80: I think there are a couple of things that would help there.
[16:43] <jml> first is that no one seems to have a problem with open source apps running uncontained
[16:43] <jml> because there's a chance to figure out what they are doing
[16:43] <jml> and so, I doubt anyone would push too hard for a mandatory containment policy for open source apps
[16:44] <jml> second, I think we can make it very little work
[16:44] <jml> just specifying what the app needs.
[16:45] <jml> third, to some extent, if you want to write a desktop app for linux *and* you want users, you probably want to make it work for Ubuntu
[16:45] <jml> but we can't rely on that.
[16:46] <jml> fourth, I hope that the benefits would be really obvious and that the idea wouldn't be too unfamiliar.
[16:46] <jml> I don't have an iPhone, but my Android phone has already made this concept pretty familiar to me.
[16:46] <ClassBot> Mipixal asked: Isn't  AppArmor an answer to wrapping applications ?
[16:46] <jml> Mipixal: yes. Or rather, it's part of the answer.
[16:47] <jml> Mipixal: the security folks I've spoken seem to be leaning towards some combination of AppArmor and Arkose
[16:47] <jml> spoken *to*, rather
[16:47] <jml> hmm.
[16:48] <jml> I think that's pretty much it.
[16:48] <jml> The idea is that with all of these pieces in place -- software center, developer portal, a defined platform, automagic packaging, safe mechanisms for distributing new apps & paying developers -- then Ubuntu becomes something that developers can seriously start to target
[16:48] <jml> Any more questions?
[16:49] <ClassBot> mohammedalieng asked: what about making an Ubuntu IDE, that's the default IDE for creating Ubuntu apps ?
[16:49] <jml> There isn't currently a default IDE.
[16:50] <jml> It would be a great thing to have something that is to Ubuntu what Xcode is to OS X
[16:50] <jml> However, I'm not going to write one :)
[16:50] <jml> And I don't know of anyone with serious plans along these lines.
[16:50] <ClassBot> There are 10 minutes remaining in the current session.
[16:50] <jml> I would suggest that the best place to start is by making one of the existing IDEs better.
[16:51] <jml> Right, eclipse would be a great place to start.
[16:51] <ClassBot> samtay asked: What about adding a donate button on open source projects in Ubuntu Software Center?
[16:51] <jml> +1 We want that so badly.
[16:51] <jml> But I don't know where it sits on the roadmap
[16:51] <ClassBot> ali1234 asked: What is the revenue split for paid apps?
[16:52] <jml> Canonical passes on 80% to the application author.
[16:53] <jml> I guess one thing I'd add, reminded by bUbu87's comment
[16:53] <jml> is that if we want way more apps
[16:53] <jml> we need way more developers
[16:53] <jml> and they will probably be people who are new to Ubuntu and the UNIX way of doing things
[16:54] <jml> people who look at me funny when I say I use emacs
[16:54] <jml> and make jokes about whether I bang rocks together to make fire also
[16:55] <jml> so part of who we're trying to appeal to now are the developers who are not yet using or even thinking of Ubuntu
[16:55] <jml> Anyway, that's it from me.
[16:55] <jml> Oh. Crap.
[16:55] <jml> One more thing
[16:55] <ClassBot> There are 5 minutes remaining in the current session.
[16:55] <jml> If you want, you can sell your libre application on the software center
[16:55] <jml> rickspencer3 is doing this with photobomb
[16:56] <jml> the code is fully available, there's a public ppa
[16:56] <jml> and that's one hack you can do if you want donations
[16:56] <jml> OK. That's really it.
[16:56] <jml> Ciao
[16:56] <jml> []
[17:00] <dpm> Thanks jml for a great session!
[17:00] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/09/05/%23ubuntu-classroom.html following the conclusion of the session.
[17:01] <dpm> Next up is Jonathan Riddell, the Kubuntu rockstar who's on his way of becoming a bzr rockstar this cycle too
[17:01] <Riddell> good day everyone
[17:02] <Riddell> I'm going to give an introduction to Bazaar Explorer
[17:02] <Riddell> and convince you it's a developer tool everyone should use
[17:02] <Riddell> you can follow along by following the images at http://ec2-184-72-177-203.compute-1.amazonaws.com/owncloud/
[17:02] <Riddell> access with guest/guest
[17:03] <Riddell> Bazaar is the world's finest revision control system
[17:03] <Riddell> if you're coding on files, or even have any non coding files you should use it to keep track of them
[17:03] <Riddell> it's fully distributed so you can use it to collaborate with others very easily
[17:04] <Riddell> you don't need a fancy server to use it, it works locally fine
[17:04] <Riddell> but it's also easy to put on a server, http or ssh is all you need
[17:04] <Riddell> if you don't want it distributed you don't have to
[17:04] <Riddell> and it's designed to be easy to use for people familiar with CVS or Subversion
[17:05] <Riddell> it gives the full power of tools like git but it's understandable to people other than Linus
[17:05] <Riddell> it's used everywhere in ubuntu
[17:05] <Riddell> to store all our packaging and code
[17:05] <Riddell> and it's used in large projects like mysql
[17:06] <Riddell> most people will be familiar with Bazaar through bzr, the command line interface
[17:06] <Riddell> command line interfaces are great for those of use who are comfortable with command lines
[17:07] <Riddell> but as Ubuntu spreads out amongst non-geeks we need it to be available to everyone
[17:07] <Riddell> and besides sometimes GUIs are just better even for hardcore geeks
[17:07] <Riddell> so Bazaar Explorer is the GUI for Bazaar
[17:07] <Riddell> well I should say it's /a/ GUI for Bazaar
[17:07] <Riddell> but it is by far the most complete
[17:08] <Riddell> bulldog98 asked: what toolkit is it written in?
[17:08] <Riddell> it's written in Qt with Python
[17:08] <Riddell> an excellent choice for writing any GUI application
[17:09] <Riddell> Qt means its cross platform so it runs anywhere
[17:09] <Riddell> Python means its easy to fix and improve
[17:09] <Riddell> you can install it from any package manager
[17:09] <Riddell> sudo apt-get install bzr-explorer   will do it
[17:10] <Riddell> and run it from the application menu where it's listed as Bazaar Explorer
[17:10] <Riddell> or from a command line as:  bzr explorer
[17:11] <Riddell> when you start it, it'll look like the image 01 on that owncloud server or http://www.flickr.com/photos/jriddell/6116796188/in/photostream
[17:11] <Riddell> actually if you've never used Bazaar before it'll probably prompt you for your name and e-mail first
[17:13] <ClassBot> bulldog98 asked: what toolkit is it written in?
[17:13] <ClassBot> bulldog98 asked: why does the oneiric package depends on tango? Can’t oxygen be used?
[17:13] <Riddell> hmm, this bot is fiddly
[17:13] <Riddell> it uses Tango icons, there's not currently an option to use Oxygen icons I'm afraid
[17:13] <Riddell> fixes welcome :)
[17:14] <Riddell> let's use bzr explorer to get some code
[17:14] <Riddell> http://www.flickr.com/photos/jriddell/6116252311/in/photostream  shows us going to the "Get project sources from elsewhere" tab
[17:15] <Riddell> I want to branch a project to make a change to it
[17:15] <Riddell> so I click on the Branch button and enter into the address box  lp:ubuntu-cdimage
[17:15] <Riddell> http://www.flickr.com/photos/jriddell/6116802008/in/photostream
[17:15] <Riddell> you can host Bazaar branches anywhere but one of the most common places to do so is in Launchpad
[17:16] <Riddell> which hosts any free software project for free, how very generous
[17:16] <Riddell> Launchpad branches have a nice shortcut to their location which is  lp:
[17:16] <Riddell> and in this case I'm wanting the trunk from the ubuntu-cdimage project
[17:16] <Riddell> so I tell it to branch that code
[17:17] <Riddell> http://www.flickr.com/photos/jriddell/6116257777/in/photostream
[17:17] <Riddell> ah but wait, what's this, which I like to initialise a shared repository?
[17:17] <Riddell> bzr is so good at making branches that it's common to make a new branch for any notable change
[17:18] <Riddell> then you can edit the branch with out worrying about mistakes
[17:18] <Riddell> and merge it into the main branch when you're happy
[17:18] <Riddell> this leaves a load of branch directories around on your hard disk
[17:18] <Riddell> which might be wasteful of disk space
[17:19] <Riddell> so a shared repository will share all the history which is the same in your branches
[17:19] <Riddell> so yes we do want to make the shared repository
[17:19] <Riddell> a new dialogue box pops up http://www.flickr.com/photos/jriddell/6116801334/in/photostream/
[17:20] <Riddell> we let it do its initialisation then we get the branch we want http://www.flickr.com/photos/jriddell/6116800620/in/photostream/
[17:20] <Riddell> an voila, bzr explorer is ready to work on this branch http://www.flickr.com/photos/jriddell/6116800344/in/photostream/
 I can’t see a pic in the owncloud server
[17:21] <Riddell> well just use the flickr images, they're the same
[17:21] <Riddell> if you look in a file manager it will have made a ubuntu-cdimage/ directory and within it a trunk/ directory
[17:22] <Riddell> the ubuntu-cdimage/ directory is our shared repository and the trunk/ directory is our branch we just made
[17:23] <Riddell> in the bottom right of Bazaar Explorer is the working tree, you can open files from there to edit them if you wish
[17:23] <Riddell> or open the whole directory in a file manager or an IDE
[17:23] <Riddell> today I'm going to add a new Ubuntu flavour
[17:23] <Riddell> Bazaarbuntu!
[17:23] <Riddell> it's going to be the distro to take over the world
[17:24] <Riddell> so I'll edit the file in ubuntu-cdimage to start making those CD images http://www.flickr.com/photos/jriddell/6116800100/in/photostream/
[17:25] <Riddell> having made the edit the Bazaar Explorer page will refresh to note that I have changes
[17:25] <Riddell> (if it doesn't automatically refresh then you have a version without my automatic refresh patch, you can click the "refresh" button)
[17:25] <Riddell> if I want to see my changes I can click on Diff  http://www.flickr.com/photos/jriddell/6116255747/in/photostream/
[17:26] <Riddell> and if I want to save the change to the Bazaar repository I can click on commit  http://www.flickr.com/photos/jriddell/6116804398/in/photostream
[17:27] <Riddell> this will save the change to my local branch
[17:27] <Riddell> but now I want to publish the change to the wider world so I need to push it to another location which is publically available
[17:27] <Riddell> http://www.flickr.com/photos/jriddell/6116803820/in/photostream/
[17:27] <Riddell> there I'm pushing it to a branch on Launchpad
[17:29] <Riddell> so now anyone can see my branch on the web https://code.launchpad.net/~jr/+junk/bazaarbuntu
[17:29] <Riddell> and anyone can download it or review the change
[17:29] <Riddell> Bazaar Explorer can access most of the functions of bzr, such as looking at the log of commits
[17:29] <Riddell> http://www.flickr.com/photos/jriddell/6116803174/in/photostream/
[17:30] <Riddell> http://www.flickr.com/photos/jriddell/6116258943/in/photostream/
[17:30] <Riddell> infact it can access all the functions of bzr because if there's a bzr command without a gui you can use the "All" option to run it
[17:31] <Riddell> if I want to make more complex changes I probably want to make a new local branch http://www.flickr.com/photos/jriddell/6116802386/in/photostream/
[17:32] <Riddell> and work on that, then merge it in to trunk when I'm happy
[17:33] <Riddell> of course you don't always care about having branches
[17:34] <Riddell> you might prefer to work more like subversion or cvs where you just checkout directly from the server
[17:34] <Riddell> and commit directly back
[17:34] <Riddell> Bazaar and Bazaar Explorer support this
[17:34] <Riddell> back on the welcome page i click Checkout http://www.flickr.com/photos/jriddell/6116798884
[17:35] <Riddell> here I checkout the ubuntu seeds
[17:35] <Riddell> I make my change (adding bzr-explorer)
[17:35] <Riddell> and commit directly back http://www.flickr.com/photos/jriddell/6116798624/
[17:35] <Riddell> that's working with existing projects
[17:36] <Riddell> but we are App Developers and we want to make our own projects!
[17:36] <Riddell> the Welcome page has a "Start a new Project" tab
[17:36] <Riddell> http://www.flickr.com/photos/jriddell/6116798364
[17:37] <Riddell> I initialise a new project
[17:37] <Riddell> there's a few options for what sort of branch you want, Feature Branches is the best sort for most cases
[17:37] <Riddell> that'll make a shared repository and a trunk branch inside it
[17:38] <Riddell> http://www.flickr.com/photos/jriddell/6116798064
[17:38] <Riddell> this takes us to a new page which lists the available branches
[17:38] <Riddell> from here we can open a branch or make a new one
[17:39] <Riddell> as a new project working on trunk is expected so we can add our files http://www.flickr.com/photos/jriddell/6116254211
[17:39] <Riddell> and commit them http://www.flickr.com/photos/jriddell/6116253927
[17:39] <Riddell> http://www.flickr.com/photos/jriddell/6116797120
[17:39] <Riddell> and if I wanted I could push it to Launchpad or anywhere else
 bazaar explorer is awesome!
[17:40] <Riddell> why thank you trinikrono, free hugs to you
[17:40] <Riddell> now I said that Bazaar is used throughtout Ubuntu
[17:41] <Riddell> we now have (almost) every ubuntu package kept in a Bazaar branch
[17:41] <Riddell> so you can use Bazaar Explorer to branch any Ubuntu package if you feel the need to fix it or otherwise look at the source code
[17:41] <Riddell> http://www.flickr.com/photos/jriddell/6116796880
[17:42] <Riddell> here I'm getting the code to Ubuntu's choqok package
[17:42] <Riddell> by branching   ubuntu:choqok
[17:42] <Riddell> which gives me the code to work on http://www.flickr.com/photos/jriddell/6116796608
[17:42] <ClassBot> bUbu87 asked: so upstream development just maps to pull requests on the package's launchpad branch?
[17:43] <Riddell> bUbu87: you're talking about the Ubuntu package branches?  Those are imports of packages in Ubuntu so they're not the upstream development branch
[17:43] <Riddell> so if you want to fix a problem which is specific to ubuntu then use those
[17:44] <Riddell> if it's a general problem in the program then use the normal upstream code whereeever that is kept
[17:45] <Riddell> Bazaar Explorer is a nice GUI which works along with your IDE or file manager/text editor for working with code in Bazaar branches
[17:45] <Riddell> there is a half way between the GUI and command line interfaces
[17:46] <Riddell> which is to launch QBzr commands directly from the command line
[17:46] <Riddell> so if you're into using command lines but want an easier way to, say, browse a branch history you can run
[17:46] <Riddell> bzr qlog
[17:46] <Riddell> instead of bzr log
[17:46] <Riddell> which will give you a GUi to look at the log
[17:47] <Riddell> I use this a lot whenever the history is more complex than straight commits
[17:48] <Riddell> the same goes for   bzr qcommit  or bzr qbranch
[17:48] <Riddell> it's a nice alternative for when the command line is showing its limitations
[17:48] <ClassBot> dpm asked: are there Bazaar Explorer packages for platforms other than Ubuntu? (e.g. Win, Mac...)
[17:49] <Riddell> if you install Bazaaron Windows the installer comes with explorer
[17:49] <Riddell> same for Mac I'm sure
[17:49] <Riddell> so it's actually the main UI for non-Linux users
[17:50] <Riddell> which is why if you follow the Take the Tour link on http://bazaar.canonical.com/en/  it shows you Bazaar Explorer
[17:50] <Riddell> that's all I have prepared, any other questions?
[17:50] <ClassBot> There are 10 minutes remaining in the current session.
[17:51] <ClassBot> bulldog98 asked: will there be a port to freedesktop icon usage?
[17:51] <Riddell> I see this is an important issue for you :)
[17:52] <Riddell> I think when Bazaar Explorer was started Tango was the obvious choice
[17:52] <Riddell> since then Oxygen has come along and the freedesktop icon standard is more available
[17:52] <Riddell> but I don't think freedesktop icons are built into Qt so there's a little bit of code needed there
[17:53] <Riddell> do file a bug if it's something you want done and hopefully we'll get round to iy
[17:53] <Riddell> it
[17:53] <ClassBot> dpm asked: apart from Bazaar Explorer, are there other recommended graphical tools? I.e. I know there's qbzr and bzr-gtk, but I don't know if picking one over the other is a matter of choice or whether there is a recommended one to use
[17:53] <Riddell> qbzr is the GUi for individual commands
[17:53] <Riddell> e.g.  bzr qlog
[17:54] <Riddell> when you ask Bazaar Explorer to show you the branch log it will run  QBzr's qlog
[17:54] <Riddell> you can also tell Bazaar Explorer to run bzr-gtk commands instead of QBzr if you really want
[17:54] <Riddell> but QBzr is generally better maintained and is the default
[17:55] <Riddell> the other main graphical tool is Loggerhead which is the web UI
[17:55] <ClassBot> There are 5 minutes remaining in the current session.
[17:55] <Riddell> elite Bazaar hackers recently changed that from spitting out HTML directly to spitting out JSON so it's now a lot more flexible as a way of making UIs
[17:56] <Riddell> e.g. Launchpad can now show you a recent changes diff for merge proposals
[17:56] <Riddell> there's some other UIs such as my own Dolphin Bazaar plugin for KDE's file manager
[17:56] <Riddell> and there's even some experimental integration with Qt Creator
[17:57] <ClassBot> bulldog98 asked: is there a graphical way to see my bazaar config, eg what bazaar plugins are run after a commit (cia-client?)
[17:57] <Riddell> The settings menu lets you change your Bazaar config
[17:58] <Riddell> but it doesn't do everything from a GUI
[17:58] <Riddell> User Configuration has your user setup
[17:58] <Riddell> but stuff like cia plugin config can only be done with editing a text file for now (Settings -> Locations)
[17:59] <Riddell> Bazaar Explorer is extendable so it should be possible for the bzr-cia plugin to add that
[17:59] <ClassBot> Mipixal asked: What about Bazaar branches that are mirrored from other sources (not hosted on Launchpad). Does pushing commits make them available only on Launchpad or to original sources  too ?
[18:00] <Riddell> it depends where you push them
[18:00] <Riddell> if you push them back to where you got it from then it'll be available in the same place
[18:00] <Riddell> if you push it to Launchpad it'll be available on Launchpad
[18:00] <Riddell> there's no fixed tie in between bzr and Launchpad
[18:00] <Riddell> it's just that Launchpad has been designed to work very well with Bazaar
[18:00] <Riddell> time up!
[18:00] <dpm> Thanks Riddell for a really awesome session - even with pictures!
[18:00] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/09/05/%23ubuntu-classroom.html following the conclusion of the session.
[18:01] <dpm> Next up is Jason DeRose, of Novacut fame, who'll be talking about how to make the best use of Launchpad for your project
[18:01] <dpm> jderose, the floor is yours!
[18:01] <jderose> dpm: thanks!
[18:01] <jderose> Hello everyone!  My name is Jason Gerard DeRose.
[18:02] <jderose> True story: I include my middle name so I'm not confused with the Jason DeRose who is a reporter for NPR :P
[18:02] <jderose> I'm the lead Novacut developer: https://wiki.ubuntu.com/Novacut
[18:02] <jderose> The Novacut project uses Launchpad extensively.
[18:02] <jderose> I also think Novacut uses Launchpad rather well, thanks to rockstar (aka Paul Hummer): https://launchpad.net/~rockstar
[18:02] <jderose> About 8 months ago, rockstar was kind enough to spend a few hours schooling me on Launchpad best practices.
[18:03] <jderose> rockstar gave me an opinionated recipe that allowed Novacut to use Launchpad well from the start.
[18:03] <jderose> So that's what this session is about: Launchpad best practices, boiled down into a step-by-step recipe that you can use in your own project.
[18:03] <jderose> rockstar's advice is too good not to share, plus I'm going to share some of my own lessons.
[18:03] <jderose> I have the session split into 3 sections:
[18:04] <jderose> (1) Why host your upstream app on Launchpad?
[18:04] <jderose> (2) Setting up your app on Launchpad
[18:04] <jderose> (3) Using Launchpad to engage developers
[18:04] <jderose> Please feel free to ask questions at any time in #ubuntu-classroom-chat, plus I'll have some time at the end devoted to questions.
[18:04] <jderose> Okay, here we go!
[18:04] <jderose> == Why host your upstream app on Launchpad? ==
[18:05] <jderose> Question: why host on Launchpad instead of, say, github?
[18:05] <jderose> Answer: PPAs, Daily Builds, and tens of millions of Ubuntu users!
[18:05] <jderose> I'm a firm believer in getting reality checks from your target users as often as possible.
[18:05] <jderose> You don't want to do too much development before getting that software into your target users hands.
[18:06] <jderose> Otherwise you're almost certain to get off track.
[18:06] <jderose> And assuming your target user isn't "geeky developers", it needs to be easy for your users to install your app and get updates.
[18:06] <jderose> PPAs (Personal Package Archives) are fantastic for this.
[18:06] <jderose> PPAs are easy enough to add that I think whoever your target user is, a decent percentage will be comfortable adding your PPA and using your app that way.
[18:07] <jderose> For example, Novacut has a Stable Releases PPA where we publish our monthly releases:
[18:07] <jderose> https://launchpad.net/~novacut/+archive/stable
[18:07] <jderose> Novacut also has a Daily Builds PPA where we publish automated daily builds of all our components:
[18:07] <jderose> https://launchpad.net/~novacut/+archive/daily
[18:08] <jderose> We do our daily builds using the amazing and totally fantastic Source Package Recipes!
[18:08] <jderose> Which are a relatively new Launchpad feature: https://help.launchpad.net/Packaging/SourceBuilds
[18:08] <jderose> For example, this is the recipe for the dmedia daily build:
[18:08] <jderose> https://code.launchpad.net/~novacut/+recipe/dmedia-daily
[18:09] <jderose> Now you don't need (nor want) your entire user base using your daily builds.  You just need a representative sample.
[18:09] <jderose> And, again, I feel PPAs are easy enough to add to the software center that you get that representative sample
[18:10] <jderose> Daily builds are also a great convenience for developers and in my experience are quite effective developer outreach.
[18:10] <jderose> Daily builds also help keep your trunk in a high-quality, releasable state.
[18:10] <jderose> Thanks to something I learned from Barry Warsaw during the previous Ubuntu App Developer Week, we even run our Python unit tests during the daily builds.
[18:10] <jderose> (See the IRC logs: https://wiki.ubuntu.com/MeetingLogs/appdevweek1104/RockSolidPython)
[18:11] <jderose> == Setting up your app on Launchpad ==
[18:11] <jderose> I'm going to walk you through setting up a project, a team, and PPAs for your app.
[18:11] <jderose> I recommend you walk through these steps with me using the Launchpad sandbox: https://qastaging.launchpad.net/
[18:12] <ClassBot> paglia_s asked: do you advise launchpad for project not related to Ubuntu? Why to use it instead of github for example for my new web app?
[18:12] <jderose> paglia_s: well, i'd say it depends first of all on whether you like using bzr + Launchpad or git + Github
[18:13] <jderose> obviously a webapp doesn't benefit from daily builds
[18:13] <jderose> one think i well say about launchpad is i think it has a better team workflow than anything else right now
[18:14] <jderose> personally, i'd use launchpad, but that's because git kinda drives me crazy :P
[18:14] <jderose> not that git isn't a fantastic tool, mind you
[18:14] <jderose> okay...
[18:14] <jderose> I recommend you walk through these steps with me using the Launchpad sandbox: https://qastaging.launchpad.net/
[18:14] <jderose> Changes in the sandbox aren't permanent, don't affect the "real" Launchpad.
[18:15] <jderose> One quick digression: when you do this for real, take the time to pick a good name for your app!
[18:15] <jderose> Pick a name that is easy to spell, easy to remember.
[18:15] <jderose> Pick a name that you can build a strong brand around!
[18:15] <jderose> But in the sandbox, you'll just have to pick a project & group name that doesn't exist yet.
[18:15] <jderose> We wont judge anyone based on bad app names in the sandbox :P
[18:15] <jderose> For my example, I'm going to use one of *my* personal favorite projects on Launchpad.
[18:15] <jderose> But granted, I'm rather biased :-D
[18:16] <jderose> ** Step1, register a project: https://qastaging.launchpad.net/projects/+new
[18:16] <jderose> // Name: Novacut
[18:16] <jderose> // URL: novacut
[18:16] <jderose> // Title: Novacut Video Editor
[18:16] <jderose> // Summary: Novacut is a collaborative video editor...
[18:16] <jderose> Now something to point out about these fields is that you cannot change the URL after you create the project.
[18:16] <jderose> The URL is really your app name, as far as Launchpad goes, and so this is permanent.
[18:17] <jderose> The Name, Title, and Summary fields can all be changed.
[18:17] <jderose> If possible, I recommend the URL (Launchpad name) be what you use to namespace your app everywhere.
[18:17] <jderose> For example, "novacut" is the name of the Novacut Python package, and its Debian source package.
[18:17] <jderose> Okay, now click "Continue" and Launchpad will likely show you a list of similar sounding projects, to help make sure the same project doesn't get registered twice.
[18:17] <jderose> If this happens, click "No, this is a new project".
[18:17] <jderose> Now you'll be at the "Step 2 (of 2) Registration details" page.
[18:18] <jderose> The only thing you must do here is indicate the license(s) your software uses.
[18:18] <jderose> Launchpad provides free project hosting for open-source software, but not for proprietary software.
[18:18] <jderose> (Although there is paid hosting available for proprietary software.)
[18:18] <jderose> When in doubt, I go with GNU GPL v3, but that's just me ;)
[18:19] <jderose> Anyway, pick at least one license, and the click "Complete Registration".
[18:19] <jderose> ** Step2, register a team: https://qastaging.launchpad.net/people/+newteam
[18:19] <jderose> // Name: novacut
[18:19] <jderose> // Display Name: Novacut Dev
[18:19] <jderose> On the team page, the "Name" is the Launchpad name of the team, the thing that can't be changed.
[18:20] <jderose> The team will be the owner of the PPAs you use for your app, and that's why you want a team name that matches the project name (more on that in a moment).
[18:20] <jderose> Leave the rest of the fields as they are, and then click on "Create Team".
[18:20] <jderose> ** Step3, create PPAs
[18:21] <jderose> You'll create two PPAs, one for daily builds and another for stable releases.
[18:21] <jderose> On the page for the team you just created, you'll see a "Personal package archives" section.
[18:21] <jderose> Click "Create a new PPA":
[18:21] <jderose> // URL: daily
[18:21] <jderose> // Display name: Novacut Daily Builds
[18:22] <jderose> Check "I have read and accepted the PPA Terms of Use", and the click "Activate".
[18:22] <jderose> You'll be at the page for the PPA you just created.  Click "Overview" to go back to the team page.
[18:22] <jderose> Click on "Create a new PPA" again, this time you'll create the stable releases PPA:
[18:22] <jderose> // URL: stable
[18:22] <jderose> // Display name: Novacut Stable Release
[18:22] <jderose> And then click on "Activate".
[18:23] <jderose> Now the shortcut-URI used to add a PPA into the Ubuntu Software Center is:
[18:23] <jderose> ppa:team-name/ppa-name
[18:23] <jderose> That's the reason I recommend you create a team with the same name as the project... consistent, easy to remember branding.
[18:24] <jderose> So in the Novacut example, we have two PPAs:
[18:24] <jderose> ppa:novacut/daily
[18:24] <jderose> ppa:novacut/stable
[18:25] <jderose> In terms of spreading awareness of these PPAs, it's good that their ppa:novacut/* instead of ppa:jasons-awesome-team/*
[18:25] <jderose> :-D
[18:25] <jderose> I've seen the "daily" and "stable" PPA names used a lot on Launchpad, and I'm personally on a mission to have more projects adopt the convention.
[18:25] <jderose> The reason is it makes Launchpad easier to use, and I believe strengthens it as an ecosystem.
[18:26] <jderose> Say you learn about PPAs via Novacut, but then get interested in the "foo" project.
[18:26] <jderose> Wouldn't it be nice if there were familiar ppa:foo/daily and ppa:foo/stable PPAs?
[18:27] <jderose> ## So in summary... ##
[18:27] <jderose> Create a project: https://launchpad.net/novacut
[18:27] <jderose> Create a team with the same name: https://launchpad.net/~novacut
[18:27] <jderose> Create daily PPA like ppa:novacut/daily
[18:27] <jderose> Create a stable PPA like ppa:novacut/stable
[18:28] <jderose> So I pause a moment... does anyone have any questions before we switch gears a bit?
[18:28] <jderose> okay, moving on...
[18:29] <jderose> == Using Launchpad to engage developers ==
[18:29] <jderose> Now this last section is really all rockstar's advice.
[18:29] <jderose> I could have called this section "day to day Launchpad workflow"...
[18:29] <jderose> But as long as you're developing out in the open, it might as well have the side effect of attracting new developers!
[18:30] <jderose> ** Plan releases using bugs and milestones
[18:30] <jderose> Novacut does monthly release of all our components, and each month has a corresponding milestone in Launchpad.
[18:30] <jderose> For example, the 11.09 `novacut` milestone: https://launchpad.net/novacut/+milestone/11.09
[18:30] <jderose> Or the 11.09 `microfiber` milestone: https://launchpad.net/microfiber
[18:31] <jderose> Based on rockstar's advice, we plan our features using bugs rather than blueprints.
[18:31] <jderose> (rockstar said that aside from planning Ubuntu Developer Summits, blueprints aren't used that much.)
[18:32] <jderose> rockstar didn't go into all the details as to why he recommended using bugs over blueprints, but i trust him on this... plus
[18:32] <jderose> in my experience bugs seems more "actionable" than blueprints... and i'm an action oriented person, so i like that :)
[18:33] <jderose> At the start of each monthly cycle, we have an idea of what bugs we'd like to land in that release, and they're targeted to that milestone.
[18:33] <jderose> When release day comes, bugs that haven't landed just get re-targeted to the next milestone.
[18:33] <jderose> I usually target what I consider the highest priority bugs to the current milestone, and lower priority to the next.
[18:34] <ClassBot> Odd-rationale asked: Is that retargeting automatic?
[18:34] <jderose> Odd-rationale: no, it isn't, at least not through the web interface... you can do it through the launchpad API, although I haven't played with this myself
[18:35] <jderose> this is something i'd like to see improved in launchpad... more automation through the web interface, especially along these best practice workflows
[18:36] <jderose> The milestone gives interested people a way to see what's going on in the near term, where they might get involved should the be interested.
[18:36] <jderose> There are also several people that follow the progress by subscribing to the bug mail.
[18:38] <jderose> Which I was rather surprised by, actually... but it means there are some people that know the software quite well, even though they've never tackled a bug or code review
[18:38] <jderose> which is awesome :)
[18:38] <jderose> ** Have a ready supply of Bite Size bugs
[18:38] <jderose> "Bite size" bugs are small features or fixes that should be rather easy for a new developer to take on.
[18:38] <jderose> I recommend following the same convention that Ubuntu does and tagging these bugs "bitesize".
[18:39] <jderose> For example: https://bugs.launchpad.net/novacut/+bugs?field.tag=bitesize
[18:39] <jderose> I've also started putting [BiteSize] in the bug summary.
[18:40] <jderose> After my experience the last year mentoring on bitesize bugs, I'd say the most important thing is just to get people through the bzr + Launchpad workflow steps.
[18:40] <jderose> People might be new to these tools, so you want the actual bug to be very simple.
[18:40] <jderose> In my experience, you'll get a lot better response if you promote new bitesize bugs as you file them, for example on Twitter, Google+, etc
[18:41] <jderose> Now bitesize bug are interesting critters in that you never know what bug someone will bite on :)
[18:41] <jderose> People will surprise you
[18:42] <jderose> But this also means... if a bitesize but is blocking other work, you don't want to let it sit out there for too long
[18:42] <jderose> At least in my experience, if someone is going to take on a bitsize bug, they usually do so shortly after it's filed
[18:43] <jderose> So if it's been a week or more, don't feel bad about doing the bitsize bug yourself to keep the pace high
[18:43] <jderose> ** Do code reviews
[18:43] <jderose> I think bzr + Launchpad provide a fantastic team workflow, and part of that workflow are code reviews.
[18:43] <jderose> In my mind, the most import part of doing code reviews is to make sure that at least 2 people are familiar with every bit of code.
[18:44] <jderose> Yes, bugs may be found, design issues might be critiqued.
[18:44] <jderose> But more often, it's just one developer explaining the change to another.
[18:44] <jderose> Code reviews are also a way to get new developers engaged in the project.
[18:44] <jderose> In my personal experience, new devs have started with bitesize bugs more often than code reviews, but the code reviews are priceless all the same.
[18:45] <jderose> Also, Launchpad is quite generous with Karma for code reviews... and people like that :)
[18:46] <jderose> Like with bitesize bugs, you'll get a more responses on your code reviews if you promote them on Twitter, Google+, etc
[18:46] <jderose> ** Make sure your Launchpad project page is useful!
[18:46] <ClassBot> paglia_s asked: i've noticed that launchpad is quit slow loading pages... there are plan to improve the load time?
[18:47] <jderose> paglia_s: well, i'm not a launchpad developer, so i can't answer definitively... but i know performance improvements are always a priority
[18:48] <jderose> but i do agree that slow load times are the biggest problem with launchpad
[18:48] <jderose> overall things seemed to have improved a lot over say the past year
[18:48] <jderose> but sometime it still feels to slow
[18:48] <jderose> ** Make sure your Launchpad project page is useful!
[18:49] <jderose> The "Description" field is a good place to put links to useful things.
[18:49] <jderose> I think you would always link to your Daily and Stable PPAs from here, and also have a link to bitesize bugs and active-reviews.
[18:49] <jderose> To use my favorite example again: https://launchpad.net/novacut
[18:49] <jderose> Also, if there is developer or user documentation on the web, please link to that also!
[18:49] <jderose> This is a place where my favorite project gets and F right now :(
[18:50] <jderose> A place we need to improve, and are working on it
[18:50] <jderose> == Okay, Questions? ==
[18:50] <ClassBot> There are 10 minutes remaining in the current session.
[18:51] <ClassBot> Odd-rationale asked: Can you explain what is a code review? Is it like a merge request?
[18:51] <jderose> Odd-rationale: yeah, exactly... i mean a merge request, should have made that clear
[18:51] <jderose> now, rockstar had great advice here for me:
[18:52] <jderose> even if you made the merge request, and it's for your project, try to get someone from the community to approve the merge
[18:52] <jderose> obviously you don't need permission to merge into your own project :)
[18:53] <jderose> but this is an opportunity to build knowledge of the code :)
[18:53] <jderose> but like bitesize bugs... i wouldn't let reviews block you for too long
[18:54] <jderose> if no one is interested after a few weeks, just self approve it :)
[18:54] <jderose> although these days there are enough novacut regulars that i pester one of them into doing the review if no newcomers have taken interest
[18:54] <jderose> any other questions?
[18:55] <ClassBot> There are 5 minutes remaining in the current session.
[18:56] <jderose> BTW, the merge request + review is a big part of why I think launchpad has such an effective team workflow
[18:56] <jderose> And one last thing, if anyone has any questions about any of this later, you can always find me in #novacut :-D
[18:56] <jderose> And rockstar generally lurks in #novacut too, so you can go to the source
[18:57] <jderose> Well, the time is running down.... I'll try to think of something awesome to say...
[18:58] <jderose> And in the mean time, I hope everyone has a great App Developer Week! There is always so much to learn... and great people to meet
[18:59] <jderose> awesome thing: let's turn the design rigor up to 11 and make apps that exceed everything else in the industry... because that sounds more fun than playing catch up :-D
[19:00] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/09/05/%23ubuntu-classroom.html following the conclusion of the session.
[19:01] <AlanBell> good morning/afternoon/evening all
[19:01] <AlanBell> welcome to this Application Developer week session on Python
[19:02] <AlanBell> so after jderose turning things up to 11 we are going to go back and start with 1 2 3
[19:02] <AlanBell> This session is an introduction to Python from the very very beginning, I going to do my best to assume no prior knowledge at all.
[19:02] <AlanBell> just so I can see who is here say hi in the #ubuntu-classroom-chat channel o/
[19:03] <AlanBell> great, I love to have an audience :)
[19:03] <AlanBell> so Python is a programming language, but not a scary hard one.
[19:03] <AlanBell> Python is kind of like BASIC, except you don't have to be embarrassed about saying you are a Python programmer!
[19:04] <AlanBell> we are going to write a computer program, which is a set of instructions to the computer to tell it to do some interesting stuff for us.
[19:04] <AlanBell> Lets get set up first, we are going to need a text editor to write the instructions in and a terminal to tell the computer to do the instructions.
[19:05] <AlanBell> hopefully you will find them next to each other in the Applications-Accessories menu
[19:05] <AlanBell> or if you are using unity hit the super key and type gedit and return for the editor
[19:05] <AlanBell> and terminal for the terminal
[19:06] <AlanBell> they are also somewhere to be found in the apps lens, but that is another story altogether
[19:06] <AlanBell> so open both of them now and get comfortable with the three windows on screen, IRC, terminal and gedit
[19:06] <AlanBell> are we sitting comfortably?
[19:07] <AlanBell> plain old text editor is perfect, none of your fancy IDEs for this session
[19:08] <AlanBell> Traditionally the first program you should write in any language is one to get the computer to say hello to the world! so lets do that.
[19:08] <AlanBell> in the text editor type the following:
[19:08] <AlanBell> print "Hello, World!"
[19:09] <AlanBell> that is it, your first program, now lets save it and run it (I did tell you it looked like BASIC)
[19:09] <AlanBell> file-save as and call it hello.py
[19:09] <AlanBell> this will save it into your home directory by default, fine for now, but you would probably want to be a bit more organised when doing something serious
[19:10] <AlanBell> feel free to be more organised right now if you like :)
[19:10] <AlanBell> ok, now in the terminal lets run the program
[19:10] <AlanBell> python hello.py
[19:10] <AlanBell> did it say hello to you?
[19:12] <AlanBell> as I saved it in the home directory and terminal starts there by default it should just work, if you are putting things in folders you might need to navigate to it with the cd command or specify the path to the program
[19:13] <AlanBell> ok, so that was running the program by running python then the name of our application, but we can do it a different way, by telling Ubuntu that our program is executable
[19:13] <AlanBell> What we are going to do now is try to make our program directly executable, in the terminal we are going to CHange the MODe of the program to tell Ubuntu that it is eXecutable
[19:13] <AlanBell> so at the $ prompt of the terminal type:
[19:13] <AlanBell> chmod +x hello.py
[19:14] <AlanBell> now we can try to run it
[19:14] <AlanBell> again at the $ prompt
[19:14] <AlanBell> ./hello.py
[19:14] <AlanBell> oh noes!!!
[19:14] <AlanBell> Warning: unknown mime-type for "Hello, World!" -- using "application/octet-stream"
[19:14] <AlanBell> everyone get that?
[19:16] <AlanBell> ubuntu doesn't know how to run this application yet, we need to add some extra magic at the top of our program to help it understand what to do with it.
[19:16] <AlanBell> back in the editor, above the print "Hello, World!" add the following line
[19:16] <AlanBell> #!/usr/bin/env python
[19:16] <AlanBell> so the /usr/bin/env bit is some magic that helps it find stuff, and the thing it needs to run this application is python
[19:16] <AlanBell> now you should be able to save that and flip back to the terminal and run your program
[19:17] <AlanBell> ./hello.py
[19:17] <AlanBell> that should now run :)
[19:18] <AlanBell> as has been pointed out in python 3 you need to put brackets round the string so
[19:18] <AlanBell> print ("hello world")
[19:19] <AlanBell> which works in all versions of python
[19:20] <AlanBell> OK, lets go on to the next concept, giving our program some structure
[19:20] <AlanBell> back to the editor, and between the two lines we have already add a new line
[19:20] <AlanBell> while 2+2==4:
[19:20] <AlanBell> and on the next line put four spaces before the print ("Hello, World!")
[19:20] <AlanBell> and save that
[19:21] <ClassBot> Moshanator asked: can i just ./hello.py?
[19:21] <ClassBot> lunzie asked:  are the quote brackets proper form?
[19:21] <AlanBell> the brackets round the quotes are better form as they work on python 3
[19:22] <AlanBell> so the while statement we added starts a loop, in this instance it will carry on until 2+2 is equal to something other than 4
[19:22] <AlanBell> the double equals means "is equal to" a single equals is used to assign a value to something (more on that later)
[19:23] <AlanBell> the colon at the end is an important part of the while statement
[19:23] <AlanBell> There is no "until" "wend" "end while" type statement at the end, as you might expect to find in lesser languages :)
[19:23] <AlanBell> the indentation of the print statement is not just cosmetic and for our benefit
[19:23] <AlanBell> the indentation level is part of the language, when the indentation stops that is the end of the loop (or other structure that you might expect to have an end)
[19:24] <AlanBell> this means that python always looks neat and tidy (or it doesn't work)
[19:24] <AlanBell> Always use four spaces to indent, not three, not five and certainly not a tab.
[19:24] <AlanBell> Other indentations will work, but if you ever have to work with anyone else you must always be using the same indentation, so we all get in the habit of using four spaces.
[19:24] <AlanBell> in gedit you can set it up to use 4 spaces instead of a tab
[19:25] <AlanBell> edit-preferences, on the editor tab choose tab width 4 and insert spaces instead of tabs
[19:25] <AlanBell> many other editors and IDEs have a similar option
[19:25] <AlanBell> Lets run our new program, just save it in the editor and run it again in the terminal with ./hello.py
[19:26] <AlanBell> and that is 4 spaces per level of indentation you want so if you have a loop in a loop then the inner one will be 8 spaces indented
[19:26] <AlanBell> now we can wait for 2+2 to be something other than 4
[19:26]  * AlanBell taps fingers
[19:27] <AlanBell> or, if you are in a hurry, you can press ctrl+c
[19:28] <AlanBell> ok, so ctrl+c is handy for breaking in to an out-of-control python program
[19:28] <AlanBell> you can do other fun stuff with the print statement, if you change it to read:
[19:28] <AlanBell>     print "Ubuntu totally rocks!   ",
[19:28] <AlanBell> and run it again (note the comma at the end)
[19:29] <AlanBell>     print ("Ubuntu totally rocks!   "),  <- for the python 3 contingent I should think
[19:30] <AlanBell> it should fill the terminal with text
[19:30] <AlanBell> the comma prevents it doing a newline
[19:31] <AlanBell> ctrl+c again to break out of it
[19:31] <AlanBell> lets do something different now
[19:31] <AlanBell> in the terminal, type python at the $ prompt and hit return
[19:31] <AlanBell> you should have a >>> prompt and a cursor
[19:32] <AlanBell> this is the interactive python console
[19:32] <AlanBell> you can type print("hello") here if you want
[19:32] <AlanBell> or do some maths like:
[19:32] <AlanBell> print 2**1000
[19:32] <AlanBell> which will show you the result of 2 multiplied by itself a thousand times
[19:33] <AlanBell> python is kinda good at maths
[19:33] <AlanBell> you don't need the print statement here either
[19:33] <AlanBell> so 2**1000 should work in python 2.7 or 3
[19:34] <AlanBell> you could even try 2**100000 it won't take long, and you can always stop it with ctrl+c
[19:35] <AlanBell> while we are on the subject of maths, lets get the value of pi
[19:36] <AlanBell> print pi won't do anything useful (but feel free to try it)
[19:36] <AlanBell> we need more maths ability than the python language has built in
[19:37] <AlanBell> so we need to get a library of specialist maths stuff, so type
[19:37] <AlanBell> import math
[19:37] <AlanBell> it will look like it did nothing, but don't worry
[19:37] <AlanBell> now type
[19:37] <AlanBell> math.pi
[19:37] <AlanBell> >>> import math
[19:37] <AlanBell> >>> math.pi
[19:37] <AlanBell> 3.141592653589793
[19:38] <AlanBell> So we have seen here how to import a library of functions to do something, and called one of the functions from the library (to return the value of pi)
[19:39] <AlanBell> ok, so what is in the math package, apart from pi?
[19:39] <AlanBell> try typing dir(math) at the python console
[19:39] <AlanBell> ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'hypot', 'isinf', 'isnan', 'ldexp', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
[19:40] <AlanBell> you can also look at http://docs.python.org/library/math.html
[19:40] <ClassBot> callaghan asked: Is there a way to see which functions are in the imported library?
[19:40] <AlanBell> yes :)
[19:41] <AlanBell> and to get more descriptive help on each one try help(math)
[19:41] <AlanBell> so dir() lists the names and help() lists names, parameters and a little bit of help text
[19:43] <ClassBot> TheOpenSourcerer asked: is help() a python function useful for anything else?
[19:43] <AlanBell> try help(help)
[19:44] <AlanBell> it is a function that could be used, I can't off hand think of any particularly useful use of it other than for getting help
[19:44] <ClassBot> Mipixal asked: Your favourite IDE for dev with Python, on bigger projects. (In before IDE flame wars :p )
[19:45] <AlanBell> honestly my favourite is gedit
[19:45] <AlanBell> I have used eclipse and pydev
[19:45] <AlanBell> and I liked stani's python editor (SPE) for a bit
[19:46] <AlanBell> but all I really want is a text editor with syntax highlighting
[19:46] <AlanBell> and normally several terminal windows open across a couple of monitors
[19:46] <AlanBell> All this command line stuff is all very well, but we want to do applications that have pretty windows and stuff!
[19:47] <AlanBell> In the interactive console type or paste the following
[19:47] <AlanBell> import gtk
[19:47] <AlanBell> which will load a library full of stuff to do with the gtk toolkit that powers the gnome desktop
[19:47] <AlanBell> now type
[19:47] <AlanBell> foo=gtk.Window(gtk.WINDOW_TOPLEVEL)
[19:47] <AlanBell> that assigns a window object to a variable called foo
[19:47] <AlanBell> (the name doesn't matter, the single equals does)
[19:48] <AlanBell> but nothing  much seems to have happened yet, so type:
[19:48] <AlanBell> foo.show()
[19:48] <AlanBell> yay, a real live little window should be on screen now!
[19:49] <AlanBell> lets see what we can do to it with dir(foo)
[19:49] <AlanBell> quite a lot! lets try:
[19:49] <AlanBell> foo.set_title("my little window")
[19:49] <AlanBell> go ahead and change the title a few times
[19:50] <AlanBell> so if you type "foo.show"
[19:50] <AlanBell> <built-in method show of gtk.Window object at 0x140f2d0>
[19:50] <ClassBot> There are 10 minutes remaining in the current session.
[19:51] <AlanBell> you get printed out a reference to where the code for the show function is
[19:51] <AlanBell> you need to do foo.show() to actually call the function
[19:51] <ClassBot> ahayzen asked: In gedit is there anyway of adding code completion for python programming, like pydev in eclipse, via a plugin?
[19:51] <ClassBot> teemperor asked: is there any naming convention in python? (because of set_title)
[19:52] <AlanBell> ahayzen: I believe there are some plugins for that, last time I tried one it was rubbish though
[19:53] <AlanBell> if anyone has any good ones I would be interested to know of them
[19:53] <AlanBell> teemperor: http://www.python.org/dev/peps/pep-0008/ here is the python style guide
[19:54] <AlanBell> many projects have their own more detailed conventions for object names
[19:54] <AlanBell> everyone agrees on the indentation levels though :)
[19:54] <ClassBot> Alliancemd asked: In a program changelog I saw a developer saying that he ported the code from python to java to make it faster and he said "because java is sometimes x10-x100 times faster than python". We know that java is very slow, does python have this big impact on speed?
[19:55] <AlanBell> this is a myth
[19:55] <ClassBot> There are 5 minutes remaining in the current session.
[19:55] <AlanBell> sometimes java does take a while to start if it has to launch a JVM, this gave applets a reputation for being slow
[19:56] <AlanBell> once up and running it is not particularly slow
[19:56] <AlanBell> unless you are doing something massively time sensitive (where every nanosecond counts) then any language will do any task
[19:57] <AlanBell> the performance problem is never the language, it is always the algorithm
[19:57] <AlanBell> normally rewriting code so that it does fewer disk or database accesses will speed it up thousands of times more than changing the language it is implemented in
[19:58] <ClassBot> Alliancemd asked: What do u think of PyQt? Is it that good how people say?
[19:58] <ClassBot> mohammedalieng asked: what about python performance compared to Java ?
[19:58] <ClassBot> callaghan asked: will there be a follow-up lesson, or where should unexperienced python-devs go from here?
[19:59] <AlanBell> not played with Qt much
[19:59] <AlanBell> there are some great books
[19:59] <AlanBell> snake wrangling for kids is excellent
[20:00] <AlanBell> and the dive into python book is in the repos, you can install it from software centre
[20:00] <AlanBell> I believe there are other python classes in this channel so check the schedule
[20:00] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2011/09/05/%23ubuntu-classroom.html
[20:00] <AlanBell> ok, think I am out of time
[20:00] <AlanBell> thanks everyone o/
[20:01] <Alliancemd> the schedule: https://wiki.ubuntu.com/UbuntuAppDeveloperWeek


[00:06] <ScottK> apachelogger: We should.  It's a kmail depends and it's on the CD.
[00:06] <apachelogger> then I think this bug indicates a problem with the defaults
[00:08] <ScottK-laptop> apachelogger: For the pykdeuic4 bug fix, pykdeuic4 was always a symlink to pykdeuic4.py and so I just moved the symlink.
[00:08] <ScottK-laptop> It would have been more complete probably to move pykdeuic4.py too.
[00:09] <apachelogger> well, as said the whole report is pretty much theoretically anyway since -dev depends on the python-kde4 package anyway
[00:09] <apachelogger> I am going to try get that sorted once and for all
[00:10] <ScottK-laptop> Great.
[00:10]  * ScottK-laptop goes out to drive kids some more.
[01:40] <ScottK> apachelogger: Let me know when you figure out how to paste a file via sftp in Dolphin.
[01:41] <apachelogger> ScottK: http://aplg.kollide.net/screencasts/paste.ogg
[01:41]  * ScottK moves to the machine with sound.
[01:42] <ScottK-laptop> apachelogger: I'm media impaired.  What app do I play that with?
[01:43] <apachelogger> ScottK-laptop: dragonplayer
[01:43] <ScottK-laptop> Thanks.
[01:44] <ScottK-laptop> So I have to have a 'place' predefined?
[01:45] <ScottK-laptop> apachelogger: ?
[01:45] <apachelogger> well, it makes things easier
[01:45] <apachelogger> you could also use splitview and dragndrop
[01:45] <apachelogger> or you just copy then change the url manually and paste
[01:45] <ScottK-laptop> OK.  I guess I have to get over to my aversion to Dolphin.
[01:45] <ScottK-laptop> At least it has tabs now.
[01:45] <ScottK-laptop> Thanks.
[01:45] <apachelogger> :)
[01:47] <ScottK-laptop> apachelogger: Works.  Thanks.
[01:48] <ScottK-laptop> Off to clean the kitchen.
[02:02] <ScottK-laptop> So when I saw Dolphin split screen it reminded me of Krusader.  That works too.
[02:03] <ScottK-laptop> Dag nabit, I liked having Konqueror do everything.
[02:18] <ScottK-laptop> apachelogger: I'll sponsor the kdeartwork one.  I've having that bug, so I can test it.
[02:18] <ScottK-laptop> I've/I'm
[04:02] <JontheEchidna> Awesomeness! http://www.youtube.com/watch?v=JFjfk2AAn6s
[04:05] <JontheEchidna> I think I'll get some sleep
[04:08] <ScottK-laptop> I don't see where they demonstrate ark opening a tar.gz ....
[05:14] <NCommander> ScottK, can you ack a backport?
[05:17] <rgreening> hey
[05:52] <ScottK> NCommander: What?
[06:03] <DreadKnight> heya
[06:03] <DreadKnight> i would like to try to update 8.04 to intrepid beta (64 bits) again
[06:04] <DreadKnight> last time X wouldn't start i think
[06:04] <DreadKnight> Intel GMA 950
[06:04] <DreadKnight> anything i could have done from the command line to get it running?
[06:29] <NCommander> ScottK, xen 3.3
[15:06] <ryanakca> Riddell: Have you received any screenshots of KDE4/Intrepid?  If not, how should we get them... ask the Planet?
[15:16] <apachelogger> jtechidna: can you still reproduce bug 272541
[15:17] <jtechidna> apachelogger: nope :-)
[15:17] <apachelogger> me neither
[15:23] <apachelogger> jtechidna: do you have a beta iso at hand?
[15:23] <jtechidna> nope, wouldn't boot for me anyway, kernel bug
[15:24] <ryanakca> apachelogger: I have an amd64 one... alternate though
[15:25] <apachelogger> jtechidna: kernel bug?
[15:25] <jtechidna> just a second
[15:25] <apachelogger> ryanakca: live makes more sense
[15:25] <apachelogger> need to reproduce a bug in french kdepim
[15:25]  * apachelogger grabs daily image
[15:26] <ryanakca> Oh, bummer. Well, this is a fresh install... would you like me to change the language to french and test for you?
[15:26] <jtechidna> bug 267295
[15:27] <ryanakca> Can anybody reproduce bug 278611 ?
[15:27] <apachelogger> bug 278572
[15:27] <apachelogger> it did work properly when I changed the date setting
[15:28] <apachelogger> 278611 sounds like fun
[15:29] <Arby> h
[15:32] <ryanakca> Hmmm... can't change the status of the bug to "Needs information" because I'm not the maintainer :/
[15:32] <ryanakca> doh, nevermind
[15:35] <Salze> [16:27] <ryanakca> Can anybody reproduce bug 278611 ? <- no.
[15:36] <ryanakca> apachelogger: I can't reproduce it, but it might be because (s)he has date/time set up differently...
[15:36] <apachelogger> well, if it doesn't appear in a live environment with french locales we can just close it
[15:37] <apachelogger> I for one think that the user messed up his settings by manually fiddling
[15:41] <apachelogger> jtechidna: bug 278408 is weird
[15:41] <apachelogger> http://paste.ubuntu.com/54271/ the related source
[15:42] <jtechidna> apachelogger: brb
[15:42] <jtechidna> rebooting
[15:48] <JontheEchidna> apachelogger: yeah, saw that one
[15:48] <JontheEchidna> weird
[15:56] <apachelogger> JontheEchidna: bug 268434 needs to go upstream
[15:56] <apachelogger> they would know better if it caused by our xrandr or a bug in krandr
[15:56] <ryanakca> What files / source packages would I look in to fix bug 278620 ? I've tried grepping ``add language'' in the kde-workspace sources without any luck...
[15:57] <apachelogger> -runtime
[15:57] <ryanakca> s/kde-workspace/kdebase-workspace/g
[15:57] <ryanakca> apachelogger: thanks
[15:59] <apachelogger> oh
[15:59] <apachelogger> eh
[15:59] <apachelogger> nice
[16:00] <apachelogger> Riddell: when booting the live CD with francais it doesn't look very french
[16:00] <apachelogger> the country in systemsettings is also not set
[16:00] <apachelogger> nor is the language
[16:00] <apachelogger> \o/
[16:03] <smarter> apachelogger: i18n is still b0rken thanks to rosetta, so it doesn't really make a difference :P
[16:03] <apachelogger> it does
[16:03] <apachelogger> completely unrelated to rosetta
[16:04] <smarter> the fact that i18n is broke?
[16:05] <apachelogger> the fact that the live cd wouldn't use an l10n at all
[16:09] <smarter> well, no l10n seems better than half-translated apps imho :P
[16:12] <JontheEchidna> \o/
[16:12] <JontheEchidna> editing my blog put it back on top of the planet
[16:12] <JontheEchidna> vorian: oh, and I stoled your cube pic D:
[16:13] <JontheEchidna> but couldn't you have put a wallpaper in the background instead of a pure blue background? ;P
[16:16] <apachelogger> ryanakca: you did a normal english installation?
[16:17] <apachelogger> smarter: using wrong formats is not
[16:17] <ryanakca> apachelogger: Yes, well, Canadian English... not that KDE recognized it as such, but it's what I selected while installing.
[16:17]  * apachelogger doesn't really see why a german would use letter for example
[16:17] <apachelogger> ryanakca: please file a bug report
[16:18] <apachelogger> ryanakca: did you install the missing language packs before you stumbled upon the loop bug?
[16:18] <ryanakca> apachelogger: against what package? kdebase? kde? k-d-s ?
[16:18] <apachelogger> ryanakca: ubiquity
[16:18] <apachelogger> or ubiquity-kde if that exists
[16:18] <ryanakca> apachelogger: even if I used the alternate CD?
[16:19] <ryanakca> ok
[16:19] <apachelogger> ryanakca: well, it doesn't work with the live anyway :P
[16:19] <apachelogger> ryanakca: ryanakca: did you install the missing language packs before you stumbled upon the loop b
[16:22] <ryanakca> apachelogger: yes, they were installed. At least, English was marked as installed in the ``Install new languages'' dialogue... and would that be a duplicate of bug 62613 ?
[16:22] <ryanakca> also, bug 144414
[16:23] <apachelogger> ryanakca: not the former
[16:23] <apachelogger> that was about KDE 3
[16:23] <apachelogger> and apparently only happend sometimes
[16:23] <apachelogger> ryanakca: same for the latter
[16:23] <ryanakca> Ok
[16:25] <apachelogger> hm
[16:25] <apachelogger> why does the country selector have an ok button
[16:25]  * apachelogger is wondering if it only works with single click due to single click setting
[16:26] <apachelogger> ryanakca: doesn't loop here
[16:27] <apachelogger> JontheEchidna: please throw bugs which we can actually fix for intrepid at me
[16:28] <JontheEchidna> apachelogger: ok
[16:28] <ryanakca> apachelogger: bug 278634
[16:28] <ryanakca> If you would like to confirm :)
[16:28] <JontheEchidna> I'll probably work on the cubecap, but I can't test it since I lacks proprietary drivers that work for my card
[16:29] <JontheEchidna> I'll also grab the cylinder/sphere shaders from trunk and add them to the patch
[16:45] <JontheEchidna> What's with bug 275997?
[16:45] <JontheEchidna> apachelogger: ^?
[17:04] <apachelogger> JontheEchidna: Riddell fixed t that in kds the other day
[17:04] <JontheEchidna> cool, I'll close it then
[17:33] <apachelogger> JontheEchidna: did you ever report a bug to fd.o in order to get bug 217654 sorted?
[17:35] <ScottK> Why is that a bug in kdesdk?
[17:51] <apachelogger> ScottK: see most recent comment I added
[17:52] <apachelogger> gnome doesn't handle empty keys to well
[17:52] <apachelogger> and KDE got a lot of empty Path keys
[17:52] <apachelogger> and JontheEchidna and I are not really sure whether it is an issue in GNOME or in the desktop files
[18:42] <ScottK> glib2.0 in hppa is fixed, so we have some hope of getting kde stuff built on hppa now.
[19:04] <apachelogger> I seriously need some main sponsors :P
[19:04]  * apachelogger pings nixternal
[19:06] <apachelogger> ScottK: btw, if you got some seconds ... kgrubeditor needs a retry on amd64 and lpia
[19:25] <ScottK> apachelogger: Done.
[19:26] <apachelogger> thank you
[19:27] <ScottK> No problem.  Those are easy enough.
[20:18] <apachelogger> ryanakca: what to do, make the drupal theme scalable or the wiki static?
[20:18]  * apachelogger finds the size of the drupal theme unsufficient for the wiki
[20:19] <apachelogger> then again changing the theme for the wiki is a) weird b) awful looking c) distrubing a user when trying to clix0r through all the top right links
[20:19] <apachelogger> so we need a unification of some sort
[20:32]  * smarter uploads a new snapshot of Kvkbd, a virtual keyboard for KDE, to his PPA: https://launchpad.net/~smarter/+archive (feedback appreciated :) )
[20:43] <apachelogger> smarter: as if we would ever had gotten feedback when we asked here :P
[20:43] <smarter> :P
[20:43] <apachelogger> who owns an eeeeeee?
[20:43] <smarter>  I do
[20:43] <apachelogger> smarter: please try to reproduce bug 259181
[20:44] <smarter> does it need intrepid to be reproduced?
[20:44] <apachelogger> no, just kdm-kde4
[20:44] <apachelogger> I tried with 1024x600 in a vbox but it didn't cause the issue
[20:44] <smarter> okay, I've KDE 4.1.0 on my eee, should I update first? :P
[20:44] <apachelogger> so it might very well be just a bug in the driver
[20:44] <apachelogger> smarter: omg, how can even use .0? :P
[20:45] <smarter> I don't use my eee a lot when I'm not traveling ;)
[20:45] <smarter> (actually, I just found one user of Kvkbd on the french Ubuntu forum, I'm not gonna let him go without asking him to give me plenty of feedback :P)
[20:45] <apachelogger> I think even the eee would be a decent icecc node :P
[20:49] <smarter> I'd use it if my main computer was not 64bits :)
[20:55] <apachelogger> smarter: http://en.opensuse.org/Icecream#Cross-Compiling_using_icecream
[20:59] <smarter> I doubt I can crosscompil 64 bits on 32 bits :]
[20:59] <smarter> besides, 900Mhz are just not worth the pain :p
[21:02] <apachelogger> *shrug*
[21:30] <ryanakca> apachelogger: I'd make it static... are you making it match the Drupal one?
[21:41] <apachelogger> ryanakca: yes, the idea is to use the same theme, which is the reason I think the drupal one should become dynamic
[21:42] <apachelogger> there he goes
[21:42]  * apachelogger gets a tea
[21:44] <ryanakca> apachelogger:  Ah. Feel free to. I quite like the theme that mdke (I believe) wrote for the help.ubuntu.com/community/ wiki... I would've just tweaked it to have Kubuntu colors / gradients... but up to you.
[21:45] <ryanakca> apachelogger: (if you want to see it, you'll need to select it from UserPreferences... if you want the exact name, lemme install FF first, the wiki hates Konqueror)
[21:49] <ryanakca> apachelogger: https://code.edge.launchpad.net/~mdke/ubuntu-doc/helpwiki-newtheme
[22:05] <ryanakca> apachelogger: ping, could you help me with bug 278620 please? I've built packages (source package: kdebase-runtime) with what I'm hoping is a fix... but how do I get them installed without breaking my system... I can downgrade them to the Kubuntu version fine, but trying to install my ``fixed'' version causes a dependency hell :)
[22:06] <apachelogger> ryanakca: you need to install all required packages at once
[22:06] <apachelogger> sudo dpkg -i kdebase-runtime-data kdebase-runtime-data-common kdebase-runtime-bin-kde4 etc.
[22:07] <apachelogger> the dependency hell most likely just affects kdebase-runtime packages anyway
[22:11] <ryanakca> apachelogger: thanks
[22:12] <ryanakca> ... also... should I have ubuntu-minimal installed in my chroot?
[22:13] <apachelogger> for what?
[22:13] <ryanakca> apachelogger: building chroot...
[22:14] <apachelogger> depends on what you want to do with the chroot


[18:34] <OvenWerks> who reads wikis though ;)
[18:35] <Eickmeyer> Haha!
[18:35] <Eickmeyer> They already said they were looking into it. :D
[18:56] <Eickmeyer> Just made a new factoid for !cadence, Waiting on hggdh to add it.
[18:56] <Eickmeyer> If he does.
[19:12] <Eickmeyer> M_aD: Welcome!
[19:13] <M_aD> thanks :)
[19:22] <Eickmeyer> !cadence | OvenWerks
[20:11] <Eickmeyer> OvenWerks: How do you feel about changing the version numbers for our ubuntustudio-* packages to match with the current release? Like, controls 1.8 would become 19.10, etc.?
[20:16] <OvenWerks> Eickmeyer: what do you do if you have a bugfix inbetween? maybe more than one?
[20:19] <Eickmeyer> OvenWerks: That's easy. 19.10.x
[20:19] <Eickmeyer> So, you'd really start with 19.10.0 and work up from there.
[20:20] <Eickmeyer> I have been seeing other flavors do the same with their versioning, and it seems to make sense.
[20:25] <OvenWerks> So after 1904 releases, the next release is 19.10?
[20:27] <Eickmeyer> Yes.
[20:28] <Eickmeyer> !yymm
[20:28] <Eickmeyer> !yy.mm
[20:28] <Eickmeyer> I know you knew that, but that's the ! command.
[20:29] <OvenWerks> So long as it doesn't cause trouble with the PTB I don't really care. It does take away some of the sense of how old the package is
[20:29] <Eickmeyer> Isn't that what changelogs are for?
[20:31] <OvenWerks> Anyway, I am not worried one way or the other... setting the version is the uploaders job ;)
[20:32] <Eickmeyer> Yeah, that's true. :)
[20:33] <OvenWerks> It would be easier to remember what feature was added when too.
[20:33] <Eickmeyer> That's generally my motivation. Makes support easier.
[20:34] <OvenWerks> A problem I can see is that the 19.* would appear twice in the package file name
[20:35] <OvenWerks> Would a user think "oh I acn't use 19.10 in my 18.04 install because it won't work"
[20:35] <Eickmeyer> !info ubuntustudio-default-settings
[20:36] <Eickmeyer> Are you referring to backports?
[20:36] <OvenWerks> yes
[20:37] <Eickmeyer> I shouldn't think so. Version numbers are pretty arbitrary.
[20:37] <OvenWerks> 1.7~ubuntu18.10.1
[20:37] <Eickmeyer> ^ That only applies to Autobuilds.
[20:37] <OvenWerks> (for -controls)
[20:37] <OvenWerks> https://launchpad.net/~ubuntustudio-ppa/+archive/ubuntu/backports
[20:37] <Eickmeyer> Oh, I guess it would apply to backports too.
[20:38] <OvenWerks> Still if other people are doing it, that should be ok.
[20:38] <Eickmeyer> Well, then the version number would be (for Bionic backports) 19.10.0~ubuntu18.04.1
[20:38] <Eickmeyer> Yeah.
[20:39] <OvenWerks> The user needs to think of upgrading to the 19.10 version that is ok too.
[20:39] <Eickmeyer> 19.10.0~ubuntu18.04.1
[20:39] <Eickmeyer>  ^Version          ^ What it's built against
[20:40] <Eickmeyer> So, the important thing to match is the last number.
[20:40] <Eickmeyer> Also, look at KDE Apps. The version number is 18.12 landing in 19.04.
[20:40] <Eickmeyer> (Not plasma, but the apps)
[20:41] <OvenWerks> I would suggest yy.mm.sub
[20:41] <OvenWerks> so the mm may not match with a cycle release
[20:41] <Eickmeyer> .sub?
[20:41] <OvenWerks> sub release
[20:42] <Eickmeyer> Oh, yes. That's why I said 19.10.x
[20:42] <Eickmeyer> That way, if there are any bugfixes after upload, they can be the .x number.
[20:42] <OvenWerks> Anyway, Like I said, whatever the UL decides to do is fine by me.
[20:43] <Eickmeyer> Ok
[20:44] <Eickmeyer> I might run it past Ross and see what he thinks.
[20:45] <OvenWerks> Question: after 19.04 is released, 19.10 gets released... say in about 19.06. Then more work is done and they are also ready to release before 19.10 what is that called?
[20:46] <OvenWerks> or do they remain beta till cycle beta2 is past and then jump to 20.04 for new features?
[20:46] <Eickmeyer> It would be 19.06, but that doesn't fit the release schedule.
[20:46] <Eickmeyer> Beta 2 isn't a thing anymore...
[20:47] <OvenWerks> Till FF then
[20:48] <Eickmeyer> Okay. So, the only way a 19.06 would happen is if 19.04 got delayed until June.
[20:48] <Eickmeyer> Releases are never early for Ubuntu.
[20:48] <Eickmeyer> So, if 19.10 wasn't released until 20.04... I don't konw.
[20:49] <OvenWerks> I thik I am not being clear
[20:49] <Eickmeyer> I think the TB would be making that call.
[20:49] <Eickmeyer> Yeah, I'm confused.
[20:50] <OvenWerks>  I am saying that rather than releasing a package inbetween cycles it may be best to keep them unreleased until FF
[20:50] <Eickmeyer> OvenWerks: I completely agree with that.
[20:51] <OvenWerks> So they are available in autobuilds before that.
[20:51] <Eickmeyer> The yy.mm is the target, not necessarily when it's actually released (for packages, not for Ubuntu itself).
[20:51] <Eickmeyer> OvenWerks: Yes.
[20:51] <OvenWerks> I think that should work fine.
[20:52] <Eickmeyer> The only reason we released anything into Backports early was because it was work-in-progress.
[20:52] <Eickmeyer> Cool.
[20:52] <Eickmeyer> I consider our backports to be stable at the moment, in terms of changes.
[20:52] <OvenWerks> Things have been a bit odd because installer and controls are almost like new apps and give a huge jump in feature
[20:53] <Eickmeyer> Right.
[20:53] <OvenWerks> Things will prob slow down now
[20:53] <Eickmeyer> We did two years' worth of updates and consolidated it into one.
[20:54] <Eickmeyer> I think if we did the metapackage parsing you were talking about for -installer, that would be good for 19.10 so we can squash bugs for 20.04.
[20:54] <Eickmeyer> And any improvements to -controls.
[20:55] <Eickmeyer> I'll work on theming bugs and plugin packaging.
[20:56] <Eickmeyer> Perhaps another wallpaper contest for 19.10 for wallpapers to land in 19.10 and 20.04.
[20:56]  * Eickmeyer might even bug eylul- for a fancy new 20.04 wallpaper :)
[21:17] <M_aD> Honestly, i think it's time to get rid of that dark default wallpaper :)
[21:19] <OvenWerks> While backdrops are one of the first things I change when I install, Dark and relatively non-busy are what many artists prefer.
[21:20] <OvenWerks> The other thing to remember, is that we want a business to feel comfortable leaving the backdrop as is in their studio if it is music of a portrait shop
[21:37] <OvenWerks> In the end, it does depend on what various artists come up with
[22:03] <Eickmeyer> M_aD: Have you seen the new default wallpaper for 19.04?
[22:07] <M_aD> this one? http://ubuntustudio.org/wp-content/uploads/2019/03/1fe8/ubuntustudio_disco_dingo_1080.jpg
[22:11] <Eickmeyer> M_aD: Yep. Except it's in 4k from the repo.
[22:33] <Eickmeyer> OvenWerks, M_aD, sakrecoer: If any of you (or anyone reading this) are around, we have pre-RC images.
[22:33] <Eickmeyer> https://discourse.ubuntu.com/t/disco-disco-19-04-release-candidate-testing/10570
[22:33] <Eickmeyer> Images at http://cdimage.ubuntu.com/ubuntustudio/dvd/20190413.1/
[22:34] <Eickmeyer> I'll be shooting an email to the -devel list.
[23:56]  * OvenWerks is DL the image. but doesn't know when he will be able to try it.


[00:14] <maxolasersquad> crashsystems: I appreciate it.  Ive never been strong on the kry stuff.
[00:14] <crashsystems> np
[00:14] <crashsystems> I really hope secure boot does not work on a CA model
[00:26] <mhall119> crashsystems1: I believe squashfs lets you uncompress files on demand, rather than all at once, so you probably don't lose all that much
[00:34] <crashsystems1> I've also heard of a deep freeze like program that works on Ubuntu, so I may give that a try
[00:37] <mhall119> what are you wanting to do, make a live-bootable version of your current install?
[00:38] <crashsystems1> I'm thinking about the best way of making an install that reverts back to a known good state upon reboot


[06:22] <woob> yo does xubuntu come with a graphical software installer
[06:36] <pmjdebruijn> woob: yes
[06:36] <woob> which one
[06:36] <pmjdebruijn> most ubuntu derivative distros, use ubuntu's installer
[06:36] <pmjdebruijn> oh wait
[06:36] <pmjdebruijn> you don't mean xubuntu itself
[06:36] <pmjdebruijn> for just for packages
[06:36] <pmjdebruijn> not sure actually
[06:36] <woob> i couldnt find one and had to install Synaptic from the terminal
[06:37] <pmjdebruijn> quite possible
[06:37]  * pmjdebruijn just uses apt
[06:39] <woob> yeah i like graphical stuff for searching/browsing/whatever
[06:42] <pmjdebruijn> synaptic seems fine then
[06:44] <flocculant> it's the gnome packages tool in xubuntu
[06:44] <flocculant> that said I use synaptic
[06:44] <woob> ahh, its just not showing up for some reason
[06:45] <flocculant> lucky :D
[06:46] <flocculant> used to use the Ubuntu one - then they stopped worrying about it - and used the gnome one - we kind of had to follow along :(
[12:54] <xubuntu31w> hi guys, quick question, shouldn't 17.10 be released today?
[12:54] <cwt> I'm refreshing the /getxubuntu/ page every 10 minutes :)
[12:55] <xubuntu31w> yeah me too, I am awaiting this a lot ^^
[14:37] <xubuntu37i> Hi all. My 1st and 2nd attempts to install XUbuntu have failed. Something about not being able to install the bootloader
[15:10] <drleviathan> I'm downloading ubuntu-17.10 right now but what I really want is xubuntu-17.10.
[15:10] <drleviathan> According to xubuntu.org the 17.10 release date is sometime today, but there are no links yet.
[15:15] <krytarik> drleviathan: Take the direct one in the meantime: http://cdimage.ubuntu.com/xubuntu/releases/artful/release/
[15:16] <drleviathan> oh cool, thanks
[15:19] <vitalkanev> Alright, even update-manager can't find Artful Aadvark release
[15:19] <drleviathan> it is good to know cdimage.ubuntu.com would have the xubuntu image before xubuntu.org itself
[15:20] <drleviathan> I see... cdimage.ubuntu.com has all or most of the ubuntu variants and they appear to be up to date
[15:21] <krytarik> drleviathan: The other one is releases.ubuntu.com
[17:36] <drleviathan> hrm... the xubuntu install slide show suggests I join #xubuntu-offtopic instead of this one
[17:52] <krytarik> drleviathan: Not for support though, just on the 'thanks' slide: http://bazaar.launchpad.net/~ubiquity-slideshow/ubiquity-slideshow-ubuntu/html/files/head:/slideshows/xubuntu/slides/
[20:43] <failgod> hi everyone, i've read the news that 17.10 is released but on xubuntu.org/getxubuntu/ there is only 16.04 and 17.04 listed. Did i miss something?
[20:44] <xangua> I only heard about Ubuntu, guess other flavors are officially released a week after
[20:45] <krytarik> xangua: False.
[20:45] <failgod> https://xubuntu.org/news/xubuntu-17-10-release/
[20:45] <failgod> but i can't find it :(
[20:46] <krytarik> failgod: http://cdimage.ubuntu.com/xubuntu/releases/artful/
[20:46] <failgod> thank you
[20:46] <failgod> :)
[20:46] <krytarik> And sorry for the delay in updating the download page.
[20:47] <failgod> no problem, i was just wondering.
[20:47] <krytarik> Yeah, I'm wondering a bit, too. :P
[20:48] <flocculant> so am I :p
[20:48] <krytarik> \o/
[20:53] <failgod> every day a little wonder...
[20:53] <failgod> so i am off to installing :) bye bye
[22:57] <h4ck3d> I am having issues with Xubuntu installer
[23:10] <NewGnuGuy> h4ck3d: What's the problem?
[23:11] <h4ck3d> its crashing
[23:11] <NewGnuGuy> Can you be more specific? What step is crashing?
[23:13] <r4g3> its crashing on the install
[23:13] <r4g3> like it gets to copying file then boom crashes
[23:15] <NewGnuGuy> Can you provide a log on paste.ubuntu.com or link to a screenshot?
[23:16] <r4g3> Not now its made my laptop have no partitions now
[23:18] <NewGnuGuy> :-/


 damn the ubuntu installer is changing a lot
 O?
 Ubuntu not Android
 I just auto removed all of the spare kernels from my closet server.  I may need that.  :0
 looks very GNOME now
 I'm rebooting now.
 You know I have several Ubuntu machines, right?  I have 4 physical and 12 virtual.  Then several virtual variants.
 nope
 Haha. What?  Really?
 I configure these things all the time. That's why I come to the Ubuntu hours.
 well I know the Surface and a server
 Then my desktop dual boots, and my work laptop, and then I have several VMs.  7-ubuntu server, 3 for testing and then a few here at home.
 damn I basically just have my laptop for everything
 I actually have 3-work laptops.  1 windows running VMs, one laptop with Ubuntu, and one with Windows.     Also all my windows machines that support Windows 10 run "Ubuntu" in WSL.
 Damn
 So.. 12 physical machines???  Ish?
 closet-server survived the autoremove of 18 kernels!
 I have to give a class to the new guy on Android Exploits.  I did a talk in 2012 at Big Android BBQ with Jordan Keyes on Android Exploits.  That was back when I would recommend you root your device for security purposes because you could patch the hole.  The paradigm changed somewhere between then (Android 4.2) and Android 5.0 (SELinux), so 3-releases.  I'm not sure if Kernel Address Space Layout
[01:26] <floridagram-bot7> Randomization(Android 4.4), or SELinux was more important.
 good morning~
 So is it normal to receive a personalized response to an application to Google?
 @RazPi, Morning
 @Ivoriesablaze, Sometimes
 @Ivoriesablaze, They dig ya
 Asking about offer deadlines and anticipated graduation date
 Could be an AI response
 From a named Google account
 Sure.
 Maybe there is a guy who was told to pick a few facts and respond personally with a template.
 I like x and the y.  Are you available for a call on ddmmyyyy?
 But it's not a flat out rejection letter, though
 So I guess it's not bad
 What did it say?
 To confirm my anticipated graduation and if I have any offer deadlines.
 To see if you have anything holding you back from moving I think
 Sounds like it.  Embellish your other offers but mention the prestige of Google.
 You're young.  Get Google under your belt
 I'd love to talk about my days at Google.
 I've got a wife and family.  I can't just pack up and move to California.  But I would do it if I were you.
 This ones in Michigan... Lol
 Hopefully not Flint
 Oh Shit
 https://twitter.com/NBCNews/status/903272456323989506
 As snap
 Got the weather on mute here, didn't read hurricane. :(
 It is expected to get to a Cat 4 by early next week... A Florida Landfall is possible
 Yikes.
 I'll pretend I didn't read that
 A South Florida and Alabama and Mississippi and Louisiana impact is  very likely
 Woo!!! Paid time off!!!
 With probably no power...
 Dammit!
 You could start canoing if you loose power
 True
 Darnit.  I might have to put up those shutters!
 It has been almost 12 years since we got hit with anything too nasty (Wilma)
 I don't remember Wilma being to bad or South Florida
 For
 It was very bad, I was without power for close to 6 weeks
 sounds about right
 Since I haven't finished my degree program, they can't take me
 @Ivoriesablaze what position did you apply for?
 Fluffer
 IT residency program
 I was so excited, too
 Maybe keep an eye on it and see if they have one open when you finish
 https://hackernoon.com/the-fcc-gov-website-lets-you-upload-documents-and-host-them-there-bdcd5c1a5b8b
 Derp...
 I'm so upset right now
 ?
 About the job thing
 Like about to cry upset, though I should be happy, I guess, that my resume was good enough for Google to actually look at me
 Still
 What happened?
 Because I'm still in a degree program, they can't consider me
 Thats not abnormal
 It complicates things for employers
 I just want to get out of this job so much
 I know
 @RazPi - Awake?
 @KMyers What's up?
 @KMyers solved the problem of using a watch strap with this watch btw, https://www.amazon.com/gp/product/B01K0XQB04/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1
 Nice
 One sec, Let me read the fine print on something real uick
 @KMyers local raspi3 distrubut or
 A while back seeing the guy at a maker event he said I could phone him and buy some pi's, might be good for anyone!
 Not sure if he only has kits or individual pi's though
 He does https://www.makerbright.com/raspberry-pi-kits?p=2
 That tech support pic.  I was about to share it and the share button isn't working on Oreo apparently.
[21:20] <maxolasersquad> Our lead developer is moving on and I'm getting the position.
 Does anyone want to do undergrounds on Saturday? I need a day out before Monday
 Isnt Monday a Holiday?
 It is, but I need to get out on Saturday, last thing I want to do is mope
 Is still be up for hanging out on Monday as well
 There is no reason to mope. You even said you had low expections from the start.
 When they express interest and the only reason they can't take me is literally a piece of paper, it tends to get to you
 @Ivoriesablaze google google interviews, you'll find that they tend to do several month long rounds and reject often for seemingly no reason at all. There's a lot of bitterness about it.
 No. That is why they did not process with pre-screening. After pre-screening, they will then go with an interview followed by another interview. Thousands with similar pieces of paper are likely trying to get the same position and only one will make it - again, no reason to mope or feel bad
 It's a residency program, so they probably take a few, but I get what you're saying
 But I couldn't even get an interview because I'm still in a degree program
 Google is also very secretive in their hiring processes - there is really no way to know what the real qualifications are
 Even if you had the degree, there is likely less than 1% of applicants that will make it to an interview
 Even if you had one, that really means nothing. Trust me on that
 http://www.businessinsider.com/my-nightmare-interviews-with-google-2009-11
 http://wsvn.com/news/us-world/irma-becomes-category-2-hurricane-may-intensify/
 @SivaMachina, Yes, Going to be getting emergency supplies this weekend. I am mostly stocked up but a few extra things wont hurt (mainly wet dog food)
 Sounds like I might should get a battery backup or solar panels
 If you can both
 I ordered a 2nd USB solar panel this morning. I have plenty of USB battery packs
 which one?
 https://www.amazon.com/gp/product/B06XBGSS2R/ref=as_li_ss_tl?ie=UTF8&psc=1&linkCode=ll1&tag=lz0d6-20&linkId=5cb1a934ad2c6ccc43db31e433c56217
 Should be here tomorrow
 !!!!!
 @_@
 I was looking at those when I was researching camping gear!!
 I have a smaller one (10W) that I use to top off batteries. This one should be better
 Got an AC solution?
 That might be a good idea, but if the hurricane hits, I'ma get outta here.
 https://www.amazon.com/gp/product/B0196GQAKM/ref=oh_aui_search_detailpage?ie=UTF8&psc=1
 @RazPi  that's my ac solution.
 XD I meant.. air conditioner
 @AdamOutler
 https://www.amazon.com/dp/B01MR562AB/_encoding=UTF8/ref=as_li_ss_tl?coliid=I3BDCMT360NTJ4&colid=1DU9D04SVLS25&linkCode=ll1&tag=lz0d6-20&linkId=be40c0cd3a80cceaef0f1343711c4200 Looks better
 Heh.  Then my solution is to plug in to that .
 My internet rage is growing http://www.makeuseof.com/tag/forget-linux-use-windows/
 hnnnnngh
 until you try programming
 then nothing about windows makes sense
 or anything beyond clickclickinstall
 So is anybody up for Saturday?
 @Ivoriesablaze, It depends. @ahoneybun is having the Day 5 viewing on Saturday. it depends on when it is done
 Is this something all of you are going to?


[01:16] <jedijf> ChinnoDog: congrats on the Hac join
[01:22] <ChinnoDog> jedijf: thx
[11:21] <rmg51> Morning
[11:41] <JonathanD> Morning.
[13:39] <InHisName> Morning
[14:26] <ChinnoDog> morning--
[17:04] <adom> hey Topcat, do you use FOG to deploy Windows?
[17:04] <adom> damn wrong chan sorry
[17:21] <EvilResistance> lol