Monday 12 September 2011

How to write the piecewise equation in latex?

When you are writing a paper, especially with a lot of mathematical equations, like piecewise equation, to know some ways to achieve this is quite a fun. To myself, I prefer using "cases environment" . Feel free to take place "\[ ... \]" by "\begin{equation}...\end{equation}"  

The cases environment

The cases environment[1] allows the writing of piecewise functions:
\[
 u(x) =
  \begin{cases}
   \exp{x} & \text{if } x \geq 0 \\
   1       & \text{if } x < 0
  \end{cases
}
\
]

u(x) = 
\begin{cases}
\exp{x} & \text{if } x \geq 0 \\
1       & \text{if } x < 0
\end{cases}

More information about editing advanced math in Latex can be referred here!

Thursday 8 September 2011

IEEE style Bibliography in Latex can not display?

Recently I am writing an IEEE conference paper by Latex, unfortunately, I can not link to references even though I define everything correctly by \bibliography{bibs}. Usually, I only need to run "Bibtex" and "Latex" for couple of times, it will fix the link issue automatically. However, it does not work this time. 


Through searching on Internet, I found a solution from this blog
Just put \bibliographystyle{IEEEtran} under \documentclass line. Now it will display bibliography properly after recompiling. 

MIUI and XiaoMi Smartphone from China

http://en.miui.com/


One of Chinese smartphone developper teams releases their first Android based OS and their first generation smart phone recently, which almost sweeps the entire smartphone market in China. I will cross my finger to wish this product can bring some new ideas into mobile industry, not only from visualization level, but also communication technology side.


The following contents are from the forum of Xiaomi.


MIUI is one of the most popular Android ROMs in the world. It is based on Android 2.3, featuring better experience and richer themes. MIUI is updated every Friday based on the feedback from its test users.



Core Features
1. MIUI Desktop
Widgets and apps are displayed together on the desktop.
Long-pressing the desktop lets the user rearrange and add widgets, and organize their apps.
An app can simply be dragged to the top of the screen (where a rubbish bin will appear) to uninstall it.
There are 8 different screen transitions which can be applied at the touch of a button.

2. Smart-Dialer
The T9 Smart-dialer can search for contacts by name, by phone number, and even lists results based on how often you call them.
By default, no apps installed from the Android market can monitor users' phone activity.
Currently, there are over 200,000 phone number codes known to MIUI. These are updated frequently.
3. Messaging
A contact can be added at any time;
It is simple to send a message to an entire group;
Users can make use of websites, email addresses and phone numbers in a message simply by tapping them;
There are many pre-written messages for all occasions available to users.
4. Phonebook
Easy searching of contacts;
Simple to add a new contact;
Advanced group-management;
Users can set large images (full photos) as a contact's display image.
5. Themes and Appearance
Super-fast applying of themes;
Themes can be applied as a whole, or the user can mix and match different parts from different themes;
There are many customizable components, including the ringtone, wallpaper, and fonts.
6. Camera
Opens fast so you don't miss that photo opportunity.
A myriad of new features including Continuous shooting, Timers, special effects, and ISO adjustment.
7. Gallery
Sleek and smooth image browsing - much faster than normal Android;
Users can browse images either by album or in 'Folder-View'.
8. Music
A huge online music resource is available at the tap of a button;
Lyrics, album art, and track ID3 information can be edited right from within the app;
Gestures and shaking are supported, allowing the user to change track without looking at the screen;
Sleep mode allows the music to be switched off after a set amount of time without any user action
9. Notifications
All important controls (such as Wi-Fi, Bluetooth and Brightness) are acessible from within the Notification bar. Just drag it down, tap the 'Controls' tab and you have access to twelve of the most commonly used settings.
10. MIUI apps
MIUI supports online backups and storage;
MIUI AppShare and MIUI Marketplace allow users to discover new apps and download them with a single tap;
MIUI AppShare will notify the user when installed apps have updated.

Wednesday 7 September 2011

How to edit Build system paths in Visual Studio 2008?

In C++ programming, sometimes your program can not find the header file that you include, which means the system paths of your program is not configured correctly. You might need to add them manually by the correct path of the needed header files.
Right click the project in Solution Explorer -> properties
-> C/C++ -> General
-> Select 'Additional include directives'
Here browse to the location of where you include files are, and edit them as you need.

Sunday 4 September 2011

OASIS - Object Aware Situated Interactive System

The following contents is from Intel Labs Seattle.


OASIS (Object Aware Situated Interactive System) is a flexible software architecture that enables us to prototype applications that use RGB-D cameras (color video + depth) and underlying computer vision algorithms to recognize and track objects and gestures, combined with interactive projection. It is structured in a way that allows us to plug in new recognition code, to use different output display methods, and to flexibly associate actions, animations or graphics with detected input events. Example input events include the appearance of new objects, relocation of objects, gestures, and multi-touch surface interaction. Using this software framework we can create dramatically different styles of interactive physical-virtual systems that showcase the underlying computer vision and perception technologies. OASIS does not need special bar codes, tags, or instrumentation on any objects or on the user's hands. It uses everyday surfaces (countertops, tables, walls, floors) and turns these into interactive touch screens.



Underlying Technology for OASIS:

Our current Kitchen OASIS prototype runs all software (calibration, computer vision algorithms, GUI and rendering software) on a Dell Inspiron 2GHz dual-core laptop. Our Interactive LEGO OASIS currently runs on an Intel Sandy Bridge workstation. Both applications will work with Linux Ubuntu and Windows operating systems.
Output is provided by a 170 lumen SVGA LED projector or a laser pico-projector. The projector’s display area in our current configuration is slightly smaller than the camera’s field of view, covering an area of approximately 36”x24”.
OASIS input is based on novel RGB+D methods. Sensing is provided by an advanced prototype depth-camera mounted 30” above the counter surface. It runs at 320x240, capturing aligned RGB and depth channel information. Depth is computed using structured infrared. The camera is used for all system input: foreground segmentation, object recognition and tracking, and finger input detection.
  
Video processing pipeline (shown above): left - RGB scene view, center - depth data view of same scene, and right - foreground object view of same scene after background is subtracted (with object labels as recognized and finger tracking).

Saturday 3 September 2011

Introduction to Artificial Intelligence ---- Open course from Stanford University


If you are interested in this open lecture. You can find more information from the following links.



Overview

CS221 is the introductory course into the field of Artificial Intelligence at Stanford University. It covers basic elements of AI, such as knowledge representation, inference, machine learning, planning and game playing, information retrieval, and computer vision and robotics. CS221 is a broad course aimed to teach students the very basics of modern AI. It is prerequisite to many other, more specialized AI classes at Stanford University.

Instructors

 

Peter Novig and Sebastian Thrun took over CS221 from Professor Andrew Y. Ng in 2010. Dr. Peter Norvig is author of the celebrated textbook Artificial Intelligence: A Modern Approach. He is also Director of Research at Google. Dr. Thrun is well known for his work on robotics and self-driving cars (His team won the DARPA Grand Challenge). Thrun is research professor at Stanford and a Google Fellow. He is one of the youngest individuals ever elected into the National Academy of Engineering (at age 39).

Who Should Attend?

With an in-class enrollment of nearly 200 students, CS221 is one of the largest courses taught at Stanford University, across all departments and all disciplines. It is included in the core curriculum of several degree programs at Stanford. The course is tailored towards advanced undergraduate or early graduate students, new to Artificial Intelligence, who wish to learn about the excitement in the field. The course indtroduce a wealth of topics in AI, many of which are then subject of more specialized follow-on classes at Stanford.A course with the same title Introduction to Artificial Intelligence will be offered online and free of charge, as an experimantal new course. Using advanced new technology, the instuctors aspire to cover the same materials, and apply the same level of testing. However, to receive Stanford credit, the course has to be taken through Stanford; and students have to be registered at Stanford University. Online students who pass the online class will receive a statement of acknowledgementc in the name of the instructors, but no official Stanford certificate.

Course Description

This course is 10 weeks long. The in-class class starts Tue, Sept 27. CS221 consists of
  1. Approximately 20 lectures. Each lecture includes quizzes that we ask you to do, but which are not counted towards the final grade of this class. Instead, you can see the right answer to each quizz right after submitting your answers.
  2. Approximately 8 homework assignments. Those are just like our quizzes, and if you do well in the quizzes, you should do well in the assignments. However, we won't show you the correct answer only with a few days delay, to discourage cheating.
  3. One midterm and one final exam. These are like extended quizzes, covering all subject areas of the course discussed so far. The exams will also check your general knowledge about topics covered in the reading materials (the book).
The central objective is to teach basic methods in AI, and to convey enthusiasm for the field. AI has emerged as one of the most impactful disciplines in science and technology. Google, for example, is massively run on AI. Students passing this course should be proficient basic methods of AI, and have a broad overview of the field.

Passing Requirements

To pass this course, you have to attend (or watch online) all lectures. You have to turn in all homework assignments and exams. We grant a total of six "late days" which can be used to turn an assignment or an exam in late.Stanford has a strong Honor Code. We expect you to honor this code. Violations may lead to disciplinary action against you.

Prerequisites

A solid understanding of probability and linear algebra will be required.

Friday 2 September 2011

Debugging issues with MSVCR90.DLL

Keep eye on the linker issue when debugging programs.
When we first migrated our applications from Microsoft Visual C++ 6 to Microsoft Visual Studio 2008, we received the following messages when trying to run our debug builds in the debugger:
This application has failed to start because MSVCR90.dll was not found.  Re-installing the application may fix this problem.
At first, it didn't make sense.  We looked for MSVCR90.dll and it was properly installed in the Side-by-side (SxS) system folders.  Our release version would also run fine and that used the same DLL.
Then it hit me:  why is it looking for MSVCR90.DLL while running debug?  Shouldn't it be looking for MSVCR90D.DLL?
A quick look using Dependency Walker (one of the best developer's utilities ever created) showed me that we were linking to both MSVCR90D.DLL and MSVCR90.DLL.
The solution is to ignore MSVCR90 (and if necessary, MSVCRT) when linking.  This can be done from the project properties:
image
But only do this for the debug configurations.  Once you do this, re-link, and your application should start.  If you continue to get this same error message, then using Dependency Walker again, check that some of your DLLs don't need the same modification.  In addition, if you attempt to do a LoadLibrary() on one of your DLLs and you're getting a cryptic message about the DLL not being found, it may be the same thing.  Use Dependency Walker on that DLL and modify those projects if necessary.
Thinking back, when linking using Visual C++ 6, I remember some linker messages like the following which (at the time) I thought was safe to ignore.
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
Maybe in the good 'ole days, we could ignore such a message.  Today, we're not so lucky.
BTW, Microsoft, please make a better error message for such a situation.