Weekly Web Gems gathered from various sources across the world wide interweb!
|
|
Friday, 15 January 2010 19:07 |
Web Gems 1/15/10
Ben Dell: I like to keep the DCT open while I am coding the app.. it allows me to see the table structures and relationships without having to add a table to the local procedure to get what I want www.riebens.co.za/benimages/Captureappdct.PNG
ALERT: for those of you thinking of modifying PE structures in EXE files use the folowing FREE product ... http://www.ntcore.com/exsuite.php it is better than PE Explorer and the price is much better
=====================================
Arnold Young: Web Gem: Manning Publications - Deal of the Day signup http://www.manning.com
Getting It Done On-Time with Simple Project Management
http://www.smartdraw.com/gtd/archive/2009/07/20/getting-it-done-on-time-with-simple-project-management.aspx
=====================================
Arnold Young: Get the jQuery for Designers ebook for $10. Use checkout code dotd0113. http://www.manning.com/sharp/
=====================================
Arnold Young: SmartDraw it looks pretty cool and it is on sale till Wed Jan 20th for $197 versus $297. http://www.smartdraw.com/
=====================================
Bijan J. Hosseinian: I have a gotomeeting account and several other helpdesk tools for supporting customers. However, I find Mikogo to be a great tool for doing a quick one on one demo. It loads quickly. One thing that most users might miss is that there is an option in the initial settings that lets you provide help desk. Right click on the system trays icon and select Start Options/View and Control another screen. This will let you take control of your client's pc and It is Free.
=====================================
Bijan J. Hosseinian: I bought Tivoli but for offsite backup I recommend mozy.com They have a 2 GIG free backup plan. Clarion developers can use the incremental backup feature to backup .app and .dct files. Files are backed up off site and you can restore to any day. It works great www.mozy.com
=====================================
Bijan J. Hosseinian: http://devexpress.com/Products/NET/Reporting/QuickStart.xml These webcasts show some of the features in the new 7.1 Clarion Report Writer.
=====================================
Bijan J. Hosseinian: I am using something from bo schmidt that's called BsIdent - Remove Ident numbers from TXD/TXA Files (Zip format). It is free. This is a great little tool that we may want to let others know about.It can be downloaded for free from http://comsoft7.com/Prices.htm
=====================================
Presentation Showcase - The Presentation Secrets of Steve Jobs Last month Carmine Gallo delivered an insightful web seminar based on his book, The Presentation Secrets of Steve Jobs, that lets you learn the secrets of the master. This month we're featuring the on demand version of this presentation in our January showcase. Carmine used SlideRocket's new audio features to record audio for each slide and time his slide builds to match, letting him deliver his pitch at a time that's convenient for you. http://app.sliderocket.com/app/FullPlayer.aspx?id=bafe6c8d-b323-4f61-ad30-cbe6e0ad9a37&mkt_tok=3RkMMJWWfF9wsRoluKvfLqzsmxzEJ8r8%2FbF8APvv3Mga3E5XdrGbaxk%3D
|
|
|
Saturday, 12 December 2009 22:27 |
| What it is Contributor |
Details |
All about Symlinks in Windows Vista and above
Brahn Partridge |
symlinks in vista are pretty handy too Mark apparently improved a bit from earlier OS versions
http://technet.microsoft.com/en-us/library/cc753194%28WS.10%29.aspx
This is another article I had bookmarked. I also have somewhere a GUI that will setup and manage them for you if you want me to dig it out.
http://www.howtogeek.com/howto/windows-vista/using-symlinks-in-windows-vista/
http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx
"Symlinks can span volumes (wicked useful) and you can also Symlink to UNC paths"
For a while I had my laptop setup with a symlink on c:\clarion6 which pointed to an external drive. It could handle hot plugging of the drive which was neat. And switching clarion environments could be done by just deleteing and recreating the link to a new location.
this looks neat:
http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html |
Clarion program that remote controls your PC using Twitter!
Sylvain |
For those who could be interested, here is a program that let you use Twitter, mail or your cell phone as a remote control for your PC.
http://www.aidlys.com
All comments are welcome
Just forgot: That's a clarion 6 / nettalk 4 program |
Using Molebox for virtualizing your program
Shankar |
I just finished my initial testing with MoleBox Pro and it seems to work fine even on a Vista Machine logged in as Guest i.e. because of Registry virtualisation there are no UAC or other warnings for registering ActiveX controls. It is also useful in packaging other required files like the Styles sub-folder. Looks very promising.
I would suggest that those that are interested try out the demo with your applications to test it further. The only downside is that the demo is hardware bound and hence would work only on the machine from which it is installed and hence I would suggest installing it on the machine you want to test it on. The link is
http://www.molebox.com/ |
Using Oddjob to run DebugView
Dave Moyer |
I am using Oddjob to run DebugView (WinInternals) when my application is running in debug mode. There is a command line option for DebugView to launch in the tray. Everything works great, but when my program terminates, the DebugView icon is left in the tray until I move my mouse over it.
I know this isn't an Oddjob problem, but just wondering if there is a Winevent method or other function to refresh the tray automatically.
Launching DebugView via Oddjob is pretty cool, since I can log to a file and use Winevent to output useful debugging messages. Just this cosmetic problem lingers. Any ideas welcome. |
Just click the link!
Wolfgang Orth |
http://www.odata.de/worldtime/ |
Monitor events in your APP!
Charles Edmunds |
Download a copy of my free ControlMonitor template at:
www.lansrad.com/download/ControlMonitor.zip
With the extended CASE option on the template you get an embed point that you can put your code in that will fire reliably when the value of the field changes (by any means).
In fact you get embeds that fire in this order:
1) ANY monitored data has changed - BEFORE field specific embed code is fired
2) When a SPECIFIC field has changed value
3) ANY monitored data has changed - AFTER field specific embed code is fired
That pretty much gives you total control over what fires and when. Plus it allows you to prepare for any field specific event and clean up (or do something else) after all field specific events are done.
We wrote this years ago to get rid of all the herky-jerky problems of Clarion firing code whenever it wanted to.
We have a lot of developers who use it (including us) in all our apps.
It works (even in C55<g> and the price is right! |
KSpng special!
Klarisoft |
KSpng class allows Clarion programmers to display PNG and TIFF format images
using native Clarion IMAGE control on both windows and reports. It also allows you to convert files between different image formats. BMP, GIF, JPEG, TIFF and PNG formats are supported. Everything is done with just one call.
Clarion 5.5, 6.3 and 7 both Legacy and ABC are supported.
Demo version can be downloaded from
http://klarisoft.com/KSNews_186.htm
During beta period product cost is $69.95 |
Sale on SQL Manager
Jeff Slarve |
FYI, they're having a 25% off sale all through December.
I have both the MySQL and postgre products. Excellent stuff.
http://sqlmanager.net/ |
Fix for PDF font problems
Lynn Howard |
Thanks again to Lee for pointing out my PDF problem was due to Large fonts specified for Vista and Windows 7.
And special thanks to Arnor's fix! Perfect!
http://www.icetips.com/blog/index.php/2009/04/21/font-problems-with-the-pdf-generation-te |
|
|
Last Updated on Saturday, 12 December 2009 22:47 |
|
Saturday, 05 December 2009 01:00 |
| What it is Contributor |
Details |
Evernote lets you enter notes from multiple devices and access them anywhere
John Hickey |
www.evernote.com |
Info on using jquery
Mark Riffey |
http://jquerystyle.com/
http://blog.themeforest.net/screencasts/jquery-for-absolute-beginners-video-series/ |
Special on Acronis
Mark Goldberg |
http://www.newegg.com/Product/Product.aspx?Item=N82E16832200011&Tpk=32-200-011
Acronis True Image Home 2010 -- price $24
http://www.acronis.com/homecomputing/products/trueimage/ |
Virtualbox (free!)
Wolfgang Orth |
VirtualBox 3.1.0 arrives, adds teleportation support
http://www.h-online.com/open/news/item/VirtualBox-3-1-0-arrives-adds-teleportation-support-872873.html
Also GOOGLE VMLite |
| Mark Goldberg |
http://msdn.microsoft.com/en-us/magazine/ee358705.aspx |
| Mark Sarson |
Free Microsoft Book/PDF: Microsoft Application Architecture Guide/Second Editon : http://bit.ly/4ZIAXK |
| Mark Goldberg |
http://www.microsoft.com/web/websitespark/
Does your company have 10 or fewer employees?
Receive Windows Web Server and SQL Server Web Edition at no cost to host new websites |
| Olivier Cretey |
http://softvelocity.cachefly.net/ex/Clarion7ExamplesandLessons_installer.zip |
Update to the debugger class
Mark Goldberg |
SELF.debugout('Debuger Class last modified['& CLIP(FORMAT(DATE(10,27,2009),@D18)) &']')
SELF.debugout('Debuger Class Updates: http://www.monolithcc.com/clarion/debuger.zip ') |
| Andy_eaFXTrader |
http://www.balsamiq.com/ --- xml , and screen / web prototyping |
Search and Replace string method
Mark Goldberg |
I remember spending a day writing a method in CW to do a search and replace on a string, where the lengths of the strings were different. It takes advantage of advanced CW coding techniques.
In .NET, it's a matter of opening a browser, doing a quick search, to find the command (assuming you didn't already know it)
and then using it is... nothing... it's just so simple.
[1:07:19 PM] Mark Goldberg:
!=======================================================================================================================
ctMG.ReplaceStr PROCEDURE(STRING xSearchIn, STRING xSearchFor, STRING xReplaceWith, <*LONG xaReplaceLen> !,STRING
PARAM::ReplaceLen EQUATE(5)
!---------------------------------------------------------------------------------------------------------
!Note: C6+ can declare a string dimension at runtime via an expression, C55 cannot
! so I have created ctMGStr, which allocates a string via NEW STRING
! the reason I'm using a CLASS vs. a simple &STRING is so I can return the value of the string
! and AFTER the RETURN do a DISPOSE - via the .DESTRUCT
!---------------------------------------------------------------------------------------------------------
!RetVal STRING( 200) !<-- simple for initial test
!C60+! RetVal STRING(8192) ! LEN(xSearchIn) * CEILING( LEN(xReplaceWith) / LEN(xSearchFor) ) )!<-- C6 Language Construct
oMGStr ctMGStr ! RetVal.INIT(nPictLen - 3) ! RetVal &= NEW STRING( nPictLen - 3)
RetVal &STRING
nLen_xSearchIn LONG(),AUTO
nLen_xSearchFor LONG(),AUTO
nLen_xReplaceWith LONG(),AUTO
nFoundAt LONG,AUTO
nSearchIn_Lo LONG(1)
nRetVal_Dest LONG(1)
nMoveSize LONG,AUTO
lcl:bODS LONG(FALSE)
CODE
nLen_xSearchFor = LEN(xSearchFor)
IF NOT nLen_xSearchFor
RETURN xSearchIn !<--- MG Policy
END
nLen_xSearchIn = LEN(xSearchIn)
nLen_xReplaceWith = LEN(xReplaceWith)
IF lcl:bODS THEN ASSERT(0,eqDBG&'ctMG.ReplaceStr [start]vvvvv-{142}') END
!-! ASSERT(0,eqDBG&'SIZE(RetVal)['& SIZE(RetVal) &']')
!-! ASSERT(0,eqDBG&' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17')
!-! ASSERT(0,eqDBG&' 123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-123456789-')
!-! ASSERT(0,eqDBG&'ReplaceStr In[' & xSearchIn &']')
!-! ASSERT(0,eqDBG&'ReplaceStr For[' & xSearchFor &']')
!-! ASSERT(0,eqDBG&'ReplaceStr With['& xReplaceWith &']')
!-! ASSERT(0,eqDBG&' Len In/For/With=['& nLen_xSearchIn &','& nLen_xSearchFor &','& nLen_xReplaceWith &']')
!-! ASSERT(0,eqDBG&'Retval being .init to a len of ['& nLen_xSearchIn * SELF.ceiling( nLen_xReplaceWith / nLen_xSearchFor ) &']')
IF nLen_xReplaceWith
oMGStr.INIT(nLen_xSearchIn * SELF.ceiling( nLen_xReplaceWith / nLen_xSearchFor ) )
ELSE
oMGStr.INIT(nLen_xSearchIn)
END
RetVal &= oMGStr.Str
LOOP
nFoundAt = INSTRING( xSearchFor, xSearchIn, 1, nSearchIn_Lo) !Start searching at nSearchIn_Lo
IF lcl:bODS THEN ASSERT(0,eqDBG&'nSearchIn_Lo['& nSearchIn_Lo &'] nFoundAt['& nFoundAt &'] nRetVal_Dest['& nRetVal_Dest &']') END
IF nFoundAt
nMoveSize = nFoundAt - nSearchIn_Lo !1 + (nFoundAt - 1) - nSearchIn_Lo
!-! ASSERT(0,eqDBG&'nMoveSize['& nMoveSize &']')
!-! ASSERT(0,eqDBG&'['& nRetVal_Dest &' : '& nRetVal_Dest + nMoveSize - 1&'] = ['& nSearchIn_Lo &' : '& nFoundAt - 1 &']')
RetVal[ nRetVal_Dest : nRetVal_Dest + nMoveSize - 1 ] = xSearchIn[ nSearchIn_Lo : nFoundAt - 1]
nRetVal_Dest += nMoveSize
!-! ASSERT(0,eqDBG&'nLen_xReplaceWith['& nLen_xReplaceWith &']')
RetVal[ nRetVal_Dest : nRetVal_Dest + nLen_xReplaceWith ] = xReplaceWith
!-! ASSERT(0,eqDBG&'nLen_xReplaceWith['& nLen_xReplaceWith &']')
nRetVal_Dest += nLen_xReplaceWith
nSearchIn_Lo = nFoundAt + nLen_xSearchFor !error by 1 ?
IF nSearchIn_Lo > nLen_xSearchIn
BREAK
END
ELSE
nMoveSize = 1 + nLen_xSearchIn - nSearchIn_Lo
!-! ASSERT(0,eqDBG&'nMoveSize['& nMoveSize &']')
IF nMoveSize
!-! ASSERT(0,eqDBG&'['& nRetVal_Dest &' : '& nRetVal_Dest + nMoveSize - 1&'] = ['& nSearchIn_Lo &' : '& nLen_xSearchIn &']')
RetVal[ nRetVal_Dest : nRetVal_Dest + nMoveSize - 1] = xSearchIn[ nSearchIn_Lo : nLen_xSearchIn]
nRetVal_Dest += nMoveSize
END
BREAK
END
END !LOOP
IF NOT OMITTED(PARAM::ReplaceLen)
xaReplaceLen = nRetVal_Dest - 1
END
IF lcl:bODS THEN ASSERT(0,eqDBG&'ctMG.ReplaceStr [end] nRetVal_Dest['& nRetVal_Dest &']^^^^-{142}') END
IF nRetVal_Dest = 1
RETURN ''
END
RETURN RetVal[ 1 : nRetVal_Dest - 1] |
|
|
Last Updated on Saturday, 12 December 2009 22:26 |
|
|
|
|
|
|