News Archives 
   
(click month to expand)
  

Recent Technology News Stories

Solentive News
CPU Scheduling Simulator (CPUSS) 0.1 released!  [click for more...]

I have an interest in CPU scheduling strategies so I thought I would make a framework (CPUSS) by which you could use standard strategies (first-come-first-served, shortest job first, round robin, priority etc) and also create your own and gather metrics from the strategies execution given n processes over T units of time (simulated time, simulated processes).

Download CPUSS 0.1 (or download later after you have read my summary of what is included in this release).

At the moment the features are fairly limited and the framework by which you can plug into to create your own strategies could be better, but remember this is the first early release.

Things to note about this release:

  • Simulates single core execution (multi-core/processor simulation is something that may be introduced depending on popularity, but would be interesting)
  • Two strategies ship with the bits at the moment:
    • FCFS
    • SJF
    • More in CPUSS 0.1 this release was primarily built around getting something released pretty quickly and seeing if the simulation environment could hold for various strategies
  • Metrics are gathered for free when using library strategies
    • If you create your own you must register a call to a single method, I won't bore you with the details as the documentation explains everything you need to know
  • Events exist so you can hook into the simulation, currently:
    • Runner.Started
    • Runner.Completed
    • Runner.ProcessStarted
    • Runner.ProcessCompleted
    • A preempted event will get added in the next release
  • Metrics that are gathered for every process include:
    • PID
    • Burst Time
    • Arrival Time
    • Start Time
    • Completion Time
    • At the moment I've done nothing that requires a process to have a priority but strategies will be introduced in CPUSS 0.2 that will require this.
  • Auto generation of process "loads" based on the principle that you define processes of varying properties, i.e. small, medium and large processes.  The arrival time, and PID of the processes is auto generated.  This feature will be particularly useful when testing custom strategies with varying scenarios to gain more balanced and comprehensive data to analyse further.
    • Small - 1ms - 40ms
    • Medium - 41ms - 100ms
    • Large - 101ms - 250ms

I think I have summarized up the main features.  Any feedback is gracefully encouraged.

Download CPUSS 0.1

31/01/2008   [Link]
NUnitAsp and WebForm_PostBackOptions  [click for more...]

I've decide to use NUnitAsp on the current project.

After doing some basic visibility checks I tried to call Click() on a LinkButtonTester and I got an error.

I did some digging and found that the new WebForm_PostBackOptions was not being recognized as a postback.

With a bit of hacking around, I've got it working again, the biggest issue was different quotes in the postBackScript from those in the html.

 

The fix:I'm not sure how comprehensive it is, but the basic fix is 2 changes in WebFormTester:

public bool IsPostBack(string candidatePostBackScript)

{

bool postback = (candidatePostBackScript.IndexOf("__doPostBack") != -1)

|| (candidatePostBackScript.IndexOf("WebForm_PostBackOptions") != -1);

return (candidatePostBackScript != null) && postback ;

}

and

public void PostBack(string postBackScript)

{

string postBackPattern1 = @"__doPostBack\('(?<target>.*?)','(?<argument>.*?)'\)";

string postBackPattern2 = @"__doPostBack\(\\'(?<target>.*?)\\',\\'(?<argument>.*?)\\'\)";

string postBackPattern3 = @"WebForm_PostBackOptions\(""(?<target>.*?)"", ""(?<argument>.*?)""";

 

bool succeeded = TryPostBack(postBackScript, postBackPattern1);

if (!succeeded) succeeded = TryPostBack(postBackScript, postBackPattern2);

if (!succeeded) succeeded = TryPostBack(postBackScript, postBackPattern3);

//if (!succeeded) succeeded = TryPostBack(postBackScript, postBackPattern4);

if (!succeeded)

{

throw new ParseException("'" + postBackScript + "' doesn't match expected patterns for postback in " + Description);

}

}

 

31/01/2008   [Link]
A command line tool to deploy COM components in COM+  [click for more...]
In a mixed .NET/COM COM+ based environment, one may find a need for a command line tool to deploy COM components in COM+.
31/01/2008   [Link] Tomer Doron
Upcoming events in Twin Cities  [click for more...]

I signed up for a couple of events and am looking forward to attend them. First one is the ArcReady event on Feb 21 and the second one is the much awaited Launch 2008 coming up on April 1 2008. I will be attending the developers track in Launch 2008. There's also free software giveaways (VS 2k8, Sql Server 2k8 and Windows server 2k8) for the attendees.

