Archive for August, 2008

LinkedIn Tip: The Newer, More Powerful LinkedIn Address Book

Many of you are probably aware of LinkedIn Groups’ feature enhancements that we announced earlier today. In addition to those changes I’d also like to point out another much requested upgrade that launched today – one that impacts LinkedIn’s Address Book.

Starting today, we’ve made changes that allow you greater flexibility in managing your LinkedIn connections. Here are two easy steps to edit your contacts’ information on LinkedIn.

Step 1: Click through the Connections Tab

Connections List.jpg

Step 2: Edit Contact Information

Edit Contact - Chris.jpg

Of course, it may be a small step but it goes a long way in helping us build out a more comprehensive and robust LinkedIn Address Book for you. Please feel free to leave us your feedback in the comments section.

Share: Email | LinkedIn | Digg | Twitter

Twitterator: The GanzBot Chronicles

When Steve Ganz left to compete in the PDGA World Championships little did he know that he’d return to find a fast talking, “fashionably low-rate” robot built in his likeness; he may never take a vacation again!  The “Ganzbot”, as we named it, was a collaborative effort from our Web Development team with participation from Jamie Still, Dennis Hengeveld, Scott Olson and me.

The robot reads quotes from the Ganzbot Twitter feed and an internal message queue that anyone in the office can submit text to. When he talks his face becomes expressive with moving eyebrows, lips synchronized to the audio and eyes that change color.

Ganz_and_ganzbot

The idea behind Ganzbot actually goes back several months when Bryan Haggerty and Steve were joking that he needed a robot to do his work so he would have time for meetings. But frankly, we just wanted to put it together to see Steve’s reaction when he returned and I think that alone was worth the effort!

That soon caught on and Ganzbot became an office joke until being realized as a real robot while Steve was away. But who’d have thought that Engadget, Gizmodo and Make would notice too.

Want to make your own GanzBot? Check out step-by-step instructions here.

Share: Email | LinkedIn | Digg | Twitter

LinkedIn Groups: Look who’s talking now?

LinkedIn Groups has always been the central place on LinkedIn for users to form communities around professional interests. Thus far, users have used Groups to search and contact one another. But, today’s
adds the most requested feature of them all – Group Discussions.

This is the first step in a series of upgrades to the Groups functionality that you will be seeing in the months to come. In addition to discussions, given below are three more new feature enhancements to LinkedIn Groups:

  • Group home page: A private space for your members on LinkedIn.
LinkedIn Groups Overview 2.jpg
  • Discussion
    forums
    : Simple discussion spaces for you and your members. (You can turn discussions off in your management control panel if you like)
LinkedIn Groups Discussions.jpg
  • Enhanced roster: Searchable list of group members.
LinkedIn Groups Members.jpg
  • Digest emails: Daily or weekly digests of new discussion topics, which your members may choose to receive. We will be turning digests on for all current group members shortly but highly recommend your setting the frequency of emails to your own preference.
Groups Digital Digest.jpg

In addition to the above feature enhancements, we’ve also made it easier both for group managers and group members to optimize their groups experience.

  • Group management: In addition to the above four basic feature set, we’ve also added a slew of enhancements that makes it even easier for group managers to run the group.
LinkedIn Groups Manage.jpg
  • User management: Most importantly, we also would like users to optimize their groups experience by getting to pick and choose how often they’d like to receive their email digest
LinkedIn Groups Settings.jpg

We’re confident that these new features will spur communication, promote collaboration, and make your group more valuable to you and your members. So, what are you waiting for? Check out the new functionality and get a group discussion going by posting a welcome message.

A trip down memory lane. Related articles from the past on LinkedIn Groups:

  1. Announcing LinkedIn’s Searchable Groups Directory
  2. What’s new in LinkedIn Groups?
  3. Refined Network Updates, Groups, and new Notes!

Share: Email | LinkedIn | Digg | Twitter

From startup mode to being acquired by Yahoo! – The MyBlogLog story

When Scott Rafer contacted the MyBlogLog co-founders – Eric Marcoullier and Todd Sampson on LinkedIn, they were both “working on something cool”. Scott, a serial entrepreneur who knows a valuable company when he sees one, was in between companies – Feedster and (soon to be) MyBlogLog. Well, let’s hear it in his own words:

