*** alga has quit IRC | 00:07 | |
*** alga has joined #SchoolTool | 01:05 | |
*** didymo has joined #schooltool | 01:41 | |
*** jinty has quit IRC | 01:58 | |
*** wrobel has quit IRC | 03:19 | |
pcardune | th1a, ayt? | 03:56 |
---|---|---|
*** didymo has quit IRC | 04:38 | |
th1a | pcardune: Hi | 04:46 |
pcardune | We are going to be doing resource management improvements | 04:50 |
pcardune | th1a, do you care whether I create a separate branch or not? | 04:50 |
th1a | Oh... hm. | 04:51 |
th1a | Actually, my opinion isn't worth much here. | 04:51 |
th1a | You could ask ignas. | 04:51 |
th1a | But if you feel like doing it, nobody will object. | 04:51 |
th1a | I suspect. | 04:52 |
pcardune | I was just going to create a branch, but I'm getting this permission error in doing so, and it is really annoying | 04:52 |
th1a | Oh. Can you commit? | 04:52 |
pcardune | its a permission error on my computer, not on the repository | 04:53 |
*** pcardune is now known as pcardune_away | 04:53 | |
*** alga has quit IRC | 06:00 | |
*** vidasp has quit IRC | 09:20 | |
*** mgedmin has joined #schooltool | 10:42 | |
*** wrobel has joined #schooltool | 13:55 | |
*** jinty has joined #schooltool | 15:04 | |
Lumiere | morning jinty | 16:38 |
jinty | hi Lumiere | 16:42 |
*** aelkner has joined #schooltool | 16:45 | |
*** lhuynh has joined #schooltool | 16:50 | |
*** jinty has quit IRC | 16:52 | |
*** Lumiere changes topic to "SchoolTool development | IRC logs at http://source.schooltool.org/irclogs/ | Dev meetings Mon, 14:30 UTC (16:30 EET) | CanDo dev meetings Tue, 4pm EST | Use http://paste.lisp.org/new/schooltool for pasting | #cando-sprint for class/sprint 20-Jan" | 16:53 | |
*** Lumiere changes topic to "SchoolTool development | IRC logs at http://source.schooltool.org/irclogs/ | Dev meetings Mon, 14:30 UTC (16:30 EET) | CanDo sprint in #cando-sprint | Use http://paste.lisp.org/new/schooltool for pasting" | 16:54 | |
*** lhuynh has quit IRC | 17:14 | |
*** Lumiere changes topic to "SchoolTool development | IRC logs at http://source.schooltool.org/irclogs/ | Dev meetings Mon, 14:30 UTC (16:30 EET) | CanDo class at 19:30 UTC (2:30 pm EST) | Use http://paste.lisp.org/new/schooltool for pasting" | 17:22 | |
Lumiere | sorry about all the topic changes | 17:23 |
Lumiere | th1a: here? | 17:23 |
*** jfroche_ has joined #schooltool | 17:34 | |
Lumiere | hi jfroche_ | 17:36 |
*** alga has joined #SchoolTool | 17:49 | |
*** jfroche has quit IRC | 17:50 | |
*** wdickers has joined #schooltool | 18:02 | |
wdickers | #cando-sprint | 18:02 |
th1a | Lumiere: Hi. | 18:45 |
Lumiere | there's gonna be a class for the cando sprint in here at 2:30 | 18:46 |
Lumiere | is there any chance I can get op in here during it | 18:46 |
Lumiere | to moderate the class | 18:46 |
th1a | op? | 18:48 |
Lumiere | channel operator? | 18:49 |
Lumiere | (I'd say halfop... but they don't exist here) | 18:49 |
th1a | Uh... I have remained blissfully ignorant of how IRC actually works. | 18:49 |
th1a | Am I an op? | 18:49 |
Lumiere | I don't know | 18:49 |
th1a | I don't think I am. | 18:49 |
th1a | I have a feeling mgedmin and SteveA are. | 18:50 |
Lumiere | ah | 18:50 |
*** lhuynh has joined #schooltool | 18:50 | |
mgedmin | SteveA might be | 18:52 |
mgedmin | I think he registered the channel with chanserv | 18:52 |
th1a | Lumiere: Is there something in particular you need to do? | 18:52 |
Lumiere | nothing really | 18:52 |
Lumiere | we can social engineer it | 18:52 |
*** ChanServ sets mode: +o mgedmin | 18:53 | |
mgedmin | wow | 18:53 |
*** ChanServ sets mode: +o Lumiere | 18:53 | |
Lumiere | but I was going to voice pcardune and the rest of cando people | 18:53 |
Lumiere | who are leading the class | 18:53 |
*** wdickers has quit IRC | 18:54 | |
aelkner | thla: do you know to navigate schooltool's db from outside? | 18:54 |
th1a | You mean, from the command line or another script? | 18:55 |
aelkner | I opened it, and printed the root and got: | 18:55 |
* mgedmin now knows that aelkner's font cannot distinguish lowercase ell from the digit one | 18:55 | |
th1a | mgedmin: This is a common problem. | 18:55 |
aelkner | true enough. | 18:56 |
Lumiere | I'm saving him | 18:56 |
aelkner | th1a: In our stAgent.py script, we want to open schooltool's ZODB to get at the data. | 18:56 |
th1a | Yes. | 18:58 |
th1a | Two processes can't open the same ZODB at the same time, btw. | 18:58 |
th1a | Unless you use ZEO. | 18:58 |
aelkner | Right. I remember. | 18:58 |
aelkner | As it is we haven't started schooltool. | 18:58 |
aelkner | Printing the dbroot yields: | 18:59 |
aelkner | {'Application': <persistent broken schooltool.app.app.SchoolToolApplication instance '\x00\x00\x00\x00\x00\x00\x00\x01'>, 'zope.app.generations': <persistent.dict.PersistentDict object at 0xb7370e6c>} | 18:59 |
mgedmin | you need to set up PYTHONPATH/sys.path | 18:59 |
mgedmin | so that the schooltool package can be imported | 18:59 |
aelkner | sys.path.append('???') | 19:00 |
mgedmin | something like that | 19:00 |
mgedmin | look at schooltool-server.py for an example | 19:00 |
mgedmin | I do not know whether the site.addsitedir is necessary just for accessing the zodb | 19:01 |
mgedmin | the playing around with sys.argv is definitely not necessary | 19:01 |
* mgedmin wonders if th1a saw his private message | 19:02 | |
th1a | I did. | 19:02 |
*** jelkner has joined #schooltool | 19:03 | |
mgedmin | but since you're not identified with nickserv, you cannot send private messages to anyone | 19:03 |
*** nitromaster has joined #schooltool | 19:03 | |
nitromaster | hello? | 19:03 |
*** tdoggette has joined #schooltool | 19:03 | |
nitromaster | hi everybody, im on the screen! | 19:03 |
*** kohr_ has joined #schooltool | 19:03 | |
kohr_ | hey all | 19:03 |
tdoggette | hey! | 19:04 |
aelkner | mgedmin: I don't see anything about opening the db schooltool-server.py | 19:04 |
*** mgallagh has joined #schooltool | 19:04 | |
mgedmin | aelkner: no, but you see how to set up sys.path | 19:04 |
*** mgallagh is now known as mattva01 | 19:04 | |
mgedmin | the db opening happens inside schooltool.app.main | 19:04 |
kohr_ | nah, #ubuntu is very useful | 19:04 |
mgedmin | but never mind, you are doing it correctly, you just need to set up sys.path | 19:04 |
*** lhuynh has joined #schooltool | 19:04 | |
*** Jama has joined #schooltool | 19:05 | |
kohr_ | hey jama | 19:05 |
Lumiere | hi new interns :) | 19:05 |
Jama | hello | 19:05 |
kohr_ | hey! | 19:05 |
* tdoggette salutes | 19:05 | |
* kohr_ waves hi to tdoggette | 19:05 | |
*** Preetam has joined #schooltool | 19:05 | |
kohr_ | weee I am on the big screen! | 19:05 |
*** expensivenode has joined #schooltool | 19:05 | |
kohr_ | HELLO EVERYBODY | 19:05 |
expensivenode | hello | 19:05 |
aelkner | mgedmin: I'll have to talke to you later about this as the channel is overrun. | 19:06 |
* mgedmin waves | 19:06 | |
*** ChrisCarey has joined #schooltool | 19:06 | |
* lhuynh waves | 19:06 | |
nitromaster | \me wave | 19:06 |
kohr_ | we need a trivia bot! | 19:06 |
nitromaster | \wave | 19:06 |
ChrisCarey | hi | 19:06 |
Preetam | hello | 19:06 |
ChrisCarey | yeah | 19:06 |
tdoggette | kohr: yeah, that's just what we need | 19:06 |
lhuynh | nitromaster: forward slash | 19:06 |
nitromaster | i can't do it.... | 19:07 |
Preetam | lol | 19:07 |
ChrisCarey | haha | 19:07 |
lhuynh | nitromaster: just try | 19:07 |
nitromaster | like / w a v e don't work.... :(\ | 19:07 |
ChrisCarey | who are you guys? | 19:07 |
Lumiere | guys... some of us are going to be trying to work in here, please keep random chatter down a little | 19:07 |
mattva01 | its /me | 19:07 |
* mattva01 watches the channel get overrun | 19:07 | |
nitromaster | sorry | 19:07 |
kohr_ | we are the interns | 19:08 |
*** smalekgh has joined #schooltool | 19:08 | |
*** Filip_ has joined #schooltool | 19:08 | |
Preetam | whats up interns? | 19:08 |
Filip_ | nm | 19:08 |
Filip_ | having fun | 19:08 |
th1a | You know, the interns. Closely related to the Huns and Visigoths. | 19:08 |
Lumiere | haha! | 19:08 |
Filip_ | .. | 19:08 |
*** Lumiere sets mode: +o th1a | 19:08 | |
Lumiere | somehow I think you deserve this today :) | 19:08 |
smalekgh | ? | 19:08 |
*** user11 has joined #schooltool | 19:08 | |
Lumiere | interns: please join #cando-sprint for random chatter | 19:09 |
*** tehminkeh has joined #schooltool | 19:09 | |
kohr_ | user11, change your name | 19:09 |
*** Filip_ has left #schooltool | 19:09 | |
* tehminkeh waves | 19:09 | |
user11 | why | 19:09 |
*** rrenner has joined #schooltool | 19:09 | |
*** user05 has joined #schooltool | 19:09 | |
smalekgh | why not <_< | 19:09 |
* Preetam waves | 19:09 | |
smalekgh | I think I shalt change my name <_< | 19:09 |
* mgedmin feels like he's in a kindergarten | 19:09 | |
*** smalekgh has quit IRC | 19:10 | |
* tehminkeh says monkeys are fun | 19:10 | |
* tehminkeh waves | 19:10 | |
* Preetam laughs at nitromaster | 19:10 | |
*** smalekgh has joined #schooltool | 19:10 | |
* tehminkeh laughs too | 19:10 | |
* nitromaster knows how to wave | 19:10 | |
* user11 wow | 19:10 | |
tehminkeh | lol | 19:10 |
tehminkeh | user11 | 19:10 |
tehminkeh | how original | 19:10 |
user11 | we can't all be monkeys | 19:11 |
lhuynh | Who is actually _trying_ to work? | 19:11 |
Jama | join the other channel if you want to just talk | 19:11 |
tehminkeh | which one? | 19:11 |
*** smalekgh has quit IRC | 19:11 | |
Lumiere | aelkner and mgedmin were | 19:11 |
Jama | cando-sprint | 19:11 |
*** rrenner has quit IRC | 19:11 | |
*** smalekgh has joined #schooltool | 19:11 | |
nitromaster | \j cando-sprint | 19:11 |
* expensivenode slaps user11 with a big smelly trout | 19:11 | |
* tehminkeh thinks nitromaster is mentally challenged | 19:12 | |
*** rrenner has joined #schooltool | 19:12 | |
user05 | hi | 19:13 |
Lumiere | so that you don't talk over people trying to work in #schooltool | 19:13 |
user11 | how do you get on cando-sprint? | 19:13 |
*** smalekgh has quit IRC | 19:13 | |
tdoggette | Where should us smelly interns go to chatter? | 19:13 |
kohr_ | hmmm, how about #newschooltool for the chatting channel? | 19:13 |
user05 | hello | 19:13 |
Lumiere | do /j #cando-sprint | 19:13 |
Lumiere | kohr_: we have a channel up already | 19:13 |
*** user05 has quit IRC | 19:14 | |
*** user05 has joined #schooltool | 19:14 | |
*** Jama is now known as Jama_ | 19:14 | |
*** kohr_ is now known as whatevernickyouw | 19:14 | |
*** ChrisCarey is now known as CPCarey | 19:14 | |
*** nitromaster is now known as arod | 19:14 | |
user05 | hlblk | 19:15 |
*** whatevernickyouw is now known as kohr_ | 19:15 | |
*** Jama_ is now known as Fillip_ | 19:15 | |
user05 | what about me | 19:15 |
arod | \nick arod | 19:15 |
*** user05 has left #schooltool | 19:15 | |
*** kohr_ has left #schooltool | 19:15 | |
*** user05 has joined #schooltool | 19:15 | |
*** Fillip_ is now known as theminkeh | 19:16 | |
*** arod is now known as tehminkey | 19:16 | |
*** Preetam has quit IRC | 19:16 | |
*** mattyt has joined #schooltool | 19:16 | |
user05 | h | 19:17 |
*** theminkeh is now known as Xephon | 19:17 | |
user05 | ii | 19:18 |
*** tehminkeh is now known as nitromaster101 | 19:18 | |
*** nitromaster101 is now known as tehminkeh | 19:18 | |
*** rrenner has quit IRC | 19:19 | |
*** tehminkey has quit IRC | 19:19 | |
*** Xephon is now known as Makorihi | 19:19 | |
*** tehminkeh has quit IRC | 19:19 | |
*** user05 has quit IRC | 19:19 | |
*** Preetam has joined #schooltool | 19:23 | |
*** tehminkeh has joined #schooltool | 19:23 | |
*** user11 is now known as stopdrop | 19:23 | |
*** stopdrop is now known as stopdropandroll | 19:23 | |
*** nitromaster has joined #schooltool | 19:24 | |
*** Preetam is now known as theminken | 19:26 | |
*** stopdropandroll is now known as THEtehminkeh | 19:26 | |
*** mattyt is now known as Matty | 19:28 | |
*** Matty is now known as MattyT | 19:28 | |
*** mattva01 has quit IRC | 19:35 | |
*** theminken has quit IRC | 19:35 | |
*** pcardune_away is now known as pcardune | 19:35 | |
pcardune | jelkner, hi | 19:36 |
lhuynh | pcardune: everyone went out for a lunch break | 19:37 |
pcardune | lhuynh, oh, that's what I figured | 19:38 |
pcardune | lhuynh, when are they going to be back? | 19:38 |
lhuynh | pcardune: they just left | 19:40 |
lhuynh | pcardune: do you need a message sent? | 19:40 |
pcardune | no | 19:41 |
pcardune | I guess I can go take a breakfast break then | 19:41 |
lhuynh | pcardune: okay | 19:41 |
pcardune | lhuynh, were there any cool presentations? | 19:41 |
lhuynh | pcardune: a lot of card games... bridge in particular stood out. there was one where you could talk to the machine, but the audio was down | 19:42 |
lhuynh | pcardune: and a raiden-style (airplane shooting) game | 19:42 |
pcardune | lhuynh, what did they use for the speech recognition? | 19:42 |
lhuynh | pcardune: it was a chat between the user and the bot, but the bot responded using... festival? | 19:43 |
pcardune | yeah, festival, i used that once for a project | 19:43 |
pcardune | siipy.sourceforge.net | 19:43 |
lhuynh | pcardune: Elkner's here | 19:44 |
jelkner | hi pcardune! | 19:44 |
pcardune | hi jelkner | 19:44 |
jelkner | let me update you on the status | 19:44 |
jelkner | it's a bit scary | 19:44 |
jelkner | but *very* exciting | 19:44 |
jelkner | as a teacher i'm used to having about half the class not understand things | 19:45 |
jelkner | not follow directions | 19:45 |
jelkner | etc... | 19:45 |
jelkner | here | 19:45 |
jelkner | by the time i finish asking folks to do something | 19:45 |
jelkner | most of them are finished already | 19:45 |
jelkner | waiting for the next thing to do | 19:45 |
jelkner | they all have maddog account | 19:46 |
pcardune | that's a good trend | 19:46 |
jelkner | s | 19:46 |
jelkner | indeed! | 19:46 |
jelkner | they all have running zope instances | 19:46 |
jelkner | they are at lunch now | 19:46 |
jelkner | but i finished eveything i wanted to do | 19:46 |
jelkner | you should have seen the presentations, btw... | 19:46 |
jelkner | awesome! | 19:46 |
pcardune | jelkner, is there time for me to go get some breakfast? | 19:46 |
jelkner | yes | 19:47 |
jelkner | linda | 19:47 |
jelkner | is working on the lessons | 19:47 |
jelkner | i'll start with them right after lunch | 19:47 |
jelkner | eldar can be here to help | 19:47 |
jelkner | and you can take over whenver you are ready | 19:47 |
jelkner | sound good? | 19:47 |
pcardune | yep | 19:47 |
pcardune | ok, ill be back shortly | 19:47 |
*** pcardune is now known as pcardune_breakfa | 19:48 | |
*** pcardune_breakfa is now known as pcardune | 20:07 | |
*** povbot` has joined #schooltool | 20:15 | |
jelkner | what do you want lhuynh and i to do about the lessons | 20:15 |
jelkner | ? | 20:15 |
lhuynh | jelkner: actually, wait a moment for those. | 20:16 |
pcardune | keep them around. everything there is good... it's just that the order is going to change a bit | 20:16 |
jelkner | ok | 20:16 |
pcardune | we won't do containers until after we have an implementation | 20:16 |
jelkner | so you don't need them to start? | 20:16 |
pcardune | no | 20:16 |
*** Lumiere sets mode: +v jelkner | 20:16 | |
Lumiere | a small housekeeping note | 20:17 |
*** povbot_ has joined #schooltool | 20:23 | |
CPCarey | just testing | 20:23 |
*** Preetam has joined #schooltool | 20:23 | |
*** Preetam has left #schooltool | 20:24 | |
pcardune | ok, is everyone ready to begin? | 20:24 |
*** Preetam has joined #schooltool | 20:24 | |
tdoggette | I stand ready. | 20:24 |
aelkner_ | Well I'm ready :) | 20:24 |
kohr_ | ready | 20:24 |
smamo | i'm ready | 20:24 |
Shok | I'm ready. | 20:24 |
Filip_ | ready | 20:24 |
pcardune | ok great | 20:24 |
CPCarey | ready | 20:24 |
MattyT | good to go | 20:24 |
* mattva01 is ready | 20:25 | |
*** GameOver is now known as mgarlapa | 20:25 | |
pcardune | Today, we will be learning about Zope, which stands for the Z Object Publishing Environment | 20:25 |
*** povbot has quit IRC | 20:25 | |
*** zizb has joined #schooltool | 20:25 | |
mattva01 | what does the z stand for? | 20:25 |
pcardune | Zope is the "web framework" that we use to write web applications - specifically CanDo and SchoolTool which I'm sure you have all heard of | 20:26 |
pcardune | the z stands for Z :) | 20:26 |
zizb | just my name. I feel like havin a z | 20:26 |
MattyT | makes perfect sense | 20:26 |
pcardune | think og the g in gnu | 20:26 |
zizb | XP | 20:26 |
zizb | this is bao anyway. | 20:26 |
pcardune | Now, why do we use zope and not some other web framework? | 20:26 |
Filip_ | because zope is with python? | 20:27 |
pcardune | primarily because of something called the "Component Architecture" | 20:27 |
*** zizb is now known as bvuong | 20:27 | |
pcardune | Filip_, other web frameworks like django and turbo gears also use python | 20:27 |
*** dcooper has joined #schooltool | 20:27 | |
Filip_ | ok then | 20:28 |
bvuong | sooo.... what are we gonna learn? | 20:28 |
pcardune | The component architecture allows us to break things up (programmatically) into different parts there work with each other | 20:28 |
pcardune | s/there/that | 20:28 |
*** alga has quit IRC | 20:29 | |
pcardune | I imagine that all of you worked with object oriented programming techniques when doing your projects | 20:30 |
pcardune | is that true? | 20:30 |
mattva01 | yes | 20:30 |
expensivenode | OOPs | 20:30 |
pcardune | well the component architecture takes OOP to a new level | 20:30 |
*** bvuong is now known as zizb | 20:30 | |
pcardune | from now on CA stands for Component Architecture | 20:30 |
pcardune | One of the biggest problems in writing web applications, is separating out data storage, "business logic" and a user interface front end | 20:31 |
pcardune | business logic is what programmers do | 20:32 |
pcardune | data storage is what database geeks do (except in zope and we will get to that) | 20:32 |
pcardune | and the user interface is what web designers do | 20:32 |
pcardune | How many of you like to do art on the side as a hobby or something? | 20:33 |
tehminkeh | not me | 20:33 |
tehminkeh | at all | 20:33 |
kohr_ | I like to photoshop | 20:33 |
nitromaster | me me | 20:33 |
Shok | I do | 20:33 |
smamo | ok | 20:33 |
mgarlapa | photoshop! yes | 20:33 |
expensivenode | phart | 20:33 |
Makorihi | yep | 20:33 |
mattva01 | blender | 20:33 |
Makorihi | photoshop | 20:33 |
tdoggette | Now wouldn't be a good time to talk about GIMP, right? | 20:33 |
MattyT | MS Paint | 20:33 |
nitromaster | yea | 20:33 |
kohr_ | ... I meant GIMP of course | 20:33 |
tehminkeh | GIMP is sexy | 20:33 |
Lumiere | take the gimp v photoshop stuff to #cando-sprint :) | 20:33 |
pcardune | well that is very good, you are ahead of the game | 20:33 |
Filip_ | i think it's time to go back to the subject | 20:34 |
pcardune | but usually, programmers don't go to art school | 20:34 |
zizb | of course. | 20:34 |
pcardune | and artists don't learn to program | 20:34 |
kohr_ | unless they are web designers | 20:34 |
kohr_ | or work for apple | 20:34 |
pcardune | html and css is not programming.... | 20:34 |
*** povbot` has quit IRC | 20:35 | |
zizb | unless you use javascript | 20:35 |
pcardune | so in web applications (and this is good practice for most other applications too) we want to separate out the job of programmers and of web designers | 20:35 |
zizb | it's not? | 20:35 |
Lumiere | zizb: take it to #cando-sprint | 20:35 |
pcardune | so that web designers don't have to worry about application logic, and programmers don't have to worry about making things look pretty | 20:36 |
*** Masood has joined #schooltool | 20:36 | |
pcardune | this is just one of the things that zope's CA allows us to do | 20:36 |
pcardune | the other big thing we get from the CA is a huge amount of flexibility | 20:36 |
*** kjcole has joined #schooltool | 20:36 | |
pcardune | since everything is comprised of chunks of functional code, and since it is separated from pretty user interfaces, it is easy to reuse code in other places and connect third party code to your application | 20:37 |
MattyT | sounds nice | 20:38 |
Masood | so, this is like async_chat seperated from a GUI? | 20:38 |
pcardune | You might consider normal programming and normal applications like play mobil toys | 20:38 |
Masood | ...? | 20:38 |
expensivenode | yes | 20:38 |
tdoggette | Explain thy analogy. | 20:39 |
pcardune | but zope programming and the CA is more like legos | 20:39 |
Lumiere | Masood: like toys that you could use to build little play houses | 20:39 |
Masood | oye | 20:39 |
Lumiere | but not something impressive like legos | 20:39 |
pcardune | nobody has ever made models of the capital building out of playmobil | 20:39 |
expensivenode | linkin logs | 20:39 |
zizb | legos is beast | 20:39 |
Masood | I've done the capital building with linkin logs... | 20:39 |
MattyT | quit spamming. u get the point | 20:39 |
pcardune | so now that you are all tired of listening to how great the CA is, lets start programming with it | 20:40 |
tehminkeh | IM READY! | 20:40 |
tehminkeh | YEAH! | 20:40 |
zizb | ok | 20:40 |
nitromaster | let's go! | 20:40 |
zizb | when do we start? | 20:40 |
mgarlapa | yay | 20:40 |
dcooper | BRING IT! | 20:40 |
Filip_ | ok | 20:40 |
pcardune | open up whatever editor you like to use | 20:40 |
zizb | d'accord. vong a | 20:40 |
smamo | ok | 20:40 |
Makorihi | guys, please stop it | 20:40 |
aelkner_ | Enough of the hekklinG!!!!! | 20:40 |
zizb | would the terminal work? | 20:41 |
pcardune | does everyone know what we are going to program | 20:41 |
kohr_ | no | 20:41 |
dcooper | nope | 20:41 |
Masood | terminal as in the python interpreter? | 20:41 |
smamo | no | 20:41 |
zizb | nope | 20:41 |
mgarlapa | no] | 20:41 |
zizb | yeah | 20:41 |
Masood | then no | 20:41 |
Masood | prolly' | 20:41 |
*** Lumiere sets mode: +v aelkner_ | 20:41 | |
zizb | what should I use then? ?_? | 20:41 |
dcooper | we are going to program the world | 20:41 |
pcardune | use vim | 20:41 |
Lumiere | vim? notepad? | 20:41 |
Lumiere | whatever you have been using | 20:41 |
zizb | ok. so, in the terminal then. | 20:41 |
pcardune | for these set of classes we will be working on an application called ZContact | 20:42 |
Lumiere | guys... please stop the spam :) | 20:42 |
pcardune | it is a very simple and straight forward address book for organizing your contacts | 20:42 |
expensivenode | so we name it "ZContact" | 20:42 |
tdoggette | zcontact.py? | 20:42 |
expensivenode | "vi ZContact.py" | 20:42 |
zizb | ok | 20:42 |
pcardune | wait for instructions | 20:42 |
pcardune | you should create a directory called zcontact | 20:43 |
tdoggette | on maddog? | 20:43 |
kohr_ | should we be doing this on maddog? | 20:43 |
pcardune | and add an __init__.py file to it | 20:43 |
aelkner_ | where paul? | 20:43 |
pcardune | that is empty | 20:43 |
pcardune | yes, do this on maddog | 20:43 |
pcardune | everyone log into your maddog accounts | 20:43 |
aelkner_ | off of the home dir? | 20:43 |
Lumiere | we know you're all ready to go... just let paul type :) | 20:43 |
pcardune | and if i'm correct you have a zope instance in your home directory | 20:43 |
aelkner_ | yes | 20:43 |
pcardune | go to ~/zope/lib/python/ | 20:44 |
Lumiere | to create an empty file... use touch __init__.py | 20:44 |
pcardune | and in that directory create a directory called zcontact | 20:44 |
Lumiere | touch is a command to make an empty file | 20:44 |
pcardune | and within the zcontact directory create an empty file called __init__.py | 20:44 |
zizb | in the maddog account, right? | 20:44 |
pcardune | zizb, yes | 20:44 |
pcardune | does anyone know what the __init__.py file is for? | 20:44 |
pcardune | __init__.py makes the zcontact directory a python package | 20:45 |
tdoggette | should we put anything in __init__? | 20:45 |
Masood | it's the top-level module? | 20:45 |
pcardune | that means that if you open up the python interpreter while you are in ~/zope/lib/python, then you can say ">>> import zcontact" | 20:46 |
Masood | or something like that? | 20:46 |
pcardune | __init__ should be left empty | 20:46 |
Filip_ | oh cool | 20:46 |
pcardune | no I want you to create a file called interfaces.py | 20:46 |
pcardune | in the zcontact directory | 20:46 |
pcardune | from now on, everything is in the zcontact directory unless I say otherwise | 20:46 |
pcardune | In zope, we *always* write interfaces first | 20:47 |
pcardune | are there any java programmers out there? | 20:47 |
Filip_ | hello | 20:47 |
pcardune | interfaces in zope are similar to interfaces in java | 20:47 |
pcardune | but not exactly the same | 20:47 |
Filip_ | what differences are there? | 20:48 |
pcardune | we'll get to that | 20:48 |
pcardune | the first line in your file should be, "import zope.interface" | 20:48 |
pcardune | Then I want to to create a class called IContact the inherits from zope.interface.Interface | 20:48 |
*** lhuynh has quit IRC | 20:49 | |
zizb | I don't have a zope module | 20:49 |
mgarlapa | different file, or same? | 20:49 |
pcardune | in interfaces.py | 20:49 |
pcardune | don't worry about having a zope module yet | 20:49 |
zizb | how do we the zope module? or should we have one? | 20:50 |
pcardune | you actually do have a zope module, its just not in python's module search path | 20:50 |
zizb | oh | 20:50 |
pcardune | you should have someting like "class IContact(zope.interface.Interface):" | 20:50 |
zizb | what should be in that class? | 20:52 |
pcardune | is anyone confused about inheritance | 20:52 |
Masood | we have to have the 'i' prefixes for interfaces? Will we end up having 'c' prefixes or something for implementations (akin to irrlicht) <_<? | 20:52 |
tehminkeh | omg | 20:52 |
tehminkeh | ppl plz | 20:52 |
tehminkeh | just let him tell you what to do | 20:52 |
pcardune | we use the I (capital I) for interfaces | 20:52 |
pcardune | for implementation we don't use anything special | 20:52 |
pcardune | next thing, put a comment like """Interface that defines attributes in a contact.""" | 20:53 |
pcardune | we use three quotes directly underneath a class definition to specify a comment | 20:53 |
pcardune | this particular kind of comment is called a docstring | 20:53 |
pcardune | because it is write under the class definition | 20:54 |
pcardune | the next thing you want to put is "lastName = zope.interface.Attribute(title=u"Last Name", description="A contact's last name.", required=True) | 20:55 |
pcardune | as is obvious, we are working on creating an object for representing a Contact within our system | 20:56 |
pcardune | as someone said before, this involves creating an Interface and an Implementation | 20:56 |
pcardune | Interfaces define a contract for what our implementation needs to have | 20:56 |
pcardune | in normal python programming, you would skip the interface definition and go straight for the implementation | 20:57 |
*** jelkner has joined #schooltool | 20:57 | |
*** Lumiere sets mode: +v jelkner | 20:57 | |
pcardune | so here we have defined an interface called IContact, with one attribute: lastName | 20:57 |
tdoggette | lastName should be indented, yes? | 20:58 |
pcardune | that means that when we implement the actual object that represents a Contact, it will be required to have an attribute called lastName | 20:58 |
pcardune | tdoggette, yes, lastName is in the class | 20:58 |
pcardune | we also always put our interface definitions into a separate file called interfaces.py | 20:59 |
pcardune | so that they are easy to find later | 20:59 |
zizb | so, we write it as "LastName or LastName? | 20:59 |
pcardune | write it exactly as lastName | 20:59 |
pcardune | zope a standard naming scheme for everything | 21:00 |
pcardune | zope follows* | 21:00 |
pcardune | all interfaces start with a capital I followed by another Capital letter | 21:00 |
MattyT | it says there's no module named zope.interface.Interface | 21:00 |
jelkner | pcardune: our python path is not set | 21:00 |
pcardune | all class Start with a Capital letter and with Camel Case | 21:01 |
pcardune | as in CamelCase | 21:01 |
Lumiere | MattyT: you can't run it quite yet... pcardune will help you with that in a couple minutes | 21:01 |
pcardune | attributes and methods use camelCase (with the first letter lower case) | 21:01 |
MattyT | ok | 21:01 |
pcardune | if you want to run the code, then in your terminal type "export PYTHONPATH=/usr/local/src/Zope3/src" | 21:02 |
pcardune | jelkner, let me know if this isn't the right path for maddog | 21:02 |
pcardune | that line adds that directory to your python search path | 21:03 |
pcardune | now in that same terminal you can run "python interfaces.py" | 21:03 |
pcardune | it won't do anything except check your syntax and throw errors if you messed up | 21:03 |
jelkner | pcardune: please pause for a moment and let everyone edit .bashrc | 21:04 |
pcardune | oh and everyone, I decided to change my mind, the line with lastName on it should be: lastName = zope.interface.Attribute("A person's last name.") | 21:05 |
jelkner | everyone: | 21:06 |
aelkner_ | pcarduner: doesn't lastnema = violoate the 80 char rule? | 21:06 |
jelkner | please add the following two lines to the bottom of your .bashrc file: | 21:07 |
jelkner | PYTHONPATH=/usr/local/src/Zope3/src | 21:07 |
jelkner | export PYTHONPATH | 21:07 |
aelkner_ | never mind. | 21:07 |
Filip_ | does the path need quotation marks around it? | 21:07 |
jelkner | then from your home directory run: . .bashrc | 21:07 |
Filip_ | i.e. PYTHONPATH = "usr/local... | 21:07 |
Lumiere | Filip_: no | 21:07 |
jelkner | check that this worked by typing: echo $PYTHONPATH | 21:08 |
Lumiere | just as jelkner wrote it... that's how it should look | 21:08 |
jelkner | from your home directory | 21:08 |
zizb | where do we write the line in the bash file? | 21:08 |
Lumiere | zizb: at the bottom | 21:08 |
pcardune | jelkner, let me know when people are ready | 21:09 |
tdoggette | echo $PYTHONPATH should output "/usr/local/src/Zope3/src"? | 21:10 |
Lumiere | yes | 21:11 |
Lumiere | everyone ready? | 21:13 |
kohr_ | I am | 21:13 |
Masood | is it okay to non-violate the 80 char rule by seperating a keyword argument and it's default value? | 21:13 |
Masood | in a method declaration | 21:14 |
Lumiere | if you got it... and someone next to you doesn't | 21:14 |
Lumiere | please give them a hand | 21:14 |
Lumiere | so we can continue | 21:14 |
pcardune | Masood, put the keyword argument and the default value on the same line | 21:14 |
pcardune | when I type in IRC, my stuff wont fit into 80 chars, because it is easier to put it on one line, you guys can figure out how to chop it up | 21:15 |
Lumiere | it will also make it clear that it's one command | 21:16 |
zizb | I think Im ready. | 21:16 |
pcardune | the next thing I am going to have you do is create a file called "contact.py" | 21:16 |
Masood | more or less ready | 21:16 |
kjcole | pcardune, so the story so far looks like (let me see if I get this pastebin thing right...) | 21:16 |
*** jelkner has quit IRC | 21:16 | |
lisppaste5 | kjcole pasted "IContacts" at http://paste.lisp.org/display/35686 | 21:16 |
pcardune | kjcole, looks good | 21:17 |
*** lhuynh has joined #schooltool | 21:17 | |
pcardune | kjcole, except you jumped the gun on the zope.schema part | 21:18 |
pcardune | ok, if everyone is ready, create a contact.py file | 21:18 |
zizb | the interface file didn't work. It got the module though. | 21:18 |
pcardune | and in it I want you to put the lines "import zope.interface" and "import interfaces" | 21:18 |
pcardune | zizb, what didn't work about it? | 21:20 |
zizb | the error was :T ypeError: __init__() got an unexpected keyword argument 'required' | 21:21 |
pcardune | I previously said: I decided to change my mind, the line with lastName on it should be: lastName = zope.interface.Attribute("A person's last name.") | 21:22 |
pcardune | this is what your file should look like: http://paste.lisp.org/display/35686 | 21:22 |
Lumiere | except for the zope.schema line | 21:23 |
tdoggette | should it be zope.interface.interface or zope.interface.Interface? | 21:23 |
Lumiere | cap I | 21:24 |
pcardune | zope.interface.Interface | 21:24 |
Masood | Interface = class, interface = filename/modulename/somethingothername? | 21:24 |
pcardune | Masood, correct | 21:25 |
expensivenode | in case anyone copy/ pasted, the URL is missing a quotation mark on the """A Person object""" line | 21:25 |
pcardune | more like modulename/filename | 21:25 |
pcardune | imported the right stuff into contact.py, create a class called Contact | 21:26 |
pcardune | the inherits from object | 21:26 |
pcardune | put in some kind of docstring | 21:26 |
pcardune | then add the line zope.interface.implements(interface.IContact) | 21:26 |
pcardune | this class is going to be the implementation of the interface we just created | 21:26 |
pcardune | the line i just told you to write connects the implementation to the interface | 21:27 |
pcardune | since our interface specified a lastName attribute, we have to put a lastName attribute in the definition of the Contact class | 21:27 |
pcardune | so go ahead and add the line lastName = u"" | 21:27 |
pcardune | that initializes lastName to be an empty unicode string | 21:27 |
pcardune | it is important to use unicode strings any time a variable might store something entered in my a user | 21:28 |
aelkner_ | pcarduner: please explain "imported the right stuff into contact.py, create a class called Contact" | 21:28 |
pcardune | naturally, we want our program to be able to work with the arabic alphabet as well | 21:28 |
Lumiere | or nepalese | 21:29 |
pcardune | you should have imported "import zope.interface" and "import interfaces" | 21:29 |
pcardune | you do not need to import anything to inherit from "object" | 21:29 |
*** povbot has joined #schooltool | 21:33 | |
pcardune | check out the annotation I just made by going to the link above | 21:33 |
pcardune | now you can open up a python interpreter | 21:34 |
pcardune | and play around | 21:34 |
*** povbot has joined #schooltool | 21:37 | |
Makorihi | same | 21:37 |
pcardune | sorry, i meant implementedBy not providedBy | 21:37 |
Masood | aye :-) | 21:37 |
Filip_ | true | 21:37 |
pcardune | if you do >>> interfaces.IContact.providedBy(pcardune) you should get True | 21:37 |
pcardune | so the class definition implements an interface, and a class instance provides an interface | 21:38 |
zizb | when I typed "import contact", it didn't work | 21:38 |
pcardune | someone help zizb | 21:38 |
MattyT | i got true | 21:39 |
Makorihi | it depends on what the file name is | 21:39 |
kohr_ | >>> import contact | 21:39 |
kohr_ | Traceback (most recent call last): | 21:39 |
kohr_ | File "<stdin>", line 1, in ? | 21:39 |
kohr_ | File "contact.py", line 5 | 21:39 |
kohr_ | zope.interface.implements(interface.IContact) | 21:39 |
kohr_ | ^ | 21:39 |
Lumiere | interface -> interfaces? | 21:39 |
pcardune | nope | 21:39 |
Lumiere | pcardune: not zope.interface | 21:40 |
Lumiere | for interface.IContact | 21:40 |
Filip_ | the interface with the error | 21:40 |
pcardune | oh | 21:40 |
Filip_ | interface.IContact -> interfaces.IContact | 21:40 |
pcardune | it should be interfaces.IContact | 21:40 |
pcardune | well, we have about 20 more minutes of my time, let's see what we can do in 20 minutes | 21:41 |
pcardune | next thing I need you to do is create a file called contact-configure.zcml | 21:41 |
zizb | when I imported interfaces, I got, "TypeError: __init__() got an unexpected keyword argument 'required' | 21:41 |
lhuynh | in the /etc/package-includes folder, right? | 21:41 |
Lumiere | zizb: you need to look at the url that was pasted earlier | 21:41 |
Lumiere | there's something on that line | 21:41 |
lhuynh | pcardune: Elkner will need you for a little bit longer after the class is done. | 21:41 |
Lumiere | that you need to change | 21:42 |
tehminkeh | kohr_: zope.interface is the module that implements the concept of an interface | 21:42 |
MattyT | i made the .zcml file | 21:42 |
tehminkeh | kohr_: the interfaces holds your IContact interface | 21:42 |
tehminkeh | *interfaces.py | 21:42 |
Filip_ | take it to #cando-sprint ppl | 21:42 |
pcardune | in the zcml file put <include package="zcontact" /> | 21:42 |
pcardune | and that is it | 21:42 |
zizb | actually, I got, "Traceback (most recent call last): | 21:42 |
zizb | File "<stdin>", line 1, in ? | 21:42 |
zizb | File "interfaces.py", line 4, in ? | 21:42 |
zizb | class IContact(zope.interface.interface): | 21:42 |
zizb | TypeError: Error when calling the metaclass bases | 21:42 |
zizb | module.__init__() takes at most 2 arguments (3 given) | 21:42 |
zizb | I typed the lines from the url to my file. | 21:42 |
pcardune | zizb, it should be zope.interface.Interface and not zope.interface.interface | 21:43 |
*** povbot_ has joined #schooltool | 21:58 | |
pcardune | we created an implementation of IContact called Contact and put it in contact.py | 21:59 |
kohr_ | my doesn't work | 21:59 |
mgarlapa | mine doesn't either | 21:59 |
pcardune | the __init__.py makes the zcontact folder a python package | 21:59 |
pcardune | Preetam, help other folks | 21:59 |
pcardune | the zcontact-configure.zcml file lets zope know about our package, although we have to copy it to the zope3/etc/package-includes directory first | 22:00 |
pcardune | and the configure.zcml file tells zope that we created an object called Contact and specified the security settings for it | 22:00 |
*** povbot has joined #schooltool | 22:06 | |
pcardune | He can call me at 7:30 EST | 22:06 |
lhuynh | pcardune: will do, he says. see you then | 22:07 |
pcardune | ok | 22:07 |
pcardune | thanks for coming everybody, and I will talk to you again next week | 22:07 |
Masood | :-) | 22:07 |
pcardune | lhuynh, can you give them the link to stephan richters book | 22:07 |
Masood | (co) | 22:07 |
lhuynh | ... go to my site | 22:08 |
Lumiere | lhuynh: uh | 22:08 |
lhuynh | you can get a .pdf off of the site. | 22:08 |
Lumiere | link | 22:08 |
Lumiere | :P | 22:08 |
zizb | what's the url? | 22:08 |
Lumiere | to your site | 22:08 |
Lumiere | or whatever | 22:08 |
zizb | yeah | 22:08 |
pcardune | read chapter 6 and 7 | 22:09 |
zizb | where? | 22:09 |
lhuynh | three seconds. I deleted the link. | 22:09 |
Lumiere | 20... | 22:09 |
Lumiere | 25... | 22:09 |
lhuynh | http://linus.yhspatriot.net/cs/at/students/Huynh_Linda/ | 22:10 |
pcardune | http://wiki.zope.org/zope3/Zope3Book | 22:10 |
lhuynh | No rush, eh, Lumiere? | 22:10 |
lhuynh | or that. that works also. | 22:10 |
Lumiere | lhuynh: just giving you a hard time | 22:10 |
Lumiere | that's all | 22:10 |
Lumiere | http://linus.yhspatriot.net/cs/at/students/Huynh_Linda/book.pdf | 22:10 |
* lhuynh grins | 22:10 | |
pcardune | i prefer looking at it in html rather than pdf, but pdf works too | 22:11 |
lhuynh | interns can also try to ask elkner for a printed version, if you're really serious about this | 22:11 |
*** Masood is now known as ThePointOfNoRetu | 22:12 | |
*** ThePointOfNoRetu is now known as Dante | 22:12 | |
pcardune | goodbye everyone | 22:13 |
*** Lumiere changes topic to "SchoolTool development | IRC logs at http://source.schooltool.org/irclogs/ | Dev meetings Mon, 14:30 UTC (16:30 EET) | Use http://paste.lisp.org/new/schooltool for pasting" | 22:13 | |
Dante | I bid thee good farewell | 22:13 |
lhuynh | pcardune: you won't stay on for other things? gmail perhaps? | 22:13 |
Lumiere | lhuynh: he's on his way to teach another class at his uni | 22:13 |
foobar_ | could somebody e-mail all of the links today to everybody | 22:13 |
lhuynh | fun. my cousin does that, too. | 22:13 |
foobar_ | just so that we'll all have the links | 22:14 |
Lumiere | foobar_: lhuynh's job is to write a lesson out of this | 22:14 |
Lumiere | it'll include everything | 22:14 |
Lumiere | :) | 22:14 |
foobar_ | ok | 22:14 |
lhuynh | foobar_: yeah. bug me on gmail if you seriously want it. it's my work. | 22:14 |
foobar_ | sounds good | 22:14 |
*** pcardune is now known as pcardune_away | 22:14 | |
foobar_ | wow bad timing :D | 22:14 |
zizb | what? | 22:15 |
foobar_ | i just said i'm going to bug lhuynh on gmail without meaning it | 22:15 |
Dante | to: SchoolTool development | IRC logs at http://source.schooltool.org/irclogs/ | Dev meetings Mon, 14:30 UTC (16:30 EET) | Use http://paste.lisp.org/new/schooltool for pasting | 22:16 |
Dante | [15:13] <Dante> I bid thee good farewell | 22:16 |
Dante | [15:13] <lhuynh> pcardune: you won't stay on for other things? gmail perhaps? | 22:16 |
Dante | [15:13] <@Lumiere> lhuynh: he's on his way to teach another class at his uni | 22:16 |
Dante | [15:13] <foobar_> could somebody e-m | 22:16 |
Dante | oops | 22:16 |
*** tehminkeh has quit IRC | 22:16 | |
Dante | ........... I didn't mean to do that <_< bye | 22:16 |
*** Dante has left #schooltool | 22:16 | |
*** povbot_ has quit IRC | 22:18 | |
*** dcooper has quit IRC | 22:21 | |
*** zizb has quit IRC | 22:21 | |
*** povbot` has joined #schooltool | 22:24 | |
*** _kjcole has joined #schooltool | 22:28 | |
*** MattyT has quit IRC | 22:29 | |
*** tdoggette has quit IRC | 22:29 | |
*** expensivenode has quit IRC | 22:31 | |
*** Preetam has quit IRC | 22:32 | |
*** foobar_ has left #schooltool | 22:32 | |
*** CPCarey has quit IRC | 22:33 | |
*** mattva01 has quit IRC | 22:33 | |
*** smamo has quit IRC | 22:34 | |
*** kjcole has quit IRC | 22:36 | |
*** mgarlapa has quit IRC | 22:36 | |
*** nitromaster has quit IRC | 22:37 | |
*** Makorihi has quit IRC | 22:37 | |
*** lhuynh_ has joined #schooltool | 22:52 | |
*** lhuynh has quit IRC | 22:54 | |
Lumiere | lhuynh: http://www.ayanami.us/#schooltool.log | 22:54 |
*** pcardune has joined #schooltool | 22:54 | |
aelkner | Hey Paul, so have you recovered from today's firestorm? :) | 22:59 |
Lumiere | wb pcardune | 23:03 |
*** lhuynh_ has quit IRC | 23:05 | |
*** Ninno has joined #schooltool | 23:10 | |
*** Ninno has quit IRC | 23:21 | |
*** aelkner has quit IRC | 23:39 | |
*** kjcole_ has joined #schooltool | 23:47 | |
*** aelkner has joined #schooltool | 23:59 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!