Thursday, October 7, 2010

DigitalChalk takes SCORM to the Amazon Cloud

DigitalChalk, a learning management system serving the continuing education and professional training markets announces SCORM support on the Amazon Cloud.   


Infinity Learning Solutions, the parent company of DigitalChalk announced today that they have successfully released the fall 2010 Aristotle 4 version with full SCORM 1.2 support. SCORM 1.2 compliant content is now available in all editions of DigitalChalk including Free, Pro, Business and School. DigitalChalk also added a checkpoint enhancement to the Chalkboard Editor, a browser based multimedia lesson studio that is included in DigitalChalk. The Checkpoint feature lets instructors insert interactive prompts and questions into a multimedia presentation through the browser.

"Introducing SCORM support to DigitalChalk significantly expands the options our clients have for reusing existing content as well as broadening the range of compatible authoring tools we support," said Tony McCune, VP of Sales at ILS. "DigitalChalk is the first subscription based LMS that we are aware of running in the Amazon Cloud."

"Hosting a SCORM compliant system in an advanced cloud computing platform such as Amazon Web Services (AWS) poses some unique challenges. SCORM uses communication specifications that were originally designed before the cloud was invented. We took a system with it’s own personality and wove the SCORM specification into it," said Troy Tolle, Chief Technology Officer of ILS. "The team accomplished the task in an innovative and highly scalable fashion. There was no impact to the thousands of organizations currently delivering courses on DigitalChalk today."

The SCORM specification was originally created by the US Department of Defense. Introducing SCORM into DigitalChalk helps address the growing demand from the US federal government for scalable software as a service (SaaS) learning management systems on the Apps.gov cloud infrastructure, which is modeled after the AWS system.

"Not only is DigitalChalk an industry leader in delivery of online training and continuing education, DigitalChalk is the first Learning Management System to build a SCORM compliant system in the cloud using Amazon Web Services that we are aware of," said Wes Hester, CEO of Foxhole Technologies, a VA based federal IT services company.

To learn more about DigitalChalk, visit www.DigitalChalk.com or call toll-free in the US at 877-321-2451.    To learn more about Foxhole Technology and DigitalChalk in the Federal Market, please visit http://www.foxholetechnology.com/technology/cloud/digitalchalk.html. GSA Schedule 70: GS-35F-0569V
You can read more about the SCORM specification from Advanced Distributed Learning at www.adlnet.gov.

Monday, August 9, 2010

Creating a Maven Web Project in Eclipse

My development platform of choice has been Eclipse for many years now and, more recently, I have really started to enjoy the library management that Maven provides me in development, testing and production.  Although there are very nice plugins available for integrating Maven and Eclipse together, it is not always the most straight forward process to setup a WTP project in Eclipse that can utilize Maven.  I have also found that since creating new projects is not something that we do on a daily or even monthly basis, it can easily become a trial and error episode chewing up a couple of hours of precious development time.  I hope that walking through it here will help save you some time on your next project.
Let's assume a fresh install of Eclipse.  I am using Eclipse 3.6 Helios for Java EE developers which you can download from eclipse.org.  You will also need to download and extract Apache Tomcat 6.  We will point to this Tomcat directory later when we go to test our project setup.

Our fresh install of Eclipse does not come with the necessary Maven plugins, so we will need to install them first.  In Eclipse, navigate to your Help menu and select "Install New Software...".


In the top right hand corner, click on the "Add..." button and a dialog will appear that will allow you to add an new update site for the M2 Eclipse plugin.  The Location is: http://m2eclipse.sonatype.org/sites/m2e .  You can name the site anything that you like, but  you will want it to reflect the name so that you will recognize it later if you come back to scan through your plugins.  I have named mine M2Eclipse.


Clicking OK here will take you to a screen so that you can choose the pieces that you want to download.  For this site, you only have one choice so it is easy.  Check it and click finish and the plugin will start to install.



You will have to navigate and agree to the license.  It will also ask you to restart eclipse after the install.  You should go ahead and do this and return back to the "Install New Software..." screen after the restart.  You will also need to install the M2 Eclipse Extras in the same way.  The repository location for the extras is: http://m2eclipse.sonatype.org/sites/m2e-extras


This update site contains more than one item to install.  You will not need to check the M2Eclipse Extensions Develop Support or the Project configurators for commonly used maven plugins.  I do like to use Mylyn and the integration with CVS is nice to have, but they are not necessary.  You can choose the ones that you feel you need for your development environment.  The only one that you must pull down is the Maven Integration for WTP.


Clicking Finish here will take you through the license agreement again and then ask you to restart.

After restarting, let's continue by installing the Apache Tomcat runtime environment in Eclipse.  Under Eclipse "Preferences..." navigate down to "Server > Runtime Environments".  Click on "Add..." and select "Apache Tomcat v6.0" and click Next.


You will need to enter the Tomcat installation directory.  This will be the directory where you extracted Tomcat.  You can use "Browse..." to locate and populate that location.


