Forgot your password?
typodupeerror
Google Businesses The Internet

Getting a Grip on Google Code 91

Posted by Zonk
from the improving-on-the-old dept.
netbuzz writes "Niall Kennedy reports on his blog that Guido van Rossum, author of the Python programming language, has begun showing off his first project since joining Google last year. 'Mondrian is a Web-based code-review system built on top of a Perforce and BigTable backend with a Python-powered front-end,' Kennedy writes. 'Mondrian is a pretty impressive system and is currently in use across Google.' Kennedy's description of Google's current code-review system sure makes it sound like it was in need of an upgrade. 'The Mondrian tool creates a much better workflow by creating task-specific dashboards, in-line commenting, well-tracked statistics, and more,' he writes. 'The application is built on top of Python open source libraries such as the Django framework, smtpd.py mail service, and the wsgiref Web server software.'"
This discussion has been archived. No new comments can be posted.

Getting a Grip on Google Code

Comments Filter:
  • Perforce? (Score:5, Interesting)

    by Doctor Memory (6336) on Friday December 01, 2006 @05:21PM (#17072660)
    Good idea, building on a closed-source SCMS that's (barely!) a mid-level player in the market. I can understand not wanting ClearCase, but what's wrong with CVS or Subversion? Hell, even Monotone or GNU Arch...

    Oh well, could be worse: they could have gone with StarTeam, PVCS or MKS Source Integrity...
    • by rmull (26174)
      Anyone who's used perforce will understand. I read this and it made me very, very jealous.
    • Re:Perforce? (Score:5, Interesting)

      by panaceaa (205396) on Friday December 01, 2006 @05:37PM (#17072954) Homepage Journal
      I'm not sure how you decided Perforce is a "barely mid-level player" in the SCM market. Adobe, Google, and Microsoft all use Perforce as their primary source code management solution. (Though Microsoft has highly modified it and calls it something else internally... but my contacts there tell me it's still Perforce underneath.) Perforce does have its problems with scalability, but in terms of merging, collaborating, viewing history, keeping branches, etc, etc, etc, it's pretty awesome.
      • Re:Perforce? (Score:5, Informative)

        by Electrum (94638) <david@acz.org> on Friday December 01, 2006 @06:10PM (#17073550) Homepage
        Adobe, Google, and Microsoft all use Perforce as their primary source code management solution.

        Amazon does too.
      • by mkcmkc (197982) on Saturday December 02, 2006 @12:24AM (#17077694)
        Microsoft is using Perforce for source code control? Why aren't they using their own product--Visual Source Safe? Does it suck or something?
      • I'm not sure how you decided Perforce is a "barely mid-level player" in the SCM market

        Why, by using only the finest in high-tech market player profiling, to whit: I Googled for "<scm system> configuration management" and noted how many hits each got. My list worked out to:

        2.8M — Clear Case
        2.8M — CVS
        2.4M — Visual Source Safe
        1.8M — Subversion
        1.1M — CCC/Harvest (now CA AllFusion Harvest)
        900K — RCS
        665K — Perforce
        536K — PVCS
        378K — Aegis
        376K — Monotone
        186K — BitKeeper
        154K — StarTeam
        101K — AllChange
        68K — GNU

    • Why would linux kernel maintainers have used a proprietary SCMS all these years, if it wasn't simply the best suited tool for that purpose? (bitkeeper)
      • by doom (14564)
        Schapsmann wrote:
        Why would linux kernel maintainers have used a proprietary SCMS all these years, if it wasn't simply the best suited tool for that purpose? (bitkeeper)

        Hypothetically, because the developer was a friend of Torvald's, and he talked him into it.

    • Re:Perforce? (Score:5, Informative)

      by slamb (119285) * on Friday December 01, 2006 @05:41PM (#17073060) Homepage
      Good idea, building on a closed-source SCMS that's (barely!) a mid-level player in the market. I can understand not wanting ClearCase, but what's wrong with CVS or Subversion?

      I use both Subversion and Perforce. There's one major feature still lacking from Subversion: merge tracking. There's work underway [tigris.org] to design, implement, and document this feature, but it's not done yet. This is a huge deal for anyone with lots of branches.

      Not that it's all roses with Perforce. My impression is that it doesn't scale very well. Most operations simply lock the entire database. I think it's a reader/writer lock, but it means that (for example) while the hour-long checkpointing pre-backup process happens every night, you can't do any write operations. (And there's a way to do an offline checkpoint, but it's not documented or supported, and is difficult to get right, with bad consequences if you don't.)

      • Re:Perforce? (Score:5, Interesting)

        by slamb (119285) * on Friday December 01, 2006 @05:48PM (#17073172) Homepage
        It means that (for example) while the hour-long checkpointing pre-backup process happens every night, you can't do any write operations.

        Let me be a little more specific: while the hour-long checkpointing process is happening, you can't even open files for edit. In addition to having really course locking, Perforce has more write operations than most version control systems. Subversion's CVS-style working copy means the only write operations are commits and revpropsets.

      • Re:Perforce? (Score:5, Informative)

        by Mike McTernan (260224) on Friday December 01, 2006 @06:46PM (#17074164) Homepage
        > Not that it's all roses with Perforce. My impression is that it doesn't scale
        > very well. Most operations simply lock the entire database.

        I agree - the backup solution described and recommended by Perforce works well for small installations, but doesn't scale very well in my experience. It's disappointing given that Perforce use scalability as a selling feature (http://www.perforce.com/perforce/products.html).

        I went on a limb and made an alternative way to do checkpoints/backups for exactly the reason you describe - it's difficult to get right and seriously bad if you get it wrong. The write up of what I do is here:

        http://www.mcternan.co.uk/PerforceBackup/ [mcternan.co.uk]

        In my opinion it would be simple for Perforce to implement some simple changes to help large scale backups (e.g. make p4d -jj -c "cmd" work), and I've suggested it to their support staff, some of whom I've met in person at various times. However, I haven't heard or seen any indication that they are going to do this... I'm still hopeful, but less so these days.

        I also believe that Perforce only does locking at the table level (using flock()), which is most likely why the server often sees poor concurrency, especially with write operations as you describe. The more recent versions of the server are apparently better (2006.x), although I'm yet to upgrade. The server itself is based on SleepyCat Berkley DB tables, which Oracle recently took over and look to have improved (http://www.oracle.com/database/berkeley-db/db/ind ex.html). So maybe future versions of the Perforce server will benefit too. I hope.
        • Re: (Score:2, Informative)

          by slamb (119285)

          The write up of what I do is here: http://www.mcternan.co.uk/PerforceBackup/ [mcternan.co.uk]

          Interesting! I'll have to look it over more later.

          For comparison, I've put the latest (not yet deployed) version of our offline checkpoint process here [slamb.org]. (It's a NetVault backup script; pre locks and does the checkpoint, post touches a file signalling success to our monitoring and releases the lock). It's a procedure outlined by Perforce, though they didn't mention error handling...

      • by yacc143 (975862)
        merge tracking is already "implemented". Use svk, which does quite a nice job.

        Actually merge tracking is useful enough that it makes sense to use svk in completly online settings.

        yacc
      • I use both Subversion and Perforce. There's one major feature still lacking from Subversion: merge tracking. There's work underway [tigris.org] to design, implement, and document this feature, but it's not done yet. This is a huge deal for anyone with lots of branches.

        Aye, the SVN team is definitely not sitting on their laurels (yet) after finally hitting the 1.0 release a while back. They made significant improvements in 1.4 and have more up their sleeves for the upcoming 1.5 release. With even more t
    • by adwb (778985)
      Microsoft uses a modified version of the Perforce SCM for all of their internal code management. I personally use Subversion on a daily basis at work and on my SourceForge projects but I guess if it's good enough for Microsofts development teams it's good enough for Google to build a custom version too.
    • Re: (Score:3, Informative)

      by novitk (38381)
      The main reason for starting SVN was that a lot of things were wrong with CVS. Arguably SVN(nevermind Monotone, Arch) has only recently approached Perforce level of stability, scalability and functionality. They needed something workable probably at least five years prior. ClearCase is clearly not a Google-style solution.

      Looks like a good choice to me.
    • Re:Perforce? (Score:4, Informative)

      by mattcoug (873342) on Friday December 01, 2006 @08:32PM (#17075838)
      FYI - Guido built this system to work within the existing Google infrastructure, he didn't choose Perforce for the project. Guido also wants to eventually refactor it to work with many SCM including Subversion, CVS, etc. BTW, Perforce is used at many very-large-software-companies, so while it is not perfect, it is still very useful.
    • by fingon (114710)
      CVS is shit. I mean this respectfully, of course, but it doesn't even have atomic commits or changesets, which are bare minimums for modern VC. SVN isn't much better, it is still too much CVS-derived for it's own good.
  • Subversion? (Score:1, Interesting)

    by Anonymous Coward
    Am I missing something here? Why don't the use Subversion?
  • by Anonymous Coward
    Codestriker [sourceforge.net] does the same thing. Except it is in perl + GPL, on source forge.
  • Joel Spolsky (of JoelOnSoftware fame) talked yesterday [joelonsoftware.com] about how Microsoft handles their enormous build system. Apparently it's built on a fork of Perforce that MS paid for some time ago. Could this be an early warning sign of Google becoming Micro-soft?

    Disclaimer: I've yet to work with Perforce, having not yet graduated from CVS, but at least I'm not using VSS.

    • Re: (Score:1, Interesting)

      by Anonymous Coward
      1) There are thousands of companies that use Perforce. Does that mean they all want to be Microsoft?

      2) Of the thousands of companies that use Perforce, many of them started using Perforce before Microsoft. So wouldn't that make Microsoft the copycat of them?

      3) Perforce is a popular choice among companies that need a version control system that can handle very large code bases with high speed. Few version control systems can do this adequately. Perforce also has excellent branch management features. The
    • Re: (Score:2, Funny)

      by mr_mophead (886977)
      It took you until now to see an early warning sign?
  • You can't check out files with both Unix and Windows line-endings. See http://smithii.com/perforce_bugs [smithii.com] for the ugly details.
  • by Anonymous Coward on Friday December 01, 2006 @06:25PM (#17073782)
    Blargh! Mondrian [pentaho.org] is already an open-source OLAP engine! Seriously, a casual google search could tell you that. And it's not some sf.net abandonware, it's a mature and powerful OLAP Cube engine used by some big-name corps!

    Oh, and just to rant a bit more: Python WAS ALREADY THE NAME of the Lisp Compiler used in the CMUCL Common Lisp implementation and lately SBCL. And was relatively well known in computing science at the time Guido was naming python because it is a snazzy type inferencing lisp compiler!

    Guido's some sort of naming-dick. What'll he call his next python project? Glibc? Mesa? Gimp?

    • I nominate Gimp. It's represented a crappy image editor with nonsensical UI for too long. It'd be awesome if it was something cool, like Web 2.0 Pong.
    • Re: (Score:1, Funny)

      by Anonymous Coward
      Guido's some sort of naming-dick. What'll he call his next python project? Glibc? Mesa? Gimp?

      Firebird!

    • Mondrian is also the name of an experimental functional language [zoot.net.nz] for the .NET platform written by Nigel Perry.
      It's also a Haskell dialect described in this 1997 paper [chalmers.se].
      I really don't think it's anything worth getting worked up over. This is an inhouse program that was started as a side-project and is unlikely to be released (if at all) for quite some time, I think it's quite likely he just picked the name since it already had a Google-fied logo (they've used that before for their frontpage on (the artist
      • by doom (14564)
        Can anyone explain why you would want to name a software project after the world's dullest modernist painter?

        And I'm not particularly down on Modern art myself... maybe I should name a project "Rauschenberg" (except that he's not dead yet).

  • Google (Score:3, Insightful)

    by synx (29979) on Friday December 01, 2006 @06:30PM (#17073878)
    This is why working at google is awesome. Internal code reviewer is big news.

    I use the tool in question, it's good.

    Also I've used perforce at a previous company. Generally most people who talk about SCMs and reference CVS as a potential replacement/alternative to P4 really do not know what they are talking about. P4 has it's problems, granted, but if you are looking to maintain a massive code base, there really are few choices. Atomic change lists, they are fantastic.
    • Re: (Score:1, Insightful)

      by Anonymous Coward
      I'm somewhat surprised that Google is using P4 instead of BitKeeper, given that BitKeeper's author was employee #3 or #4 at Google.
    • Re: (Score:3, Interesting)

      by LauraW (662560)

      Agreed. I use this too, and it's great, especially if you feel like being a Code Nazi and making nit-picky comments about code that you're reviewing. You just double-click on the line you don't like and type in your comment. It's much easier to use than reading the code in a diff tool and then typing your comments into a separate email window.

      As far as perforce vs. CVS goes: I used CVS at my previous company and liked it. It was certainly a big improvement over CMVC when I was IBM and the SCCS wrappe

    • Does this mean you can post screenshots?
  • This is a nice design win for Django as a web framework. I wonder how much of the stack he ended up using and whether he used the ORM layer at all.
  • Our product Crucible http://www.cenqua.com/crucible [cenqua.com] provides online web-based code review including inline commenting, workflow etc. Crucible is currently in Beta release and supports CVS, SVN and Perforce. Free licenses for Open Source projects are available.

    Cheers,
    -Brendan
  • My company, Smart Bear Software [smartbearsoftware.com], has developed a commercial tool for peer code review called Code Collaborator [codecollab.com]. We support a wide variety of SCM's, including CVS, Subversion, Perforce, Clear Case, and soon Team Foundation Server.

    Using our tool, we also performed the largest case study of peer code review [codereviewbook.com] ever published and have made it available as a free book. It includes data from 2500 reviews of 3.2 million lines of source code at Cisco Systems. To get your free copy, just sign up on our website.

The bomb will never go off. I speak as an expert in explosives. -- Admiral William Leahy, U.S. Atomic Bomb Project

Working...