Ruby is used for a lot of things, but for some reason, only a few people are using it for music. In a language that is meant to make programming fun, the lack of such creative code is scary. Let's fix the current landscape by learning how to use the tools available in Ruby (and some not) to let those creative juices flow. We will be focusing on how to build sounds from the ground up (the powerful amplitude, and the majestic waveform), so you don't need any prior audio wizardry. Just bring yourself and a Ruby console and we just might create some beautiful music in a beautiful language.
The document discusses asynchronous programming with Kotlin coroutines. It begins by describing problems with callbacks and futures for asynchronous code, such as callback hell and complex combinators. Kotlin coroutines provide a natural way to write asynchronous code using suspending functions that read like regular synchronous code but can suspend and resume. This is achieved by compiling coroutines to state machines under the hood. The document demonstrates how coroutines integrate well with libraries like Retrofit for making asynchronous HTTP requests. It also discusses different ways to launch coroutines, such as using coroutine builders.
The document summarizes Roman Elizarov's presentation on Kotlin coroutines at the JVM Language Summit in 2017. The presentation recapped the initial Kotlin coroutines prototype, discussed issues with its design, and outlined the solutions adopted in Kotlin 1.1. This included using suspending functions instead of async/await keywords, tail suspension to avoid stack overflows, and abstraction to provide a natural coroutine declaration syntax.
The document summarizes the capabilities of the ofSoundPlayer class in openFrameworks for playing and manipulating sound. Key features include loading sounds, playing/stopping sounds, setting volume, panning, speed, position, looping, and generating sounds from a microphone using ofSoundStream.
Use of an Oscilloscope - maXbox Starter33Max Kleiner
This is an oscilloscope introduction that uses several sources for input. My hope is that it encourages a few future scientists to experiment and get into touch with new waves ~.
Oscilloscopes are one of the few pieces of electronic equipment that plays multiple roles and can be used in the place of other electronics equipment.
An emulator of the Atari 2600 game console was created entirely in Ruby using a test-driven approach. The emulator, called ruby2600, simulates the 6507 CPU, TIA graphics chip, and RIOT I/O chip in software through classes that represent each chip's functionality. Over 1,700 tests cover the CPU instruction set. The modular design allows each component to be developed and tested independently, and potential optimizations like JRuby were discussed to improve performance.
Introduces the core architecture of the Atari 2600 graphics chip (TIA), its 6502 CPU and showcases a "Hello, World!" application that can be executed on an emulator or on the real console. Includes reference links for those who want to learn more. Originally presented in Brazil at events such as Dev in Sampa and Campus Party.
The document discusses Kotlin coroutines and how they can be used to write asynchronous code in a synchronous, sequential way. It explains what coroutines are, how they work internally using continuation-passing style (CPS) transformation and state machines, and compares them to callbacks. It also outlines some of the benefits of using coroutines, such as structured concurrency, light weight execution, built-in cancellation, and simplifying asynchronous code. Finally, it provides examples of how to use common coroutine builders like launch, async, and coroutineScope in a basic Android application with ViewModels.
Ruby is used for a lot of things, but for some reason, only a few people are using it for music. In a language that is meant to make programming fun, the lack of such creative code is scary. Let's fix the current landscape by learning how to use the tools available in Ruby (and some not) to let those creative juices flow. We will be focusing on how to build sounds from the ground up (the powerful amplitude, and the majestic waveform), so you don't need any prior audio wizardry. Just bring yourself and a Ruby console and we just might create some beautiful music in a beautiful language.
The document discusses asynchronous programming with Kotlin coroutines. It begins by describing problems with callbacks and futures for asynchronous code, such as callback hell and complex combinators. Kotlin coroutines provide a natural way to write asynchronous code using suspending functions that read like regular synchronous code but can suspend and resume. This is achieved by compiling coroutines to state machines under the hood. The document demonstrates how coroutines integrate well with libraries like Retrofit for making asynchronous HTTP requests. It also discusses different ways to launch coroutines, such as using coroutine builders.
The document summarizes Roman Elizarov's presentation on Kotlin coroutines at the JVM Language Summit in 2017. The presentation recapped the initial Kotlin coroutines prototype, discussed issues with its design, and outlined the solutions adopted in Kotlin 1.1. This included using suspending functions instead of async/await keywords, tail suspension to avoid stack overflows, and abstraction to provide a natural coroutine declaration syntax.
The document summarizes the capabilities of the ofSoundPlayer class in openFrameworks for playing and manipulating sound. Key features include loading sounds, playing/stopping sounds, setting volume, panning, speed, position, looping, and generating sounds from a microphone using ofSoundStream.
Use of an Oscilloscope - maXbox Starter33Max Kleiner
This is an oscilloscope introduction that uses several sources for input. My hope is that it encourages a few future scientists to experiment and get into touch with new waves ~.
Oscilloscopes are one of the few pieces of electronic equipment that plays multiple roles and can be used in the place of other electronics equipment.
An emulator of the Atari 2600 game console was created entirely in Ruby using a test-driven approach. The emulator, called ruby2600, simulates the 6507 CPU, TIA graphics chip, and RIOT I/O chip in software through classes that represent each chip's functionality. Over 1,700 tests cover the CPU instruction set. The modular design allows each component to be developed and tested independently, and potential optimizations like JRuby were discussed to improve performance.
Introduces the core architecture of the Atari 2600 graphics chip (TIA), its 6502 CPU and showcases a "Hello, World!" application that can be executed on an emulator or on the real console. Includes reference links for those who want to learn more. Originally presented in Brazil at events such as Dev in Sampa and Campus Party.
The document discusses Kotlin coroutines and how they can be used to write asynchronous code in a synchronous, sequential way. It explains what coroutines are, how they work internally using continuation-passing style (CPS) transformation and state machines, and compares them to callbacks. It also outlines some of the benefits of using coroutines, such as structured concurrency, light weight execution, built-in cancellation, and simplifying asynchronous code. Finally, it provides examples of how to use common coroutine builders like launch, async, and coroutineScope in a basic Android application with ViewModels.
This document discusses concepts related to Kotlin and Android app development including:
- A "Hello World" Kotlin code example that prints text to the console
- Kotlin features like named parameters and return types in functions
- Variable declarations with var for mutable and val for immutable variables
- Conditional statements like if/else and when expressions
- Classes and defining objects with properties
- Collections like lists, sets, and maps
- Common Android views and view groups for layouts
- The basic anatomy of an Android app project
The document discusses distributed systems and patterns for scaling data. It covers solutions for resource expansion like sharding, which increases risk. Fault tolerance can be achieved through replication, but replication also has downsides. The CAP theorem states you can only achieve two of consistency, availability, and partition tolerance. The author argues to store distributed data rather than distribute data stores. Failures will occur at scale, so systems need to be built to handle failures. Various data structures and algorithms are presented for partitioning and replicating data across nodes in a distributed system.
This document summarizes CUDA programming using CUBLAS and direct parallelization. It first introduces CUBLAS, which implements BLAS functions on GPUs using CUDA. It describes how to initialize CUBLAS, transfer data between host and device memory, execute CUBLAS functions, and clean up. It then discusses direct parallelization, where each thread is assigned a specific task. It explains how to determine grid and block sizes, allocate device memory, copy data to the device, execute kernels, and copy results back to host memory. The document provides examples of using CUBLAS and coding a direct parallelization kernel for a matrix-vector multiplication operation.
1. The document discusses Rust concepts like ownership, borrowing, cloning, copying, mutable references, threads and channels for parallelism, and shared memory using Arc and Mutex.
2. It provides examples of using ownership and borrowing rules to manage memory, spawning threads and using channels for inter-thread communication, and using Arc and Mutex for shared mutable memory across threads.
3. The document presents these concepts as part of an overview of Rust's approach for safe systems programming without fear of crashes or data races through its ownership and borrowing model.
This is a sample python code which takes the voice input n makes the desktop functions. In small word this is a basic version of Jarvis, it helps to play music and to send the email along with the content.....
This is a lightning 5-minute talk given SyncHerts in Stevenage UK on 14 Jan 2016. It very quickly tells you what the 2600 can do, shows how we get something on the screen, and how we must count every single clock cycle to make our code work! Finally, we delve into *why* someone might want to try this..
This document discusses various sound synthesis techniques in SuperCollider including additive synthesis, subtractive synthesis, noise generators, and demand ugens. It provides information on units like Blip, Klang, DynKlang, noise types (white, pink, brown, gray), Klank, and demand ugens like Duty.ar and TDuty.ar. Examples are given of how to implement different synthesis techniques using these ugens. The document also prompts the reader to compose a short piece using three ugens covered in the class.
Un monde où 1 ms vaut 100 M€ - Devoxx France 2015ThierryAbalea
The document discusses low latency challenges in high frequency trading applications. It begins with an example Java program to illustrate how memory layout impacts performance and the importance of data locality. It then covers benchmarking tools like JMH and techniques for building non-blocking and lock-free data structures like Lamport queues to avoid thread synchronization costs. The goal is to develop architectures using asynchronous I/O, non-blocking algorithms, and concurrent data structures to minimize latency at each level from applications to hardware.
This document provides a summary of common commands and configuration files used in Ubuntu systems for privileges, networking, display, package management, applications, services, and system recovery. It includes commands for sudo access, configuring networking and wireless settings, starting and stopping services, installing and removing packages, checking the system version, and rebooting the system through keyboard shortcuts. Configuration files like /etc/network/interfaces and /etc/X11/xorg.conf are also listed.
The Ring programming language version 1.9 book - Part 56 of 210Mahmoud Samir Fayed
The document discusses using TrueType fonts, playing sound files, scaling and rotating images, displaying transparent images, and using threads in Ring using the Allegro library. It provides code examples for loading and displaying TrueType fonts, playing wav sound files, rotating and scaling bitmap images, displaying images with transparency, and creating and running multiple threads simultaneously.
1. The document discusses using deep reinforcement learning to train an AI agent to play Atari games.
2. Specifically, it describes how an agent trained using a convolutional neural network can learn to play games like Breakout by only observing the screen pixels and receiving rewards for scoring points.
3. The model achieved human-level performance on some Atari games using this approach without any domain-specific knowledge about the games.
The document describes 4 generated sounds made using different VSTi effects to emulate music from 90s video games, arcade games, alien themes, and horror. The 1st sound used Or2v to imitate 90s game music. The 2nd used Arpppe2600va to create the intro of an arcade fighter. The 3rd used Altair 4 Pro to give the impression of an alien spaceship or speech. The last used Arpppe2600va again for a horror theme.
The document provides code examples and explanations for various JavaScript programming techniques. Some examples covered include:
1. Using logical operators and default parameters to handle function arguments concisely.
2. Different methods for converting strings to numbers, setting default object properties, and checking if an object property exists.
3. Techniques for improving loop performance by caching array lengths and merging arrays without creating new objects.
4. Examples of array slicing and truncation, as well as converting array-like objects to arrays.
5. Explanations of equality comparisons, typeof, instanceof, and immediately invoked function expressions.
Digital signal processing through speech, hearing, and PythonMel Chua
Slides from PyCon 2013 tutorial reformatted for self-study. Code at https://github.com/mchua/pycon-sigproc, original description follows: Why do pianos sound different from guitars? How can we visualize how deafness affects a child's speech? These are signal processing questions, traditionally tackled only by upper-level engineering students with MATLAB and differential equations; we're going to do it with algebra and basic Python skills. Based on a signal processing class for audiology graduate students, taught by a deaf musician.
This document introduces John Vlachoyiannis and discusses live programming of music using Clojure. It outlines how Clojure allows music to be treated as data that can be manipulated and transformed in real time. Examples are given showing how to define notes and samples as data, generate patterns, and manipulate those patterns by reversing, randomizing, or applying other transformations to the music structure. Live programming is enabled through use of the REPL and functions like play! that allow musical experiments to be conducted and heard immediately.
The document discusses digital signal processing and audio synthesis in ReasonML. It covers key concepts like sample rate, buffer size, oscillators, envelopes, and common effects like bitcrushing and delay. Code examples are provided to generate waveforms from oscillators and envelopes, as well as process audio through a bitcrusher and delay effect. The goal is to teach the fundamentals of digital audio and demonstrate how to create and manipulate sound programmatically using ReasonML.
This document discusses various configurations and techniques for optimizing Kafka for latency, throughput, durability, and availability. For latency, it recommends small batches, no compression, low replication guarantees, and fetching data as soon as possible. For throughput, it suggests batching, compression, increasing memory, and parallelizing with consumer groups. For durability, it highlights replication, idempotent producers, and exactly-once processing. And for availability, it notes the importance of replicas and log recovery configurations. The document provides guidance on tuning Kafka deployments for different performance objectives.
The document discusses the history and capabilities of the Erlang programming language. It provides examples of core Erlang concepts like processes, message passing, and the OTP framework. Key points made include:
- Erlang has had over 30 years of development and provides reliable, fault-tolerant distributed programming through its use of lightweight processes and message passing.
- Examples demonstrate basic Erlang features like spawning processes, sending messages, and linking processes to trap exits.
- OTP provides tools like GenServers and supervisors to build robust, supervised applications from actor-like processes.
- Erlang's model of isolated, message-passing processes allows it to scale applications to millions of concurrent
This document discusses three Arduino projects using a piezo sounder and sensors:
1. A piezo sounder alarm that generates tones of varying frequency to create a rising and falling alarm sound.
2. A piezo knock sensor that detects knocks or touches and lights an LED. It reads the electric current generated by a piezo disc when force is applied.
3. A light sensor that uses a light dependent resistor to detect light levels and a piezo sounder to provide audible feedback. The delay between beeps decreases as more light is detected.
This presentation is part of a talk by Martin j. Logan on the essentials of programming in the erlang language. The talk covers:
Data Types
Modules and Functions
State Management
Distribution
Fault Tolerance
The code for this talk can be found at github:
git://github.com/martinjlogan/ErlangBootstrap.git
https://github.com/martinjlogan/ErlangBootstrap
The document discusses audio signal representation and processing. It covers topics like:
- Sound is oscillation of atmospheric pressure detectable by human ears within a range of 20-20,000 Hz.
- Analog to digital conversion samples an audio signal over time and stores the values. Digital to analog conversion converts these values back to amplitudes.
- Common audio data formats include WAV, FLAC for uncompressed time-domain formats, and MP3, Ogg Vorbis for compressed frequency-domain formats.
- Multi-channel audio configurations have multiple speakers like stereo, 5.1 surround sound, 7.1, etc. Playback involves a sample pump that converts digital audio to analog for output.
This document discusses concepts related to Kotlin and Android app development including:
- A "Hello World" Kotlin code example that prints text to the console
- Kotlin features like named parameters and return types in functions
- Variable declarations with var for mutable and val for immutable variables
- Conditional statements like if/else and when expressions
- Classes and defining objects with properties
- Collections like lists, sets, and maps
- Common Android views and view groups for layouts
- The basic anatomy of an Android app project
The document discusses distributed systems and patterns for scaling data. It covers solutions for resource expansion like sharding, which increases risk. Fault tolerance can be achieved through replication, but replication also has downsides. The CAP theorem states you can only achieve two of consistency, availability, and partition tolerance. The author argues to store distributed data rather than distribute data stores. Failures will occur at scale, so systems need to be built to handle failures. Various data structures and algorithms are presented for partitioning and replicating data across nodes in a distributed system.
This document summarizes CUDA programming using CUBLAS and direct parallelization. It first introduces CUBLAS, which implements BLAS functions on GPUs using CUDA. It describes how to initialize CUBLAS, transfer data between host and device memory, execute CUBLAS functions, and clean up. It then discusses direct parallelization, where each thread is assigned a specific task. It explains how to determine grid and block sizes, allocate device memory, copy data to the device, execute kernels, and copy results back to host memory. The document provides examples of using CUBLAS and coding a direct parallelization kernel for a matrix-vector multiplication operation.
1. The document discusses Rust concepts like ownership, borrowing, cloning, copying, mutable references, threads and channels for parallelism, and shared memory using Arc and Mutex.
2. It provides examples of using ownership and borrowing rules to manage memory, spawning threads and using channels for inter-thread communication, and using Arc and Mutex for shared mutable memory across threads.
3. The document presents these concepts as part of an overview of Rust's approach for safe systems programming without fear of crashes or data races through its ownership and borrowing model.
This is a sample python code which takes the voice input n makes the desktop functions. In small word this is a basic version of Jarvis, it helps to play music and to send the email along with the content.....
This is a lightning 5-minute talk given SyncHerts in Stevenage UK on 14 Jan 2016. It very quickly tells you what the 2600 can do, shows how we get something on the screen, and how we must count every single clock cycle to make our code work! Finally, we delve into *why* someone might want to try this..
This document discusses various sound synthesis techniques in SuperCollider including additive synthesis, subtractive synthesis, noise generators, and demand ugens. It provides information on units like Blip, Klang, DynKlang, noise types (white, pink, brown, gray), Klank, and demand ugens like Duty.ar and TDuty.ar. Examples are given of how to implement different synthesis techniques using these ugens. The document also prompts the reader to compose a short piece using three ugens covered in the class.
Un monde où 1 ms vaut 100 M€ - Devoxx France 2015ThierryAbalea
The document discusses low latency challenges in high frequency trading applications. It begins with an example Java program to illustrate how memory layout impacts performance and the importance of data locality. It then covers benchmarking tools like JMH and techniques for building non-blocking and lock-free data structures like Lamport queues to avoid thread synchronization costs. The goal is to develop architectures using asynchronous I/O, non-blocking algorithms, and concurrent data structures to minimize latency at each level from applications to hardware.
This document provides a summary of common commands and configuration files used in Ubuntu systems for privileges, networking, display, package management, applications, services, and system recovery. It includes commands for sudo access, configuring networking and wireless settings, starting and stopping services, installing and removing packages, checking the system version, and rebooting the system through keyboard shortcuts. Configuration files like /etc/network/interfaces and /etc/X11/xorg.conf are also listed.
The Ring programming language version 1.9 book - Part 56 of 210Mahmoud Samir Fayed
The document discusses using TrueType fonts, playing sound files, scaling and rotating images, displaying transparent images, and using threads in Ring using the Allegro library. It provides code examples for loading and displaying TrueType fonts, playing wav sound files, rotating and scaling bitmap images, displaying images with transparency, and creating and running multiple threads simultaneously.
1. The document discusses using deep reinforcement learning to train an AI agent to play Atari games.
2. Specifically, it describes how an agent trained using a convolutional neural network can learn to play games like Breakout by only observing the screen pixels and receiving rewards for scoring points.
3. The model achieved human-level performance on some Atari games using this approach without any domain-specific knowledge about the games.
The document describes 4 generated sounds made using different VSTi effects to emulate music from 90s video games, arcade games, alien themes, and horror. The 1st sound used Or2v to imitate 90s game music. The 2nd used Arpppe2600va to create the intro of an arcade fighter. The 3rd used Altair 4 Pro to give the impression of an alien spaceship or speech. The last used Arpppe2600va again for a horror theme.
The document provides code examples and explanations for various JavaScript programming techniques. Some examples covered include:
1. Using logical operators and default parameters to handle function arguments concisely.
2. Different methods for converting strings to numbers, setting default object properties, and checking if an object property exists.
3. Techniques for improving loop performance by caching array lengths and merging arrays without creating new objects.
4. Examples of array slicing and truncation, as well as converting array-like objects to arrays.
5. Explanations of equality comparisons, typeof, instanceof, and immediately invoked function expressions.
Digital signal processing through speech, hearing, and PythonMel Chua
Slides from PyCon 2013 tutorial reformatted for self-study. Code at https://github.com/mchua/pycon-sigproc, original description follows: Why do pianos sound different from guitars? How can we visualize how deafness affects a child's speech? These are signal processing questions, traditionally tackled only by upper-level engineering students with MATLAB and differential equations; we're going to do it with algebra and basic Python skills. Based on a signal processing class for audiology graduate students, taught by a deaf musician.
This document introduces John Vlachoyiannis and discusses live programming of music using Clojure. It outlines how Clojure allows music to be treated as data that can be manipulated and transformed in real time. Examples are given showing how to define notes and samples as data, generate patterns, and manipulate those patterns by reversing, randomizing, or applying other transformations to the music structure. Live programming is enabled through use of the REPL and functions like play! that allow musical experiments to be conducted and heard immediately.
The document discusses digital signal processing and audio synthesis in ReasonML. It covers key concepts like sample rate, buffer size, oscillators, envelopes, and common effects like bitcrushing and delay. Code examples are provided to generate waveforms from oscillators and envelopes, as well as process audio through a bitcrusher and delay effect. The goal is to teach the fundamentals of digital audio and demonstrate how to create and manipulate sound programmatically using ReasonML.
This document discusses various configurations and techniques for optimizing Kafka for latency, throughput, durability, and availability. For latency, it recommends small batches, no compression, low replication guarantees, and fetching data as soon as possible. For throughput, it suggests batching, compression, increasing memory, and parallelizing with consumer groups. For durability, it highlights replication, idempotent producers, and exactly-once processing. And for availability, it notes the importance of replicas and log recovery configurations. The document provides guidance on tuning Kafka deployments for different performance objectives.
The document discusses the history and capabilities of the Erlang programming language. It provides examples of core Erlang concepts like processes, message passing, and the OTP framework. Key points made include:
- Erlang has had over 30 years of development and provides reliable, fault-tolerant distributed programming through its use of lightweight processes and message passing.
- Examples demonstrate basic Erlang features like spawning processes, sending messages, and linking processes to trap exits.
- OTP provides tools like GenServers and supervisors to build robust, supervised applications from actor-like processes.
- Erlang's model of isolated, message-passing processes allows it to scale applications to millions of concurrent
This document discusses three Arduino projects using a piezo sounder and sensors:
1. A piezo sounder alarm that generates tones of varying frequency to create a rising and falling alarm sound.
2. A piezo knock sensor that detects knocks or touches and lights an LED. It reads the electric current generated by a piezo disc when force is applied.
3. A light sensor that uses a light dependent resistor to detect light levels and a piezo sounder to provide audible feedback. The delay between beeps decreases as more light is detected.
This presentation is part of a talk by Martin j. Logan on the essentials of programming in the erlang language. The talk covers:
Data Types
Modules and Functions
State Management
Distribution
Fault Tolerance
The code for this talk can be found at github:
git://github.com/martinjlogan/ErlangBootstrap.git
https://github.com/martinjlogan/ErlangBootstrap
The document discusses audio signal representation and processing. It covers topics like:
- Sound is oscillation of atmospheric pressure detectable by human ears within a range of 20-20,000 Hz.
- Analog to digital conversion samples an audio signal over time and stores the values. Digital to analog conversion converts these values back to amplitudes.
- Common audio data formats include WAV, FLAC for uncompressed time-domain formats, and MP3, Ogg Vorbis for compressed frequency-domain formats.
- Multi-channel audio configurations have multiple speakers like stereo, 5.1 surround sound, 7.1, etc. Playback involves a sample pump that converts digital audio to analog for output.
A Bizarre Way to do Real-Time LightingSteven Tovey
This document provides a 10 step guide for implementing real-time lighting on the PlayStation 3 (PS3) using its parallel architecture of 6 Synergistic Processing Units (SPUs). It discusses rendering a pre-pass to extract normals and depth, calculating lighting in a tile-based parallel manner on the SPUs, and compositing the final lighting texture. Special techniques like using atomics, striping data across SPUs, and maintaining pipeline balance are needed to optimize performance on the PS3's parallel architecture. The goal is to achieve real-time lighting for a game with 20 cars racing at night, while preserving picture quality and reducing frame latency to acceptable levels.
The OSI Superboard II was the computer on which I first learned to program back in 1979. Python is why programming remains fun today. In this tale of old meets new, I describe how I have used Python 3 to create a cloud computing service for my still-working Superboard--a problem complicated by it only having 8Kb of RAM and 300-baud cassette tape audio ports for I/O.
The document summarizes the key changes and improvements in Ruby 1.9 compared to Ruby 1.8. Some of the major changes include faster performance and lower memory usage due to the new YARV virtual machine, new syntax features like lambda shorthand and implicit calling, changes to standard library methods like send no longer calling private methods, and encoding improvements to better support international characters.
DomCode 2015 - Abusing phones to make the internet of thingsJan Jongboom
The document discusses abusing phone sensors to create internet of things applications. It provides examples of using light, motion, and sound sensors to control music, visualize juggling, and generate computer music. It also covers using Bluetooth beacons and the physical web to discover and interact with devices, and a sample code for connecting to a drone over Bluetooth to control its flight. The overall message is about exploring creative ways to turn phones into interfaces for interactive experiences.
Python meetup: coroutines, event loops, and non-blocking I/OBuzzcapture
This document discusses asynchronous programming concepts like non-blocking I/O, event loops, coroutines, and Python libraries that support them like Twisted, gevent, and asyncio. Coffee metaphors are used to explain blocking vs non-blocking I/O. Coroutines and generators allow functions to pause and resume while yielding to the event loop. Libraries like Twisted focus on networking protocols while gevent aims to make synchronous code asynchronous via monkey patching. asyncio is part of the Python standard library and uses yield from to support nested coroutines.
This document provides an overview of functional reactive programming (FRP) and compositional event systems (CES). It discusses how FRP approaches handling time-varying values like regular values. It presents an example of modeling game movements reactively using key press events. It also demonstrates how CES can be used to handle asynchronous workflows by turning network responses into observable streams. The document compares CES to other approaches like core.async and discusses benefits of CES like supporting multiple subscribers.
Gevent is a Python library that uses greenlets to provide a synchronous-looking API for asynchronous applications. It uses a single OS thread and event loop to handle many connections concurrently by switching between greenlets frequently. This allows applications to achieve high concurrency with low memory usage compared to multithreading. Gevent patches common libraries like sockets to be non-blocking and cooperative. When data is available on a socket, the socket's greenlet is resumed to process it rather than blocking the entire program.
This document summarizes an audio noise cancellation project. It outlines the project schedule, methods used including decoding audio files, applying fast Fourier transforms (FFTs) and inverse FFTs (IFFTs), and developing algorithms to filter noise and find suitable noise profiles to subtract. It discusses challenges faced with data types, filter design, and implementing the inverse FFT. The overall goal is to develop techniques to remove noise from audio signals.
This document provides an overview of TensorFlow and how to implement machine learning models using TensorFlow. It discusses:
1) How to install TensorFlow either directly or within a virtual environment.
2) The key concepts of TensorFlow including computational graphs, sessions, placeholders, variables and how they are used to define and run computations.
3) An example one-layer perceptron model for MNIST image classification to demonstrate these concepts in action.
Accelerating microbiome research with OpenACCIgor Sfiligoi
Presented at OpenACC Summit 2020.
UniFrac is a commonly used metric in microbiome research for comparing microbiome profiles to one another. Computing UniFrac on modest sample sizes used to take a workday on a server class CPU-only node, while modern datasets would require a large compute cluster to be feasible. After porting to GPUs using OpenACC, the compute of the same modest sample size now takes only a few minutes on a single NVIDIA V100 GPU, while modern datasets can be processed on a single GPU in hours. The OpenACC programming model made the porting of the code to GPUs extremely simple; the first prototype was completed in just over a day. Getting full performance did however take much longer, since proper memory access is fundamental for this application.
The document describes how music matching algorithms like Shazam work by:
1) Capturing an audio sample using the device microphone and extracting its frequencies using a Fourier transformation.
2) Comparing the frequency profile of the sample to profiles of reference songs that were generated in the same way.
3) Calculating offsets between matching frequency points to determine the most similar reference song.
The document discusses the evolution of web application frameworks from CGI scripts to modern frameworks that provide a common interface between web applications and web servers. It provides examples of how "Hello World" applications look in various web application frameworks like Ruby on Rails, Django, and others. It also covers middleware and how middleware can modify requests and responses without changing the application code.
Presentation on React.rb, which is Opal + ReactJS. I did several interactive demos, but have linked to some resources.
References:
reactrb.org
inline-reactive-ruby
figwheel
Code for this:
http://tinyurl.com/20160512-DCRUG-React-rb
WIP White Elephant App:
https://github.com/awwaiid/reactrb-elephant
The document discusses a "Just Another Perl Hacker" (JAPH) obfuscated code challenge that generates random text through a series of seeds and offsets. It then analyzes the Perl code to deobfuscate how it works by seeding a pseudo-random number generator, taking offsets, and gathering random characters to build the output string. Several pseudo-random number generation techniques are also briefly described including the middle square method.
A Partial Multiverse Model of Time Travel for Debuggingawwaiid
As presented at RubyConf 2014 (San Diego). Lots of live coding, I'll link the video eventually.
ABSTRACT:
Ever type 'next' into your debugger and then realize you should have used 'step'? Or perhaps invoked a method that you wish you could take back? Regret no more! Just turn the clock back a few ticks and begin again! With only a few restrictions and side-effects we will learn how to construct and use a time machine.
WARNING: Time travel may cause zombies.
Github: https://github.com/awwaiid/pry-timetravel
RubyGems: https://rubygems.org/gems/pry-timetravel
I demonstrate a small slice of Rakudo, an implementation of a dynamic language with some advanced features.
During the actual talk I used the REPL to do live demonstrations, often taking suggestions from the audience.
This document discusses techniques for debugging code including describing the problem in detail, reproducing the problem, reducing the problem to its essential parts, using logging, the debugger, test cases, verifying assumptions, intentionally breaking the code, reading compiler errors, and making one modification at a time. It emphasizes collecting useful information in bug reports such as steps to reproduce, when the issue started occurring, and frequency.
Continuity is a Perl library that allows web applications to be written using continuations, avoiding the need to restart the application on each request. This allows storing stateful information between requests. The library handles mapping incoming HTTP requests to continuations. The presentation describes how continuations work, examples of their use, and ideas for future development of Continuity.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
OpenID AuthZEN Interop Read Out - AuthorizationDavid Brossard
During Identiverse 2024 and EIC 2024, members of the OpenID AuthZEN WG got together and demoed their authorization endpoints conforming to the AuthZEN API
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).
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
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
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
67. # Take a parameter and ensure it is a generator.
# If it is already a generator leave it alone,
# otherwise wrap it up so that it *is* a generator.
def genize x
if x.is_a?(Proc)
return x
end
lambda { x }
end