tag:blogger.com,1999:blog-14541517467734531072024-02-20T10:43:36.949-08:00Plaxo4GmailMusings on the development of the Greasemonkey script, "Plaxo4Gmail"See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.comBlogger24125tag:blogger.com,1999:blog-1454151746773453107.post-4420683664948267722007-04-17T09:15:00.000-07:002007-04-17T09:20:34.892-07:00Plaxo Adds Google SupportAlright!!!<br /><br />GMail is now syncable from Plaxo. I've tried it out and it works. I'm not sure if P4G has a reason for existing now, but I plan on taking the code and what I have learned to sync other systems into Plaxo. The next project may be "<a href="https://www.mobical.net/mobical/main/">Mobical</a>" sync so we will have a way to use Plaxo with SyncML.<br /><br />Thanks everyone for trying P4G!<br /><br />Sincerely, GregSee It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com15tag:blogger.com,1999:blog-1454151746773453107.post-18301674014846057862007-03-29T14:47:00.000-07:002007-04-08T12:29:28.045-07:00Gmail Groups, Outlook Categories, and TagsGmail has "Groups". Outlook has "Categories". But both definitions really describe "tags". Tags became popular with <a href="http://www.flickr.com/">Flickr</a> and <a href="http://picasa.google.com/">Picasa</a> for describing photo data. Here is an example:<br /><br />You have a picture of a boat on a Lake in Seattle. Your tag descriptions might look like "Boat", "Lake", and "Seattle".<br /><br />Someone out there may find this picture and add the tags, "Summer", "Water", "Outdoors", and "Yacht".<br /><br />Tags have increased the popularity on <span style="font-style: italic;">favorite sharing</span> sites like <a href="http://del.icio.us/">del.icio.us</a> and video sites like YouTube. Now most every blog entry has tags to organize the data, making it easier to find what you are looking for, and to be able to filter easily on a lable.<br /><br />Our contacts are no different. Think of your contacts like any other data that needs organizing. If it is a contact that should be on your phone, make sure it has the category "My Phone", if it is a favorite, or family, or work, or college or a combination of multiple categories, get them ready now for tags now.<br /><br />Plaxo4Gmail will be looking at "Categories" in its next version and converting them to Gmail's "Groups".<span style="text-decoration: underline;"></span><a href="http://del.icio.us/"><br /></a>See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-80125797012357797942007-03-21T20:34:00.000-07:002007-03-21T20:41:07.501-07:00Gmail address book packet dataI just found a new way to access the Gmail address book data. The trick was shared on a different site and may be a glimpse to an address book API.<br /><br />Log into Gmail and enter this address:<br /><pre><a href="http://video.google.com/contacts/data/contacts?thumb=true&groups=true&show=ALL&enums=true&psort=Name&max=500&out=js&jsx=true">http://video.google.com/contacts/data/contacts?thumb=true&groups=true&show=ALL&enums=true&psort=Name&max=500&out=js&jsx=true</a></pre>Google video is using contact data from Gmail so you can share the video with your Gmail contacts. The interesting thing is <span style="font-weight: bold;">all </span>the contact data is there, not just email addresses.<br /><br />The page the script is lifted from is <a href="http://video.google.com/contacts/ui/ContactPicker?inputId=to&js=RAW">here</a>.<br /><br />-GregSee It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-70200867963991797482007-02-28T22:11:00.000-08:002007-02-28T22:14:19.235-08:00Minor Change V1.02Whats different: Login screen will now properly show error messages generated by Plaxo to assist in troubleshooting.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com3tag:blogger.com,1999:blog-1454151746773453107.post-1549064688778258242007-02-28T19:44:00.000-08:002007-02-28T19:56:16.294-08:00Plaxo Updates its serversPlaxo updated their servers on Monday, Feb 26, 2007. This caused a bit of a glitch for <span style="font-style: italic;">new users</span> of the Plaxo4Gmail script. They have been prevented from getting a Unique Global Identifier for their Plaxo4Gmail sync engine. Many new users have been reporting to me they are getting a "513" error in the JavaScript or Error Console in Firefox or that they click on the "sign in" for the first time and nothing happens. I've spoken with Plaxo about the issue and they are looking into the error.<br /><br />This is only affecting new users of the script. Existing users will continue to sync with Plaxo unless they erase the cookies for Gmail.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-38953210751344428832007-02-28T18:49:00.000-08:002007-02-28T19:00:11.001-08:00Minor update V 1.01bWhats changed: a minor change in the script lets Google domain sites use the script. Thanks to ChicagoMicro (Julian) for the email account to test it on.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-25654601455510530892007-02-28T04:31:00.000-08:002007-02-28T19:55:26.254-08:00Minor Update V 1.01aWhats updated: On 405 issued from Plaxo, (Bad Anchor) The script will reverse back to the missed anchor then go forward.<br /><br />A better routine for adding new entries without email addresses has been developed. The old way occasionally caused contacts to show up twice when doing a new full sync with the server.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-26941606855171154312007-02-25T07:06:00.000-08:002007-02-25T07:30:12.154-08:00Prediction: White pages will be obsolete in 3 yearsI just received my local phone book. What a waste of paper. I don't even have a landline. It just showed up on my doorstep in a plastic bag yesterday.<br /><br />When I looked in it, my cellphone numbers are not listed. No surprise there. And looking at it, the yellow pages outnumbered the white pages 5 to 1. If someone was trying to find me, I do not exist in any white pages in the whole world. However if you did a Google search for me, you'd have my contact information in about 1 click on my public vCard page, vCardPlus [+!].<br /><br />Being public about your persona is nothing to be frightened about. If you are in the white pages, you get those stupid phone calls around dinner. If you have your email posted in plain text, you get spam. What's the difference? Gmail's spam filter is as good as anybodies and I ignore the junk mail inbox anyway. I've never set up one filter and it works brilliantly.<br /><br />So what do we need white pages for? Nothing. The white pages can't connect you to a person, only a house and I eat my dinner in peace every night.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com4tag:blogger.com,1999:blog-1454151746773453107.post-29996750727390273862007-02-19T02:58:00.000-08:002007-02-19T03:46:19.208-08:00The Gmail Hub to the Plaxo HubWhy do we sync? Why do we need one set of organized contacts in multiple locations? In a world that is getting increasingly digital, the duplication of the same information means we spend more time searching for what we need to collaborate or complete a task rather than focusing on that task or contact.<br /><br />When all our communication devices, address books, organizers, schedulers, planners are aware of each other by using the power of the network, we focus our energy on the task, not searching for the most recent contact information.<br /><br />Each contact entry represents a person or organization that we have familiarity with. I may only need my auto mechanic or Doctor once a year, but I'd like to be able to contact him with his most up to date information from the most convenient source possible.<br /><br />I look for hubs in this wheel of connectivity. Gmail is a hub. Plaxo is a hub. So are Yahoo! and MSN. The reason I choose Gmail and Plaxo is:<br /><ol><li>the options they provide,</li><li>and absence of overt advertising. </li></ol>Gmail and Google advertise, but it is relevant to what I'm doing and therefore acceptable.<br /><br />Lower down the list for me is interface and design. I still place high expectations on design but for me it is mere eye candy and I'd rather have speed over graphics. When an application has everything; speed, connectivity, intuitive interface, and expandable capabilities, you get <a href="http://www.mozilla.com/en-US/firefox/about/">Mozilla Firefox</a>, <a href="http://www.apple.com/itunes/sync/">iPods</a>, <a href="http://maps.google.com/maps">Google Maps</a>, <a href="http://www.plaxo.com">Plaxo</a>, <a href="http://www.apple.com/iphone/">iPhone</a> or <a href="http://iscrybe.com/main/index.php">Scrybe</a>. When it doesn't, you get most every other POS out there designed by committee, crippled by accountants & lawyers, and polluted with ads.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com4tag:blogger.com,1999:blog-1454151746773453107.post-20605541578327266392007-02-18T08:24:00.000-08:002007-02-18T08:30:22.327-08:00Sync settings I'd like to emulate with Plaxo4GmailI found a company called Spanning Partners who make a Mac iSync plugin for Gmail Calendars. I really like the appearance shown in the <a href="http://spanningpartners.typepad.com/photos/screenshots/newicon.html">screenshots</a>. I think I could emulate it's functionality for Plaxo4Gmail. I may add it to the list of the items I'd like to add on the next version.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com2tag:blogger.com,1999:blog-1454151746773453107.post-10196427265808371652007-02-12T11:32:00.000-08:002007-02-12T10:55:09.396-08:00Thunderbird, Firefox, Gmail, Plaxo, Greasemonkey and Plaxo4GmailI love Gmail. I love <a href="http://www.mozilla.com/products/download.html?product=firefox-2.0.0.1&os=win&lang=en-US">Firefox</a>. I use <a href="http://www.mozilla.com/en-US/thunderbird/">Thunderbird</a> occasionally. I'd use it much more if I could get Gmail's free pop3 email AND my Gmail contacts to stay sync'd with it. Nothing is worse than discovering you have a contact, but it is at home in Thunderbird.<br /><br />Enter <a href="http://www.plaxo.com/downloads">Plaxo</a>. Plaxo allows me to sync my contacts with Thunderbird to the Plaxo address book database using a <a href="http://www.plaxo.com/downloads/tbird">FREE tool bar</a>.<br /><br />Plaxo4Gmail connects to Plaxo and gets my address book into Gmail where I want it. This makes Thunderbird much more accessible to me and now I am loving it too!See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-52575186850084117282007-01-22T08:07:00.000-08:002007-01-23T14:04:13.493-08:0022 days and counting...I have been using Plaxo4Gmail in it's current form for 22 days and have not felt the need to go in and make any code adjustments, yet. I add - delete - edit my contacts all the time from different sync address books with success. Here is my latest example:<br /><br />I just got a new <span style="font-style: italic; font-weight: bold;">FREE</span> RAZR V3r with myFaves from my employer, <a href="http://www.t-mobile.com/">T-Mobile</a> (what a perk!), and needed to get all my current contacts in it. The new V3r has a much improved Ph. Book, which includes <span style="color: rgb(255, 0, 0);">NEW</span> fields for Street Addresses, Nickname, and Birthday.<br /><br />My old phone had some discrepancies between the Ph. Book and the Plaxo/Gmail/Outlook/Thunderbird/AIM/PocketPC/ Contacts List. I had added about 30 new peoples phone numbers to it. Contacts in my phone but not in my Plaxo? This had to be fixed.<br /><br />For me, this situation is a minor inconvenience. I use <a href="http://www.store.motorola.com/mot/en/US/adirect/motorola?cmd=catProductDetail&showAddButton=true&returnURL=email&productID=98741H"><span style="font-weight: bold;">M</span>otorola <span style="font-weight: bold;">P</span>hone <span style="font-weight: bold;">T</span>ools</a> software to get everything back current. <span style="font-weight: bold;">MPT</span> links to Outlook. Using <span style="font-weight: bold;">MPT</span>, I updated Outlook which in turn updates <a href="http://www.plaxo.com/">Plaxo</a>, which in turn updates everything and when I opened Gmail, all 30 of my V3r Ph Book entries were now in Gmail's Contacts. At the same time there were 4 new email addresses in Plaxo that were updated to the new Motorola V3r.<br /><br />Cool. I also discovered a way to get around the whole picture bug that has given me such headaches. The <span style="font-style: italic;">phone number only</span> entries did not suffer from it. They all got the proper ghost image on Gmail. Hmmmmmm..... Maybe I will be updating the code after all.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com10tag:blogger.com,1999:blog-1454151746773453107.post-61859212935585565882007-01-07T23:42:00.000-08:002007-01-07T23:43:51.260-08:00Adding a technorati profile...My <a href="http://www.technorati.com/claim/cyyem5dx8c" rel="me">Technorati Profile</a> is here.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-70763920628815509882007-01-07T22:33:00.000-08:002007-02-25T08:51:51.577-08:00Security Issues and me... and you!Is Plaxo4Gmail a security risk? My answer, <span style="font-weight: bold; color: rgb(255, 102, 102);">yes</span> and here is why.<br /><br />When running this script, it shares your contacts with another site. If you got an unauthorized copy from anywhere EXCEPT this website, the script could be altered to send your contacts to a different site.<br /><br />So don't install this script if you cant understand the code. This was first brought to my attention on the <a href="http://blog.outer-court.com/">Google Blogscoped</a> site from <a href="http://blog.outer-court.com/archive/2007-01-01-n12.html">this entry.</a> Practice safe hex. Always trust who you are getting your code from. If you don't trust me, (and why should you?) don't use the script.<br /><br />That being said, I'd like to thank <a href="http://www.plaxo.com/">Plaxo</a> and <a href="http://blog.plaxoed.com/">Mark Jen</a> for the recent invite to beta test some of their unreleased sync products. I'm honored to be able to lend my assistance!<br /><br /><span style="color: rgb(255, 0, 0); font-weight: bold;">Update: 02/25/07</span><br /><a href="http://www.cyber-knowledge.net/blog/2007/01/01/gmail-vulnerable-to-contact-list-hijacking/">This</a> illustrates what I mean by my original comments. Plaxo4Gmail does not use this hack as my script does not have a cross-site scripting (<a href="http://en.wikipedia.org/wiki/XSS">XSS</a>) issue. But I though it was good article and worth the read.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-23417037524401043532007-01-07T06:28:00.000-08:002007-02-28T20:04:32.961-08:00Total contacts don't match upIf you have "Groups" in Gmail, they get listed as an item in "Contacts". No worries, Plaxo4Gmail ignores the groups when syncing.<br /><br />For example, if I have 55 contacts and 3 groups, my total items on the "All Contacts" tab would read something like "<span style="font-weight: bold;">58</span> of <span style="font-weight: bold;">58</span>". When I open Outlook and look at the items in the status bar when in "Contacts", it reads "55 Items".<br /><br />This is correct behavior.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-698341111697150752007-01-03T18:12:00.000-08:002007-02-28T20:03:52.340-08:00How to install the scriptFirst, you will need the <a href="http://www.mozilla.com/en-US/">Firefox</a> Browser,<br />then install <a href="http://greasemonkey.mozdev.org/">Greasemonkey</a>, (visit <a href="http://diveintogreasemonkey.org/">diveintogreasemonkey.org</a> if this is your first script)<br />click on the <a href="http://vcardplus.info/plaxo4gmail.user.js">Plaxo4Gmail</a> link in the "Downloads" sidebar of this site and follow the instructions.<br /><br />Now open <a href="http://mail.google.com/mail/">Gmail</a> in Firefox and go to "Contacts".<br />You will see a "Plaxo Login" link next to the area that says "Add Contact",<br />click on it and log into Plaxo.<br /><br />Now the "Plaxo Login" changes to "Sync".<br />Click on "Sync" and your Gmail contacts will link with Plaxo.<br />You only have to click "Sync" in the future if your changes are not recording properly with Plaxo or vice versa.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com9tag:blogger.com,1999:blog-1454151746773453107.post-43077667128572923872007-01-01T10:59:00.000-08:002007-01-01T11:44:25.071-08:00The bigger pictureThis script may be the first of its kind and I like that. We have all seen toolbars that <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_0">attach</span> themselves to the browser, and widgets that get one way information address book information from a site. Until this script, web based address books were limited to <span style="font-style: italic;">importing</span> and <span style="font-style: italic;">exporting</span> contact data.<br /><br />With <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">Plaxo</span>4Gmail, everything changes. This is <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1">truly</span> a web site <span style="font-style: italic;"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">plugin</span>. </span>We leverage the address book linking capabilities of <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">Plaxo</span>, the script injection power of <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">Greasemonkey</span> and the features of AJAX and <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">xmlhttp</span> to get two sites to communicate with each other, if and when the USER (you!) want them to. <br /><br />We <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_6">don't</span> force everyone to have the sync feature. We need no agreements between the host site and the sync partner. We <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7">don't</span> have to use screen real estate like you do with toolbars. The features we need look organic to the site we want them on.<br /><br />I imagine future developers will look to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8">Plaxo</span>4Gmail as a template for other such projects.<br /><br />I can imagine the day where a very basic site is created. The user chooses which site <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9">plugins</span> he wants to add from a "features <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10">plugin</span>" page. I'd ask myself, "what local code do I want to run when I come to this site?", and "what capabilities does this site provide that are best for me?".<br /><br />I could even generate custom <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11">plugins</span> for clients of my site that that validate against my server so pirating of <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12">plugin</span> code isn't an issue. This could really be the income flow web developers and programmers are looking for when imaging the future of the web.<br /><br />I don't know if the creator of <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13">Greasemonkey</span> ever envisioned his fantastic <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_14">plugin</span> as the future of web development beyond AJAX, but I sure do.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com1tag:blogger.com,1999:blog-1454151746773453107.post-4889577107757593012007-01-01T10:26:00.000-08:002007-01-01T11:45:32.023-08:00AdvantagesWith <a href="http://greasemonkey.mozdev.org/"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">Greasemonkey</span></a>, we get the same capabilities to sync as if the script lived on the <a href="http://mail.google.com/mail/">Gmail</a> site. <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">Greasemonkey</span> and my script are only available for the <a href="http://www.mozilla.com/en-US/"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">Firefox</span></a> browser. My current script is set up for the <span style="font-style: italic;">Live <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">Plaxo</span></span> site and <b>standard with or without chat </b><span style="font-style: italic;">Gmail</span> site.<br /><br />Now we can allow <a href="http://www.plaxo.com/downloads"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">Plaxo</span></a> users to sync with websites without having to create agreements with the host. The information being exchanged is not proprietary to the site, so I think this is the best way to give web based address books the ability to communicate with <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">Plaxo</span>.<br /><br />The <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6">Greasemonkey</span> advantage includes:<br /><ol><li>No toolbar on the browser eating up screen real estate<br /></li><li><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7">Plaxo</span> setting integration in Gmail settings and a <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8">Plaxo</span> sync button on the pages that need it.<br /></li><li>No asking for a Gmail password or user name as you have to be in the Gmail site in order for the script to work. </li><li>Leave Gmail and the script stops.</li><li>Undetectable by the host if the <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9">Greasemonkey</span> script is present.</li></ol>See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-30385532923579307082007-01-01T08:53:00.000-08:002007-03-29T19:13:01.083-07:00Adding a contactMuch of the contact data you add in Gmail will translate directly to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">Plaxo</span>. I call this data "Basic" data.<br />Basic data includes:<br /><ul><li>Display Name</li><li>Default Email (*matches Work Email 1 or Personal Email 1)</li><li><span style="color: rgb(102, 102, 102);">Notes (**)</span><br /></li><li>Personal</li><ul><li>Email 1 (*alternate default)</li></ul><ul><li>Email 2</li></ul><ul><li>Email 3</li></ul><ul><li><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">IM</span></li></ul><ul><li>Phone 1</li></ul><ul><li>Phone 2</li></ul><ul><li>Mobile Phone</li></ul><ul><li>Fax</li></ul><ul><li>Street Address</li><li><span style="color: rgb(153, 153, 153);">Other (**)</span><br /></li></ul><li>Work</li><ul><li>Email 1 (*primary default)</li></ul><ul><li>Email 2</li></ul><ul><li>Email 3</li></ul><ul><li><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">IM</span></li></ul><ul><li>Phone 1</li></ul><ul><li>Phone 2</li></ul><ul><li>Mobile Phone</li></ul><ul><li>Pager</li></ul><ul><li>Fax</li></ul><ul><li>Company</li></ul><ul><li>Job Title</li></ul><ul><li>Street Address</li><li><span style="color: rgb(153, 153, 153);">Other (**)</span><br /></li></ul><li>Other</li><ul><li>Phone 1</li></ul><ul><li>Fax </li></ul><ul><li>Street Address</li><li><span style="color: rgb(153, 153, 153);">Other (**)</span><br /></li></ul></ul><span style="color: rgb(153, 153, 153);">(**)<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">Plaxo</span>4Gmail also recognizes many <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">Plaxo/Outlook</span> </span><span style="font-weight: bold; color: rgb(192, 192, 192);">fields</span><span style="color: rgb(153, 153, 153);"><span style="color: rgb(192, 192, 192);"> i</span>n the "Other" select choice <span style="font-weight: bold;">and</span> in the "Notes" field in Gmail.<br /><br /><span style="color: rgb(0, 0, 0);">Data that has unique field descriptions are known as "Extended" data. P4G's recognition of these field descriptions makes <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">Plaxo</span> and Gmail nearly 100% <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_6">compatible</span>. </span></span><span style="color: rgb(0, 0, 0);">The Gmail "Other" data field will not map to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7">Plaxo</span> unless it has a </span><span style="font-weight: bold; color: rgb(0, 0, 0);">field description</span><span style="color: rgb(0, 0, 0);">. The field description does not get interpreted as contact data, only the information after the colon.</span><br /><br />Extended data includes:<br /><ul><li>Personal</li><ul><li>Other:</li><ul style="color: rgb(153, 153, 153);"><li>Web Page:[url]</li><li>Anniversary:[mm/dd/yyyy]</li><li>Birthday:[mm/dd/yyyy]</li><li>Spouse:[text]</li></ul></ul><li>Work</li><ul><li>Other:<br /></li></ul><ul style="color: rgb(153, 153, 153);"><ul><li>Web Page:[url]<br /></li></ul></ul><ul style="color: rgb(153, 153, 153);"><ul><li>Assistant:[text]</li></ul></ul><ul style="color: rgb(153, 153, 153);"><ul><li>Asst. Phone:[number]</li></ul></ul><ul style="color: rgb(153, 153, 153);"><ul><li>Department:[text]</li></ul></ul><ul style="color: rgb(153, 153, 153);"><ul><li>Manager:[text]</li></ul></ul><li>Other</li><ul><li>Other:<br /></li></ul><ul style="color: rgb(153, 153, 153);"><ul><li><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8">Skype</span> ID:[text]</li></ul></ul><ul style="color: rgb(153, 153, 153);"><ul><li><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9">Skype</span> In:[text]</li></ul></ul><ul style="color: rgb(153, 153, 153);"><ul><li>Nickname:[text]</li></ul></ul><ul style="color: rgb(153, 153, 153);"><ul><li>Categories:[text, text, text...]</li></ul></ul></ul>Finally, there is some incoming data from <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10">Plaxo</span> that doesn't need to be mapped. I call this data "Read Only".<br /><br />Read Only data includes:<br /><ul><li>Personal</li><ul><li>Other:<br /></li></ul><ul><ul><li>Photo <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_11">URL</span>:[url]</li></ul></ul><li>Work</li><ul><li>Other:<br /></li></ul><ul><ul><li>Photo <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_12">URL</span>:[url]</li></ul></ul><li>Other</li><ul><li>Other:<br /></li></ul><ul><ul><li><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13">Plaxo</span> ID:[number]</li></ul></ul></ul>See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-61526603767241833512006-12-31T07:28:00.000-08:002007-02-28T20:06:31.201-08:00How to add the Plaxo image to GmailIf you want to add that Plaxo contact image to the Gmail entry for that contact, the script gives you an easy way to do it.<br /><br />Simply find an entry on a Plaxo synced contact in Gmail that has an image.<br /><ol><li><span style="font-style: italic;">COPY</span> the "Other: Photo Url:" address from either <span style="font-weight: bold;">Work</span> or <span style="font-weight: bold;">Personal</span>. </li><li>Now go into the edit contact in Gmail and choose "Upload Picture".</li><li>You should see the regular "Upload a picture" dialog. Click "<span>Browse...</span>", and you should be looking at a system "File Upload" dialog. </li><li><span style="font-style: italic;">PASTE</span> the address of "Other: Photo Url" into the file name box and click open. </li><li>The "File Upload" dialog will momentarily go grey, disappear and the "Upload a picture" dialog will now have an address in it from the local machine.</li><li>Click "Upload Picture >>", crop and save.</li></ol>See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-72770565597804802822006-12-27T22:16:00.000-08:002007-02-28T20:05:51.610-08:00Updated scriptI've been working on the issues in <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">Plaxo</span>4Gmail. Here is what works:<br /><br /><ul><li>Add/remove/edit entry in Gmail and <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">Plaxo</span> properly reflects the change.</li><li>Edit or delete an entry in <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">Plaxo</span> or <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">Plaxo</span> linked address book, and Gmail properly reflects the change</li></ul><br />Here is what is buggy:<br /><br /><ul><li>Add a new entry in <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">Plaxo</span> or <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">Plaxo</span> linked address book and Gmail gets all the information,... BUT, Gmail does not record a photo entry for the new contact when updating "<span style="font-style: italic;">en <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6">masse</span></span>" (lots of updates at the same time like an initial "slow sync"). Without this photo on their server (or "ghost image" for empty photo entries), we cannot open the new contact to edit in Gmail. </li></ul><br />I am playing around with some ideas to see if I can give the Gmail site a few <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7">milliseconds</span> to catch up with the newly added entry. I 'll post a working version here soon.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-27345912862518118592006-12-26T21:25:00.000-08:002007-01-01T11:48:32.942-08:00What I think aboutSo I'm sitting around thinking "What if someone needed my help to decode Gmail?" What words of wisdom could I pass along to the next developer of a kick ass extension for Gmail.<br /><br />There is no guide on the subject, at least on the <span style="font-weight: bold; font-style: italic;">address book</span> part and you think there would be. No Gmail guru seems to be out there who could share bits of wisdom, and I searched the <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_0">Internet</span> for days and days to find out who may have something to say on the subject.<br /><br />Finally when all is said and done, the best advice I have is "read the <a href="http://gmail-lite.sourceforge.net/"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">gmail</span> lite</a> code and <a href="http://gmail-lite.sourceforge.net/wordpress/index.php/about/libgmailer/"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">libgmailer</span></a> code even if it does not work with the current version of Gmail". It was originally written over a year ago for .<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">php</span> and has not been updated since <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4">September</span> 2006 at the time of this post. Both these files helped me <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_5">decipher</span> what was needed to send "data packets" to Gmail. If you send a data packet to the correct [<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6">iframe</span>] you can manipulate Gmail.<br /><br />I wrote two deconstructing <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7">Greasemonkey</span> scripts to help me figure out what is going on under the hood. <a href="http://vcardplus.info/hijackgmaildatapacks.user.js">hijackgmaildatapacks.user.js</a> Lets you enter <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_8">URL</span> strings you can get from HTTP LIVE HEADERS and watch the Javascript Console for what those data packets return and <a href="http://vcardplus.info/gmailiframesnoop.user.js">gmailiframesnoop.user.js</a> lets you know the loading order & when an <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9">Iframe</span> has been loaded etc...<br /><br />I've included them here for your development pleasure. Maybe this is the answer you are looking for.See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0tag:blogger.com,1999:blog-1454151746773453107.post-84839379782012858632006-12-24T10:22:00.000-08:002007-02-28T20:03:11.667-08:00Before you beginProceed with caution (<span style="font-weight: bold;">AT YOUR OWN RISK</span>). Before starting the Plaxo4Gmail script, make sure you have a back up copy of <span style="font-weight: bold;">BOTH</span> your Plaxo contacts and your Gmail contacts. Remember, this script has only been tested by me. I'm sure there are a few possible scenarios I could have overlooked.<br /><br />There are a few issues with the current script I am aware of:<br /><ol><li>Plaxo does not recognize Gmail photos...</li><ul><li>The photos from Gmail are references (302 temp moved, like an ad banner) not the static URI Plaxo requires.<br /></li><li>The Gmail image URI looks something like: <a href="http://mail.google.com/mail/photos/greg.bays%40gmail.com?t=e&49755=">http://mail.google.com/mail/photos/greg.bays%40gmail.com?t=e&49755=</a></li><li style="font-weight: bold;">No workaround unless Plaxo updates it's process</li></ul><li style="color: rgb(255, 102, 102);"><span style="color: rgb(204, 0, 0);"><span style="color: rgb(0, 0, 0);">If adding </span><span style="font-weight: bold; color: rgb(0, 0, 0);">multiple</span><span style="color: rgb(0, 0, 0);"> NEW contacts from the Plaxo address book, like when you "slow sync", Gmail will not let you in to the contact entry unless it exists in Gmail BEFORE you begin the sync.</span><br /></span></li><ul style="color: rgb(255, 102, 102);"><li><span style="color: rgb(204, 0, 0);"><span style="color: rgb(0, 0, 0);">If you click on the entry and get a script timeout error, the photo issue is why</span>.<br /></span></li><li style="color: rgb(0, 0, 0);"><span style="color: rgb(204, 0, 0);"><span style="color: rgb(153, 0, 0); font-weight: bold;"><span style="color: rgb(0, 0, 0);">The current workaround is before you initially "slow sync" your contacts from Plaxo, import the Plaxo contacts.</span></span></span></li></ul><li>A "slow sync" with Plaxo will overwrite any existing Gmail contact data if the same email address.<br /></li><ul><li>I don't have any "<span style="font-style: italic;">Which information do you want to keep?</span>" scripts yet.</li><li><span style="font-weight: bold;">No workaround yet</span><br /></li></ul><li>Different contacts coming from Plaxo that have the same email address will only map to Gmail with the first one presented.<br /></li><ul><li>The second one will fail as Gmail does not like duplicate email addresses.</li><li><span style="font-weight: bold;">The current workaround is make sure all your Plaxo contacts have a unique email address or none at all.</span><br /></li></ul><li>Photos from Plaxo do not display in Gmail.<br /></li><ul><li><span style="font-weight: bold;">I have provided the Photo URL where you can load it yourself.</span><br /></li></ul></ol>See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com1tag:blogger.com,1999:blog-1454151746773453107.post-91327428022130539192006-12-22T18:40:00.000-08:002007-01-01T11:50:03.478-08:00So we begin...After waiting around for the past few month I've decided to stop waiting for <a href="http://www.plaxo.com/downloads"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">Plaxo</span></a> to come out with its <a href="http://mail.google.com/mail/">Gmail</a> sync tool and decided to produce one myself. We will use <a href="http://greasemonkey.mozdev.org/"><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">Greasemonkey</span></a> and inject the script directly into the <a href="http://mail.google.com/mail/">Gmail</a> page.<br /><br />Screenshots follow.<br /><br /><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_2">Log in</span> Screen on <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">Gmails</span> "All Contacts":<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BcHvqNUBZs4/RY7bBzuE41I/AAAAAAAAAAM/9gpw0-8bKxs/s1600-h/popup.gif"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_BcHvqNUBZs4/RY7bBzuE41I/AAAAAAAAAAM/9gpw0-8bKxs/s320/popup.gif" alt="" id="BLOGGER_PHOTO_ID_5012184259419759442" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br />Gmail Settings Screen:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BcHvqNUBZs4/RY7baTuE42I/AAAAAAAAAAU/OIQkYqJoLYU/s1600-h/settings.gif"><img style="cursor: pointer;" src="http://2.bp.blogspot.com/_BcHvqNUBZs4/RY7baTuE42I/AAAAAAAAAAU/OIQkYqJoLYU/s320/settings.gif" alt="" id="BLOGGER_PHOTO_ID_5012184680326554466" border="0" /></a>See It 360http://www.blogger.com/profile/15156095368874008593noreply@blogger.com0