Downloads
Thanks to jMM' . for the tip.
Sunday, September 25, 2005
Wednesday, September 14, 2005
LINQ - Language INtegrated Query
As has been rumored C# and VB.NET are being enhanced to include native data access within the language -- along the lines of SQL in VFP.
Read more here
Read more here
Wednesday, July 27, 2005
Google Toolbar for Firefox
Gmail, Desktop search, BlogThis, News, Spell Check in HTML forms (except for the BlogThis popup).
Good stuff, maybe I'm ready to come off of my accidental blogging sabbatical...
Good stuff, maybe I'm ready to come off of my accidental blogging sabbatical...
Monday, June 13, 2005
SpeakEasy DSL
We just moved (part of the reason posts have been so few and far between lately) - so I called SpeakEasy.net to cancel my DSL service at the old place.
To cancel the contract is $300.
Looking over my original paperwork, it appears I paid $150 for hook-up. So it's not like they are trying to recoup those costs.
Of course they are willing to transfer my service to a new location. But service is already setup there -- and it would no doubt mean that I'd be starting my year all over again.
As goes cell-phones providers, so goes cable and now DSL.
To cancel the contract is $300.
Looking over my original paperwork, it appears I paid $150 for hook-up. So it's not like they are trying to recoup those costs.
Of course they are willing to transfer my service to a new location. But service is already setup there -- and it would no doubt mean that I'd be starting my year all over again.
As goes cell-phones providers, so goes cable and now DSL.
Wednesday, May 25, 2005
Wednesday, May 18, 2005
Google Maps + Craigslist = HousingMaps
Yet another super cool thing you can do with Google Maps.
Now they just need to get it work with Pocket PCs...
Wired article here
Now they just need to get it work with Pocket PCs...
Wired article here
Tuesday, May 17, 2005
The Jeff Pulver Blog: E911/VoIP: Death of the Broadband Parasite in the USA?:
Upcoming FCC rulings may kill independent VOIP by requiring 911 service.
"...Strange as how it sounds, even Canada looks to be a more fertile ground for continued technology innovation than the US, if E911 becomes mandated for VoIP, including nomadic VoIP offerings. If VoIP was the first great driver of broadband, I fear that America will drop even further down the ranks of the countries in broadband penetration and that will further sink the US economy for many decades to come.
Unless something was totally misunderstood with regards to the FCC immediate intentions, 2005 may go down in history as the time we saw both the rise and fall of the unaffiliated VoIP service provider..."
more
"...Strange as how it sounds, even Canada looks to be a more fertile ground for continued technology innovation than the US, if E911 becomes mandated for VoIP, including nomadic VoIP offerings. If VoIP was the first great driver of broadband, I fear that America will drop even further down the ranks of the countries in broadband penetration and that will further sink the US economy for many decades to come.
Unless something was totally misunderstood with regards to the FCC immediate intentions, 2005 may go down in history as the time we saw both the rise and fall of the unaffiliated VoIP service provider..."
more
Monday, May 16, 2005
UML for BioHacking...
We are rapidly moving into a world where biology can be as manipulable as data. After all, DNA is code; life is information. The new tools and methods we're developing for bioengineering reflect this parallel, and the philosophies underlying the "hacker" ethic (in the original sense of someone devoted to exploration, invention and discovery) are being absorbed by the biological disciplines.
more...
Don't miss the link to Biomodeling.
more...
Don't miss the link to Biomodeling.
Thursday, May 12, 2005
Web Templates | Flash Templates | Website Templates Design - Template Monster
Nice resource for plug and play Web templates.
Monday, May 09, 2005
Saturday, May 07, 2005
Friday, May 06, 2005
Groove Virtual Office - Virtual office software for sharing files, projects and data.
Microsoft has purchased Groove
It looks pretty slick from the overview. Don't forget to check the Rapid Solutions section.
Integrates with SharePoint, seems more powerful than Infopath, I could see it being used as a Team Studio lite...
It looks pretty slick from the overview. Don't forget to check the Rapid Solutions section.
Integrates with SharePoint, seems more powerful than Infopath, I could see it being used as a Team Studio lite...
Wednesday, April 27, 2005
PlateSpin Products - PowerP2V
100% Automated Conversions between Physical and Virtual Machines are the claims made by this tool.
Sunday, April 24, 2005
The Fox Show
Andrew MacNeill has thrown himself in the Podcasting ring with The Fox Show.
He has a great read on the pulse of the Fox community, the show covers a broad range of topics. Enjoyable and informative!
Thanks Frank Burcaw from the ProFox list.
He has a great read on the pulse of the Fox community, the show covers a broad range of topics. Enjoyable and informative!
Thanks Frank Burcaw from the ProFox list.
Tuesday, March 29, 2005
Thursday, March 24, 2005
What runs when Windows starts?
Silent Runners - script documentation
VB script that interrogates the windows registry for programs that run at startup.
Great for identifying adware, malware, and those lame programs that HP and Epson install etc to tell you all about your printing process...
VB script that interrogates the windows registry for programs that run at startup.
Great for identifying adware, malware, and those lame programs that HP and Epson install etc to tell you all about your printing process...
Foxite.COM Community Weblog
Wednesday, March 23, 2005
FoxCast
FoxCast
"FoxCast.org supports user groups by providing top VFP speakers, presenting from locations around North America and abroad. User groups can connect to the live, interactive monthly meetings or replay recordings of past events at their monthly meetings."
Registration and most (if not all) seminars are free, great resource.
"FoxCast.org supports user groups by providing top VFP speakers, presenting from locations around North America and abroad. User groups can connect to the live, interactive monthly meetings or replay recordings of past events at their monthly meetings."
Registration and most (if not all) seminars are free, great resource.
Monday, March 14, 2005
Developers Report on Power, Productivity and Extensibility of New Visual FoxPro 9.0
A Press Release about developers and tool vendors adopting VFP9.
"Visual FoxPro 9.0 is the biggest upgrade since the product was first released," - Doug Hennig
We couldn't agree more, this *is* the version to move to. Look for future postings "99 Reasons to Move to Visual FoxPro 9" on this blog.
"Visual FoxPro 9.0 is the biggest upgrade since the product was first released," - Doug Hennig
We couldn't agree more, this *is* the version to move to. Look for future postings "99 Reasons to Move to Visual FoxPro 9" on this blog.
Tuesday, March 08, 2005
VFP: Call Report Writer from COM
We needed to move a number of existing VFP reports to the web quickly. One technique is to issue REPORT FORM ASCII TO from a COM object.
After digging around and testing we found that it was possible. There are two things to keep in mind.
1) COM objects cannot raise UI events.
The commands to ensure this are:
SET NOTIFY OFF
SET TALK OFF
REPORT FORM myRepo NOCONSOLE ASCII TO myrepo.txt
2) COM objects must be compiled as OUT OF PROCESS (EXE) not IN-PROCESS (DLL).
(Special thanks to Malcolm Greene of ProFox for this tip)
Here is the code we used to test the premise:
After digging around and testing we found that it was possible. There are two things to keep in mind.
1) COM objects cannot raise UI events.
The commands to ensure this are:
SET NOTIFY OFF
SET TALK OFF
REPORT FORM myRepo NOCONSOLE ASCII TO myrepo.txt
2) COM objects must be compiled as OUT OF PROCESS (EXE) not IN-PROCESS (DLL).
(Special thanks to Malcolm Greene of ProFox for this tip)
Here is the code we used to test the premise:
* run as is, assumes you have a FOXUSER file in use
***************************************************
* clear prior runs, create report from FOXUSER
CLEAR
CLOSE ALL
CLEAR ALL
ERASE myrepo*.*
USE SET("RESOURCE",1) AGAIN IN 0
CREATE REPORT myrepo FROM ALIAS()
* create main program with COM class
TEXT TO cMain NOSHOW
DEFINE CLASS myRepo AS Custom OLEPUBLIC
PROCEDURE DoReport(tlTest)
SET NOTIFY OFF
SET TALK OFF
SET SAFETY OFF
IF m.tlTest
STRTOFILE("This is a test","myrepo.txt")
ELSE
REPORT FORM myRepo NOCONSOLE ASCII TO myrepo.txt
ENDIF
SET SAFETY ON
RETURN FILE("myrepo.txt")
ENDPROC
ENDDEFINE
ENDTEXT
* write out the main program
SET SAFETY OFF
STRTOFILE(m.cMain, "myrepo.prg")
* add to project, compile EXE (not DLL)
CREATE PROJECT myrepo NOWAIT NOSHOW
_VFP.ACTIVEPROJECT.FILES.ADD("myrepo.prg")
BUILD EXE myrepo FROM myrepo
RELEASE WINDOWS PROJECT
SET SAFETY ON
* call without com
SET PROCEDURE TO myrepo.prg
o=CREATEOBJECT("myrepo")
TryMyRepo(o)
RELEASE o
SET PROCEDURE TO
* call with com
o=CREATEOBJECT("myrepo.myrepo")
TryMyRepo(o)
PROCEDURE TryMyRepo(o)
TRY
? o.DoReport(.T.)
? o.DoReport()
CATCH TO oExc
? oExc.MESSAGE
ENDTRY
ENDPROC
Sunday, February 27, 2005
Thursday, February 17, 2005
Regular Expression Library
Regular Expression Library: "Welcome to RegExLib.com, the Internet's first Regular Expression Library. Currently we have indexed 898 expressions from contributors around the world."
An execellent website, thanks to Stuart Dunkeld via ProFox for pointing it out.
An execellent website, thanks to Stuart Dunkeld via ProFox for pointing it out.
Wednesday, February 16, 2005
VFP 9 & opportunistic locking
A reader sent in the following:
“We recently discovered that our VFP8 app was encountering corrupt databases (error 2091) regularly and have determined the cause to be opportunistic locking on the server and workstations. We have been unable to find any reference to opportunistic locks or their impact on VFP RDBMS in any of the VFP documentation from vfp5 through 8.”
The resolution is related to how the OS is disk caching.
Windows XP SP2 / Win2k*:
Cut and paste the following into a file called woplocks.reg and run it on the workstations:
Cut and paste the following into a file called soplocks.reg and run it on the server
Novel settings are:
Opportunistic Locking set off
Cache Rights set off
Delay Rights set off
Packet Burst set off
True Commits set ON
“We recently discovered that our VFP8 app was encountering corrupt databases (error 2091) regularly and have determined the cause to be opportunistic locking on the server and workstations. We have been unable to find any reference to opportunistic locks or their impact on VFP RDBMS in any of the VFP documentation from vfp5 through 8.”
The resolution is related to how the OS is disk caching.
Windows XP SP2 / Win2k*:
Cut and paste the following into a file called woplocks.reg and run it on the workstations:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters]
"EnableOplockForceClose"=dword:00000001
"EnableOplocks"=dword:00000000
"UseOpportunisticLocking"=dword:00000000
Cut and paste the following into a file called soplocks.reg and run it on the server
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
"EnableOplockForceClose"=dword:00000001
"EnableOplocks"=dword:00000000
Novel settings are:
Opportunistic Locking set off
Cache Rights set off
Delay Rights set off
Packet Burst set off
True Commits set ON
Wednesday, February 09, 2005
Malicious Software Removal Tool
New tool from Microsoft, deals with malicous programs.
This tool scans for and cleans malicious software associated with the following security threats:
• Berbew
• Blaster
• DoomJuice
• Gaobot
• Korgo
• Mydoom
• Nachi
• Netsky
• Randex
• Sasser
• Zafi
• Zindos
This tool scans for and cleans malicious software associated with the following security threats:
• Berbew
• Blaster
• DoomJuice
• Gaobot
• Korgo
• Mydoom
• Nachi
• Netsky
• Randex
• Sasser
• Zafi
• Zindos
Saturday, January 29, 2005
Tuesday, January 25, 2005
EMS Professional Software and Specialty Services
Looking for a copy of old software manuals, or the install disks themselves? Check out EMS Old Software Exchange from here.
Also links to shareware, IQ testing, survival publishiing and build-it-yourself reading primer templates.
A golden find, thanks to Dave Bernard via the ProFox list.
Also links to shareware, IQ testing, survival publishiing and build-it-yourself reading primer templates.
A golden find, thanks to Dave Bernard via the ProFox list.
Friday, January 21, 2005
Sleep Fox
Put VFP in a minimum resource wait state, but still pay attention to the internal event loop:
Thanks to late night buddy Garrett who has a recent post on using SourceGear Vault with VFP Project Manager. The single user version is free (as in beer).
PROCEDURE DoSleep
LPARAMETERS tnSeconds
LOCAL lnSeconds
DECLARE Sleep IN WIN32API integer
lnSeconds = SECONDS()
DO WHILE SECONDS() - m.lnSeconds <> m.tnSeconds
    SLEEP(m.tnSeconds*100)
    DOEVENTS
