Tuesday, December 18, 2012

Last minute Employee Videos (benefits, retirement, enrollment)

One of our affiliate companies, HR Communications, will begin providing Employee Videos for any Employee Benefit Enrollment firms or customers that are in a bind and need a short, customized video for:

- Benefit Enrollment Videos
- Orientation videos
- Retirement Videos
- Policies & Procedures videos
- Safety Videos
- Training videos
- Benefit Statements & Total Compensation Statements

I'd think end of year Benefit Enrollment would be the most pressing need.

Other details that were passed on to me:

Custom sizes, including YouTube Widescreen HD.  Will set up Chapters and YouTube annotations. Will supply embed code (for local server).
Output as swf, html5, Mac Executable (.app), Windows Executable (.exe), MP4, IPhone.  Can also serve from our servers.
  Contact HR Communications here. 

PostgreSql news

Took awhile, but PostgreSql announced spinbackup.



Monday, December 17, 2012

Google API and the Web Manager System

Part of being admitted to the Google Apps Marketplace is a demonstrated proficiency with Google Apps API.  I'd encourage other groups to spend time on becoming familiar with their various libraries, the most important of which (in my mind) is Google Account Authentication.  The list is below, with those in blue being the ones we've committed into the Web Manager System.

1- Android
2- Blogger Data API
3- Code for Educators
4- Developer Events
5- FeedBurner APIs
6- GMail Atom Feeds
7- Google Ajax APIs
8- Google Ajax Feed API
9- Google Ajax Search API
10- Google Account Authentication
11- Google AdSense API
12- Google Adwords API
13- Google Analytics
14- Google Apps APIs
15- Google Base Data API
16- Google Calendar APIs and Tools
17- Google Campfire One
18- Google Chart API
19- Google Checkpout API
20- Google Code Search
21- Google Code Search Data API
22- Google Coupon Feeds
23- Google Data APIs
24- Google Desktop Gadget API
25- Google Desktop Search API
26- Google Documents List API
27- Google Gadgets API
28- Google Gears API
29- Google KML
30- Google Mac Developer Playground
31- Google Mapplets
32- Google Maps API
33- Google Mashup Editor
34- Google News Feed
35- Google Notebook Data API
36- Google Safe Browsing APIs
37- Google Search Appliance APIs
38- Google Search History Feeds
39- Google Sitemaps
40- Google Sketchup Ruby API
41- Google Spreadsheets Data API
42- Google Talk XMPP
43- Google Themes API
44- Google Toolbar API
45- Google Transit Feed Specification
46- Google Web Toolkit
47-Highly Open Participation Contest
48- Open Source
49- OpenSocial
50- Orkut
51- Picasa Web Albums Data API
52- Project Hosting
53- Summer of Code
54- YouTube Data API

Wednesday, December 12, 2012

Yahoo Voices

The Web Manager System and spinbackup (online Google backup service) received a short writeup today in Yahoo Voices:


Saturday, December 8, 2012

Site cleanup

We just saved the xml for 173 site pages as a zip file, then deleted those pages and reindexed the site.  Checked using our internal Application Analyzer and spotted a small jquery onclick event that needed fixing.  Did a few tests with site search and all looks ok.  Still blows my mind how fast Text Search is with PostgreSql. More importantly, Iama made a prediction on tomorrow's Buffalo Bills game via our Twitter feed and as expected, a handful of diehard Bills fans came and checked her prediction (I checked the access logs), wondering "who is Iama"?  I also edited a blog post for spinbackup that should go up Monday.

Next week, we start a small Marketing campaign with StumbleUpon, watch for our PostgreSql press release, add one more vid, design week by week lesson plans and add a few more files that people can use when testing a new, free account.

Go Bills!

Friday, December 7, 2012

Pdf for metatags & SEO

I noticed earlier today that a few of the metatags that we're focusing on, return a fair number of links to pdfs on the first page of Google and the other engines. 

One of us decided to try a small experiment and used the Template (Print design tool) editor + PdfLib to create a 5000 x 5000 pixel pdf with the majority of the external site's text, along with a few links.  The Template editor allows for adding in metatags, so she added a few, spooled the pdf and added it as a link in the footer on the index page.

I'm far from being a proponent of the black art of SEO, but it would seem that the content in the pdf would supplement the content provided directly on the index page - and lead to more possible results when searched.

We'll test next week and search for specific text that should only return results to the Web Manager.  If the index page is listed above the original content page, then we'll be able to pretend that we're smarter than a search engine.

Joking aside, it could be useful, particularly for new websites.  An all-in-one, supplemental page.  We'll see.

Thursday, December 6, 2012

PostgreSql Press Release

Submitted my first PostgreSql press release today - about the online Cloud, Google Backup system, spinbackup, which uses Google ID (OAuth 2.0).

It's a little painful to acknowledge that we're been using PG for 8 years now - and this is the first release.

Hopefully, that will change - real soon.

Release is awaiting approval from PostgreSql Moderators.

Wednesday, December 5, 2012

