Categories
Uncategorized

Trip to Binh Thuan, Vietnam

We were at Ham Tien, Binh Thuan, Vietnam in November, 2018. It was rainy a bit. Turns out it was perfect for riding over red sand duns because the sand was thicker and less dusty.

Categories
Hobbies Music

A simple way to solo over ii-V7alt-I-VIalt chord progression

You can solo over ii-V7alt-I-VIalt chord progression simply by using minor pentatonic scales.
Take Dm7 – G7alt – CMaj7 – A7alt as an example, you can use Am pentatonic – Bbm pentatonic – Bm pentatonic – Cm pentatonic scales.

ChordDm7G7altCMaj7A7alt
Pentatonic ScaleAmBbmBmCm

So basically, from the ii chord root, you go up a perfect fifth or go down a perfect fourth to find the pentatonic scale to play over the ii chord. Then for each subsequent chord, simply play the pentatonic scale haft step above.

Another way to find the corresponding pentatonic scales over chord changes is

  • ii: go up a perfect fifth or down a perfect fourth from the root
  • V7alt: go up a minor 3rd from the root
  • I: go down a half step from the root
  • VI7alt: go up a minor 3rd from the root

Practice licks: https://www.jazz-guitar-licks.com/blog/minor-pentatonics-and-ii-v-i.html

Reference:
https://www.learnjazzstandards.com/blog/cool-and-unusual-applications-of-the-minor-pentatonic-scale/
https://www.learnjazzstandards.com/blog/chord-progression-study-ii-v-i-vi7/

Categories
Hobbies

5v5 football tatics

Although football is our company’s favorite sport, we have been playing it as just hobby and not for professional. In order to improve the quality of our matches, we nwed to truly play as a team, with strategies, tactics and formations. This presentation introduces you about the basic of football formation, the diamond form. We will dive into basic principles such as: playing in possession, players’ positions and roles. We also take a look at how to apply diamond formation into offense and defense.

Download (PPTX, 254KB)

Download (PPTX, 254KB)

Categories
Web Development

Behavior Driven Developement (BDD) training

Below is my training about Behavior Driven Development (BDD) to Designveloper. The demo in this presentation uses Meteor and Cucumberjs. It was part of a real project that we are working on.

Download (PPTX, 282KB)

Categories
Mobile Developement Web Development

Overview of Web and App development process

Below is the presentation that I gave to my company in March 11th, 2014. At that time, we were focusing on all javascript solutions for both web and mobile applications. There are much changes at the moment, but most of the presentation are still applicable.

Download (PPTX, 103KB)

Categories
Uncategorized

From the art of puzzles to data structure

This paper will focus on two aspects in the TED talk “Scott Kim takes apart the art of puzzles” of Scott Kim who is professional in problem maker especially puzzles. Both aspects will be considered under data structure perspective. The first aspect will discuss about how we can apply a technique of using both the “picture space” and the “background space” which are mentioned in the talk to create a data structure. The second aspect focusses on whether using such a data structure similar to “puzzle with overlap” is useful or not.

Using “picture space” and “background space”, we can create a data structure with enough basic operations such as deleting, merging, inserting, and moving. When you move a block, if there is any overlap pixel, for example the black pixels are overlapped, number of black pixel will decrease which means there is a black pixel that was deleted. Likewise, this operation creates new white pixels, or we can say it inserts new white pixels. Moving a block next to or overlap another same color block is equivalent to merging two blocks. Moving a block but not making any overlap is equivalent to swapping two blocks. Interesting enough, moving of one block can be seen as “XOR” operation of that block with the same size block at destination place. Suppose white represents bit 0, while black represents bit 1. If a pixel in the moving block is as same color as the destination pixel, the destination color does not change, which means 0 XOR 0 is 0, 1 XOR 1 is 1. On the other hand, if they are in different color, then the destination color will change, means 0 XOR 1 is 1, or 1 XOR 0 is 1.

Techniques used in the talk can be seen in several different ways in real life, not only in the puzzle. For example in Photoshop or GIMP or other image processing software, we have layers. Now each time a block of “picture space” or “background space” is moved, the equivalent operation in such software is to select the desired block by selection tool such as Magic Wand Tool and then inverse the selection block color, finally create new layer that copies content of the block and process this new layer separately from the original layer.

Although we seldom keep data in more than one place or more than one form, but data structure which is similar to the “puzzle overlap” is useful in some cases. Overlap can be understood as redundant. We often use redundant for recovering information from lost or encryption. We also use redundant for enhancing data availability. Computer memory structure is composed of many sectors, clusters which are allocation unit whose capacities are fixed, for example 512 bytes or 1kB, 2kB, 4kB… If the information amount is less than capacity of a cluster, that information still occupies one cluster and the rest capacity of the cluster will be wasted. This leads to disk fragmentation. We can take advantage of the wasted memory to store the redundant data such as the “puzzle overlaps” structure mentioned above. This will be useful when data accidently lost. While disk fragmentation is reduced, unwanted lost data might be recovered by such redundant information.

