{"id":1012,"date":"2008-11-25T17:03:24","date_gmt":"2008-11-26T00:03:24","guid":{"rendered":"http:\/\/www.gubatron.com\/blog\/?p=1012"},"modified":"2008-11-25T17:03:24","modified_gmt":"2008-11-26T00:03:24","slug":"cola-real-time-remote-pair-coding","status":"publish","type":"post","link":"https:\/\/www.gubatron.com\/blog\/cola-real-time-remote-pair-coding\/","title":{"rendered":"Cola: Real-Time Remote Pair coding"},"content":{"rendered":"<p>This is not new, but I hadn&#8217;t seen it, so maybe you didn&#8217;t either, I&#8217;ll let the video speak for itself, I&#8217;m speechless.<\/p>\n<p>Thanks to Daniel Chang for sharing this with me.<\/p>\n<p><object width=\"400\" height=\"225\"><param name=\"allowfullscreen\" value=\"true\" \/><param name=\"allowscriptaccess\" value=\"always\" \/><param name=\"movie\" value=\"http:\/\/vimeo.com\/moogaloop.swf?clip_id=1195398&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1\" \/><\/object><br \/><a href=\"http:\/\/vimeo.com\/1195398\">Cola: Real-Time Shared Editing<\/a> from <a href=\"http:\/\/vimeo.com\/mustafa\">Mustafa K. Isik<\/a> on <a href=\"http:\/\/vimeo.com\">Vimeo<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is not new, but I hadn&#8217;t seen it, so maybe you didn&#8217;t either, I&#8217;ll let the video speak for itself, I&#8217;m speechless. Thanks to Daniel Chang for sharing this with me. Cola: Real-Time Shared Editing from Mustafa K. Isik on Vimeo.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[15,26,30],"tags":[362,386,625,752],"class_list":["post-1012","post","type-post","status-publish","format-standard","hentry","category-code","category-free-software","category-geeklife","tag-eclipse","tag-extreme-programing","tag-live","tag-pair-coding"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5Unzf-gk","jetpack-related-posts":[{"id":359,"url":"https:\/\/www.gubatron.com\/blog\/gta-like-coke-commercial-comercial-de-coca-cola-a-lo-gta\/","url_meta":{"origin":1012,"position":0},"title":"GTA like Coke commercial &#8211; Comercial de Coca Cola a lo GTA","author":"gubatron","date":"August 14, 2006","format":false,"excerpt":"","rel":"","context":"In &quot;Geeklife&quot;","block_context":{"text":"Geeklife","link":"https:\/\/www.gubatron.com\/blog\/category\/geeklife\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3085,"url":"https:\/\/www.gubatron.com\/blog\/video-coding-the-frostwire-search-filters-ui\/","url_meta":{"origin":1012,"position":1},"title":"VIDEO: Coding the FrostWire search filters UI","author":"gubatron","date":"June 24, 2013","format":false,"excerpt":"Get in the zone with me for a good 15 minutes, maybe you'll catch a few eclipse tricks and you'll learn a little bit about how I think (and make mistakes along the way of fixing something on FrostWire)","rel":"","context":"In &quot;Code&quot;","block_context":{"text":"Code","link":"https:\/\/www.gubatron.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":233,"url":"https:\/\/www.gubatron.com\/blog\/confirmed-going-to-austria\/","url_meta":{"origin":1012,"position":2},"title":"Confirmed: Going to Austria","author":"gubatron","date":"January 11, 2006","format":false,"excerpt":"Just like I'd always dreamed, I found the perfect excuse to go to Europe this year, \"Coding\", and best of all, it will be an open source event. Me and four other members of the team will be going to a Code Sprint in Austria. Last year's code spring was\u2026","rel":"","context":"In &quot;!127.0.0.1&quot;","block_context":{"text":"!127.0.0.1","link":"https:\/\/www.gubatron.com\/blog\/category\/127001\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2033,"url":"https:\/\/www.gubatron.com\/blog\/building-the-taj-mahal-with-legos\/","url_meta":{"origin":1012,"position":3},"title":"Building The Taj Mahal with LEGOs","author":"gubatron","date":"August 3, 2010","format":false,"excerpt":"It had been ages since I didn't play LEGO, after building a smaller project to see if we could get along as a team we decided to tackle a larger project. Some life lessons you learn while playing with LEGOs: 1. Organization is key. The more you can organize your\u2026","rel":"","context":"In &quot;Geeklife&quot;","block_context":{"text":"Geeklife","link":"https:\/\/www.gubatron.com\/blog\/category\/geeklife\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4107,"url":"https:\/\/www.gubatron.com\/blog\/how-does-the-human-brain-handle-chess-math-coding-music-drawing-and-rock-climbing\/","url_meta":{"origin":1012,"position":4},"title":"How Does the Human Brain Handle Chess, Math, Coding, Music, Drawing, and Rock Climbing?","author":"gubatron","date":"January 21, 2025","format":false,"excerpt":"The human brain is a marvel of adaptability, capable of tackling an incredible range of activities\u2014from playing chess to scaling a rock face. While these tasks may seem worlds apart, they share intriguing overlaps in the way our brains process them. Let\u2019s dive into the neuroscience behind six fascinating activities:\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.gubatron.com\/blog\/wp-content\/uploads\/2025\/01\/human_brain_gubatron.jpg?fit=1191%2C715&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.gubatron.com\/blog\/wp-content\/uploads\/2025\/01\/human_brain_gubatron.jpg?fit=1191%2C715&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.gubatron.com\/blog\/wp-content\/uploads\/2025\/01\/human_brain_gubatron.jpg?fit=1191%2C715&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.gubatron.com\/blog\/wp-content\/uploads\/2025\/01\/human_brain_gubatron.jpg?fit=1191%2C715&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.gubatron.com\/blog\/wp-content\/uploads\/2025\/01\/human_brain_gubatron.jpg?fit=1191%2C715&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3874,"url":"https:\/\/www.gubatron.com\/blog\/coding-solved-gradle-build-android-breaks-after-upgrading-a-dependency-with-nullpointerexception-thrown-at-programclass-constantpoolentryaccept\/","url_meta":{"origin":1012,"position":5},"title":"[CODING\/SOLVED] gradle build (android) breaks after upgrading a dependency with NullPointerException thrown at ProgramClass.constantPoolEntryAccept","author":"gubatron","date":"February 27, 2020","format":false,"excerpt":"You've just upgraded one of your Android project's dependencies and when you .\/gradlew assembleRelease the build process breaks. You invoke it again with --stacktrace to find the following exception: \u00a0 [pastacode lang=\"java\" manual=\"java.lang.NullPointerException%0Aat%20proguard.classfile.ProgramClass.constantPoolEntryAccept(ProgramClass.java%3A537)%0Aat%20proguard.shrink.UsageMarker.markConstant(UsageMarker.java%3A1246)%0Aat%20proguard.shrink.UsageMarker.visitRequiresInfo(UsageMarker.java%3A1040)%0Aat%20proguard.classfile.attribute.module.ModuleAttribute.requiresAccept(ModuleAttribute.java%3A138)%0Aat%20proguard.shrink.UsageMarker.visitModuleAttribute(UsageMarker.java%3A739)%0Aat%20proguard.classfile.attribute.module.ModuleAttribute.accept(ModuleAttribute.java%3A99)%0Aat%20proguard.classfile.ProgramClass.attributesAccept(ProgramClass.java%3A619)%0Aat%20proguard.shrink.UsageMarker.markProgramClassBody(UsageMarker.java%3A124)%0Aat%20proguard.shrink.UsageMarker.visitProgramClass(UsageMarker.java%3A94)%0Aat%20proguard.classfile.visitor.MultiClassVisitor.visitProgramClass(MultiClassVisitor.java%3A67)%0Aat%20proguard.classfile.visitor.MultiClassVisitor.visitProgramClass(MultiClassVisitor.java%3A67)%0Aat%20proguard.classfile.visitor.ClassNameFilter.visitProgramClass(ClassNameFilter.java%3A128)%0Aat%20proguard.classfile.ProgramClass.accept(ProgramClass.java%3A430)%0Aat%20proguard.classfile.ClassPool.classesAccept(ClassPool.java%3A124)%0Aat%20proguard.classfile.visitor.AllClassVisitor.visitClassPool(AllClassVisitor.java%3A45)%0Aat%20proguard.classfile.visitor.MultiClassPoolVisitor.visitClassPool(MultiClassPoolVisitor.java%3A85)%0Aat%20proguard.classfile.ClassPool.accept(ClassPool.java%3A110)%0Aat%20proguard.shrink.Shrinker.execute(Shrinker.java%3A90)%0Aat%20proguard.ProGuard.shrink(ProGuard.java%3A381)%0Aat%20proguard.ProGuard.execute(ProGuard.java%3A145)%0Aat%20proguard.ProGuard.main(ProGuard.java%3A572)\" message=\"\" highlight=\"\" provider=\"manual\"\/] This is a ProGuard bug, which my friend, has been solved by the ProGuard\u2026","rel":"","context":"In &quot;Code&quot;","block_context":{"text":"Code","link":"https:\/\/www.gubatron.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/1012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/comments?post=1012"}],"version-history":[{"count":0,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/1012\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/media?parent=1012"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/categories?post=1012"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/tags?post=1012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}