The Web Manager System -> Website update

The new web site went  live a few minutes ago. 
Web Manager System ... Web Office ... Cloud Manager ... Data Manager .... Content Manager ... Print and Documents Manager.

There are still files and pics I want to add, but should be easier to understand for most folks.  Ended up with a 2 hours of Vid and about 150 fewer pages. 

Sunday, December 2, 2012

The Web Manager: Design & create a pdf online for Variable Data Print

Added another Web Manager System video.  It's ok I'm working on a Sunday because the Bills are blacked out.  Seem to be doing better without me watching them..... ahead at halftime.

This vid covers variable data print (VDP).  Shows how to design a pdf online, embed data columns from a PostgreSQL table, create and add a QR Code, spool the multi-page pdf and view in the main frame of the browser while inside of the account.  Very useful for target marketing -> The Power of Personalization.

To reiterate what I said yesterday, right now, we're the best.  The upcoming Template designer will raise the bar. Interested investors had best contact me now.

ehh.  guess I'll need to add it later.  Blogger seems lost finding the vid for the moment.

Saturday, December 1, 2012

Online, Pdf Designer from the Web Manager System

Added another Web Manager video, using the online WYSIWYG Print Designer to create a pdf, then print from within your account.  This tool is being recoded and although it is already the best on the web, it will soon be raising the bar.  We will use the Full join, PostgreSql query I posted the other day to make a variable data print pdf in an upcoming video.

This tool is being recoded right now.  It's been the best on the web for the last 8 years but we are about to raise the bar.  If you are an investor, now's the time to get in touch with us.  The updated version is going to be hot.

EU Safe Harbor

 Spinbackup - an online backup system - is a branch of the Web system and also use Postgresql, along with several Amazon Cloud Services.

Received this last night, so it looks like we'll be more likely to get European customers:

Dear Mike Ellsworth,

Congratulations!  After thorough review, TRUSTe has approved the privacy practices and statement for http://www.spinbackup.com. We are very pleased and honored to present SpinBackUp with a customized TRUSTe hosted HTML code, ready for implementation!  This code contains the TRUSTe seal and validation page to clearly and proudly demonstrate your commitment to privacy and compliance with the US-EU Safe Harbor Privacy Principles, to your customers and partners.  It has been a sincere pleasure working with you, not to mention, how excited we are to have you as our newest seal holder!  We look forward to seeing it displayed on your site(s).

This email serves as your EU Letter of Verification from TRUSTe.

Which is more good news.   

My next step is:

Friday, November 30, 2012

PostgreSQL Full Join, import csv

Made another Web Manager vid. This one covers:

  • adding a column to a table, 
  • adding default values, 
  • importing a csv, 
  • field mapping
  • creating a Full Join with conditions, 
  • coalesce, string concatenation. 
I'm trying to create a 'storyline' here about Iama, a mythical Knowledge Worker that is determined to learn and is not into instant gratification. Her cohort (a developer), Bridget, occasionally busts Iama but respects her persistence.

 In this vid, Iama was trying to join 2 reasonably similar tables: a contact table with data pulled from a web contact form + a customer table with more/different columns. I toyed with doing a Union, but decided a Full Join would be a bit easier. Creating these vids and battling with Adobe Captivate 6 is a bit time consuming. This one took two, full days.

Wednesday, November 28, 2012

Web Manager: Contact form, Part 2

Here is the second part of the video, where Iama learns that she is clueless about Php and receives assistance from a developer. I'll be adding the audio transcripts to these blog posts pretty soon. We have about 3 more vids to get out this week. Been quite a process.

Added two more web manager system videos, as part of a two part series that show how to create a Contact form for a website.  Ends up covering the contact for, how to add a Captcha, onchange event, a couple of onclick events, a bit of JQuery, the php that runs the process.  Includes inserting the submitted data to a PostgreSQL table, sending an email, alerting the user, checking the captcha, plus a fair amount more.  Includes quite a bit of audio.

I'm finding that it takes ~ 1 hour to generate about 1 minute of video & audio.

Monday, November 26, 2012

TrustE Privacy Certification is official

We received our TrustE Privacy certification today for SpinBackup.com.

The seal will go up tomorrow.

YouTube Web Manager System Playlist

 All vids can be reached here:  Web Manager System videos  Still working on this page, but the vids are embedded and seem to work ok.

Added annotations (pause + continue to url) at YouTube to an image, which we are currently using as a centralized link system.

The Web Manager System: How to Add an external RSS Feed

Using the Web Manager to add an external RSS feed to your own site.

Using the Web Manager System - Add a Shopping Cart payment system

Set Up a Web Payment System, using the Web Manager.

ACL: Access Control List, Add a Role, Add a User, Assign to a Role with the Web Manager System

ACL, Access Control List, Create and assign Roles (RBAC).  PostgreSQL and the Web Manager.

Create a Website, Part 1

Using the Web Manager to Create a Website, Part 1

Web Manager: Upload an Image plus many options