We are now ready to create our Web project.  Return to the Project Explorer in the Java EE perspective and choose File > New > Dynamic Web Project

Simply name your project and make sure that your Target runtime is set to Apache Tomcat 6.0 and your Dynamic web module version is 2.5


Click Next >

This screen will allow you to configure your folders for building the application.  We are going to modify these folders to match the Maven hierarchy.  This can be done later as well, but doing it now will avoid some copy and paste as well as some deleting cleanup.  You will need to remove the "src" folder that is listed by default and add the following source folders:
  • src/main/java
  • src/main/resources
  • src/test/java
  • src/test/resources
You should also change the Default output folder to "target/classes"


Click Next >

We are also going to change the Web Module settings to match the Maven packaging.  You will need to change the Content directory on this page from WebContent to "src/main/webapp".


Click Finish.

This completes the setup of the Dynamic Web Project.  We now need to make it a Maven project as well.  This can be done by right clicking on the project in the Project Explorer and choosing "Maven > Enable Dependency Management"


In this wizard, you will only need to change the Packaging to "war" instead of "jar". and click "Finish"


You should now see the POM editor in Eclipse.  We need to add a compiler plugin for 1.6 that will help keep things building cleanly.  Click on the Plugins tab at the bottom of the editor and then Click on "Add..." in the Plugins section at the top left.  Search for the groupId of "org.apache.maven.plugins" and then choose the "maven-compiler-plugin" artifact from the list.


Click on OK and then navigate to the "pom.xml" tab in the editor.  We need to add the configuration for 1.6 which we cannot do through the GUI.  All that is needed is the configuration XML that is selected below.




Save and close the POM editor.

When that completes building, you may notice that the Java Runtime is giving you a warning in your "Markers" tab.



This can be remedied by changing your build path.  You can right click on the project and select "Properties" and then change the build path JRE System Library to point to the 1.6 Execution Environment.  If you do not have your Execution Environments set, you can simply click on the "Environments..." button on this dialog and point them to the JDK installation on your machine.



Clicking Finish here will rebuild the project and you should be error free in your Markers tab.

Now for some simple cleanup of your project.  You can expand your project in the Project Explorer and navigate down to Web Resources > WEB-INF  and delete the lib directory.  We are going to let Maven and WTP work together to manage this.


You will also notice that you have a Classpath Dependency warning in your Markers tab.  This is very important and will have to be addressed if you want your Maven managed dependencies to be available to your local test server.


Simply right click on the warning and choose the "Quick Fix" option.


Then you will be prompted with a popup explaining the suggested remedies to your problem.  We need the classpath to be available to our server, so we need it to be added as a dependency.  Choose that option and then click "Finish".


The setup is now complete.  All that is left now is to test our new project and configuration.  This is easily done by creating an index JSP in our webapp directory.




 After saving the JSP, you can test your application by right clicking on the project and choosing "Run As > Run on Server"


Choose the Tomcat v6.0 Server and then click Finish.  This will push your project to deploy on startup of that server and it will start the server.


When the startup is done, a browser window should appear in Eclipse with your index.jsp content displayed.


You are now off to the races on your new web project using Maven.  All of the dependencies that you add to the pom file will be included in the classpath each time you start the server.

I hope that you found this useful.  Let me know your experience.


Wednesday, July 21, 2010

New Open Source Cloud Platform

Cloud services and platforms are popping up everywhere you turn and everyone is jumping onto the bandwagon it seems. I have even been asked by 2 startup companies that want to jump into the space if there are needs that still haven't been met with what is available now. This is a growing market and it is still in its very early stages, so there will always be room for more right now. Rackspace and NASA's announcement about OpenStack makes it a little easier to jump into the cloud software and infrastructure game. Rackspace is contributing some of its code under an Apache 2.0 licence to the open source community for the management of compute instances and storage. These seem like just initial starting points for contribution as they have also asked for other needs from the community. I would guess that we will see parallel offerings from OpenStack that mimic Amazon's AWS offerings since they are the largest player in this space. OpenStack's computing platform is currently scheduled to be available in an initial release state in October and the storage platform is expected in September. If you would like to dabble some before then, you can go and download the code at http://launchpad.net/openstack. There are projects there for the compute and storage platforms as well as projects for management from the web and from your favorite mobile device (iPhone, iPad, Android). Seeing another open source project in this space is a good thing. I hope that people don't immediately start trying to claim standards on cloud computing out of this project. I believe that it is still way to early to try to start standardizing everything. We start to kill the pace of innovation when standards are forced early. That being said, this will be a project to watch closely along with Eucalyptus and will be one to offer a great playground for ideas.

Monday, May 31, 2010

Cloud Computing ROI

