IRC log of #schooltool for Saturday, 2007-01-20

*** alga has quit IRC00:07
*** alga has joined #SchoolTool01:05
*** didymo has joined #schooltool01:41
*** jinty has quit IRC01:58
*** wrobel has quit IRC03:19
pcarduneth1a, ayt?03:56
*** didymo has quit IRC04:38
th1apcardune: Hi04:46
pcarduneWe are going to be doing resource management improvements04:50
pcarduneth1a, do you care whether I create a separate branch or not?04:50
th1aOh... hm.04:51
th1aActually, my opinion isn't worth much here.04:51
th1aYou could ask ignas.04:51
th1aBut if you feel like doing it, nobody will object.04:51
th1aI suspect.04:52
pcarduneI was just going to create a branch, but I'm getting this permission error in doing so, and it is really annoying04:52
th1aOh.  Can you commit?04:52
pcarduneits a permission error on my computer, not on the repository04:53
*** pcardune is now known as pcardune_away04:53
*** alga has quit IRC06:00
*** vidasp has quit IRC09:20
*** mgedmin has joined #schooltool10:42
*** wrobel has joined #schooltool13:55
*** jinty has joined #schooltool15:04
Lumieremorning jinty16:38
jintyhi Lumiere16:42
*** aelkner has joined #schooltool16:45
*** lhuynh has joined #schooltool16:50
*** jinty has quit IRC16:52
*** Lumiere changes topic to "SchoolTool development | IRC logs at | Dev meetings Mon, 14:30 UTC (16:30 EET) | CanDo dev meetings Tue, 4pm EST | Use for pasting | #cando-sprint for class/sprint 20-Jan"16:53
*** Lumiere changes topic to "SchoolTool development | IRC logs at | Dev meetings Mon, 14:30 UTC (16:30 EET) | CanDo sprint in #cando-sprint | Use for pasting"16:54
*** lhuynh has quit IRC17:14
*** Lumiere changes topic to "SchoolTool development | IRC logs at | Dev meetings Mon, 14:30 UTC (16:30 EET) | CanDo class at 19:30 UTC (2:30 pm EST) | Use for pasting"17:22
Lumieresorry about all the topic changes17:23
Lumiereth1a: here?17:23
*** jfroche_ has joined #schooltool17:34
Lumierehi jfroche_17:36
*** alga has joined #SchoolTool17:49
*** jfroche has quit IRC17:50
*** wdickers has joined #schooltool18:02
th1aLumiere: Hi.18:45
Lumierethere's gonna be a class for the cando sprint in here at 2:3018:46
Lumiereis there any chance I can get op in here during it18:46
Lumiereto moderate the class18:46
Lumierechannel operator?18:49
Lumiere(I'd say halfop... but they don't exist here)18:49
th1aUh... I have remained blissfully ignorant of how IRC actually works.18:49
th1aAm I an op?18:49
Lumiere I don't know18:49
th1aI don't think I am.18:49
th1aI have a feeling mgedmin and SteveA are.18:50
*** lhuynh has joined #schooltool18:50
mgedminSteveA might be18:52
mgedminI think he registered the channel with chanserv18:52
th1aLumiere: Is there something in particular you need to do?18:52
Lumierenothing really18:52
Lumierewe can social engineer it18:52
*** ChanServ sets mode: +o mgedmin18:53
*** ChanServ sets mode: +o Lumiere18:53
Lumierebut I was going to voice pcardune and the rest of cando people18:53
Lumierewho are leading the class18:53
*** wdickers has quit IRC18:54
aelknerthla: do you know to navigate schooltool's db from outside?18:54
th1aYou mean, from the command line or another script?18:55
aelknerI opened it, and printed the root and got:18:55
* mgedmin now knows that aelkner's font cannot distinguish lowercase ell from the digit one18:55
th1amgedmin: This is a common problem.18:55
aelknertrue enough.18:56
LumiereI'm saving him18:56
aelknerth1a:  In our script, we want to open schooltool's ZODB to get at the data.18:56
th1aTwo processes can't open the same ZODB at the same time, btw.18:58
th1aUnless you use ZEO.18:58
aelknerRight.  I remember.18:58
aelknerAs it is we haven't started schooltool.18:58
aelknerPrinting the dbroot yields:18:59
aelkner{'Application': <persistent broken instance '\x00\x00\x00\x00\x00\x00\x00\x01'>, '': <persistent.dict.PersistentDict object at 0xb7370e6c>}18:59
mgedminyou need to set up PYTHONPATH/sys.path18:59
mgedminso that the schooltool package can be imported18:59
mgedminsomething like that19:00
mgedminlook at for an example19:00
mgedminI do not know whether the site.addsitedir is necessary just for accessing the zodb19:01
mgedminthe playing around with sys.argv is definitely not necessary19:01
* mgedmin wonders if th1a saw his private message19:02
th1aI did.19:02
*** jelkner has joined #schooltool19:03
mgedminbut since you're not identified with nickserv, you cannot send private messages to anyone19:03
*** nitromaster has joined #schooltool19:03
*** tdoggette has joined #schooltool19:03
nitromasterhi everybody, im on the screen!19:03
*** kohr_ has joined #schooltool19:03
kohr_hey all19:03
aelknermgedmin: I don't see anything about opening the db schooltool-server.py19:04
*** mgallagh has joined #schooltool19:04
mgedminaelkner: no, but you see how to set up sys.path19:04
*** mgallagh is now known as mattva0119:04
mgedminthe db opening happens inside
kohr_nah, #ubuntu is very useful19:04
mgedminbut never mind, you are doing it correctly, you just need to set up sys.path19:04
*** lhuynh has joined #schooltool19:04
*** Jama has joined #schooltool19:05
kohr_hey jama19:05
Lumierehi new interns :)19:05
* tdoggette salutes19:05
* kohr_ waves hi to tdoggette19:05
*** Preetam has joined #schooltool19:05
kohr_weee I am on the big screen!19:05
*** expensivenode has joined #schooltool19:05
aelknermgedmin: I'll have to talke to you later about this as the channel is overrun.19:06
* mgedmin waves19:06
*** ChrisCarey has joined #schooltool19:06
* lhuynh waves19:06
nitromaster\me wave19:06
kohr_we need a trivia bot!19:06
tdoggettekohr: yeah, that's just what we need19:06
lhuynhnitromaster: forward slash19:06
nitromasteri can't do it....19:07
lhuynhnitromaster: just try19:07
nitromasterlike / w a v e don't work.... :(\19:07
ChrisCareywho are you guys?19:07
Lumiereguys... some of us are going to be trying to work in here, please keep random chatter down a little19:07
mattva01its /me19:07
* mattva01 watches the channel get overrun19:07
kohr_we are the interns19:08
*** smalekgh has joined #schooltool19:08
*** Filip_ has joined #schooltool19:08
Preetamwhats up interns?19:08
Filip_having fun19:08
th1aYou know, the interns.  Closely related to the Huns and Visigoths.19:08
*** Lumiere sets mode: +o th1a19:08
Lumieresomehow I think you deserve this today :)19:08
*** user11 has joined #schooltool19:08
Lumiereinterns: please join #cando-sprint for random chatter19:09
*** tehminkeh has joined #schooltool19:09
kohr_user11, change your name19:09
*** Filip_ has left #schooltool19:09
* tehminkeh waves19:09
*** rrenner has joined #schooltool19:09
*** user05 has joined #schooltool19:09
smalekghwhy not <_<19:09
* Preetam waves19:09
smalekghI think I shalt change my name <_<19:09
* mgedmin feels like he's in a kindergarten19:09
*** smalekgh has quit IRC19:10
* tehminkeh says monkeys are fun19:10
* tehminkeh waves19:10
* Preetam laughs at nitromaster19:10
*** smalekgh has joined #schooltool19:10
* tehminkeh laughs too19:10
* nitromaster knows how to wave19:10
* user11 wow19:10
tehminkehhow original19:10
user11we can't all be monkeys19:11
lhuynhWho is actually _trying_ to work?19:11
Jamajoin the other channel if you want to just talk19:11
tehminkehwhich one?19:11
*** smalekgh has quit IRC19:11
Lumiereaelkner and mgedmin were19:11
*** rrenner has quit IRC19:11
*** smalekgh has joined #schooltool19:11
nitromaster\j cando-sprint19:11
* expensivenode slaps user11 with a big smelly trout19:11
* tehminkeh thinks nitromaster is mentally challenged19:12
*** rrenner has joined #schooltool19:12
Lumiereso that you don't talk over people trying to work in #schooltool19:13
user11how do you get on cando-sprint?19:13
*** smalekgh has quit IRC19:13
tdoggetteWhere should us smelly interns go to chatter?19:13
kohr_hmmm, how about #newschooltool for the chatting channel?19:13
Lumiere do /j #cando-sprint19:13
Lumierekohr_: we have a channel up already19:13
*** user05 has quit IRC19:14
*** user05 has joined #schooltool19:14
*** Jama is now known as Jama_19:14
*** kohr_ is now known as whatevernickyouw19:14
*** ChrisCarey is now known as CPCarey19:14
*** nitromaster is now known as arod19:14
*** whatevernickyouw is now known as kohr_19:15
*** Jama_ is now known as Fillip_19:15
user05what about me19:15
arod\nick arod19:15
*** user05 has left #schooltool19:15
*** kohr_ has left #schooltool19:15
*** user05 has joined #schooltool19:15
*** Fillip_ is now known as theminkeh19:16
*** arod is now known as tehminkey19:16
*** Preetam has quit IRC19:16
*** mattyt has joined #schooltool19:16
*** theminkeh is now known as Xephon19:17
*** tehminkeh is now known as nitromaster10119:18
*** nitromaster101 is now known as tehminkeh19:18
*** rrenner has quit IRC19:19
*** tehminkey has quit IRC19:19
*** Xephon is now known as Makorihi19:19
*** tehminkeh has quit IRC19:19
*** user05 has quit IRC19:19
*** Preetam has joined #schooltool19:23
*** tehminkeh has joined #schooltool19:23
*** user11 is now known as stopdrop19:23
*** stopdrop is now known as stopdropandroll19:23
*** nitromaster has joined #schooltool19:24
*** Preetam is now known as theminken19:26
*** stopdropandroll is now known as THEtehminkeh19:26
*** mattyt is now known as Matty19:28
*** Matty is now known as MattyT19:28
*** mattva01 has quit IRC19:35
*** theminken has quit IRC19:35
*** pcardune_away is now known as pcardune19:35
pcardunejelkner, hi19:36
lhuynhpcardune: everyone went out for a lunch break19:37
pcardunelhuynh, oh, that's what I figured19:38
pcardunelhuynh, when are they going to be back?19:38
lhuynhpcardune: they just left19:40
lhuynhpcardune: do you need a message sent?19:40
pcarduneI guess I can go take a breakfast break then19:41
lhuynhpcardune: okay19:41
pcardunelhuynh, were there any cool presentations?19:41
lhuynhpcardune: a lot of card games... bridge in particular stood out. there was one where you could talk to the machine, but the audio was down19:42
lhuynhpcardune: and a raiden-style (airplane shooting) game19:42
pcardunelhuynh, what did they use for the speech recognition?19:42
lhuynhpcardune: it was a chat between the user and the bot, but the bot responded using... festival?19:43
pcarduneyeah, festival, i used that once for a project19:43
lhuynhpcardune: Elkner's here19:44
jelknerhi pcardune!19:44
pcardunehi jelkner19:44
jelknerlet me update you on the status19:44
jelknerit's a bit scary19:44
jelknerbut *very* exciting19:44
jelkneras a teacher i'm used to having about half the class not understand things19:45
jelknernot follow directions19:45
jelknerby the time i finish asking folks to do something19:45
jelknermost of them are finished already19:45
jelknerwaiting for the next thing to do19:45
jelknerthey all have maddog account19:46
pcardunethat's a good trend19:46
jelknerthey all have running zope instances19:46
jelknerthey are at lunch now19:46
jelknerbut i finished eveything i wanted to do19:46
jelkneryou should have seen the presentations, btw...19:46
pcardunejelkner, is there time for me to go get some breakfast?19:46
jelkneris working on the lessons19:47
jelkneri'll start with them right after lunch19:47
jelknereldar can be here to help19:47
jelknerand you can take over whenver you are ready19:47
jelknersound good?19:47
pcarduneok, ill be back shortly19:47
*** pcardune is now known as pcardune_breakfa19:48
*** pcardune_breakfa is now known as pcardune20:07
*** povbot` has joined #schooltool20:15
jelknerwhat do you want lhuynh and i to do about the lessons20:15
lhuynhjelkner: actually, wait a moment for those.20:16
pcardunekeep them around.  everything there is good... it's just that the order is going to change a bit20:16
pcardunewe won't do containers until after we have an implementation20:16
jelknerso you don't need them to start?20:16
*** Lumiere sets mode: +v jelkner20:16
Lumierea small housekeeping note20:17
*** povbot_ has joined #schooltool20:23
CPCareyjust testing20:23
*** Preetam has joined #schooltool20:23
*** Preetam has left #schooltool20:24
pcarduneok, is everyone ready to begin?20:24
*** Preetam has joined #schooltool20:24
tdoggetteI stand ready.20:24
aelkner_Well I'm ready :)20:24
smamoi'm ready20:24
ShokI'm ready.20:24
pcarduneok great20:24
MattyTgood to go20:24
* mattva01 is ready20:25
*** GameOver is now known as mgarlapa20:25
pcarduneToday, we will be learning about Zope, which stands for the Z Object Publishing Environment20:25
*** povbot has quit IRC20:25
*** zizb has joined #schooltool20:25
mattva01what does the z stand for?20:25
pcarduneZope is the "web framework" that we use to write web applications - specifically CanDo and SchoolTool which I'm sure you have all heard of20:26
pcardunethe z stands for Z :)20:26
zizbjust my name. I feel like havin a z20:26
MattyTmakes perfect sense20:26
pcardunethink og the g in gnu20:26
zizbthis is bao anyway.20:26
pcarduneNow, why do we use zope and not some other web framework?20:26
Filip_because zope is with python?20:27
pcarduneprimarily because of something called the "Component Architecture"20:27
*** zizb is now known as bvuong20:27
pcarduneFilip_, other web frameworks like django and turbo gears also use python20:27
*** dcooper has joined #schooltool20:27
Filip_ok then20:28
bvuongsooo.... what are we gonna learn?20:28
pcarduneThe component architecture allows us to break things up (programmatically) into different parts there work with each other20:28
*** alga has quit IRC20:29
pcarduneI imagine that all of you worked with object oriented programming techniques when doing your projects20:30
pcarduneis that true?20:30
pcardune well the component architecture takes OOP to a new level20:30
*** bvuong is now known as zizb20:30
pcardunefrom now on CA stands for Component Architecture20:30
pcarduneOne of the biggest problems in writing web applications, is separating out data storage, "business logic" and a user interface front end20:31
pcardunebusiness logic is what programmers do20:32
pcardunedata storage is what database geeks do (except in zope and we will get to that)20:32
pcarduneand the user interface is what web designers do20:32
pcarduneHow many of you like to do art on the side as a hobby or something?20:33
tehminkehnot me20:33
tehminkehat all20:33
kohr_I like to photoshop20:33
nitromasterme me20:33
ShokI do20:33
mgarlapaphotoshop! yes20:33
tdoggetteNow wouldn't be a good time to talk about GIMP, right?20:33
MattyTMS Paint20:33
kohr_... I meant GIMP of course20:33
tehminkehGIMP is sexy20:33
Lumieretake the gimp v photoshop stuff to #cando-sprint :)20:33
pcardunewell that is very good, you are ahead of the game20:33
Filip_i think it's time to go back to the subject20:34
pcardunebut usually, programmers don't go to art school20:34
zizbof course.20:34
pcarduneand artists don't learn to program20:34
kohr_unless they are web designers20:34
kohr_or work for apple20:34
pcardunehtml and css is not programming....20:34
*** povbot` has quit IRC20:35
zizbunless you use javascript20:35
pcarduneso 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 designers20:35
zizbit's not?20:35
Lumierezizb: take it to #cando-sprint20:35
pcarduneso that web designers don't have to worry about application logic, and programmers don't have to worry about making things look pretty20:36
*** Masood has joined #schooltool20:36
pcardunethis is just one of the things that zope's CA allows us to do20:36
pcardunethe other big thing we get from the CA is a huge amount of flexibility20:36
*** kjcole has joined #schooltool20:36
pcardunesince 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 application20:37
MattyTsounds nice20:38
Masoodso, this is like async_chat seperated from a GUI?20:38
pcarduneYou might consider normal programming and normal applications like play mobil toys20:38
tdoggetteExplain thy analogy.20:39
pcardunebut zope programming and the CA is more like legos20:39
LumiereMasood: like toys that you could use to build little play houses20:39
Lumierebut not something impressive like legos20:39
pcardunenobody has ever made models of the capital building out of playmobil20:39
expensivenodelinkin logs20:39
zizblegos is beast20:39
MasoodI've done the capital building with linkin logs...20:39
MattyTquit spamming. u get the point20:39
pcarduneso now that you are all tired of listening to how great the CA is, lets start programming with it20:40
tehminkehIM READY!20:40
nitromasterlet's go!20:40
zizbwhen do we start?20:40
dcooperBRING IT!20:40
pcarduneopen up whatever editor you like to use20:40
zizbd'accord. vong a20:40
Makorihiguys, please stop it20:40
aelkner_Enough of the hekklinG!!!!!20:40
zizbwould the terminal work?20:41
pcardunedoes everyone know what we are going to program20:41
Masoodterminal as in the python interpreter?20:41
Masoodthen no20:41
*** Lumiere sets mode: +v aelkner_20:41
zizbwhat should I use then? ?_?20:41
dcooperwe are going to program the world20:41
pcarduneuse vim20:41
Lumierevim? notepad?20:41
Lumierewhatever you have been using20:41
zizbok. so, in the terminal then.20:41
pcardunefor these set of classes we will be working on an application called ZContact20:42
Lumiereguys... please stop the spam :)20:42
pcarduneit is a very simple and straight forward address book for organizing your contacts20:42
expensivenodeso we name it "ZContact"20:42
pcardunewait for instructions20:42
pcarduneyou should create a directory called zcontact20:43
tdoggetteon maddog?20:43
kohr_should we be doing this on maddog?20:43
pcarduneand add an file to it20:43
aelkner_where paul?20:43
pcardunethat is empty20:43
pcarduneyes, do this on maddog20:43
pcarduneeveryone log into your maddog accounts20:43
aelkner_off of the home dir?20:43
Lumierewe know you're all ready to go... just let paul type :)20:43
pcarduneand if i'm correct you have a zope instance in your home directory20:43
pcardunego to ~/zope/lib/python/20:44
Lumiereto create an empty file... use touch __init__.py20:44
pcarduneand in that directory create a directory called zcontact20:44
Lumieretouch is a command to make an empty file20:44
pcarduneand within the zcontact directory create an empty file called __init__.py20:44
zizbin the maddog account, right?20:44
pcardunezizb, yes20:44
pcardunedoes anyone know what the file is for?20:44 makes the zcontact directory a python package20:45
tdoggetteshould we put anything in __init__?20:45
Masoodit's the top-level module?20:45
pcardunethat means that if you open up the python interpreter while you are in ~/zope/lib/python, then you can say ">>> import zcontact"20:46
Masoodor something like that?20:46
pcardune__init__ should be left empty20:46
Filip_oh cool20:46
pcarduneno I want you to create a file called interfaces.py20:46
pcardunein the zcontact directory20:46
pcardunefrom now on, everything is in the zcontact directory unless I say otherwise20:46
pcarduneIn zope, we *always* write interfaces first20:47
pcarduneare there any java programmers out there?20:47
pcarduneinterfaces in zope are similar to interfaces in java20:47
pcardunebut not exactly the same20:47
Filip_what differences are there?20:48
pcardunewe'll get to that20:48
pcardunethe first line in your file should be, "import zope.interface"20:48
pcarduneThen I want to to create a class called IContact the inherits from zope.interface.Interface20:48
*** lhuynh has quit IRC20:49
zizbI don't have a zope module20:49
mgarlapadifferent file, or same?20:49
pcardunein interfaces.py20:49
pcardunedon't worry about having a zope module yet20:49
zizbhow do we the zope module? or should we have one?20:50
pcarduneyou actually do have a zope module, its just not in python's module search path20:50
pcarduneyou should have someting like "class IContact(zope.interface.Interface):"20:50
zizbwhat should be in that class?20:52
pcarduneis anyone confused about inheritance20:52
Masoodwe have to have the 'i' prefixes for interfaces? Will we end up having 'c' prefixes or something for implementations (akin to irrlicht) <_<?20:52
tehminkehppl plz20:52
tehminkehjust let him tell you what to do20:52
pcardunewe use the I (capital I) for interfaces20:52
pcardunefor implementation we don't use anything special20:52
pcardunenext thing, put a comment like """Interface that defines attributes in a contact."""20:53
pcardunewe use three quotes directly underneath a class definition to specify a comment20:53
pcardunethis particular kind of comment is called a docstring20:53
pcardunebecause it is write under the class definition20:54
pcardunethe 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
pcarduneas is obvious, we are working on creating an object for representing a Contact within our system20:56
pcarduneas someone said before, this involves creating an Interface and an Implementation20:56
pcarduneInterfaces define a contract for what our implementation needs to have20:56
pcardunein normal python programming, you would skip the interface definition and go straight for the implementation20:57
*** jelkner has joined #schooltool20:57
*** Lumiere sets mode: +v jelkner20:57
pcarduneso here we have defined an interface called IContact, with one attribute: lastName20:57
tdoggettelastName should be indented, yes?20:58
pcardunethat means that when we implement the actual object that represents a Contact, it will be required to have an attribute called lastName20:58
pcardunetdoggette, yes, lastName is in the class20:58
pcardunewe also always put our interface definitions into a separate file called interfaces.py20:59
pcarduneso that they are easy to find later20:59
zizbso, we write it as "LastName or LastName?20:59
pcardunewrite it exactly as lastName20:59
pcardunezope a standard naming scheme for everything21:00
pcardunezope follows*21:00
pcarduneall interfaces start with a capital I followed by another Capital letter21:00
MattyTit says there's no module named zope.interface.Interface21:00
jelknerpcardune: our python path is not set21:00
pcarduneall class Start with a Capital letter and with Camel Case21:01
pcarduneas in CamelCase21:01
LumiereMattyT: you can't run it quite yet... pcardune will help you with that in a couple minutes21:01
pcarduneattributes and methods use camelCase (with the first letter lower case)21:01
pcarduneif you want to run the code, then in your terminal type "export PYTHONPATH=/usr/local/src/Zope3/src"21:02
pcardunejelkner, let me know if this isn't the right path for maddog21:02
pcardunethat line adds that directory to your python search path21:03
pcardunenow in that same terminal you can run "python"21:03
pcarduneit won't do anything except check your syntax and throw errors if you messed up21:03
jelknerpcardune: please pause for a moment and let everyone edit .bashrc21:04
pcarduneoh 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
aelkner_pcarduner: doesn't lastnema = violoate the 80 char rule?21:06
jelknerplease add the following two lines to the bottom of your .bashrc file:21:07
jelknerexport PYTHONPATH21:07
aelkner_never mind.21:07
Filip_does the path need quotation marks around it?21:07
jelknerthen from your home directory run: . .bashrc21:07
Filip_i.e. PYTHONPATH = "usr/local...21:07
LumiereFilip_: no21:07
jelknercheck that this worked by typing: echo $PYTHONPATH21:08
Lumierejust as jelkner wrote it... that's how it should look21:08
jelknerfrom your home directory21:08
zizbwhere do we write the line in the bash file?21:08
Lumierezizb: at the bottom21:08
pcardunejelkner, let me know when people are ready21:09
tdoggetteecho $PYTHONPATH should output "/usr/local/src/Zope3/src"?21:10
Lumiereeveryone ready?21:13
kohr_I am21:13
Masoodis it okay to non-violate the 80 char rule by seperating a keyword argument and it's default value?21:13
Masoodin a method declaration21:14
Lumiereif you got it... and someone next to you doesn't21:14
Lumiereplease give them a hand21:14
Lumiereso we can continue21:14
pcarduneMasood, put the keyword argument and the default value on the same line21:14
pcardunewhen 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 up21:15
Lumiereit will also make it clear that it's one command21:16
zizbI think Im ready.21:16
pcardunethe next thing I am going to have you do is create a file called ""21:16
Masood more or less ready21:16
kjcolepcardune, so the story so far looks like (let me see if I get this pastebin thing right...)21:16
*** jelkner has quit IRC21:16
lisppaste5kjcole pasted "IContacts" at
pcardunekjcole, looks good21:17
*** lhuynh has joined #schooltool21:17
pcardunekjcole, except you jumped the gun on the zope.schema part21:18
pcarduneok, if everyone is ready, create a file21:18
zizbthe interface file didn't work. It got the module though.21:18
pcarduneand in it I want you to put the lines "import zope.interface" and "import interfaces"21:18
pcardunezizb, what didn't work about it?21:20
zizbthe error was :T ypeError: __init__() got an unexpected keyword argument 'required'21:21
pcarduneI 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
pcardunethis is what your file should look like:
Lumiereexcept for the zope.schema line21:23
tdoggetteshould it be zope.interface.interface or zope.interface.Interface?21:23
Lumierecap I21:24
MasoodInterface = class, interface = filename/modulename/somethingothername?21:24
pcarduneMasood, correct21:25
expensivenodein case anyone copy/ pasted, the URL is missing a quotation mark on the """A Person object""" line21:25
pcardunemore like modulename/filename21:25
pcarduneimported the right stuff into, create a class called Contact21:26
pcardunethe inherits from object21:26
pcarduneput in some kind of docstring21:26
pcardunethen add the line zope.interface.implements(interface.IContact)21:26
pcardunethis class is going to be the implementation of the interface we just created21:26
pcardunethe line i just told you to write connects the implementation to the interface21:27
pcardunesince our interface specified a lastName attribute, we have to put a lastName attribute in the definition of the Contact class21:27
pcarduneso go ahead and add the line lastName = u""21:27
pcardunethat initializes lastName to be an empty unicode string21:27
pcarduneit is important to use unicode strings any time a variable might store something entered in my a user21:28
aelkner_pcarduner: please explain "imported the right stuff into, create a class called Contact"21:28
pcardunenaturally, we want our program to be able to work with the arabic alphabet as well21:28
Lumiereor nepalese21:29
pcarduneyou should have imported "import zope.interface" and "import interfaces"21:29
pcarduneyou do not need to import anything to inherit from "object"21:29
*** povbot has joined #schooltool21:33
pcardunecheck out the annotation I just made by going to the link above21:33
pcardunenow you can open up a python interpreter21:34
pcarduneand play around21:34
*** povbot has joined #schooltool21:37
pcardunesorry, i meant implementedBy not providedBy21:37
Masoodaye :-)21:37
pcarduneif you do >>> interfaces.IContact.providedBy(pcardune) you should get True21:37
pcarduneso the class definition implements an interface, and a class instance provides an interface21:38
zizbwhen I typed "import contact", it didn't work21:38
pcardunesomeone help zizb21:38
MattyTi got true21:39
Makorihiit depends on what the file name is21:39
kohr_>>> import contact21:39
kohr_Traceback (most recent call last):21:39
kohr_  File "<stdin>", line 1, in ?21:39
kohr_  File "", line 521:39
kohr_    zope.interface.implements(interface.IContact)21:39
kohr_    ^21:39
Lumiereinterface -> interfaces?21:39
Lumierepcardune: not zope.interface21:40
Lumierefor interface.IContact21:40
Filip_the interface with the error21:40
Filip_interface.IContact -> interfaces.IContact21:40
pcarduneit should be interfaces.IContact21:40
pcardunewell, we have about 20 more minutes of my time, let's see what we can do in 20 minutes21:41
pcardunenext thing I need you to do is create a file called contact-configure.zcml21:41
zizbwhen I imported interfaces, I got, "TypeError: __init__() got an unexpected keyword argument 'required'21:41
lhuynhin the /etc/package-includes folder, right?21:41
Lumierezizb: you need to look at the url that was pasted earlier21:41
Lumierethere's something on that line21:41
lhuynhpcardune: Elkner will need you for a little bit longer after the class is done.21:41
Lumierethat you need to change21:42
tehminkehkohr_: zope.interface is the module that implements the concept of an interface21:42
MattyTi made the .zcml file21:42
tehminkehkohr_: the interfaces holds your IContact interface21:42
Filip_take it to #cando-sprint ppl21:42
pcardunein the zcml file put <include package="zcontact" />21:42
pcarduneand that is it21:42
zizbactually, I got, "Traceback (most recent call last):21:42
zizb  File "<stdin>", line 1, in ?21:42
zizb  File "", line 4, in ?21:42
zizb    class IContact(zope.interface.interface):21:42
zizbTypeError: Error when calling the metaclass bases21:42
zizb    module.__init__() takes at most 2 arguments (3 given)21:42
zizbI typed the lines from the url to my file.21:42
pcardunezizb, it should be zope.interface.Interface and not zope.interface.interface21:43
*** povbot_ has joined #schooltool21:58
pcardunewe created an implementation of IContact called Contact and put it in contact.py21:59
kohr_my doesn't work21:59
mgarlapamine doesn't either21:59
pcardunethe makes the zcontact folder a python package21:59
pcardunePreetam, help other folks21:59
pcardunethe zcontact-configure.zcml file lets zope know about our package, although we have to copy it to the zope3/etc/package-includes directory first22:00
pcarduneand the configure.zcml file tells zope that we created an object called Contact and specified the security settings for it22:00
*** povbot has joined #schooltool22:06
pcarduneHe can call me at 7:30 EST22:06
lhuynhpcardune: will do, he says. see you then22:07
pcardunethanks for coming everybody, and I will talk to you again next week22:07
pcardunelhuynh, can you give them the link to stephan richters book22:07
lhuynh... go to my site22:08
Lumierelhuynh: uh22:08
lhuynhyou can get a .pdf off of the site.22:08
zizbwhat's the url?22:08
Lumiereto your site22:08
Lumiereor whatever22:08
pcarduneread chapter 6 and 722:09
lhuynhthree seconds. I deleted the link.22:09
lhuynhNo rush, eh, Lumiere?22:10
lhuynhor that. that works also.22:10
Lumierelhuynh: just giving you a hard time22:10
Lumierethat's all22:10
* lhuynh grins22:10
pcardunei prefer looking at it in html rather than pdf, but pdf works too22:11
lhuynhinterns can also try to ask elkner for a printed version, if you're really serious about this22:11
*** Masood is now known as ThePointOfNoRetu22:12
*** ThePointOfNoRetu is now known as Dante22:12
pcardunegoodbye everyone22:13
*** Lumiere changes topic to "SchoolTool development | IRC logs at | Dev meetings Mon, 14:30 UTC (16:30 EET) | Use for pasting"22:13
DanteI bid thee good farewell22:13
lhuynhpcardune: you won't stay on for other things? gmail perhaps?22:13
Lumierelhuynh: he's on his way to teach another class at his uni22:13
foobar_could somebody e-mail all of the links today to everybody22:13
lhuynhfun. my cousin does that, too.22:13
foobar_just so that we'll all have the links22:14
Lumierefoobar_: lhuynh's job is to write a lesson out of this22:14
Lumiereit'll include everything22:14
lhuynhfoobar_: yeah. bug me on gmail if you seriously want it. it's my work.22:14
foobar_sounds good22:14
*** pcardune is now known as pcardune_away22:14
foobar_wow bad timing :D22:14
foobar_i just said i'm going to bug lhuynh on gmail without meaning it22:15
Dante to: SchoolTool development | IRC logs at | Dev meetings Mon, 14:30 UTC (16:30 EET) | Use for pasting22:16
Dante[15:13] <Dante> I bid thee good farewell22: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 uni22:16
Dante[15:13] <foobar_> could somebody e-m22:16
*** tehminkeh has quit IRC22:16
Dante........... I didn't mean to do that <_< bye22:16
*** Dante has left #schooltool22:16
*** povbot_ has quit IRC22:18
*** dcooper has quit IRC22:21
*** zizb has quit IRC22:21
*** povbot` has joined #schooltool22:24
*** _kjcole has joined #schooltool22:28
*** MattyT has quit IRC22:29
*** tdoggette has quit IRC22:29
*** expensivenode has quit IRC22:31
*** Preetam has quit IRC22:32
*** foobar_ has left #schooltool22:32
*** CPCarey has quit IRC22:33
*** mattva01 has quit IRC22:33
*** smamo has quit IRC22:34
*** kjcole has quit IRC22:36
*** mgarlapa has quit IRC22:36
*** nitromaster has quit IRC22:37
*** Makorihi has quit IRC22:37
*** lhuynh_ has joined #schooltool22:52
*** lhuynh has quit IRC22:54
*** pcardune has joined #schooltool22:54
aelknerHey Paul, so have you recovered from today's firestorm? :)22:59
Lumierewb pcardune23:03
*** lhuynh_ has quit IRC23:05
*** Ninno has joined #schooltool23:10
*** Ninno has quit IRC23:21
*** aelkner has quit IRC23:39
*** kjcole_ has joined #schooltool23:47
*** aelkner has joined #schooltool23:59

Generated by 2.15.1 by Marius Gedminas - find it at!