ENDDO
CLEAR DLL SLEEP
Thanks to late night buddy Garrett who has a recent post on using SourceGear Vault with VFP Project Manager. The single user version is free (as in beer).
Thursday, January 20, 2005
Named References in VFP-SQL
VFP allows us to use named references for fieldnames, tablenames, filenames, etc with its various commands. But, not always with the SQL sub-language...
This works:
REPLACE ALL (crsUpdates.FieldName) ;
    WITH (crsUpdates.NewValue);
    FOR PrimaryKey = (crsUpdates.PK)
but not this:
UPDATE table1;
    SET (crsUpdates.FieldName) = (crsUpdates.NewValue) ;
    WHERE table1.PrimaryKey = (crsUpdates.PK)
or any of these...
UPDATE table1 ;
    SET &crsUpdates..FieldName = (crsUpdates.NewValue) ;
    WHERE table1.PrimaryKey = (crsUpdates.pk)
UPDATE table1 ;
    SET EVALUATE(crsUpdates.FieldName) = (crsUpdates.NewValue) ;
    WHERE table1.PrimaryKey = (crsUpdates.pk)
However, if you hard-code the SET field, it works:
UPDATE table1 ;
    SET MyField = (crsUpdates.NewValue) ;
    WHERE table1.PrimaryKey = (crsUpdates.pk)
