Welcome to the new site! Some areas are "Coming Soon!" as the content is being migrated.

Archive for the ‘Code’ Category

Call for Proposals now open for Reno-Tahoe Wordcamp 2010

Friday, January 29th, 2010

Dave LaPlante and Matt Mullenweg at Reno-Tahoe WordCamp 2010

The first Reno-Tahoe WordCamp was a great success and we are looking forward to an even better one this year. We have a lot of great things lined up but we can’t make the day a success without your help!

Are you a WordPress guru, blogger, podcaster, writer or community builder? If so, then you should consider submitting a proposal to present on  June 12th April 10th.

The official website for Reno-Tahoe WordCamp 2010 will be available soon with more information. If you have any questions, feel free to send an email to renotahoewordcamp@gmail.com.

Calculating the day of the week in Apex code

Tuesday, January 12th, 2010

Formatting dates has always been the bane of my existence and tonight, I couldn’t figure out how to calculate the day of the week based on a date when coding in apex on the Force.com platform. I found this wikipedia article: Calculating the day of the week and used it to build the following function.

This function will determine the day of the week for any date, including leap years. It can be cleaned up considerably but I figured I would share my geekery with you all in raw form. (Y3k bug: note the - 2000 to calculate the last two digits of the year.)
(more…)

Introducing my Unofficial Basecamp + Salesforce.com Toolkit

Wednesday, November 18th, 2009

logo

For the Force.com developer hackathon, I developed an integration toolkit between 37Signals‘ Basecamp application for project management and Salesforce.com. This little bit of work earned me the top prize in the Dreamforce 2009 Hackathon so a big thanks to Salesforce.com for putting on the event. It has easily become my favorite part of the Dreamforce conference.

Salesforce.com, in its simplest form, allows for the tracking of business leads, contacts, accounts, opportunities and its development platform extends its functionality to include pretty much whatever a developer can come up with. For many organizations, these salesforce opportunities represent products that are being purchased by another company. What if, however, you are a professional services group? Your services are products in a sense, however the native salesforce.com functionality of products is fairly limited for use for professional services.

Enter Basecamp
Basecamp allows you to manage companies, projects and the various messages, to-do lists, milestones, files and time tracking for each project.

Your Basecamp is in my Salesforce
This Basecamp+Salesforce.com toolkit allows you to tie Salesforce opportunities to Basecamp projects right out of the box. The toolkit includes methods for all of the Basecamp API methods so developers can build their own applications using whichever Salesforce.com objects and business logic they desire using visualforce and apex code.

Due to the time constraints on the Hackathon competition, the toolkit requires a little bit of work on my part before I deem it ready for releasing to the Force.com Code Share.

Features

  • Tie your Salesforce user account to your Basecamp user account
  • Associate opportunities to existing Basecamp projects
  • Create new Basecamp projects from within Salesforce
  • Create, read, edit and delete project messages, to-do lists and milestones
  • Manage completion of to-do lists

Considerations
Both Basecamp and Salesforce have methods for alerting users regarding upcoming tasks. The initial version of this integration relies on Basecamp’s notifications, which can be selected from within Salesforce.

Roadmap
Due to the short timeframe provided during the Dreamforce Hackathon there are a few Basecamp functional areas that were not written into the toolkit. I plan to add these items soon but they may not be in the first version released to the code share.

  • Time tracking
  • Writeboards
  • Files

basecamp_sf

basecamp_sf2

basecamp_sf3

Disclaimer: I am not affiliated with either Salesforce.com, Dreamforce, 37Signals or Basecamp.

Building Your First Plugin on WordPress at WordCamp 2009

Saturday, April 25th, 2009

Example File:

Reno-WordCamp plugin (save and rename to reno-wordcamp.php)

Slides:


A CMS Theme Framework for Wordpress

Friday, April 3rd, 2009

Wordpress as a Content Management System
I currently use WordPress for many of my projects. Want to start a blog? WordPress is a perfect fit. Do you want to build a website on WordPress? WordPress can do that too. However, because WordPress was originally designed as a blogging platform, there are quite a few tweaks that need to happen in order to get the most out of WordPress as a content management system (CMS).

Current State of Content Management Systems

  • Most content management systems consist of hundreds of features
  • Complex templating systems
  • Complicated codebase prevents it from being extended through plugins by anyone less than a computer scientist

