Saturday, December 12, 2009

Yahoo! Pipes


My Pipe pulls from 3 different RSS feeds and filters them by content. It displays only deals that contain a mouse. I am shopping for a new mouse right now so I can use this to find the best deals without having to visit 3 different stores.
I could add more feeds but I have found that these 3 sites almost always have the lowest prices on computer hardware. Those sites are NewEgg.com CheifValue.com and Buy.com.

Here is my Pipe.

Google Chrome OS


I downloaded the pre-Beta release of Google Chrome OS and am running it in a Virtual Machine on my computer. My initial reaction is that it maybe too light weight. Everything is web based. There is no access to your local file system that I have found. Everything will be stored on the web. The image to the left is a screen shot of the Chrome OS main menu. All of these "Applications" open in a new Chrome (Web Browser) Tab.

The light weightiness of this custom linux kernel is great for light weight netbooks or older laptops that are not as fast as new dual core laptops. Here is a link to a youtube.com video about Google Chrome OS. The concept of a completely cloud dependent computer seems a long way off but Google plans to release Chrome in late 2010. There are several issues that they need to over come before this OS will be used by the masses.
1. Connectivity - To log on to their computers users must have a constant internet connection everywhere they want to use their computer. Many new netbooks are shipping with 3G cards built in that will solve this issue.
2. Drivers - Google must work with manufactures to come up with standard drivers to work on their OS. A big problem is with printer drivers. Each manufacture has their own proprietary drivers. They might be able to tap into CUPS which is an open universal printer driver developed by Apple that works for linux.
3. Cloud Acceptance - Google has to build up confidence in the Cloud. GMail and Google Docs have had outages in the past. It is crucial for the cloud to be dependable all the time for this to be a viable option.
4. Web standards - Many websites use additional programs or plug-ins to make there apps work. For instance Flash, Java VM, Java FX, Microsoft SilverLight, and Adobe AIR are all add ons to web browsers. These plug-ins allow for lots of awesome interactive content. Google might be able to get these companies to develope these for Chrome and build it into the browser. On the other hand HTML 5 is close to being released and it supports much of this sort of functionality in a web standards way.

Some other screen shots of Chrome OS:



Thursday, December 10, 2009

What is Skype?

Here is a video Betty made for Wordia.com. Currently wordia does not have a mechanism to allow us to upload definitions to words not in their corpus but they plan to have that feature in the near future. For now check out the video here and maybe in a few months you can watch it on wordia.com

Wednesday, November 18, 2009

iPhone Web App Development


I have been working through a tutorial that Jonathan Stark put together that explains how to customize a web page for an iPhone. The beauty of this solution is that the site will function and display normally for anyone accessing it with a desktop browser but for someone on an iPhone or and iPod Touch the experience will be customized. This is made possible by CSS (using some WebKit) and JavaScript (using some JQuery).

Here is my Index page of iPhone Web Apps. Note: you need to access this with Safari Mobile to see the cool iPhone App look.

Tuesday, November 10, 2009

Net Neutrality

Net Neutrality is a complex issue that can have huge implications on the information age that we live in. Currently all information online is treated the same way by ISPs. This means that your internet service provider does not give preferential treatment to certain types of data such as email, video streams, or bit torrent traffic. Similarly ISPs do not give preferential treatment to specific domains. Without net neutrality laws there is a possibility that ISPs could block or limit access to certain domains and give faster access to others that pay them more money. For example, if my local ISP (Charter Communications) is paid by ABC to have their website delivered to me at 10mbps but NBC does not want to pay Charter then Charter could limit my connection speed to NBC to 1mbps or block them altogether.
This is dangerous! The internet has brought us into a global economy and if ISPs are allowed to block certain domains or businesses then the internet will become fragmented and it will destroy the very concept of open information that can be accessed from anywhere.
If you would like to get more information about Net Nuetrality or if you would like to join the debate go to www.savetheinternet.com/faq.

