ICIS 2013

This week, I attended ICIS 2013 as a guest. Obviously, the conference topic may be way of my interests, but I did get to enjoy quite a few presentations and had a few interesting interactions.

One Phd student, in particular, that approached us, and after me explaining him that my background is not of an academic nature and the only relation I had with IS is from the industry’s point of view. He made a remark about not being easy to pick up ideas at such a conference and couldn’t understand my presence. And from his point of view, that was true. From my point on the other hand was quite easy to spot that some underlying ideas behind a some papers were already applied at an industry level. Which actually says a few things about how students think. Like …they seriously need to speed up some processes, realizing that creating a bridge between theoretical and practical applications, is at some cases applicable.


Esri Dev Summit Europe 2013

This year we attended for yet another time the Esri Dev Summit in London.

This year was way better than last year, from every aspect. ESRI was way more organised, had better quality in presentations (though there were a few exceptions) plus a lot of amazing innovations. Also the food was more “interesting”.

They claim that they improved the whole conference based on last year’s feedback, and I definitely believe them. So thumbs up on that, even if the conference began with a fire drill, driving everyone outside in the cold (same thing happened last year…in a couple of years it might end up as a conference ritual).

increase vdi space and Linux partition using terminal

Last night as I was setting up a Oracle Linux test server I accidentally allocated the default virtual box value in GB. That was roughly 12GB. Enough space for a test installation if you consider that Oracle Linux 6 takes up around 7GB. But I wanted to install ArcGIS server and for that I needed more than 6GB of space, which apparently the current configuration was not adequate. Till I realised that, I had already spend quite some time configuring the system, so there was no chance to go back and start the process all over again.

On the other hand the easy solution to extend the Disk was through Gparted which again was not an option cause there was no point in spending time installing a Desktop environment and looking around yum for all Gparted dependencies, since Gparted is not part of the default yum repository.

So I had to do the whole process through command line.

Luckily It can be done.


Tiraggo.ef New Query API for the Entity Framework

Who said that Christmas comes but once a year? Mike Griffin tweeted a few days ago that a new query engine have been developed for the Entity Framework, leaving aside painful linq queries. The new query engine named Tirago.ef uses the same syntax as Entityspaces did, which is more sql-like in syntax and at the same time simpler and faster.

Tired of LINQ and Lamba?

Have you ever stumbled upon LINQ queries that are so unintelligible and complex you needed to crawl under your desk and have a good cry? Have you ever taken a good look at the over-complicated SQL generated by LINQ? And what’s the whole story about not being able to select certain columns?

This is 2013 folks.Tap into your T-SQL knowledge and write queries that actually make sense.


Pattern Based Sudoku Solving Algorithms (part Β)

I wonder if I ever get serious and finish my projects or any for that matter. Last time I presented a fairly complicated algorithm idea about a more humanized based Sudoku solver instead of the brute force ones that applications usually utilize.

Someone can argue, what’s the point of creating a fairly complicated solution to a simple problem that can be solved in just a few seconds using brute force.

Well Because its fun. So, here you go, another made up Sudoku solving algorithm

This time, I though, that it would be interesting to combine my geometrical and topological background, as well as some GIS based algorithms that we have developed over time.

The first implementation cannot solve all Sudoku puzzles but it can do fairly well in medium strength ones like this one




metric information from camera ray reconstruction

As explained in a previous article (simulating a camera) (which is basically converting 3d objects to 2D projective geometry, with specific camera parameters) is one thing, but getting metric information out of a photograph is totally another. There are several ways of achieving this. You can either use a digital terrain model and one oriented image or a pair of oriented images (stereoscopic). In this article I am going to focus on a stereoscopic “technique”. Some “techniques” require good mathematical knowledge and skills while others are a bit more graphical (meaning you can actually imagine the solution and even graphically depict it).In this article I try to explain how to compute a point’s 3D space coordinates, from two images using camera ray reconstruction.


An implementation of knight’s tour algorithm written in javascript & html5

A knight’s tour is a sequence of moves of a knight on a chessboards such that the knight visits every square exactly once. The knight’s tour problem is an instance of the more general Hamiltonian path problem in graph theory. we use the Warnsdorff’s rule “an heuristic algorithm”. We move the knight so that we always proceed to the square from which the knight will have the fewest onward moves. When calculating the number of onward moves for each candidate square, we do not count moves that revisit any square already visited. It is, of course, possible to have two or more choices for which the number of onward moves is equal. Below we can see the piece of code where the chessboard created using html5 and algorithm’s implementation in javascript. The algorithm chooses the square where the knight has the minimum value of possible moves. This is not the best approach because there are cases that the puzzle doesn’t have a solution as we can see at this paper. In a next post i’ll try to solve the problem. The knight’s tour has been tested in mozzila firefox and google chrome.


camera simulation

Its not often that someones asks you to re-invent the wheel. But this was one one these times and it was mostly necessary.

The task involved projecting already digitized city blocks outlines onto camera images.

A normal approach would be something among the lines of drawing the shapes in a 3d space (directX, openGL etc) and showing the image in the background. But when you want to accurately simulate a “real” existing camera then it seemed to me easier to build the whole construct from scratch.

In Order to do that we had to know both the interior and exterior orientation of the camera.

  • the interior orientation is the position of the principal point, the focal length and the radial distortion. Some manufacturers provide those values (when it comes to photogrammetric cameras at least) but most do not. There are ways to calibrate yourself a camera but that’s completely a different topic.
  • the exterior orientation of the camera is the position (x,y,z) and rotations (ω,φ,κ) of the camera at the time of the shooting

So what we need to do is to go from city block coordinates to image coordinates.
The main idea is described in the following steps

Cad implementation using the Javascript based topology library

Today I had some time and I decided to resurrect and update one sample page on how to use the topology Javascript library (codenamed tougo) I developed a couple of years ago.

The sample demonstrates some basic functions of a simple drawing app. You have the option to draw circles, boxes, triangles and lines. Originally I called it a Cad app cause you had the option edit the drawing and to export it to a dxf file.

The export option in this sample is deactivated (although the sample does includes the Javascript code to do so).

I may add a couple more features in due time.

enjoy the sample page and feel free to pop a question. Btw it only works on webkit browsers due to mozilla html5 canvas incompatibilities

UPDATE:  I updated my code to the latest version where I have solved the mozilla html5 canvas incompatibilities, so now it works,  just fine, on both browsers.


JavaScript based geometric and topological operations

A while ago I was working on a personal project concerning various geometric and topological operations on html5 canvas elements. Nowadays it is a bit abandoned but It was a pity to let it go to waste. So I made a public repository on Bitbucket and GitHub.


As of today 19-November-2013 I would be maintaining the github version