QUOTED in the Australian Financial Review!

I just got word that I was heavily quoted in the Australian Financial Review (paid article link) in an article talking about investment funds leveraging data and social media analytics for fund intelligence! I can’t post the whole article but it was printed in the newspaper on December 22, 2011. Below are excerpts of my quotes:

I love the chance to talk about applications of social media in industries that typically shy away from it. Plus the AFR is a big deal in the financial world. Big thanks to Claire Stewart for including me!

mxlgy:

Last night’s Triple Shot Oahu event was an awesome success! Our first event featured 3 spirits: Oxley Gin, Corzo Tequila and Bacardi 8 Aged Rum along with 3 epic mixologists: Joey Gottesman of Better Brands, Josh Perez of thirtyninehotel and Kyle Reutner of Imbibe Hawaii….

Shopify Mod: Collection or Page Based Smart Sub-Navigation Menus

So I’ve been working on (among other things) launching a Daily Deals site for Ani.ME and decided since we were closer to Woot.com than GroupOn AND we wanted to offer branded swag, so a modified shopping cart / eCommerce system would be best. After much deliberation and research I went with Shopify, and so far its been great.

SIDENOTE: As far as I researched, IMHO the best hosted SaaS ecommerce platforms are Shopify and BigCommerce, and the best self-hosted solutions are Magento and OSCommerce.

Customizing Shopify has been relatively easy and the Liquid templating system can be very powerful. One thing it doesn’t support by default however is easy sub-navigation. It has Link Lists for main navigation but it doesn’t allow more than 1 level of menus. There are a few posted workaround methods to create dropdowns and tag based sorting but I wanted a solution that met the following requirements:

Functional Requirements

  • Once setup, be able to edit/manage each sub-menu using Link Lists, a menu/link management feature in the Shopify admin, and not have to edit template code. This allows you to use the link list filters and other dynamic features and easily create smart collection-based sub menu links.
  • Each sub-menu should automatically load up the correct Link List based on page it is on.
  • If no sub-menu exists for the page, automatically either display a specified message or simply not load any sub-menu at all. This means you only have to define the pages you want a sub-menu on, while not requiring you to specify every instance or mess up the rest of your store pages.

Assumptions

  • You already have an area defined where you want the sub-menu to appear.
  • This sub-menu area already appears where desired in the template (as with most themes).
  • You use pages or collections on your main menu navigation, at least on the pages where you want a sub-nav.
  • NOTE 1: The example below is shown using collections as the list identifier, if you use pages then change collection.title to page.title.
  • NOTE 2: I use sub-menu, subnav and sub-nav interchangeably. They refer to the same thing.

