Everything should be made as simple as possible, but not simpler. (Albert Einstein)

Tuesday, February 28, 2017

CRISPR-Cas9 Gene Editing for Biomedical, China's First Trial in Human

A glimmer of hope, for our friends. 👍😄
Wishfully it will help people with genetic disorders around the world, A.S.A.P. 
Especially abandoned disorders for example Ehlers Danlos Syndrome and others. 
https://en.wikipedia.org/wiki/List_of_genetic_disorders 

A cloudy morning, reading an article while enjoying a cup of black coffee ☕ 
And I think it would be good to share... 

(Image courtesy of Nature.) 

Wednesday, February 15, 2017

Android App, Collect GPS-based Location in the Cloud with Fusion Tables and Map

This is a very simple Android app with Google Fusion Tables and Map, in which user can submit location coordinates based on GPS/other location. Location(s) is saved in Fusion Tables, it can then be displayed in map. 

Fusion Tables serves cloud-based table as data persistence, in this example data is collected from Android device. 

I shall create a basic Android app in MIT App Inventor 2 for learning purpose. This basic app can then be used as part of a more complex Android app.  😇 



Friday, February 10, 2017

IBM World Community Grid (Humanitarian Research Projects)

Maybe too late, but I was just joining it 😎 
Referrer: Nihlaeth. 
Platform BOINC.
Short explanation:
"When you become a World Community Grid volunteer, you donate your device’s spare computing power to help scientists solve the world’s biggest problems in health and sustainability. Since 2004."
Soft-hearted? Wanna join? Link is in the widget..


Dark side? 

Why? 😥
Apologize but my first impression it's a bit arrogant. Sounds like IBM thinks they knew everything.
But my alarm was apparently ringing on a false positive.
I asked them, here is the reply:

"World Community Grid does not solicit research to run. 
Research organizations contact World Community Grid if they are interested in potentially running their research on World Community Grid. 
If you know of a research organization that may benefit from the computing power of World Community Grid, please send them this link:"
https://www.worldcommunitygrid.org/research/viewSubmitAProposal.do

Thursday, December 29, 2016

K-means Clustering: Geolocation EDA & Inference Using Cell-phone CDRs

I played with (real) CDRs data, doing some exploratory data analysis / EDA and inferential (clustering), in order to find out approximate geolocation of certain phone number. 

Sometimes we're curious e.g. "who is this woman?"
Does she work in a bank, or studio? Maybe she's a bus driver? ;)



Data science + machine learning tools: Python (pandas, sklearn, matplotlib).

Call Detail Records (CDRs) is cell phone usage information collected by cell phone service providers.
Providers record every voice call or text (SMS) message exchange between two cell phone numbers. Information collected includes:

  • calls and messages: phone number, reciprocal phone number, time, duration, length of messages, etc., relational to users' identity.
  • cell towers: transceiver station CID, LAC (location area code), etc., relational to latitude and longitude data.
  • devices: IMEI, MAC, name and type of device, etc.
  • wifis: name, MAC of base station, etc.
  • ... and other data for resource provisioning and billing.

It's a comprehensive data, and it's available almost in real-time (within minutes). 

We can also do similar EDA to social media's geotagged data. 

Thursday, December 8, 2016

Probabilistic Graphical Models: Bayesian Networks Example With R, Python, SAMIAM

Here I try to practice examples of Bayesian networks as explained in the book written by Stanford Professor Daphne Koller, and Hebrew Professor Nir Friedman., “Probabilistic Graphical Models: Principle and Techniques”, chapter 3.2.   

In the book, the final values of probabilities is given as it is, without derivation of the formulas. Here I tried to expand the formulas, as well to verify the results with the help of R, Python and SamIam.

Course: PGM Specialization (MATLAB / Octave). 
Tools: R, Python, SamIam.  

The DAG of student BN example is, 

 


Saturday, September 24, 2016

Recommender Demo, "lenskit-hello" via Intellij Idea, Step by Step

For advanced programmer, it's easy. But a beginner might get a headache ;) 
Here is step by step: 

Prerequisites: Gradle, Intellij Idea. (and JDK for sure).

Tuesday, February 23, 2016

Notes on GIS / GEOINT, Tracking Your Location via Your Cat


An interesting blog post by Joseph J. Kerski, Esri Education Manager and a staff in the Coursera GEOINT course

https://spatialreserves.wordpress.com/2014/08/17/compromising-privacy-while-posting-pictures/ 
 
