Friday, 6 May 2016

NTC Technopreneurship Programme 7 April 2016

Content

- How do we innovate?

- Customer Development

- The Lean Startup framework

Process:

Today was the second lesson of the technopreneurship programme held by Mr Chia. First, we started off appropriately with learning about one of the most important skills, not just in setting up a startup but in life as well, the skill of innovating.

How do we innovate?
Innovation is the thinking of and establishment of new ideas, methods or product. As Mr Chia said, one of the main problems faced by most people is that they set limit or thought confinements for themselves. These assumptions limit the thinking of the individual as they will hence streamline their thoughts along these false and unnecessary assumptions.

Why do people assume and how do we deal with it?
Only when we know why we assume, then we can learn how to get rid of our assumptions. Making assumptions are part of the human survival instinct. Making assumptions is an innate habit in all humans that have kept us alive. This same tool which makes us more efficient makes us less innovative as well. We have to learn and understand the situations in which we assume so that we can avoid doing so and thus innovate.

However, when we innovate, we must also be realistic. To innovate is commonly known as to 'think out of the box'. This box refers to the assumptions we make when we meet a problem. However, what is not commonly told is that another box exists. This box is the box of real world constraints. Our solutions must be practical. There are things we are unable to compromise, such as the laws of physics. To innovate, we must think outside our box of assumptions and within the box of real world constraints. Sometimes, this space can be extremely small and hence, it is often necessary to perservere before finding success.

Being able to innovate is not enough. We must have the knowledge of entrepreneurship to successfully put our innovation into effect. In this lesson, we started off by learning about customer development and value proposition.

There are four phases to customer development:
- Customer Discovery
- Customer Validation
- Customer Creation
- Company Building



He also told us about the 'Lean Startup' model, used by companies to improve their idea or product.
The objective is to accelerate this feedback loop with minimum resources.

The first step of of the Customer Development framework is Customer Discovery.
Customer Discovery is finding out more about the wants of the customer, hence allowing the company to adjust its products or services to the tastes of the consumer.
The next step is Customer Validation
This step is a presentation to customers, so that the customers will be able to understand what you are doing, and hence give feedback or decide whether to support you. There is a validation board for companies to present their ideas or products:


Most importantly, our ideas or products must have good value propositions in order for them to be attractive. 



Reflection:

I find the part about innovation extremely useful and applicable in my life, even from this point in time. Many a time, I find myself unable to come up with innovative ideas or solutions. Upon reflection, I do realise that it is often my assumptions that cause such problems. I will keep Mr Chia's advice in mind when I approach problems in the future. Although the rest of the lesson is not yet currently applicable, I will also keep them in mind as it might be useful for me in the future still.

Personal Development:

After this lesson, I have gained an interest in entrepreneurship. Over the weekends, I will be exploring on my own the basics of starting, as well as maintaining, a start-up. I will also try to explore the relationship between the Singapore Government and start-ups, as well as the impacts of start-ups on the economy. I hope that through this, I will be able to broaden my horizons and understand more about entrepreneurship.



Sunday, 17 April 2016

NTC Technopreneurship Programme 31 March 2016

Content:

- Self introduction by speaker

- Learning from Success and Failure

- What is entrepreneurship?

Process:

It was the first lesson of the programme, which would last for a term. It was our first time meeting the speaker, Mr Roderick Chia. He first started with a self-introduction, which impressed me alot. Mr Roderick Chia is an extremely successful man by many means, having come from a humble background to winning a total of 5 Tan Kah Kee Young Inventors' Awards. I could not wait to learn from this man and had many burning questions in my mind. How did he get the innovation to create solutions? How did he find support and means to work on his projects? How did his successes work out? I was determined to get into the mind of such a prestiged speaker and to learn from his experiences.

Learning from success and failure

