Re: [U2] FW: Valid Backup on Windows Universe
In message 4a4122b1@gmail.com, Steve Romanow slestak...@gmail.com writes Kevin Gusler wrote: Steve - Why do you think this? The failure I see of this system is that even though the db is paused, it is not in a safe state for backup. Once you broke the mirror would it not be safe to backup that array?? Kevin Gusler Applications Developer Mortgage Builder Software, Inc. Main:800.850.8060 ext. 106 Fax: 248.304.0601 www.mortgagebuilder.com The db is basically in mid sentence. The commits are not atomic. If you restore to the tape, you may in my case have half an order or an invoice half processed. the unidata dbpause does not make people get out of maitnenance screens or release locks, so records can be in an uncommitted state. Risk is small, but it is present. ___ But that's a programming issue. It's easy to do exactly the thing with a SQL database. It's just that because pretty much EVERY write to a SQL database will corrupt integrity until the transaction is complete, SQL programmers use transactions as a matter of necessity. Because in MV database writes have traditionally often been complete transactions, we don't have the same mindset. Cheers, Wol -- Anthony W. Youngman pi...@thewolery.demon.co.uk 'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998 Visit the MaVerick web-site - http://www.maverick-dbms.org Open Source Pick ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
With other words nothing I really need like manipulating a U2 database. Does it make cups of tea too? Well, I don't like cups of tea, so why should I change? Steve Romanow wrote: Mecki Foerthmann wrote: It really boils down to this. What can you do with Python in a U2 database that I can't do with Pick Basic? Umm, real unit testing ala nosetest real exception handling, umm, real inline documentation (the topic of this thread) Umm, access to thousands of trained developers all over the world. lets see, point 5, joining this decade with a modern toolkit. cross platform capability built in (python runs everywhere, everywhere I care about at least.) Great UI toolkits gtk, Qt, Tcl, (for free) integration with everything under the sun (except U2) jython, ipython, .NET, Anyone think of anything else? And do I really need to be able to do that to do my job improving and maintaining commercial software in an SB+ Unidata environment any better? If you limit youself to what SB+ can do, wow. I am coding around SB+ as much as possible. Do I get paid more if I write code in Python instead of Basic? Doesnt matter. You will have a better chance of being employable with your next job by learning python (or anything else). I doubt it. The hardest bit is not the coding but figuring out the business logic, and no language nor fancy tool can do that for you. It is also hard to graft policies and processes onto a toolkit that was never made for it. SB+ and Unibasic are very dated and are showing there age more and more every year. I bet there are a lot of things I can do with Pick Basic and multi-value that you can't (or at least not as easily) do with Python. Please name some. I would really like to know. Basic has nothing to do with MV, nor does python. Unibasic is merely the language chosen to manipulate data objects. What I propose is no different that what Tony G does with .NET, or what the java bindings for mv are. For a db to remain relevant, it needs hooks and GOOD, FREE bindings to as many technologies as possible. If IBM wants a license for every single thing related to U2, its growth and uptake will remain stunted. Things could be a lot different in our marketplace. We should charge for services, not connections. If you give away the connections, we have larger installs, which give more opportunity for consulting and getting money into peoples pockets. So in the end would it really benefit me in what I am doing for a living every day if I would learn yet another new language? I am going to be learning a new language every day that I continue to work. I am not going to hang my whole career on Unibasic. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
All, Please keep it polite. This is a civilized list. - Charles Barouch resu...@keyally.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Mecki, My apologies for being confrontational. This is a subject I care deeply about. I have worked in mv shops exclusively since 1994 (not bragging) and my point was primarily that the IT world has surpassed our tools by a large margin. I have written my last complicated F-correlative and also my last prestore in ED. I don't save the brain cycles to remember their syntax. I am also tired of apologizing to programmers who come to my company for how archaic U2 FEELS. I know how nice Unidata is, but I feel like the country cousin come to town, marveling at the tools available to my team mates working next to me with other db's. No I don't want to join them in MSSQL. Further from the truth. I really want to see a mv db that I does what I want. If I say I one more time, I'm going to be sick. :) Regards, Steve ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Hi I thought about adding code folding to mvDeveloper, but with Pick/Basic it doesn't really work in the same way. If you have a language that is function or member based, there is a very clear boundary for each function, e.g. private void doSomething{ code in here } which makes it easy to collapse. The problem with Pick/Basic is that there isn't always a clear boundary. If your subroutines are all like this, it will work: GoSub MySubroutine MySubroutine: code here Return But an IDE or editor has to be able to cope with bad style/design as well as good, so you may have the following: If SomeTest Then GoSub MySubroutine End Else GoSub JumpIntoTheMiddle End MySubroutine: If SomeTest Then Return End (code) (falls down into...) JumpIntoTheMiddle: (some more code) Return Here you have overlapping labels, and more than one return. Which means that the boundary isn't clear. It can be done, but it makes it more complicated. Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Brian Leach wrote: Hi I thought about adding code folding to mvDeveloper, but with Pick/Basic it doesn't really work in the same way. If you have a language that is function or member based, there is a very clear boundary for each function, e.g. Could a mild folding (fold the ones there is no dispute about) work? If it worked 90% of the time (but 100% correct) I would use it. Just leave the indeterminate ones un-folded. I have tinkered some with folding in vim with U2, but I have not worked it into my workflow yet. Good examples Brian. private void doSomething{ code in here } which makes it easy to collapse. The problem with Pick/Basic is that there isn't always a clear boundary. If your subroutines are all like this, it will work: GoSub MySubroutine MySubroutine: code here Return But an IDE or editor has to be able to cope with bad style/design as well as good, so you may have the following: If SomeTest Then GoSub MySubroutine End Else GoSub JumpIntoTheMiddle End MySubroutine: If SomeTest Then Return End (code) (falls down into...) JumpIntoTheMiddle: (some more code) Return Here you have overlapping labels, and more than one return. Which means that the boundary isn't clear. It can be done, but it makes it more complicated. Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mixed Case UV Basic Programming Standards.
In message 6806801183013245804b6a7c6b34750715a...@hera.gnosys.local, phil walker p...@gnosys.co.nz writes As anyone written or thought about writing a code refactorer for U2-BASIC, this would/could/should standardize code semantics and also appearance? If this could be made configurable to the style you want to use then that would be good...and any program with a GOTO in would be deleted...without warning ;-). So any proper well-written program would get deleted without warning? :-) About the ONLY place where GOTO really is the best way of handling things is dealing with error conditions - and this is the code most programs (not only in MV) lack. Most well-written programs will contain GOTOs, to clean up the mess caused when the program trips over something the computer or user should have done and hasn't (and it's not always the programmer's fault - it could well be hardware failure, network dropped, or something stupid like that). Cheers, Wol -- Anthony W. Youngman pi...@thewolery.demon.co.uk 'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998 Visit the MaVerick web-site - http://www.maverick-dbms.org Open Source Pick ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Steve I think you're possibly out of date in your view of the database - again, not wanting to be confrontational but this is an important point that you raise. I've also used MV for many years, but for the vast majority of that it has been as part of a client/server or similar platform. If you're using MSSQL, you still end up coding stored procedures in TSQL - which is truly archaic. The only difference is that you *have* to use other languages on the client side to make up for the lack of inherent functionality. Over the years I've used UniVerse with VB, ASP, Java, Delphi, PHP, VB.net, C#, ASP.Net and I'm now journeying into Silverlight. There is, and for the last 20 years has been, no good reason to limit the database by your choice of language. With the APIs available, you can code in whatever you like. BTW I gave up F correlatives as soon as I moved to UniVerse - that's what I descriptors are for .. and I haven't used ED for serious development for almost 20 years. I use my own autodoc style, and have a parser that uses that to assemble documentation. These things are not platform limitations. On another specific point, I actually prefer the fact that Universe and UniData statements support Else and On Error as opposed to exception handling. I've seen too many C# projects where exception handling was - pardon the pun - very badly handled, bubbling exceptions up but not finally treating them correctly. java may be retentive in the extreme, but at least it forces you to handle exceptions - just about the only thing in that language I wish would be added to C# (even as an option). The language syntax hasn't evolved on the U2 platforms, but the functionality avilable has, which is the important thing. There are other interesting moves with Pick/Basic outside the U2 space - take a look at what is happening with QM, for example. They have added some OO features to the language that seem genuinely useful. Perhaps we should petition IBM to add something similar, but I don't think a rewrite of the language is necessary so long as the hooks are in place to call into UniVerse or UniData from the outside world. No, the reason why so many UniVerse and UniData sites look and feel archaic is because they are. People simply haven't taken full advantage of the features, and developers keep within their comfort zone. And management sees a working system and rarely spends the money. It's not the database that is limited, it's the imagination of those who pay for it. Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Archaic?
Brian Leach wrote: Steve I think you're possibly out of date in your view of the database - again, not wanting to be confrontational but this is an important point that you raise. You are correct. The inroads IBM has made by offerring XML-DOM, SOAP, etc show they do have a plan and a clue. I've also used MV for many years, but for the vast majority of that it has been as part of a client/server or similar platform. Unfortunately, my only experience with a graphical toolkit is my most recent position. All of my previous shops have been pure U2 (or D3, or Adds Mentor) with character based UI. My company is using SB+ almost exclusively in a terminal. We ssh to our erp system a lot, and the console works fine for us. If you're using MSSQL, you still end up coding stored procedures in TSQL - which is truly archaic. The only difference is that you *have* to use other languages on the client side to make up for the lack of inherent functionality. We have MSSQL in house, but I do not use it. I am happy with my unix based db. We did just commission an outside developer to rewrite our offline ordering system. I was not too involved in the whole project. I do remember being supremely embarrassed by the VSG and the bolt on appearance and age of the tools we have available. I defend U2 against ppl all the time, but some of the criticism is warranted. Over the years I've used UniVerse with VB, ASP, Java, Delphi, PHP, VB.net, C#, ASP.Net and I'm now journeying into Silverlight. There is, and for the last 20 years has been, no good reason to limit the database by your choice of language. With the APIs available, you can code in whatever you like. You are 100% correct. Did you notice sth common about your whole list? With the exceptopn of php and java, they are all win32 technologies. I know there is mono for C#, but I am still holding out for a poweful server-sode, as well as client side solution for mv. BTW I gave up F correlatives as soon as I moved to UniVerse - that's what I descriptors are for .. and I haven't used ED for serious development for almost 20 years. I use my own autodoc style, and have a parser that uses that to assemble documentation. These things are not platform limitations. :) I had a regression recently back into old-D3, after several years in Unidata. I almost died. I am so glad to be back. On another specific point, I actually prefer the fact that Universe and UniData statements support Else and On Error as opposed to exception handling. I've seen too many C# projects where exception handling was - pardon the pun - very badly handled, bubbling exceptions up but not finally treating them correctly. java may be retentive in the extreme, but at least it forces you to handle exceptions - just about the only thing in that language I wish would be added to C# (even as an option). I was a little extreme ealrier this evening. This is sth I am passionate about. I think I want to amend my stance andsay I dont think I would replace unibasic with python. What I would _love_ to see is it along side of Unibasic. Fully functional and integrated, but a companion, not a replacement. There is no technical reason we have to have to have one DML. All the existing bindings are for client side integration. Python integration, well done, will provide true cross platform solution. Want to use your mv db with twisted? zope? report to a zenoss install? apache cgi? iis? doesnt matter, it will all work. The language syntax hasn't evolved on the U2 platforms, but the functionality avilable has, which is the important thing. There are other interesting moves with Pick/Basic outside the U2 space - take a look at what is happening with QM, for example. They have added some OO features to the language that seem genuinely useful. Perhaps we should petition IBM to add something similar, but I don't think a rewrite of the language is necessary so long as the hooks are in place to call into UniVerse or UniData from the outside world. I just want to rip the bandaid off quickly. Why make the revolution take 20 years. I only have about that long left to work. I want to see it in my lifetime. :) No, the reason why so many UniVerse and UniData sites look and feel archaic is because they are. People simply haven't taken full advantage of the features, and developers keep within their comfort zone. And management sees a working system and rarely spends the money. It's not the database that is limited, it's the imagination of those who pay for it. Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users I really like your solutions and your work. I think I may be on the same track, but 10 years behind you. I do not use windows (personally) so a lot of yours and Tony G's work is not quite what I need. Steve
Re: [U2] Program Comments/Documentation/Notes/Revision History
Here Here Brian - I was about to say something on the same lines... -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: 29 June 2009 10:12 To: u2-users@listserver.u2ug.org Subject: Re: [U2] Program Comments/Documentation/Notes/Revision History Steve I think you're possibly out of date in your view of the database - again, not wanting to be confrontational but this is an important point that you raise. I've also used MV for many years, but for the vast majority of that it has been as part of a client/server or similar platform. If you're using MSSQL, you still end up coding stored procedures in TSQL - which is truly archaic. The only difference is that you *have* to use other languages on the client side to make up for the lack of inherent functionality. Over the years I've used UniVerse with VB, ASP, Java, Delphi, PHP, VB.net, C#, ASP.Net and I'm now journeying into Silverlight. There is, and for the last 20 years has been, no good reason to limit the database by your choice of language. With the APIs available, you can code in whatever you like. BTW I gave up F correlatives as soon as I moved to UniVerse - that's what I descriptors are for .. and I haven't used ED for serious development for almost 20 years. I use my own autodoc style, and have a parser that uses that to assemble documentation. These things are not platform limitations. On another specific point, I actually prefer the fact that Universe and UniData statements support Else and On Error as opposed to exception handling. I've seen too many C# projects where exception handling was - pardon the pun - very badly handled, bubbling exceptions up but not finally treating them correctly. java may be retentive in the extreme, but at least it forces you to handle exceptions - just about the only thing in that language I wish would be added to C# (even as an option). The language syntax hasn't evolved on the U2 platforms, but the functionality avilable has, which is the important thing. There are other interesting moves with Pick/Basic outside the U2 space - take a look at what is happening with QM, for example. They have added some OO features to the language that seem genuinely useful. Perhaps we should petition IBM to add something similar, but I don't think a rewrite of the language is necessary so long as the hooks are in place to call into UniVerse or UniData from the outside world. No, the reason why so many UniVerse and UniData sites look and feel archaic is because they are. People simply haven't taken full advantage of the features, and developers keep within their comfort zone. And management sees a working system and rarely spends the money. It's not the database that is limited, it's the imagination of those who pay for it. Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Hi Brian, How about adding a folding option that you can manually set the start and end points and add your comments for the fold? I use mvDeveloper for U2 development and textpad for other MV databases. Kishor Quoting Brian Leach br...@brianleach.co.uk: Hi I thought about adding code folding to mvDeveloper, but with Pick/Basic it doesn't really work in the same way. If you have a language that is function or member based, there is a very clear boundary for each function, e.g. private void doSomething{ code in here } which makes it easy to collapse. The problem with Pick/Basic is that there isn't always a clear boundary. If your subroutines are all like this, it will work: GoSub MySubroutine MySubroutine: code here Return But an IDE or editor has to be able to cope with bad style/design as well as good, so you may have the following: If SomeTest Then GoSub MySubroutine End Else GoSub JumpIntoTheMiddle End MySubroutine: If SomeTest Then Return End (code) (falls down into...) JumpIntoTheMiddle: (some more code) Return Here you have overlapping labels, and more than one return. Which means that the boundary isn't clear. It can be done, but it makes it more complicated. Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
On Sun, Jun 28, 2009 at 4:32 PM, Steve Romanowslestak...@gmail.com wrote: Mecki Foerthmann wrote: It really boils down to this. What can you do with Python in a U2 database that I can't do with Pick Basic? Umm, real unit testing ala nosetest I realize this is the U2 list, but I thought I would note that at least one implementation of mvbasic is enhanced for OO and does have a unit test framework (like junit). I will state up front that I'm using Cache' then just refer to it with other terms such as our MV toolset as this is not intended to be a sales pitch. real exception handling, it has this too umm, real inline documentation (the topic of this thread) Available in the OO classes, so you can put a /// comment, for example, in front of any mvbasic method and these work with html, this is not available within mvbasic code itself, however Umm, access to thousands of trained developers all over the world. To a great extent, you have to train those who work on any project in the specifics of whatever platform you are using anyway. BASIC is one of the easiest languages to learn, so I'll agree this is an advantage, but not as big as one might think. lets see, point 5, joining this decade with a modern toolkit. On the flip side of this one, you get developers who do not feel a need to chase every shiny object (so to speak) that comes along if they are writing mvbasic. Coding with today's most current tools pretty much implies you will be behind on some front next year, at which point you will either stop and revise your code for the new stuff or lose your most work with shiny objects developers. cross platform capability built in (python runs everywhere, everywhere I care about at least.) I have only read a few pieces of python and was not overly impressed with the whole white space approach, for example, but there are many who love it, so I'll assume it is a nice language. It is just a language, however, and I already have plenty of those, with javascript and mvbasic along with markup like html, xml, css. I can see no good reason to swap out any of those for python. Great UI toolkits gtk, Qt, Tcl, (for free) We are using an AJAX framework for mvbasic and it works well (although I'm a bit slow to catch on at times). There definitely are plenty of toolkits out there and most do not integrate mvbasic, but the fact that some do is encouraging. integration with everything under the sun (except U2) jython, ipython, .NET, This hasn't been a problem either. So, python is fine, but so is mvbasic. They can both be used to get the job done, with an exception that you note that python doesn't work natively with U2, while mvbasic does. There are many variations and nothing works with everything. Anyone think of anything else? And do I really need to be able to do that to do my job improving and maintaining commercial software in an SB+ Unidata environment any better? If you limit youself to what SB+ can do, wow. I am coding around SB+ as much as possible. I think there are tools out now or there will be that convert SB+ to something newer too (I think our MV implementation has or will have a tool for that) Do I get paid more if I write code in Python instead of Basic? Doesnt matter. You will have a better chance of being employable with your next job by learning python (or anything else). If a particular employer is looking for specific toolset skills, it is not hard to teach yourself new tools if you understand your profession to begin with, enough to get your foot in the door of an interview. I will grant that at first it will be like picking up a saxophone when you are a flutist (not trying to get into the flutist vs flautist discussion) where you can perform the fingerings but surely are not as ept at the instrument at the outset. This is where my statement that you end up having to learn any environment these days comes in. It is not as if a person is likely to know the precise full suite of tools in the platform of any company when they arrive. I doubt it. The hardest bit is not the coding but figuring out the business logic, and no language nor fancy tool can do that for you. It is also hard to graft policies and processes onto a toolkit that was never made for it. SB+ and Unibasic are very dated and are showing there age more and more every year. The data model for U2 has really made a comeback this century with XML and JSON being much more like PICK than RDBMS's data structures. Most RDBMS's have enhanced their toolset for newer SQL standards so they can handle nested structures even if inelegantly. So in some ways there is a movement back to MV, even if not typically in the form of MV databases (somewhat unfortunately, I think). I bet there are a lot of things I can do with Pick Basic and multi-value that you can't (or at least not as easily) do with Python. Please name some. I would really like to know. Basic has nothing to do with MV, nor does
Re: [U2] Program Comments/Documentation/Notes/Revision History
TY Dawn, Very cool post. You laid it out there very nicely. I hope to avoid the shiny new thing syndrome. I need to look up the book reference you made. WRT to the resurgence of mv-like data structures, no one will care that we've been mv when mv wasn't cool. Thanks guys for engaging me in this exercise. I'm usually not this outspoken. Steve ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Thanks guys for engaging me in this exercise. I'm usually not this outspoken. We *like* outspoken. It's better than leaving things unsaid grin. Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Brian Leach wrote: Thanks guys for engaging me in this exercise. I'm usually not this outspoken. Look at the times of my posts. I should use Google's Beer Goggles. No posts over 5 lines between 2am and 7am. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mixed Case UV Basic Programming Standards.
I started this thread and I thank those who have helped me think about it. Some good ideas there. But, hey guys, one of the thread's rules was: 2. NOT about GOTO. Take it outside. So if you don't stop, I will have to come down on this with my full authority. (My full authority consists of a polite request to change the subject line abandon this thread. Can't think of anything else.) I think all that can be said about GOTO has been said; everyone already knows every arguments on every side. If you have a standard in that regard I'm programming for you, I promise to abide by it make it work. cds ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
In message 1fdb619c0906290746n2d553c0ao867cb5d64327b...@mail.gmail.com, Dawn Wolthuis dawnwolth...@gmail.com writes On Sun, Jun 28, 2009 at 4:32 PM, Steve Romanowslestak...@gmail.com wrote: Mecki Foerthmann wrote: It really boils down to this. What can you do with Python in a U2 database that I can't do with Pick Basic? Umm, real unit testing ala nosetest I realize this is the U2 list, but I thought I would note that at least one implementation of mvbasic is enhanced for OO and does have a unit test framework (like junit). I will state up front that I'm using Cache' then just refer to it with other terms such as our MV toolset as this is not intended to be a sales pitch. Many of you will know this, I expect, but Jim Idle (of jBase fame) worked for Cache for a while. I meet him every now and then on a compiler-compiler mailing list. So I would guess he was rather involved in writing a lot of this stuff for Cache :-) Cheers, Wol -- Anthony W. Youngman pi...@thewolery.demon.co.uk 'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998 Visit the MaVerick web-site - http://www.maverick-dbms.org Open Source Pick ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Dawn Wolthuis wrote: Just my two cents. cheers! --dawn How come Dawn's two cents are always worth more than my two cents? Don't answer that. All, I've found lurking on this whole thread informative thought-provoking. Thanks. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mixed Case UV Basic Programming Standards.
My standard is to coat anyone using a goto with salty duck fat drop them from 15 feet up into the play yard at the Atlanta Humane Society during Pit Bull Play Hour. To make my standard work, you'll have to learn to fly a helicopter... Given the subject, I feel compelled to add: I'm kidding. I like mixed case for readability, plus it makes the code look less Cretacious. The downside is that unless all of the legacy code has been rewritten, in order to - for example - find all of the write commands, I have to do multiple searches account for typos (Write vs write, in addition to WRITE). Not much of a downside. I use camelHump in my own stuff (great name, thanks to whoever threw it in here!). -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Charles Stevenson Sent: Monday, June 29, 2009 2:43 PM To: U2 Users List Subject: Re: [U2] Mixed Case UV Basic Programming Standards. I started this thread and I thank those who have helped me think about it. Some good ideas there. But, hey guys, one of the thread's rules was: 2. NOT about GOTO. Take it outside. So if you don't stop, I will have to come down on this with my full authority. (My full authority consists of a polite request to change the subject line abandon this thread. Can't think of anything else.) I think all that can be said about GOTO has been said; everyone already knows every arguments on every side. If you have a standard in that regard I'm programming for you, I promise to abide by it make it work. cds ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Mixed Case UV Basic Programming Standards.
Since we are writing something new, I started out with Java styling rules, then saw that the AJAX toolset was written by people more accustomed to vb styling, so there is some mishmash, but we have File Names: CamelCase Field Names: CamelCase Constants: UPPER local variables: sometimeslower otherwise lowerCamelCase verbs and other reserved words: lower This pretty much aligns with our javascript styling too. --dawn On Wed, Jun 24, 2009 at 1:38 PM, Charles Stevensonstevenson.c...@gmail.com wrote: I don't like the way I use mixed case, so it tends to evolve. Not good, because consistency in programming style throughout an application makes for easier maintenance, maintainability is the god of software quality. So I am wondering how others use mixed case. Do you capitalize/lower/mix case for commands? Operators? Variables? Equates? etc. How do you use/not use special characters in variable names? For example: readu OrderMaster from ORDER.MASTER, OrderMasterId locked ... readU OE_rec from OE_f, OE_id locked ... ReadVU OE_Date From ORDER.MASTER, OE$Id, OE$Date Locked ... READU order.master.rec( oe$date ) FROM order.master.file, order.master.id LOCKED ... That sort of thing. I hesitate to even ask this for fear of starting a war. So ground rules for this thread: 1. NOT about MERITS of Uppercase only vs. Mixed Case programming. I am only interested in answers from people who actually use mixed case. 2. NOT about GOTO. Take it outside. 3. This is about PREFERENCE, NOT SUBSTANCE. By substantive I mean rules like: - Only open a file once. - Readu should always have a locked clause. By preference I mean stuff like my example. They are all functionally equivalent. 4. NO ARGUMENTS about whether someone's style is good or bad, or yours is better. Explaining why you do it a certain way is helpful, though. Just remember, when it comes to preferences, no two programmers will agree, yet consistent style, whate'er it be, increases maintainability. Thanks, Chuck Stevenson ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Dawn M. Wolthuis Take and give some delight today ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] UV UOJ hung sessions
We have an issue where UOJ sessions initiated by our web app server occasionally get hung. This is a rare occurrance, but when it does happen the end user on the site usually repeats the action that causes it enough times to chew up a large number of UV licenses. The sessions remain until killed via kill -9 at the linux OS level. We had this problem once in the past and were able to track down the offending UV BASIC subroutine via PORT.STATUS because of a unique EXECUTE 'SELECT ...' within the program. We're not so lucky this time and PORT.STATUS is not providing any useful info that would point to what subroutine was called. Is there any way to know what the hung session is doing aside from adding code to write out logging info within every subroutine called by UOJ? Maybe something in the /proc filesystem? We're running UV 10.2.7 on RedHat ES 5.1. Thanks, John ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UV UOJ hung sessions
Do you have truss or a trace command at UNIX that can track what the PID is doing. It is pretty low level stuff, but if it is doing any file IO, you can see that and maybe see what is going on. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of John Hester Sent: Monday, June 29, 2009 3:46 PM To: U2 Users List Subject: [U2] UV UOJ hung sessions We have an issue where UOJ sessions initiated by our web app server occasionally get hung. This is a rare occurrance, but when it does happen the end user on the site usually repeats the action that causes it enough times to chew up a large number of UV licenses. The sessions remain until killed via kill -9 at the linux OS level. We had this problem once in the past and were able to track down the offending UV BASIC subroutine via PORT.STATUS because of a unique EXECUTE 'SELECT ...' within the program. We're not so lucky this time and PORT.STATUS is not providing any useful info that would point to what subroutine was called. Is there any way to know what the hung session is doing aside from adding code to write out logging info within every subroutine called by UOJ? Maybe something in the /proc filesystem? We're running UV 10.2.7 on RedHat ES 5.1. Thanks, John ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- CONFIDENTIALITY NOTICE: If you have received this email in error, please immediately notify the sender by e-mail at the address shown. This email transmission may contain confidential information. This information is intended only for the use of the individual(s) or entity to whom it is intended even if addressed incorrectly. Please delete it from your files if you are not the intended recipient. Thank you for your compliance. Copyright 2009 CIGNA == ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Archaic?
Four responses to notes raised in this thread: Back in the 90's I was as big on Java and more open initiatives as VB, but the MV world wasn't interested. Earlier in this decade I was on a quest to create Linux desktop app interfaces for MV but no one seemed interested. So I planted a firm foot in the .NET market and got a fast reputation as a Microsoft zealot. Go figure. Today most of the solutions I advocate are based on Microsoft tools simply because they work consistently for all MV platforms. If this market had a firm demand for something else, I'd offer solutions using the preferred technologies. I still blog about using cross-platform Flex for MV GUI development, and development for iPhone and other non-Microsoft mobile platforms, but no one seems to be interested. Hardly anyone mentions Python, PHP, Perl, Ruby, or other cross-platform tools in this industry so they're hardly worth pursuing as more standardized solutions. For all of the love of open software that we see expressed in these forums, we can probably count on a few fingers how many people in this market actually write code at the OS level to integrate with their MV environment. People love to bash Microsoft (and it's usually well deserved) but I don't see any other technologies that are clear winners in this market. What I'm seeing out there is .NET versus a world where people are reticent to move forward due to uncertainty and lack of confidence in anything that's out there. I got over that speedbump years ago and I've been happy with my solutions for about 8 years now. How many of you can say the same? About C# and bubbling up errors, I don't understand why there is a problem. As with Java, your C# app code is instantiated in a Main function. Personally I try/catch as much as possible at the lowest levels, but for anything that bubbles up, wrap that initial instantiation in Main in a try/catch as the ultimate handler. For web applications, use the methods provided in the global.asax to trap errors, and report exceptions in the event log, via email, or by other preferred methods. If you look at my blog you'll see I've narrowed down modern client/server development to the bare basics. Browsers only support JavaScript (or VBScript) if they're not using plugins. Plugins give us Java and enhanced JavaScript, and with Silverlight/Moonlight we get C# and to some extent VB.NET, IronPython, Ruby and possibly others (I'm sure some people will be surprised at that). That's all there is and there's nothing to indicate the world is shifting to provide more alternatives in the thin client - after that we need self-updating thick clients. So if you want to do web development, pick one and run; don't wait for something else to come along. If you want to use one language in the client and on the server, Silverlight, Moonlight, and Java Applets are the only options. We can use MVBASIC as a back-end for ALL client and middle-tier languages and technologies. There's no reason to wait to do development. My ongoing recommendation is to decouple the server from the details of the client so that you can provide alternative client UI's and technologies, and completely replace your tiers as required. This is where most MV-oriented tools fail us. Finally, as far as bindings to other languages is concerned, I've written a document (that I keep editing and never get to publishing) on a new project I call mvEsperanto which allows any language to make use of any MV platform using a common API and a variety of connectivity methods. Other environments have a diversity of language bindings and it's time MV does as well - but unlike other interfaces this will not be limited to a single DBMS vendor, OS, communications interface, or other commercial/religious interests. Look for this within the next few weeks. Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula RD sells mv.NET and other Pick/MultiValue products worldwide, and provides related development services remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Program Comments/Documentation/Notes/Revision History
Hey David, Why not just write a program to flip them back and forth between commented and decommented? *#*comment 1 code code code *#*comment 2 Is what it would look like until you re-ran it to restore the comments or you could write it so that after comment 1 it would have 40 chars of the original comment, or something to that effect... Allen -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org]on Behalf Of David A. Green Sent: Friday, June 26, 2009 9:50 AM To: 'U2 Users List' Subject: [U2] Program Comments/Documentation/Notes/Revision History I've always commented my program at the beginning, but some programs have many changes and when we have 300+ lines of comments it gets a little tedious to deal with embedded in the source code. I'm think of placing them in an external file and then doing a $INSERT in the source code in order to tie them together. How do you handle the long comments? Thanks, David A. Green www.dagconsulting.com (480) 813-1725 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] Running total from UniVerse dict
I am sure we used to be able to do this using I-type, but I cannot remember how. Now we are using I-types again (not just ocreelatives), I want to be able to show each item outstanding for an account, with a running balance. Can anyone help? I have been to the doc, and read about CALC and TOTAL, but they seem to apply to totalling lines (and I can't make that work either - I am feeling very inadequate). TIA, Kate Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Ph: +64 9 360 5310 Fax: +64 9 376 0750 Mobile: +64 21 400 486 Email: k...@walstan.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Running total from UniVerse dict
Hi Kate, Try this... This will show the running total for every printed line ED DICT FILENAME RUNNING.TOTAL This is a Type I Descriptor last compiled on 30/06/09 at 09:07. 20 lines long. : P7 0001: I 0002: @1...@record8 0003: MD2 0004: RUNNING TOT 0005: 10R Regards -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kate Stanton Sent: Tuesday, 30 June 2009 9:55 AM To: U2 Users List Subject: [U2] Running total from UniVerse dict I am sure we used to be able to do this using I-type, but I cannot remember how. Now we are using I-types again (not just ocreelatives), I want to be able to show each item outstanding for an account, with a running balance. Can anyone help? I have been to the doc, and read about CALC and TOTAL, but they seem to apply to totalling lines (and I can't make that work either - I am feeling very inadequate). TIA, Kate Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Ph: +64 9 360 5310 Fax: +64 9 376 0750 Mobile: +64 21 400 486 Email: k...@walstan.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Message protected by DealerGuard: e-mail anti-virus, anti-spam and content filtering. http://www.pentanasolutions.com Click here to report this message as spam: https://login.mailguard.com.au/report/1xLyloqUd9/dBLuI50jon61fjTIRoMZh/0 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Running total from UniVerse dict
Hi Kate I believe you are looking for the @ variables to solve your problem. I think in the uv help they come under the @ in the same area as the screen commands Regards David Jordan ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Running total from UniVerse dict: THANKS!
It works! I have been back to the manuals, and would NEVER have found it there. Talks about @n as the result of the nth compound expression, but not as @1 as the result of the previous line. Help greatly appreciated - what a fabulous resource. Hi Kate, Try this... This will show the running total for every printed line ED DICT FILENAME RUNNING.TOTAL This is a Type I Descriptor last compiled on 30/06/09 at 09:07. 20 lines long. : P7 0001: I 0002: @1...@record8 0003: MD2 0004: RUNNING TOT 0005: 10R Regards -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kate Stanton Sent: Tuesday, 30 June 2009 9:55 AM To: U2 Users List Subject: [U2] Running total from UniVerse dict I am sure we used to be able to do this using I-type, but I cannot remember how. Now we are using I-types again (not just ocreelatives), I want to be able to show each item outstanding for an account, with a running balance. Can anyone help? I have been to the doc, and read about CALC and TOTAL, but they seem to apply to totalling lines (and I can't make that work either - I am feeling very inadequate). TIA, Kate Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Ph: +64 9 360 5310 Fax: +64 9 376 0750 Mobile: +64 21 400 486 Email: k...@walstan.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Message protected by DealerGuard: e-mail anti-virus, anti-spam and content filtering. http://www.pentanasolutions.com Click here to report this message as spam: https://login.mailguard.com.au/report/1xLyloqUd9/dBLuI50jon61fjTIRoMZh/0 ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users