Total Pageviews

Wednesday, October 7, 2015

API centric devlopment

The shift in software design thinking from User Interface design to API first design.
The plethora of devices, Web, Thin clients, thick clients, varied mobile screens, smart watches, IOTs, touch screens- which produce and consume lot of data to/from the back-end systems, demands diversified User interfaces and user experiences, however the interaction with back system remains same.
Due to proliferation of devices, so the user interaction with the system, the only way to gain control is from API first design approach.  
Abstraction of API interface is critical to orchestrate the back-end interaction, which allows dynamic adoption of User offerings and allows UI developers think without worrying the back-end access mechanisms.
The Internet of Things (IOT)- really driving the paradigm shift and forces developers to think API way.
Amazon AWS, Google, Salesforce, Apple and any large enterprises are all API centric which are creating an echo system to expand their offerings, so their market, by opening APIs to developers. A Win-Win approach.
Larger legacy systems like banks, Insurance companies, Automobile companies what not , shall start API centric design thinking to get ready for the future or perish.
The consequences of failing to adapt to API centric development is huge from un-happy customers, large maintenance costs and outdated service offerings etc.
Mule helps to adapt API centric approach and transcend legacy systems or design new products on latest technology platform whether Cloud or on-premise with out-of-box offerings.
Mule is an open source ESB platform which has strong active developer support.

Friday, August 21, 2015

MAVEN with MULE- Any Point Studio

1. Download latest version of Maven from https://maven.apache.org/download.cgi
(just unzip maven in a folder- no other installation required)

2. Goto Window->preferences->AnyPointstudio->Maven settings
   - Add Maven path in Maven install home directory

3. Go to Window->preferences->Java->Installed JREs
     - JRE location - change to JDK path

Create sample Mule project and try running the app as Maven app.

Now the build process will download all dependent poms and jars, it takes a while

4. While downloading if encounter a problem of permission denied:
add Maven options in (Window->preferences->AnyPointstudio->Maven settings)

MAVEN_OPTS environment variable ad  "-Djava.net.preferIPv4Stack=true" (no quotes)

Wednesday, July 22, 2015

Easiest way to transfer files over LAN in ubuntu

Go to a given directory with cd, then serve the current directory as a web server with the command:
python -m SimpleHTTPServer
On the other machine go to the address http://server-ip:8000/

Friday, July 17, 2015

Setting up Multiple Wordpress sites on EC2

1. Create sub folder with the new site name- in /var/www/html/
2. Copy wordpress folder to the new subfolder
3. Copy index.php to the new sub-folder
4. Go to your phpmyadmin and copy first wordpress database to the new one
5. Edit wp-config.php (inside wordpress folder) with new database name and credentials.

Add virtual host to the file: /etc/apache2/apache2.conf with reference to url

<VirtualHost *:80>                                            
ServerName subdomian.yoursite.com                          
ServerAdmin youremail@email.com                            
DocumentRoot "/var/www/html/thenewsubfolder"                          
</VirtualHost>




Setting up Wordpress sites on EC2

Refer:
http://coenraets.org/blog/2012/01/setting-up-wordpress-on-amazon-ec2-in-5-minutes/

Step 1: Install the Apache Web Server

To install the Apache Web Server, type:
yum install httpd
Start the Apache Web Server:
service httpd start
To test your Web Server, open a browser and access your web site: http://ec2-50-17-14-16.compute-1.amazonaws.com (Use your actual public DNS name). You should see a standard Amazon place holder page.

Step 2: Install PHP

To install PHP, type:
yum install php php-mysql
Restart the Apache Web Server:
service httpd restart
Create a page to test your PHP installation:
cd /var/www/html
vi test.php
  1. Type i to start the insert mode
  2. Type <?php phpinfo() ?>
  3. Type :wq to write the file and quit vi
Open a browser and access test.php to test your PHP installation: http://ec2-50-17-14-16.compute-1.amazonaws.com/test.php (Use your actual public DNS name).

Step 3: Install MySQL