The first lesson he taught us was: Not all problems are worth solving. Mr Chia explained that in his many successes, most in fact turned out to be failures in their own different ways. I was perplexed by this statement but not long after, I was able to understand where he was coming from.
Is there a diminishing need for solution?
Many problems exist today. However, some of the problems might no longer exist in the near future due to the improvements in technology. Improvements in technology can alter our lifestyles and cause some current goods or habits to be redundant and out of date. The solutions to such problems will soon be redundant just as the problems are, and your success will not make an impact. A personal example of Mr Chia was when he created an ellipse compass. Soon enough, there was no more need for an ellipse compass due to the increasing prevalence of computers, and Mr Chia's invention became redundant as well.

The second lesson he taught us: Do you have the ability to bring the solution to the market? An invention would turn out to make little impact on the lives of people if it could not be brought to the market, even if it is extremely useful and revolutionary. When creating an item, we should not only focus on the product, but on the ultimate end in mind: bringing it to most people to impact lives. Hence, not only should we create a working product, we must create one that is simple to manufacture and can be reproduced on a large scale to increase accessibility to people. If our product cannot play a part in the peoples' lives and are just hidden in a workshop, where is the success in our product?

The third lesson: Would the anticipated problem ultimately surface? Thinking back to the first lesson, many of us would try to predict future problems and create solutions, to avoid creating redundant solutions with diminishing need. So did Mr Chia, but Mr Chia met yet another failure. The anticipated problem did not surface and hence his invention was also redundant again.

When trying to innovate and create solutions, we should always think back to the three lessons above to ensure that we are on the right track. But how do we identify a problem worth solving?

We need to:

Understand our strengths and weaknesses
We have to understand our strengths and weaknesses before we start a project. This is to prevent us from embarking on a project we are unable to complete, which will take up our time pointlessly. It will also allow us to understand our capabilities so we can successfully embark on a project we can complete. Understanding our strengths and weaknesses can allow us to work on our weaknesses and improve ourselves.

Understand the resources we have or can obtain
This is also for us to embark on a project we can complete, and not one where we will be unable to complete due to limitations in resources.

What is your passion, hobby, interest, skill etc?
Without interest or passion, we will not have motivation to push through and eventually succeed.

What is the value proposition of the solution and how big a problem are you solving?
Developing strong value propositions not only makes it easier to connect with target audiences but it establishes a foundation upon which a company's marketing and sales activities can be built upon. It also provides employees with a consistent and cohesive way to talk about what they are doing.

What is the trend of the market globally?
We have to understand the global trend to create a product that will be accepted by the public and can be marketed and sold well.

Sources of inspiration
For an inventor looking for sources of inspiration or support, he or she can turn to:
Crowdfunding sites
Concept Design
Interest Groups
and many other sources too.

Reflection:

I find it very meaningful that the school is inventing a speaker to give us talks on these content. These knowledge can be very useful not just in our future, but also currently. For example, for our CID4+ these year, we create products to help solve problems in society. We can constantly refer to the lessons given to us by the speaker to evaluate our own work and it can be used to ensure that we stay on the right track, not creating solutions that would be redundant in the future or creating projects we cannot achieve. These lessons can not just be integrated into our CID, but our lives as well. Before doing anything, we should create a framework for ourselves to evaluate the impact of our actions so that we can do the right things. We can create a thought framework for ourselves that can help us in thinking and learning too. Having a framework can help us in many ways by self-regulating our thoughts and actions.

Personal Development:
Personally, I will retain and use the knowledge I have learnt from this talk in multiple facets of my life as I believe that it can be helpful to me. It is a rare opportunity to have such a successful speaker present to us and share his invaluable knowledge. Another point that the speaker pointed out was that we should look for a problem before finding a solution, and not look for a problem with a solution in mind. Talking to Mr Zhou, I had realised that it was the exact mistake my team had made with our first proposal. We had the solution, the creation of the glow with UV light, and we sought to fit our solutions inside problems which did not exist in real life, such as the need for a UV clock. The lesson has definitely taught me alot and I look forward to the next few lessons.


Friday, 1 April 2016

Flappy Bird Scratch Task

Content:

- Computational thinking (understanding the logic of the codes)

- Creation of own Flappy Bird game using sprites, backgrounds and sounds provided

- Creation of own sprites, modifications to game etc.

