Given the limited real estate on my web ide i was looking for a method to hide sections of content,
for example do you always need to see the list of files in a project?
I've come across this link
http://atlas.asp.net/atlastoolkit/PanelExtenders/CollapsiblePanel.aspx
to an atlas collapsible panel, this could be very useful, especially if i can update the html within the panel using a client side webservice call, which is what i do with standard .net panels at the moment so i can't see it being a problem.
Wednesday, September 13, 2006
ide
made a small bit of progress of imperceptible progress last night and today basically readin up on the membership and role providers, to a tets solution set up apart from my pet project so i can fiddle around with roles etc.
I was thinking about wrapping the ide page in a loginview control, no0t sure about the whole hardcoding separate role views withint the control. this would be good if you can programmatically say on the load "you can view this, you can't and neither can you", but the stuff i was reading only mentioned declaring the role elements within the loginview control at design time, which would be a bit useless, considering users could be adding new roles all the time, sop any hardcoded roles would quickly become out of date.
Also started implementing some of the database design, the pain (i foresee) is going to be marrying up my schema to the membership (and profile if i use it) schema. we shall see.
I was thinking about wrapping the ide page in a loginview control, no0t sure about the whole hardcoding separate role views withint the control. this would be good if you can programmatically say on the load "you can view this, you can't and neither can you", but the stuff i was reading only mentioned declaring the role elements within the loginview control at design time, which would be a bit useless, considering users could be adding new roles all the time, sop any hardcoded roles would quickly become out of date.
Also started implementing some of the database design, the pain (i foresee) is going to be marrying up my schema to the membership (and profile if i use it) schema. we shall see.
Tuesday, September 12, 2006
web ide pet project progress
well i've been making slow but sure progress on my new pet project in my lunch hours.
I've got the first bit of functionality woring pretty much how i want. you can now enter code in pretty much any language i can think of, click a button and it will be higlighted and displayed to you so that you continue editing.
Im pretty happy with this apart from the fact that the fckeditor rich text box that i use seems to be defaulting to a specific size. and no matter how i manipulate the html around it, it won't get any bigger.
I've got most of the layout sorted now, its basically 4 table cells. one for your code, one to display all the other people cwatching you code, one to display the code of someone you have selected from the list of watchers and finaly one to display "other stuff", at the moment this may just be a list of files associated with the project.
Which brings me onto the next thing i'm thinking about, really getting down my db design. i've been thinking it'd be nice if you could have a Project, which could have many files (maybe classes, maybe not) related to it.
i've also been thinking about how the relationships between developers and projects will work. that seems to be a many to many relationship (a developer can work on many projects and a project may have many developers) so it'll need what i call an intermediary table.
But the bit i'm not sure how to implement is the idea of having public and private projects, a developer may start a projects and not care who watches, on the flip side a developer may start up a project and only want specific people to be able to participate on the project.
maybe this is getting into role based territory, if you are authenticated and in a specific role then you can view the project?
but then who assigns the roles? maybe when a developer creates a project they get presented with a list of developers, from that they themselves can assign the roles?
which then moves me onto the another thign i'll have to tackle. i've yet to get to grips with the whole asp.net 2 role/membership/profile providers model. mainly cos i think its a bit wank, in terms of blobfying the data, so you can't write queries against it. but maybe this is the answer for what i need to do.
i think i feel some reading coming on
I've got the first bit of functionality woring pretty much how i want. you can now enter code in pretty much any language i can think of, click a button and it will be higlighted and displayed to you so that you continue editing.
Im pretty happy with this apart from the fact that the fckeditor rich text box that i use seems to be defaulting to a specific size. and no matter how i manipulate the html around it, it won't get any bigger.
I've got most of the layout sorted now, its basically 4 table cells. one for your code, one to display all the other people cwatching you code, one to display the code of someone you have selected from the list of watchers and finaly one to display "other stuff", at the moment this may just be a list of files associated with the project.
Which brings me onto the next thing i'm thinking about, really getting down my db design. i've been thinking it'd be nice if you could have a Project, which could have many files (maybe classes, maybe not) related to it.
i've also been thinking about how the relationships between developers and projects will work. that seems to be a many to many relationship (a developer can work on many projects and a project may have many developers) so it'll need what i call an intermediary table.
But the bit i'm not sure how to implement is the idea of having public and private projects, a developer may start a projects and not care who watches, on the flip side a developer may start up a project and only want specific people to be able to participate on the project.
maybe this is getting into role based territory, if you are authenticated and in a specific role then you can view the project?
but then who assigns the roles? maybe when a developer creates a project they get presented with a list of developers, from that they themselves can assign the roles?
which then moves me onto the another thign i'll have to tackle. i've yet to get to grips with the whole asp.net 2 role/membership/profile providers model. mainly cos i think its a bit wank, in terms of blobfying the data, so you can't write queries against it. but maybe this is the answer for what i need to do.
i think i feel some reading coming on
Monday, September 04, 2006
New pet project
I have started work on an online coding/collaboration tool written in c# 2005 and using atlas.
I started thinking about this after reading thru wilco's code for a multi language syntax highlighter
(see last blog post for link).
My idea is to have a pane in which you write your code "MyCode" , a pane displaying people who are watching you code "Watchers" and another pane which will display a Watcher's code that you have selected from the "Watchers" pane.
The idea is that you can write code, click a button to get the syntax highlighted, other people can see your code as you submit it to be higlighted, the watchers can comment on your code, you can see their suggestions in near realtime (the time it takes to save their code to the database and for a the javascript timer to call a webservice to retrieve and display the results from the database)
I think this could be sueful in a distributed team environment, if one of your team are stuck on a problem.
So far i've got the basic layout that i want (using tables i know i should use css for positioning but it is a mock up). I've also got the basic javascript calls to the main webservices sorted (they just return strings at the moment). One thing that i compleletly didn't think about, that i've now sorted is how i'm going to display the code. the syntax higlighting code i will be using returns strings of code with html formatting, i was originally going to use a textarea to allow the display and editing of code until i realised that you can't display html within a textarea doh!
a few hours googling and i've come up with http://www.fckeditor.net
a really nice, very customizable, open source, rich text box.
I've managed to get rid of all the unwanted toolbars (i want it to look just like a textarea)
and worked out how to programmatically (in javascript cos this apps all ajax'd up the wazoo) add text, return the html and return the content without the html using the browser's dom,
this last one is really important as the syntax highlighting will be carried out in the following way:
1-user types in some code
2-user clicks button (or keyboard shortcut, i might add this in as a nice to have) to get syntax highlighted.
3-button click fires javascript function
4-javascript function passes contents of textbox to asp.net webservice (registered vioa atlas scriptmanager control)
5-webservice parses code and returns a string of html (the formatted code)
If the string of code contains html then i would have to write something to enable the webservice to remove the html from the string before i could highlight the syntax. yeah this is doable, with a bit of regex, but all the regex examples i've seen never work 100% on html
so its nice to know i don't have to worry about it and that a simple function call to the fckeditor gets me exactly what i want.
Next up is to integrate the fckeditor fully into my ui then i can start work on a simple database model (i've sketched the basic concepts and relationships out, i just need to decide on the datatypes), after the db design is done i can then start writing the stored procedures and data access code, then code the fully functioning webservices that will be called by the ajax client.
its probably at that point that i'll realise how much this app canes the database when you've got
several coder hacking away, expecting near realtime updates on what the other coders are doing. For now i'm happy to use this project as an excuse to fiddle around more with the atlas controls (i've alerady decided the timer control is shite because it only seems to fire server side events (involving a postback) and i can't get it to call a javascript function, so i've stopped using it in favour of the bog standard javascript timer, which does the job perfectly.
I started thinking about this after reading thru wilco's code for a multi language syntax highlighter
(see last blog post for link).
My idea is to have a pane in which you write your code "MyCode" , a pane displaying people who are watching you code "Watchers" and another pane which will display a Watcher's code that you have selected from the "Watchers" pane.
The idea is that you can write code, click a button to get the syntax highlighted, other people can see your code as you submit it to be higlighted, the watchers can comment on your code, you can see their suggestions in near realtime (the time it takes to save their code to the database and for a the javascript timer to call a webservice to retrieve and display the results from the database)
I think this could be sueful in a distributed team environment, if one of your team are stuck on a problem.
So far i've got the basic layout that i want (using tables i know i should use css for positioning but it is a mock up). I've also got the basic javascript calls to the main webservices sorted (they just return strings at the moment). One thing that i compleletly didn't think about, that i've now sorted is how i'm going to display the code. the syntax higlighting code i will be using returns strings of code with html formatting, i was originally going to use a textarea to allow the display and editing of code until i realised that you can't display html within a textarea doh!
a few hours googling and i've come up with http://www.fckeditor.net
a really nice, very customizable, open source, rich text box.
I've managed to get rid of all the unwanted toolbars (i want it to look just like a textarea)
and worked out how to programmatically (in javascript cos this apps all ajax'd up the wazoo) add text, return the html and return the content without the html using the browser's dom,
this last one is really important as the syntax highlighting will be carried out in the following way:
1-user types in some code
2-user clicks button (or keyboard shortcut, i might add this in as a nice to have) to get syntax highlighted.
3-button click fires javascript function
4-javascript function passes contents of textbox to asp.net webservice (registered vioa atlas scriptmanager control)
5-webservice parses code and returns a string of html (the formatted code)
If the string of code contains html then i would have to write something to enable the webservice to remove the html from the string before i could highlight the syntax. yeah this is doable, with a bit of regex, but all the regex examples i've seen never work 100% on html
so its nice to know i don't have to worry about it and that a simple function call to the fckeditor gets me exactly what i want.
Next up is to integrate the fckeditor fully into my ui then i can start work on a simple database model (i've sketched the basic concepts and relationships out, i just need to decide on the datatypes), after the db design is done i can then start writing the stored procedures and data access code, then code the fully functioning webservices that will be called by the ajax client.
its probably at that point that i'll realise how much this app canes the database when you've got
several coder hacking away, expecting near realtime updates on what the other coders are doing. For now i'm happy to use this project as an excuse to fiddle around more with the atlas controls (i've alerady decided the timer control is shite because it only seems to fire server side events (involving a postback) and i can't get it to call a javascript function, so i've stopped using it in favour of the bog standard javascript timer, which does the job perfectly.
Wednesday, August 23, 2006
Tuesday, August 22, 2006
asp.net 1.1 authentication quick tutorial
brief run thru of basic forms authentication in 1.1
http://www.howtodothings.com/computers/a792-aspnet-forms-authentication-with-roles.html
http://www.howtodothings.com/computers/a792-aspnet-forms-authentication-with-roles.html
Wednesday, August 16, 2006
the contingency of truth
i've been thinking recently about the role of truth on the net, specifically related to search engines and wikipedia.
This sort of harks back to my 3rd year philosophy days reading Richard rorty's "Contingency, irony and solidarity" that (whether intended or not) always made me think of contingent truth as a layer of tectonic plates obscuring the real and uknowable truth below.
That sounds like a load of shit, but the image makes sense to me.
Reading an article on some guy who had been the victim of character assasination via wikipedia. (the bloke had been the subject of an article saying that he was involved in the shotting of jfk).
also got me thinking about truth on the web. the blokes entry was edited after he complained, but only because the editor thought he knew that the original entry was not accurate. he thought he "knew" the truth.
Wikipedia to some extent does rely on a democratisation or herding of truth. if i edit the entry on bill gates
to refer to bill gates as a wanted paedo the majority of readers will believe this to be false and the entry will be edited. In this way the "truth" is maintained by the democracy.
But what if i was refering to another bill gates who is a wanted paedo, my truth will have been trampled under the majority understanding.
Where am i going with this? well ages ago i thought about creating an online community whereby people voted on laws and values for the society. thinking baou this again in the context of what i've written it would be interesting to apply the principal of a community votng on the truth.
users could put forward propositions (the earth is flat true or false) then users could vote on them.
eventually a whole contingent truth could be created by people putting forwards and answering propositions. the truth would change over time as well, users could see what was last weeks truth, how does it differ from last years, what is users x's truth.
it would be interesting to see how things change over time. especially related to current events
would the answer to "the war in iraq is wrong?" be different now than it would have been 2 years ago. would certain demographics be more inclined to vote a certain way. if we captured user demographics (although aslo allow non registered users to vote) it migth be possible to see regional variations in truth.
quite a few possibilities from a pretty simple idea.
this will probably bee added to the long list of fiddled with and then gave up ideas.
This sort of harks back to my 3rd year philosophy days reading Richard rorty's "Contingency, irony and solidarity" that (whether intended or not) always made me think of contingent truth as a layer of tectonic plates obscuring the real and uknowable truth below.
That sounds like a load of shit, but the image makes sense to me.
Reading an article on some guy who had been the victim of character assasination via wikipedia. (the bloke had been the subject of an article saying that he was involved in the shotting of jfk).
also got me thinking about truth on the web. the blokes entry was edited after he complained, but only because the editor thought he knew that the original entry was not accurate. he thought he "knew" the truth.
Wikipedia to some extent does rely on a democratisation or herding of truth. if i edit the entry on bill gates
to refer to bill gates as a wanted paedo the majority of readers will believe this to be false and the entry will be edited. In this way the "truth" is maintained by the democracy.
But what if i was refering to another bill gates who is a wanted paedo, my truth will have been trampled under the majority understanding.
Where am i going with this? well ages ago i thought about creating an online community whereby people voted on laws and values for the society. thinking baou this again in the context of what i've written it would be interesting to apply the principal of a community votng on the truth.
users could put forward propositions (the earth is flat true or false) then users could vote on them.
eventually a whole contingent truth could be created by people putting forwards and answering propositions. the truth would change over time as well, users could see what was last weeks truth, how does it differ from last years, what is users x's truth.
it would be interesting to see how things change over time. especially related to current events
would the answer to "the war in iraq is wrong?" be different now than it would have been 2 years ago. would certain demographics be more inclined to vote a certain way. if we captured user demographics (although aslo allow non registered users to vote) it migth be possible to see regional variations in truth.
quite a few possibilities from a pretty simple idea.
this will probably bee added to the long list of fiddled with and then gave up ideas.
Friday, July 07, 2006
i'm the scrum master, twisted scrum master
i am now (as of 5th july) a certified scrum master. woohoo!
Tuesday, June 20, 2006
atlas
as an exercise in mucking around with atlas i've started coding a search engine aggregator. the new controls does make it very easy to call webservices from javascript asynchronously, which in turn makes it easier to make the ui more responsive. i did have to get my hands dirty with javascript which i am shite at. but i managed to get a test page behaving how i'd like.
the www.asp.net site does have some useful atlas tutorials and quite a responsive forum for questions. as to the responsiveness of the site, well its very slow i do find it funny that a site to help those using new microsoft tech, built using microsoft tech can be so slow.
next step for my app is to actually return some proper results from search engines/web services.
i'll start off by parsing and displaying standard google results, which is a good excuse to finally teach myself regex. i've downloaded regexbuddy and the regulator (which seems better) to help me.
reading through a c# book at home it looks like the most performant way to use regex is to compile the regex to a separate assembly that can then be re-used within the application. that means though that writing the regex code will probably have to be a 2 step process. when coding/debugging the app use regex as normal then when testing move compile the regex out to a separate assembly, then change the calling code to execute the compiled regex.
bit of a palava, but i need to write the most performant code possible for this app, so its the price i have to pay.
the www.asp.net site does have some useful atlas tutorials and quite a responsive forum for questions. as to the responsiveness of the site, well its very slow i do find it funny that a site to help those using new microsoft tech, built using microsoft tech can be so slow.
next step for my app is to actually return some proper results from search engines/web services.
i'll start off by parsing and displaying standard google results, which is a good excuse to finally teach myself regex. i've downloaded regexbuddy and the regulator (which seems better) to help me.
reading through a c# book at home it looks like the most performant way to use regex is to compile the regex to a separate assembly that can then be re-used within the application. that means though that writing the regex code will probably have to be a 2 step process. when coding/debugging the app use regex as normal then when testing move compile the regex out to a separate assembly, then change the calling code to execute the compiled regex.
bit of a palava, but i need to write the most performant code possible for this app, so its the price i have to pay.
Friday, June 16, 2006
astoring asp.net profiles unblobbied
http://www.asp.net/sandbox/samp_profiles.aspx?tabindex=0&tabid=1
Thursday, June 15, 2006
atlas
just downloaded the april ctp of atlas and have started having a muck around.
There is definitely some interesting stuff to be playing with, especially in terms of making a web app mroe responsive to a user.
i've started working on a new idea, which poses an issue of how to deal with calling several long running functions, an interesting use of atlas would be to allow functions return their data separately rather than having to postback the entire page and then wait for all the functions to return before returning the page.
http://atlas.asp.net/docs/atlas/doc/services/exposing.aspx
There is definitely some interesting stuff to be playing with, especially in terms of making a web app mroe responsive to a user.
i've started working on a new idea, which poses an issue of how to deal with calling several long running functions, an interesting use of atlas would be to allow functions return their data separately rather than having to postback the entire page and then wait for all the functions to return before returning the page.
http://atlas.asp.net/docs/atlas/doc/services/exposing.aspx
Friday, April 28, 2006
yahoo maps
Well. i've nearly finished writing the basic functionality that will allow me to switch between using the google or yahoo maps api. this would have given me real flexibilty in terms of outages to either service, or api changes. however whilst testing the yahoo code i've come to the realisation that actually, yahoo maps doesn't cover the uk. oh bugger.
its not all bad though. rejigging the code to aloow for both apis has forced me to refactor some stuff
which i probably would have left. and it now means i can concentrate on sorting the google functionality safe in the knoweldge that if/when yahoo decide to open up maps to the uk i'll be able to take advantage of it.
When implementing the yahoo maps api i decided to go down the ajax route and wrote a getoverlay page that returned a valid georss document. There is no reason why i can't code the google ajax code to simply read the same file (code reuse, oh yes). so that is the next step really.
once that is done, i'll need to think about images for the icons. and i'll also need to rewrite the overlay code so that i can pass the price range parameters in the ajax call. This also means i need to create a ddl of house prices, then work out the javascript code (really easy probably but i'm shite at javascript) that can get the selected value from the ddl and the place name from the textbox.
its not all bad though. rejigging the code to aloow for both apis has forced me to refactor some stuff
which i probably would have left. and it now means i can concentrate on sorting the google functionality safe in the knoweldge that if/when yahoo decide to open up maps to the uk i'll be able to take advantage of it.
When implementing the yahoo maps api i decided to go down the ajax route and wrote a getoverlay page that returned a valid georss document. There is no reason why i can't code the google ajax code to simply read the same file (code reuse, oh yes). so that is the next step really.
once that is done, i'll need to think about images for the icons. and i'll also need to rewrite the overlay code so that i can pass the price range parameters in the ajax call. This also means i need to create a ddl of house prices, then work out the javascript code (really easy probably but i'm shite at javascript) that can get the selected value from the ddl and the place name from the textbox.
Tuesday, April 18, 2006
whats new
made some progress on adding properties to the database
read a article about the new beta of yaho maps. got me thinking that maybe i should try and build the "mapmove" (don't like the name but its shorter than, "google maps rightmove competitor idea") site so that it will work with either yahoo or googles api. I guess this is the sort decision that needs to be made when you use thrid party web services. its all very well developing an app to use a service, but you are then completely dependent upon the unguarranteed service working.
Writing the site so that i can switch between the two (maybe just a flag in the web.config) would be really useful, espeically i either api changes radically or stops.
I'll have to read this stuff:
http://developer.yahoo.com/maps/
read a article about the new beta of yaho maps. got me thinking that maybe i should try and build the "mapmove" (don't like the name but its shorter than, "google maps rightmove competitor idea") site so that it will work with either yahoo or googles api. I guess this is the sort decision that needs to be made when you use thrid party web services. its all very well developing an app to use a service, but you are then completely dependent upon the unguarranteed service working.
Writing the site so that i can switch between the two (maybe just a flag in the web.config) would be really useful, espeically i either api changes radically or stops.
I'll have to read this stuff:
http://developer.yahoo.com/maps/
Wednesday, April 12, 2006
longitude and latitude fun
when i first set wrote the screenscrape i chucked up a database for it to write to with the lat and lng being saved as varchar s. obviously this is shite so i started looking at the corrcet data type to store them as.
Eventually after much pain and fannying around with floats (bad idea leave them alone) i have a latitude and longitude field in my database with the following data type
Decimal(9) with a scale of 6 and a precision of 18 (the default).
Eventually after much pain and fannying around with floats (bad idea leave them alone) i have a latitude and longitude field in my database with the following data type
Decimal(9) with a scale of 6 and a precision of 18 (the default).
Tuesday, April 11, 2006
maps maps maps
making slow but steady progress on the mapmove (as i've badly named it) idea. noconsultant now being completely sidelined.
i've been working on the basic adding a property functionality. to be used by agents. they enter property details (price, postcode, etc) that gets saved to a table, and then kicks off the screenscraper to get the lng and lat values for the postcode whcih are then added to the proprty table.
Also been reading up on using ajax with the maps api. originally i was thinking i'd have to dynamically generate loads of javascript to create the overlays for the properties on the map. but instead i'll asyncronously call a .aspx from the javascript which will return an xml document containing the properties and their coordinates.
i've been working on the basic adding a property functionality. to be used by agents. they enter property details (price, postcode, etc) that gets saved to a table, and then kicks off the screenscraper to get the lng and lat values for the postcode whcih are then added to the proprty table.
Also been reading up on using ajax with the maps api. originally i was thinking i'd have to dynamically generate loads of javascript to create the overlays for the properties on the map. but instead i'll asyncronously call a .aspx from the javascript which will return an xml document containing the properties and their coordinates.
Friday, April 07, 2006
google maps etc
i've been continuing poc on the idea to use google maps to plot houses for sale. not an original idea it turns out as theres a ssimilar thing done in the us with craigslist.
obstacles so far have been post office being nazi's and owning the copyright to postcodes. but i've written a really simple screenscraper that scrapes google maps to get the latitude and longitude values. postcodes are important not for the user but for estate agents to be able to add a property.
i expect users to just search by place names.
so far i've got this:
1) screenscraper
2) list of uk towns and cities and their lat and long values
3) thought about how the ui would work
4) created a basic generic da class
obstacles so far have been post office being nazi's and owning the copyright to postcodes. but i've written a really simple screenscraper that scrapes google maps to get the latitude and longitude values. postcodes are important not for the user but for estate agents to be able to add a property.
i expect users to just search by place names.
so far i've got this:
1) screenscraper
2) list of uk towns and cities and their lat and long values
3) thought about how the ui would work
4) created a basic generic da class
Tuesday, March 28, 2006
another idea
i've been trying to buy a house recently and have spent a lot of time using rightmove.co.uk as well as lots of other shite property websites. i was thinking the other day how i put in my search criteria and get a list of houses, 99% of which aren't even in an area i would consider buying in.
Would'nt it be nice to be able to view a map which showed the houses for sale (or rent for that matter) in your price range. so you could simply zoom into your preferred area and not have to look at a huge list of houses in shitty areas that just happen to be in your price range.
I've already started doing some work on this and it may end up taking precedent over noconsultant.com
Would'nt it be nice to be able to view a map which showed the houses for sale (or rent for that matter) in your price range. so you could simply zoom into your preferred area and not have to look at a huge list of houses in shitty areas that just happen to be in your price range.
I've already started doing some work on this and it may end up taking precedent over noconsultant.com
Subscribe to:
Posts (Atom)