Archives - Jun 2010

June 24, 2010

oilreporter ipad mobile

Oil Reporter Now Available for iPad

Mini

by Brendan Lim

Last month Intridea released Oil Reporter, a mobile application for iPhone and Android devices. Oil Reporter is currently being used by NGO's and citizens on the ground to report affected areas of the spill, including the impact to wildlife, the presence of wetlands, and the amount of oil that is present. All of the data collected by Oil Reporter users is publicly available on our website at OilReporter.org.

Now we've gone one step further and created a new Oil Reporter application specifically for the iPad. Oil Reporter for iPad enables you to see the latest reports as soon as they come in. You can view a detailed mapping of all of the submitted reports along with an easy-to-read list. You can even drill down and view detailed information about each individual report.

The code has also been open sourced on GitHub, so feel free to help us add some great new features to this application that we can push out in later updates. Oil Reporter for iPad is available right now and is completely free. The crowdsourced data gets analyzed by groups that can point relief efforts at the distressed areas according to the urgent reports that are filed with Oil Reporter. Start using it today!

Comment | 

On Android and Custom UIs

Mini

by Michael Bleigh

Android UI Fragmentation

Google’s Android has seen an incredible rise in popularity since its first handset was launched less than two years ago. Google has worked hard to earn that popularity, regularly releasing fantastic new improvements to the platform in the form of Donut, Eclaire, and now Froyo. Unfortunately, many users of the Android ecosystem won’t see these improvements for years, if at all. The reason? Manufacturers of Android handsets are building custom versions of the OS to add eye-candy and make the UI seem more attractive, at the expense of upgradeability.

HTC has its Sense UI and Motorola has MOTOBLUR. Samsung and Sony have also thrown their hats into the “heavily modified UI” ring. While these packages may serve to help differentiate from the competition, they are hammering the Android ecosystem by causing fragmentation (and yes, I do think that’s the right word). But it isn’t all their fault. One can certainly understand how, when competing against the likes of the iPhone, manufacturers would want to “pretty up” the Android experience. So I’ve got a few words for these OEMs, and Google as well.

Dear Google

I’m really happy that you’re ‘laser focused’ on the user experience for the next release. Now that you’ve got it humming at lightning speed with Froyo, it’s time to add some polish. Fantastic. But making a better stock UI isn’t the only thing that needs to happen to prevent this fragmentation.

You should be doing everything you can to prevent version fragmentation because it’s hurting developers and consumers. When people with G1s see “official Android Twitter client released” but can’t download it, they’ll get frustrated. They don’t know or care about the fact that the G1’s limited internal storage means that it can’t get the next upgrade, they only care that they’re supposed to have an Android but they can’t get the software they want.

Here’s my advice: take the feature lists of Sense and MOTOBLUR et al as a laundry list of areas where your API needs more robustness. If the capabilities of Sense and MOTOBLUR were exposed at an application level, this problem would simply disappear. You’ve built your platform to be backwards-compatible; if HTC wants to build a “Sense UI” app that changes the appearance of the UI and adds a bunch of widgets, and they want to make that only available on their handsets, more power to them. When the next version of Android comes out, it’ll all work seamlessly because they’ve simply built an app, like any other developer.

So keep up the good work on Gingerbread, I’m looking forward to the UI improvements. But also make your UI reachable by applications, provide hooks into the very guts of Android so that manufacturers and developers alike can really “make it their own” without building a custom ROM.

Dear HTC/Motorola/Samsung/Etc.

Thank you for making Android handsets. I’m a huge supporter of the platform, and the level of competition and innovation on Android phones has been amazing. Keep it up! But you’re doing yourselves a disservice by building these custom UIs that inhibit the Android version upgrade process.

Google has huge teams of people working to continuously upgrade the Android experience. You get the fruits of this labor 100% for free. I understand that as a handset manufacturer the idea of upgradeable phones isn’t necessarily the most appealing: if people can upgrade the software on their phones, maybe they won’t want a new one in 2 years! But trust me, you’ve shown that you’ll make the hardware good enough that people will want new phones.

Instead of locking down a handset to a specific Android version, create an unbeatable suite of applications that comes pre-loaded on your phone. Work on top of, instead of within, the Android operating system. Then you can leverage all of Google’s work and all of your own work to provide customers with a great experience. Work with Google to add pieces of API that will help you provide all of the value you want to provide; I’m sure Google would be happy to help as best it can.

