Friday, August 29, 2014

BlueMix projects on GitHub

A quick way to learn BlueMix ,you can leran some demo projects.GitHub a good place to share your project,code ,blog etc to public.Today I will introduce ten BlueMix projects from GitHub.Hope it will help you learn more about BlueMix.

1.Twitter Influencer Analyzer

https://github.com/ibmjstart/bluemix-sample-tia-node

Twitter Influencer Analyzer is a web application which collects data from Twitter, Klout and Google Maps to display influence relationships between twitter users.

This is a Node.js app that uses the following cloud services:
Cloudant NoSQL DB

2.How to Run and Deploy the Node MySQL Upload App

https://github.com/ibmjstart/bluemix-node-mysql-uploader

This is a NodeJS app that uses the following cloud services:
MySQL Database
This app demonstrates how to connect to a MySQL database on codename: BlueMix from a NodeJS app. Simply upload a line-separated file of text (e.g. tweets), and it will add each line to MySQL.

3.bluemix-wordpress
https://github.com/ibmjstart/bluemix-php-frameworks/tree/master/wordpress

Wordpress work on the IBM BlueMix Platform.A step by step guide how to deploy wordpress to BlueMix

4.Building a real-time polls application with Node.js, AngularJS and MongoDB

https://github.com/joelennon/bluemixpolls

This application allows you to create polls - and enables users to vote on polls, with the results updating in real-time. The app accompanies the IBM developerWorks article Building a real-time application with Node.js, AngularJS and MongoDB.

The app uses the following libraries and frameworks:

Node.js
Express
Jade templates
Mongoose
AngularJS
Bootstrap 3
Socket.io
Demo

You can see the app running live at http://bluemixpolls.mybluemix.net/.


5.How to Run and Deploy the Twitter Influence Analyzer

https://github.com/ibmjstart/bluemix-java-sample-twitter-influence-app

his is a Java app that uses the following cloud services:
  • Cloudant
6. Blog application on BlueMix
https://github.com/glynnbird/bluemix_blog
This is a demo application to test out Node.js, Cloudant and BlueMix.

It is a simple blogging application with the data being stored in a Cloudant database. When a blog post is published, it is:

* stored in Clouding
* sent to the MQlight message queue
* each server picks up the item from the message queue and broadcasts it to all connected clients via Websockets

7.How to Run and Deploy the Picture Finder App
https://github.com/ibmjstart/bluemix-picturefinder
Use the IBM Bluemix Location services and Instagram to find pictures near an address. It's written in Node.js and uses the following Bluemix services:

Pitney Bowes Geocoding service

8.BlueMix Job candicate search
https://github.com/IBM-Bluemix/bluemix-hr-outreach

A node.js project to use Linked API to find candicate on the Linkedin

9.BlueMix Cloud Photo Album
https://github.com/dittyQu/CloudPhotoAlbum

A java application to show how to upload photo on the BlueMix

