Saturday, April 2, 2016

C/C++ Function returns value through register A

Did you know? C/C++ functions return values through register A:

(Try on visual studio)

int Temp()
{
_asm
{
mov eax, 10
}
}

main()
{
int x = Temp();
cout<<x; //10
}

With the understanding that a micro-controller register is used for returning values, think what happens when you return primitive datatypes, pointers, references etc., from functions and how the function behaves!!

Wednesday, February 18, 2015

Video Wall using Raspberry Pi


Over the weekend, I was working on a prototype of a Video Wall implementation using Raspberry Pi and succeeded in it. I share my architecture here:

1. Raspberry Pi is supported by OpenELEC, which will turn your Pi into a media center. Install it in your Pi and interface it to your TV and attach it to your wireless network.

2. UPnP protocol is a popular media sharing protocol. You can turn your Pi into a UPnP client by following this: http://kodi.wiki/view/UPnP/Client

3. Your Pi is ready to display media on TV by any network device which can speak in UPnP. For android devices, there are plenty of apps that can interact with UPnP devices in your network like Toaster Cast. (This step is just to test your single video wall monitor and have some fun with Pi)

4. To extend this as an "n" monitor video wall, you need "n" Raspberry Pi and one computer that will split each video frame to "n" pieces each for a monitor display, then transmit this data as UPnP to the Pi network, which will in-turn render the frame to the monitor display attached to it.


Without resources, I can't complete step "4", but would be happy to work together with someone who wants to realise a fully functional video wall.

Thursday, November 27, 2014

Linking C and C++ functions using extern specifier

The way C and C++ compilers generate the assembly code is a little different, this could give lots of linker errors while trying to link a function written in a C file in a C++ code or vice-versa when using the extern specifier.

Always remember that C/C++ codes are directly converted to object and assembly codes that are just linear in nature like:

_printf_:
;Actual code to print
 _main_:
call _printf_    ;now the actual code under label _printf_ is called

Something like goto style code. Thus, printf() function might be atlast converted to _printf_ label in the object/assembly code. This label is used for linking stage.

Lets take a project which contains one C file and one CPP file.

test1.c
void function_c()
{
printf("From C");
}

test2.cpp
extern function_c();
void function_cpp()
{
function_c();
}

This will not work because C compiler generates function name for function_c something like "_function_c_". But the C++ compiler (as it supports function overloading concepts) looks for the label "?function_c@@YAXXZ", hence it wont compile. To resolve this use the extern "C" option:

test2.cpp
extern "C" function_c();
void function_cpp()
{
function_c();
}

For more insights, read about Name mangling in C++: http://en.wikipedia.org/wiki/Name_mangling#Name_mangling_in_C.2B.2B

Wednesday, January 1, 2014

Learn to customize an OS and create your own flavour

Its always a dream for geeky IT students to customize OS code to add some stuffs like, adding an additional screen during OS boots, adding your name in right click menu everything. But since they don't get proper guidance and direction to explore about this, most of them get bored and their enthusiasm goes down.

Students! What if you get a very good e-course which will teach you FROM SCRATCH everything required (technologies, tools, mind sets, innovative ideas) to download a live OS code, open the code and do something geeky with it, play with the Kernel, may be modify the OS TCP/IP code to be more effective and lot more. May be you got a very good research concept about OS but since you can't implement it and measure the result your new modified algorithm produces, you left presenting a great tech research paper.

No more worries! If you think that your college project is not/less innovate, its mundane, but you feel you are dedicated and have the zeal to learn and code complex things, here is what you need to do.

I have experimented with some OS codes and felt that my work will be a great asset for college students/researchers/hobbyists especially for research projects and I am documenting my work at: http://hobbycoders.com/elearning/course/view.php?id=2

Hobby Coders is non-profit team of coders who work for passion. Please register here to get email notifications when new chapters/topics/course are added.

Monday, June 10, 2013

How Computer Architecture and C++ can help a Java developer to improve in performance

Recently I came across an interesting example of how the knowledge of C/C++ and Computer Architecture can help a Java developer to code better performing code and want to share with you all.

