Slashdot Mirror


Getting a Grip on Google Code

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.'"

25 of 91 comments (clear)

  1. Re:I can see why Google stuck with Python. by Peter+Cooper · · Score: 4, Insightful

    8 bit characters is exactly what it /does/ support. It's multi-byte characters that are often seen as the problem, although UTF-8 is also supported (Unicode generally, however, is a different matter). Ruby can also support load balancing and HTTPS.. although since those aren't relevant to a programming language per se, it's intriguing why you bring them up (unless I've fallen for a troll, in which case.. well done ;-))

  2. Re:I can see why Google stuck with Python. by masklinn · · Score: 3, Informative

    although UTF-8 is also supported (Unicode generally, however, is a different matter)

    Uh, UTF-8 is a Unicode Transformation Format, that's usually (that or UTF-16) what people talk about when they mention "Unicode". And Ruby definitely sucks at anything out of the ascii character space, be it inside or at the boundaries (interfacing with the outer world).

    --
    "The way we can tell it's C# instead of Haskell is because it's nine lines instead of two." -- wadler
  3. Re:google knows what it's all about by El_Muerte_TDS · · Score: 4, Funny

    And actually good documentation is written in Latin, or Hieroglyphs, or Sanskrit.

  4. Re:Perforce? by slyborg · · Score: 2, Interesting

    ?? What's wrong with Perforce?

  5. Perforce? by Doctor+Memory · · Score: 4, Interesting

    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...

    --
    Just junk food for thought...
  6. Codestriker is the same thing by Anonymous Coward · · Score: 2, Insightful

    Codestriker does the same thing. Except it is in perl + GPL, on source forge.

  7. Re:Perforce? by panaceaa · · Score: 5, Interesting

    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.

  8. Hodie Natus Est Radici Frater by soxos · · Score: 2, Interesting

    And actually good documentation is written in Latin...

    Totally OT, but your comment reminded me of this. A great piece of history from the Multics group about an error code that never was meant to see the light of day, yet, through circumstances, did show up once during an upgrade.

  9. Re:Perforce? by slamb · · Score: 5, Informative
    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 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.)

  10. Re:Perforce? by slamb · · Score: 4, Interesting
    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.

  11. Re:Perforce? by novitk · · Score: 3, Informative

    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.

  12. Re:Perforce? by Electrum · · Score: 4, Informative

    Adobe, Google, and Microsoft all use Perforce as their primary source code management solution.

    Amazon does too.

  13. Perfarce fails in a cross-platform environment by rossta · · Score: 2, Informative

    You can't check out files with both Unix and Windows line-endings. See http://smithii.com/perforce_bugs for the ugly details.

  14. Blargh! Mondrian is already an open-source OLAP by Anonymous Coward · · Score: 5, Informative

    Blargh! Mondrian 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?

    1. Re:Blargh! Mondrian is already an open-source OLAP by panaceaa · · Score: 2, Funny

      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.

  15. Google by synx · · Score: 2, Insightful

    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.

    1. Re:Google by LauraW · · Score: 2, Interesting

      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 wrapper that Sun used for Java when I worked on it. But CVS had its problems, mostly because it doesn't support atomic commits and checkouts. Perforce fixes that. Its command line takes a little bit of getting used to: "submit" instead of "commit" and so on. And the branching, while much more powerful than what you can do in CVS, takes a while to get your head around. But once you understand it, the power it gives you is wonderful. Perforce also has a few scalability problems, but they're mostly solvable.

      I also have to agree with the parent poster that it's great, but bizarre, working a company where the internal code review system is front-page news on Slashdot.

  16. Re:Perforce? by Mike+McTernan · · Score: 4, Informative

    > 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/

    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.

    --
    -- Mike
  17. Re:I can see why Google stuck with Python. by mini+me · · Score: 3, Informative
    Unicode in ruby still sucks though

    It could be better, but it's not that bad:

    >> message = "¼ and ½"
    => "¼ and ½"
    >> message.chars.length
    => 7
    >> message.chars.last.to_s
    => "½"
    >> message.chars.normalize.to_s
    => "1/4 and 1/2"
  18. Re:Perforce? by slamb · · Score: 2, Informative
    The write up of what I do is here: http://www.mcternan.co.uk/PerforceBackup/

    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. (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...

  19. Re:Perforce? by mattcoug · · Score: 4, Informative

    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.

  20. Re:Perforce? by panaceaa · · Score: 2, Informative

    Microsoft dogfoods most everything, including Exchange Server (for @microsoft.com and @hotmail.com), SQL Server (for *.live.com), and internal Office betas (with pushes out to everyone, including admins). But for source control, their own products just don't scale up to 60,000 employees. I've heard there's dogfood initiatives for VSS, but developers in Windows Client and Office vehemently oppose them. I'm not sure if VSS is used in other areas of the company, like perhaps the Live.com groups and Xbox/Zune. And I'm not sure if there's efforts to expand VSS's capabilities to support Microsoft's own requirements, since there's very few companies that need that kind of scalability and most are Microsoft competitors.

  21. Microsoft uses Perforce?! by mkcmkc · · Score: 4, Funny

    Microsoft is using Perforce for source code control? Why aren't they using their own product--Visual Source Safe? Does it suck or something?

    --
    "Not an actor, but he plays one on TV."
    1. Re:Microsoft uses Perforce?! by zeroduck · · Score: 2, Interesting

      Simple answer: yes.

      We use it at work, and deal with corrupted databases frequently. There's been talk of moving to SVN for a while, but I doubt they'd make a full switchover. We have years worth of projects stored in VSS, and it's really not worth moving them over (fortunately closed projects, so getting back to them is only necessary if any issues arise with a customer).

  22. Re:Joel Spolsky mentions Perforce by mr_mophead · · Score: 2, Funny

    It took you until now to see an early warning sign?