The Hoju Saram

Monday, February 25, 2008

Another step towards wireless video kiosks

I noticed this article this morning.

One potential use of the wireless transceiver chip has owners of handheld media devices being able to step up to a shopping centre kiosk and download high-definition files of movies and TV shows in the blink of an eye.


Seems like it won't be too long before this become a reality. I've talked about this idea before here and here.

It will be a happy day when I can go to the local train station and get a hot coffee in a can and a HD-Movie Bundle from the vending machine.

Labels: ,

Tuesday, June 26, 2007

C# Webdav server with SQL Backend Source Code

kick it on DotNetKicks.com

The C# visual studio 2005 source code for this project is here

I finally got around to getting all of the source code for the webdav server I developed in C# with a SQL backend, I have talked a bit about this previously , but only now have had the time to but it all together so others can download and use/update the code.

The main reason I wrote this code was to provide a "network share" interface to some of my .net applications. I thought it would be very useful to have a framework in place where I could trigger some form of event when someone saved a word file or updated a speadsheet. Because all of the files are stored in a database under the control of the .net application creating this sort of thing is relatively trivial. I have used this to automatically process excel data into a database when someone saves a file to a particular folder for example. (You could also do this via e-mail using this, but that is a different idea). You could also use this to provide per-user content for a single file.

This server is purely for use with Windows Explorer and Microsoft office, so I have not implemented alot of the webdav stuff that isn't implemented by these products. ( this includes webdav-versioning , proppatch etc ), and I can't garauntee it will work with any other webdav clients. Basically this server implementation provides the minimal functionality required to allow MS office and Windows explorer to work.

I have implemented this project to provide 2 interfaces to the virtual filesystem ( provided by an sql database) . A standard web-front end and also the webdav interface. This means that if you connect to the server via a standard web browser you can view the virtual filesystem via a standard web page.

But if connect to the server via a webdav client connection then you get the webdav experience. Which allows you to create , edit, delete , copy , move , rename lock and unlock files and create, rename and delete folders.


There are a number of ways to get a connection to a webdav server as a network share. These include adding a "network place" from "my network places". The easiest way to get connected via webdav is to open the root url url for the application in IE and tick the "Open as web folder" option.



To setup the server you need to do the following steps and also I recommend visiting http://www.zorched.net/category/webdav/ for lots of helps on configuring webdav for .net

  1. Download the code and open in vs 2005 ( link at top of this post)
  2. Create a new blank database on your sql server
  3. run the create.sql code from the database project against the new database to create the required tables, stored procs and data to support the virtual filesystem
  4. Edit the web.config of the web application project (hojuwebdisk.web) and adjust the database connection string of the "webdav" connection to suit your environment.

As this is a webdav server you will also need to adjust the IIS setting for the website so that it knows how to handles the additional HTTP methods that webdav supports (LOCK, UNLOCK,PROPFIND,MKCOL etc ). Basically because we want .net to intercept all the calls (because we are redirecting all queries to our database not the filesystem) we need to adjust the application extension mapping so all extensions on all VERBs map to the asp IIS handler.

To do this you need to open the application properties of your website from the IIS console and then click the configure button. You then need to remove all of the application extensions and then create a new one for all extensions (.*) for all verbs that executes the .net isapi handler.


A good article explaining the ins-and-outs of this is available here

Once you have completed this setup you should be able to see the webdav server through a webdav connection, and therefore be able to add files and away you go..

I have to give credit to another project for helping me out with this one. The database and database interface stuff was all me, but a lot of the webdav implementation code I got from the webdav server project on sourceforge . If you are looking at developing your own webdav server or extending this code I totally recommend you check out that project. There project uses alot of events and delegates, where as I went with a single interface handler to simplify the code.

If you need any help, or want to add feedback then please do so. Microsoft office and windows have a number of wonderful webdav quirks, which you may need to get around depending on your environment and setup. A good place to start for a list of these is here

So good luck..

Labels: , ,

Friday, April 27, 2007

WebDAV “MyDrive” idea

Something that is “hot right now” is off-site drives over the internet. An example of a company that are coming on-line with this is Jungle Disk .

