Quote of the Day

Thursday, August 09, 2007

De-Crappify part 2

As a follow-up to my last post, here are a couple utilities to aid in cleaning out the crap from XP:

My Dad told me about this one: Startup Inspector - user friendly alternative to msconfig. There is a "consult" button that goes out and pulls back info from a knowledgebase about known startup items, whether they are good, bad or ugly.

And a co-worker told me about this: Crap Cleaner - Cleans out the crap from your registry, temp files, cookies, etc. Knows about different browsers, etc.

So, with a little bit of regular housekeeping using these utilities as well as spyware scanning (ie. Adaware, etc.), virus protection and Windows updates you can keep your XP machine very happy and running lean and mean.

Friday, August 03, 2007

De-Crappify Your Windows XP PC

Video tutorial on turning off non-essential background programs, cleaning up spyware, cleaning your registry, etc. Most of this I knew already (I am usually pretty anal about what I install to begin with) but was a good refresher and is motivating me to doing this stuff again as my PC's seem to be getting a little doggy lately. Anyway, just ran across this and thought some of my non-Vista friends and colleagues might get some use from this. Enjoy!


Click here to view the screencast

Thursday, June 28, 2007

Xiine - All You Can Read



Just read about this on Claudio's blog and thought I'd check it out. I must say I am very impressed with this piece of software. I have been a long-time user of Zinio and subscribe to a couple of zines on that platform. Although I have not done a thorough side by side comparison I will say that Xiine definitely has some features that I like. The zooming is better. You can rotate the zine in case your on a portrait monitor or tablet PC. Many options for layout if you don't like split pages you can read in a scrollable fashion, etc. I was able to pull in several back issues of CoDe from my subscription. Although, it only goes from Sept 2003 up to July/August 2004 for some reason... (I better check my current subscription status although I'm sure if it lapsed it was recent...)
Anyway, kudos to the EPS team for creating this slick application using some of the latest technology. Make sure to check it out and read more on Markus' blog.

Monday, May 21, 2007

Business Decision Regarding VFP?

Mike Feltman just posted on his blog a counter-point to Microsoft's announcement. He brings up some very interesting points as to whether this was truly a "business" decision based on facts. I have been ranting for years (ask the people I work with) about the lack of respect VFP got from within Microsoft and the development community as a whole. I mean seriously, VB (pre .NET) was their idea of a data-centric programming language? And what about the horrible IDE called Visual Studio that it was packaged in. Ugh! If you ask me, they should have re-branded Visual Studio along with VB and those tools would probably be doing much better in the market place.
Andy hit the nail on the head when he talked about "the perception of the uninformed, marketing and buzz-word driven, benighted people who wouldn't dream of considering or using VFP anyway". Microsoft helped to feed that perception, in my opinion, or at least did NOTHING to refute it. Perhaps an internal memo educating their own people in the development tools division might have done something.
So yes, business decision it was, but I agree with Mike that this business decision was made long ago.

So, no more Visual FoxPro. Now what?

Great blog post by Andy Kramek on Microsoft's recent announcement concerning VFP. Andy's thoughtful insight is always refreshing.

Friday, May 04, 2007

It's a Good Day for Foxpro, etc.

Well, after all the hand wringing and gnashing of teeth the past few weeks over Microsoft's announcement I've had a pretty good week business wise.

First, we're being asked to help another software shop stabilize some legacy VFP code in some existing apps. Not too glamourous, but it's work and it's VFP. A re-write is not in the works due to $$$ but they are successfully deploying under the VFP9 Sp1 runtime.

Second, I just did some really cool enhancements to an existing app that gets data through an ASP.NET web service. In the same app I just added the Desktop Alerts Beta program from VFPx using a timer object to fire it off. - the best experience I've had with beta software in a long time. Client is very happy.

Third, Tod McKenna announced on his blog that their shop just purchased 5 new VFP9 licenses.

And, the icing on the cake, we just got sign-off on our first significant .Net application. We're going to try standardizing on StrataFrame which I will be giving a small demo with at the upcoming Chicago FUDG user group next Tuesday.

So business is pretty good at the present moment, VFP development included.

