Live Stream LDS General Conference to Apple TV (Updated)

[Update 2]
The current version of iOS no longer needs this bookmarklet for video AirPlay streaming to work. Thanks to those who have commented.

[Update]
There was a problem with wordpress auto converting some of the single quotes in the code that you copy and paste. I have updated it and tried it again and it appears to work. Let me know if you have problems. Enjoy conference!

See all photos at the bottom.

This took all of the first session today, I finally got it working at the end of the last talk but I will be able to enjoy this for the rest of the sessions.

Please give me a link if this works for you as it will help to get the word out. You can link this page on your facebook or twitter but I would be happy to know if this helped other people.

Things needed.

  • iPhone(4?) – not sure if the 4 is required but thats all I have
  • Apple TV2

Verify that your network is setup correctly. You should be able to go to lds.org in safari on your web browser, and select to watch General Conference. This will will bring you to the page shown below.

From here you can click on the play button and it should start playing the video. At this point if your network is setup right and your atv2 is on, you should see the airplay button. You can then select to play on the apple tv.

At this point you will probably notice that only the audio is transfered and no video. This is the purpose of this post. To get the video to play as well requires the use of a bookmarklet. These are javascript applications that are run on top of an existing website (lds.org). What it does is tell safari to send not only the audio, but also tells it to send the video when you tell it to send to the apple tv.

To setup the bookmarklet open safari on your iphone do the following.

  • Open Safari on your iphone
  • Browse to this page
  • Copy the following code (notice it does not look like it copies it all, but it does)

javascript:d=document,e=d.createElement('script');e.src='http://bendodson.com/bookmarklets/ios-airplay.js?'+(new%20Date()*1);void(d.body.appendChild(e));

  • Open your bookmark menu
  • Add a new bookmark
  • Edit the bookmark url and instead of the web address paste in the code you copied before
  • Save the bookmark

Thats all you need to do to get the bookmarklet setup.

From here it is simple. Go again to lds.org, watch conference. When the page loads and you see the big play button on the video, before you click it, open up your bookmarks and select to open your bookmarklet (as if you were going to that bookmarked page). Instead of taking you to a new page this will reload the video. Once the play button appears again you will now be able to click play, select your apple tv to stream to and you are now enjoying the conference on your apple tv. You will probably want to plug in your iphone so it stays charged up while watching conference.

All the credit for this post goes to two sites, the first that had the solution, and the second which is more important, the person who actually wrote the bookmarklet. Big thanks to him!

http://leimobile.com/fix-airplay-audio-only-enable-any-html-5-video-over-airplay/

http://bendodson.com/weblog/2011/01/13/enabling-any-html5-video-to-work-over-airplay-e-g-vimeo/

Modifying Individual Corners of Rounded Rect in Fireworks

I came across this quick tip today that has just made my life much easier. When working with the rounded rectangle tool in Fireworks, after creating your rectangle you will notice there will be triangles near each corner. Click on them will modify all corners equally. You can drag it to increase the corner size, or click to change the type of corner. But I already knew that.

If on the other hand you hold down the option key [mac] or alt key [windows] then it will only modify the selected corner. This works for resizing and changing the corner type.

PHP function: implode()

I learned something new about the implode function the other day, namely that the order of the parameters does not matter. Ordinarily you would give the “glue” and then the array in that order, but the function will work the same if you provide them in reverse as well. I will just determine which is the string and which is the array and use the properly.

$glue = ",";
$array = array('hello', 'world');
echo implode($glue, $array) // echos hello,world
echo implode($array,$glue) // echos hello,world

iTunes 10.1 Supports AirPlay (Video), AppleTV Doesn’t

The other day marked an exciting update of finally getting the ability to use apples airplay for video. With the update of itunes to 10.1, the airplay feature now supports the new apple tv for streaming videos. The current issue is that apparently the apple tv does not support this feature. I will have to be unlocked via an update for the atv.

Why iTunes 10.1 was rolled out before the new apple tv update is anybodies guess. It could be due to iTunes 10 breaking compatibility with a lot of third party streaming servers such as freenas, and many others, and the need to get a fix out early for those users. Which as a side note version 10.1 does fix the issue of no longer seeing shared playlists from some third party server software.

Hopefully the apple tv will have an update soon to bring this functionality as well as fix a myriad  of other issues that plague the new atv.

PHP array_diff Quick Tip

When using array_diff in php be sure to remember that this is a one way comparison. While this is not news, it is an easily overlooked part of the documentation for array_diff. It took me a few minutes the other day to figure out why my code was not working.

