Author Archives: mikeaguirre

Meeting with the WAM

Monday, we met with Tim and the conservator for the exhibit.  It was an unveiling of the iPad kiosk and the features as they stand.  Joe took lead in the discussion, helping to explain the features capabilities and explaining what we could do to fix any concerns.  Unfortunately, from our point of view, it appeared as some of the features we expected them to like, were not accepted with open arms.  Things like a comments feature, or an email feature were rejected, ultimately dropping the need for our database backend.

Originally the database was primarily to be used for content management, but because of time constraints we shifted to adding something more simple, such as high scores for the puzzle, or an email list for the coloring app.  However, it turns out that neither of these features are wanted, so scripting for these features is officially shut down.

I am shifting my efforts to testing the application instead to make sure the release as it is now is as bug free and efficient as possible.  I luckily have my own iPad (with only the free version of kiosk pro)  so I began another thorough application test with Dillon, Brandon and Li.  We found a few issues, but confirmed that Joe would be working to fix them.  We’ll continue to test on the next version.

From the blog mikesaguirre » cs-wsu by mikeaguirre and used with permission of the author. All other rights reserved by the author.

Switching to PHP

So time is ticking away as the semester is coming to an end.  Our database work with python was progressing slower than expected.  So we decided last week to switch to PHP, which is more widely accepted for web server scripting.  There are many useful guides online for setting up a test site.  I found the following tutorial very helpful for first time setup:

http://css-tricks.com/php-for-beginners-building-your-first-simple-cms/

This tutorial expects that you have PHP installed, and that you have a web server to test with.  Luckily we did have a test server, so I ran ‘yum install php’ on the server knowing that Dillon had already created a basic WAM database with 2 tables, one for the coloring app, and one for the puzzle app.

I created my own .php script files, and uploaded them to a git repository, where I then cloned it to a new branch on my server directory.  Tests successful!  With a few modifications we’d be able to try out some simple features like recording high scores for the puzzle, or storing file paths for saved images on the coloring app.

From the blog mikesaguirre » cs-wsu by mikeaguirre and used with permission of the author. All other rights reserved by the author.

Back to the database!

We’re transitioning back to the database!  Dillon and Chad have been working hard to implementing the Git pull scripts and server permissions.  The scripting for automating Git syncs using the Git web hooks proved to be quite the project.  We’ve been helping them double check their code, and testing Git pulls and their progress has reached the point where some of us can move on to coding with Python to script our database calls.

I’ve found some excellent tutorials online for learning how to script with Python to access a MySQL database.  The following are the 2 main articles I’m using to learn the process properly.

http://pixelmonkey.org/pub/rapid-web-slides/

http://zetcode.com/db/mysqlpython/

These two articles are probably the best tutorials to get someone to quickly using a Python framework like Django or Flask for proper database access for web development.  Will write up more tonight!

 

From the blog mikesaguirre » cs-wsu by mikeaguirre and used with permission of the author. All other rights reserved by the author.

My own private web server

One plus about working full time as a system admin while finishing my degree – toys.  I got lucky to borrow an iPad from work for the WAM project, and am just as lucky to have access to a web server for testing!

I ended up configuring my own web server this weekend to make sure I was capable of administering the WAM site.  We use VMWare at work, so I was able to create a test server running CentOS 6.3.  I normally use Debian for these sort of things, but I hear CentOS is the next best thing these days, if not the better choice for enterprise web servers (hence the name Community Enterprise OS).

I configured the network card, ran updates, installed VMWare Tools (probably not necessary since I’m not using Gnome), installed apache, mysql, and python modules.  For prep work on the internet network, i created a DNS record, and began looking into opening up the firewall for external web access.  This is where i ran into a problem.  The only available static IP addresses were at our other branch – and the ones I ordered this year were not yet configured to be available on our switch (not without relocating the firewall to the new demarc).  I guess I’ll just need to VPN into the server for others to see it for now.  So far so good though.  Only need to create some python scripts, and a basic mysql table to pull from, and we’ll only be one step away from presenting a workable proof of concept to the class.  For those of you interested in looking into a Python/MySQL tutorial, take a look at the following site.  It helped me some (but only for Ubuntu or other non-RPM compatible OS distros).  http://zetcode.com/db/mysqlpython/