Also, while I’m at it, can one of you please create a 4.3" handset running the stock Froyo UI sometime before November? I’d love to get a big-screen phone when my contract’s up, but I don’t know that I can handle dealing with these custom UI jobs. It’s just not for me.

Unicorns and Rainbows

I think that Android is a very important project that came along at just the right time. It has applications far beyond mobile handsets and we’ll begin seeing Android in cars, tablets, and more in the very near future. This will mean even more work will be poured into the Android ecosystem creating greater and greater benefits for everyone from consumers to handset manufacturers. All that needs to happen to take advantage of those benefits is for Google to help handset manufacturers free themselves of the idea that they need to “make it their own”.

I’m looking forward to the next 40 Android phones, and the 100 after that. I truly think that Android is going to dominate the mobile market five years from now (Apple will still have about the same piece of the pie, but Android will have displaced RIM and Microsoft entirely). So keep up the good work, but how about we all just get along in the meantime.

Comment | 

June 17, 2010

insider michael bleigh

Intridea Insider: Michael Bleigh

Mini

by Renae Bair

Acts-as-taggable-on, subdomain-fu, tweetstream, seed-fu, oauth2, and multi_json. What do all of these open source projects have in common? Why, Michael Bleigh, of course! This week, meet our Creative Director, Michael: expert programmer, prolific designer, and open source crusader.

In his three years at Intridea, Michael has created a staggering number of open source solutions for Ruby and Ruby on Rails developers. His contributions to our community are noteworthy and it is for this reason that I start off the interview by asking him about his inspiration and passion for open source software and development. For Michael, it was simple: "I saw people doing cool things and thought, hey, I want to be like those people!".

His first (and most popular) project was acts-as-taggable-on, "a tagging plugin for Rails applications that allows for custom tagging along dynamic contexts". Michael says that the project came about because, "I really needed the functionality, and I was able to get it by modifying an existing plugin. I rewrote it and then I figured, well, I should release this. Instantly, I was hooked." He has created over twenty open source projects since he started with Intridea, and cites several of them as personal favorites, such as subdomain-fu: "Lots of people were making Rails apps with subdomains and everyone seemed to be complaining about it. This one just took a lot of hard work and perseverance reading Rails internals to make it work right, and once it was done, subdomains just worked."

Most recently, he has been working with OAuth2; "I've really gotten interested in these open standards, and when OAuth 2.0 came out I was happy to be able to write the first Ruby library for it."

As our internal open source pioneer, Michael spends a lot of time focusing on creating these open source tools. But he doesn't just create open source solutions; he also points out that he uses dozens of open source projects every day. It might sounds like a high number, but Michael explains, "Anyone who develops for Rails is using a ton of open source projects. Every gem in your Rails app is someone's hard work, sweat and tears." Michael contends that more developers should make time to develop or work on open source software. "I've always wanted to give a sort of open source cheerleader talk at one of these conferences. It's so easy, there's no reason everyone can't do it."

Michael is equally a programmer and a designer. From an early age he had a passion for both computing and gaming, as well as drawing. "I really enjoyed cartooning. I used to do dead-on Penny Arcade art style as well as a decent anime style. My freshman year of college I had a webcomic called 'Fun With Sharpies' that were just hastily drawn Sharpie comics." He has even contemplated starting a weekly webcomic for Intridea.

As a designer, he laments the lack of design talent in the open source community. "Apple has a monopoly on pretty graphics with a POSIX shell (though the new Ubuntu is nice). I'd love to find a way to encourage more designers to get involved with open source and make things that cause Cupertino to be jealous instead of the other way around." Michael admits that although he makes every attempt to use open-source software, he still uses proprietary software. Mac OS X is his primary operating system due largely to the availability of Adobe's design tools. Michael does his best to try to bridge the gap between designers and the open source community; "I've created some open source projects with a UI, like my Twitter client for Google Chrome, but I'd like to do more."

He notes a barrier to entry for open source design: "I think that coders can understand the open source process more easily. We deal with version control and team development all the time, but designers aren't used to that. There needs to be a channel of communication and encouragement."

