Tuesday, August 14, 2012

Great news! #BlueButton to go automatic

I have said since BlueButton arrived on the scene that it needed to evolve from a snapshot to a stream.

See my Slideshare from October 2011 around slide 10 I mention the need to evolve from a snapshot to a secure stream. 
Quantified_self_plus_rainbow_b

Hopefully some type of secure RSS stream will emerge as a standard.

Posted via email from ekivemark: pre-blogspot

Saturday, August 11, 2012

A great analysis of the #Olympics 100 meters event through the ages from the @NYTimes

Check out the great video and analysis that the New York Times has done that put's Usain Bolt's gold medal win in to perspective over the history of the modern Olympics.
Sprint-promo

As a swimmer I love the analysis of the 100-meter Freestyle event. The progress that has been made in the history of the Modern Olympics is even more striking:  http://www.nytimes.com/interactive/2012/08/01/sports/olympics/racing-against-history.html

Swim-promo

Posted via email from ekivemark: pre-blogspot

Thursday, August 09, 2012

It's Summer and unusual to see so many ties in1 place - @knotfriends party

It is the knotfriends.com launch party. Bring a tie, swap a tie. It is fun to see so many ties in one place given that it is not wall street or the city of London and it is mid summer after all!

Photo

Mark Scrimshire
B: http://ekive.blogspot.com
....Sent from my iPhone

Posted via email from ekivemark: pre-blogspot

Which tie to wear to @knotfriends party tonight?

Photo

Mark Scrimshire
B: http://ekive.blogspot.com
....Sent from my iPhone

Posted via email from ekivemark: pre-blogspot

Tuesday, August 07, 2012

#Openflame from @firejacknet - A means to a robust end

In previous blog posts (here and here) I have documented the process for getting the Openflame platform running on Mac OS X. This can be accomplished because the platform uses industry standard open source components such as:
  • Tomcat
  • Memcached
  • Maven
  • MySQL

But running Openflame on this stack is not an end in itself. It is a means to an end. Openflame provides a rapid development environment that produces web applications that run using robust, open source web technologies. So let's put together a sample application and learn more about how Openflame works.

In order to get to work on the platform I take the following steps:

- Launch MySQLWorkbench and startup the MySQL Server. I could also have gone in to System Preferences and used the MySQL Preference Pane.
- Open the Terminal and check the setting for OPF_ENV_PATH.
- Launch Tomcat using /Developer/Tomcat/bin/startup.sh

You can check the progress of Tomcat and the deployment of Openflame by checking the catalina.out log. In my installation that can be found in:
/Developer/Tomcat/logs/.

Openflame is a complex platform so it may take a few minutes to loa but once Tomcat is loaded pointing your Web Browser to Localhost:8080 should return this:

Apache_tomcat_7

Clicking on the Manager App button should return information that includes the Openflame application:

_manager

With openflame started we can launch the application:

You should see this:

Firejack_technology_-_openflam

Use the Admin userid and password to access the Openflame platform.

When logged in you should see a screen that looks like this:
0firejack_technology_-_openflam

We have a working Openflame installation and we can get to work creating business solutions!

The first step is to secure the application by changing the default admin password. 

Go to the Directory Tab and select the admin user. 
1firejack_technology_-_openflam

Double click the admin user and set and confirm a new password and press "Save"

2firejack_technology_-_openflam

With the admin password changed we can now get to work and create our first application.

Hello World

To create an application we need to construct some basic building blocks. The first is the Root Domain.

Let's add a new Root Domain. 
Click on the Domain Tab.
Click on the Add Root Domain icon.

3firejack_technology_-_openflam

I then fill in the root domain form with: 

Name: helloworld.com (this has to be in lowercase)
and, optionally, a brief description.
Click the blue "Save" button.

The next step is to create a package. The package is the application we will build. 

Select the helloworld.com root domain in the sidebar. Then click on "Add Package"
4firejack_technology_-_openflam

I use the name "hello" and check that the Context Path is set to match as "/hello"
Click the blue "Save" button.

The package context path is the url we will browse to on the server. i.e. localhost:8080/hello

Next step is to add a "Domain." This is different from the root domain. 
Domains are where we start thinking about the data we want to handle in our application. 
For this example I am going to create a very simple address book, which I will call "contacts".

I add a brief description and a naming prefix of "contact".

5firejack_technology_-_openflam

I am also going to create a database called "messages".

I am now going to add an Entity to the Domain. Select "contacts" in the sidebar.
Add "Category". Note the Capitalization.
Click "Save".
I repeated this process for two other Entities: "Organizations" and "People".
6firejack_technology_-_openflam

By now I think you are getting the idea. 

The Openflame 1.3 documentation has the steps for building a sample app documented here:

The example application is a movie database. There have been some changes between version 1.3 and 1.4 but you can still easily follow the process.

I find it easier to think in pictures when I am understanding a system so I prepared this schematic which depicts the major elements of an Openflame solution.

Openflamestructure
When you have built a solution using Openflame the next step is to:

  • Create a system component
  • Create a database within the system component
  • Generate the code for the Solution

