Wednesday, May 15, 2019

Comment on commenting.

Hello,

Comments are an essential part of any coding practice whether you are using traditional languages that are quite verbose with their syntax and vocabulary i.e. Java, C# or RPG/COBOL.  Even code generation environments like 2E and Plex benefit hugely from appropriate commenting.

Modern low-code platforms like Appian, Mendix and Outsystems (to name a few) who shield you from code (as much as possible) benefit from correctly named functions and comments/annotation within them.

Without comments, what was as relatively simple coding process to the creator is now a moderate pain in the butt for the developer maintaining your code.  Multiply that with a complicated piece of technical logic and/or business logic which is now practically impossible for a maintenance developer to pick up and be successful.

Chances are you will NOT be maintaining your code. Get this into your heads.....

To avoid this, structure your comments professionally and ensure that the comment adds value.

Commenting out old code for safety reasons in the modern world is simply unacceptable.  With repositories like GitHub etc you can be brave and make changes.  Sure, comment some stuff out locally whilst trialing a few ideas....I get it.    But to commit that code to the main branch or the model if programming in Plex/2E is just unforgivable.

If you have got to the point where you have unit tested your code and are 1000% happy, remove the commented out code....NOW.

I'd also go as far to say that you should remove all legacy commented out code at the time you checkout the function...I mean where others have failed before you.  

There are no excuses for leaving commented out code in a production object/branch.

Thanks for reading.
Lee.

Wednesday, May 1, 2019

Imitation is the sincerest form of flattery

I am a firm believer of solving a problem and sharing it with your peers.  All code construction can do with a second set of ideas/eyes or a different perspective.  Those that 'care to share' will also learn as much as those you intended to educate.  Simple Truth.....Those that don't share are NOT as good as they think they are.....

Why? 

Quite simply... It is about creating a culture within your team that empowers the individuals for the greater good of the team

Having someone copy your code is a compliment, take it that way, but remember you can also be productive and actually.....  Share it ........

Today I wanted to debate the issues of cloning and blatant stealing of games and applications on the relevant app stores.  Whether you are a hardcore iOS lover or a thrifty Android devotee you will all have come across apps that have been cloned.

Anyone remember Flappy Bird?  There were hundreds of copycat games that used some of your valuable storage.  These clones whilst annoying are an inevitable occurrence if a gravy train/gold rush is created.  And we have certainly seen out fair share of these in the main app stores.

A few years before this we had xxxxxx Birds or Angry xxxxxxx clones and this continues today with 2048, Wordscape.........

Guess what?  It even happens for blogs......

I have discovered in recent weeks/months that someone has cloned my entire blog.  Probably not for any other purposes that trying to divert traffic to their sites.... (I'm sure they'll be happy with a few hundred extra page impressions (a month).

Remember: My blog has my name in the URL.....and oh, yes I am flattered.......

Thanks for reading.
Lee.

Saturday, April 20, 2019

Consumer or Contributor?

Originally written in March 2018 but never published as I never left....... Now that I have it felt right to post it...

Are you Contributor or Consumer?

I have today finished working for my current company in NZ.  I have dozens of reasons why I chose to leave so I will only put out a few.
  • I wanted a new challenge.
  • My career was going backwards due to numerous structural changes and then outsourcing.
  • Same old approach, same old processes that were as sacrosanct as a religious text with no hope of change.
  • I realise that there is so much more (good tech) out there than the bubble we’d been enshrined in and due to our skills rarity.
  • Promotions were literally waiting for incumbents in the senior roles to die or retire (Lessened with outsource)
  • Desire to chase my own dreams.....while I still can.
Another Issue

Sadly, another issue was that I realised I had become surrounded by more consumers than contributors.  This can be true for many teams and companies and is not unique to the team above. 

In my years back in the business it became obvious that many of the developers were consuming my knowledge (I like sharing), but, at the same time, some were opposed to sharing theirs.  There were a few good eggs though and you know who you are :-)

Which type are you?

There are two types of developers in this world. Those that ‘learn/implement/teach and share’.  And then there are those that learn solely to strengthen their individual position, or in this case (at this firm), their collective position.  Some go as far as making areas of expertise for themselves in a vain attempt to make themselves indispensable, not realising that this selfishness was actually harming the growth of the business and stalled their own career.

I've known of developers with 25+ years’ experience in the tools that had never even posted a blog or a forum answer on 2E or Plex.  Their interest in the tools (and tech) was only deep enough to grow their individual product (business) knowledge.  They’d never given back to the wider community, they had only even dined at the free buffet of knowledge.

