301 8th Street, San Francisco, CA 94103-4419 (650) 521-7295     contact@inigral.com

SEARCH


   

Archive for the ‘Uncategorized’ Category


Facebook Strategy for Higher Education

Tuesday, December 23rd, 2008

There’s a lot of conversation about Facebook Strategy in Higher Education.  However, Social Media is less about strategy than about community and copresence.  So, the first element of your strategy should be start now, worry about strategy as you move forward.

Facebook can be used to advance strategic initiatives for recruitiment, yield, retention, community, alumni engagement and micro-contribution management.  This can be accomplished through Facebook’s rather blunt tools in groups and pages, and you can see more on that in our video series linked above and here.

Or, you can get or build your own custom Facebook application.

It just so happens that our product, Schools on Facebook, is a custom Facebook application out of the box that addresses these needs.  It handles data insights, and can be customized for your brand and your strategic needs.  It simply is an out of the box Facebook strategy.


Facebook for Incoming Classes: While Admissions’ Back was Turned.

Saturday, December 20th, 2008

(I posted this originally on Edumorphology.)

Brad J. Ward recently discovered that marketers from a company interested in reaching incoming freshman was out disingenuously making hundreds of X University Class of 2013 groups on Facebook. The perspectives from both Ward and his commenters are worthy of some deep consideration.

While backs were turned snubbing social media and Facebook, people with interests were proactive and hosted conversations they wanted to be visible in and a part of.  This should not be surprising; it is natural.  There are instances all across the web where marketers who have the interest and the budget “host” conversations, groups, and networks.  Some seem authentic, some seem like posers.

Here’s my thing: would Nike get accosted for creating “Atlanta Runners and Athletes” with a map of Atlanta?  I know I know, you’re going to say its not the same thing.  And, it’s not.  The city of Atlanta isn’t actively trying to manage its brand and doesn’t have a trademark on its aerial image.  However, it is the same in the sense that this is a reasonable thing for Nike to do because Nike wants to be there when people in Atlanta coordinate athletic activities.

CollegeProwler shouldn’t have to apologize for creating groups. (Universities could send them a cease and desist for hijacking the branding, which was in poor taste.)   Now that admissions offices want into those groups, I bet if they asked CollegeProwler to kindly turn over administrative rights in exchange for a link to the CollegeProwler site in the group posts, CollegeProwler would be more than happy to hand them over.

Facebook is a free for all, and no group is the “official” group of anything just as @student points out. You could, right now, go and create a group called “The OFFICIAL Brittany Spears Fan Club.”  Then, you could dramatically portray Ms. Spears all wrong.  Her fans would in no way be duped by this; they just go wherever there’s claim to support her and they will ultimately gravitate to the best community and the most authentic communication channel.

So, admissions offices could be like the record industry - they could make a lot of enemies by waging war on all of the people taking advantage of their own slowness.  Or they could do what would work: go host the best community and create the most authentic communication channel about their college or university.  The could try it through an off-facebook community that will just add another barrier to particpation.   Or, they could figure out how to tame the beast.  Talk about your strategies here in this Facebook group.

I, of course, hope they do it by watching our intros on Facebook for Universities and Colleges and ultimately choosing to use Schools on Facebook.  After all, though I think I am authentic. a secondary motive for this discussion is that Inigral, Inc is present in these types of conversations.


Facebook for Admissions Marketing and Enrollment Management

Tuesday, December 16th, 2008

This article in the Ottowa Citizen and this article in Boston Globe highlight the oncoming trend: your campus better get on Facebook or you will be left in the dust.

You can see our video introduction to Facebook for Admissions Marketing and Enrollment Management here.  It will help you get started on Facebook.  If you have any questions please feel free to contact us.


Books for Entrepreneurs: Add to Our List!

Monday, November 10th, 2008

I made a list of books that should most likely be read and at least thought about by potential and new entrepreneurs.  It’s here on Amazon.

Let us know if we’re missing a key reading.  We’d like to read it and add it to the list.


Facebook for Alumni Associations: A Guide for Advancement Professionals

Saturday, November 8th, 2008

a video:

Facebook for Alumni Assocations: A Guide for Advancement Professionals


Trouble with config.gem?

Tuesday, October 21st, 2008

While going back through an improving some initialization code of our application I moved all require statements for our rails gems into the Rails::Initializer block. This worked great for everyone except one of my coworkers who reported the following error:

c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:237:in `initialize': undefined method `collect' for #<Gem::Version::Requirement:0x371b2d8> (NoMethodError)

The solution turned out to be very simple. He just needed to update his rubygems installation (gem update --system) and everything went back to working fine.


Facebook FBJS Javascript Library

Tuesday, October 21st, 2008

We’re big fans of javascript. Used correctly it can create a great user experience.