I know where your cat lives. http://iknowwhereyourcatlives.com/ 
 
BTW. The cat was just an excuse, in fact we want to know where the owners live. ;)) 

It's amazing that in 1949 far before Internet era, George Orwell wrote a novel "1984" about total surveillance by authority, 
In the society that Orwell describes, every citizen is under constant surveillance by the authorities, mainly by telescreens (with the exception of the Proles). The people are constantly reminded of this by the slogan "Big Brother is watching you"
https://www.schneier.com/blog/archives/2015/02/samsung_televis.html 
https://en.wikipedia.org/wiki/Big_Brother_%28Nineteen_Eighty-Four%29
http://www.theguardian.com/world/2013/sep/23/orwell-nsa-surveillance-alan-rusbridger
http://www.worldcrunch.com/world-affairs/how-2015-mass-surveillance-compares-to-orwell-s-1984-big-br...

-----------------------------


GIS specialization: https://www.coursera.org/specializations/gis 
  
QGIS, http://www.qgis.org/en/site/ 
ArcGIS, (online, desktop) http://www.arcgis.com/ 
Esri, https://www.esri.com/ 
Geonet, https://geonet.esri.com/ 
Comparison: https://www.gislounge.com/qgis-versus-arcgis/  
Stack Exchange, https://gis.stackexchange.com/
Reddit, http://reddit.com/r/gis
Public Lab, http://publiclab.org/
Digital Geography, http://digital-geography.com/ 
@@@
 
"Social Engineering: The Art of Psychological Warfare, Human Hacking, Persuasion, and Deception" by Vince Reynolds

Friday, November 6, 2015

MOOC Coursera Certificates

Some my MOOC certificates (statement of accomplishments / honor code certificates). As a matter of memento (personal memorandum). 

Original certificates format: PDF.
Converted image format PNG.
Images resolution: Low-res.


Sunday, October 25, 2015

Singular Value Decomposition with Numpy & Scipy

Following previous post "Singular Value Decomposition and Dimensionality, Using R...", here is another approach using Numpy and Scipy.

An example is in Latent Semantic Analysis (LSA, or Latent Semantic Indexing LSI) with Term-Document matrix. 

First data is a list of documents, second data is a list of terms. We build a matrix in which each cell represents "is term t in document d?". It is "1" if term t is found in document d, "0" otherwise. In this case, documents are the features (columns) and terms are the observations (rows).

This is usually used in NLP (Natural Language Processing) to calculate text similarity. 

Sunday, October 4, 2015

Singular Value Decomposition and Dimensionality Reduction, Using R and Cat Image for Illustration Purposes

Singular Value Decomposition and Dimensionality Reduction, Using R and Cat Image for Illustration Purposes, by Soesilo Wijono,

SVD (singular value decomposition) is an important method used in data science, especially data mining. It can be used, e.g., in dimensionality reduction for recommender system.
Imagine online store, e.g. Amazon, to have million of items, and million of users. In order to perform algorithm for the recommender system, matrix to be used would have million by million dimension. Which is very expensive computation.
Theory for dimensionality reduction is everywhere, so we won’t repeat it again in here. Just remember the basic equation:
X = U A V.T
U matrix has dimension of n x n.
V matrix has dimension of d x d.
A matrix is diagonal matrix with dimension of n x d.
(T represents matrix transpose.)
We want to reduce the dimension of X matrix.
This is an illustration of the method by using a PNG cat image. To help understanding the method visually. In which we’ll use image raw data. In real world, the image data can be replaced by any data, e.g. items x users matrix used in an recommender system, etc.

Tuesday, September 15, 2015

Power Pivot for Excel 2010

Power Pivot is delivered with Excel 2013. This is workaround to install it for Excel 2010.

Saturday, September 5, 2015

Play with TUDelftX Data Analysis, Take it to the MAX()

Just playing around in the course, to get in depth a bit on spreadsheet. I'm newbie =)
https://www.edx.org/course/data-analysis-take-it-max-delftx-ex101x
Instructor: Prof. Felienne Hermans, PhD.

Thursday, September 3, 2015

Demo of Recommender System with LensKit and Intellij Idea

Requirements: 
If they're not installed yet, then install Maven and LensKit inside a directory. 
Set environment variable M2_HOME, point it to the Maven directory. E.g. "C:\java\apache-maven-3.3.3" in Windows.
Add path of the LensKit's and Maven's binary directories, 
C:\java\lenskit-2.2\bin;%M2_HOME%\bin;%JAVA_HOME%\bin

