Friday, December 30, 2011
Chinese Character For Previous - #2
Tuesday, December 27, 2011
New Year's resolution
Friday, October 21, 2011
Another whiteboard
Thursday, October 06, 2011
Bournemouth University
From their page:
Using digital tools to create visual effects for film and television. Visual effects are typically shots or sequences of images that cannot be created live in front of the camera, but have to be created using production and post production processes.
The core of digital effects is the combination of captured live action with synthetic images, though sequences that are created could be all CG or all live action. The digital tools can take a variety of forms, including 3D softwares and compositing softwares. The main softwares taught and used by the students are: Houdini,Nuke, PFTrack.
Objective of the programme
Creating future industry leaders. People who, with time and experience, will become the next generation of visual effects supervisors and designers.
Saturday, September 24, 2011
Dabbleboard
Dabbleboard is an online collaboration application that’s centered around the whiteboard. With a new type of drawing interface that's actually easy and fun to use, Dabbleboard gets out of your way and just lets you draw. Finally the whiteboard enters the digital age!
It seems to have some object recognition software that helps clean up rough lines, squares, and circles into cleaner geometric shapes.
Also, since the board is web based, naturally the video demonstrates online collaboration on a whiteboard.
Friday, September 23, 2011
Shell scripting
One advantage to Bash-scripting is mentioned at reddit:
Python uses more memory and requires more disk space to be installed. This is might be important in small resource constraints environments such as embedded systems or small VMs.
Also the shell is always running and so shell scripts should start up faster than Python scripts.
Perhaps on a low cost embedded device Bash-scripting is the way to go. I will try to follow up on this later. As far as I can tell, one must have a shell on the system to work with, but having python is optional if one is willing to give up a lot of software. Therefore, for a system with limited hardware, in a sense you get bash scripting for free.
Prusa Mendel
Prusa Mendel is the Ford Model T of 3D printers.
Like the Model T, the Prusa Mendel improves on a previous design by being more streamlined for manufacture. The Prusa Mendel is a simpler remix of the original Mendel. By default, it uses printed bushings instead of regular bearings, though options to substitute inexpensive lm8uu linear bearings or other types of bearings or bushings are available. The current version uses three 608 bearings in total, one for the X axis and two for the Y axis. The 624 bearings are gone altogether.
Prusa's main goal is to be the purest and simplest 3D printer you can build.
I would like to learn more about this printer, but I need to finish some other, easier projects like the pong clock. Some day I would like to find a database of 3d models to print with such a machine. Maybe it could use html5 canvas 3d elements to preview the printable objects.
Saturday, August 27, 2011
Introduction to A.I. class
A bold experiment in distributed education, "Introduction to Artificial Intelligence" will be offered free and online to students worldwide during the fall of 2011. The course will include feedback on progress and a statement of accomplishment. Taught by Sebastian Thrun and Peter Norvig, the curriculum draws from that used in Stanford's introductory Artificial Intelligence course. The instructors will offer similar materials, assignments, and exams.I have been doing some preparation for that online class lately. I bought a used copy of an older edition of the textbook, Artificial Intelligence: A Modern Approach, and am skimming the early chapters. The site mentions the book is optional though so I doubt it will help much with the work for the course. However, the book has shown some usefulness. Of course, having enough time to continue my studies is next to impossible.
Why take the time to do this course then? Clearly, by taking the course one would learn some of the basics, but what could one hope to accomplish with this knowledge? Many examples exist of what people have already done with a.i. The class site mentions things such as humanoid robots, Google goggles, and self-driving cars. An example closer to every day life would include household electronic devices that have a learner feature to gather information from their environment and then behave differently. Yet, I don't see myself working with cutting edge projects like Google goggles. Those types of projects seem more appropriate for people who could teach this course rather than one who needs to take the course. What kind of application of this learning would be simple enough for me to do but still be of help to some one else or myself? Perhaps applying a rational agent, as the book calls it, to a video project would be something approachable. I've seen a C++ boids example and Blender already has a boids particle system. I'm going to need more time to ruminate on this.
Thursday, August 18, 2011
Robot army video
You could call it Mission Impossible: Robot Library Heist. An army of flying, rolling, and climbing robots have been taught to work together to find and snatch a book from a high shelf.
In a striking display of military-like precision, the robotic team, duhttp://www.blogger.com/img/blank.gifbbed the "Swarmanoid", attacks the problem with flying "eye-bots" and rolling "foot-bots". A "hand-bot" then fires a grappling hook-like device up to the ceiling and scales the bookshelf. Footage of the experiment, conducted by Marco Dorigo at the Free University of Brussels, Belgium, and colleagues, won the video competition at the Conference on Artificial Intelligence in San Francisco earlier this week.
Wednesday, May 25, 2011
Python Houdini Tool Post
Sunday, May 22, 2011
Monday, May 16, 2011
Historic computers on the web
Sunday, May 15, 2011
Computer Graphics, Fractals, Demoscene
Sunday, May 08, 2011
Application in Python Using a Trie
Wednesday, February 16, 2011
Programming Contest 43
The contest involved searching for words in a grid of letters, as in the game of Boggle. Once a word in the given dictionary file was found, information about it needed to be stored in a output file. This information included things like the word's first letter coordinate in the grid, the line number of the word in the file, the score, and the direction to read the letters. The direction was given as a series of numbers starting with 1 as North, 3 as East, 4 as SouthEast, etc. A word would still be valid even if it needed to be read right to left instead of left to right. The dictionary was limited to about 14,084 words that contained between 2 and 5 letters. This letter count limitation simplified things, as the game board itself was 5x5. So words would always line up in a horizontal, vertical, or diagonal manner. No bent lines needed to be figured. Scoring was kept relatively straightforward as a count of the number of letters in the dictionary word.
The letter Q presented a complication. In the Boggle game, the Q die always has a U. So even though a given series of letters might just be QA, In the contest, QUA needed to be logged since it was in the dictionary of valid words, and the U included in the score, for a total of 3. One more case had to be considered involving Q. If a U die followed the Q, then the pair was accepted as QU. In other words, a U was sometimes ignored.
Unfortunately for my entry's ranking, my code didn't report a case where a valid word had a Q that wasn't followed by a U; so it didn't get to tie with the higher ranked entries based on score. During development, I believed this wasn't a valid case, but after seeing the results, I believe it was, although I haven't gone through the output of the other entries to verify this. I posted a comment about this problem, but sometimes it is difficult to get feedback on every software requirement, and one has to make reasonable assumptions.
The input and output involved text files. No graphical programming was needed for this code. The input file consisted of 100 lines of 25 character strings that represented 100 grids of letters.
Optimization was very important because in the event that applications reported the same score for their grids, the faster solution was ranked higher. Multithreading was used by some entries since each of the 100 grids could be scored as a game independently of the other grids. In one case, the OpenMP api was used. The use of this api looked interesting because the syntax needed to parallelize loops was minimal. However, parallel programming can still be prone to bugs, and OpenMP apparently leaves things like race conditions up to the developer to design out. Also, I'm not sure if there is a profiling tool that would work properly when parallelism is used. The only thing I've found on Google is ompP. I haven't heard of it before, but then OpenMP is new to me as well. It is built into Visual C++ 2010 Professional, but isn't in the express edition. It needs compiler support to work. I may need to use gnu c++ to try it out sometime but am reluctant to leave C#.
I placed the code in a Github account for later. Perhaps I will be able to incorporate some of the ideas from the other entries into later revisions and see if the application runs faster.
Wednesday, January 26, 2011
Tries
However, I'm currently checking out hash tables as an alternative. I also read some people use suffix arrays as another choice.