Since I now have a working webdav server with an sql backend, I was thinking of using it to create a project to provide a similar service. Obviously I won’t be hosting this anywhere as I don’t have the money to set-up a massive data-centre, but it would be good to see what I could come up with and share the project source with the world. I am going to name this project “MyWebDrive” the basic idea is this.

A user comes to the MyWebDrive website and creates an account , this creates this user an “area”. The user is sent an e-mail with the instructions for how to connect to their “area” via WebDav. Once they have their webdav drive connected they can then copy files create folders etc in their “area”.

This provides the “off-site drive” part.

Also via the web site the user can mange the access to each folder in their “Area”. They can do this by creating their own “friends” in their area, and then setting the access level these “friends” have to each folder. “Friends” can then be sent an e-mail inviting them to connect via webdav to the “area” so they can share the “WebDrive”

This provided the “sharing” part.

At this stage I am not going to be creating my own client for this I will be relying on windows explorer and the Mac OS to provide connectivity. Windows explorer doesn’t support https for WebDAV so this won’t exactly be a secure application, but as a first try that is fine.

I think I will put together two version. One for internal use (“friends” can only be added from Active Directory) , and one for external user ( “friends” can be created in the system). The second version will allow me to have a bit of a play with .Net membership providers which I haven’t worked with before.

The .net components I need to do for the system are:

  • SQL Backended Webdav Server ( already have this, but I want to create a cut down version and the sourceforge framework is a little too bloated for my liking )
  • SQL based Access control , I already have this from my previous examples
  • SQL based membership provider. This is new.
  • The website itself to allow people to create accounts, manage their “areas” , send e-mail etc.

Labels:

Tuesday, April 24, 2007

Smart toilet doors

It has come to my attention that in this day and age, it should be an international crime not to supply reading/viewing material in toilets.

I believe there is definitely a market for "smart" integrated televisions (lcd) in toilet doors. ( Hey pimp my ride once put on in a mud flap !)

I know in japan there is a huge market for "smart" toilet seats. I believe there is a market for "smart" doors as well.

Imagine the door that can detect that you are having a "problem" and starts running quick 15 second ads of high fibre muesli.. Targeted advertising gold.

Labels:

Wednesday, April 18, 2007

In Dev: C# WebDAV Server with SQL Backend



The work I am doing on building a WebDAV Server with SQL Backend is progressing well. I found a .net web dav server framework at sourceforge , which provides much of the plumbing for the WebDAV server. Their implementation is for a server that uses the file system for storage, I want to use an sql database so that DAV properties can be used inside other .net applications.

One of the problems with the filesystem based implementation, is that the properties of each file (including the custom properties) are binary serialised to a file. This means that they are not easily searched and/or retrieved by external system, so I definitely want to move this to a SQL database.

I am now at the stage where I have created the SQL database and have written the data and business layers, to replace the filesystem layer with an SQL Layer. This means that from windows explorer I can now map a web drive to my C# app and it will display data in the SQL database as if it is a WebDAV fileshare. I can copy, move , rename, delete the files and folders, and also open and save to/from the app to windows applications. This all works great. I still have to do a bit of work to get locking, custom properties and some of the MS Office specific stuff happening but it is looking promising.

The screen shot above shows an explorer window of the WebDAV share. All of the files and folders that are visible are in fact records in an sql table.

I have also written a small app called “Web Folder Mapper” to allow me to create WebDAV shortcuts. The source for this is downloaded here. This is very helpful because it allows you to create a shortcut and then you can simply drag files to this shortcut and then will be stored on the WebDAV server. The screen shot of the mapper tool is below, with the corresponding shortcut that was build on my desktop.



I will release the server source code as soon as I get the rest of the implementation working. I will also be sending it to the admin of the sourceforge framework project, as they have asked for code from anyone who uses the framework to create an implementation.

Labels: , ,

Wednesday, April 04, 2007

Webdav server in .net.

I am going to be doing some work on a .net webdav server over the next few weeks. It has come to my attention that extending some of the .net workflow applications I have worked on with webdav would be a nice feature; and being able to map a network drive directly into your sql based file store would be a great feature.

