Feed: RSS feed for InstantSpot site Blog of Dave - AggScore: 67.8
We had a great time Friday night with around 170 in attendance! Terry did a great job and everyone left hungry for the new releases that he teased. Here are some pics from the night.
Since recently installling yet another distro on my laptop, I was unable to get the FTP functionality of my webcam software (Camorama) to work properly. The program will save snapshots locally, but bombs on transfer. Rather than troubleshoot it to death, I decided to whip out a quick and dirty ColdFusion directory watcher event gateway and have it watch for updated images, and then push them to my webserver via FTP.
For anyone interested in this non-earth shattering bit of code, here it is. First I created a config file:
WebcamWatcher.cfg
# The directory we want to watch. directory=/home/dshuck/Webcam_Pictures # Do we want to recurse the directories? recurse=no # miliseconds between checks interval=6000 # The comma separated list of extensions to match. extensions=* # component method for change events changeFunction=onChange # component method for add events addFunction=onAdd # no delete events for now deleteFunction=
Now to create the methods in our WebcamWatcher.cfc. In short, either a changed file or an added file will trigger the putImage function which first creates the FTP connection, changes directories to my webcam directory, then pushes the file to the server. Here is the code:
WebcamWatcher.cfc
So, now the internet can yet again be graced with my "almost live" presence. I can almost hear the selective sigh of relief.
I have to consider this to be a somewhat odd place for ColdFusion and it got me thinking... What kinds of odd places do you or have you used ColdFusion?
The latest version of the ColdFusion Weekly podcast was released yesterday. Matt and Peter were kind enough to have Aaron and I on to talk about InstantSpot. This was actually our second time to have this opportunity, although we had *much* more to talk about given our experiences over the last 14 months since the previous visit!
We covered a lot of areas from how it all came about in the first place, to some of our trials and tribulations rolling out the latest release and all points in between. If you would like to hear some of our experiences and the technology behind our network, I urge you to check it out.
Download Version 3.02
I don't know how pervasive this point of confusion is, but today a regular face in the ColdFusion community was making some remarks in this comment thread and further on his InstantSpot site that InstantSpot is not a ColdFusion-based application, with the insinuation that he won't support our efforts because of this.
Just to be clear, no matter whether or not you actually see ".cfm" in the URL, we are running InstantSpot on Adobe ColdFusion 8, using Mach-II 1.6, ColdSpring and other community tools. We are strong advocates for ColdFusion, work with our local ColdFusion User Group, try to be evangelists for it wherever we can, and we will continue to do so.
If anyone is interested in creating an InstantSpot blog, we are opening up 5 new Spots today and would love to see some more ColdFusion peeps! Enter your invitation code on the main page. As soon as someone uses a code it's gone:
k7Nh92SwGEAGGH7Brs4DPq9aOUWKCEgGlepvefKv
Get 'em while their hot! :)
I have a new addiction playing with the style editor for my blog... I hate to call this a steampunk theme, simply for the inevitable flow of hardcore steampunk people coming here and telling me about how I don't know what steampunk is... so let's settle for pseudo steampunk shall we?
Regardless, at my current rate I will change it again in a few days anyway! :)
I was also told this week that I look a lot different in my picture than I do in person. I decided to add a headshot that says "Hey look... Dave was up all night coding again." I think it is fairly true to life.
On the most recent release of InstantSpot, we added in XMLRPC support so that blog administration can happen anywhere, using any client that supports XMLRPC. We are thinking it might be fun to create an AIR app for this purpose down the line (or better yet... someone else! hint...hint...), but until that time, there are a variety of clients that can be used, since we followed the MetaWeblog API standards.
I am actually trying this out for the first time on our live instance with this blog entry by using a *sweet* Firefox plugin called ScribeFire. Considering that we haven't really published this ability, I thought it might make sense to do a walk through of setting it up and using it.
First, let's walk through the ScribeFire Account Wizard. One you have installed the ScribeFire plugin (available here), click on the little text pad icon in the bottom corner of your browser window and start the Account Wizard. You should see a window that looks like the one below. Choose "Manually Configure" and continue.

You will then be presented with a number of options of various

On the screen you see below, choose "MetaWeblog API" and enter this URL into the Server API URL input box: http://www.instantspot.com/gospot/remote.metaweblogAPI
Leave "Advanced Settings" unchecked and continue.