How To

  1. Determine which main menu/top level pages or collections you want to have a sub-menu for.

  2. For each such page/collection that you want a sub-menu for, go to the NAVIGATION in the Shopify Admin and create a Link List with the desired sub-menu links.



  3. Write down the Handle of each Link List. In this case it is daily-deals.



  4. Go to the Template Editor and open the theme template file that contains the area where you want your subnav to appear. In this case, I am using the free Structure theme, and it is in the subnav.liquid snippet.



  5. In the above image and below snippet, you see the code we are about to create already inserted. The code consists of 2 parts. The first part identifies the page that is loaded and pulls the page title or (as above) the collection title. It then creates a variable value that corresponds to load the correct Link List. The second part, simply outputs the links in the format you specify. If a link list doesn’t exist for the page that is loaded, you can specify a different output or none at all.

    <!-- BEGIN COLLECTION-BASED SMART SUB-NAVIGATION -->
    <!-- From mikeprasad.com, visit for detailed instructions. -->
    
    <!-- Determine Page or Collection and assign matching LinkList Handle -->
    <!-- Edit 'Title' and 'link-list-handle' to match each main nav page.collection with the desired link list -->
    
    {% if collection.title == 'Title 1' %}
    {% assign linklistHandle = 'link-list-handle-1' %}
    
    <!-- Repeat additional 2-line sets of elsif and assign code for each additional submenu -->
    
    {% elsif collection.title == 'Title 2' %}
    {% assign linklistHandle = 'link-list-handle-2' %}
    
    {% elsif collection.title == 'Title 3' %}
    {% assign linklistHandle = 'link-list-handle-3' %}
    
    {% else %}
    {% endif %}
    
    <!-- Print the matching linklist as a sub-nav -->
    
    {% if linklists.[linklistHandle].links.size > 0 %}
    {% for link in linklists.[linklistHandle].links %}
    
    <!-- This formats the output of each link, modify as needed -->
    <a href="{{ link.url }}"{% if link.url == collection.url %} class="active"{% endif %}>{{ link.title | escape }}</a>
    
    <!-- This is the divider HTML that is output between each link, modify as needed -->        
    {% unless forloop.last %} <span>&#124;</span>{% endunless %}
    
    {% endfor %}
    {% else %}
    
    <p>This is the output if there is no matching linklist for {{ collection.title }}. Modify or delete this line as desired.</p>     
    
    {% endif %}
    
    <!-- END COLLECTION-BASED SMART SUB-NAVIGATION -->
    
  6. If you have any basic experience, you can stop at this step and simply copy and paste the above code, then follow the inline comments. If you don’t, the next steps should help you out.

  7. For the first page or collection you want a submenu for, you simply replace Title 1 with the page or collection title that Shopify generates. This is the title (with spaces and capitalization) you input when you created the page or collection in the Shopify admin.

    NOTE: To make it easy, once you save the above code snippet in your theme (but before you modify the last few lines), it should display this in the subnav area when you browse each page in the statement saying there is no matching subnav. You can also insert {{ collection.title }} anywhere to display this.

    Next for the corresponding link list that you want to show as the subnav for this page/collection, just replace link-list-handle-1 with the correct link list handle as shown when you edit the link list in the Shopify admin.

    {% if collection.title == 'Title 1' %}
    {% assign linklistHandle = 'link-list-handle-1' %}
    
  8. For each additional page of collection, simply add the following 2 lines of code, replacing Title and link-list-handle as done in the last step.

    {% elsif collection.title == 'Title 2' %}
    {% assign linklistHandle = 'link-list-handle-2' %}
    
  9. This line determines how each subnav link is output. Edit as needed. Also, the active class part will show the link as the active link if its url is the same as the loaded page. This class is usually already in the css of most themes, if not, the link style will default to your normal theme look.

    <a href="{{ link.url }}"{% if link.url == collection.url %} class="active"{% endif %}>{{ link.title | escape }}</a>
    
  10. This outputs the divider separating each link. Edit as needed.

    {% unless forloop.last %} <span>&#124;</span>{% endunless %}
    
  11. This last part is what is output when there is no defined link list for the loaded page/collection. You can delete this line if you want to display nothing or edit it as desired.

    <p>This is the output if there is no matching linklist for {{ collection.title }}. Modify or delete this line as desired.</p>     
    

That’s it. The code should load wherever your theme template has a subnav area and automatically populate it based on the loaded page. You can now manage each sub-menu using the Link List/Navigation screen in the Shopify Admin. If you decide you want to remove a sub-menu for a defined page/collection, just remove its links in its matched Link List. The only time you need to go into the template code again is to define new sub-menus for new pages or collections.

Enjoy!

You know you want me at SXSW! (aka vote for my talk!)

It’s SXSW Panel Voting time again and I’m really hoping to talk this coming year, as its been a while and I think a revised version of my social media talk I gave at iStrategy Melbourne this year would be perfect. The talk was the most tweeted, referenced, and requested at iStrategy but since it deals with all U.S. based case studies, I’d very much like to present it here at SXSW.

Help make that happen by taking a look at the slides below and VOTING AND COMMENTING FOR THE TALK HERE!

The Secret to Social Media: What do you love?

My iStrategy Melbourne Keynote: The Secret to Social Media

My Opening Keynote deck as presented at iStrategy Melbourne on May 17, 2011. Among other amazing presenters from Coca-Cola, Facebook, Lonely Planet and more, this was the most tweeted, referenced, and requested presentation at the iStrategy conference. Keep in mind, it’s meant to presented live:

The Secret to Social Media: Perspectives, Strategies and Case Studies that can Change Your Business

Key Takeaways:

  •  What is the secret to implementing social media?
  • How to create passionate self-sustaining engagement (and revenue)
  • Key implementable strategies for all types of businesses
  • Three case studies for three very different businesses

The Secret to Social Media: What do you love?

View more presentations from Mike Prasad

What I’ve been up to A.K.A. #Progress

It’s been a crazy while since I’ve updated here, and with SXSW 2011 come and gone and tons happening, here’s the latest on what I’ve been up to:


Bit Love Media | GirlGamer.com, DreadCentral.com & Ani.ME Teamup!

I started GirlGamer with a core team around the idea of creating online cultural communities around super-niche enthusiast audiences. The platform we developed combined editorial publishing, social networking, and a lifestyle brand to create a unique engaged digital space for fans. Recently, we’ve taken the same platform to launch a new site Ani.ME (which has just hit over 100,000 Facebook Fans & announced a HUGE partnership) and we’ve teamed up with DreadCentral to make a first-of-its-kind enthusiast lifestyle network. Check out the new site and network at Bit Love Media. Combining operations under one network also allows us to run more effeciently, reduce cost, and increase focus. We are currently considering an angel round to allow us to scale. Contact me over twitter @mikeprasad or email mike at bitlovemedia.com if interested.

RaiseGood.org | Consumers & Brands team up to raise donations for causes.

At SXSW I was hanging out with a bunch of people working in the cause space talking about the Japan Crisis, and realized that while there were many ways to donate, the mode value of the average donation rarely changes, that is, most people donate less than $20. I also saw big brands wanting to help but many of them stumbling or not optimally being effective. After thinking for a while and randomly being on Kickstarter checking out a project I backed, I came up with the idea of combining big brands, Kickstarter-esque incentivizing and GroupOn/Woot style deals. Over the second half of SXSW Interactive I rapidly developed the idea into what is now called Raise Good. I brought in @Jerram to help with development, along with teaming up with MissionFish to facilitate 100% charity donations (no fees) and we are now getting ready to launch this week! Right now we are looking for big brands to work with for our launch to benefit the current Japan crisis!

Aperture {M} | My photography portfolio.

I actually launched this a bit ago and most of my photography can be found on my Flickr, but I wanted to start offering canvas prints for sale. Prices range from $250 to $2,000 depending on size. Through at least the end of April, any of my photo prints or canvas prints sold will have all profits go to the Red Cross and Save The Children Japan. If you’d like to order one, let me know!

I’m also still doing limited consulting work via {M} Consultancy but am being very selective. Let me know if you have any interest and we can see if it’s a good fit.

So now you know what I’ve been up to.. What have you been up to?

3 Real Examples of Facebook Groups

Facebook launched their new and much talked about Groups feature today. Mashable has full coverage on the live event this morning about each feature (definitely worth a read) but decided to get my digital hands dirty and test out Facebook Groups around some specific use cases. But before I get to those, let me give you a quick overview of some key aspects that make it interesting beyond just group status updates:

Groups have Privacy Types which allow for very different uses. Open, Closed, and Secret which hide or show the group members and/or content.

Group Members must be invited or approved by request which allows for peer and admin curated growth.

Groups have Events which are owned by the Group and Group Admin and in addition to normal event features, can be limited to only Group Members.

Groups have Shared Docs which, while admittedly simplistic, can be used for collaboration and wiki-type information sharing and updating.

Groups have Real-Time Group Chat which could allow for real-time virtual meetings and live private discussion.

So now you about Facebook Groups unique features. Now here are the 3 Groups I created, each for a different type of use case:

Real Example #1: WOWee Ambassadors of Sound (link)

This is an example of a group for a business and marketing/branding use. I created it for {M} Consultancy’s new client WOWee One for which we are working on growing a grassroots community base. The idea is to offer a VIP group for fans from the existing WOWee One Fanpage that really love, support and want to represent the brand and product, which is a portable rechargeable power bass speaker for iPhone/iPad/Portable Gaming/etc.. I made it a closed group (members are publicly visible but content is not) because we will have special offers and access only for fans that decide to become brand ambassadors. Also, the private content adds to the “VIP’ness”. Fans can request to become an Ambassador or other Ambassadors can invite a friend into the program. This allows WOWee to support and award fans who really help grow the brand community.

Tip: Don’t forget to upload a group avatar and write a decent description.

Real Example #2: #LAFoodieCrew (link)