It was a very easy decision for me to start DigitalChalk on a cloud computing platform.  The calculations were quick and easy 4 years ago with a small budget and a dream to build a global platform for training.  We had to scale as we gained customers because we didn't have the immediate capital to buy everything up front.  Today, I still spend time thinking of new ways to use the power of the cloud for our business and the ROI is still clear to me; but I have to say that it is something I get asked about every time I speak or talk to other people looking to take the plunge.  I had the pleasure of speaking with Jonathan Feldman, writer for Information Week, more than once over the past couple of weeks.  He has put together a great study helping the CIO, CTO and individual business units navigate the "gotchas" and common questions when it comes to moving to the cloud.  I was happy to see the report and I think it will help those of you looking to move or start some of your applications to the cloud.  I encourage you to take a moment and read the report.  It is an Analytics Report titled, Cloud ROI: Calculating Costs, Benefits, Returns and can be found here.  Great job Jonathan! It is good to see all of this research in one place.

Sunday, March 14, 2010

Juicy Ideas

I have been hard at work with my team to help launch the Juicy Ideas Competition website. I am happy to say that it has been successfully launched as of last week and we are receiving signups for the competition. My company, DigitalChalk, is sponsoring a competition with AdvantageWest and will be sending the winning team to Google Headquarters in Mountain View, California. The winning team will also receive 5 Android phones provided by Google.
The competition is a software competition that challenges college students to do something innovative and creative using data that will benefit their community. I know that we will see some very cool applications come out of this competition this year! If you would like to compete, or know someone that should, send them to the Juicy Ideas website at: http://juicyideas.com and have them register their team.
The video on the homepage was done by DigitalChalk's very own Jacob Absire and I love it. You can check it out on YouTube as well.

Monday, January 4, 2010

Creativity for Amazon's Cloud Computing Continues

Amazon Web Services continues to move forward in innovative ways to get people to take advantage of their services. Two announcements last month enhance the EC2 service pricing and the Cloud Front delivery model. The availability of auction price instances (spot instances) in EC2 and the ability to do true Flash streaming from Cloud Front really put the squeeze on traditional hosting and edge delivery companies.
With the new Spot Instances in EC2 you can take advantage of the excess capacity that Amazon is not using at that time. Because that capacity changes as more instances are started, the price for those instances fluctuate. With good planning, this can be used to really save on cash. Over the past 20 days, the price of a Spot Instance has been less than 50% of the price of a regular priced instance much of the time. If you are considering using EC2 for some bursting tasks and quick turn around, I would look at the Spot Instances first. Because you set the price you want to pay and the price changes over time, your instance may be terminated if your price is less than the Amazon rate. For this reason, you must plan ahead when using them in a production situation. One good strategy here to lower your costs would be to purchase some Reserved Instances that will stay running and then start Spot Instances in peak situations. You can use the AWS API to see the current prices of the Spot Instances to know how to set your price at runtime. If you want to see the prices online and over time, you can use the AWS console or some other sites like Cloud Exchange. Because you cannot reserve Windows instances right now on Amazon, it makes a lot of sense to take advantage of the Spot Instances. As I write this, a small Windows instance is $0.12 an hour and you can have the same thing running as a Spot Instance for $0.042 an hour.





At about 1/3 the price of a standard small instance, it makes it very attractive to use the Spot Instances right now.

The announcement of streaming support from Cloud Front is also a great new addition. Delivering content to the end user from the closest data center helps improve performance. Until now, all that could be delivered was static content and progressive downloads. Streaming video from Cloud Front helps reduce your costs because only the viewed parts need to be delivered. It also does not store the file on the end user's machine. You can use Cloud Front to deliver videos in several formats, even H.264 allowing playback on the iPod and iPhone. Thank you Amazon!

Wednesday, October 14, 2009

Cloud Confusion and the DoD


Last week the Department of Defense announced a new private cloud computing environment called RACE (Rapid Access Computing Environment). This was an announcement that received a ton of attention in blogs and the circles of cloud computing advocates and naysayers. The frustrating thing about announcements and the ensuing arguments that take place afterward is that there are very few people that really understand what cloud computing is and all of the facets that are involved. The problem really stems from the over-use of the term "cloud computing" to cover what seems to be every application that runs in your browser. Just because you don't know where the actual server is located, or because it runs in your browser does not make something cloud computing. As soon as the announcement was made about RACE, the comparisons to Google came flying in. First of all, this is not even the right comparison. I am behind using cloud computing for government applications, but if we are going to compare the systems, let's at least compare them fairly. RACE is more of an IaaS cloud service and Google is both SaaS (GMail, Google Docs, etc) and PaaS (AppEngine). It seems more fairly compared to the single service of EC2 provided by Amazon. I would love to take a deep dive into RACE, but unfortunately, and as expected for security, it is only available to someone with a government card or clearance. What they do say on the website though is that provisioning after a request only takes 24 hours. Is that truly on demand computing? Call me spoiled being able to provision dozens of servers with a single web service request in 5 to 10 minutes, but that is what I expect from a system now that claims to be on-demand. This is a great direction and good start for DISA. It is very encouraging to see the activity in the government space around cloud computing. We really need to stop lumping every cloud computing service or offering under the single banner of Cloud Computing. People will continue to make their offerings sound better than others with unfair comparisons and statistics. A common language and standard is needed for fair comparison. Until then, let the spin go on!