There was 6 months between Feedster (left Sept 05) and MyBlogLog (joined Mar 06). They were entirely disconnected. In Jan 06, an investor pal put the idea for a distributed social net into my head. I couldn’t get it out.

As I was trawling around the net over the next few weeks, I kept running across MBL’s click-tags. “AH HA!” It occurred to me how they did what they did, and I reached out to Eric via LinkedIn — we had Sean Bonner of metro blogging in common. I called him up; he got Todd on the phone; and I said, “Do you know what else you can do with that?” They quite reasonably said,” Who are you?”.

It all cascaded from there.

The best part of this above conversation was that the connection happened on LinkedIn. Check out the below video to learn more. Also, after the jump, a quick user snapshot on Scott with his two LinkedIn Tips:

LinkedIn User Snapshot:

Who: Scott Rafer, Former CEO, MyBlogLog | CEO, Lookery | Co-founder, Mashery | Chairman, Winksite

How: Well, we didn’t want to let go of an opportunity to sit down with Scott as well as the MyBlogLog co-founders, Eric and Todd, to get the real scoop on what went down between the time Scott assumed the CEO role and Yahoo! acquiring MyBlogLog. And, the role LinkedIn played in triggering that sequence of events.

2 LinkedIn Tips from Scott

1. What’s even better is that we were able to glean some insight into how they use LinkedIn and the feature that brought them together – Advanced Search.

Advanced People Search
is accessible by clicking on “People” under the LinkedIn logo, or “Advanced Search” next to the quick search bar. It is optimized to help you find that highly targeted person at the right time. For example, to find an expert in Six Sigma located in your geographical location to
consult for your company, you would:

  • Enter “Six Sigma” in the Keywords field
  • Choose your option in the location field
  • Specify that you are interested in “consultants/contractors”

2. Another useful LinkedIn feature that’s often used while hiring is reference search.

Reference Search
on LinkedIn is the best way to conduct reliable reference checks on your job candidates. Using the company name and years that the candidate worked at each company, the search results will return former colleagues who can potentially provide unbiased references.

Share: Email | LinkedIn | Digg | Twitter

LinkedIn Softball: Champions in the making

During the summer of 2008, LinkedIn participated in the Palo Alto city coed softball league.  We faced some fierce competition, playing against teams representing other companies.

The LinkedIn team was composed of all skill levels, including some first time cricket to softball converts who knew exactly how to crush the ball and some fast-pitch softball players learning how to adjust to hitting a ball coming at your at 10mph instead of 60. Regardless of skill level, everyone was an all-star when it came to finding Oasis Bar and Grill after the games.

Our rookie season proved to be a successful one! We made it to the playoffs and took home the “bronze medal”, ranked #3 in the league. Our final record was 8-4-0 (two of the losses being forfeits and I’m still in denial when it comes to counting them as true losses, therefore this side note is necessary).

Now that we have one season under our belt and have worked out a few kinks, we can’t wait for round 2 where we plan to take home the trophy!

We are always open to other companies challenging us to a little friendly competition, so if you are interested, shoot me a note and we can host a game at the field in our office complex! I can’t, however, promise that you will walk away with your dignity intact :)

Share: Email | LinkedIn | Digg | Twitter

Announcing LinkedIn’s native iPhone Application

I’ve got some exciting news for iPhone lovers as I’m here to announce LinkedIn’s very own native iPhone app. Based on the same back end which serves LinkedIn mobile, LinkedIn iPhone App provides users with a quicker response and more features; basically the complete mobile experience for professional networkers.

LinkedIn's native iPhone app

In additional to seeing status update, browsing connections, and search that you can already do with the web enabled app (check out my earlier blog post and video demo that covers the original feature set), here are three major enhancements you’ll find on the new native iPhone app:

1. Update your status on the road

LinkedIn Status Update on Native iPhone app

2. Address Book Integration

LinkedIn Profile on the iPhone app

3. Saving your search history and results

LinkedIn Search on the native iPhone app

Thank you for using LinkedIn Mobile/iPhone app. Please continue to send us feedback. We are working hard to improve the application and add more features. Leave a comment or two.

Share: Email | LinkedIn | Digg | Twitter

JDBC Connection Pooling for Rails on Glassfish