You should be aware that the code generation process can take up to 30 minutes. The Openflame platform is busy building a fully documented project, which is deposited in to Maven and building the databases in MySQL and preparing a WAR file and supporting configuration files to allow the application to run on Tomcat.

While the code is being generated you may see an application pop up in your OS X dock. The application is org.apache.catalina.startup.Bootstrap.

Posted via email from ekivemark: pre-blogspot

Monday, August 06, 2012

Configuring Openflame on Mac OS X

In an earlier blog I went through the installation of Memcache, MySQL, Maven and Tomcat. These are the open source building blocks on which the Openflame platform is built. Openflame is an enterprise-strength, scalable development platform from Columbia, MD innovator FireJack Technologies. 

I have delayed following up on the installation of Openflame because I have moved my MacBook to Mountain Lion. Now that the OS is largely running smoothly (Other than a few niggles with Safari and Address Book) I am turning back to getting the upcoming 1.4 release of Openflame running.

First step - Launch Memcached:

/usr/local/bin/memcached -d -p 11211

MySQL is easy since I installed the System Preferences Add-in. Just launch System Preferences, choose the MySQL preference pane and click the button to startup MySQL.

I had downloaded and installed Openflame 1.4 in to /Developer/openflame1.4 and setup a symbolic link so that /Developer/openflame points to the 1.4 release directory.

I then copied the openflame.war file from the webapps sub-directory to the webapps sub-directory in the Tomcat installation. I had installed Tomcat in /Developer/apache-tomcat-7.0.29 and had a symbolic link to the installation from /Developer/Tomcat

The next step is to configure the two configuration files. There are two files:

  • environment.xml
  • environment.properties

FireJack provides two sample files for this:
  • environment.example.xml
  • environment.properties.example

More on the settings for these in a moment.

I went through a number of iterations to get the openflame.war file to successfully deploy. After receiving some great support from one of the Developers at FireJack.net  I was able to successfully get OpenFlame running. This is what I had to do to get the 1.4 beta version of Openflame running:

One point to note is that the 1.4 version of Openflame makes a change to the properties files to encrypt the content.  I believe that one of my initial implementation attempts failed because there was no Openflame database to upgrade. First we will start by reviewing the environment files:

The first step is to gather all the settings and accounts you have used to configure Memcached, Maven, Tomcat and MySQL. You will need them to configure the environment files.

environment.xml

<?xml version="1.0" encoding="UTF-8"?>
<environments>
    <environment>
        <system name="opf-local" path="net.firejack">
            <packages>
                <package>net.firejack.openflame</package>
            </packages>
            <port>8080</port>
            <protocol>HTTP</protocol>
            <serverName>localhost</serverName>
        </system>

Specify the port, protocol and serverName to match your machine. If you are running locally this would be localhost on port 8080. The default for Tomcat.

        <databases>
            <database name="db" path="net.firejack.opf-local">
                <password>{account_password}</password>
                <port>3306</port>
                <rdbms>MySQL</rdbms>
                <protocol>JDBC</protocol>
                <serverName>localhost</serverName>
                <urlPath>opf_main</urlPath>
                <username>{admin_Account}</username>
            </database>
        </databases>

This is where you create the connection to MySQL. The default port is 3306. I used the root account for this test but you could specify an alternative name. Just make sure you give it the necessary admin level permissions in order to create and manage the Openflame schema.

Replace {account_password} with the password used by the admin account.
The serverName should match the setting you applied in the previous section - unless you are connecting to a MySQL instance on another machine.
Replace {admin_Account} with the administrator account you are using on MySQL. The default will be root.

        <servers>
            <server name="server" path="net.firejack.opf-local">
                <port>8080</port>
                <protocol>HTTP</protocol>
                <serverName>localhost</serverName>
            </server>
        </servers>

Port, protocol and serverName should match the settings used in the earlier system section. I am using Localhost and the default 8080 port for Tomcat.

        <filestores>
            <filestore name="base" path="net.firejack.opf-local">
                <port>8080</port>
                <serverDirectory>{Absolute_File_Reference}/openflame/base/filestore</serverDirectory>
                <serverName>localhost</serverName>
            </filestore>
            <filestore name="config" path="net.firejack.opf-local">
                <port>8080</port>
                <serverDirectory>
{Absolute_File_Reference}/openflame/base/filestore</serverDirectory>
                <serverName>localhost</serverName>
            </filestore>
            <filestore name="content" path="net.firejack.opf-local">
                <port>8080</port>
                <serverDirectory>
{Absolute_File_Reference}/openflame/base/filestore</serverDirectory>
                <serverName>localhost</serverName>
            </filestore>
        </filestores>

The filestores need to be referenced by an absolute file/folder reference. I pointed the filestore to a Developer area under my user account
{Absolute_File_Reference} = /Users/{OSX_Account_Name}/Developer
The Base, Config and Content database filestores all point to the same location.

        <directories>
            <directory name="accounts" path="net.firejack.opf-local">
                <directoryType>DATABASE</directoryType>
                <serverName>localhost</serverName>
                <status>ACTIVE</status>
                <urlPath>/openflame</urlPath>
            </directory>
        </directories>
    </environment>
</environments>

environment.properties.

