IBM has open contract positions for Bluemix

IBM has open contract positions for Bluemix in all of ASEAN (SG, MY, TH, ID, PH) for fresh graduates.

IBM Bluemix

IBM Bluemix

Candidate should fit 2-3 of the minimum requirements:
1. Minimum of 2 years in Web Application Development using NodeJS, Java or Go
2. Minimum of 2 years in Android or iOS application development
3. Familiar with Web stack – HTML, CSS and JavaScript.
4. Familiar with MongoDB or other NoSQL (Document-based)
5. Familiar with Relational Database
6. Familiar with Web Services (REST or SOAP) and OOP concept
7. Familiar with cloud environment (IaaS or PaaS)
Bonus points for:
1. Experience or knowledge in data analytics – especially social media analytics
2. Experience in web development framework – Angular JS, jQuery, Bootstrap
3. Skill in other programming language (Ruby, Python, Scala, C#, etc)
4. Conceptual knowledge in MVC or microservices
5. Past experience in using PaaS
6. Experience in IoT related development (Raspberry Pi, Arduino, etc)
7. Degree in Computer Science / Computer Engineer / AI
8. Experience in DevOps – i.e. Continuous Integration, Continuous Deployment is a plus
9. Experience or knowledge in Docker container technology.

To those interested, can send your resume to st.wissel@sg.ibm.com.

Upload and retrieve photos using Amazon iOS SDK and Swift – Part 1

Here a cool tutorial how to upload and retrieve photos using Amazon iOS SDK and Swift. You can learn the foundation here, https://aws.amazon.com/mobile/sdk/.

Amazon Web Services.

Amazon Web Services.

Getting Started.

Before we start the tutorial, I assumed you already registered your account in AWS. Then setup Amazon Cognito and S3 here

Open your Xcode 7.1. Open Xcode and create a new Single View Application. For product name, use RevivalxSwiftAmazonS3 and then fill out the Organization Name and Organization Identifier with your customary values. Enter Swift as Language and make sure only iPhone is selected in Devices.

Single View Application

Single View Application

RevivalxSwiftAmazonS3

RevivalxSwiftAmazonS3

Install CocoaPods in your machine. Follow this tutorial for more details, http://blog.revivalx.com/2015/06/25/using-3rd-party-libraries-using-cocoapods/. Before you execute pod install command, replace with this code and run pod install command.

# Uncomment this line to define a global platform for your project
# platform :ios, '6.0'
use_frameworks!

pod 'Alamofire', '~> 1.2'
pod 'HanekeSwift'
pod 'SwiftyJSON', '~> 2.2.0'
pod 'AWSS3'

target 'RevivalxSwiftAmazonS3' do

end

target 'RevivalxSwiftAmazonS3Tests' do

end
CocoaPods - pod install

CocoaPods – pod install

Go to Main.Storyboard and set to Compact Width | Any Height.

Compact Width | Any Height

Compact Width | Any Height

Go to UIViewController in Main.Storyboard and remove UIView. Then go to Show the Object Library and add UICollectionView in UIViewController.

 

UIViewController - Remove UIView

UIViewController – Remove UIView

 

UIViewController - Add UICollectionView

UIViewController – Add UICollectionView

Hold control button and drag from UICollectionView to yellow square icon like image below. Make sure you select both dataSource and delegate.

 

UIViewController - DataSource and delegate outlet.

UIViewController – DataSource and delegate outlet.

Select the Table View Controller again and in the menu go to Editor > Embed In >Navigation Controller. This adds a Navigation Controller to the storyboard with an initial scene.

Editor > Embed In > Navigation Controller

Editor > Embed In > Navigation Controller

Select RevivalxSwiftAmazonS3. Go to File > New > File… to create a new file. Select Cocoa Touch Class under iOS > Source and click Next.

Choose a template for your new file

Choose a template for your new file

Select UICollectionViewCell from Subclass of. Click Next and Create after you select file directory to save.

UICollectionViewCell

UICollectionViewCell

Select one more time on RevivalxSwiftAmazonS3 group. Go to File > New > File… to create a new file. This time we need to create a bridging header file to user Amazon SDK. Select Objective-C File under iOS > Source and click Next.

Objective-C File

Objective-C File

Name it CustomObject. Click Next and Create.

xcode6 - new file

xcode6 – new file

When adding your .m file, you’ll likely be hit with a prompt that looks like this below and click Yes.

Objective-C bridging header

Objective-C bridging header

Your CustomObject.m and SimpleiOSApp-Bridging-Header.h have been created. Add another .h file and name it CustomObject.hFile > New > File. Select iOS >Source > Header File. Click Next . Name it CustomObject and click Create.

Header File

Header File

Now add Class to Bridging-Header. In YourProject-Bridging-Header.h (For this tutorial is RevivalxSwiftAmazonS3-Bridging-Header.h):

#import <AWSS3/AWSS3.h>;

Copy Cognito Identity Pool Id from Amazon Cognito. Make sure you know region type for Amazon Cognito and S3. Open AppDelegate.swift and update the with this code.

import UIKit
import AWSS3

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?
    var cognitoIdentityPoolId: String = "ap-northeast-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -&gt; Bool {
        let credentialsProvider = AWSCognitoCredentialsProvider(regionType: AWSRegionType.APNortheast1, identityPoolId: cognitoIdentityPoolId)
        
        let defaultServiceConfiguration = AWSServiceConfiguration(
            region: AWSRegionType.APSoutheast1, credentialsProvider: credentialsProvider)
        
        AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = defaultServiceConfiguration
        
        return true
    }

    func applicationWillResignActive(application: UIApplication) {
    }

    func applicationDidEnterBackground(application: UIApplication) {
    }

    func applicationWillEnterForeground(application: UIApplication) {
    }

    func applicationDidBecomeActive(application: UIApplication) {
    }

    func applicationWillTerminate(application: UIApplication) {
    }
}