What this means? If you have {a, b, c} in array1, and {c, d, e} in array2, than array_diff(array1, array2) would produce a third array with the values {a, b} and not {a, b, d, e}. If instead you are needing to get the second set, so all the values that are not in both, there are a few options. This was my solution, though I am sure there are better ways out there.

$diff1 = array_diff($array1, $array2);
$diff2 = array_diff($array2, $array1);
$final = array_merge($diff1, $diff2);

Google Voice text messages with iPhone

Well it appears I have finally got a somewhat functional way to get google voice (text messaging) and my iPhone to play nice together. The best thing is that I have to a degree, a form of push notification for text messages.

Since I am writing this from my iPhone, I will try to make it brief.

1. You need a gmail account, preferably one that doesn’t get any email.

2. You need an iPhone with iOS 3+.

3. You need to be able to add a Microsoft exchange account onto your iPhone. I think in iOS 3 you only could add one but in iOS 4 you can add multiple.

From there all you need to do is set your google voice numbers to forward text messages, and voicemails for that matter to the gmail address in step 1. Also make sure to tell it not to send the text. It should be a checkbox for if it’s a mobile number. Just check no and it will only email and not text it to you. The purpose is to avoid using text you have to pay for.

Then you will just need to set up your gmail account as an exchange account mail.

Use the following link to set that up.

http://www.google.com/support/mobile/bin/answer.py?hl=en&answer=138740

Once you have you email setup, you can set your options to enable push for your gmail. Anytime you receive a text message, it goes to your gmail which pushes it straight to your iPhone. On average there is about a 10-20 second delay from when it is sent and when I receive it.

But wait, how do you send messages you ask. There are two answers for that. First, the easy way to send a message is to reply directly in gmail inbox to the email/text. Google will figure it out and forward it on as a regular text message and the receiver will never tell a difference. Second, if you are initiating the text for the first time, unfortunately the only solution I have is to use the google voice web interface through safari. You can add an icon to your home screen to take you straight there to make the process easier, but after the first text it’s all handled though mail and super easy.

One last note, in email, it just shows the number and not the name. There is sort of a way to get around this although not fully tested. When you are viewing the actual email, the from address should be the phone number, if you click on it then it will show you the entire address which is a google voice address. You can select to add to an existing contact and then select who you want. This adds it as an potter field and then it will show the persons name when viewing the email.

The down side is that it still does not show the name when viewing the list of emails.

All in all I am loving the new setup. Would I give it up for a native google voice app? Yes. But for now, I get instant push notifications for all my google voice texts, I can easily reply, and I don’t have to pay for sending and receiving text messages. I will note that instead of text, it does use data, but so far and at least in my case it is much cheaper this way. Since I am not using fetch to constantly check mail and having it pushed instead.

Let me know if you decide to give it a try and how it works for you.

Happy texting.

The Chris Keefer Experiment: SEO

Over the past week a friend of mine has endeavored to increase his presence on the web with his blog. He decided to completely rework his blog from the ground up, geared toward better search engine optimization (SEO).

A big change that he has made is in the frequency of his postings which average 1-3 per day. Over the past week he has gone from a unknown page in google search to page one. Currently he has focused mainly on people who search his own name (Chris Keefer). It will be interesting to see how his blog continues to grow over the coming weeks and months and to see what other directions he will be focusing his SEO attentions.

If you would like to get a little idea of the inner workings of Chris, take a gander at his rebuild blog.

http://mynameisreef.com/

PS3 Home Update 1.36 Failure and How to Fix

If you are one of the users who has been trying to get into home recently, only to find out you need to update to 1.36 and while waiting for the download to start, your playstation instead decides to shut off, your in luck. Whew…

I have a fat ps3, you will notice that when you open up Home it will tell you that you need to upgrade. Dont press anything. On the lower side of your ps3 you will see the yellow Hard drive light flickering or on solid. You have to wait until it is no longer active before pressing (x). For me this took about 30 seconds or so. Once the light was off, the update worked perfect.

PHP error: expecting T_PAAMAYIM_NEKUDOTAYIM

I ran across this error the other day while setting up a nested foreach loop. When looking at the error logs all I found was expecting T_PAAMAYIM_NEKUDOTAYIM. Which was not very helpful. If you find that you have this error, try looking for a missing dollar sign “$” on one of your variables.

Hope this helps, happy coding!

Google Analytics Down…. Work around Fix.

The google analytics site went down today. Their is a quick and easy work around. It is really only the sign in page that is down right now.

Sign into regular old google.com. Once signed in, then type in the url google.com/analytics/reporting and you will be able to access your dash board.

Your Welcome!

Re-tweet or post a link to help get the word out!

Fix thanks to Colt…