The Life and Times of Jim |
Hi, there. I'm Jim. Welcome to my phlog! This site was written for Las Vegas, then LouisVille. Now, it seems to be about anywhere. In these phlogs, you'll see a lot of my personal notes and pictures. I like to post my observations here to remember life and celebrate it. I'm not religious. I don't pray for good fortune. I'm ecstatically grateful for the gift of life and I think our time should be remembered and not taken for granted. I'm not a writer. I think pictures tell stories so much better than words. I love just about everything in this life, and, I guess that would have to include you. So, if you've seen me, don't be surprised if your picture is in here somewhere. Of all the critters, people are absolutely the most interesting. |
|
08/12/2009 08:00:11 jim Wexford Fog | Wed |||||||||||||||||||
08/11/2009 18:42:51 jim Well folks, looks like I am here for a while | Tue |||||||||||||||||||
Some people pulled for me really hard, and I gotta say, its been a little emotional for me. We've been travelling for what seems like forever and I haven't had a real home for what seems like a very, very long time. These people have become as close to friends as I guess I'll ever have. And I'm happy. These are the good people that I've been looking for. They are the ones that I've always wanted to know. |
08/10/2009 18:57:37 jim Pittsburgh-Mortons Steakhouse | Mon |||||||||||||||||||
08/09/2009 18:33:18 jim ZMacros | Sun |||||||||||||||||||
?section GO macro == **************************************************************************** == * GO program|macro|routine * == * GO FUP INFO *.* * == *--------------------------------------------------------------------------* == * Runs a program, showing its command line * == **************************************************************************** #output %*% %*% ?section VAR macro == **************************************************************************** == * VAR variable [value] * == * VAR MyVar This is a test * == *--------------------------------------------------------------------------* == * Pushes a variable if it doesn't already exist. * == * If [value] is supplied, set it, otherwise, preserve the old value. * == **************************************************************************** [#if [#variableinfo/existence/ %1%] |else| #push %1%] [#if [#empty %2%] |then| |else| #set %1% %2 to 99%] ?section CompAll macro == **************************************************************************** == * COMPALL [file mask] [;list] [$S] * == *--------------------------------------------------------------------------* == * Gets a list of file names using the file mask * == * Volumes to where the file is * == * Compiles the program based on its contents * == * Volumes back to where you started * == **************************************************************************** var Param1 %1% #push Param2 Param3 var Param2 %2% var Param3 %3% var NoList ;nolist #set NoList var tst_lst #set tst_lst [#case [#chargetv Param1 1 1] |;| #set NoList [Param1] |otherwise|] [#case [#chargetv Param2 1 1] |;| #set NoList [Param2] |otherwise|] [#case [#chargetv Param1 1 1] |$| #set tst_lst [Param1] |otherwise|] [#case [#chargetv Param2 1 1] |$| #set tst_lst [Param2] |otherwise|] #push MyFile FileList fup /outv FileList/info %1% #extractv FileList MyFile #extractv FileList MyFile #extractv FileList MyFile var CompVol [#FILEINFO/VOLUME/x].[#FILEINFO/SUBVOL/x]] [#loop |do| [#case [#chargetv MyFile 1 1] |$| VOLUME [MyFile] |otherwise| #set MyFile [#chargetv MyFile MyFile 1 8] COMPILE [MyFile] ] #extractv FileList MyFile |until| [#emptyv FileList] ] VOLUME [CompVol] #pop MyFile FileList ?section COMP macro var tst_lst #set tst_lst var nolist ;nolist var tst_src %1% [#if [#fileinfo/existence/[tst_src]] |then| COMPILE %*% |else| #output *** ERROR: %1% Does not exists ] ?section COMPF macro var tst_src %1% var tst_lst ,OUT LISTING.[tst_src] var nolist #set nolist ;nolist [#if [#fileinfo/existence/[tst_src]] |then| COMPILE %*% |else| #output *** ERROR: %1% Does not exists ] ?section COMPP macro var tst_src %1% var tst_lst ,OUT $P.#COMP.[tst_src] var nolist #set nolist ;NOLIST [#if [#fileinfo/existence/[tst_src]] |then| COMPILE %*% |else| #output *** ERROR: %1% Does not exists ] ?section COMPILE macro var tst_lst var nolist var #INLINEPREFIX -- var tst_src %1% var Src_Root [#charget tst_src 1 for [#compute [#charcount tst_src] - 1]] var ThisVol [#FILEINFO/VOLUME/[tst_src]].[#FILEINFO/SUBVOL/[tst_src]] var tst_lib $TECH1D.COPYSRC var tst_all [ThisVol].[tst_src] var tst_cat $DEV3.MISCCATL var tst_pobj $DEV2.TURBOBJ.xxx1 [#case [#charget [#shiftstring tst_src] 1 for 3] |EBC| var tst_OBJ $DEV2.TECHOB.[src_root] |EXP| var tst_OBJ $DEV2.EXPOBJ.[src_root]o var tst_pobj $DEV2.EXPOBJ.EXP1 var ComptPobj EXP1 |EMS| var tst_OBJ $DEV2.EMS.[src_root]n |ERR| var tst_OBJ $DEV2.SUBOBJ.[src_root]o |SUB| var tst_OBJ $DEV2.SUBOBJ.[src_root]o |BAT| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |ENF| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |DJL| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |xxx| var tst_OBJ $DEV2.TURBOBJ.[src_root]o var ComptPobj xxx1 |FLX| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |FSR| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |GBP| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |PRG| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |TAL| var tst_OBJ $DEV2.TECHOB.[src_root]o |TMP| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |UTL| var tst_OBJ $DEV2.TURBOBJ.[src_root]o |STR| var tst_OBJ $DEV2.STOREOBJ.[src_root]o |INT| var tst_OBJ $DEV2.WEBOBJ.[src_root]o |REP| var tst_OBJ $DEV2.WEBOBJ.[src_root]o |WEB| var tst_OBJ $DEV2.WEBOBJ.[src_root]o |OTHERWISE| var tst_OBJ $DEV2.xxxROBJ.[src_root]o var ComptPobj xxx1 ] var tmp [tst_src] #push Found srcLanguage #set Found #set srcLanguage [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/ SCREEN / RB/ SECTION/RN/*/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage SCOBOL ] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/ TERMINAL / RB/ CONVERSATIONAL/RN/*/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage SCOBOL ] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/ TERMINAL / RB/ IBM-3270/RN/*/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage SCOBOL ] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/PROCEDURE / RB/DIVISION/RN/*/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage COBOL] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/ $SYSTEM.SYSTEM.EXTDECS/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage Tal] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/#include/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage C] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/?DICTIONARY /;E [#if [#linecount Found] > 2 |then| #set SrcLanguage Enform] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/?DICT /;E [#if [#linecount Found] > 2 |then| #set SrcLanguage DDL] ] [#if [#emptyv SrcLanguage] |then| edit /OUTV Found/[tmp] R;LB/CATALOG / r/=/;E [#if [#linecount Found] > 2 |then| #set SrcLanguage SQL] ] [#if [#emptyv tst_lst] |then| |else| [#if [#fileinfo/volume/[tst_lst]] |then| [#if [#fileinfo/existence/listing.[tst_src]] |then| PURGE listing.[tst_src]] fup CREATE listing.[tst_src], type u, ext(50,50) |else| fup purgedata listing.[tst_src] ] #set tst_lst ,out listing.[tst_src] |else| #set tst_lst ,out [tst_lst].#[SrcLanguage].[tst_src] ] ] comment GO EDIT/INLINE/[tst_all] comment GO -- CBA/$TECH1D.COPYSRC./COPYSRC./A comment GO -- CBA/$TECH1.COPYSRC./COPYSRC./A comment GO -- CBA/$TECH2D.//A comment GO -- CBA/$TECH2.//A comment GO -- CBA/?SOURCE ./?SOURCE /A comment GO -- CBA/ COPYSRC./ / /COPY / comment GO -- CF/*/ /TIMEFILE-MOD-TIME/ RN/*/ comment GO -- CBA/BLKTJRC/BLKTJRN/A comment GO -- CA/search "$tech1D./search "/A comment GO -- EXIT param SYMBOL-BLOCKS 8 VOLUME [tst_lib] [#case [SrcLanguage] |COBOL| GO COBOL85/IN [tst_all][tst_lst]/[tst_obj][nolist],ENV COMMON var ComptNbr 1 |SCOBOL| GO SCOBOLX/IN [tst_all][tst_lst]/[TST_POBJ][nolist] var ComptNbr 2 [ComptPobj] |Enform| GO enform /inline[tst_lst]/ GO -- ?compile [tst_all] TO [tst_obj] GO -- exit; var ComptNbr 3 |TAL| GO TAL /IN [tst_all][tst_lst]/[tst_obj][nolist] var ComptNbr 4 |SQL| GO SQLCI /IN [tst_all][tst_lst]/ |C| GO C /IN [tst_all][tst_lst]/[tst_obj][nolist], & SSV0 "$system.system",SSV1 "$system.ztcpip",SSV2 "$tech1.nos" == SSV3 "$tech1d" var ComptNbr 5 |DDL| GO DDL /IN [tst_all][tst_lst]/ |otherwise| #output Skipping [tst_ALL] var ComptNbr 99 ] volume [ThisVol] [#IF (_COMPLETION:COMPLETIONCODE > 1) |then| #output **** ERROR **** |else| SqlCheck [tst_obj] ] [#if [#fileinfo/existence/[tst_obj]] |then| RUN $DEV2.CUTLAR.ZFUP SECURE [tst_obj],"nnnn" RUN $DEV2.CUTLAR.ZFUP GIVE [tst_obj],SYSTEM.AOES ] #pop Found [#if [#empty %2%] |then| |else| COMPILE %2 TO 99%] ======================== ?section SqlCheck macro ======================== [#if [#fileinfo/existence/%1%] |then| var lstSql #set lstSql SQLCOMP/IN %1%,outv lstSql/CATALOG [tst_cat] [#IF ([#LINEFIND lstSql 1 No SQL source ]>0) |then| #output Sql Compiling is not needed for %1% #set _COMPLETION SaveCompT R [tst_src] [ComptNbr] |else| #push #out #set #out [tst_lst] outvar lstSql #pop #out #set _COMPLETION [#IF (_COMPLETION:COMPLETIONCODE > 1) |then| #output ********** SQL ERROR ********************** |else| [#case [ComptNbr] |1| SaveCompT R [tst_src] 6 |otherwise| SaveCompT R [tst_src] [ComptNbr] ] ] ] |else| SaveCompT R [tst_src] [ComptNbr] ] ?section SaveCompT macro == This is for, in my opinion, a rather interesting compile macro that compiles turnovers. #push #out #set #out zcompfil #output %*% #pop #out COMMENT rename [tst_src],TURNOVER.[tst_src] ?section SetPw macro var Param1 Param2 #set Param1 %1% #set Param2 %2% [#case [#chargetv Param1 1 1] |$| var PcName [Param1] |otherwise| var PcServer [Param2]] [#case [#chargetv Param2 1 1] |$| var PcName [Param2] |otherwise| var PcServer [Param1]] [#if [#emptyv PcName] |then| var PcName [#input Enter the Pathway System: ($MNTF):] ] [#if [#emptyv PcServer] |then| var PcServer [#input Enter the Pathway Server (TESTPOST-SERVER):] ] ?section DebugOn macro == * DebugOn [$PW] [server-name] SetPw %*% freeze [PcName] [PcServer] go pathcom [PcName];alter [PCServer],hometerm [#myterm],debug on thaw [PcName] [PcServer] ?section Freeze macro SetPw %*% go pathcom [PcName];freeze [PCServer] go pathcom [PcName];stop [PCServer], delay 10 secs ?section Thaw macro SetPw %*% go pathcom [PcName];thaw [PCServer] ?section DebugOff macro == * DebugOff [$PW] [server-name] SetPw %*% freeze [PcName] [PcServer] go pathcom [PcName];alter [PCServer],hometerm $VHS, debug off thaw [PcName] [PcServer] ?section set_SysIni macro var CdVol $DEV2.TEST var LstVol $DEV2.TESTLST var SrcVol $DEV2.TESTSRC var TST_EXE $DEV2.TESTOBJ.[SrcFile]O var ObjVol $DEV2.TESTOBJ var TST_REN $DEV2.TESTOBJ.[SrcFile]X var TST_OBJ $DEV2.TESTOBJ var TST_POBJ $DEV2.TESTOBJ.xxx1 var ObeyFile_VOL $DEV2.TESTOBEY ?section LIB macro GO VOLUME [TST_LIB] ?section LST macro GO volume $DEV2.LISTING ?section SRC macro [#if [#empty %1%] |then| GO volume $DEV2.SOURCE |else| var SrcFile %1% ] ?section OK macro [#case [#input RUN %*% (y)?] |y Y| GO %*% |otherwise|] #output --------------------------------------------- ?section PCLS macro SPOOLCOM $SPLS;JOB (OWNER),DELETE ! SPOOLCOM $PPLS;JOB (OWNER),DELETE ! ?section SV macro FUP SUBVOLS %*% ?section Type macro fup copy %1% ?section p macro [#if [#empty %1%] |then| peruse $PPLS |else| peruse $SPLS] ?section InfoDefine macro #frame #push X1 X2 X3 X4 #setMANY X1 X2 X3 X4,[#defineinfo %1%] #output/HOLD/ADD DEFINE %1% #output/HOLD,COLUMN 25/,CLASS [X2] #output/COLUMN 40/,[X3] [X4] #unframe [#if [#empty %2%] |then| |else| INFODEFINE %2 to 99%] ?section CreateDefines macro PURGE XD INFO/OUT XD/DEFINE =* EDIT XD;DQN/=/;CQ/ Define Name / INFODEFINE /A;E PURGE DEFINES #push #OUT #set #OUT DEFINES O XD #pop #OUT EDIT DEFINES;DQ/INFODEFINE/;E EDIT DEFINES [#if [#empty %2%] |then| |else| INFODEFINE %2 to 99%] ?section ST macro [#IF [#EMPTY %1%] |then| STATUS *,TERM |else| STATUS %*% ] ?section DelY macro [#IF [#FILEINFO/EXISTENCE/%1%] |then| FILEINFO %1% [#CASE [#INPUT Do you wish to delete this (y)?] |y Y| purge %1% |otherwise| ] ] ?section COMPARE macro $DEV2.testobj.COMPARE %*% ?section PC macro [#if [#empty %1%] |then| GO pathcom [PcName] |else| #set PcName %*% GO pathcom %*%] ?section OBJ macro Go VOLUME $DEV2.TESTOBJ ?section TL macro Go LOAD/KEEP 1/$DEV2.COMPILES.ZMACROS ?section GT macro edit $DEV2.COMPILES.ZMACROS;set tabs 10 20 30 40 50 60 70;%1 TO 9% ?section CD macro var CdVol %1% volume [CdVol] ?section G macro var GSrc %*% EDIT;SET TABS 10 20 30 40 50 60 70;SET JOIN 80;G [GSrc] ?section O macro var ObeyFile %1% [#if [#emptyv ObeyFile] |then| #output ([ObeyFile]) doesn't exist. |else| [#if [#fileinfo/existence/[ObeyFile]] |then| #push Found edit /OUTV Found/[ObeyFile] R;LB/?section/RB/ ROUTINE/;E [#if [#linecount Found] > 2 |then| GO T [ObeyFile] |else| GO OBEY [ObeyFile] ] #pop Found |else| #output The default Obey File hasn't been set yet. Try: O obeyfile ] ] [#if [#empty %2%] |then| |else| O %2 to 99%] ?section BYE macro CSAVE LOGOFF ?section CLOAD macro #push MyVol #set MyVol [#DEFAULTS] VOLUME OBEY DEFAULTS VOLUME [MyVol] #pop MyVol ?section CSAVE macro #push WS_VOLUME #set WS_VOLUME [#DEFAULTS] VOLUME #frame #push #INLINEPREFIX #set #INLINEPREFIX -- edit/INLINE/DEFAULTS ! -- DQ ! F/L -- 101 /#set PCName [PCName]/ -- 102 /#set PCServer [PCServer]/ -- 103 /#set SrcFile [SrcFile]/ -- 104 /#set ObeyFile [ObeyFile]/ -- 105 /#set CdVol [CdVol]/ -- 106 /#set SrcFile [SrcFile]/ -- 107 /#set COut [COut]/ -- 108 /#set GSrc [GSrc]/ -- 109 /#set CdVol [CdVol]/ -- E VOLUME [WS_VOLUME] #unframe ?section FILESPEC macro [#if [#fileinfo /existence/ %1%] |then| #output /hold/ [#fileinfo/fullname/ %1%] #output /column 35,hold/ [#case [#fileinfo /filestructure/ %1%] |0| #output /hold/ U: |1| #output /hold/ R: |2| #output /hold/ E: |3| #output /hold/ K: |otherwise| ] #output /column 37,hold/ [#fileinfo/eof/ %1%] #output /column 44,hold/& [_CONTIME_TO_TEXT [#CONTIME [#fileinfo/modification/%1%]]] #output /column 72,hold/ [#fileinfo/owner/ %1%] |else| #output /hold/ File %1% does not exist ] #output ?section SCUPINFO macro #frame #push OUTLIST SCUP /OUTV OUTLIST/INFO %*% #output [#LINEGET OUTLIST 1 FOR 1] #output [#LINEGET OUTLIST 5 FOR 1] #unframe ?section PRINT macro FUP COPY %1%,$P [#if [#empty %2%] |then| |else| PRINT %2 to 99%] ?section SQCOST macro SQLCOMP/IN $DEV2.TESTOBJ.%1%,OUT $P.#SQCOST/ & STOREDDEFINES EXPLAIN PLAN NORECOMPILE ?section LOG macro [#if [#empty %1%] |then| EDIT $DEV2.TEST.LOG2009;XVS L-20;E |else| #frame #push #out #set #width 230 #push wYY wMM wDD wHH wMI #setmany wYY wMM wDD wHH wMI, [#contime [#timestamp]] [#IF [wYY]< 10 |then| #set wYY 0[wYY]] [#IF [wMM]< 10 |then| #set wMM 0[wMM]] [#IF [wDD]< 10 |then| #set wDD 0[wDD]] [#IF [wHH]< 10 |then| #set wHH 0[wHH]] [#IF [wMI]< 10 |then| #set wMI 0[wMI]] #set #out $DEV2.TEST.LOG[wYY] #output [wMM]/[wDD]/[wYY] [wHH]:[wMI]-> %*% #set #width 80 #pop #out #unframe ] ?section sv macro fup subvols %1% ?section CLS macro #frame [#DEF ascii STRUCT BEGIN BYTE byt5(0:1) value 27 73; CHAR clr(0:1) redefines byt5; END; ] #output [ascii:clr(0:1)] #unframe ?section IMP macro var tst_src %1% [#if [#fileinfo/existence/[tst_src]] |then| GO fup dup [tst_src], $tech1d.turnover.[tst_src],purge ] [#if [#empty %2%] |then| |else| IMP %2 TO 99%] ?section GL macro var tst_src %1% purge x edit listing.[tst_src] p x ?section GS macro var tst_src %1% EDIT;SET TABS 10 20 30 40 50 60 70;SET JOIN 80;G [tst_src] ?section FS ALIAS FINDDATA ?section CALC ALIAS COMPUTE ?section dir ALIAS fileinfo ?section fs alias finddata ?section grep alias finddata |
08/08/2009 19:09:06 jim Wexford Apt Neighbors | Sat |||||||||||||||||||
08/07/2009 18:38:22 jim Soergel Orchard | Fri |||||||||||||||||||
08/07/2009 17:55:44 jim Mobile BBQ Stand | Fri |||||||||||||||||||
08/07/2009 17:31:26 jim LakeMoraine,PA-Rennaisance | Fri |||||||||||||||||||
08/07/2009 17:30:36 jim Rennaisance Fair - 11,000 People | Fri |||||||||||||||||||
08/07/2009 17:24:36 jim Lake Moraine - Mt Union | Fri |||||||||||||||||||
08/07/2009 17:00:18 jim Lake Moraine Marina | Fri |||||||||||||||||||
08/07/2009 16:54:40 jim Lake Moraine Forest | Fri |||||||||||||||||||
08/07/2009 16:38:42 jim Lake Moraine Cabin | Fri |||||||||||||||||||
08/07/2009 15:48:40 jim 1994 30 ft TravelTrailer $6k | Fri |||||||||||||||||||
08/07/2009 15:36:40 jim 1992 25 ft TravelTrailer 7.5k | Fri |||||||||||||||||||
08/07/2009 15:34:44 jim 2003 17 ft TravelTrailer 8k | Fri |||||||||||||||||||
08/07/2009 15:17:52 jim Butler, Pa | Fri |||||||||||||||||||
08/05/2009 21:08:40 jim Mt Washington View | Wed |||||||||||||||||||
08/05/2009 19:47:30 jim Station Square Fountain | Wed |||||||||||||||||||
08/05/2009 19:13:04 jim Station Square | Wed |||||||||||||||||||
08/04/2009 20:08:38 jim Sewickley, Pa - Deer | Tue |||||||||||||||||||
08/04/2009 20:06:08 jim Sewickley, Pa | Tue |||||||||||||||||||
08/04/2009 19:14:32 jim Sewickley, Pa - Carmadys | Tue |||||||||||||||||||
08/04/2009 16:28:03 jim Cranberry, Pa and Abouts | Tue |||||||||||||||||||
08/02/2009 09:34:03 jim Macro to save a file on change | Sun |||||||||||||||||||
?tacl macro == **************************************************************************** == * Macro : ZCOLLECT * == * Purpose: To save a file each time its modification date changes * == * Syntax : RUN ZCOLLECT SourceFile SaveFile Beg End * == * Example: run zcollect $DATA.LOGFILE.LOG $DATA.SAVEFILE.LOG 20 25 * == * ------------------------------------------------------- * == * Narrative: * == * Check $DATA.LOGFILE.LOG's timestamp against $DATA.SAVEFILE.LOG20 * == * If its different, it will * == * fup dup $DATA.LOGFILE.LOG, $DATA2.SAVEFILE.LOG20,sourcedate * == * It will then set up for -> $DATA.SAVEFILE.LOG21 * == **************************************************************************** #push SourceFile SaveFile BegAt EndAt #set SourceFile %1% #set SaveFile %2% #set BegAt %3% #set EndAt %4% [#if ([#fileinfo/existence/[SaveFile][BegAt]]) |then| == The first file already exists. Do nothing. |else| == Grab the first file fup dup [SourceFile],[SaveFile][BegAt],sourcedate ] [#loop |do| [#if ( [#fileinfo/modification/[SourceFile]] = [#fileinfo/modification/[SaveFile][BegAt]] ) |then| delay 5 mins == This pause can be mins, hours or secs |else| #set BegAt [#compute [BegAt] + 1] #output fup dup [SourceFile],[SaveFile][BegAt],sourcedate fup dup [SourceFile],[SaveFile][BegAt],sourcedate ] |until| (BegAt = EndAt) ] |
08/01/2009 22:36:04 jim Watch this video! | Sat |||||||||||||||||||
Sony played this mind-blowing video at their executive conference. Be prepared to be startled by facts. http://www.youtube.com/watch?v=cL9Wu2kWwSY In the next decade, computers will become more intelligent than we are. The questions that rise are: - What kind of child are we giving birth too? When they pass us in intelligence? Will they continue to be our tool? - As the world of information continues to unfold, what will we learn about ourselves and this life? - Where are we going as a species? Will silicon life out live carbon life? - Who will be controlling our direction, or will it all be just a series of actions with no direction at all? - Finally, after we learn how to conquer death (and we will), what will our new fears become? These, and more questions will be answered...in the future. |
08/01/2009 20:02:05 jim Cranberry, Pa - Red Robin | Sat |||||||||||||||||||
08/01/2009 07:08:47 jim Wexford - Fog and Turkeys | Sat |||||||||||||||||||
07/30/2009 18:28:36 jim Moon, Pa - Jimmys Restaurant | Thu |||||||||||||||||||
07/26/2009 14:49:15 jim Ross, Pa - Mad Mex | Sun |||||||||||||||||||
07/26/2009 10:02:16 jim Work Places | Sun |||||||||||||||||||
07/25/2009 16:59:56 jim Washington, Pa | Sat |||||||||||||||||||
07/25/2009 16:07:24 jim Eighty Four, Pa | Sat |||||||||||||||||||
07/25/2009 10:50:44 jim Out and About | Sat |||||||||||||||||||
07/24/2009 17:48:21 jim More about C Data types | Fri ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#pragma EXTENSIONS #include Best practices. Don't use int. use long or short instead. Put environment specific functions in an #include Avoid HP specific, and C extensions to data types if possible. Use unsigned only for short and long.
|
07/24/2009 17:48:20 jim ..AWAITIOX - C Example | Fri |||||||||||||||||||
Hahaha...there probably are...none of which were caught by the compiler. I'm having to get familiar with C and Tal, since they are usually bound into Cobol programs. I'm just glad I don't have to review the MUMPS language! I'm supposed to be overseeing a full system recompile and its never been done. After compiling what seems like a million programs, I'm seeing warnings all over the place, with no idea what is normal. I'm both the new guy on the block, and I'm a short timer. This has been keeping me up at nights. This is going to be a killer month for me. 4 weeks and 2 days, and it'll be time for another 8 week vacation...yeah!!! |
07/24/2009 17:48:20 jim (Reply)AWAITIOX - C Example | Fri |||||||||||||||||||
!From http://docs.hp.com/en/524521-012/524521-012.pdf, Page 157 #include <in.h> C / TAL Comparisons (Using SEND_NW as an example): C Synopsis, used for data type comparisons #include <....lost in html conversion> #include <...lost in html conversion> error = send_nw (socket, nbuffer_ptr, nbuffer_length, flags,tag); int error, socket; char *nbuffer_ptr; int nbuffer_length, flags; long tag; Tal Synopsis, used for data type comparisons ?NOLIST, SOURCE SOCKDEFT ?NOLIST, SOURCE SOCKPROC error := send_nw (socket, nbuffer_ptr, nbuffer_length, flags, tag); INT(32) error, socket; STRING .EXT nbuffer_ptr; INT(32) nbuffer_length, flags; INT(32) tag; |
07/24/2009 08:36:18 jim Tal | Fri |||||||||||||||||||
-- This is a comment ! This is a comment ! This is a bracketted comment ! STRING - 1 bytes integer 0 to 255, EG STRING(2) x; is a 2 byte ascii string INT - 2 bytes, 0 to 65,535 or -32,768 to + 32,767. This can also be a string EG: INT twochars := "CH"; INT(32) - 4 bytes UNSIGNED(1~15) - n bits, 0 thru (2**n - 1) UNSIGNED(16) - 0 to 65,535, or -32,768 to +32,767. This is your standard address FIXED - 8 bytes, for FIXED(0) or FIXED(*) the range is -9 kazillion to +9 kazillion REAL - 4 bytes, precise to 9 digits REAL(64) - 8 bytes, precise to 17 digits INT(16) is the same as INT INT(64) is the same as FIXED(0) REAL(32) is the same as REAL Examples: LITERAL double_word = (4 * 8); INT (double_word) num; ! num is a INT(32) INT x := 4 ! x is decimal 4 INT x := %177 ! x is Octal 177 INT x := %B01010 ! x is Binary 01010 INT x := %B0000000000000010 ! x is 2; INT x := %B1111111111111110 ! x is -2 (using twos compliment); INT x := %H1A ! x is Hex 1A FIXED(3) x := 0.642F; ! x is 642000, the 3 shifts the decimal right FIXED(-3) x := 642945F; ! x is 642000, the -3 shifts the decimal left FIXED(*) x := 123 ! x is stored, not scaled BLOCK x ; ! Declare Global Variables INT flag := TRUE; INT(32) index := 22 ; END BLOCK ; BLOCK PRIVATE ; ! Declare Local Variables INT myflag := TRUE; INT(32) myindex := 22 ; END BLOCK ; PROC paragraph_x ; FORWARD ; ! Declares that paragraph_x will be out of compile sequence PROC called_program; EXTERNAL ; ! Declares that a paragraph can be found in a called program PROC paragraph_x (param) ; BEGIN INT param; END; PROC paragraphs_nested (param) ; BEGIN ENTRY entry_point ; ! Declares a programs entry point some code SUBPROC entry_subroutine(x) ; ! Declares a subroutine with a PROC BEGIN some code END; entry_point: some more code END; PROC myproc; BEGIN !Local data declarations SUBPROC some_sub (param); !Declare subprocedure INT param; ENTRY sub_entry; ! Declare entry-point identifier INT var; ! Some code here sub_entry: ! Apply entry-point var := var - param; ! identifier to statement some code ; ! Tal can get ugly very quickly END; ! End subprocedure some code !Local statements CALL sub_entry (1); !Call entry-point SUB_ENTRY END; PROC xx(v1,v2,v3); BEGIN...END; ...CALL xx(v1, !nothing!, v3) ! Comments help document ommited variables DEFINETOG omit ! some code ?IF omit some code ?ENDIF omit Sample compile statement: suppress octal code after each line, suppress all but header information, compile for syntax only and puts the errors in a file called xxx, and sets the omit toggle on TAL/in myprogram/;nocode, suppress, syntax, errorfile xxx,settog omit, Operators: x := 2 ! move 2 to a number x ':=' 'AB' ! move characters to a string x := @var ! x is the address of var .x ! convert x from a INT to the word address of another variable << ! Signed Left shift '<<' ! Unsigned Left shift + - * ! Signed operators for add, subtract and multiply '+' '-' '*' ! Unsigned operators for add, subtract and multiply = <= >= ! comparisons '=' '<=' ! comparisons (unsigned) <> ! Not equal According to the manual, you can do math on a string variable. EG: STRING x; x ':=' 'A"; x := x * 2; Go figure? |
07/21/2009 20:11:06 jim WestView, Pa - DPietros | Tue |||||||||||||||||||
07/20/2009 18:08:29 jim The Flame BBQ | Mon |||||||||||||||||||
07/20/2009 07:17:22 jim A week of Goodbyes | Mon |||||||||||||||||||
It was nice hanging with you guys. Goodbye for now: Jeff, Jennifer and Glen. We took Jennifer to the airport. She went to Vegas and we went to the Moon Township. We never got a good chance to take her to Mars. (I'm serious) While at the airport, Jen got into a little bit of trouble. It was her first time flying alone. She misplaced her ticket and her birth certificate down some place. A nice couple saw that she was in trouble and offered their help. In the end, the security office had her documents, and Jennifer and the couple flew off too Vegas. The couple was from...you guessed it, Pittsburgh. Pittsburgh people are the best! |
07/20/2009 07:09:09 jim Farm Jokes | Mon |||||||||||||||||||
07/18/2009 16:14:15 jim Coraopolis, Pa | Sat |||||||||||||||||||
07/18/2009 10:45:24 jim During Jens Last Day | Sat |||||||||||||||||||
07/17/2009 20:34:21 jim Homestead Square at Night | Fri |||||||||||||||||||
07/17/2009 20:33:31 jim Homestead - Jen, Becky | Fri |||||||||||||||||||
07/17/2009 16:35:51 jim A Cool Goodbye | Fri |||||||||||||||||||
I was standing outside, talking to my buddy as he loaded up his car with the last of his belongings from his cubical. We shared a smoke, and I watched him drive off for the last time. Standing alone, I felt a cold breeze at my back. In less than five minutes, the sky turned into an orchestra of thunder and lightening. The streets flowed with mud. When I left work soon afterwards, it was still pouring outside. I looked at the parking lot and I realized that out of the hundreds of people I work with, I was the last person to leave. I have five weeks and three days left on my contract. This past year has been full of magic. |
07/16/2009 18:16:39 jim Cabana Bar - Jeffs Going Away Party | Thu |||||||||||||||||||
Bon Voyage, Jeffrey We celebrated Jeff's goodbye party at the Cabana Bar (lots of fun). The Cabana Club has a thatch covered bar in an outdoors setting with sand, lots of tables, fire pits, and a water fall. After two drinks, we wanted something to eat. If you want food at the Cabana Bar, you have to order take out from the restaurant, and bring it down. That seems odd, since it is right next to the restaurant. County codes make businesses do some very odd things. So our next stop was Walnut Grove. The party broke up probably around 7 pm. It sure is nice having friends. It's been a fun year with you buddy! We celebrated at the Cabana Bar then went to Walnut Grove. These guys are the greatest! |
07/14/2009 21:49:45 jim Robinson Cracker Barrel - Becky, Jen | Tue |||||||||||||||||||
<< 08/2008 < 07/2009 Calendar 09/2009 > 08/2010 >> | Sign InView Other Logs |