In Light Engineering (LED), we’re known to be multilingual – depending on the project, we’ve been known to speak Perl, Python, Java, C++, Javascript and PHP, to name a few. Our weapon of choice is still Ruby on Rails, the popular MVC framework. Out belief is that Rails makes certain types of tasks easy, and others laughably trivial. That being said, LinkedIn is still primarily a Java shop, and for good reason. Java technologies are mature, proven, and all around solid. For this reason, LED has had a very vested interest in the development work that is going into JRuby.

We started a few months ago around the time JRuby 1.1.2 went live by switching some of our Rails applications to run on Glassfish. Using Warbler, we successfully wrapped our Rails applications into WAR files and deployed on Glassfish (we’ll probably write a more detailed tutorial of this at a future date). A WAR file is completely self contained application that can be deployed simply by copying to an autodeploy directory. No more Apache/Nginx reverse proxy, no more Capistrano, no more installing gems on a production container, no more of any of that madness. This was a huge win, and we broke out the champagne bottles.

But we weren’t done. We weren’t taking advantage of many Java technologies, most notably, we weren’t taking advantage of the JDBC connection pooling capabilities of the Glassfish application server for our MySQL database.

We started by reading this tutorial by Arun Gupta of Sun. The article is fantastic, but the one criticism I have is that it was written from the perspective of a master Java engineer that learned Rails, as opposed to that of a Rails engineer approaching JRuby.

From a high level, here are the steps needed to enable JDBC connection pooling for a Rails application running in a Glassfish container:

  1. Define a JDBC connection pool.
  2. Define a JDBC resource with a JNDI name.
  3. Download and install the MySQL connection adapter.
  4. Update database.yml to use JDBC.
  5. Configure ActiveRecord to disconnect after every query.

Believe it or not, there are only five steps. I have to admit, I was initially intimidated. Java allows so much power and flexibility that, to a novice, seeing a hundred configuration choices in the Glassfish admin web UI can be a deterrent. As it turns out, we only need to touch two parts of that UI. Let’s get started:

1. Define a JDBC connection pool.

Log in to your Glassfish application server. Expand Resources->Connection Pools.

Connection Pools - Ikai.jpg

Click new. You’ll be presented with three fields. The name is arbitrary, but you’ll need to know it later. Select javax.sql.DataSource as the resource type, and MySQL as the vendor.

New JDBC Connection Step 1 - Ikai.jpg

The next screen will have more options. Change the datasource classname to com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource

Under additional properties, there should be fields configuring the database connection. Set these as appropriate.

Edit Connection Pool - Ikai.jpg

2. Define a JDBC resource with a JNDI name.

JNDI stands for Java Naming and Directory Interface, and will allow us to create a standardized name for the JDBC connection pool we just created.

In the navigation pane, click through to Resources -> JDBC -> JDBC Resources. Click new.

New JDBC Resource - Ikai.jpg

In the drop down box, select the JDBC connection pool created in step 1. For the JNDI name, it’s accepted practice to name it jdbc/connection_name.

3. Download and install the MySQL connection adapter.

tar zxvf mysql-connector-java-VERSION.tar.gz
cd mysql-connector-java-VERSION
ant
cp mysql-connector-java-VERSION-bin.jar $GLASSFISH_HOME/lib

You may have to restart Glassfish for the install to work:

asadmin stop-domain DOMAIN
asadmin start-domain DOMAIN

4. Update database.yml to use JDBC.

In your config/database.yml file, we need to tell Rails to use the connection pool rather than directly connecting to the database. Here’s a snippet of our production configuration:

production:
adapter: jdbc
jndi: jdbc/polls
driver: com.mysql.jdbc.Driver

That’s all you will need. Unlike standard configuration files, you do not need to specify things like the username, password or host because these are configured in the Application Server. I like this method because it means the engineer doing the deployment does not need to build the YAML file each time, check it in to SVN, or copy from a database.yml template with the production settings. It’s one less deployment step, and ultimately, one less item on the security checklist.

5. Configure ActiveRecord to disconnect after every query.

ActiveRecord maintains a persistent connection to the database. This is no longer necessary, as there is very little overhead in opening a connection to JDBC, which manages the connection persistence. We’ll need to disable this. I’m using code borrowed from Nick Sieger’s awesome presentation at RailsConf 2008:

# config/initializers/close_connections.rb
if defined?($servlet_context)
require 'action_controller/dispatcher'


ActionController::Dispatcher.after_dispatch do
ActiveRecord::Base.clear_active_connections!
end
end

You’re done! Now all you have to do is build the WAR file and drop it in Glassfish’s autodeploy directory.

Share: Email | LinkedIn | Digg | Twitter

LinkedIn Answers: Can indie films compete?

Our featured question this week is from Seth Caplan, a young Hollywood producer, who asks his network, “Do you want to see more independent films in theaters?”

Seth Caplan question of the week

It’s a timely question to ask, as Seth has a film opening at limited theaters this weekend. “How do we now cut through the clutter of Hollywood blockbusters,” Seth asks, “to reach a bigger share of the American audience?” While major motion pictures might open at 4,000 screens nationwide, this indie film has only 25 screens to make a good impression. That’s a tiny opportunity to generate a bonafide buzz. But Seth’s feature has already garnered thoughtful reviews in the New Yorker and the New York Times, a good signal that this indie flick is being taken seriously.

In Search of a Midnight Kiss

“In Search of a Midnight Kiss”, written and directed by Alex Holdridge, is a story about finding some kind of meaningful companionship, if even just for New Year’s Eve. If the crowd at LA’s Downtown Film Festival is any judge, the film has found something meaningful. Attendees reveled in an obvious rapport with Craigslist and MySpace romance when the film had its hometown premiere last week at the Orpheum Theatre. Clearly they knew a thing or two about where love meets Web 2.0.

But where Holdridge’s film brings the mores of social networking to the big screen, Seth is using LinkedIn as a tool to build his film business behind the scenes.

“It’s a way I can manage my contacts from all the positions I’ve had,” Seth told us. “I feel like I have access to my business contacts—and their contacts—at my fingertips to pull in resources when I need them.”

Which aptly describes the needs of producer. Perhaps a telling sign of business acumen, one of Seth’s first ventures was adapting the mathematical novella “Flatland” for the small screen. This film has done well selling to an educational audience, offering a unique diversity to his young portfolio of indie film. “In Search of a Midnight Kiss,” meanwhile, has a very different business plan.

“US box office is a tiny piece of the pie compared to international rights and home video,” said Seth, who has an MFA from the American Film Institute. “The way that we’re going to turn a profit is through international showings. We’ve already grossed half a million [dollars] in the UK box office. Our opening week in Greece we were the number 7 film in the nation. We sold every ticket for every screening for a week. We sold the theatrical rights in Spain, Scandinavia, Poland, Turkey, Israel.” Not bad for a $25,000 film.

Still, Seth and the small cast and crew of “Midnight Kiss” are hoping for good traction in US theaters. They’ll have at least until November to catch the hearts of American movie watchers. Until then, Seth is seeking qualified answers about finding a sporting chance against the studios.

And perhaps he’s taking solace in that $500,000 UK gross.

See also:

A cure for strike hype: The LinkedIn Strike Survival Guide

LinkedIn discovers the truth about Cannes

Share: Email | LinkedIn | Digg | Twitter

Introducing LinkedIn’s Company Directory

LinkedIn now has over 26 million professionals representing millions of companies. Back in March we mined this rich data to create Company Profiles for hundreds of thousands of companies and along the way discovered some cool information about companies (e.g. software engineering is the most common job title at LinkedIn etc).

Last Thursday, we introduced the ability to search for companies based on industry, location, company size and network distance. So if you’re looking for a new job, or trying to find companies to do business with, you can get a list of all the companies you should consider and see how you’re connected to each one. Check out the company directory here: http://www.linkedin.com/companies or click the Companies tab on LinkedIn’s homepage header.

LinkedIn Company Directory Homepage

Four modules of LinkedIn’s Company Directory

New Companies Home page has four components:

  • The first module is Search, where you can find companies by “Industry” and “Location”. You can choose to use more options, add company size and limit your search to a 2-degree network.
  • Second, you can browse industries related to your industry (set in your profile) or browse service providers. These lists are totally dynamic and depends on data populated by users. You also can check all of our industries.
  • On the top right part of the screen we have the third module – company name search.
  • And then last, but not least, you can see companies in your network.

How many degrees apart are you from Companies?

