GeoServer is a solid and mature implementation of a variety of OGC services including Web Feature Service, Web Map Service, Web Coverage Service, and Web Processing Service. Add to this a KML engine, integrated security framework, powerful styling language with SLD and this rich feature set makes GeoServer very appealing to the user. However it has always been somewhat lacking when it comes to the developer. Developing with GeoServer has a steep learning curve and requires expert knowledge to do simple tasks like writing new output formats, implementing new WPS processes, and adding custom filter functions. GeoScript to the rescue!
GeoScript adds spatial capabilities to popular languages such as Python, JavaScript, Scala, and Groovy. Scripting languages are the perfect tool for developers who want to do simple coding tasks quickly in a lightweight development environment. GeoScript builds on top of the very powerful GeoTools library to provide an interface to its capabilities though concise and easy to use API's. Recent extensions to GeoServer now allow developers to write components and plug-ins in the scripting language of their choice, using GeoScript as the engine for spatial functionality.
This presentation is geared toward developers who are interested in developing with GeoServer but not necessarily ready to get their hands dirty with low level Java. The talk will detail the various scripting hooks available and provide examples, complete with code, of how to write some simple plug-ins. Check out this presentation and you'll be developing with GeoServer in no time.
2011 marks the 10 year anniversary of the GeoServer project with 2010 - 2011 being the most successful year yet. GeoServer continues to grow with an active community and expanding user base. This presentation takes the pulse of the project with a status report of how GeoServer is doing and what to expect in the coming future.
The presentation will start with a "year in review" overviewing some of the new and noteworthy of the past year. This year saw the coming of GeoServer 2.1, a major milestone for the project that brought some exciting new features along with it. Cascading WMS, Virtual Services, SQL Layers/Views, Unit of Measure support for SLD, WMS 1.3, and WPS are just a few of the highlights of 2.1. Attend this presentation to get the entire report of what happened this past year.
The GeoServer developer community continues to remain active with a number of exciting features in the pipeline. The remainder of the presentation will focus on the future with a report of the new developments currently being worked on and what new features and improvements users can expect in 2012.
Whether you are an expert user, a developer, or simply someone who wants to know what GeoServer is and what it can do for you, this talk is for you.
GeoScript - Spatial Capabilities for Scripting LanguagesJustin Deoliveira
GeoScript adds spatial capabilities to dynamic scripting languages. With implementations in Python, JavaScript, Scala, and Groovy, GeoScript provides an interface to the powerful geospatial data access, processing and rendering functionality of the GeoTools library.
GeoScript provides concise and simple apis that allow developers to perform a variety of tasks quickly. Some include:
Geoprocessing - Coordinate reference system transforms, geometry operations, and feature queries.
Data Juggling - GeoScript allows you to read and write feature data in a variety of formats. Converting Shapefiles to PostGIS tables, and processing on the fly while converting formats.
Mapping Services - Using a simple web framework in conjunction with GeoScript, it is possible to write custom geospatial services quickly and easily like a simple WMS or WFS implementation.
GeoScript is a new project but is growing in the number of users and contributors. Come check this talk out if you are interested in learning about a new tool to add to your geospatial hacking toolbox. Maybe you have tried to use GeoTools but find it too difficult and complex to use. Or perhaps your java skills are not where you would like them to be. If that is the case this talk, and GeoScript, might be just what you are looking for.
2011 marks the 10 year anniversary of the GeoServer project with 2010 - 2011 being the most successful year yet. GeoServer continues to grow with an active community and expanding user base. This presentation takes the pulse of the project with a status report of how GeoServer is doing and what to expect in the coming future.
The presentation will start with a "year in review" overviewing some of the new and noteworthy of the past year. This year saw the coming of GeoServer 2.1, a major milestone for the project that brought some exciting new features along with it. Cascading WMS, Virtual Services, SQL Layers/Views, Unit of Measure support for SLD, WMS 1.3, and WPS are just a few of the highlights of 2.1. Attend this presentation to get the entire report of what happened this past year.
The GeoServer developer community continues to remain active with a number of exciting features in the pipeline. The remainder of the presentation will focus on the future with a report of the new developments currently being worked on and what new features and improvements users can expect in 2012.
Whether you are an expert user, a developer, or simply someone who wants to know what GeoServer is and what it can do for you, this talk is for you.
GeoScript - Spatial Capabilities for Scripting LanguagesJustin Deoliveira
GeoScript adds spatial capabilities to dynamic scripting languages. With implementations in Python, JavaScript, Scala, and Groovy, GeoScript provides an interface to the powerful geospatial data access, processing and rendering functionality of the GeoTools library.
GeoScript provides concise and simple apis that allow developers to perform a variety of tasks quickly. Some include:
Geoprocessing - Coordinate reference system transforms, geometry operations, and feature queries.
Data Juggling - GeoScript allows you to read and write feature data in a variety of formats. Converting Shapefiles to PostGIS tables, and processing on the fly while converting formats.
Mapping Services - Using a simple web framework in conjunction with GeoScript, it is possible to write custom geospatial services quickly and easily like a simple WMS or WFS implementation.
GeoScript is a new project but is growing in the number of users and contributors. Come check this talk out if you are interested in learning about a new tool to add to your geospatial hacking toolbox. Maybe you have tried to use GeoTools but find it too difficult and complex to use. Or perhaps your java skills are not where you would like them to be. If that is the case this talk, and GeoScript, might be just what you are looking for.
InterConnect: Java, Node.js and Swift - Which, Why and WhenChris Bailey
Java, Node.js, and Swift are three of the most popular and effective programming languages in use today. When presented with an opportunity to choose, it may not be clear which language is best suited for the job. This session will provide a tour of these languages and the use cases for which each is best suited.
HTTP APIs as first class procedures in your language: cutting out SDK complex...ProgrammableWeb
Andy Bennett, Founder, Knodium
This talk looks at how to make an HTTP API available as a self-contained procedure or function, just like any other library or API code that you might be used to using or importing into your programs.
Whether you're implementing an SDK for your own API or just trying to bind to an adhoc API that you want to use, this talk will cover how to do it in an elegant and simple way without lots of adhoc code duplication, needless boilerplate or irrelevant detail.
Minimizing Decision Fatigue to Improve Team ProductivityDerek Lee Boire
Presented on Friday, March 3, 2017 at the try! Swift Conference in Tokyo - in this talk I discuss how decision fatigue impacts our work days and how we can minimize this through increasing our team's communication. Through the context of a typical day at Pivotal Labs, I give examples of how our teams communicate as well as some technical solutions that we agreed to as a team for development in Swift.
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash courseSages
Szybkie wprowadzenie do technologii Pig i Hive z ekosystemu Hadoop. Prezentacja wykonana w ramach warsztatów Codepot w dniu 29.08.2015. Prezentacja wykonana przez Radosława Stankiewicza oraz Bartłomieja Tartanusa.
The Sparkling Water project brings integration of H2O platform with Spark Ecosystem.
In this hands-on session we will show how to start with Sparkling Water - launching H2O services on top of Spark, loading data with help of H2O, manipulating data with help of Spark and H2O APIs, and finally, preparing and using DeepLearning and GBM models.
The presentation also demonstrates using R to access results prepared with help of Sparkling Water.
InterConnect: Java, Node.js and Swift - Which, Why and WhenChris Bailey
Java, Node.js, and Swift are three of the most popular and effective programming languages in use today. When presented with an opportunity to choose, it may not be clear which language is best suited for the job. This session will provide a tour of these languages and the use cases for which each is best suited.
HTTP APIs as first class procedures in your language: cutting out SDK complex...ProgrammableWeb
Andy Bennett, Founder, Knodium
This talk looks at how to make an HTTP API available as a self-contained procedure or function, just like any other library or API code that you might be used to using or importing into your programs.
Whether you're implementing an SDK for your own API or just trying to bind to an adhoc API that you want to use, this talk will cover how to do it in an elegant and simple way without lots of adhoc code duplication, needless boilerplate or irrelevant detail.
Minimizing Decision Fatigue to Improve Team ProductivityDerek Lee Boire
Presented on Friday, March 3, 2017 at the try! Swift Conference in Tokyo - in this talk I discuss how decision fatigue impacts our work days and how we can minimize this through increasing our team's communication. Through the context of a typical day at Pivotal Labs, I give examples of how our teams communicate as well as some technical solutions that we agreed to as a team for development in Swift.
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash courseSages
Szybkie wprowadzenie do technologii Pig i Hive z ekosystemu Hadoop. Prezentacja wykonana w ramach warsztatów Codepot w dniu 29.08.2015. Prezentacja wykonana przez Radosława Stankiewicza oraz Bartłomieja Tartanusa.
The Sparkling Water project brings integration of H2O platform with Spark Ecosystem.
In this hands-on session we will show how to start with Sparkling Water - launching H2O services on top of Spark, loading data with help of H2O, manipulating data with help of Spark and H2O APIs, and finally, preparing and using DeepLearning and GBM models.
The presentation also demonstrates using R to access results prepared with help of Sparkling Water.
Core Software Group and the Denver Plone Users Group hosted the Denver World Plone Day on April 22, 2009 at the Tivoli Center in downtown Denver. The presentation was given by Chris Crownhart and talked about Core Software Group's custom development techniques for some of the Plone sites we have built.
While known for its first-class JSON handling for Java, Jackson is not limited to JSON: with no fewer than 9 supported data formats it can be used for reading and writing data in almost any data format. This talk offers introduction to reading and writing XML and CSV using Jackson.
Non Conventional Android Programming Enguest9bcef2f
Learn as you can developing software for mobile devices using only html, css and javascript and how you can use Spring Framework in software for mobile devices
Non Conventional Android Programming (English)Davide Cerbo
Learn as you can developing software for mobile devices using only html, css and javascript and how you can use Spring Framework in software for mobile devices
Slides from my Introduction to PostGIS workshop at the FOSS4G conference in 2009. The material is available at http://revenant.ca/www/postgis/workshop/
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
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.
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:
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
6. GeoScript from geoscript.workspace import PostGIS pg = PostGIS('geoscript') for f in pg['states'].features(): print f['STATE_NAME'] Python JavaScript var PostGIS = require("geoscript/workspace").PostGIS; var pg = PostGIS("geoscript"); pg.get("states").features.forEach(function(f) { print(f.get("STATE_NAME")); });
17. Script Hooks - Transactions Intercept WFS transactions with a wfs.js script in your data directory. exports.beforeCommit = function(details, request) { LOGGER.info("beforeCommit"); var records = details["PreInsert"] || []; records.forEach(function(record) { var feature = record.feature; feature.geometry = feature.geometry.simplify(10); }); }; JavaScript
18.
19. Data Summary App from geoserver.catalog import Layer from StringIO import StringIO def app(env, start_response): kvp = dict([tuple(kv.split('=')) for kv in env['QUERY_STRING'].split('&')]) layer = kvp['layer'] l = Layer(layer, store=None) buf = StringIO() buf.write('Layer: %s' % l.name) data = l.data buf.write(' Format: %s' % data.format) buf.write(' Feature count: %d' % data.count()) buf.write(' CRS/Projection: %s' % data.proj.wkt) b = data.bounds() buf.write(' Bounds: (%f,%f,%f,%f)' % (b.west, b.south, b.east, b.north)) buf.write(' Fields:') buf.write(''.join([' %s' % repr(fld) for fld in data.schema.fields])) buf.write('') start_response('200 OK', [('Content-type','text/plain')]) return buf.getvalue()
20. Data Summary App from geoserver.catalog import Layer from StringIO import StringIO def app(env, start_response): kvp = dict([tuple(kv.split('=')) for kv in env['QUERY_STRING'].split('&')]) layer = kvp['layer'] l = Layer(layer, store=None) buf = StringIO() buf.write('Layer: %s' % l.name) data = l.data buf.write(' Format: %s' % data.format) buf.write(' Feature count: %d' % data.count()) buf.write(' CRS/Projection: %s' % data.proj.wkt) b = data.bounds() buf.write(' Bounds: (%f,%f,%f,%f)' % (b.west, b.south, b.east, b.north)) buf.write(' Fields:') buf.write(''.join([' %s' % repr(fld) for fld in data.schema.fields])) buf.write('') start_response('200 OK', [('Content-type','text/plain')]) return buf.getvalue()
21. Data Summary App from geoserver.catalog import Layer from StringIO import StringIO def app(env, start_response): kvp = dict([tuple(kv.split('=')) for kv in env['QUERY_STRING'].split('&')]) layer = kvp['layer'] l = Layer(layer, store=None) buf = StringIO() buf.write('Layer: %s' % l.name) data = l.data buf.write(' Format: %s' % data.format) buf.write(' Feature count: %d' % data.count()) buf.write(' CRS/Projection: %s' % data.proj.wkt) b = data.bounds() buf.write(' Bounds: (%f,%f,%f,%f)' % (b.west, b.south, b.east, b.north)) buf.write(' Fields:') buf.write(''.join([' %s' % repr(fld) for fld in data.schema.fields])) buf.write('') start_response('200 OK', [('Content-type','text/plain')]) return buf.getvalue()
22. Data Summary App from geoserver.catalog import Layer from StringIO import StringIO def app(env, start_response): kvp = dict([tuple(kv.split('=')) for kv in env['QUERY_STRING'].split('&')]) layer = kvp['layer'] l = Layer(layer, store=None) buf = StringIO() buf.write('Layer: %s' % l.name) data = l.data buf.write(' Format: %s' % data.format) buf.write(' Feature count: %d' % data.count()) buf.write(' CRS/Projection: %s' % data.proj.wkt) b = data.bounds() buf.write(' Bounds: (%f,%f,%f,%f)' % (b.west, b.south, b.east, b.north)) buf.write(' Fields:') buf.write(''.join([' %s' % repr(fld) for fld in data.schema.fields])) buf.write('') start_response('200 OK', [('Content-type','text/plain')]) return buf.getvalue()
33. H2 Output Format @vector_format('h2', 'application/zip') def write(data, out): dir = tempfile.mkdtemp() # create the database and copy the features into it db = H2(data.schema.name, dir=dir) layer = db.create(schema=data.schema) for f in data.features: layer.add(f) db.close() # zip and ship file = tempfile.mktemp() zip = zipfile.ZipFile(file, 'w') for root, dirs, files in os.walk(dir): name = abspath(root)[len(abspath(dir)):] for f in files: zip.write(join(root,f), join(name,f), zipfile.ZIP_DEFLATED) zip.close() shutil.copyfileobj(open(file, 'r'), out) # clean up os.remove(file) shutil.rmtree(dir)
34. H2 Output Format @vector_format('h2', 'application/zip') def write(data, out): dir = tempfile.mkdtemp() # create the database and copy the features into it db = H2(data.schema.name, dir=dir) layer = db.create(schema=data.schema) for f in data.features: layer.add(f) db.close() # zip and ship file = tempfile.mktemp() zip = zipfile.ZipFile(file, 'w') for root, dirs, files in os.walk(dir): name = abspath(root)[len(abspath(dir)):] for f in files: zip.write(join(root,f), join(name,f), zipfile.ZIP_DEFLATED) zip.close() shutil.copyfileobj(open(file, 'r'), out) # clean up os.remove(file) shutil.rmtree(dir)
35. H2 Output Format @vector_format('h2', 'application/zip') def write(data, out): dir = tempfile.mkdtemp() # create the database and copy the features into it db = H2(data.schema.name, dir=dir) layer = db.create(schema=data.schema) for f in data.features: layer.add(f) db.close() # zip and ship file = tempfile.mktemp() zip = zipfile.ZipFile(file, 'w') for root, dirs, files in os.walk(dir): name = abspath(root)[len(abspath(dir)):] for f in files: zip.write(join(root,f), join(name,f), zipfile.ZIP_DEFLATED) zip.close() shutil.copyfileobj(open(file, 'r'), out) # clean up os.remove(file) shutil.rmtree(dir)
36. H2 Output Format @vector_format('h2', 'application/zip') def write(data, out): dir = tempfile.mkdtemp() # create the database and copy the features into it db = H2(data.schema.name, dir=dir) layer = db.create(schema=data.schema) for f in data.features: layer.add(f) db.close() # zip and ship file = tempfile.mktemp() zip = zipfile.ZipFile(file, 'w') for root, dirs, files in os.walk(dir): name = abspath(root)[len(abspath(dir)):] for f in files: zip.write(join(root,f), join(name,f), zipfile.ZIP_DEFLATED) zip.close() shutil.copyfileobj(open(file, 'r'), out) # clean up os.remove(file) shutil.rmtree(dir)