I had questions in my mind......
  • Who are these people?   
  • Why was I wasting my time trying to help change this culture? 
  • Perhaps it doesn’t need changing?
  • Perhaps the problem is me!

In life we choose our friends and they choose us.  With school and work especially, we are often forced together....

Personal Impact

I had let myself get so despondent about this scenario that I know that even if I went for another job right now, my frustration would be etched across my face and it would do me little good.  I place no blame at the feet of the outsource provider through which I was working via....The damage was already done before that deal was struck.

What Next?

I’m not driven by money, power or job title (so many managers have failed to understand this part of my personality) and suffice to say, I will have many options so I am looking forward to finding my happy place.

Now is the time to take a break, recharge my physical and mental batteries and then look for a future challenge or focus full time on my dreams…..

My biggest takeout is, if you have tried your best to improve the environment around you but see no signs of it improving, walk away.  Some places/teams/processes are just broken, channel the energy somewhere that warrants your investment/time... including you.


Look after yourself and live your dreams.....One life.....

Thanks for reading.
Lee.

p.s. When I got home and told the trouble and strife (wife) that I have resigned.  She said it's the first time she had seen me smiling for a while...... I reckon I made the right call, just in time.

p.p.s. If you find that you are a non-selfish consumer.  i.e. someone who is absorbing the knowledge at present but don't have a forum to pass on your knowledge, that is fine.  Just remember to not become one of the selfish hoarders when your time comes to share your knowledge...

Monday, April 1, 2019

Significant product investment planned. in 2019.

MAJOR ANNOUNCEMENT

It has been announced today that a 130m (USD) investment is planned for Q3 2019 in the midrange application development tools space.

A source in the development group states that "We recognise the intrinsic value of systems that have been developed using these tools.  These tools were pioneers of the low-code phenomenon we know and take for granted today."

They go on to say that "By leveraging the sound principles of data driven development and combining with modern code generators for full web and mobile delivery stacks, we are hoping to see a second dawn and further adoption of these tools, as well as, allowing our existing customers to manage the impact caused by companies focused on digital disruption."

I for one truly welcome such and announcement and I hope that beyond this April fool it could/may happen.

Thanks for reading.
Lee.

Tuesday, January 8, 2019

Blog purpose and getting in touch,



For help and guidance LinkedIn is the best method.  I welcome comments, feedback and suggestions.

Thanks for reading.
Lee.

Monday, January 7, 2019

A little trick with *SET CURSOR

A quick little post to kick off 2019....

A colleague of mine had an issue today where he was trying to stop a user having to page down dozens of pages when inserting data via a DSPFIL/PMTRCD W/W (Work with) suite.

He asked me how he can reload the subfile (show the new data) but position the page at the point he (the user) was at, rather than refreshing and defaulting back to the first page again....


The solution is quite simple and as the title of the blog says.......

You use the *SET CURSOR function and set it to a field on the subfile record you wish to remain in focus.  In our case we chose the *SFLSEL field.



Thanks for reading.
Lee.

Wednesday, December 12, 2018

Bad Abbreviaitons - Forum Fail.....

A little funny post as it's Christmas.



There is a reason why cumulative is never abbreviated....

Thanks for reading.
Lee.

Saturday, December 1, 2018

What is a reasonable time to resolve an issue?


Today, I experienced a bug whilst building a wide screen definition in 2E.  The build was okay but when I went to use it (in the 2E device design editor), I was getting some low-level errors.

Upon googling the error, I came across this ticket which gave a few workarounds, one of which I implemented.

The given workarounds were:-


  1. Set the screen footer to 25 as per the screen print. 
  2. Set the subfile page size for consuming functions explicitly.  I am assuming they mean…
  3. Override the YSFLEND model value to *PLUS and not *TEXT or override it in the consuming function via F7=Function Options



All of these appear to be perfectly good reasons to postpone fixing this issue up within the product as I am guessing...


  • many use the + for subfile,  
  • many also forget to move the command line down to row 26 anyhow when creating and generating wide screens (they leave it at 23) and then wonder why they have a 3 row gap at the bottom of their screens 😊

Is it okay though, that 15 years after it was raised, it is still an issue…..?



Thanks for reading.
Lee.

Tuesday, November 27, 2018

Multi-Line Edit Oddities

Hiya,

Today I helped a colleague (a very talented one at that) with a small issue around a PMTRCD and usage of multi-line edit for oversized fields.  Something he hadn't seen before.