Monday, July 20, 2015

Interactive Computer Graphics with WebGL

https://www.coursera.org/course/webgl/

Assignment 1. 
Tesselation and rotation with WebGL. Rotation on tesselated polygon resulted in a twisting effect.


Disclaimer: The sharing of codes in public repository is mandatory, ruled by the assignment rubric. It's not violation to the Honour Code.

Monday, May 25, 2015

some notes

Avoiding headache, centralizing all pieces of "somewhat important" notes =)

Wednesday, March 4, 2015

Finding Good Lambda for Handwritten Digits Recognition (Neural Network) with Cross Validation Set

Finding good lambda ( λ ) for regularization in a machine learning model is important, to avoid under-fitting (high bias) or over-fitting (high variance).

If lambda is too large, then all theta ( θ ) values will be penalized heavily. Hypothesis ( h ) tends to zero. (High bias, under-fitting).
If lambda is too small, that's similar to very small regularization. (High variance, over-fitting).

Cross validation set principle can be used to select good lambda based on the plot of errors vs lambda, for both training data and validation data.

Friday, February 27, 2015

Some Introductory Machine Learning Books


Many Machine Learning books I encountered are too heavily math-wise (for a programmer). But I noted several introductory books,
  •  Machine Learning, Tom M. Mitchell, McGraw Hill. 
  •  Introduction to Machine Learning 2nd edition, Ethem Alpaydin, MIT Press. (without example code)
  •  Bayesian Reasoning and Machine Learning, David Barber (this has free online draft version, last draft is dated Dec 13, 2014) (ex. code in Matlab with BRMLToolbox).
  •  Machine Learning, A Probabilistic Perspective, Kevin P Murphy, MIT Press. (ex. code in Matlab with PMTK package.)
  •  Machine Learning, An Algorithmic Perspective, Stephen Marsland, CRC Press. (ex. code in Python)
  •  Machine Learning, Hands-On for Developers and Technical Professionals, Jason Bell, Wiley. (ex. code in Java with Weka toolkit.)
  •  Machine Learning In Action, Peter Harrington, Manning. (ex. code in Python.)
  •  Thoughtful Machine Learning, a Test Driven Approach, Matthew Kirk, O'Reilly. (ex. code in Ruby.)

More programming-wise books,
Python:
  •  Mastering Machine Learning with scikit-learn, Gavin Hackeling, Packt.
  •  Learning scikit-learn: Machine Learning in Python, Raúl Garreta et.al., Packt. 
  •  scikit-learn Cookbook, Trent Hauck, Packt.
  •  Building Machine Learning Systems with Python, Willi Richert et.al, Packt.
R:
  •  An Introduction to Statistical Learning with Applications in R, Gareth James et.al, Springer.
  •  Machine Learning with R, Brett Lantz, Packt.
Scala:
  •  Scala for Machine Learning, Patrick R Nicolas, Packt.

Best ML course, with easy understandable video lectures, very well-structured:
Stanford's Prof. Andrew Ng  https://www.coursera.org/course/ml (old regular format with SoA, already closed since 2015).
New format of the course is on-demand (self-paced),  currently without SoA, https://www.coursera.org/learn/machine-learning .

----

Thursday, February 26, 2015

Handwritten Digits Recognition, Experiment with Octave's Neural Network Package "nnet", and RSNNS

This is a note on implementation of handwritten digits recognition, with the neural network learning process, by using Octave nnet package (or MATLAB neural network toolbox).

At the end,  I play around with R code and RSNNS library (Stuttgart Neural Network Simulator for R).

GitHub, Octave/MATLAB:
    https://github.com/flyingdisc/handwritten-digits-recognition-octave-nnet
Github, R - RSNNS:
    https://github.com/flyingdisc/handwritten-digits-recognition-RSNNS  
----

80-20 Rules, Pareto Principle

Wikipedia's Pareto Principle,
"The Pareto principle (also known as the 80–20 rule, the law of the vital few, and the principle of factor sparsity) states that, for many events, roughly 80% of the effects come from 20% of the causes."

Monday, February 9, 2015

Handling US NOAA Storm Database's Exponent Value of PROPDMGEXP and CROPDMGEXP


How To Handle Exponent Value of PROPDMGEXP and CROPDMGEXP of "StormData.csv"

 