I'm sure it's been this way forever -- I've just don't recall running across it before.
This works:
REPLACE ALL (crsUpdates.FieldName) ;
    WITH (crsUpdates.NewValue);
    FOR PrimaryKey = (crsUpdates.PK)
but not this:
UPDATE table1;
    SET (crsUpdates.FieldName) = (crsUpdates.NewValue) ;
    WHERE table1.PrimaryKey = (crsUpdates.PK)
or any of these...
UPDATE table1 ;
    SET &crsUpdates..FieldName = (crsUpdates.NewValue) ;
    WHERE table1.PrimaryKey = (crsUpdates.pk)
UPDATE table1 ;
    SET EVALUATE(crsUpdates.FieldName) = (crsUpdates.NewValue) ;
    WHERE table1.PrimaryKey = (crsUpdates.pk)
However, if you hard-code the SET field, it works:
UPDATE table1 ;
    SET MyField = (crsUpdates.NewValue) ;
    WHERE table1.PrimaryKey = (crsUpdates.pk)
I'm sure it's been this way forever -- I've just don't recall running across it before.
Thursday, January 13, 2005
Joel on Software at Crossroads, Tues Jan 18th
Joel on Software Dinner: Bellevue WA Jan 18th
"I'm planning to come to Seattle in January to speak at an Amazon.com developer's conference. While I'm there, I thought it would be fun to meet some readers over dinner, so if you're going to be in the area, I hope you will be able to come!
I suggest we meet at the food court at the Crossroads Mall, at 7:30 PM Tuesday, January 18th, 2005."
"I'm planning to come to Seattle in January to speak at an Amazon.com developer's conference. While I'm there, I thought it would be fun to meet some readers over dinner, so if you're going to be in the area, I hope you will be able to come!
I suggest we meet at the food court at the Crossroads Mall, at 7:30 PM Tuesday, January 18th, 2005."
Monday, January 10, 2005
Automating Telnet with Expect
As long as Telnet has been around, I was suprised to find that there is no native way to automate it.
I need a process on a Wintel box to access a TSX system remotely and kick off a process. Manually I can Telnet to the box, provide user/pass and then start the process. But when trying to automate the process I find there is no native way to respond to a password prompt from Telnet.
Enter "Expect". Written for *nix in TCL there is a port that runs on Wintel. The documentation is a bit sketchy, but I got it to work.
You can call Expect with -f and provide an input file. The input file for the whole process looks like this:
The \r is the return control, notice double back-slash for the directory name. The package comes with TCL source and its own version of telnet. The expect "32sys" lines have expect looking for the command line prompt.
Whatever you are calling on the remote side should have limited output, when working with TSX I get a minimum of 2 lines of control characters that look like garbage. Originally the remote process was reporting progress on exporting data... this made for too much information for Expect to ... well, expect.
I need a process on a Wintel box to access a TSX system remotely and kick off a process. Manually I can Telnet to the box, provide user/pass and then start the process. But when trying to automate the process I find there is no native way to respond to a password prompt from Telnet.
Enter "Expect". Written for *nix in TCL there is a port that runs on Wintel. The documentation is a bit sketchy, but I got it to work.
You can call Expect with -f and provide an input file. The input file for the whole process looks like this:
spawn telnet 1.0.2.24
expect "Logon please:"
send "myusername\r"
expect "Password:"
send "mypassword\r"
expect "32sys>"
set timeout 1000
send "c:\\bin\\myscript\r"
expect "32sys"
The \r is the return control, notice double back-slash for the directory name. The package comes with TCL source and its own version of telnet. The expect "32sys" lines have expect looking for the command line prompt.
Whatever you are calling on the remote side should have limited output, when working with TSX I get a minimum of 2 lines of control characters that look like garbage. Originally the remote process was reporting progress on exporting data... this made for too much information for Expect to ... well, expect.
Wednesday, January 05, 2005
Execscript kicks the Lama's ass
Andrew Ross-MacNeil turned me on to some interesting ideas with EXECSCRIPT at Devcon this year. I've always had a little program to set hot keys to clear my environment , build a project, ala Tom Rettig's CA.prg.
Writing conditional code from execution in a hotkey was always a bit limiting, but with EXECSCRIPT this is no longer true!
Writing conditional code from execution in a hotkey was always a bit limiting, but with EXECSCRIPT this is no longer true!
ON KEY LABEL f5 EXECSCRIPT ;
( ;
[ CLOSE ALL ] + CHR(10) + ;
[ CLEAR ALL ] + CHR(10) + ;
[ CLEAR ] + CHR(10) + ;
[ SET SYSMENU TO DEFAULT ] + CHR(10) + ;
[ BUILD APP myapp FROM myapp RECOMPILE ] + CHR(10) + ;
[ IF FILE("myapp.err") ] + CHR(10) + ;
[ MODIFY FILE myapp.err NOWAIT ] + CHR(10) + ;
[ ELSE ] + CHR(10) + ;
[ DO myapp ] + CHR(10) + ;
[ ENDIF ] ;
)
Tuesday, January 04, 2005
Visual FoxPro 9 Goes Gold / BetaNews babbles on incoherently...
A weak article with bad information about VFP9 release here.
Some mention of the extended report writer and …
“…FoxPro 9.0… embeds SQL in the FoxPro language, and is more extensible, allowing developers to introduce code that benefits their end user applications.”
How about the *native* SQL syntax has been extended to include virtually unlimited tables, joins, sub-queries and unions; projections, derived tables and enhanced correlation support?
How about new data types, new index types, enhanced data adaptors for cursors and xml?
How about more granular control on how tables are opened, records are refreshed, transactions are implemented?
How about Rushmore enhancements (especially the late breaking improvements to query optimization)?
How about language additions like CAST() and ICASE()?
If you’re gonna try to write an article based on a press release, at least get it fact checked.
Of course, the comments add salt to the wounds…1 Comment on the article entitled "Fox is Dead", then 4 comments on that comment defending the product.
Some mention of the extended report writer and …
“…FoxPro 9.0… embeds SQL in the FoxPro language, and is more extensible, allowing developers to introduce code that benefits their end user applications.”
How about the *native* SQL syntax has been extended to include virtually unlimited tables, joins, sub-queries and unions; projections, derived tables and enhanced correlation support?
How about new data types, new index types, enhanced data adaptors for cursors and xml?
How about more granular control on how tables are opened, records are refreshed, transactions are implemented?
How about Rushmore enhancements (especially the late breaking improvements to query optimization)?
How about language additions like CAST() and ICASE()?
If you’re gonna try to write an article based on a press release, at least get it fact checked.
Of course, the comments add salt to the wounds…1 Comment on the article entitled "Fox is Dead", then 4 comments on that comment defending the product.
Subscribe to:
Posts (Atom)