To install MySQL, type:
yum install mysql-server
Start MySQL:
service mysqld start
Create your “blog” database:
mysqladmin -uroot create blog
Secure your database:
mysql_secure_Installation
Answer the wizard questions as follows:
  1. Enter current password for root: Press return for none
  2. Change Root Password: Y
  3. New Password: Enter your new password
  4. Remove anonymous user: Y
  5. Disallow root login remotely: Y
  6. Remove test database and access to it: Y
  7. Reload privilege tables now: Y

Step 4: Install WordPress

To install WordPress, type:
cd /var/www/html
wget http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gzcd
This will uncompress WordPress in its own “wordpress” directory. I like having WordPress in a separate directory, but would rather rename it to “blog”:
mv wordpress blog
Create the WordPress wp-config.php file:
cd blog
mv wp-config-sample.php wp-config.php
vi wp-config.php
  1. Type i to start insert mode.
  2. Modify the database connection parameters as follows:
    define(‘DB_NAME’, ‘blog’);
    define(‘DB_USER’, ‘root’);
    define(‘DB_PASSWORD’, ‘YOUR_PASSWORD’);
    define(‘DB_HOST’, ‘localhost’);
  3. Type :wq to write the file and quit vi
Open a Browser and access your blog: http://ec2-50-17-14-16.compute-1.amazonaws.com/blog (Use your actual public DNS name). This should trigger the WordPress configuration process.

Sunday, June 14, 2015

Migrating Mantis from one server to other in ubuntu

1. tar/zip your mantis folder (in /var/www/)
tar command to compress:
tar -czpf <..tar file name (destination file name with extention:tar.gz)...> <..source directory..>

Extract command:
tar -zxvf <..tar.gz file..>


2. move it to your home folder (/home/ubuntu)

3. Use SCP to copy from remote server to local machine ( can copy directly to another remote server)
4. Use SCP to copy from local server to new remote server

SCP command:
Copy from remote server to local machine:
scp -i <..your .pem file...> user@ip-address:/home/ubuntu/<..tar.gz file..> <..local folder..>

Copy from local machine to remote server:

scp -i <..your .pem file...> <..local folder..> user@ip-address:/home/ubuntu/<..tar.gz file..>

5. Extract mantis tar.gz in remote folder in /var/www folder (Apache, Mysql client and Mysql server and PHP must have installed in new server refer other article to install LAMP)

6. Copy mantis database from old server (can use phpmyadmin to connect to old server)
7. Import mantis database in new server (can use phpmyadmin to connect to NEW server)
8. Can change DB connection setting in config_inc.php inside mantis folder




Tuesday, June 9, 2015

Solution for GWT XULRUnner in GWT designer issue

Solution for GWT XULRUnner in GWT designer issue:

refer: https://packages.debian.org/squeeze/amd64/xulrunner-1.9.1/download


1. You should be able to use any of the listed mirrors by adding a line to your /etc/apt/sources.list like this:
deb http://ftp.de.debian.org/debian squeeze main 
Replacing ftp.de.debian.org/debian with the mirror in question.
For japan mirror:
deb http://ftp.jp.debian.org/debian squeeze main
2. apt-get update

3. apt-get install xulrunner-1.9.1

test:
type: xulrunner-1.9.1

After the xulrunner installation, if eclipse get crashed, when opened the design view, install the folowing from the terminal.

sudo apt-get install libwebkitgtk-1.0-common
sudo apt-get install libwebkitgtk-1.0-0

Saturday, May 16, 2015

Debugging with GWT SuperDev Mode

In Eclipse install SDBG.

follow SDBG installation instructions as per link: http://sdbg.github.io/p2/

then follow the video: http://sdbg.github.io/

Note that: For debugging, both debug and superdev mode shall be running.


Friday, April 17, 2015

Bitnami wordpress EC2 AMI:

Default User: "User"
PWD: check from ec2 instance-Settings->System Log

Mysql Access:

USer: root
PWD: ramdom generated password: check from ec2 instance-Settings->System Log

PhpMyadmin for Bitnami:

From your PC, by which you trying to connect the AWS server:

$ ssh -N -L 8888:127.0.0.1:80 -i bitnami-hosting.pem bitnami@xyz.bitnamiapp.com

to access phpmyadmin:
http://127.0.0.1/phpmyadmin/

user name: root
pwd: random generated password (check from ec2 instance-Settings->System Log)

reference:
https://wiki.bitnami.com/Components/phpMyAdmin

Sunday, April 12, 2015

GWT Eclipse installation issues

GWT not shown in eclipse:
Make sure the Java JDK is as per the min. requirements. JRE is different from JDK.
To make sure: run in terminal:
java - version.


GWT designer not shown ever after all the required plugin are installed:

Use the plugin link from:
https://code.google.com/p/gwt-designer/

from GWT 2.6.0 above, GWT designer is not supported. so use 2.5.1 as gwt sdk version in eclipse preferences, under google.

Saturday, April 11, 2015

Setting Password for new Mysql database on MAC

http://stackoverflow.com/questions/6474775/setting-the-mysql-root-user-password-on-os-x

Try the command FLUSH PRIVILEGES when you log into the MySQL terminal. If that doesn't work, try the following set of commands while in the MySQL terminal
$ mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("NEWPASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
Change out NEWPASSWORD with whatever password you want. Should be all set!


If you don't remember the password you set for root and need to reset it, follow these steps:
  1. Stop the mysqld server, this varies per install (on my MAC: sh-3.2# mysqld stop)
  2. Run the server in safe mode with privilege bypass
    sudo mysqld_safe --skip-grant-tables
  3. In a new window connect to the database, set a new password and flush the permissions & quit:
    mysql -u root
    UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
    FLUSH PRIVILEGES;
    \q
  4. Stop the safe mode server and start your regular server back. The new password should work now. Worked like a charm for me :)

On Mac OSx Mavericks (2014) use sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop|start|restart 

Installing MYSQL, APACHE and PHPMYADMIN on MAC

http://jason.pureconcepts.net/2012/10/install-apache-php-mysql-mac-os-x/


Installing Apache, PHP, and MySQL on Mac OS X

This post outlines installing Apache, PHP, and MySQL on Mac OS X. In addition, I cover configuring Virtual Hosts and installing PHPMyAdmin.

Posted in Main Thread on October 9, 2012
OS X Yosemite Update: Enough changed in Yosemite to make most of this post obsolete. I wrote a new post for installing Apache, PHP, and MySQL on Mac OS X Yosemite.
OS X Mavericks Update: I added steps for existing installs which upgraded to Mac OS X Mavericks. For new installs of Apache, PHP, and MySQL on Mac OS X Mavericks, continue reading.
I have installed Apache, PHP, and MySQL on Mac OS X since Leopard. Each time doing so by hand. Each version of Mac OS X having some minor difference. This post serves as much for my own record as to outline how to install Apache, MySQL, and PHP for a local development environment on Mac OS X Mountain Lion Mavericks.
I am aware of the several packages available, notably MAMP. These packages help get you started quickly. But they forego the learning experience and, as most developers report, eventually break. Personally, the choice to do it myself has proven invaluable.
It is important to remember Mac OS X runs atop UNIX. So all of these technologies install easily on Mac OS X. Furthermore, Apache and PHP are included by default. In the end, you only install MySQL then simply turn everything on.
First, open Terminal and switch to root to avoid permission issues while running these commands.
sudo su -

Enable Apache on Mac OS X

apachectl start
Note: Prior to Mountain Lion this was an option for Web Sharing in System Prefrences → Sharing.
Verify It works! by accessing http://localhost

Enable PHP for Apache

OS X Mavericks Update: You will need to rerun the steps in this section after upgrading an existing install to Mac OS X Mavericks.
First, make a backup of the default Apache configuration. This is good practice and serves as a comparison against future versions of Mac OS X.
cd /etc/apache2/
cp httpd.conf httpd.conf.bak
Now edit the Apache configuration. Feel free to use TextEdit if you are not familiar with vi.
vi httpd.conf
Uncomment the following line (remove #):
LoadModule php5_module libexec/apache2/libphp5.so
Restart Apache:
apachectl restart

Install MySQL

  1. Download the MySQL DMG for Mac OS X
  2. Install MySQL
  3. Install Preference Pane
  4. Open System Preferences → MySQL
  5. Ensure the MySQL Server is running
  6. Optionally, you can enable MySQL to start automatically. I do.
The README also suggests creating aliases for mysql and mysqladmin. However there are other commands that are helpful such as mysqldump. Instead, I updated my path to include /usr/local/mysql/bin.
export PATH=/usr/local/mysql/bin:$PATH
Note: You will need to open a new Terminal window or run the command above for your path to update.
I also run mysql_secure_installation. While this isn’t necessary, it’s good practice.

Connect PHP and MySQL

You need to ensure PHP and MySQL can communicate with one another. There are several options to do so. I do the following:
cd /var 
mkdir mysql
cd mysql
ln -s /tmp/mysql.sock mysql.sock

Creating VirtualHosts

You could stop here. PHP, MySQL, and Apache are all running. However, all of your sites would have URLs like http://localhost/somesite/ pointing to/Library/WebServer/Documents/somesite. Not ideal for a local development environment.
OS X Mavericks Update: You will need to rerun the steps below to uncomment the *vhost Include after upgrading an existing install to Mac OS X Mavericks.*
To run sites individually you need to enable VirtualHosts. To do so, we’ll edit the Apache Configuration again.
vi /etc/apache2/httpd.conf
Uncomment the following line:
Include /private/etc/apache2/extra/httpd-vhosts.conf
Now Apache will load httpd-vhosts.conf. Let’s edit this file.
vi /etc/apache2/extra/httpd-vhosts.conf
Here is an example of VirtualHosts I’ve created.
<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents"
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "/Users/Jason/Documents/workspace/dev"
        ServerName jason.local
        ErrorLog "/private/var/log/apache2/jason.local-error_log"
        CustomLog "/private/var/log/apache2/jason.local-access_log" common

        <Directory "/Users/Jason/Documents/workspace/dev">
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>
The first VirtualHost points to /Library/WebServer/Documents. The firstVirtualHost is important as it behaves like the default Apache configuration and used when no others match.
The second VirtualHost points to my dev workspace and I can access it directly from http://jason.local. For ease of development, I also configured some custom logs.
Note: I use the extension local. This avoids conflicts with any real extensions and serves as a reminder I’m in my local environment.
Restart Apache:
apachectl restart
In order to access http://jason.local, you need to edit your hosts file.
vi /etc/hosts
Add the following line to the bottom:
127.0.0.1       jason.local
I run the following to clear the local DNS cache:
dscacheutil -flushcache
Now you can access http://jason.local.
Note: You will need to create a new VirtualHost and edit your hosts file each time you make a new local site.

A note about permissions

You may receive 403 Forbidden when you visit your local site. This is likely a permissions issue. Simply put, the Apache user (_www) needs to have access to read, and sometimes write, your web directory.
If you are not familiar with permissions, read more. For now though, the easiest thing to do is ensure your web directory has permissions of 755. You can change permissions with the command:
chmod 755 some_directory/
In my case, all my files were under my local ~/Documents directory. Which by default is only readable by me. So I had to change permissions for my web directory all the way up to ~/Documents to resolve the 403 Forbidden issue.
Note: There are many ways to solve permission issues. I have provided this as the easiest solution, not the best.

Install PHPMyAdmin

Unless you want to administer MySQL from the command line, I recommend installing PHPMyAdmin. I won’t go into the details. Read the installation guide for more information. I install utility applications in the default directory. That way I can access them under, in this case, http://localhost/phpmyadmin.
cd /Library/WebServer/Documents/
tar -xvf ~/Downloads/phpMyAdmin-3.5.2.2-english.tar.gz
mv phpMyAdmin-3.5.2.2-english/ phpmyadmin
cd phpmyadmin
mv config.sample.inc.php config.inc.php

Closing

A local development environment is a mandatory part of the Software Development Process. Given the ease at which you can install Apache, PHP, and MySQL on Mac OS X there really is no excuse.