Use the Web Manager to Upload an Image + much more

Iama says hello

Iama says hello.  Used as psrt of the prvious video.

Web Manager: A YouTube Video of How to embed a Youtube Video

A YouTube Video of how to Add and embed a YouTube video, using the Web Manager.

Basic Navigation for the Web Manager System

Basic Navigation for the Web Manager

Web Manager: Extend the Power of Google Apps

Extend the Power of Google Apps.  Import a Google Spreadsheet and create a PostgreSQL Table at the same time by using the Web Manager.

The Web Manager as a Software as a Service (SaaS) Aggregator

The Web Manager as a Software as a Service (SaaS) 


Make a Website Theme (Part 2 of make a website)

Make a Website Theme (Part 2 of Create a Website) using the Web Manager.

Using the Web Manager: Build a PostgreSQL Table in 2 minutes

Use the Web Manager to create a PostgreSQL Table in 2 minutes.

Make a History Table, PostgreSQL Table Trigger and Trigger Function

Been busy creating Web Manager videos.  Made quite a few, with more to come.

Here's the beginning of the current list, along with a synopsis:
Make a History Table, PostgreSQL Table Trigger and Trigger Function
- Use the Web Manager to create a backup history table, a PGSQL Trigger function and Table Trigger.


Friday, October 19, 2012

Website redo (hopefully not obvious) is in progress.  Realigning the focus in a effort to better differentiate ourselves from the enormous variety of confusing/overlapping projects cropping up on the web.

As a separate item, spinbackup is now live.  It's an online backup service built on PostgreSQL, php and uses Amazon Cloud services.  Backs up any and all things Google, including GMail, Picasa, Docs & Calendar.
OAuth 2.0 enabled (Google ID) and is available for IPhone and Android.  Some pretty cool work was done and a bit of it will be adapted for Younicycle (a new CRON manager).  Brach of the Web Manager.

Hopeful that a PostgreSQL Announce will approve to get out the word.

Take a look.

Friday, August 17, 2012