Thursday, November 5, 2009

New Apple Mac Mini Server


I work for an accounting firm and we are purchasing a new Apple Mini with 2x 500gig HDDs and Snow Leopard server installed. This will be replacing 2 older dell server boxes. We will be testing this box for performance and stability over the next few months. The unix OS should be perfect for our needs. We will be running a Ruby on Rails application.

Wednesday, November 4, 2009

iPhone Dev Websites

A blog discussing best practices in general for web development. It also has some good points about using special css for people accessing the site via iPhone.

knol.google.com

----------------------------

Here is some good documentation from apple about how to configure the view port on the iPhone. Safari looks for a meta tag to set the view port.
<
meta name = "viewport" content = "width = device-width">

developer.apple.com

----------------------------

Here are some suggestions for working with css on an iphone.

eisabainyo.net

----------------------------

This web page displays a bunch of different components that display differently with browsers that use webkit vs non webkit browsers. It give an example as well as some instruction on how to code for it.

lipidity.com

----------------------------

iUI is a framework for developing web applications for the iPhone that look like native apps. It uses JavaScript and CSS as the framework.

code.google.com

Monday, November 2, 2009

Findability: beyond just google-binging it

According to Peter Morville at findability.org, "findability refers to the quality of being locatable or navigable. At the item level, we can evaluate to what degree a particular object is easy to discover or locate. At the system level, we can analyze how well a physical or digital environment supports navigation and retrieval."

This sounds like a fairly vague definition and a very hard concept to measure. Do you quantify this by how much money it takes to find an item or maybe how much time it takes? It is probably easier for a mechanic to find a wrench in a workshop than a stay at home mom who never had shop class. Does that mean the wrench is easy or hard to find? These are a few questions that I do not have answers for right now.

I do know that SEO, usability, information architecture, and accessibility are all related to findability. The goal of a website is to deliver information. The concepts of findability make it easier for search engines to crawl a website and return relevant search results. Also if a user directly accesses a site and wants to find some piece of information they want the site to be laid out thoughtfully and for it to be very usable. The information architecture needs to be clearly defined so that they can find something quickly. This is where web standards come into place. If a website is designed using web standards there should be a straight forward way to navigate the site and find information or in other words the site should be accessible with different browsers and also different technologies such as screen readers for the blind.

JavaScript iPhone Web App

We wrote our first iPhone web app in class on Thursday. It was a simple app that utilized JavaScript to register which way the iPhone was oriented. We the iPhone was turned to the right or the left the accelerometer registered the change and the text on the page was updated to show which way the screen was oriented.

I added a few lines of JavaScript to have the screen display when ever the page is first loaded. That way the user doesn't have to turn the phone to get the orientation to register.

Here is the JavaScript code to make it work:

Thursday, October 22, 2009

Best practices for producing and distributing video on the Web

Say there is a company that has produced a great how-to-video on making widgets. The next thing they need to think about is how they are going to publish or distribute this video on the web. When posting videos online there are a couple of things to consider. First what is the goal of posting it? Is it to start a viral marketing campaign about a social issue or is it to provide a service on the company's website to draw more people in? And secondly, what kind of web server does the company have and how knowledgeable is the webmaster? The answers to those questions can help the company decide whether to host the video on their on server or post your video to a sharing site such as YouTube.

Benefits and concerns of a company hosting its own videos:


Hosting your own video can draw more visitors to your site, enable you to customize how everything on the page looks, and one can choose to sell ads or not. There are a few things that need to be in place before this is a viable option. First, you have to know how to work with the video files if you are going to host your own videos. The webmaster will have to encode the video into a different format to incorporate it into the website. For example a lot of videos are edited using mpeg or avi but to put them on the web in an easily usable form they need to be in Flash (by Adobe) or Quicktime (by Apple). Most web videos are streamed using Flash. The second thing to consider is can I afford the bandwidth? Video files are large and require a lot of bandwidth to host.