A good example of Michael's exceptional talent as both designer and developer can be seen in his RailsConf 2010 presentation, "The Present Future of OAuth". "It's a subject that lots of people find confusing and boring, so making the slides fun helped keep it lively and explain things in simpler terms." He enjoyed working with simple illustrations styled after the Zero Punctuation reviews. "Embracing constraints (like block people with circles for hands and logos for heads) can be really rewarding. My favorite slide is the one where OAuth 1.0 is looking down at the ground... I feel like it conveys a dejected emotion really well; getting emotion to translate within such constraints is a fun challenge."

Michael has given a number of presentations at conferences around the world. But, surprisingly, he's a pretty shy and timid guy. "I'm not the most extroverted guy, I love to meet new people but I'm not always great at striking up conversations. That's why I love speaking at conferences." He hopes to be able to speak as early as possible at the conference so that he'll have a "jumping off point" for conversation. Michael has always enjoyed speaking; he was a member of the debate team in high school where he grew up in Olathe, KS and participated in mock trial in college at Georgia Tech.

Although Michael is well known for his open source contributions, he spends most of his time working on internal products and client work at Intridea. He most enjoys working on products; "I have all these ideas in my head and it kills me not to be constantly making them a reality." In the coming year, Michael will be leading a structured team of our internal product developers to help bring innovative ideas to fruition.

Though it may seem that he never stops working, Michael has a great life outside of the office too. He recently married his high school sweetheart. "Morgan sat next to me in a history class my junior year for reasons beyond even her understanding. I already liked her, but was too shy to say anything." Michael was pretty surprised when she agreed to go to the movies with him for the first time. "We went to see 'The Mothman Prophecies'. I was so inexperienced with dating that I didn't know that I should have picked her up and that there should have been dinner involved." But as fate would have it, she fell in love with him despite his lack of knowledge in courtship. Now he is ecstatic to be married to his "best friend"; the brilliant woman who reads manga and plays video games with him and loves zombies even more than he does. They are under contract for their first house, a loft in downtown Kansas City, and he says that one of the first things they are going to do is "get a 6'x4' matisse-style artwork of the Left 4 Dead zombies made to hang in the new loft."

He speaks so highly of his wife that it might be hard to believe there is another woman in his life that he adores: his Pomeranian/Papillon mix dog, Zoey. "She is 10 pounds, and she acts more like a stuffed animal than a dog. She warms my feet while I code."

Michael and his wife enjoy watching movies, especially going to the movie theater. "I will often want to go to the movies (and drag Morgan there) for its own sake, not because there's anything out I even remotely want to see. There's something about setting everything else aside and just experiencing someone else's story for a few hours. Watching movies at home there are too many distractions." He also enjoys "standup comedy and concerts in seedy bars." His favorite artist is Ben Folds, and he has been to seven of his shows (eight in July and five with his wife). He jokes, "Ben Folds Five was my first concert ever, back in the mid '90s. So my musical taste has really evolved."

Maybe it's true that his musical taste hasn't evolved, but Michael has certainly evolved as both a designer and developer. He has made great use of his time at Intridea between his open source contributions, his product ideas and developments, and the speed and accuracy with which he can develop client projects. It's no mistake that he so widely known and appreciated in our community. He works relentlessly to follow through on projects, and has a passion for quality and excellence that is hard to match. What can I say, we love him!

This post is part of a weekly series, called "Intridea Insider"

Comment | 

MultiJSON: The swappable JSON handler

Mini

by Michael Bleigh

JSON has become ubiquitous. From Facebook and Twitter both declaring it to be the preferred (and in some cases only) option for API access to the new OAuth 2.0 draft spec declaring that JSON is the only acceptable response format for OAuth token responses, JSON is here to stay. What isn’t ubiquitous, however, are people’s preferred implementations.

As library authors it is our duty to try to support as large a part of the community as possible and do so in a friendly manner. To that end, today we’re releasing MultiJSON, a simple library that allows you to seamlessly provide multiple JSON backends for your library with intelligent defaulting. Install with a simple gem install multi_json and then get started like so:

require 'multi_json'