# Admin user login and password
app.admin.email={My_Email_Address}
app.admin.name=admin
app.admin.password=111111

#Memcached
memcached.url=localhost
memcached.port=11211
memcached.cache.size=10

#Master Openflame URL
#opf.master.url=[OPF_MASTER_URL]

The app.admin.name and app.admin.password were set to the openflame defaults. They can be changed in the platform once Tomcat has deployed and launched the openflame.war file.

The memcached information is taken from the install. In this case I am running it on localhost on the default port of 11211.

The critical Environment variable before launching Tomcat is OPF_ENV_PATH. I made sure this was set to the /Developer/openflame where the environment files were located.

You should then be able to copy the openflame.war file in to the /Developer/Tomcat/webapps folder and launch Tomcat. 

The deployment process may take up to 15 minutes since there is a lot of code to deploy, databases to build etc. But once it has deployed you should just be able to go to Openflame via localhost:8080/openflame.

If you have problems with a new deployment try these steps:
The following notes are for a new installation and NOT for an upgrade!
If the new deployment fails check these things:
  • Drop the openflame schema. I used MySQLWorkbench to do this. 
  • Check that the MySQL Admin account you use has full rights to create and manipulate schemas and tables.
  • Check that the openflame folder does NOT have an openflame.properties file. I had an unencrypted version that was a result of another installation experiment. Openflame 1.4 requires an encrypted file
  • Have you defined the OPF_ENV_PATH setting and pointed it to the location of the openflame environment files. For me this was /Developer/openflame.

Posted via email from ekivemark: pre-blogspot

Mac #OSX Safari 6 and AddressBook- Problems are lurking. Can't wait for update!

Last week I upgraded to Safari 6 and then on the launch of Mountain Lion updated my OS. Most things have gone smoothly but there are some annoyances.

Safari 6 with Google Docs and Facebook via https
There is a problem that impacts the use of Google Docs in Safari 6. The best example is how you load a Google Spreadsheet but you can't edit any cells. There are various threads in the Apple Support Community Forums on this subject. Another problem is the speed with which Facebook loads. 

The Google Docs and Facebook problems are probably connected. They relate to how Safari 6 is accessing secure web pages. I went in to Facebook and changed my security settings so that they don't force the use of https:// secure browsing. When I headed back to the Facebook home page the page loaded blazingly fast.  This obviously doesn't solve the problem with Google Docs which uses a secure page but at least it points to the area where Apple need to fix Safari. Hopefully we can see an update come quickly from Apple to solve this issue. In the meantime you can use Chrome which doesn't exhibit the same problems on Mountain Lion. 

If you are using Safari 6 but haven't upgraded to Mountain Lion then you are probably experiencing this sluggish browsing behavior. The problem is with Safari 6 and not with Mountain Lion.

Bonfire for JIRA from Atlassian
Another area I have seen a problem with Safari 6 is with Bonfire from Atlassian. Their browser extension works fine on Chrome under Mountain Lion but again Safari 6 on either version of OS X has a problem. For those not familiar with Bonfire it is a browser extension that is used to document software bugs. The way it works is to open a sidebar and collect a snapshot of the current browser page. The problem with Safari 6 is that the browser extension opens a new tab instead of updating the existing page and it doesn't capture the screenshot. This effectively makes the extension unusable in Safari 6. Hopefully Atlassian will release a patch that will solve this behavior now that Safari 6 is officially available.

Addressbook and Contact Pictures

Addressbook, or should I say Contacts, is an app I use multiple times every day on Mac OS X. In Mountain Lion Apple has tweaked the interface making it easier to deal with groups. However there are some areas where the application has taken steps back in usability. One small area is with the formatting of phone numbers. Under Lion you had an option to choose the format for your phone numbers. I had mine set to +1.234.567.8901. In Mountain Lion the option to format numbers has been removed  and all numbers default to +1 (234) 567-8901 or (234) 567-8901. I am assuming that this is related to the International and Regional setting for the system as a whole but there is no information shown about phone numbers in the Language & Text section of System Preferences.

The more retrograde step in Contacts is how Contact Pictures are handled. One of the really slick features of AddressBook under Lion was how you could drag a picture from your browser in to the Contact Picture area of AddressBook while editing a contact record and the picture would be set as the Contact's picture. In Contacts this is now a frustrating multi-step process.

When editing a Contact record you have to double click the "Edit" link in the Contact Picture. This pops up a grid of pictures. There are three options: 
- Defaults
- Recents
- Camera

Defaults is a standard set of icons. The same icons you would see when selecting a default icon for your account in Users and Groups. Camera fires up your web cam to allow you to take a picture. To add a picture grabbed from your web browser or from finder you need to click on Recents. This gives you a grid of recent pictures. Now click on the little pen icon beneath the grid. This takes you in to edit whichever picture you have selected. Now drop the picture you want from your browser, or from finder, and click done. 

This is a major step backward in usability. What was a one step task has now become a six-step task. 

There is a lot to like in Mountain Liion but the 10.8.1 patch can't come soon enough. I am hoping Apple will address these weaknesses. 

Posted via email from ekivemark: pre-blogspot