A presentation I gave at the London Ruby User Group (LRUG) in December 2007 about the changes in the ruby programming language in the soon to be released 1.9 version.
Note that Ruby 1.9 was still in development at the time I wrote this talk, so it's possible the stuff I say in it is completely inaccurate with respect to any currently released version of Ruby 1.9.
At a previous JRubyConf, we talked about Thnad, a fictional programming language. Thnad served as a vehicle to explore the joy of building a compiler using JRuby, BiteScript, Parslet, and other tools. Now, Thnad is back with a second runtime: Rubinius. Come see the Rubinius environment through JRuby eyes. Together, we'll see how to grapple with multiple instruction sets and juggle contexts without going cross-eyed.
JRuby, Not Just For Hard-Headed Pragmatists AnymoreErin Dees
JRuby bills itself as the pragmatic Ruby, the go-to implementation when you need to fit into the Java universe or support a ton of platforms.
Who knew it was also a tool for having fun exploring the realms of computer science?
This talk discusses ways to keep work playful (and as a side effect do better work), including:
* Dealing with crusty data formats and protocols in a lighthearted way
* Scripting other people’s software (whether they know it or not)
* Sharing your code with co-workers without annoying them
* Deploying your programs to honest-to-goodness paying customers
“What should I work on next?” Code metrics can help you answer that question. They can single out sections of your code that are likely to contain bugs. They can help you get a toehold on a legacy system that’s poorly covered by tests.
My slides from "Inside PHP", a talk about how to change the syntax of the PHP programming language.
Modified PHP 5.4.4 source code (with the "until" keyword added during this presentation) is available here:
http://github.com/thomaslee/oscon2012-inside-php
At a previous JRubyConf, we talked about Thnad, a fictional programming language. Thnad served as a vehicle to explore the joy of building a compiler using JRuby, BiteScript, Parslet, and other tools. Now, Thnad is back with a second runtime: Rubinius. Come see the Rubinius environment through JRuby eyes. Together, we'll see how to grapple with multiple instruction sets and juggle contexts without going cross-eyed.
JRuby, Not Just For Hard-Headed Pragmatists AnymoreErin Dees
JRuby bills itself as the pragmatic Ruby, the go-to implementation when you need to fit into the Java universe or support a ton of platforms.
Who knew it was also a tool for having fun exploring the realms of computer science?
This talk discusses ways to keep work playful (and as a side effect do better work), including:
* Dealing with crusty data formats and protocols in a lighthearted way
* Scripting other people’s software (whether they know it or not)
* Sharing your code with co-workers without annoying them
* Deploying your programs to honest-to-goodness paying customers
“What should I work on next?” Code metrics can help you answer that question. They can single out sections of your code that are likely to contain bugs. They can help you get a toehold on a legacy system that’s poorly covered by tests.
My slides from "Inside PHP", a talk about how to change the syntax of the PHP programming language.
Modified PHP 5.4.4 source code (with the "until" keyword added during this presentation) is available here:
http://github.com/thomaslee/oscon2012-inside-php
My slides from "Inside Python", a talk about how to change the syntax of the Python programming language.
Modified Python 3.2 source code (with the "unless" keyword added during this presentation) is available here:
http://github.com/thomaslee/oscon2012-inside-python
(4) cpp automatic arrays_pointers_c-stringsNico Ludwig
Check out these exercises: http://de.slideshare.net/nicolayludwig/4-cpp-automatic-arrayspointerscstringsexercises-38510502
- Pointers: Call by Value versus Call by Reference
- Automatic Arrays
- Arrays and Pointer Decay
- Pointers to Pointers
- C-strings as Arrays and their Memory Representation
- Basic C-string Functions
Evaluation of Performance Characteristics of Polynomial based and Lattice bas...IDES Editor
In order to achieve the security for the e-business
application, generally, the organizations follow the
cryptographic methods. The two widely accepted and used
cryptographic methods are symmetric and asymmetric. The
DES ideally belongs to the category of symmetric key
cryptosystem and RSA, NTRU[3] belongs to the category of
asymmetric key cryptosystem. NTRU (Nth degree truncated
polynomial ring units) is a collection of mathematical
algorithms based on manipulating lists of very small integers.
NTRU is the first secure public key cryptosystem not based on
factorization or discrete logarithmic problems. The keys are
generated by having small potent polynomials from the ring
of truncated polynomials. NTRU can also be implemented
using matrices instead of polynomials [4, 5]. We proceed with
the encryption and decryption of the plain text required by
implementing the algorithms of both the approaches of NTRU
cryptosystems. It is already shown that the matrix approach is
algorithmically better than the polynomial approach of NTRU
cryptosystem [5]. We propose and test both the methods for
variable sized text files, using polynomial and matrix
cryptosystems. This paper presents the comparative study of
polynomial NTRU and matrix NTRU algorithms for variable
sized text files as input. The final results were observed using
Mathematica5.1, analyzed and compared so as to identify which
method is appropriate to the business needs.
A talk I gave at the June 2010 meeting of the London Ruby User Group. It's about the first bit of ruby I ever wrote, way back in 2003. A little bit of personal history, a little bit of ruby history, a whole lot of terrible code for you to learn from.
A talk I gave at the BOF session for the Erlang Exchange on the 26th June 2008. The talk was about how LRUG (the London Ruby User Group) manages it's community and why that might be of interest to the Erlang community.
My slides from "Inside Python", a talk about how to change the syntax of the Python programming language.
Modified Python 3.2 source code (with the "unless" keyword added during this presentation) is available here:
http://github.com/thomaslee/oscon2012-inside-python
(4) cpp automatic arrays_pointers_c-stringsNico Ludwig
Check out these exercises: http://de.slideshare.net/nicolayludwig/4-cpp-automatic-arrayspointerscstringsexercises-38510502
- Pointers: Call by Value versus Call by Reference
- Automatic Arrays
- Arrays and Pointer Decay
- Pointers to Pointers
- C-strings as Arrays and their Memory Representation
- Basic C-string Functions
Evaluation of Performance Characteristics of Polynomial based and Lattice bas...IDES Editor
In order to achieve the security for the e-business
application, generally, the organizations follow the
cryptographic methods. The two widely accepted and used
cryptographic methods are symmetric and asymmetric. The
DES ideally belongs to the category of symmetric key
cryptosystem and RSA, NTRU[3] belongs to the category of
asymmetric key cryptosystem. NTRU (Nth degree truncated
polynomial ring units) is a collection of mathematical
algorithms based on manipulating lists of very small integers.
NTRU is the first secure public key cryptosystem not based on
factorization or discrete logarithmic problems. The keys are
generated by having small potent polynomials from the ring
of truncated polynomials. NTRU can also be implemented
using matrices instead of polynomials [4, 5]. We proceed with
the encryption and decryption of the plain text required by
implementing the algorithms of both the approaches of NTRU
cryptosystems. It is already shown that the matrix approach is
algorithmically better than the polynomial approach of NTRU
cryptosystem [5]. We propose and test both the methods for
variable sized text files, using polynomial and matrix
cryptosystems. This paper presents the comparative study of
polynomial NTRU and matrix NTRU algorithms for variable
sized text files as input. The final results were observed using
Mathematica5.1, analyzed and compared so as to identify which
method is appropriate to the business needs.
A talk I gave at the June 2010 meeting of the London Ruby User Group. It's about the first bit of ruby I ever wrote, way back in 2003. A little bit of personal history, a little bit of ruby history, a whole lot of terrible code for you to learn from.
A talk I gave at the BOF session for the Erlang Exchange on the 26th June 2008. The talk was about how LRUG (the London Ruby User Group) manages it's community and why that might be of interest to the Erlang community.
Training course for occupational hygienists and consultants in occupational hygiene. Asbestos, MMMF, aramids and other fibres identification, health effects. Sampling of airborne fibres, containment and removal in buildings. Occupational exposure to fibres and public health risk of asbestos and other fibres.
ParseTree permite formas bastante avançadas de reflexão sobre código Ruby.
Com seu uso, podemos até mudar completamente a forma como o código Ruby é interpretado!
A palestra passa por alguns usos divertidos e interessantes, desde análise estática de
código, até técnicas para construção de Domain Specific Languages.
Talk @ RubyConfIndia 2012. Ruby is a pure object oriented and really a beautiful language to learn and practice.
But most of us do not bother to know or care about what happens behind the scene when we write some ruby code. Say creating a simple Array, Hash, class, module or any object. How does this map internally to C code ?
Ruby interpreter is implemented in C and I will talk about the Interpreter API that we as ruby developers
should be aware of. The main purpose of the presentation is to understand the efforts and complexity behind
the simplicity offered. I would also like to touch upon the difference in implementation of some core data structures
in different ruby versions. Having known a part of C language implementation behind Ruby, I would also like to throw some light upon when and why would we need to write some ruby extensions in C.
Vibrant Technologies is headquarted in Mumbai,India.We are the best Perl Scripting training provider in Navi Mumbai who provides Live Projects to students.We provide Corporate Training also.We are Best Perl Scripting classes in Mumbai according to our students and corporators
Vibrant Technologies is headquarted in Mumbai,India.We are the best Perl Scripting training provider in Navi Mumbai who provides Live Projects to students.We provide Corporate Training also.We are Best Perl Scripting classes in Mumbai according to our students and corporators
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
2. What is it?
• The last odd-numbered release before
Ruby 2.0
• “Wild &RubyConf Ideas”
Weird
- Matz, 2005
• More open development
• http://www.rcrchive.net/
7. YARV
3 Things It Means To Us
1. New developer
• not matz-bound
2. Better Performance
• in places
3. Native threads
• vs. green threads
8. Other Changes
Module#*_instance_methods
Enumerable#first(n) Limit input Enumerable#cycle Method#name
String#bytes Symbol#=== matches strings Removed Exception#to_str Array.try_convert Module#class_variable_defined?
$SAFE and bound methods String no longer an Enumerable String#upto Enumerable#inject (#reduce) without a block Hash#to_s is equivalent to Hash#inspect
Method#owner Non-blocking IO Enumerator#rewind String#partition, #rpartition Arity of blocks without arguments
Struct#inspect Enumerable#group_by Process.daemon IO#lines String#lines
Array#[m,n] = nil places nil in the array GC.stress, GC.stress= Range#include? Fiber: coroutines/micro-threads Array#nitems
Hash#_compare_by_identity, #compare_by_identity? Object#=~ Enumerable methods called without a block Method#receiver Enumerable#count
Mandatory arguments after optional arguments allowed String#encoding #to_path in File.<blah> Module#const_defined?, #const_get Dir.exist?
New File and Dir operations ?c semantics Array#to_s is equivalent to Array#inspect Method used for splat arguments: #to_splat Regexp#=== matches symbols
#class_variable_{set,get} Block argument to Array#index, Array#rindex String#ord #instance_exec Zero-length symbols allowed
IO.try_convert Semantics for Hash#each and Hash#each_pair Deprecated: StringScanner Proc#yield Deprecated: Kernel#getc
New literal hash syntax Block local variables Binding#eval Range#min, Range#max send doesn't always call private methods anymore
Deprecated: Object#type Numeric#upto, #downto, #times, #step BasicObject Process.exec IO#bytes
Enumerable#reduce proc is now a synonym of Proc.new Integer#pred Deprecated: Kernel.to_a Multiple splats allowed
Kernel#require Enumerator#with_index StringIO#readpartial Dir.[], Dir.glob Enumerable#each_with_index
Passing blocks to #[] Module#attr is an alias of attr_reader News semantics for block arguments String.try_convert Symbols: restriction on literal symbols
Regexp.try_convert Deprecated: File.exists? Deprecated: Hash#index Method#hash, Proc#hash IO#ungetc, StringIO#ungetc
IO#getc Block arguments are always local Deprecated: Symbol#to_int Extra subclassing check when binding UnboundMethods Equality of exceptions
Deprecated: Removed Array and Hash #indices, #indexes Enumerable#find_index Symbol#to_proc Integer#odd?, #even? .() and calling Procs without #call/#[]
Deprecated:VERSION and friends Symbol#intern Timezone information preserved on Marshal.dump/load Block arguments Kernel#define_singleton_method
Process.setrlimit Hash#select Kernel#open Array#pop, Array#shift Array#product
IO#initialize now accepts an IO argument String#force_encoding Symbol methods similar to those in String Kernel#singleton_methods, Kernel#methods Regexp#match, String#match
Math#log and Math#log2 Array#combination String#unpack with a block defined? and local variables Newlines allowed before ternary colon
String#hash Numeric#scalar?, Complex#scalar?
quot;One-char-widequot; semantics for String#[] and String#[]= Enumerator#each #module_exec
String#each_char Enumerable#min_by, #max_by Numeric#fdiv SystemStackError Enumerable#drop
Range#cover? Arguments to #[] Integer(nil) raises TypeError Enumerable#minmax, #minmax_by Symbol#encoding
Deprecated: ENV.index Proc#lambda? String#start_with?, #end_with? String#clear Numeric#div
__method__ and __callee__ Object#tap Hash.try_convert Array#permutation Enumerable#zip
New format in Time#to_s String has encoding-awareness Enumerable#take NameError Class variables are not inherited
IO & StringIO #getbyte, #readbyte Class of singleton classes Kernel#instance_variable_defined? New syntax for lambdas printf-style formatted strings (%)
18. String
• Encoding aware
• methods are char, not byte, based now
• open(‘blah.txt’, ‘r:utf-8’)
• # -*- coding: utf-8 -*-
• Bye Bye: $KCODE and jcode
• No longer an Enumerable
19. Enumerable
• Enumerable::Enumerator part of
core
• Enumerable methods without a block
• [1,2,3].map.with_index {|item,
idx| ...}
• #inject without block
• [1,2,3].inject(:+) #=> 6
20. Symbol
• Symbol#to_proc
• [”matz”, “koichi”].map(&:upcase)
#=> [“MATZ”, “KOICHI”]
• Treated more like Strings
• #encoding, #empty?, #upcase,
#[], #match, etc...
• #===
21. IO
• Non blocking IO
• Limit input in read/get methods
• Oddness: doesn’t appear to be encoding
aware
22. Misc.
• BasicObject at top of class hierarchy
• Class variables (@@woo) not inherited
• proc is now Proc.new instead of
lambda
• Proc#yield a method for yield keyword
• send shouldn’t invoke private methods
24. How do I get it?
• Wait till Christmas?
• http://svn.ruby-lang.org/repos/ruby/trunk
• Tiger users - upgrade your bison
• Windows binaries available