 Tuesday, May 31, 2005
For anyone who has used Norton Ghost to build an image,
Acronis True Image Pro 8.0 will be a breath of fresh air. Here are the
features:
- Easy to use GUI interface
- Can be used inside
Windows XP, no need to boot into DOS
- Reasonably priced, I
purchased my copy for $32.50 from newegg.com, Norton Ghost appeared to be
priced about twice as high
- Can mount images as drives
and browse the contents.
I downloaded it, installed it and made an image in about a
half hour. I did not need to create any 3.5" floppy boot disks ala
Norton. Everything was done inside Windows XP. I love it when you
can buy software quickly, it does what it says its going to do and you can go
on with your life.
*one note, the software is $50 on Acronis' site but can be had cheaper on newegg.com or a similar site.
www.acronis.com
This weekend I had some time so I decided to wipe my PC and start from
scratch. I wiped off my current XP Pro build and installed it
from scratch. This time however I created an image of my clean
install once I had downloaded and installed all the updates, security
patches and service packs for Windows. I installed a minimum
number of drivers so that I can use the build if my devices
change.
All in all it is a pretty smooth transition. I keep all of my
data on a seperate drive from my OS so the transition was pretty
straight forward. I need to start doing this every few months
just to keep things clean.
 Thursday, May 26, 2005
I was reading another great article by Joel on the Law of Leaky Abstractions. Simply stated, programming advances by creating abstractions of complex processes. ASP.NET makes web development simpler. However, it does not relieve us of having to learn CSS, XML, XSLT, XHTML, javascript and C#. Instead we must learn all of these technologies and having done so, we are able to develop web sites more rapidly but we must now know more then we had to before.
This concept is probably best illustrated by TCP/IP Socket programming. No matter how well a library is written you should still learn TCP/IP to use it effectively.
I believe that this is the reason that even as tools, techniques and hardware constantly improve, software quality is not improving at the same rate. The troops in the trenches have to keep elevating thier game to keep up.
The article:
http://www.joelonsoftware.com/articles/LeakyAbstractions.html
 Monday, May 23, 2005
In Prometheus I have a system schema xml file that defines the classes in the target system. For code generation I have found it useful to classify the classes into subtypes. There are generally utility classes such as Lookup which provides the lookup table functionality, common classes such as name, address, email etc which are re usable common classes and then there are business objects. The business objects are the main classes of the system where most business logic is concentrated. Common types like Address may contain some simple validation but not too much if any system level business rules. However a particular instance of Address may have some additional logic.
An Example:
A Home object is one of the main objects in the system. A home has an address. A home also has a customer (buyer) and the customer (buyer) has an address. Address is the common type and Home is the business type.
So here is the topography:
Home.Address
Home.Customer.Address
We have a business rule that says the customer should be able to update his/her own address but not the address of the Home they are buying. This is a place where field level security can be useful. Based on the topography listed above the customer role would have access to Home.Customer.Address.* but not Home.Address.*. The asterisk indicates that the user can have permissions to all fields (value or object type) of the parent object. Our topography gives us a context in which to view two similar objects in a different way. Even though both objects have similar validation and are saved in the same address table they can have different permissions and/or functionality as needed.
This is just one more step in the 80/20 code generation solution. If I can achieve 80% of the functionality I need through code generation and the rest through custom coding then I can greatly enhance my productivity. Code generation is nice in many ways but in this case it allows us to apply a consistent set of generation rules and build hierarchies of objects to which permissions can be applied in a consistent manner.
Here is a web site that aggregates price data from all the major online book sellers and makes its money from referrals to these sellers. I always like to see new and interesting business ideas that can make my life a little easier.
http://isbn.nu/welcome.html
 Tuesday, May 17, 2005