It gives me great pleasure to announce that we at Inigral have decided to develop and share our own Javascript library with the rest of the Facebook development community.

It’s available now at: http://github.com/gdeglin/inigral-fbjs-library


has_many :through polymorphic with STI

Friday, September 5th, 2008

The code for has_many :through polymorphic is pretty straightforward but what if you are using Single Table Inheritance (STI) on either or both sides of the polymorphic through table?

There were a number of painful hacks to make this work until a patch to ActiveRecord by Trevor Squires added the :source_type key to has_many :through polymorphic (hmtp). Check it out here: [PATCH] allow polymorphic :source for has_many :through

The main purpose of this blog post is to write up an example of using :source_type in the hope that people won’t get tripped up by out-of-date blog posts which delt with hmtp before the :source_type patch.

The Scenario:

Your web application has Users and Organizations and users belong to an organization through Memberships.
This is a typical example of where you might use has_many :through. But what if you have many subclasses of users - like Student and Admin - and/or you have subclasses of Organizations - like StudentOrganization and AthleticTeam. To make this work you’ll need the :source_type key. Once you have that it’s quite simple:

The Key Models:

class User < ActiveRecord::Base
has_many :memberships
has_many :organizations, :through => :memberships, :source => :member_of, :source_type => 'Organization'
end

class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :member_of, :polymorphic => true
end

class Organization < ActiveRecord::Base
has_many :memberships, :as => :member_of
has_many :users, :through => :memberships
end

The Other Models:

class Student < User
end

class Admin < User
end

class StudentOrganization < Organization
end

class AthleticTeam < Organization
end


Finding the Biggest Group

Thursday, September 4th, 2008

An interesting undocumented piece of ActiveRecord I bumped into today is “count_all”. You can use this inside ActiveRecord count calls to do sorts and limits based on the count when you’re doing GROUP BY.

I came across this because I was having a bit of trouble recently finding the Rails way to find the biggest student group, and when the most recent joining of that group happened. What I wanted was a Railsy way to run this query:

SELECT member_of_id, count(*) mems, max(created_at) most_recent FROM memberships WHERE member_of_type = 'Organization' GROUP BY member_of_id ORDER BY mems DESC LIMIT 1

What this SQL does is return the largest group, the number of members it has, and the time the most recent one was created. It’s pretty fast, too. Now to make it Rails!

ActiveRecord provides us with the powerful count method, which will get us a good portion of the way there, using the group keyword:

Membership.count(:group => "member_of_id", :conditions => "member_of_type = 'Organization'")

This is more Railsy, but it returns a lot of data, and we will need to sort it in memory, and discard the bulk of what we pulled from the database, so it’s a good deal slower. What’s we’d like to do is sort it in the database, and only return the top row. It turns out you can do this:

largest_organization = Membership.count(:group => "member_of_id", :conditions => "member_of_type = 'Organization'", :order => "count_all DESC", :limit => 1)

largest_organization_id = largest_organization.first[0] unless largest_organization.blank?

This may not be perfectly Rails Way, since I’m not sure how legit it is to use count_all in the order by clause. It’s also not quite as fast as the original SQL, because we still need to run another query to get the most recent join time for the organization:

Membership.maximum(:created_at, :conditions => ["member_of_id = ?", largest_organization_id])

Still, it’s pretty good, and stays inside the standard ActiveRecord paradigm.

Enjoy!


Reverse SSH Tunneling

Saturday, July 19th, 2008

Developing a Facebook Platform application from your local machine (with Ruby on Rails)

You have a laptop, a sever and a facebook app.

Ideally, Facebook would talk to your development machine - but what if you don’t have a static ip address and you can’t use dynamic dns or port forwarding?

Reverse SSH Tunneling is what you need my friend.

The following is a step by step tutorial of what you need to do to have ports on your server forwarded to your local machine via ssh.

Step 1: Server Side

Add “GatewayPorts yes” into your sshd_config file:

sudo nano /etc/ssh/sshd_config

– add or edit the GatewayPorts variable, control-O to save, control-X to exit

Reload ssh:

sudo /etc/init.d/ssh reload

Step 2: Your Client

Run the tunnel:

ssh -nNT -g -R 3000:0.0.0.0:3000 me@myserver.com

If you want port 1 on your server to go to port 2 on your local it will look like:
ssh -nNT -g -R 1:0.0.0.0:2 you@yourserver.com so you can forward any port on your server to the standard -p 3000 that your rails server is running on.

Extra-Magic Step: Adding a bit of Rock & Roll

Add an alias to your ~/bash_profile:

alias sshtunnel="ssh -nNT -g -R 3000:0.0.0.0:3000 library@jorgeluisgorgeous.com"

Add your public key to the server for password free login

Thanks to Paul McKeller for getting me started on this