The document is a presentation on open source report writing tools for IBM i systems. It discusses traditional RPG reporting approaches, designing reports using reporting tools like Jasper Reports, integrating open source tools with RPG, and deployment strategies. The presentation includes code examples of generating reports with traditional RPG and with Jasper Reports via the iText library.
Go 1.10 Release Party, featuring what's new in Go 1.10 and a few deep dives into how Go works.
Presented at the PDX Go Meetup on April 24th, 2018.
https://www.meetup.com/PDX-Go/events/248938586/
HKG15-207: Advanced Toolchain Usage Part 3
---------------------------------------------------
Speaker: Ryan Arnold, Maxim Kuvyrkov, Will Newton, Yvan Roux
Date: February 10, 2015
---------------------------------------------------
★ Session Summary ★
This session is a continuation of the Advanced Toolchain Usage Part 1 & 2 presentations given at LCU14. Parts 3 and 4 will cover a variety of topics, such as: Linker tips and tricks, adding symbol versioning interfaces to a system library, debugging the dynamic linker, debugging applications that use malloc, gcc attributes, manually constructing a backtrace on arm & Aarch64, how to add lightweight debugging to your program, how to use a signal handler appropriately, and TLS Models on Aarch64 and when to use them.
--------------------------------------------------
★ Resources ★
Pathable: https://hkg15.pathable.com/meetings/250788
Video: https://www.youtube.com/watch?v=EhNqFCN0YJ0
Etherpad: http://pad.linaro.org/p/hkg15-207
---------------------------------------------------
★ Event Details ★
Linaro Connect Hong Kong 2015 - #HKG15
February 9-13th, 2015
Regal Airport Hotel Hong Kong Airport
---------------------------------------------------
http://www.linaro.org
http://connect.linaro.org
A small introduction on the C++14 improved static introspection of the IOD library and the C++14 web framework Silicon.
https://github.com/matt-42/silicon
https://github.com/matt-42/iod
This document provides an overview of key concepts in the first chapter of a C++ programming book, including:
1) The chapter introduces programming, algorithms, functions, classes, and the main() function in C++.
2) It describes how C++ programs are compiled and processed, and defines important terms like variables, objects, and namespaces.
3) The document explains how to use the cout object to display output in C++ using the insertion operator and escape sequences.
This document provides an introduction to programming concepts like algorithms, functions, objects, and programming style. It specifically focuses on C++ programming. Some key points covered include:
- C++ is an object-oriented programming language that combines procedural programming features from C with object-oriented capabilities.
- Programs are made up of algorithms, which are step-by-step procedures to solve problems. Functions allow breaking programs into modular pieces.
- The main() function acts as the driver that runs the program. It and other functions have specific formatting conventions.
- The cout object is used to output text to the screen using insertion operators. Libraries like iostream provide important input/output capabilities.
- Programming style guidelines promote
This document discusses how to use three C++17 vocabulary types: std::optional, std::variant, and std::any. It begins with an introduction and overview of the types. It then provides examples and explanations of how to create, access, and manipulate values for each type. Key points covered include initialization, accessing contained values, performance characteristics, and common use cases.
Integrating R with C++: Rcpp, RInside and RProtoBufRomain Francois
This document discusses integrating R with C++ using Rcpp, RInside and RProtoBuf. It provides an overview of the R API and how R supports C/C++. It then describes the key features of Rcpp, including encapsulating R objects in C++ classes, conversion between R and C++ types, and using the Rcpp API to write efficient C++ functions that integrate seamlessly with R. Examples are provided to illustrate calculating a density estimate, working with environments and lists, and using STL algorithms like std::transform to write a C++ version of lapply.
The document provides an overview of C++17's std::filesystem library. It introduces the Path class for representing file system paths, the DirectoryEntry class for modeling directory entries, and DirectoryIterator for iterating over directories. It also summarizes key support functions for querying and modifying files and directories, handling permissions, and catching errors and exceptions. Examples are provided demonstrating how to get a file size, iterate over a directory, and monitor a directory for changes using std::filesystem.
Go 1.10 Release Party, featuring what's new in Go 1.10 and a few deep dives into how Go works.
Presented at the PDX Go Meetup on April 24th, 2018.
https://www.meetup.com/PDX-Go/events/248938586/
HKG15-207: Advanced Toolchain Usage Part 3
---------------------------------------------------
Speaker: Ryan Arnold, Maxim Kuvyrkov, Will Newton, Yvan Roux
Date: February 10, 2015
---------------------------------------------------
★ Session Summary ★
This session is a continuation of the Advanced Toolchain Usage Part 1 & 2 presentations given at LCU14. Parts 3 and 4 will cover a variety of topics, such as: Linker tips and tricks, adding symbol versioning interfaces to a system library, debugging the dynamic linker, debugging applications that use malloc, gcc attributes, manually constructing a backtrace on arm & Aarch64, how to add lightweight debugging to your program, how to use a signal handler appropriately, and TLS Models on Aarch64 and when to use them.
--------------------------------------------------
★ Resources ★
Pathable: https://hkg15.pathable.com/meetings/250788
Video: https://www.youtube.com/watch?v=EhNqFCN0YJ0
Etherpad: http://pad.linaro.org/p/hkg15-207
---------------------------------------------------
★ Event Details ★
Linaro Connect Hong Kong 2015 - #HKG15
February 9-13th, 2015
Regal Airport Hotel Hong Kong Airport
---------------------------------------------------
http://www.linaro.org
http://connect.linaro.org
A small introduction on the C++14 improved static introspection of the IOD library and the C++14 web framework Silicon.
https://github.com/matt-42/silicon
https://github.com/matt-42/iod
This document provides an overview of key concepts in the first chapter of a C++ programming book, including:
1) The chapter introduces programming, algorithms, functions, classes, and the main() function in C++.
2) It describes how C++ programs are compiled and processed, and defines important terms like variables, objects, and namespaces.
3) The document explains how to use the cout object to display output in C++ using the insertion operator and escape sequences.
This document provides an introduction to programming concepts like algorithms, functions, objects, and programming style. It specifically focuses on C++ programming. Some key points covered include:
- C++ is an object-oriented programming language that combines procedural programming features from C with object-oriented capabilities.
- Programs are made up of algorithms, which are step-by-step procedures to solve problems. Functions allow breaking programs into modular pieces.
- The main() function acts as the driver that runs the program. It and other functions have specific formatting conventions.
- The cout object is used to output text to the screen using insertion operators. Libraries like iostream provide important input/output capabilities.
- Programming style guidelines promote
This document discusses how to use three C++17 vocabulary types: std::optional, std::variant, and std::any. It begins with an introduction and overview of the types. It then provides examples and explanations of how to create, access, and manipulate values for each type. Key points covered include initialization, accessing contained values, performance characteristics, and common use cases.
Integrating R with C++: Rcpp, RInside and RProtoBufRomain Francois
This document discusses integrating R with C++ using Rcpp, RInside and RProtoBuf. It provides an overview of the R API and how R supports C/C++. It then describes the key features of Rcpp, including encapsulating R objects in C++ classes, conversion between R and C++ types, and using the Rcpp API to write efficient C++ functions that integrate seamlessly with R. Examples are provided to illustrate calculating a density estimate, working with environments and lists, and using STL algorithms like std::transform to write a C++ version of lapply.
The document provides an overview of C++17's std::filesystem library. It introduces the Path class for representing file system paths, the DirectoryEntry class for modeling directory entries, and DirectoryIterator for iterating over directories. It also summarizes key support functions for querying and modifying files and directories, handling permissions, and catching errors and exceptions. Examples are provided demonstrating how to get a file size, iterate over a directory, and monitor a directory for changes using std::filesystem.
HKG15-211: Advanced Toolchain Usage Part 4
---------------------------------------------------
Speaker: Ryan Arnold, Maxim Kuvyrkov, Will Newton, Yvan Roux
Date: February 10, 2015
---------------------------------------------------
★ Session Summary ★
This session is a continuation of the Advanced Toolchain Usage Part 1 & 2 presentations given at LCU14. Parts 3 and 4 will cover a variety of topics, such as: Linker tips and tricks, adding symbol versioning interfaces to a system library, debugging the dynamic linker, debugging applications that use malloc, gcc attributes, manually constructing a backtrace on arm & Aarch64, how to add lightweight debugging to your program, how to use a signal handler appropriately, and TLS Models on Aarch64 and when to use them.
--------------------------------------------------
★ Resources ★
Pathable: https://hkg15.pathable.com/meetings/250792
Video: https://www.youtube.com/watch?v=9AcklY0Cc7U
Etherpad: http://pad.linaro.org/p/hkg15-211
---------------------------------------------------
★ Event Details ★
Linaro Connect Hong Kong 2015 - #HKG15
February 9-13th, 2015
Regal Airport Hotel Hong Kong Airport
---------------------------------------------------
http://www.linaro.org
This document provides an introduction and overview of basic process management in operating systems. It discusses the differences between a program and a process, and the steps involved in process creation and program execution. The key stages in building a program are described, including preprocessing, compilation, assembly, linking, and the roles of static and dynamic libraries. Extra notes cover compiling multiple source files and resolving external function references.
DeltaDoc is a technique that automatically generates natural language summaries of code changes from diffs. It works by symbolically executing the program to generate path predicates for statements, identifying statements that are added, removed, or have different predicates between versions, and applying summarization transformations to produce concise yet informative summaries. Evaluation found DeltaDoc summaries were on average more detailed than commit messages while being more concise, with about 89% able to cover the information in commit messages. DeltaDoc is designed to supplement or replace many existing commit messages by providing a structured, reliable summary of what changed in the code and how it impacts program behavior.
The document describes a language framework developed in a managed (.NET) environment. It includes a compiler and interpreter for a domain-specific language for product configuration. The compiler utilizes parser generators (GPLEX and GPPG) to generate lexers and parsers in C#. Design patterns like Visitor and Adapter were used. Syntax highlighting is straightforward but code completion is complex and requires an incremental AST. The framework provides a flexible architecture through plug-ins.
The document discusses several tools for wrapping C/C++ code to make it accessible from Python: Ctypes, SWIG, Pybind11, and Boost.Python. Ctypes is included with Python but requires manual wrapping, SWIG can wrap for many languages but requires additional code, Pybind11 is header-only and uses modern C++ features, and Boost.Python has wide compiler support but heavier dependencies. The document provides examples of how to use each tool and recommends Ctypes for simple C code, SWIG for multi-language projects, Pybind11 for modern C++, and Boost.Python when legacy support is needed.
The document discusses Dynamic Link Libraries (DLLs) in Windows. It explains that DLLs contain functions that can be called by other executable files or DLLs. The three main DLLs in Windows are Kernel32.dll for system functions, User32.dll for user interface tasks, and GDI32.dll for graphics functions. Other DLLs provide additional functionality like object security, common dialog boxes, and window controls. DLLs allow code and data to be shared among applications to improve efficiency.
The document discusses Clang, a C language family front-end toolkit written in C++. Clang was created at LLVM.org in 2006 and can parse C, C++, and Objective-C code. It consists of several core components like the lexer, parser, semantic analyzer, and AST (abstract syntax tree) that allow it to read code and produce LLVM IR that can be optimized and run on different systems. Clang aims to provide a better alternative to existing compilers like GCC with features like improved diagnostics, code analysis, and language support.
개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)changehee lee
The document discusses techniques for robust versioning of serialized data across changes to data structures and classes. It proposes a snapshot-based versioning system that records how to update data between different snapshots by comparing metadata and defining update functions. This allows chaining updates between multiple previous versions to reach the current one without constraining design changes or requiring conditional logic based on version numbers.
The document discusses interfaces in COM. It explains that interfaces allow invoking functions of COM objects indirectly using virtual function techniques. It shows how to define a pure abstract interface class and have implementation classes inherit the interface. Clients can call interface methods without knowing the underlying implementation class. Later sections discuss adding multiple interfaces to a class, querying for interfaces, and how a client can load and use a COM server from a DLL.
Enrichment lecture EE Technion (parts A&B) also including the subject of VHDL...Amos Zaslavsky
This document contains an outline and content for a presentation on VHDL. The presentation covers topics that were covered in lab experiments, more advanced VHDL topics, and questions. The known section reviews concepts from lab experiments including language basics, data types, processes, signals, if/case statements, and simulation. The un-known section outlines additional topics like packages, wait statements, structural descriptions using components and generate statements, and describing ROMs. The new section will cover composite data types, subprograms, files, and direct state assignments in Moore machines.
TCOD - a framework for the total cost of big data - Richard Winter - TDWI e...Richard Winter
A framework for estimating the total cost of a big data project is presented. The framework provides insight into the cost factors to be considered and how they are influenced by the choice of data platform. A spreadsheet to enable use of the framework and a report are available from the author.
This document discusses object-oriented programming (OOP) concepts in C, specifically inheritance. It provides an example of inheriting data structures in C by using memory casting to access base class members from a derived structure. While this allows representing inheritance relationships, it lacks compiler protections and the developer must be careful, as incorrect memory access could lead to runtime errors. The document questions whether constructs like constructors and virtual functions available in C++ would be needed for C inheritance implementations and says the next slides will discuss this.
Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)Igalia
This document summarizes Andy Wingo's talk at JSConf 2012 about his work on the JavaScriptCore engine. It discusses the different tiers of just-in-time compilation in JSC, including the low-level interpreter (LLInt), baseline JIT, and optimizing DFG JIT. It also covers techniques like lazy compilation, inline caching, and value profiling that JSC uses to improve performance. Finally, it mentions parallel garbage collection and how the engine is ported to different platforms.
OOP in C - Before GObject (Chinese Version)Kai-Feng Chou
This document discusses object-oriented programming concepts in C, including constructors. It explains how constructors work in C++, and how they can be simulated in C by using naming conventions and manually initializing parent and member values. The document concludes that for more complex inheritance hierarchies, it is better to use an object system like GObject that handles constructor execution order and initialization automatically.
I use this slide deck in C# trainings to cover P/Invoke. Sample code can be found at https://github.com/rstropek/Samples/tree/master/PInvoke For details see my blog at http://www.software-architects.at
2018 cosup-delete unused python code safely - englishJen Yee Hong
The talk is about doing cleanup and refactor for legacy Python code base in a safer way. I introduced several existing tools for this task and demonstrated how (surprisingly) Python ast module can also help in this case.
中文摘要:
不管是 open source 專案還是工作上,經過長時間開發累積,source code 內可能會殘留許多不再需要的 code,造成維護以及 refactor 的困難,也造成新手 trace code 時的障礙。
對 C/C++ 這類編譯式語言來說,開啟編譯器最佳化能自動清除 dead code,但對於 Python 這類動態語言,則沒有公認完美的方法。
本議程分享一些相關經驗,佐以利用 Python AST 的簡易自製工具,討論如何從較複雜的 python source tree 中,安全的清除不再需要的 code。
Code: https://github.com/PCMan/python-find-unused-func
Basic c++ 11/14 for python programmersJen Yee Hong
A short list of some common python programming patterns and their C++ equivalents. This can help programmers learn C++ in a more efficient way if he or she already knows Python.
Part of this material is used for internal training of Appier Inc, one of the leading artificial intelligence company in Asia.
Thank Appier Inc. for allowing me to share this.
The document discusses pointers and user spaces in RPG IV. It explains that pointers contain memory addresses and allow fields to be based on and dynamically allocated based on the pointer value. Pointers are used with parameter passing, multiple occurrence data structures, C functions, dynamic memory allocation, and user spaces. The document provides examples of using pointers with parameter lists, accessing trigger buffers, and dynamic memory allocation.
This document summarizes top gotchas or issues with older Oracle database versions, providing examples of outdated syntax or features no longer supported. It covers 20 topics such as using record types for inserts, temporary tables, analytic functions, writing BLOBs to files, and limitations of DBMS_OUTPUT in earlier versions. The document aims to help users of aged Oracle databases avoid problems by being aware of limitations and using alternative approaches as needed.
HKG15-211: Advanced Toolchain Usage Part 4
---------------------------------------------------
Speaker: Ryan Arnold, Maxim Kuvyrkov, Will Newton, Yvan Roux
Date: February 10, 2015
---------------------------------------------------
★ Session Summary ★
This session is a continuation of the Advanced Toolchain Usage Part 1 & 2 presentations given at LCU14. Parts 3 and 4 will cover a variety of topics, such as: Linker tips and tricks, adding symbol versioning interfaces to a system library, debugging the dynamic linker, debugging applications that use malloc, gcc attributes, manually constructing a backtrace on arm & Aarch64, how to add lightweight debugging to your program, how to use a signal handler appropriately, and TLS Models on Aarch64 and when to use them.
--------------------------------------------------
★ Resources ★
Pathable: https://hkg15.pathable.com/meetings/250792
Video: https://www.youtube.com/watch?v=9AcklY0Cc7U
Etherpad: http://pad.linaro.org/p/hkg15-211
---------------------------------------------------
★ Event Details ★
Linaro Connect Hong Kong 2015 - #HKG15
February 9-13th, 2015
Regal Airport Hotel Hong Kong Airport
---------------------------------------------------
http://www.linaro.org
This document provides an introduction and overview of basic process management in operating systems. It discusses the differences between a program and a process, and the steps involved in process creation and program execution. The key stages in building a program are described, including preprocessing, compilation, assembly, linking, and the roles of static and dynamic libraries. Extra notes cover compiling multiple source files and resolving external function references.
DeltaDoc is a technique that automatically generates natural language summaries of code changes from diffs. It works by symbolically executing the program to generate path predicates for statements, identifying statements that are added, removed, or have different predicates between versions, and applying summarization transformations to produce concise yet informative summaries. Evaluation found DeltaDoc summaries were on average more detailed than commit messages while being more concise, with about 89% able to cover the information in commit messages. DeltaDoc is designed to supplement or replace many existing commit messages by providing a structured, reliable summary of what changed in the code and how it impacts program behavior.
The document describes a language framework developed in a managed (.NET) environment. It includes a compiler and interpreter for a domain-specific language for product configuration. The compiler utilizes parser generators (GPLEX and GPPG) to generate lexers and parsers in C#. Design patterns like Visitor and Adapter were used. Syntax highlighting is straightforward but code completion is complex and requires an incremental AST. The framework provides a flexible architecture through plug-ins.
The document discusses several tools for wrapping C/C++ code to make it accessible from Python: Ctypes, SWIG, Pybind11, and Boost.Python. Ctypes is included with Python but requires manual wrapping, SWIG can wrap for many languages but requires additional code, Pybind11 is header-only and uses modern C++ features, and Boost.Python has wide compiler support but heavier dependencies. The document provides examples of how to use each tool and recommends Ctypes for simple C code, SWIG for multi-language projects, Pybind11 for modern C++, and Boost.Python when legacy support is needed.
The document discusses Dynamic Link Libraries (DLLs) in Windows. It explains that DLLs contain functions that can be called by other executable files or DLLs. The three main DLLs in Windows are Kernel32.dll for system functions, User32.dll for user interface tasks, and GDI32.dll for graphics functions. Other DLLs provide additional functionality like object security, common dialog boxes, and window controls. DLLs allow code and data to be shared among applications to improve efficiency.
The document discusses Clang, a C language family front-end toolkit written in C++. Clang was created at LLVM.org in 2006 and can parse C, C++, and Objective-C code. It consists of several core components like the lexer, parser, semantic analyzer, and AST (abstract syntax tree) that allow it to read code and produce LLVM IR that can be optimized and run on different systems. Clang aims to provide a better alternative to existing compilers like GCC with features like improved diagnostics, code analysis, and language support.
개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)changehee lee
The document discusses techniques for robust versioning of serialized data across changes to data structures and classes. It proposes a snapshot-based versioning system that records how to update data between different snapshots by comparing metadata and defining update functions. This allows chaining updates between multiple previous versions to reach the current one without constraining design changes or requiring conditional logic based on version numbers.
The document discusses interfaces in COM. It explains that interfaces allow invoking functions of COM objects indirectly using virtual function techniques. It shows how to define a pure abstract interface class and have implementation classes inherit the interface. Clients can call interface methods without knowing the underlying implementation class. Later sections discuss adding multiple interfaces to a class, querying for interfaces, and how a client can load and use a COM server from a DLL.
Enrichment lecture EE Technion (parts A&B) also including the subject of VHDL...Amos Zaslavsky
This document contains an outline and content for a presentation on VHDL. The presentation covers topics that were covered in lab experiments, more advanced VHDL topics, and questions. The known section reviews concepts from lab experiments including language basics, data types, processes, signals, if/case statements, and simulation. The un-known section outlines additional topics like packages, wait statements, structural descriptions using components and generate statements, and describing ROMs. The new section will cover composite data types, subprograms, files, and direct state assignments in Moore machines.
TCOD - a framework for the total cost of big data - Richard Winter - TDWI e...Richard Winter
A framework for estimating the total cost of a big data project is presented. The framework provides insight into the cost factors to be considered and how they are influenced by the choice of data platform. A spreadsheet to enable use of the framework and a report are available from the author.
This document discusses object-oriented programming (OOP) concepts in C, specifically inheritance. It provides an example of inheriting data structures in C by using memory casting to access base class members from a derived structure. While this allows representing inheritance relationships, it lacks compiler protections and the developer must be careful, as incorrect memory access could lead to runtime errors. The document questions whether constructs like constructors and virtual functions available in C++ would be needed for C inheritance implementations and says the next slides will discuss this.
Stranger in These Parts. A Hired Gun in the JS Corral (JSConf US 2012)Igalia
This document summarizes Andy Wingo's talk at JSConf 2012 about his work on the JavaScriptCore engine. It discusses the different tiers of just-in-time compilation in JSC, including the low-level interpreter (LLInt), baseline JIT, and optimizing DFG JIT. It also covers techniques like lazy compilation, inline caching, and value profiling that JSC uses to improve performance. Finally, it mentions parallel garbage collection and how the engine is ported to different platforms.
OOP in C - Before GObject (Chinese Version)Kai-Feng Chou
This document discusses object-oriented programming concepts in C, including constructors. It explains how constructors work in C++, and how they can be simulated in C by using naming conventions and manually initializing parent and member values. The document concludes that for more complex inheritance hierarchies, it is better to use an object system like GObject that handles constructor execution order and initialization automatically.
I use this slide deck in C# trainings to cover P/Invoke. Sample code can be found at https://github.com/rstropek/Samples/tree/master/PInvoke For details see my blog at http://www.software-architects.at
2018 cosup-delete unused python code safely - englishJen Yee Hong
The talk is about doing cleanup and refactor for legacy Python code base in a safer way. I introduced several existing tools for this task and demonstrated how (surprisingly) Python ast module can also help in this case.
中文摘要:
不管是 open source 專案還是工作上,經過長時間開發累積,source code 內可能會殘留許多不再需要的 code,造成維護以及 refactor 的困難,也造成新手 trace code 時的障礙。
對 C/C++ 這類編譯式語言來說,開啟編譯器最佳化能自動清除 dead code,但對於 Python 這類動態語言,則沒有公認完美的方法。
本議程分享一些相關經驗,佐以利用 Python AST 的簡易自製工具,討論如何從較複雜的 python source tree 中,安全的清除不再需要的 code。
Code: https://github.com/PCMan/python-find-unused-func
Basic c++ 11/14 for python programmersJen Yee Hong
A short list of some common python programming patterns and their C++ equivalents. This can help programmers learn C++ in a more efficient way if he or she already knows Python.
Part of this material is used for internal training of Appier Inc, one of the leading artificial intelligence company in Asia.
Thank Appier Inc. for allowing me to share this.
The document discusses pointers and user spaces in RPG IV. It explains that pointers contain memory addresses and allow fields to be based on and dynamically allocated based on the pointer value. Pointers are used with parameter passing, multiple occurrence data structures, C functions, dynamic memory allocation, and user spaces. The document provides examples of using pointers with parameter lists, accessing trigger buffers, and dynamic memory allocation.
This document summarizes top gotchas or issues with older Oracle database versions, providing examples of outdated syntax or features no longer supported. It covers 20 topics such as using record types for inserts, temporary tables, analytic functions, writing BLOBs to files, and limitations of DBMS_OUTPUT in earlier versions. The document aims to help users of aged Oracle databases avoid problems by being aware of limitations and using alternative approaches as needed.
This document discusses object-oriented programming (OOP) principles and functional programming (FP) concepts. It covers SOLID principles like single responsibility, open/closed principles and dependency inversion. It also discusses design patterns like command and observer patterns and how they can be expressed functionally using higher-order functions. The document notes that popular programming languages have evolved from a multiparadigm approach in the 1980s to an object-oriented dominance period, and are now becoming increasingly multiparadigm again with integrated support for functional programming concepts.
This document discusses using the C to Go translation tool c2go to translate C code implementing quicksort algorithms into Go code. It provides examples of translating simple quicksort C code, improving the translation by using a configuration file, and how c2go handles standard C functions like qsort by translating them to their Go equivalents. The examples demonstrate how c2go can generate valid Go code from C code but may require some manual fixes or configuration to handle certain data structures or language differences.
The document discusses principles of object-oriented design. It introduces the Single Responsibility Principle, which states that a class should have one and only one reason to change. It also covers the Open/Closed Principle, which states that software should be open for extension but closed for modification. Abstraction is key to achieving this. The document provides an example comparing a procedural implementation of drawing shapes that is not closed to an object-oriented implementation using polymorphism that is closed.
The document provides an introduction to C++ programming including definitions of key concepts like compilers, variables, data types, operators, and common errors. It discusses rules for naming variables in C++ and different types of errors like syntax errors, semantic errors, type errors, runtime errors, and logical errors. Code snippets demonstrating these concepts are provided along with examples of errors. Best practices for programming and naming conventions are also outlined.
This document summarizes a presentation about manipulating and transforming Notes database design elements using DXL (Domino XML). It discusses exporting Notes databases to DXL, manipulating the DXL using Java/LotusScript/XSLT, and importing the modified DXL back into Notes. It also describes tools like DXLStudio that can be used to work with DXL from Java programs or the command line.
Groovy is a dynamic language for the Java Virtual Machine that simplifies programming through features like closures, properties, and built-in support for lists, maps, ranges, and regular expressions. The latest version 1.5 adds support for Java 5 features like annotations and generics to leverage frameworks that use them. Groovy can be integrated into applications through mechanisms like JSR-223, Spring, and Groovy's own GroovyClassLoader to externalize business rules, provide extension points, and customize applications.
The document summarizes strategies for combating software entropy through principles of software design such as the single responsibility principle, open/closed principle, and dependency inversion principle. It provides examples of how to refactor code to adhere to these principles, make the software more extensible and resilient to changes. Metrics for software design like afferent/efferent couplings and instability are also discussed to measure how well code adheres to these design best practices.
The document summarizes techniques for combating software entropy through principles of software design such as the single responsibility principle, open/closed principle, and dependency inversion principle. It provides examples of how to refactor code to follow these principles by separating concerns and abstracting dependencies. Following these principles helps make software easier to change, extend, and maintain over time.
Building Services With gRPC, Docker and GoMartin Kess
gRPC is an open-source framework for building language agnostic services and clients. This hands-on session will cover techniques for building, testing and monitoring gRPC services using Docker and Go. During this session you will build a simple gRPC service and client, as well as an HTTP reverse-proxy to allow your service to also receive HTTP traffic.
1. The document discusses object oriented programming concepts like classes, objects, inheritance, and polymorphism in C++.
2. It begins with an introduction to procedural programming and its limitations. Object oriented programming aims to overcome these limitations by emphasizing data over procedures and allowing for inheritance, polymorphism, and encapsulation.
3. The document then covers key OOP concepts like classes, objects, constructors, and static class members in C++. It provides examples of creating classes and objects.
The Ring programming language version 1.7 book - Part 87 of 196Mahmoud Samir Fayed
The document discusses embedding Ring language code in C/C++ programs using Ring API functions. It provides an example C program that initializes a Ring state, runs Ring code, and deletes the state. It also describes functions for creating/deleting Ring states, running code, and getting/setting variable values. Ring states allow running Ring code from C/C++ and accessing variables. The code generator tool is described for wrapping C/C++ libraries in Ring. Configuration files define functions to wrap, and options for customizing wrapper generation.
No more Big Data Hacking—Time for a Complete ETL Solution with Oracle Data In...Jérôme Françoisse
This document discusses using Oracle Data Integrator (ODI) for Extract, Transform, Load (ETL) processes involving big data. It demonstrates how ODI can be used to run ETL jobs on Hadoop technologies like Hive, Pig, and Spark. The document shows examples of importing Hive table metadata into the ODI repository and creating physical mappings for Hive, Pig, and Spark transformations. It emphasizes that ODI provides governance, orchestration, and monitoring for big data ETL processes while leveraging native Hadoop technologies.
The Ring programming language version 1.5.3 book - Part 91 of 184Mahmoud Samir Fayed
The document discusses using a code generator to wrap C/C++ libraries for use in Ring applications. It describes the configuration file format used as input, including defining function prototypes, structures, constants, and code snippets. Running the code generator takes the configuration file and generates C header and source files that interface with the Ring API. Examples are provided wrapping Allegro functions. The generator handles type checking, conversions, and generates thorough wrapper code with little effort from the programmer.
Using FME for Interoperability between GIS and non-GIS SystemsSafe Software
This talk will describe how FME workbench can be combined with other tools and methods to produce repeatable, scalable, user-friendly workflows. An overview of an AppGeo project to develop statewide feature classes will server a case study.
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...Michael Rys
When analyzing big data, you often have to process data at scale that is not rectangular in nature and you would like to scale out your existing programs and cognitive algorithms to analyze your data. To address this need and make it easy for the programmer to add her domain specific code, U-SQL includes a rich extensibility model that allows you to process any kind of data, ranging from CSV files over JSON and XML to image files and add your own custom operators. In this presentation, we will provide some examples on how to use U-SQL to process interesting data formats with custom extractors and functions, including JSON, images, use U-SQL’s cognitive library and finally show how U-SQL allows you to invoke custom code written in Python and R.
Slides for SQL Saturday 635, Vancouver BC presentation, Vancouver BC. Aug 2017.
Survey of Program Transformation TechnologiesChunhua Liao
This document provides an overview of program transformation techniques, including string-based transformations using scripting languages, compiler-based transformations through direct modification of intermediate representations, rule-based term rewriting, and semantic patching. It discusses challenges in applying program transformations at scale and the need for reusable transformation infrastructures. Example tools that apply different techniques are described, such as Stratego/XT for term rewriting and Coccinelle for semantic patching of C code.
The document introduces the HSA Intermediate Language (HSAIL) which allows for split compilation between a high-level compiler and a finalizer compiler targeting the specific hardware. HSAIL defines a virtual instruction set architecture that provides optimization opportunities for both compilers while allowing code to run across different machines. It aims to improve performance, portability, and time to market compared to compiling directly to native instruction sets.
Similar to Open source report writing tools for IBM i Vienna 2012 (20)
What's New in WebSphere Application ServerCOMMON Europe
This document discusses features of IBM Power Systems and WebSphere Application Server. It provides an agenda that covers WebSphere Application Server V8.0, V8.5 and new installation features. It also summarizes the WebSphere Application Server family and capabilities for developing, deploying and managing applications.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
1) Power systems are increasingly virtualized, but IBM i currently lacks a way to control workloads on a system and cap specific workloads to prevent overrunning system capacity.
2) Workload groups would allow users to set the amount of processing capacity for a workload, capping it to a specified number of processors. This provides workload control and ensures unstable jobs do not impact performance.
3) Workload groups also help control licensing costs by allowing products to be licensed for less cores than the partition contains and enforcing that product is limited to the licensed number of cores.
The document discusses the benefits of IBM's Power Systems and IBM i operating system. It highlights how IBM i is designed for business needs by being totally integrated, providing legendary reliability, being virtualized by design, and enabling growth without disruption. It provides examples of customers like G.A.F. Seelig and Pantheon Automation that have benefited from lower costs, improved productivity and performance, and better support using IBM Power Systems and IBM i.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms for those who already suffer from conditions like anxiety and depression.
IBM Systems Director Navigator for i is a new web-based console for managing IBM Power Systems running IBM i 6.1 or 7.1. It contains over 300 tasks from the web-enabled functions of System i Navigator, organized into 13 categories. Additional functions from purchased LPPs like iHASM and BRMS will also be available when installed. While it includes most System i Navigator capabilities, it is initially missing some database and disk management functions, though disk management was improved in 7.1. IBM Systems Director Navigator for i is included with the operating system at no extra charge.
IBM i Trends & Directions Common Europe 2012COMMON Europe
IBM is working to enable a Smarter Planet through technologies like Big Data and optimized systems tuned for specific workloads. IBM i continues to enhance the platform through strategies that lower costs and improve flexibility. Recent developments include the Power Systems architecture and PureSystems platforms, which integrate expertise across infrastructure to improve efficiency, flexibility and simplified management.
IBM i Technology Refreshes Overview 2012 06-04COMMON Europe
IBM Power Systems introduces Technology Refreshes which provide a means to deliver operating system enhancements through PTF groups to installed releases of IBM i. A Technology Refresh includes PTFs that enable new hardware, firmware, and virtualization capabilities. It consists of a Technology Refresh PTF group and Cumulative PTF package that are tested and delivered together to provide new functionality in a manner less disruptive than a full release upgrade.
IBM Power Systems is designed for business. Major releases in the Power Systems era include IBM i 6.1, which introduced foundations for the future like solid state drive support, a Java virtual machine, and Systems Director Navigator. IBM i 6.1 also improved Java and WebSphere performance by up to 78% compared to prior releases. Customers saw benefits from migrating to newer Power Systems servers running IBM i, like reduced costs, improved reliability, and being positioned for growth.
DB2 Web Query for i is a web-based query and reporting tool that provides a modernized interface for accessing data in DB2 for i. Version 2.1 introduces simplified packaging and new features like improved mobility support, integrated report scheduling, and a consolidated development tool called InfoAssist. The application integration extension allows integrating DB2 Web Query reports and analytics into other applications through a simple URL interface to improve business intelligence capabilities.
This document provides an overview of IBM Power Systems and the next generation of IBM i Access. It discusses IBM's systems management strategy including the Hardware Management Console (HMC) and IBM Systems Director. It also outlines the IBM i Access family of products, including IBM i Access for Windows, IBM i Access for Web, and the new IBM i Access Client Solutions. The document reviews the product's configuration, console, data transfer, 5250 emulation, and deployment options. It notes that a closed beta of the new client is currently underway with a technology preview planned for July 2012.
The document provides an overview of Zend Server 5 for IBM i. It discusses Zend's relationship with IBM, the technical overview of Zend Server, the installation process, features of the community edition including the toolkit and optimizer, and features of the commercial edition such as application monitoring, code tracing, and job queue capabilities. The document is intended for an audience that uses PHP somewhere else, is new to Zend PHP, or wants to understand Zend's strategic direction with IBM i.
IBM has made major investments in RPG over many years to continually enhance and modernize it. Key updates include adding free-form syntax and object-oriented capabilities, expanding the supported data types and built-in functions, improving readability and interoperability with technologies like Java and XML, and maintaining performance and compatibility on IBM Power Systems. RPG remains a strategic language for IBM and its users.
This document summarizes a presentation on using arrays in PHP for RPG programmers. The presentation introduces different types of PHP arrays, such as enumerated, associative, and multidimensional arrays. It compares PHP arrays to RPG arrays and shows how PHP arrays are more dynamic, with no size limits and the ability to dynamically add and remove elements. The presentation also demonstrates various PHP array functions, such as sorting, searching, and manipulating elements, and provides examples of how RPG functions map to similar PHP functions. It suggests ways to debug arrays and formats sample code.
IBM Power Systems provides an overview of moving from IBM i V5R4 to 7.1. Key points include:
- IBM i 7.1 is the latest release and provides significant enhancements over prior versions.
- Moving directly from V5R4 to 7.1 is supported, though multiple upgrades may be required from earlier versions.
- A technology refresh is simpler than a major release and provides new functions without disruption.
- Planning is required to understand version dependencies and ensure a smooth upgrade path.
The document discusses MySQL and how it can be used on IBM i systems. It provides an overview of MySQL, how to install Zend DBi which provides MySQL for IBM i, and how to use various interfaces like the MySQL command line and phpMyAdmin to interact with and manage MySQL databases. It also describes how the IBM DB2 Storage Engine allows MySQL data to be stored directly in DB2 tables.
This document discusses IBM's vision for smarter computing through the integration of big data, optimized systems, and cloud computing. It highlights how companies are leveraging large volumes of data and analytics to gain business insights. IBM focuses on improving storage efficiency and management to help clients meet service levels while reducing costs in the face of rapidly growing data. Solid state disks are presented as a way to address the performance and capacity challenges of magnetic disks for storing large amounts of data.
This document provides an overview of getting started with PHP on IBM i. It discusses understanding the PHP universe and stack, installing Zend Server and Zend Studio, and getting productive with PHP on IBM i through sample scripts. The key steps are installing Zend Server, configuring it, installing Zend Studio, connecting to databases and files on IBM i, and writing simple PHP scripts to output "Hello World" and retrieve data from a database.
Developing mobile applications for i using open source tools Venna 2012COMMON Europe
This document provides an agenda for a session on developing mobile applications using open source tools. The session will cover the differences between web, mobile web, and native mobile applications. It will demonstrate how to modify existing web applications for mobile and create native mobile apps. Topics include rethinking web development for mobile, examples of refactoring classic web designs, and using frameworks to develop Android apps. Code demos are provided of mobile web apps connecting to an IBM i system.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
OpenID AuthZEN Interop Read Out - AuthorizationDavid Brossard
During Identiverse 2024 and EIC 2024, members of the OpenID AuthZEN WG got together and demoed their authorization endpoints conforming to the AuthZEN API
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
Webinar: Designing a schema for a Data WarehouseFederico Razzoli
Are you new to data warehouses (DWH)? Do you need to check whether your data warehouse follows the best practices for a good design? In both cases, this webinar is for you.
A data warehouse is a central relational database that contains all measurements about a business or an organisation. This data comes from a variety of heterogeneous data sources, which includes databases of any type that back the applications used by the company, data files exported by some applications, or APIs provided by internal or external services.
But designing a data warehouse correctly is a hard task, which requires gathering information about the business processes that need to be analysed in the first place. These processes must be translated into so-called star schemas, which means, denormalised databases where each table represents a dimension or facts.
We will discuss these topics:
- How to gather information about a business;
- Understanding dictionaries and how to identify business entities;
- Dimensions and facts;
- Setting a table granularity;
- Types of facts;
- Types of dimensions;
- Snowflakes and how to avoid them;
- Expanding existing dimensions and facts.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Project Management Semester Long Project - Acuityjpupo2018
Acuity is an innovative learning app designed to transform the way you engage with knowledge. Powered by AI technology, Acuity takes complex topics and distills them into concise, interactive summaries that are easy to read & understand. Whether you're exploring the depths of quantum mechanics or seeking insight into historical events, Acuity provides the key information you need without the burden of lengthy texts.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.