See you there!

Deepak.
 

31/01/2008   [Link]
Don't make assumptions.  [click for more...]

I can do garbage me

Every day I learn more and yet I sometimes get the feeling that the more I learn, the larger the projects, the more bugs slip in because of assumptions. Right now I'm on such a project. It simply doesn't get of the ground because of assumptions. Nothing more than assumptions!

You can read it in books - and not only the books about managing software projects, but the books about management in general -, in blogpost, articles, MOC material. Don't make assumptions! And still I - and a lot of people with me for that matter - get fooled by them over and over again.

This BI project I'm working on right now for example should have been finished in two weeks, but we made a few assumptions. So it's keeping me busy for almost two months. I'll list the assumptions here and leave it up to your fantasy what went wrong.

The assumptions

We / I assumed:

  • that a certain set of records in our source would not change ever;
  • that if a certain record changed, the update_date field would be updated;
  • that our datawarehouse would not be used by others to store some userdata that has nothing to do with it at all:
  • that the data would be used for production only when the data was verified and agreed upon by our customer.

What have I learned

  • Don't trust anybody: check;
  • Communicate;
  • Don't give somebody administrator rights on your datawarehouse because he owns the system and paid for the datawarehouse;
  • Don't assume anything:
  • Don't assume anything ever.

We'll probably release this project tomorrow and it will go in my books as the project where I learned the most. Because when I look back at it, it's all my own fault...

31/01/2008   [Link]
Integrating Spring .NET with ASP .NET web site  [click for more...]
This article describes how to integrate Spring .NET enterprise framework with ASP .NET
31/01/2008   [Link] Maruf Maniruzzaman
10 ASP.NET Performance and Scalability Secrets  [click for more...]
10 easy ways to make ASP.NET and AJAX websites faster, more scalable and support more traffic at lower cost
31/01/2008   [Link] Omar Al Zabir
Manifested Controls Redux  [click for more...]

Last year, I made a series of posts about a new feature available in the betas of .NET 3.5 which enabled you to specify declaratively the set of permissions that IE hosted managed controls should run with.  Since the betas there have been a couple of tweaks to the manifest control model, so those posts need a refresh.

Most notably, the Low Safety (Unrestricted) setting for the Permissions for Components with Manifests URL action is not a part of the final shipping Orcas bits.  Instead, the two options are:

  • High Safety - manifested controls can run with the permissions it requests, but only if those permissions are a subset of the permissions it would have been granted by CAS policy or if the manifests are signed by a trusted publisher.
  • Disabled - manifested controls may not run at all.

If you're using a machine that had one of the .NET 3.5 betas on it, the Low Safety option will still appear in your Internet Explorer dialog box, however the CLR will treat a value of Low Safety as if it were Disabled.

A lot of times when people look at this feature, they would like a full end-to-end sample of a control in a web page taking advantage of a manifest to elevate its permissions.  I've attached a ZIP file containing a sample control to this post.

In order to use this sample:

  1. Create a ManifestControl subdirectory in your wwwroot.
  2. Copy ManifestControl.control, ManifestControl.dll, ManifestControl.dll.manifest, and ManifestControl.html to the ManifestControl directory created in step 1.
  3. Ensure that your web server is setup to allow downloading of .dll, .control, and .dll.manifest files.
  4. Install ManifestControl.cer in your Trusted Publishers certificate store.
  5. Install ManifestControl.cer in your Trusted Root Certification Authorities certificate store. (Once you are done with the sample, the test certificate should be removed from both of these certificate stores)
  6. Navigate Internet Explorer to http://localhost/ManifestControl/ManifestControl.html
31/01/2008   [Link]
Does .NET With LINQ Beat Java?  [click for more...]
31/01/2008   [Link]
Mole For Visual Studio - With Editing - Visualize All Project Types  [click for more...]
New Silverlight Movies For Mole. Mole v4.2 has GREAT new features! Visualizer with property editing. Mole is a high performance, full featured, multifunction visualizer that allows detailed inspection of WPF, WCF, WF, ASP.NET, XBAP's and WinForm applications. Editing of properties is now support
31/01/2008   [Link] Andrew Smith, Josh Smith, Karl Shifflett
Copyright © 2007 Solentive | Disclaimer | Contact | Home