Presented at FOSS4-G Europe 2014, Bremen
Authors:
Daniel Nüst (d.nuest@52north.org, 52°North GmbH)
Matthes Rieke (m.rieke@52north.org, 52°North GmbH)
Paul Breen (pbree@bas.ac.uk, British Antarctic Survey)
More and more information technology is moving into a cloud-based infrastructures for both data storage as well as user interfaces and leverages browser technologies, i.e. Javascript and HTML5, also for mobile devices. Users always use the latest version and the environment is well controlled: an internet browser. General purpose libraries (e.g. jQuery) and web-application frameworks (e.g. AngularJS) facilitate the development of complex applications. In the geospatial domain such frameworks and libraries are combined with mapping libraries, such as OpenLayers (OL) or Leaflet, and visualisation libraries to build complex applications. These applications display geospatial data coming from standardized view and feature services, most importantly the Open Geospatial Consortium’s (OGC) Web Map Service (WMS) and Web Features Service (WFS). Both server and client libraries are mature and have reached a very stable level and wide distribution.
What is missing today are generic libraries that operate at the same level of performance and quality to (i) access observation and time series data coming from OGC Sensor Observation Services (SOS), and (ii) control online geoprocesses published as an OGC Web Processing Service (WPS). These standards are less widespread than W(M,F)S but gain momentum as data volumes increase, for example with a myriad of smart sensors in the internet of things or new EO satellite missions, and subsequent requirements for sophisticated architectures for processing and management of time series data.
Observing these developments lead to the birth of two new open source Javascript library projects that are presented in this talk. SOS.js (https://github.com/52North/sos-js) can access SOS data and be used for sophisticated lightweight browser applications for discovering and displaying time series data as plots, tables, and maps. wps-js (https://github.com/52North/wps-js/) is a client library for the WPS generating forms based on the standardized metadata from the service and interactively creating and submitting processing tasks.
During the talk we demonstrate applications build with the libraries and share experiences from development. A goal for both libraries is to become independent of OL for request and response encoding and provide service access with a minimal footprint. We see an advantage of developing such small and focussed libraries maintained by field experts in these non-mainstream domains. We’ll happily discuss if this is the best approach and pose the following question: Is there a (technical, organisational) way to build a compatible Javascript client frameworks across all geo-service standards?
Report
Share
Report
Share
1 of 31
More Related Content
Similar to JavaScript Client Libraries for the (Former) Long Tail of OGC Standards
20 Most Helpful Node.JS Open Source Projects.pdfiDataScientists
Node or Node.js is a software development program platform primarily based totally on the V8 engine, which turns JavaScript from a quite specialized language right into a general-reason app development language. Node.js provides the capacity of JavaScript to engage with I / O gadgets thru its API, join different outside libraries written in unique languages, supplying calls to them from JavaScript code.
Slides of my "Open Innovation in Software Means Open Source Software" talk, OSS Watch, Oxford Dec.12th, 2009 (http://www.oss-watch.ac.uk/events/2009-12-07_business/programme.xml). Also at http://transfersummit.com/programme/60 and accompanying article on the H online, http://x42.ch/03.10.01
Morden F2E Education - Think of Progressive Web AppsCaesar Chi
We focus on newbie front end / JavaScript full-stack engineer training, we will tell training evolution.
And we well tell you how PWA works in training process.
The document discusses the future of server-side JavaScript. It provides reasons for using JavaScript on the server, including that it is the lingua franca of the web, allows for code reuse between server and client, and supports asynchronous programming well. It also discusses JavaScript engines, CommonJS modules and packages, environments like Node.js and RingoJS, and trends like wider adoption and cloud-based IDEs.
Node.js Web Development SEO Expert Bangladesh LTD.pdfTasnim Jahan
Welcome to
How to Develop Backend Websites with Node Js in 2023
A server-side platform called Node.js is built on Google Chrome's JavaScript Engine. The most recent version is v0.10.36, and Ryan Dahl created it in 2009. This is a cross-platform runtime environment for creating open source networking and server-side applications. JavaScript is used to create Node.js programs, which are then executed on Linux, OS X, and Microsoft Windows using the Node.js runtime. The extensive collection of JavaScript modules included with Node.js also makes it much simpler to create Node.js web apps.
Instead of creating a new thread for every request, the Node js program operates in a single process. Because the standard library provides a set of asynchronous I/O primitives that prevent JavaScript Node.js Web Development code from blocking and because libraries in Node.js are commonly created using non-blocking paradigms, blocking behavior is the exception rather than the rule in Node.js.
Node.js's popularity is currently soaring. Node.js is currently used by well-known firms like Netflix, Uber, PayPal, Twitter, and more. Node.js is the sixth most popular technology among programmers, with almost one-third of professional developers ranking it as their first choice, according to StackOverflow's 2021 Developer Survey.
Is Node.js Used for Frontend or Backend?
Developers occasionally think of Node.js as a backend framework that is only employed to build servers. This is untrue; both the frontend and the backend may use Node.js. One of the reasons Node.js frameworks are a popular option for programmers creating a flexible and scalable backend is their event-driven, non-blocking nature.
Reusability
JavaScript is a popular language for building both backend and frontend programming thanks to frameworks like Express.js and Meteor.js. Some well-liked stacks, like MERN (a Node.js framework), use Express.js as their backend. Numerous components can be reused across the frontend and the backend.
Productivity and Developer Efficiency
The time spent by developers transferring between different languages' contexts can be significantly reduced. Using JavaScript for both the backend and the frontend improves efficiency because many technologies are shared between both.
Huge Community
The presence of an active online community affects how quickly a development cycle moves forward. Chances are, if we're stuck on a problem, someone else has already figured it out and posted their solution on Stack Overflow. Node.js makes extensive use of this community, which is involved and active when it comes to the well-known runtime and its packages.
Node.js Frameworks
Various frameworks have been developed to aid in the completion of tasks that are still challenging for Node.js to handle.
Some of the most popular Node.js frameworks are the ones listed below:
Nest.js is a potent backend framework for Node.js that can be used to build enterprise-level projects. There are many libr
JS can be used everywhere including the web, mobile apps, desktop apps, servers, IoT, hardware/robotics, gaming, data visualization and more. It is currently the most popular programming language. Some motivations to use JS include hobby projects, personal learning, and building pet projects.
This document describes ExSchema, a tool that discovers and maintains schemas from polyglot persistence applications. ExSchema analyzes the source code of applications using multiple data stores like document databases, graph databases, and relational databases. It identifies entities, attributes, relationships, and updates by examining declarations, annotations, project structure, and update operations. ExSchema represents the extracted schemas in a uniform metamodel and can output documentation and code artifacts to help developers understand and evolve the application's data design.
This presentation introduces open source, open source GIS, OSGeo. This talk was given to the people who attended 'Capacity Building For National Surveying and Geographic Information Institute' program.
Mark Hughes Annual Seminar Presentation on Open Source Tracy Kent
VuFind was chosen as the discovery system to integrate the catalogs of three different library management systems used by the academic libraries in South West Wales. It required overcoming challenges like hosting multiple instances, merging data from different sources and standards, designing a dual language interface, and developing drivers to connect to each library system. Lessons learned include that open source solutions can work well but require significant staff time and resources, and collaboration is key to success. Future plans include sustaining and mainstreaming the system, exploring additional shared services, and investigating other open source library systems like Evergreen.
Cloud computing application for water resources based on open source software...Blagoj Delipetrev
This document describes a cloud computing application for water resource management based on open source software and standards. It presents a prototype developed using two virtual machines and four web services to create a distributed, standards-based system allowing users to access water resource modeling and optimization tools via a web browser from any location. The prototype demonstrates the key characteristics of cloud computing including on-demand access to pooled computing resources, rapid elasticity, and measured service usage. It provides a foundation for a fully cloud-based geographic information system using open source software and standards.
Sangamitra Katamreddy has over 3 years of experience in Java, Python, C/C++, and full stack development. She has a Master's in Electrical Engineering from George Mason University and a Bachelor's in Electrical and Communication Engineering. Her skills include Java, AngularJS, JavaScript, Python, C/C++, VHDL, Verilog, Oracle Apex, SQL, and PL/SQL. She has worked as a junior software developer at Pype developing web applications using RESTful APIs and Apex. Previously she interned at Pype and George Mason University conducting research on side channel analysis and GitHub APIs.
This document provides an overview of Shubhra Kar's presentation on using Node.js to build APIs and hyperscale the API economy. The presentation discusses using Node.js for mobile/omni-channel backends, high performance ESBs, and IoT. It also covers why Node.js is well-suited for APIs, which Node.js framework to choose, design patterns, and how to code and deploy an API in 10 minutes. The document includes graphs comparing Node.js performance to other solutions and discusses trends around microservices and decomposing monolithic APIs.
Gonçalo Silva Pereira is a Portuguese software engineer currently working at Arcelor Mittal in Luxembourg. He has over 5 years of experience developing web and backend applications using technologies like Java, Spring, Angular, and SQL. He holds a Master's degree in Computer Engineering from the University of Coimbra, where he conducted research on software fault injection. In his previous roles, he has worked on pricing systems, e-commerce platforms, and telecommunications software.
The document discusses data visualization and JavaScript libraries for creating visualizations. It provides an overview of data visualization, what opportunities the web provides, and discusses social data. It then covers two JavaScript libraries - Processing.js and Raphael. Key differences between the libraries are explained. Finally, case studies demonstrating each library are described along with examples of code. References are also included.
This document summarizes technologies related to human-computer interaction including computer vision, face detection, face recognition, thought detection, barcode reading, and Bluetooth. It provides links to resources on OpenCV, Point Cloud Library, Node OpenCV, tracking.js, CCV, Visage, Haar-like features, Viola-Jones algorithm, WebRTC, getUserMedia, Neurosky brain-computer interface, Bluetooth Low Energy including AltBeacon, iBeacon, and Eddystone, Noble and Bluetooth Serial Port Node.js modules, and Web Bluetooth. It also lists some example applications built with Angular2 that incorporate computer vision and QR code reading functionality.
This document provides a roadmap for becoming a back-end developer. It outlines learning front-end basics like HTML, CSS, and JavaScript first. Then choosing a programming language like Python, JavaScript, or Java and a corresponding framework. It also lists important back-end concepts to learn like HTTP/HTTPS, databases, authentication and deployment options. The document promotes a JavaScript Mastery Pro course to help master technologies and secure high-paying jobs.
Keyur Joshi is seeking a position as a Software Developer/Engineer. He has a Master's degree in Computer Science from SUNY Buffalo and a Bachelor's degree in Electronics and Communications Engineering. He has over 2 years of experience as a Software Developer at Kuberre Systems, where he develops web applications using technologies like Smart GWT, RESTful services, and DynamoDB. His skills include programming languages like C/C++, Java, Python, and databases like MySQL, Oracle, and Hadoop. He has completed projects in areas like digit recognition, sentiment analysis, click prediction, data warehousing, and distributed systems.
This document contains a resume for Vaibhav Srivastav. It includes contact information, career objective, work experience at various companies from 2014 to present, technical skills in languages, databases, tools, servers and frameworks. It also lists projects undertaken including descriptions, technologies used, roles and responsibilities. Educational qualifications are provided including percentages obtained. Personal details like date of birth, sex, addresses and hobbies are mentioned.
Similar to JavaScript Client Libraries for the (Former) Long Tail of OGC Standards (20)
A short introduction to reproducible research, reproducibility with R, Docker, and all together for reproducible research using R and Docker containers. Includes demos of Rocker and containerit.
containerit at useR!2017 conference, BrusselsDaniel Nüst
**Webpage**
https://github.com/o2r-project/containerit/
**Abstract**
Reproducibility of computations is crucial in an era where data is born digital and analysed algorithmically. Most studies however only publish the results, often with figures as important interpreted outputs. But where do these figures come from? Scholarly articles must provide not only a description of the work but be accompanied by data and software. R offers excellent tools to create reproducible works, i.e. Sweave and RMarkdown. Several approaches to capture the workspace environment in R have been made, working around CRAN’s deliberate choice not to provide explicit versioning of packages and their dependencies. They preserve a collection of packages locally (packrat, pkgsnap, switchr/GRANBase) or remotely (MRAN timemachine/checkpoint), or install specific versions from CRAN or source (requireGitHub, devtools). Installers for old versions of R are archived on CRAN. A user can manually re-create a specific environment, but this is a cumbersome task.
We introduce a new possibility to preserve a runtime environment including both, packages and R, by adding an abstraction layer in the form of a container, which can execute a script or run an interactive session. The package containeRit automatically creates such containers based on Docker. Docker is a solution for packaging an application and its dependencies, but shows to be useful in the context of reproducible research (Boettiger 2015). The package creates a container manifest, the Dockerfile, which is usually written by hand, from sessionInfo(), R scripts, or RMarkdown documents. The Dockerfiles use the Rocker community images as base images. Docker can build an executable image from a Dockerfile. The image is executable anywhere a Docker runtime is present. containeRit uses harbor for building images and running containers, and sysreqs for installing system dependencies of R packages. Before the planned CRAN release we want to share our work, discuss open challenges such as handling linked libraries (see discussion on geospatial libraries in Rocker), and welcome community feedback.
containeRit is developed within the DFG-funded project Opening Reproducible Research to support the creation of Executable Research Compendia (ERC) (Nüst et al. 2017).
**References**
Boettiger, Carl. 2015. “An Introduction to Docker for Reproducible Research, with Examples from the R Environment.” ACM SIGOPS Operating Systems Review 49 (January): 71–79. doi:10.1145/2723872.2723882.
Nüst, Daniel, Markus Konkol, Edzer Pebesma, Christian Kray, Marc Schutzeichel, Holger Przibytzin, and Jörg Lorenz. 2017. “Opening the Publication Process with Executable Research Compendia.” D-Lib Magazine 23 (January). doi:10.1045/january2017-nuest.
Docker is a very useful tool in every data scientists toolbox. In this talk I present motivations to use Docker and made some live demos of typical tools used in data science, such as RStudio, Jupyter Notebook, or Elasticsearch.
http://2016.foss4g.org/talks.html#146
Docker is a growing open-source platform for building and shipping applications as cloud services in so called containers. But containers can be more than that! Following the idea of DevOps, Dockerfiles are a complete scripted definition of an application with all it's dependencies, which can be build and published as ready to use images. As each container is only running "one thing" (e.g. one application, one database, a worker instance), multiple containers can be configured with the help of docker-compose.
More and more geospatial open source projects or third parties provide Dockerfiles. In this talk, we try to give an overview of the existing Docker images and docker-compose configurations for FOSS4G projects. We report on test runs that we conducted with them, informing about the evaluation results, target purposes, licenses, commonly used base images, and more. We will also give a short introduction into Docker and present the purposes that Docker images can be used for, such as easy evaluation for new users, education, testing, or common development environments.
This talk integrates and summarizes information from previous talks at FOSS4G and FOSSGIS conferences, so I'd like to thank Sophia Parafina, Jonathan Meyer, and Björn Schilberg for their contributions.
Kurzpräsentation beim Werkstattgespräch "Atlas Zukünfte" des Leipniz-Institut für Länderkunder, Leipzig.
Wie sehen Atlanten der Zukunft aus?
Atlanten der Zukunft sind der Einstieg zu digitalen Informationen. Sie ermöglichen kritische Interaktionen mit Informationen, weil sie alle Bausteine (Daten, Quellcode, Analysecode, Software, Interaktionsschnittstellen) enthalten um sie zu durchdringen.
Sie ermöglichen dies weil sie änderbar (technisch, Lizenzen) und archivierbar sind.
Atlanten der Zukunft sind ausführbare Forschungskompendien (http://o2r.info/2016/04/08/o2r-at-EGU).
This document discusses developing a GEO label for the sensor web to improve sensor data discovery. It proposes adapting the existing GEO label to include support for sensor web data sources and integrating the label with sensor web metadata. Key points include:
- Defining requirements and mappings between existing GEO label facets and sensor web standards like SensorML and SOS.
- Methods for including sensor labels directly in metadata documents or via reference to an online GEO label API.
- An open source prototype implementation that demonstrates the proposed inline and reference integrations.
- Future work areas like extending the label to include additional sensor web facets and integrating with semantic web technologies and standards.
Visualising Interpolations of Mobile Sensor ObservationsDaniel Nüst
Presentation at the GeoViz conference, Hamburg, 2013.
Abstract (excerpt): An integrated visualisation of observations’ locations and the interpolation of a dynamic phenomenon increases a user’s understanding of the processes underlying the measured data. The main contributions of this work are visualisation techniques, an implementation in a live 3D visualisation environment, and a subsequent user study.
The techniques are tailored to the challenge of mobile sensor data interpolations and focus on interactive exploration instead of extending interpolation methods as a first step.
Open Source and GitHub for Teaching with Software Development ProjectsDaniel Nüst
Experiences in using GitHub for collaborative software development in project seminars using and creating open source software.
Authors:
Daniel Nüst (d.nuest@52north.org, 52°North Initiative for Geospatial Open Source Software GmbH)
Thomas Bartoschek (bartoschek@uni-muenster.de, Institute for Geoinformatics Münster)
Open source software is particularly suitable for teaching and organisations like Teaching Open Source (http://teachingopensource.org) present actively advertise this. In this talk we want to present some practical benefits that open source programming and publishing software on an open online platform has for teaching project-oriented software engineering seminars at university level. In these courses students together develop a new system for a specific task in form of a group project. For project groups, we suggest to use an adjusted variant of Scrum for project management (http://en.wikipedia.org/wiki/Scrum_%28software_development%29), git as source code management system (http://git-scm.com/), and GitHub as a collaboration platform (http://github.com/, https://education.github.com/). Thanks to GitHub’s collaboration models such as “fork & pull”, each student’s work, may they be in lines of code or contributions to a discussion, can be tracked. Students fulfil different tasks in a project setting: some develop, some spend their time issuing bugs or improving documentation. But for all of them GitHub allows to quantify contributions and set concrete goals, e.g. two pull requests created, one merged, and five issues written. GitHub also offers graphical overviews of project activities. The goal is of course not to expose the student but to create a transparent environment for evaluation and grading. Teachers can even weigh in on discussions and make suggestions on the same platform as the students.
In our experience, students estimate very well their performance in comparison with their colleagues. However, using Scrum as a development model is challenging for them. We adopted the classic Scrum schedule and defined two week long sprints. Students sometimes quarrel with the role of supervising other students and delegating tasks among their peers. But in the end, the clear schedule and the focus on the iterative and communicative aspects of project management are a key to ensure success. Teachers should be ready to step in a Scrum masters and to support the product owners and must be open to adjust plans and expectations in the same way that the students have to.
We think this approach can considerably increase quality of a course from both a teaching and a learning perspective.
Feature description and demonstration of the 52°North implementation of the OGC Web Processing Service interface 1.0.0 along with plans for future development.
Prese
This document provides an introduction to linked data and RDF. It discusses:
1. The principles of linked data, which involve using URIs to identify things and including links to other related resources.
2. The goals of linked data, which are to transfer information between machines without loss of meaning by identifying data on the web using shared vocabularies and RDF.
3. An overview of RDF, which structures data as subject-predicate-object triples and can be serialized in formats like RDF/XML and Turtle to represent typed links between resources.
How can you publish your own datasets using the Open Geospatial Consortium's Sensor Observation Service Standard? We present straightforward solutions for the 52°North open source SOS implementation for both the stable and current development version.
sos4R - Accessing SensorWeb Data from RDaniel Nüst
This document discusses a sensor web implementation in R using open source software. It provides a demonstration of accessing sensor data through an XML and Rcurl client to a standard sensor observation service server using GDAL and SP for features. Issues or future work and contact information are also mentioned.
Interoperable data exchange and reproducibility are increasingly important for modern scientific research. This paper shows how three open source projects work together to realize this: (i) the R project, providing the lingua franca for statistical analysis, (ii) the Open Geospatial Consortium's Sensor Observation Service (SOS), a standardized data warehouse service for storing and retrieving sensor measurements, and (iii) sos4R, a new project that connects the former two. We show how sos4R can bridge the gap be-tween two communities in science: spatial statistical analysis and visuali-zation on one side, and the Sensor Web community on the other. sos4R enables R users to integrate (near real-time) sensor observations directly into R. Finally, we evaluate the functionality of sos4R. The software en-capsulates the service's complexity with typical R function calls in a com-mon analysis workflow, but still gives users full flexibility to handle in-teroperability issues. We conclude that it is able to close the gap between R and the sensor web.
Visualizing the Availability of Temporally Structured Sensor DataDaniel Nüst
A crucial task in sensor web based analysis of spatio-temporal data is to get an overview on the spatial and temporal extent for which data is available. This work presents an approach for accessing the necessary information about the availability of temporally structured sensor data from sensor web
services. We show different kinds of data availability visualization. Based on the required values we specify a new generic sensor web service interface operation that constitutes the foundation for realizing the presented visualization methods.
Overview: How To Fill Timesheet In TaskSprint?
Ever feel like time is running fast and slipping through your fingers? Yes, we have all experienced it. You put your nose to the grindstone for a project and deal with tasks and deadlines as if they were easy hurdles. But when it is time to complete a timesheet, you find yourself at sea about the amount of time each project consumes. But fear not, fellow soldier, in the battle against time! TaskSprint, your reliable sidekick in project management, offers an in-built timesheet feature to make tracking your hours seem like a walk in the park.
This is a detailed guide that will lead you in such a way that you will become familiar with how to fill the timesheet. We'll show you how to navigate the interface, easily add entries, and ensure your project manager understands your valuable work hours.
So, ditch the guesswork and embrace precise time tracking. Get ready to transform your timesheet woes into a streamlined, efficient process. Let's dive in and learn how to fill timesheets.
Empowering Businesses with Intelligent Software Solutions - GrawlixAarisha Shaikh
Explore Grawlix's comprehensive suite of intelligent software solutions designed to drive transformative growth and scalability for businesses. This presentation covers our expertise in bespoke software development, digital marketing, web design, cloud solutions, cybersecurity, AI/ML, and IT consulting. Discover how Grawlix's customized solutions enhance productivity, streamline processes, and enable data-driven decision-making. Learn about our key projects, technologies, and the dedicated team who ensures exceptional client satisfaction through innovation and excellence.
A Step-by-Step Guide to Selecting the Right Automated Software Testing Tools.pdfkalichargn70th171
Software testing is highly essential in the software development lifecycle. Selecting the appropriate testing tool is pivotal for effective test automation and project success. As technology advances, the demands of the software market escalate, pushing industry players to deliver high-quality products swiftly through agile methodologies.
PathSpotter: Exploring Tested Paths to Discover Missing Tests (FSE 2024)andrehoraa
When creating test cases, ideally, developers should test both the expected and unexpected behaviors of the program to catch more bugs and avoid regressions. However, the literature has provided evidence that developers are more likely to test expected behaviors than unexpected ones. In this paper, we propose PathSpotter, a tool to automatically identify tested paths and support the detection of missing tests. Based on PathSpotter, we provide an approach to guide us in detecting missing tests. To evaluate it, we submitted pull requests with test improvements to open-source projects. As a result, 6 out of 8 pull requests were accepted and merged in relevant systems, including CPython, Pylint, and Jupyter Client. These pull requests created/updated 32 tests and added 80 novel assertions covering untested cases. This indicates that our test improvement solution is well received by open-source projects.
Predicting Test Results without Execution (FSE 2024)andrehoraa
As software systems grow, test suites may become complex, making it challenging to run the tests frequently and locally. Recently, Large Language Models (LLMs) have been adopted in multiple software engineering tasks. It has demonstrated great results in code generation, however, it is not yet clear whether these models understand code execution. Particularly, it is unclear whether LLMs can be used to predict test results, and, potentially, overcome the issues of running real-world tests. To shed some light on this problem, in this paper, we explore the capability of LLMs to predict test results without execution. We evaluate the performance of the state-of-the-art GPT-4 in predicting the execution of 200 test cases of the Python Standard Library. Among these 200 test cases, 100 are passing and 100 are failing ones. Overall, we find that GPT-4 has a precision of 88.8%, recall of 71%, and accuracy of 81% in the test result prediction. However, the results vary depending on the test complexity: GPT-4 presented better precision and recall when predicting simpler tests (93.2% and 82%) than complex ones (83.3% and 60%). We also find differences among the analyzed test suites, with the precision ranging from 77.8% to 94.7% and recall between 60% and 90%. Our findings suggest that GPT-4 still needs significant progress in predicting test results.
Fix Production Bugs Quickly - The Power of Structured Logging in Ruby on Rail...John Gallagher
Rails apps can be a black box. Have you ever tried to fix a bug where you just can’t understand what’s going on? This talk will give you practical steps to improve the observability of your Rails app, taking the time to understand and fix defects from hours or days to minutes. Rails 8 will bring an exciting new feature: built-in structured logging. This talk will delve into the transformative impact of structured logging on fixing bugs and saving engineers time. Structured logging, as a cornerstone of observability, offers a powerful way to handle logs compared to traditional text-based logs. This session will guide you through the nuances of structured logging in Rails, demonstrating how it can be used to gain better insights into your application’s behavior. This talk will be a practical, technical deep dive into how to make structured logging work with an existing Rails app.
I talk about the Steps to Observable Software - a practical five step process for improving the observability of your Rails app.
Old Tools, New Tricks: Unleashing the Power of Time-Tested Testing ToolsBenjamin Bischoff
In the rapidly evolving landscape of software development and testing, it is tempting to chase the latest tools and technologies. However, some of the most effective solutions have been in existence for decades. In this talk, we’ll delve into the enduring value of these timeless testing tools.
We’ll explore how established tools like Selenium, GNU Make, Maven, and Bash remain vital in today’s software development and testing toolkit even though they have been around for a long time (some were even invented before I was born). I’ll share examples of how these tools have addressed our testing and automation challenges, showcasing their adaptability, versatility, and reliability in various scenarios. I aim to demonstrate that sometimes, the “old” ways can indeed be the best ways.
JavaScript Client Libraries for the (Former) Long Tail of OGC Standards
1. JavaScript Client Libraries for the
(Former) Long Tail of OGC Standards
FOSS4G-Europe, Bremen, July 2014
Daniel Nüst (52°North GmbH), Matthes Rieke (52N), Paul Breen (BAS)
3. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 3
2014
JavaScript is on the rise (node, JS engines)
Cloud
jQuery
AngularJS, Dojo, ExtJS, …
OpenLayers, Leaflet, GeoExt, …
4. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 4
Motivation
Create generic client libraries because…
applications move to the browser,
WPS and SOS reach(ed) 2nd version,
need to build apps, and
we don’t want to repeat ourselves.
5. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 5
SOS.JS AND WPS-JS
Coming up: new project introduction and demonstration
7. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 7
About wps-js
JavaScript WPS Client to build interactive
forms to control standardized processes.
Build on: OpenLayers (requests, XML)
GitHub: https://github.com/52North/wps-js
11. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 11
wps-js Features
Form generation based on process descriptions
WPS 1.0.0
Interactive execution of processes
Pre-configuration of UI/form
Style-free
19. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 19
About SOS.js
Javascript library to browse, visualise, and
access, data from an OGC Sensor Observation
Service.
Basis: OpenLayers
GitHub: https://github.com/52North/sos-js
History…
27. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 27
Experiences
Shortest path to beta (OL)
Raw time series data can be handled in JS
XML is possible, of course JSON is simpler…
Hard to reach “completeness” when driven by projects
Be aware of CORS when you deploy services
28. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 28
Goals
Useful and usable libraries for application developers (not
SWE/processing experts)
Facilitate usage of WPS and SOS
Minimal footprint
Flexible use (domain applications)
User-friendly interfaces
Non-copyleft licenses
29. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 29
Steps
1) Become independent…
from mapping libraries
from specific frameworks
modularize
release version 1.0
2) Extend developer/user community
3) Ease usage (plugins for JS libs/JS mapping)
30. SOS.js & wps-js @ FOSS4G-E, Bremen, 2014 30
Challenges
“lib-independent library”
JavaScript modularization
Coordination and community building
Testing and service compatibility
What is missing today are generic libraries that operate at the same level of performance and quality to (i) access observation and time series data, for example coming from OGC Sensor Observation Services (SOS) as part of the Sensor Web Enablement (SWE) suite of standards, and (ii) control processes published online, for examples as an OGC Web Processing Service (WPS). These standards are less widespread than WMS and WFS but gain momentum as data volumes increase, for example with a myriad of smart sensors in the internet of things or new EO satellite missions, and subsequent requirements for sophisticated architectures for (event-based) processing and management of time series data. SWE standards have just reached their second versions; a new WPS standard is currently under development.
During the talk we will demonstrate sample applications build with the libraries and share experiences of developing client libraries for XML-based standardized web services with Javascript, which include programming as well as project build and management lessons.
SOS.js is a Javascript framework to access SOS data and build sophisticated lightweight browser applications for discovering and displaying time series data as plots, tables, and maps. It consists of two modules: core and user interface.
wps-js is a Javascript client library for the WPS generating forms based on the standardized metadata from the service and interactively creating and submitting processing tasks. It uses a templating mechanism for XML building and an internal Javascript class hierarchy. Both libraries are based on OL’s request and response encoding.
WPS-G (extension, based on WPS-T)
(un)deployment of processes and data, process mgmt (monitor, control), download results
Wps-js is a simple form generation framework, limited styling etc. to allow easy integration into other websites
Process description for simple calculator
Data intercomparison clients
pre-configuration
Parameter passing through URL
http://geoviqua.dev.52north.org/wps-js-client/demo/geca-intercomparison/client.html?source=Testlink&_pdPortlet_WAR_geoportal_uuid=067a17f9-8d37-4d15-b405-25e701dd03b0&_pdPortlet_WAR_geoportal_uuid=31172be3-01ae-4d4d-b500-8e734a1d5432
SOS.js is a Javascript framework to access SOS data and build sophisticated lightweight browser applications for discovering and displaying time series data as plots, tables, and maps. It consists of two modules: core and user interface.
Paul Breen, BAS
We conclude that Javascript is ready to handle raw (timeseries) data and it is used more than ever. Also, both the standards and their open source implementations are ready for operational deployments. So it is now time to spread them further by increasing the usability with good browser client applications based on small and flexible open source libraries.
Currently XML parsing facilities and request handling of OL are used (XML.js)
One goal for both libraries is to become independent of OL and provide service access with a minimal footprint, for example to display data without maps. Might OL and Leaflet eventually use these libraries instead of their own client implementations for SOS and WPS? We see an advantage of developing such small and focussed libraries maintained by field experts in these non-mainstream domains. We’ll happily discuss if this is the best approach and pose the following question: Is there a (technical, organisational) way to build a compatible Javascript client frameworks across all geo-service standards?
While the presented libraries are developed withing the 52°North communities we want to use this talk to actively reach out to members of other open source projects to seek collaborators and to organise interoperability tests to make these tools useful for a broader community.