CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Eric Wise

Business & .NET

August 2004 - Posts

  • I miss my roadrunner (AKA Adventures in Broadband)

    So I'm all relocated and moved into the new apartment in Ohio.  The only thing I'm really missing about new york is some friends and my roadrunner internet connection.

    The cable internet provider in my town, who will remain un-named for now, (if their customer service doesn't come through I will name names!) is supposedly looking into a speed issue I'm having with their cable modem service.

    Basically I'm getting 115kbs upload speed.  That's pretty good, about what I'd expect.  However I seem to only be getting 30kbs download.  This is piss-poor, and frustrating to boot... whoever heard of a broadband connection where the upload is 4x as fast as the download with the download speed being ~10x faster than dial up.  I should be getting at least 100-300 down (tech says 768 is the cap, I'm shooting for bare minimum here).  So we'll see what they can find out for me.

    Second, I was having a wierd problem with my MN-700 router.  It goes like this:

    1. I load a webpage for the first time
    2. DNS Error / Page not found
    3. Hit refresh
    4. Page loads fine.
    5. Disconnect Router
    6. Connect PC directly to cable modem
    7. Everything is fine

    So I knew it was something with the router.  I spent 3 hours on the phone with Microsoft and my ISP trying to figure out why this behavior was.  They even broke me out of India and to a US based high level tech guy.  I talked to broadband hardware and Windows XP tech support.  We cleared the cache, flushed the dns, reset the base station, on and on we went.

    Finally I got sick of being on the phone and decided to take some solo time to work on it.  In a spark of intuition (or desparation), I snagged the dns numbers from the router and changed the TCP/IP DNS settings from automatic to manual and plugged the dns numbers in.  It worked!

    Wonder if I should be nice and call Microsoft back and give them the solution to my ticket?  =p

  • HowTo: Create an outlook appointment in ASP .NET Part II

    What's going on here?  Check my previous post.

     

    Here's how to do it without actually creating a file.  Thanks to Bogo for pointing me to the memorystream.

    private void Page_Load(object sender, System.EventArgs e)

    {

       System.IO.MemoryStream mStream = new System.IO.MemoryStream();

       System.IO.StreamWriter writer = new System.IO.StreamWriter(mStream);

       writer.AutoFlush = true;

       writer.WriteLine("BEGIN:VCALENDAR");

       writer.WriteLine(@"PRODID:-//Microsoft Corporation//Outlook MIMEDIR//EN");

       writer.WriteLine("VERSION:1.0");

       writer.WriteLine("BEGIN:VEVENT");

       //Fill in data

       DateTime dueDate;

       dueDate = DateTime.Parse(maintenance.DueDate);

       writer.WriteLine("DTSTART:" + dueDate.Year.ToString() + dueDate.Month.ToString() + dueDate.Day.ToString() + "T170000Z");

       writer.WriteLine("DTEND:" + dueDate.Year.ToString() + dueDate.Month.ToString() + dueDate.Day.ToString() + "T170000Z");

       writer.WriteLine("LOCATION:" + asset.Site.SiteDescription + " - " + asset.Location.LocationDescription + " - " + asset.Room.RoomDescription);

       writer.WriteLine("CATEGORIES:Maintenance");

       writer.WriteLine("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:" + maintenance.MaintenanceDescription + "=0D=0A");

       writer.WriteLine("SUMMARY:" + asset.Product.ShortDescription + " Maintenance");

       writer.WriteLine("PRIORITY:3");

       writer.WriteLine("END:VEVENT");

       writer.WriteLine("END:VCALENDAR");

       Response.Clear(); // clear the current output content from the buffer

       Response.AppendHeader("Content-Disposition", "attachment; filename=Maintenance.vcs");

       Response.AppendHeader("Content-Length", mStream.Length.ToString());

       Response.ContentType = "application/download";

       Response.BinaryWrite(mStream.ToArray());

       Response.End();

    }

  • HowTo: Create an Outlook Appointment Item in ASP .NET

    Here's some neat code I put together for my company's Asset Management product.  Basically users can assign scheduled maintenance to their assets (example: on dec 1st, 2004 defrag the hard drive of this pc).  I wanted to give them an easy way of reminding themselves to do the maintenance without having to log into the program and check their alerts.  I wanted this to be specific to each asset since no one person is likely to be responsible for everything.

    Doing some research, I found that the outlook calendar appointment is just a formatted text file.  So I decided to generate the format, slap a .vcs extension on it, and then stream it to the user.  In addition, I put it into a popup window (with querystring to get the specific record, that's irrelevant though so I stripped that code out) and did all of the generation and stream in the page load.  By ending the response in page load, the user will be presented with a dialogue download box and never actually see the popup window, so it appears to them as if they just clicked a “file://“ link.

    The only thing I don't like about this technique so far is that it has to save the file to disk before streaming.  Ideally I'd like to stream from memory and be done with it.  Barring that I'll just set up a script to run on the server every night to blow out the temporary download directory.

    Anyway, here's the code, as always, comments are appreciated:

    private void Page_Load(object sender, System.EventArgs e)

    {

      string fileName = @"C:\YourDownloadPath\YourFile.vcs";

      System.IO.StreamWriter writer = new System.IO.StreamWriter(fileName);

      writer.WriteLine("BEGIN:VCALENDAR");

      writer.WriteLine(@"PRODID:-//Microsoft Corporation//Outlook MIMEDIR//EN");

      writer.WriteLine("VERSION:1.0");

      writer.WriteLine("BEGIN:VEVENT");

      DateTime dueDate;

      dueDate = DateTime.Parse(maintenance.DueDate);

      //Start and End Date in YYYYMMDDTHHMMSSZ format

      //I set all times to T170000Z (noon eastern time) since I only care about date

      //The user can set the time when they open the appointment item.

      writer.WriteLine("DTSTART:" + dueDate.Year.ToString() + dueDate.Month.ToString() + dueDate.Day.ToString() + "T170000Z");

      writer.WriteLine("DTEND:" + dueDate.Year.ToString() + dueDate.Month.ToString() + dueDate.Day.ToString() + "T170000Z");

      //Lets set the appointment location to the actual location of the asset.

      writer.WriteLine("LOCATION:" + asset.Site.SiteDescription + " - " + asset.Location.LocationDescription + " - " + asset.Room.RoomDescription);

      writer.WriteLine("CATEGORIES:Maintenance");

      //Toss the description of maintenance into the notes field.

      writer.WriteLine("DESCRIPTION;ENCODING=QUOTED-PRINTABLE:" + maintenance.MaintenanceDescription + "=0D=0A");

      //For summary, let's tell them what kind of asset it is

      writer.WriteLine("SUMMARY:" + asset.Product.ShortDescription + " Maintenance");

      writer.WriteLine("PRIORITY:3");

      writer.WriteLine("END:VEVENT");

      writer.WriteLine("END:VCALENDAR");

      writer.Close();

      //File is generated, now let's stream it out via attachment download

      System.IO.FileInfo file = new System.IO.FileInfo(fileName);

      Response.Clear(); // clear the current output content from the buffer

      Response.AppendHeader("Content-Disposition", "attachment; filename=" + file.Name);

      Response.AppendHeader("Content-Length", file.Length.ToString());

      Response.ContentType = "application/octet-stream";

      Response.WriteFile(file.FullName);

      Response.End();

    }

  • Slashdot cracks me up.

    @10:10AM
    from the watch-out-or-it'll-chew-you-up dept.

    LostCluster writes "WinXP SP2 has just been released to the public via Automatic Update, but eWeek and PC Magazine are together reporting that Windows XP SP2's 'Windows Security Center' is just about as insecure as it could possibly be. According to them, any program (including ActiveX controls) can access and edit the Windows Management Instrumentation database, and therefore spoof the security status of an insecure box to report that it is properly secured."

    So let me get this straight... It's possible to hack an insecure box.  Really now?  Are you sure?  Gee I better go install linux.

    Look for a real post, with code from me tonight.  I promise!

  • Free ASP.NET Forums Product and More Company Stuff

    http://www.telligentsystems.com/Solutions/Products.aspx

    I downloaded and installed their forums product on one of my company servers last night.  The server runs windows 2003 standard with SQL server.  It installed like a dream... no problems, easy wizard options.  It's up and running and works just fine.

    I'm going to be trying this forum thing out for my business, allowing customers and potential customers to give feedback to my company and to eachother, we'll see how it goes.  It's pretty empty now since I just released it, but if you'd like to take a peek its:

    http://forums.easywebapps.com

    Also, I have built and released the free trial server for my asset management software.  For a host I went with a windows 2003 server from Server Beach .  My experience so far with them has been fantastic!  They had my server up and available in less than 4 hours, and I feel the price was more than reasonable for what I got.  I actually had a small issue configuring smtp services for email notifications in the program, so I used one of my 3 free trouble tickets.  A tech got on it and solved the problem in less than 2 hours.  That's damn good service for less than $150 / month!  I'm really not much of a system administrator, when I put up a live customer server after the trial/beta period I'm going to outsource that part.

    Anyway, being that the trial is up, if anyone's company has a need for a nice web-based asset tracking system + help desk and doesn't want to pay a fortune you should check me out and get a free trial.

  • Anyone got some spare time on their hands?

    As most of my readers know, I do have my own software start-up (http://www.easywebapps.com).  As my asset program gets nearer to final release, I've been pondering taking on some additional developers to work on some new projects that have come into my head and help maintain and extend my asset program.

    In addition, for you contractors out there, I'm planning on offering two versions of my asset program for sale.  One is hosted and managed by my company, and will be updated/supported through a subscription service.  The other version will be source included and self-hosted.  I'm sure that companies that purchase the source included version will be interested in customizing it, and I will be in a great position to sell consulting services for these modifications which I plan on passing off to people involved in my projects.

    More specifically I'm looking for the following talents (not all are required, but a solid combination):

    • ASP .NET
    • Graphic artist / GUI designer
    • C# or VB .NET
    • Strong SQL Server background
    • Report design
    • Web Services
    • Architect / High level design skills
    • Entrepreneurial spirit
    • Plays nice with others
    • In coding, pushes for clean, readable code over a more efficient but unreadable version.
    • Can actually deliver what is promised.

    Being that my company is a fledgling start-up and I am working a full time job while working on my company on the side, it's important to point out that there won't be any hourly or salary pay for the help.  What I am willing to do, however, is share profits from the software directly proportional to the amount of contribution.  In the case of consulting for custom solutions, we'll work out an hourly rate with the client which is 100% yours to keep, mainly b/c I don't want the hassle of managing it. =)

    I've seen alot of talent in this weblog group, and I think if some of us put our heads together and collaberated we could come up with some pretty kickass software, broaden our experience through working together, and maybe even make some residual income on the side.

    If this sounds interesting, go ahead and shoot me an email (eswise at gmail dot com).  Be prepared to explain why you'd want to be involved in something like this and show samples of your work.

  • International Flight Rant

    Some of you know that I recently married a Swedish citizen.  She came here to the US on the fiancee visa, we got married, and then we had to wait SIX MONTHS before they approved her to leave the country for travel.  Her daughter from a previous relationship lives with the father in Sweden.  So this whole time she has been unable to see her daughter b/c the immigration service in our country sucks.

    So now she finally got approved so we're looking for some airline tickets to get her to sweden and bring her daughter here for a visit.  I tell you, the airline booking systems are a twisted, god-awful mess and I really feel like they give a special screw to Americans.  Check this out:

     

    Travelocity- Ohio to Stockholm in September.  Price = $900+

    Travelocity- Ohio to London in September via basic search:  Price $700+

    Travelocity- Low Fare deals in my profile, Ohio to Stockholm.  Price = $655+, but only if you leave in november (too late).

    Travelocity- Low Fare deals in my profile, Ohio to London: Price $355 in september on a saturday flight.

    Travelocity- Low Fare deals in my profile, London to Stockholm: Price $110 in september.

     

    Does anyone see anything wrong with this picture?  It's over $200 cheaper to go from ohio to london to stockholm than it is to book from ohio to stockholm direct.  SAME NUMBER OF STOPS.  In addition, the basic search from the home page lists a ticket price that is oftentimes double what the deeper profile search allows.

    Ok switch gears, send my wife to look at the foreign site she usually buys her tickets from.  Stockholm to ohio direct is running about $500 US.  Basic frontpage search, leaving in september.

    Yeah... ok, going from there to here round trip is nearly $200 cheaper than going from here to there.

    Somewhere, somehow, someone is a real black hearted pricing bastard.  I hope all the airlines go out of business and it becomes a government run industry.  Cause something isn't right in web-land.

     

    This isn't even going into the pain in my ass that booking the tickets is going to be.  I need a round trip for my wife, the return ticket needs to coincide with the round trip for her daughter, the return trip of which needs to coincide with the round trip for her father to come pick her up.  Why?  Because the USA thinks that it's too much of a security risk to let a 4 yr old girl in on a one-way ticket for a visit.  *slaps forehead*

  • SQL Reporting Services vs Active Reports .NET

    Fellow blogger Jay Kimble has been writing about his experiences with reporting services.

    I however, have not had a positive experience so far with reporting services, and so this weekend I decided to install and run the trial version of Active Reports .NET.

    To be fair, I followed the same process that I used for SQL reporting services which is follows:

    1. Installation
    2. Integration into Visual Studio
    3. Simple report with grouping/subtotals
    4. Display of report on a webpage

     

    Installation

    SQL Reporting Services installation is a god awful mess.  You have multiple reboots, very strict “clean install” requirements, and it tends to bomb for alot of people.  Now any installation program that has these problems, and seeks to modify my very stable sql server and IIS setups makes me very very nervous.  My install also got hosed because I don't run my development IIS on port 80 so it created it's own default website with virtual directories and I had to manually move these over to the “real” workspace.

    Active Reports .NET on the other hand installed perfectly.  The msi was easy and fast.  It had no problems with my non port 80 IIS install and it doesn't modify my sql server.

    Advantage: Active Reports

     

    Integration With Visual Studio

    Both of these products integrate with visual studio.  They both require you to register the .dll in the toolbox to get the web view control, etc.  Both add their type of report as a project in the add new selection wizard.  No problems here, nothing unexpected.

    Advantage: Tie

     

    Simple report with grouping/subtotals

    Report design is pretty similar between the different tools out there.  At first glance, it's equally easy to dive into either of these two designers.  However, the Active Reports toolbox items are a little more robust than the Reporting Services ones.  Consequently, I found that the look and feel I generated in the Active Reports report was better faster than the one I built in Reporting Services.  I read no documentation for either product, I have to say that Active Reports was more intuitive.

    Advantage: Active Reports

     

    Display of report in a webpage

    This is where the biggest differences showed up.  SQL reporting services is tightly integrated with sql server.  When you want to show a sql reporting services report on a webpage, you have to drop the viewer control on the form, then manually enter the location/path information etc for the report.  I found the pathing to be set up very strangely, and failed several times on build before I got it right.  Not very intuitive at all.

    In contrast, active report files belong to your project, not to sql server.  I created a folder in the project called reports and built my report file in there.  Then on a webform I dropped the view control in and was able to select the report I created from a dropdown.  I fired up the page with no code and it displayed just fine.  After my reporting services experience this was a breath of fresh air!

    Advantage: Active Reports

     

    Conclusion

    So far, it seems that Active Reports .NET is the superior product.  For those of you that are cost sensitive, you'll probably want to try out the free SQL Reporting services.  Active Reports .NET Pro does cost ~$1,300 per developer (there is no royalty distribution fee unlike crystal which is good).  Active Reports also lets me change my datasource at runtime which solves a major problem for my business

    Granted I've only spent about 8 hours with each product, I will be spending more time with both going forward and probably post some additional experiences.  The newbie experience heavily favors Active Reports though.  You can find the trial version at http://www.datadynamics.com .

  • Fun little article

    Canadian science fiction author Robert J Sawyer takes a positive look at a typical day in 2014 for Backbone Magazine, looking at where both scientific and sociological advances of the next decade will take us.

    I thought this was a pretty cute article, but this guy really needs to consult an IT professional before making statements like these.  For example:

    Throughout the day, your wristband — a combination cellphone, PDA, camera, and e-book display, all controlled by spoken commands — will be your lifeline.

    Uhhh wristband?  E-book display?  Are you kidding me?  Do you know how freaking HUGE that device would be?  There is no way you're going to get me to strap a palm to my wrist.  The technology better be no bigger than a wristwatch and use a holographic display or something!

    In a world in which any information can be easily accessed anywhere, mere memorization is no longer part of the curriculum. But analysis of information — knowing how to think — ah, that’s the ticket!

    I kind of agree with this.  I think remembering what you learned is an important thing.  I also think that when you just snag info from the internet you run the risk of using something you don't truly understand.  At the same time, no employer denies their employees access to manuals etc. to make them more efficient in their job.

    Naturally, your electric car will drive itself, communicating with millions of chips that have been steamrollered into the asphalt covering our roadways. No more traffic accidents; no more gridlock.

    Yeah right, I can't even drive on a state highway that is pot-hole free.  Where is the govt going to get the money to embed chips into the highway?  More feasible perhaps is some distance to object warnings (some cars now will beep when you're in reverse and getting close to a large object... something that would “watch” traffic around you and warn you if your proximity/speed was dangerously close.

    Your cubicle will have a smart wall of its own, giving every worker the appearance of having a window; yours might show real-time footage of Lake Louise, assuming that global warming hasn’t melted the adjacent glaciers and flooded everything. And no matter which office chair you sit on, it will adjust automatically to your body’s proportions.

    HAHAHAHAHA, greedy corporations giving their workers a beautifully distracting workspace.  Right.

    Of course, we’ll all live in an enhanced reality. Today’s bulky virtual-reality goggles will have been replaced by contact lenses that overlay textual information on your vision; the lens will be in constant communication with the computing powerhouse in your wristband. You’ll never be in the embarrassing situation of not remembering the name of an acquaintance you happen to run into; facial-recognition technology will identify the person, and provide you with all pertinent details instantaneously.

    Someone's been watching Terminator movies too much.  A wifi contact lens in my eye just doesn't sound all that comfortable or useful.  However I could see something like this used in the military for covert ops.

    Anyway, despite these few common sense/techie things it is always neat to see what people think is coming in the future.  I just want my flying car.  Damnit I've been promised a flying car in almost every “world of the future” exhibit I've seen.  Stop working on the wristband and give me my damn flying car!

  • Lazy Loads

    There's been alot of blogging about where lazy loads are appropriate and where they aren't so I figured I'd toss my opinion into the wild.

    Like most things in developing, there is no “silver bullet” for whether or not to lazy load.  There are advantages and disadvantages to both solutions, which you can apply to your runtime environment to make a logical decision.

    Advantages of Lazy Loads:

    1. Decreased Network Bandwidth- You're reading data out in smaller chunks.  This can be fairly significant when the pipe is limited.
    2. Decreased Memory Footprint- Why load 100 lines of data into memory when only 5 are going to be used?
    3. Better Handling of Concurrency- Obviously the late loading gives you “fresher“ data in the object, which reduces the chance of invalid data.

    Disadvantages of Lazy Loads:

    1. Increased Database Calls- Now instead of grabbing everything in one fell swoop, you're going to have to make a database call for each child object.  This can get ugly when dealing with collections.
    2. Latency- If you're in a situation where the caller is at an unknown location (say a public webservice) you are probably better off making as few calls as possible.  On a fast intranet this is less of an issue.
    3. User Experience With Latency- This is a big one.  If your program has already loaded some of the object, the user tends to assume the whole data is there.  When it isn't, and they have to wait for a call, this can cause some frustration.

    That being said, here's some general thoughts I have:

    • If you have a powerful database and the database calls are on an intranet, that's a positive situation for lazy loading.  Idle CPU time is wasted money.  I once worked for an employer that had a $40,000 badass database server and pretty crappy clients.  The architects insisted on downloading as much of the data as possible to the client and manipulating it all there in memory.  Needless to say the client workstations were slow as hell bogged down by data not being used while the $40,000 database server idled quietly.
    • If you have the opposite: limited database and powerful clients, go ahead and send them as much of the information as you're comfortable with.
    • Do some performance testing and see how expensive a call is.
    • Most importantly anticipate how your objects are going to be used.  My company's asset management program actually uses both lazy loading and pre-emptive loading.  Basically if I have object A, with collections of objects B and C inside it, I sat down and said “Ok, anytime I load object A, what are my chances of needing information from B and C?“  If the chances were high then I loaded it with A, if it was only being used once in a blue moon like in a report, lazy load.
  • Got Gmail

    Thanks to Greg

    Check out his blog, it's way more ambitious with information and links than mine is.  He says he's not getting enough traffic on blogspot so spin that hit counter!

  • Anyone have a gmail invite?

    I'm starting to feel like the only geek that doesn't have one...
  • Tricky SQL Stored Procedure *EDIT*

    *Edited thanks to Mark's insight*

    Figured I'd post this sql stored procedure that's been giving me a migraine for the last 5-6 hours. 

    Basically I'm querying a webservice that returns a big message, and I wanted to store it in another company's POS system to print out on the receipt at the counter.  Problem is the receipt is only 44 characters wide and they store receipt messages in a TransactionID, LineNumber, Message format in the table so I had to parse it myself while being sure not to break up any words. 

    It's pretty easy to modify it to specify any number of characters per line.  Here's the result:

    CREATE PROCEDURE dbo.ParseReceiptMessage(
     @TransactionID int,
     @Message nvarchar(4000)
    )
    AS

    DECLARE
     @CursorPos int,
     @LastSpacePos int,
     @TextLength int,
     @PrintOrder int,
     @LineMessage nvarchar(44)

    SET @TextLength = len(@Message)
    SET @PrintOrder = 1
    SET @CursorPos = 0
    SET @LastSpacePos = 1

    WHILE ( @CursorPos <  @TextLength)
       BEGIN
          SET @CursorPos = @CursorPos + 44

          SET @LineMessage = SUBSTRING(@Message, @CursorPos - 43, @CursorPos)
          SET @LastSpacePos = (@CursorPos - (PATINDEX('% %', REVERSE(@LineMessage))-1)) - (@CursorPos - 44)
          SET @LineMessage = SUBSTRING(@Message, @CursorPos - 43, @LastSpacePos)
     
          INSERT INTO SomeTable 
             (TransactionID, PrintOrder, Message)
          VALUES
             (@TransactionID, @PrintOrder, @LineMessage)

     
          SET @CursorPos = @CursorPos - (44 - @LastSpacePos)
          SET @PrintOrder = @PrintOrder + 1
     END

    Go

  • My Start-Ups first Product Going Live! (with free trial)

    My start-up company, http://www.easywebapps.com is nearing the final release of our asset management software.  This project has been long in the works, starting with just myself working nights and weekends around my full time job, and then taking on a personal friend who is a developer and another friend who is a validation engineer to help polish things up.  The only things left to do are to finish up the user help documentation and build some preliminary reports (we're counting on our users to tell us what additional reports they need).

    Company concept is pretty simple, we are going to have some hosted windows 2003 servers running the asset application (ASP .NET) and each customer will get their own slot on SQL Server 2000 database.  Since the application is hosted, the customer doesn't have to worry about set-up, maintenance, patches, upgrades, back-ups etc.  We're really treating the product more like a service than an application.  Our subscription fee includes unlimited email tech support and any new modules/upgrades we create over time are free.  Alot of companies charge you per module but I've always felt that's a scam since the cost of deploying our upgrades to the servers is almost nothing.  In fact, it's more code/hassle to lock people out than it is just to let them have the world.

    For those who don't need a host (ie have a strong programming staff and good servers) we will be offering a source-included version that you can install and modify to suit your needs (my company will also modify it for you at a consulting rate).  This option probably won't be released until the end of the year.

    The product currently has the following features:

    • Asset Data Tracking - Serial number, location, responsible person, purchase information, etc (there are more than 30 fields you can tie to an asset)
    • Parent/child relationships - Assign assets as children to other assets (Like tying a printer to a pc)
    • Service Contract/Warranty information - If something goes wrong, know what coverage the asset currently has.
    • Help Desk/Ticketing System - Create tickets for problems and assign them to maintenance staff.  Tracks all the way from problem to diagnosis to resolution and stores the man-hours spent on the problem.  The history of each asset's tickets is stored and viewable and cost analysis/reporting will be available.
    • Scheduled Maintenance - Schedule both recurring and non-recurring maintenance items on an asset record.  (example for a pc “Every 2 months remind me to defrag“)
    • Purchase Orders - The system allows input of purchase order information and auto-generates assets from the PO Line Items complete with purchase information.
    • Granular Administration - Role based security allows administrators to grant and deny access to each section of the application per user.

    We just updated the site to show our free trial which we will be starting early next month.  If anyone reading this works for a company that has 20+ employees and doesn't currently keep track of assets or have a good helpdesk tool feel free to contact me via the sales team link on the website and I can hook you up with a free trial and perhaps a “dot net junkies discount”!

    For price, I like to compare our product to Intuit's Track-IT!  The enterprise version of it starts at $3500 and they have additional modules you can purchase.  You have to install and administrate it yourself, pay maintenance fees, buy licenses for each asset you want to put in the system, buy licenses for each user, have sql server or oracle as a backend, and install their little tracking script on all your workstations.  It is mostly geared towards IT hardware.

    In contrast, our product is installed and administrated by us, no fees beyond the yearly subscription, unlimited disk space/asset records, unlimited users, no license required for sql server, nothing to install on your workstations (the one thing trackit does really well that we don't do is it will auto-inventory your pcs after you install the script, we can't do that over the web), and our system is flexible enough to input and categorize any assets, not just IT.  Our subscription after release will be $3,850 /yr (we have a discount for education/not for profit companies, ask me about it).  Anyone who signs up for the free trial before we go live will have the option of getting their first year subscription for $3,000.

    So yeah, check us out, if you're feeling generous recommend it to people you know.  If not then wish me luck!  If your company is a reseller of software, I am currently in the process of getting some reseller agreements going and I'd be interested in hearing about it.

  • SP2 Windows Firewall

    So windows firewall isn't as good as other programs?

    You know... I feel really bad for Microsoft sometimes.  If they package a product like IE/Outlook with the operating system, the 3rd party companies and especially the OSS community go up in arms about stifling competition etc.

    For years they've been bitching about the “lack of security” in windows.

    So Microsoft does some work, patches a huge amount of the OS, adds a firewall that is default turned - on and is usable but not powerful enough to interfere with more robust solutions...

    And people still aren't happy.

More Posts Next page »