Continue..

How To Install Zimbra Collaboration Suite 8.6.0 On CentOS 7

Zimbra Collaboration Suite (ZCS) is a groupware product created by Zimbra, Inc. It is widely used in the world. Users can share folders, contacts, schedules and other things, using a very rich web interface. Currently the latest version of Collaboration Suite is Zimbra 8.6.0. It brings new features, improvements in Mail server and it provides a better web client experience. In this tutorial, I will explain how to install Zimbra 8.6.0 on RHEL 7 or CentOS 7.

If you don’t have Digital Ocean account yet, you need to sign up first. Sign Up Digital Ocean. Then you need to deploy your droplet. http://blog.revivalx.com/2014/10/15/deploy-droplet-in-digital-ocean/

Login your VPS via SSH using Terminal (Mac) or Putty (Windows). First, we need to ensure that CentOS 7 is up to date. Therefore, we’ll run the following command:

yum update –y
yum update

yum update

yum update

yum update

Next, we need to install some pre-requisites. Since there are 12 different applications required to install Zimbra, we can handle the installation in one single command:

yum install -y gmp libidn wget nano make nc sudo sysstat libtool-ltdl glibc perl ntp libaio unzip perl-core

Next, we’ll need to install check if postfix is running – if it is, disable it. Since we cannot have two different mail transfer agents running, postfix must go.

service postfix status

If postfix is running, we’ll need to disable it:

service postfix stop && chkconfig postfix off

Setup DigitalOcean DNS for your domain, head over to the DNS tab in the DO control panel. Once there, add your domain.

DNS - Add a Domain

DNS – Add a Domain

Point to mail.aceakl.my (your Droplet FQDN) with a high priority (lowest number).

DNS - Add a Domain

DNS – Add a Domain

Once you’ve added your domain, add the following records to your DNS settings. In this example, the IP address 128.199.72.229 is used for my DigitalOcean Droplet. However, yours will be different, so set this value to your Droplet IP.

DNS - Add a Domain

DNS – Add a Domain

Final result.

DNS - Add a Domain

DNS – Add a Domain

Go to Zimbra official website to get a download link for the latest version of Zimbra.

Zimbra download page

Zimbra download page

And then fetch the file from the Zimbra website. You can use wget to achieve this. Obviously, you’ll need to place the URL you copied earlier into this command rather than using the link here.

wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.RHEL7_64.20141215151110.tgz
wget Zimbra for Centos 7

wget Zimbra for Centos 7

Now we’ll need to edit the hosts file in CentOS to contain the IP address of the Droplet, the FQDN, and name of the server. We can do this by typing:

nano /etc/hosts

Once opened, the hosts file should look similar to the following:

nano /etc/hosts

nano /etc/hosts

Remove IPV6 and this line.

127.0.0.1 Aceakl Aceakl

# The following lines are desirable for IPv6 capable hosts
::1 Aceakl Aceakl
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

You’ll need to edit the file to contain another row with your Droplet’s IP address, FQDN and name. The line should look like the following:

127.0.0.1 localhost.localdomain Aceakl localhost
127.0.0.1 localhost4.localdomain4 localhost4
128.199.72.229 mail.aceakl.my mail

You’ll need to ensure that you replace the above with the actual data values for your Droplet. You should also make sure that you use a tabbed space between each value. This means that you’ll have a host file looking something similar to:

nano /etc/hosts

nano /etc/hosts

Once done, press CTRL+O and then Enter to save. Then press CTRL+X to return.

The next stage is to unpack the tgz file we downloaded earlier. To do this, we can execute the following command:

tar zxvf zcs-*.tgz

Next, change directory into the folder that the files were extracted into:

cd zcs-*