He was confused as to why his data entry field was showing on the device design and not showing when executed.

Figure 1 shows a mock up of his device design looking pretty standard.


Figure 2 shows the same screen at run-time.  Note the cursor has positioned to the field acting strangely but the underline is not showing.


If you want to recreate this issue I created a file as follows (See Figure 3 and 4) :-



Additionally, in the device design we set the long field to multi-line Y and set it to 4 rows and 50 wide.

To resolve the issue was a case of applying a (clearly little known) trick of moving the multi-line field over by one byte.  (Figure 5) 


This then allows the run-time screen to paint properly. (Figure 6)


My assumption is that the screen attributes are being corrupted by the multi-line although comparing the source for the DDS didn't highlight anything untoward so I am guessing it is a 5250 issue.  (I also recommend aligning the rest of the fields on the screen.)

Any takers on providing the technical explanation? as a compare source doens't seem to highlight a clear and present danger. (Figure 7)



I've always nudged these over by an extra byte for years and years but I guess some tips and tricks get lost.

Thanks for reading.
Lee.

Tuesday, July 24, 2018

The magic roundabout....


“Computer Associates (CA), where products go to die!”

If you were around in the late 90’s and early noughties, the statement above was industry standard and after a brief rename to the COOL range from Sterling Software prior to the CA acquisition in 2000 the tools known as Synon (now CA 2E) and Obsydian/Plex (now CA Plex) have been maintained and supported by CA.

Correction from above…. CA did in fact (the early years) innovate with the tools quite frequently and with good features and enhancements.  CA were responsible for the introduction of the Web Option, Triggers, RPGILE Generator, numerous SQL’s updates and Web Services for 2E as well as .NET Generator for CA Plex (no small feat), Web Services publication and consumption as well as keeping up with a myriad of technology platform refreshes Plex required. 

All in all, a reasonable job. 

Perhaps a 6 out of 10.

Okay, 5.

The point being that these products didn’t go to CA to die. However, in recent years with development budgets reduced and key personnel leaving the rate of change has stalled significantly.  So much so that nowadays a release highlight are items that would have been reserved for minor features or even bug fixes in years gone by.

Whilst the tools haven’t died they are clearly in maintenance mode.  CA moved this group of products to sustaining engineering.  This has a negative context whilst a product is in decline and I feel that other low-code options with better target platforms coverage have emerged into a space once dominated by case and code generation tooling.

Last week Broadcom announced a cash buyout of CA Technologies for over 18b dollars.
Broadcom doesn’t do software…they are a semiconductor business so what does CA provide them:-

  1. They may be diversifying their offerings and product range.  Perhaps there are some key products in the CA range that assist in their growth or CA has strong alliances with certain business verticals or a client base the parent organisation may wish to gain access to.
  2. Or this is purely a financial decision.  They may have too much cash to burn and need to spend it quickly.  They buy a solid company with a long and attractive maintenance trailing revenue stream and secure long term (almost guaranteed) recurring revenue.  Most likely this means they won’t need to pay any corporation tax for the next year or two as they assimilate this monster of a business.

Perhaps a mix of both but my money is on the second option and that this is merely a financially driven strategic purchase.  

There certainly isn’t any institutional importance for the CA development tools business i.e. CA 2E, CA Plex and CA Gen.  Although these areas are likely to show very high ROI i.e. cost vs revenue on the reporting charts I very much doubt they’ll get anymore focus than they there are currently getting.

Now it would appear, that the final resting place for these (once wonderful and genius) tools is going to be Broadcom.  The new statement being “Broadcom, a place where CA Technologies development tools go to die!”

STOP THE PRESS!!!!!!!

Hopefully not, I hope that the residual value and with opportunities in a safe pair of hands i.e. a company with a low code focus. It is possible to recapture the essence of CASE and reinvigorate these tools.

Probability?: < 10% if Broadcom don’t want to relinquish these tools.

Lee’s take out!

Sadly, it’s probably time to work out what the next big thing is… These tools are now compliance/maintenance focused (at best) and will be stabilised (cease to be supported) as soon as the revenue trail drops below x, whatever x is.  

x for CA or Broadcom is far higher than x for a passionate low-code only vendor.  I beg Broadcom to review the business units at CA and seek a buyer (at a fair price) so this technology has a chance to thrive once more.  These tools practically invented low-code.  In my eyes they are 20 years ahead of the rest.

Thanks for reading.

p.s. I wonder what theynew name will be....Broadcom Plex doesn't have that good a ring to it.....