flickr

Oregon Coast Vacation Oregon Coast Vacation Oregon Coast Vacation Oregon Coast Vacation Oregon Coast Vacation Oregon Coast Vacation Oregon Coast Vacation Oregon Coast Vacation Oregon Coast Vacation Oregon Coast Vacation Oregon Coast Vacation 

twitter

    Mar 07 2008

    iPhone Dashcode Updates - First Impressions

    Posted by blackice912

    Today I looked at the new iPhone features built into Dashcode, Apple’s development environment that was originally created for Dashboard Widgets. Upon loading the application, I was presented with three new iPhone development options: Custom, Browser, and RSS.

    Development

    Snippets Mobile in Dashcode

    While Custom is going to give you a blank template to work with and Browser gives you a basic list view for you to fill in with your own content, the RSS template provides you a pre-coded environment to add your RSS feed and publish to your website. Today I decided to make my own iPhone version of this website.

    Just like creating a Dashboard widget, you have the ability to change fonts, colors, image, and much more. Using the predefined template, I modifed the colors and background to match the look and feel of the full site you’re probably viewing this on right now. Having only used Dashcode once before to create a Podcast widget for OS X, I found no issues creating a mobile website for the iPhone. All the menus and toolbars are the same, though the library of items you can add to your mobile site are different (for good reason, of course).

    As you develop your iPhone mobile RSS page, you can test it inside of the Aspen Simulator — an iPhone running on your computer (I mentioned this in the last entry). Each time I made a major change to the operation of the mobile page, I would click on the Run button, view it inside the Simulator, and operate it just like it’s on my mobile phone.

    Deployment

    Snippets in Aspen SimulatorOnce I was satisfied with my changes, I went to the file menu inside Dashcode and clicked on the Deploy option. I then chose to save it to my desktop where I would be able to take it and upload it to my website.

    After upload it to the labs.blackice912.net site, I decided to launch it on my actual iPhone to see the results. It turns out the results were pretty bad. No news loaded at all. I then tested it inside the Simulator and got the same results. Why was it working on my computer but not once I published it to the internet?

    Well after activating the debug mode inside of Mobile Safari, I found out why. As I should have remembered, you cannot have JavaScript on one site grab data from another site. It is cross site scripting and can be considered dangerous. Realizing this, I moved the code over to blackice912.net and launched it with success.

    So are there ways to use a RSS feed that is hosted on another site and use it? With the addition of PHP, yes you could do this and not run into that issue.

    Conclusion

    Apple has really done a lot of things right with this new SDK. While I still need to do some more investigation into the native application side of it, I am impressed with what I have seen today. You can really create a powerful web application with the SDK today and an even better one once the 2.0 firmware hits phones in June.

    If you’re interested in seeing the mobile site I created, visit blackice912.net/mobile on your iPhone/iTouch or in Safari. It will not load properly in any other browser!

    Mar 04 2008

    Trixbox: Intercoms, spooking intruders, and scaring friends

    Posted by blackice912

    While I’m not writing this to inform you about ways to scare friends and family, the title could be true if the following idea was used in a sinister way.I am working on creating a very clever security system in my apartment. This is mostly for fun, but it does have practical applications. More on that when I spend more money on the project.

    As a part of this security system, I want the ability to talk (or spook) to whoever is in my apartment. If I get a message that my door has been opened, I want to give the intruder the sense that there is someone around and completely aware of what is going on. There are other practical applications too, such as monitoring kids while you’re away to make sure they aren’t in a yelling match or make sure the babysitter isn’t being a bad example.

    I figured the best way to provide an example of this was to show it in action. I have recorded a video which shows me calling a telephone number and Trixbox kicking into action. I will explain how this is done after the video:

    (Either JavaScript is not active or you are using an old version of Adobe Flash Player. Please install the newest Flash Player.)

    So how does one pull off something like this? Well first you need to make sure that your Trixbox has an inbound telephone number (you can get a cheap 800 number from sites such as Vitelity) so that you can actually interact with your system. Once you have that figured out, you need to add a custom extension in the extensions_custom.conf file. An example entry would look something like this:

    [custom-intercom]
    exten => s,1,Set(__SIPADDHEADER=Call-Info: \;answer-after=0)
    exten => s,2,Set(__ALERT_INFO=Auto Answer)
    exten => s,3,Set(__SIP_URI_OPTIONS=intercom=true)
    exten => s,4,ChanIsAvail(SIP/4587&SIP/9321,js)
    exten => s,5,Macro(user-callerid,)
    exten => s,6,Dial(Local/4587@from-internal,,A(beep),)
    exten => s,105,Macro(vm,4587,BUSY)
    exten => s,106,Wait(5)
    exten => s,107,Macro(hangupcall,)
    exten => s,hint,SIP/4587&SIP9321

    In the above example (which was originally posted on the Trixbox forums by another user), 4587 is the extension I am calling and putting into speakerphone/intercom mode, while 9321 is the extension I am calling from.

    After you have the code added to extensions_custom.conf, you must add a Custom Destination. If you were to use the above code, your custom destination would be something such as:

    custom-intercom,s,1

    Now you can finish up by adding a new inbound trunk and setting the Caller ID Number to your mobile phone number and setting the call destination to your new Custom Destination you just setup. This will make sure that calls will only go to intercom/speakerphone mode when you call and allow all other calls to route normally.

    The above method is pretty secure unless someone figures out your mobile number and the phone number associated with Trixbox, as many VoIP services allow you to enter fake caller id information (which can be useful in the correct and honest conditions).

    If you have questions or corrections to this entry, please let me know by leaving a comment. Also if you’re tempted to call the number listed in the video: I registered it for this video and it has since been decommissioned.

    Filed under : Code, Projects, Services | 2 Comments »
    Mar 03 2008

    Protect against bots and help digitize old books

    Posted by blackice912

    If you have tested the latest addition to the labs (see: New lab added: Live Mail), you would have noticed that there is a captcha (human verification) used to protect against bots creating e-mail addresses for worldwide domination. I could have created my own captcha in PHP, but I decided to use reCAPTCHA.

    reCAPTCHAWhat’s so special about reCAPTCHA? Well in addition to protecting your registration, comments page, e-mail address, or wiki, it also helps the Internet Archive with it’s project of scanning old books for reading and archiving. Every time you use reCAPTCHA for verification, you’re helping to correct a word that was scanned into a computer but could not be read correctly by that system’s OCR (Optical Character Recognition) software.

    If you’re interested in helping out a great site like the Internet Archive, I’d suggest checking this out. reCAPTCHA is compatible with various development languages and web applications such as WordPress.

    Filed under : Code, Opinion, Services | No Comments »
    Mar 02 2008

    You don’t need dedicated hardware for Trixbox

    Posted by blackice912

    Trixbox TerminalOn a previous entry I spoke about Trixbox and how you can turn it into a weapon to protect yourself against unwanted calls (see: Trixbox can help stop those annoying calls). Though Trixbox excels at disrupting incoming calls from telemarketers on dedicated equipment, it also works decently well in a shared environment.

    As my cell phone is all I need for making calls these days, I don’t have a standard telephone connection in my apartment. Regardless, it can be nice to have the functionality of Trixbox so I currently have it installed on a Windows XP box that acts both as a casual gaming computer and a Trixbox PBX using Microsoft Virtual PC 2007.

    Usability

    If you have no need to keep your PBX server running 24 hours a day, a shared computer is a cost effective way to go. While the hardware you’re running it on and amount of free memory can provided mixed results for the response time to your commands on the web-based interface and playback of built in audio files/voicemails, the actual call quality is just like any other installation - crystal clear.

    To actually handle my calls. I have an Aastra 480i CT and a few cordless handsets. This phone is a great multi-line device with a full screen that can pull up custom designed web pages (once used to remotely control my iTunes software). I had no issues with getting this device to talk to the virtual installation of Trixbox, as Virtual PC 2007 acts like it’s just another computer out on the network by having a unique IP address that is not affected at all by the host computer’s firewall. The 480i CT also excels at plug and play in a Trixbox environment — I just had to tell Trixbox to assign the phone’s MAC address to a specific phone extension. After that I just plugged the phone in, waited a minute for it to boot up, and watched as it gathered the configuration data from the server.

    So a question in my mind as I write this is: Would a software based phone provide the same amount of quality? I can’t see why not. As long as computer resources don’t put an intense amount of strain on both the host computer and the virtual PBX server, it should be fine. Or you can pick up a cheap GS-101 if you don’t need a fancy phone, but prefer using a handset over a computer microphone.

    Connections

    When I had a full PBX server, I had a FXO card so I could interface with the standard POTS (phone company) line and a VoIP link so I could get to the outside world when the POTS line was in use. In my current setup I just have a VoIP link.

    Could the FXO card work in a virtual server setup? I can’t really answer that since I don’t have the FXO card installed in the computer, but I tend to be thinking that it could not work. Virtual PC 2007 shares various types of hardware - keyboards, mice, audio cards, and display adapters…but it does it in a way that you have to use specific Virtual PC drivers to access some of that hardware to get the most use out of it.

    Virtual PC 2007 comes with special drivers if you install a Windows based operating system inside of it that will improve the speed and functions of that virtual operating system. As Trixbox runs in Linux, we do not have the option to take advantage of those drivers. Thankfully Trixbox is aware enough to access the virtual network card and other basic essentials.

    So until I have the chance to install the FXO card again, that will be a mystery…but not an issue. My VoIP link is all I will ever need for this system.

    Right now I have VoIP service through a company called Vitelity Communications. While their initial startup cost is higher than many other providers, their call and telephone number rates are some of the best I’ve found. The initial cost (as of this post) that gets turned into an account credit is $35. You can also add an 800 number for around $0.50 a month.

    Setting up Vitelity inside of Trixbox is the same as configuring any other VoIP service. You add a trunk (SIP or IAX) with the specific login information that your VoIP provider supplies you and route calls through that trunk.

    Issues & Reliability

    Now, as I mentioned earlier, there are issues with the output of voice prompts and voicemail messages. When you play back a voicemail or try to navigate through an IVR, the audio is playing back at about half the speed it should be. I recorded an example that you can listen to below:

    (Either JavaScript is not active or you are using an old version of Adobe Flash Player. Please install the newest Flash Player.)

    Other issues, such as internet latency and issues with your host operating system, could also cause issues with your call quality and VoIP server performance. If you’re going to use a PBX server for full time use, I would recommend dedicated equipment and a FXO card to connect your system to the local POTS service.

    Virtual PC 2007, while an excellent free application from Microsoft, is not without fault. While so far I haven’t run into any serious issues, I did notice that if I interact with the application (right click on its icon, for instance), the virtual operating system will stop processing any functions. This can cause some issues (such as with the system time), but hasn’t been something that I have had to worry about yet.

    Summary

    If you’re interested in testing the waters of VoIP and Trixbox, this is the cheapest way to do it. You’re not going to get the best setup and you may run into issues like I have spoken about above, but it could be a good starting point to see if you’re at all interested in building a dedicated box and routing your calls full time over Trixbox.

    Also the best support you are going to get for your Trixbox installation is at the official forums. There are many highly skilled and certified Trixbox users there who know more about the system and how it works than I ever will.

    If you have any questions or corrections to something I have mentioned in this piece, please leave a comment and let me know.

    Filed under : Projects, Services | 4 Comments »
    Mar 01 2008

    New lab added: Live Mail

    Posted by blackice912

    Today, after much work to convert my code that relied on Neowin’s backbone to help control the system, I have added my system which ties into Windows Live Custom Domains (see: Windows Live Custom Domains Is Cool) and allows you to create a custom e-mail account that is powered by Windows Live Mail.

    This registration application gives you the chance to see how you can integrate Windows Live Mail into your site by giving your visitors an e-mail address that has some relation to your domain. At Neowin we provide a variety of domain name choices for members and some exclusive ones for subscribers. All of our e-mail domains have the Neowin name in them and provide recognition of our site to the users who exchange messages with these e-mail address.

    If you don’t want to invest resources into running a full e-mail server but want to offer extra site service, Custom Domains is the way to go.

    Feel free to give the Live Mail registration a try at the labs site: Live Mail @ blackice912 labs

    Feb 15 2008

    Netvibes Ginger: Early Impressions

    Posted by blackice912

    NetvibesFor those who are unfamilar with the website, Netvibes is a place where you can bring your RSS feeds together, add some special Netvibes widgets, and put them all on a stylish homepage. Using Netvibes, I am able to view all the headlines from my favorite technology blogs, have a section of my favorite bookmarked sites, see if there is any new e-mail in my Gmail account, watch the financial market, and see what TV show is airing tonight.

    But Netvibes can be much more than that. It can allow you to search various types of content (blogs, images, video, and so on), help you keep track of your calendar, monitor your Alexa ratings, track down deals on craigslist, integrate social networks, show the latest videos from partnered websites, and so much more. I have barely touched on the amount of content available to Netvibes users.

    The previous release of Netvibes, which is when I joined, was code named Coriander. When it comes to function, Coriander performed mostly the same way as Ginger does. At this stage in its life, Ginger redefines the style of Netvibes. The interface to add new content to your page has cleaned up considerably as the entire top portion of the site gets taken over by the Add Content interface when you select that menu option.

    Aside from the menu interface, the main content section where all your feeds and widgets appear received a face lift with a re-designed border for each content block. Also for the RSS feeds, you can share a RSS entry with your friends as a favorite item. These items marked as a favorite will appear in the Activities menu at the top of the screen.

    Then there is the new public Universe screen, where you can create a content page that can be shared by all viewers. All they have to do is enter your Universe URL and they are shown the custom page and all RSS feeds/widgets you published to that page. I haven’t had time to create a Universe page as of yet, but you can see my blank Universe here.

    This weekend I plan on looking deeper into the new menu system and adding some content to my Universe page. If anything interesting comes out of it, I’ll discuss it here.

    Filed under : Services | No Comments »
    Feb 14 2008

    Netvibes told me to say it: “I HAZ Ginger!”

    Posted by blackice912

    Netvibes Ginger I’ve been given access to the private beta of Netvibes Ginger. From the start I can already tell you that the UI is a lot sharper. I’ll give a more detailed review of this beta after I have some time to test it out.

    Filed under : Services | No Comments »
    Feb 07 2008

    Trixbox can help stop those annoying calls

    Posted by blackice912

    Trixbox, built on the Asterisk PBX system, is a great VoIP solution for a variety of people. For the casual user it can help you manage your calls by either routing based on the time of day or forwarding a call from your home phone to you cell phone to keep that conversation going without having to hang up and call again. For the business user it can help you route calls between various departments and keep track of average call statistics.

    Whatever type of user you are, you can agree that automated unsolicited calls are best left away from your telephone number. With a simple Trixbox server, you can accomplish this.

    With some basic used equipment or a cheap new system, FXO card, VoIP adapter for your phone, and a few MP3s, you can setup a system that will trick the autodialer to think someone picked up the phone. By the time the person on the other side picks up their phone to begin the sales speech, they are listening to your music on hold while your actual phone rings. This will most likely confuse the caller and they will hang up. I have personally tested this on a user who normally receives many unsolicited calls, and their unwanted calls dropped dramatically. Sometimes a few rings got through, but the calling party usually hung up before you ever had a chance to look at the caller ID.

    Once you have your system setup, you can easily expand it to provide more features, more phones, and even handle more calls. As an example: Say your child is talking to their friend on the phone, but you need to make a call out and don’t want to use your cell phone. Well if you setup service with an online phone service, you can have outgoing calls route over it if your main line is busy. You could have it also route calls in to your residence, but you would also have to invest in a monthly telephone number.

    Product Links:

    Support Links:

    Filed under : Business, Services | No Comments »
    Feb 06 2008

    Try The Open Source Flash Video Player

    Posted by blackice912

    While I am not a big video posting person, I was made aware about the open source FLV player through a colleague of mine that had customized the style of the player. Had it not been for the information obtained when you right clicked on it I would have been fooled into thinking he wrote it from scratch.

    This player, designed by Trent Tompkins, is a very easy way for those of us who aren’t Flash designers to get our content out there while making the wrapper (player) around our content look good at the same time.

    As a test, I recorded a short clip, converted it into a FLV file, and uploaded it onto this site. Below are the results:

    (Either JavaScript is not active or you are using an old version of Adobe Flash Player. Please install the newest Flash Player.)

    The video may have been a little dark (my fault, poor lighting) and a little spooky, but it took me a few seconds to make the video, a few more to convert it, and no more than a minute to upload and add the code above!

    So for those of you who are looking into dipping your toes into video content publishing, I advise you take a look at this excellent player.

    Filed under : Code, Services | No Comments »
    Feb 04 2008

    Windows Live Custom Domains Is Cool

    Posted by blackice912

    I am a big fan of Windows Live Custom Domains (WLCD). Microsoft’s custom service is basically a way for you to offer members of your website a custom e-mail address that identifies them as users of your website. It can also be setup so only you can hog it all to yourself and share with nobody, but what’s the fun in that?

    WLCD allows for three methods of e-mail address registration: Open, Manual, and SOAP.

    With Open registration you can create a link on your site to a form hosted by Microsoft that walks the user through the creation of an e-mail account.

    With Manual registration your domain is locked down. This means that nobody can create any e-mail addresses except for you inside of the admin panel. There is no real advantage to this unless you only plan to setup a few e-mail accounts.

    With the Simple Object Access Protocol (SOAP), you have the power at your fingertips. By locking your domain name down to prevent open registration, you can have your users sign up through your SOAP-based registration page. This method gives you a great deal of power on who you want to give registration access to and what domain names you want to offer them.

    Example Registraion Page With SOAP
    Above: Neowin's WLCD registration page using SOAP as the backend

    Since we are communicating with Microsoft’s service using the XML commands they have designed, we can build a complete e-mail management system around that tool. Over at Neowin I designed the system so you have to be a registered member of the site in order to have access to a Neowin e-mail account. Also, depending on your membership level, there are various domain names to pick from.

    Once a user fills out the form and submits it, our code connects to the Microsoft servers and pushes the XML request for account creation. If the server replies that the account has been created, we inform the user and instruct them on how to proceed next. In the code I wrote for Neowin there is also a local database where we keep track of the e-mail accounts created, as we are limiting one account per user. If a user were to try and register again, they would be blocked.

    So, what’s a good way to do this in PHP? For Neowin I am using NuSOAP. It is a script that helps you to build your XML queries and process the returned ones. Also by looking at the website it looks like the project is dead based on the last updated news entry, but the download page shows it was last updated in November. Do you need NuSOAP? No, as it is completely possible to perform all the XML processing yourself. In a few cases I actually had to write custom XML as NuSOAP wasn’t sending the data correctly.

    So if you’re in the market for a service to provide to your users, check out Windows Live Custom Domains.


    Alternatives

    So what if you are not a fan of the Windows Live services and want to go for an alternative, such as Gmail? Because while WLCD is free, the Gmail counterpart is going to cost you $50/year per e-mail account (unless you fall under the Educational rules). Why Google decided to charge for their API is beyond reason, but it puts access out of reach for the average website administrator/developer.

    Filed under : Services, Websites | 1 Comment »