Following will be another example to be considered for usefulness of “puzzle overlap” data structure. In telecommunications, in order to transmit a digital data over radio, the data is encrypted first, and then modulated from the digital form to analog signal. The resulted analog signal is then moved from low frequency to high frequency (kHz for AM, MHz for FM, and GHz for satellite) for transmission. To the receiver, received signal is then baseband filtered and demodulated back to digital form. Finally, it is decrypted to reveal the original data. Because of long transmission path and lots of processes, there are a lot of risks can be happened during transmission, for example, fading, phase shift, noise… These risks lead to data lost or wrong data receiving. Therefore, such data structure as “puzzle overlaps” can help reducing those risks, for example, it can enhance phase synchronization, avoid phase shift problem.

In conclusion, although Kim’s perspective is of a problem maker or an artist, it is useful to take into account his idea and move to a data structure perspective to see more interesting aspects that can help us realize more about data structure in the real world, not just limit in computer science point of view.

Categories
Uncategorized

Using “interface” to organize data and tell story about lives

Nowadays, while we are living in high-tech century, communication becomes much easier and there are tons of ways to collect and represent data around us. As Aaron Koblin said in his TED talk “Artfully visualizing our humanity” that “Our lives are being driven by data, and the presentation of that data is an opportunity for us to make some amazing interfaces that tell great stories”, he brought novel understanding about data.

Under Aaron Koblin’s view, data are not only narrow in the sense that they are information stored and organized in computer but data are available as human being, we are actually “collecting and creating all kinds of data about how we’re living our lives”. In the context that Aaron presented, “Interface” is a method to organize data in life and represent them to tell a story about lives. In the context that a “wise, media specialist” tweeted, he compared “interface” with book and cinema. This shows how similar they are and how advance the “interface” is compared to book and cinema. Book and cinema are two conventional ways to tell stories about life, so does interface. Using book, we simply tell the stories by writing and drawing, people reimagine the story by reading. In twentieth century, the seventh art brought new way of telling story by dynamic images. Cinema has made stories livelier. This TED talk is also a prediction that “interface” will be new means to tell even greater stories in twenty-first century.

Discrete data that are available around us seems to mean nothing but by “interface”, these data become meaningful because they reflect how we are living. In the talk, Aaron Koblin has told us a lot of great stories using “interfaces” that he created. Every person can involve in telling that story even if they are not aware of it. If pieces of data are arranged and organized in particular ways, they would become whole new pictures about life. For example, in the “2001: A space Odyssey”, a lot of funny, crazy sounds created by people all around the world finally become a great song, or pieces of a lot hand drawing can become the one hundred dollars picture.

The “Flight patterns” that Aaron shown in the TED talk shows that different ways of representing data bring new views about interesting stories. It is not simple that every flight is monitored by government but the fact that it tells us how people in the world are living, working, enjoying their lives, and these forms patterns. We can also see how the time goes by, how the earth is moving around and when the atmosphere changes from day to night. With exactly the same data, but if we change the view, change parameters, new story will comes up. The more creative we are, the more interfaces we can create and it means that life can be reflected and demonstrated livelier.

In computer scientist point of view, an interface is not implementation of a specific class but provide common methods and common data that a class implementing that interface should have. For example, the Collections Framework provides most common interfaces that represent basic types of collection that are list, set, sortedmap. These are neither data nor data types but they are basic structures that any collections should have. Similar to “interface” in the TED talk, what Aaron Koblin and his group has made so far are structures that necessary data can be collected and organized in certain ways.

To create the visualization that he presents on his slides, the data should contains all necessary contents that are timestamps, GPS data (includes location, altitude) of each flight, ways to represent different aircraft (by name or other type of identity). This data structure can be sort by time, by altitude or any other information. To show the flow of flight changing by time, it is not necessary to have all data in real-time but only discrete data at every period for example at every minute so that it is enough to represent in the fast motion ways.

In conclusion, Aaron Koblin has brought a new view as well as new understanding about data. Data are available all around us; we are creating and collecting data about how we are living. His talk about “Interface” shows creative thinking about how data are collected and organized from social life and human being to create new stories, new understanding about life. By “interface”, collecting, organizing and processing diverse, discrete data is done easier and more effectively by cooperation of people. Life data will be more meaningful with “interface”. “Interface” surely deserves to be next generation of book and cinema to tell more great stories about life in this century.

Categories
Uncategorized

Thoughts about next generation digital book

Nowadays, rapid growth of technology makes life more convenient, development of e-book and other new technology such as Nook Color as well as Push Pop Press book are good examples. This paper will take a look at differences among three kinds of book, traditional books, common versions of e-books and the recently advance Push Pop Press books in data structures point of view. The paper will be focused on what data they contain, how data are stored, organized and manipulated, which operations can be performed, how efficient they are.

Although emerging of electronic books, traditional books still play important role and durable exist in our life. The main purpose of traditional book is to store and transmit knowledge by reading. Each published traditional book has static content, and limited of interaction. Content of these book are text and images only. Different books have different physical appearances. Sometimes, several books have simple interaction such as fairy tale book for children which have 3D models when opened but it is not significant.