I blogged some updates when I have something to show.

Labels: ,

Wednesday, March 14, 2007

More T-Shirt Ideas

I have been thinking of more t-shirt ideas lately, It has been some time since I did my first shirt. Here are some more ideas:

Australian themed ones:

Have you ever been to Australia ?
호주에 가 본 적이있어요 ?

Cool Aussie !!
멋진 호주 사람

Drinking related:

I hate to drink alone !!
나혼자서 술마시기를 싫어해요

Is there anyone who wants to drink beer ?
막주 마시고 싶은 사람 있어요 ?

Korean related:

Its difficult to learn Korean , isn’t it ?
한극말 배우기 어렵지요 ?

Korean-only joke, maybe not sure if it translates, asking where Mr kim lives in korea is funny as every third person is called Mr Kim.

Where is Mr kims house ?
김 선생님의 집이 어디에 있어요?

A nice message:

Even though I am old I am young at heart.
나는 나이는 많아도 마음은 젊어요

Humour about the shirt itself:

Is it ok if I wear this t-shirt today ?
오늘 이 티셔츠을 입어도 좋아요? or
오늘 이 티셔츠을 입어도 괜잖아요?

And I am trying to think of some reverse Konglish ones , something that doesn’t belong on a shirt :

Don’t forget to wash your hands:

이지 말고 손을 씻으세요 !

If anyone else has some ideas, then leave a comment and I will translate for you.

Labels: ,

Wednesday, February 21, 2007

Single HTML file form designer and reader

Meetings Form in design mode ( took me 35 seconds from an empty page)

I haven't blogged much lately as I have been spending alot of my spare time working on a my latest idea. It is evolving slowly. Basically what I am attempting to create is a single html file that contains all of the code required to build and publish html forms via an easier to use UI , but without the need for a server. The idea is this.

You want some one to fill in a form, and you want to know that the form is going to be filled in properly. But you don't want to have to build a whole web site to do it or have people connect to some external site to fill in the form or pay some external site to host it. Usually you would put the form in Ms_Word or something like that but this doesn't easily allow for validating data and allows users to fiddle with the form design.

With the solution I am designing you open up a html file in your browser. You then select elements from a toolbar and place them on the form and can drag them around the form to place them where you want them. You then set the properties of them and one you are satisfied with the form you publish it. This creates a second copy of your form that you can send to others. ( When I say second copy I mean another file on your hard-disk not a post to a server ) . The second copy will be set to "run-time" mode, so when someone opens this file you will see a webform that validates according to the rules set at design time, and of course when the user saves it , it saves to their hard disk not to a web server. So they can then attach it to a mail message and send it back to you (as they would a word document).

I don't think I have explained this very well. But maybe some pictures will help. I currently almost finished the "design-time" components and I am at a stage where I can add form elements from the toolbox, set their properties, and have all the elements serialise and deserialise themselves ( this basically means that when I press "save" the file saves, and when I re-open the file all the elements properties are re-loaded correctly).

I have now have to work on what the user will see after the form has been published, but that is relatively easy, so I should have something ready for use within a week or 2. So watch http://yourformbuilder.com/ for some action.

Click on a element to set the properties (The select one is a time range form element)


The toolbox menu expanded.

Labels: , ,

Tuesday, February 13, 2007

Lastest Project

I have just started a new project where I am developing a system that will combine some of the ideas from sites like www.wufoo.com and www.jotform.com with my ideas from www.yourtimesheets.com to create a fully self-contained html form builder that uses a single html file to design, publish and fill-out user designed html forms.

As I will be using the self-cloning techniques I used at www.yourtimesheets.com it will require no server. So imagine that I can send you a single html file containing everything you need. You can then create your own form just by adding form elements from a menu and then setting some properties. You then publish the form which will create a copy of your form that you can send to people to fill in. All of this from a single html file and no need for a server. This will fill the gap between pdf ( cannot fill in ) and word forms (end-user updateable design and no validation), should be easy to use and will only require a browser.

I will post more information when I get around to putting something together.

Labels: , ,