Tuesday, December 13, 2016

SAP HANA Express - XS Advanced Model - CLI Client

XS command-line tools that enable access to the SAP HANA XS advanced run-time environment.

The procedure described in the documentation did not work for me.

- Create a new organization (for example, called “devteam1”) for the development team.

# xs create-org devteam1

- Create a new space (for example, called “DEV”) for the development team. The space “DEV” will be assigned to the organization “devteam1”.

# xs create-space DEV -o devteam1

- Assign roles to the <USER> user for the run-time organization (“devteam1”) and space (“DEV”).

# xs set-org-role <USER> devteam1 OrgManager
# xs set-space-role <USER> devteam1 DEV SpaceDeveloper

All these organization / spaces can be created under "XS Advanced Administration and Monitoring Tools"  -> "Organization and Space Management"


Monday, December 12, 2016

SAP HANA Express - XS Advanced Model - Provision the UAA service with xs-security.json

Important part below, in bold:

Next we need to update our tiny_uaa service with the new authorization configuration defined in the xs-security.json file. To do that you first need to download the xs-security.json file from your project in Web IDE to a folder accessible from your command line tool. Then, we will delete the service (which we provisioned in part 10 of this tutorial (Add authentication) for testing authentication) and recreate it with the new security definitions.

Run the following xs commands:

xs delete-service tiny_uaa
xs create-service xsuaa devuser tiny_uaa -c ./xs-security.json    


Wednesday, October 26, 2016

SAP Trials - SAP NetWeaver 7.5 SP1 AS ABAP and SAP BW on SAP HANA - Annotations (2)

Creating artifacts via SQL: do not have benefit of creating the objects in the repository, no transport or versioning;

Catalog artifact:

- Creating schema: file suffix <schema_name>.hdbschema

- Creating table: file suffix <table_name>.hdbtable

<tablename>.hdbtable - A syntax used to define a design-time representation of a table

What is the main advantage of the design-time approach to data modeling? Transportability of data models between SAP HANA systems

- Creating sequences: file suffix <sequence_name>.hdbsequence

- Creating views: file suffix <view_name>.hdbview

- Creating roles: file suffix <role_name>.hdbrole

Related to file .xsprivileges

System user _SYS_REPO is the owner of the objects.

Grant authorization to user - call stored procedure: call _SYS_REPO.GRANT_ACTIVATED_ROLE('sap.hana.democontent.epm.roles::Admin','SYSTEM');

Wrong way to get authorizations:

After creating the schema, it is not visible under Systems -> Catalog; Execute the following SQL:

                'select, create any, insert, delete, update, execute, alter, drop',


SAP Trials - SAP NetWeaver 7.5 SP1 AS ABAP and SAP BW on SAP HANA - Annotations (1)

Some of the default settings when deploying the captioned system image into the AWS:

- System ID: HDB
- System number: 02
- HANA database server name: vhcalhdbdb
- HANA XS host:port - vhcalhdbdb:8002

1. In Eclipse HANA Development, the system is already added, just log-on with user SYSTEM and the master password.

2. Setup repository workspace in local PC:

Core application files:

  • Application descriptor (.xsapp): marks web content root;
  • Application access (.xsaccess): 
    • exposes web content;
    • sets user/client authentication mechanism;
  • (.xsprivileges):
    • authorizations, access levels;

Both files are created automatically when creating a new project.

Seems that the commit is automatically executed.


Wednesday, October 19, 2016

SAP Trials - SAP NetWeaver 7.5 SP1 AS ABAP and SAP BW on SAP HANA

