Many Rubyists branch out and take a look at other languages. What are similarities between those languages and ruby? What are differences? How does Ruby influence these languages?
Introducing Swift - and the Sunset of Our Culture?dankogai
Apple recently released a language called Swift. As a language it appears to be the best of both worlds -- a script language that emits native codes. But I've got a feeling it means more than just a language. The talk roughly consists of 4 parts as follows:
* Introducing Swift
* Script Languages vs "Compiler" Languages
* Free Software vs. Open Source
* The Sunset of Our Culture
The document discusses various topics related to continuous integration including:
1. Using Git and Jenkins for continuous integration with commits triggering builds.
2. Various plugins for Jenkins including the Groovy Postbuild Plugin for running Groovy scripts after builds and the Notification Plugin.
3. Methods for running Jenkins on Windows including using Cygwin.
4. The Sakura Script language and using it with the SSTP protocol for notification scripts.
The document discusses various topics related to Vim including Vim on Windows, vimrc configuration files, Vim commands, plugins, and Vim hacks. It provides instructions for installing Vundle and cloning Vim plugins from GitHub. It also includes mappings for quickly opening vimrc files and reloading configuration.
This document provides an introduction to Linux basics. It discusses what Unix and Linux are, compares different Linux distributions, and describes basic Linux commands like ls, cd, vi, and emacs. It also covers topics like file management, permissions, and references for further reading.
It is the slides for COSCUP[1] 2013 Hands-on[2], "Learning Python from Data".
It aims for using examples to show the world of Python. Hope it will help you with learning Python.
[1] COSCUP: http://coscup.org/
[2] COSCUP Hands-on: http://registrano.com/events/coscup-2013-hands-on-mosky
It is mainly about the multithreading and the multiprocessing in Python, and *in Python's flavor*.
It's also the share at Taipei.py [1].
[1] http://www.meetup.com/Taipei-py/events/220452029/
This document contains a collection of notes on various programming topics including:
- Commands for Unix shells like grep, sed, awk, and tools like OpenSSL and factor.
- Examples of using pipes, redirection, and commands together in sequences.
- Brief mentions of other topics like Excel, LaTeX, gnuplot, and programming languages like Perl, Python, and C.
- Links to blog posts and resources about Unix tools, Emacs, Vim, and Shell scripting jokes and tutorials.
This document summarizes the OSD op processing workflow in Ceph. It begins with messages like osd_op being received by OSD::ms_fast_dispatch. The op is then enqueued to the PG by OSD::enqueue_op. PrimaryLogPG processes the op through methods like do_request, do_op, and execute_ctx. It issues a repop, which is submitted to the PGBackend. The backend applies the changes, logs to the PG log, and sends ops to replicas. Replicas process the repop through similar methods and send a reply.
The document discusses the virtual filesystem (VFS) and the process of mounting the root filesystem during system bootup. It explains that the VFS acts as an interface between the kernel and actual filesystem implementations. During bootup, the following key steps occur:
1. The root filesystem is mounted
2. Directories are created based on the initramfs
3. Additional directories are created based on the ramdisk
4. Default mounts like tmpfs, devpts, proc and sysfs are performed
5. The init process mounts additional filesystems like data, system based on the init.rc file
This document summarizes a presentation about coding in the Go programming language. It discusses:
- A brief history of Go and how it was created at Google in 2007.
- What makes Go special, including its fast compilation, lack of a virtual machine, concurrency features using goroutines and channels, and standard library.
- An overview of Go's syntax including variables, loops, conditions, arrays, maps, functions, closures, pointers, and structs.
- How to handle concurrency using goroutines and channels.
- Building HTTP servers and APIs in Go using the net/http package.
- Popular Go frameworks and toolkits like Gorilla Mux
This document provides an outline for a Capture the Flag (CTF) event with details on CTF concepts, server setup, and examples of challenges. Some key points:
- It introduces CTFs and the AIS3 final CTF event, which will use a jeopardy style format across categories like Misc, Binary, Pwn, Web, and Crypto.
- It provides instructions for setting up a CTF server on Linux with tricks like disabling stack protectors, allowing code execution in the stack, and disabling address space layout randomization (ASLR) to make challenges simpler.
- It outlines some simple initial challenges like a basic buffer overflow example in C, using cryptography, and two pwn
The document provides an overview of Linux basics, including definitions of Unix and Linux, descriptions of different Linux distributions, and explanations of common Linux commands. It discusses how Unix was developed in 1969 at Bell Labs and how Linux was created in 1991 as a clone of Unix. It also lists and briefly explains basic commands like ls, cd, pwd, and vi.
BOSH deploys distributed systems, and Diego runs any containersBenjamin Gandon
Learn how BOSH deploys distributed systems. Plus, Discover Diego, the flexible container engine, inside Cloud Foundry… or as the standalone Lattice engine!
It is the slides for SITCON[1] 2013 Workshop[2]: "Git - The Version Control System You Must Know".
[1]: http://sitcon.org/
[2]: http://www.openfoundry.org/tw/activities/details/415-the-open-source-way-coder
The document provides an overview of basic penetration testing techniques including buffer overflow vulnerabilities, return oriented programming (ROP), format string vulnerabilities, and ways to bypass data execution prevention (DEP) and address space layout randomization (ASLR). It discusses stack-based buffer overflows, the structure of the x86 stack, overwriting the return address, and controlling the instruction pointer. It also covers ROP techniques like ret2libc, gadgets, chaining, and using libc functions. Finally, it briefly mentions tools like pwntools, ROPgadget, and techniques like IO wrapping and LD_PRELOAD hijacking.
Zsh is a shell that has been available since 1990 but has grown in popularity recently due to frameworks like oh-my-zsh. It can be installed on Debian/Ubuntu and Mac systems and set as the default shell. Zsh offers powerful tab autocompletion, globbing patterns for file searching, path expansion and replacement, spelling correction, and aliases. Users can customize the prompt and integrate information from programs like Python virtual environments, version control systems, and batteries. Libraries exist to configure zsh through frameworks like oh-my-zsh and prezto.
The document summarizes a programming class lecture on repetition using while and for loops. It provides examples of printing numbers from 1 to 10 using a while loop, and discusses how to properly increment the counter variable. It then shows that a while loop can be written as a for loop for brevity. Nested for loops are demonstrated to count down and print "SPLASH!". An exercise is proposed to have students simulate loop execution by assigning roles.
Plan 9 is an operating system created at Bell Labs as a successor to UNIX. It uses a new file system called 9P for inter-process communication and was developed by Dennis Ritchie, Rob Pike, and others. This document discusses Plan 9, its history and technologies including 9P, processes, and UTF-8 support. It also covers related projects including the Pegasus web server, the Rit scripting language, and provides references for further information.
Fizz and buzz of computer programs in python.Esehara Shigeo
This document discusses various approaches to solving the FizzBuzz problem in Python without using traditional control structures like if statements. It presents solutions using lists, the itertools module, recursion, and string indexing to represent the Fizz, Buzz, and FizzBuzz outputs as binary flags and select the appropriate output for each number solely through mathematical operations on the number without any conditional logic.
The document discusses the ATS programming language as a safer alternative to C for systems programming. ATS includes features like dependent types, linear types, and optional garbage collection that could help prevent bugs like Heartbleed. Examples show implementing FizzBuzz in both Standard ML and ATS. The ATS code compiles to C and can run on bare metal without an operating system.
Introduction to Ruby, Rails, and Ruby on RailsSimon Bagreev
Given at Dominion Enterprises software developers users group in Dec, 2011. Purpose -- introduce Ruby and Rails to the group. Original presentation consisted of two parts: slides and live Rails application building. Slides are included here.
The document compares the performance of different programming paradigms and JVM languages for solving the FizzBuzz problem. It finds that imperative code with inline logic has the best performance, while functional programming with streams has the worst performance. Kotlin and Scala generally perform comparably to Java, while Groovy's dynamic nature makes it slower. The key takeaways are that trivial examples don't tell the full story, function call overhead is significant, and reducing code complexity may be more important than raw performance in many cases.
Python is a dynamic programming language that is designed for readability and simplicity. It can be used for web applications, data analysis, GUIs, games, and more. Some key features of Python include being highly readable, using intuitive and clear naming conventions, being interactive and forgiving, treating everything as an object, and using generators and list/dict/set comprehensions which allow data to be projected in a functional style.
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...Mozaic Works
This document summarizes a presentation about Clojure and ClojureScript. It describes Clojure as a modern Lisp dialect that runs on the JVM with a focus on concurrency. It notes advantages like stable platforms, access to Java libraries, and immutable persistent data structures that facilitate parallelism. The document discusses Clojure concepts like homoiconicity, concurrency vs parallelism, syntax using s-expressions, macros for metaprogramming, and data structures like maps, vectors, and sets. It also mentions ClojureScript and domain-specific languages.
From Ruby to Haskell (Kansai Yami RubyKaigi)ujihisa
This document summarizes a presentation on Haskell given in Japanese. The agenda includes introductions to Haskell for beginners, average people, and professionals. The document compares FizzBuzz implementations in Ruby and Haskell and demonstrates Haskell concepts like strong static typing, lazy evaluation, functions, operators, and side effects. It also includes a brief self-introduction from the presenter.
This document summarizes the OSD op processing workflow in Ceph. It begins with messages like osd_op being received by OSD::ms_fast_dispatch. The op is then enqueued to the PG by OSD::enqueue_op. PrimaryLogPG processes the op through methods like do_request, do_op, and execute_ctx. It issues a repop, which is submitted to the PGBackend. The backend applies the changes, logs to the PG log, and sends ops to replicas. Replicas process the repop through similar methods and send a reply.
The document discusses the virtual filesystem (VFS) and the process of mounting the root filesystem during system bootup. It explains that the VFS acts as an interface between the kernel and actual filesystem implementations. During bootup, the following key steps occur:
1. The root filesystem is mounted
2. Directories are created based on the initramfs
3. Additional directories are created based on the ramdisk
4. Default mounts like tmpfs, devpts, proc and sysfs are performed
5. The init process mounts additional filesystems like data, system based on the init.rc file
This document summarizes a presentation about coding in the Go programming language. It discusses:
- A brief history of Go and how it was created at Google in 2007.
- What makes Go special, including its fast compilation, lack of a virtual machine, concurrency features using goroutines and channels, and standard library.
- An overview of Go's syntax including variables, loops, conditions, arrays, maps, functions, closures, pointers, and structs.
- How to handle concurrency using goroutines and channels.
- Building HTTP servers and APIs in Go using the net/http package.
- Popular Go frameworks and toolkits like Gorilla Mux
This document provides an outline for a Capture the Flag (CTF) event with details on CTF concepts, server setup, and examples of challenges. Some key points:
- It introduces CTFs and the AIS3 final CTF event, which will use a jeopardy style format across categories like Misc, Binary, Pwn, Web, and Crypto.
- It provides instructions for setting up a CTF server on Linux with tricks like disabling stack protectors, allowing code execution in the stack, and disabling address space layout randomization (ASLR) to make challenges simpler.
- It outlines some simple initial challenges like a basic buffer overflow example in C, using cryptography, and two pwn
The document provides an overview of Linux basics, including definitions of Unix and Linux, descriptions of different Linux distributions, and explanations of common Linux commands. It discusses how Unix was developed in 1969 at Bell Labs and how Linux was created in 1991 as a clone of Unix. It also lists and briefly explains basic commands like ls, cd, pwd, and vi.
BOSH deploys distributed systems, and Diego runs any containersBenjamin Gandon
Learn how BOSH deploys distributed systems. Plus, Discover Diego, the flexible container engine, inside Cloud Foundry… or as the standalone Lattice engine!
It is the slides for SITCON[1] 2013 Workshop[2]: "Git - The Version Control System You Must Know".
[1]: http://sitcon.org/
[2]: http://www.openfoundry.org/tw/activities/details/415-the-open-source-way-coder
The document provides an overview of basic penetration testing techniques including buffer overflow vulnerabilities, return oriented programming (ROP), format string vulnerabilities, and ways to bypass data execution prevention (DEP) and address space layout randomization (ASLR). It discusses stack-based buffer overflows, the structure of the x86 stack, overwriting the return address, and controlling the instruction pointer. It also covers ROP techniques like ret2libc, gadgets, chaining, and using libc functions. Finally, it briefly mentions tools like pwntools, ROPgadget, and techniques like IO wrapping and LD_PRELOAD hijacking.
Zsh is a shell that has been available since 1990 but has grown in popularity recently due to frameworks like oh-my-zsh. It can be installed on Debian/Ubuntu and Mac systems and set as the default shell. Zsh offers powerful tab autocompletion, globbing patterns for file searching, path expansion and replacement, spelling correction, and aliases. Users can customize the prompt and integrate information from programs like Python virtual environments, version control systems, and batteries. Libraries exist to configure zsh through frameworks like oh-my-zsh and prezto.
The document summarizes a programming class lecture on repetition using while and for loops. It provides examples of printing numbers from 1 to 10 using a while loop, and discusses how to properly increment the counter variable. It then shows that a while loop can be written as a for loop for brevity. Nested for loops are demonstrated to count down and print "SPLASH!". An exercise is proposed to have students simulate loop execution by assigning roles.
Plan 9 is an operating system created at Bell Labs as a successor to UNIX. It uses a new file system called 9P for inter-process communication and was developed by Dennis Ritchie, Rob Pike, and others. This document discusses Plan 9, its history and technologies including 9P, processes, and UTF-8 support. It also covers related projects including the Pegasus web server, the Rit scripting language, and provides references for further information.
Fizz and buzz of computer programs in python.Esehara Shigeo
This document discusses various approaches to solving the FizzBuzz problem in Python without using traditional control structures like if statements. It presents solutions using lists, the itertools module, recursion, and string indexing to represent the Fizz, Buzz, and FizzBuzz outputs as binary flags and select the appropriate output for each number solely through mathematical operations on the number without any conditional logic.
The document discusses the ATS programming language as a safer alternative to C for systems programming. ATS includes features like dependent types, linear types, and optional garbage collection that could help prevent bugs like Heartbleed. Examples show implementing FizzBuzz in both Standard ML and ATS. The ATS code compiles to C and can run on bare metal without an operating system.
Introduction to Ruby, Rails, and Ruby on RailsSimon Bagreev
Given at Dominion Enterprises software developers users group in Dec, 2011. Purpose -- introduce Ruby and Rails to the group. Original presentation consisted of two parts: slides and live Rails application building. Slides are included here.
The document compares the performance of different programming paradigms and JVM languages for solving the FizzBuzz problem. It finds that imperative code with inline logic has the best performance, while functional programming with streams has the worst performance. Kotlin and Scala generally perform comparably to Java, while Groovy's dynamic nature makes it slower. The key takeaways are that trivial examples don't tell the full story, function call overhead is significant, and reducing code complexity may be more important than raw performance in many cases.
Python is a dynamic programming language that is designed for readability and simplicity. It can be used for web applications, data analysis, GUIs, games, and more. Some key features of Python include being highly readable, using intuitive and clear naming conventions, being interactive and forgiving, treating everything as an object, and using generators and list/dict/set comprehensions which allow data to be projected in a functional style.
Stefan Kanev: Clojure, ClojureScript and Why They're Awesome at I T.A.K.E. Un...Mozaic Works
This document summarizes a presentation about Clojure and ClojureScript. It describes Clojure as a modern Lisp dialect that runs on the JVM with a focus on concurrency. It notes advantages like stable platforms, access to Java libraries, and immutable persistent data structures that facilitate parallelism. The document discusses Clojure concepts like homoiconicity, concurrency vs parallelism, syntax using s-expressions, macros for metaprogramming, and data structures like maps, vectors, and sets. It also mentions ClojureScript and domain-specific languages.
From Ruby to Haskell (Kansai Yami RubyKaigi)ujihisa
This document summarizes a presentation on Haskell given in Japanese. The agenda includes introductions to Haskell for beginners, average people, and professionals. The document compares FizzBuzz implementations in Ruby and Haskell and demonstrates Haskell concepts like strong static typing, lazy evaluation, functions, operators, and side effects. It also includes a brief self-introduction from the presenter.
Ruby is an object-oriented scripting language that is dynamically typed and supports duck typing. It was created in the 1990s by Yukihiro "Matz" Matsumoto and has gained popularity through its use in web frameworks like Ruby on Rails. This document provides an overview of the Ruby language, including its history, basic syntax like strings and methods, core data types, control structures, classes and inheritance. It also discusses tools used by Ruby developers like RubyGems, interactive Ruby shells, and practical applications of Ruby for web development, testing, and automation through scripting. Finally, it mentions the international Ruby community and local user groups.
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 provides an agenda for a mini course on Ruby and Rails, covering topics such as Ruby, Rails, JRuby, JRubyOnRails, GlassfishOnRails, and JBossOnRails. It introduces Ruby as a dynamic, open source language with a natural syntax and focus on simplicity and productivity. Instructions are provided on installing Ruby on Ubuntu and testing the installation using irb and ruby commands.
Exploring type-directed, test-driven development: a case study using FizzBuzzFranklin Chen
An expressive static type system is one of the most joyful and powerful tools for prototyping, designing, and maintaining programs. In this performance-theatrical presentation, I will provide a taste of how to use types, in conjunction with tests, to drive iterative development of a particular program, the famous FizzBuzz problem. We will solve generalizations of this problem, changing and adding requirements, to illustrate the pleasures and benefits of "type thinking".
The Scala language will be used as the vehicle for this demonstration, but the techniques apply immediately to any industrial-strength statically typed language, such as Haskell, OCaml, F#, Rust, and most recently, Swift.
This document provides an overview introduction to the Ruby programming language. It discusses what Ruby is, basic syntax, key features like being dynamically typed and object-oriented, implementations, applications, and the ecosystem. It also covers topics like variables, data types, control flow, methods, classes, and encapsulation. Code examples are provided to demonstrate various language constructs.
The document discusses building interpreters using PyPy. It describes how PyPy can be used to build interpreters for other languages like Ruby, PHP, Prolog by compiling a language to RPython and then using PyPy's just-in-time compiler. The document then outlines building a BASIC interpreter that can run the Hamurabi program. It covers parsing the BASIC code into an AST using a lexer and parser generated with RPLY. It also describes compiling the AST to bytecode using an intermediate representation and executing the bytecode on a virtual machine.
Atmosphere 2016 - Krzysztof Kaczmarek - Don't fear the brackets - Clojure in ...PROIDEA
Find out why Clojure delighted Uncle Bob and why is used by huge corporations like Netflix, Wallmart, Daily Mail, (Allegro is joining this list) and why, regarding Greenspun's tenth rule, you already wrote your software in lisp.
Type-Directed TDD in Rust: a case study using FizzBuzzFranklin Chen
An expressive static type system is one of the most joyful and powerful tools for prototyping, designing, and maintaining programs. In this performance-theatrical presentation, I will provide a taste of how to use types, in conjunction with tests, to drive iterative development of a particular program, the famous FizzBuzz problem. We will solve generalizations of this problem, changing and adding requirements, to illustrate the pleasures and benefits of "type thinking".
The Rust language will be used as the vehicle for this demonstration, but the techniques apply immediately to any industrial-strength statically typed language, such as Scala, Haskell, OCaml, F#, and most recently, Swift.
This document summarizes a talk given to Python developers about the Lisp programming language. It discusses some myths about Lisp's syntax, libraries, and community. It also highlights features of Lisp like macros, functional programming capabilities, multimethods, special variables, and powerful condition systems. Lisp is described as a multi-paradigm language that is highly customizable through features like macros while also being high performance.
What’s up with becoming a Staff Engineer? What does it mean? Is it just for people who want to keep coding? How do you become a Staff Engineer and what does the work entail? What if I told you that being a Staff engineer actually required a lot of communication and collaboration skills?
In this talk, let’s answer all those questions! To aid in our journey, we’ll also take a look at what it means to be “glue”, help you navigate organizations to find value and succeed at being a Staff engineer!
What's up with becoming a Staff Engineer? What does it mean? Is it just for people who want to keep coding? How do you become a Staff Engineer and what does the work entail? What if I told you, that being a Staff engineer actually required a lot of communication and collaboration skills?
In this talk, let's answer all those questions - as it's still quite fuzzy what a Staff engineer actually is.
What’s it like to work on Open Source projects? They’re all the same aren’t they? No, they’re not - the longer I worked on Open Source the more I realize how different the experience is for each one of them. Walk with me through some stories that happened to me in Open Source and let’s see what we can take away.
Metaphors are everywhere: Ideas to Improve Software Development Tobias Pfeiffer
Let’s embark on a journey together - a journey in which we’ll weave together the realms of basketball, fiction writing, game development and trading card games to explore how these seemingly unrelated domains surprisingly intersect with the world of software development, offering fresh perspectives and insights.
Discover how concepts, strategies, and principles from these diverse domains can enhance your software development skills and creativity. Let’s celebrate the power of interdisciplinary thinking, revealing how diverse interests can invigorate your approach to software development.
The document discusses various topics related to open source software including welcoming and helping users, releasing software early and often, treating open source software as a hobby rather than work, using micro libraries, benchmarking code performance, learning as you go, co-maintaining projects, reporting and fixing issues, being polite, discussing ideas for improvements, considering how software may be used, making open source more diverse and sustainable, and enjoying participating in open source projects.
Elixir & Phoenix – Fast, Concurrent and ExplicitTobias Pfeiffer
Key takeaways
What are Elixir and Phoenix? What makes them standout among programming languages and frameworks?
Why would I want to use Functional Programming, what are the benefits and why does it work so well for the web?
How capable is Erlang (Whatsapp example) performance and reliability wise and why would I consider it for a project?
How does explicitness help in system design?
Elixir and Phoenix are known for their speed, but that’s far from their only benefit. Elixir isn’t just a fast Ruby and Phoenix isn’t just Rails for Elixir. Through pattern matching, immutable data structures and new idioms your programs can not only become faster but more understandable and maintainable. This talk will take a look at what’s great, what you might miss and augment it with production experience and advice.
In the development world most people are striving for technical excellence: better code, faster run times, more convenient interfaces, better databases… But is that really what helps us create better software?
In the end software development is done by groups of people creating products together. To do that communication and collaboration are essential. You can be the best programmer ever, but if you can’t efficiently work with others what good does it do you?
This talk will introduce you to relevant, easy to grasp concepts of collaboration and communication as well as give you food for thought.
In the development world most people are striving for technical excellence: better code, faster run times, more convenient interfaces, better databases… But is that really what helps us create better software?
In the end software development is done by groups of people creating products together. To do that communication and collaboration are essential. You can be the best programmer ever, but if you can’t efficiently work with others what good does it do you?
This talk will introduce you to relevant, easy to grasp concepts of collaboration and communication as well as give you food for thought.
Do You Need That Validation? Let Me Call You Back About ItTobias Pfeiffer
Rails apps start nice and cute. Fast forward a year and business logic and view logic are entangled in our validations and callbacks - getting in our way at every turn. Wasn’t this supposed to be easy?
Let’s explore different approaches to improve the situation and untangle the web.
Elixir is great, so clearly we'll all rewrite our applications in Elixir. Mostly, you can't and shouldn't do that. This presentation will show you another path. You’ll see how at Liefery, we started with small steps instead of rewriting everything. This allowed us to reap the benefits earlier and get comfortable before getting deeper into it. We’ll examine in detail the tactics we used to create two Elixir apps for new requirements, and how we integrated them with our existing Rails code base.
Join us on our tale of adopting Elixir and Phoenix and see what we learned, what we loved, and what bumps we hit along the road
Stop Guessing and Start Measuring - Benchmarking in Practice (Lambdadays)Tobias Pfeiffer
“What’s the fastest way of doing this?” - you might ask yourself during development. Sure, you can guess - but how do you know? How long would that function take with a million elements? Is that tail-recursive function always faster?
Benchmarking is here to give you the answers, but there are many pitfalls in setting up a good benchmark and analyzing the results. This talk will guide you through, introduce best practices, and surprise you with some results along the way. You didn’t think that the order of arguments could influence its performance...or did you?
In the development world most people are striving for technical excellence: better code, faster run times, more convenient interfaces, better databases, faster deployments… But is that really what makes us better at developing software?
In the end software development is done by groups of people creating products together. To do that communication and collaboration between humans is essential - you can be the best programmer ever, if you can’t efficiently work with others what good does it do you?
This talk will give you a primer and food for further thought.
Stop Guessing and Start Measuring - Benchmarking Practice (Poly Version)Tobias Pfeiffer
This is the Polyconf version of the talk, including a little MJIT vs. GraalVM rebuttal, JavaScript, SQL, Ruby and Elixir to be truly Poly.
“What’s the fastest way of doing this?” - you might ask yourself during development. Sure, you can guess, your intuition might be correct - but how do you know? Benchmarking is here to give you the answers, but there are many pitfalls in setting up a good benchmark and analyzing the results. This talk will guide you through, introduce best practices, and surprise you with some unexpected benchmarking results. You didn’t think that the order of arguments could influence its performance...or did you?
How fast is it really? Benchmarking in Practice (Ruby Version)Tobias Pfeiffer
The document describes various benchmarks performed to compare the performance of different Ruby implementations and algorithms for sorting arrays. The benchmarks show that:
1) CRuby generally outperforms JRuby in sorting performance, with CRuby sorting arrays 2-3 times faster than JRuby in the benchmarks.
2) The ".sort.reverse" approach is the fastest method for reversing a sorted array, performing up to 7 times faster than using a sorting block.
3) Using "sort_by" with a transformation is generally faster than a sorting block but slower than ".sort.reverse".
How fast ist it really? Benchmarking in practiceTobias Pfeiffer
“What’s the fastest way of doing this?” - you might ask yourself during development. Sure, you can guess what’s fastest or how long something will take, but do you know? How long does it take to sort a list of 1 Million elements? Are tail-recursive functions always the fastest?
Benchmarking is here to answer these questions. However, there are many pitfalls around setting up a good benchmark and interpreting the results. This talk will guide you through, introduce best practices and show you some surprising benchmarking results along the way.
Small lightning talk with some practical advice on how we integrated a Phoenix application in our general application landscape with a rails monolith and some frontend clients.
Elixir & Phoenix – fast, concurrent and explicitTobias Pfeiffer
Elixir and Phoenix are known for their speed, but that’s far from their only benefit. Elixir isn’t just a fast Ruby and Phoenix isn’t just Rails for Elixir. Through pattern matching, immutable data structures and new idioms your programs can not only become faster but more understandable and maintainable. This talk will take a look at what’s great, what you might miss and augment it with production experience and advice.
What did AlphaGo do to beat the strongest human Go player?Tobias Pfeiffer
This year AlphaGo shocked the world by decisively beating the strongest human Go player, Lee Sedol. An accomplishment that wasn't expected for years to come. How did AlphaGo do this? What algorithms did it use? What advances in AI made it possible? This talk will briefly introduce the game of Go, followed by the techniques and algorithms used by AlphaGo to answer these questions.
Elixir & Phoenix – fast, concurrent and explicitTobias Pfeiffer
Elixir and Phoenix are known for their speed, but that’s far from their only benefit. Elixir isn’t just a fast Ruby and Phoenix isn’t just Rails for Elixir. Through pattern matching, immutable data structures and new idioms your programs can not only become faster but more understandable and maintainable. This talk will take a look at what’s great, what you might miss and augment it with production experience and advice.
Procurement Insights Cost To Value Guide.pptxJon Hansen
Procurement Insights integrated Historic Procurement Industry Archives, serves as a powerful complement — not a competitor — to other procurement industry firms. It fills critical gaps in depth, agility, and contextual insight that most traditional analyst and association models overlook.
Learn more about this value- driven proprietary service offering here.
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Social Media App Development Company-EmizenTechSteve Jonas
EmizenTech is a trusted Social Media App Development Company with 11+ years of experience in building engaging and feature-rich social platforms. Our team of skilled developers delivers custom social media apps tailored to your business goals and user expectations. We integrate real-time chat, video sharing, content feeds, notifications, and robust security features to ensure seamless user experiences. Whether you're creating a new platform or enhancing an existing one, we offer scalable solutions that support high performance and future growth. EmizenTech empowers businesses to connect users globally, boost engagement, and stay competitive in the digital social landscape.
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
Web & Graphics Designing Training at Erginous Technologies in Rajpura offers practical, hands-on learning for students, graduates, and professionals aiming for a creative career. The 6-week and 6-month industrial training programs blend creativity with technical skills to prepare you for real-world opportunities in design.
The course covers Graphic Designing tools like Photoshop, Illustrator, and CorelDRAW, along with logo, banner, and branding design. In Web Designing, you’ll learn HTML5, CSS3, JavaScript basics, responsive design, Bootstrap, Figma, and Adobe XD.
Erginous emphasizes 100% practical training, live projects, portfolio building, expert guidance, certification, and placement support. Graduates can explore roles like Web Designer, Graphic Designer, UI/UX Designer, or Freelancer.
For more info, visit erginous.co.in , message us on Instagram at erginoustechnologies, or call directly at +91-89684-38190 . Start your journey toward a creative and successful design career today!
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Dev Dives: Automate and orchestrate your processes with UiPath MaestroUiPathCommunity
This session is designed to equip developers with the skills needed to build mission-critical, end-to-end processes that seamlessly orchestrate agents, people, and robots.
📕 Here's what you can expect:
- Modeling: Build end-to-end processes using BPMN.
- Implementing: Integrate agentic tasks, RPA, APIs, and advanced decisioning into processes.
- Operating: Control process instances with rewind, replay, pause, and stop functions.
- Monitoring: Use dashboards and embedded analytics for real-time insights into process instances.
This webinar is a must-attend for developers looking to enhance their agentic automation skills and orchestrate robust, mission-critical processes.
👨🏫 Speaker:
Andrei Vintila, Principal Product Manager @UiPath
This session streamed live on April 29, 2025, 16:00 CET.
Check out all our upcoming Dev Dives sessions at https://community.uipath.com/dev-dives-automation-developer-2025/.
54. package main
import "fmt"
import "strconv"
func FizzBuzz(i int) string {
switch {
case i%15 == 0:
return "FizzBuzz"
case i%3 == 0:
return "Fizz"
case i%5 == 0:
return "Buzz"
default:
return strconv.Itoa(i)
}
}
func main() {
for i := 1; i <= 100; i++ {
fmt.Println(FizzBuzz(i))
}
}
55. package main
import "fmt"
import "strconv"
func FizzBuzz(i int) string {
switch {
case i%15 == 0:
return "FizzBuzz"
case i%3 == 0:
return "Fizz"
case i%5 == 0:
return "Buzz"
default:
return strconv.Itoa(i)
}
}
func main() {
for i := 1; i <= 100; i++ {
fmt.Println(FizzBuzz(i))
}
}
56. package main
import "fmt"
import "strconv"
func FizzBuzz(i int) string {
switch {
case i%15 == 0:
return "FizzBuzz"
case i%3 == 0:
return "Fizz"
case i%5 == 0:
return "Buzz"
default:
return strconv.Itoa(i)
}
}
func main() {
for i := 1; i <= 100; i++ {
fmt.Println(FizzBuzz(i))
}
}
57. Name:
Popular Rubyists:
Known for:
Self-assessment:
Rust
Steve Klabnik,
Yehuda Katz, Sean Griffin
Memory Management,
Compiler, Firefox Quantum
a systems programming
language that runs blazingly
fast, prevents segfaults, and
guarantees thread safety.
62. const fizzBuzz = n => {
if (n % 15 === 0) {
return "FizzBuzz";
} else if (n % 3 === 0) {
return "Fizz";
} else if (n % 5 === 0) {
return "Buzz";
} else {
return n;
}
};
for (let n = 1; n <= 100; n += 1) {
console.log(fizzBuzz(n));
}
63. const fizzBuzz = n => {
if (n % 15 === 0) {
return "FizzBuzz";
} else if (n % 3 === 0) {
return "Fizz";
} else if (n % 5 === 0) {
return "Buzz";
} else {
return n;
}
};
for (let n = 1; n <= 100; n += 1) {
console.log(fizzBuzz(n));
}
64. const fizzBuzz = n => {
if (n % 15 === 0) {
return "FizzBuzz";
} else if (n % 3 === 0) {
return "Fizz";
} else if (n % 5 === 0) {
return "Buzz";
} else {
return n;
}
};
for (let n = 1; n <= 100; n += 1) {
console.log(fizzBuzz(n));
}
65. Name:
Popular Rubyists:
Known for:
Self-assessment:
Clojure
Russ Olsen, Bozhidar
Batsov, Arne Brasseur
Rich Hickey, Lisp, JVM, ()
a robust, practical, and fast
programming language with a
set of useful features that
together form a simple,
coherent, and powerful tool.
66. (defn fizzbuzz [n]
(cond
(zero? (mod n 15)) "FizzBuzz"
(zero? (mod n 3)) "Fizz"
(zero? (mod n 5)) "Buzz"
:else n))
(run! println (map fizzbuzz (range 1 101)))
67. (defn fizzbuzz [n]
(cond
(zero? (mod n 15)) "FizzBuzz"
(zero? (mod n 3)) "Fizz"
(zero? (mod n 5)) "Buzz"
:else n))
(run! println (map fizzbuzz (range 1 101)))
68. (defn fizzbuzz [n]
(cond
(zero? (mod n 15)) "FizzBuzz"
(zero? (mod n 3)) "Fizz"
(zero? (mod n 5)) "Buzz"
:else n))
(run! println (map fizzbuzz (range 1 101)))
95. “Ruby's OO model was
brain-expanding, and I was
seeking more brain-expanding
paradigms that would let me
think entirely new thoughts.”
Why did you learn a new language?
103. “Ruby is the best language I
have used over my 30 years
programming. I hope Ruby 3
puts an end to the Ruby is
slow meme once and for all.”
104. “I really like Ruby for what it is,
and don't think 'adding a type
system' or something is the best
way to keep Ruby relevant. Don't
morph Ruby in to something
it's not.”