Why I have been blogging less and less?

First of all, I have to admit that I feel my writing skills are slowly decaying. I am well aware of it and it is beyond obvious when you look at the increasing interval between my blog posts. That is an upsetting fact.

In recent years, I have gone through some radical characteristic changes. To go through radical changes, first you have to get to know yourself. I knew I had to make some fundamental changes on my vision and life goals to have a satisfying life. As I mentioned earlier, this required taking time for self-observation, introspection. Furthermore, introspection goes hand in hand with introversion.

Time spent for introspection beside the introversion caused by introspection is the perfect recipe for a blog to get more and more silent everyday.

Why introspection has to cause introversion? That is a whole another topic to talk about.

Setting up Kinect-Assisted Java project in Eclipse – Part 2

In this second article on how to develop kinect assisted applications with java, we will be implementing OpenNI java wrapper into Eclipse and make a simple project for starters.

First add all libraries you use for graphics rendering. Lately I’m familiar with LibGDX for doing graphics in Java so i will be adding its jar files into my project then i will include them in Java Build Path -> Libraries. Anyway i will not go into detail in this part because everybody has their choice of graphics library.

Now, let’s show Eclipse where is our Kinect wrappers and native libraries.
In Eclipse:
1- Click Projects -> Java Build Path -> Libraries
2- Click Add External JARs add select org.OpenNI.jar which is located in “C:Program FilesOpenNISamplesBinRelease”
3- Click Arrow button near Jar file we have just added to expand menu.
4- Double-Click on Native library location and select Jar path which is “C:Program FilesOpenNISamplesBinRelease”

At this stage, we are done with implementing the wrapper. But we need some sample code to test it , right?

Earlier this summer, I started a project to develop a framework to ease kinect assisted development. In git repo of that project I also shared a simplified code for adding skeleton and hand tracking.

Download : http://github.com/ayildirim/bolt

After downloading project
1- Import kinect1 folder as a Java project into eclipse.
2- Click Projects -> Java Build Path -> Projects for your own project (not for the one we just imported)
3- Click Add and select kinect1 which we just imported.

Now, we are done with libraries and classes for basic data acquisition.
You can even run UserTrackerApplication located in kinect1 project to do some skeleton tracking.

Why did we add kinect1 into our own project if it could have worked alone?
We added it into our own project to use its UserTracker class because it does everything needed to be done for tracking

How I use it in my projects?
In following part of the article I will be referring Create and Render methods, These are both LibGDX methods but all graphic libraries methods similar to these ones.
Create : is called before scene or window loaded.
Render : is called every frame to render scene or window.

1- Initate each object and variable of UserTracker class in Create method just like it is done in the Main method of UserTrackerApplication.java
2- In Render method I call updateDepth and repaint methods of UserTracker class so it checks for user movements and show them in its own window.

You can check out a kinect assisted game I develop as a contractor earlier this semester.
Kinect Assisted Interactive Ad Stand : http://www.youtube.com/watch?v=CORwDsC60as
Me testing the game before : http://www.youtube.com/watch?v=_9qrwM2yoEI

Thank you very much for reading :)

Setting up Kinect-Assisted Java project on Windows – Part 1

In this article, we are going to setup a java project for kinect assisted software development. Last summer, i worked on kinect and developed a couple of games, a framework and an eclipse plugin allows you to control debugger by moving your hands.

Most time consuming part of kinect-assisted development is just the beginning, where you
have to setup kinect libraries and java wrapper. The rest is plain simple, API is just great. You dont need to code a single line of computer vision stuff, all that is taken care of for you in the background. API features gesture & pose detection and access to 3D coordinate for each joint. API I am talking about is OpenNI, which i chose instead of OpenKinect, because it has a Java Wrapper. But if you are going to use another language i’d recommend OpenKinect. Because OpenKinect also supports motor control.

So let’s start by downloading required drivers & files.

If your have a 64 bit computer, download & use 64 bit alternatives of each file.
1 – 32 Bit JAVA
http://www.openni.org/Downloads/OpenNIModules.aspx :
2 – OpenNI Binaries ->; Unstable ->; … for Windows x86 ( 32 Bit )
3 – OpenNI Compliant Middleware Binaries ->; Unstable ->; … for Windows x86
4 – OpenNI Compliant Hardware Binaries ->; Unstable ->; … for Windows x86
5 – Sensor Kinect
6- Kinect XML