10.db2welcome-bluemix
https://github.com/data-henrik/db2welcome-bluemix
The code shows how to combine DB2 and Python on IBM Bluemix (http://bluemix.net). It requires either a free trial or a regular account and the creation of a SQL DB (DB2) service. The tables (schema.sql) are created using the administration interface, then the data loaded.

Thursday, August 28, 2014

Play fisherman game on BlueMix

I think most of people played a game named fishermen on Andriod or IOS device.I think we can do a html version on BlueMix.I have deployed it on the http://fisherman.mybluemix.net/,you can play it online.

Actually it is a very simple html js project ,I think you can do it yourself.

1.First download the game source code,you can get it from http://pan.baidu.com/s/1i3IHkK9
2.Unzip the code to your disk for example c:\finsherman
3.use cf command to deploy the code.Use cf command to login.

C:\Users\IBM_ADMIN>cf login
API endpoint: https://api.ng.bluemix.net

Username>XXXXs@gmail.com

Password>
Authenticating...
OK
 4.Since the site is static sites,we will use nginx-buildpack to deploy our application.


C:\fishman>cf push -b https://github.com/cloudfoundry-community/nginx-buildpack
fisherman

After deployed,you can launch the http://fisherman.mybluemix.net to play this game.Just enjoy it!

Sunday, August 24, 2014

Cloud computing in China VS BlueMix



The list of 2013, China's cloud computing trend, platform.

The serial number The name of the company The main products The official weibo impression
1. Ali yun Open cloud servers, storage, etc @阿里云 Independent research and development, system integrity cloud platform
2. tencent 云服务器,云数据库等The cloud, cloud database, etc @腾讯 Base + CDN, monitoring and other value-added service
3. baidu BAE、 @百度 Mobile site + integrated development, testing, etc
4. sina SAE、MAE等 @新浪 PaaS cloud computing platform
5. Century interconnection AzureData center/Azure
@世纪互联 n
AzureAzure landing partner in China
6. jd Jingdong open service @京东 series of its cloud application platform
7. Shanda Shanda cloud @盛大云  Support and cool six, independent research and development a cloud platform
8. 360Qihoo 360 Cloud + CDN @奇虎360 Security, electricity, mobile phone, games and other platforms
9. China telecom E surfing,Cloud hosting, physical cloud @中国电信 Basic resources, platform, application and solution
10.. China mobile, Big cloud @中国移动 On the open source software developed cloud platform


Actually I don;t use all these cloud service in China. But I can share my thoughts of using some of these.

1.JAE (http://jae.jd.com/_) is based on the CloudFoundry,it is still of free charge.It support java,python,nodejs,php etc language.Support MySQL、MariaDB、Mongo DB.
2.BAE  (http://developer.baidu.com/cloud/rt)It supports the Node.js,PHP,Python,Java,Static etc language or framework.The latested version is BAE3. It is charged by the usage.
3.Ali Cloud,It is not based on the Cloudy plartform.,More like combine the PASS and IAAS.
One was in July 2013, Alibaba completed a three year plan of “de-IOE”, in other words, not using IBM minicomputers, Oracle Database and EMC storage. Alibaba used computer cluster of low cost PC to build supercomputer, which was the first Chinese internet enterprise to fulfill “de-IOE”. In October 2013, Alibaba finished its 5K plan independently, with a single cluster servers of 5000 computers to complete 100 TB sorting in merely 30 mins. It beat Yahoo’s record in July 2013 of 71 mins. Ali Cloud became the first enterprise to offer 5K cloud computing service.

In future I think Ali Cloud will be a strong cloud competitor in Chinese market since it aims  more domestic  company.

BlueMix based on the cloud foundry  has made major advancements since being announced .
BlueMix Helps Build and Integrate Apps Quickly IBM's new BlueMix services are designed to help businesses rapidly transform using Big Data, mobile and social technologies in the cloud. Some of the new BlueMix services include:
Cloud Integration services to securely connect and integrate an organization's applications and information in the cloud. Developers can use pre-defined connectors for accelerated integration, or develop custom APIs as needed to easily and securely tie back into systems of record behind their firewall. Integrated API management capabilities provide an easy mechanism to publish self-service APIs, that can be shared with the broader API economy. This allows developers to mix cloud-based PaaS, third party cloud applications, and on-premises systems behind security gateways, moving between cloud and on-premises systems in a hybrid, integrated environment. 
Internet of Things services allowing developers to register and connect networked devices such as microprocessors and embedded machine to machine sensors to the cloud, easily aggregating and reacting to data and events in real time. Organizations can build applications which efficiently manage, analyze, visualize, and interact with the massive quantities of temporal and spatial data generated by vehicles, wearables, mobile phones, cameras, computers, sensors and other intelligent devices.
Data and Analytics services for developers to deliver data-centric mobile, web-scale applications. With these new services, including geospatial, time series, predictive scoring, and reporting, developers can easily create sophisticated applications that provide real-time actionable insight so that organizations can predict outcomes and make better business decisions. For example, a developer could create an application that integrates sensor data, location data, weather data and usage trends from a network of equipment to identify and avoid emerging maintenance issues. In addition, new data masking, discovery and audit capabilities help developers create applications with built-in data privacy and security.
DevOps services enabling developers, IT departments and business teams with an open, integrated rapid development environment that scales from individual developers to enterprise teams. The DevOps Continuous Integration service will provide end-to-end "build" capabilities to speed changes through the development process, DevOps Mobile Quality Assurance (MQA) will help analyze user sentiment to spot problems before they go viral, and the Monitoring and Analytics service will identify application problems during development - leveraging analytics to help applications achieve availability and performance goals. In addition, DevOps will include a new RapidApp service that requires no coding, using visual tools to expand the scope of web and business applications developers can create

Friday, August 22, 2014

Git,JazzHub,BlueMix

What is the relationship among of them? Today I will take about this.

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. GitHub is online project hosting using Git. Includes source-code browser, in-line editing, wikis, and ticketing.Pls don;t confuse these two concept of these two words.

You have 2 ways to work with your JazzHub project sourced in Git
Git command tool from git:            http://git-scm.com/downloads
EGit Eclipse client eclipse.org:       http://www.eclipse.org/downloads/

Notes:When you install git command tools for windows ,you need to choose to use git from window command promot mode.
After you install the git,you need to do some command after  installation
git config --global user.name "XXXX"
git config --global user.email XXXX@gmail.com
git config --global core.editor notepad.exe

You can use git config --list to list all the configuration of git.

 IBM DevOps Services(Old Name JazzHub) is a place where you can collaborate with others to develop, track, plan and deploy software.Lets see how we fork  a jazzHub project and get project use git.

First I will fork  one project in  JazzHub,
https://hub.jazz.net/project/arzetry/nodeJS-bluemix/overview
Click the  edit code button and it will go to the web edit mode,I click the fork link to one of my project.

You can use get the git url when you click the Git URL link for this project.
We can use the git client tool to get the code on your local side.
Since  manifest.yml recored the bluemix deployment info,we need to change the previous domain and host.The changes like below.
Use the below  command to submit the changes
git commit -m "change deploy conf"
Push the changes to the jazzhub.
c:\nodeJS>git push origin master
Username for 'https://hub.jazz.net':XXXXX@XXX.com
Password for 'https://XXXX@XXX@hub.jazz.net':
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 318 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2)
remote: Processing changes: refs: 1, done
To https://hub.jazz.net/git/blackwhites/nodeJS
   d47f709..14800f3  master -> master
Open the  manifest.yml again in the jazzhub,you can see the content is already changed.

 After you change the code in WEB-UI,you need to commit the changes on the git.


If you don;t have git client tools you can directly edit the file on the jazzhub web UI.Everytimes when you finish the changes,you need to request a deploy, after that you can see the deployment status.


I go  the bluemix category site,I can directly see the application has already been deployed and also been integrated with GIT.Lets see the application how it look like.
Congulation, you have a basic learn how git,jazzhub,bluemix work together to build a strong collaboration platform to deploy your application.

Tuesday, August 19, 2014

Use RapidApps to create your mobile protype on BlueMix

Recently I noticed that on BlueMix it provide a very cool feature RapidApp.With RapidApps, business developers can design applications for web browsers, tablets, or mobile devices through a graphical user interface. You never have to work with any code or scripts to create a professional application.

Today I will show a simple demo for that.
1.First you need to create a RapidApps service for that leave Apps unbound.
2.After created service you can double click this service it will open the RapidApps console,it might take a while to finish the loading.
3.Enter the console,choose your user and organization,you can begin to create your apps.In the demo I created a application name 'Where is my car?" and input the description about my app.
  4.After created your apps you can see the project dashboard ,you can do some operation on this app
5.Click the data plus link to create a Locations object and add the below attributes for this object.


6.Create your app screen,in our demo we need to create two screen one is called Main Menu and another is called Saved Location menu,
7.Drag a Text object onto the screen and change the text to describe your application. Double-click the text to edit it,also add two button save location and list location on the screen,
8.create another screen Saved Locations.When user click the main screen button save button,it will jump to the saved Locations screen.
9.Drag a form control on the saved locations with data object "location".
In order to automatically to assign the value for the driver ,you need to select Driver control and set the Driver Property to USER_ID.This value is when you login into BlueMix you user id.


9.Now, we can activate the button on the main menu. Select the Main Menu screen. Right-click the Save Location button and select Properties.Set “On click, navigate to” to Save Location

10.To test any screen, you can preview it. On the right-hand side, there is an eyeball icon – click on it
To see a preview of your screen.Notice in the Mobile Browser Simulator menu, you can add multiple devices to see what your application will look like on various form factors.

You can choose andrio or ios device to simulate your apps.
So through this demo you might have a good understanding how easy to use rapidapps to design your app prototype.

Sunday, August 17, 2014

Customize Build Packs for BlueMix

This blog I most will record my learning bluemix experience,I hope my blog will also improve your skills about BlueMix.

If you can't find a starter in the IBM® Bluemix™ catalog that provides the runtime that you want, you can bring an existing buildpack to Bluemix. You can specify a custom, Cloud Foundry-compatible buildpack when you deploy your application by using the cf push command. 


For Bluemix side ,you can use cf  buildpackes command to list all buildpacks they suupported.


If you want to use custmize buildpack for Bluemix, there are several articles you can reference that.I list some links for your reference.So you may use go,php,python,Nginx  buildpack to write your application.

Use a custom Go buildpack with IBM Bluemix
Diving Into PHP and BlueMix
Create a static web site on IBM Bluemix
sing-db2-with-python-on-cloud-foundry

Thursday, August 14, 2014

Cloud app design pattern

Sometimes we use BlueMix we will find some services is not stable, you might not be clear to know these service's status.it is necessary to know the service working status.You can visit the
http://estado.ng.bluemix.net/,it will report all the service status.


When we design the app on the cloud ,we must think about the best pattern and best practices for developing modern applications for cloud platforms.

The twelve-factor app is a methodology for building software-as-a-service apps that:
  • Use declarative formats for setup automation, to minimize time and cost for new developers joining the project;
  • Have a clean contract with the underlying operating system, offering maximum portability between execution environments;
  • Are suitable for deployment on modern cloud platforms, obviating the need for servers and systems administration;
  • Minimize divergence between development and production, enabling continuous deployment for maximum agility;
  • And can scale up without significant changes to tooling, architecture, or development practices.
The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc).The detail content you can visit http://12factor.net/

I. Codebase
One codebase tracked in revision control, many deploys
II. Dependencies
Explicitly declare and isolate dependencies
III. Config
Store config in the environment
IV. Backing Services
Treat backing services as attached resources
V. Build, release, run
Strictly separate build and run stages
VI. Processes
Execute the app as one or more stateless processes
VII. Port binding
Export services via port binding
VIII. Concurrency
Scale out via the process model
IX. Disposability
Maximize robustness with fast startup and graceful shutdown
X. Dev/prod parity
Keep development, staging, and production as similar as possible
XI. Logs
Treat logs as event streams
XII. Admin processes
Run admin/management tasks as one-off processes

Tuesday, August 12, 2014

How to make your application more security on BlueMix

Sometimes people want to make sure their application has no security issue on the cloud.Is there any service support that? The answer is yes,IBM provide a AppScan Dynamic Analyzer service which help you to scan your application on BlueMix and give you scan report,so you can change your code based on the suggestion they provide.

1.for your existing created liberty java project on the BlueMix,you only need to add this service into it.You can find this service through security category.
2.Double click the appscan dynamic analyzer service .add this service to your application.
 3.After created this service for the specified application,you can double click this service.

4.Add your bluemix application url as the scan site.
5.After scan 5-10 minutes,you can see the report has generated.You can download the action part pdf to see the detail action and sugestion.

Monday, August 11, 2014

My Experience of using Enbeddable report on BlueMix

IBM has provide the Embeddable report service on BlueMix platform,how it look like? Today I will write my experience of using this.

Based on the official document,the current report service is still in beta version.It lets you run IBM Cognos Business Intelligence reports within your Bluemix environment. The reporting service is based on Cognos BI and supports content that was authored using Cognos BI Dynamic Query mode. The service runs against supported JDBC data source connections with applications that use one of our supported Bluemix runtime environments. You can use the provided REST-based interface to run reports and easily integrate reporting into your applications.

So let us experience for that. You can get the sample from the below link.
https://www.ng.bluemix.net/docs/#services/EmbeddableReporting/index.html#gettingstartedtemplate
The demostrate sample you can download form the below link.
https://erservice-beta1.ng.bluemix.net/public/sample-1.0.zip.

Some key steps for the sample.
1.Create a java liberty application on BlueMix.Here I named reportsample as the application name.
2.Create there services to bind this application.See below image.
a)MongoDB
The Embeddable Reporting service supports MongoDB as the repository for all reporting artifacts, which include:
  • Report specifications
  • Data source connections
  • (Optional) IBM Cognos Business Intelligence C10 model
