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  |  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 »
18 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 »
56 Comments

Excellent work, Ben!


Feb 2, 2009 at 9:58 AM // reply »
7,572 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 »
5 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 »
7,572 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 »
7,572 Comments

@Eric,

Ha ha ha ha ha.


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

Post to RIAForge perhaps?


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

Awesome Job Ben!


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

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


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

Oh and good job btw D:


Feb 2, 2009 at 4:48 PM // reply »
7,572 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 »
188 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 »
7,572 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 »
188 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 »
8 Comments

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


Feb 4, 2009 at 5:01 PM // reply »
7,572 Comments

@Marcos,

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


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

Wow Ben, this is really impressive!


May 7, 2009 at 8:25 AM // reply »
7,572 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 »
8 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 »
7,572 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 »
45 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 »
8 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 »
45 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
Mar 21, 2010 at 8:57 PM
The Bourne Ultimatum Starring Matt Damon And Julia Stiles
late to the party, but my observation is this: rewatch carefully for the platonic nature of the relationship between nicki and jason. she never flirts with him. he never comes on to her. they alway ... read »
Mar 21, 2010 at 7:40 PM
Is Simulating User-Input Events With jQuery Ever A Good Idea?
A couple of things. One you embed the initial state of of more-info in the CSS. IMHO, that behavior should be in jQuery: moreInfo.hide(); It shows that the behavior your toggling and closing is mor ... read »
Mar 21, 2010 at 3:59 PM
Exploring ColdFusion Component Runtime Class Properties And Serialization
@Elliott, according to Ben's experiment, serializeJSON() doesn't access the private data by default - it doesn't even access the getHair() method - so trying to clone a Girl.cfc via serializeJSON/des ... read »
Mar 21, 2010 at 3:49 PM
Ask Ben: Javascript String Replace Method
I'm confused a bit by what you are asking, but if had this sentence: The color, red, is in the style statement; style: red;. and wanted to remove all or change all of the commas, colons, and semi-c ... read »
Mar 21, 2010 at 3:13 PM
Ask Ben: Javascript String Replace Method
I am trying to make a java program to count the number of times that these punctuation marks occur in a body of text: , : ; . ! - ' " ? / \ I am using this piece to ferret out the commas: numcommas ... read »
Mar 21, 2010 at 11:13 AM
A New Wrist Pain
@chiropractor suwanee, Spoken like someone trying to sell something. Other than for minor, temporary relief from some back pain, chiropractic treatment is nothing but placebo effect and quackery. ... read »
Mar 21, 2010 at 6:32 AM
ColdFusion CFPOP - My First Look
Apologies... The field name in the db for C. is "BounceCode" It stores the code / message which is returned in the email. Sorry for the confusion. ... read »
Mar 21, 2010 at 6:29 AM
ColdFusion CFPOP - My First Look
@Jose Galdamez, Hi Ben and Jose 1st of all.. big thanks to Jose for his Skype chat a few weeks back. Your time was much appreciated. I have come up with a rather unelegant solution to my problem a ... read »