Why is WordPress an ideal candidate to use as a CMS?

  • Lightweight
  • User-friendly administration interface
  • Rich, existing developer and user community
  • Large number of existing plugins and themes
  • Ease-of-use in incorporating media such as images, audio, video

Enter 2009 Google Summer of Code (GSoC)
Google Summer of Code is a global program that offers student developers stipends to write code for various open source software projects. Since its inception in 2005, the program has brought together nearly 2500 successful student participants and 2500 mentors from 98 countries worldwide, all for the love of code. Through Google Summer of Code, accepted student applicants are paired with a mentor or mentors from the participating projects, thus gaining exposure to real-world software development scenarios and the opportunity for employment in areas related to their academic pursuits. In turn, the participating projects are able to more easily identify and bring in new developers. Best of all, more source code is created and released for the use and benefit of all.

Building a Theme Framework
My proposal for the 2009 Google Summer of Code is a theme framework that provides a rich feature set of tools right out of the box to manage a website powered by Wordpress.

The focus of this framework is two-fold:

For CMS users: If I had to guess, I would say more than 75% of CMS users in most organizations and companies do not have any existing knowledge of PHP, CSS, and/or HTML. Creating or even editing a theme to function as more of a traditional website rather than a blog is a herculean task for this type of user. All the user needs to know is how to install WordPress to their server and install the framework.

For WordPress developers: The real power of this framework comes into play for those individuals who do use PHP, CSS, and HTML. The framework provides documentation on how to create or edit existing themes to work well with the CMS framework and extend functionality through the use of existing/custom plugins and widgets.

Features

  • In-place content editor that allows for content updates without using the post or page editor in the administration panel
  • Interactive theme/template designer allows for customization without code
  • Customizable administration theme created for CMS
  • A set of included themes that can be customized using the theme/template designer
  • Installer script to easily add the CMS framework to any installation of WordPress
hero1

Adobe Flex: Creating Widgets for the Desktop & Web

Thursday, March 12th, 2009

I presented the following presentation at the first-ever Nevada Interactive Media Summit last week. My presentation consisted mostly of demonstrations in Adobe Flex Builder but if you plug the code below into Flex, you should be able to follow along. A video of the presentation should be available soon.

Demo #1: RSS Reader

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

 <mx:HTTPService id="myRSSFeed" url="{rssURL.text}" />

 <mx:Label x="10" y="12" text="RSS URL:" fontWeight="bold" />

 <mx:TextInput id="rssURL" width="357" x="68" y="10" />

 <mx:Button x="371" y="40" label="GO !!" click="myRSSFeed.send()"/>

 <mx:DataGrid id="myDataGrid" dataProvider="{myRSSFeed.lastResult.rss.channel.item}"

 width="417.5" height="144"

 click="{myTextArea.htmlText =

 myRSSFeed.lastResult.rss.channel.item[myDataGrid.selectedIndex].description}"

 x="7.5" y="70">

 <mx:columns>

 <mx:DataGridColumn headerText="Date" dataField="pubDate" textAlign="left"/>

 <mx:DataGridColumn headerText="Title" dataField="title" textAlign="center"/>

 </mx:columns>

 </mx:DataGrid>

 <mx:TextArea id="myTextArea" width="415" height="162" x="10" y="222"/>

 

</mx:Application>

Demo #2: Twitter Search Application

<?xml version="1.0" encoding="utf-8"?>

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" title = "Twitter @ NIM" layout="absolute">

 <mx:Script>

 <![CDATA[ 

 private function doSearch(e:MouseEvent):void

 {

 twitterService.url = "http://search.twitter.com/search.atom?q=" + twitterKeyword.text;

 twitterService.send();

 }

 ]]>

 </mx:Script>

 

 <mx:HTTPService id="twitterService" />

 

 <mx:Label x="10" y="20" text="Twitter Search Term"/>

 <mx:TextInput id = "twitterKeyword" x="10" y="38" width="295"/>

 <mx:Button click = "doSearch(event)" x="379" y="38" label="Search" width="81"/>

 <mx:List dataProvider = "{twitterService.lastResult.feed.entry}" labelField="title" x="10" y="68" width="450" height="282"></mx:List>




</mx:WindowedApplication>

what i do -

Lively Labs

Web App Shop

visit

Reno Collective

Coworking Space

visit

things you should go to -

Feb 10

NCET's Tech Wednesday

@ Reno Collective

more

Feb 11

Lunch 2.0

@ Amendment 21

more

Apr 10

Reno-Tahoe WordCamp

@ TBA

more