More to come..

From the blog mikesaguirre » cs-wsu by mikeaguirre and used with permission of the author. All other rights reserved by the author.

Waiting on more resources

We ran into a snag!  We were focusing so much on Android and IOS friendly database technologies, we didn’t take into account that they were only optimized to work in a standalone fashion, not able to centrally manage the database through a server.  As it turns out, SQLite although robust, may not be our best option.

 In my experience, accessing SQL is best done through server side scripting.  However, Javascript is only designed to access SQLite using client side web database access, and accessing a access SQL database using javascript is not secure this way.   We were going to post all our findings on javascript functions to access SQLite, but it would end up confusing everyone if it ended up on the wiki for the class.

 So instead, we need to focus on the technology we will use based on the resources we will be given.  Kiosk Pro appears to be a solid solution to using a server based application on the iPads, but still maintain a local copy of the content.  I need to find out if we will be given a Windows server, in which I will focus on using SQL Server, and maybe PHP, or if we will be given a linux web server, in which we may be able to utilize a new server side use of javascript like node.js.

I don’t quite know where my group has gone.  A few of the members haven’t shown up to class, or the chat sessions.  I will need to spend some time meeting with them today.  More to be discussed in class.  

From the blog mikesaguirre » cs-wsu by mikeaguirre and used with permission of the author. All other rights reserved by the author.

Delving into a Database

We’ve been tasked with implementing a database to allow functionality for a content management system for the iPad application we’ll be developing for the Worcester Art Museum.  Our first thoughts were SQLite, integrated into our HTML5 based app utilizing JavaScript.  We began with a series of tasks:

  • Familarize ourselves with SQL technologies, specifically SQLite.
  • Investigate methods to implement SQLite into our HTML5 application.
  • Investigate our ability to store both text and also images
  • Test a basic application utilizing a database to store and display data.
  • Develop a method of storing database content centrally to be shared across clients.

Our tasks appeared to bring us to a very simple and linear path to success – but boy were we wrong!  The first 2 tasks were simple, and seemed to provide us promising results.  We googled and googled.  We read articles, blogs, and forums and found very straight forward information on developing simple JavaScript functions to initialize a SQLite database natively on Web SQL Database enabled browsers, which included the browsers on IOS and Android devices.  However, after starting on developing our own test code, we hit a brick wall.

SQLite databases utilized by browsers like Chrome or Safari are initialized in temporary locations at the start of the application.  This temporary location is isolated to the browser and cannot be initialzed from any other location.  This meant that the application running on the device would not be able to retrieve data from a centralized server, and would need to be created and pre-populated by the application itself.   This completely defeated the purpose using SQLite to centrally manage data across multiple devices.  In order to still utilize SQLite, we would need to further investigate different method to retrieve data from a server.

We looked into possible work-arounds, and discussed the possiblity of utilizing the Apple AppStore to upload an updated content database file, that would then be overwritten on the new device, however this is a very rudimentary method of deploying new content, and could also be done without the use of a database.

This all brings us back to the idea of utilizing a fully hosted server  application instead of a local iPad application.  It would give us the ability to centrally store our data on the server, and manage all changes centrally through a proper content management system.  The downside to this, is that it cannot be accessed if the iPads do not have access to Wifi, or if they intermittently lose connection.  However, there is the possibility of using an application called Kiosk Pro, which also has the ability to store a backup copy of the web application on the local device.  We simply do not know how it will handle a database driven application.  The only thing we can do at this point is more research.  Here are the next set of tasks:

  • Investigate a method to download server size SQL data into the local SQLite database.
  • Investigate using another method of connecting to server side database.
  • Investigate a method of retrieving data centrally without the use of a database (text files, and web directories)
  • And finally, testing a server side application with a SQL back end while utilizing an application like Kiosk Pro to test a local backup copy without internet connection.

Generally, the first 3 tasks are really for self-learning so that we understand other methods of storing/retrieving content and their pros vs. cons.  I am however biased, and believe that our fourth option is our best – which is why I believe it to be necessary to test all options before concluding.