Retirement Planning & PostgreSQL - a Simple Query

 Let's review the basic elements that go into estimating the Future Value of of our Retirement Savings and add a bit of my own functional experience.  The end goal is to estimate the future value, based on what is happening today.
  1. The duration money will grow (periods)
  2. Current account value, along with the annual additional savings
  3. The Rate of Growth, per period
    Let's look at #1, duration.

    The duration of one year, rounded to the nearest second  is 365 days, 5 hours, 48 minutes and 46 seconds.
    Since I forget where I have put my car keys, it's pretty unlikely I'll remember the factoid above, so I'll use 365.25 days in a year.  Does this lack of precision affect the outcome?  Well, if we are looking at a span of 30 years, I'll be off by about 6 1/2 hours or approximately 2 seconds per day.  Between now and then, an earthquake could change the spin of the earth by that amount.  Remember, we're not shutting down a nuclear reactor, we're only estimating a number. 

    #2, the Account Value and subsequent annual savings

    An HR Department can generally request a data feed from their Recordkeeper for account values on any given day or may be able to pull a report from the Recordkeeper's server for the valuation at the close of business for the prior day.  By the time you get the data, load the data, run the calculations and either post the results or print and disseminate to employees, the Account value is a bit stale (dated).  The subsequent savings in future years is even less precise.  The employee will most likely change the amount of the payment frequently, if for no other reason that the payment is generally a % of Wage and not a specified amount.  Deductions are probably per pay (not annual) & employer match can have entirely different timing. 
    • 2012:  Annual wage ($40,000) * 4% = $1,600
    • 2013: Annual Wage ($41,000) * 4% = $1,640
    Wage inflation, coupled with unknown future events, will most likely cause that annual savings amount to vary.  So, do what?  It won't be accurate, so give up?  Of course not, run the calculations every year and as that person gets closer to retirement, the number should become more meaningful/accurate.

    #3, the Rate of Growth per period

    Make the assumption reasonable (prudent) and I generally suggest 3% net of inflation.  Let's do a look-back on this item (inflation).  A person that is now 65 years old, probably paid about $0.27 for a gallon of gas 45 years ago.  If you had told that 20 year that he'd be paying $3.90 today, your credibility would be in doubt.
    Using a rate of growth net of inflation will remove an unknown factor (inflation), put the estimate in today's dollars and make it meaningful.  I do have customers that insist on incorporating a higher rate of growth and an inflation estimate, but it is a source of confusion for employees and does not improve the estimate in the slightest.  More on that in a subsequent post.

    The probability of any assumed rate of growth actually equaling the final, historical rate is very close to nil.  Look no further than our own Governments' growth rate assumptions and 'success rate' to verify this statement - and they have hundreds of enrolled actuaries and economists crunching numbers, all day, every day.

    As with #2 (Account value and subsequent savings), run the calculations every year and inflation becomes a non-factor.

    We're making a reasonable estimate.  As that person gets closer to retirement , the calculated values should become more accurate.

    If you've been following this series of posts, you'd probably like to see some simple  SQL, with results.
    I named the query 'blog_fvs' and here it is:

    SELECT "blog_fvs"."ee_id" as "ee_id", round("youraccount".fv("blog_fvs"."ee_acct_bal" + "blog_fvs"."rollover_balance" + "blog_fvs"."er_match_balance", 0.03, 65 - ("blog_fvs"."run_date" - "blog_fvs"."date_of_birth") / 365.25) + "youraccount".fvtestpmt("blog_fvs"."annual_wage" * ("blog_fvs"."ee_pct_contribution" + "blog_fvs"."er_match"), 0.03, 65 - ("blog_fvs"."run_date" - "blog_fvs"."date_of_birth") / 365.25)) as "total_future_value"
        "youraccount"."blog_fvs" AS "blog_fvs"
    OFFSET 0

    It would take me an hour to type that query, but it took me about 3 minutes as the sql is auto generated with clicks and a nominal amount of typing.  We'll make a video of that and post early next week.

    Believe me, if I can do it from scratch, anyone can.  Even better, you won't need to even create the query or the original Table.  I will make an SaaS Solution (once I am done) and you will be able to click a button and install the entire solution in 10 seconds.  All you'll need to do is import your own data.

    The answer for the Future Value of our hypothetical person with the following data:
    Birth date: 06/25/1963
    Run date: 08/14/2012
    Employee Account Balance: 17,948.26
    Rollover Account Balance: 151.38
    Employer Match balance: 4,766.82
    (Total Balance of : $22,866.46)
    Assumed growth Rate 3%
    Employee Annual Wage: 50,000
    Employee contribution: 6% of wage
    Employer match: 3% of wage
    Assumed retirement age: 65

    = $126,263

    OK, now we're getting somewhere, though there's still much to be done:
    1. How much retirement income will that chunk of money provide?
    2. How will that 'combine with Social Security?
    3. What will be the eventual Retirement income
    4. Will that be enough?
    5. What does that employee need to do NOW to get to that eventual Retirement Income need?
    It may take an additional 15 or 20 posts, but stick with me.  We are in the process of beginning to do a Retirement Gap Analysis that will answer the question "What should I do ... now?  How much should I save ... now?"  Now that is meaningful Employee communications.

    When we are done, you will be able to install the entire Solution with the click of a button, so hang in there.  You can make an enormous difference in the future retirement of your employees.  

    I think that is good.

    Thanks for reading.

    Tuesday, August 14, 2012

    A *REAL* Simple Employee Table for PostgreSQL Retirement Planning

    There was a time ~ 15 to 20 years ago, when Retirement Plan Recordkeepers were saddled with less than friendly reporting tools.  We would collect data from these Recordkeepers (Quarterly) and design small, unique sets of tables for each plan, along with the output design (print) that would be understandable for each employee, to include Future Values, charts and other communication materials. At one point, we were running 500 Retirement Plans and ~100,000 statements, each with a different print style and most, with very different table designs.

    My point?

    The Table below is extremely simple and does not scratch the surface of a Recordkeeping system - but - it is just enough to run and test our initial PostgreSQL functions.  Any HRIS employee could do the same, with ease.  You wouldn't need a recordkeeper and could run it whenever you chose to communicate to either one - or many employees.  One day of work by one person in an HR Department can change the future of many.  'Too busy', is thin.

    Younicycle has a built-in Table Editor that records mouse clicks, selections & entered text and then creates the SQL.  Anyone (yes, really) can create an SQL Table.  It may not make a lick of sense, but it can be done without knowing a bit of SQL.

    The image below shows the Columns, default (automatic) values and NULL constraints.  Once again, there still are no values in the Table.  Also notice that I'm using double precision (instead of numeric) for many of the datatypes.  There are practical reasons for this that I'll hit on next week.

    So, let's add some values.  See below and note that we do not need to enter values for start_date or annual_growth_rate as we have set Defaults that 'automatically enter' the stated values.

    Pretty simple stuff.  If you are an Employee Benefits Manager, you certainly get much greater detail from your Recordkeeper and chances are high that it will include all of the above + more.

    Next post, I'll show you how to write a query that will use those pgSQL Functions and the data.

    * Note - obviously, you won't want to data enter values for 10 .... or 10,000 employees.  We have a data import dialog for that, which I'll show in a future post.

    Thanks for reading.

    Friday, August 10, 2012

    PostgreSQL & Retirement Planning (Part 2)

    I stopped yesterday with a pgSQL function that will calculate a Future Value, based on a series of equal payments and a specific interest rate.  What I didn't cover was the Future Value of a current account balance.  We will want to be able to add the Future Value of a series of payments to the Future Value of a current balance.  Note that we could combine these two functions into one, but it is easier to check for a mistake if they are separate.  Also a little simpler to explain.

    Let's say an employee participates in a 401(k) Plan and has a current balance.  Ideally, these funds will also grow and based on investment performance (growth rate (i)), years and amount, could make a substantial difference in their future retirement funds.  The pgSQL for that Function would be:

    youraccount.fv(pv double precision, i double precision, n double precision)
    RETURNS  double precision AS
        result double precision;
    result := pv * POWER((1+i), n);
    -- result := POWER(pv * (1+i), n);
    RETURN result;
      LANGUAGE 'plpgsql' IMMUTABLE

    Notice that 'youraccount.' precedes the name of the function, which is 'fv'.  Younicycle's structure is called a 'schema' where each Account = a schema, so 'youraccount' means that this Function will only be loaded & visible within your account.  We call this a Private Function.

    So, if your Account = $1,000, the rate is 4% and the period (n) is 2 (year, let's say), then:
    1000 x 1.04 x 1.04 = 1081.6.

    The two Functions are usually created pretty easily by an Application Developer with even a modest level of knowledge of pgsql, but as of yet, no actual calculation on data has taken place.

    We need a Table to hold the values and then apply the Functions to those values.

    Now I have a choice.  I can make (1) a simple, 'flat table', similar (in appearance only) to a spreadsheet - or (2) I can create several tables, and 'design' a database.  #2 is more time consuming, requires a bit of thought - but is more flexible, powerful and easier to maintain. Option #1 will probably be more understandable to most people and will still 'work', so I'll go with #1.  If this was for 'Production', #2 would be the definite choice.

    more, to include images later today.....

    Thursday, August 9, 2012

    PostgreSQL and Retirement Planning

    If the snippet does not apply to you, then it certainly is relevant to someone that you do know.
    extracted from:

    Preparing for the Ultimate Vacation ( Scott Holsopple)

    "Given the amount of time people spend on their vacation plans, it was alarming to see the Charles Schwab Retirement Income Study, which shows the number of people who have calculated how much income they’ll need in retirement.According to the study, 64 percent of respondents indicated they had less than one year of cash living expenses saved for retirement, and one-third of respondents said they had not even determined what their essential living expenses in retirement would be.

    This study wouldn’t be so overly alarming except for the fact that the respondents were just five years away from retirement."

    A dismal report, by any standard.  Nearly two-thirds that will be out of money after one year and one-third had not even determined their potential living expenses. 

    It's clear that very few have any idea how much money they should have available when they do retire.  Blindfolded and walking in the direction of a known cliff.  It may be too late for the 64% group, though they may need to consider working until age 70 and receive a Delayed Retirement Credit from their Social Security Retirement.  

    This series of posts will focus on those that are more than five years from retirement and still have a chance of achieving a measure of retirement security. Employers should provide these calculations for their employees as part of their ongoing Employee Communications.  Every single employee.

    Younicycle includes an online database component & is built on PostgreSQL, which includes an SQL procedural language (PL/pgSQL) for creating Functions that can calculate the growth of money and use of money.  We have an built-in Editor that allows these Functions to be created online within an account.  The first Function will calculate the Future Value of a series of payments (savings).  At its simplest level, there are three factors:
    • How much you will save per period.  In this case, let's assume the period is 'per year'.
    • How many periods you will save (how many years).
    • How fast will will your money grow? (interest rate per year).
    This is a simple calculation for PostgreSQL, but to get it to work efficiently for a group of employees, we need a few, basic 'objects'.
    • A Table
    • A pgSQL Function
    The code below is not difficult, but would likely be created by an Application Developer, with the 'meat' in red:

    CREATE OR REPLACE FUNCTION fvtestpmt(payment double precision, interestRate double precision, periods double precision)
      RETURNS double precision AS
    return payment*(pow(1+interestRate, periods)-1)/interestRate;

    The image below shows how to create this simple, but powerful Function from within Younicycle.

     But what can a Content Developer or a Human Resources Department do with this Function?  It still appears to be useless.  

    In the next Post, useless will start to become useful as I'll show you how to create a Table to store Employee values and generate a Query that will apply this function to those values.


    Friday, August 3, 2012

    When Do it Yourself (DIY) becomes Grey

    I am an advocate of Do-it-Yourself (DIY), with limits.  I've determined that DIY dentistry is usually off the table and DIY installation of circuit breakers for my home is simply out of the question.  Nevertheless, each specific 'problem' can be evaluated and a judgement can be made on the time & costs required to complete the task.

    "I can't" or "I don't know how" are often used as excuses to sit, do nothing and accomplish the same.  My first question to those responses is typically; "Did you try?", followed by "What did you try?"

    All to often, the response is a variation of a Bart Simpson one-liner; "I can't promise that I'll try, but I'll try to try."

    Younicycle has been designed to enable Content Developers that lack 'coding skills' to collaborate with Application Developers that have those skills.  WYSIWYG tools, in addition to traditionally styled code editors, should allow the yin and yang of project development to move briskly to success.

    We are finding out that there is a grey area, where Application Devs are competent with (example):
    • CSS
    • JQuery
    • SQL
    ......... but freeze in place ('I don't know how') when required to work with Php (example). The solutions available for such a person are:
    1. Do not use Php.  Determine an alternative that will still accomplish the goal.
    2. Learn Php.
    3. Pay someone to do it for you.
    4. Ask for Free help.  This is a societal variation of Open Source Software
    5. If free help is provided, ask for more.
    The gray area begins when # 3, #4 and #5 are combined into their own category. Though we are happy to help, at some point we need to draw a line in the sand.  There is certainly a point where a Dentist or an Electrician says 'pay up'.

    We put a Platform as a Service (PaaS) & Cloud IDE Forum up today, as an alternative for certain types of people.

    Friday, July 27, 2012

    How do you explain Platform as a Service to a 'Normal'?

    Last night I received a letter via our Support page that forced me to think a bit. The summarized text read:  

    "If I purchase your product do I solely own it . Is this a situation where I will need upgrades and add on's and you will be wanting personal information each time. I want to own my db software."

    I think that the concept of Platform as a Service or Software as a Service is a bit befuddling for 'Normals'; those that use the web, but do not grasp the complexity of the environment.

    My response (edited a bit) is below. How would you explain Cloud Software to a Normal?

    "Maybe I can clarify your comment & questions a little. 

    Younicycle (online) is similar to leasing an apartment in a large building. You don't 'own' the apartment, but essentially pay for someone else to make sure that the apartment and its contents are safe, the heat, electric and air conditioning work and that when you go to the apartment building, don't discover that the entire building has somehow gone missing.

    We are the guys that make all of that work, with servers, applications code, database, etc. People work full time to keep everything in good shape. I guess you could say that we are working in the basement, doing code updates and we usually apply these Updates (upgrades) to ALL accounts 1x per week, but we do all of that work in the basement and ideally, you won't even know the mini-upgrade occurred. We couldn't do this work from inside an apartment because the code is in the basement. This is our 'working layer' and it is where WE live.

    So you don't 'own' the apartment - but you do own all the Contents of that apartment. At least we hope you do. If someone (example) pirated a video and stored it inside their Younicycle Account, then they'd be 'storing stolen goods'. If the owner of the video was able to prove that it had been stolen, well, that wouldn't be good.

    Now, if you don't like that, but still like the functionality, then you can buy your own Server (hardware) and you can install a 'small' version of Younicycle on your own box, but you'd better know how to do all the work in the basement - and I can tell you, it's very complicated. Debian Linux, Apache, PostgreSQL, Php + an enormous number of other types of files. All of them need to be maintained and updated. When even one of them requires an update, it can break 6 other items.

    Also, though the distinction is a little muddy for most of us, no one 'owns' a database. Instead we license a database and there are many types of licenses. We use PostgreSQL for Younicycle, a powerful relational database system - but we don't own it. No one does because it is Open Source.

    To reiterate, you own what you put into the account + the stuff you make within the Account, but we own the building. Hopefully that clarifies Younicycle, at least a bit."

    How do you folks explain Platform as a Service? I'm listening ....

    Thursday, July 26, 2012

    Knowledge Management: Access Control List and Role Based Access Control (Part 2)

    Made a video of using our Cloud Software to Administer users and their allowable actions. We're getting slightly more proficient at using Adobe Captivate 6 & by the time we get to video #99, we'll probably know what we're doing. The web interface draws on the built-in capabilities of PostgreSQL. This video covers:
    •  Creating a new Role
    • Assigning privileges for the Role
    • Creating a new user
    • Assigning the new user to the Role
    • Verifying that the User was assigned to the correct Role.
    Everything is select, point or click.  No knowledge of SQL is required.

    Get your popcorn.

    Wednesday, July 25, 2012

    Knowledge Management: Access Control List & Role Based Access Control

    A long, long time ago, I was an Artillery Officer in the Marine Corps with one of my collateral duties being Security Officer for Nuclear weapons.  In order to get that classification, I needed to be:
    • Standing in the wrong place when the Commanding Officer assigned collateral duties
    • Be eligible for & receive a 'Top Secret' Security Clearance, which involved a 10 year Background Investigation.  Yes, guys actually went around and interviewed people that didn't know me very well.
    • Pass a written & physical 'do this' exam, though the details of that process are now muddy.
    When all was done, I had my Top Secret Security clearance, but that was only part of the 'Knowledge Management' puzzleMy Access to documents and information was restricted based on my 'need to know'.  An Artillery Officer had no reason to know non-public details about ICBMs or under development weaponry.  Instead, there was a very specific list of items I would be allowed to see or act upon.  This list is similar to an Access Control List.  My position (Artillery Nuclear Security Officer) was my  Role.  Everyone in the USMC that was assigned that specific Role was also given the same Access Control List of actionable items.

    Our Platform as a Service currently includes 345 Actionable items (Privileges), the sum of which comprise the Access Control List, control of which is usually reserved for the Account Admin.  In fact, even viewing the ACL requires specific Privileges.  These Privileges can be selected  in any combination and when Saved (as a group) are named.  That name is called a Role.  Users are assigned to a specific Role, usually done by the Account Admin.

    A data entry operator would not need 'Objects->Checkout settings->Add Payment system' in order to do data entry nor would a CEO with the equivalent of a 'Top Secret Clearance' require 'Objects -> Solutions-> Delete SaaS Solution package'.  Most damage is unintentional and it is part of  the Account Admin's job to ensure that the CEO does not see a button, say "What does this do?" and potentially nuke 70 hours of work. (Account Admin forgot to schedule auto-backup).

    Younicycle's ACL and Roles are based on PostgreSQL, but the basic concept of Knowledge Management predates any database or computer system.

    My next post will include a video that shows how to use the built-in Access Control List to build a Role and assign Users to the Role.  Knowledge of SQL is not required as it is a simple select and click web interface.

    Double-thanks for reading.  Boring but important.

    Tuesday, July 24, 2012

    Google Provides Taxi Service (Part 2)

    We bought Adobe Captivate 6 last week for Mac & PC and are still familiarizing ourselves with the menus, options and properties, so the first few vids we put out will look like a Novice is at work.  It looks like a duck and in this case, it is a duck.

    We split it into 2 parts and found that the iframe html code to embed in blogger html can be generated at youtube.  Until I did that, it was distressing ugly, even by my less than lofty standards.

    Part 1 shows working with Pixlr (a SaaS) from within Younicycle (a Platform as a Service (PaaS) that creates SaaS) and pushing the image to Picasa.  Part 2 shows pulling the image from Picasa into Younicycle, then viewing the image and including within a Print Design.  The use of the Print Design Tool within Younicycle will be covered in much greater detail in future posts. Once again, we are using Google as a taxi service and data-bridge for the file.

    Managed to become barely competent with Blogger, YouTube + Adobe Captivate 6 within 1 week.  If there is a lesson to be learned here, it is that even older folks can learn new quasi-skills.  I'm 60 and have never had a bit of IT training or courses, anywhere.

    If I can begin to learn new cloud software skills while still maintaining my normal day to day functions, believe me, anyone can.  Labeling yourself as 'too old to learn' is, in the current vernacular, lame.

    Part 1:

    Part 2:

    Friday, July 20, 2012

    Google Provides Free Taxi Service

    As I was about to finish up on yesterday's post and explain how the combination of Younicycle - Pixlr - Google can lead to unexpected integration, I bumped into this post from Loraine Lawson at ITBusinessEdge (excerpt);

    "Cloud integration is going to require planning, some serious investigation into your options, and a hard look at how integration will impact your total cost of ownership for any SaaS solution."

    We didn't plan the partial, younicycle <-> pixlr SaaS integration as I discovered it by accident (aka, messing around), but it wouldn't work if Google did not taxi the data.

    Pixlr can push and pull images to and from Picasa.  Younicycle can push and pull images to and from Picasa, with a kicker - it can be automated as one part of our Google integrated backup serviceThis taxi service and data bridge should allow us to create a wide range of relationships and productivity for those SaaS that have adopted OAuth 2.0 + additional, required Google code.  
    Tomorrow I'll write a short post on how to pull that simple image created at Pixlr from Google and into Younicycle, all done from within a Younicycle, PaaS Account.

    Have a good Friday night and if you need a taxi, Google only transports data, not humans.

    Wednesday, July 18, 2012

    Cloud IDE. Simple can be Good.

     If you make it through the first four paragraphs of this PaaS post, you'll find an interesting idea.

    The web interface displayed below is one page of the Administrative web front-end within an Account.  Within this web interface are 'read-only' items, combination lists, input text fields, buttons, a checkbox and labels with the data being stored and retrieved from PostgreSQL tables.  The web interface was designed by an Application Developer and intended to be used by a Content Developer. 

    Big deal, so what, not impressed?

    What if we provided all of the internal Tools to create a similar web form?  Younicycle does provide all of the tools necessary to build this form, store, retrieve and manipulate the data.  So, the two of you (Content + Application Developer) will be able to create your own complete SaaS and you'll be able to do it online.
    To us, that's the point of a Cloud IDE. Develop online, collaborate, save money, be more efficient.

    On a scale of 0 to 10, I personally rate the difficulty of Settings ... Manage Account ... Details
    as a 0.  It's simple and in this case,  simple is good.  Although this Account set-up form is simple, it applies default values to other aspects of your Platform as a Service Account.  Within this set up form is one hidden Gem that I find particularly useful (Add new link (18 -> 29).

    New, vertical SaaS are popping up every hour, but there is one that I find particularly useful; Pixlr.  
    Pixlr enables you to create and edit images online and like Younicycle, supports GoogleID, OpenID and integrates with other Google services.

    From their Blog: "both Pixlr Editor and Pixlr Express now work with Google Drive."  Well, we do too.  

    Now lets connect the dots.  You have logged into your PaaS account, you go to Settings ...Manage Account .... Details and add a link to Pixlr (# 19 through #22 in the image).  The link we added to pixlr is now available from the Tools menu so we can go directly to pixlr and, using GoogleID (which we also support), I can login to my pixlr account - and do it from within my Younicycle PaaS account.

    Now I use pixlr as usual and either edit an existing image or create a new image.  When I Save I will be given an option of saving to my local PC, or to Google Picasa (+ other options).  Younicycle is ALSO integrated with Google Picasa so pulling that image into Younicycle from Google Picasa is a no-brainer.  

    As a result, we now have integrated one SaaS (pixlr) into the Platform as a Service.  Thus, Younicycle also = an SaaS Aggregator.  

    After log in to pixlr, I work, save to Picasa.  Next Blog, I'll show how to pull that image from Picasa into my Younicycle account.

    Simple is good.  Cloud software.

    Tuesday, July 17, 2012

    The Right Tools for the Job at Hand

    I recently did a tear down of the roof of my 80 year old 28' x 20' garage, just before nature (rain/snow/high winds) did  it for free.  Six layers of shingles, rotten rafters and leaks that allowed easy access & egress for squirrels indicated its life was complete.

    I made my first trip up the ladder with a crowbar and a hammer, flailed for a couple of hours and decided it was time to revise my strategy.  A different set of tools were required or I'd be up there when the snow kicks in four months from now.  Eventually, I settled on a sledgehammer and a sabre saw.  I then learned another factoid; you can't load 80 lbs of shingles and rotten wood into a 3 mm thickness lawn and leaf bag, at least not if you want to get it to the trash without tearing & scattering all over your yard.  I filled 130 heavy duty contractor waste bags and began dragging them 1 x 1 the 40 yards to the front of my house and learned after trip #5 that a wheelbarrow was a real fine invention.  That wheel makes a difference.

    Younicycle is a Platform as a Service, but also has 15 Major Tools and an additional 16 Admin/Helper Tools.  Each of these Tools were designed specifically to allow Developers work together within a Cloud IDE (Integrated Development Environment).  Several of the Cloud IDE Tools are better suited for Content Developers (WYSIWYG), while others enable Application Developers to fully utilize their expertise (Code), such as an integrated Php Editor with SVN - or PGSQL Editor for writing Trigger functions (example).

    We supply the Tools, the safe coding environment, the server resources, the server Admin + on board Experts that will help a bit, but you'll still need to supply the effort.  

    Next time, we'll cover Settings -> Manage Account -> Settings.  Thought it might be interesting to show how to use Younicycle as a SaaS Aggregator.

    Account Details Platform as a Service

    Friday, July 13, 2012

    Let's start with my own fuzzy definitions of Application Developer and Content Developer.

    An Application Developer writes the Code that 'makes things happen'.   The simplest analogy I can run with is a car.  Most of us want to get in, turn the key, put it in reverse, back out of the driveway, stop, shift to drive and be on our way.  If I put it in reverse, touched the accelerator and instead it went forward, rolled onto my wife's garden, then I'd be miffed.

    An Application Developer may categorize this unexpected behavior as a bug and perhaps suggest a workaround, "When you want to back up, just put it in drive and vice versa.  You never explicitly stated that Drive meant Go Forward and Reverse meant Go Back."  Fixing the undesired behavior may only be a 2 minute Javascript edit or could be much more complex and require redesign and thorough testing of the entire transmission.  The Application Developer would likely be in over his head and need to report and document the transmission problem to the manufacturer,  as a bug.  The Application Developer's primary objective is a well-tuned car.

    A Content Developer drives the car.  He/she knows the destination, the planned stops, the expenses to be incurred during travel, the route and most importantly; the purpose and goals of the trip. Typically, the Content Developer will have deep, vertical knowledge of a specific subject, but the underlying code is generally baffling, boring or both.  "I'm on my way to an important sales meeting and I just rolled over my wife's tomato plants.  Now I'm late for the meeting and as an extra, I'll catch an earful when I get back home."  The Content Developer's primary objective is a successful presentation or meeting.  The car is merely a Tool.

    The Content Developer didn't fully describe the intended behavior and assumed the Application Developer was a mind-reader.  In addition, the Content Developer didn't test in a safe environment.  As a result, the meeting was missed, a sale lost and there will be no tomato pie for dinner.

    The Application Developer failed to ask "What should happen when you put it in Reverse?" and also allowed the Content Developer to get in an unsafe vehicle, lose a sale and crush tomato plants.

    They did not collaborate.

    Next week I'll begin to post specifics about the Collaborative Tools that are the Core of the Younicycle Platform as a Service.

    Postnote example:  I bought a Wordpress upgrade for this Blog and for reasons unknown, it removed the sidebar +  cropped the header image and resized the text.  That folks, is a double-bug.  Pay more, get less.
    As a result, I just moved the Blog to Blogspot. Content Developers (such as myself), don't care for unpleasant surprises.
    If there was a way to to create your own SaaS online, easily set up a user payment system, get listed on Google Apps Marketplace and even incorporate Amazon Cloud services, would you be interested?

    That's what this Blog will address.