b)SQLDB
It keeps the data which you will use this data to render your report based on this data.
c)Embeddable Reporting
It populate the MongoDB repository with your report artifacts from the service console that is associated to your instance of IBM Embeddable Reporting for Bluemix
 3. Unzip the sample,zip you can see below strcture
4.Click the SQLDB service console,upload the branch.csv,products.csv,sales.csv under data folder into the sqldb table.Pls use load data feature to upload you csv to create the db data and table in sqldb service.
5.Pls record the db credntial information for reporting service configuration.You can click
Show Credentials link to check these kinds of info.

For mongo db


{
  "mongolab": {
    "name": "MongoLab-2v",
    "label": "mongolab",
    "plan": "sandbox",
    "credentials": {
      "uri": "mongodb://XXXXXXX.mongolab.com:35257/IbmCloud_2g1be8as_1raue6of"
    }
  }
}

For sql db

{
  "sqldb": {
    "name": "SQL Database-hq",
    "label": "sqldb",
    "plan": "sqldb_small",
    "credentials": {
      "port": 50000,
      "db": "I_992247",
      "username": "XXXXXX",
      "host": "23.246.233.41",
      "hostname": "23.246.233.41",
      "jdbcurl": "jdbc:db2://XXXXXXXXXX:50000/I_992247",
      "uri": "db2://XXXXXXX:XXXXXX@23.246.233.41:50000/I_992247",
      "password": "XXXXXX"
    }
  }
}
6.Launch the Embeddable Reporting service,first you need to connect the mongdb use step 5
mongodb uri list in step five.
 
 
7.After connect,you need to import your report model on that.
8.Update the sqldb credential info based on step 5 and update the value in the provide
 screenshot.
9. Using the cf utility, log in to the Bluemix environment.
 
 Usage: cf login -a https://api.ng.bluemix.net -o <Bluemix ID>
When prompted, enter your email address and password.

The next step push report app on the BlueMix.

cf push reportsample -p  defaultServer
 
10.Launch the report web application through the url.
 

Monday, August 4, 2014

How BlueMix integrated with JazzHub?

There are some new video about BlueMix released on the YouTube.You can learn key aspects of IBM BlueMix strategic technologies.
Rachel Reinitz, Distinguished Engineer and CTO for IBM Bluemix Garage, has three new videos about Bluemix:
BlueMix can full use of Jazz hub feature to manage and deploy your code . I made node.js project as sample .

1.First create node.js project from BlueMix
2.After create the project,you can see a add git button.
3.When click the add git button,it will let you input your jazzhub IBM id.

4.It will prompt you to create git Repository.
5.You will see the Success info.
6.You can see the application page,the page has already integrated with GIT.
7.Click the code button,you can enter the project code edit mode.
8.You can use configure button to change the deploy parameter for the BlueMix.