This is an example of a enthusiast community group. If you know me, then you know I’ve been a huge foodie way before my involvement with @KogiBBQ. A lot of us LA Tech people are always meeting up for dinners, tastings, and other random noms. To date, it’s always been organized by a mishmash of tweets, texts, calls or occasionally eventbrite . Inevitably, someone misses out. Solution? Create a space on Facebook, where we all have profiles, to suggest and coordinate around our meetups and share our love for good food! Within 20 minutes, we already had our first meetup scheduled! Since I like brands, I came up with a quick name and logo to bring it all together. I setup a Group Doc to list meetup ideas and used Group Events for setting up official meetups. Since it is an Open Group, anyone can see and share meetup details, local foodie posts, and join via any member. This allows us to coordinate and share both as a group and with potentially interested Facebook users. One nice aspect is that a Group Event is owned by the Group, but can also be shared and opened up for anyone to RSVP.

Group Events and Docs are shown on the #LAFoodieCrew Group Page

Group Docs is used to organize, propose and collect meetup ideas

Group Events are automatically related to the group and members are automatically invited. Making it a public event also allows anyone else to RSVP.

Real Example #3: Pivotal LA

This is an example of a private community group. Years ago, when the L.A. Tech Community and Scene all but existed, a number of key organizers, influencers and community leaders teamed up as an unofficial group called Prototype LA. We shared resources, hookups, advice, and coordinated to foster and grow a tech scene in L.A. Over the years, we’ve kept in touch via an unofficial mailing list, but most of us still worked directly, which limited our individual effectiveness when helping each other out. Another thing that happened is that the people that I considered pivotal within L.A. tech grew, moved, and moved across areas of focus. I wanted to connect all these people and give the original Prototype LA group an update. By creating a closed (but not secret) Facebook group, anyone could see who is involved and but we now have private space to collaborate and share resources. This type of limited-but-not-hidden visibility also allows us to slowly grow the group via peer approval and hopefully the fact that it exists on Facebook, a platform we all interact with daily, will assure that the group doesn’t stagnate when all of us get too busy, as we frequently do. 

So there you have it, 3 real examples and use cases for Facebook Groups. Whether they will all prove useful in the long-term, we will have to see. But they each are off to a good start. Each case solves a specific problem or provides a specific use for the parties involved. More than just a list, which are much more limited, I’m sure we will see some more interesting uses of Groups in the next weeks.

Is there anything I think Facebook Groups is lacking? Sure, I’d love to see some Twitter integration, or even more some, Shared Group Files that can be uploaded, which would rock for clubs, college groups, private business uses, etc.. but it’s a pretty good start as is. And this is coming from a guy who generally hates Facebook..

Have any examples of how you are using Facebook Groups? Think some of the above examples have could be better? Post below along with your comments!

Help L.A. TECH Represent @ SXSW 2011!

All of us in the Los Angeles Tech Community have been working our asses off the this year, and in that time, we’ve been doing some pretty innovative things! Help us bring those ideas and innovations to SXSW 2011 by voting and commenting via SXSW Panel PIcker. I’ve compiled a list of L.A. people with panel ideas for SXSW 2011, pick your favorites (check mine out!) and support the community! Voting ends August 27 so don’t wait!

If your panel isn’t listed, leave a comment here or @/DM me and I’ll add it!

List last updated August 26:

If you want to support even more, RT this list! -> RT @mikeprasad: Support #LAtech! Check out our panels for @SXSW, vote & RT! http://bit.ly/laatsxsw

Getting started with Git on Mac! a.k.a. Git For Non-Dev N00bs like me)

Let me preface this. I’m NOT a programmer.

That said, I like to think that I’m as close to being a programmer that a non-programmer can be. I’ve directed and/or worked with dev teams in 3 languages (PHP, Django/Python, Java), and can spec out and work with everything from database details to core functionality to top-level architecture to UI/UX with awesome HTML + CSS + Javascript. All that aside, I’ve only had limited hands-on experience with revision control systems, and then only with Subversion, and not Git.

Since my current (and awesomely awesome) dev team uses Git, and I’ve been doing a lot of template revisions, changes and drafts myself, I had to learn to how get Git on the fly today. Nothing like jumping all the way in eh?

If you don’t know what Git is, according to Wikipedia:

Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.

A.K.A. it helps teams of software developers work together and coordinate on the same project without screwing up each others work. Since I’m making tons of template changes, my dev team needed an easy way to track my changes between my local copy through implementation on the live site (in this case www.girlgamer.com and www.ani.me). At its core, Git runs entirely via command line.

Oh, Command Line, I love you for your awesome power but hate you for your syntax.

