Proxying DBI with DBD::Gofer and App::Staticperlnohuhu
This document summarizes using DBD::Gofer and App::Staticperl to connect to remote Informix databases behind firewalls. DBD::Gofer acts as a stateless DBI proxy, allowing connections via SSH. App::Staticperl builds a standalone Perl executable containing all necessary modules, avoiding configuration changes. The document outlines the process of building App::Staticperl, installing necessary modules like DBI and DBD::Informix, customizing for the Informix environment, and creating a static Perl executable that can connect to remote Informix databases behind firewalls in a minimal and maintainable way.
Automating JavaScript testing with Jasmine and Perlnohuhu
This document discusses automating JavaScript testing using Jasmine and Perl. It introduces Test::WWW::Jasmine, a module that takes Jasmine test specs, runs them in a Selenium-controlled browser, and outputs the results in TAP format. This allows running JavaScript tests from Perl similar to unit tests. Examples of Jasmine test specs and TAP output are shown. The document also discusses running the same Jasmine specs locally for development. It acknowledges some limitations but seeks feedback on the new module.
Posterous recently deployed Riak to serve as their content cache. In this talk, Julio Capote will cover why the engineering team chose Riak for the use case. He'll also share some details on the old post cache and its problems, what solutions they evaluated, and how they settled on Riak.
This document describes EhTrace, a tool for tracing the execution of binary programs through hooking and branch stepping. EhTrace uses the Windows VEH exception handler to single step programs by setting flags in the CPU context. It can be used to analyze program control flow at the basic block level for purposes like malware analysis, debugging, and code coverage. The document discusses techniques for maintaining control during tracing and fighting attempts by the target program to detect or alter the tracing.
Testing is the first line of defense when debugging Rails applications. The log files and stack traces provide clues, and gems like better_errors and pry make debugging more powerful. When a defect is found, reproduce it with a test case then use a methodical divide-and-conquer approach, examining the logs, changing one thing at a time, and re-evaluating periodically until the problem is solved.
The author explains why they switched from primarily using Python to primarily using Go for serious projects. Some key reasons include that Go has better performance, code quality, testing, and concurrency features compared to Python. While Python is still good for hobby projects, Go enforces error handling, has built-in profiling tools, and makes deployment easier due to compiling to a single binary.
The document provides an overview and agenda for a Ruby mid-term review session. It discusses using Cucumber for behavior driven development and testing with MiniTest. It also demonstrates how to write Cucumber features and step definitions, and integrate Cucumber tests with Jeweler and Travis.
Auto-Generating Language-Specific Wrappers for Rust LibrariesSteven McCown
This document discusses auto-generating language-specific wrappers for Rust libraries. It describes how common libraries use wrapper layers to relay function calls and convert parameters between languages. It then provides more details on Uniffi, an open-source project that automatically generates foreign language bindings for Rust libraries. Uniffi consolidates business logic into a portable Rust library and builds wrappers for languages like Kotlin, Swift, Python and C++. It works by having developers create a Rust library and UDL representation of its API, then Uniffi generates scaffolding and language-specific implementation layers to interface with the library from other languages.
Engage 2020: Hello are you listening, There is stream for everythingFrank van der Linden
The world is changing in a event driven world
Event driven architecture is not a new technology. IBM MQ is already 25 years old.
The popularity is increasing, because it is a robust, decoupled way to exchange data.
Today there are new popular 'new kids on the block'. Kafka is one of them and gets lots of attention also in the enterprise.
The principle however are still the same, called Pub Sub principle.
HCL will add to the App Dev pack the possibility to consume and produce to a broker/stream.
There are frameworks who helps you to focus on the business logic.
In this session I will explain this principle and show you that is not that difficult to make use of it. Connect your existing code to a service bus or queue, producing and consuming.
Erlang is a functional programming language built for reliability and concurrency. It is used to build scalable and fault-tolerant systems through features like its supervision tree, behaviors, and OTP framework. The document recommends learning more about Erlang through various books and online resources, and suggests trying out the build tools rebar and ChicagoBoss or contributing to open source projects like Riak to get hands-on experience with the language.
This document discusses using message brokers like RabbitMQ to asynchronously process tasks like generating Microsoft Office documents from XML content. It describes how using a message broker and queueing bundle improves over a synchronous approach that is slow, unreliable, and does not scale. Specifically, it allows processing jobs to run in parallel without interfering with each other by placing jobs on a message queue where worker processes can pick them up. The document recommends using the Kaliop Queueing Bundle which provides an easy to use and safe way to integrate queues into a Symfony application using multiple broker protocols.
Erlang is a functional programming language built for concurrency, distribution, and fault tolerance. It uses an immutable data structure and avoids loops with tail recursion. The OTP framework provides tools like supervision trees, behaviors, and hot code swapping. While Erlang syntax looks like Prolog, it can integrate with Ruby via bridges or messaging and runs on Heroku. The document recommends resources for learning Erlang and OTP and participating in the local Erlang meetup.
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...Frank van der Linden
The world of (XPages) developer is moving fast. Customers rethinking platforms and solutions. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". In combination with Thymeleaf can it be good alternative for your XPages applications.
In this session I give an introduction of Spring Boot and Thymeleaf and how to get started. I will show the differences and similarities between Spring Boot in combination with Thymeleaf and XPages.
I will explain the challenges I faced when moving an application.
This document summarizes the technology stack and use of websockets at oneplaylist.fm. The key aspects are:
- The stack includes Ruby on Rails, Redis, EventMachine, HAProxy, Resque, MongoDB, CoffeeScript, and Elasticsearch.
- HAProxy is used for TCP load balancing and handles HTTP as well, distributing traffic across multiple Rails app servers, Elasticsearch instances, and the EventMachine websocket server.
- Websockets are handled via a TCP connection to the EventMachine server through a separate subdomain, keeping HTTP requests on the main app domain.
- Redis is used for centralized communication and state management via Pub/Sub, with tokens mapping users to channels and event data pushed
Spring forward: an introduction to Spring boot and ThymeleafFrank van der Linden
an introduction to Spring boot and Thymeleaf, to get a head start.
For example code see https://bitbucket.org/flinden68/spring-forward-starte
perlcc made easy or, how to make a CGI Moose appcPanel
Based on recent work on the B::C module, it's now possible to build a working binary which can do away with the majority of startup expense a typical perl program would have.
In this talk, I'll explain:
- What the perlcc compiler does and doesn't do.
- How to setup the perl compiler.
- How to pre-compile a perl script into a binary for faster execution.
- Discuss the common mistakes one makes when building a perl binary and how to work around them.
This document summarizes a presentation on JRuby given by Koichiro Ohba. It discusses JRuby's current state, upcoming features, and demos. Key points include:
- JRuby 1.1.5 was recently released with improved performance and compatibility.
- JRuby 1.1.6RC1 is available and fixes many bugs while adding support for the Ruby 1.9 parser.
- The GlassFish gem allows running Ruby on Rails and other web frameworks on the GlassFish application server.
- A demo shows Redmine running on GlassFish using the GlassFish gem.
- The Kit dependency manager was initially written in one weekend with little Haskell knowledge and resulted in bad code with IO everywhere and little usage of standard libraries.
- Over time, the code was improved by removing IO usage, learning to leverage standard libraries and Hackage packages, cleaning up imports, and specifying invariants through QuickCheck properties and tighter types.
- While an improvement, the code was still not considered "good" and could be further refined by fully removing IO from the monad stack and defining more precise invariants.
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...Frank van der Linden
The world of (XPages) developer is moving fast. Customers rethinking platforms and solutions. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". In combination with Thymeleaf can it be good alternative for your XPages applications.
In this session I give an introduction of Spring Boot and Thymeleaf and how to get started. I will show the differences and similarities between Spring Boot in combination with Thymeleaf and XPages.
I will explain the challenges I faced when moving an application.
Tagless-Final approach remains a hot topic in a FP community. There are still very few tools and libraries aimed at helping users of TF. Tofu is a library that tries to address this problem by providing convenient abstractions for writing simple, transparent and testable functional code.
All credits for translation: @tvaroh
Sora Harakami introduces a new terminal application called "few" that is meant as a substitution for the traditional "less" command. Few outputs content to a web browser instead of directly to the terminal like less does, allowing for features like transparency. It is implemented in Ruby and works across multiple platforms. The developers of few are ujihisa and Sora Harakami, and future plans include adding SSH support and syntax highlighting to few.
Apache ZooKeeper is a distributed coordination service that allows distributed applications to synchronize data and configuration information and maintain consistency. It provides a hierarchical name space and simple primitives like counters and change notifications. ZooKeeper elects a leader automatically and guarantees consistency by requiring a quorum for all operations. It is useful for applications that need to maintain consistency but also remain available, as it allows choosing consistency and availability over partition tolerance. Spotify uses ZooKeeper to orchestrate distributed tasks across its infrastructure while maintaining a consistent order and remaining available within data centers.
Designing a Docker Stack for Symfony apps: lessons learnedGaetano Giunta
This document summarizes a presentation about designing a Docker stack for Symfony applications. It discusses getting started with Docker and some of the challenges that arise when using it in more complex situations. It then introduces Docker Compose as a way to define and run multiple linked containers together more easily. The rest of the document demonstrates a Docker stack created for Symfony apps, explaining how it works to provide a development environment that replicates production and allows for running multiple projects and environments simultaneously in a simple way. It concludes with a demonstration of the Docker stack in action.
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)Panagiotis Kanavos
This document discusses parallel and asynchronous programming. It begins by explaining how processors are getting smaller while networks are getting worse, requiring more efficient parallel programming approaches. It then covers different parallel programming models in .NET like data parallelism using PLINQ, task parallelism using TPL, asynchronous programming with async/await, and concurrent collections. It also discusses challenges like cancellation, progress reporting, and synchronization, and how modern .NET addresses these.
This document summarizes the key steps and challenges for upgrading a Rails application from version 1.8.7 to Rails 3. It notes that the upgrade involves major changes to the ActiveRecord query and validation APIs, views, routing, and other areas. Testing coverage and having both Rails 1.8.7 and 3 installed are prerequisites. The major challenges will be changes to the query API, HTML escaping, routing, and unobtrusive JavaScript as well as dealing with broken plugins. Recommended steps include using best practices, writing tests, upgrading configuration gems, moving RJS to unobtrusive JavaScript, and replacing plugins with gems. Proper preparation such as creating a remote branch and having a strong testing suite
Lock-free algorithms for Kotlin CoroutinesRoman Elizarov
The document discusses lock-free algorithms for Kotlin coroutines. It covers the implementation of a lock-free doubly linked list using single-word compare-and-swap operations. It also discusses how to build more complex atomic operations, like a multi-word compare-and-swap, to enable select expressions in Kotlin coroutines.
Rake is a build tool created in 2003 that allows tasks to be specified using Ruby code rather than an external DSL. It uses a dependency-based approach where tasks only run when their dependencies are satisfied. This allows tasks to be run efficiently in parallel using features like multitasking. Rake provides common build tasks and utilities out of the box and integrates well with projects like Ruby on Rails.
The document discusses challenges in implementing the Ruby programming language on the Java Virtual Machine (JVM) using JRuby. It covers areas like parsing Ruby, implementing different interpreters and compilers, utilizing JVM tricks, ensuring compatibility with features like strings and fibers, and integrating native capabilities. The author also shares decisions they have made around these challenges and future work.
Auto-Generating Language-Specific Wrappers for Rust LibrariesSteven McCown
This document discusses auto-generating language-specific wrappers for Rust libraries. It describes how common libraries use wrapper layers to relay function calls and convert parameters between languages. It then provides more details on Uniffi, an open-source project that automatically generates foreign language bindings for Rust libraries. Uniffi consolidates business logic into a portable Rust library and builds wrappers for languages like Kotlin, Swift, Python and C++. It works by having developers create a Rust library and UDL representation of its API, then Uniffi generates scaffolding and language-specific implementation layers to interface with the library from other languages.
Engage 2020: Hello are you listening, There is stream for everythingFrank van der Linden
The world is changing in a event driven world
Event driven architecture is not a new technology. IBM MQ is already 25 years old.
The popularity is increasing, because it is a robust, decoupled way to exchange data.
Today there are new popular 'new kids on the block'. Kafka is one of them and gets lots of attention also in the enterprise.
The principle however are still the same, called Pub Sub principle.
HCL will add to the App Dev pack the possibility to consume and produce to a broker/stream.
There are frameworks who helps you to focus on the business logic.
In this session I will explain this principle and show you that is not that difficult to make use of it. Connect your existing code to a service bus or queue, producing and consuming.
Erlang is a functional programming language built for reliability and concurrency. It is used to build scalable and fault-tolerant systems through features like its supervision tree, behaviors, and OTP framework. The document recommends learning more about Erlang through various books and online resources, and suggests trying out the build tools rebar and ChicagoBoss or contributing to open source projects like Riak to get hands-on experience with the language.
This document discusses using message brokers like RabbitMQ to asynchronously process tasks like generating Microsoft Office documents from XML content. It describes how using a message broker and queueing bundle improves over a synchronous approach that is slow, unreliable, and does not scale. Specifically, it allows processing jobs to run in parallel without interfering with each other by placing jobs on a message queue where worker processes can pick them up. The document recommends using the Kaliop Queueing Bundle which provides an easy to use and safe way to integrate queues into a Symfony application using multiple broker protocols.
Erlang is a functional programming language built for concurrency, distribution, and fault tolerance. It uses an immutable data structure and avoids loops with tail recursion. The OTP framework provides tools like supervision trees, behaviors, and hot code swapping. While Erlang syntax looks like Prolog, it can integrate with Ruby via bridges or messaging and runs on Heroku. The document recommends resources for learning Erlang and OTP and participating in the local Erlang meetup.
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...Frank van der Linden
The world of (XPages) developer is moving fast. Customers rethinking platforms and solutions. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". In combination with Thymeleaf can it be good alternative for your XPages applications.
In this session I give an introduction of Spring Boot and Thymeleaf and how to get started. I will show the differences and similarities between Spring Boot in combination with Thymeleaf and XPages.
I will explain the challenges I faced when moving an application.
This document summarizes the technology stack and use of websockets at oneplaylist.fm. The key aspects are:
- The stack includes Ruby on Rails, Redis, EventMachine, HAProxy, Resque, MongoDB, CoffeeScript, and Elasticsearch.
- HAProxy is used for TCP load balancing and handles HTTP as well, distributing traffic across multiple Rails app servers, Elasticsearch instances, and the EventMachine websocket server.
- Websockets are handled via a TCP connection to the EventMachine server through a separate subdomain, keeping HTTP requests on the main app domain.
- Redis is used for centralized communication and state management via Pub/Sub, with tokens mapping users to channels and event data pushed
Spring forward: an introduction to Spring boot and ThymeleafFrank van der Linden
an introduction to Spring boot and Thymeleaf, to get a head start.
For example code see https://bitbucket.org/flinden68/spring-forward-starte
perlcc made easy or, how to make a CGI Moose appcPanel
Based on recent work on the B::C module, it's now possible to build a working binary which can do away with the majority of startup expense a typical perl program would have.
In this talk, I'll explain:
- What the perlcc compiler does and doesn't do.
- How to setup the perl compiler.
- How to pre-compile a perl script into a binary for faster execution.
- Discuss the common mistakes one makes when building a perl binary and how to work around them.
This document summarizes a presentation on JRuby given by Koichiro Ohba. It discusses JRuby's current state, upcoming features, and demos. Key points include:
- JRuby 1.1.5 was recently released with improved performance and compatibility.
- JRuby 1.1.6RC1 is available and fixes many bugs while adding support for the Ruby 1.9 parser.
- The GlassFish gem allows running Ruby on Rails and other web frameworks on the GlassFish application server.
- A demo shows Redmine running on GlassFish using the GlassFish gem.
- The Kit dependency manager was initially written in one weekend with little Haskell knowledge and resulted in bad code with IO everywhere and little usage of standard libraries.
- Over time, the code was improved by removing IO usage, learning to leverage standard libraries and Hackage packages, cleaning up imports, and specifying invariants through QuickCheck properties and tighter types.
- While an improvement, the code was still not considered "good" and could be further refined by fully removing IO from the monad stack and defining more precise invariants.
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...Frank van der Linden
The world of (XPages) developer is moving fast. Customers rethinking platforms and solutions. Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". In combination with Thymeleaf can it be good alternative for your XPages applications.
In this session I give an introduction of Spring Boot and Thymeleaf and how to get started. I will show the differences and similarities between Spring Boot in combination with Thymeleaf and XPages.
I will explain the challenges I faced when moving an application.
Tagless-Final approach remains a hot topic in a FP community. There are still very few tools and libraries aimed at helping users of TF. Tofu is a library that tries to address this problem by providing convenient abstractions for writing simple, transparent and testable functional code.
All credits for translation: @tvaroh
Sora Harakami introduces a new terminal application called "few" that is meant as a substitution for the traditional "less" command. Few outputs content to a web browser instead of directly to the terminal like less does, allowing for features like transparency. It is implemented in Ruby and works across multiple platforms. The developers of few are ujihisa and Sora Harakami, and future plans include adding SSH support and syntax highlighting to few.
Apache ZooKeeper is a distributed coordination service that allows distributed applications to synchronize data and configuration information and maintain consistency. It provides a hierarchical name space and simple primitives like counters and change notifications. ZooKeeper elects a leader automatically and guarantees consistency by requiring a quorum for all operations. It is useful for applications that need to maintain consistency but also remain available, as it allows choosing consistency and availability over partition tolerance. Spotify uses ZooKeeper to orchestrate distributed tasks across its infrastructure while maintaining a consistent order and remaining available within data centers.
Designing a Docker Stack for Symfony apps: lessons learnedGaetano Giunta
This document summarizes a presentation about designing a Docker stack for Symfony applications. It discusses getting started with Docker and some of the challenges that arise when using it in more complex situations. It then introduces Docker Compose as a way to define and run multiple linked containers together more easily. The rest of the document demonstrates a Docker stack created for Symfony apps, explaining how it works to provide a development environment that replicates production and allows for running multiple projects and environments simultaneously in a simple way. It concludes with a demonstration of the Docker stack in action.
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)Panagiotis Kanavos
This document discusses parallel and asynchronous programming. It begins by explaining how processors are getting smaller while networks are getting worse, requiring more efficient parallel programming approaches. It then covers different parallel programming models in .NET like data parallelism using PLINQ, task parallelism using TPL, asynchronous programming with async/await, and concurrent collections. It also discusses challenges like cancellation, progress reporting, and synchronization, and how modern .NET addresses these.
This document summarizes the key steps and challenges for upgrading a Rails application from version 1.8.7 to Rails 3. It notes that the upgrade involves major changes to the ActiveRecord query and validation APIs, views, routing, and other areas. Testing coverage and having both Rails 1.8.7 and 3 installed are prerequisites. The major challenges will be changes to the query API, HTML escaping, routing, and unobtrusive JavaScript as well as dealing with broken plugins. Recommended steps include using best practices, writing tests, upgrading configuration gems, moving RJS to unobtrusive JavaScript, and replacing plugins with gems. Proper preparation such as creating a remote branch and having a strong testing suite
Lock-free algorithms for Kotlin CoroutinesRoman Elizarov
The document discusses lock-free algorithms for Kotlin coroutines. It covers the implementation of a lock-free doubly linked list using single-word compare-and-swap operations. It also discusses how to build more complex atomic operations, like a multi-word compare-and-swap, to enable select expressions in Kotlin coroutines.
Rake is a build tool created in 2003 that allows tasks to be specified using Ruby code rather than an external DSL. It uses a dependency-based approach where tasks only run when their dependencies are satisfied. This allows tasks to be run efficiently in parallel using features like multitasking. Rake provides common build tasks and utilities out of the box and integrates well with projects like Ruby on Rails.
The document discusses challenges in implementing the Ruby programming language on the Java Virtual Machine (JVM) using JRuby. It covers areas like parsing Ruby, implementing different interpreters and compilers, utilizing JVM tricks, ensuring compatibility with features like strings and fibers, and integrating native capabilities. The author also shares decisions they have made around these challenges and future work.
This document discusses using multiple programming languages with Grails, known as polyglot programming. It describes how to use Clojure, Scala, and Ruby with Grails through plugins. For each language, it covers why you would use it with Grails, how to set up the plugin, examples of usage, and limitations. The goal is to push Grails towards being more polyglot and leverage different languages' strengths.
An overview of Ruby, jRuby, Rails, Torquebox, and PostgreSQL that was presented as a 3 hour class to other programmers at The Ironyard (http://theironyard.com) in Greenville, SC in July of 2013. The Rails specific sections are mostly code samples that were explained during the session so the real focus of the slides is Ruby, "the rails way" / workflow / differentiators and PostgreSQL.
The code will print false, because paid = true assigns a local variable rather than setting the instance variable @paid. To fix it, use self.paid = true.
JRuby is a Ruby implementation that runs on the Java Virtual Machine (JVM). It allows Ruby code to leverage Java libraries and deployment options like WAR files. JRuby code is compiled to JVM bytecode, enabling features like multithreading and just-in-time compilation for performance. While C extensions and startup time are drawbacks, JRuby provides advantages for Java interoperability, threading, and deployment in Java environments.
This document summarizes the first round of Season 2 of the ROR Lab. It discusses getting started with Rails, translating Rails guides and Railscasts to Korean, the ROR Lab blog, the plan for Season 2 including learning Rails MVC and a blog project, and useful Gems. It also provides an overview of Rails history and philosophy including DRY, Convention over Configuration, and REST. Finally, it discusses setting up a development environment, installing Rails, using code editors, and creating a new Rails project and database.
This document discusses why Ruby is a good programming language for security projects. It provides examples of security tools and frameworks built with Ruby, including Metasploit, BeEF, Arachni, Brakeman, WPScan, and RailsGoat. Ruby offers features like an easy-to-read syntax, package management with RubyGems, powerful object-oriented capabilities, platform independence, and support for domains like network protocols that make it well-suited for security applications.
Reuven Lerner is a web developer and consultant who primarily works with Ruby on Rails and PostgreSQL. He teaches Rails courses and uses various tools like iTerm2, RVM, IRB gems, Emacs, Firefox plugins, Growl, and Pow in his development environment. Emacs is his editor of choice, which he has highly customized over the years using Lisp functions and key bindings.
The document discusses Cucumber, a tool that allows executing plain text behavioral descriptions as automated tests. It can:
- Execute Ruby code associated with sentences written in a natural language format. This allows customers to read and understand the tests.
- Be used for end-to-end testing of web applications from the user interface to the data layer.
- Leverage the Ruby programming language to access databases, configure tests, and more.
- Grow project-specific vocabularies over time through its framework and grammar to improve communication between customers and developers.
The document introduces Ruby on Rails and provides an overview of its features and benefits. It summarizes the speaker's experience with web development over time, introduces MVC and ORM concepts, and demonstrates Rails through a live coding example. Key advantages of Rails highlighted include its convention over configuration approach, use of Ruby as a dynamic scripting language, and ability to rapidly develop database-backed web applications.
This document provides an overview of Ruby, including its features and environment setup. It compares Ruby to C++ and discusses Ruby's dynamic typing, REPL environment, package manager RubyGems, object-oriented nature, monkey patching, closures or blocks, mixins, and using Sinatra to build a simple web app deployed to Heroku. Setup instructions are provided for installing Ruby, using version managers like RVM, installing Git, and deploying the sample Sinatra app.
Adventures of java developer in ruby worldOrest Ivasiv
This document provides an overview of the speaker's experience transitioning from Java to Ruby. It includes an agenda covering the speaker's background, project issues that led to choosing Ruby, a brief history of Ruby, examples of early debates between Ruby and other languages, and a review of the Ruby ecosystem including implementations, tools, testing, debugging, and community aspects.
MacRuby: What is it? and why should you care?Joshua Ballanco
This document provides an overview of MacRuby, which is a Ruby implementation that runs on Apple's Cocoa and Objective-C frameworks. It summarizes that MacRuby allows Ruby code to be compiled to machine code using LLVM, integrated with Cocoa for building macOS apps, and leverages Grand Central Dispatch (GCD) for concurrency. The presenter is a MacRuby core team member who has been using Ruby since 2004 and worked at Apple from 2006-2010.
This document summarizes RubyMotion, a tool that allows developers to create iOS and OS X applications using Ruby instead of Objective-C. It discusses RubyMine, an IDE for RubyMotion development, and various Ruby libraries like BubbleWrap, Teacup, and Joybox that provide wrappers and helpers for common tasks like making HTTP requests, building user interfaces, and using the Cocos2D and Box2D frameworks in a RubyMotion app. It also briefly mentions some popular apps and books related to RubyMotion development.
This document provides information about setting up Ruby on Mac OS X. It discusses using Homebrew to install Ruby and manage versions. It also mentions using RVM (Ruby Version Manager) as an alternative to Homebrew for installing and managing multiple Ruby environments and versions. Finally, it provides some examples of using the ruby, irb and gem commands once Ruby is installed.
Here are the changes to the people index view:
<h1>My Class List</h1>
<% @people.each do |person| %>
<p><%= person.first_name[0] %>. <%= person.last_name %></p>
<% end %>
Paul Graham, the founder of startup incubator YCombinator, put it best when he described LISP as his old company's secret weapon. Think about, if you use all of the same tools as everyone else, how do you expect to achieve better results?
Clojure is a LISP language created in 2009 by Rich Hickey. Built initially on the Java Virtual Machine (JVM) it has since been ported to run on Microsoft and JavaScript. (That's right the browser). Clojure gives you all of the power and stability of the JVM without the clunkiness of Java.
Most developers have never worked with a functional language before and many who have found the use of parenthesis instead of braces intimidating. Don't worry. Once it is broken down to you, I think you will see the beauty of it.
In this fast and fun session, we will build an app using Clojure. We will enhance it, test it and explore why functional is a better programming model than OOPs. We will even explore why such programs are better at multitasking than object oriented ones.
Ruby was created in 1993 by Yukihiro Matsumoto to balance functional and imperative programming. It is a dynamic, reflective object-oriented scripting language that is simple, powerful, and flexible. Key features include being highly readable, having a interactive shell, embracing object-oriented programming, and having a large ecosystem including Ruby on Rails.
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/.
#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 and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
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.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
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
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.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Quantum Computing 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.
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
3. • Programming Language
• 1995 – First public release
• Many Implementations
• MRI 1.8 – Matz’s Ruby
Intepreter
• YARV 1.9
• JRuby
• IronRuby
• Rubinius
• MacRuby
• MagLev
4. “I wanted a scripting language that was more powerful
than Perl, and more object-oriented than Python.That's
why I decided to design my own language”
40. Ruby’s Block
• Passing a block as argument
• Method “yield” or “call” the block
• May passing a object as argument
• Result from the block goes back to the
method
42. 7. We love duck
http://www.flickr.com/photos/ymorimo/3975152607/
43. Duck typing
• If it quacks like a duck, it’s a duck!
• Check for object’s property, not interface
47. Duck Punching
(Monkey patch)
• Objects and class are open
• Add method to object even at Runtime!
• Not really recommend, less maintainability,
might break some stuff
• But it’s awesome
51. Testing ...
• Ensure everything still works after you
make change to something else
• Save you ass from client’s call at 3AM
• Test driven development
• Write test – watch it fails – write just
enough code to make it pass – refactor