We’ve been using Microsoft Sharepoint here at Plaxo to organize our projects and files. For those who have used Sharepoint, you know it’s a love/hate relationship 🙂

Anyways, we needed to get a copy of all the files in our Sharepoint site recently. Looking around on the web, we found a few solutions, but couldn’t really find one that did exactly what we wanted. So, I wrote up a quick little app to grab all the files we needed out of Sharepoint, while preserving Sharepoint’s directory structure. It’s a command line tool and it doesn’t have any options.

It’s really not that hard; here’s the source in case you’re interested:

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;
 
// replace this string with your Sharepoint content DB connection string
string DBConnString = “Server=YOURSHAREPOINTSERVER;Database=CONTENTDATABASE;Trusted_Connection=True;”;
 
// create a DB connection
SqlConnection con = new SqlConnection(DBConnString);
con.Open();
 
// the query to grab all the files.
// Note: Feel free to alter the LeafName like ‘%.extension’ arguments to suit your purpose
SqlCommand com = con.CreateCommand();
com.CommandText = “select DirName, LeafName, Content from Docs where (LeafName like ‘%.doc’ or LeafName like ‘%.xls’ or LeafName like ‘%.pdf’ or LeafName like ‘%.ppt’) and Content is not NULL”;
 
// execute query
SqlDataReader reader = com.ExecuteReader();
 
while (reader.Read())
{
    // grab the file’s directory and name
    string DirName = (string)reader[“DirName”];
    string LeafName = (string)reader[“LeafName”];
 
    // create directory for the file if it doesn’t yet exist
    if (!Directory.Exists(DirName))
    {
        Directory.CreateDirectory(DirName);
        Console.WriteLine(“Creating directory: “ + DirName);
    }
 
    // create a filestream to spit out the file
    FileStream fs = new FileStream(DirName + “/” + LeafName, FileMode.Create, FileAccess.Write);
    BinaryWriter writer = new BinaryWriter(fs);
 
    // depending on the speed of your network, you may want to change the buffer size (it’s in bytes)
    int bufferSize = 1000000;
    long startIndex = 0;
    long retval = 0;
    byte[] outByte = new byte[bufferSize];
 
    // grab the file out of the db one chunk (of size bufferSize) at a time
    do
    {
        retval = reader.GetBytes(2, startIndex, outByte, 0, bufferSize);
        startIndex += bufferSize;
 
        writer.Write(outByte, 0, (int)retval);
        writer.Flush();
    } while (retval == bufferSize);
 
    // finish writing the file
    writer.Close();
    fs.Close();
 
    Console.WriteLine(“Finished writing file: “ + LeafName);
}
 
// close the DB connection and whatnots
reader.Close();
con.Close();

Here’s my VS.NET 2005 project file. If you need help with the code, please let me know.

Advertisements

on Verizon’s Get it Now Business Tools section anyways 🙂

Plaxo Mobile Plus #1 seller in biz tools

If you’ve downloaded it and have tried it out, contact me and let me know how it’s going for you. We’re the #3 download overall:

Plaxo Mobile Plus in the top sellers

Yesterday we launched Plaxo Mobile Plus on our first mobile carrier – Verizon. If you have a Verizon phone, go to “Get It Now” -> “Get Going” -> “Buisness/Tools” and try out Plaxo Mobile Plus (it should be available on most phones). Plaxo Mobile Plus actually provides full sync between your phone and Plaxo, which means you can now connect your mobile phone up to Outlook, Outlook Express, Mac, Thunderbird, IE, Yahoo, and AIM – and you can also get access to your info on Plaxo Online too. Wow, that’s a lot of sync endpoints 🙂

After you download it, you’ll be greeted with a nice splash screen:

Plaxo Mobile Plus Splash Screen

And here’s the app in action:

Plaxo Mobile Plus Contact DetailsPlaxo Mobile Plus View Contact Picture
Plaxo Mobile Plus Get MapPlaxo Mobile Plus Compose E-Mail

There are quite a number of features in there including:

  • Select which contacts you want to sync to your phone’s native address book
  • See any contact’s full contact details (including addresses, e-mail addresses, etc.)
  • Getting a map of a contact’s address
  • Sending an e-mail or SMS to the contact

Ack, too bad I’m on Cingular. I’ll just have to wait until we roll out for our next carrier 😉

and if you try out Plaxo Mobile Plus, please do drop me a line and let me know what you think!

If you haven’t heard yet, we recently hit 15 million users here at Plaxo 🙂

We typically have Joseph’s Nabaztag announce our user count every day and so on the day it announced we had crested 15 million it was pretty exciting. We posted a blog entry about it but the best part is we also pushed a page that allows anyone to send us a message via the Nabaztag!

So, for all those out there who’ve been annoyed by Plaxo e-mails in the past, here’s your chance to turn the tables! We’ve got the Nabaztag in the middle of the office and anything you tell it to say, it will announce to us in realtime 😀

Happy Nabaztagging!

See? I can keep a lid on unreleased news 😉

Last month after our acquisition had closed, but before our public announcement today, I headed up to Troy, NY to welcome the HipCal folks and get them setup and kicked off. As part of the visit, I decided to forgo the hotel and instead, opt to stay at their frat house (they assured me that this was necessary in order to get the full “HipCal experience”… I’m still not exactly sure what that meant :O )