Process:

For this task, the teachers introduced us to Scratch, a game programming program. What first caught my interest in Scratch was the way the coding was carried out. Instead of the conventional typing in lines of codes, Scratch codes are actually put into individual blocks. The blocks then can be dragged onto the script of an individual sprite and connected to other blocks, eventually forming a string of code for that particular sprite. A string of connected blocks of code is shown in the image below:

 This string of code is actually made up of 4 blocks of code. As we can see, it is much more convenient and easy to use this than to type lines of codes. These blocks are all already provided and only dragging and dropping of the codes in the correct order is needed. Less debugging needs to be done as there is no sytax that must be followed in this case.

Eventually, I also enjoyed using scratch as it had a user-friendly interface that was easy to understand and interact with. Each element of the game, such as the characters and the pipe in this case, is known as a sprite in Scratch. Upon creation of each sprite, the sprites will be placed on a toolbar as shown:

As we can see, the sprites are organised very clearly in the toolbar and it is easy to select the sprites by just clicking on it in the toolbar. In the picture, we can see that the pipe is selected. Upon selection of an individual sprite, 3 more tabs will appear, namely the script, costumes and sound. The script is the place where the strings of code as seen above are located at and the codes in the string of the particular sprite only runs for that sprite individually. The costumes tab includes several costumes of the sprite. This can be used to help us create an animation effect such as the flapping of the wings or randomise the appeareance of costumes such as that of the pipe. The costumes of the sprite is also controlled by the blocks of code found in the script of that sprite. As for the sound tab, sound clips for the sprite can be included and controlled in the script.

With the instructions given by the teachers and the easy-to-use interface of Scratch, I was able to quite easily complete the initial task of replicating the Flappy Bird game. Then, Mr Zhou challenged us to modify and improve the game on our own. This was slightly harder as it meant that we had to  be creative, and had to be able to transform our intended outcome into strings of working code. I also adjusted with the magnitude of the boost function and the acceleration of gravity to ensure a smoother gameplay. Some of the modifications I added include the switching of Flappy bird to Pacman and back at several time intervals, moving clouds from the right to the left of the screen, and synchronising the time so that the score would be added as the character passes the pipe instead of as the pipe is deleted.

For the Pacman, I added two extra images: one of Pacman with mouth open and one with Pacman with his mouth closed as the costumes to the Flapppy Bird sprite. After a set amount of time, the Flappy Bird will be replaced by the Pacman. Just like the Flappy Bird will have its wings show the illusion of flapping, the Pacman will have its mouth opening and closing repeatedly.

For the cloud, I created a new sprite, and ran a set of codes similar to that of the pipe. The cloud which is hidden outside the screen would be repeatedly cloned and the clones would move from the right to the left, deleted at the end.


Reflection:
Apart from the convenience offered by Scratch, the blocks-of-code system in Scratch also allows us to better understand code logic and improve our computational thinking. For the strings of codes to run right, the blocks of codes must be put in the right order, which requires computational thinking and an understanding of code logic. Deep thought and close attention must also be given to certain strings of codes that will run interactions between sprites. As the sprites are coded individually, messages must be sent and received between sprites for the intended outcome to occur. This will require us to code logically and meticulously to avoid mistakes. For a beginner, I feel that Scratch is definitely a good programme for learning. The neat,easy-to-use interface and the block coding system will aid the beginner in maintaining his or her own project well. It will also develop skills in the beginner while allow them to bypass more complications along the way such as wrong use of syntax which may hinder their learning.

Personal Development:

Prior to this task, I have also personally embarked on a Stencyl game project on my own. Stencyl is another game programming tool that is similar to Scratch. The sprites have seperate scripts, sounds etc, just like Scratch. The codes are also in blocks that will be connected, similar to Scratch. Personally I prefer Scratch as I feel that the interface of Scratch is still neater than that of Stencyl. However, having used Stencyl definitely helped me pick up Scratch more easily and hence I was able to complete the task rather quickly. Not just did this task help me learn alot, I also enjoyed the process as well. From here, I would try to embark on several 2D game projects on my own as well. Currently, I am trying to learn 3D game-making on the Unity engine too.