On the following screen you will be prompted for your username and password. Since the new release of InstantSpot, your email address is now used as your username.

That's it! If you did this correctly you should see your blog listed in the following screen like this:

Now, you should see a list of your categories (labeled in the interface as "tags"), blogposts, and in the future, saved "Notes" which are drafts stored locally by ScribeFire to the right of the ScribeFire window like this:

From here, the interface is pretty simple. One thing that is noteworthy is that we even support the ability for you to upload and insert images through ScribeFire. When you click on the image icon on the editor, you will see a window that looks like this:

Choose "Image Upload", then after browsing to your file, select "Upload Via API".

When it completes you will see the following window. Choose "Insert Image" and you will see your image inserted into your text.

Now you can start posting away to your heart's content!
Powered by ScribeFire.
We finally called it a night about 4am after flipping the switch to the new InstantSpot. There have been relatively few surprises so far, and the application is just purring along.
Due to MUCH heavier caching in almost every nook and cranny of the application, we are using substantially more memory than we were on the old system, as was expected. With all the caching, the overall speed difference is quite noticeable and the act of sitting and watching the processor performance is a much more pleasant experience!
Thanks to those that have submitted bug/enhancement requests. We are working through the queue as fast as we can. If you are an InstantSpot user and run across any problems, look for the link to submit tickets in the control panel and let us know.
In the past 7 months, Aaron and I have completely rewritten InstantSpot from bottom to top. It was a much more clear and direct path than when we started with the original version in 06. In fact, we never even planned on networking the sites together in the first place, and adding blogs to them was an afterthought, which is hard to believe in hindsight!
Around the beginning of summer 07 we decided to step back and evaluate, which lead to a rewrite of the entire application. We originally thought about replacing pieces here and there, but pretty quickly realized that it would be much smarter to start with a blank slate, now that we actually know where we are and where we are going, and could take advantage of all the things we have learned since we started. It has been a *huge* job, and I think we can pretty easily say that we have more development time put into version 2 than we did in version 1.
We are trying some interesting stuff with this version in all areas, from the decision to use Railo as our CFML engine, opening up XMLRPC for desktop blogging, in place editting on blogs, much broader friend/networking support, and lots of ajax around the edges primarily using Jquery. And, for those that have always hated the blog comment activation -a couple of names stick out in my head at the moment! :) - we have retooled that process. Now, if you are not an InstantSpot member, you will be prompted to confirm your email address *1 TIME ONLY* across the entire network. From then on, you will not have to activate on each comment. For instance, if you comment on my blog and validate your email address, you can hop over to Aaron's blog and leave comments on his which are automatically activated. (and check out the ajax stuff in that process!)
With all of that said, I expect to be blogging about our experience of the new server and migration in the next few days. We feel like we have been meticulous with our planning, but we all know that sometime surprises happen. We will be making the DNS change tonight and migrating all the production data. Our DNS TTL is an hour, so for many people the change will show up almost immediately.
If you are an InstantSpot user and want to see a preview of what your site will look like today before the switch, shoot me an email at dshuck+instantspotpreview@gmail.com and I will give you instructions.
One last item - Today is the last day of open enrollment to InstantSpot as we will be going to an invitation-only model on the new version. If you want to go create a Spot, now might be a good time.
Now... we have our fingers crossed for a smooth migration. Wish us luck!
Aaron and I are currently hard at work busting out the next version of InstantSpot which we hope to launch on our 1 year anniversary in September. As part of this major rewrite, we decided it is time to have a complete redesign done of the main InstantSpot site at www.instantspot.com.
If you are interested, please contact us using this form.
I finally decided that I was tired of my right-justified canyon-dust colored theme and decided to try something new. This is the first time that I had made a new skin on my Spot since Todd Sharp (www.cfsilence.com ) created ISDX - The InstantSpot Design Exchange.
I started out by pouring through OSWD and found a skin that struck me, then pasted the CSS into the editor on ISDX. I then went through the file element by element and hit the "Preview on my Spot" link to check my progress. Then when everything seemed to be where and how I wanted it, I hit the "Apply this style to my Spot" link in the preview.... and.... Bam!
I am still not completely settled on the header image. I am sure I will plop a few different things in there over the next day or so
Big thanks to Todd for creating such a cool interface that makes InstantSpot skinning so easy!
OK, I will admit that I am standing in the front of the line of those who don't really "get" Twitter. However, I clearly recognize that I missing something that a number of people seem to love. With that said, we decided to add Twitter support into InstantSpot. Now you can automatically update your Twitter status as you submit blog entries from your InstantSpot control panel.
Below are a couple of screen shots of how it works. First, we added a new link above the editor that says "Update my Twitter status" as you see here:
When you click that we pop open a new div with a form for inserting your email address, password, and Twitter status message as you see here:
Cool eh?
If any of you InstantSpot users would like to see further Twitter functionality let us know. If there is any interest in more features, we are always open to requests!
As I posted recently, I have hit my stride again doing the 4-hours of sleep per night thing and coding like a junkie does smack. Of course this only occurs when I am not at my 7-4 day job, my 1-hour commute, spending time with the family, taking care of the yard, Jeepin, etc... so about 15-20 hours a week!
The biggest recipient of this newly regained vigor is InstantSpot! This week, Aaron and I finally rolled a couple of pieces that we feel really pushes InstantSpot to the next level when it comes to the "social" part of being a social network. That is... actually being able to communicate with other members!
You see, until this week, we kind of half-way had the concept of "Friends" in place, which was fine except that it was almost impossible to figure out how to have a friend, and then once you had one... then what?
Around January, we partially answered this question in the form of the "Shoutbox" on each Spot's "My Friends" page. This work was in large part Aaron's contribution, and came out pretty sweet!
So... with that piece people with extraordinary IQs were able to have conversations with their equally smart friends who all must have magically figured out how to befriend each other!
Now, bringing us to today, with a lot of banging out new code this past week, Aaron and I put some sweet new features in place that we feel is going to really help the growth of our little Spot!
First off, we finally found a way to manage friends in a reasonable fashion. Now, any user can easily request to be added to other member's friends list. We added this in three places (that I can think of at the moment!): 1) On the My Friends page, which you see in the screen shot of Aaron's Spot. 2) On the Friend Activity page, which is basically an aggregator of your friends' blog activity. Here's mine. and 3) in our new feature that allows private messaging through our system.
Now on all the Spots (including mine if you look at the top of this page) there is a link in the browser bar that says "Send a Private Message!". You can click that above to see how it works. In case you are not an InstantSpot member and you see the login/join buttons, it looks like the image on the left to the rest of us. From that form you can send a message to anyone on your friends list. And they will receive an email notification in addition to a notification message (example here) that appears on any Spot they are visiting.
We put some features in the Control Panel to manage all of this, including an Inbox (screenshot here) and another private messaging form that has the same functionality as the one at the top of each Spot (screenshot here).
So with that I think we are going to call it a week and knock out the final touches (thanks in large part to some VERY reusable code!) on our newest project --- a cousin of InstantSpot called ResumeSpot. I am sure I will be yapping about that one soon! :)
Since we started InstantSpot, one feature in particular has been less than ideal as a techie-type user has been posting code into your blog entries. That ends today!
As was announce on several blogs a month or so ago, the EverFro team has put together a cool resource for sharing code with other developers called codeShare. Their service allows people to submit code through a form, and then let other developers view it and submit comments to it via a public URL.
Considering our needs and their new service, we thought it might be interesting to team up to create a nice way to publish code in blog entries on InstantSpot. After some discussions, we co-developed a web service for them that allows people to submit code to their service remotely via an API, and specifically from our blog entry form.
The way it works is pretty cool, making use of both Web Services in ColdFusion and more of Rob Gonda's AjaxCFC (which I continue to love!). When one of our users adds a code share, it will automatically add them as a user to codeShare if they are not already a member. If they are already a member the code will be added to existing account's shares. This way they can go modify or notate their code at anytime by visiting codeShare.
Here are some screenshots of the process:
In our blog entry form in the control panel we have a new link above the editor "Insert code to this entry".
When you click that link, the editor window slides down and exposes the codeShare interface which allows you to paste in an publish code:
When that is submitted, the following is displayed:
As you can see in that response, you can preview your code like this. You can then paste the codeshare tag anywhere in your entry (multiple code shares are acceptable in a single post), or by hitting the "Insert into your entry", the tag will be inserted and the codeShare interface will disappear.
So what did we create? Well, now I am going to paste in that bracketed codeShare tag.
[codeshare janca423]
Keep your eye on the codeShare project. They have some other super secret alliances in the near future that will also make use of the submission API!