E-books bring new era of books and new thought about books. Besides of same functions as traditional books, appearance of eBooks can be changed by applying new fonts, new layouts, and new colors, by zooming in and out… With eBooks, sharing becomes much easier. Searching throughout the book is faster and more convenient. But still, common versions of have book only contains text and images. Reading is still the merely way to get the information from eBooks.

Note that we are talking about common version of eBooks so their basic characteristics are mentioned above. However, advance technology such as those in Kindle and Nook should be different. Common version eBook does not have so many interaction methods as advance eBook like Nook Color. With Nook Color, people can use touch screen to interact with books, people can use virtual keyboard to type in notes. Common version eBooks does not have audio but Kindle and Nook does. Moreover, such advance eBooks technologies assist better reading experience by faster bookmarking, sharing common bookmarks and looking up vocabulary definition just in seconds.

With recent technology appeared in new devices such as kindle, Nook Color, and especially Push Pop Press books, a book is totally different. Not only text and image but other type of information such as videos and audio, geographic location, intractable animations… are included. Multimedia contents bring new way of getting knowledge, e.g. not only reading but also watching, listening and interacting. They provide even more interactive, not only touch screen but also other sensor and input devices such as GPS, microphone (in the TED talk example, when Mike Matas blew to the iPad, he actually affected the iPad microphone). In the near future, other sensors such as accelerometer, proximity sensor… may be taken into consideration. Book content is now not static any more but dynamic by interaction, each element in the book become lively object such that you can “play” with them and feel more about the knowledge (data) contains in the book.

Later version of book inherits from previous one. Common eBooks have same content (text, images) as traditional books but visualization can be easily changed. Quick searching function and easy sharing are integrated. Buying an e-book is easier with internet, wireless, 3G. Advanced book like Push Pop Press book takes advantage of common version of eBooks and include more types of content in it, makes the content more dynamic by interaction, and provides more methods to understand content such as listening to audio, watching movies, interacting with content objects. Ability to adapt, synchronize on multi devices such as iPad, iPhone, computer… is other advantage of recent eBooks over traditional books.

In data structure point of view, traditional books, common version of eBooks, advance eBook such as Push Pop Press books are all data structures because they are methods to store data (knowledge), and provide operations for efficient retrieving data as well as manipulating data. Basic data contained in those books are text, images. They have pages, table of contents as pointer to data location. Advanced electronic books have been opening new views about books. They bring multimedia data such as video and audio into place. They provide more efficient methods to retrieve, transfer, and share information from the books (by reading, by interaction, by listening, by watching, by sharing, bookmarking, searching…). In conclusion, more advances “book data structure” comes with more efficiency, flexibility, availability, usability, performance, and functionality.

Categories
Uncategorized

Hurricane as data structure

Nowadays, with emerging research interest in hurricanes, a hurricane should be presented as a data structure so that hurricane information can be efficiently stored, organized and manipulated [1]. Hurricanes research involves in hurricane circulation modeling, predicting hurricanes path, evaluate hurricane track forecast… Those researches have to deal with lot of hurricane information such as name, time, location, size, wind speed, ocean water temperature, humidity, moisture in atmosphere… [3,4] The information is not only numbers but also image, GIS data… [3,4] It is not a good idea to store each of this information as a separated data structure. By implementing a hurricane as a data structure, we no longer care about individual factors of hurricane but look at a hurricane as a whole thing. Different kinds of data structures are suited to different kinds of applications, therefore standardized hurricane data structure can be used especially for hurricane research. It will help researchers discuss with each other easier or they can cooperate easier by sharing their data with less effort and time. They just simply process hurricane data with standardized operations accompanied with the data structure [2]. Hurricane data is large because they contain not only many factors but also real time information. Representing a hurricane as data structure will provide a means to manage this amount of data efficiently [1].

However, represent hurricane as only one data structure is not enough because “different kinds of data structures are suited to different kinds of applications, and some specialize to specific takes” [1]. Therefore, it is more suitable if a hurricane can be represented internally as a “collections framework”. A framework will provide generic, basic interfaces, basic necessary methods, operations for accessing, retrieving, and updating data. Moreover, add-on operations can be implemented later for a framework that will suitable for more complex data processing. Another reason for considering representing a hurricane as a “collections framework” is memory usage. If there is a hurricane data structure, there will be variables defined as type of that hurricane data structure. Because hurricane data is large, large amount of memory is needed to load those variables in runtime. A hurricane collections framework will ensure the most generic interface, operations and will not take lot of memory compared to full hurricane data structure.

In conclusion, a hurricane should be presented as a data structure or a “collections framework” which is a better choice. However, there must be a lot of efforts to create an efficient hurricane data structure that effectively contains enough information and provides useful operations to manipulate hurricane data.

References:
[1] Wikipedia’s data structure definition, http://en.wikipedia.org/wiki/Data_structure

[2] Note on Amortization, D. Sleator, http://www.cs.cmu.edu/afs/cs/academic/class/15451- s04/www/Lectures/amortize.pdf

[3] National Hurricane Center website, http://www.nhc.noaa.gov/ [4] http://en.wikipedia.org/wiki/Tropical_cyclone

Visit Us On TwitterVisit Us On FacebookVisit Us On YoutubeVisit Us On Linkedin