The beauty of Git via command line is that is that it is super-powerful and execute many advanced functions that have no easy way to be done via a graphical user interface (GUI). The downside for me is that for my use case, mainly changing and committing front end template HTML,  I would never need any of the advanced functions. Ideally for me, a good easy GUI would suffice, and be optimal. Even better, would be having built-in support from Coda (OS X/MAC), which I use for my edits, but that  doesn’t exist yet. After reviewing TONS of options, and finding ideally great, but now defunct, GUI projects, I’ve come up with the following:

- Install Git and link it with your repository @ GitHub (see below for a quick and dirty how to)

- Grab GitX (Great for viewing commits, or alternatively BrotherBard’s fork) & GitY (For most other things) + Plugins for Coda http://justinhileman.info/git-for-coda

- Grab GitBox (An alternative to GitX + GitY) http://gitbox.pierlis.com/

Once setup via command line, I should never have to go back to command line. I can use GitX/GitY as a plugin from Coda for tracking updates, else I can use GitBox for pushing/committing my changes.

Getting set up, quick and dirty.. well not so dirty.

If you don’t know how to set up Git on OS X, here’s the process that @brosner led me through (it’s easier and shorter than it looks):

  • Set up an account and repository on www.GitHub.com (Also I hear Beanstalk is pretty awesome too)
  • Grab and install Git http://code.google.com/p/git-osx-installer/downloads/detail?name=git-1.7.1.1-intel-leopard.dmg
  • Jump into OS X (Snow Leopard)’s Terminal
  • Type and run: git
  •  - You should see basic info on the Git install.
  • Navigate to your directory with the initial files for the repository via the command cd
  • Once your in the directory, run: git init
  • Then run: git add .
  •  - Note the “.”
  • Now all files and subfolders in that folder should be indexed/added to Git for push to the remote (Github) repository.
  •  - Run this to see what has been “staged” for the next commit: git status
  •  - Staged files are files that haven’t been pushed to the remote repository yet
  • If you don’t have TextMate installed and hooked up to Terminal, do that (unless you prefer command-line vi):
  •  - Once installed, open TextMate, go to Help, and choose Terminal Usage, then Create Link (use default setting)
  • Run: mate ~/.gitconfig
  •  - Within the new file in TextMate, paste the text from here (using your own name and email of course): http://dpaste.de/MqbD/
  • Save then close file.
  • Go back to Terminal (assuming you’re still in your repository directory)
  • Make your first commit and note (quotes ARE needed) by running: git commit -m “my message about this commit”
  • Now to add Github as the remote repository, run the line provided in your Github admin, similar to: git remote add origin git@github.com:username/repositoryname.git
  • Next we need to set up a secure RSA key so you can securely push to GitHub, this is a one-time thing only:
  •  - Create a RSA ID by running: ssh-keygen -t rsa
  •  - - When prompted for which file to save key in (unless otherwise desired), press Enter.
  •  - - When prompted for a passphrase (unless otherwise desired), press Enter and re-confirm.
  •  - - That created a key, now to copy it, run: cat ~/.ssh/id_rsa.pub | pbcopy
  •  - - Go to https://github.com/account and click SSH Public Keys then Add Public Key
  • Choose any Title and in the Key area, you should be able to paste the previously copied key. Then save that.
  • Back in Terminal, push your local files to GitHub by running: git push origin master
  • Once that’s done, back at Github, view the repository, you should see your files.
  •  - Add any collaborators in Github, and you should be setup.

Now from here onward, I plan on using Coda to edit and GitBox or GitY to commit and push changes to GitHub. I’ll let you guys know how that goes. But you should be good to go. If you have a better way or a suggestion, or if Coda finally starts supporting Git, let me know!

Also, here are some resources for jumping in a bit more (also from @brosner):

Now back to work for me..

Employing tricks like needless pagination, auto-refreshing (see Salon.com), misleading headlines, and the like is cheating. You didn’t earn those pageviews, you tricked people into giving them to you. And then you look at shit like popups, popunders, double underlined links, Snap previews, Tynt scripts, and so on, and it’s pretty clear how hostile it all is. It’s nothing but money-grabbing. If you’ve got it set up so bad that your readers are employing things like ad blockers and Safari’s Reader, you fucked up. You did something wrong. You overestimated how much your readers are willing to tolerate.