Reproducible Research Project 2, Coursera, Johns Hopkins University

U.S. National Oceanic and Atmospheric Administration’s (NOAA) Storm Database

There is confusion on how to handle exponent value of PROPDMGEXP and CROPDMGEXP columns of the database. Due to lack of official information in the NOAA website.

This is an attempt to compare downloaded database with the online version, to find conclusion what is meaning of each value actually.

This analysis is inspired by a post made by David Hood, himself is CTA in the Data Science Specialization courses.

At the end of this article, there is more accurate analysis done by Eddie Song.   

GitHub PDF and Markdown repository:
 https://github.com/flyingdisc/RepData_PeerAssessment
Rpubs: http://rpubs.com/flyingdisc/PROPDMGEXP
Reproducible report of the project: http://rpubs.com/flyingdisc/RepProject2

Monday, January 19, 2015

Sound Transformation with MTG's Spectral Modeling Synthesis Tools

It is Spectral Modeling Synthesis sms-tools of MTG UPF (Music Technology Group, Universitat Pompeu Fabra, Barcelona), by Prof. Xavier Serra (also as instructor in the Audio Signal Processing for Music Applications, Coursera).

http://mtg.upf.edu/technologies/sms
https://github.com/MTG/sms-tools
https://github.com/MTG/essentia

Several simple experiments I made.

Friday, January 2, 2015

Simple Workaround Tip for Malfunction Toshiba USB Mouse

Toshiba U20 USB mouse uses only 4 wires. While Logitech uses 5 wires.
In some hardware circumstances (laptop in my case), the Toshiba mouse won't work, it's not detected, keeps blinking and the cursor doesn't move.
This is a simple workaround I tried successfully.

Tuesday, December 30, 2014

Very Simple Yet Effective Dipole Antenna for EVDO 800MHz

One of my mobile broadband Internet provider (EVDO Rev A) planned to close its service in a near future, due to Qualcomm has decided to stop EvDO evolution. The service has real unlimited budget-plan. Currently most of mo-bro providers (both CDMA and GSM) in here are moving to early stages of 4G LTE (either FDD or TDD).

So the impact is, many BTS (base transceiver station) nearby my house have been sold, signal was going worse. Several months ago my EvDO modem (without external antenna) could easily resonated at -70 dBm of HDR power. But since the collapse was announced, signal was suffering at only around -85 down to -90 dBm typically.
(with external antenna, signal can be received at -50 dBm, but I prefer the antenna for another HSPA+ service)

Fortunately I keep an old unused indoor TV antenna. Sure it's dedicated for lower frequency band for TV broadcast. While that my dying ISP works at higher 800MHz of carrier frequency.
Hoho... then I imagined to build a simple dipole antenna to recycle that my old antenna.

Tuesday, August 19, 2014

Bubble Clusters Video - Interactive Computer Graphics


"Bubble Clusters" : Clustering algorithm, Bubble's Potential Field algorithm, Iso-Surface & Iso-Line with Marching-Square algorithm.
Assignment #1 of "Interactive Computer Graphics", a course by Prof, Takeo Igarashi, University of Tokyo. 

Wednesday, June 18, 2014

Faster Convolution with Separability Property in Multi-dimensional Signals

Topic: Digital image processing. 

Consider a 2D signal (or impulse response of 2D filter) with rect-shaped.
 This 2D rect signal is separable. It can be represented as dot-product of two independent 1D signals.
As well an impulse signal is also separable.

Monday, February 24, 2014

Mobile Broadband Modem Pointing Using QPST, QXDM

These tools have been already known since long time ago.
Pointing is important to get best signal for our broadband/wifi modem, either with or without external antenna.