Installation Steps :
1 – Install OpenNI Binaries (OpenNi-win32…exe) ( 2# file )
2 – Install OpenNI MiddleWare (Nite-win32…exe) ( 3# file )
3 – Install OpenNI HardWare (Sensor..exe) ( 4# file)
4 – Install Sensor Kinect yüklenir. ( 5# file )
5 – Replace XML Files : ( 6# file )
Files inside KinectXMLs
OpenNI/Data ->; Program FilesOpenNIData
NITE/Data ->; Program FilesPrimeSenseNITEData
6 – Install Java. (1# )
7 – Restart your computer.

In this part, we have succesfully installed kinect & OpenNI drivers. You can test whether it’s correctly installed or not by running samples under Program FilesOpenNISamples.

On next part, we will be talking about adding wrapper into eclipse and build an example project.

Thanks for reading

SmartWatch 2.0 – Just Open Sourced!

There has been a huge increase in demand for smart watches in last couple years. There are many options in the market, yet there is no open source alternative, neither any initiative. I always loved open-source software & hardware thus i decided to turn my smart watch project into an initiative for creating a smart watch alternative for all the other options out there in the market.

Both software & hardware design is very primitive so far but I am totally sure it is not far that we have fully functioning smart watches on our wrists that we can hack, modify & re-design for our every need.

Imagine having your computer, smart phone and your tablet on your wrist, SmartWatch is more than that because it packs all that computing power into a wristwatch form that you can actually wear in daily life. It is a dream waiting to become reality. Let’s make it!

Do not hesitate to contact me!

So that’s the idea, let’s get into some technical specs.,
On current design i have following components:

Nokia 3310 LCD
Bluesmirf GOLD ( any serial communicating bluetooth module will do )
Arduino Mini Pro
3.7v Battery 2700 mah

On the earlier watch i had an 6610 LCD but its power consumption was a little high, so I switched to monochrome Nokia 3310 LCD which is also easier to solder.

Display difference problem, will be solved on next release by developing a DisplayManager for handling different display drivers.

Github Repo. Branches
Arduino Branch: https://github.com/ayildirim/SmartWatch/tree/arduino
Android Client Branch: https://github.com/ayildirim/SmartWatch/tree/android
You can find individual projects for each android client & arduino under their own branches.

TODO List:
Electronics :
Power consumption optimization
Design PCB
Low Level MCU : 
Display Manager
Better Window Management
OTA Update via Bluetooth
High Level MCU :
Notification Center
Instant Notification Pop-up
Android Client :
Facebook Alerts
Call & SMS Alerts
eMail Alerts
Other :
Homepage for SmartWatch Initiative
Tutorial for Making of the Watch

HackerNews Entry : http://news.ycombinator.com/item?id=4657615

Review : Windows 8 & Android ICS dual-booting on Acer Iconia W500

Hi everybody,
If your one and only workstation is a 3~ kgs weighing laptop , you might want to consider buying a netbook for meetings etc.. As i’m currently a student and a freelance programmer   , I’m facing lots of situations where i need to carry my laptop around. So i thought it would be a good idea to have a smaller laptop -a netbook- for portability purposes. Later on , with the uprise in the popularity of tablets , a new interest has flourished. And combining the need for a netbook and interest in tablet , i decided to buy a netvertible. After some research i found some fine and inexpensive options. At first i was thinking about buying an ASUS T101MT netvertible ( click for specs ) but it was to thick and bulky. There has been other options i have considered in the meanwhile , but to keep short , i will skip that part.
Then i found Acer Iconia W500 tablet. It has a dock-keyboard , comes with Windows 7 pre-installed , 2GB RAM , Multi-touch up to 4 fingers , 1280*800p , back & front camera etc. ( click for more of specs ) , it was perfect , exactly matching my needs. Beyond all that specs it is very portable.
I bought an Acer Iconia W500 last new year’s day. I have used it with its preinstalled O.S. – windows 7 – for first month. I was pretty happy with it. Acer had solved right-click problem on Windows pretty well. Double tapping with a secondary finger was registered as right click – one thing i’m missing now on Windows 8. On Windows 8 you have to keep your finger touching for a while to right click and it’s pretty annoying IMHO. That’s not only problem you will encounter after switching to Windows 8. W8 lacks a wireless manager , which means you will be unable delete a connection , create adhoc wireless hotspot , change settings of a connection etc.. Connectify doesn’t work… In short-term it boots up pretty fast but after you install a few software (VLC , Eclipse , Angry Birds , Windows Surface Touch Pack , World of Goo , Adobe Reader , WampServer , Notepad++ … that’s all i have now ) , it becomes extremely slow to boot up and sometimes gets stuck at logon screen. So it’s a develop-preview why i’m talking about all these problems i have faced. I’m telling these , because there are lots of people on discussion boards telling people that Windows 8 is totally usable on this tablet for daily usage. My effort here is only to balance that misinformation. Anyway , today i’m reinstalling Windows 7 after 2 months of use…I will miss only the responsive keyboard of Windows8 :/

So far we have talked about Windows 8… Lets talk about Android-x86. Because its development is non-profit and voluntary , i wont be commenting harshly. First of all i have to share my appreciation for their work on porting android to x86 devices.

Last week i updated to ICS-x86 amd brazos RC1 build. Even though it improved a lot , there are still some issues.
Here is a list of problems i have encountered:

  • Screen flickers
  • Accelerometer & Auto-rotation doesnt work
  • Audio driver crashes and causes a disturbing audible noise , you cant stop by plugging headphone.

Other than these problems android runs pretty smooth with last release. But there is something i should notify you , you cant play any of those 3D fancy graphical games NFS Shift , GTA3 etc. , %99 of 3D games and apps doesnt work on android-x86 due to fact that those apps and games were compiled with ARM binary libraries. And when you discard those from market you are pretty much left with crappy apps , notetaking , todo , soundboard apps etc. pretty much like chrome webstore. So even though you install android-x86 i’m pretty sure you will stick with Windows.

thanks for reading

Education , Career and Personal Interests?

Lately , my mind has become really fuzzy about this three subjects. So fuzzy that i dont know what are the questions i should pursue for a solution. Everything gets so complicated when your only personal interest & hobby in your life overlaps with your career. Why it gets complicated? To answer this question i should first express the priority of subjects in my point of view.I think Career has the highest priority , because it’s how you are going to make your life.Second is Education because it is deeply connected with the Career and… Personal Interests , even though it is last prior of all , it doesnt mean it is least important. Actually all this subjects are equally important because they all depend on each other. Personal Interests are important because it feeds our motivation and happiness… without motivation or happiness you cant succeed a thing in your life.
So it is , Career the first, Education the second and Personal Interests the third
Most people think it’s great thing to have a career over your personal interest. Yeah , why not right? You are doing what you did in the past just for fun except this time you are getting paid for it. The truth is suprisingly different , at least for me so far…
So the Task = Career + Personal Interest. But the thing is when there is something with an higher priority in equation it shadows all the other. You still know you did something that was once your personal interest but there is something wrong… you dont feel as much happy or succeed. Then you start postponing your personal interests thinking you did enough of it , with that task you did. You keep doing this , after a while… when you try to do that personal interests of yours -lets say a personal tech. project- you start thinking how much profitable is this project etc. that is… my friend… is the point where you lost your one of your personal interest. You cant have fun with it anymore.

Continue reading

GlassLayer : web app. to design & purchase plates online


Before reading rest of the article please check out the GlassLayer Web App. itself

Hi everybody,
Finally , i finished this web application i've been working for over a year. So i thought it would be a good idea to share my experiences and announce the application here on my blog. Application name has changed a few times along the way but final name is GlassLayer. I've made this web application for Glass Art Projects company located in LA. What they offer is that they give a kit of glasses , you glue those glasses on to a base glass as you like , it's as simple as that and you get to design your very own plate. This was the traditional procedure but now with this new web application you get to design your own plate faster & cheaper.
Continue reading