I think that java is good for .net in that the designers where able to
look at java and make design decisions based on what is right and what
is wrong with the java implementation. On the other hand .net is
good for java because many of the great features of .net will find
their way into java via open sources projects and/or additions to the
language.
One place where java is lacking is XML serialization of objects.
In .net this is very trivial and the whole thing can be controlled by
attributes. In java attributes are new to 1.5 and there is no
built in serialization. Fotuneately, java has a huge open-source
community. I've found a product named Xstream which makes object
to xml serialization very easy. A couple caveats: version 1.1
does not handle serializing properties to attributes. Also,
serialization must be controlled through code as java just got
attributes so you can't mark a property with an attribute in the code
to control serialization.
I've used Xstream and it is very easy to use. If you are looking
for a very easy serialization library for java then Xstream is your
best bet. I have not found another library that works like this
and is at a production level.
Here is the link: http://xstream.codehaus.org
I have made some signifigant progress on the ACL security in CHT. At this point the security is implemented using the visible and enabled proeperties
of the controls on the form. I have wrapped the label, input
(textbox, etc) validators and help controls in a an asp:panel (which
renders to a div) so that I can simlply hide the whole thing if the
user does not have view rights to the object. For the edit rights
I simply disable the input if they do not have edit rights.
At the collection level there are add and delete permissions.
These are pretty easy to establish a link for add and delete just needs
to be hidden/visible based on permissions.
An additional issue will be the view permissions in the collection
(list) view of the objects. This could either be handled with
templates or with the same visible = true|false scheme.
So far, so good...
 Monday, May 16, 2005
I’ve implemented two things that
will enable a fair amount of progress.
The first is a lookup table
implementation. Any name/value pairs can be stored and retrieved from the
persistence engine (database, etc). This makes population combo boxes, list
boxes etc very easy. The search is performed on the object and field. So for
instance a type of car could be search by car & category and then all
matching values will be returned. I have built this into the generation code so
that all properties that have an attribute=”choice” will have their UI code load
the choices. This is a possible candidate for
caching.
The second system wide feature is
field level security. This is a typical role based security system where each
user is assigned one or more roles and each role is assigned permissions to each
object, method and field. This is context driven so that that a customer.name
has different permissions then a builder.name. I’ve built an AccessControlList
table in the database and then each field can be queried by its distinguished
name i.e. customer.name. This feature is still experimental but should allow a
very manageable security infrastructure for CHT. This is another candidate for
caching.
 Tuesday, May 03, 2005
The code generation project Prometheus continues to evolve. I
have the general ASP.NET UI generation completed. However as I
move forward there are some advanced features to add. One of
these is support for lists. DropDownLists or ListBox controls are
the first and foremost issue. It's fine to generate them but the
current issue is how to indicate the datasource for the values to
populate the list. This is more of a conceptual problem then a
technical problem as I know serveral ways to do this but I need to
determine a nice clean way to make this work with the rest of the site.
 Monday, May 02, 2005
I spent a good deal of time working on the CHT product over the
weekend. I made some tweaks to the menu system and added a help
system. It works fairly well if I do say so my self.
I was running through a test and I found something interesting.
ASP.NET out of the box has very spotty support for browsers other then
IE. You probablly don't think this is much of a suriprise as #1
IE and ASP.NET are both MS products but from another perspective issue
#2 is the adoption of IE. It has an overwhelming market share and
any company catering to the web market needs to look at its user base
and see what the market is needing or wanting. A product that
works with IE is going to hit a large portion of the target. Also
most people using an alternative browser still have IE installed just
in case (or b/c they can't get rid of IE ;>).
This brings me to the point of this post. I have decided to
postpone official support for Firefox until at least the next release
of CHT. I have been testing the product in both browsers to
ensure the widest widest possible.
Here are a few issues I ran into supporting Firefox:
- ASP.NET considers all other browsers as down level, meaining that
it renders tables instead of DIVs and some other annoying issues
This can be fixed with a browsercaps section in the web.config
file. Google on it.
- ASP.NET client-side validation does not work on Firefox.
This is because of the validation script used by ASP.NET validation
controls. There is a work around for this. It also involves
the browsercaps issue mentioned above but you must also use custom
validation controls of which there are a few out there. A link to a great article on the topic.
So my alternatives are to use hacks in ASP.NET 1.1 or wait until 2.0
comes out with the official fixes for all this. Considering the
limited market share of Firefox and a foreseeable fix I think I will
dealy official support for Firefox. However I will continue to
test against Firefox just to see what my CSS and HTML look like in
another browser. I will continue to use the browsercaps hack for
correct rendering but I will have to leave cross-browser validation for
another day.
 Friday, April 29, 2005
Another great article by Joel. One thing that is glaringly obvious is that I need to add a bug tracking database.
Number 8 is especially impoortant and seems to be the one thing that
managers and/or management in general doesn't understand about
knowledge workers.
Here's the post
© Copyright 2008 Chris Weber
Theme design by Bryan Bell
newtelligence dasBlog 1.9.6264.0  | Page rendered at Saturday, November 22, 2008 5:02:03 PM (Central Standard Time, UTC-06:00)
|
On this page....
Search
Navigation
Categories
Blogroll
Sign In
|