Lets take an example of Matrix multiplication of two 1000x1000 matrices in two ways: (Download the source code from: https://docs.google.com/file/d/0BxxKTIP8UwuMbXpqb3JJYVN6Rm8/edit?usp=sharing)
1. The traditional logic   ( usualMatrixMul() function has this logic in the code shared )
This is the traditional way, which was taught to us in schools. We traverse matrix 1 horizontally and matrix 2 vertically, multiplying the corresponding elements and calculating partial sums and adding all partial sums at last to find the resulting matrix's element.

2. Slightly modified logic ( modifiedMatrixMul() function has this logic in the code shared )
 In this slightly modified algorithm, we first transpose martix 2, and do the same traditional logic, but catered to the transposed matrix 2.

A demo run of these two algorithms took the following time to run: (x86 processor, Win32)
Usual matrix multiplication algorithm takes 24797 ms
Modified matrix multiplication algorithm takes 8500 ms


How this small change in logic can reduce the time of run by about three times?
                                            Well, a little bit of knowledge about C/C++ and Computer Architecture can help you understand this.


1. From C/C++: Multidimensional arrays are stored linear in the memory
JVM is itself implemented in C/C++. Under the hood, Java arrays are mapped to C/C++ arrays as the dynamic memory allocation logic for Java arrays are . In C/C++ arrays, be in single/multi dimension/s, are stored linear in memory.
For instance,
Array X in memory is stored as: X11 X12 X21 X22
Array Y in memory is stored as Y11 Y12 Y21 Y22


2. From Computer Architecture: Processor Cache caches chunks of linear data from memory to Cache
When your CPU needs some data from the memory, it first consults the cache, if it has the data. If the cache has the data from expected memory address (called Cache Hit), it immediately gives the data to the CPU and CPU proceeds with its work. But if the cache haven't cached the memory address, there is a Cache Miss and the CPU then goes to main memory to fetch the block to cache and proceeds with its execution.

 Cache accessing time is in nanoseconds, where was accessing main memory (RAM) will take long time in comparison.

How these help in the slightly modified algorithm?
                                               When the array is very large, parts of the array are cached and when there is a miss on some other part of array, then the subsequent part of the array is cached linearly.

In case of matrix multiplication by the traditional logic, matrix X is cached linearly and access linearly, so Cache misses are less. But, for matrix Y, the cache is like Y11 Y12 Y21 Y22, but is accessed like Y11 Y21 Y12 Y22.

For large data, like 1000x1000 matrix, the cache miss for matrix Y will be huge and everytime, the CPU has to bring data from main memory which is comparatively a time expensive operation and as said earlier, cache works like caching a chunk of data in increasing linear way of addressable memory.

Hence, tweaking the logic little bit and access matrix Y linearly reduces cache misses and shows improvement in performance of time.


Download source code at: https://docs.google.com/file/d/0BxxKTIP8UwuMbXpqb3JJYVN6Rm8/edit?usp=sharing

This performance improvement is based on caching and is specific to the traditional algorithm and is true for any programming language, Java/C/C++. Just java developers need to know additionally the way java arrays are handled by JVM.

Thursday, April 4, 2013

Parallel make utility to leverage from multi core processors

By default make utility, which is used for building native code is single threaded, which means that though there can be different targets compiled in parallel from the makefiles, make utility will go in a serial fashion and build targets mentioned in the makefiles.

But if you have multi core processors, you can utilize a handy switch in the make utility to build different targets in parallel.

To get the number of CPUs you have in your machine, use: grep 'processor.*:' /proc/cpuinfo | wc –l

Suppose you have two CPUs, you can command make utility to utilize both the CPUs at the same time and perform two different compilations in parallel. Make utility takes a parameter, -j, which specifies the number of parallel make threads you need. You can say make -j 2 makefiles, which will performs compilations in two parallel make threads.

Now, to tie the make threads to the number of CPUs, we can use:

make -f makefile -j `grep 'processor.*:' /proc/cpuinfo | wc -l` -k buildall

This can utilize the full true computation power of your machine and complete compilation in less time.


Drawback:

All separate make threads write output messages to the same output stream, so in your terminal, you will see jumbled messages from all parallel make threads. This could be a problem for logs, but for developers, who just want only the compilation to be done fast and not worried about the logs, this is cool.

Thursday, February 21, 2013

Controlling C# application from web application

 In this small tutorial, we are going to create a simple C# windows application with a web browser component, load a web page in it, and control the complete native application from web based application which is loaded into the web browser control.

By this, you can make your app fully as a web based app, in any of your favorite web based programming/scripting language like php, html, javascript and control the native application with web based coding.

A demo app - the notifications app is made with this concept. The app is open source at https://code.google.com/p/notificationsapp/

I will be writing the steps in this blog, but till that time, I made a small video tutorial explaining the steps. Please check that.

Monday, November 26, 2012

Printing call stack of a function using code in C/C++

Many times when you deal with memory related issues like resolving core-dumps, you are mis-led by debuggers in call stack of the issue because of various reasons.
In those cases, you can actually write a piece of code that can print the call stack from any place. The good thing is, its fully in code, so you can identify your culprit call stack with this way by adding this code in your suspect functions.

Use this unix code snippet to print call stack:
(Dont forget to include execinfo.h header file)

void* buff[100];
int cnt=backtrace(buff,100);
char** str=backtrace_symbols(buff,cnt);
for(int i=0;i<cnt;i++)
{
printf("\n%s\n",str[i]);
}

Search more on the functions used in example to leverage more. If you have any troubles in the call stack, use -rdynamic option while compilation.

Thursday, October 11, 2012

Best way to master C/C++

Use the "-S" option when you compile the code like "bcc32.exe -S Hello.c". This option informs the compiler to generate the assembly code of the given C code which is linked to produce the executable. Now open the asm code and understand how C works at the most minute level.
This helps a lot in understanding the stack and how datatypes are dealt with. "-S" option works with almost every compiler, if it doesnt work, check the compiler manual for generating asm code.

Thursday, June 14, 2012

Webcam real time background remove using Flash/Actionscript/Flex

Today, I was trying a small prototype for my new project on actionscript for Hobby Coders, for that I had to make a good background remove script in actionscript. I wanted to choose HTML5 for this. If it were a desktop app, its wise to go with openCV with C for their rich libraries and speed. But for certain modules, flash was chosen.

Demo (Fixed threshold): http://hobbycoders.com/demos/backgroundremove/fixed_threshold
Code (Fixed threshold - Actionscript): http://hobbycoders.com/demos/backgroundremove/fixed_threshold/code.txt

Demo (Variable threshold): http://hobbycoders.com/demos/backgroundremove/variable_threshold
Code (Variable threshold - Flex 3): http://hobbycoders.com/demos/backgroundremove/variable_threshold/code.txt

Here is the algorithm Im using:
1. Save a bitmap (we will call it BMP_BG) of the background without the person
2. From now the current frame is compared with BMP_BG, pixel by pixel
3. For comparison, I calculate the luminance value (one used in Grey scale) for each pixel for both the images and compare this value, so that their difference lie inside a threshold value
4. If they both are same, I put the pixel of the rendered image as white otherwise, I copy the corresponding pixel from the current frame 

Please take a look at them guys, if someone wants similar codes, ofcourse feel free to use mine but please give your feedbacks here! If anyone can suggest me a better method, please post here too.

Still im continuously optimizing the algorithm that Im using to get a perfect result. If I get a better result, I will definitely share the idea with you all.

Tuesday, June 12, 2012

Simple HTML Counter - count on tap - for Touchphones Android/iOS etc

I have a practice of chanting daily. For that I used to use a mechanical counter. Many times I bought that and it broke. I have a Android Smartphone. This time I made a small HTML page that will count on finger tap anywhere on mobile screen. The good thing in this is, when I walk, I can tap anywhere in the screen without seeing the screen and the count occurs unlike many other apps that contains a specific button to be pressed for counting. I made this thing for my personal use, but thought of sharing with people of similar requirements

Screenshot:  (In device: Tap anywhere on screen, count increases) Tested and working in Android and iOS (its HTML, device independent)
Steps:
from your mobile browser. If you want the code to be hosted online and follow from step 5 below

OR If you want to have it offline without Internet, follow the steps

1. Create a new file called "simplecounter.html"
2. Open it with any text editor (notepad, etc)
3. Paste this code in it
<!DOCTYPE html>
<html>
<head>
<title>Simple Counter by Hobby Coders</title>
</head>
<body>
<center>
<br/><br/><br/>
<h1>
<div id="count">0</div></h1>
<br/><br/><br/>
<font size="1">&copy;2012-13 HobbyCoders.com</font>
</center>
<script type="text/javascript">
var count=0;
var countPtr=document.getElementById('count');
document.addEventListener('touchstart', function(e){e.preventDefault(); count++; countPtr.innerHTML=count;}, false);
</script>
</body>
</html>
4. Copy this html file to your mobile device
5. Open this file in Android/iOS browser. Tap anywhere on the screen to count up
If in android it doesnt work in default browser, do this
RECOMMENDED FOR ANDROID: Install this file manager app from Google Play (https://play.google.com/store/apps/details?id=com.rhmsoft.fm) and open the html file with the "HTML Viewer" of this app. It works neat and clean
6. People who dont require hi-fi app for counting, people who just need such an app for chanting or similar purposes can use this app
7. And I didnt complicate the app with save last count, reset etc because, you go back from app and open it again in browser, count resets, and press Home key, the browser goes to background and you can continue later from the same count (multitasking)

Tuesday, February 14, 2012

Simulating moving targets in Google Maps

Recently i made a project in which I had to simulate real targets/GPS Clients moving gently in Google Maps. I want to share the logic for people who want similar codes.

DEMO: http://hobbycoders.com/demos/gpssimulation

Google API provides a method of directly rendering the entire path between a source and destination. But if you want the same thing to be done but simulating a moving target in the same path, a bit of code has to be written. So here is the logic:

1. Google API can give the path coordinates (Latitude, Longitude) in JSON or XML. An example of JSON direction lookup from Srirangam to Trichy (They both are places in India), google direct URI which gives direct JSON output will look like:
http://maps.googleapis.com/maps/api/directions/json?origin=srirangam&destination=trichy&sensor=false

2. Now from AJAX get the output of file and make a Javascript object from it easily (thats why JSON used). I was facing problem of cross domain ajax referencing with this, so i created a Java code in my domain which can proxy the web page for me in same domain

3. Once done, for each step of direction (like first turn left, then turn left etc.,), you get a variable called points in converted Javascript object from JSON. To extract it use:
jsonObject.routes[index].legs[index].steps[index].polyline.points

4. If you notice, the points data will be encoded. Decode it, google has already given the code to decode it

5. And now for each step in direction, you will get many coordinates of latitude-longitude pair

6. Create a Polyline (Google Map object) for each pair of lat-long (if you need the entire trail of path) or a Marker (only current position)

7. Call some delay function in javascript like setInterval will be a good choice, iterate through the coordinates slowly and render polylines. This will give a feeling that some target is actually moving on map

8. Use a loop and do the same for many targets, so that many GPS targets will be on your Google Map (Multithreading experience)

Code Demo: http://hobbycoders.com/demos/gpssimulation   (view the source code of the demo)

If you face any problem with the logic/code i shared or if you need any code helps with this please email me or leave a comment here. If you have an alternate method also, please share.

Wednesday, January 25, 2012

[PHPBB MOD] Facebook like button in each topic / thread

This mod adds a facebook like button to each topic.
Tested with phpBB 3 (But there is no version dependent code, so it will work on all versions, if someone tests in other versions, please post the errors/success messages here)

Screenshot:


Steps:
1. OPEN FORUM_ROOT/includes/functions.php

2. FIND THE BLOCK:
--------------------
// Send a proper content-language to the output
    $user_lang = $user->lang['USER_LANG'];
    if (strpos($user_lang, '-x-') !== false)
    {
        $user_lang = substr($user_lang, 0, strpos($user_lang, '-x-'));
    }
--------------------

3. ADD BELOW:
--------------------
//Facebook like hack by Sriram.A.S. (sriramdasty7@gmail.com)
$pieces=explode("?",$user->page['page']);
if($pieces[0]=="viewtopic.php")
{
$curr_url=generate_board_url() .'/'. $pieces[0]."?";
$pieces=explode("&",$pieces[1]);
$flag_tmp=0;
foreach($pieces as $temp_x)
{
if(substr($temp_x,0,2)=="f=" && $flag_tmp==0)
{
$curr_url=$curr_url.$temp_x;
$flag_tmp=1;
break;
}
}
foreach($pieces as $temp_x)
{
if(substr($temp_x,0,2)=="t=" && $flag_tmp==1)
{
$curr_url=$curr_url."&".$temp_x;
break;
}
}
}
--------------------

4. In the same file, FIND
--------------------
'SITE_LOGO_IMG'            => $user->img('site_logo'),
--------------------

5. ADD BELOW
--------------------
'CURRENT_URL'      => $curr_url,
--------------------

6. SAVE file with changes

7. OPEN FORUM_ROOT/styles/{YOUR_TEMPLATE}/template/viewtopic_body.html

8. FIND FIRST OCCURANCE OF THE BLOCK
--------------------
<div class="buttons">
    <!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO -->
--------------------

8. ADD BEFORE
--------------------
<div align="right">
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script><fb:like href="{CURRENT_URL}" show_faces="true" width="450"></fb:like></div>
--------------------

9. If you want the like button also in bottom, fine the second occurance of the block and also add accordingly

10. SAVE file with changes

11. Now, Login to Administration Control Panel from frontend and in the main page,
Resynchronise or reset statistics-->Purge the cache-->Run now

If you face any problems, post here.

Tuesday, January 24, 2012

Web Programming using C / C++

Here is a small API in form of header file in C / C++ which will allow simple programs to be converted into web programs and can be run through a browser.

The guide is written in such a way that each and every step is explained carefully for people who are mainly from non computer origin. This will help you to create simple web pages and do some web server scripting.
The guide explains from downloading required softwares, configuring them, writing simple C web apps. It will be a good thing for non IT people who work with simple C. Now do anything in C code, and atlast send the outputs to browser, make it a web app!!

Please post any bugs/suggestions/feedbacks here. Thank you.

Download Link:
http://www.4shared.com/zip/IVyKtfue/web_scripting_using_c_c.html  (COMPLETE FILE, API, Example, Tutorial Guide)
OR
http://www.mediafire.com/?fjhyzmr73nncuj1

IMPORTANT: If you have the older release, the file home.c in examples directory, will fail to compile because of a line disableCache(); in it, please remove the line and compile the file. Initially i kept a function for cache management in the API and finally i thought of removing it, but forgot to update that file. Thankyou.

Thursday, January 5, 2012

Rise of planet of "Hobby Coders"

Passionate about coding? Want to work on something interesting (probably :P), and chase some unseen problem?? Well, welcome to the world of Hobby Coders.

Wondering what it is? Honestly, i myself dont know the answer fully as of now! :) But it will be a NON PROFIT team (not a company, not even an organization, just a team) of DEDICATED coders who are thinking to do something useful in coding in their leisure time (just a part of your leisure time, not even full leisure time)
So, if you can give us, say, 15 or 30 minutes a day, and is willing to join me, please let me know.
And BTW, Im not so rich to give you salary, its not a company or something that works for profit. Its about passion, dedication and learning. Anytime you can join me and if you want to leave sure, anytime!!

Who are you anyways? Im Sriram, nothing much to say about me. I try to learn work on stuffs like Computer Vision, Artificial Intelligence, Virtual Reality, Neural Networks, Distributed Systems. Im not an expert in anything, but i keep on learning and think of some new projects, products to be more accurate!

I know more than you! Why should i work under you? Well, i still didnt say, im going to lead the team. IT is an area where each and everyone will have a unique talent and unique approach for a problem. This team will not worry about who is going to lead, who is going to get name and fame, but we will work on what we are going to do. All products will have the list of people who have worked for it. Thats it. Its more a friendly team, not something that has a hierarchy of positions

Do you think this idea will be a success? Im not going to boast about this attempt, may be we will make some good products, or may be the attempt will loose focus with time, atleast you will take knowledge and learning with you

So what we will do? We will take some small and challenging problems and we will give code solutions for that, also we will release few projects in some areas for free
The activities are not yet planned, i want to see how many people are interested, if i get enough strength, then we will proceed, otherwise, this will be shutdown!
But to give an example of projects that we will work, may be we will make a web based script for hotel management, may be a small and efficient memory management algorithm, may be a data over voice system for data communication (currently planning), may be a javascript library for better image processing and lot more

I also want the help of experts in many domains like neural networks, image processing, computer vision, programming languages and so on. You dont even have to spend more time, atleast please guide us for our future ideas

If anyone interested, please email me your details: sriramdasty7@gmail.com
Based on the total participation and the level of expertise we get, further activities will be planned

Thanks and Regards
Sriram.A.S.
B.Tech[IT]
NIT Raipur 2011 Passout
sriramdasty7@gmail.com

Wednesday, October 5, 2011

Web Scripting using C language

Web Server Side Scripting using C language

Many languages like PHP, ASP are used for web scripting, many programmers who are familiar only with C language are not from computer science origin refrain in learning these languages thinking that they are very complicated. For creating simple scripts and making your own websites, even C language is more than enough. Im planning to write a simple header file that C programmers have to include, and they can do all the basic web fundamentals.

And regarding optimization, im planning to write a small engine that can cache many files in it so that very fast processing of data could be possible because anyways these files are not interpreted like many web scripts. Definitely any server-scripting language like PHP will be better than this approach as they have a rich collection of libraries and many more. But this idea is targeted only people who are familiar only with C and want to do simple web scripting and database operations. I will start this soon and post it when it will be over. The first release will have only all basic commands required to convert simple C to simple server-scripting language, already MYSQL and other leading database vendors have given APIs for C to connect to their databases.

The first release will not have much validation techniques and data security algorithms in it.

!! Further Discussions in that Page !!

Tuesday, July 12, 2011

HTML Textarea new line problems with PHP

Many of the beginners face problem with textarea new line. When you save some data in textarea, you may write data beautifully in many lines (by giving {ENTER} key, new line), then when you save the data inside any database, and when you retrive and display that data, you will notice that, all new line startings are lost.

This is because when you press ENTER and give a new line character '\n' character is used inside textarea. But when you print it back, HTML cannot recognize '\n' character. PHP comes with a handy solution for this. There is a function called nl2br(),which replaces all \n characters with <br/> hence all new lines appear in HTML again!
Its not the only solution, you can also use explode function or something similar to find \n and replace it with a <br/> to comply with HTML

Eg:
<?php
echo nl2br("Sachin\nis great");
?>

Output:
Sachin<br/>is great

Now
<?php
$textarea_data=DATA_FROM_DATABASE;
echo nl2br($textarea_data);
?>
will work for textarea data!

Unity 3D handVu Integration Tutorials

Again Im really sorry for taking a long time for releasing this awaited tutorials with all working codes.

Since I dont have web space of my own, I rely on free file hostings, I have uploaded the required files with the mirrors::
Demo:
http://www.youtube.com/watch?v=-GxykrIB3yM


Tutorials PDF file:
http://www.megaupload.com/?d=6MDTU0CR
Full Project (Unity Package File):
http://www.4shared.com/zip/Wl-VFYjx/HandVu.html
OR
http://www.mediafire.com/?f55zs8gfzmf9clq
OR
http://www.megaupload.com/?d=F9OYMOSB

Download the PDF file, that contains links of files to be downloaded...

Saturday, July 2, 2011

VLC Current Track to Google Talk Status [VLC2GTalk v1.0 BETA]

I made one small script that checks VLC for the current track and sends this track name to Google Talk so that your google talk status gets updated with the current VLC track. This is similar to plugins available for Google Talk with ITunes, Winamp and so on.

I created this small script because i use VLC, im a music lover, so i listen to songs in 200% volume, which is available in VLC only, so i use VLC and then thought of developing a small script for posting the current track to Google Talk

Screenshot:


Here is the download link: (514 KB)
http://www.4shared.com/zip/RCD5E9Fh/VLC_to_GTalk_Status.html
OR
http://www.mediafire.com/?l2c3lusc2pukr53
OR
http://www.megaupload.com/?d=G1EVEVG2

And for coders, here is the source code: http://hobbycoders.com/products/vlc2gtalk/VLC2GTalk.ahk
(Its an AutoHotKey code)

I just checked it and it works, if you find any bugs please post it here, so that we can try to resolve them. This small software will be useful till a good programmer develops a good plugin for VLC GTalk status or Google allows VLC tracks too :)!!

BTW, The only problem with this that i face as of now is, when the song changes, an UI activity is performed, so so, for a moment, the focus is removed from your current focused object. Thats annoying, i know...the next release will be free from these problems

Anyways, if anyone wants to try developing the same. The idea is this:
1. Use high level language to poll VLC process in the system and detect song changes (VLC sets the song name as process title as SONG_NAME - VLC Player :)
2. Google provides codes for jabber client XMPP so that you can directly communicate with Google Talk and set the track as stauts

Sunday, May 22, 2011

Unity3d faceapi integration to achieve augmented reality [ Video tutorials ]

Hello all, since there were few errors reported with Unity 3, i have made a video tutorial on how to achieve the integration of unity3d with faceapi. There was an error with script.cs file in the old unitypackage.

This post is a continuation of this post:
http://mypersonalsoft.blogspot.com/2010/12/unity-3d-faceapi-intergation-tutorials.html

Follow the steps in the video tutorials and please do post your comments/feedbacks...



Please do share this video with others who are interested in this stuff...!!!