1. Go to SAP developer portal (http://go.sap.com/developer.html) and select "Trials/Downloads". Search the desired product, in my case is "SAP NetWeaver 7.5 SP1 AS ABAP and SAP BW on SAP HANA" and click on "Trial" link.The Cloud Appliance Library (CAL) will be loaded;

2. Set-up the CAL account if necessary;
3. Sign-up for a AWS account (aws.amazon.com), i've chosen the basic plan which is free. Follow all instructions to activate the AWS account, which involves a phone call in order to input an activation code;

4. After AWS account is ready, go to Services -> Identity and Access Management (IAM) -> Users -> Create New Users -> Create User Name e.g. "sap_cal_user". The user name here does not really matter, can be any name. What really matters is the user credentials in the next step;

5. Download the "User security credentials". Keep this file in a safe place;

6. Under IAM, go to Groups -> Create New Group e.g. "sap_cal_group" and assign policy "AdministratorAccess" to the group;

7. Still under IAM -> Groups, assign the the user "sap_cal_user" to the group "sap_cal_group";
That's all needed to prepare the cloud service provider account;

8. The CAL will deploy two instances (or virtual machines):

- SAP Frontend (type m3.medium)
- Linux (type r3.2xlarge)

The instance type (r3.2xlarge) for the Linux instance, by default, is not included in the Basic AWS account and must be requested before deploying the SAP trial; For that, go to console.aws.amazon.com/ec2/ , select on the top right the region where the VM's will be deployed - US East (N. Virginia) - click on "Limits" in the left menu and search for "r3.2xlarge". In case the limit is zero (as the sample below), it's necessary to request limit increase. 

9. Deploy SAP trial / developer edition using CAL: go to www.sap.com/abaptrial - it will redirect to a blog post. Go to the "Get Your Free Virtual Appliance" section and select the desired version e.g. "SAP NetWeaver 7.50 SP1 AS ABAP and SAP BW on SAP HANA [Developer Edition]".
10. Log-in into CAL and follow the steps to create the instance;

Cloud Provider: Amazon Web Services
Access Key: Provided in user security credentials of "sap_cal_user" (step 5);
Secret Key: Provided in user security credentials of "sap_cal_user" (step 5);

11. Enter Instance Details:

Name: e.g. HANADEV1
Region: must be "us-east-1"
Password: <@#$%>

Click on "Create" button

12. Download the .pem file with the certificate;

13. Wait the instance to be created (around 60 minutes);

Wednesday, September 28, 2016

archlinux - some installed apps

Video players:

1. smplayer (have all required codecs)
2. parole

Additional install: gstreamer

Video editing: kdenlive

Disk usage overview: xdiskusage

Sunday, September 18, 2016

archlinux: annoying missing icons

I had a fresh install of Archlinux running GDM with Gnome and Xfce.
After installing a couple of apps (Firefox and Chrome) the icons were missing in the menu entries.

By running the below command as root and restart, the issue is fixed.

# gtk-update-icon-cache -t -f /usr/share/icons/hicolor


Saturday, September 17, 2016

archlinux - virtual machine essential

Some applications (e.g. Firefox, SDDM) requires the video driver to be installed when running in a VMware virtual machine:



Tuesday, September 13, 2016

The dream is over

For the last 3 weeks I was involved in a series of phone interviews for a job position in a famous company in the Netherlands. My level of confidence was increasing after each interview. The last interview was the toughest one, that included video conference with the IT team and several technical questions with coding on the go, together with a business question.

Saturday, September 3, 2016

archlinux / gdm - execute commands at initialization

In order to execute commands at the beginning of the X user session - before the window manager is started -  the xprofile file can be used. The xprofile file is similar in style to xinitrc.

Firstly, create the file ~/.xprofile if it does not exist already. Then, simply add the commands for the programs you wish to start with the session.

- https://wiki.archlinux.org/index.php/xprofile

archlinux - touchpad driver

In my old Presario V3000 the touchpad was working after installation, however the behaviour was a bit strange: the sensitivit was too high and when touching the cursor change the position on screen, like the touchpad area is related to a fixed position on screen.

To resolve this, the synaptics driver was installed.

# pacman -S xf86-input-synaptics

Then perform the configuration:

"The primary method of configuration for the touchpad is through an Xorg server configuration file. After installation of xf86-input-synaptics, a default configuration file is located at /usr/share/X11/xorg.conf.d/70-synaptics.conf. Users can copy this file to /etc/X11/xorg.conf.d/ and edit it to configure the various driver options available."

Example of configuration file with some common options, including vertical, horizontal and circular scrolling as well as tap-to-click:


Section "InputClass"
    Identifier "touchpad"
    Driver "synaptics"
    MatchIsTouchpad "on"
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"
        Option "VertEdgeScroll" "on"
        Option "VertTwoFingerScroll" "on"
        Option "HorizEdgeScroll" "on"
        Option "HorizTwoFingerScroll" "on"
        Option "CircularScrolling" "on"
        Option "CircScrollTrigger" "2"
        Option "EmulateTwoFingerMinZ" "40"
        Option "EmulateTwoFingerMinW" "8"
        Option "CoastingSpeed" "0"
        Option "FingerLow" "30"
        Option "FingerHigh" "50"
        Option "MaxTapTime" "125"

Alternatively, the Graphical tool "GPointing Device Settings" can be installed to provides graphical on the fly configuration for the pointing device

# pacman -S gpointing-device-settings


Saturday, August 27, 2016

archlinux - tricky wifi configuration

For some reason I cannot explain, the wireless adapter in my old laptop Compaq Presario V3000 gets both Soft and Hard blocked. As a result, the connection to a wireless access point is not possible either using # wifi-menu or # netctl.

The solution:

1. Check whether the wireless lan is blocked:

# rfkill list

2. In case it is hard blocked, then unblock it:

# rfkill unblock wifi

3. Run the wifi-menu, connect to the wlan and generate the profile (/etc/netctl/<profile_name>)

4. Make the netctl auto start at boot:

# netctl enable <profile_name>

To run all these commands, maybe it's necessary to install some packages:

- rfkill
- wpa_supplicant
- wpa_supplicant_gui
- iw
- wireless_tools
- dialog


Tuesday, August 2, 2016

ubuntu 16.04 LTS - old crap cheap USB mouse issue

I've been testing several linux distributions in my old laptop - HP Pavilion dv6 - and I was stuck with one curious case involving an old crap cheap USB mouse.

During ubuntu installation (running live cd) the mouse works just fine, no problems whatsoever. It can be plug - unplugged many times and it just works. However, after completing the installation on the hard disk and boot, the USB mouse no longer works.

After looking into this matter in google, the solution was to remove gnome-software package, which is related to the ubuntu software center.

Another possible solution was:

# sudo rmmod usbhid
# sudo modprobe usbhid

However it is just a temporary solution and must be executed after reboot, for example.


Friday, July 22, 2016

archlinux - fonts (chinese)

Fonts and font collections in the enabled repositories can be installed using pacman. Available fonts may be found by using:

# pacman -Ss font

The font or font collection wqy-zenhei solved the problem of displaying chinese characters on Chromium and Firefox browsers:

# pacman -S wqy-zenhei

List of ordinary fonts:

adobe-source-code-pro-fonts (Adobe)
adobe-source-sans-pro-fonts (Adobe)
adobe-source-serif-pro-fonts (Adobe)


Wednesday, July 20, 2016

archlinux - graphical user interface

The below configuration has a great performance; it's been running on an old laptop Intel Centrino 1.7Ghz with 1Gb RAM and 100Gb HDD

Display server: Xorg

# pacman -S xorg-server xorg-server-utils xorg-apps

Display drivers: intel

# pacman -S xf86-video-intel

Desktop environments: Xfce

# pacman -S xfce4 xfce4-goodies xfce4-whiskermenu-plugin

xinitrc: The ~/.xinitrc file is a shell script read by xinit and by its front-end startx. It is mainly used to execute desktop environments, window managers and other programs when starting the X server (e.g., starting daemons and setting environment variables). The xinit program starts the X Window System server and works as first client program on systems that are not using a display manager.

- first create a copy of the default xinitrc in home directory:

# cp /etc/X11/xinit/xinitrc ~/.xinitrc

- Append desired commands and remove/comment the conflicting lines.


if [ -d /etc/X11/xinit/xinitrc.d ] ; then
    for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
        [ -x "$f" ] && . "$f"
    unset f

# twm &
# xclock -geometry 50x50-1+1 &
# xterm -geometry 80x50+494+51 &
# xterm -geometry 80x20+494-0 &
# exec xterm -geometry 80x66+0+0 -name login

## some applications that should be run in the background
xscreensaver &
xsetroot -cursor_name left_ptr &

exec startxfce4

- when executing # startx the graphical user interface will be displayed, in this case Xfce

Desktop environments: GNOME

#  pacman -S gnome gnome-extra

- same as Xfce, first create a copy of the default xinitrc in home directory and append desired commands and remove/comment the conflicting lines.

exec gnome-session

Display manager: GDM

# pacman -S gdm
# systemctl enable gdm.service

Enable Network to be managed using GUI:

# pacman -S networkmanager network-manager-applet dhclient
# systemctl enable NetworkManager.service


Sunday, July 10, 2016

archlinux - openssh server

Piece of cake!

# pacman -S openssh

- The SSH daemon configuration file can be found and edited in /etc/ssh/sshd_config.

Enable the sshd service (start on every boot):
# systemctl enable sshd.service


archlinux - VMWare tools

Straightforward guide from arch wiki.

- Install the dependencies using pacman: base-devel (for building), net-tools (for ifconfig, used by the installer) and linux-headers (for kernel headers).
# pacman -S net-tools

- Create bogus init directories for the installer:
# for x in {0..6}; do mkdir -p /etc/init.d/rc${x}.d; done

- The installer can then be mounted:
# mount /dev/cdrom /mnt

- Extracted (e.g. to /tmp):
# tar xf /mnt/VMwareTools*.tar.gz -C /tmp

- And started:
# perl /tmp/vmware-tools-distrib/vmware-install.pl

- Reboot the Virtual Machine:
# systemctl reboot

- Log in and start the VMware Tools:
# /etc/init.d/rc6.d/K99vmware-tools start

Additionally, autostart of VMWare tools on every boot.

- Create the following text file:
# nano /etc/systemd/system/vmwaretools.service

Add the following text:
Description=VMWare Tools daemon

ExecStart=/etc/init.d/vmware-tools start
ExecStop=/etc/init.d/vmware-tools stop


- To have it start at boot write the following in the terminal:
# systemctl enable vmwaretools.service


Friday, July 8, 2016

archlinux - installation

Just another learner's howto install the archlinux on top of VMWare VM.

1. Download from http://arch-mirror.wtako.net/iso/2016.07.01/archlinux-2016.07.01-dual.iso the latest version as of july/2016 (from HK mirror) or choose from the available hosts from https://www.archlinux.org/download/

Then boot from ISO to begin proper installation. It will automatically login with root user.

- check whether the internet connection is working:

# ping -c 3 google.com

The DHCP daemon is supposed to start automatically when running the live system from ISO. If it does not work, check network configuration page (reference below).

2. Preparing storage (partitioning and formatting)
- Identify the devices where the new system will be installed:

# lsblk

Usually, and I believe for most of cases, the device name is SDA.

- Partitioning: the plan is to make simple partition using GPT format:
/dev/sda1 - BIOS boot partition
/dev/sda1 - boot (512mb) with bootable flag
/dev/sda2 - swap (2gb)
/dev/sda3 - root (remainder)

To achieve this, I am going to use # parted as per below:

# parted /dev/sda

parted prompt:
# mklabel gpt
# mkpart ESP fat32 1MiB 513MiB
# set 1 boot on
# mkpart primary linux-swap 513MiB 2.5GiB
# mkpart primary ext3 2.5GiB 100%
# quit

- Formatting: execute # lsblk to see whether the partitions were created correctly.
# mkfs.fat -F32 /dev/sda1 #first partition - boot
# mkswap /dev/sda2        #second partition - swap
# swapon /dev/sda2        #activate swap
# mkfs.ext4 /dev/sda3     #third partition - root

3. Mounting the partitions:
# mount /dev/sda3 /mnt       #Mount the root partition
# mkdir -p /mnt/boot         
# mount /dev/sda1 /mnt/boot  #Mount the boot partition

4. Installing the base package:
# pacstrap -i /mnt base base-devel grub sudo vim net-tools linux-headers abs 

5. Configuring the system:
- Generate FSTAB
# genfstab -U /mnt >> /mnt/etc/fstab

- Chroot to new mount system root
# arch-chroot /mnt /bin/bash

- Setup Locale and Time:
edit /etc/locale.gen and uncomment the needed localisations e.g. en_US.UTF-8 UTF-8. Save the file, and generate the new locales:
# nano /etc/locale.gen
# locale-gen

create file /etc/locale.conf with the uncommented lines e.g. en_US.UTF-8
# echo LANG=en_US.UTF-8 >> /etc/locale.conf

select a time zone and create the symbolic link /etc/localtime, where Zone/Subzone is the TZ value from tzselect:
# tzselect
# ln -s /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime

6. Installing a boot loader: there are few choices for boot loaders; the one that is going to be installed is GRUB:
# grub-install /dev/sda
- since this system is being installed in a virtual machine, the above command will result in a error; as a result, the option --force must be added as below:
# grub-install --force /dev/sda
- at last:
# grub-mkconfig -o /boot/grub/grub.cfg

7. Re-generate the initramfs image:
# mkinitcpio -p linux

8. Adjust network configuration for the next boot:
# cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/ethernet-dhcp
- edit the new profile /etc/netctl/ethernet-dhcp - line interface with the correct network adapter (may be obtained by command ip link);
- start the netctl:
# netctl start ethernet-dhcp
- make the netctl auto start at boot:
# netctl enable ethernet-dhcp

9. Set the root password:
# passwd

10. Set the hostname:
# echo any_hostname >> /etc/hostname

update 2016-09-11 - The hostname can be set after initial reboot by using the following command:
# hostnamectl set-hostname <any_hostname>

11. Add new users:
# useradd -m -g users -G wheel -s /bin/bash user_name
# passwd user_name

12. Allow new users to sudo:
# visudo
and uncomment the lines below:
## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL

13. Exit from the chroot environment, umount the partitions and reboot the system:

# exit
# umount -R /mnt
# reboot

14. Syncronize and update the system:
# pacman -Syu


Friday, May 13, 2016

FreeBSD Virtual Machine: Update ESXi 6.0 U2 and reinstall VMware tools on FreeBSD

For ESXi host update, just followed the guide from TinkerTry.com:

# esxcli network firewall ruleset set -e true -r httpClient
# esxcli software profile update -p ESXi-6.0.0-20160302001-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
# esxcli network firewall ruleset set -e false -r httpClient

A reboot is required at the end of the update process.

Additionally, the vSphere Client must also be updated.

At the end of ESXi host update, the FreeBSD virtual machines complained about the VMWare tools being "unsupported".

First, uninstall the current VMWare tools:

# cd /usr/local/bin
# perl vmware-uninstall-tools.pl

Then, install the new version of VMWare tools by following this post. But note that if you try to run the tools with ./vmware-install.pl, you may get an error "command not found" . That's because the provided script is looking for perl under /usr/bin. As of FreeBSD 10.1, perl is no longer a system binary and after the install, the binary is under /usr/local/bin.
So, edit the following files and replace /usr/bin/perl with /usr/local/bin/perl in the following three files.

  • vmware-install.real.pl
  • /usr/local/bin/vmware-config-tools.pl
  • /usr/local/bin/vmware-uninstall-tools.pl


Wednesday, May 11, 2016

VMWare - Deploying the vCenter Server Appliance 6.0 halts with a blank warning

Potential errors during appliance deployment:

1. When deploying the vCenter Server 6.0 Appliance (...) you experience these symptoms:
After clicking Connect to target server, using a vCenter Server to deploy the new appliance, you see a blank error message at the top of the deployment wizard.
You are unable to move beyond the Connect to target server step when attempting to connect to a vCenter Server.

Solution: To resolve this issue, upgrade the Client Integration Plugin installed on your workstation. For informaiton on locating and installing the latest plugin, see the Install the Client Integration Plug-In section in the vSphere Installation and Setup guide.

2. When deploying the vCenter Server 6, on step 9. Network Settings, the FQDN and IP addresses entered here must be resolvable by the DNS server specified or the deployment will fail.


Monday, April 25, 2016

FreeBSD: speed test util

Just saw on youtube how to run the speed test in the terminal. Not sure if it is the same as http://www.speedtest.net/ but it looks very similar.

Thursday, April 14, 2016

FreeBSD: Jails (4) - Thin jails using NullFS and template

As stated on chapter 14.5 of FreeBSD handbook (Updating Multiple Jails):
"The management of multiple jails can become problematic because every jail has to be rebuilt from scratch whenever it is upgraded. This can be time consuming and tedious if a lot of jails are created and manually updated.
This section demonstrates one method to resolve this issue by safely sharing as much as is possible between jails using read-only mount_nullfs(8) mounts, so that updating is simpler. (...) Additionally, it provides a simple way to add, remove, and upgrade jails."
So the idea now is to try this method of creating a template that can be reused to deploy as many jails as necessary and also make the update and/or upgrade of existing jails easier.

Thursday, March 31, 2016

One year in the limbo

Seems like yesterday: I used to have a job and needed to go to office every morning. Today I realised that I've been doing nothing for one year. ONE YEAR AT HOME!!!
Well, that's life. I knew since the beginning of this journey that it would not be easy. I moved to Hong Kong in August 2010 and I was lucky enough to find a job with a pretty good rate, but it lasted only 4 years.

A summary of my skills and abilities:
- SAP technical - ABAP development (very experienced);
- SAP functional - CRM / SD / MM;
- Advanced knowledge in following modules: CRM / SD / MM (both functional and technical); FI / CO / WM / QM / CS / PP (technical);
- Experience in GENIL / BOL / BSP / WebUI;
- Experience in performance analysis / improvement;
- Experience in troubleshooting / debugging;
- SAP console / RF transactions (MM/WM);
- SAPScript and Smartforms;
- Data migration using LSMW, BDC, custom programs;
- ALV, BAPI, user-exits, BADIs, etc...

I am willing to relocate. In case of any good job opportunity, please leave me a message.

Thanks a lot!

Tuesday, March 22, 2016

FreeBSD Jails - VIMAGE - firewall

VIMAGE jails has its own virtual network stack, therefore it is a good idea to enable a firewall (IPFW):

- add the following to /etc/rc.conf inside VIMAGE jail:

# PF Firewall

The available firewall types are:
  1. open: passes all traffic.
  2. client: protects only this machine.
  3. simple: protects the whole network.
  4. closed: entirely disables IP traffic except for the loopback interface.
  5. workstation: protects only this machine using stateful rules.
  6. UNKNOWN: disables the loading of firewall rules.
  7. filename: full path of the file containing the firewall ruleset.

If firewall_type is set to either client or simple, modify the default rules found in /etc/rc.firewall to fit the configuration of the system.

Note that the filename type is used to load a custom ruleset.

Update: I only got IPFW firewall working in jail after enable it in host as well.


Sunday, March 20, 2016

FreeBSD Virtual Machine running jails and VIMAGE: Promiscuous mode

This one I got in the FreeNAS documentation: after setting up the VIMAGE jail in the FreeBSD version 10.1 running on top of VMware ESXi host, I was not able to connect to the internet from the jail. Using the FreeBSD VM host was normal, the internet connection was there. I've tried the below commands:

ping -c 2 google.com
nc -z -w 2 google.com 80

Later on I found this little comment on the FreeNAS documentation:

(...)If you are using VMware, make sure that the vswitch is set to “promiscuous mode”.

That's what I did, and voilá! Problem solved!


Saturday, March 19, 2016

FreeBSD: system update with custom kernel

One reminder when updating a FreeBSD system running a custom kernel: when applying the security patches using command


the custom kernel must be rebuilt and reinstalled, as stated in the handbook:

"(...)Only the GENERIC kernel can be automatically updated by freebsd-update. If a custom kernel is installed, it will have to be rebuilt and reinstalled after freebsd-update finishes installing the updates. However, freebsd-update will detect and update the GENERIC kernel if /boot/GENERIC exists, even if it is not the current running kernel of the system.(...)"

Refer to FreeBSD: Jails (3) - VIMAGE to build and install a custom kernel.


FreeBSD: Jails (3) - VIMAGE

In order to create a jail with its own virtual network stack, with its own network interfaces, addresses, routing table and so on, the kernel must be compiled with the VIMAGE option for this to be available.

Friday, March 11, 2016

Concrete jungle: Hong Kong

Bank of China - Central

One Pacific Place - Admiralty

Shangri-la Hotel - Admiralty

Conrad Hotel - Admiralty

Lippo Centre - Admiralty

Far East Finance Centre - Admiralty

United Centre - Admiralty

International Commerce Centre (ICC), The Harbourside and The Arch - West Kowloon 

China-Hong Kong City - Tsim Sha Tsui

The Gateway Tower 2 - Tsim Sha Tsui

Harbour view from China-Hong Kong City - Tsim Sha Tsui 

Victoria Towers - Tsim Sha Tsui

The One - Tsim Sha Tsui

Jardine House - Central

View of Central from Central Harbour Front Event Space

Bank of China and Cheung Kong Center - Central

HSBC Headquarters Building - Central

HSBC Headquarters and Standard Chartered Building - Central

Friday, March 4, 2016

FreeBSD: pkg / installing nano

I've already installed additional software from the ports collection, now I'll try to use pkg. From the man page, the pkg is a package management tool. The difference is that you can use the FreeBSD Ports Collection for installing from source, and packages for installing from pre-built binaries.

- Upgrade the pkg
pkg upgrade (answer yes for all questions, if any)

- Installing nano text editor
pkg install nano


Wednesday, February 24, 2016

FreeBSD: Update and Upgrade

Updating, or applying security patches, is quite straightforward:

freebsd-update fetch
freebsd-update install

The first command will determine if any outstanding patches are available, and if so, will list the files that will be modified if the patches are applied. The second command will apply the patches.

Upgrades are divided in two types: minor and major upgrades:
- Upgrades from one minor version of FreeBSD to another, like from FreeBSD 10.1 to FreeBSD 10.2, are called minor version upgrades;
- Upgraded from one major version to another, like from FreeBSD 9.X to FreeBSD 10.X, are called major version upgrades.
Both types of upgrades can be performed by providing freebsd-update with a release version target:

freebsd-update -r 10.2-RELEASE upgrade


Thursday, February 18, 2016

Chinese New Year Holiday: Orlando

I've been to Orlando, Florida in January 1999, I was 16 at that time. I still remember the old airplane that took the group from GRU (São Paulo) to MCO (Orlando) with a quick stop in Trinidad and Tobago for refuel. The Orlando trip was based on four main Disney parks, Universal studios (at that time the Island of Adventure was under construction or about to open, I guess), Bush Garden and Sea World. At the end we went to Miami by bus, mainly for shopping, and then came back to São Paulo.

Now I had the opportunity to go back to Florida with my family, at this time in February 2016 during Chinese New Year break. The weather is about the same (cold!!!) and now the journey started from HKG (Hong Kong) with stops in SFO (San Francisco) in the outward journey, and ORD (Chicago) when returning.

Tuesday, January 19, 2016

FreeBSD: configuring sudo

- In order to use the sudo program, it's necessary to log in as root and execute the following command to edit sudo configuration file:

sudo visudo

which is basically editing the configuration file /usr/local/etc/sudoers using vi text editor.

- To allow the admin user to use sudo program, the following line was added:

admin ALL=(ALL) ALL

- This is a very basic and straightforward configuration. For more options and security, it must be enhanced later on depending on your operating system configuration and purpose.


FreeBSD: easy way to find and install ports

- Use the command whereis to find ports e.g. sudo:

root@FreeBSD:/ # whereis sudo
sudo: /usr/ports/security/sudo

- cd into /usr/ports and use command make search name=program name

root@FreeBSD:/usr/ports # make search name=sudo
Port:   sudo-1.8.15
Path:   /usr/ports/security/sudo
Info:   Allow others to run commands as root
Maint:  garga@FreeBSD.org
B-deps: expat-2.1.0_3 gettext-runtime-0.19.6 gettext-tools-0.19.6 indexinfo-0.2.4
R-deps: gettext-runtime-0.19.6 indexinfo-0.2.4
WWW:    http://www.sudo.ws/

- Installing sudo:

cd /usr/ports/security/sudo/ && make install clean

FreeBSD Virtual Machine: Installing VMware tools

Following the VMware documentation on how to "Manually Install or Upgrade VMware Tools in a FreeBSD Virtual Machine"

Prerequisite: Perl must be installed in the guest operating system (see previous post).

FreeBSD Virtual Machine: Ports / Installing Perl

One of the ways to install additional software in the FreeBSD system is with ports. Here is a brief explanation on how to download the "ports tree" and install one of then (perl).

1. Use the portsnap command to download the ports tree into the local system:

portsnap fetch extract

2. The ports tree will be created under "/usr/ports/". Once it is populated with all the makefiles and patches, any of the ports can be installed by doing the following e.g. perl:

cd /usr/ports/lang/perl5.20/ && make install clean

3. At last, check whether the installation was successful:

perl -v

Sunday, January 17, 2016

FreeBSD Virtual Machine: Resizing and Growing Disks - VMware ESXi

Just for training purpose, I've decided to increase the virtual machine disk size from the default 21Gb to 32Gb, just by following the handbook guide. It would give the VM more run for FreeBSD ports and give a change to play around with disk resizing.

Error while using FreeBSD virtual image file in VMware ESXi host

While sniffing around FreeBSD ports collection using my fresh install of FreeBSD in ESXI virtual machine (refer to previous post),  I got an error while fetching the ports tree using the below command:

portsnap fetch extract 

Message from esxi_host: The operation on the file "/vmfs/devices/deltadisks/32b6d029-FreeBSD-10.2-RELEASE-amd64-s001.vmdk" failed (14 (Bad address)). The file system where disk "/vmfs/devices/deltadisks/32b6d029-FreeBSD-10.2-RELEASE-amd64-s001.vmdk" resides is full. Select button.retry to attempt the operation again. Select button.abort to end the session.

Now how to solve this issue?

Wednesday, January 13, 2016

FreeBSD 10.2-RELEASE as a virtual machine - VMware 6.0

The plan was to deploy a FreeBSD virtual machine in the ESXI 6 to play around and learn more about this operating system. My previous experience was with FreeNAS, which is based on the FreeBSD.

The minimum work to have a FreeBSD virtual machine up and running in my home lab:

Sunday, January 3, 2016

Allow ping (Echo request) in Kaspersky and Windows firewall

  • When using the Kaspersky (in my case, the internet security variant), in order to allow incoming Ping from same subnet or any address, the following Packet Rule must be added manually under Settings ->Protection -> Firewall -> Configure packet rules:

There is also a corresponding "Network rule template", so no need to fill in all these fields manually.

  • When using Windows Firewall, may be necessary to enable the following inbound rule "File and Printer Sharing (Echo Request - ICMPv4-Out)" for the corresponding profile (Public/Private/Domain):

In my case, a new subnet was added under Properties -> Scope -> Remote IP address in order to allow ping from a different subnet in the same Local Network: