Posts

Stereo Camera

Here is a link that I will try to make a stereo vision input with. http://code.google.com/p/sentience/wiki/HowToMakeAStereoCamera

EXOdesk

Image
I saw this post and many other post about the exodesk. It's an affordable version of Microsoft Surface. I believe it can be replaced with CV + AR. It's going to happen. 8-] http://mashable.com/2011/11/21/exodesk/

Linear Algebra

I never thought that you can find the lecture and the text online: This is the lecture given by W. Gilbert Strang at MIT. http://www.youtube.com/watch?v=ZK3O402wf1c Textbook: Introduction to Linear Algebra http://math.mit.edu/linearalgebra/

Some resource for AR and 3D computer vision

Thanks to Fred Chen's help. Fred is currently a PHD students in University of Alberta. 1. The idea I am passionate about is augmented reality. http://en.wikipedia.org/wiki/Augmented_reality 2. The advanced man-machine interface lab, CS department of UofA. http://spaces.facsci.ualberta.ca/ammi/projects/ . 3. Some of the advanced CV labs (Following UC Berkeley, CMU, and Microsoft research) http://www.eecs.berkeley.edu/Research/Projects/CS/vision/ http://www.ri.cmu.edu/research_project_view.html?menu_id=261 http://research.microsoft.com/en-us/groups/vision/ 4. Computer vision(CV) has developed into a huge area with many directions.  This book has a comprehensive covering of the whole domain, "Computer Vision: Algorithms and Applications". An electronic version is available here ( http://szeliski.org/Book/ ) for free.

350 Edmonton Sept 24,2011

Image
It wasn't a surprise to me that we had about 40 people showed up for the 350 moving the planet rally. Most people were either young or old.  We started at the 150-whyte ave intersection. I learned that the construction site has been polluted by a gas station. It has been there for 14 years. Hard to believe. A big piece of land on Whyte ave not used for anything for 14 years. What a waste. Green Party candidate David Parker had some very practical tips for what you can do if you care about the environment. Meteorologist Julian Brimelow gave a techy speech. Very educational.  MP Linda Duncan came and had a nice speech. It was inspiring.  Raging Grannies: It's a good start. 

Another view of the problem I try to solve

The issue : I found that paper is essential in current business work. Having a hard-copy of a document, a copy of design, it's the most effective way for discussion, for making notes, and recording a decision. To work effectively, it's important to have a hard copy. The Goal : I wish that we can work smoothly without the hard copy of docs, note books. Possible solution : I wonder AR and computer 3D vision may bring this to reality. Virtual "hard copy" of the docs. You can spread it out over your desk, flip through it, write on it and what ever else that you can think of that you may do with a real paper. Maybe not paper air plane. Why not? Virtual note book that you can write on. The pen can be your finger or a pen, or something that your computer treat as a pen. Water down version : (Need to check the current tech level and might be a first step toward a better version) Is there some window manager that can work with AR or VR eye-wears? It's might be a...

The possible solution to Iron man's holograph UI

To implement the UI that we see in that Iron man holograph UI, using the current technology without the cost of an arm or a leg, here is the possible solution. Please see my previous post. Using the augment reality glasses to project the model into our eyes Give 3D vision to our computer Questions I have are: Do we have the product? Probably. I hope it works with Linux, has a simple/easy API to work with. It is not the critical part for this moment. If a Linux friendly 3D display is not ready yet, a stub can be used for development. (Action item, find what's out there) Do we have 3D vision implemented for computers? Probably not, maybe not as well as mouse and keyboard. Maybe implement a simple version, for example, build the 3D tracking ability to a pen. (Action item, find a product, the hardware. If it doesn't exist, maybe put together of two webcams.) What libraries, softwares and existing knowledge we can leverage. (Action item, learn)

My vision of project Ava

Image
I sought, and I found what I was looking for. Having watched too many sci-fi movies, to name a few, the interface in minority report, the Zion control in Matrix. Every time when I have to work with paper, either at work or at home, I wish augmented reality and virtual reality is available for mundane usage instead of gaming or military. The UI in iron man movies is the most exciting and most attractive UI to me. I want to bring this into reality. I wish that one day, the user interface that we need to work with is as simple as paper documents, photos; models projected as 3D objects.  Using 3D tracking and augmented reality, the environment can be our computer screen. The input device can be our hands, or a real pen. You grab a piece of "paper", put it on the table, pick up a "pen" or using your finger, dip in to a color that you like to write or draw in, start writing. This is not a dream in a far future anymore. There is VideoMan  http://videomanlib.source...

"I, Robot, am the Buddha in a teenager's skin"

Here is a post I found on the shroomery forum, I like it, afraid it's going to disappear before I have time to contemplate on it, so I quoted it from this URL: http://www.shroomery.org/forums/showflat.php/Cat/0/Number/6501917 ----------------------------------------------------------------------------------------------------------- You are a robot. This is the first thing you must accept on the road to liberation. Whether or not you are a tabula rasa , a blank slate, when you are born, or there is some spark of uniqueness which allows your mind to react differently to the world than someone else would in your exact situation, the undeniable fact remains: you are a robot. You are biologically programmed through the act of human reproduction, you are emotionally and linguistically programmed by your parents and all those with whom you interact, and you are programmed to live within certain systems (rational, calendric, numeric, religious, scholastic, etc.) by your parent-cul...

Shocking fact about your life

There are 36500 days if you are going to live 100 years. What are you going to do with it? What matters the most? Apparently, I am still looking for the "meaning" of it.

WoW Ubuntu gusty 64 setup

I received a WoW invitation from a friend. Downloaded the install package from their website. First thing I tried is install it on my VM. That is a win xp guest of my Ubuntu amd64 gusty. Which did not work for some reason. The WoW crashes. I talked with my friend again, and find out that "many" uses Wine to run it. It's a surprise to me. Wine wasn't friendly at all back to 5 years ago. The open source world did so many great things. >sudo apt-get install wine >winecfg I set the virtual desktop to 1280x900 as another friend suggested. >wine ./Installer.exe Everything seems okay except the font is a little funny in that window. After everything is done, I try to start the WoW from the installer. It failed. Before that it was trying to install a html engine. That's where it failed. My heart sink a bit. I tried to run the WoW from it's ~/.wine/drive_c/..... /WoW.exe location. It's like a charm. The application stated, with a small problem. The mouse ...

Apache mod_ssl tomcate Axis https user authentication

package com.tiandao.ws.util; import java.io.ByteArrayInputStream; import java.security.Principal; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import javax.servlet.ServletContext; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import org.apache.axis.MessageContext; import org.apache.axis.transport.http.HTTPConstants; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; public class AxisUtil { /** * This method read all possible certificate from request. If the apache * passes certificate to tomcate in "SSL_CLIENT_CERT", this method will * reads and create the certificate. * * @param request * @return */ public static X509Certificate getX509Certificate(HttpServletRequest request) { X509Certificate ret = null; String certString =...

Exposed Domain Object implemented with Spring Aspect Transaction Control + AspectJ

Image
This application was designed and implemented as my first web app following the DDD principles. There are some interesting issues to solve. I had the domain models exposed to the presentation layer. No facade!??? Yeeeeaah, but not exactly. I did not see the similar design at other places yet. Which has no facade in front of domain models, no facade between presentation and business layers. I can imagine the reaction from people who are so used to facade. Spring+AspectJ allow you have this design. Using domain object that has the supporting DAO injected and letting "spring's annotation transaction aspect" handles the transaction. It can work. Although, using Spring+AspectJ can implement this design, it doesn't necessarily mean this design is good for all applications. An evaluation needs to be done. Here are the pros and cons . Pros: Faster development. It accelerates the development. No Facade for the exposed domain model. When a domain object is a natural entry point...

New Stuffs Making Me Feel the Passion Again

Facelets Before knowing this, I can hardly think of a reason to use JSF. There are many benefits from using Facelets with your JSF app. I like the most is the "jsfc" attribute. What it does is converting xml element to another at runtime. With this feature, JSF can finally be "designer friendly". Although I haven't find a way to get the facelets template also friendly to html designers. It's hundred miles better than using bare JSF. From: <input type="text" jsfc="h:inputText" value="#{hello.world}" /> to: <h:inputText value="#{hello.world}" /> Inside Facelets Facelets fits JSF like a glove Developer Doc TestNG I like its annotation, data provider, dependent methods, and some other flexible features. TestNG Doc EasyMock Doesn't matter you are a classical or mockist styles of Test Driven Developer, you will find EasyMock is a good tool in your pocket. Mocks Aren't Stubs EasyMock Doc Shale Ever wondere...

Domain Driven Design

What I can say, still a new new thing to do if you are working with a serious project, think it twice. It had given me some interesting challenge. Spring, aspectj, and Hibernate, the domain object are injected with the repository. Some how, domain driven design made me think that Eric Even's "Entity" are similar to EJB's "Entity" bean. They are all heavy objects. They all hide the details about the database operations. They all need this factory and service to complete the life cycle. Let me know if I am wrong about this. This is about a subtle problem during my development of a project. It related to hibernate lazy initialization. When the domain object loaded with hibernate configured lazy="true", and spring + run time aspectjweaver was trying to inject in the data store, I had this "CGLIB Enhancement failed [classname]" failure from hibernate. . Took me an hour to find out what really happened. Had no clue at first. Then there is no ot...

Blizzard

Image
Here was what Edmonton just had on Jan 10, 2007. I was looking at Maven2 and am very convinced by its power. To have a project going, maven 2 can save you a lot of time on those small things. Testing report, build, dependency jar files and more. The Continuous Integration tool I used is continuum. A very nice tool, it works with Maven nicely. Another thing that is worth to mention is that JSF is not that bad after all. I spent a little time on JSF and found it's not hard to pick-up. It is going to win a bigger market share soon. Because it's "standard". A lot people will buy it just because of that.

JDK 6

JDK 6? I felt 5 was just out for not long, wait a minute, it has been out more then a year ago. Am I too old!? Do you guys have to same feeling? Java grows like crazy. Had a look at JDK 6, I love it. You can feel it's faster, some say it's two digits performance improvement. The script engine is a brilliant idea! I was thinking that JCP was only stealing ideas from open source projects. Of cause there are lots other improvements. Such as the new debugger. Looking forward to use that function soon. It made me exited and proud to be in Java field. Give me some challenges.

Scripting

Have been thinking about learning a powerful script language for a while. I am not bad on Bash. Bash probably is the most guaranteed tool when you need a scripting language. You can find it on every machine these days. It definitly worth to spend sometime if you use *nix. Last night, I felt that I have to do something about my scripting skills. Walked up to my computer, did a quick search on google, before long, I found I need to choose one from Python and Ruby. Did 30 minutes reading, among these two languages, I decided I will learn Ruby. Why, here are the reasons. I live in Java world. Python use "indent" to mark the boundary, made me feel unsecure. I do web applications. Ruby on Rails is another attraction that Ruby have on me. Ruby's Completely OO. I am curious about what Ruby's OO looks like. IMO, to learn which one probably doesn't really matter. Ruby just happened fit in my knowledge base better. =============================================== After about ...

Spring framework, Hibernate and MySQL Replication

Image
Laterly we have our site grown to the stage that a single mysql server will not able to do the job anymore. That's something we realy like to see. The CPU usage had reached more then 90% at peak traffic time. MySQL even crashed a couple time when we were running an early version. 5.0.x. Don't remember what it was exactly. But when we upgrade to 5.0.24, it stopped crashing. It was also unacceptablely slow under the heavy loads. We need some heavy duty database solution. I have read a couple articals about mysql cluster. So my first thought is cluster. But when we ask our hosting company to set up a MySQL cluster, they suggested replication instead. Sometimes you just could not judge things by their name. Have run into the word "replication" a couple times in the mysql ref book. I miss judged the replication function. My sql does not like some other databases, this replication is real-time replication. To set up a master/slave replication system up is really a straight ...

FC6 LiVES amr_nb amr_wb audio

I was trying to connect a couple video clips from my daughter's Halloween party. My home computer has Fedora Core 6 Linux. The video editing tool is LiVES . Under the hood, it's using mplayer to load my videos. But with my installed mplayer options, the amr_nb audio wasn't enabled. It's time for source code digging. Into the libavcodec directory of mplayer, noticed the amr.c file, it says: This code implements amr-nb and amr-wb audio encoder/decoder through external reference code from www.3gpp.org. The licence of the code from 3gpp is unclear so you have to download the code separately. Two versions exists: One fixed-point and one with floats. For some reason the float-encoder is significant faster atleast on a P4 1.5GHz (0.9s instead of 9.9s on a 30s audio clip at MR102). Both float and fixed point is supported for amr-nb, but only float for amr-wb. --AMR-NB-- The fixed-point (TS26.073) can be downloaded from: http://www.3gpp.org/ftp/Specs/archive/26_series/26.073...