Not to mention, several MVP's have recently signed the MasFoxpro petition, which I agree, will probably not change Microsoft's position, but it sends a message that VFP is still a great tool and they are going to continue supporting the community and their clients.

Tuesday, April 17, 2007

Exploring VFP on Rails

My friend Brian Marquis recently showed some samples of his early concept design for VFP on Rails at the Chicago Foxpro User Group. Although the samples themselves were something you could do pretty easily with pure ASP or other web scripting tools, the underlying framework that he is creating is very intriguing.

As the name implies, he is attempting to follow the same tenets and design patterns of the very popular Ruby on Rails framework. The main RoR description states "Rails is a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern".

I am not a web developer (not even close!) and I have not used RoR, but I am a fan of well designed frameworks that make my job easier, which in turns makes my clients happier, etc. That's why most of my VFP applications have been developed with the Visual FoxExpress framework, which happens to be a very well designed framework with full nTier architecture and implements several design patterns in a very elegant way.

So, just as an experiment, I decided to put VFP on Rails to the test and see how quickly I could create a search demo (based on Brian's simple customer search demo) that does not go directly at a VFP table, but rather requests data through an existing VFE business object through COM. I mean, why shouldn't I be able to have access to the business objects I've already created from the web? It turned out to be incredibly easy.

First, I created a new folder under Views to keep my VML files separate from the other samples. (VML is the extension Brian has assigned to the "view" or presentation layer scripts, not to be confused with VFP views.) Then, I compiled one of my clients VFE apps as a DLL and registered it. (This app happens to have it's data in SQL Server)

I then copied Brian's VML files and edited them to be specific to my search:

Search.VML - Changed "say" in this line of code to "agents"

Ajax.Request("<<fullurl(oDispatchContext,'/agents/list')>>", {


List.VML - just changed the cursor (alias) name and only display active records.

<table>
<%
SELECT CurAgents
SCAN
If Not CurAgents->Inactive
%>
<tr><td>
<<CurAgents->Ag_Name>>
</td></tr>
<%
Endif
ENDSCAN
%>
</table>
<%
IF oDispatchContext.hasErrors()
FOR EACH error in oDispatchContext.errors%><<error>><br />
<%
ENDFOR
ENDIF
%>


Agents.Prg - This is in the Controllers folder.


DEFINE CLASS agents AS Custom
greeting = ""
HIDDEN oAgent
oAgent = .NULL.
HIDDEN oApp
oApp = .NULL.
lDestroyInProgress = .F.

PROCEDURE Destroy
This.lDestroyInProgress = .T.
IF VARTYPE(This.oAgent) = "O"
This.oAgent.Release()
this.oAgent = .NULL.
ENDIF
IF VARTYPE(This.oApp) = "O"
This.oApp.Cleanup()
This.oApp = .NULL.
ENDIF
ENDPROC

HIDDEN PROCEDURE oAgent_Access
IF NOT This.lDestroyInProgress AND VARTYPE(This.oAgent) <> "O"
This.oApp = CREATEOBJECT('ptrak.ptrakapplicationobject')
This.oAgent = This.oApp.oBizObjs.Add("AgentsViewBizobj")
ENDIF
RETURN This.oAgent
ENDPROC

PROCEDURE hello
LPARAMETERS user
this.greeting = "Hello " + user
ENDPROC

PROCEDURE search
ENDPROC

PROCEDURE list

LOCAL loAgent, ;
lcXML, ;
lcCurrentDirectory

loAgent = This.oAgent

IF NOT EMPTY(this.criteria)
* Set operator to contains (defaults to "Begins With")
loAgent.oCursor.Parameters.Item(2).cOperator = "Contains"
loAgent.SetParameter("VP_AG_NAME",this.criteria)
ENDIF
loAgent.Requery()
lcXML = loAgent.GetXML()
XMLTOCURSOR(lcXML,"curAgents")
loAgent = .NULL.
ENDPROC
ENDDEFINE


I then just navigated to http://localhost/WebRoot/Default.aspx/agents/search and it works!

Naturally, it's a bit more code to go at a COM server vs. native VFP data, but the point is, it was do-able using VFP on Rails. I'm still a LONG way from being able to write a complete usable web application with full CRUD features, but at least I know I don't have to worry about the business and data tier since I can use my favorite tool for this: VFP. When it's time to get serious I can either learn some presentation layer tools or farm that part out to experienced web developers while I focus on the business logic.

Brian is focusing on trying to keep the implementation and configuration as simple as possible. Currently, it's as simple as creating a new web share in IIS and registering a single COM server. No other configuration is required. Controller classes can be deployed without stopping the web server and I think there will be a new "autocompile" feature added soon so that you don't have to remember to compile PRG changes during development.

I am aware of at least 4 other VFP based web tools. I'm not sure how this compares with those as I've not had the opportunity to try them. Of course, this is in the very early stages and Brian is hoping to generate some interest from other developers before submitting to VFPX on CodePlex.

Tuesday, April 10, 2007

Computerworld: FoxPro users petition to keep database language alive

Alex Feldstein Just blogged about this Computerworld article. I would agree that this is the best article on this I've read to date. Most other articles I've read are either ignorant of the facts or biased for or against VFP. I highly recommend you read this article if you have anything to do with Visual Foxpro.

Sunday, March 25, 2007

COBOL

I just realized I did not mention in my last post that we still have people programming with COBOL at our company. Don't know how many new projects are being started with COBOL as most of this development was tied to the HP3000 platform. The HP3000 is no longer supported by HP and yet there are still lots of companies running their business on these machines. We still have COBOL programmers to take care of them by providing support and enhancements to their applications.

So what's my point? I guess if I compare this to the recent Microsoft announcement about no future versions of VFP I feel a little more positive about my future with VFP.

Wednesday, March 21, 2007

Microsoft VFP Announcement

As I sit here at Chicago Midway airport putting my nephew on a plane back home, I am pondering my future as a VFP programmer.

Microsoft has recently announced that they will not be releasing new versions of Visual Foxpro and will release their upcoming Sedna release, in addition to other non-core extensions, to the open-source community via CodePlex. They will be releasing a final service pack (SP2) sometime later this year which will address Vista compatibility issues as well as some .NET interop improvements and other miscellaneous fixes and enhancements. However, Microsoft support for Visual Foxpro 9 will officially end in 2015.

I've been reading a lot of articles and blogs trying to get a feel for how most are taking this news. As expected, there is quite a mix of emotions and opinions. Quite surprisingly, a lot of people who are highly regarded in the VFP and software development community are looking at this as generally positive news. Myself, I'm a bit dubious. Working for a software shop that uses several various technologies (VFP, Java, .NET, PHP, BEA, Oracle, SQL Server, etc.) there is an expectation that we look to "future proof" our work as much as possible. Overall, the decision to use VFP on many, many successful projects has been a very good thing. But now what do I recommend? Of course we who use VFP every day can attest to it's technical and RAD capabilities, etc., but many of our corporate clients want to know that if we go away, or I get hit by a bus, etc. that they can find someone to support their apps. Last time I checked, there was not a whole lot of VFP talent in South Bend, Indiana.

Yes, VFP 9 is still a great tool for developing desktop, distributed and web applications and I’m sure will continue to work well beyond the 2015 support date. I still have a client that is running Foxpro 2.6 for DOS under Windows XP and, although there are some occasional compatibility issues to deal with whenever he gets a new PC (like no parallel ports!), the software continues to do the job very well.

I, like many others, am not surprised at all by this announcement. However, it still leaves me feeling a bit sad and disillusioned. I have been updating my skills the past several years, and will continue to do so, but it’s still sad. It’s sad because as a software engineer, even when I know VFP may be the perfect fit for a new project, I'm also a consultant and I have to be pragmatic and may not recommend new projects use VFP. Maybe it’s because I’m just getting tired of constantly fighting the negative spin and this news might make the fights harder to win.

In my opinion (and many others in the community), the main problem with VFP has not been the tool itself but rather Microsoft’s apparent lack of marketing since they purchased Fox Software in 1992. I’ve also encountered negative PR regarding VFP from Microsoft employees at user groups, etc. I truly believe there has been a concerted effort by some to try and kill VFP by spreading false rumors and misinformation. Many declared Foxpro dead since 1995 when Microsoft released their first 32 bit operating system: Windows 95. This has left the impression in the technical and non-technical world that VFP is, at best, a legacy database management system and this has definitely made it a tough sell, especially in the corporate environments. And yet, time after time, the Fox Team at Microsoft delivered one great version after the next. And time after time, we’ve delivered ENTERPRISE solutions on time and on budget and continue to meet customers’ expectations using VFP. And time after time, the VFP community has continued to be there for teaching, mentoring and great camaraderie.

There’s nothing worse than implementing a successful project only to have the decision of the development tool questioned over and over, sometimes several years later, every time a new person (or manager) gets involved with the project. Fortunately, I have clients that actually look at the results and know when to dismiss the undeserved negative remarks about VFP, but who knows about the next potential client….

All I can say to anyone that has been secretly (or not so secretly) hoping for this day is “I hope you’re happy now” and I sure hope that you’re ready for some REAL competition now that there will be possibly many VFP developers switching to other tools. Bring it on.

In the meantime, I plan to continue maintaining and enhancing my existing clients’ VFP applications, possibly introducing .NET components over time where it makes sense. I have already deployed ASP.NET Web Services, a socket server/listener using C# running as a multi-threaded service calling a VFP COM object, prototyping with StrataFrame , etc. and have also been using SQL Server and other truly client server back-end databases for several years now.

So, no, it's not that I'm afraid of change or learning something new; it's just that I know VFP is a very good, stable and mature tool – I'm really not sure the same can be said about all this other "stuff".

Other links of interest and articles related to this announcement:

Developer

EWeek 1

EWeek 2

Note: I question the validity of some of the comments in the above article. I've heard a lot of people referring to this article with enthusiasm thinking the core of VFP will be open-sourced. As far as I know, this is not true.

Etecnologia

Blog Posts:
Doug Hennig

Rick Schummer

David Stevenson

Thursday, January 11, 2007

Tag! I'm it!

I've been tagged by Rick Schummer
As I understand it, I am to tell 5 things about myself. I'm not sure who to tag that hasn't already been tagged so I'm not going to do that now.

I'm very busy with client work these days. Doing a little bit of everything. VFP, .NET, classic ASP/VBScript, SQL Server and I'm also in the process of moving into a new office. (Getting out of the cubicle! Yeah!) Getting tagged came at a good time as it provides me with an opportunity to reflect on other aspects of my life. Plus, I've not been blogging lately so this gives me something to blog. I was actually considering shutting this blog down. Maybe I'll keep it for a bit longer.

So, here goes...

1. I joined the Navy instead of going to college right out of high school. I was a signalman on the USS Peleliu. Fortunately, I served during peacetime so I got to see many countries in the Far East.

2. My first computer program was written in Basic. I wrote it on my Dad's Texas Instruments PC (complete with analog cassette drive) to teach myself Morse Code in preparation for being a signalman. It played the equivalent Morse Code sounds and also flashed the dit-dah's on the screen as you typed letters and numbers. I was just "playing" and never thought I would actually do this type of thing for a living.

3. I grew up in Orange County, California and moved to North Central Indiana when I was 24, mainly because I was tired of living on Cup O Noodles. I worked for an Elkhart, Indiana based company which paid my moving expenses and hired me to manage their Netware 2.15 network, support and develop custom programs in Foxbase and implement the financial accounting package "SBT Series 6" All this as a result of writing label printing and costing programs in Lotus 1-2-3. Been doing mostly Fox development of one type or another ever since.

4. I was a "skater" when I was a kid. I can still do a 360 and can "free-style" a bit, but have no idea how to do an "ollie" and I think I'm too old to try. I had a membership to one of the first skateboard parks. It was called "Skatopia". I never made "Dogtown" status but knew a few people that were featured in Skateboarder magazine that were "pool" skaters and some had half-pipe ramps in their backyards. I was not into surfing but did a lot of "boogie boarding" at the beach. Now I just enjoy a round of golf every now and then. I am also a video game nut. I love playing multi-player 1st person shooters like Battlefield Series and Half-Life.

5. I've never been to any of the official "big" VFP conferences. (MS, Advisor, Southwest, etc.) I hope to do this someday.

Well, technically, that was more than 5 things, but who's counting?