About Flappy Bird:

Flappy Bird is a 2013 mobile game, developed by Vietnam-based developer Nguyễn Hà Đông[2][3] (Dong Nguyen) and published by .GEARS Studios, a small, independent game developer also based in Vietnam.[4] The game is a side-scroller where the player controls a bird, attempting to fly between rows of green pipes without hitting them. The developer created the game over several days, using a bird protagonist which he had designed for a cancelled game in 2012.
The game was released in May 2013 but received a sudden rise in popularity in early 2014. It was criticized for its level of difficulty and alleged plagiarism in graphics and game mechanics, while other reviewers found it addictive. At the end of January 2014, it was the most downloaded free game in the iOS App Store. During this period, its developer claimed that Flappy Bird was earning $50,000 a day from in-app advertisements as well as sales.
Flappy Bird was removed from both Apple's App Store and Google Play by its creator on February 10, 2014, due to guilt over what he considered to be its addictive nature and overuse. The game's popularity and sudden removal caused phones with it pre-installed to be put up for sale for high prices over the Internet.[5][6][7] Games similar to Flappy Bird became popular on the iTunes App Store in the wake of its removal, and both Apple and Google have removed games from their app stores for being too similar to the original. The game has also been distributed through unofficial channels on multiple platforms.

The game below is only created for educational purposes. Credit goes to the original creator or the 'Flappy Bird' game.

Saturday, 26 March 2016

Log for 24 March 2016

Content:

- Reviewing of proposal with teachers

- Improving on ideas/ creation of new ideas

Process;

We first met the teachers to discuss on the proposal that we had submitted earlier. Our first proposal was to create a UV clock. The idea stemmed from the the luminescent property of fluorescent paint under the exposure of ultraviolet light. Fluorescent paint, under the exposure of UV light, will continue to exhibit glowing properties for a period of time even after the removal of the UV light. We wanted to harness this effect to create a more energy efficient clock and a better clock display. We believed that although UV LEDs were less energy efficient than LEDs found in most digital clocks today, our design of using less UV LEDs to 'write' the time and the lack of need for constant energy supply to the LEDs would reduce overall energy consumption. Granted, the use of the Raspberry Pi and and the mechanisms within the clock would also take up energy, but we believed that if this first trial was to work, we could create a UV clock with a circuit board that would cut down on further energy consumption. We also believed that the display of the UV clock would be far better than that of those in the current market. Mechanical clocks cannot be read in the dark and digital clocks require more LEDs and constant power supply to keep the LEDs lit. Aside from the technical advantage we believe the UV clock could hold over the other clocks present today, we were also fascinated with the interaction between UV light and fluorescent. There has been little research about such an interaction and little trials to incoporate such an effect into daily life and hence we also wanted to, during the course of our project, research and hopefully shine some light onto the issue. We also gave our project a high level of difficulty as it required first, the research and understanding of the glowing effect, and second, the programming skills such as that of x and y axis positional to move the LEDs to 'write'. Our idea got rejected and we then had a difficult time trying to think of another one.

Reflection:

Sadly, our idea got rejected. The teachers wanted us to prove with calculations the energy consumption of the UV clock against that of the digital clock. As the information on the internet is too little, we were unable to do so. Whereas, we treated the project as an opportunity to learn and experience, and wanted to test the energy consumption after it was completed to see if our hypothesis was true, the teachers wanted a useful product and wanted us to first prove that our hypothesis was true before carrying it out. We also wanted to use the project to conduct a first prototype and test the viability of using the UV-fluorescent interaction, focusing on the energy consumption less as the Pi could simply be replaced by a circuit board. However, the teachers did not agree with such a stand and wanted a final product to surface from this project. Hence, due to the many difficulties, we had to do away with the project with think of another one.

Personal Development:

The rejection of our proposal taught me that life is not always smooth sailing. However, if I have the will to learn, I should explore and experiment on my own even outside the school. The school offers us some financial aid but nonetheless some things can be done without much money. It helped me to most importantly understand the school in terms of the things they look out for in the project of the students and this will not only help me in the later proposals but through my remaining school life too.


Arduino Workshop Lesson 2 18 March 2016

Content:

- Setting up of LED to appear and disappear in a line

- Adding a buzzer to play sounds in sync with light

- Building of own project

Process:

It was the second lesson of our Arduino workshop and our first task was to light up a row of LED such that it would seem like the light was travelling in a line down the LEDs. This would require that all the LEDs be off as the next on is turned on and so on. This is a relatively simple task that we could complete using the delay function. The next task, however, was to involve the buzzer into the set-up such that a note would be played as the light switched from one LED to another. The main difficulty here was to synchronise the playing of the note with the lighting of the LED. For this, we were unable to complete the task until we figured out how to use an array. Finally, we were able to complete the task after lots of hard work.

The result of our hard work:



The second segment of our day was for us to embark on our own projects. We were allowed to think of our own ideas and to work it out. My group worked on two projects, a reaction time timer and a dice. Unfortunately, both of them did not work our very well but in the process, we had to be extremely determined and we learnt alot through the web and trial and error. Trying to complete our own projects trained us to think deep and concentrate well.

We also explored the other components in our Arduino kit and tried to make them work. One of the examples was the LCD. The wiring of the LCD was extremely complicated and we had to follow examples from the internet to make it work. We had to be extremely focused and meticulous as we could not even attach one of the wires wrongly without making the set up not work. After a long long time and several retries:




Reflection:

The objective of this course and the embarking on a self project, to me, was to teach us the value of determination and the will to learn and succeed. Success is the derivative of your hard work. It does not come easy and it only goes to those who toil and work effectively. I also realised the wide array of learning possibilities found in the internet. We are extremely blessed with the internet today as it empowers us with the opportunity to learn. As long as we have a will to learn, we can always do so with the internet. I will use the internet much more not just to further my learning for Arduino but in all aspects of learning as well. 

Personal Experience: 

Not just was this course beneficial to me technically, it built my character as well. I made me realise the important of hard work and the will to learn. From now on I will strive to work harder in all aspects of my learning and life. I also gained more understanding of the different functions in Arduino and understood the importance of determination as a programmer.

Arduino Workshop Lesson 1 on 11 March 2016

Content:

- Introduction to Arduino

- Setting up of hardware and software

- Delay and millis function


Process:

It was the first day of our Arduino course and as beginners interacting with the Arduino, we were first given an introduction about the capabilities of Arduino, the set-up of the Arduino, and how to use to Arduino. We first embarked on a small task, which was to set-up one blinking LED. To do this, we were required to understand how to set a circuit up and the workings of the bread board. We had to understand the sequence of the breadboard, the pins on the Arduino, and had to use a resistor to avoid burning out the LED. We then had to tackle to software aspect of the task. We were introduced to the logic behind the Arduino programme which runs on the C programming language, relatively new to the most of us. However with the instruction of the trainers, we were able to complete the basic task while gaining some minute understanding of the programming language.

The next task we had was to send out the SOS signal with the blinking of the LED. The signal consists of 3 short taps, 3 long taps, followed by a final 3 short taps.. This task was not difficult and we were able to solve it easily using the delay function. The next part however, was much more difficult. The trainer required us to use the millis function as an alternative method to avoid some drawbacks of the delay function. Although not needed on this task, he wanted us to practise using it. The drawback of the delay function was that it would stop the whole Arduino from functioning for the set period of time. While the delay function was in effect, the Arduino would not be able to work on anything else. On the other hand, the millis function keeps track of time instead of stopping the Arduino for a period of time. Using the millis function, we would be able to set the Arduino to light up at certain instances in time without compromising other programmes running on the Arduino. With some difficulty, we were eventually able to complete the task, learning an important function in the process.

Reflection:

I am very glad that we were given the opportunity to pick up this course. Arduino holds alot of capabilities and possibilities, and it is not too hard for us to pick one up and experiment ourselves. Arduino however, would require me to pick up a new programming language, which although time-costly, will improve my overall programming flexibility and knowledge. I am interested in exploring and learning more about the Arduino and I might consider purchasing one to experiment on and embark on several self learning projects. I am very excited for the next Arduino workshop where we would be allowed to conduct some of our own projects. During the week in between, I would self-learn more of the C syntax which can help me during the next lesson.

Personal Development:

Personally, I have only heard of Arduino but not tried it out. This lesson was my first experience in handling and using the Arduino. I actually enjoy what I have attempted so far and am willing to get more of such opportunities. I would also start to  learn more different programming languages so as to improve myself and my capabilities in different areas of computing. Personally, I enjoyed the trainers' methods of conducting the workshop. There was little guidance from him which encouraged us to think and solve problems on our own. The sense of achievement from completing a task, besides the knowledge we have gained, made the first lesson of the workshop extremely enjoyable.

About Arduino

Arduino is an open-source platform used for building electronics projects. Arduino consists of both a physical programmable circuit board (often referred to as a microcontroller) and a piece of software, or IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board.

The Arduino platform has become quite popular with people just starting out with electronics, and for good reason. Unlike most previous programmable circuit boards, the Arduino does not need a separate piece of hardware (called a programmer) in order to load new code onto the board – you can simply use a USB cable. Additionally, the Arduino IDE uses a simplified version of C++, making it easier to learn to program. Finally, Arduino provides a standard form factor that breaks out the functions of the micro-controller into a more accessible package.

Wednesday, 2 March 2016

Log for 3 March 16


Content:

  •           We learnt how to check our IP address ( ipconfig, ifconfig)
  •           Learnt how to use PuTTy to programme Pi with laptop over server (SSH)
  •           Raspberry Pi terminal basic commands

Process:

Each group SSH-ed one laptop to their Pi using Mr Zhou's router using PuTTy. However, many did not work due to the IP addresses given out to the Pi. This failure might be able to prove helpful in the future when troubleshooting etc. The non-working IP addresses given out by the router was an issue that we faced and I personally wonder how this can be solved or avoided so that this issue will not be faced again in the future.

Reason:

Being able to SSH provides alot of flexibility to us when working at home and outside. Without SSH, we would only be able to make use of the Pi bu attaching it to a monitor, keyboard, mouse, etc. This is extremely inconvenient, restricting us to doing it at home, and many of us do not have the hardware ourselves. With SSH, we will still be able to control the Pi through our laptop wherever we are, without any hardware. This is extremely convenient and the skill is directly applicable and  important for the near future when we bring our Pi home etc.


Personal Development:

Today was a very short lesson. I was introduced to SSH which I had not known before. I feel like it can be a valuable tool that can help me in many aspects in the future and not just interacting with the Pi the near future. I look forward to be able to explore the wide array of capabilities that SSH can bring. I also got to revise some of the basic terminal commands which I have already known. I was also exposed to binary because of the IP address incident, and this turned out to be a blessing in disguise as I eventually learnt how to read binary, The internet is a wide library of knowledge and I believe that being able to harness and make use of it effectively is as important as any other skill. We are blessed with such an opportunity to learn and I feel that we ourselves should strive to learn independently.


About PuTTy


PuTTY is a free SSH, Telnet and Rlogin client for 32-bit Windows systems.
SSH, Telnet and Rlogin are three ways of doing the same thing: logging in to a multi-user computer from another computer, over a network.
Multi-user operating systems, such as Unix and VMS, usually present a command-line interface to the user, much like the ‘Command Prompt’ or ‘MS-DOS Prompt’ in Windows. The system prints a prompt, and you type commands which the system will obey.
Using this type of interface, there is no need for you to be sitting at the same machine you are typing commands to. The commands, and responses, can be sent over a network, so you can sit at one computer and give commands to another one, or even to more than one.
SSH, Telnet and Rlogin are network protocols that allow you to do this. On the computer you sit at, you run a client, which makes a network connection to the other computer (the server). The network connection carries your keystrokes and commands from the client to the server, and carries the server's responses back to you.