Feb 5, 2013

I used WebSockets with a Reveal.js presentation.

Apologies that may find me diverting from the normal topics of this blog (which I've failed horribly at keeping up) but I had a interesting solution and thought I'd share how I over came it.
We're still working out some of the logistics within our new headquarters at work and one of those items to overcome is no VGA input to the LCD in the conference room.  Typically if we want to share content on a laptop we have to boot up a GoToMeeting to get it to the screen.
My presentation had a lot of code examples which I knew from previous experience that small text and a putting it up on the big screen via a remote session doesn't always work well.  I also wanted the presentation in front of me so I could actually project to my audience.  Finally I wanted to give Reveal.js a try.  Reveal.js is a javascript framework for building slide decks using HTML.  If you'd like to give it a try, here is the demo page.

I've done a lot of research lately in regards to Peer to Peer protocols and actually created what I think is a pretty sophisticated set of classes using Flash and Adobe's RTMFP protocol.  The idea hit me as I was preparing this presentation that it would have been really cool if I could use those classes to sync the screen between browsers who have that presentation opened.  But since reveal.js as a lot of cool mobile support built in it would be event COOLER if I could use this to present from a tablet.

I did some research to see if I was just missing the HTML5 equivalent of RTMFP and it turns out I have been.  A new spec for PeerConnections is coming to HTML5 and is already in the latest builds of Chrome/Firefox/Opera but there's no great getting started guide on it.  Any thing I found kept mentioning websockets which is great but websockets are built more for client / server environments, not peer to peer.

Alright, I do know websockets and it would make what I want to do so easy but I don't want to do a lot of work to get a websocket server up and running.

What has been my go to solution lately? Adobe AIR.

Started to research building a quick websocket server using AIR and I found Wouter Verweirder's AIRServer.  Its a great set of Actionscript classes that combines several protocols that behave similiar to websockets.  So I grabbed it, copied the example and quickly the little bit of code.  All I wanted was the server to receive a message and spit it back out.






So from there I could compile it into an AIR app, run it, find my IP, open my computer's firewall if I needed to and be set with a server!



Next, I wanted to hook up the presentation.  First I added a hidden slide below the title that would allow me to make myself the presenter.




Finally adding a splash of javascript to hook up the presentation to the server.




Note on line 6 to update the IP to the IP from my websocket server.
Boom.  Now I can control and see my presentation from a mobile device.

May 17, 2010

What is Dynamic DNS?

First a step back.


Communication on the internet happens because every end-point has an IP address. IP addresses are like phone numbers on the internet. But IP addresses such as 192.168.245.123 are a little hard to remember for every website you visit so we have domains and hostnames. In order for an IP address to be associated with a hostname a computer will ask a DNS server (or Domain Name System server) which resides somewhere on the internet what IP address is associated with a certain hostname. When one DNS server doesn't know how to answer a specific request, the DNS server is setup to ask other DNS servers for help.


Now we have 1 problem. Say you want an easy way to access your home network. Different routers will allow you to access different items within your home. But because your IP is constantly changing due to how your ISP's network works, you can't easily setup a traditional DNS record to associate the IP address your ISP gives you.


Enter the invention of Dynamic DNS. Services such as no-ip.com provide your router a way to edit DNS records on their DNS server when the ISP assigned IP address changes. You put in your account information, the DNS record you want to keep up to date and the router does the rest.


So if you need remote access back to your network check out the following websites. Both provide free dynamic hostname options and are supported by most home router manufacturers:
http://www.no-ip.com
http://www.dyndns.com

May 7, 2010

What is a good mouse for those with wrist pain?

A couple months ago I asked myself this question. As most people know, I've suffered from chronic wrist pain in both my wrists. I've had to do a lot to get through some of the pain. Yep, I most certainly have the highly recommend star ship enterprise keyboard aka the Microsoft Natural keyboard. I've had that keyboard for years and has greatly help putting my wrists in a more natural position when I type (imagine that).

Around the same time I bought the keyboard I also bought a Logitech mouse that I thought would be a good ergonomic mouse. It did help a little with the pain in my right wrist but eventually it got to a point where I knew I needed something different. So I did some research. I saw all sorts of mice and read reviews giving one opinion or another.

Some say that trackballs are the best for wrist pain. Eh. I'm not really interested in that learning curve.

I found some mice that look more like a joystick to keep your wrist in a more vertical position. This seemed like a good idea to me except that it was very bulky.

Eventually I found the Evoluent Vertical Mouse. After reading a lot of reviews of people who saw improvement and decrease inflammation after a week or so of use, I decided to get it. It's quite pricey but when you're talking about pain, you're left with little choice as to what you're going to do.

After receiving the mouse I found it a bit cumbersome at first. Its a large case that requires a rather large hand to use. And as the other reviews said, it will force you to learn to use your shoulder to move the mouse. Myself its more of a shoulder and wrist movement, but its more natural movement. Instead of first twisting your arm to allow for more constricted space for your nerves, the Vertical Mouse gives you that natural position and nerves have more space. More space equals less inflammation.

After learning how to use the mouse, I was very happy with it. If you are suffering from pain caused by inflammation, you need to give this mouse a look. Everybody is different but I feel this is a safe bet if you're looking for something to help the pain.

Below I've listed a way to look at the wireless version. Feel free to take a look at the other reviews and see if its something that would help you.

May 6, 2010

Apple vs Principle

With the recent passing of my desktop computer and the diminishing health of both of our laptops, its becoming clear that my wife and I are going to need to get a new computer soon. That said, I'm at a loss as to what I should become serious about purchasing. I love Apple computers. I'm typing this up on a true soldier, my old iBook from well before Apple could spell Intel. I also love the macbook pro I use for office work.


But I feel its coming down to principle. You know the recent news. Apple has made a bunch of big moves recently to say "Screw you world, do things our way". Examples. There are the changes to the iPhone/iPad developer stuff making it illegal to make iPhone/iPad any other way than the official Apple way. And there's the news today that they denied an app from the App Store that used multi-touch to browse photos stating that only official apps are allowed to do that. Those are just two brief example. Come on Apple, these are just silly.


So what do I do? Jobs, I think your laptops are great. I want one with reliable hardware and good battery life. I've also already invested in Logic for my recording software and don't really feel like investing in another product. That said, you're a jerk.


Alternatively we could go ahead and get a Windows based laptop that costs a lot less. There are a lot of options and I'm sure we could find one at a decent price. However you get what you pay for. My HP desktop lasted less than 2 years with less than frequent use. My wife's laptop has been having power and screen issues for quite a while now and its about as old as my laptop.


Where to go from here?

May 2, 2010

Why is Google Voice so awesome?

I'll admit that I barely use the Google Voice service's feature list. I don't really need another phone number nor all the call routing. The thing I love about this service though is the voicemail. Its feature packed and even more so since I have a phone with the Android OS.


First, a recent feature that Google implemented is being able to use your Google Voice voicemail as your primary voicemail on your mobile phone. Setup is easy. Just hit settings which should land you on the phone tab. Next to each of the mobile phones you have setup you should see a link to "activate" or switch that phone's voicemail. It will guide you and about a minute later the swap will be done. You can do this to multiple phones and combine all your phones' voicemails.


Now it operates just the same as your old phone voicemail. You can call it and get your voicemails (lame). Why lame? Cause there are other ways to get your voicemail now. Log into your GV account in your browser and you get the transcript along the recording in an easy to use fashion. Or if you're using a Chrome browser you can install the extension to get continual access.


OR....


The Android app gives you the same in a fashion that rival's the iPhone's visual voicemail. The Google Voice kicks the iPhone's butt because it gives you the transcript. As a message is playing back it highlights words as you read the transcript which helps with those hard to decipher recordings. Of course its not exact so if you can't understand it there's a good chance the servers at Google can't either but between the two you should have a good idea what the other person is trying to say.


Another cool feature is the free SMS. Doesn't sound like such a big deal but if you're on a budget you can make sure that your friends send you SMS messages to your GV number and not see a charge. And just as it is with the voicemail you can do this from the web, Chrome extension or Android app. On the Android app if you start a text message it will ask you if you want to use the phone's messaging service or Google Voice's.


The last feature I will bring up is the call blocking. I don't know about you but I still get a lot of 800 numbers calling me. I refuse to answer them. After they try their ploys to get me, I can log into Google Voice, see my call log and hit block on those 800 numbers. The next time they try to call they'll get something that sounds like the phone company's "We're sorry, this number as been disconnected" message. I know its fighting an uphill battle but gives me more piece of mind when fighting against people that are wasting my minutes.


Most of the other features are advertised a lot more and you can easily learn them from the Google Voice site. You can see them here.

Google Voice


Regarding the RT contest on Twitter, I will pick a random retweeter Monday May 10th.


EDIT: I'm going to extend the contest to anyone who "Likes" my page on Facebook. I'll combine the two lists and draw a random winner. Thanks in advance! Hopefully the link below will work.
Chad's Brain Dump on Facebook.

Apr 15, 2010

Why I choose a Canon camera

Most people that I talked to when finding their first SLR their question is "Do I go Canon or Nikon?". Online research will lead you nowhere because they're both great companies that make great cameras.


Both companies offer a ton of choice when it comes to the camera bodies, lenses, flashes and other accessories. There is no lack of options to give you the perfect combination for your photography.


So for me my decision came down to past experience. My prior camera was a 3 megapixel Canon point-and-shoot camera and I personal felt it had great color saturation. After digging through a lot of the customer pictures on Amazon I found that the trend continues with their higher end products (as one would expect). When I looked at the Nikons, although I thought they took excellent pictures, I didn't feel they had had the same color saturation. So really it comes down to artist influence. My recommendation for you is to try and get your hand's on a friends SLR whether it be a Canon, Nikon, Sony, etc and just see if it works for you. If you can't get the color you like or if the flash doesn't seem to accent your subject just the way you want it, etc., then move on. When I tried the Rebel, I loved it and that's what I went with.


Apr 10, 2010

To those who side with Apple because of issues with Acrobat

(in reply to a comment thread on Facebook)


Its interesting to hear that people have been having issues with Acrobat. But do I follow the news regarding Acrobat much? Actually, not at all. My focus has been in the Coldfusion/Flex area of the Adobe product line. I use CF to produce PDF's all the time for different client senarios and not once has anything every come back to me about PDF's causing such problems. When setting up these PDF's I'm testing on my screen which I believe is running at 1920x1200 and never experience an issue nor have I seen it lock up my computer.


Regarding the licensing issue, yeah, the CS products are really expensive. It something that business have to deal with. I would love to have a copy of Photoshop and possibly Dreamweaver but the budget won't allow for it. I get it. But honestly, are we not talking about SOP for any major software vendor? I do know in the recent past Adobe has done wonders to make licensing easier for companies. Now the EULA for CF includes the ability to use the key for an unlimited number of development boxes along with bonus licenses for another install of CF in the cloud. Also I know a lot of their EULA's allow for a second installation of their software for home use.


I can only say good things about the CF/Flex people at Adobe. They're all about their customers and are constantly thinking of new/easy innovative ways to make the like of a CF/Flex developer easier. And unfortunately this issue with Apple vs Adobe has directly effected the areas of Adobe's business I use daily.


With the increasing demand for mobile content many in our community were rejoicing when Adobe announced stuff like the SWF to iPhone compiler and AIR to run on the iPhone/iPad. This move really hurts the App Store and iPhone/iPad users as developers across the board may start to give up on development for these Apple devices because as many have described, the technologies/languages that Apple has made available to develop their apps are quite illogical. That's why other companies have developed other products like Titanium mobile and Phonegap. Plus with the rise in the number of Android devices out there, I suspect that many will focus mobile efforts elsewhere.


As far as mobile browsing to deliver content, it seems Apple is depending on the HTML5 standards that are still unknown to many. A quick search over at amazon shows that authors aren't going to get books out on the topic until this summer.


All this to say, sorry about the issues with Acrobat. Hopefully one day the Acrobot team will hear your cries.