Slides for my Embedded Rust talk at #Devoxx 2016.
Rust is a systems programming language that runs blazingly fast, prevents segfaults and runs on embedded IoT devices.
ProjectTox: Free as in freedom Skype replacementWei-Ning Huang
ProjectTox is a decentralized, end-to-end encrypted messaging network that aims to provide a free and secure alternative to Skype. It uses a distributed hash table and end-to-end encryption to allow communication without a centralized server. The core supports text, file transfers, group chat, and audio/video calls between two users. Several clients have been developed including Toxic for the command line and PyTox which provides full audio/video support through Python bindings. The developer demonstrated PyTox's new audio/video functionality and encouraged participants to join the project on GitHub or its wiki.
A Recovering Java Developer Learns to GoMatt Stine
As presented at OSCON 2014.
The Go programming language has emerged as a favorite tool of DevOps and cloud practitioners alike. In many ways, Go is more famous for what it doesn’t include than what it does, and co-author Rob Pike has said that Go represents a “less is more” approach to language design.
The Cloud Foundry engineering teams have steadily increased their use of Go for building components, starting with the Router, and progressing through Loggregator, the CLI, and more recently the Health Manager. As a “recovering-Java-developer-turned-DevOps-junkie” focused on helping our customers and community succeed with Cloud Foundry, it became very clear to me that I needed to add Go to my knowledge portfolio.
This talk will introduce Go and its distinctives to Java developers looking to add Go to their toolkits. We’ll cover Go vs. Java in terms of:
* type systems
* modularity
* programming idioms
* object-oriented constructs
* concurrency
The document discusses how JRuby pushes the Java platform further by implementing custom core classes like Array, Hash, String, and IO to match Ruby's behavior exactly. It also describes how JRuby uses libraries like ByteList, Joni, Java Native Runtime, and FFI to provide Ruby-like regular expressions, native I/O, and OS-level features on the JVM. These custom implementations and libraries allow JRuby to overcome challenges like dynamic typing and provide a full-fledged Ruby environment atop the Java Virtual Machine.
Bringing Concurrency to Ruby - RubyConf India 2014Charles Nutter
The document discusses bringing concurrency to Ruby. It begins by defining concurrency and parallelism, noting that both are needed but platforms only enable parallelism if jobs can split into concurrent tasks. It reviews concurrency and parallelism in popular Ruby platforms like MRI, JRuby, and Rubinius. The document outlines four rules for concurrency and discusses techniques like immutable data, locking, atomics, and specialized collections for mutable data. It highlights libraries that provide high-level concurrency abstractions like Celluloid for actors and Sidekiq for background jobs.
Veil-Ordnance is a new tool recently added into the Veil-Framework. It's designed to quickly generate shellcode for exploits or use inside backdoor executables.
Rust provides an alternative to C/C++ for programming Arduino Due boards. It offers memory safety without garbage collection, built-in unit testing, and compiles to ARM. Some challenges remain around heap allocations, interrupts, and complex language features. Proper testing is important as even single bit errors can cause software issues in real-world systems like automobiles.
Php core. get rid of bugs and contributePierre Joye
The document discusses PHP core development. It encourages contributors to help fix bugs, improve documentation, and contribute code. It provides statistics on PHP usage and details the RFC process and bi-monthly release cycle. Resources listed include links to the PHP wiki, bug tracking system, code repositories, and documentation tools. Contributing help make PHP more secure, portable, and easy to use.
This document provides an introduction to JavaScript and Node.js. It discusses the evolution of JavaScript from its creation in 1995 to modern standards like ECMAScript 5. Node.js was created in 2009 as a platform to run JavaScript code outside of browsers using an event-driven, non-blocking I/O model. Popular JavaScript engines include V8, SpiderMonkey, and JavaScriptCore. Node.js allows building fast, scalable network applications using a single programming language across client and server environments.
Posladkajmo si JavaScript z uporabo TypeScript aPeter A. Pirc
This document discusses using TypeScript to add static typing to JavaScript programs. It begins with an introduction to TypeScript, noting that it compiles to JavaScript and brings features like optional static typing, classes, and modules to JavaScript. The document then covers TypeScript syntax like data types, classes, interfaces, and internal and external modules. It provides examples of using TypeScript in a code playground, for downloading and installing TypeScript, and integrating it into projects. Resources for learning more about TypeScript are also listed.
This document discusses making PHP more interoperable across platforms. It covers differences between UNIX/Linux and Windows filesystem permissions and access times. It also discusses PHP performance optimizations like opcode caching, compiler optimizations, and differences between 32-bit and 64-bit PHP. Additionally, it covers threading versus processes in PHP and differences in SAPIs like Apache. The document provides code examples to illustrate concepts.
This document summarizes Pierre Joye's presentation about PHP. It discusses the RFC process for proposing new features to PHP, highlights some proposed features like PBKDF2 password hashing and generators, and encourages contributors. The presentation addresses criticisms of PHP like slow release cycles and security issues, but emphasizes the open RFC voting process and notes security has improved with a dedicated team. It concludes by asking for any questions.
Ruby developers need to stop using EventMachine. It's the wrong direction.
Lost in the "Threads vs Event Driven vs Process Spawning" debate is that you can combine them! Learn how Celluloid is improving thread programming by abstracting them using a higher level framework called Celluloid, how you can use Celluloid::IO to throw a reactor pattern into a thread. Using this approach, you can take advantage of threading and use all CPU power on a machine with JRuby or Rubinius. I also discuss the future of distributed objects and computing, and where I think things are going.
The document summarizes news and updates about the Pharo programming language and ecosystem. It highlights the growing adoption of Pharo in universities and research groups around the world, new books and MOOCs being released, improvements and stabilization in the Pharo 5.0 release, and ongoing work to optimize performance and develop new tools and frameworks like Epicea, GT Tools, Match, and Sista. It also promotes Pharo Pro services and mentions several external projects and companies building on and contributing to Pharo.
On the Edge Systems Administration with GolangChris McEniry
This document describes a tutorial on systems administration topics using the Go programming language. It provides an overview of the schedule and topics to be covered, including Go language features like interfaces, files, web servers, TLS, HTTP/2, JSON, package management, one-liners, cross-compilation, metrics, containers, and SSH. It also lists some prerequisites and expectations around the example code provided, noting that errors will be panicked and the code is for demonstration purposes only and not meant for production use. The document is intended to serve as an agenda and introduction to the tutorial content.
Rust is a system programming language focused on safety, speed, and concurrency. It's standard library provides API for dealing with I/O, but for now in a synchronous way. In this talk we'll dive into the ecosystem of asynchronous libraries published so far on crates.io and how to use them in order to build robust, scalable, and production ready network clients and servers.
Ethereum allows for distributed applications and smart contracts to be built and run on a decentralized blockchain network. It provides a virtual machine that allows code to be run and maintain its own balance of funds. The currency powering the Ethereum network is Ether, which can be used to pay for transactions. A major hack of a decentralized autonomous organization called The DAO compromised $50 million worth of funds, leading to debates around how to respond and potential changes to the Ethereum network. While still early, Ethereum aims to enable new types of decentralized applications, but currently faces challenges around usability and security.
I gave this talk on IEEE Day (October 7, 2014). I covered Introduction to Open Source, Various Projects and Products in Open Source, What students can get from Open Source and various different aspects of Open Source during this talk.
Please feel free to download, modify and use the slides for your talks. Lets keep rocking the Free Web ! :)
RubyStack: the easiest way to deploy Ruby on Railselliando dias
RubyStack is a tool that makes it easy to deploy Ruby on Rails applications. It provides a self-contained, relocatable environment with all necessary components like Ruby, Rails, MySQL, and Apache bundled together. The RubyStack installer uses BitRock InstallBuilder to create installers with a graphical user interface that work across operating systems. RubyStack provides unattended installation options and tools like Capistrano for automating deployment. Under the hood, RubyStack bundles optimized versions of all required libraries and components to provide a complete development and deployment solution for Ruby on Rails.
FILEgrain: Transport-Agnostic, Fine-Grained Content-Addressable Container Ima...Akihiro Suda
My talk at Open Source Summit North America (Los Angeles - September 11, 2017): http://sched.co/BDpM
---
The current Docker/OCI image format uses TAR archives, which are created for each of Dockerfile `RUN` changesets, for representing rootfs layers.
One of the problems with this format is that a container cannot be started until all the TAR archives are downloaded.
Also, the format has limitations in concurrency of downloading, and granularity of file deduplication among different versions of images.
FILEgrain solves these problems by using content-addressable store in the granularity of files, rather than of TAR archives, in the transport-agnostic way.
Since the files can be lazily downloaded, a container can be started without downloading whole the image.
The experimental result with 633MB of Java image shows that downloading 4MB of files is enough for running sh, 87MB for JRE, and 136MB for JDK.
Further information are available at https://github.com/AkihiroSuda/filegrain .
The document discusses various scripting languages including Ruby, Perl, and TCL. It covers the basics of each language as well as more advanced concepts like object-oriented programming in Ruby, regular expressions in Perl, and event-driven programming in TCL. The document also compares scripting languages to other programming languages and explores differences between languages like Ruby versus Java and Ruby versus Perl.
Stop making, start composing - Using Composer for Drupal developmentkaspergarnaes
The document discusses using Composer for Drupal development as an alternative to Drush Make. It provides a 5 minute crash course on Composer, explaining what it is and what it does. It then outlines how modules, themes, libraries and patches can be managed with Composer and provides examples from a demo project. It concludes by discussing next steps such as a Drupal Composer repository and the future of Drush.
How to create/improve OSS product and its community (revised)SATOSHI TAGOMORI
1) The document discusses how to create and improve open source software (OSS) projects and their communities. It addresses questions around the purpose of the OSS, languages used, versioning, and community engagement.
2) Key recommendations for building community include using English, being open to contributions, demonstrating stability and maintenance, and having a pluggable architecture.
3) The document debates tradeoffs like clean code vs quick contributions, focused vs feature-rich software, and localized vs global development and highlights the need to choose approaches given limitations. Overall it stresses continuous improvement over time.
The Ring programming language version 1.7 book - Part 6 of 196Mahmoud Samir Fayed
Ring is an innovative, multi-paradigm programming language designed to be simple, small, flexible and fast. It supports imperative, object-oriented, functional and other paradigms. Ring's compiler compiles source code to bytecode, which is executed by the Ring Virtual Machine. The language was created to be highly productive for application development while also small and portable.
ROS is an open-source, meta-operating system for robots that provides services like hardware abstraction, device control, message passing, and package management. It has tools and libraries for building, writing, and running code across multiple computers. ROS uses a publish-subscribe model with message-passing between processes. Key aspects of ROS include its plumbing for messaging, extensive tools, capabilities through libraries, and large ecosystem/community. The ROS equation can be defined as: ROS = Robots + Operating System + Software + Community.
Open source software refers to software with source code that is made freely available and may be redistributed and modified. Key points:
- Open source software source code is openly shared so it can be collaboratively developed and improved by a community.
- Popular open source programs include the Linux operating system, Apache web server, MySQL database, PHP, WordPress, VLC media player, Notepad++, Ubuntu, Android, GIMP, LaTeX and Arduino.
- Open source software is often free to use but may also be used commercially. It promotes sharing, collaboration and continual improvements to software.
The Ring programming language version 1.4 book - Part 2 of 30Mahmoud Samir Fayed
This document provides an overview of the Ring programming language, including its history, goals, features and license. The Ring language was created in 2013 as a general purpose language that is simple, small, flexible and fast. It supports multiple paradigms like object-oriented, functional and declarative programming. Notable features include a compact syntax, dynamic typing, first-class functions/objects, exception handling, libraries for games, GUI and more. The language is open source under the MIT license.
The Ring programming language version 1.4.1 book - Part 2 of 31Mahmoud Samir Fayed
This document provides an overview of the Ring programming language, including its history, design goals, features and syntax. Some key points:
- Ring is a general purpose language designed for productivity and developing scalable applications. It has a simple, natural syntax and encourages organization.
- The language has been under development since 2013 and reached version 1.4.1 in 2017. It supports multiple paradigms like object-oriented, functional and declarative programming.
- Ring is small and fast, portable, has automatic memory management and a flexible syntax. It allows developing desktop, web and mobile applications as well as games.
R is an open source programming language used for statistical analysis and graphics. It allows users to create objects like vectors, matrices, data frames and lists to manipulate and analyze data. RStudio is an integrated development environment for R that provides a user interface, debugging tools and package management. The document introduces key R concepts like data types, packages and resources for learning R. It also provides best practices for file management, naming conventions and version control when programming in R.
Markup languages and warp-speed documentationLois Patterson
The presentation discusses how software development has moved towards more frequent releases through DevOps practices. This requires documentation to also be updated quickly. Markup languages can help by allowing many contributors to collaborate easily on documentation. Specific markup languages mentioned include reStructuredText and Markdown, which can be processed by tools like Sphinx to generate documentation from plain text files. The presentation demonstrates how to use reStructuredText and emphasizes that markup languages, collaborative tools like GitHub, and automation are key to supporting modern rapid software development practices.
Lois Patterson: Markup Languages and Warp-Speed DocumentationJack Molisani
The presentation discusses how software development has moved towards more frequent releases through DevOps practices. This requires documentation to also be updated quickly. Markup languages can help by allowing many contributors to collaborate easily on documentation. Specific markup languages mentioned include reStructuredText and Markdown, which can be processed by tools like Sphinx to generate documentation from plain text files. The presentation demonstrates how to use reStructuredText and emphasizes that markup languages, collaborative tools like GitHub, and automation are key to supporting modern rapid software development practices.
BBS has identified extensive use of open source over the last 5 years through field studies and project data collection. Open source is now a vital part of BBS's business applications and infrastructure. It is used across divisions in development, deployment, testing, and production. BBS utilizes a variety of open source utilities and platforms, including Linux, Solaris, Apache, NFS, and Postfix, benefiting from increased stability, security, and cost savings compared to proprietary alternatives.
The document provides an overview of the Dart programming language created by Google. It discusses that Dart is an open-source, class-based language with C-style syntax that compiles to JavaScript. Google created Dart to help developers build complex web apps faster. The document outlines Dart's features and tools like Dartium and the Dart Editor IDE. It recommends trying Dart for new applications and lists companies using Dart in production.
This document discusses the programming language Go and how it differs from other languages. It provides a brief history of programming languages from the 1950s to today. It then discusses challenges like hardware limitations and multithreaded design that led to the creation of Go. Go was created at Google in 2009 to better support concurrency and utilize multiple CPU cores. It has a simple syntax and type system, built-in concurrency using goroutines and channels, and sees adoption at many large tech companies.
The Ring programming language version 1.6 book - Part 6 of 189Mahmoud Samir Fayed
The document describes the Ring programming language. It discusses why Ring was created, including wanting a language that is simple, natural, encourages organization, and has transparent implementation. It provides an overview of Ring's design goals, features, and licensing. Key points include that Ring supports multiple paradigms like object-oriented programming and functional programming. It aims to be small, fast, and give programmers memory control. Ring also has a straightforward syntax without semicolons or explicit function endings.
Introduction to GoLang by Amal Mohan N. This presentation is an introduction to GoLang - it's history, features, syntax, importance etc.
concurrency, go-routines, golang, google, gopher, introduction, programming
My talk regarding Localization at Mozilla during the "WordPress, Internet, at Wikang Pambansa" event of the WordPress User Group Philippines at UP Diliman.
Firefox Dev Tools for WordPress Developers (WordCamp Iloilo 2019)Robert 'Bob' Reyes
- Firefox Dev Tools allow developers to examine, edit, and debug HTML, CSS, and JavaScript on desktop and mobile browsers. The core tools include the Page Inspector, Web Console, JavaScript Debugger, Network Monitor, Performance Tools, Responsive Design Mode, and Accessibility Inspector.
- Mozilla's mission is to ensure the Internet is a global public resource, open and accessible to all, that truly puts people first and empowers users.
- Mozilla is seeking help from developers in the Philippines to use and test products, spread awareness of open source and privacy, invite Mozilla to events, help man booths, and help train others in web literacy.
This document provides an overview and introduction to building virtual reality (VR) experiences using WebVR and the A-Frame framework. It discusses:
- What WebVR is and how it allows creating VR tools, standards, and experiences for the open web.
- What A-Frame is and its features for building VR scenes in HTML such as being easy to learn, cross-platform support, performance optimizations, and a visual inspector.
- Examples of VR experiences that have been built with A-Frame, Mozilla's work in mixed reality and VR including Firefox Reality, Spoke for creating 3D environments, and Unity WebVR assets.
Challenges & Opportunities the Data Privacy Act BringsRobert 'Bob' Reyes
My slide deck used in People Management Association of the Philippines' (PMAP) Data Privacy Act Forum held last 18 SEP 2017 at Ace Hotel & Suites, Pasig City.
This document discusses how the Rust programming language community in the Philippines (RustPH) was started from scratch. It began in 2015 when a few members of the Mozilla Philippines community expressed interest in Rust and formed a study group. They met regularly to learn Rust using an online tutorial. They conducted introductory Rust sessions and code camps to spread awareness. Their plans include creating training materials and inviting local companies using Rust to speak. Communication occurs primarily through an online Slack group and Facebook page since the Philippines has over 7,000 islands. The goal is to meet online twice a month and in person every 3 months.
This document provides information about localization efforts at Mozilla in 2016. It discusses Mozilla's mission to ensure an open and accessible Internet. It then outlines areas for community contribution, including helping users, testing, coding, marketing, translation, and localization. The document defines localization and translation, explaining that localization goes beyond translation to adapt content for specific cultures. It also lists some of Mozilla's products available for localization, such as Firefox, Firefox for Android, and Mozilla websites. Finally, it provides information on localization tools like Pontoon and style guides, and invites participation in the Tagalog Developer Edition and MozillaPH Slack group.
A talk on HTML 5 by Robert "Bob" Reyes of Mozilla Philippines at the University of the East (UE) Manila on 22 Sep 2016 as part of the school's Foundation Week celebration.
Slide deck used by Robert "Bob" Reyes for a "Getting started on MDN (Mozilla Developer Network)" session at the Mozilla Community Space Manila (MozSpaceMNL) on 14 APR 2016.
This document discusses Mozilla's work on connected devices and the web, including Firefox OS, Mozilla VR, and Firefox Developer Tools. It provides an overview of Mozilla's mission to keep the internet open and accessible, their goals of exploring the role of the web for connected devices, and some of their projects like B2GDroid, Chirimen, and Panasonic TV integration. It also summarizes new features in Firefox Developer Edition like the Page Inspector, Style Editor, and Performance Tool, as well as the Valence add-on for debugging multiple browsers.
This document summarizes the history and work of Mozilla. It discusses Mozilla's role in starting the browser wars of the 1990s and 2000s by creating Netscape Navigator and later Firefox to compete with Internet Explorer. It introduces Mozilla's mission to keep the internet open and accessible to all. The document outlines Mozilla's establishment in the Philippines in 2009 and the subsequent launches of Firefox OS in 2013 and Firefox for iOS in 2015. It encourages involvement in the Firefox Student Ambassadors program and describes some of Mozilla's current projects like Firefox Hello.
MozTour University of Perpetual Help System - Laguna (Binan)Robert 'Bob' Reyes
Introduction to the Mozilla Project, Mozilla in the Philippines, Firefox, Firefox OS during MozTour University of Perpetual Help System - Laguna in Binan last Sat 01 Aug 2015.
Introduction to Mozilla Firefox given to the attendees of the Firefox Student Ambassadors (FSA) Program Camp Philippines 2015 (12-13 JUN 2015) at Batangas, Philippines.
This document discusses building an open source community and outlines key aspects of a strong community. It provides an overview of Mozilla and the Mozilla community in the Philippines. The key aspects of a strong community highlighted are having shared beliefs, shared responsibility and ownership, shared leadership, open communications, and ensuring there is fun and enjoyment. The Mozilla community in the Philippines is volunteer-based and aims to promote Mozilla and open standards through representatives and student ambassadors across the country.
This document introduces the Mozilla Community Space in Manila and provides information about Mozilla's presence and opportunities to get involved in the Philippines. It discusses Mozilla's mission to build an open and accessible internet, provides an overview of Mozilla in the Philippines including its volunteer community and representative roles. The document also outlines different areas for contribution and promotes the Firefox Student Ambassadors program.
This document summarizes a training presentation for MozillaPH trainers. It introduces the presenter and their background with Mozilla as well as education. It discusses what Mozillians do in promoting openness, innovation and opportunity on the web. The presentation covers the differences between education and training and tips for preparing and delivering presentations, including using PowerPoint effectively and motivating the audience. The goal is to help trainers be effective educators that advance Mozilla's mission.
This document provides information about the ReMo Program and the Mozilla Reps global program. The Mozilla Reps program aims to empower individuals who want to represent Mozilla in their region and represent their region within Mozilla. It has a simple structured framework and provides tools for reps. Reps work to promote Mozilla's mission and projects, inspire new contributors, and are represented by a council and mentors. In 2012, there were 382 reps worldwide who hosted 375 events, with 23% taking place in the Philippines. The program aims to be a transformative program for Mozilla by connecting reps with different Mozilla teams and communities.
This document discusses increasing gender diversity in open web initiatives like Mozilla. It notes that while over 50% of humans are women, they have a low presence in open web communities. The speaker then outlines ways women can contribute, such as reporting bugs, coding, designing, documenting, and organizing events. It encourages making women feel welcome at events and avoiding sexist jokes. The goals are increasing women's involvement in Mozilla communities, improving their visibility in open source projects, and empowering women in the industry. People of any gender or background are invited to join the WoMoz initiative and its mailing list, wiki, and social media to promote this cause.
Comparison Table of DiskWarrior Alternatives.pdfAndrey Yasko
To help you choose the best DiskWarrior alternative, we've compiled a comparison table summarizing the features, pros, cons, and pricing of six alternatives.
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionBert Blevins
Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.
Coordinate Systems in FME 101 - Webinar SlidesSafe Software
If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights.
During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to:
- Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value
- Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems
- Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors
- Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported
- Look Ahead: Gain insights into where FME is headed with coordinate systems in the future
Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!
The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxSynapseIndia
Your comprehensive guide to RPA in healthcare for 2024. Explore the benefits, use cases, and emerging trends of robotic process automation. Understand the challenges and prepare for the future of healthcare automation
The Rise of Supernetwork Data Intensive ComputingLarry Smarr
Invited Remote Lecture to SC21
The International Conference for High Performance Computing, Networking, Storage, and Analysis
St. Louis, Missouri
November 18, 2021
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
Measuring the Impact of Network Latency at TwitterScyllaDB
Widya Salim and Victor Ma will outline the causal impact analysis, framework, and key learnings used to quantify the impact of reducing Twitter's network latency.
Transcript: Details of description part II: Describing images in practice - T...BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...Toru Tamaki
Jindong Gu, Zhen Han, Shuo Chen, Ahmad Beirami, Bailan He, Gengyuan Zhang, Ruotong Liao, Yao Qin, Volker Tresp, Philip Torr "A Systematic Survey of Prompt Engineering on Vision-Language Foundation Models" arXiv2023
https://arxiv.org/abs/2307.12980
UiPath Community Day Kraków: Devs4Devs ConferenceUiPathCommunity
We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner!
We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too!
Check out our proposed agenda below 👇👇
08:30 ☕ Welcome coffee (30')
09:00 Opening note/ Intro to UiPath Community (10')
Cristina Vidu, Global Manager, Marketing Community @UiPath
Dawid Kot, Digital Transformation Lead @Proservartner
09:10 Cloud migration - Proservartner & DOVISTA case study (30')
Marcin Drozdowski, Automation CoE Manager @DOVISTA
Pawel Kamiński, RPA developer @DOVISTA
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
09:40 From bottlenecks to breakthroughs: Citizen Development in action (25')
Pawel Poplawski, Director, Improvement and Automation @McCormick & Company
Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company
10:05 Next-level bots: API integration in UiPath Studio (30')
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
10:35 ☕ Coffee Break (15')
10:50 Document Understanding with my RPA Companion (45')
Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath
11:35 Power up your Robots: GenAI and GPT in REFramework (45')
Krzysztof Karaszewski, Global RPA Product Manager
12:20 🍕 Lunch Break (1hr)
13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30')
Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance
13:50 Communications Mining - focus on AI capabilities (30')
Thomasz Wierzbicki, Business Analyst @Office Samurai
14:20 Polish MVP panel: Insights on MVP award achievements and career profiling
Kief Morris rethinks the infrastructure code delivery lifecycle, advocating for a shift towards composable infrastructure systems. We should shift to designing around deployable components rather than code modules, use more useful levels of abstraction, and drive design and deployment from applications rather than bottom-up, monolithic architecture and delivery.
Best Programming Language for Civil EngineersAwais Yaseen
The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era.
Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.
3. About Me
• Mozilla Rep for the PHL since 2011
• Technopreneur at TurfSitePH.net
• Technology Columnist at MB.com.ph
• Team Manager at SIPFC.org
• Dad of Xeon & Haswell
5. Target Audience
• People with some background in
programming (any language).
• People with zero or near-zero knowledge
about Rust (Programming Language).
• People who wants to learn a new
programming language.
6. Agenda
• Mozilla in the Philippines
• Installing Rust
• Hello World, the Rust way
• Intro to Cargo
• IDE Support
• Variables & Constants
• Simple Arithmetic Functions
9. History of Mozilla
On 23 Feb 1998,
Netscape Communications Corp.
created a project called
Mozilla (Mosaic + Godzilla).
Mozilla was launched 31 Mar 1998.
47. What is Rust?
• Rust is a systems programming language
that runs blazingly fast, prevents
segfaults, & guarantees thread safety.
• Compiles to Native Code like C++ & D.
• Strength includes memory safety &
correctness (just like in C).
“Rust is a modern native-code language
with a focus on safety.”
48. What is Rust?
• At present…
• Rust has more than 6.8K libraries, with
more than 85M downloads at crates.io
• More than 40 companies publically
using in production (Friends of Rust).
50. Mozilla ❤️ Rust
• Started as Mozillian Graydon Hoare’s
side project.
• He began working on Rust full time in 2009.
• Rust 1.0 released in 2015.
• New releases every six (06) weeks.
• Rust is Mozilla-supported, rather than
Mozilla-owned.
52. Rust & Servo
• One part of Mozilla is working on
improving Rust.
• Another part is building a brand new web
rendering engine using Rust: Servo.
• High-level goals of Servo:
• Implement parallel layout.
• Experiment with alternative rendering design.
• Investigate feasibility of complete JS GC integration.
• Incubator for experiments that can be reintegrated
into Firefox.
54. Rust & Firefox
• We are already shipping Rust code in
Firefox (inside the media stack).
• The process of re-writing existing C++
code to Rust is called Oxidation.
• Some of the most challenging projects
related to Oxidation is part of the
Quantum project.
• The amount of Rust code in Firefox will
increase over time.
57. Why Rust?
• Rust solves two core problems from
C++ & similar low-level programming
languages:
• Data races in multithreaded code.
• Use-after-free (UAF) errors.
• UAF’s are huge source of security
exploits in Firefox & other browsers.
• Both problems are addressed by making
“ownership” explicit.
58. Top 10 IoT Programming
Languages
1. C Language
2. C++
3. Python
4. Java
5. JavaScript
6. Rust
7. Go
8. Parasail
9. B#
10.Assembly
• No particular order.
• Based on popularity & following.
62. Ownership in Rust
• Encapsulates two (02) concepts:
• The lifetime of a value (i.e. when it is valid to
interact with it).
• Unique vs Shared Values.
• Leads to a few rules:
• Uniquely-owned values are destroyed when
they go out of scope.
• Only uniquely-owned values can be mutated.
• Borrowing a value means it is no longer
uniquely owned.
63. Ownership in Rust (Analogy)
• I have a coloring book, a marker & some
friends.
• If I leave, the coloring book & marker
leave with me.
• If a friend borrows the book, I can no
longer color it.
• My friends can also lend it to other friends.
• If someone leaves while my friends are
borrowing the book, they give it back before
leaving.
64. Ownership in Rust (Analogy)
• I can’t leave if the book is still borrowed.
• Either I wait, or I should have given it away.
• I can also lend someone the marker along with the
book, if they want to color in it.
65. How Does Ownership Help?
• Use-After-Free
• Can’t return/store pointer to an object that may
be deallocated before pointer.
• Can’t use immutable & mutable pointers to the
same object.
• Data Races
• Forced transfer ownership of data or copy when
using multiple threads.
• Only types that abide by compiler rules can be
shared – ensures type locking/atomic access is
used.
68. What is Race Condition?
• A race condition is…
• An undesirable situation.
• Occurs when a device or system
attempts to perform two or more
operations at the same time.
• But because of the nature of the device
or system, the operations must be done
in the proper sequence to be done
correctly.
72. Projects Using Rust
Magic Pocket
Dropbox's file storage system that powers their
Diskotech petabyte storage machines.
Servo
Mozilla's new parallel rendering engine developed
in collaboration with Samsung.
OpenDNS
Uses Rust in two of its components.
Redox OS
A microkernel operating system being developed
in Rust.
73. Projects Using Rust
Xi Editor
The xi editor project is an attempt to build a high
quality text editor, using modern software
engineering techniques.
GNU uutils coreutils
uutils is an attempt at writing universal (as in cross-
platform) CLI utils in Rust. This repo is to
aggregate the GNU coreutils rewrites.
Neon
A safe Rust abstraction layer for native Node.js
modules.
75. Installing Rust
• Installer for Windows, Mac OS X & Linux available via
https://www.rust-lang.org
• If you wish to run Rust on your local machine when
you’re offline.
• Rust Playground [https://play.rust-lang.org]
• If you are online, you may opt to use this one
instead.
• You may use ANY text editor to code in Rust.
• As a practice, please save your Rust code
using .rs file extension.
79. Function main()
• Every Rust program must have at least one (01)
function.
• Simplest possible function declaration is named as
“main”
fn main() {
}
• Functions can also take arguments
fn print_number(x:i32) {
println!(“x is: {}”, x);
}
84. Cargo
• A tool that allows Rust projects to declare their various
dependencies & ensure that you’ll always get a
repeatable build.
• Cargo does:
1. Introduces two (02) metadata files with various bits
of project information.
2. Fetches & builds your project’s dependencies.
3. Invokes rustc or another build tool with the correct
parameters to build your project.
4. Introduces conventions to make working with Rust
projects easier.
85. Cargo
• To start a new project with Cargo, we invoke in the
command line:
cargo new hello_world --bin
• Cargo will generate the following files & folders:
Cargo.toml [file]
src [folder]
main.rs [file]
• Acts as a manifest file
• Contains all of the metadata that Cargo needs to
compile your project.
87. TOML
• Tom’s Obvious, Minimal Language
(or some say, Tom’s Own Markup Language)
• Created by Tom Preston-Werner
• Aims to be a minimal configuration file format that's
easy to read due to obvious semantics.
• Designed to map unambiguously to a hash table.
• Should be easy to parse into data structures in a wide
variety of languages.
91. IDE Support
• Modern IDEs give developers a massive increase in
productivity.
• Several community projects have provided an excellent
start towards IDE support.
• Good IDE support requires a number of components:
• The compiler must be modified to operate in a
different mode.
• Must provide name & type information from the
compiler to the IDE.
• Must write plugins for the IDEs themselves so they
know what to do with Rust projects.
92. IDE Support
• Available IDE Plugins:
• Eclipse [https://github.com/RustDT/RustDT]
• Intellij IDEA [https://github.com/intellij-rust/intellij-rust]
• Visual Studio [https://github.com/PistonDevelopers/VisualRust]
• Editor Plugins:
• Atom [https://atom.io/packages/language-rust]
• Emacs [https://github.com/rust-lang/rust-mode]
• Sublime Text [https://packagecontrol.io/packages/Rust]
• Vim [https://github.com/rust-lang/rust.vim]
• Visual Studio Code
[https://github.com/saviorisdead/RustyCode]
93. More on IDE Support
https://www.rust-lang.org/ides.html
98. Mutability
• The ability to change something.
• Mutable variable binding.
• You’re allowed to change what the binding points to.
let x = 5;
x = 6; will result to an error!
• We can use the mut keyword:
let mut x = 5;
x = 6; no problem; no error!
99. Constants
• Aside from using variables, we can also declare
constants in Rust:
const PI:u8 = 3;
no fixed memory address
memory safety is NOT compromised
static X:i32 = 123;
102. Arithmetic Operators
• Rust DOES NOT support ++ and – used in other
programming languages.
• a = a+1; or
• a += 1;
• b = b-1; or
• b -= 1;
• You may also use the following in Rust
• *=
• /=
• %=
103. Arithmetic Operators
let mut a = 2+3*4;
println!(“Answer = {}.”, a);
let mut a = (2+3)*4;
println!(“Answer = {}.”, a);
104. Arithmetic Operators
let mut a = 10/3;
println!(“Answer = {}.”, a);
let mut a = 10%3;
println!(“Answer = {}.”, a);
let a=10;
println!(“Remainder of {} / {}
= {}”, a, 3, (a%3));
106. Arithmetic Operators (eg1)
fn main() {
let num1 = 20;
let num2 = 10;
println!(“The SUM of the numbers =
{}”, (num1 + num2));
println!(”The DIFFERENCE of the
numbers = {}”, (num1 – num2));
… and so on
107. Arithmetic Operators (eg2)
fn main() {
let num1 = 20;
let num2 = 10;
let sum = num1 + num2;
let dif = num1 – num2;
let pro = num1 * num2;
let quo = num1 / num2;
println!(“The SUM of the numbers =
{}”, sum);
… and so on
110. Reference Materials
• The Rust Programming Language Book
• https://doc.rust-lang.org/book/
• Rust by Example
• http://rustbyexample.com
• Rust User Forums
• https://users.rust-lang.org
• https://internals.rust-lang.org
Hackers and governments using the web browser as vectors to steal data from users.
Huge numbers of these (exploits) released every year.
Mozilla addressed this issue by creating a new programming language.
Servo is being built from ground-up.
Firefox is not enough today.
There were design decisions for Firefox made more than a decade ago, that are very difficult to change now.
It will involve tons of work to re-design Firefox, so we thought of creating a new web browser engine instead.
Servo serves as a playground for us to experiment with things that we could do better in Firefox.
Quantum is not a new web browser.
Quantum is Mozilla's project to build the next-generation web engine for Firefox users, building on the Gecko engine as a solid foundation.
Quantum will leverage the fearless concurrency of Rust and high-performance components of Servo to bring more parallelization and GPU offloading to Firefox.
Quantum is not a new web browser.
Quantum is Mozilla's project to build the next-generation web engine for Firefox users, building on the Gecko engine as a solid foundation.
Quantum will leverage the fearless concurrency of Rust and high-performance components of Servo to bring more parallelization and GPU offloading to Firefox.
Hackers and governments using the web browser as vectors to steal data from users.
Huge numbers of these (exploits) released every year.
Mozilla addressed this issue by creating a new programming language.