(Works only for modem with Qualcomm chipset, and the modem's diagnostic port must be opened.) 

Howto:

Thursday, January 30, 2014

Basic JPEG Compressing/Decompressing Simulation

Standard JPEG compression uses (1) 8x8 Discrete Cosine Transform, (2) quantization based on certain luminance + chrominance tables, and (3) entropy-encoding (Huffman coding).
Here, I'm using OpenCV (Python) to simulate DCT + quantization + IDCT, without Huffman coding.

Tuesday, January 28, 2014

Friday, December 27, 2013

Basic Processing and Chuck Communication

A very basic example on how to establish communication between Processing and ChucK.
  • run oscProc.pde in Processing
  • run oscChuck.ck in ChucK
  • in the sketch, press "s" key to send message

Thursday, December 26, 2013

Fast Fourier Transform in ChucK to Get Spectrum

We can convert time domain to frequency domain by using Fast Fourier Transform, that's to calculate the discrete fourier transformation. http://chuck.cs.princeton.edu/doc/language/uana.html

This is the basic of finding the spectrum of an input signal, in this case I use a sinusoidal signal as example.
https://github.com/flyingdisc/music-chuck/tree/master/FFTSpectrum
This will display frequencies and power (in polar form of the complex number) at the FFT bin indices.

Tuesday, December 24, 2013

Graph Complex Set In Python with mpmath and matplotlib

In this case I use Python(x,y). This package comes with many standard plugins, such as sympy (in which we use its mpmath), numpy, scipy, matplotlib, and so on. http://code.google.com/p/pythonxy/wiki/StandardPlugins

Simple Processing Game using Minim

This is a simple program (a memory game) written in Processing 2 language.
It has two version, Java mode and Javascript mode.
Using Minim is not straightforward in Javascript mode, especially for sound part. (Yet there is better and richer sound library, Maxim which is until now only be able to play sound in Chrome browser, ref: Can I use Web Audio API ).

Here are both versions,
Java mode:
http://www.openprocessing.org/sketch/125380
JavaScript mode:
https://googledrive.com/host/0B1HulZRKubRMdzhFYVByUnM4YUE/index.html

Electronics Music in ChucK

Following a course by CalArts ( instructors with their expertise on music and computer science: Ajay Kapur, Ge Wang and Perry R. Cook from Princeton ).
It uses ChucK programming language.

Sounds:
http://soundcloud.com/flyingdisc

Some ChucK codes:
https://github.com/flyingdisc/music-chuck

This is now in the Kadenze, as of 2015: ($600)
https://www.kadenze.com/courses/introduction-to-programming-for-musicians-and-digital-artists/info

Thursday, November 28, 2013

Using Mobile Hotspot ZTE MF90 With No Battery



Dummy battery from wood + capacitor + resistor.
How to use ZTE MF90 without battery, powering only by electricity power.


Saturday, September 7, 2013

Sierpinski Fractal Basic in Processing

(processing.org)

To do: Play around to extend this basic to extended Sierpinski fractal. See these beautiful arts:


Basic b&w: http://www.openprocessing.org/sketch/108475
In color: http://www.openprocessing.org/sketch/108474

Mirror code: http://pastebin.com/YACnq3BG
https://github.com/flyingdisc/sierpinski

Sunday, June 2, 2013

Coursera, An Introduction to Interactive Programming in Python Videos

My mini-project videos on Coursera course April 2013 - July 2013.

Coursera.org
"An Introduction to Interactive Programming in Python"
Instructors: Joe Warren, John Greiner, Stephen Wong, Scott Rixner
Rice University.

(View the videos in Youtube for better experiences.)

Saturday, October 22, 2011

Google Plus API Java Starter for NetBeans IDE


 This is my personal notes on porting following described package into NetBeans IDE. CMIIW is one of my gods. This is written in 2011, hence it might or might not work with latest update (if any). 

Google Plus Java Starter is a very basic example starter package to learn Google Plus API client for Java. Unfortunately it does not include package for NetBeans IDE (it prefers Eclipse as I guess it due to Oracle factor). 
Here is explanation on how to port starter code into NetBeans IDE 6.9 (Microsoft Windows OS environment).

Credits to google-plus-java-starter project people:
    willnorris.goog chrscha...@gmail.com  chirags@google.com mimm...@google.com wo...@google.com  ai...@google.com yan...@google.com
They are team member creating original starter package.




Google App Engine Java SDK

Thursday, October 20, 2011

Google+ API Activities using HTML and JQuery


 My personal note. (CMIIW is one of my gods). This is written in 2011, hence it might or might not work with latest update (if any). 

This is the very basic and simplest example to access Google+ activities via its API, using HTML, JQuery and simple API key authentication.

All client side scripts. There is no server side scripts is being involved.

The only weakness of the codes is: I need to hide my API key somewhere in the server's inaccessible folder.
But it can be overcame when I use the code in real application, by deploying the HTML file into a web server.

Since it's contained in a HTML file, it can be utilized in non-native mobile application, such as HTML5 app runnable in mobile devices. I also imagine blog (Blogger, Wordpress) sidebar-plugin and browser's add-ons.