Finally, we can run the installer.

./install.sh --platform-override

Once the installer starts, you’ll need to accept the license agreements by pressing Y at each license prompt.

Accept the license agreements

Accept the license agreements

When you reach the ‘select packages to install’ section, simply press enter at each of the options which will select the default value.

Installing Zimbra packages

Installing Zimbra packages

Type No and Enter.

DNS ERROR resolving localhost.localdomain

DNS ERROR resolving localhost.localdomain

Type Yes and set your domain name.

DNS ERROR resolving MX for localhost.localdomain

DNS ERROR resolving MX for localhost.localdomain

This error is presented by Zimbra because it’s looking for an MX record for the domain ‘subdomain.example.com’. Instead, we want it to search for an MX record for ‘example.com’. This means that we should press Y`, and change the domain name to just ‘example.com’. If you get a port conflict error, you may need to exit the installer and resolve the issue before continuing. You’ll soon reach the configuration page, similar to that below. First we should choose option 3 to allow us to enter the zimbra-store section.

Zimbra main menu

Zimbra main menu

Address unconfigured (**) items (? – help)   7

Next, choose 4. This will allow us to configure the admin username and password.

Select, or 'r' for previous menu [r]  3
Create admin user: [admin@aceakl.my] admin@aceakl.my
Password for admin@aceakl.my (min 6 characters): [MBUKGBcH] password

Next, choose r to return to the previous menu.

Select, or 'r' for previous menu [r]  r

Then, choose 1 to go to the common configuration section.

*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help)   1
Zimbra common configuration

Zimbra common configuration

Zimbra main menu

Zimbra main menu

After this, choose 6 to edit the time zone.

Select, or 'r' for previous menu [r]  6
Zimbra common configuration

Zimbra common configuration

Here, you should choose the number relative to the time zone you’re in. For example, you could type 50 to get the Kuala Lumpur time zone.

Enter the number for the local timezone: [39]  50
Zimbra timezone

Zimbra timezone

Then choose ‘r’ to return and ‘a’ to apply the configuration. You should also choose the log the installation to a file, in case any errors arise.

Select, or 'r' for previous menu [r] r
*** CONFIGURATION COMPLETE - press 'a' to apply

Select from menu, or press 'a' to apply config (? - help) a
Save configuration data to a file? [Yes]  yes
Save config in file: [/opt/zimbra/config.7622] /root/zimbra-installation.txt
Saving config in /root/zimbra-installation.txt...done.
The system will be modified - continue? [No] yes
Zimbra configuration complete

Zimbra configuration complete

The system will then continue the installation. Setup of Zimbra should take about 20 minutes, depending on the Droplet size you selected.

Finally, you’ll be given the option of notifying Zimbra of the installation, which allows them to track the uptake of their products. You can either type ‘yes’ or ‘no’ here, either way, this is the final step of the installation. You can make sure that the installation was successful from the final confirmation message:

Configuration complete – press return to exit
Finishing Zimbra installation zimlets

Finishing Zimbra installation zimlets

It is recommended that you reboot your Droplet.

Accessing The Zimbra Admin Control Panel
The control panel can be easily accessed by visiting the following URL:

https://mail.aceakl.my:7071/zimbraAdmin

Deploy droplet in Digital Ocean

In this tutorial, you will learn how to deploy droplet in Digital Ocean.

Overview

DigitalOcean is an American virtual private server provider based in New York City. The company leases capacity from existing datacenters, including sites in New York, Amsterdam, San Francisco, London and Singapore.

http://en.wikipedia.org/wiki/DigitalOcean

Let’s get start

Go to Digital Ocean. You will see this home page on their website. To sign up, enter your email address and password then click create account.

digital ocean homepage

digital ocean homepage

If you already have the account, you can go to login page and enter your account details.

digital ocean login page

digital ocean login page

After you login, you will directly go to dashboard page where all your droplets will be located here. Currently I already 4 droplets inside Digital Ocean. Click Create Droplet to deploy a new one.

digital ocean dashboard

digital ocean dashboard

Enter your Droplet Hostname.

digital ocean droplet hostname

digital ocean droplet hostname

Select your droplet size. It depends how much your budget monthly and requirements.

digital ocean select size

digital ocean select size

Select your nearest region. Leave it for available settings.

digital ocean select region

digital ocean select region

In select image > linux distributions, you can select which OS you want. For this tutorial, I select Centos 7. For new registration, my images, my backups and destroyed droplets are empty. But you have choice to select any applications for your droplet.  After done all steps, click Create Droplet to complete.

digital ocean select image

digital ocean select image

Wait until it’s finish processing.

digital ocean processing

digital ocean processing

Voilà !! Your droplet already done deployed !! Now you can use it for your own project. Enjoy!!

digital ocean droplet

digital ocean droplet