So I flew in and Garret and Pete picked me up at the airport. When I arrived at their house, I had this great banner welcoming me:

P1030637.jpg

Not exactly sure where they got it from, but it was pretty funny 🙂

So they took me on a tour of their frat house and their “office” (which was really just a room they retrofitted as an office space). Since RPI is an engineering focused school, they’ve got a few mechanical engineers in the house and they built a lot of furniture themselves. For example, here’s a ping pong table they built – and it even folds up.

P1030646.jpg

Here’s a shelving system they built to house a bunch of TVs for their video game room. On one side is 6 TVs while on the other side is stadium seating for at least 8.

P1030639.jpgP1030640.jpg

They’ve also got a commercially outfitted kitchen, where the guys in the house take turns making meals Sunday – Thursday.

P1030656.jpgP1030652.jpg

In college I had been a visitor to frat houses, but I’d never really been given a grand tour. I wonder if most frats are as geeked out as this place… hmmmm, maybe the HipCal guys will help us build some cool furniture here at Plaxo!

I’ve held off on uploading my pictures until today as well (so as to not give off any hints on our acquisition); check out my Flickr set for more pictures 🙂

Peter Abilla contacted me a few months ago with questions about interviewing at Google. I believe he got the job offer, but turned it down. Anyhoo, he’s started a blog called Shmula where he’s currently profiling disruptive companies. He did an e-mail interview with me about Plaxo and posted it up a few days ago. Good stuff 🙂

Well, it’s been just a little bit over two weeks since I made the switch to Mac. In the meantime, I’ve been using the Mac as my primary workstation at home and at work. I figured the only way to understand our Mac users was to become Mac and perhaps now I understand their frustrations a little too well 🙂

There’s always the obvious ones: websites that only work in IE, utilities that are only written for Windows, and the lack of a good docking station!!
Before I draw the wrath of all the Mac-heads out there, I’d like to say that overall the user experience is pretty good. A lot of things make more sense than in the Windows world; but of course, I think a lot of things make less sense as well – but maybe that’s just because I’ve been using Windows for 15 years or so…

Anyways, here we go!

  • The idea that Macs don’t crash is a myth. I’ve had mine crash outright (a grey overlay appears and an error telling me that I have to hard reset my computer) and I’ve also run into the spinner wheel of death, where one application stops responding, then the rest of my applications stop responding – even after I “Force Quit” the offending applications. Yes, I ran some beta apps (for example, starting up Parallels is always a gamble), but then again, I ran questionable apps on Windows too. I probably ran more random applications back when I was on Windows than I do now on the Mac (I always ask Terry what the best program is for any particular task and he’s usually vetted them pretty thoroughly 🙂 )
  • My Mac is slow… or maybe it’s not as fast as I thought it was going to be. My Mac friends had always made fun of me when I said my PC was slow, they laughed and made fun because my NT kernel was so much less efficient than their BSD kernel. They made fun of the Windows renderer and how it still wasn’t fully hardware accelerated. But at the end of the day, I still end up waiting for the MacBook Pro to crunch away oftentimes. Now, I understand that I’m running many applications under Rosetta, so maybe I’ll take this one back when universal binaries come out for Office, Adobe CS, and Macromedia Suite, but as of right now: it’s slow 😛
  • The thing is HOT – and right now I’m not talking about it’s sex appeal. My MacBook Pro runs like a nuclear reactor. I have a sweaty palm problem and this brick of wattage isn’t helping 😉 Before you ask, yes, I have a Rev D. with a serial number starting with 8612. The area above the F keys is insane – hot enough to burn me – when I’m working the machine hard (which is pretty much always). At least I don’t have the high pitched whining noise problem 🙂
  • It desperately needs a second mouse button. Don’t tell me it doesn’t, because every other thing I do in Adobe CS, Microsoft Office, and even around the OS needs a ctrl-click. Yes, I can connect up an external mouse or a bluetooth one (which I do when I’m at my desk at home or work), but when I’m mobile I just need a second button on this huge spacebar of a mouse button.
  • There don’t seem to be any conventions on command key-arrow, ctrl-arrow, option-arrow, and fn-arrow. Maybe this is because there aren’t dedicated home/end/pgup/pgdown keys, but when I can’t seem to figure out what the convention is for moving my cursor over words vs. hitting the beginning/end of a line vs. hitting the beginning/end of the entire page. I usually just end up guessing and I have a 50/50 shot of getting it right. But then when I move into my next application, it works different – argh!
  • The audio quality from the headphone out jack leaves much to be desired. Maybe I’m spoiled since I hear the audio out from the iPod Shuffle is really top notch, but when I listen to music in iTunes it just sounds flat vs. on my Shuffle. (I’m using the same Etymotic ER6is on both the MacBook Pro and my Shuffle, so I don’t think it’s the headphones)
  • This one’s for Microsoft: I hope Sharepoint 12 has better support for Firefox/Safari 🙂 We use Sharepoint pretty heavily here at Plaxo and it’s been pretty much death on the Mac. I usually just remote desktop into a Windows box and run IE.

Well, there’s my rant section. Maybe I’m just too early of an adopter, maybe I should’ve waited for the next version of Mac Office and Adobe CS… but oh well, now I’m just another voice in the Mac crowd hoping for improvements 🙂