Blogs

Change is in the air! -- Carrying the "Spirit of Revolution" from the Middle East into your development Department

Changing the programming culture can eliminate many problems, without the need to develop skills and expertise for a new tool.

Here's a step by step guide to how to go about it, and some ideas about what the advantages of this approach could be.

So, follow the call to revolutionize your development department's culture and usher in a new era of productivity and quality...


Switching away from OpenEdge

Abe Voelker drafted a beautiful write-up about how to switch away from OpenEdge.
Cure for the Plague: A Theoretical Progress OpenEdge ABL Migration Plan

He suggests to use JRuby (or maybe Groovy, or Java), because they are OS and data-store independent, modern (i.e. OO), allow easy CRUD data-access, and support Web application development.

I admire his energy, the extended effort to research, and the kindness to share his insights with the world.

I am a bit surprised, though, by his dislike of the ABL. I L-O-V-E it!


Employing AppServer Made Easy

Many companies are contemplating to use AppServer, but are deadly afraid of doing so. Here are some thoughts about how to make developing and maintaining AppServer applications easy and very feasible.

There are three main issues I encountered over the years:

a) Increased Development Time:

I used to think, that the top-main issue that AppServer novices run into is the amount of time it takes to get a program working, if the back-end is on the AppServer, which the front-end is using to access data.


Super Procedures as a Replacement for Global Vars

I know that this seems so simple, I am almost embarrassed to even post it. I know how to create super procedures, and run them persistently. Can someone give me an example of how to use the technique to replace the need for global shared variables? I know I am missing something here! Thanks.


page_rotate

There is a section in the pdf_definition procedure in which the page rotation is hard-coded to zero:

PUT STREAM S_pdf_inc UNFORMATTED
"/Rotate 0" {&pdfSKIP}.

I'm not sure why a page rotation of 0 was hard-coded. This small change makes page rotation work:

PUT STREAM S_pdf_inc UNFORMATTED
"/Rotate " TT_pdf_page.page_rotate {&pdfSKIP}.

Anyone know why this feature was disabled in the first place?


ProUnit/PUnit

Hi,
I think, Punit is a free unit testing tool. and I've the downloaded files prounit-0.008-dlc10.zip and PUnit-0.10.0-Beta.zip

But not sure how to use it in progress applications?

Thanks in advance,
Sridevi Stalin


EQN II Symbolic Mathematics Library Released

EQN II is ready for release! Open Source symbolic mathematics library available for Progress ABL/4GL here http://bit.ly/hetmA3


Starting ADPlus debugger from a session

The Progress Knowledge base (entries P116692 and P130210) mentions the Microsoft ADPlus tool.
I have written a small procedure that can be run in a prowin32 session (db connection required) to start the ADPlus tool for that session.

Requirements

  • ADPlus.exe is installed and copied to c:\progress\adplus.exe. I had trouble with paths containing spaces.
  • a directory c:\tmp\crashlog must exist
  • Paths in the code are for 64bit windows, these will differ in 32bit

Prolint_propath

PROPATH = "C:\p4gl, " + "C:\p4gl\tools, " + "C:\p4gl\tools\prolint, " + "C:\p4gl\tools\prolint\ab, " + "C:\p4gl\tools\prolint\core, " + "C:\p4gl\tools\prolint\db, " + "C:\p4gl\tools\prolint\filters, " + "C:\p4gl\tools\prolint\images, " + "C:\p4gl\tools\prolint\launch, " + "C:\p4gl\tools\prolint\NO-ERROR, " + "C:\p4gl\tools\prolint\outputhandlers, " + "C:\p4gl\tools\prolint\prolintdb, " + "C:\p4gl\tools\prolint\regrtest, " + "C:\p4gl\tools\prolint\regrtest\db, " + "C:\p4gl\tools\prolint\regrtest-oo, " + "C:\p4gl\tools\prolint\roundtable, " + "C:\p4gl\tools\prolint\roundtable\91c, " + "C:\p4gl\t


New DBA Group

A DBA Group has been added to the available groups. This should be used to tag content related to design and deployment issues for databases such as performance, configuration, and testing. It can also be used to ask questions unrelated to specific content on these same topics and thus result in mail to all members of the group. Add your name to this group to get these email notifications.


Syndicate content