KinkyTwits - My ColdFusion And jQuery Powered Twitter Client (Beta)

Posted February 2, 2009 at 9:29 AM

Tags: ColdFusion, Javascript / DHTML

It's taken me a long time to actually get to this point, but I finally found the time to clean up KinkyTwits, my free ColdFusion and jQuery powered Twitter client. It's not the best application out there, but if nothing else, it has some pretty cool jQuery, ColdFusion API, AJAX, and JSON examples. Plus, it runs without a database, you can pretty much drop it on your ColdFusion server and it just works (I love me some portability). You can get the source code off of my KinkyTwits Project page.

 
 
 
 
 
 
KinkyTwits - Free ColdFusion And jQuery Powered Twitter Client. 
 
 
 

Some cool features:

  • Stores data in JSON files so it can run without a database.
  • Task Bar window tab displays number of unread messages since window lost focus.
  • Custom groups allow you to filter statuses based on regular expressions.
  • Custom groups have option to remove statuses from general feed. The more people you follow, the more essential the ability to weed out posts of non-interest (ex. Woohoo! Taco Bell for lunch!).
  • Groups get visually highlighted when they contain new statuses.
  • URL shortening service runs of an interface which means you can (programmatically) swap out different services, including professional ones what require a login and track clicks).
  • You can "snooze" users if they post annoying tweets (filters statuses into "Snoozed" group automatically for a given amount of time - additional hour per snooze).
  • Heavily commented code so you can easily follow the logic.

I am sure I will be making more updates to this over time. Since I first created the front-end for this, I have learned a lot more about some cool jQuery features; so, hopefully, I will begin to clean up the interface using things like the data() method and other good stuff.

Post Comment  |  Ask Ben  |  Permalink  |  Other Searches  |  Print Page




Learning ColdFusion 9 - ColdFusion 9 tutorials, samples, examples, demos

Reader Comments

Feb 2, 2009 at 9:45 AM // reply »
55 Comments

Congrats on the release Ben ... I know you've put a ton of time and effort into this project.


Feb 2, 2009 at 9:50 AM // reply »
16 Comments

Congratulations Ben.

You've put so much hard work into this, and I've been watching it ever since the first Alpha release. You should be very proud, and thank you for releasing it to the CF community.


Feb 2, 2009 at 9:50 AM // reply »
55 Comments

Excellent work, Ben!


Feb 2, 2009 at 9:58 AM // reply »
6,516 Comments

@All,

Thanks guys. When I first coded this, ALL of the code was in the public CFCs. It was a total mess. I then took it all and broke it down to having public CFC and cached CFCs. The public CFC do little more than handle the AJAX response and make calls to the cached service CFCs. I think it's a much cleaner architecture.


Feb 2, 2009 at 10:22 AM // reply »
3 Comments

You are a Coldfusion animal, nay, a jQuery animal. Really really super impressive work. Teach me! :P


Feb 2, 2009 at 10:27 AM // reply »
3 Comments

Thanks. Been waiting for this moment!

Suggestion: Put the app in a folder called kinkytwits under the folder called 2009_02_02, so that it's easier to unzip and move into a meaningful folder on our web-root structures.


Feb 2, 2009 at 10:32 AM // reply »
6,516 Comments

@jyoseph,

Thanks man, always glad to put stuff out there.

@Robert,

Sorry about that. I don't actually know great strategies for zipping. I never know if I am supposed to zip a folder or zip the contents of a folder. Then, when it gets unzip, do I zip to new folder?

The only think I know is that I hate when I unzip to a new folder (ex. site) and then I click into it and in it is another folder of the same name. Grrr! :)


Feb 2, 2009 at 12:13 PM // reply »
1 Comments

Tweet: I'm pooping....it's almost out....it's out....i'm flushing. Forgot to wipe.


Feb 2, 2009 at 12:15 PM // reply »
6,516 Comments

@Eric,

Ha ha ha ha ha.


Feb 2, 2009 at 2:45 PM // reply »
207 Comments

Post to RIAForge perhaps?


Feb 2, 2009 at 2:55 PM // reply »
39 Comments

Awesome Job Ben!


Feb 2, 2009 at 4:34 PM // reply »
74 Comments

Is there a page we can try it out on your website?


Feb 2, 2009 at 4:34 PM // reply »
74 Comments

Oh and good job btw D:


Feb 2, 2009 at 4:48 PM // reply »
6,516 Comments

@shuns,

You can't because it needs a username and password for Twitter. However, someone suggested turning this into a hosted service. Would be interested, not sure how that would work.

@Ray,

I'll try to rock that out tonight.

@Brandon,

Thanks my man.


Feb 3, 2009 at 8:50 AM // reply »
6 Comments

Wow.... awesome.

You're a machine!
;-)

Checkin' this out.


Feb 3, 2009 at 11:08 AM // reply »
177 Comments

