Presentation on BioMake, a GNU-Make-like utility for managing builds and complex workflows using declarative specifications. From GMOD/PAG meeting 2017
This document contains notes from a Rails development session. It includes information about setting up a Rails application with Markdown rendering, using Redcarpet and other gems. Code snippets show implementing authentication, layouts, partials and controllers. Links are provided to documentation and tutorials about Rails forms, layouts, Haml and Sass.
Apache Syncope: an Apache Camel Integration ProposalGiacomo Lamonaco
Apache Syncope is a great solution for Identity Management. In this month I analyzed some use cases that led me to reflect about the flexibility of provisioning process to adapt to various (and sometimes very cumbersome) deployment scenarios.
The questions is: How well Syncope orchestrates the provisioning? The problem is that Syncope lacks of a provisioning manager: this component could allow an easy and fully customizable definition of provisioning control logic.
My proposal consists in a redefinition of the (user and role) controller concept, through the Apache Camel framework. Why this framework? I think that Camel fits the need of easy control logic definition. Moreover Camel supports a wide range of external components: it means that it can be easily integrated with existing frameworks, like Activiti.
This document provides an overview of the RApache software architecture. RApache allows R to be used as a statistical engine for web applications by embedding the R interpreter into the Apache web server using a module. This allows R functions to be called from Apache to dynamically generate web content. Examples shown include a "Hello World" example using a simple R handler function, generating plots from R code and returning them to the client, and several RApache demonstrations of applications with different capabilities. Ongoing work is focused on improving performance and interfaces.
The document provides instructions for installing and configuring pbssc, an Android screenshot tool. It mentions running 'brew install pbssc' to install pbssc, exporting the PBSSC_IMAGE_PATH environment variable to specify a screenshot save location, and using adb and libimobiledevice to connect to Android devices for screenshot capturing.
This document contains CSS code that defines styling for different elements in the Firefox browser's URL bar and search bar. It sets background colors and colors for text based on different "level" attributes for the URL bar. It also removes styling like borders, backgrounds and opacity for various elements like the identity box and search engine buttons to make them transparent.
Merb is a web framework for Ruby that focuses on being fast, memory efficient, and simple. It integrates with Rack and uses plugins built as gems. Controllers can render pages and also perform background processing. The router supports optional path segments and accessing the request and params. Exceptions are handled through a custom Exceptions controller. Merb applications can be run as a single process or using multiple processes for improved performance.
Dancer is a micro web framework for Perl that allows developers to build web applications in an expressive and lightweight manner. It uses a routing-based syntax to define request handlers for different URLs and HTTP methods. Dancer applications can utilize templates, configuration files, and environments to customize settings depending on the deployment stage. Being PSGI/Plack compliant, Dancer applications can be deployed on various web servers through Plack adapters.
The document discusses CodeIgniter's custom routing functionality, which allows manipulating URIs to hide original controller actions, manage which actions are called, and simplify URIs. It provides examples of modifying routes in the config/routes.php file and using the _remap function in controllers to change routing behavior. The document also mentions removing the index.php from URIs using an .htaccess file for cleaner URLs.
This document contains notes from a Rails development session. It includes information about setting up a Rails application with Markdown rendering, using Redcarpet and other gems. Code snippets show implementing authentication, layouts, partials and controllers. Links are provided to documentation and tutorials about Rails forms, layouts, Haml and Sass.
Apache Syncope: an Apache Camel Integration ProposalGiacomo Lamonaco
Apache Syncope is a great solution for Identity Management. In this month I analyzed some use cases that led me to reflect about the flexibility of provisioning process to adapt to various (and sometimes very cumbersome) deployment scenarios.
The questions is: How well Syncope orchestrates the provisioning? The problem is that Syncope lacks of a provisioning manager: this component could allow an easy and fully customizable definition of provisioning control logic.
My proposal consists in a redefinition of the (user and role) controller concept, through the Apache Camel framework. Why this framework? I think that Camel fits the need of easy control logic definition. Moreover Camel supports a wide range of external components: it means that it can be easily integrated with existing frameworks, like Activiti.
This document provides an overview of the RApache software architecture. RApache allows R to be used as a statistical engine for web applications by embedding the R interpreter into the Apache web server using a module. This allows R functions to be called from Apache to dynamically generate web content. Examples shown include a "Hello World" example using a simple R handler function, generating plots from R code and returning them to the client, and several RApache demonstrations of applications with different capabilities. Ongoing work is focused on improving performance and interfaces.
The document provides instructions for installing and configuring pbssc, an Android screenshot tool. It mentions running 'brew install pbssc' to install pbssc, exporting the PBSSC_IMAGE_PATH environment variable to specify a screenshot save location, and using adb and libimobiledevice to connect to Android devices for screenshot capturing.
This document contains CSS code that defines styling for different elements in the Firefox browser's URL bar and search bar. It sets background colors and colors for text based on different "level" attributes for the URL bar. It also removes styling like borders, backgrounds and opacity for various elements like the identity box and search engine buttons to make them transparent.
Merb is a web framework for Ruby that focuses on being fast, memory efficient, and simple. It integrates with Rack and uses plugins built as gems. Controllers can render pages and also perform background processing. The router supports optional path segments and accessing the request and params. Exceptions are handled through a custom Exceptions controller. Merb applications can be run as a single process or using multiple processes for improved performance.
Dancer is a micro web framework for Perl that allows developers to build web applications in an expressive and lightweight manner. It uses a routing-based syntax to define request handlers for different URLs and HTTP methods. Dancer applications can utilize templates, configuration files, and environments to customize settings depending on the deployment stage. Being PSGI/Plack compliant, Dancer applications can be deployed on various web servers through Plack adapters.
The document discusses CodeIgniter's custom routing functionality, which allows manipulating URIs to hide original controller actions, manage which actions are called, and simplify URIs. It provides examples of modifying routes in the config/routes.php file and using the _remap function in controllers to change routing behavior. The document also mentions removing the index.php from URIs using an .htaccess file for cleaner URLs.
My colleague Adnan created this slide and on behalf of him i am uploading this slide.
A nice Visual Diagram is there on the SERVER CLIENT concept. Must see for newbie.
This document provides an overview of RESTful web services using Mojolicious and DBIx::Class. It describes a sample expense tracker application with five database tables in a many-to-many relationship. It then introduces REST concepts and describes how Mojolicious routes requests, DBIx::Class models the database, and generic controllers can provide CRUD operations. Finally, it outlines the steps to generate RESTful routes for a database table, including creating a model and controller that inherits standard CRUD methods.
The document discusses Drupal services architecture and tools. It provides an overview of Services 2.x and 3.x, describing their different approaches and capabilities. Resources for learning more about and using Services are also listed.
This document provides tips for optimizing Rails applications. It discusses using caching at the page, action, and fragment level. It also covers using background jobs to offload processing, optimizing database queries with includes and indexes, and leveraging assets like sprites, CSS, JavaScript minification, and gzipping. Metal and Rack middleware are presented as alternatives to Rails for high performance needs.
Slides from the talk at http://www.meetup.com/GTA-PHP-User-Group-Toronto/events/151672182/
Source code for the demo at https://github.com/zymsys/Slim-RedBeanPHP-KnockoutJS
This document introduces the Dancer web framework for Perl. It summarizes Dancer's key features, including its route-based and minimal design inspired by Sinatra, its PSGI/Plack compliance, and its large collection of plugins for features like templating, databases, REST, and more. The document advocates that Dancer allows for an efficient, succinct, and flexible approach to web development in Perl.
Gearman is a distributed processing framework that allows work to be distributed to multiple machines and workers. The document discusses setting up Gearman and using it to distribute tasks like image resizing. It explains how to create Gearman workers to handle tasks, create clients to submit tasks, and get status updates on task processing. It also covers error handling, managing workers, and scaling the system by adding more workers.
The document discusses object oriented principles like encapsulation, composition, inheritance and polymorphism in JavaScript. It provides examples of implementing these principles through prototype-based inheritance in JavaScript by creating base object classes that can be extended and instantiated to create different soup objects. The examples demonstrate how closures and anonymous functions can be used to achieve functional programming techniques in JavaScript.
This document discusses using Chef to automate configuration management on Windows servers. It provides an overview of Chef and how it works, including the main components of nodes, roles, and cookbooks. It then outlines the basic steps to set up Chef including installing the Chef server, uploading cookbooks, and preparing Windows servers to work with Chef using WinRM or SSH. Finally, an example deployment of a Node.js application using Chef on Windows is described.
Modern Perl web development has evolved over the past 20 years. While Perl was once widely used for web development via CGI scripts, newer technologies emerged that were easier to maintain. The document discusses how Perl is still suitable for web development using modern tools like PSGI, Plack, Dancer2, and others. It demonstrates building a basic TODO application in Perl using these tools, including generating database classes from an existing database, retrieving and displaying data, and adding features with JavaScript and jQuery.
Keeping it small - Getting to know the Slim PHP micro frameworkJeremy Kendall
The document discusses the Slim micro PHP framework. It provides an overview of installing Slim via Composer, basic routing examples including GET and POST requests, and configuration options. Key topics covered include routing, templates, middleware, configuration via a config array, and logging/flash messaging. Examples demonstrate basic routing for homepage, single images, adding photos, and handling POST data and redirects.
Loadrunner is a script loader and dependency manager for JavaScript. It allows loading of scripts and modules, defining dependencies between them, and executing code only after all dependencies are loaded. Key features include:
- Loading scripts and modules asynchronously
- Defining modules with CommonJS or AMD syntax
- Managing dependencies between modules so code only runs after dependencies are resolved
- Being used by other libraries and frameworks like Phoenix and TfW
- Having an open source implementation on GitHub under the MIT license
Inside Bokete: Web Application with Mojolicious and othersYusuke Wada
Yusuke Wada introduced his work developing the Bokete website. Bokete is a Japanese entertainment website similar to 9gag that allows users to post and view "boke" which are photos with short texts. It has a website, mobile apps, and receives 300 million page views per month. Wada developed the backend system for Bokete using Perl and Mojolicious along with several other CPAN modules, particularly some written by Japanese authors. He discussed the system architecture and modules used to build Bokete.
Introduction to GNU Make Programming LanguageShih-Hsiang Lin
The document discusses the GNU Make programming language. It describes Make as having 3 main components: file dependencies that determine which rules to evaluate based on pattern matching; shell commands encapsulated in rules to execute if a target is out of date; and string processing functions for manipulating Make variables. The document provides examples of basic Makefiles and explains key concepts like rules, variables, automatic variables, and how Make uses a functional programming paradigm.
(This is presentation slide for RubyKaigi 2009)
Erubis is very fast and extensible implementation of eRuby. In this slides, I show you features of Erubis, and issues related to eRuby and solution by Erubis. Also I show you some ideas about the future of template system.
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache BeamFlink Forward
http://flink-forward.org/kb_sessions/no-shard-left-behind-dynamic-work-rebalancing-in-apache-beam/
The Apache Beam (incubating) programming model is designed to support several advanced data processing features such as autoscaling and dynamic work rebalancing. In this talk, we will first explain how dynamic work rebalancing not only provides a general and robust solution to the problem of stragglers in traditional data processing pipelines, but also how it allows autoscaling to be truly effective. We will then present how dynamic work rebalancing works as implemented in Google Cloud Dataflow and which path other Apache Beam runners link Apache Flink can follow to benefit from it.
This document provides an introduction and overview of common Unix text editors, including Vim and Emacs. It discusses the basics of using each editor, such as opening and saving files, navigating text, cutting and pasting, and viewing multiple files. It also covers more advanced features like customization options and modes for different file types. The goal is to help users get started with and become more productive using Vim and Emacs on Unix systems.
Slides from presentation: "Revoke-Obfuscation: PowerShell Obfuscation Detection (And Evasion) Using Science" originally released at Black Hat USA 2017 & DEF CON by @danielhbohannon and @Lee_Holmes.
For more information: http://www.danielbohannon.com/presentations/
This document provides an overview of the Twig templating engine. It discusses why Twig was created as an alternative to PHP for templating, its key features like inheritance, macros and filters. It also covers the basics of Twig syntax including variables, tags, filters and control structures like if/else and for loops. Finally it discusses how to install and use Twig including extending templates and including other templates.
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...Guillaume Laforge
Groovy is a dynamic language for the Java Virtual Machine that integrates with Java. Grails is a web framework built on Groovy that leverages existing Java technologies. The presentation discusses how Groovy's meta-programming capabilities, through its Meta Object Protocol, enable new patterns like dynamic finders that change how we approach common Java patterns like the Data Access Object and Service Locator.
My colleague Adnan created this slide and on behalf of him i am uploading this slide.
A nice Visual Diagram is there on the SERVER CLIENT concept. Must see for newbie.
This document provides an overview of RESTful web services using Mojolicious and DBIx::Class. It describes a sample expense tracker application with five database tables in a many-to-many relationship. It then introduces REST concepts and describes how Mojolicious routes requests, DBIx::Class models the database, and generic controllers can provide CRUD operations. Finally, it outlines the steps to generate RESTful routes for a database table, including creating a model and controller that inherits standard CRUD methods.
The document discusses Drupal services architecture and tools. It provides an overview of Services 2.x and 3.x, describing their different approaches and capabilities. Resources for learning more about and using Services are also listed.
This document provides tips for optimizing Rails applications. It discusses using caching at the page, action, and fragment level. It also covers using background jobs to offload processing, optimizing database queries with includes and indexes, and leveraging assets like sprites, CSS, JavaScript minification, and gzipping. Metal and Rack middleware are presented as alternatives to Rails for high performance needs.
Slides from the talk at http://www.meetup.com/GTA-PHP-User-Group-Toronto/events/151672182/
Source code for the demo at https://github.com/zymsys/Slim-RedBeanPHP-KnockoutJS
This document introduces the Dancer web framework for Perl. It summarizes Dancer's key features, including its route-based and minimal design inspired by Sinatra, its PSGI/Plack compliance, and its large collection of plugins for features like templating, databases, REST, and more. The document advocates that Dancer allows for an efficient, succinct, and flexible approach to web development in Perl.
Gearman is a distributed processing framework that allows work to be distributed to multiple machines and workers. The document discusses setting up Gearman and using it to distribute tasks like image resizing. It explains how to create Gearman workers to handle tasks, create clients to submit tasks, and get status updates on task processing. It also covers error handling, managing workers, and scaling the system by adding more workers.
The document discusses object oriented principles like encapsulation, composition, inheritance and polymorphism in JavaScript. It provides examples of implementing these principles through prototype-based inheritance in JavaScript by creating base object classes that can be extended and instantiated to create different soup objects. The examples demonstrate how closures and anonymous functions can be used to achieve functional programming techniques in JavaScript.
This document discusses using Chef to automate configuration management on Windows servers. It provides an overview of Chef and how it works, including the main components of nodes, roles, and cookbooks. It then outlines the basic steps to set up Chef including installing the Chef server, uploading cookbooks, and preparing Windows servers to work with Chef using WinRM or SSH. Finally, an example deployment of a Node.js application using Chef on Windows is described.
Modern Perl web development has evolved over the past 20 years. While Perl was once widely used for web development via CGI scripts, newer technologies emerged that were easier to maintain. The document discusses how Perl is still suitable for web development using modern tools like PSGI, Plack, Dancer2, and others. It demonstrates building a basic TODO application in Perl using these tools, including generating database classes from an existing database, retrieving and displaying data, and adding features with JavaScript and jQuery.
Keeping it small - Getting to know the Slim PHP micro frameworkJeremy Kendall
The document discusses the Slim micro PHP framework. It provides an overview of installing Slim via Composer, basic routing examples including GET and POST requests, and configuration options. Key topics covered include routing, templates, middleware, configuration via a config array, and logging/flash messaging. Examples demonstrate basic routing for homepage, single images, adding photos, and handling POST data and redirects.
Loadrunner is a script loader and dependency manager for JavaScript. It allows loading of scripts and modules, defining dependencies between them, and executing code only after all dependencies are loaded. Key features include:
- Loading scripts and modules asynchronously
- Defining modules with CommonJS or AMD syntax
- Managing dependencies between modules so code only runs after dependencies are resolved
- Being used by other libraries and frameworks like Phoenix and TfW
- Having an open source implementation on GitHub under the MIT license
Inside Bokete: Web Application with Mojolicious and othersYusuke Wada
Yusuke Wada introduced his work developing the Bokete website. Bokete is a Japanese entertainment website similar to 9gag that allows users to post and view "boke" which are photos with short texts. It has a website, mobile apps, and receives 300 million page views per month. Wada developed the backend system for Bokete using Perl and Mojolicious along with several other CPAN modules, particularly some written by Japanese authors. He discussed the system architecture and modules used to build Bokete.
Introduction to GNU Make Programming LanguageShih-Hsiang Lin
The document discusses the GNU Make programming language. It describes Make as having 3 main components: file dependencies that determine which rules to evaluate based on pattern matching; shell commands encapsulated in rules to execute if a target is out of date; and string processing functions for manipulating Make variables. The document provides examples of basic Makefiles and explains key concepts like rules, variables, automatic variables, and how Make uses a functional programming paradigm.
(This is presentation slide for RubyKaigi 2009)
Erubis is very fast and extensible implementation of eRuby. In this slides, I show you features of Erubis, and issues related to eRuby and solution by Erubis. Also I show you some ideas about the future of template system.
Malo Denielou - No shard left behind: Dynamic work rebalancing in Apache BeamFlink Forward
http://flink-forward.org/kb_sessions/no-shard-left-behind-dynamic-work-rebalancing-in-apache-beam/
The Apache Beam (incubating) programming model is designed to support several advanced data processing features such as autoscaling and dynamic work rebalancing. In this talk, we will first explain how dynamic work rebalancing not only provides a general and robust solution to the problem of stragglers in traditional data processing pipelines, but also how it allows autoscaling to be truly effective. We will then present how dynamic work rebalancing works as implemented in Google Cloud Dataflow and which path other Apache Beam runners link Apache Flink can follow to benefit from it.
This document provides an introduction and overview of common Unix text editors, including Vim and Emacs. It discusses the basics of using each editor, such as opening and saving files, navigating text, cutting and pasting, and viewing multiple files. It also covers more advanced features like customization options and modes for different file types. The goal is to help users get started with and become more productive using Vim and Emacs on Unix systems.
Slides from presentation: "Revoke-Obfuscation: PowerShell Obfuscation Detection (And Evasion) Using Science" originally released at Black Hat USA 2017 & DEF CON by @danielhbohannon and @Lee_Holmes.
For more information: http://www.danielbohannon.com/presentations/
This document provides an overview of the Twig templating engine. It discusses why Twig was created as an alternative to PHP for templating, its key features like inheritance, macros and filters. It also covers the basics of Twig syntax including variables, tags, filters and control structures like if/else and for loops. Finally it discusses how to install and use Twig including extending templates and including other templates.
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...Guillaume Laforge
Groovy is a dynamic language for the Java Virtual Machine that integrates with Java. Grails is a web framework built on Groovy that leverages existing Java technologies. The presentation discusses how Groovy's meta-programming capabilities, through its Meta Object Protocol, enable new patterns like dynamic finders that change how we approach common Java patterns like the Data Access Object and Service Locator.
This document discusses various tools for programming in Linux, including:
1. The GNU C Compiler (gcc) which compiles C, C++, and Objective-C programs. It performs preprocessing, compilation, assembly, and linking.
2. Make and automake which simplify building projects with multiple source files by tracking dependencies and only rebuilding changed files. Makefiles define rules and variables to build targets.
3. Popular programming languages for Linux including Java, JavaScript, PHP, Python, and others.
4. Graphical development tools like IDEs, SDKs, and clients for developing KDE and GNOME applications. Eclipse, NetBeans, and Visual Studio Code are mentioned as IDE options.
Catalyst is a web framework for Perl that allows developers to build dynamic web applications in a modular, reusable way. It utilizes common Perl techniques like Moose, DBIx::Class and Template Toolkit to handle tasks like object modeling, database access and view rendering. Catalyst applications can be built in a model-view-controller style to separate application logic, data access and presentation layers. This framework provides a standard way to write reusable code and build web UIs for tasks like system administration and automation.
BioMake is a language for specifying build networks of interdependent computational tasks. It allows defining targets with logical patterns that represent tasks. Targets have dependencies on other targets and are built by running actions. This allows automating sequencing analysis pipelines by specifying the execution of tasks like formatting databases and running BLAST alignments in a declarative way.
2005_Structures and functions of MakefileNakCheon Jung
The document discusses the structure and functions of the Linux kernel Makefile. It describes the top-level Makefile and how it builds the kernel image (vmlinux) and modules. It explains the roles of the .config file, architecture Makefiles, Script/Makefile and various Kbuild Makefiles. Key files like obj-y, obj-m and lib-y goals are identified. The document provides an overview of who develops different parts of the kernel build system and lists some important Kbuild files.
Flink Forward SF 2017: Malo Deniélou - No shard left behind: Dynamic work re...Flink Forward
The Apache Beam programming model is designed to support several advanced data processing features such as autoscaling and dynamic work rebalancing. In this talk, we will first explain how dynamic work rebalancing not only provides a general and robust solution to the problem of stragglers in traditional data processing pipelines, but also how it allows autoscaling to be truly effective. We will then present how dynamic work rebalancing works as implemented in the Google Cloud Dataflow runner and which path other Apache Beam runners link Apache Flink can follow to benefit from it.
The document discusses the challenges and rewards of developing a large JavaScript application with over 120,000 lines of code. It describes the Xopus XML editor framework, including its object-oriented architecture, class loading system, and techniques for improving performance like asynchronous execution and lazy loading of components. The framework aims to provide an application development structure for JavaScript applications in a similar way that Java and C# frameworks work.
The document describes the Xopus JavaScript application framework. The framework aims to address problems with structuring JavaScript programs by introducing object-oriented paradigms like modules, classes, and dependencies. It allows writing JavaScript code in an extended subset with OO features, compiles it to flattened code, and supports unit testing and other program analysis tools. The framework provides a consistent way to structure programs into packages and make dependencies explicit without runtime overhead.
Cmake is a cross-platform build system generator that allows users to specify platform-independent build processes. It generates native makefiles and workspaces that can be used in the compiler IDE of choice. Cmake supports interactive and non-interactive modes to configure projects. It provides options to control code generation, set variables, and obtain help documentation for commands, modules, and other aspects of Cmake.
The document discusses various techniques for optimizing the performance of embedded Ruby (ERuby) templates. It describes 7 iterations of improvements to "MyEruby" that reduced the processing time from over 69 seconds to under 1 second. The optimizations included avoiding line splitting, replacing parsing with patterns, tuning regular expressions, inline expansion and array buffers.
Content-Driven Web Applications with Magnolia CMS and Ruby on Railsbkraft
Instead of going with a traditional Java-only based stack, Dievision chose to integrate Magnolia CMS with (J)Ruby on Rails and to use Rails as the web development framework for its Magnolia-based sites.
In this session, will share some of our experiences with this approach. We will talk about the initial motivation and the differences the environment makes for a developer as well as for a team. You will learn about the practical aspects of the Java/Ruby co-existence, how to integrate Magnolia CMS with the Rails framework and how to work with JCR-based content from a Ruby perspective. Finally, we will cover some options of testing and deploying a site.
Why scala is not my ideal language and what I can do with thisRuslan Shevchenko
- The document discusses some of the author's criticisms of Scala, including its use of implicit parameters to configure runtime behavior, and lack of good support for asynchronous programming.
- The author proposes some workarounds, like annotating imports to avoid implicit conflicts, and patching the compiler to add more information to Future exceptions. However, the ideal solution would be language changes or improvements to asynchronous abstractions like Async.
- Overall, the author argues that Scala is not ideal for some use cases like asynchronous programming, but provides some workarounds people can use in the meantime. The best solutions require changes to the language and standard library.
Demonstration of the applicability of the Linked Data Modeling Language and CHEMROF ( https://chemkg.github.io/chemrof/) for semantic chemical sciences. Presented at MADICES 2022. https://github.com/MADICES/MADICES-2022
Scaling up semantics; lessons learned across the life sciencesChris Mungall
Semantic modeling is key to understanding the biological processes underpinning the health of humans and the health of ecosystems on this planet. There are a number of different approaches to semantic modeling, varying from modeling of *things* in the form of knowledge graphs, modeling of *data structures* in the form of semantic schemas, and modeling of *words* in the form of ultra-large language models. Taking the metaphor of modeling paradigms as planets in a semantic solar system, I will take us on a tour through the solar system, exploring the strengths of each approach, and looking through a historic lens at how we keep iterating over similar solutions with each rotation around the sun. As an alternative to the dichotomy of either resisting change, or starting afresh I urge an approach were we embrace change and adapt with each revolution. I will look specifically at how the OBO community have built powerful knowledge graphs of biological concepts, how the LinkML modeling language incorporates aspects of both frame languages and shape languages, and how language models can be integrated with semantic ontological approaches through the OntoGPT framework
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOChris Mungall
NOTE THAT I HAVE MOVED AWAY FROM SLIDESHARE TO ZENODO
The identical presentation is now here:
https://doi.org/10.5281/zenodo.7778641
General introduction to LinkML, The Linked Data Modeling Language.
Adapter from presentation given to NIH May 2022
https://linkml.io/linkml
Slides from the Ontology Access Kit (OAK) workshop, https://incatools.github.io/ontology-access-kit/
OAK is a pluralistic Python library for accessing a variety of ontologies, using either the command line or the Python library
This document provides an overview of LinkML, a lightweight modeling language for building data schemas and knowledge graphs. It discusses how LinkML allows users to model data in a simple yet expressive way and generate outputs like JSON Schema, OWL, and RDF. LinkML aims to be developer-friendly and integrates with popular tools and standards. Several key projects currently use LinkML for tasks like building knowledge graphs and modeling genomics and clinical data.
LinkML is a modeling language for building semantic models that can be used to represent biomedical and other scientific knowledge. It allows generating various schemas and representations like OWL, JSON Schema, GraphQL from a single semantic model specification. The key advantages of LinkML include simplicity through YAML files, ability to represent models in multiple forms like JSON, RDF, and property graphs, and "stealth semantics" where semantic representations like RDF are generated behind the scenes.
Experiences in the biosciences with the open biological ontologies foundry an...Chris Mungall
The document discusses the need for ontologies in biology to integrate data from the large number of biological databases and standards. It outlines tools for building and using ontologies, including those for end users to search and analyze data, and those for ontology engineers to develop ontologies through automated reasoning and integration. The Gene Ontology is provided as an example of an ontology that has been widely adopted for analyzing gene sets. The document advocates developing ontologies through a collaborative framework like the Open Biological and Biomedical Ontologies to promote reuse and integration across domains.
All together now: piecing together the knowledge graph of lifeChris Mungall
The document summarizes challenges in organizing biological knowledge and progress made through collaborative ontology development. It discusses how early efforts focused on individual ontologies but challenges emerged in maintenance and linking data. New approaches focus on shared principles, standardized mappings between ontologies, and modeling knowledge as graphs. Tools like Boomer and LinkML help reconcile mappings and model data, while community efforts like OBO Foundry and Biolink Model advance integration through open collaboration. Overall progress has been made but more work is needed to operationalize ontologies and build interconnected knowledge graphs.
Collaboratively Creating the Knowledge Graph of LifeChris Mungall
The document discusses collaboratively building a knowledge graph of life by connecting existing biological ontologies. It describes how ontologies can standardize and organize biological data by representing entities and their relationships in a graph. The challenges of integrating different ontology projects are addressed through initiatives like the Open Biological and Biomedical Ontologies (OBO) Foundry. The document outlines how ontologies can be formalized using OWL and connected using tools like the Ontology Development Kit to enable discovery across domains. Current efforts like the Gene Ontology, Biolink Model, and National Microbiome Data Collaborative are leveraging these techniques to create unified, semantically queryable knowledge graphs.
Representation of kidney structures in UberonChris Mungall
The document discusses representation of kidney structures in the Uberon anatomy ontology. It provides examples of kidney classes like glomerular capsule and S-shaped body represented in Uberon along with their relationships. It also discusses how Uberon integrates representations of kidney structures from other species and anatomy ontologies through equivalence axioms and cross-links.
Uberon: opening up to community contributionsChris Mungall
The document discusses Uberon, an integrative multi-species anatomy ontology. It describes Uberon's taxonomic scope covering metazoans with a focus on vertebrates. It outlines how Uberon is edited on GitHub and maintained with cross-references to other species-specific anatomy ontologies. It also discusses how phenotypes from the Phenotype and Human Phenotype Ontology are directly mapped to Uberon and species-specific anatomies, as well as considerations for which anatomy ontology a phenotype ontology should use.
Modeling exposure events and adverse outcome pathways using ontologiesChris Mungall
This document discusses using ontologies to model exposure events, adverse outcome pathways, and phenotypes in order to support predictive toxicology. It describes existing ontologies like the Environment, Conditions, and Treatments Ontology (ECTO) and Gene Ontology Causal Activity Models (GO-CAMs) that can be used to represent exposure mechanisms and adverse outcomes. The document also presents challenges for developing an open predictive toxicology framework that leverages ontologies and linked data to make toxicology data more findable, accessible, interoperable, and reusable.
Causal reasoning using the Relation OntologyChris Mungall
The document discusses the need for standardized relationship types in biological data and ontologies. It provides an overview of the Relation Ontology (RO), which defines over 450 standardized relationship types organized hierarchically. RO provides a foundation for integrating multiple knowledge graphs and represents relationships in ontologies, linked data, and knowledge bases. It enables logical reasoning and inference across graphs through properties like transitivity.
This document discusses lessons learned from developing and using the Gene Ontology (GO) over the past 20 years. It covers how GO aims to systematically annotate gene function across species using an ontology. It describes how GO uses OWL constructs like subclasses, equivalence and reasoning to leverage relationships with other ontologies. It also discusses moving beyond simple annotation to represent biology accurately using causal models and graphs. Finally, it covers the Open Biology Ontology Foundry principles of collaboration, shared standards and interconnected ontologies that GO adheres to.
1. The document discusses using phenotypes across species to aid in interpreting genomic data from patients and improving diagnosis and treatment.
2. Building comprehensive phenotype databases from multiple sources is challenging due to disparate data on human genes/variants and model organisms.
3. The Monarch Initiative aims to link human diseases to phenotypes in model systems through an ontology-based knowledge base and portal.
4. Incorporating rich phenotypic data can improve variant filtering and interpretation by providing more context for sequencing results.
The document discusses the Environment Ontology (ENVO), which aims to represent environmental entities and their relationships in a structured format. It describes the main hierarchies in ENVO, including biome, environmental feature, and environmental material. ENVO represents different levels of environmental granularity from broad biomes down to specific materials. Any material entity can act as a feature determining an environmental system. The objectives for further developing ENVO are also outlined, such as representing various environmental qualities like temperature, nutrients, and toxins.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
React.js, a JavaScript library developed by Facebook, has gained immense popularity for building user interfaces, especially for single-page applications. Over the years, React has evolved and expanded its capabilities, becoming a preferred choice for mobile app development. This article will explore why React.js is an excellent choice for the Best Mobile App development company in Noida.
Visit Us For Information: https://www.linkedin.com/pulse/what-makes-reactjs-stand-out-mobile-app-development-rajesh-rai-pihvf/
Transforming Product Development using OnePlan To Boost Efficiency and Innova...OnePlan Solutions
Ready to overcome challenges and drive innovation in your organization? Join us in our upcoming webinar where we discuss how to combat resource limitations, scope creep, and the difficulties of aligning your projects with strategic goals. Discover how OnePlan can revolutionize your product development processes, helping your team to innovate faster, manage resources more effectively, and deliver exceptional results.
Superpower Your Apache Kafka Applications Development with Complementary Open...Paul Brebner
Kafka Summit talk (Bangalore, India, May 2, 2024, https://events.bizzabo.com/573863/agenda/session/1300469 )
Many Apache Kafka use cases take advantage of Kafka’s ability to integrate multiple heterogeneous systems for stream processing and real-time machine learning scenarios. But Kafka also exists in a rich ecosystem of related but complementary stream processing technologies and tools, particularly from the open-source community. In this talk, we’ll take you on a tour of a selection of complementary tools that can make Kafka even more powerful. We’ll focus on tools for stream processing and querying, streaming machine learning, stream visibility and observation, stream meta-data, stream visualisation, stream development including testing and the use of Generative AI and LLMs, and stream performance and scalability. By the end you will have a good idea of the types of Kafka “superhero” tools that exist, which are my favourites (and what superpowers they have), and how they combine to save your Kafka applications development universe from swamploads of data stagnation monsters!
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Paul Brebner
Closing talk for the Performance Engineering track at Community Over Code EU (Bratislava, Slovakia, June 5 2024) https://eu.communityovercode.org/sessions/2024/why-apache-kafka-clusters-are-like-galaxies-and-other-cosmic-kafka-quandaries-explored/ Instaclustr (now part of NetApp) manages 100s of Apache Kafka clusters of many different sizes, for a variety of use cases and customers. For the last 7 years I’ve been focused outwardly on exploring Kafka application development challenges, but recently I decided to look inward and see what I could discover about the performance, scalability and resource characteristics of the Kafka clusters themselves. Using a suite of Performance Engineering techniques, I will reveal some surprising discoveries about cosmic Kafka mysteries in our data centres, related to: cluster sizes and distribution (using Zipf’s Law), horizontal vs. vertical scalability, and predicting Kafka performance using metrics, modelling and regression techniques. These insights are relevant to Kafka developers and operators.
Enhanced Screen Flows UI/UX using SLDS with Tom KittPeter Caitens
Join us for an engaging session led by Flow Champion, Tom Kitt. This session will dive into a technique of enhancing the user interfaces and user experiences within Screen Flows using the Salesforce Lightning Design System (SLDS). This technique uses Native functionality, with No Apex Code, No Custom Components and No Managed Packages required.
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...kalichargn70th171
Visual testing plays a vital role in ensuring that software products meet the aesthetic requirements specified by clients in functional and non-functional specifications. In today's highly competitive digital landscape, users expect a seamless and visually appealing online experience. Visual testing, also known as automated UI testing or visual regression testing, verifies the accuracy of the visual elements that users interact with.
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...Luigi Fugaro
Vector databases are transforming how we handle data, allowing us to search through text, images, and audio by converting them into vectors. Today, we'll dive into the basics of this exciting technology and discuss its potential to revolutionize our next-generation AI applications. We'll examine typical uses for these databases and the essential tools
developers need. Plus, we'll zoom in on the advanced capabilities of vector search and semantic caching in Java, showcasing these through a live demo with Redis libraries. Get ready to see how these powerful tools can change the game!
The Comprehensive Guide to Validating Audio-Visual Performances.pdfkalichargn70th171
Ensuring the optimal performance of your audio-visual (AV) equipment is crucial for delivering exceptional experiences. AV performance validation is a critical process that verifies the quality and functionality of your AV setup. Whether you're a content creator, a business conducting webinars, or a homeowner creating a home theater, validating your AV performance is essential.
Photoshop Tutorial for Beginners (2024 Edition)alowpalsadig
Photoshop Tutorial for Beginners (2024 Edition)
Explore the evolution of programming and software development and design in 2024. Discover emerging trends shaping the future of coding in our insightful analysis."
Here's an overview:Introduction: The Evolution of Programming and Software DevelopmentThe Rise of Artificial Intelligence and Machine Learning in CodingAdopting Low-Code and No-Code PlatformsQuantum Computing: Entering the Software Development MainstreamIntegration of DevOps with Machine Learning: MLOpsAdvancements in Cybersecurity PracticesThe Growth of Edge ComputingEmerging Programming Languages and FrameworksSoftware Development Ethics and AI RegulationSustainability in Software EngineeringThe Future Workforce: Remote and Distributed TeamsConclusion: Adapting to the Changing Software Development LandscapeIntroduction: The Evolution of Programming and Software Development
Photoshop Tutorial for Beginners (2024 Edition)Explore the evolution of programming and software development and design in 2024. Discover emerging trends shaping the future of coding in our insightful analysis."Here's an overview:Introduction: The Evolution of Programming and Software DevelopmentThe Rise of Artificial Intelligence and Machine Learning in CodingAdopting Low-Code and No-Code PlatformsQuantum Computing: Entering the Software Development MainstreamIntegration of DevOps with Machine Learning: MLOpsAdvancements in Cybersecurity PracticesThe Growth of Edge ComputingEmerging Programming Languages and FrameworksSoftware Development Ethics and AI RegulationSustainability in Software EngineeringThe Future Workforce: Remote and Distributed TeamsConclusion: Adapting to the Changing Software Development LandscapeIntroduction: The Evolution of Programming and Software Development
The importance of developing and designing programming in 2024
Programming design and development represents a vital step in keeping pace with technological advancements and meeting ever-changing market needs. This course is intended for anyone who wants to understand the fundamental importance of software development and design, whether you are a beginner or a professional seeking to update your knowledge.
Course objectives:
1. **Learn about the basics of software development:
- Understanding software development processes and tools.
- Identify the role of programmers and designers in software projects.
2. Understanding the software design process:
- Learn about the principles of good software design.
- Discussing common design patterns such as Object-Oriented Design.
3. The importance of user experience (UX) in modern software:
- Explore how user experience can improve software acceptance and usability.
- Tools and techniques to analyze and improve user experience.
4. Increase efficiency and productivity through modern development tools:
- Access to the latest programming tools and languages used in the industry.
- Study live examples of applications
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Odoo releases a new update every year. The latest version, Odoo 17, came out in October 2023. It brought many improvements to the user interface and user experience, along with new features in modules like accounting, marketing, manufacturing, websites, and more.
The Odoo 17 update has been a hot topic among startups, mid-sized businesses, large enterprises, and Odoo developers aiming to grow their businesses. Since it is now already the first quarter of 2024, you must have a clear idea of what Odoo 17 entails and what it can offer your business if you are still not aware of it.
This blog covers the features and functionalities. Explore the entire blog and get in touch with expert Odoo ERP consultants to leverage Odoo 17 and its features for your business too.
An Overview of Odoo ERP
Odoo ERP was first released as OpenERP software in February 2005. It is a suite of business applications used for ERP, CRM, eCommerce, websites, and project management. Ten years ago, the Odoo Enterprise edition was launched to help fund the Odoo Community version.
When you compare Odoo Community and Enterprise, the Enterprise edition offers exclusive features like mobile app access, Odoo Studio customisation, Odoo hosting, and unlimited functional support.
Today, Odoo is a well-known name used by companies of all sizes across various industries, including manufacturing, retail, accounting, marketing, healthcare, IT consulting, and R&D.
The latest version, Odoo 17, has been available since October 2023. Key highlights of this update include:
Enhanced user experience with improvements to the command bar, faster backend page loading, and multiple dashboard views.
Instant report generation, credit limit alerts for sales and invoices, separate OCR settings for invoice creation, and an auto-complete feature for forms in the accounting module.
Improved image handling and global attribute changes for mailing lists in email marketing.
A default auto-signature option and a refuse-to-sign option in HR modules.
Options to divide and merge manufacturing orders, track the status of manufacturing orders, and more in the MRP module.
Dark mode in Odoo 17.
Now that the Odoo 17 announcement is official, let’s look at what’s new in Odoo 17!
What is Odoo ERP 17?
Odoo 17 is the latest version of one of the world’s leading open-source enterprise ERPs. This version has come up with significant improvements explained here in this blog. Also, this new version aims to introduce features that enhance time-saving, efficiency, and productivity for users across various organisations.
Odoo 17, released at the Odoo Experience 2023, brought notable improvements to the user interface and added new functionalities with enhancements in performance, accessibility, data analysis, and management, further expanding its reach in the market.
6. Functions
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
MAKEFILE_DIR := $(dir $(MAKEFILE_PATH))
test1:
echo $(shell ls $(MAKEFILE_DIR))
FUNC = echo $1 is $2
test2:
$(call FUNC,make,cool)
Special variables, functions, user-defined functions
7. Issues with GNU make
• Only one wildcard per rule
• Poor support for parallelism
• Timestamps are fragile, especially on NFS
• Can’t extend build logic, e.g. add qualifiers to rules
Biomake fixes these!
8. Multiple wildcards per rule
$X-$Y.sam: $X.fa.bwt $Y.fastq
bwa mem $X.fa $Y.fastq >$@
biomake myref-myreads.sam
11. Logic extensions
$X-$Y.sam: $X.fa.bwt $Y { size_file(Y,S),
S < 1000000000 }
bwa mem $X.fa $Y >$@
Can embed Prolog in Makefiles,
or auto-translate entire Makefile to Prolog
12. (Some of) The Competition
Language
GNU-
compatible?
MD5? Clusters?
Erlang make Erlang No No No
omake OCaML Somewhat Yes No
makepp Perl Yes Yes No
qmake C Yes No SGE
13. What Biomake is not(yet)
• A massively parallel data analysis framework
(try Apache Spark)
• A heavy-duty cloud-oriented workflow language
(try Common Workflow Language)
• A web application for managing jobs
(try Galaxy)
14. What Biomake is
A simple, drop-in replacement for GNU make that
allows you to…
• ramp up your Makefile-driven workflows to cluster
scale
• avoid costly rebuilds triggered by file copying &
unsynchronized clocks
• extend rules with wildcards and logical tests
http://www.biorxiv.org/content/early/2016/12/12/093245
https://github.com/evoldoers/biomake