QuicklyFun

Dev Week -- $quickly fun -- rickspencer3 and didrocks -- Mon, Aug 31st, 2009

UTC

(01:59:46 PM) dholbach: ok everybody... let's kick of session number 2 (or 3 depending how you count it)
(01:59:56 PM) dholbach: next up are rickspencer3 and didrocks
(02:00:05 PM) rickspencer3: hi
(02:00:09 PM) didrocks: hey o/
(02:00:18 PM) rickspencer3: thanks for having us
(02:00:20 PM) dholbach: they are members of Ubuntu's Desktop team, they are fantastic and know a lot about hacking on Desktop stuff
(02:00:31 PM) dholbach: short: they definitely kick arse
(02:00:35 PM) rickspencer3: this is the first time I've done one of these
(02:00:48 PM) rickspencer3: so please be patient if I don't certain things correctly ;)
(02:00:50 PM) dholbach: please ask all your questions in #ubuntu-classroom-chat
(02:01:01 PM) dholbach: and prefix them with "QUESTION: " so they stick out
(02:01:09 PM) rickspencer3: didrocks, promised to help me though :) and he'll channel your questions
(02:01:09 PM) dholbach: rickspencer3, didrocks: the floor is yours
(02:01:12 PM) didrocks: rickspencer3: we trust you :) I will relay question
(02:01:19 PM) rickspencer3: lol
(02:01:23 PM) rickspencer3: so, here we go ...
(02:01:40 PM) rickspencer3: in a nutshell ... quickly makes it easy and fun to write apps
(02:01:43 PM) rickspencer3: Let's start with installing
(02:01:50 PM) rickspencer3: While it's installing, I can provide some background
(02:02:02 PM) rickspencer3: Quickly works with Karmic only, atm
(02:02:14 PM) rickspencer3: sudo apt-get install quickly python-desktopcouch-records
(02:02:25 PM) rickspencer3: Note that this may take a while to download everything if you don't have it installed already, as it brings in lots of developer tools, like Glade, and dpkg-dev.
(02:02:38 PM) rickspencer3: After Quickly is installed, close the terminal and open a new one so that statement completion works.
(02:02:52 PM) rickspencer3: so while you are all watching it install, a little background
(02:03:06 PM) rickspencer3: Quickly has two parts so far
(02:03:20 PM) rickspencer3: A command line parser that parses your input and directs commands to "templates"
(02:03:32 PM) rickspencer3: and a template for writing an app for Ubuntu
(02:03:40 PM) rickspencer3: #
(02:03:41 PM) rickspencer3: Templates are sets of commands and code generators that are designed to work together in an end to end fashion to help developers write a certain kind of application.
(02:04:02 PM) rickspencer3: There is only on Quickly template so far, and it's for a Ubuntu project.
(02:04:11 PM) rickspencer3: we'll be using that one in this session
(02:04:20 PM) rickspencer3: Quickly is in on version 0.2 in Karmic universe repository
(02:04:35 PM) rickspencer3: Quickly templates should make programming *easy and fun*
(02:04:44 PM) rickspencer3: the easy and fun part is important!
(02:05:09 PM) rickspencer3: to make it easy and fun ... we've made some opinionated choices about what tools, apis, etc.. to use
(02:05:28 PM) rickspencer3: *very* opinionated ;)
(02:05:29 PM) rickspencer3: Python for the language
(02:05:37 PM) rickspencer3: pygtk for the UI framework
(02:05:42 PM) rickspencer3: Glade for the UI editor
(02:05:58 PM) rickspencer3: Gedit for the code editor (though this is easy for yuo to change)
(02:06:05 PM) rickspencer3: bzr for version control
(02:06:10 PM) rickspencer3: Launchpad for code hosting
(02:06:21 PM) rickspencer3: desktopcouch for storage/database (!)
(02:06:26 PM) rickspencer3: A terminal for the interface ... yes Quickly is a CL tool
(02:06:48 PM) rickspencer3: so, the command line nature, plus the opinionated choices has brought some comparisons to Rails
(02:07:10 PM) rickspencer3: *there is no quickly runtime or base class library*
(02:07:27 PM) rickspencer3: Using the Ubuntu Project won't bring in any dependencies on Quickly itself
(02:07:51 PM) didrocks: rickspencer3: there are some questions now. Ok to take them?
(02:07:53 PM) rickspencer3: so ... assuming quickly has installed, or is close to installing for you ...
(02:07:57 PM) rickspencer3: didrocks, sure
(02:08:02 PM) rickspencer3: go ahead
(02:08:02 PM) didrocks: <aacool_> QUESTION: Can we get quickly to work with Jaunty?
(02:08:13 PM) didrocks: rickspencer3: I let you this one :)
(02:08:17 PM) rickspencer3: well
(02:08:27 PM) rickspencer3: I don't see technically why it couldn't
(02:08:36 PM) rickspencer3: but we have't done any work for this atm
(02:08:50 PM) rickspencer3: I think there are desktopcouch builds for Jaunty
(02:09:11 PM) rickspencer3: so ... yes ... if someone does it :)
(02:09:20 PM) rickspencer3: other questions?
(02:09:24 PM) didrocks: in a nutshell, if desktopcouch is working for Jaunty, there is no blocker on quickly's side
(02:09:30 PM) didrocks: <slacker_nl> QUESTION: does quickly also work with qt (for KDE users)?
(02:09:35 PM) rickspencer3: ah
(02:09:46 PM) rickspencer3: well ... there is no QT template atm
(02:10:03 PM) rickspencer3: I would love to see one get created though
(02:10:30 PM) rickspencer3: I think though, that Kubuntu is a bit farther ahead than Ubuntu wrt developer tools
(02:10:47 PM) rickspencer3: more questions?
(02:11:09 PM) didrocks: <mandel_macaque> rickspencer3: Qt template:I'm planning to do one, that is why I'm here
(02:11:14 PM) didrocks: good news \o/
(02:11:15 PM) rickspencer3: yeah!
(02:11:26 PM) didrocks: that's all for the questions, atm :)
(02:11:30 PM) rickspencer3: k
(02:11:32 PM) rickspencer3: let's move on
(02:11:44 PM) rickspencer3: we can discuss new template in more depth if we have time at the end
(02:11:55 PM) rickspencer3: Probably the best way to see what Quickly is all about is to follow along as I build and release an app.
(02:12:05 PM) rickspencer3: We'll use the following commands to build the app:
(02:12:11 PM) rickspencer3: $quickly create ubuntu-project searchy
(02:12:18 PM) rickspencer3: $quickly glade
(02:12:23 PM) rickspencer3: $quickly edit
(02:12:29 PM) rickspencer3: $quickly run
(02:12:34 PM) rickspencer3: $quickly package
(02:12:39 PM) rickspencer3: $quickly release
(02:12:54 PM) rickspencer3: note that the "$" is just a little thing I do to show a command line input
(02:13:03 PM) rickspencer3: it's not part of the command ;)
(02:13:19 PM) rickspencer3: We'll build an app that directs a search to http://linuxsearch.org (kirkland's custom search page).
(02:13:46 PM) rickspencer3: Get started by creating an application from the ubuntu-project template.
(02:13:54 PM) rickspencer3: I'm calling it "searchy"
(02:14:16 PM) rickspencer3: Note that I've already claimed "searchy" on launchpad, so you'll need to choose a different name if you want to try to release your code.
(02:14:25 PM) rickspencer3: (best name ever) ;)
(02:14:35 PM) rickspencer3: Also note that there is currently a limitation in Quickly that means that your application has to have only a one word name. We hope to fix this in a future release.
(02:14:58 PM) rickspencer3: so once again, to generate the search app, I do:
(02:14:59 PM) rickspencer3: $quickly create ubuntu-project searchy
(02:15:24 PM) rickspencer3: this tells quickly to use the ubuntu-project template, and to call what is created "searchy"
(02:15:35 PM) rickspencer3: This causes a bunch of info to be dumped to the command line, but ends with the application being run
(02:15:57 PM) rickspencer3: Note that it's called "Searchy", but otherwise, it's just a stock application
(02:16:29 PM) rickspencer3: what quickly did was to copy over basically a sample application, and do some text switcheroos to customize the app
(02:16:35 PM) rickspencer3: with the name provided
(02:17:02 PM) rickspencer3: If you've closed the application and want to run it again, change to the searchy directory, and use:
(02:17:10 PM) rickspencer3: $quickly run
(02:17:27 PM) rickspencer3: note that you get a preferences dialog that currently doesn't work due to a small bug :(
(02:17:32 PM) rickspencer3: and also an about dialog
(02:17:49 PM) rickspencer3: let's look at editing the UI
(02:17:59 PM) rickspencer3: The UI I am envisioning is just a text box, and when I hit enter, it does the search. So I need to edit the default UI.
(02:18:10 PM) rickspencer3: First, go to the directory that quickly created for the app: $cd searchy
(02:18:15 PM) rickspencer3: then: $quickly glade
(02:18:29 PM) rickspencer3: Glade is the program that to edit the UI
(02:18:37 PM) rickspencer3: If I just run Glade from the Applicatons menu IT WON'T WORK with quickly
(02:19:23 PM) rickspencer3: so Glade should open with the generated UI files ready to edit
(02:19:37 PM) rickspencer3: Under the Projects menu, switch to SearchyWindow. This is the main window for your application.
(02:19:45 PM) rickspencer3: Delete the image and the label (image1 and label1) to clear out space in the UI.
(02:20:19 PM) rickspencer3: In the pallette, under Control and Display, click on the Text Entry control. Then click on the space where the label used to be.
(02:20:32 PM) rickspencer3: that should add a textentry for you
(02:20:37 PM) rickspencer3: and call it "entry1"
(02:20:43 PM) rickspencer3: Also, turn off the size request for the window.
(02:20:53 PM) rickspencer3: otherwise, the window will be a funny size when it runs
(02:21:07 PM) rickspencer3: Do this by selecting searchy_window in the inspector (the treeview at the top right)
(02:21:20 PM) rickspencer3: then in properties (the window right below) ...
(02:21:28 PM) rickspencer3: click Common tab, and unselect Width Request and Height Request checkboxes.
(02:22:02 PM) rickspencer3: so the UI is edited, but we need to tell the ui file to tell our python code to do something when the user hits the enter key in the edit field
(02:22:26 PM) rickspencer3: we do this by defining a "signal handler" in glade, and then writing handler code in python
(02:22:32 PM) rickspencer3: so to define the handler
(02:22:40 PM) rickspencer3: In Glade, click on the text entry (entry1) to select it
(02:22:47 PM) rickspencer3: Switch to the Signals tab
(02:22:55 PM) rickspencer3: Click in the Hanlder column in the activate row, and type "do_search". Hit Enter.
(02:23:00 PM) rickspencer3: Make sure that you save, or your changes won't show up when you run the app!
(02:23:10 PM) rickspencer3: so that's editing the UI
(02:23:22 PM) rickspencer3: didrocks, shall I pause to answer questions before we go on to write a little code?
(02:23:28 PM) didrocks: yes, there is a question on the glade side before we begin to write some code
(02:23:38 PM) didrocks: <AntoineLeclair> QUESTION: Why does launching Glade from Applications > Programming won't work with quickly? What does quickly do differently?
(02:24:20 PM) rickspencer3: what quickly does is assumes that there is one UI file for each Python class for each window type
(02:24:42 PM) rickspencer3: instead of a single big ui file taht defines all of the UI for the whole project
(02:25:32 PM) rickspencer3: this allows each class to derive from window, and most importantly from Dialog
(02:25:52 PM) rickspencer3: quickly needs to generate some xml files to tell Glade about these classes
(02:26:08 PM) rickspencer3: and if you just load Glade from the Applications menu, Glade doesn't get to see those UI files
(02:26:19 PM) rickspencer3: and won't load the UI files rather than risk corrupting them
(02:26:40 PM) rickspencer3: so, I'd love to make this easier and more fun in a later version
(02:26:47 PM) rickspencer3: other questions?
(02:27:07 PM) didrocks: rickspencer3: no, that's all. But there are a lot of people trying quickly :)
(02:27:14 PM) didrocks: you can go on ^^
(02:27:20 PM) ***rickspencer3 sweats a little at the brow line
(02:27:30 PM) rickspencer3: Now we just need to write a little code to make the search happen
(02:27:38 PM) rickspencer3: Go back to the terminal and type: $quickly edit
(02:27:49 PM) rickspencer3: make sure that you are in the searchy directory
(02:28:00 PM) rickspencer3: This will open your editor (most likey Gedit) with all of the python files for your project
(02:28:15 PM) rickspencer3: apparently there is a bug that is keeping this form working well for VIM users atm :(
(02:28:24 PM) rickspencer3: Before you start, make sure your editor is set up for Python programming
(02:28:25 PM) rickspencer3: !!!
(02:28:29 PM) rickspencer3: this part is important
(02:28:41 PM) rickspencer3: or you will get weird errors and generally not have fun
(02:28:48 PM) rickspencer3: Python uses spaces and tabs very differently, and it can cause your program not to run, and can be very confusing if you don't set up Gedit properly.
(02:28:57 PM) rickspencer3: Go to Edit -> Preferences
(02:29:02 PM) rickspencer3: Go to Editor tab
(02:29:06 PM) rickspencer3: Turn on Use spaces instead of tabs
(02:29:11 PM) rickspencer3: Set Tab width to 4
(02:29:15 PM) rickspencer3: This will set up Gedit to follow Python standards while coding
(02:29:31 PM) rickspencer3: if you haven't programmed python before ...
(02:29:34 PM) rickspencer3: just a quick note
(02:29:46 PM) rickspencer3: python uses indentations level to indicate scope
(02:29:59 PM) rickspencer3: so indentations are very critical
(02:30:13 PM) rickspencer3: ok ... so back to the code
(02:30:21 PM) rickspencer3: in gedit click on the tab for "searchy"
(02:30:28 PM) rickspencer3: Hit Cntrl-S to make the syntax coloring work
(02:30:40 PM) rickspencer3: "searchy" is the main python file for your application. It runs the code for the main window, and is the first file that gets run when you start your app.
(02:31:13 PM) rickspencer3: basically, to make the window do stuff, you'll add methods and member varaibles to the SeachyWindow class
(02:31:51 PM) rickspencer3: remember when we added do_search to edit1?
(02:31:58 PM) rickspencer3: All we need to do is to add a function in the SearchyWindow class called do_search
(02:32:14 PM) rickspencer3: this will be called when the user hits enter on entry1
(02:32:23 PM) rickspencer3: The function will just read what is in the text entry field, construct a url string, and use webbrowser to do a web search. Searchy will then close itself.
(02:32:44 PM) rickspencer3: Add urllib by adding "import urllib" at line 10.
(02:32:44 PM) rickspencer3: Add urllib by adding "import webbrowser" at line 11.
(02:32:54 PM) rickspencer3: Then at line 82, hit enter a couple of times to add a new function at line 84.
(02:32:59 PM) rickspencer3: I put the edited file into pastebin here: http://paste.ubuntu.com/262082/
(02:33:18 PM) rickspencer3:     def do_search(self, widget, daata=None):
(02:33:19 PM) rickspencer3:         search_words = self.builder.get_object("entry1").get_text()
(02:33:19 PM) rickspencer3:         q = urllib.urlencode({'q':search_words})
(02:33:19 PM) rickspencer3:         url = "http://linuxsearch.org/?cof=FORID%3A9&cx=003883529982892832976%3At4dsysmshjs&"
(02:33:19 PM) rickspencer3:         url += q
(02:33:19 PM) rickspencer3:         url += "&sa=Search"
(02:33:21 PM) rickspencer3:         webbrowser.open(url)
(02:33:23 PM) rickspencer3:         self.destroy()
(02:33:31 PM) rickspencer3: that's the function that I wrote to respond to do_search
(02:33:54 PM) rickspencer3: Notice around line 86, the code uses "self.builder" to get a reference to the text entry that was added in Glade.
(02:34:05 PM) rickspencer3: Where does self.builder come from?
(02:34:11 PM) rickspencer3: Well, the ubuntu-project template sets up a relationship between .ui files generated by Glade, and Python *classes* that use those files.
(02:34:22 PM) rickspencer3: In order for this to work, the generated Python files have special functions that get generated that set up the objects for you.
(02:34:30 PM) rickspencer3: You can see this around line 94 of the searchy file. A function called NewSearchWindow.
(02:34:39 PM) rickspencer3: This special function knows how to set up SearchyWindow object. And then calls "finish_initializing" on the newly created object.
(02:34:52 PM) rickspencer3: This means a few things:
(02:34:57 PM) rickspencer3: 1. never try to create a searchy window in code like this:
(02:35:01 PM) rickspencer3: wind = SearchyWindow()
(02:35:05 PM) rickspencer3: because then the ui file won't be set up correctly, and "finish_initializing" won't be called.
(02:35:15 PM) rickspencer3: 2. Use "finish_initializing" to add any set up code, as that will be called *after* the UI is loaded.
(02:35:32 PM) rickspencer3: (stuff you may have put in an __init__() function before
(02:35:38 PM) rickspencer3: 3. Do this to create a new window:
(02:35:50 PM) rickspencer3: wind = SearchyWindow.NewSearchyWindow()
(02:35:59 PM) rickspencer3: and all will be well.
(02:36:16 PM) rickspencer3: so back to the do_search function
(02:36:29 PM) rickspencer3: this function pulls out the text from text entry on line 86
(02:36:34 PM) rickspencer3: Uses urllib to create a url parameter in line 87
(02:36:38 PM) rickspencer3: line 88 - 90 build a url string
(02:36:44 PM) rickspencer3: line 91 opens the web browser
(02:36:51 PM) rickspencer3: then line 92 closes the SearchyWindow
(02:37:12 PM) rickspencer3: when you are done coding ...
(02:37:14 PM) rickspencer3: use $quickly run
(02:37:15 PM) rickspencer3: to run it
(02:37:22 PM) rickspencer3: so that's the coding section
(02:37:32 PM) rickspencer3: didrocks, any questions before we discuss packaging or releasing?
(02:37:59 PM) didrocks: rickspencer3: there are two questions, but it's related to what you will discuss later, so, I'm queuing them
(02:38:10 PM) didrocks: <mandel_macaque> Question: Any special things to do if we want to add or own modules?
(02:38:18 PM) rickspencer3: ok
(02:38:23 PM) rickspencer3: for packaging will discuss later
(02:38:32 PM) didrocks: <rugby471> QUESTION: Does Quickly handle translations?
(02:38:37 PM) rickspencer3: for coding, right now you just create new files and pull them in
(02:38:50 PM) rickspencer3: for translations there are a couple of pieces
(02:39:33 PM) rickspencer3: first, since the ubuntu-project template uses glade by default, the UI is tranlatably by default
(02:40:09 PM) rickspencer3: for using strings in code, you would need to do the get_text trick, which quickly doesn;t handle natively, but perhaps it should
(02:40:19 PM) rickspencer3: I'll log a bug on that
(02:40:36 PM) rickspencer3: then for doing the translations, quickly assumes you will use launchpad for your code hosting
(02:40:50 PM) rickspencer3: so translations get supported there in the launchpad way
(02:41:05 PM) rickspencer3: maybe go on to packaging?
(02:41:10 PM) didrocks: (maybe a "$quickly addfile" command)
(02:41:16 PM) didrocks: one more question
(02:41:18 PM) didrocks: <rugby471> QUESTION: does quickly use gtkbuilder or libglade?
(02:41:18 PM) ***rickspencer3 nods
(02:41:24 PM) rickspencer3: gtkbuilder!!
(02:41:30 PM) rickspencer3: libglade is deprecated
(02:41:39 PM) rickspencer3: :)
(02:41:43 PM) didrocks: phew ^^
(02:41:47 PM) didrocks: rickspencer3: you can go on :)
(02:42:05 PM) rickspencer3: that's one of the reasons I wanted to do quickly, I wrote weeks of libglade code before I discovered it was deprecated
(02:42:16 PM) rickspencer3: I don't want that to happen to other people
(02:42:34 PM) rickspencer3: so's ... packaging
(02:42:38 PM) rickspencer3: ok .. here's the thing
(02:42:49 PM) rickspencer3: personally, I find packaging very persincety
(02:42:55 PM) rickspencer3: and complicated, and time consuming
(02:43:20 PM) rickspencer3: especially compared to say, using ftp to but files on a web site
(02:43:28 PM) rickspencer3: with quickly, though, it goes waaay easier
(02:43:47 PM) rickspencer3: Typically, you'll want to share your software in a PPA, but we'll cover that next ... but we can cover that next
(02:43:54 PM) rickspencer3: To make a package with quickly, you'll want to start by licensing your software
(02:44:01 PM) rickspencer3: To do this, start by editing the generated file called "Copyright".
(02:44:06 PM) rickspencer3: Change the top line to have the current year and your name and your email.
(02:44:12 PM) rickspencer3: So I would make the top line look like this:
(02:44:16 PM) rickspencer3: # Copyright (C) 2009 Rick Spencer rick.spencer@canonical.com
(02:44:25 PM) rickspencer3: then ...
(02:44:26 PM) rickspencer3: $quickly license
(02:44:35 PM) rickspencer3: The ubuntu-project template is going to use this to apply the GPL V3 (as no license is given in the command arg) to Searchy python files
(02:44:51 PM) rickspencer3: You can use other well-known license with $quickly license <LICENSE> (shell completion is your friend) or use your personal license.
(02:44:57 PM) rickspencer3: (thanks didrocks)
(02:45:16 PM) rickspencer3: Now if I reload my files, I can see that the license has been added to the top
(02:45:25 PM) rickspencer3: Note that if you didn't license before building the package on LP, it will be automatically licensed to GPL V3 with your LP user name for copyright
(02:45:38 PM) rickspencer3: so, easy to license, what about to package?
(02:45:46 PM) rickspencer3: Now I need to provide just a little info to quickly so that it knows enough about my project to make a good package.
(02:45:56 PM) rickspencer3: This info is provided in the setup.py file, also generated for you
(02:46:02 PM) rickspencer3: Open setup.py.
(02:46:34 PM) rickspencer3: Scroll down to the part that says:
(02:46:35 PM) rickspencer3: ###################### YOU SHOULD MODIFY ONLY WHAT IS BELOW ######################
(02:46:57 PM) rickspencer3: Obviously, you only want to edit what is below that.
(02:47:10 PM) rickspencer3: You can see how I set that up here:
(02:47:10 PM) rickspencer3: http://paste.ubuntu.com/262183/
(02:47:17 PM) rickspencer3: DistUtilsExtra.auto.setup(
(02:47:17 PM) rickspencer3:     name='searchy',
(02:47:17 PM) rickspencer3:     version='0.1',
(02:47:17 PM) rickspencer3:     license='GPL-3',
(02:47:17 PM) rickspencer3:     author='Rick Spencer',
(02:47:18 PM) rickspencer3:     author_email='rick.spencer@canonical.com',
(02:47:20 PM) rickspencer3:     description='Quickly do Linux Searches',
(02:47:22 PM) rickspencer3:     long_description='A simple text entry field in a window that directs searches to http://linuxsearch.org',
(02:47:25 PM) rickspencer3:     url='https://launchpad.net/searchy',
(02:47:27 PM) rickspencer3:     cmdclass={'install': InstallAndUpdateDataDirectory}
(02:47:29 PM) rickspencer3:     )
(02:47:40 PM) rickspencer3: this is going to tell python-distutils-extra a little about me and my app
(02:47:53 PM) rickspencer3: You can also change the info in the desktop file to change the category and other stuff.
(02:48:00 PM) rickspencer3: For Searchy, it's called searchy.desktop.in
(02:48:04 PM) rickspencer3: Another good thing to do is to change the icon to your own.
(02:48:09 PM) rickspencer3: You can do that by editing the file "logo.svg" and the file "icon.png"
(02:48:24 PM) rickspencer3: but let's skip that for now
(02:48:32 PM) rickspencer3: Once you've licensed it and personalized it, to create a package, just use the command:
(02:48:36 PM) rickspencer3: $quickly package
(02:48:50 PM) rickspencer3: This will do a few things for you.
(02:48:54 PM) rickspencer3: First, it will search through your project for dependencies.
(02:48:57 PM) rickspencer3: !!
(02:49:07 PM) rickspencer3: thanks to pitti for this bit of magic!
(02:49:34 PM) rickspencer3: python-distutils-extra will infer dependencies from your code
(02:49:43 PM) rickspencer3: Then quickly package does a bunch of deb magic.
(02:49:48 PM) rickspencer3: This spits out a zipped up version of your project
(02:49:54 PM) rickspencer3: But more importantly, a .deb file
(02:50:03 PM) rickspencer3: You can find these files at the peer level of your project directory.
(02:50:17 PM) rickspencer3: If you double click on the .deb file, you can install your app
(02:50:24 PM) rickspencer3: or you can send the .deb file around, etc...
(02:50:46 PM) rickspencer3: didrocks, given that we have only a few minutes .. shall I touch on releasing, or just answer questions?
(02:51:13 PM) didrocks: rickspencer3: there are not so many questions you didn't answer, just drop some word on releasing and we will give the 5 latest minutes for questions
(02:51:18 PM) rickspencer3: k
(02:51:21 PM) rickspencer3: let's rock it!
(02:51:35 PM) rickspencer3: Before you can use quickly release, though, you need to set up launchpad.
(02:51:56 PM) rickspencer3: I think this was all covered in the last session, but here are some links
(02:52:04 PM) rickspencer3: and you can drop into #quickly if you want some more help
(02:52:22 PM) rickspencer3: create an account and set up ssh keys:
(02:52:22 PM) rickspencer3: https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair
(02:52:34 PM) rickspencer3: In your launchpad account, you will need a "personal package archive", or PPA
(02:52:39 PM) rickspencer3: But first, you'll need a pgp key for your ppa.
(02:52:44 PM) rickspencer3: Follow the instructions here: https://help.launchpad.net/YourAccount/ImportingYourPGPKey
(02:52:52 PM) rickspencer3: when you make you pgp key, don't add a comment to it!
(02:55:46 PM) didrocks: ok, rickspencer3 seems to have some trouble with his connection
(02:55:47 PM) didrocks: going on
(02:55:49 PM) didrocks: If there is a comment in it, quickly won't be able to find it.
(02:56:15 PM) didrocks: Now you have to setup a ppa to publish your code. You can come on #quickly and we will help you :)
(02:56:24 PM) didrocks: then, create a launchpad project
(02:56:31 PM) didrocks: use the command:
(02:56:32 PM) didrocks: $quickly release
(02:56:38 PM) didrocks: You will have to interact a little with command to make it work
(02:56:56 PM) didrocks: (the first time, to say who you are, what lp project you want to be binded to)
(02:57:07 PM) didrocks: When this is all done, quickly will churn for a while building and signing packages
(02:57:12 PM) didrocks: Then it will upload the package to your ppa.
(02:57:17 PM) didrocks: Once it's in your ppa, you can share that link with your users
(02:57:25 PM) didrocks: they can install by adding the deb line to their sofware sources
(02:57:30 PM) didrocks: and after that, if you update the software, they will get the changes.
(02:57:48 PM) didrocks: here we are for the short story, now, going to answer to some questions in the last 3 minutes :)
(02:57:54 PM) didrocks: <HobbleAlong> Question: is quickly python only or can I use a different coding language; C for instance?
(02:57:57 PM) didrocks: <mandel_macaque> Question: (for later) are there template translation capabilities ex: move from Pyqt to PySide?
(02:58:11 PM) didrocks: today, we only have one template, which is ubuntu-project template
(02:58:23 PM) didrocks: the idea is to enable user to create a bunch of them
(02:58:41 PM) didrocks: quickly already support this, we have to blog on how to create a proper template
(02:58:49 PM) didrocks: <rugby471> QUESTION: How do you create new templates for quickly & what format are they in (briefly)
(02:59:20 PM) didrocks: so, for answering this question, wait for a week, I'm writing a "dive into quickly" blog post suit and you will hopefully have all your answers :)
(02:59:40 PM) didrocks: so, a ubuntu-C-project will be awesome
(02:59:52 PM) didrocks: ubuntu-game template, that uses pygame  too
(02:59:59 PM) didrocks: and a gedit-plugin that makes it easy to add functions to gedit
(03:00:09 PM) didrocks: also, LaTeX template, etc. the sky is the limit :)
(03:00:36 PM) didrocks: <mandel_macaque> Question: What are u using couchdb for? Can our apps interact with your records using desktopcouch
(03:00:50 PM) didrocks: well, no time to descript desktopcouch, but it's a good piece of software
(03:01:05 PM) didrocks: in short, it enables to store preferences locally or remotely :)
(03:02:26 PM) rickspencer3_: sorry
(03:02:34 PM) didrocks: he's back \o/
(03:02:34 PM) rickspencer3_: my computer froze :(
(03:02:40 PM) rickspencer3_: but didrocks knows all
(03:02:54 PM) rickspencer3_: I'll hop into #quickly in like 30 minutes
(03:03:02 PM) rickspencer3_: and can discuss other questions there
(03:03:12 PM) didrocks: great, thanks rickspencer3_ for the session
(03:03:21 PM) rickspencer3_: thank you didrocks
(03:03:35 PM) jawnsy: thanks rickspencer3_ and didrocks and all that participated by asking questions in the chat channel :-)
(03:03:40 PM) didrocks: hope to see all you guys using quickly :)

MeetingLogs/devweek0909/QuicklyFun (last edited 2009-08-31 19:30:57 by pool-71-182-107-66)