Python has evolved through multiple versions with improvements to performance, features, and the standard library. The talk summarized key changes between Python versions 2.2 through 2.5, including major new features in 2.2 like iterators and generators, performance optimizations in 2.3 and 2.4, and new features in 2.5 like the "with" statement for resource allocation and context managers.
Come hear about the highly available and massively scalable cloud storage service that is provided by Windows Azure. Learn how to create and access the different types of Windows Azure storage available, including blobs, tables, and queues.
A local plugin wich monitors PostgreSQL extracting information using an external configuration file and the software already installed on the system to monitor. For more information visit the following webpage: http://pandorafms.com/index.php?sec=Library&sec2=repository&lng=en&action=view_PUI&id_PUI=552
El documento describe la experiencia de un grupo de estudiantes en las Olimpíadas de Matemática en Mar del Plata. Los estudiantes viajaron desde Ñandú y participaron en diversas actividades como la competencia de resolución de problemas, juegos para entretenerse y conocer a otros estudiantes, y visitas a la playa. Uno de los estudiantes recibió una mención especial y todos aprendieron y se divirtieron, concluyendo que fue un viaje muy positivo que vale la pena recordar.
The document is a presentation on the Groovy programming language. It provides an overview of Groovy including its origins as a dynamic language for the Java Virtual Machine that combines features from Java, Ruby and Python. The presentation covers Groovy features like dynamic and static typing, built-in support for lists, maps and regular expressions. It also discusses how Groovy can be used to work with Java code and integrated with build tools like Ant. Code samples are provided to demonstrate Groovy's simpler syntax compared to Java.
This document provides a quick reference for common Python operators, data types, and operations. It includes:
1) A table showing Python operator precedence from highest to lowest. Exponentiation has the highest precedence while comparisons have the lowest.
2) A list of common list object methods like count, index, append, and sort.
3) Examples of common file operations in Python like opening, reading, writing, and closing files.
4) Examples of common dictionary literals and operations for creating, updating, copying, and iterating over dictionaries.
5) Examples of common tuple literals and operations for creating, indexing, slicing, and iterating over tuples.
Come hear about the highly available and massively scalable cloud storage service that is provided by Windows Azure. Learn how to create and access the different types of Windows Azure storage available, including blobs, tables, and queues.
A local plugin wich monitors PostgreSQL extracting information using an external configuration file and the software already installed on the system to monitor. For more information visit the following webpage: http://pandorafms.com/index.php?sec=Library&sec2=repository&lng=en&action=view_PUI&id_PUI=552
El documento describe la experiencia de un grupo de estudiantes en las Olimpíadas de Matemática en Mar del Plata. Los estudiantes viajaron desde Ñandú y participaron en diversas actividades como la competencia de resolución de problemas, juegos para entretenerse y conocer a otros estudiantes, y visitas a la playa. Uno de los estudiantes recibió una mención especial y todos aprendieron y se divirtieron, concluyendo que fue un viaje muy positivo que vale la pena recordar.
The document is a presentation on the Groovy programming language. It provides an overview of Groovy including its origins as a dynamic language for the Java Virtual Machine that combines features from Java, Ruby and Python. The presentation covers Groovy features like dynamic and static typing, built-in support for lists, maps and regular expressions. It also discusses how Groovy can be used to work with Java code and integrated with build tools like Ant. Code samples are provided to demonstrate Groovy's simpler syntax compared to Java.
This document provides a quick reference for common Python operators, data types, and operations. It includes:
1) A table showing Python operator precedence from highest to lowest. Exponentiation has the highest precedence while comparisons have the lowest.
2) A list of common list object methods like count, index, append, and sort.
3) Examples of common file operations in Python like opening, reading, writing, and closing files.
4) Examples of common dictionary literals and operations for creating, updating, copying, and iterating over dictionaries.
5) Examples of common tuple literals and operations for creating, indexing, slicing, and iterating over tuples.
This document is the revision history and table of contents for the "Advanced Bash-Scripting Guide", which is described as an in-depth exploration of shell scripting in Bash assuming no previous knowledge. The guide contains over 30 chapters that progress from basic to advanced topics in shell scripting through explanatory text and over 100 code examples. It aims to teach shell scripting interactively through writing and analyzing scripts.
The document discusses the application of LaSalle's principle in stability analysis and is authored anonymously from the Department of Control Science and Engineering at Tsinghua University in Beijing, China, including contact information. Commands and environments from LaTeX and CJK packages are used to typeset Chinese characters at different font sizes for the document title and author information. References to mathematical expressions are made using LaTeX math mode syntax.
This document provides an overview of the Ruby on Rails Tutorial book. It discusses the technologies used to produce the book, including PolyTEXnic for formatting, and highlights features like code samples, figures, tables and math equations. Sample content is provided, including code snippets and lorem ipsum placeholder text.
This document provides a sample of what a Ruby on Rails tutorial book could look like. It demonstrates different formatting elements like code samples, figures, tables, and math equations. The sample includes two chapters, an introduction and a chapter with lorem ipsum text. Key elements like a table of contents, numbered sections and cross references are shown to be functional in both HTML and PDF formats.
This document discusses how to create a domain-specific language (DSL) using Ruby. It begins with an introduction to DSLs and examples of external and internal DSLs. It then demonstrates how to build a DSL for configuring Meetup groups by parsing a configuration file using Ruby's instance_eval method. Key points are that instance_eval interprets a string as Ruby code in the context of an object, and using it with a block changes the default receiver inside the block. The document provides sample code for loading the configuration and implementing setter methods to configure the Meetup object.
This document provides an overview of scalable storage options in Microsoft Azure, including blobs, tables, and queues. It describes how each storage type can be used and some key features. Blobs provide scalable file-based storage for any type of data. Tables allow storing structured data in tables with entities and properties. Queues provide reliable messaging for communication between applications and distributed processes. Examples and code samples are given to illustrate how to perform common operations like uploading blobs, querying tables, and using queues for producer-consumer workflows.
This document summarizes the key changes between Ruby 1.8 and Ruby 1.9. Some major changes include improved performance, new syntax features like hash and proc literals, changes to the parser and standard library, improved regular expressions, and new enumerable methods. Ruby 1.9 also introduced better multilingual support through encoding changes to strings. Overall, the document outlines many backwards incompatible changes and warns that Ruby 1.9 is transitional as it prepares for Ruby 2.0.
The document summarizes updates to Lucene and Solr, including new versions released from 2009 to 2010. It notes that Lucene 2.9.3 and Solr 1.4.1 were the latest versions and that Lucene and Solr development merged into a single codebase with modules for each. It previews upcoming changes in Lucene and Solr version 3.x and 4.0, such as flexible indexing and byte-based representations.
Opera Software is mainly known for its web browser, but Opera also created and develops a growing set of web applications like its own community dedicated to the browser, my.opera.com, started in 2001.
Since then, the community grew bigger and bigger, and had the "usual" scalability problems. The application has been rewritten 3 times and the current developers team is at a turning point now.
How to make the application and systems scalable with the growing amount of traffic and users?
This document provides an introduction to getting started with the Erlang programming language. It covers sequential programming concepts like the Erlang shell, modules and functions, data types like atoms, tuples and lists, and control structures like if/case. It also introduces concurrent programming concepts like processes and message passing. Examples are provided throughout to demonstrate concepts like defining and calling functions in modules.
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...bobmcwhirter
- Bob McWhirter is the project lead of TorqueBox and a JBoss Fellow.
- TorqueBox allows Ruby web applications to run on the JBoss Application Server using JRuby.
- It provides tight integration with JBoss and allows Ruby applications to take advantage of features like messaging, jobs, and services that are traditionally Java-based.
This document provides an overview and summary of a Node.js workshop presented by Tom Hughes-Croucher. The workshop covers:
1. Why use server-side JavaScript and how Node.js enables this through its event-driven and non-blocking architecture.
2. An introduction to Node.js, including how to install Node.js and build basic HTTP servers.
3. More advanced Node.js topics like modules, events, streams, debugging, and popular frameworks like Express.js.
4. Exercises are provided to help attendees get hands-on experience building Node.js applications.
The document describes the Rijndael cipher that was selected as the Advanced Encryption Standard (AES). It provides details on:
1. The mathematical preliminaries including operations in GF(28) and polynomials used in Rijndael.
2. The specification of Rijndael including the state, cipher key, number of rounds, round transformation consisting of byte substitution, shift rows, mix columns, and round key addition.
3. Implementation aspects on 8-bit and 32-bit processors and the inverse cipher.
4. Performance figures and motivation for design choices including resistance to known attacks.
5. Extensions, other functionality, and suitability for various applications. It
This document provides instructions for installing TEXworks, a text editor for working with TeX and LaTeX documents. It describes downloading and installing TeX Live, the preferred TeX distribution to use with TEXworks. TeX Live is available for Windows, Mac OS X, and Linux operating systems. The document gives platform-specific installation instructions for each operating system. It recommends using the package manager that comes with most TeX distributions to install TEXworks, as these versions may include distribution-specific enhancements.
Ruby 4.0 To Infinity and Beyond at Ruby Conference Kenya 2017 by Bozhidar BatsovMichael Kimathi
The document discusses plans and ideas for Ruby 4.0. Some key points include:
- Ruby 4.0, codenamed "Buzz", aims to be 4 times faster than Ruby 3.0 through optimizations and removing legacy features.
- New features may include immutable data structures like vectors, hashes and sets, as well as static typing and runtime contracts inspired by RDL.
- Improved concurrency through CSP-style APIs inspired by concurrent-ruby for better parallel programming.
- Simplicity is a core design principle - reducing redundancies and dropping unused or obscure features like BEGIN/END blocks, flip-flops, character literals and more.
- The standard library could be
What’s New in Docker - Victor Vieux, DockerDocker, Inc.
It’s the first breakout after the keynote and you need to know more about all the latest and greatest Docker announcements. We've got you covered! In this session, Victor Vieux, will go deeper looking into what's new with Docker, demo the latest features and answer your questions.
This document summarizes lessons learned from failures in backporting bug fixes to Ruby stable branches:
- Don't backport performance improvements or fixes for imaginary use cases as they can introduce regressions.
- Be careful backporting fixes related to parsing, constants/method search, and refinements as they are complex and prone to causing new bugs.
- Some long-standing bugs may not need fixing if no real applications are affected. It's better to avoid regressions.
- Consider an application's needs before backporting - don't backport fixes if no one requested or needs them. Be practical.
This document discusses IzPack, an open source installer toolkit for Java applications. It provides an outline and overview of IzPack features such as cross-platform compatibility, a declarative XML-based descriptor format, compiler to build installers from descriptors, customizable GUI panels, and conditions and variables. The document demonstrates how to build an installer for GlassFish and highlights IzPack's history and community.
Changing the wheels on the bus at 80 mph
Andrew Bloomgarden and Julian Giuca
RailsConf 2013
Long-running branches are painful, but upgrading to Rails 3 requires one if you can't stop development, right? Wrong! At New Relic, we worked on upgrading to Rails 3 on master while letting development continue in Rails 2. We patched Bundler, built a backwards-compatible boot sequence, and punched ActiveScaffold in the face. Other developers, meanwhile, released 1400 commits worth of work without noticing any changes. We talk about what we did, why we did it, and why we think this approach can help developers get over the hurdle into the Rails 3 promised land.
Alexandre Bergel, Romain Robbes and Walter Binder, Visualizing Dynamic Metrics with Profiling Blueprints, In Proceedings of the 48th International Conference on Objects, Models, Components, Patterns (TOOLS EUROPE'10), July 2010, LNCS Springer Verlag
http://www.bergel.eu/download/papers/Berg10aProfiling.pdf
Social networking sites allow people to share experiences and stories through new forms of online communication. This blurs distinctions between physical and virtual worlds as people increasingly live hybrid digital and offline lives. Such sites provide spaces for self-expression and community building around shared interests. They also incorporate elements of games through reward systems that keep users engaged. Going forward, social networking is likely to proliferate and blur boundaries further as broadcast and games converge, giving people more ways to both consume and actively participate in interactive narratives across physical and digital spaces.
This document summarizes a study that measures social capital within a social network. It defines two types of social capital: 1) preference-based social capital, which is based on altruism toward friends and declines with social distance; and 2) cooperative social capital, which arises from repeated interactions and cooperation between agents. The study finds evidence of both types of social capital - preference-based social capital increases the weight on a friend's utility by 15% while cooperative social capital adds another 5%.
This document is the revision history and table of contents for the "Advanced Bash-Scripting Guide", which is described as an in-depth exploration of shell scripting in Bash assuming no previous knowledge. The guide contains over 30 chapters that progress from basic to advanced topics in shell scripting through explanatory text and over 100 code examples. It aims to teach shell scripting interactively through writing and analyzing scripts.
The document discusses the application of LaSalle's principle in stability analysis and is authored anonymously from the Department of Control Science and Engineering at Tsinghua University in Beijing, China, including contact information. Commands and environments from LaTeX and CJK packages are used to typeset Chinese characters at different font sizes for the document title and author information. References to mathematical expressions are made using LaTeX math mode syntax.
This document provides an overview of the Ruby on Rails Tutorial book. It discusses the technologies used to produce the book, including PolyTEXnic for formatting, and highlights features like code samples, figures, tables and math equations. Sample content is provided, including code snippets and lorem ipsum placeholder text.
This document provides a sample of what a Ruby on Rails tutorial book could look like. It demonstrates different formatting elements like code samples, figures, tables, and math equations. The sample includes two chapters, an introduction and a chapter with lorem ipsum text. Key elements like a table of contents, numbered sections and cross references are shown to be functional in both HTML and PDF formats.
This document discusses how to create a domain-specific language (DSL) using Ruby. It begins with an introduction to DSLs and examples of external and internal DSLs. It then demonstrates how to build a DSL for configuring Meetup groups by parsing a configuration file using Ruby's instance_eval method. Key points are that instance_eval interprets a string as Ruby code in the context of an object, and using it with a block changes the default receiver inside the block. The document provides sample code for loading the configuration and implementing setter methods to configure the Meetup object.
This document provides an overview of scalable storage options in Microsoft Azure, including blobs, tables, and queues. It describes how each storage type can be used and some key features. Blobs provide scalable file-based storage for any type of data. Tables allow storing structured data in tables with entities and properties. Queues provide reliable messaging for communication between applications and distributed processes. Examples and code samples are given to illustrate how to perform common operations like uploading blobs, querying tables, and using queues for producer-consumer workflows.
This document summarizes the key changes between Ruby 1.8 and Ruby 1.9. Some major changes include improved performance, new syntax features like hash and proc literals, changes to the parser and standard library, improved regular expressions, and new enumerable methods. Ruby 1.9 also introduced better multilingual support through encoding changes to strings. Overall, the document outlines many backwards incompatible changes and warns that Ruby 1.9 is transitional as it prepares for Ruby 2.0.
The document summarizes updates to Lucene and Solr, including new versions released from 2009 to 2010. It notes that Lucene 2.9.3 and Solr 1.4.1 were the latest versions and that Lucene and Solr development merged into a single codebase with modules for each. It previews upcoming changes in Lucene and Solr version 3.x and 4.0, such as flexible indexing and byte-based representations.
Opera Software is mainly known for its web browser, but Opera also created and develops a growing set of web applications like its own community dedicated to the browser, my.opera.com, started in 2001.
Since then, the community grew bigger and bigger, and had the "usual" scalability problems. The application has been rewritten 3 times and the current developers team is at a turning point now.
How to make the application and systems scalable with the growing amount of traffic and users?
This document provides an introduction to getting started with the Erlang programming language. It covers sequential programming concepts like the Erlang shell, modules and functions, data types like atoms, tuples and lists, and control structures like if/case. It also introduces concurrent programming concepts like processes and message passing. Examples are provided throughout to demonstrate concepts like defining and calling functions in modules.
TorqueBox: The beauty of Ruby with the power of JBoss. Presented at Devnexus...bobmcwhirter
- Bob McWhirter is the project lead of TorqueBox and a JBoss Fellow.
- TorqueBox allows Ruby web applications to run on the JBoss Application Server using JRuby.
- It provides tight integration with JBoss and allows Ruby applications to take advantage of features like messaging, jobs, and services that are traditionally Java-based.
This document provides an overview and summary of a Node.js workshop presented by Tom Hughes-Croucher. The workshop covers:
1. Why use server-side JavaScript and how Node.js enables this through its event-driven and non-blocking architecture.
2. An introduction to Node.js, including how to install Node.js and build basic HTTP servers.
3. More advanced Node.js topics like modules, events, streams, debugging, and popular frameworks like Express.js.
4. Exercises are provided to help attendees get hands-on experience building Node.js applications.
The document describes the Rijndael cipher that was selected as the Advanced Encryption Standard (AES). It provides details on:
1. The mathematical preliminaries including operations in GF(28) and polynomials used in Rijndael.
2. The specification of Rijndael including the state, cipher key, number of rounds, round transformation consisting of byte substitution, shift rows, mix columns, and round key addition.
3. Implementation aspects on 8-bit and 32-bit processors and the inverse cipher.
4. Performance figures and motivation for design choices including resistance to known attacks.
5. Extensions, other functionality, and suitability for various applications. It
This document provides instructions for installing TEXworks, a text editor for working with TeX and LaTeX documents. It describes downloading and installing TeX Live, the preferred TeX distribution to use with TEXworks. TeX Live is available for Windows, Mac OS X, and Linux operating systems. The document gives platform-specific installation instructions for each operating system. It recommends using the package manager that comes with most TeX distributions to install TEXworks, as these versions may include distribution-specific enhancements.
Ruby 4.0 To Infinity and Beyond at Ruby Conference Kenya 2017 by Bozhidar BatsovMichael Kimathi
The document discusses plans and ideas for Ruby 4.0. Some key points include:
- Ruby 4.0, codenamed "Buzz", aims to be 4 times faster than Ruby 3.0 through optimizations and removing legacy features.
- New features may include immutable data structures like vectors, hashes and sets, as well as static typing and runtime contracts inspired by RDL.
- Improved concurrency through CSP-style APIs inspired by concurrent-ruby for better parallel programming.
- Simplicity is a core design principle - reducing redundancies and dropping unused or obscure features like BEGIN/END blocks, flip-flops, character literals and more.
- The standard library could be
What’s New in Docker - Victor Vieux, DockerDocker, Inc.
It’s the first breakout after the keynote and you need to know more about all the latest and greatest Docker announcements. We've got you covered! In this session, Victor Vieux, will go deeper looking into what's new with Docker, demo the latest features and answer your questions.
This document summarizes lessons learned from failures in backporting bug fixes to Ruby stable branches:
- Don't backport performance improvements or fixes for imaginary use cases as they can introduce regressions.
- Be careful backporting fixes related to parsing, constants/method search, and refinements as they are complex and prone to causing new bugs.
- Some long-standing bugs may not need fixing if no real applications are affected. It's better to avoid regressions.
- Consider an application's needs before backporting - don't backport fixes if no one requested or needs them. Be practical.
This document discusses IzPack, an open source installer toolkit for Java applications. It provides an outline and overview of IzPack features such as cross-platform compatibility, a declarative XML-based descriptor format, compiler to build installers from descriptors, customizable GUI panels, and conditions and variables. The document demonstrates how to build an installer for GlassFish and highlights IzPack's history and community.
Changing the wheels on the bus at 80 mph
Andrew Bloomgarden and Julian Giuca
RailsConf 2013
Long-running branches are painful, but upgrading to Rails 3 requires one if you can't stop development, right? Wrong! At New Relic, we worked on upgrading to Rails 3 on master while letting development continue in Rails 2. We patched Bundler, built a backwards-compatible boot sequence, and punched ActiveScaffold in the face. Other developers, meanwhile, released 1400 commits worth of work without noticing any changes. We talk about what we did, why we did it, and why we think this approach can help developers get over the hurdle into the Rails 3 promised land.
Alexandre Bergel, Romain Robbes and Walter Binder, Visualizing Dynamic Metrics with Profiling Blueprints, In Proceedings of the 48th International Conference on Objects, Models, Components, Patterns (TOOLS EUROPE'10), July 2010, LNCS Springer Verlag
http://www.bergel.eu/download/papers/Berg10aProfiling.pdf
Social networking sites allow people to share experiences and stories through new forms of online communication. This blurs distinctions between physical and virtual worlds as people increasingly live hybrid digital and offline lives. Such sites provide spaces for self-expression and community building around shared interests. They also incorporate elements of games through reward systems that keep users engaged. Going forward, social networking is likely to proliferate and blur boundaries further as broadcast and games converge, giving people more ways to both consume and actively participate in interactive narratives across physical and digital spaces.
This document summarizes a study that measures social capital within a social network. It defines two types of social capital: 1) preference-based social capital, which is based on altruism toward friends and declines with social distance; and 2) cooperative social capital, which arises from repeated interactions and cooperation between agents. The study finds evidence of both types of social capital - preference-based social capital increases the weight on a friend's utility by 15% while cooperative social capital adds another 5%.
The document discusses challenges and opportunities for education in engaging with the current generation of students, known as the Net Generation. It notes that this generation spends more time online and using new technologies than previous generations. To effectively serve Net Gen students, educational institutions will need to blur boundaries between online and face-to-face learning, embrace new mobile technologies, leverage gaming and social networking, and use analytics to personalize education. Creating a sustainable learning environment requires vision, planning, fundraising and maintaining facilities and operations.
Technology is changing how we recruit and candidates' expectations. Candidates have been influenced by movies, gaming and social media to expect rich multimedia experiences online. Recruiters need to use technology like job boards, websites and online communities to engage these sophisticated candidates and gain a competitive edge. The future is here - recruiters must offer the engaging online experiences candidates now expect.
The document reports on a survey of students about their use of social networking, online games, and virtual environments. It finds that most students use Facebook daily and their most popular activities are viewing photos and communicating with friends. While a minority play online games, those that do value the social interaction aspect. The document discusses how educational tools could better incorporate social networking features and leverage students' interest in interacting with others in online spaces.
ECD Systems announced the launch of FairShare SNE, a social networking engine that will power new social networking capabilities for casual game players and developers. FairShare SNE will enable gamers to download games, share opinions, earn credits for recommendations, and build reputations as experts by interacting with other gamers and developers. It will also allow independent developers to post demos, share and sell their games, and get feedback from online gamers. This will give developers greater control over their games and more opportunities to sell titles through the advanced referral network. The first applications using FairShare SNE will be unveiled at the Game Developers Conference on March 8th.
Porcupine is a highly available cluster-based mail service that uses commodity hardware to provide scalable email services. It addresses challenges of conventional mail solutions in performance, manageability and availability. Key techniques used include functional homogeneity, automatic reconfiguration, replication and load balancing to provide better availability, manageability and linear performance scaling with cluster size. Evaluation shows it efficiently handles failures, heterogeneous hardware and skewed workloads.
The VOCAL system can be run on a 700MHz Pentium III PC with 512MB RAM and 1GB disk space. It requires Linux, Apache, JDK, and browsers. It supports redundancy with multiple redirect, marshal, and feature servers and a maximum of two each of CDR and provisioning servers. The number of servers scales up based on system capacity and call volume.
The document discusses several concepts related to building scalable and available systems, including:
- Scalability involves a system's ability to handle expected loads with acceptable performance and to grow easily when loads increase. This may involve scaling up using bigger/faster systems or scaling out across multiple systems.
- Availability is the goal of having a system operational 100% of the time, requiring redundancy so there are no single points of failure.
- Performance measures like response time and throughput relate to a system's scalability and capacity. Distributing load across redundant and partitioned components can help improve scalability and availability.
The document discusses best practices for scalability and performance when developing PHP applications. Some key points include profiling and optimizing early, cooperating between development and operations teams, testing on production-like data, caching frequently accessed data, avoiding overuse of hard-to-scale resources, and using compiler caching and query optimization. Decoupling applications, caching, data federation, and replication are also presented as techniques for improving scalability.
7496_Hall 070204 Research Faculty Summitwebuploader
The document provides an overview and agenda for a presentation on Windows XP Embedded (XPe) and Windows CE 5.0. It discusses new features for XPe including enhanced security, compatibility with Windows XP SP2, and updated development tools. It also summarizes features for Windows CE 5.0 such as improvements to the core operating system, device drivers, international support, and networking capabilities. The presentation aims to discuss technical challenges and how embedded systems can enrich people's lives.
The document discusses the evolution of the user interface design for Microsoft Windows CE. It describes three iterations: the Handheld PC from 1995 which resembled a desktop PC but had usability issues; the Palm PC from 1998 which had a smaller screen and alternative inputs like handwriting but data entry was still difficult; and the Auto PC from 1998 which was designed for in-car use without a touchscreen or stylus and emphasized voice commands. While Windows CE aimed for consistency with desktop Windows, usability tests revealed issues at each stage and consistency alone did not guarantee success.
FreeBSD is an open source, Unix-like operating system that is highly customizable, secure, and stable. It provides high performance for servers with near 100% uptime and minimal downtime for upgrades. FreeBSD has a large community of developers contributing to its mature codebase and wide range of server applications. It is a free alternative to proprietary operating systems that supports hardware from many vendors.
The document discusses the FreeBSD-bio porting project, which aims to make bioinformatics applications easily installable on FreeBSD through the ports system. It provides an example of installing the EMBOSS bioinformatics suite and dependencies like gd through the ports. The project seeks to create an out-of-the-box bioinformatics server and collaborate through its mailing list to port more applications and databases.
FreeBSD divides itself into the base operating system and ports. The base OS contains core components while ports contain additional software. There are two ways to upgrade each - through binary packages or by compiling from source. Ports can be installed individually and have no hierarchy, but allow differentiation from the base OS and fine-grained control. The document describes a case study where multiple FreeBSD servers were used together for development, testing, and production in a synchronized way through a build master and CVSup server.
The document discusses the differences between Windows, FreeBSD and Linux operating systems in terms of security. It argues that while Linux has many benefits, deploying it poses operational security risks due to loose development processes and lack of a unified patching model. FreeBSD provides a more structured and secure development approach compared to Linux, while Windows aims to integrate security throughout its development lifecycle.
FreeBSD is an open source Unix-like operating system derived from the Berkeley Software Distribution (BSD), with over 10,000 available packages. It is used widely in enterprise systems, powering many large websites and networks due to its stability, performance, and ability to run Linux applications. FreeBSD has a large developer community contributing to its ongoing development and release of new versions on a regular basis.
The document provides an overview of Win32 support in Pocket PC and Smartphone operating systems. It discusses design goals, character set support, kernel components, user interface graphics, connectivity, and Internet capabilities. Key points include Windows CE's focus on Unicode, client-side Win32 compatibility, and exclusion of some desktop features. The kernel supports processes, threads, and I/O but lacks fibers and DDE. Graphics support text and vectors while connectivity includes sockets and Web browsing via Pocket IE. The document recommends resources for further Windows CE development information.
The document summarizes .NET Compact Framework interop and calling native code from managed applications on Windows CE devices. It discusses using P/Invoke to call functions in unmanaged DLLs, challenges with marshaling data, notifying managed code of external events, and improvements in the .NET Compact Framework 2.0 like better performance, XML serialization, and SQL CE support.
The document discusses future directions for the Windows CE operating system architecture. It summarizes that Windows CE 6.0 removes the limitations of 32 processes and 32MB per process in CE 5.0 through a new virtual memory model. It also describes moving critical OS components into the kernel for improved performance and security. Additional new features include large memory mapped file support and improved compatibility, though some applications may require changes.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Building RAG with self-deployed Milvus vector database and Snowpark Container...Zilliz
This talk will give hands-on advice on building RAG applications with an open-source Milvus database deployed as a docker container. We will also introduce the integration of Milvus with Snowpark Container Services.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
2. Outline of this talk
a short reflection on Python evolution
2.2 -> 2.3 -> 2.4 -> ...
... -> highlights of Python 2.5
the “with” statement (RAII)
other language changes
additions to the standard library
optimizations
Q&A
Qs are also welcome during the talk!-)
2
2
4. 2.2 2.2.2
Dec 2001 Oct 2002
2.2 2.2.1 2.2.3
Apr 2002 Mar 2003
Apr 2002 Oct 2002 Apr 2003 Oct 2003 Apr 2004 Oct 2004 Apr 2005 Oct 2005 Apr 2006
2.3
2.3
Jul 2003
2.3.1
Sep 2003
2.3.2
Oct 2003
2.3.3
Dec 2003
2.3.4 2.3.5
May 2004 Feb 2005
2.4
Apr 2002 Oct 2002 Apr 2003 Oct 2003 Apr 2004 Oct 2004 Nov 2004
Apr 2005 Oct 2005 Apr 2006
2.5
2.4 2.4.1 2.4.2
Sep 2005
2.4.3
Mar 2005 Mar 2006
Apr 2002 Oct 2002 Apr 2003 Oct 2003 Apr 2004 Oct 2004 Apr 2005 Oct 2005 Apr 2006
4
4
5. The 2.2 “revolution”
2.2 was a “backwards-compatible” revolution
new-style object model, descriptors,
custom metaclasses...
iterators and generators
nested scopes
int/long merge, new division, bool (2.2.3)
standard library: XML/RPC (clients and
servers), IPv6 support, email, UCS-4, ...
nothing THAT big since, plus, new rule:
2.N.* has NO extra features wrt 2.N
5
5
6. 2.2 highlights
class Newy(object): ...
__metaclass__ = ...
def funmaker(...):
def madefun(...): ...
return madefun
def gen1(item):
yield item
for item in iter(f, sentinel): ...
6
6
7. 2.3: stable evolution
no changes to the language “proper”
many, MANY optimizations/tweaks/fixes
import-from-ZIP, ever-more-amazing
sort, Karatsuba multiplication, pymalloc,
interned strs gc’able ...
builtins: sum, enumerate, extended slices,
enhancements to str, dict, list, file, ...
stdlib, many new modules: bz2, csv,
datetime, heapq, itertools, logging, optparse,
platform, sets, tarfile, textwrap, timeit
& many enhancements: socket timeouts, ...
7
7
9. 2.4: mostly evolution
“small” new language features:
genexps, decorators
many “peephole-level” optimizations
builtins: sorted, reversed; enhancements to
sort, str; set becomes built-in
stdlib, new modules: collections, cookielib,
decimal, subprocess
string.Template, faster bisect & heapq,
operator itemgetter & attrgetter,
os.urandom, threading.local, ...
9
9
10. 2.4 language changes
sum(x**2 for x in xs if x%2)
like sum([x**2 for x in xs if x%2])
(without actually building the list!)
class Foo(object):
@classmethod
def bar(cls): return cls.__name__
print Foo().bar(), Foo.bar()
emits: Foo Foo
10
10
11. 2.4 new built-ins
for item in sorted(sequence): ...
(does not alter sequence in-place!)
for item in reversed(sequence): ...
(does not alter sequence in-place; like...
for item in sequence[::-1]: ...
...but, more readable!-)
set and frozenzet become built-in types
11
11
15. 2.5: evolution... plus!
several language changes:
full support for “RAII”-style programming
new “with” statement, new contextlib
module, generator enhancements...
absolute/relative imports, unified “try/
except/finally” statement, “if/else”
operator, exceptions are new-style
new builtins: any/all, dict.__missing__
new stdlib modules: ctypes, xml.etree,
functools, hashlib, sqlite3, wsgiref, ...
15
15
16. 2.5: many optimizations
sets/frozensets recoded from scratch
many speed-ups to string operations
substantial speed-ups in struct
new-style exceptions are faster
and many minor optimization tweaks
smaller and phantom frames in calls
re uses Python allocator
some constant-folding at compile time
fewer system calls during importing
...
16
16
17. Resource Allocation Is Initialization
# in 2.4 and earlier, Java-like...:
resource = ...allocate it...
try:
...use the resource...
finally:
...free the resource...
# in 2.5, much “slimmer”...:
with ...allocate it... as resource:
...use the resource...
with automatic “freeing” at block exit!
17
17
18. Many “with”-ready types
with open(filename) as f:
...work with file f...
# auto f.close() on block exit
somelock = threading.Lock()
with somelock:
# auto somelock.acquire() on block entry
...work guarded by somelock...
# auto somelock.release() on block exit
18
18
19. The “with” statement
from __future__ import with_statement
with <expr> as var: <with-block>
# makes and uses a *context manager*
_context = <expr>
var = _context.__enter__()
try: <with-block>
except: _context.__exit__(*sys.exc_info())
else: _context.__exit__(None, None, None)
Better than C++: can distinguish exception
exits from normal ones!
19
19
20. Your own context mgrs
roll-your-own: write a wrapper class
usually __init__ for initialization
__enter__(self) returns useful “var”
__exit__(self, ext, exv, tbv) performs the
needed termination operations (exit is
“normal” iff args are all None)
extremely general
slightly clunky/boilerplatey
20
20
21. “with” for transactions
class Transaction(object):
def __init__(self, c): self.c = c
def __enter__(self): return self.c.cursor()
def __exit__(self, ext, exv, tbv):
if ext is None: self.c.commit()
else: self.c.rollback()
with Transaction(connection) as cursor:
cursor.execute(...)
...and more processing as needed...
21
21
22. Your own context mgrs
contextlib module can help in many ways
decorator contextlib.contextmanager lets
you write a context mgr as a generator
yield the desired result of __enter__
within a try/finally or try/except/else
re-raise exception in try/except case
function contextlib.nested “nests” context
managers without needing special syntax
function contextlib.closing(x) just returns x
and calls x.close() at block exit
22
22
24. Other uses of contextlib
# syntax-free “nesting”
# e.g., a locked transaction:
with contextlib.nested(thelock,
Transaction(c)) as (locked, cursor): ...
# auto commit or rollback, AND auto
# thelock.release, on block exit
# when all you need is closing, e.g:
with contextlib.closing(
urllib.urlopen(...)) as f:
...work with pseudo-file object f...
# auto f.close() on block exit
24
24
25. Generator enhancements
yield can be inside a try-clause
yield is now an expression
x = g.send(value) gives yield’s value
x = g.next() is like x = g.send(None)
preferred syntax: value = (yield result)
g.throw(type [,value [,traceback]])
g.close() is like g.throw(GeneratorExit)
automatic g.close() when g is garbage-
collected
this is what ensures try/finally works!
25
25
26. Absolute/relative imports
from __future__ import absolute_import
means: import X finds X in sys.path
you can import .X to find X in the
current package
also import ..X to find X in the
package containing the current one, etc
important “future” simplification of imports
26
26
28. if/else ternary operator
result = (whentrue if cond else whenfalse)
becomes equivalent to:
if cond:
result = whentrue
else:
result = whenfalse
the parentheses are technically optional (!)
meant to help with lambda & the like
somewhat-controversial syntax...:-)
28
28
30. any and all
def any(seq):
for item in seq:
if item: return True
return False
def all(seq):
for item in seq:
if not item: return False
return True
note: RIGHT behavior for empty sequence!
30
30
31. dict.__missing__
hook method called by __setitem__ if the
key is missing (==not in the dict)
default implementation in dict itself:
def __missing__(self, key):
raise KeyError(key)
meant to be overridden by subclasses
collections.defaultdict subclasses dict:
def __missing__(self, key):
return self.default_factory()
default_factory optionally set at
__init__ (default None == raise)
31
31
32. ctypes
load any shared library / DLL with
ctypes.CDLL(<complete name of library>)
call any function as a method of the CDLL
automatically converts to int and char*
other conversions explicit with c_int,
c_float, create_string_buffer, ...
also accesses Python’s C API
essentially: a general-purpose Python FFI !
dangerous: any programer mistake or
oversight can easily crash Python!
32
32
33. Element-Tree
new package xml.etree with modules
ElementTree, ElementPath, ElementInclude
highly Pythonic in-memory representation
of XML document as tree, much slimmer
(and faster!) than the DOM
each XML element is a bit like a list of its
children merged with a dict of its attrs
scalable to large documents with included C
accelerators and .iterparse incremental
parsing (a bit like pulldom, but simpler, and
keeps subtrees by default)
33
33
34. functools
functools.partial for “partial
application” (AKA “currying”)
functools.update_wrapper for proper
setting of metadata for functions that wrap
other functions
functools.wraps: decorator equivalent of
functools.update_wrapper
34
34
35. hashlib
replaces md5 and sha modules (which
become wrappers to it!)
adds SHA-224, SHA-256, SHA-384, SHA-512
optionally uses OpenSSL as accelerator (but
can be pure-Python if necessary!)
35
35
36. sqlite3
wrapper for the SQLite embedded DB
DB-API-2 compliant interface
except that SQLite is “typeless” (!)
some extensions: optional timeout on
connect, isolation level, detect_type and
type converters, executemany on
iterators, executescript method, ...
great way to “get started” on small app,
can later migrate to PostgreSQL or other
relational DB (MySQL, Oracle, whatever)
36
36
37. wsgiref
Web Server Gateway Interface
standard “middleware” interface between
HTTP servers and Python web frameworks
goal: any framework, any server
non-goal: direct use by web applications!
already widely supported by frameworks
http://www.wsgi.org/wsgi for more!
stdlib now includes a “reference
implementation” of WSGI (wsgiref)
includes basic HTTP server for debugging
WSGI applications and interfaces
37
37