LinkedIn was founded on the belief that “Relationships Matter”. Last Thursday, we extended the concept of degree distance to companies. Now, when searching for companies on LinkedIn, you’ll always know how you’re connected to each company.

LinkedIn Company Directory - Search Results

Icon_degree_0_24x13 icon means you are currently at company

Icon_degree_1_24x13 icon means you know someone currently at company

Icon_degree_2_24x13icon means your connection(s) know someone currently at company

And finally, we have an answer to the most popular question: “When can I add a profile for my company?” We are working on it, and currently have most of the functionality. Now we are polishing our authentication/security rules and an algorithm that will automatically associate existing users with newly created companies.

And feel free to reply to this post with a feedback or simply send us your suggestions.

Share: Email | LinkedIn | Digg | Twitter

Tech Talk: Steve Souders on Even Faster Web Sites

Last week, we were fortunate enough to have Google’s Steve Souders give a tech talk on Even Faster Web Sites, fresh on the heels of his presentation at OSCON in Portland two weeks ago.

Steve’s name likely sounds familiar to you; indeed, if you work in web development, you’d have to work hard to avoid benefiting from his research. Not only has he spoken often at such conferences as OSCON, Rich Web Experience, Web 2.0 Expo, and The Ajax Experience; he co-founded O’Reilly’s Velocity conference; he’s also the author of the book High Performance Web Sites: Essential Knowledge for Front-End Engineers and the excellent YSlow extension for Firebug. He credits a lot of his success to adopting Harvey Penick’s methodology of keeping a notebook handy and jotting down interesting observations, researching them further, and acting on the best ones.

The tech talk centered around Steve’s “Performance Golden Rule”: 80-90% of the end user response time is spent on the front end (he uses a simple user-centric metric for dividing front end and back end load time: loading the HTML document is back end; everything after that is front end). This golden rule is clearly sensible for three reasons:

  1. There’s greater potential for improvement. Saving half of 90% is a much bigger win than half of 10%.
  2. Front end changes are simpler than back end. The techniques you’ll use (minification, consolidation, compression, etc.) take engineer days, not weeks.
  3. It’s a demonstrably effective approach. It’s not only been proven at Yahoo and elsewhere, you can likely make trivial changes to your own site and see the results immediately.

The first half of the talk was a discussion of the fourteen rules which are the basis of both his book and YSlow, which essentially automates measuring a web site’s performance against those fourteen metrics. Rather than recount it in great detail, I’ll urge you to get a copy of his book (via Amazon, O’Reilly’s Safari, or your favorite local bookstore) and read the Yahoo! Exceptional Performance Team site while you’re waiting to get the book in your hot little hands. Time and money well spent.

The second half was focused on Javascript and how it affects page loading. The load time of most modern web pages is 20-40% of the total load time, so reducing this results in noticeable improvement in page load speed. His key observations in this area are:

  • Most browsers load Javascript serially by default
  • Only about one-fourth of the Javascript functions that are loaded are actually needed before the onLoad event fires
  • It’s important to understand how element load order affects particular browsers (e.g. Firefox will block all parallel downloads while downloading stylesheets; Internet Explorer will block if you follow a stylesheet with an inline script)

Accordingly, the top items on his hit list are splitting the initial script payload, loading
scripts in parallel, and careful attention to placement of inline
scripts — all aimed at accelerating the firing of the onLoad
event.

I could go on in some detail about how to accomplish this, but you’d be better served to read Steve’s blog and watch some of the videos of his other presentations available on his web site. Instead, here’s a preview of the guidelines which are the beginning of his next book, some of which are also found on the Yahoo! Exceptional Performance Team site:

  1. Split the initial payload
  2. Load scripts without blocking
  3. Don’t scatter inline scripts
  4. Split dominant domains
  5. Make static content cookie-free
  6. Reduce cookie weight
  7. Minify CSS
  8. Optimize images
  9. Use iframes sparingly
  10. To www or not to www

Finally, you should have a look at Cuzillion, Steve’s tool for modeling web page elements and tinkering with how order affects loading. His slides from the tech talk cite it for examples, and I suspect his next book will, as well. Very useful as you’re trying find the delays in loading your web pages and understand what you can do about them.

Share: Email | LinkedIn | Digg | Twitter

Close
E-mail It
Powered by ShareThis