 It's just a quick general overview of different ways you can use different tools to bring your app to the wall space. So we're in Trinity as well, just like we need to be kind of over-enforced in research and stuff like that. So I should just care about mobile. There's an estimated 2.9 billion global users in the world. That number is actually expected to double by 2011. And over time, we've been quite knowing mobile users are just part of the US community. And that's why it comes from the US population. And also in developing nations, it's important to note that a mobile phone is sometimes the only way to connect to the internet. So we kind of want to make sure that you can reach these people. So here's the mobile stats. I just want to use this cool little graph right here. So you can see, plus the 7 billion world population, mobile users, people with 9 billion, and those mobile web access, about 1.3 billion. I think it's gotten a little further up since because these stats were from 2008 as well. But the question here is, how do we actually take advantage of this? How do we actually make it so that people can actually reach their application and interact with it in different ways? That's not to say how the mobile device and some sort of internet application. So you don't want to make your application accessible by the majority of web-enabled mobile devices out there. I say web-enabled because I'm talking about a lot of the new phones that are coming out that can actually view HTML and access that HTTP and are not just limited to the cloud. So you can also keep users engaged to SMS and SMS in email. There's a lot of apps out there that allow you to post updates, photos, things like that. Through SMS, email, all that stuff. That's also important to note that in a lot of foreign countries we actually use SMS more than potential voice. It's a good, easy thing to leverage. So many mobile devices can actually view a web. Like you mentioned before, we're going to be talking about devices that can actually get HTTP and aren't limited to web pages, as I know it goes there. So you can see icons on the pre-conceived page and the library on the Twitter. So one web. One web is essentially trying to make the same information and services available to all users as far as what device they're using. It's a pretty tough thing to do because there's a lot of factors that you have to deal with. Some problems with one web. First off, resolution. There's a lot of different controls out there, you know, different screen resolution sizes. You want to make sure that everything's good to properly reach the device. At least try to get us to do that. JavaScript and Flash. Not all of them support that. Connection speed. Processing speed. You want to make sure that you keep the amount of things that the device has to load to a minimum. So here's a point on the road called mobile foo. What it does is it can detect users on a mobile device. It gives you the ability to add custom styling based on the device, not based on the configuration. And it gives you some other tools to make the concept of one web a lot easier to tackle. So how does one master mobile foo really co-alternative? It's really simple. All you have to do is just add and add mobile foo in your application controller, just that one line which is started. So here's a little example of dealing with just a regular HTML formatted login page, whereas the iPhone's view in the mobile template makes specification for the iPhone. The foo's going to check a request header and say, okay wait, this iPhone is raging as mobile web fit in it. Let's set this format to mobile. And with that, you're going to need to actually create these several views. So you're going to need a mobile layout and just the mobile view there for any session. So there's some extra hope for some mobile foo. Like this right here allows you to just show the XHTML file type. It's important to do this because some foo's, specifically the iPhone, if you don't do this sometimes the foo page will actually appear zoomed out. And it's also good to have the XHTML. So that's actually what it spits out. And the link down there is to check it out. It's a comparison that shows you all the different tags that are supported by all the different XHTML types. It returns to your foo's whether or not the device viewing is a mobile device. You can actually check for a specific device. So this is good to hear some of the lab players don't support jobs or things like that. And you can also check to see if you're currently in mobile view. Remember to request one guy to do this mobile. So right here mobile foo actually uses a modified version of their authorized files. Which is written by Michael Bly. He's actually an entry employee as well. So this is your massive style sheet foo. On your iPhone and Android it'll actually be a build-up for foo mobile webkit. And if it's there it'll load that you can add your override stack to make custom interfaces for mobile webkit. Blackberry is worth Blackberry and on this mobile it's a mobile explorer. So to actually change this I didn't actually make it on that customizable. You can actually do it on this foo as well as yourself. So that's something I definitely have to do recently. So you can see presently on Blackberry and presently on the iPhone. And that's just one of those stunning specific changes since they're both actually being used as a page in all of these. First off there's SMS. We all know about SMS, short method service. So how do I actually keep users informed of SMS? Well first off, they're normally read by about 94% of their recipients. They're supported by the most of the phones out there. So if you don't have them, that supports SMS. You'll probably get them very well thrown. It's good for quick notifications. Just to say quick, this is generally limited to high-resistant characters and it's actually really easy to leverage. So what tools can we use to send SMS messages from our Rails app? A way. It's a paid solution. It uses Click-A-Till DPI. And last but not least, it has about 4 cents per text message within the US and they support a lot of different countries. And you actually don't even know the recipients' carrier which is quite a nice thing. You'll see later on. So here's a little quick example. The quickest example of how to use Click-A-Till service. You can go ahead and authenticate. Then you go ahead and provide the message right there with the phone number and your message. But SMS through, it doesn't cost anything. Mainly because it just uses ActionMailer to send a text message. So it's actually sending an SMS as an email. The one thing is you actually do need to know the recipients' carrier. I kind of looked into that. You actually hold the carrier without having that specified but there's no reportability and all those things now. So you can't really just go by the phone. But I'm pretty sure there's a screenshot there somewhere. And yeah, not as many supported carriers as Click-A-Till. But the good thing is that it's easily customizable. You can easily add on new carriers. I'm going to show you how to do that. But first of all, it's free and it doesn't work. Here, you know the person's phone number and you know their carrier. So right there, the phone number 505-1875-309. They put that in front. And it may even be Verizon's SMS or text messages. It's just vtext.com. So all you have to do is just put half SMS through in one of your controllers and fire off delivered SMS, phone number, carrier, and your message. And it's actually good to queue this up or something since it actually will block your browser class since it is actually just sending out the email. So here are some SMS free carriers. This is just a small list. There's actually quite a few more and there's a lot of international carriers that's important. Things like that. And here's an example of how to actually add your carrier. So you want to go ahead and add a really bold name. We just opened up. Under carriers, we just add Ruby Mobile, the name. So it'll be all nice and pretty in a select box that we can display and special domain value right there. So as we have that, all you have to do is just fire deliver SMS, number, Ruby Mobile, and your message. So if it was free for you, make sure that you let the users know that it actually could cost them money. I actually found this on Twitter. It's called Twitter gone bad or something. So if I could have a look at that, it would be bad. SMS. It's next to multi-media message service. SMS, you can send photos, video, audio, text, and media. And it's most commonly used for photos, though. The attachment size is generally limited based on the actual device itself. It has multi-part lines, so it's just an email and we can treat it the exact same way. So as you can see right here, this is one from Sprint. Sprint is limited on top, so for all these different carriers, it's just a big thing, but so there's some tools that can actually help us with that. I'll go to that and put it off for this. So how do you receive that? I don't have a lot of posts. I actually have really mess with that much and mainly because it's pretty expensive. There's lots of others that, you know, can be used to receive SMS or MMS messages from mobile phones. You've probably seen a lot of ads, like, oh, get free ringtones or jokes every day. The one I'm at is something like that, two, four, one, a lot of them, whatever. But yeah, those are short codes. Also, I've heard some short numbers. MMS support added this year. It's pretty expensive. Monthly fees, you get $1,000 a month. Set of fees, plus $5,000. And many companies actually share short codes, mainly because of the cost. So how that works is they each have the same short code, but they each have their own unique keyword or end part that users would have to repack the messages. And I know there's actually a few solutions out there. I know it's, I think it's had, it displays ads and things like that. For us, I think it's text marks. I haven't had a test code yet, but it's worth looking into. So receiving SMS or MMS as an email is another solution and it's free and it's also pretty simple. Like with SMS moves, so if you were to actually send them an SMS, you can actually discuss where you're from across. And if you were to just have them reply first and back to that, we can receive that. And parse out what they want to send in. So one gem that I really like is MMS2R. It removes carrier advertising, the default text that you saw, decos and extracts and tentative files, fromable to part of my email. And many carriers are actually supported. So here you can see, and there's one line right here, actually just retrieves all the media files with MMS. The really cool thing that MMS2R can do, though, is actually retrieve the intended attachment that the user actually wanted to send and that huge example would be the cap. And as the message, as the body, you actually get the intended body result, it's really, really, really helpful. This right here, I'm sorry for throwing a big bunch of code up there, but it's really simple, like that simple, dirty way to actually retrieve another MMS or something like that that someone sends to your application through ActionBailer, so this example, I'm actually pretending that hey, this is like a site like Tumblr or something where we're selling consent to an email and we're actually getting the user base on their phone address. And we're taking that email, stripping out the message of the subject and the attachment they sent and actually storing that in like a blog post or something. So first off, in there, I actually get an MMS tour media outlet based on their phone address, so also there's anything to send email, but let's assume that they are for this example. So right here, we're just giving a new blog post. The body, it's going to be the body that an MMS tour works out from the MMS. The title will go ahead and make that a subject. And MMS tour will actually rip out the default carrier on the subject as well. Then with that attachment, say we're using my attachment for your paper clip and we're going to create a blog photo if it's an image. And lastly, I want to go ahead and encourage all the temporary files used for the taxing attachments. So actually adding new templates for carriers is easy from the MMS tour. All these templates, there's a bunch of them from all these different supported carriers. You can see right there, you can see this is for Helio. What images that they should ignore what asymmology ignore man what text to actually extract from the message that would actually be the intended body. It's easy, there's a lot of tool stuff there. I'll just give you a couple of them. There's stuff like Rails IUI, they can actually use that with mobile food and create a custom Rails interface while doing stuff with lab or anything like that. So this is where you can grab everything, mobile food, click it, tell us through MMS to our forked mess with it, make it better. And I've actually got a lot of time remaining. So you guys have any questions? Is your assistant cookie base? Is your assistant cookie base? In mobile food? Yes, there is. Are there a lot of phone phones for cookies? How do you handle that? If you want to even fork in...