Search Engine Optimizations tips:


Limit each page to one video, allow the URL to be specific to a video, place all videos in a central folder/directory, use an embedded player in the page instead of a popup, use text on the page to describe the video, use tags and meta tags to help search engines, submit the video to Google sitemaps to help speed up the indexing of the video for search, and allow users to share the video with friends by providing the url or providing social networking links.

Benefits and concerns of a company posting videos:


Unlike a hosted solution that requires video conversion, the posted solution takes care of converting the video files, and they pay for the bandwidth. Also, most of these sites, like YouTube, MetaCafe, or GoogleVideo, have a good reputation and a large user base that is constantly watching videos and sharing the videos with friends. This is a great solution for any type of viral marketing campaign. Popular YouTube videos are tied into universal search (incorporated into Google "web search", people don't have to be specifically searching for videos to be shown videos on that topic ) in Google which is a great way to publicize a video. Going with a posted solution however, you lose the full customization over the look of the page and whether ads are shown. In most video sharing sites, ads are displayed. Some ads maybe images or text but some maybe videos that play before your video is shown. In some cases this could be an ad for a competitor.

Search Engine Optimization tips:


Post your website URL in the description of the video, create your own account/channel/brand to allow people to follow all of your videos and any future updates, use your url in a watermark in the video because these might be copied and posted elsewhere (it is viral), allow comments and ratings to generate user excitement and discussion, and use tubemogul.com to upload the video to all major sharing sites and see analytics on those videos. TubeMogul looks like a very powerful tool for businesses or individuals to track videos all over the web.



Information from ReelSEO

Thursday, October 1, 2009

SaaS

Software as a Service is a solution for businesses to use a hosted solution for their software needs instead of running local copies of similar software. This allows the company to focus on core business and let another company focus on what they do best - software and IT management. With typical software the vendor sells the product and then it is up to the customer to manage the installs and update the product. With SaaS all of that is taken care of on the vendor side since the software is hosted and run off of their servers. When the client logs in they will automatically get the latest version. The original player in this field and one of the largest is saleforce.com. They are a CRM provider.

There is a free service called ajaxWindows that is a java and javascript based web application that functions and feels like a virtual OS. It looks very similar to Microsoft windows and allows users to fully customize their desktop. It is integrated with google docs as well as zoho. These web applications open inside of ajaxWindows which all works inside of the browser. It really does make the browser a platform. It does not matter if you are on a windows or mac computer.

Google docs is a wonderful set of web applications. I have used it many times to collaborate with team mates on trivial to complex group projects. It makes it easy to collaborate and it keeps a full record of each edit to the document. On one document we had nearly 1000 versions and it was easy to view and revert to any of them.

One of the biggest drawbacks to SaaS for most people is their worry about reliability. Since the service is hosted the client is completely reliant on their internet connection as well as the server health of the host, both of which the client has no control over. Google has tried to tackle this problem with their gears software which allows some offline functionality of web applications. It keeps a local copy of any changes and then when the internet connection is restored a sync is performed.

Hulu.com

I have been using hulu since it was in beta back in 2007. It is a great service. I hardly ever watch regular tv anymore because I can watch what I want when I want on hulu and it is free! The commercials are also much shorter than what is on tv. One of my favorite shows, The Office, is on Thursday nights during our class time so I am able to watch it the next day on Hulu.
Hulu must have some big server farms. For one, all of their videos are flash videos. I am not sure what format they recieve the videos in from the networks but I would venture to say that it is not flash. They must have a lot of CPU power to convert the videos to flash. They also require a lot of bandwidth. Almost all of their videos are available in 480p which streams at 1000kbs. They also have a few videos in 720p such as Dr. Horribles Sing Along - although I do not see it on their site at the moment. They may have removed their HD gallery completely since it requires a stream of 3500kbs. I see mentions of it but can not find it on the site anymore.
Hulu is only available in the US. They use an IP blocker to filter out requests from outside of the US. I believe this is an attempt to limit bandwidth and it also gives their advertisers a smaller target audience. The content providers probably want it to stay in the US for copyright purposes as well.

Cappuccino

In class Thursday we split into groups and researched different rich internet languages/frameworks. Some groups had the big names ones like flash and silverlight but the problem with those is not everyone can run those applications. Flash player and silverlight are free downloads but it is an extra hassle for most people and for other they don't know how to install it. My group researched a new technology called Cappuccino. It is a framework that allows the programmer to write code in objective-j (based on objective-c) and when it is compiled it is translated into html, javascript, and css to produce a web application based on web standards that anyone can run in a standards browser.
This is a great solution because almost anyone can run the application and it is fast since it uses client side javascript. The script is executed on the client machine so there is usually very little to no interaction with the server once the application is running (depending on the type of application). This also comes at a price. Since javascript in on the client machine the user can view the script. Even though the program is written in objective-j someone could steal the javascript code and make modifications or host their own version of the program. There might be some way around this but I am not sure.

Thursday, September 24, 2009

Twitter API Tools

I found a great website that lists 50 different applications using the twitter api. It includes links to each application and includes a tutorial on how to code it.
http://www.smashingmagazine.com/2009/03/02/twitter-web-designer-and-developer-toolbox-api-and-tutorials/

Here is a tutorial on how to make your own website display your twitter updates. This enables you complete control over the look and feel of you website. This would be nice to use if you did not want the twitter feed to stick out like a sore thumb on your otherwise custom page.
http://tutorialblog.org/how-to-make-a-unique-website-for-your-twitter-updates/

Here is a tutorial on how to display two different twitter feeds on the same page. This would be nice to use on a website where you collaborate with someone else.
http://tutorialblog.org/how-to-make-a-unique-website-for-your-twitter-updates/

This guy came up with a solution for publishing events to his google calendar using sms messages. How does this relate to twitter? Well he used the twitter api to recieve his sms messages and then used a php script to make some changes and then used the google calendar api to record the event. This would be nice to use since I do not have a smart phone to log in to google calendar from anywhere.
http://dotjay.co.uk/2008/feb/php-twitter-google-calendar-sms

Steve Reynolds has posted a nice tutorial on accessing the twitter search API. This allows your website to search twitter automatically for predefineded search criteria. That way you can display what other people are saying about you or your products.
http://www.reynoldsftw.com/2009/02/using-jquery-php-ajax-with-the-twitter-api/

Tuesday, September 22, 2009

Twitter - Business Uses

Twitter is great for businesses that run lots of specials or have constantly changing prices. One company that I love, Newegg.com, which is one of the largest online retailers, uses twitter for price updates and sales. I have also seen a few promotions where they get people to tweet about newegg and then they are entered into a drawing for one of their products like a flat screen tv. It is a great cheep way for a company to advertise. Since the company does not have to pay for the twitter service their only cost is employees time and whatever they are giving away. They don't even have to use their own bandwidth.

Some companies, including newegg, also use twitter as a customer service tool. If a customer mentions @newegg in one of their tweets the newegg staff can see that and respond accordingly. They can send a message back with links to their customer service department, phone numbers, or they can give them appropiate directions on how to resolve the issue.

http://twitter.com/newegg

Twitter- Initial Setup and Overview

I set up my new twitter account (@scottrmurphy) last night and then got carried away reading everyone's tweets about the flooding in Atlanta.

Some things I learned while reading through help:
*You can search for people using full name or twittter user name.
*Using twitter advanced search allows you to search by location, or time period, or updates to or from a certain person
*They have integrated support from gmail, yahoo, AOL to search through your friends lists and see if your friends are on twitter
*Sends updates to your phone via text message and allows you to send commands back to twitter such as sending a private message and nudging people

Thursday, September 17, 2009

Editing a Wikipedia Article

I have never edited a Wikipedia article before today although I have used the service countless times to look up information. The editing process was pretty straightforward and easy. They use a simple text editor similar to the one I am using to write this blog post. I posted an external link to cite one of my edits and that initiated a security measure that I had to jump through. It was a simple image with text that I had to type into a text field and submit. This is to keep people from developing automated programs to spam links on pages.

You can see the edits I made here:
Athens, Georgia -Bus
Athens, Georgia -Air

Opera- The Underdog?

Market Share:
According to W3C Schools latest statistics Opera controls about 2% of the browser market share. To put that in perspective Apple controls about 3% with its Safari browser. I do need to mention however that these statistics come from their log files. Since they are a website for web technologies they get more people visiting with alternate browsers so their stats maybe a little misleading from what the general public uses to access most websites.

Mobile Market Share:
Opera is the top mobile web browser according to GlobalStats StatCounter. They control about 25% of the market where Apple controls about 22%.


Features:
*Kiosk Mode - locks down public computers
*Opera Link - synchronized browsing on multiple devices/computers
*Performance - adaptive memory technology for old computers to function better
*Rendering - support for some HTML5 and CSS3
*Opera Dragonfly - Developer tools to debug javascript and css

Educational Resources:
*University tours and seminars
*Web standards curriculum - 50 plus articles to learn web standards from beginner level
*Educational forums - for students & faculty to discuss web trends

Wednesday, September 16, 2009

iPhone App CrossAir

Chuck Hudson from Aduci came and presented some tips and business insights based on his experience with Apple and the iPhone. He showed us some of the things he has learned over the years and shared with us some things to think about before writing code on an application. One of the things that stuck out to me was his ideas on different ways to monetize applications. (App Price, Lead Generator, “Lite” and “Premium” Versions, Advertising, Generated Revenue, Packaged with a Product, External License Key, External Commission, Paid Inline Content (new in 3.0), Others yet to be explored…) He also showed us one of the coolest apps I have seen yet for the iPhone. It is a new breed of applications called Augmented Reality. The iPhone is location aware with its built in GPS and compass and allows the developer access to very specific information on where the phone is and in what direction it is facing. This information can be used to overlay information about nearby businesses or subway stops directly on the screen. Directly placing this information over the cameras image allows the user to know exactly which direction a store is and also how far away they are in relation to their current position. There are a couple of different applications based on this idea of location awareness, even some cool looking 3d games. The company is Across Air.

Thursday, September 3, 2009

XML - eXtensible Markup Language

Overview
XML is a language for storing and transporting data. It is powerful because it knows what the data it is transmitting is. Each piece of data is labeled as to what it is which make it perfect for transmitting data from one application to another. The data is pulled out of a database at one business and can be transmitted to another business using a different database or application and that application can read the data and it knows what the data is. For instance a list of data [athens, 30605, ga, 706] does not mean much if you don't know what it is. XML requires every piece of data to be labeled. So that same data would be sent with a label [athens (city), 30605 (zip), ga (state), 706 (area code)]. That is not the right syntax of XML but you get the point. Each piece of data has another piece of data that describes what it is.

Uses
There are many business applications. Most businesses today have databases that store information about their customers and their inventory among other things. A typical database does not display infomation in a visually appealing manor nor is one database used across all businesses. XML solves both of these problems. It first is a medium for data exchange. Data from one company's MySQL database can be sent to another company's Microsoft SQL database and another company's Oracle database. In much the same way XML also serves as a medium in which the data can be stored in one place but displayed in different ways depending on how the client wants to access it. For instance this data can be displayed in a simple list in a web page or it can be organized into a complex table and color coded and converted into a pdf file. This allows for there to be a distinct difference between the data layer and the presentation layer.


Required Files

.xml - where data is stored
.xsd - where data types are defined
.xsl - where presentation of data is described

Webstartup Strategies

A look at some key questions for new web start ups: business model, market, finances?
http://website101.com/Business_Plans/start-up_planning.html

Some tips on if you really need a business plan and if so how to go about writing one.
http://website101.com/Business_Plans/business_plan_basics.html

One persons take on how most new social media web start ups are born and subsequently die.
http://gigaom.com/2008/05/09/the-5-stages-of-a-consumer-web-startup/

Wednesday, August 26, 2009

TCP vs. UDP

Transmission Control Protocol versus User Datagram Protocol

TCP and UDP are two of the most widely used transfer protocols on the internet today. They each have their own benefits and they perform those roles well. First off TCP is used mostly for HTTP or web access. It is perfect for this role because it has built in error checking. Each packet is checked and if there is an error the packet is requested again. This is great for relatively small web pages because it ensures that all the data is transferred and available to the client machine to display. On the other hand UDP is all about speed and is used primarily for transfering large amounts of data as quickly as possible and not worrying about lost or dropped packets. It is the primary protocol for streaming audio (pandora.com), video (hulu.com), and multiplayer game data over the internet. While a web page may not load correctly if a packet is dropped an audio or video file will still play if a packet is lost or a collision occurs.

TCP is a slower transfer protocol because it requires two way communication. After a packet is sent the client machine verifies that it received the packet and if it is missing it contacts the server again and asks that the packet be resent. This would not work well for streaming a video. The video would stop playing every time a packet was dropped and requested again. TCP is also too slow for multiplayer online games. Therefor most online real time games rely on UDP.

Below is a diagram that shows the difference between UDP and TCP connections. As you can see TCP is always in contact with the server to ensure data integrity. Whereas UDP is just worried about how fast the data can be sent to the client machines.



Sources:
http://www.skullbox.net/tcpudp.php
http://ntrg.cs.tcd.ie/undergrad/4ba2.02/gaming/report04.html

Monday, August 24, 2009

HTML 5

Background
Work on HTML 5 has been going on since 2003. In 6 years the web has changed a lot. How can they possibly come up with something relevant after 6 years? By constantly keeping a finger on the pulse of web trends they are able to build in new features directly by using APIs. Most of the web functionality that we see today is made possible by 3rd party addons or code. This makes it difficult to have standards that will allow all browsers to display every page accurately. To try to address some of this problem HTML5 will make it easier on developers to make awesome websites that will work on all browsers without having to use 3rd party addons that may not display correctly.

Benefits
Just 2 semesters ago I learned how to build a drag and drop application using the dojo toolkit. The dojo toolkit is a great 3rd party library of javascript files that allow for some awesome stuff to happen on webpages. But this took a lot of time to understand how to use this toolkit and it also took a lot of storage space on the server to upload all of the support files. With HTML5 drag and drop support is built in with no need for hundreds of supporting javascript files. Drag and drop is not the only new feature though. There are many more such as better layout and menu support that will make developing good looking functional websites easier and quicker for developers.

Some of the built in new technologies
Geolocation
Drag and drop
Embedded audio & Video
Structural Elements (header, footer, aside etc.; allows for more control over legacy div tags)
Offline support (file cache to run apps offline)

Mobile Device Support
With the wide use of smart phones and small mobile devices it is key for HMTL5 to offer a great experience for those users. Apple safari uses the webkit rendering engine which currently supports most HTML5 standards except for audio.
Rim Blackberry just bought Torch Mobile, a Webkit development company that own Iris web browser. This is probably an attempt to compete with the apple iphone in the mobile internet arena.

Conclusion
HTML5 is a big leap forward for developers. It allows them to quickly develop functional websites using the core HTML & CSS features.

Sources:
http://www.smashingmagazine.com/2009/07/16/html5-and-the-future-of-the-web/
http://dev.w3.org/html5/spec/
http://news.cnet.com/8301-13506_3-10316027-17.html

Thursday, August 20, 2009

Welcome

This blog is dedicated to discussions about IT related issues. I will post updates weekly. Most posts will be a more in depth discussion of classroom topics. I will probably reference different news articles related to information technoloy.