Unfortunately, I won’t be able to test much without an Apple Developer account.  The web SQL database on Chrome and Android appear to be different than on an IOS device, so until I can test properly, I cannot make a conclusion.  If I’m unable to retrieve an Apple Developer account through Worcester State, I think I will pursue getting my company, The Training Associates, to invest in one since we will most likely want to release our own IOS apps after I’m done with this course.  More to come next week!

 

From the blog mikesaguirre » cs-wsu by mikeaguirre and used with permission of the author. All other rights reserved by the author.

A trip to the Worcester Art Museum

This week, I met my fellow classmates at the Worcester Art Museum (WAM) to meet our new “client.”  It is the start of our semester long project that will give us the hands on experience to properly develop and deploy a real production application that will be used outside of schooling.  I can safely say that this semester is going to be a very big deal, and it feels like it will be the most important class I’ve taken at WSU.  Software Development Process with Professor Karl Wurst – It is a very exciting time.   

We met with Katrina Stacy and Tim Furman, who were very friendly and welcoming to the group. They would be our main contacts at the WAM, and consequently our clients for this project.  We got a chance to talk about their needs, and we got a feel for what they were looking for.  I was hoping for more clear cut definitions of what they were looking for, but the entire project was very open to different ideas.  That was OK – Since many of us are not familiar with HTML5, it is probably best to have as much flexibility as possible with the project, depending on what we can or cannot develop in our time constraints.  Overall, it was a great start, and I could feel the excitement building. 

I’m actually more excited to try out our new collaboration tools than I am about the actual development process.  Don’t get me wrong, I absolutely love the idea of getting hands-on experience with HTML5 and mobile apps, but proper project management skills go a long way, and will be more valuable in the long run after each passing technology.  Even so, this actually all feels very familiar to me – starting with an idea, meeting with the client, brainstorming, planning, etc.  I’ve gone through this process many times before with my various development projects at work.  Management requests a need, a meeting is held to propose a solution, numerous meetings follow to approve changes, and a final release is done.  This time, however, I won’t be taking the process for granted.  We will truly utilize proper project management and collaboration tools online, and we will be working together with over 15 team members, a far larger development group than I am used to.  The overall process is the same, but in a very different environment, and at a much larger scale.  

This project will take a lot of time and effort.  We’ll be learning something new in many different respects: working with a client, working with a large development team, learning new technologies in HTML5, learning to work with mobile devices, and maybe even learning a little art history.  I just hope that I’ll be able to devote the amount of time to the project as I would like.  A new house, a new family, and a new position at work have really made the schedule tight.  I’ll just have to make time because the opportunity to help develop something like this could be over before I know it.  

From the blog mikesaguirre » cs-wsu by mikeaguirre and used with permission of the author. All other rights reserved by the author.

First post, not so much my first blog.

My name is Mike Aguirre, and I’ve started this blog mainly because it is a new interesting and involved requirement of my “capstone” computer science course at Worcester State –  CS 401 Software Development Process.  I’ve had various blogs in the past, always following the blogging revolution, my last blog ending with a stale Live Journal site that ended up tucked away in a dusty corner of the internet.  This time, I’m determined to start anew, beginning with this first post, and motivated by my participation in this new and interesting course I’m taking at WSU.

About me – I’m a part time student at Worcester State University, and have been working slowly to my degree while working full time as a network administrator for a technical consulting/training company in Westborough called The Training Associates.  One thing that I can really appreciate, is the necessity of a course like this at the end of my Computer Science career at the university.  “Software Development Process” sounds like it will finally tie in my education to my life experiences in the work place.  I know I will learn a lot in my involvement in this course and have the advantage to apply what I’m learning at my job which also involves development work on our Trainer Tracker software.

Tomorrow I’ll be heading to the Worcester Art Museum to meet my fellow classmates and my Professor to find out more about our semester long project.  From what I’ve heard, we’re going to help develop and release several educational mobile apps for a special exhibit that will be  displayed on four iPads which will be on the exhibit floor to enhance the experience of the museum patrons.  I’m looking forward to starting this semester, trying something new, and working together with my colleagues to make something that will actually be used by the general public.  More to come next week!

From the blog mikesaguirre » cs-wsu by mikeaguirre and used with permission of the author. All other rights reserved by the author.