April 2008

Clarion Folk Lore #3 is live!

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

URLs

Answers

  1. What does MEMBER() do vs. MEMBER(‘MyApp.clw’)

    Every module needs to either have a PROGRAM statement or a MEMBER statement.

    The main module of an EXE/DLL/LIB will have the PROGRAM statement. All others will have a MEMBER statement of some form.

    - The form, MEMBER(‘MyApp.CLW’) tells the module to use the global scope of MyApp.CLW

    - The form, MEMBER() has no shared scope what so ever. This form is useful for generic code, these days typically for CLASSes

  2. What is the purpose of having a MAP, when it has no procedures in it?

    A MAP is used to declare prototypes for procedure. However an empty MAP isn’t quite as empty as it seems.

    Every MAP brings in %cwroot%\\libsrc\\BUILTINS.CLW
       so

       MAP
       END

       becomes

       MAP
         INCLUDE(‘BUILTINS.CLW’),ONCE
       END

    Other files that are brought in:
       – EQUATES.CLW  (found in %cwroot%\\libsrc)
       – Win32.LIB    (found in %cwroot%\\lib)

  3. How do you make a QUEUE of QUEUEs ?

    You’ll need to use ,TYPEd Queues, and you’ll (typically) use NEW / DISPOSE .

       At it’s core:
       qtChild QUEUE,TYPE
       Name           STRING(42)
                       END

       ParentQ  QUEUE
       ID                  LONG
       Children     &qtChild
                           END

       Here a field of the ParentQ is a reference to another queue. Typically as you’re doing the ADD()s to the parent, you’ll either:
       a) ParentQ.Children &= NULL
       b) ParentQ.Children &= NEW qtChild  !instantiate a new one
       c) ParentQ.Children &= SomeChildQ   !already instantiated

       Remember when you’ve used NEW to instantiate, you are responsible for the matching DISPOSE, so typically when you’re doing DELETE(ParentQ) or wish to FREE(ParentQ) you will want to first DISPOSE(ParentQ.Children).

       qtFolder QUEUE,TYPE
       Name       STRING(FILE:MaxFileName)
       Path       STRING(FILE:MaxFilePath)
       ShortName  STRING(13)
       Date       LONG
       Time       LONG
       Size       LONG
       Attrib     BYTE
       SubFolders &qtFolder
                END

Above is an example of a structure for a queue of queues, where the child queue is of the same structure as the parent queue.

These sorts of structures lend themselves to recursive coding, however it’s not required.

Popularity: 1%

{ 0 comments }

Stu Talk #7 – I Love My Job

April 15, 2008

  Why do you love your job? What is your job? Although kitchy and lame, I love my job because my job is life. I’m not going to limit myself to "work" from nine till five. That’s not good enough. My job is every part of my life, regardless of responsibility or method or madness [...]

Read it →

Trouble Blogging Even Though I Know I Should

April 11, 2008

Every spare moment of late on my laptop, when I’m at home, kids in bed and wife-time spent .. I’ve put into development. It’s not that I don’t like writing, i _love_ to write. To express in words, or through voice and video. But right now, my brain is being taken up with a few [...]

Read it →

5 Rules For A Twitter Addict

April 11, 2008

Twitter is an insidious mistress. She beckons and calls and before you know it, the hours have flown by. The only way things could get worse is if Twitter joined in unholy union with Diet Coke to form some freaky kind of sub-organic fusion of Tweet and Drink. 1. DO NOT Read Profiles If you [...]

Read it →

There Is A New Report Designer In Town

April 10, 2008

Steve Ryan is a shining light. When most other people are either disparaging the new Clarion (newsgroups) or not doing much with it at all (me), he’s toiling away. Sure, he’s struck a few hurdles, but it hasn’t slowed progress. Steve and his crew are nearing the end of a big product. They are completing [...]

Read it →

Stu Talk #6 – Hi! I’m Stu Andrews, And I’m A Software Dev At Google

April 9, 2008

  I think I really get Google App Engine. Not so much in a technical fashion (although it’s pretty simple on the surface), but in a _global_ sense. Earlier this evening I watched the first video of their revealing of Google App Engine. As I watched, a couple of thoughts started popping into my head. [...]

Read it →

Stu Talk #5 – Harness Your Sparkbug

April 8, 2008

  There’s an idea that I’m clarifying here. Beginning to clarify. This process started when I posted a comment today and used the word *spark* meaning that the post (Community and Your Business as a Social Object by @pistachio) fired my brain. It pushed my mind in a direction that I wasn’t headed in at [...]

Read it →