(This page just shows the latest 20 or so posts, sign up to the daily newsletters to get all of them or join us at Slack)
- Serve JSON Web Services with RPG and YAJL – iProDeveloperby NickLitten on 2023-09-28 at 20:10
Serve JSON Web Services with RPG and YAJL aka — Access data running on other computers with REST and JSON This is a ressurection of an old article which was lost from the internet when iPro Developer died. Luckily I found an old PDF printout and dutifully copy/pastedf all the text. Thanks to Scott Klement
- Robot | Navigating Today’s HMCby Fortra on 2023-09-28 at 18:59
How do I navigate the new HMC user interface? Is the HMC just for IBM i customers?
- COMMON Education Foundation: Connecting with the Next Generation of IT Talenton 2023-09-28 at 18:52
- 005 The IBM i Education Revolution: Gina King’s Manifestoon 2023-09-28 at 17:43
005 On the episode today our guest of honor, Gina King, the Director of Software Ecosystem & Alliances at IBM, and she’s a powerhouse in the IBM Power universe. Get ready for a whirlwind tour of cutting-edge topics:Learn about IBM’s Power Skills Academy program and its impact on the IBM i landscape. Discover how PSA is engaging and educating the next generation of talent to address the shortage of IBM i skills in the industry.Next, it’s all about the IBM Power Developer Exchange – the ultimate hub for Power Systems developers. We’ll uncover its mission, its pulse on tech trends, and the game-changing resources it offers.Lastly, we’ll shine a spotlight on Independent Software Vendors (ISVs) and their vital role in the IBM i ecosystem. Find out how they drive innovation, leverage platform stability, and stay true to their roots.Get ready for an electrifying conversation with Gina King!Gina King, Director of Software Ecosystem & Alliances at IBMLinkedInEmail: glking@us.ibm.comPower Skills Academy Power Developer ExchangeOne incredible Th(i)ng! Products, gadgets, recipes, music or things we are loving right now.Gina’s pick for this week:Mountain Climbing!Peg’s pick for this week:Pumpkin Spice latte’s Upcoming EVENTS:COMMON – Navigate, Oct. 9-11, 2023i-UG November 23SHOW SPONSORS:Programmers.ioBriteskiesCOMMONMidrange Dynamics North AmericaBe sure to check out our website, LinkedIn page and like and subscribe – all those things!Interested in sharing your IBM i story? Want to sponsor the podcast? We want to hear from you! Reach out to Peg.Email: Peggy@theincredibleishow.com
- Audit Journalon 2023-09-28 at 16:48
Audit journal support with IBM Navigator for i
- German Power 2023by Bruno Taverne on 2023-09-28 at 16:05
L’article German Power 2023 est apparu en premier sur M81.
- Common: Tricks with Spool Files Using SQL — Simon Hutchinsonby learn.common.org on 2023-09-28 at 15:48
In the past few releases and TRs IBM has introduced a number of SQL views and table functions that allow anyone to do things to spool files that they would have had to use APIs or complex programming. Simon is a subject matter expert for COMMON North America and is the principal of RPGPGM.COM, the most popular blog about modern IBM i programming on the web.
- Jack Woehr – Profile | COMMONby common.org on 2023-09-28 at 14:31
Member Directory and Social Networking Tools
- [Webinar] Power of Automation: Integration Brings Transparencyby Anastasiia Samarina on 2023-09-28 at 12:30
See the ‘magic’ of Automation in a DevOps pipeline and ‘real’ integration with Arcad’s open tooling. The post [Webinar] Power of Automation: Integration Brings Transparency appeared first on ARCAD Software.
- Leveling Up: RPG and JavaScript Functionsby Gajender Tyagi on 2023-09-28 at 08:29
Welcome back to our enlightening series where we draw parallels between RPGLE and JavaScript. In our previous entry, we delved deep into a comparison of data types between the two languages. In this edition, we’ll be exploring how JavaScript functions can be juxtaposed with RPGLE subprocedures. Let’s embark on this interesting journey and see how the two match and differ! Introduction: JavaScript and RPGLE operate on different paradigms but share similarities that can help RPG developers adapt swiftly to JavaScript. Today, well scrutinize JavaScript functions and RPGLE subprocedures. JavaScript functions, like RPGLE subprocedures, are reusable blocks of code that perform a specific task and can be called multiple times within a program, allowing for modular and organized code. Lets journey through the key aspects of each. Definition: JavaScript Functions: In JavaScript, a function is defined using the function keyword, followed by a name, parameters within parentheses (), and the code block within curly braces {}. function greet(name) { console.log(“Hello, ” + name + “!”); } RPGLE Subprocedures: In RPGLE, subprocedures are defined using the DCL-PROC and END-PROC keywords, with parameters declared within the procedure. dcl-proc greet; dcl-pi *n; name varchar(50); end-pi; dsply (‘Hello, ‘ + name + ‘!’); end-proc; Calling: JavaScript: Functions are invoked by using their name followed by parentheses, containing any arguments. greet(‘John’); // Outputs: Hello, John! RPGLE: Subprocedures are called by their name with parameters, if any, passed within parentheses. greet(‘John’); // Displays: Hello, John! Parameters and Return Types: JavaScript: Functions can have parameters, and the return type can be any valid JavaScript data type, including undefined. function add(a, b) { return a + b; } RPGLE: Parameters in subprocedures are declared using the DCL-PI and END-PI keywords. The return type is explicitly declared. dcl-proc add; dcl-pi *n packed(10); a packed(10); b packed(10); end-pi; return a + b; end-proc; Scope: JavaScript: JavaScript functions have access to the variables in their scope, their parent (outer) scope, and any global variables. let globalVar = ‘Global’; function showScope() { let localVar = ‘Local’; console.log(globalVar); // Accessible console.log(localVar); // Accessible } RPGLE: In RPGLE, variables in the main procedure can be accessed by subprocedures, but local variables within subprocedures are not accessible outside them. dcl-s globalVar varchar(50) inz(‘Global’); dcl-proc showScope; dcl-s localVar varchar(50) inz(‘Local’); dsply globalVar; // Accessible dsply localVar; // Accessible within subprocedure end-proc; First-Class Functions in JavaScript: JavaScript functions are first-class citizens, meaning they can be: Passed as an Argument to other functions: Here greet fucntion is passed as an argument to the runFunction . runFunction returns the passed function, greet in this case with value = ‘John’ . function runFunction(fn, value) { return fn(value); } function greet(name) { return “Hello, ” + name + “!”; } console.log(runFunction(greet, ‘John’)); // Outputs: Hello, John! Returned from other functions: function multiplier(factor) { return function (number) { return number * factor; } } let twice = multiplier(2); console.log(twice(5)); // Outputs: 10 Assigned as a Value to a Variable: const greet = function(name) { return “Hello, ” + name + “!”; } console.log(greet(‘John’)); // Outputs: Hello, John! Closure: JavaScript: JavaScript functions form closures, allowing them to capture and remember their surrounding scope and access variables from that scope even after it has finished executing. In the below code the innerFunction is returned to the caller and still the innerFunction is aware of its parent functions variable.MDN Doc – Closure function outerFunction() { let outerVar = ‘I am from outer!’; function innerFunction() { console.log(outerVar); // Accessible due to closure } return innerFunction; } const innerFunc = outerFunction(); innerFunc(); // Outputs: I am from outer! Below is a sample JavaScript module that includes the various types of functions we discussed: Lets create a module named myModule.js: // Regular Function Definition function greet(name) { console.log(“Hello, ” + name + “!”); } // Function that can be Passed as an Argument function runFunction(fn, value) { return fn(value); } // Function that Returns another Function function multiplier(factor) { return function (number) { return number * factor; } } // Function Assigned as a Value to a Variable const farewell = function(name) { console.log(“Goodbye, ” + name + “!”); } // Function Stored in Data Structure const operations = { add: function(a, b) { return a + b; }, subtract: function(a, b) { return a – b; } } // Exporting the functions to be accessible in other modules export { greet, runFunction, multiplier, farewell, operations } Usage in Another File Now, let’s see how we can import and use this module in another JavaScript file, say app.js: // Importing functions from myModule import { greet, runFunction, multiplier, farewell, operations } from ‘./myModule.js’; // Using the Imported Functions greet(‘John’); // Outputs: Hello, John! // Pass a Function as an Argument const greeting = runFunction(greet, ‘Jane’); // Outputs: Hello, Jane! // Function that Returns another Function const double = multiplier(2); console.log(double(5)); // Outputs: 10 // Function Assigned as a Value to a Variable farewell(‘John’); // Outputs: Goodbye, John! // Function Stored in Data Structure console.log(operations.add(2, 3)); // Outputs: 5 console.log(operations.subtract(5, 2)); // Outputs: 3 In this example, myModule.js encompasses various function types, including regular functions, first-class functions, and functions stored in a data structure. They are then exported for usage in other modules, showcasing modularity and reusability in JavaScript. To run these JavaScript files from the local system one should first download Nodejs and then use Nodejs to execute app.js. Alternatively, the console of a browser is a great tool for executing js functionality. Conclusion: JavaScript functions and RPGLE subprocedures are pivotal elements in their respective programming paradigms, playing a crucial role in structuring the code base in a modular and reusable way. While they stem from different programming paradigms and syntax structures, understanding the similarities and differences enables RPG developers to transition seamlessly into the world of JavaScript. Stay tuned for the next part of our series, where well explore more intricate concepts and bridge the conceptual gaps between RPGLE and JavaScript, making your leveling-up journey enjoyable and insightful!
- How to Introduce Modern Dev Tools Successfully – 1636491by event.webcasts.com on 2023-09-27 at 22:43
How to Introduce Modern Dev Tools Successfully Thu, Nov 9, 2023 10:00 AM CST{LOCAL_TZ}
- IBM i Cloud Migration Bundleby fortra.com on 2023-09-27 at 22:20
Our cloud migration bundle offers you the tools as well as the personnel necessary to successfully migrate to the cloud – including planning for migration (sizing and previewing workloads), maintaining backups during and after migration, streamlining you file transfers, and ongoing support from our experts.
- The IBM i Marketplace Survey Reaches Year 10on 2023-09-27 at 16:51
- Last day of COMMON India & I am presentingby RPGPGM on 2023-09-27 at 15:43
Tomorrow is the last day of #COMMONIndia & I am giving a live presentation about #SQL to perform various tricks & other cool stuff with spool files. Yes, I will be executing code live! See you tomorrow! #IBMi #rpgpgm #IBMChampion u/COMMONug https://preview.redd.it/e0lwuqm9fsqb1.jpg?width=414&format=pjpg&auto=webp&s=20994ba57ce2f3689928efee8cb0af9dcc1c0973 submitted by /u/RPGPGM[link][comments]
- LANSA RAMPby JC_Hazard on 2023-09-27 at 15:43
I have recently been tasked to modernize our normal green screens through LANSA aXes and RAMP. Has someone done this before? I feel that there is very limited information regarding this on the net and have some questions if someone is willing to provide some closure to. submitted by /u/JC_Hazard[link][comments]
- RMVJRNCHG rollback dilemmaby Lenny on 2023-09-27 at 14:20
RMVJRNCHG is a nice little line command. The first time IBM i administrators see it, they can’t help but think “Great! Down with backups!” …ok, ok, maybe they don’t – there’s more to backups than a simple ability to roll back database updates to a point in the past. But let’s think about it. Imagine
- The First Step In DevOps Is Not Tools, But Culture Changeby administrator on 2023-09-27 at 13:51
The combination and automation of application development and IT operations, commonly known as DevOps, is itself like the processes it automates – it is a process of continual change through iteration and improvement. And so, like most things in life (other than vacation, maybe), it is a journey – not a destination. The post The First Step In DevOps Is Not Tools, But Culture Change appeared first on ARCAD Software.
- What the White House’s 2023 National Cybersecurity Strategy Means to Your Security Planby Fortra on 2023-09-27 at 13:43
Watch this on-demand webinar to learn more about the White House’s 2023 National Cybersecurity Strategy and how Fortra can help you implement some of its objectives to better secure your organization.Visit https://www.fortra.com/resources/videos/what-white-houses-2023-national-cybersecurity-strategy-means-your-security-plan to learn more.
- Deleting records from a file without the delete trigger executingby noreply@blogger.com (Simon Hutchinson) on 2023-09-27 at 09:49
I have a file that has a “delete trigger” on it. I need to delete all of the records in the file without the “delete trigger” inserting data into its output file. How could I do that without removing the trigger from the file? I am going to show you how. Before I do I am going to need a file with data. I have created a file, TESTFILE, in my library, MYLIB, that has ten records in it: Read more »
- @tappehl: Enjoyed every minute of @charlieguarino and his #ichime last week with @Paul_Tuohy_Sid .. Went through some of Paul’s contributions on Youtube and found this piece of gold #ibmi @Steve_Will_IBMi @alanseiden & Ted Holtby @tappehl on 2023-09-24 at 17:16
Enjoyed every minute of @charlieguarino and his #ichime last week with @Paul_Tuohy_Sid .. Went through some of Paul’s contributions on Youtube and found this piece of gold #ibmi @Steve_Will_IBMi @alanseiden & Ted Holt https://t.co/jjt6yHmi27— Torbjörn Appehl (@tappehl) September 24, 2023