@Ben: regarding hosted service - You just store the username/pass for the length of the session and don't store anything else but preferences in the db. Voila, hosted service. Now, I don't recommend this, but hey... there's a gazillion websites out there that follow this same model (twitpic.com, twittersheep.com, etc).


Feb 3, 2009 at 11:12 AM // reply »
6,516 Comments

@Todd,

I like the idea of a hosted service... but, if Twitter has problems with traffic and its their full-time gig - that doesn't bode well for me handling traffic as a fun project :)


Feb 3, 2009 at 11:16 AM // reply »
177 Comments

@Ben: Yup. Sounds about right. You'd have to have some kind of service that would monitor when Twitter was sucking and post a user to the message that twitter response time is slow as balls. Then again, none of the RIA twitter apps do. I think Twirl notifies me by saying that the API-usage got lowered, that's usually first sign of something going awry.


Feb 4, 2009 at 3:33 PM // reply »
7 Comments

Don't know how I missed that one, but excellent job!!!


Feb 4, 2009 at 5:01 PM // reply »
6,516 Comments

@Marcos,

Thanks man. Still working out some bugs, but its coming along.


May 6, 2009 at 4:34 PM // reply »
3 Comments

Wow Ben, this is really impressive!


May 7, 2009 at 8:25 AM // reply »
6,516 Comments

@Phillip,

Thank man :) In my spare time, I trying to revamp it again, although I don't have much time.


May 15, 2009 at 1:08 AM // reply »
7 Comments

Nice work!

One thing I noticed was in TinyURLService.cfc you were pointing to http://tinyurl.com/create.php and using regex to extract the url.

There is a TinyURL api which just simply returns the url, without tons of html. No need for the regex. Simply change create.php to api-create.php.
eg.
http://tinyurl.com/api-create.php?url=http://www.google.com
returns:
http://tinyurl.com/dehdc


May 21, 2009 at 8:24 AM // reply »
6,516 Comments

@Mike,

Thanks a lot. I thought there had to be a better API for the service, but couldn't find it.


Jul 20, 2009 at 7:18 PM // reply »
42 Comments

Arr is this for cfml 8 isnt it ?????????.
looks cool though. is their anything I can do or modify to make it work on 7. i feel left out, i want to tweet.

I keep getting error
Invalid token '{' found on line 26 at column 36

any ideas


Jul 20, 2009 at 7:31 PM // reply »
7 Comments

seems the problem is to do with the cf8/9 javascript-style create structs and arrays.

eg.
myStruct = {};
myArray = [];

try replacing {} with structNew()
and [] with arrayNew(1)
or upgrading to cf8


Jul 20, 2009 at 9:46 PM // reply »
42 Comments

can someone please post a modified Application page for use with cfml 7. I have been trying mikes idea. But i just cant get it. Or maby direct me to a good post on changeing the syntax to make cfml 7 friendly. I would love to go to version 8. But i have been working with gdiddy and they have set me up the most perfect cfml server. Flawless !_! so cant move


Post Comment  |  Ask Ben

Recent Blog Comments
Nov 20, 2009 at 11:32 PM
Five Months Without Hungarian Notation And I'm Loving It
I've used headless camel case for years for not only ColdFusion variables, but also SQL tables and fields... pretty much everything involving code. I also subscribe to the "don't abbreviate and clea ... read »
Nov 20, 2009 at 11:00 PM
Five Months Without Hungarian Notation And I'm Loving It
@Marcel, Yeah, I always err on the side of longer but more readable variable names. As for the camel casing of CF methods and the headless camel casing of custom items, I get around this by always ... read »
Nov 20, 2009 at 10:56 PM
Five Months Without Hungarian Notation And I'm Loving It
I use the following and love it: my.namespace.MyComponents.functionMethodsOrUDF() CONSTANT_VALUES_OR_PROPERTIES One thing I always try is to CamelCaseBuiltInColdFusionFunctions() so others can tell ... read »
Nov 20, 2009 at 5:38 PM
Learning ColdFusion 8: CFImage Part I - Reading And Writing Images
Hi Ben, Great article. I've been looking around to see if ColdFusion image engine can programatically create the following "wrap around" effect: http://www.creativepro.com/article/photoshop-s-she ... read »
Nov 20, 2009 at 5:35 PM
Maintaining ColdFusion Sessions Across SMS Text Message Requests Without Cookies
@Dave: I talked to Gert he suggested: <cfhttp method="get" url="http://{some cf website}" result="stuff" addtoken="yes" /> Note the addition of cfhttp attribute addtoken. That should persist y ... read »
Nov 20, 2009 at 5:23 PM
Maintaining ColdFusion Sessions Across SMS Text Message Requests Without Cookies
@Todd, Ahh, gotcha, yeah that makes sense. ... read »
Nov 20, 2009 at 5:17 PM
Maintaining ColdFusion Sessions Across SMS Text Message Requests Without Cookies
Ben, sorry if I didn't make this clear. You can make it work like that if you want, just put <cfset session.foo = 1> (and <cfset application.foo = 1>) in your OnRequestStart() and it reve ... read »