Hello again from CyberSpace!
This post is dedicated to Applications on the Internet and the way that they are made. There has been a lot of movement in this arena over the last decade.
Before we look at the types of Internet Applications available, lets examine the history of the Internet.
I'm not going all the way back to the ARPANET, just 2004 when the term "Web 2.0" was coined. The idea of Web 2.0 was that the Internet is moving from a storefront system, where users are only allowed to look at static pages, to a more in-depth and interactive system for people to actually use. To perfectly illustrate this point, Facebook first launched in 2004.
Ever since then, the trend in web usage has moved to interactive applications, giving users greater control over what they access and more opportunities to contribute themselves. My favorite example of interactive is Google Maps, an interactive map that can be used for all sorts of things. I get the most mileage out of Google maps (pun intended) when trying to get directions, but Google has added traffic, satellite images, and even business names to their maps, making for a very rich user experience. Something you may not realize, however, is that Google Maps is available as an API. This allows maps to be placed into other websites without any coding work on the web-owner's part. See the example below:
View Larger Map
I didn't code that, nor create the map, nor plot anything to the map. I just copied and pasted some code, and I have a rich, interactive map available in my blog. There are several other fantastic web apps available from Google, like Google Docs and Google Sites, but this isn't a sales pitch. Other examples of web apps include streaming video sites like Hulu and social media sites like Facebook and Twitter. Several web apps are not totally web-based and fall into the category of a Client Application, which require some sort of program download that requires an Internet connection to be useful. Probably the best known example of this is Skype.
Hopefully the myriad of examples here demonstrate the vast options of Web-Based Applications. It hasn't been slowing down since 2004, and doesn't show any signs of stopping.
Up next, we'll discuss the data behind all those web applications.
Friday, December 9, 2011
MIST 7500 Final Exam - Blog Post 5
Hello again from CyberSpace!
How many Kilobytes did it take to post this page? Where is it stored? How long will it be available? How many more are just like it (I can think of 30+ similar posts) in the world? There is a lot to consider when thinking about the vast increase of technology usage in the world.
This blog post is dedicated to the data we create while living in a digital society. Data storage isn't anything new when you take a broader look at what data is and how it can be stored. Humans have stored data for thousands of years, including word of mouth and written records. Only recently have we begun to look at mechanical forms of data storage.
Check out the video below on digital data storage:
I thought it does a good job highlighting data storage mediums along with capacities. It can be hard to appreciate just how large a Terabyte is until you have a point of reference.
I'm sure we're all familiar with the more traditional disk-based data storage mediums, from hard-disks to floppy disks to CDs and DVDs. These all operate basically the same way - data is recorded on the disk, which is then spun across a reading device (an arm for hard-drives, a laser for CDs), which un-encodes the data for the computer. While there are several difference between the three mediums, they all work in a similar fashion.
The biggest changes in data storage options within the previous decade are Blu-Ray discs and Solid State memory. Blu-ray discs, a medium released in 2001 by by Sony, are the next generation of CDs and DVDs which offer upwards of 25 gigabytes of data storage. Typically used for High Definition movies, BD has firmly planted itself as the next-generation medium for high capacity storage.
The other option, Solid State memory, which moves away from the standard spin-and-read process of storing data. SSD uses microchips instead of moving parts, which increase the retrieval speed of the memory. These are very common, but in smaller sizes due to the cost of production, and most commonly found in Flash drives. Given the expense, however, they are slow to take over for the traditional hard-disks.
So, until we can write our memory on a grain of sand, we will keep spinning and micro-chipping our way into the past.
Look for the next and final installment in this exam assignment: Web Services
How many Kilobytes did it take to post this page? Where is it stored? How long will it be available? How many more are just like it (I can think of 30+ similar posts) in the world? There is a lot to consider when thinking about the vast increase of technology usage in the world.
This blog post is dedicated to the data we create while living in a digital society. Data storage isn't anything new when you take a broader look at what data is and how it can be stored. Humans have stored data for thousands of years, including word of mouth and written records. Only recently have we begun to look at mechanical forms of data storage.
Check out the video below on digital data storage:
I thought it does a good job highlighting data storage mediums along with capacities. It can be hard to appreciate just how large a Terabyte is until you have a point of reference.
I'm sure we're all familiar with the more traditional disk-based data storage mediums, from hard-disks to floppy disks to CDs and DVDs. These all operate basically the same way - data is recorded on the disk, which is then spun across a reading device (an arm for hard-drives, a laser for CDs), which un-encodes the data for the computer. While there are several difference between the three mediums, they all work in a similar fashion.
The biggest changes in data storage options within the previous decade are Blu-Ray discs and Solid State memory. Blu-ray discs, a medium released in 2001 by by Sony, are the next generation of CDs and DVDs which offer upwards of 25 gigabytes of data storage. Typically used for High Definition movies, BD has firmly planted itself as the next-generation medium for high capacity storage.
The other option, Solid State memory, which moves away from the standard spin-and-read process of storing data. SSD uses microchips instead of moving parts, which increase the retrieval speed of the memory. These are very common, but in smaller sizes due to the cost of production, and most commonly found in Flash drives. Given the expense, however, they are slow to take over for the traditional hard-disks.
So, until we can write our memory on a grain of sand, we will keep spinning and micro-chipping our way into the past.
Look for the next and final installment in this exam assignment: Web Services
Thursday, December 8, 2011
MIST 7500 Final Exam - Blog Post 3
Hello again from CyberSpace!
This entry is dedicated to the 'other side' of the Internet - Web Servers! Here, all the fun stuff we access on a daily basis.
The basic idea behind a web server is that they process requests from clients. In my previous post, I discussed how the client gets onto the Internet to find these web servers. Once the request is received by the server, they can generate HTML code, search a database, or other useful function, then return the data to the client. It sounds simple enough, but this can be a daunting task depending on the number of visitors to your site. For example, YouTube had 20 BILLION video views in October 2011! That isn't just generating some HTML, the web server has to find the selected video, stored in a database, then generate the "Related Videos" section, user comments... It can be daunting work for web servers to handle all the traffic without crashing.
Web servers can be split into several different layers for processing requests. This adheres to the principal of Separation of Concerns. The split makes it easy to update and maintain the code, and typically consists of Presentation, Business, and Data layers. There are other methods, but most follow this pattern. The reason for the structure is that it is easily maintained, so much so that it is a part of Apache Web Servers and recommended in Java EE Coding Tutorial.
Up next, we will look at the types of applications hosted on these web servers.
This entry is dedicated to the 'other side' of the Internet - Web Servers! Here, all the fun stuff we access on a daily basis.
The basic idea behind a web server is that they process requests from clients. In my previous post, I discussed how the client gets onto the Internet to find these web servers. Once the request is received by the server, they can generate HTML code, search a database, or other useful function, then return the data to the client. It sounds simple enough, but this can be a daunting task depending on the number of visitors to your site. For example, YouTube had 20 BILLION video views in October 2011! That isn't just generating some HTML, the web server has to find the selected video, stored in a database, then generate the "Related Videos" section, user comments... It can be daunting work for web servers to handle all the traffic without crashing.
Web servers can be split into several different layers for processing requests. This adheres to the principal of Separation of Concerns. The split makes it easy to update and maintain the code, and typically consists of Presentation, Business, and Data layers. There are other methods, but most follow this pattern. The reason for the structure is that it is easily maintained, so much so that it is a part of Apache Web Servers and recommended in Java EE Coding Tutorial.
Up next, we will look at the types of applications hosted on these web servers.
Wednesday, December 7, 2011
MIST 7500 Final Exam - Blog Post 2
Hello again from CyberSpace!
In this, the second blog of a six part series, we will discuss Internet Infrastructure.
The best way for me to describe the structure of the Internet is through a video. Feel free to watch below, but it isn't as short as the awesome graphics imply.
In case you don't have 13 minutes to watch, I'll summarize the video. Whenever you make a request on the Internet, you send data to your router. The router manages lost data, decides the paths to follow between servers, manages protocols, and other important tasks required to move to your requested location. Simplifying it down to this level is about the same as saying "Oh, you're just hauling rocks in that wheelbarrow", but that is essentially how the process works. The simplicity is not intended to downplay the importance of the router. Without it, we wouldn't have the Internet as we know it.
Packets and Routers have been around since the beginning of the Internet. The scale has certainly increased, and continues to increase thanks to the number of Internet connected devices. The increase is so rapid, in fact, that we have assigned all available IPv4 addresses. Imagine trying to active a phone for the first time, only to find out that we are out of phone numbers. Same idea, but with the your new Desktop instead. In response, IPv6 is now available, which should handle many more devices than its predecessor.
Once you fire up the ol' browser (a Client Application), get an IP address, and hook up with a router, you can be surfing the 'net in no time flat. Next blog we will examine the final destination of those browsers and packets - Web Servers!
In this, the second blog of a six part series, we will discuss Internet Infrastructure.
The best way for me to describe the structure of the Internet is through a video. Feel free to watch below, but it isn't as short as the awesome graphics imply.
In case you don't have 13 minutes to watch, I'll summarize the video. Whenever you make a request on the Internet, you send data to your router. The router manages lost data, decides the paths to follow between servers, manages protocols, and other important tasks required to move to your requested location. Simplifying it down to this level is about the same as saying "Oh, you're just hauling rocks in that wheelbarrow", but that is essentially how the process works. The simplicity is not intended to downplay the importance of the router. Without it, we wouldn't have the Internet as we know it.
Packets and Routers have been around since the beginning of the Internet. The scale has certainly increased, and continues to increase thanks to the number of Internet connected devices. The increase is so rapid, in fact, that we have assigned all available IPv4 addresses. Imagine trying to active a phone for the first time, only to find out that we are out of phone numbers. Same idea, but with the your new Desktop instead. In response, IPv6 is now available, which should handle many more devices than its predecessor.
Once you fire up the ol' browser (a Client Application), get an IP address, and hook up with a router, you can be surfing the 'net in no time flat. Next blog we will examine the final destination of those browsers and packets - Web Servers!
MIST 7500 Final Exam - Blog Post 1
Hello again from Cyberspace!
It's time for finals, and we're going to celebrate with marathon blog posts! In a series of 6 blog posts, I'm going to cover Client Applications, Internet Infrastructure, Web Servers, Applications, Data, and Services.
The doorway into any of these topics is Client Applications. These are the side of the internet most users are familiar with, as they are the part of the process users interact with directly. Rather than keeping all the necessary data on a local hard drive, these programs can interact with a server over the internet to display HTML code, gather data, or use a web service to produce the finished product.
A great example of a Client Application is the web browser you are using right now to read this blog. The browser itself doesn't contain anything particularly interesting on its own, but is able to translate HTML, JavaScript, and other code from servers out in the Internet to become much more than the humble program resting on your hard drive.
There are lots of options for Client Applications, and while the main player was web browsers five years ago, we are not as limited anymore. With the increasing number of web services and smartphones, there are more ways to consume data across the network that doesn't live in your device.
Probably the biggest change for Client Applications is the iPhone app. Despite being a device and not a Client Application, the processing power and limited storage, along with its almost-anywhere connection, the iPhone and its relatives rely on the internet to provide content. Apps on the phone may not hold anything substantial on the device itself, but can connect to the web or a web service to provide a great experience.
In a nutshell, the Client Application is moving to the forefront of computer usage. Stay tuned for the next entry in our series: Internet Infrastructure!
It's time for finals, and we're going to celebrate with marathon blog posts! In a series of 6 blog posts, I'm going to cover Client Applications, Internet Infrastructure, Web Servers, Applications, Data, and Services.
The doorway into any of these topics is Client Applications. These are the side of the internet most users are familiar with, as they are the part of the process users interact with directly. Rather than keeping all the necessary data on a local hard drive, these programs can interact with a server over the internet to display HTML code, gather data, or use a web service to produce the finished product.
A great example of a Client Application is the web browser you are using right now to read this blog. The browser itself doesn't contain anything particularly interesting on its own, but is able to translate HTML, JavaScript, and other code from servers out in the Internet to become much more than the humble program resting on your hard drive.
There are lots of options for Client Applications, and while the main player was web browsers five years ago, we are not as limited anymore. With the increasing number of web services and smartphones, there are more ways to consume data across the network that doesn't live in your device.
Probably the biggest change for Client Applications is the iPhone app. Despite being a device and not a Client Application, the processing power and limited storage, along with its almost-anywhere connection, the iPhone and its relatives rely on the internet to provide content. Apps on the phone may not hold anything substantial on the device itself, but can connect to the web or a web service to provide a great experience.
In a nutshell, the Client Application is moving to the forefront of computer usage. Stay tuned for the next entry in our series: Internet Infrastructure!
Wednesday, November 9, 2011
The 'colorful' Gary Vaynerchuk
Hello again from Cyberspace!
I watched Gary Vaynerchuk In a Seminal Performance at the 2011 Inc 500 Conference, as listed on Rizzo Tees blog. If you choose to watch for yourself, watch with caution as there is some coarse language used. This is not for the f-bomb squeamish. Or you can read this swear-word free synopsis!
Gary is a very energetic character, and is completely sold on the affect that social media is having on the business world. After a little history of Mr. Vaynerchuk's business history, he speaks to his vision of the future of marketing. There were a few interesting crowd polls that he used, for example, most of the people in the crowd use Digital Video Recorders to record all their TV and skip every commercial, or how, if 1 in 4 people are texting while driving, how can they see the road, much less the billboards they are passing? I was did several of the things he suggested (but no texting and driving!).
The point he is making is that we will be consuming our advertisement through word of mouth thanks to social media. Most people will buy things their friends recommend over any other form of marketing. The future of marketing is in the context where the ad is consumed more than the content. It is especially difficult today to capture peoples attention and break through the 'noise', so companies must move with social media to capture customers.
There was a lot of interesting factoids, perspectives, and plenty of foul language. It is obvious that Mr. Vaynerchuk is passionate about business. I enjoyed the video, but I have my suspicions that this will help many companies change their marketing strategy. What Mr. Vaynerchuk described was more of an attitude than actionable items. I had a hard time seeing any actionable items in his speech, but it was very entertaining none the less.
I watched Gary Vaynerchuk In a Seminal Performance at the 2011 Inc 500 Conference, as listed on Rizzo Tees blog. If you choose to watch for yourself, watch with caution as there is some coarse language used. This is not for the f-bomb squeamish. Or you can read this swear-word free synopsis!
Gary is a very energetic character, and is completely sold on the affect that social media is having on the business world. After a little history of Mr. Vaynerchuk's business history, he speaks to his vision of the future of marketing. There were a few interesting crowd polls that he used, for example, most of the people in the crowd use Digital Video Recorders to record all their TV and skip every commercial, or how, if 1 in 4 people are texting while driving, how can they see the road, much less the billboards they are passing? I was did several of the things he suggested (but no texting and driving!).
The point he is making is that we will be consuming our advertisement through word of mouth thanks to social media. Most people will buy things their friends recommend over any other form of marketing. The future of marketing is in the context where the ad is consumed more than the content. It is especially difficult today to capture peoples attention and break through the 'noise', so companies must move with social media to capture customers.
There was a lot of interesting factoids, perspectives, and plenty of foul language. It is obvious that Mr. Vaynerchuk is passionate about business. I enjoyed the video, but I have my suspicions that this will help many companies change their marketing strategy. What Mr. Vaynerchuk described was more of an attitude than actionable items. I had a hard time seeing any actionable items in his speech, but it was very entertaining none the less.
Are Your Web Services well RESTed?
Hello again from Cyberspace!
This post is going to answer several questions regarding web services as posted by my professor, Dr. Craig Piercy.
This post is going to answer several questions regarding web services as posted by my professor, Dr. Craig Piercy.
- What is a Web Service according to the W3C?
- A Web Service, as defined by the W3C, is any system of software designed to facilitate machine-to-machine interaction via a network with an interface is in a machine-readable format.
- What is a "Big Web" service? Describe in detail including important components/protocols and examples of use.
- A "Big Web" service is one that requires XML and Web Services Description Language (WSDL). The XML, in SOAP format, is then read automatically by other machines. These instructions dictate how the machines will communicate, as well as other nonfunctional issues like transactions, security, addressing, trust, and coordination. Amazon uses Big Web Services in some of their Could services.
- What is a "RESTful" service? Describe in detail including important components/protocols and examples of use.
- REST stands for Representational State Transfer, and is becoming popular as an alternative to other methods of web based services due to its simplicity of design, according to IBM Technical Topics. The popularity is due to the lack of complexity from the Big Web Services, and are useful for ad hoc integration scenarios. Some specific attributes of RESTful web services are
- Using HTTP methods explicitly
- REST methods utilize HTTP methods according to the proper format and with a high level of detail. While there may be easier methods of using the HTTP methods, REST requires that they be used completely and properly.
- Is Stateless
- A RESTful service includes all necessary data in the HTTP request, which means that there is no additional translation required.
- Big Web vs. RESTful. Compare and contrast advantages/disadvantages of the competing protocols. When is one better to use than the other?
- This is a much more subjective issue. Big Web services require more setup and the systems must be compatible, but offer a highly defined structure for system-to-system communication. RESTful services, on the other hand, excel at smaller or ad hoc interactions, as mentioned. The current opinion across the web seems to be more in favor of RESTful services due to their scalability and statelessness, but I'm sure that there will always be a place for the larger, structured Web Services.
Saturday, November 5, 2011
Lecture from Guest Speaker Chuck Hudson
Hello again from Cyberspace!
This post will cover a lecture from guest speaker Chuck Hudson. Mr. Hudson is currently Director of Applications at Control4, a member at PayPal Developer Council, co-author of HTML5 Developer's Cookbook at Pearson Education, co-founder at Control UI, LLC, and part time instructor at the University of Georgia, according to his Linkedin page.
The topic of the lecture was Mobile Development, and had a thorough explanations of key topics for mobile app development including:
In addition to the topics above, Mr. Hudson demonstrated some 'under-the-hood' code for both Android and iPhone apps via desktop sharing. We saw the code behind the apps, the setup of the files, screenshots, and the publishing screens to a limited extent.
Overall, I was very impressed with the scope of the topics, and the knowledge of Mr. Hudson was evident throughout the lesson.
This post will cover a lecture from guest speaker Chuck Hudson. Mr. Hudson is currently Director of Applications at Control4, a member at PayPal Developer Council, co-author of HTML5 Developer's Cookbook at Pearson Education, co-founder at Control UI, LLC, and part time instructor at the University of Georgia, according to his Linkedin page.
The topic of the lecture was Mobile Development, and had a thorough explanations of key topics for mobile app development including:
- Monetary Models
- Mobile Design
- Technical Challenges
- Developer Accounts/Resources
- Android Specific Challenges
- iOS Development
- Planning App Release
- Localization
- Beta Testing
- Apple Distribution
- Android Distribution
- Measuring your success
- Supporting your Apps
In addition to the topics above, Mr. Hudson demonstrated some 'under-the-hood' code for both Android and iPhone apps via desktop sharing. We saw the code behind the apps, the setup of the files, screenshots, and the publishing screens to a limited extent.
Overall, I was very impressed with the scope of the topics, and the knowledge of Mr. Hudson was evident throughout the lesson.
Sunday, October 23, 2011
The weakest link?
I sure hope not! Hello again from Cyberspace!
Today I'm going to share my mid-term assignment! You can find the website here. The working title is Almost Handwritten Cards - creativity was optional (I hope). Click it while you can, because I can't afford to keep it running forever!
The assignment was to create a business and design a website for that business. I'm not much of a web designer, but this was my shot at it. The idea behind the business was to use a robotic handwriting reproduction device to sign greeting cards based on smartphone touchscreen input.
After going through the assignment, it seems like a good idea, but I wasn't able to find the machine I had imagined. I wanted to price one, because this would be the largest single investment for the business. Overall, the overhead should be rather low, and the business could support itself after the handwriting machine is paid off.
I'm not sure how viable the business would be, and I don't expect it to make a billion dollars, but it was fun to look into.
Today I'm going to share my mid-term assignment! You can find the website here. The working title is Almost Handwritten Cards - creativity was optional (I hope). Click it while you can, because I can't afford to keep it running forever!
The assignment was to create a business and design a website for that business. I'm not much of a web designer, but this was my shot at it. The idea behind the business was to use a robotic handwriting reproduction device to sign greeting cards based on smartphone touchscreen input.
After going through the assignment, it seems like a good idea, but I wasn't able to find the machine I had imagined. I wanted to price one, because this would be the largest single investment for the business. Overall, the overhead should be rather low, and the business could support itself after the handwriting machine is paid off.
I'm not sure how viable the business would be, and I don't expect it to make a billion dollars, but it was fun to look into.
Amazon Clouds make for sunny business
Hello again from Cyberspace!
In today's post, we're going to cover a video regarding Amazon's Cloud. The advertised title is Amazon and the Lean Cloud as presented by Werner Vogels. In the first minutes, Vogels states that he will discuss some of the business decisions behind starting Amazon's Cloud rather than the Lean Startup idea. In 13 points, Vogels outlines the ideas and principals behind the creation of the Amazon Cloud.
In today's post, we're going to cover a video regarding Amazon's Cloud. The advertised title is Amazon and the Lean Cloud as presented by Werner Vogels. In the first minutes, Vogels states that he will discuss some of the business decisions behind starting Amazon's Cloud rather than the Lean Startup idea. In 13 points, Vogels outlines the ideas and principals behind the creation of the Amazon Cloud.
- Design for Flexibility
- Amazon puts no constraints on the software platforms for their engineers. Because they hire 'the best in world', they go out of their way to enable their creativity.
- Design for On-Demand
- Due to the seasonal variation in Amazon's business, software must be developed to meet that need.
- Design for Automation
- After the launch of several APIs, Amazon realized that 70% of the engineer's time is spent maintaining their programs for customers. This is why Amazon creates their services so that the business rules decide when and how resources are allocated without an engineer spending their time on those tasks.
- Be Elastic
- While this is a little redundant from the seasonal planning point earlier, Vogels specifically points out that software must be able to scale up AND down. While I'm not very familiar with this topic, it sounded like scaling up was easy, but scaling back down is harder or overlooked.
- Design for Failure
- Be prepared for failure and plan to reduce/remove the failure. Amazon has very stringent requirements of how much failure your system has to meet, up to and including the loss of entire data stores.
- Design for Utility Pricing
- There must be a focus on price, since there is no reason for a consumer to return. While traditional brick-and-mortar stores have geography on their side, where the local population will choose your store because it is convenient, online retail does not have the same benefits. Amazon must retain their customers through low prices.
- Break Transparency
- Vogels emphasizes that they must make the cloud transparent so that those on the outside can see how it works on the inside. If APIs are being consumed by programmers outside your company, they will need to 'crack open the hood' at times to make their products.
- Decompose to its Simplest Form
- Amazon used this principal to redefine their databases, rebuilding so that their databases can be infinitely scalable and failure-proof.
- Design with Security in mind
- Companies must integrate security into the design of each application. One of my favorite lines from this video came from this bullet - we can no longer rely on the moat around our castle, but rely on each of our programs to be secure in and of themselves.
- Don't do it alone
- According to Vogels, every company must outsource and invite third parties to help build a great business. Amazon even offers commissions for to external hosts of links if those links result in sales.
- Focus on what doesn't change
- I really liked this point - a company must be able to do the basics well. There are certain things that don't change, such as keeping low prices will always be at the forefront in retail. No one will ever ask for the price will go up, or that packages will be delivered late. To be able to define these major themes and then do them well is vital to any business and planned for by Amazon.
- Let your customers benefit
- Amazon leverages its size and number of website hits to get better pricing for consumers and bandwidth providers.
- Continuously Innovate
- In today's world, start-ups have access to the same resources of the 'old school' IT companies. Until recently, a company had to amass their own IT strength in house, and they could make a lot of money by limiting services or forcing long-term contracts. Today and into the future, everything will be built on these types of services with the IT being held outside the company according to Vogels.
Subscribe to:
Posts (Atom)