# Decode using default engine.
MultiJson.decode('{"abc":"def"}) # => {"abc" => "def"}

# Set an engine using a symbol.
MultiJson.engine = :active_support

# Encode using ActiveSupport
MultiJson.encode({:abc => "def"}) # => '{"abc":"def"}'

This gem is primarily for library authors, allowing you to use the best JSON available on the users’ systems without explicitly requiring one library over another. This way you can be sure that your JSON handling will work across implementations (e.g. JRuby) as well as requiring as little extra code as possible (the gem detects existing libraries before requiring more by default).

Engines supported by default are:

  • yajl-ruby
  • json (gem)
  • active_support
  • json_pure

We hope that this will make development of JSON-relying libraries a little bit less of a headache for library authors and users alike. The code is, as always, available on GitHub.

Comment | 

June 10, 2010

insider chris selmer

Intridea Insider: Chris Selmer

Mini

by Renae Bair

He runs really, really fast. He can live without sleep. And his first memory of a computer comes from playing Zork in the 4th grade. He's our Senior Partner, Co-Founder and valiant leader of client services. Meet Chris Selmer in this week's Intridea Insider.

Chris graduated from college with a degree in Mathematics, but not before considering several different majors, including Exercise Science, Chemistry and Physics. Although his first job during (and after) college was writing PHP for a web design studio in DC, he wasn't formally trained in web development. "I minored in CS, but everything I learned for the web was self-taught."

Chris discovered the world of Ruby while he was at an Intro to Ajax class, offered by the Pragmatic Studio. "A lot of people were talking about how Ruby had great ajax shortcuts built in." His interest was piqued and shortly thereafter he began using Ruby on Rails professionally; "I started doing some Ruby on Rails work and some ColdFusion development for the Academic Technologies department at George Washington University. Our department was in charge of classroom technology and researching innovative new ways to use technology in the classrooms."

His position at GWU was able to benefit the Ruby community in DC; when he met Dave Naffis, (also a co-founder and Senior Partner at Intridea), Dave was looking for a place to host the DCRUG. Chris was able to find him a space at GWU and he has been helping to organize the DCRUG event ever since, with help from fellow Intridean, Joe Grossberg.

Intridea was in its infancy at the time Chris came on board in 2007. He spent the majority of his time programming in Ruby on Rails for clients, but at the same time he was working hard to bring in some big, new projects. It wasn't long before he found himself running the services wing of the company. In 2007 Intridea was a start-up company of only eight employees. We've since grown to nearly 50 employees in three years, and Chris played a pivotal role in that growth by acquiring and managing a lot of projects from awesome clients.

Chris is known as the "Intridean that never sleeps". He makes time to nap and eat when he must, but he's a work-force to be reckoned with. "I tend to do my most productive work from around 11pm - 2am, just because there are fewer distractions that demand my attention. So I'll often sleep 2-5 hours at night and then have a couple of 20-minutes naps during the day." Most of us marvel at how he can be so productive on so little sleep, but Chris's Mom (and fellow Intridean), Kathleen Selmer, reveals that he never slept much as a child either; "He was always too busy to sleep. In high school, he ran cross country and indoor/outdoor track, and was captain of the teams from sophomore-senior years. He won several state championships. He was also involved in a few school plays." She also raves about how intelligent Chris is; " Chris was always an avid reader from the time he started to read. I would say he found school unchallenging. He got good grades, but didn't have to work too hard for them. He relied on a great recall of information."

Chris was born at home in Green Meadows, Maryland with the assistance of a midwife and is the oldest of four children. He spent a good portion of his youth playing with his brothers and sister on their 6 acres of land in Pennsylvania. "About half of our land was wooded, so we spent lots of time making tree forts and running around wild." Chris now lives in Takoma Park, MD. He prefers to work in his basement office, where his Mac Pro lives. He met his wife, Stephanie, on Match.com; "She was the first person I contacted, and we had a near-instant connection. She is really awesome." Stephanie works at NIH and is pursuing a Masters in Public Health at College Park. In addition, she finds time to take care of their two dogs, three cats and her husband.

Before I sat down with Chris for this interview, several fellow Intrideans wanted me to ask Chris whether he misses coding now that he's in a management role and a Senior Partner; "I miss getting in the zone and having hours pass by just writing code." Even though Chris isn't doing much coding anymore these days, he enjoys being able to kickstart meaningful projects, like Tradui and Oil Reporter. Plus, he likes solving client problems; "Solving problems was one of the things I really liked about coding, but it's just done on a different scale now."

Chris has a side dream of one day being able to buy old houses and fix them up for a living. He got a chance to do one a few years ago and looks forward to doing it again some day. But until that days comes, we need him here at Intridea, as our unwavering, super-human battle-hardened leader of client services.

This post is part of a weekly series, called "Intridea Insider"

Comment | 

WWDC 2010 Keynote & iPhone 4 Details

Mini

by Brendan Lim

The Keynote given by Steve Jobs was set to start at 10:00am PST. I decided to arrive a little early and get there around 7:30am, thinking that being nearly three hours early would yield me some great seats. I guess I underestimated just how many people would be getting there even earlier to see Steve Jobs unveil the new iPhone and announce other goodies that have been rumored. When I arrived at Moscone West, the line was wrapped all the way around the building. There were probably close to over a thousand people already in line that had the good sense to arrive even earlier than I did.

This was my first time attending WWDC and also my first time being in the presence of Steve Jobs. As the line started moving and I finally got inside the Moscone Center, I noticed all of the banners showcasing the new features of iOS 4.0, like multi-tasking and folders. I was most excited to hear all the juicy details about the new iPhone, which Gizmodo famously showed off to us a few months earlier. There were speculations about announcements of other items like iTunes.com, a new Mac Pro, a new Apple TV, and upgraded Mac Minis. Sadly, there was nothing new mentioned that wasn't for iPhone or iPad.

In the room where the Keynote was held, we all sat in chairs, iPads out, waiting with great anticipation for Steve Jobs to show up. When Steve finally appeared on stage we all cheered in a rush of excitement. After welcoming everybody to WWDC, he proceeded to recap on the launch of iPad and showed us a nice clip of the International launch. Then he announced some great new things, which are recapped below.

One of the first new items that he announced was notes for iBooks. You can now add notes within anything you're reading in the iBooks application. Also, something that almost everyone wanted was the ability to view PDFs in iBooks. Steve showed off a demo of both of these features and they looked great. This update will be available later on this month.

After a presentation from Netflix, who announced Netflix for iPhone, and Zynga, who announced Farmville for iPhone, Steve went on to talk about the current smartphone market share. Nielson released a new study and found that the iPhone is still leading with 35% and Android is trailing with only 9%. Steve also showed off some stats revealing that iPhone is also number one in mobile browser usage with 58.2% and Android at 22.7%. He went on to talk about how Apple re-invented the phone in 2007, and referenced a quote he made that year: "in 2010 we're going to take the biggest leap since the original iPhone." And with that opening, Steve announced iPhone 4 with over 100 new features. Obviously referencing the Gizmodo leak, Steve said, "I don't know if you've ever seen this", which elicited huge cheers from the audience.

The new iPhone is definitely gorgeous. It's glass on the front and back, and steel around the sides. It's a nice departure from the older designs while still being something that feels like it should be called an iPhone. iPhone 4 is also very thin, exactly 24% thinner when compared to the iPhone 3GS. It also has the front-facing camera. Steve claims it's the thinnest smartphone on the planet with a thickness of 9.3mm. When Gizmodo got their hands on the prototype iPhone there was a lot of talk about the seams along the side of the device. People argued that this wasn't really something Apple would do. Steve went on to explain that these seams or lines around the steel band are actually part of the antenna system, which should hopefully help us out with our reception.

The next item that they announced was the Retina display. They've increased the pixel density in this new display by four times. The new display has 326 pixels per inch, which is the highest pixel density of any phone on the market. Steve then showed off comparisons between the traditional display on the iPhone and the new Retina display. It's so clear that you basically cannot see any pixels at all. The specs on the new display is an 800:1 contrast ratio (4x better than the 3GS) and a 960x640 display using IPS technology.

iPhone 4 also has a new A4 chip, designed by their own team. They've also increased the size of the battery and are now using a Micro SIM versus a traditional SIM. There is up to 32GB of storage, quad-band HSDPA, dual mic noise suppression, and 802.11n WiFi. With the A4 chip and the bigger battery, battery life has definitely increased. Also announced was a new gyroscope, which is being added to iPhone 4. It's a 3-axis gyro which should give game developers much more accuracy when dealing with motion. This will translate into much more immersive and realistic game controls when combined with the existing accelerometer and compass.

Another big announcement was that iPhone OS has been renamed to iOS. After proceeding to going through most of the new iOS changes that we all knew about, Steve announced that iBooks would be coming to the iPhone along with the PDF and notes support that was announced for the iPad earlier. Along with this, iPhone users get the iBook Store. It was great to hear that we can download the same books to all of our devices for no extra charge. A great new feature as well is that iBooks automatically syncs your place, bookmarks, and notes.

After going through some iAd examples, Steve did his famous One more thing.... In 2007, when they launched the iPhone, Steve called Jonathan Ive to demonstrate the phone. This time, Steve did the exact same thing but demonstrated a video call. It worked great on stage and everybody was excited to see it in action. You can switch from the front to the back camera by just pressing one button. The feature is called FaceTime and you can only use it on WiFi when you and the party you're calling are both on iPhone 4. There is no setup needed. We were then presented with a commercial exemplifying how people would use FaceTime. The whole crowd nearly choked up when they saw the two people speaking in sign language on the phone.

Steve mentioned that there would be two colors, white and black. The pricing will be $199 for 16GB and $299 for 32GB. AT&T is allowing upgrade eligibility up to 6 months early. iPhone 4 will be released in the US, France, Germany, UK, and Japan on June 24. We then saw a video about how the iPhone 4 was made with commentary from the usual guys at Apple. After this, Steve thanked everybody who made this possible and ended the Keynote.

I thought I'd be disappointed that nothing else was announced, but I wasn't. There were no other hardware upgrades, cloud-based iTunes, no new Apple TV, etc. Clearly, iPhone and iOS was the focus of this year's WWDC and Apple seems to have done an amazing job the new iPhone. I'm excited to see how FaceTime ends up changing the way the world communicates with their mobile phones. People will say that this has been around for a while, but Apple is going to be putting it in the hands of millions and making it easy enough for anybody to use. Overall, I had a great time at my first WWDC Keynote. Hopefully, I'll be able to come see Steve speak again and announce a new product in only a way that he can.

Comment | 

June 7, 2010

Intrideans at RailsConf 2010

Mini

by Renae Bair

This year we have three Intrideans giving presentations at RailsConf 2010 in Baltimore, MD, as well as several other teammates attending the event. We're thrilled that our developers are active members of the Rails community and we support their endeavors to share their knowledge with the larger ecosystem. If you're at RailsConf this week, be sure to say hello to one of our guys, or attend one of their presentations:

Jeremy McAnally [view profile]
Presentation: Rails 3 Deep Dive
When: 1:30pm Monday, 06/07/2010
Location: Ballroom I

This workshop will tour through a number of advanced, in-depth topics on Rails 3. We’ll take a tour of many of the new additions to Rails 3, talk about how to exploit Rails’ new focus on Rack to your advantage, dig around in the source to really understand how many of the pieces work (and how to use that understanding effectively), and take a look at how to bring some common, advanced patterns used in Rails 2.x into the world of Rails 3.

Michael Bleigh [view profile]
Presentation: The Present Future of OAuth
When: 1:50pm Tuesday, 06/08/2010
Location: Ballroom I

OAuth 2.0 brings together many best-in-breed ideas for authentication into one specification, providing a powerful and flexible method for standardized authorization to RESTful APIs. Attendees will learn:

  • What the OAuth standard represents.
  • Who uses OAuth.
  • How OAuth 2.0 is different.
  • How to access resources from OAuth 2.0 compatible sites.
  • How to become an OAuth 2.0 provider.

Flip Sasser [view profile]
Presentation: Persistence Smoothie: Blending SQL and NoSQL in Rails Applications
When: 2:50pm Wednesday, 06/09/2010
Location: Ballroom II

Participants will learn about a number of available NoSQL persistence engines (including document-oriented databases such as CouchDB and MongoDB, key-value stores like Tokyo Cabinet and Redis, and more) and when they might be appropriate for a Rails application. In addition, attendees will learn good practice techniques for blending these systems together with traditional SQL for a “best of all worlds” implementation with real-world examples.

Comment | 

June 3, 2010

presently desktop

Presently Desktop App Now Available

_placeholder_profile

by Bhavik Shah

It's here! The long awaited desktop app for Presently is now available for download and is available for Windows, Mac, and Linux.

With the desktop app you can:

  • See real-time status updates from your co-workers, teammates, and groups.
  • Post messages, reply to others privately or in the public feed, and 'like' posts directly from your desktop.
  • Along with the normal feed, you can view Replies, Direct Messages, Group Messages, and view a list of the company directory right from the desktop app.
  • Detailed user directory shows list of users. You can also follow/unfollow directly from the desktop app.
  • Desktop app runs in the background and when a new message arrives, you are notified seamlessly. If you have Growl installed on your system, you'll be happy to know that the new Desktop app is Growl-notification ready.

The long-awaited release of our desktop app was entirely written using Appcelerator's Titanium Platform. It replaces the original Adobe AIR app. This desktop version of Presently is an extremely lightweight application and can do all the things you can do with the Web, iPhone and Android mobile app versions of Present.ly.

Click here to download the new desktop app.

If you're already a Presently user, just add your account information in the "Settings" tab of the application:

  • Account/URL (e.x: myaccount)
  • Username
  • Password

If you're not using Presently yet, you can sign up for a free account on our website and try it out. If you are interested in using a secure, behind-the-firewall instance of Presently for your company, you can read about the free trial. And of course, you can always contact us with your questions about Presently!

Comment | 

June 2, 2010

subdomain rails

Using BIND locally on OS X for easy access to subdomains

Mini

by Jon Kinney

With the advent of plugins like subdomain-fu, it has become quite easy to develop web applications that use subdomains. For the latest project I'm working on at Intridea, I need to allow clients to custom brand a web application with their company's look and feel; I chose to use subdomains to achieve this goal.

In a staging or production environment, this involves modifying the DNS and adding a wildcard entry that points all hosts to the primary domain. For example, most hosted DNS management systems allow for creating new entries via some sort of GUI as seen here at the name.com DNS management screen:

NameDotCom management console

In this case simply add "*" in the Record Host column, and the server's IP in the Record Answer column. Then with a slight modification to the VirtualHost:

ServerAlias *.appname.com

you're usually in business.

To develop and test the subdomain aspect of a web application like this, developers usually edit their hosts file locally and add an entry that piggybacks on the localhost entry. On Mac OS X the hosts file is found at "/etc/hosts" and the setup I described might look something like this:

127.0.0.1       localhost appname.local client1.appname.local

While this works for sites where there are only a few pre-defined subdomains, it is less desirable for situations where the application itself has the ability to introduce a new subdomain dynamically. When you want the app to be able to respond to any subdomain in development, it's best to setup a local DNS server that will be able to handle a request to any subdomain without the need to continually modify configuration files.

To do this locally on OS X I'll show you how to use the built in DNS server BIND. BIND should also be included with most flavors of Linux so this guide may work there as well, but there may be slight differences in the configuration files which could create small inconsistencies. Off hand, I know that OS X/Unix is pickier about tabs and spaces in it's configuration files whereas Linux, for the most part, will accept any formatting. Let us know in the comments if you are able to get this setup working in a Linux environment!

A few notes on the setup instructions:

You'll be editing files at the command line so make sure you are somewhat comfortable with Terminal before proceeding. As always, I recommend that you make backups of any configuration files you'll be editing so that you can reference or revert to them if necessary without digging around on another mac or the web to find a suitable restore file. You can backup any file by using the cp command and appending .bak (or similar) to the end of the file like so:

$ sudo cp /etc/named.conf /etc/named.conf.bak

You'll also need to have root permissions to edit the files referenced in this guide so to elevate your terminal session issue the following command (the rest of the guide will assume elevated root permissions):

$ sudo -s

BIND is disabled by default on OS X, but it's easy to configure and turn on. Follow these steps to a happier development environment.

  1. Create the "rndc" configuration file by issuing the following command:

    $ rndc-confgen > /etc/rndc.conf
    
  2. Create a keyfile that will allow the rndc client to talk to the name server and control it.

    $ head -n5 /etc/rndc.conf |tail -n4 > /etc/rndc.key
    
  3. Edit the /etc/named.conf file to add a zone for the application. The zone can be named whatever you want, I'll call it "appname.local", it looks like this:

    zone "appname.local" IN {
      type master;
      file "appname.zone";
    };
    

    and I placed it between the "localhost" zone and the "0.0.127.in-addr.arpa" zone in my named.conf file.

  4. To make sure the named.conf file is setup properly use the built in tool checkconf:

    $ named-checkconf /etc/named.conf
    

    If this returns nothing then the named conf file is syntactically correct.

  5. Create the zone file in "/var/named/appname.zone". It should look like this (make sure you have the spaces/tabs the same!):

    appname.local. 7200    IN       SOA     appname.local. root.appname.local. (
              20100601 ;    Serial (a date in this case)
              15      ; Refresh every 15 minutes
                3600    ; Retry every hour
                3000000 ; Expire after a month+
                86400 ) ; Minimum ttl of 1 day
                  IN      NS      appname.local.
                  IN      A       127.0.0.1
    *.appname.local.        IN      A       127.0.0.1
    
  6. To make sure the zone file is setup properly use checkzone:

    $ named-checkzone /var/named/appname.zone
    

    It should return something like:

    zone appname.local/IN: loaded serial 20100601
    OK
    
  7. After the zone file is setup you need to tell BIND to start when the machine boots. Issue the following command:

    $ launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist
    
  8. Set up your machine's network adapter's DNS to look locally so BIND will resolve first. On Mac OS X go to System Preferences and edit each network adapter that you use, modifying the DNS settings to have "127.0.0.1" as the DNS server.

    PICTURE OF AIRPORT SETUP FOR SNOW LEOPARD

  9. Finally startup BIND and Flush the DNS Cache:

    $ sudo /usr/sbin/named
    $ sudo dscacheutil -flushcache
    

    If the above commands don't seem to work then try rebooting your machine to make sure BIND is properly started.

Note: If you're using passenger locally on OS X you'll also need to modify your VirtualHost file to have an alias. I'm using the passenger preference pane which makes this dead simple:

PICTURE OF THE PASSENGER PREF PANE WITH THE ALIAS SPECIFIED

You can also edit the VirtualHost file directly and specify the ServerAlias if necessary.

You should now be able to visit any subdomain of your local app and have it resolve!

Comment | 

AuthButtons: Free and Open-Source Web Logo Icons

Mini

by Michael Bleigh

More and more web applications are providing external logins through sites such as Twitter, Facebook, and more. It can be a bit of a pain to assemble suitable buttons for all of these services to display as the “NASCAR box” of logos for users to click when signing up or on to a site.

To make this a little bit easier, Intridea is releasing a collection of free and open-source logo buttons for use, well, however you’d like, but probably for these types of authentication scenarios. This collection is starting with twelve buttons:

Logo Images

The initial set created are for Twitter, Facebook, Myspace, OpenID, Google, Yahoo, Basecamp, Campfire, Present.ly, Aol, LinkedIn, and GitHub.

This collection will grow over time as we get suggestions (or forks) of new iconography. The idea is simply to provide a clean, consistent set of icons that can be used to represent some of the web’s most popular services. Each icon is available in 32×32, 64×64, 128×128, and 256×256 PNGs as well as an Illustrator CS4 source file that contains all of the buttons and individual CS3 .EPS files that contain each button individually.

To see a full download grid for each icon, visit the GitHub Project Page. If you have a logo you’d like to see included, please add a request for it to the GitHub Issues Page

Comment | 

Words we've written view all blog posts »

Featured Article

Intridea at Lonestar Ruby Conference

by Renae Bair on August 18, 2010

For the third straight year in a row, senior-level developers from the Intridea team will be at the Lonestar Ruby Conference, on Thursday, August 26th, teaching students about Ruby. Students attending the Ruby Intrigue class will work with our Director of Mobile Development, Brendan Lim, our Director of Development, Adam Bair, and our Director of Research and Development, Pradeep Elankumaran. Continue reading »

Recent Blog Posts

FlockFeeds Launches From Node Knockout

by Intridea on August 30, 2010

Using NPM with Heroku Node.js

by Michael Bleigh on August 24, 2010

Fixing Common Bundler Problems

by Jerry Cheung on August 23, 2010