*** jelkner has quit IRC | 00:07 | |
*** replaceafill has quit IRC | 00:17 | |
*** replaceafill has joined #schooltool | 00:22 | |
*** menesis has quit IRC | 01:14 | |
*** replaceafill has quit IRC | 01:35 | |
fsufitch | aelkner: done and pushed | 02:06 |
---|---|---|
fsufitch | clicking on the Course Info button in the Course view now goes to the existing courseinfo if there is one | 02:06 |
fsufitch | and it's tested | 02:06 |
*** fsufitch has quit IRC | 02:15 | |
*** alga has joined #schooltool | 03:06 | |
*** fsufitch has joined #schooltool | 03:38 | |
*** fsufitch has quit IRC | 03:43 | |
*** alga has quit IRC | 03:50 | |
*** aks has joined #schooltool | 06:10 | |
*** aks has joined #schooltool | 06:10 | |
*** menesis has joined #schooltool | 08:35 | |
*** Lumiere has quit IRC | 08:36 | |
*** Lumiere has joined #schooltool | 08:36 | |
*** yvl has quit IRC | 09:11 | |
*** yvl has joined #schooltool | 09:29 | |
*** alga has joined #schooltool | 09:46 | |
*** menesis has quit IRC | 11:09 | |
*** menesis has joined #schooltool | 11:14 | |
*** menesis has quit IRC | 11:19 | |
*** ignas has joined #schooltool | 12:40 | |
*** menesis has joined #schooltool | 12:58 | |
*** yvl has quit IRC | 14:00 | |
*** yvl has joined #schooltool | 14:12 | |
*** aks has quit IRC | 14:20 | |
*** asharma has joined #schooltool | 16:08 | |
*** jelkner has joined #schooltool | 16:08 | |
jelkner | good morning th1a, aelkner | 16:09 |
*** th1a has quit IRC | 16:13 | |
*** ignas has quit IRC | 16:14 | |
*** ignas has joined #schooltool | 16:15 | |
*** ignas has quit IRC | 16:15 | |
menesis | http://www.fanstatic.org | 16:31 |
menesis | http://pypi.python.org/pypi/zope.fanstatic | 16:32 |
*** th1a has joined #schooltool | 17:14 | |
*** replaceafill has joined #schooltool | 17:34 | |
th1a | hi replaceafill. | 17:35 |
th1a | Are we running for Chandara? | 17:35 |
replaceafill | hey th1a | 17:35 |
replaceafill | not yet, but i set up apache and modwsgi already | 17:36 |
th1a | Did you send him an email letting him know it would take a while? | 17:38 |
replaceafill | yes | 17:38 |
th1a | OK. Good. | 17:38 |
* th1a probably read that email yesterday... | 17:38 | |
replaceafill | well, not a while, i hope to have it finished by today | 17:38 |
replaceafill | yes, i sent it yesterday morning | 17:38 |
th1a | Yes, that's what I meant. | 17:38 |
th1a | OK. | 17:38 |
*** alga has quit IRC | 17:40 | |
replaceafill | th1a who runs our schooltool.org dns? | 17:45 |
replaceafill | lots of *.za dns :) | 17:48 |
th1a | Shuttleworth Foundation. | 17:48 |
replaceafill | i'd like we have demo.schooltool.org for our testing instances | 17:49 |
replaceafill | i know you think having demos is too complicated.... | 17:49 |
replaceafill | ...but i volunteer ;) | 17:50 |
th1a | I only don't like public, permanent demos. | 17:50 |
replaceafill | ah | 17:50 |
replaceafill | schooltool.info costs $2/year! | 17:51 |
replaceafill | cambodia.schooltool.info :D | 17:51 |
replaceafill | wow, and there's a schooltool.com! | 17:51 |
th1a | Um... yeah. | 17:52 |
th1a | Has been all along. | 17:52 |
th1a | That predates me. | 17:52 |
replaceafill | no trademark issues? | 17:52 |
replaceafill | http://www.schooltool.net :) | 17:53 |
th1a | It is kind of a standoff. | 17:53 |
th1a | yvl: How are you doing? | 17:53 |
replaceafill | yvl, nice pep8 tool :) | 18:15 |
replaceafill | "E261 at least two spaces before inline comment" :O | 18:15 |
jelkner | yvl, i 2nd that! | 18:28 |
jelkner | i'm going to use that with my students | 18:28 |
*** ignas has joined #schooltool | 18:31 | |
*** ignas has quit IRC | 19:00 | |
*** asharma has left #schooltool | 19:04 | |
*** asharma has joined #schooltool | 19:11 | |
th1a | menesis: ayt? | 19:14 |
menesis | th1a: yes | 19:27 |
th1a | Did you see David Ally's reply to my email. | 19:27 |
th1a | I think he has some virtualenv problem or something. | 19:28 |
th1a | Or is this the same kind of error aelkner was having last weekend? | 19:31 |
th1a | Hm. I'm getting this: | 19:31 |
th1a | IOError: invalid Python installation: unable to open /home/hoffman/Desktop/niepa-sandbox-delete/schooltool.niepa/python/local/lib/python2.7/config/Makefile (No such file or directory) | 19:31 |
th1a | Maybe he can just use trunk at this point instead of aelkner's old branch. | 19:31 |
menesis | the emails are not helpful because he only tells "I got an error" and no tracebacks | 19:32 |
menesis | yes I know make fails on python2.7 | 19:32 |
menesis | make BOOTSTRAP_PYTHON=python2.6 | 19:33 |
menesis | will use python 2.6 and that one works | 19:33 |
menesis | later I will update Makefiles to use virtualenv and buildout 1.5 | 19:33 |
menesis | our bootstrap.py is getting old | 19:34 |
th1a | OK, so I'll tell him to try make BOOTSTRAP_PYTHON=python2.6 | 19:36 |
menesis | replied | 19:37 |
th1a | Oh, I didn't send you the error! | 19:38 |
th1a | Wait, sorry, my fault. | 19:38 |
th1a | OK, sent. | 19:38 |
menesis | probably can find in irclogs | 19:39 |
*** alga has joined #schooltool | 19:41 | |
*** menesis has quit IRC | 19:57 | |
*** alga has quit IRC | 20:18 | |
*** alga has joined #schooltool | 20:19 | |
*** fsufitch has joined #schooltool | 20:24 | |
*** menesis has joined #schooltool | 20:41 | |
replaceafill | th1a david's problem is related to aelkner's demo_fields branch being old and declaring 1.5.3dev for its version | 20:49 |
th1a | OK, so if he just uses trunk... | 20:49 |
replaceafill | and from what i can see that branch is marked as "Merged" | 20:49 |
replaceafill | so, those changes are probably in trunk now | 20:49 |
th1a | What branch should he use? | 20:49 |
* replaceafill tries removing schooltool from develop... | 20:50 | |
replaceafill | i was able to reproduce the error | 20:50 |
th1a | Hm. Seemed to work for me. | 20:50 |
replaceafill | using aelkner's branch? | 20:51 |
th1a | Yeah, but whatever. | 20:51 |
* replaceafill blames shared eggs | 20:52 | |
replaceafill | yep, removing ../schooltool from buildout.cfg at least allows you to start the server | 20:52 |
replaceafill | don't know how will affect functionality though | 20:52 |
th1a | Well, if you can send David a suggestion, I'd appreciate it. | 20:53 |
replaceafill | of course | 20:53 |
* th1a recalls many conversations with aelkner about why we don't want users using eggs... | 20:53 | |
*** fsufitch has quit IRC | 21:09 | |
jelkner | asharma 's blog is available at: http://asharmaschooltool.blogspot.com | 21:18 |
jelkner | a few follows and words of encouragement would be most appreciated! ;-) | 21:18 |
jelkner | I posted today about our efforts to get Nepali support into sphinx: http://proyectojuanchacon.blogspot.com/2011/05/creating-nepali-po-file-for-sphinx.html | 21:19 |
*** fsufitch has joined #schooltool | 21:25 | |
*** asharma has quit IRC | 21:55 | |
fsufitch | replaceafill, ping | 22:38 |
replaceafill | fsufitch pong | 22:38 |
fsufitch | im working on pybookbuilder, on the bzr version control user story, and i'd like your opinion on some things | 22:39 |
replaceafill | ok | 22:39 |
replaceafill | have you pushed your changes? | 22:40 |
fsufitch | i'm in the "code planning" stage, no real changes to the code yet | 22:40 |
replaceafill | ah, understood | 22:41 |
fsufitch | so, i'm thinking of refactoring the Book/Chapter objects to just contain metadata for their respective objects, while the actual data is stored in files | 22:41 |
fsufitch | now, question: when resource_stream() is called, the calls i have always have 'pybookbuilder' as the first argument | 22:42 |
fsufitch | i know that gets the pybookbuilder folder in the project, but is it bad form to use a different argument like 'bookfiles' or something to store the file data at? | 22:43 |
fsufitch | i don't want to mix that with my source code | 22:43 |
* replaceafill looks at the code... | 22:44 | |
fsufitch | thanks dude :) | 22:44 |
replaceafill | fsufitch http://packages.python.org/distribute/pkg_resources.html | 22:45 |
replaceafill | resource_stream(package_or_requirement, resource_name) | 22:45 |
replaceafill | the first argument is the name of the package containing the resource | 22:45 |
replaceafill | so if you change it to 'bookfiles', you have to have a bookfiles package | 22:45 |
replaceafill | where you're getting the resource from | 22:46 |
fsufitch | hmm | 22:46 |
replaceafill | question, why do you want to take the content out of the database? | 22:46 |
fsufitch | because i want to be able to turn it into a bzr working tree for version control | 22:46 |
fsufitch | using the bzrlib package | 22:47 |
fsufitch | also, i could stop using /tmp for file storage for compilation and stuff | 22:47 |
* replaceafill goes to check bzrlib | 22:48 | |
fsufitch | it's essentially a Python interface to bzr internals | 22:48 |
fsufitch | so i can use stuff like bzr.workingtree.WorkingTree and bzr.branch.Branch | 22:49 |
fsufitch | so i can even code features like launchpad integration for pybookbuilder | 22:49 |
replaceafill | can't you do that on a temporary folder? | 22:50 |
replaceafill | i mean, you keep the data on the database | 22:50 |
fsufitch | not really, bzr stores all of its info in the .bzr/ folder in the branch's root | 22:51 |
replaceafill | and when somebody does "bzr branch server" you throw a copy | 22:51 |
fsufitch | well yes, but what if the only copy of the project exists solely in pybookbuilder? | 22:51 |
fsufitch | i mean, i could keep the data in the database if there was an easy way to serialize a whole directory | 22:51 |
fsufitch | so i can save all of bzr's data without caring for what it is | 22:52 |
replaceafill | correct | 22:52 |
fsufitch | that would actually be rather nice | 22:52 |
fsufitch | but i don't know of such a way | 22:52 |
replaceafill | :D | 22:52 |
fsufitch | ... is there such a way? | 22:52 |
replaceafill | i don't know of any either :( | 22:53 |
fsufitch | bah | 22:53 |
fsufitch | wait a minute | 22:53 |
fsufitch | gzip? | 22:53 |
fsufitch | or zlib | 22:53 |
fsufitch | no, zlib is too low-level... | 22:54 |
replaceafill | so, let me understand this: | 22:56 |
replaceafill | the body of the chapter is stored under.... | 22:56 |
fsufitch | chapter<numberhere>.rst | 22:57 |
replaceafill | no, i mean, in the resource | 22:57 |
replaceafill | Chapter | 22:57 |
fsufitch | oh | 22:57 |
replaceafill | Chapter.data, right? | 22:57 |
fsufitch | yes | 22:57 |
fsufitch | i'm talking about storing that in an external file, in order to version control it | 22:58 |
replaceafill | i'm reading at the API docs of pybookbuilder... :/ | 22:58 |
fsufitch | heh, sorry... | 22:58 |
fsufitch | but yes, it's Chapter.data | 22:58 |
replaceafill | and the chapter is saved using save_chapter_ajax? | 23:00 |
fsufitch | yes | 23:00 |
replaceafill | so, instead of doing context.data = ... you would get and update the file on the filesystem | 23:01 |
fsufitch | yes | 23:01 |
fsufitch | heh, im thinking back to when i was working at Google | 23:02 |
replaceafill | and provide some bzrlib interface to do "bzr branch URL", getting the books directory | 23:02 |
fsufitch | this is the point where someone would just pipe up and go "we need to create a new filesystem!" | 23:02 |
replaceafill | :| | 23:03 |
fsufitch | no seriously, all projects there involve at least 3 or 4 different filesystems working in tandem | 23:03 |
fsufitch | it's sort of ridiculous | 23:03 |
replaceafill | :D | 23:03 |
fsufitch | well, "bzr branch" a future feature, for starters i need commit, log, and revert | 23:04 |
replaceafill | well, im "uneasy" about depending on the filesystem... | 23:04 |
replaceafill | moving the Data.fs is easy | 23:04 |
* fsufitch shrugs | 23:04 | |
fsufitch | i am too, but meh | 23:04 |
fsufitch | you mean for migration from one instance to another? | 23:05 |
replaceafill | or backups or sometihng | 23:05 |
fsufitch | i could make it be on the filesystem but also keep tar backups of what's there inside the Data.fs | 23:05 |
fsufitch | and give it a feature to just dump that data out onto the filesystem | 23:06 |
replaceafill | to me the best scenario is to translate changes from the database to a temporary directory in the filesystem | 23:06 |
replaceafill | and maybe use bzrlib there | 23:07 |
replaceafill | but hey, i just found out about bzrlib today ;) | 23:07 |
fsufitch | that works, keep a serialized tar or gzip archive of it in Data.fs, then dump it out to /tmp/something/ to write stuff to it, and eat it back up to store it | 23:07 |
fsufitch | but that's incredibly slow | 23:07 |
replaceafill | but easier to maintain? | 23:08 |
fsufitch | bzrlib is pretty cool | 23:08 |
fsufitch | yeah, should be... | 23:08 |
fsufitch | trouble is, it wouldn't just be slow for writing, it would be slow for reading too | 23:08 |
fsufitch | because you need to un-tar the archive on access | 23:09 |
replaceafill | fsufitch hold on, talking to jelkner :) | 23:12 |
*** fsufitch has quit IRC | 23:13 | |
*** fsufitch has joined #schooltool | 23:15 | |
fsufitch | well that was fun, my mouse stopped responding and i had to log out/back in | 23:15 |
replaceafill | :D | 23:16 |
fsufitch | it's this odd bug i'm having with X or something | 23:16 |
fsufitch | for reasons i can't identify, i become unable to click on anything but the focused window, and even that one doesn't respond properly | 23:17 |
fsufitch | also alt-tab ceases to work | 23:17 |
replaceafill | can you click the desktop? | 23:18 |
replaceafill | i have a similar issue with Natty in my wife's laptop | 23:19 |
replaceafill | and it's the volume indicator! | 23:19 |
replaceafill | if i turn the volume up/down, everything goes back to normal | 23:19 |
fsufitch | i havent tried the desktop, it's usually covered in windows | 23:19 |
fsufitch | ... really... | 23:19 |
fsufitch | i'll try that next time | 23:19 |
replaceafill | :D | 23:19 |
replaceafill | so, going back to pybookbuilder | 23:20 |
replaceafill | i understand your approach | 23:20 |
fsufitch | and i know it sucks becuase it depends on the file system for storage | 23:20 |
replaceafill | but hey, it's possible :P | 23:21 |
fsufitch | maybe i could just back up books to a serialized TAR in the Data.fs now and then | 23:21 |
replaceafill | +1 | 23:21 |
replaceafill | again, sounds easier to maintain | 23:21 |
fsufitch | so, keep the file system as primary storage, but be able to restore it if just the data.fs gets moved | 23:21 |
replaceafill | ah | 23:21 |
fsufitch | if i keep the TAR in the Data.fs as primary storage, and just use filesystem for temporary storage, then i have trouble with slowness | 23:22 |
replaceafill | premature optimization? :P | 23:22 |
replaceafill | no, seriously i get your point | 23:23 |
fsufitch | i would argue that it's not "premature optimization", it's "writing code that would take half a minute to render each page, aka broken code" | 23:23 |
fsufitch | well, half a minute is an exaggeration, but it would be pretty terrible | 23:23 |
replaceafill | :D | 23:25 |
replaceafill | what does the customer says about this? | 23:25 |
fsufitch | havent asked him yet, but i bet he'll want it to "just work" :-P | 23:26 |
fsufitch | will go do so now | 23:26 |
replaceafill | so, tell him about which one would take you longer to develop ;) | 23:26 |
fsufitch | well both of them require code refactoring to store stuff in files | 23:31 |
fsufitch | so they're about the same | 23:31 |
fsufitch | but he said my option makes more sense because, while it depends more on the filesystem, it also allows access to the files via command line | 23:32 |
replaceafill | :| | 23:33 |
fsufitch | which is an option that is good to have, if only for accessing bzr features that you can't do yet via the pybookbuilder web interface | 23:33 |
replaceafill | right | 23:33 |
replaceafill | well, there you go! :/ | 23:33 |
replaceafill | data is out of Chapter! | 23:33 |
replaceafill | :( | 23:33 |
fsufitch | lol, why does that make you sad? | 23:33 |
replaceafill | cause i'll miss that attribute :D | 23:34 |
fsufitch | because it was so fun to find? | 23:34 |
replaceafill | :)) | 23:34 |
fsufitch | :) | 23:34 |
fsufitch | and this refactor i will force myself to write proper unit and functional testing for all this | 23:39 |
replaceafill | +1 | 23:40 |
replaceafill | i think i put an example for webtest, right? | 23:40 |
replaceafill | ah yes, "Pyramid links" :D | 23:41 |
fsufitch | yes | 23:41 |
fsufitch | hmm but i dont see unit test example | 23:42 |
fsufitch | or doctest rather | 23:42 |
fsufitch | how can i set that up? | 23:42 |
replaceafill | no, it's in a unittest | 23:42 |
fsufitch | oh, this ViewTests | 23:43 |
replaceafill | class FunctionalTests(unittest.TestCase): | 23:43 |
replaceafill | ViewTests are supposed to be "unit" tests for the views | 23:43 |
fsufitch | er... why unit test the views? | 23:43 |
fsufitch | functional tests should test those | 23:44 |
replaceafill | :| | 23:44 |
replaceafill | and you have to bootstrap the whole environment ;) | 23:44 |
fsufitch | you're talking about 3 levels of tests then? | 23:44 |
fsufitch | unit tests for unit code, unit tests for view code, and functional tests? | 23:44 |
fsufitch | oh... damn | 23:45 |
replaceafill | well, as long as you have any kind of test :P | 23:45 |
fsufitch | you're right | 23:45 |
fsufitch | the whole directory structure, geh | 23:45 |
replaceafill | and you have coverage reports just in case ;) | 23:45 |
fsufitch | i'll have to make the "root" directory a temp one | 23:45 |
*** replaceafill has quit IRC | 23:48 | |
*** replaceafill has joined #schooltool | 23:49 | |
fsufitch | oh that's not hard, i just modify the NonPersistentApplicationFinder | 23:49 |
replaceafill | ;) | 23:50 |
Generated by irclog2html.py 2.15.1 by Marius Gedminas - find it at mg.pov.lt!