Applying Real-time SQL Changes in your Hazelcast Data GridHazelcast
This document discusses using Speedment and Hazelcast to automatically scale out existing SQL databases. Speedment monitors databases for changes and reflects those changes in distributed Hazelcast maps in real-time. It generates code to represent database tables as Java POJOs, managers to interact with the POJOs, and configuration to integrate everything with Hazelcast. Users can then access and modify database data using the Hazelcast maps without changing their code, achieving automatic horizontal scaling of the SQL data. The process involves connecting an existing database, running Speedment to generate the associated code, and adding a few lines to integrate with an existing Hazelcast instance.
Python uses different allocators and memory pools to manage object memory. Small integer and single character objects are stored in pools directly initialized by the interpreter to save memory. Other objects like strings and containers are stored on the heap with reference counting. The garbage collector uses reference counting and mark-and-sweep to collect unreachable objects and free memory.
The document discusses abstract syntax trees (AST) and code analysis tools in Python. It provides an overview of AST concepts like nodes, visitors and transformers. It also demonstrates examples of parsing, modifying and printing ASTs. Opportunities for AST applications include constant propagation, automatic logging/profiling, macros and extending Python's language. Threats include debug glitches and compiler version dependencies. Recommendations are made to improve testing tools and integrate with version control systems.
The document discusses nose-parameterized, a Python library that allows test cases to be dynamically generated from parameterized data. It provides an example of using nose-parameterized to test an add function with different input parameters. The document also lists some use cases, such as generating many tests with different parameters to write less code, and testing APIs by parameterizing different input and expected output JSON blobs. It concludes by providing the GitHub link for nose-parameterized and a note that the speaker's company is hiring full stack Django developers.
This document provides an overview of Python fundamentals including basic concepts like data types, operators, flow control, functions and classes. It begins with an introduction to Python versions and environments. The outline covers topics like Hello World, common types and operators for numeric, string and container data types. It also discusses flow control structures like if/else, while loops and for loops. Finally, it briefly mentions functions, classes, exceptions and file I/O.
Robert Bernier - Recovering From A Damaged PostgreSQL Cluster @ Postgres OpenPostgresOpen
The document discusses recovering from a damaged PostgreSQL cluster. It provides examples of dropping and recreating indexes and sequences when files are corrupted. It also describes using single-user mode to rebuild system catalogs and vacuuming and reindexing tables in a database. Recreating the entire data cluster on another machine is recommended when significant damage occurs.
R is a free software environment for statistical computing and graphics. It provides statistical techniques and is highly extensible. Packages can be installed from repositories like CRAN and BioConductor to expand R's functionality. Basic plots can be created using functions like plot() and hist(). Data can be imported from files and bound together from multiple files into a single data frame.
Applying Real-time SQL Changes in your Hazelcast Data GridHazelcast
This document discusses using Speedment and Hazelcast to automatically scale out existing SQL databases. Speedment monitors databases for changes and reflects those changes in distributed Hazelcast maps in real-time. It generates code to represent database tables as Java POJOs, managers to interact with the POJOs, and configuration to integrate everything with Hazelcast. Users can then access and modify database data using the Hazelcast maps without changing their code, achieving automatic horizontal scaling of the SQL data. The process involves connecting an existing database, running Speedment to generate the associated code, and adding a few lines to integrate with an existing Hazelcast instance.
Python uses different allocators and memory pools to manage object memory. Small integer and single character objects are stored in pools directly initialized by the interpreter to save memory. Other objects like strings and containers are stored on the heap with reference counting. The garbage collector uses reference counting and mark-and-sweep to collect unreachable objects and free memory.
The document discusses abstract syntax trees (AST) and code analysis tools in Python. It provides an overview of AST concepts like nodes, visitors and transformers. It also demonstrates examples of parsing, modifying and printing ASTs. Opportunities for AST applications include constant propagation, automatic logging/profiling, macros and extending Python's language. Threats include debug glitches and compiler version dependencies. Recommendations are made to improve testing tools and integrate with version control systems.
The document discusses nose-parameterized, a Python library that allows test cases to be dynamically generated from parameterized data. It provides an example of using nose-parameterized to test an add function with different input parameters. The document also lists some use cases, such as generating many tests with different parameters to write less code, and testing APIs by parameterizing different input and expected output JSON blobs. It concludes by providing the GitHub link for nose-parameterized and a note that the speaker's company is hiring full stack Django developers.
This document provides an overview of Python fundamentals including basic concepts like data types, operators, flow control, functions and classes. It begins with an introduction to Python versions and environments. The outline covers topics like Hello World, common types and operators for numeric, string and container data types. It also discusses flow control structures like if/else, while loops and for loops. Finally, it briefly mentions functions, classes, exceptions and file I/O.
Robert Bernier - Recovering From A Damaged PostgreSQL Cluster @ Postgres OpenPostgresOpen
The document discusses recovering from a damaged PostgreSQL cluster. It provides examples of dropping and recreating indexes and sequences when files are corrupted. It also describes using single-user mode to rebuild system catalogs and vacuuming and reindexing tables in a database. Recreating the entire data cluster on another machine is recommended when significant damage occurs.
R is a free software environment for statistical computing and graphics. It provides statistical techniques and is highly extensible. Packages can be installed from repositories like CRAN and BioConductor to expand R's functionality. Basic plots can be created using functions like plot() and hist(). Data can be imported from files and bound together from multiple files into a single data frame.
This document provides examples of built-in functions and decorators in Python like map, filter, all, any, getattr, hasattr, setattr, callable, isinstance, issubclass, closures, and memoization decorators. It demonstrates how to use these functions and decorators through examples. Built-in functions like map, filter and decorators allow extending functionality of functions. Closures enable functions to remember values in enclosing scopes. The @decorator syntax is demonstrated to be equivalent to applying a function to another function.
This SQL stored procedure performs a multi-step personnel search based on various criteria. It begins with an initial standard search, then applies additional filters for user tags, available dates, contracts, text searches, certification requirements, and personnel statuses to refine the results into a final output table. Temporary tables and dynamic SQL statements are used to sequentially apply each filter and move the results to the next stage.
This one is about advanced indexing in PostgreSQL. It guides you through basic concepts as well as through advanced techniques to speed up the database.
All important PostgreSQL Index types explained: btree, gin, gist, sp-gist and hashes.
Regular expression indexes and LIKE queries are also covered.
This document discusses statistical computing in RStudio. It covers importing and browsing data, data types, and hands-on exercises. It also demonstrates basic math operations, using packages, getting help, and best practices for creating R documents.
The document defines variables for use in dashboards for MySQL, Elasticsearch, Graphite, InfluxDB, and Prometheus. It includes variable definitions to select values like hostnames, filters, sources, and time intervals that can be used for filtering and aggregating metrics from each system.
The document discusses Python generators and how they can be used for iterating over lists, tuples, dictionaries, strings, files and custom iterable objects. It provides examples of using generators and the yield keyword to iterate over a countdown and generate values. The document also discusses two problems - analyzing log files using generators and finding files matching patterns using the os.walk generator.
The document introduces the Python programming language. It discusses Python's interpretor, data types like integers and strings, control structures like if/else statements and for loops, functions, classes, libraries, and input/output. It provides examples of key Python concepts like boolean logic, lists, dictionaries, regular expressions, and socket programming.
This document discusses six Python packages that are useful to know:
1. First - A utility for selecting the first successful result from a sequence of functions.
2. Parse - A library for parsing Python format strings and extracting values.
3. Filecmp - A module for comparing files and directories.
4. Bitrot - A tool for detecting silent data corruption in files.
5. Docopt - A tool for generating command-line interfaces from a docstring.
6. Six - A library for writing code that is compatible with both Python 2 and Python 3.
Elixir is a functional programming language that is well-suited for building scalable and fault-tolerant applications. The document provides an introduction to Elixir by discussing its roots in Erlang and how it builds upon Erlang's strengths like concurrency, distribution, and fault tolerance. It also demonstrates some basic Elixir concepts like functions, pattern matching, recursion, and the BEAM virtual machine. Finally, it provides examples of real-world applications of Elixir like building Phoenix web applications and developing embedded hardware projects with Nerves.
Here are the R commands to create the requested graph from the MASS leuk dataset and save it as MASSleuk.jpeg:
```r
data(leuk)
windows()
par(mfrow=c(2,2))
plot(leuk$time, main="Scatter plot of time", ylab="time")
hist(leuk$time, main="Histogram of time", xlab="time")
boxplot(leuk$time, main="Boxplot of time")
qqnorm(leuk$time); qqline(leuk$time)
dev.copy(png, "MASSleuk.jpeg")
```
This will open a graphics window,
The document describes HiveQL commands for creating, altering, and dropping databases, tables, views, and indexes. It also covers built-in functions, SELECT queries with filters, sorting, grouping, and joins. Key commands include CREATE DATABASE, CREATE TABLE, LOAD DATA, ALTER TABLE, DROP TABLE, SELECT, GROUP BY, and JOIN.
This document provides instructions on how to start, stop, restart, and validate a Solr server. It also describes how to create and delete cores/collections, modify schemas, index data, and perform queries, sorting, highlighting, and faceted search on indexed data.
This document provides an agenda and overview for a MySQL Query Tuning 101 presentation. The summary includes:
1. The agenda covers topics like identifying slow queries, using indexes, the EXPLAIN tool, and other optimization techniques.
2. When queries run slow, the presenter will discuss using indexes to improve performance by allowing MySQL to access data more efficiently.
3. The EXPLAIN tool is covered as a way to estimate query execution and see how MySQL utilizes indexes. Different EXPLAIN output will be demonstrated using examples from an employees database.
The document provides instructions on restarting HDFS and HBase, general HBase commands, data definition and manipulation commands in HBase, and security commands like grant and revoke. It includes the syntax and examples for commands like create, list, describe, put, get, delete, scan, count, grant and revoke.
The document describes using bootstrap aggregation (bagging) with naive Bayes classification on a heart disease dataset. It performs 100 bootstrap iterations, training a naive Bayes model on each resampled dataset and making predictions on the out-of-bag data. Performance is evaluated using mean and variance of accuracy, kappa, and other metrics across the 100 models. Leave-one-out cross-validation is also used to directly evaluate the naive Bayes model on each observation.
This document provides an introduction to cost based optimization. It discusses key concepts like selectivity, cardinality, histograms, and correlation issues. The author is Riyaj Shamsudeen, an Oracle expert with 18 years of experience. Sample code and examples are provided to illustrate how to calculate selectivity and cardinality accurately to improve query optimization. Extended statistics are highlighted as a way to address correlation between column predicates in Oracle 11g and above.
PyWPS is an open source Python implementation of the OGC Web Processing Service standard. It allows users to publish and discover geospatial processes that can be invoked remotely through a RESTful API. Some key points about PyWPS include that it supports all geospatial tools available in Python, uses standards like WFS and WCS, and allows processes to be run asynchronously and in isolated containers. The current version, PyWPS 4.0.0, features improvements like enhanced data validation, multiprocessing support, and an updated codebase to work with newer Python and geospatial technologies.
This document provides examples of built-in functions and decorators in Python like map, filter, all, any, getattr, hasattr, setattr, callable, isinstance, issubclass, closures, and memoization decorators. It demonstrates how to use these functions and decorators through examples. Built-in functions like map, filter and decorators allow extending functionality of functions. Closures enable functions to remember values in enclosing scopes. The @decorator syntax is demonstrated to be equivalent to applying a function to another function.
This SQL stored procedure performs a multi-step personnel search based on various criteria. It begins with an initial standard search, then applies additional filters for user tags, available dates, contracts, text searches, certification requirements, and personnel statuses to refine the results into a final output table. Temporary tables and dynamic SQL statements are used to sequentially apply each filter and move the results to the next stage.
This one is about advanced indexing in PostgreSQL. It guides you through basic concepts as well as through advanced techniques to speed up the database.
All important PostgreSQL Index types explained: btree, gin, gist, sp-gist and hashes.
Regular expression indexes and LIKE queries are also covered.
This document discusses statistical computing in RStudio. It covers importing and browsing data, data types, and hands-on exercises. It also demonstrates basic math operations, using packages, getting help, and best practices for creating R documents.
The document defines variables for use in dashboards for MySQL, Elasticsearch, Graphite, InfluxDB, and Prometheus. It includes variable definitions to select values like hostnames, filters, sources, and time intervals that can be used for filtering and aggregating metrics from each system.
The document discusses Python generators and how they can be used for iterating over lists, tuples, dictionaries, strings, files and custom iterable objects. It provides examples of using generators and the yield keyword to iterate over a countdown and generate values. The document also discusses two problems - analyzing log files using generators and finding files matching patterns using the os.walk generator.
The document introduces the Python programming language. It discusses Python's interpretor, data types like integers and strings, control structures like if/else statements and for loops, functions, classes, libraries, and input/output. It provides examples of key Python concepts like boolean logic, lists, dictionaries, regular expressions, and socket programming.
This document discusses six Python packages that are useful to know:
1. First - A utility for selecting the first successful result from a sequence of functions.
2. Parse - A library for parsing Python format strings and extracting values.
3. Filecmp - A module for comparing files and directories.
4. Bitrot - A tool for detecting silent data corruption in files.
5. Docopt - A tool for generating command-line interfaces from a docstring.
6. Six - A library for writing code that is compatible with both Python 2 and Python 3.
Elixir is a functional programming language that is well-suited for building scalable and fault-tolerant applications. The document provides an introduction to Elixir by discussing its roots in Erlang and how it builds upon Erlang's strengths like concurrency, distribution, and fault tolerance. It also demonstrates some basic Elixir concepts like functions, pattern matching, recursion, and the BEAM virtual machine. Finally, it provides examples of real-world applications of Elixir like building Phoenix web applications and developing embedded hardware projects with Nerves.
Here are the R commands to create the requested graph from the MASS leuk dataset and save it as MASSleuk.jpeg:
```r
data(leuk)
windows()
par(mfrow=c(2,2))
plot(leuk$time, main="Scatter plot of time", ylab="time")
hist(leuk$time, main="Histogram of time", xlab="time")
boxplot(leuk$time, main="Boxplot of time")
qqnorm(leuk$time); qqline(leuk$time)
dev.copy(png, "MASSleuk.jpeg")
```
This will open a graphics window,
The document describes HiveQL commands for creating, altering, and dropping databases, tables, views, and indexes. It also covers built-in functions, SELECT queries with filters, sorting, grouping, and joins. Key commands include CREATE DATABASE, CREATE TABLE, LOAD DATA, ALTER TABLE, DROP TABLE, SELECT, GROUP BY, and JOIN.
This document provides instructions on how to start, stop, restart, and validate a Solr server. It also describes how to create and delete cores/collections, modify schemas, index data, and perform queries, sorting, highlighting, and faceted search on indexed data.
This document provides an agenda and overview for a MySQL Query Tuning 101 presentation. The summary includes:
1. The agenda covers topics like identifying slow queries, using indexes, the EXPLAIN tool, and other optimization techniques.
2. When queries run slow, the presenter will discuss using indexes to improve performance by allowing MySQL to access data more efficiently.
3. The EXPLAIN tool is covered as a way to estimate query execution and see how MySQL utilizes indexes. Different EXPLAIN output will be demonstrated using examples from an employees database.
The document provides instructions on restarting HDFS and HBase, general HBase commands, data definition and manipulation commands in HBase, and security commands like grant and revoke. It includes the syntax and examples for commands like create, list, describe, put, get, delete, scan, count, grant and revoke.
The document describes using bootstrap aggregation (bagging) with naive Bayes classification on a heart disease dataset. It performs 100 bootstrap iterations, training a naive Bayes model on each resampled dataset and making predictions on the out-of-bag data. Performance is evaluated using mean and variance of accuracy, kappa, and other metrics across the 100 models. Leave-one-out cross-validation is also used to directly evaluate the naive Bayes model on each observation.
This document provides an introduction to cost based optimization. It discusses key concepts like selectivity, cardinality, histograms, and correlation issues. The author is Riyaj Shamsudeen, an Oracle expert with 18 years of experience. Sample code and examples are provided to illustrate how to calculate selectivity and cardinality accurately to improve query optimization. Extended statistics are highlighted as a way to address correlation between column predicates in Oracle 11g and above.
PyWPS is an open source Python implementation of the OGC Web Processing Service standard. It allows users to publish and discover geospatial processes that can be invoked remotely through a RESTful API. Some key points about PyWPS include that it supports all geospatial tools available in Python, uses standards like WFS and WCS, and allows processes to be run asynchronously and in isolated containers. The current version, PyWPS 4.0.0, features improvements like enhanced data validation, multiprocessing support, and an updated codebase to work with newer Python and geospatial technologies.
Lazy evaluation in Python delays the evaluation of expressions until their values are needed. It enables infinite data structures by lazily evaluating sequences, abstracts control structures using generators and generator expressions that follow the iterator protocol. Lazy evaluation provides performance benefits in both computation time and memory usage.
Ansible is a tool for configuration management and application deployment. It works by connecting to target systems using SSH and executing commands. Ansible has simple definitions for describing system configurations and states using YAML files and modules written in Python. Modules allow Ansible to assess system states, make changes idempotently to ensure systems match the defined states. Ansible is highly modular and has many contributors due to its architecture, examples, documentation and an active community.
This document discusses object-oriented programming concepts in Python including multiple inheritance, method resolution order, method overriding, and static and class methods. It provides examples of multiple inheritance where a class inherits from more than one parent class. It also explains method resolution order which determines the search order for methods and attributes in cases of multiple inheritance. The document demonstrates method overriding where a subclass redefines a method from its parent class. It describes static and class methods in Python, noting how static methods work on class data instead of instance data and can be called through both the class and instances, while class methods always receive the class as the first argument.
This document discusses a presentation on advanced uses of generators in Python. It covers context managers, which allow entry and exit actions for code blocks using the 'with' statement. Generators can be used to implement context managers via the yield keyword and decorator contextmanager. This transforms generator functions into objects that support the required __enter__ and __exit__ methods to monitor code block execution. The presentation aims to expand understanding of generators beyond iteration by exploring this technique for simplifying resource management tasks like file handling through context managers.
This document provides an overview of a tutorial on mastering Python 3 I/O. The tutorial will cover the reimplemented I/O system in Python 3, including text handling, formatting, binary data handling, the new I/O stack, system interfaces, and library design issues. It assumes some familiarity with how I/O works in Python 2 and will take a detailed tour of the changes in Python 3.
This document provides an introduction to concurrency in Python using threads. It discusses how threads allow programs to perform multiple tasks simultaneously by sharing system resources like memory. The document covers basic threading concepts like creating and launching threads, as well as challenges like accessing shared data between threads, which can be non-deterministic due to thread scheduling. It aims to provide an overview of concurrency support in the Python standard library beyond just the user manual.
An immersive workshop at General Assembly, SF. I typically teach this workshop at General Assembly, San Francisco. To see a list of my upcoming classes, visit https://generalassemb.ly/instructors/seth-familian/4813
I also teach this workshop as a private lunch-and-learn or half-day immersive session for corporate clients. To learn more about pricing and availability, please contact me at http://familian1.com
This document summarizes a presentation about hacking Ansible to make it more customizable. It discusses how Ansible's plugin system allows it to be extended through modules, filters, lookups, callbacks and caches. Examples are provided of extending Ansible's core functionality by modifying files in the lib directory and writing custom plugins. The presentation also outlines how Ansible's object model works and provides an overview of its growth in modules and plugins over time.
pg_proctab: Accessing System Stats in PostgreSQLMark Wong
pg_proctab is a collection of PostgreSQL stored functions that provide access to the operating system process table using SQL. We'll show you which functions are available and where they collect the data, and give examples of their use to collect processor and I/O statistics on SQL queries. These stored functions currently only work on Linux-based systems.
The document discusses using pg_proctab, a PostgreSQL extension that provides functions to query operating system process and statistics tables from within PostgreSQL. It demonstrates how to use pg_proctab to monitor CPU and memory usage, I/O, and other process-level metrics for queries. The document also shows how to generate custom reports on database activity and performance by taking snapshots before and after queries and analyzing the differences.
The document discusses different types of testing including unit tests, integration tests, and functional tests. It provides an overview of the unittest, doctest, zope.testing, ZopeTestCase, PortalTestCase, and PloneTestCase frameworks for testing in Python, Zope, and Plone. Examples are given of how to write and organize tests using these frameworks.
Mark Wong
pg_proctab is a collection of PostgreSQL stored functions that provide access to the operating system process table using SQL. We'll show you which functions are available and where they collect the data, and give examples of their use to collect processor and I/O statistics on SQL queries.
pg_proctab: Accessing System Stats in PostgreSQLMark Wong
pg_proctab is a collection of PostgreSQL stored functions that provide access to the operating system process table using SQL. We'll show you which functions are available and where they collect the data, and give examples of their use to collect processor and I/O statistics on SQL queries.
Les tests unitaires se sont pas limités au code des applications, des tests peuvent également être effectués sur les données et les schémas des bases de données.
Conférence donnée lors du meetup PostgreSQL le 22 juin 2016 à Nantes
Стажировка 2016-07-27 02 Денис Нелюбин. PostgreSQL и jsonbSmartTools
The document discusses using PostgreSQL and JSONB data. It covers installing PostgreSQL, connecting to a database, configuring network access and authentication, creating a database and user, inserting and querying JSONB data using operators like ->> and ->, updating and deleting rows, and creating a functional index to query on fields within the JSONB data.
This document provides information about the GDG DevFest Kyoto 2014 event, including details about the operating system, software versions, and tutorials on using Go, Git/Mercurial, SQL, OpenCV, and the Gobot framework for controlling robots and drones.
This document discusses container security and analyzes potential vulnerabilities in Docker containers. It describes how containers may not fully isolate processes and how an attacker could escape a container to access the host machine via avenues like privileged containers, kernel exploits, or Docker socket access. It provides examples of container breakouts using these methods and emphasizes the importance of security features like seccomp, AppArmor, cgroups to restrict containers. The document encourages readers to apply security best practices like the Docker Bench tool to harden containers.
Aiming at complete code coverage by unit tests tends to be cumbersome, especially for cases where external API calls a part of the code base. For these reasons, Python comes with the unittest.mock library, appearing to be a powerful companion in replacing parts of the system under test.
pg_proctab: Accessing System Stats in PostgreSQLMark Wong
pc_proctab is a collection of PostgreSQL stored functions that allow you to access the operating system process table using SQL. See examples on how to use these stored functions to collect processor and I/O statistics on SQL statements run against the database.
ACM Bay Area Data Mining Workshop: Pattern, PMML, HadoopPaco Nathan
ACM: Hands-On Workshop for Predictive Modeling and Enterprise Data Workflows with PMML and Cascading
2013-10-12
http://www.sfbayacm.org/event/hands-workshop-predictive-modeling-and-enterprise-data-workflows-pmml-and-cascading
This document discusses concurrency features in Groovy and GPars. It highlights useful Groovy features for concurrency like closures, immutable collections, and annotation support. It also discusses common concurrency libraries and tools that can be used with Groovy like GPars, Google Collections, and Actors. The document provides examples of how Groovy improves on Java for concurrency tasks through features like closures, immutable types, and domain specific languages.
Characteristics of Java and basic programming constructs like Data types, Variables, Operators, Control Statements, Arrays are discussed with relevant examples
This document provides an introduction to test-driven development (TDD) and unit testing in PHP. It discusses where to start with TDD, what unit tests are, and tools to use like PHPUnit. It covers the red-green-refactor TDD cycle and topics like mocking dependencies, handling file systems and databases in tests, and continuous integration. The goal is to help PHP developers get started with TDD.
This document contains solutions to questions from a computer science examination. It includes questions on topics like Python, Pandas, SQL, data visualization, and computer networks. The solutions demonstrate how to write Python code to create and manipulate dataframes, plot charts, and perform SQL queries. Examples of network topologies and devices like switches, modems, and gateways are also provided. The document aims to test students' understanding of key concepts in informatics practices.
Talk given in French at ConFoo 2015
Le TDD (Test Driven Development) gagne en popularité dans la communauté PHP. C’est maintenant une pratique accepté. Mais commencer peut sembler difficile.
Dans cette session, nous allons voir ce qu’est le TDD. Nous allons commencer par voir les principes. Puis les outils utilisés, et comment s’en servir au quotidien. Nous allons aussi voir les difficultés souvent rencontrées et comment les contourner.
Similar to Python testing-frameworks overview (20)
This document discusses the limitations of the shapefile format and promotes the use of the OGC GeoPackage format as an alternative. It outlines 11 issues with shapefiles, including their multi-file structure, limited attribute name lengths, maximum file size and number of attributes. It then introduces GeoPackages as a single-file SQLite-based format that supports both vector and raster data, has a defined schema and is an open OGC standard implemented in many software programs like QGIS and ArcGIS. The document argues that GeoPackages provide a more sustainable and full-featured replacement for shapefiles.
Just some thoughts, about costs and price of using and developing free and open source software from the point of view of business, developer and society.
Testing web mapping applications and services using Python provides concise summaries in 3 sentences or less:
The document discusses using Python for testing web mapping applications and services, including unit, integration, and system testing. It provides an example of using Selenium to test a web map application, writing tests to interact with elements and assert expected behavior. Implementing tests in Python makes the process easy and allows new programmers to get involved, helping to catch bugs and improve software quality.
Danube hack 2015 - Open (-data, -communities)Jachym Cepicky
This document discusses open communities and how they work. It provides tips for helping open communities grow, such as getting people together, organizing inclusive events like hackathons and code sprints, connecting people through online forums and mailing lists, and having a common goal for the community to work towards. The document also discusses open source software, open data, open standards, and how these elements can work together in open communities.
The document discusses how the city of Prague opened its spatial data. It describes how Prague worked with non-governmental organizations to hold hackathons to evaluate the data and technologies. Based on these events and user surveys, Prague established a technical and legal framework for opening its data using open standards and services. The city's Institute for Planning and Development then began publishing spatial data on a new open data portal, making datasets available through Atom feeds with Creative Commons licensing. This has increased access to and reuse of Prague's spatial data.
What can open source do for your business?
Or maybe better: what can your business do for open source?
Slides inspired by @Arnulf Christl http://www.slideshare.net/arnulfchristl/open-standards-open-source-open-data
Jachym Cepicky gave a status report on PyWPS. PyWPS is an implementation of the OGC WPS standard written in Python. Version 4 is being rewritten to take advantage of improvements in Python and geospatial libraries since version 1 was created in 2006. Version 4.0 includes validators, a server based on Werkzeug, an IOHandler, and file storage. Version 4.1 is planned to include output via GeoServer, MapServer and QGIS, a REST API, and database/external storage. Progress has been limited by lack of resources for the open source project.
The document discusses the transition of Geosense's mapping portal from OpenLayers 2 to OpenLayers 3. Some key points made:
- Geosense wanted to replace their old OpenLayers 2-based portal which had performance issues with large datasets.
- After attending FOSS4G in 2014 and seeing OpenLayers 3 presentations, Geosense decided to rewrite the portal from scratch using OpenLayers 3.
- The new portal using OpenLayers 3 is faster, handles 10,000 features with 300KB of code, and allows both map-centric and data-centric views of data.
This document provides an overview of PyWPS, an open source Python library for implementing OGC Web Processing Services (WPS). It discusses what PyWPS is and is not, provides code examples of defining and executing a buffer process, and outlines the project's history and future directions. Key points are that PyWPS allows connecting Python and other tools to perform geospatial analyses as WPS processes, is lightweight and modular, and a new version (PyWPS 4) is being developed to improve performance and compatibility.
The document compares the performance of several open source web mapping frameworks - OpenLayers 2, OpenLayers 3, and Leaflet. It conducted tests rendering and panning points, lines, and polygons using these frameworks. OpenLayers 3 API Branch had the best performance, followed by Leaflet 0.8-dev, with OpenLayers 2 Canvas also performing well. The document discusses optimizations like using Canvas instead of DOM for rendering and the potential of WebGL.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
3. What am I doing here?
Facts
Jachym Cepicky
GIS (maps in computer)
Open source software
Not facts
not a tester
not educated software engineer
nor GIS educated
3 / 26
4. What am I doing here?
Me: confused py.test with doctest
4 / 26
11. Summary
Making sure, that the system
meets the requirements that guided its design and development,
responds correctly to all kinds of inputs,
performs its functions within an acceptable time,
is sufficiently usable,
can be installed and run in its intended environments, and
achieves the general result its stakeholders desire.
https://en.wikipedia.org/wiki/Software_testing
11 / 26
14. Unittest
https://docs.python.org/3/library/unittest.html
originally inspired by JUnit (inspired by SUnit for Smalltalk, since 1998)
https://shebanator.com/2007/08/21/a-brief-history-of-test-frameworks/
Pros
Native framework
Testing methods
Supported everywhere
Auto discovery of test classes and functions
Cons
Classes
Testing methods
Complicated (for some people)
Lack of Group fixtures (specified environment for a whole group)
Still better to separate testing code from business logic
Unit-test oriented
14 / 26
15. import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())
def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
15 / 26
16. $ python my_unittest.py
.F.
======================================================================
FAIL: test_split (__main__.TestStringMethods)
----------------------------------------------------------------------
Traceback (most recent call last):
File "neco.py", line 14, in test_split
self.assertEqual(s.split(), ['hellox', 'world'])
AssertionError: Lists differ: ['hello', 'world'] != ['hellox', 'world']
First differing element 0:
'hello'
'hellox'
- ['hello', 'world']
+ ['hellox', 'world']
? +
----------------------------------------------------------------------
Ran 3 tests in 0.001s
FAILED (failures=1)
16 / 26
21. def unique_words(page):
''' Returns set of the unique words in list of lines of text
Example:
>>> from StringIO import StringIO
>>> fileText = """the cat sat on the mat
... the mat was ondur the cat
... one fish two fish red fish
... blue fish
... This fish has a yellow car
... This fish has a yellow star"""
>>> file = StringIO(fileText)
>>> page = file.readlines()
>>> words = unique_words(page)
>>> print sorted(list(words))
["This", "a", "blue", "car", "cat", "fish", "has", "mat",
"on", "ondur", "one", "red", "sat", "star", "the", "two",
"was", "yellow"]
>>>
'''
return set(word for line in page for word in line.split())
def _test():
import doctest
doctest.testmod()
if __name__ == "__main__":
_test()
21 / 26
23. nose (nose2)
nose extends unittest to make testing easier
smart developer should get familiar doctest, unittest, pytest, and nose
https://pypi.python.org/pypi/nose/ --> new projects should use py.test or
nose2
https://github.com/nose-devs/nose2
Pros
Build on top of unittests
Overpasses some of it's limits
Command line tool
Cons
nose not maintained any more --> nose2
Not native
Under development (nose2)
23 / 26
25. Conclusion
Doctests != py.test
Doctests are the natural way, how to test your code and how to document
it
Doctests should be used for documentation, not for testing
py.test seems to be current leading testing framework
Event /me knows, what is the difference between doctests and py.test
25 / 26