Friday 20 December 2013

IIS 7 File Uploads: maximum size restricted per default

I was working on an updated way to attach files to tickets asynchronously via the Kendo Upload component. Everything was working smoothly on my development machine. I then played a local release on my own IIS. From that point on I realized that every file bigger than 30Mb that I was trying to upload was failing.
I captured the server response with fiddler, 404 page not found. How can this be? I attached the process to VS Debugger, which seemed to be working ok, but the breakpoint inside my Save() method was never hit, except for that times that I was trying to upload a smaller than 30Mb file…

Irritating huh? Well, this is what is actually going on. I found the answer on this excellent post by Web Trenches. IIS 7 limits maximum upload file size to 30Mb by default. This can however be changed and there are 2 ways to do it:

Wednesday 18 September 2013

Updated way to include Kendo dependencies

Hello everyone, 
After spending some time doing performance testing on the MVC project it occurred to me that the quantity of data being downloaded on every request is extremely high. The reason behind this is mainly the Kendo scripts and CSS stylesheets. They were simply placed on the master layout (by me, yes, shame on me I know) therefore they were being loaded on every request. This is really not-so-bad since such data are being cached client-side and then retrieved from the cache, still it causes really bad performace on the first load and above all, makes the website displeasant to devices using mobile traffic.

Cascading Deletions Through Code

ModelLet´s say that you do not want to use the database way, that you have a good reason to implement cascading deletions in your code only (maybe because you have no access to the database). In this case, you need to manually remove the related entities of the object under deletion.
Let´s take the Specifications´model. The predefined relations are shown in the picture, yet, cascading has not been enabled for deletions in the SQL server for the corresponding relations. Then, you need to make sure that, when removing a specification, all its SpecificationHeaders have been removed first. Of course, each and every SpecificationHeader must have been cleared off its SpecificationItems prior to its own removal.

Here is some code to do that:

Cascading Deletions in Entity Framework

Model_thumb6Imagine that there is the model shown on the picture. You want to delete an entity of type “Specification”. There is an option called “Cascading” that can be defined under the corresponding relation between two database entries. When Cascading is on, all you need to do is simply delete the parent object. Cascading takes care of the rest, which means that it automatically clears out all related child objects.
The code that is needed comes below:


Thursday 8 August 2013

Control your wall lights with raspberry Pi

Hello again, it´s been a while. I have decided to move on from Openelec and installed xBian on my Raspberry Pi. It all went smoothly and super fast and I am pretty happy with how it works. The reason for this decision was that Openelec has a read only file system… and I love tampering. I found a nice german guy that described a way to create a very cheap electronic expansion board and bundle it with a raspberry pi to effectively manage to control equipment such as this or this or even this. Wanna see how it`s done? Read on!

Friday 31 May 2013

Tasker and XBMC, part 2: Create smart playlists and play them by using voice commands (UPDATED!)

Hello again everyone. I assume that you have read the previous post and will try to set up another magic trick with this one here. I will show you how to use your voice, talk to your phone and make XBMC create a playlist based on your command and actually start playing it.

Possible voice commands are for example: "Play music where album is Hairspray" or "Play music where genre is rock" or even "Play music where artist like Jason"
(Of course you need to have those in your music library, right?)

A prerequisite for all these to work is that your android phone and XBMC are connected to the same wireless network.

Friday 24 May 2013

Tasker for android and XBMC on a Raspberry Pi: Home Automation madness

Hello back, it´s been a while. But I have been playing with interesting toys lately. And this post is here to describe some of it.

Let us introduce the toys first:
1. Tasker for android : On Android market and project website. This is an automation app for android platform. It is very easy to use, there are tutos everywhere online, I won´t cover this part.
2. XBMC on a raspberry Pi computer. If you don´t know what this is, learn. It is worth it.
3. A Samsung Smart TV (model 40UE6300).
4. Json - RPC framework. This is the way to communicate with the XBMC on the raspberry Pi and create all the magic tricks. This is just for reference, I will create another post to describe more magic tricks.
5. Autovoice plugin for Tasker. This will help you be the master of your own android device, namely by allowing you to command it. Directly.
6. Tasker SSH Command launcher.

How? Read on!

Friday 19 April 2013

Kendo Grid: Ajax Binding while parsing Server side properties. Is this possible?


In a nutshell yes. I am currently migrating a website and I was in need of presenting data inside a Kendo Grid depending on the state of a server variable. There are different ways to achieve results, however my case was a bit peculiar. Let me first explain the goal here: We aim to be able to use .ClientTemplate templates in our Grid that actually render html based on the state of Server variables.

You might ask, why not just use the server side .Template? Simply enough, because it does not work with Ajax requests in the dataset. Please correct me if I am wrong, but no matter how hard I have tried, it never worked. So I came up with a workaround.

Monday 11 March 2013

CSS : Create horizontally / vertically aligned elements without a table



A label is actually a -by default- inline HTML element, therefore no standardized width can be applied​ to it. Eventually this means that developers end up with elements that basically look vertically unaligned.

The solution is to add the following CSS rule on your stylesheet:

label
{
    vertical-align: central;
    display: inline-block;
    width: auto;
    min-width:90px;
    text-align: left;
}

thus, a static width can be defined and the vertical alignment can finally be fixed. I hope this helps someone.

Friday 8 March 2013

A simple Snake Game Tutorial in C# and WPF


Introduction


My effort is to try and explain some basic concepts of programming based on really simple words and examples. This article has been posted also on codeproject

Background

The main idea behind a snake game (as in most such games)  is to "fool" the user into thinking that a series of frames is in reality a moving object. Such a concept is fabricated in my implementation. The "motion" effect is based on a series of  Timer events, each of which is "ticking" among specific intervals. The head of the snake is being drawn on a new position slightly misplaced to the direction of motion. The end of its tail is erased from our canvas, thus creating an illusion of motion.