Friday, March 10, 2017

Encrypting home directory in Ubuntu 16.04 after install

I will be traveling so I decided to encrypt my home directory just in case my laptop is lost or stolen.
  1. Log in as target user  
  2. Install required packages
    • sudo apt-get install ecryptfs-utils
  3. Create a temporary admin user
  4. Log out target user
  5. Log in as temporary admin user
  6. Encrypt target user home directory
    • sudo ecryptfs-migrate-home -u target_user
  7. Encrypt swap partition
    • sudo ecryptfs-setup-swap
  8. Log out temporary admin user
  9. Log in as target user
  10. Record encryption passphrase
    • ecryptfs-unwrap-passphrase
  11. Reboot then log in as target user. Check if everything is working.
  12. Clean up by removing the backup folder and temporary admin user.

Wednesday, November 9, 2016

Hardening Firefox for Privacy and Security

Based on this guide, I decided to perform some adjustments in Firefox to protect my privacy and enhance security while browsing. After following the steps, my add-ons list now looks like the image below. I can use use tor-browser but I prefer to have more control on the browser settings.




Tuesday, November 8, 2016

Computer Science (CS), Information Technology (IT), and Information Systems (IS) in Philippine HEI

(Source: CHED CMO 25 Series 2015)

Bachelor of Science in Computer Science

The BS Computer Science program includes the study of computing concepts and theories, algorithmic foundations and new developments in computing. The program prepares students to design and create algorithmically complex software and develop new and effective algorithm for solving computing problems.

The program also includes the study of the standards and practices in Software Engineering. It prepares students to acquire skills and disciplines required for designing, writing and modifying software components, modules and applications that comprise software solutions.

(Topics on databases: Storage Structures, Relational Algebra, Query Optimization)
(Topics on networks: CSMA-CD, TCP Congestion Control)

Bachelor of Science in Information Technology

The BS Information Technology program includes the study of the utilization of both hardware and software technologies involving planning, installing, customizing, operating, managing and administering, and maintaining information technology infrastructure that provides computing solutions to address the needs of an organization.

The program prepares graduates to address various user needs involving the selection, development, application, integration and management of computing technologies within an organization.

(Topics on databases: Setup of a RDBMS such as Oracle, CRUD using SQL, User Access Management)
(Topics on networks: LAN Setup, Network Management)

Bachelor of Science in Information Systems

The BS Information Systems Program includes the study of application and effect of information technology to organizations. Graduates of the program should be able to implement an information system, which considers complex technological and organizational factors affecting it. These include components, tools, techniques, strategies, methodologies, etc.

Graduates are able to help an organization determine how information and technology-enabled business processes can be used as strategic tool to achieve a competitive advantage. As a result, IS professionals require a sound understanding of organizational principles and practices so that they can serve as an effective bridge between the technical and management/users communities within an organization. This enables them to ensure that the organization has the information and the systems it needs to support its operations.

(Topics on databases: Student Academic Information Systems)
(Topics on networks: E-commerce)

Further Reading

  • http://www.innovators.edu.pk/node/233

Wednesday, October 26, 2016

NCITE 2016 Experience

This year's NCITE was held at DMC College, Dipolog City, Zamboanga del Norte. I presented a paper on OSv-MPI, part of my PhD project, under the IT track. The best papers for CS, IT, and IS came from ADMU, MSU-IIT, ADNU respectively. There were a lot of participants from the different regions. This was also the first time I attended a conference without the company of ICS colleagues. It was fun and enjoyable.

Wednesday, October 19, 2016

Packing light for a three-day academic conference

Being an academic involves a lot of traveling especially to attend a scientific or academic conference. It is best to minimize the things to bring. Described here is what I usually pack for a three-day conference. My main objective is to avoid checking in luggage. I usually bring three bags, a carry-on,a backpack, small crossbody bag.

Carry-on bag

Shirts
  • 3 dress shirts (short, three-fourths, or long sleeves)
  • 3 undershirts
  • 2 polo shirts
  • 1 t-shirt
Pants/Shorts
  • 3 trousers
  • 1 walking shorts
  • 1 sleeping shorts
Shoes/Slippers
  • 1 pair of casual shoes
  • 1 pair of black leather shoes
  • 1 pair of casual slippers 
Underwear
  • 4 pieces underwear
  • 3 pairs of socks
  • 3 hankerchiefs
Backpack

Accessories
  • 1 small-medium towel
  • 1 light jacket/sweater
  • 1 watch
  • 1 belt
 Others
  • Laptop with charger
  • Cellphone charger
  • Notebook and Pen
  • Instant coffee
  • Broadband stick
  • Paper Holder
 Crossbody bag
  • Wallet
  • ID
  • Cellphone
  • Cash
  • ATM card
  • Travel documents
  • Point-and-click camera
 
What to wear

Going to the venue(day before the conference):  polo shirt, trousers, and casual shoes

Conference day 1: dress shirt, undershirt, trousers, leather shoes

Conference day 2: dress shirt, undershirt, trousers, leather shoes

Conference day 3: polo shirt, trousers, casual shoes

Going home: same as Conference day 3

Touring around after each day: t-shirt, casual shorts, casual slippers

Sleeping: undershirt and sleeping shorts

Thursday, September 29, 2016

Setting up a Drone Programming Environment using DroneKit on Ubuntu 16.04

This guide describes how to setup an environment for programming drones using DroneKit. The main requirement is an Ubuntu 16.04 box. Using this environment will allow testing of code before they are run on an actual drone. To run the code on a drone, simply update the connection parameters.

The procedure will require four terminals which will be used for different purposes. In the steps that follow, SRG-Bots is the working directory.

Terminal Zero - Used for installing the required packages 

$cd ~/Downloads
$wget  http://firmware.eu.ardupilot.org/Tools/APMPlanner/apm_planner2_2.0.23_ubuntu_xenial64.deb
$sudo dpkg -i apm_planner*.deb
$sudo apt-get -f install
$sudo dpkg -i apm_planner*.deb
$sudo apt-get install python-pip
$pip install virtualenv
$mkdir SRG-Bots
$cd SRG-Bots
$virtualenv dronekit_env
$source dronekit_env/bin/activate
$pip install dronekit dronekit-sitl mavproxy

 
Terminal One -  and running the simulator

$cd SRG-Bots
$source dronekit_env/bin/activate
$dronekit-sitl copter

In case the initialization is taking too long, you can reset the simulation.
$dronekit-sitl--reset


Terminal Two - Used to allow multiple connections on the drone

$cd SRG-Bots
$source dronekit_env/bin/activate 
$mavproxy.py --master tcp:127.0.0.1:5760 --sitl 127.0.0.1:5501 --out 127.0.0.1:14550 --out 127.0.0.1:14551

Terminal Three - Used to run APM Planner


$apmplanner2

Go to the menu, then select Communications -> Add Link -> UDP. Set the UDP Port field to 14550. Connection to the copter will be established.

Terminal Four - Used to run programs

$cd SRG-Bots
$source dronekit_env/bin/activate
$wget https://github.com/dronekit/dronekit-python/raw/master/examples/simple_goto/simple_goto.py
$python simple_goto.py --connect "udp:127.0.0.1:14551"

You can observe the behavior of the drone on the APM Planner as the code gets executed.