Saturday, 2009-04-18

../irclogs/#mantishelp.2009-04-18.log
--- scribe started ---00:00
dhx_mhi00:23
nuclear_eclipsehi dhx_m00:33
* paul_ has found a friend :)00:50
nuclear_eclipseI've noticed...01:10
dhx_mpaul_: any thoughts on my branch @ http://git.mantisforge.org/w/mantisbt/dhx.git?a=shortlog;h=refs/heads/1033001:54
dhx_mrelated to one of your recent patches, I tried to get default values for BugData from the config file01:59
dhx_mbut couldn't get that to work... http://git.mantisforge.org/w/mantisbt/dhx.git?a=commitdiff;h=7eae39da86c454df9b92055b6701e46f68c5b29701:59
dhx_mI just noticed the Mantis bug tracker @ http://opensimulator.org/mantis/my_view_page.php02:38
dhx_mhas a status specifically to indicate that the reporter (or someone else) has provided a patch02:38
nuclear_eclipseout of date :P02:38
dhx_mI was thinking that something like this would be useful on the mantisbt tracker?02:39
nuclear_eclipsesecurity loopholes waiting to happen ;)02:39
dhx_myeah haha02:39
dhx_mI actually found their tracker after google searching information on best practices for filing bug reports02:39
nuclear_eclipsedhx_m: we generally prefer to attach the 'patch' tag to issues with patches02:39
dhx_mhttp://opensimulator.org/wiki/Bugs02:40
dhx_mok02:40
dhx_mI've never liked the craze over "tagging"02:40
dhx_mI've never seen tagging setup anywhere in a way that actually becomes useful to anyone02:40
nuclear_eclipsethe nice thing about it allowing multi-categorization in a different dimension from primary categorization02:41
nuclear_eclipses/it/is/02:41
dhx_mthat is what I initially thought as well when I first started researching tagging02:42
dhx_mthen I realised that when people tag photos, documents, bugs, whatever... they tend to use non-specific tags02:42
nuclear_eclipseeg, primary category can determine canonical ideals, like what section/module the bug is pertaining to, while tags allow you to categorize in just about any other dimension02:42
dhx_mso you end up with 500 bug reports with the tags "html" and "problem"02:43
dhx_mand those sort of tags are all but useless02:43
nuclear_eclipsefor the most part, it's worked out well enough on our official tracker02:43
dhx_myep, it is OK when you have a predefined set of tags that people use correctly02:43
dhx_mlike "patch" to indicate a patch is ready02:43
dhx_mhowever that is now really an orthogonal field and would be better implemented with a checkbox IMO02:44
* nuclear_eclipse dislikes adding statuses for things like that because it starts to overcomplicate things02:44
dhx_mI agree that "patch included" is not a status02:44
nuclear_eclipsetagging is "better" for a lot of things because it allows "ground up" associations02:45
dhx_mif you look on Wikimedia Commons, their category system is something I prefer over tagging02:46
nuclear_eclipseeg, anyone can decide to add a new dimension of categorization by creating a new tag and using it for their own purposes, and then others benefit by picking up on those tags02:46
dhx_myou get more useful categorisation than people tagging a photo of a house with tags like "blue sky", "there is a tree in the background", etc02:46
dhx_myep, but the problem is most people won't spend time creating useful tags02:46
nuclear_eclipsewell, I think it only works in that respect because people are much more serious about editing wiki pages than tagging photos...02:46
dhx_mand when they do, you don't have synonyms to treat tags "patch" and "fixed" the same02:47
dhx_m(a bad example... but different people will use different words to indicate the same thing)02:47
nuclear_eclipseie, if anyone can edit wiki pages, anyone can start adding new categories at will; they just have a culture in place that discourages that behavior02:47
dhx_mthey don't discourage new categories from what I've experienced02:49
dhx_mhowever they will be quick to merge duplicate/similar categories together02:49
nuclear_eclipsewell, that and they have hundreds of devoted editors policing edits to make sure they're in context02:49
dhx_m"Schools in New York" and "Educational institutions for children in New York" will quickly get merged02:49
dhx_myep02:49
nuclear_eclipseif we had people with nothing better to do than police tagging efforts, we'd see the same sort of cleanup02:50
dhx_mand most tag based systems don't give you the same editing ability02:50
dhx_mI guess... but they wouldn't have many tools to help them02:50
nuclear_eclipsedhx_m: manage_tags_page goes a long way towards that ;)02:50
dhx_mI actually like that idea02:51
nuclear_eclipse"merging" a tag should be as simple as finding two similar tags, selecting the merger's filter, mass-tagging those issues with the mergee, then deleting the merger02:51
dhx_malthough there is no concept of hierarchy02:51
dhx_mtrue02:52
dhx_mI guess you could create your own hierarchy by searching bugs with multiple tags attached02:54
* nuclear_eclipse is not sure that a bugtracker really needs hierarchical categorization.... :P02:54
nuclear_eclipseit's much more obvious of a feature for a wiki/documentation environment, but I'm not sure how useful it really is for bug tracking purposes02:55
dhx_mwell let's say you want to tag a bug with "utf8" and "websvn"02:55
nuclear_eclipseespecially considering that a bug's project and category are already a sort of "hierarchical" categorization in themselves02:56
dhx_mbut that issue also affects the git source code integration plugin02:56
dhx_myou'd really need to change that tag to "sourceintegration" as it covers multiple other tags02:56
dhx_mie. a tag which encompasses a group of tags02:56
dhx_myep02:56
dhx_min a tag based system, don't you lose the ability to see that a bug tagged "utf8" and "sourceintegration" also affects other sub-modules?02:58
nuclear_eclipsecombine the use of a project that encompasses all of the source integration project, a category to determine the primary module causing the problem, and tags for marking ancillary relations, I think it's covered...02:58
* dhx_m notes that it wouldn't always be the case where a parent issue affects the child modules02:58
nuclear_eclipseoh, and add to that the ability to have nested projects, each with their own set of local or inherited categories...02:59
dhx_mguess so... I just don't see how tags are needed when we have categories02:59
dhx_myep02:59
dhx_mthey seem to be duplicating a lot of information, or providing categorisation which is too vague to be useful03:00
dhx_mor too specific to be useful (tags that are only used once are useless)03:00
nuclear_eclipsewell, the thing tags have over categories is a) having multiple tags per issue, and b) sharing a global set of tags to compliment project-specific categories03:00
dhx_mcouldn't you achieve much the same thing (while forcing orthogonality) by allowing bugs to be part of multiple categories03:01
dhx_mand having the ability to share categories between projects?03:01
dhx_mI guess my main concern is that you can't nest tags03:03
dhx_moh well, this is very off-topic :)03:05
dhx_mand isn't what I'd really consider a priority of mine with regards to Mantis development :)03:05
nuclear_eclipsedhx_m: well, you can already "share" by the new global and inheriting categories of 1.2.x...03:05
dhx_myep03:05
* nuclear_eclipse thinks nesting of tags would be a nightmare to maintain as well03:06
nuclear_eclipseeg, then you start to get into duplication of tags via A->C and B->C03:07
dhx_mhttp://en.wikipedia.org/wiki/Tag_%28metadata%29#Advantages_and_disadvantages03:07
nuclear_eclipseand then the interface complexity increases by at least an order of magnitude03:07
dhx_mthat basically covers my main arguments against tagging03:08
dhx_myep03:08
dhx_mthe "orange" tag example is a good one IMO03:08
dhx_mdoes the tag "orange" refer to the fruit or the color?03:08
nuclear_eclipseboth :P03:08
nuclear_eclipseeg, an orange is orange, who the hell cares? ;)03:09
dhx_mhmmm I can see how searching for "orange AND letterboxes" won't return pictures of fruit03:10
dhx_mI guess I should read up on http://en.wikipedia.org/wiki/Ontology_%28computer_science%2903:11
dhx_mseems like an interesting area of computer science03:11
nuclear_eclipseI think the biggest advantage of tagging in general is exactly because of it's lack of structure; users are free to use it to their needs, and it grows in usefulness as people learn how to use it better and more accurately03:11
dhx_mtrue03:12
nuclear_eclipseMantis kind of does that ontology bit; when you view a tag, you can also see "related" tags, which are the tags which have been most often attached to the same bugs as the originating tag03:13
dhx_mbut to be useful, you probably still need a large contingent of "tag editors" that know how to tag things properly03:13
dhx_mthat's a nice feature :)03:13
nuclear_eclipseso you can psuedo-"explore" the tag data by hopping between related tags03:13
nuclear_eclipseI think probably a good feature to add to the manage_tags_page, or to the tag_view_page, would be something like what you brought up: a method of simply and directly merging one tag into another03:14
nuclear_eclipseit would allow "editors" of a sort to find similar tags and merge them, bringing the union of attached issues under one tag name03:15
dhx_mI like the "tag description" as well :)03:15
dhx_myep03:15
dhx_mit is already easy enough to remove tags that are too vague03:16
dhx_m"problem" is completely useless on a bug tracker, for instant03:16
dhx_m*instance03:16
nuclear_eclipsetags are actually a generalized derivation of a feature my company uses in our existing home-brew tracker, which we use for associating release "keywords" to issues that are "hot " for any given release date/event03:17
nuclear_eclipsethe interface is *much* nicer for Mantis though :P03:17
dhx_mI can imagine :)03:18
nuclear_eclipseactually, about 75% of the work I've put into new features for Mantis have been driven by the needs of my employer03:19
dhx_mIt's great that they realise the benefits of contributing to an open source project03:19
nuclear_eclipsebiggest of that being the plugin framework, which allows us to implement proprietary features outside the main codebase, and allowing us to update Mantis without having to go insane keeping our local modifications in sync with every release03:20
dhx_myep, the plugins feature is really neat :)03:20
nuclear_eclipsedhx_m: I'm giving a talk tomorrow on the Source Integration framework at BarCamp Rochester, you should fly around the globe to attend :P03:26
dhx_mnuclear_eclipse: haha, good luck with the talk :)03:27
nuclear_eclipsethanks :)03:27
dhx_mare you aiming to convert people to use Mantis? :p03:27
nuclear_eclipsenaturally ;)03:28
dhx_mhaha03:28
nuclear_eclipseI figure I should leave a good impression on my fellow classmates, and maybe I can grow the userbase for the Mantis of Tomorrow :P03:28
dhx_mturn up to any talks on other bug trackers and ask them hard questions03:29
dhx_mwait for them to say "which bug tracker can do that" and then you have a wide open opportunity heh03:29
nuclear_eclipselol03:29
dhx_mhow many people are expected to attend?03:30
nuclear_eclipseI think I'm actually the only one talking about bug trackerrs out of the 100+ attendees03:30
dhx_mmost of them probably use bugtrackers though03:30
nuclear_eclipseyou'd be surprised...03:30
dhx_moh :o03:31
dhx_mI thought it was virtually fundamental to most software development03:31
nuclear_eclipseabout half of the students I meet don't even use source control unless they're forced to for an assignment, but perhaps that's because RIT still starts students off with CVS....03:31
dhx_mMantis doesn't really do a great job at the moment for Agile software development03:31
dhx_mugh CVS!03:32
nuclear_eclipseexactly03:32
dhx_mbut I would have thought most developers use some software project management software03:32
nuclear_eclipseit was only this year that they started officially running SVN repos for student projects03:32
dhx_mto track releases, bugs, what needs to be done before other stuff, etc03:32
dhx_mugh SVN!03:33
dhx_m:)03:33
dhx_mwell I'm a student doing a project at the moment, so I guess I fall into that category03:33
dhx_mand we're forced to use an SVN repo03:33
dhx_mbut we're not forced to use anything else03:34
nuclear_eclipsedhx_m: it seems that RIT should really be teaching students that good tools are a big piece of the development process, but it seems to go over the professors' heads.... =\03:34
dhx_mmaybe RIT's courses are more focussed on computer science (maths, algorithms, etc)?03:34
dhx_mrather than having a focus on software engineering?03:34
nuclear_eclipseeven in the Software Engineering department (my degree), where we focus much more on how to make projects succesful, barely anything is ever spent on using tools other than metrics and documentation tracking tools03:35
nuclear_eclipseRIT pioneered undergraduate Software Engineering :P03:35
nuclear_eclipseand yes, the normal CS department is even worse when it comes to using source control tools...03:36
dhx_mare they into Agile/SCRUM/etc... or do they prefer to teach more traditional methods?03:36
dhx_mwell you can do CS without ever touching a computer03:36
dhx_mbecause it is mostly just mathematics03:36
nuclear_eclipsethey're actually rather balanced; they discussed both side sof the coin, but I guess they lean more towards the "agile" methods03:37
dhx_myeah I get that in my course too03:37
dhx_malthough I don't think your average developer is good enough to estimate the time taken to perform a task03:38
nuclear_eclipseagreed03:39
dhx_mwhich limits the uses of Agile03:39
nuclear_eclipseyeah03:39
dhx_mand I also hate hard deadlines03:39
nuclear_eclipseone thing that bugs me about the SE and IT departments here is their giant lean towards Microsoft technologies...03:39
dhx_m.NET?03:40
nuclear_eclipsethe CS department is the only one that still heavily relies on Unix and Solaris machines03:40
dhx_myou're lucky... mine just scrapped most of their remaining Linux labs in favour of Windows labs03:40
dhx_mand they do really stupid (IMO) things like running mingw with gcc on Windows03:41
nuclear_eclipseXP on all the lab computers, a basic "shunning" of anything Linux based, although they ironically use a Debian machine for hosting their Windows AD domain :P03:41
dhx_mwhy emulate Linux on Windows... when you can just use Linux03:41
dhx_mhaha03:41
dhx_mthe other thing that bugs me is teaching computer science students to learn GUI methods with one particular piece of software03:42
dhx_mexample: TortoiseSVN03:42
nuclear_eclipseyeah03:42
dhx_mwithout the students ever understanding how it works in the background03:42
nuclear_eclipsewe "learned" CVS via the Eclipse plugin =\03:42
dhx_mwhen they go into industry and are forced to use another VCS, they are going to have a problem03:43
nuclear_eclipseyeah03:43
dhx_mI only started using git a few weeks ago, but it was made much easier because I already knew how VCS fundamentally work03:43
nuclear_eclipseone of my professors still couldn't see what the big deal was with Git/Hg as compared to SVN, even in the context of open source software groups scattered around the globe...03:43
dhx_mif all I knew was what buttons I need to click, it would have been a complete disaster03:44
dhx_mgive him a link to the KDE SVN repos :p03:44
dhx_mand tell him to download it03:44
nuclear_eclipselol03:45
dhx_mthey're going towards 1,000,000 commits03:45
nuclear_eclipsewow03:46
dhx_mrevision 955591 at the moment03:46
nuclear_eclipsethat's starting to actually approach statistical collision territory for something like MD5 :P03:46
nuclear_eclipsegood thing Git uses SHA-1 ;)03:46
dhx_myeah MD5 wouldn't be my checksum of choice03:46
dhx_mwow... an ontology model for bug reporting: http://www.ifi.uzh.ch/ddis/evo/03:52
nuclear_eclipsethat descriptieon goes above my level of comprehension, or caring for comprehension.. . :P03:53
dhx_mhaha03:53
nuclear_eclipseremind s of just about every academic idea for new software -- way too academic and theoretical for any proctical use :)03:54
dhx_mI'm not sure I like the traditional method for reporting bugs at all03:54
dhx_mpriority, severity, resolution, milestones, versions, etc aren't that useful anymore03:55
dhx_mwell at least not in distributed open source environments03:55
nuclear_eclipseI think it depends on the project in question03:55
dhx_mI prefer to look at it from the perspective "we want X"... to get there, we need to do A, B and C first03:55
dhx_mthat is enough in itself to determine priorities03:56
dhx_meven if A is required by X, Y and Z03:56
nuclear_eclipseresolution is a good indicator of how a bug was "completed", either in "worksforme", "notabugitsafeature", or "fuckofficommitteditalready" :P03:56
dhx_mand B is only required by X03:56
dhx_mit is easy to see that A is probably going to be more important to complete first03:56
dhx_mhaha03:57
nuclear_eclipseand milestones are still rather useful for planning and reviewing releases03:57
dhx_mwell AFAIK, it is really only acts as a sub-status to "Closed"03:57
nuclear_eclipsewell, yes03:57
dhx_mI just thought open source projects are moving away from versioning their software03:58
dhx_mie. the Linux kernel03:58
dhx_mit hasn't happened yet, but that appears to be the general direction03:58
nuclear_eclipsesome might be moving away from monolithic release versioning, but it still has a well defined release cycle and process for planning and reviewing release goals03:59
nuclear_eclipseor you look at Ubuntu, and they've dropped "normal" versioning for date-based release numbering03:59
nuclear_eclipsebut Ubuntu has an even more rigid and defined milestone process than the kernel does04:00
dhx_myep, but they never really had a use for major/minor versioning04:00
dhx_mthe idea of major/minor versioning is to denote when you break backwards compatibility (at least I think this is how it is often used)04:00
nuclear_eclipsewell, yes, but a version is just another way of tracking milestones04:00
dhx_msome projects might have architecture.major.minor or more version numbers04:00
nuclear_eclipseversion numbers and milestones are really just a set of named node in a DAG of development process04:01
dhx_myep04:02
nuclear_eclipseGit could name their versions after the hash ID of the version's tag, and the only thing lost is the sanity of its users... :04:02
dhx_mbut would you say Mantis development has milestones?04:02
nuclear_eclipseI would, but just in another context04:02
dhx_mit seems to me it is more a case of "let's see what is ready to commit, and we'll add it as we feel like it"04:03
dhx_msure, individual developers can agree on "let's work together to get feature X done first"04:03
dhx_mbut if that wasn't completed, would you hold back on a release for a year?04:04
nuclear_eclipseour milestones are a coalescence of features at the pace that allows us to both have major features and allow us to maintain a stable release for a reasonable time period; there just isn't any planned release timeframe that many other projects have, mainly because of a lack in developer time04:04
nuclear_eclipseI would assume that if we had more developer manpower, we could easily stick to a more timely schedule of releases, but at the same time, it's not really as important for Mantis as it is for other projects04:05
dhx_mI wouldn't have said it is important at all, now that git is being used04:06
dhx_mbecause you can test new features in branches04:06
nuclear_eclipsehell, we can't even get our users to update to a release that's been out for months :P04:06
dhx_mand dump them into the master when they're more-or-less deemed OK by the people testing those branches04:06
nuclear_eclipseI can't even tell you how many users and bug reports we get where people are still running 1.0.x or a really old 1.1.x release04:06
dhx_mand then they're tested by the "beta testers"04:06
dhx_mand finally, you might take a snapshot of the master repo from 2 months ago and call it stable04:07
dhx_mI know what you mean04:07
nuclear_eclipsedhx_m: that's still putting a lot of emphasis on having manpower to test those branches and determine their suitability for merging to master... =\04:07
nuclear_eclipseand we just don't have that amount of developer time to sustain that level of process04:08
dhx_mI think it'd be OK to merge branches after just the developer has tested it and another developer has quickly looked at it04:08
dhx_myep04:08
dhx_m(I'm talking about major changes)04:09
nuclear_eclipsedhx_m: that's basically what we're at right now; for anything more than a simple fix or change, we've begun the habit of creating a branch on mantisforge with our changes, and then poke/bitch enough until another dev gets the time to look at it04:09
nuclear_eclipseand sometimes, even that doesn't happen quickly04:10
dhx_myep, so what we really need is more "beta testers" for these branches?04:10
nuclear_eclipseit took months for my 'revisions' branch to get a once-over by anyone04:10
nuclear_eclipsedhx_m: not necessarily beta testers, but more developer manpower04:10
dhx_mif I had of been here earlier, I'd have jumped all over it :)04:10
dhx_mwith paul's date branch, I could test it... but I don't really know what I'd be testing at the moment04:11
nuclear_eclipseie, I'd rather have a developer question my feature and why I did things the stupid way I did them, than have a random tester blindly test the feature and tell me "it works"04:11
dhx_mtrue04:11
dhx_mI guess you get this problem in even the Linux kernel04:12
dhx_msomeone will write a really specific piece of code that no one else could ever possibly want to use04:12
dhx_mso it won't undergo the same amount of testing04:12
nuclear_eclipselike for paulr's bugobjects branch: I lookde at it, and was able to see that some of it was inefficient/superfluous; a beta tester would have never even have noticed04:12
dhx_mwhat did you say earlier about the __get and __set methods?04:14
dhx_mthey seem fairly good to me, because it allows plugins to specify additional metadata for a bug?04:14
nuclear_eclipsewell, yes and no04:14
dhx_min terms of performance, it looks hideous :p04:15
nuclear_eclipsethe biggest point I had is that he used __set() to validate and normalize input data, but at that point, __get() wasn't really doing anything other than eat up cycles by adding yet another funciton call for every property access04:16
dhx_myep04:16
nuclear_eclipseand I'd rather see any plugin to subclass the BugData object add more public properties -- you don't need __get() to do that04:16
dhx_mbut is PHP like C++ where the get and set methods are effectively inlined?04:16
nuclear_eclipseand I'd rather see standardized and consistent API calls to get special data than duplicate and/or hide that functionality inside classes04:17
dhx_myep04:18
nuclear_eclipsedhx_m: no, without __get(), it's essentially an array access; with __get(), every property access becomes a function call, which eats stack and performance04:18
dhx_mwell not even that... why can't you just say "$bug->resolution = $t_new_bug_resolution;"04:18
dhx_mI guess you'd need a function if you want to check the resolution is OK04:18
nuclear_eclipseyou can04:18
nuclear_eclipsethe point of __set() is to transparently validate the type of data being assigned to that property04:19
nuclear_eclipsebut once you've validated data going into the object, there's no real need for __get() to do do fancy things on the way out04:20
dhx_mbut protected variables can't be read by other non-related classes though04:20
dhx_myep04:20
dhx_mis it possible to have one function per field that is being set?04:21
nuclear_eclipsedhx_m: that's the "beauty" of __get()/__set(); because they are now class-level methods, they can still access those properties, and because they can techically be called for *any* property, even ones that don't exist, you lose the built-in protections04:21
nuclear_eclipsedhx_m: that's called getMyProperty() and setMyProperty() type of methods you see whoring up Java apps...04:21
dhx_mdon't get me started on Java :p04:22
dhx_mI'm trying to find an example Hello World I saw on Slashdot a few years ago04:26
dhx_mas a joke about writing in Java04:26
nuclear_eclipseanywho, I need to head to bed so I can sleep before the all day event tomorrow04:26
dhx_mah yep, good luck with that :)04:26
nuclear_eclipsecheers04:26
dhx_mI expect to see 50 people in this channel tomorrow hehe :p04:27
nuclear_eclipselol04:27
dhx_mhttp://ask.slashdot.org/comments.pl?sid=949915&cid=2483300104:27
dhx_mthere it is :)04:27
* nuclear_eclipse looks04:28
nuclear_eclipseI was expecting the end of that to be more like `mb.send( DefaultFactory.getInstance().createStrategy(mb) )` :P04:30
dhx_mhaha... that is .NET? :p04:31
nuclear_eclipseok, bedtime04:31
nuclear_eclipsecheers04:31
dhx_mGetSomethingFromUser.ConvertToAnotherFormat.PerformCalculation.PrintToScreen.SaveToFile.WriteEveryStatementOnTheSameLineSeparatedByDots04:32
dhx_mok cya :)04:32
* paul_ moos15:47

Generated by irclog2html.py