Rendering Art on the Web - A Performance compendiumRaimon Ràfols
This session starts by showing how to build something very simple with the HTML5 Canvas API, taking into account some performance considerations. Then the presentation adds more rendering complexity while keeping an eye on how it is impacting performance. It also evaluates different alternatives from a performance point of view and tries out a few optimizations. Having the right level of optimization makes it possible to add more complexity or render what seemed impossible. On the other hand, not optimizing properly will definitely impact performance and reduce quality, and for mobile users, battery life will suffer more than it needs to. As somebody said before, “With great power comes great responsibility.”
Rendering Art on the Web - A Performance compendiumRaimon Ràfols
This session starts by showing how to build something very simple with the HTML5 Canvas API, taking into account some performance considerations. Then the presentation adds more rendering complexity while keeping an eye on how it is impacting performance. It also evaluates different alternatives from a performance point of view and tries out a few optimizations. Having the right level of optimization makes it possible to add more complexity or render what seemed impossible. On the other hand, not optimizing properly will definitely impact performance and reduce quality, and for mobile users, battery life will suffer more than it needs to. As somebody said before, “With great power comes great responsibility.”
Technical operations is plagued with an unhealthy infatuation of typically untested, imperative code with a high reliance on shared mutable state using dynamically typed languages such as Ruby, Python, Bash, and - ugh - remember Perl? :) In an age where building reliable infrastructure to elastically scale applications and services are paramount to business success, we need to start rethinking the infrastructure engineer’s toolkit and guiding principles. This talk will take a look at applying various functional techniques to building and automating infrastructure. From functional package management and congruent configuration to declarative cloud provisioning we’ll see just how practical these techniques typically used in functional programming for applications can be used to help build more robust and predictable infrastructures. While specific code examples will be given, the emphasis of the talk will be on guiding principles and functional design.
Explores how to write a tic-tac-toe API that meets some interesting static typing constraints. Specifically, programs using the API may fail to compile, depending on the state of play in the game, such as trying to call move() with an already completed game board. The real theme of the presentation is not so much solving the tic-tac-toe problem but, rather, pushing static typing to its limits (and some might argue beyond its useful limits—you will have to judge for yourself).
The fundamentals and advance application of Node will be covered. We will explore the design choices that make Node.js unique, how this changes the way applications are built and how systems of applications work most effectively in this model. You will learn how to create modular code that’s robust, expressive and clear. Understand when to use callbacks, event emitters and streams.
He will start you at the beginning and cover prerequisites; setting up your development environment first. Afterward, you will use npm to install react-native-cli. The CLI is our go to tool. We use it to create and deploy our app.
Next, you will explore the code. React Native will look familiar to all React developers since it is React. The main difference between React on the browser and a mobile device is the lack of a DOM. We take a look a many of the different UI components that are available.
With React Native you have access to all of the devices hardware features like cameras, GPS, fingerprint reader and more. So we'll show some JavaScript code samples demonstrating it. We will wrap up the evening by deploying our app to both iOS and Android devices and with tips on getting ready for both devices stores.
I love Ruby! But as in any relationship, to love means that you (often) have to accept the “dark side” too! Ruby is human in nature and has a lot of gotchas, tricks, wierdness and sometimes scary features that I plan to highlight. This talk aims to provide the “Ah-ha!” moments when working in Ruby.
This talk is for beginners and experts alike – in fact, I tag slides to mark their level and beginners can choose to tune out of the heavy stuff!
How is Rust able to enforce safety in your code?
The simple answer to this question is: the borrow checker.
This presentation is an overview on the language concepts that helps the developer to allocate and deallocate memory in an efficient way just like in C/C++, and also safe.
Rust learnt from C/C++ design patterns and included those in the language, adding the concept of Ownership and Borrowing.
This is part 1 of fuzzing, an introduction to the subject. This presentation covers some of theory and thought process behind the subject, as well as an introduction to environment variable fuzzing and file format fuzzing.
A presentation of Apache TinkerPop's Gremlin language with running examples over the MovieLens dataset. Presented August 19, 2015 at NoSQL NOW in San Jose, California.
OSCON Presentation: Developing High Performance Websites and Modern Apps with...Doris Chen
Creating high performance sites and apps is crucial for every developer. In this session, we will explore the best practices and performance tricks, including startup time, UI responsiveness, and Memory efficiency to make your apps running faster and fluid. Come learn the tips, tricks, and tools for maximizing the performance of your sites and apps with JavaScript and HTML5.
Teach your kids how to program with Python and the Raspberry PiJuan Gomez
RaspberryPis are the new frontier in enabling kids (and curious adults) to get access to an affordable and easy-to-program platform to build cool things. Over a million of these nifty little devices have been sold in less than a year and part of their popularity has been due to how easy it is to start programming on them.
In this session you'll learn how to get started with the Raspberry PI, initial set-up, configuration and some tips and tricks. Then we'll have a brief introduction to basic Python and we'll write a few simple programs that run on the RaspberryPI. The last section of the session will be dedicated to PyGame, we'll learn about surfaces, events, inputs, sprites, etc and demonstrate how to build very simple games that are as much fun for kids to write, than to play!
Technical operations is plagued with an unhealthy infatuation of typically untested, imperative code with a high reliance on shared mutable state using dynamically typed languages such as Ruby, Python, Bash, and - ugh - remember Perl? :) In an age where building reliable infrastructure to elastically scale applications and services are paramount to business success, we need to start rethinking the infrastructure engineer’s toolkit and guiding principles. This talk will take a look at applying various functional techniques to building and automating infrastructure. From functional package management and congruent configuration to declarative cloud provisioning we’ll see just how practical these techniques typically used in functional programming for applications can be used to help build more robust and predictable infrastructures. While specific code examples will be given, the emphasis of the talk will be on guiding principles and functional design.
Explores how to write a tic-tac-toe API that meets some interesting static typing constraints. Specifically, programs using the API may fail to compile, depending on the state of play in the game, such as trying to call move() with an already completed game board. The real theme of the presentation is not so much solving the tic-tac-toe problem but, rather, pushing static typing to its limits (and some might argue beyond its useful limits—you will have to judge for yourself).
The fundamentals and advance application of Node will be covered. We will explore the design choices that make Node.js unique, how this changes the way applications are built and how systems of applications work most effectively in this model. You will learn how to create modular code that’s robust, expressive and clear. Understand when to use callbacks, event emitters and streams.
He will start you at the beginning and cover prerequisites; setting up your development environment first. Afterward, you will use npm to install react-native-cli. The CLI is our go to tool. We use it to create and deploy our app.
Next, you will explore the code. React Native will look familiar to all React developers since it is React. The main difference between React on the browser and a mobile device is the lack of a DOM. We take a look a many of the different UI components that are available.
With React Native you have access to all of the devices hardware features like cameras, GPS, fingerprint reader and more. So we'll show some JavaScript code samples demonstrating it. We will wrap up the evening by deploying our app to both iOS and Android devices and with tips on getting ready for both devices stores.
I love Ruby! But as in any relationship, to love means that you (often) have to accept the “dark side” too! Ruby is human in nature and has a lot of gotchas, tricks, wierdness and sometimes scary features that I plan to highlight. This talk aims to provide the “Ah-ha!” moments when working in Ruby.
This talk is for beginners and experts alike – in fact, I tag slides to mark their level and beginners can choose to tune out of the heavy stuff!
How is Rust able to enforce safety in your code?
The simple answer to this question is: the borrow checker.
This presentation is an overview on the language concepts that helps the developer to allocate and deallocate memory in an efficient way just like in C/C++, and also safe.
Rust learnt from C/C++ design patterns and included those in the language, adding the concept of Ownership and Borrowing.
This is part 1 of fuzzing, an introduction to the subject. This presentation covers some of theory and thought process behind the subject, as well as an introduction to environment variable fuzzing and file format fuzzing.
A presentation of Apache TinkerPop's Gremlin language with running examples over the MovieLens dataset. Presented August 19, 2015 at NoSQL NOW in San Jose, California.
OSCON Presentation: Developing High Performance Websites and Modern Apps with...Doris Chen
Creating high performance sites and apps is crucial for every developer. In this session, we will explore the best practices and performance tricks, including startup time, UI responsiveness, and Memory efficiency to make your apps running faster and fluid. Come learn the tips, tricks, and tools for maximizing the performance of your sites and apps with JavaScript and HTML5.
Teach your kids how to program with Python and the Raspberry PiJuan Gomez
RaspberryPis are the new frontier in enabling kids (and curious adults) to get access to an affordable and easy-to-program platform to build cool things. Over a million of these nifty little devices have been sold in less than a year and part of their popularity has been due to how easy it is to start programming on them.
In this session you'll learn how to get started with the Raspberry PI, initial set-up, configuration and some tips and tricks. Then we'll have a brief introduction to basic Python and we'll write a few simple programs that run on the RaspberryPI. The last section of the session will be dedicated to PyGame, we'll learn about surfaces, events, inputs, sprites, etc and demonstrate how to build very simple games that are as much fun for kids to write, than to play!
At Digidev, we are working to be the leader in interactive streaming platforms of choice by smart device users worldwide.
Our goal is to become the ultimate distribution service of entertainment content. The Digidev application will offer the next generation television highway for users to discover and engage in a variety of content. While also providing a fresh and
innovative approach towards advertainment with vast revenue opportunities. Designed and developed by Joe Q. Bretz
_7 OTT App Builders to Support the Development of Your Video Applications_.pdfMega P
Due to their ability to produce engaging content more quickly, over-the-top (OTT) app builders have made the process of creating video applications more accessible. The invitation to explore these platforms emphasizes how over-the-top (OTT) applications hold the potential to transform digital entertainment.
Orpah Winfrey Dwayne Johnson: Titans of Influence and Inspirationgreendigital
Introduction
In the realm of entertainment, few names resonate as Orpah Winfrey Dwayne Johnson. Both figures have carved unique paths in the industry. achieving unparalleled success and becoming iconic symbols of perseverance, resilience, and inspiration. This article delves into the lives, careers. and enduring legacies of Orpah Winfrey Dwayne Johnson. exploring how their journeys intersect and what we can learn from their remarkable stories.
Follow us on: Pinterest
Early Life and Backgrounds
Orpah Winfrey: From Humble Beginnings to Media Mogul
Orpah Winfrey, often known as Oprah due to a misspelling on her birth certificate. was born on January 29, 1954, in Kosciusko, Mississippi. Raised in poverty by her grandmother, Winfrey's early life was marked by hardship and adversity. Despite these challenges. she demonstrated a keen intellect and an early talent for public speaking.
Winfrey's journey to success began with a scholarship to Tennessee State University. where she studied communication. Her first job in media was as a co-anchor for the local evening news in Nashville. This role paved the way for her eventual transition to talk show hosting. where she found her true calling.
Dwayne Johnson: From Wrestling Royalty to Hollywood Superstar
Dwayne Johnson, also known by his ring name "The Rock," was born on May 2, 1972, in Hayward, California. He comes from a family of professional wrestlers, with both his father, Rocky Johnson. and his grandfather, Peter Maivia, being notable figures in the wrestling world. Johnson's early life was spent moving between New Zealand and the United States. experiencing a variety of cultural influences.
Before entering the world of professional wrestling. Johnson had aspirations of becoming a professional football player. He played college football at the University of Miami. where he was part of a national championship team. But, injuries curtailed his football career, leading him to follow in his family's footsteps and enter the wrestling ring.
Career Milestones
Orpah Winfrey: The Queen of All Media
Winfrey's career breakthrough came in 1986 when she launched "The Oprah Winfrey Show." The show became a cultural phenomenon. drawing millions of viewers daily and earning many awards. Winfrey's empathetic and candid interviewing style resonated with audiences. helping her tackle diverse and often challenging topics.
Beyond her talk show, Winfrey expanded her empire to include the creation of Harpo Productions. a multimedia production company. She also launched "O, The Oprah Magazine" and OWN: Oprah Winfrey Network, further solidifying her status as a media mogul.
Dwayne Johnson: From The Ring to The Big Screen
Dwayne Johnson's wrestling career took off in the late 1990s. when he became one of the most charismatic and popular figures in WWE. His larger-than-life persona and catchphrases endeared him to fans. making him a household name. But, Johnson had ambitions beyond the wrestling ring.
In the early 20
Tom Selleck Net Worth: A Comprehensive Analysisgreendigital
Over several decades, Tom Selleck, a name synonymous with charisma. From his iconic role as Thomas Magnum in the television series "Magnum, P.I." to his enduring presence in "Blue Bloods," Selleck has captivated audiences with his versatility and charm. As a result, "Tom Selleck net worth" has become a topic of great interest among fans. and financial enthusiasts alike. This article delves deep into Tom Selleck's wealth, exploring his career, assets, endorsements. and business ventures that contribute to his impressive economic standing.
Follow us on: Pinterest
Early Life and Career Beginnings
The Foundation of Tom Selleck's Wealth
Born on January 29, 1945, in Detroit, Michigan, Tom Selleck grew up in Sherman Oaks, California. His journey towards building a large net worth began with humble origins. , Selleck pursued a business administration degree at the University of Southern California (USC) on a basketball scholarship. But, his interest shifted towards acting. leading him to study at the Hills Playhouse under Milton Katselas.
Minor roles in television and films marked Selleck's early career. He appeared in commercials and took on small parts in T.V. series such as "The Dating Game" and "Lancer." These initial steps, although modest. laid the groundwork for his future success and the growth of Tom Selleck net worth. Breakthrough with "Magnum, P.I."
The Role that Defined Tom Selleck's Career
Tom Selleck's breakthrough came with the role of Thomas Magnum in the CBS television series "Magnum, P.I." (1980-1988). This role made him a household name and boosted his net worth. The series' popularity resulted in Selleck earning large salaries. leading to financial stability and increased recognition in Hollywood.
"Magnum P.I." garnered high ratings and critical acclaim during its run. Selleck's portrayal of the charming and resourceful private investigator resonated with audiences. making him one of the most beloved television actors of the 1980s. The success of "Magnum P.I." played a pivotal role in shaping Tom Selleck net worth, establishing him as a major star.
Film Career and Diversification
Expanding Tom Selleck's Financial Portfolio
While "Magnum, P.I." was a cornerstone of Selleck's career, he did not limit himself to television. He ventured into films, further enhancing Tom Selleck net worth. His filmography includes notable movies such as "Three Men and a Baby" (1987). which became the highest-grossing film of the year, and its sequel, "Three Men and a Little Lady" (1990). These box office successes contributed to his wealth.
Selleck's versatility allowed him to transition between genres. from comedies like "Mr. Baseball" (1992) to westerns such as "Quigley Down Under" (1990). This diversification showcased his acting range. and provided many income streams, reinforcing Tom Selleck net worth.
Television Resurgence with "Blue Bloods"
Sustaining Wealth through Consistent Success
In 2010, Tom Selleck began starring as Frank Reagan i
Barbie Movie Review - The Astras.pdffffftheastras43
Barbie Movie Review has gotten brilliant surveys for its fun and creative story. Coordinated by Greta Gerwig, it stars Margot Robbie as Barbie and Ryan Gosling as Insight. Critics adore its perky humor, dynamic visuals, and intelligent take on the notorious doll's world. It's lauded for being engaging for both kids and grown-ups. The Astras profoundly prescribes observing the Barbie Review for a delightful and colorful cinematic involvement.https://theastras.com/hca-member-gradebooks/hca-gradebook-barbie/
Young Tom Selleck: A Journey Through His Early Years and Rise to Stardomgreendigital
Introduction
When one thinks of Hollywood legends, Tom Selleck is a name that comes to mind. Known for his charming smile, rugged good looks. and the iconic mustache that has become synonymous with his persona. Tom Selleck has had a prolific career spanning decades. But, the journey of young Tom Selleck, from his early years to becoming a household name. is a story filled with determination, talent, and a touch of luck. This article delves into young Tom Selleck's life, background, early struggles. and pivotal moments that led to his rise in Hollywood.
Follow us on: Pinterest
Early Life and Background
Family Roots and Childhood
Thomas William Selleck was born in Detroit, Michigan, on January 29, 1945. He was the second of four children in a close-knit family. His father, Robert Dean Selleck, was a real estate investor and executive. while his mother, Martha Selleck, was a homemaker. The Selleck family relocated to Sherman Oaks, California. when Tom was a child, setting the stage for his future in the entertainment industry.
Education and Early Interests
Growing up, young Tom Selleck was an active and athletic child. He attended Grant High School in Van Nuys, California. where he excelled in sports, particularly basketball. His tall and athletic build made him a standout player, and he earned a basketball scholarship to the University of Southern California (U.S.C.). While at U.S.C., Selleck studied business administration. but his interests shifted toward acting.
Discovery of Acting Passion
Tom Selleck's journey into acting was serendipitous. During his time at U.S.C., a drama coach encouraged him to try acting. This nudge led him to join the Hills Playhouse, where he began honing his craft. Transitioning from an aspiring athlete to an actor took time. but young Tom Selleck became drawn to the performance world.
Early Career Struggles
Breaking Into the Industry
The path to stardom was a challenging one for young Tom Selleck. Like many aspiring actors, he faced many rejections and struggled to find steady work. A series of minor roles and guest appearances on television shows marked his early career. In 1965, he debuted on the syndicated show "The Dating Game." which gave him some exposure but did not lead to immediate success.
The Commercial Breakthrough
During the late 1960s and early 1970s, Selleck began appearing in television commercials. His rugged good looks and charismatic presence made him a popular brand choice. He starred in advertisements for Pepsi-Cola, Revlon, and Close-Up toothpaste. These commercials provided financial stability and helped him gain visibility in the industry.
Struggling Actor in Hollywood
Despite his success in commercials. breaking into large acting roles remained a challenge for young Tom Selleck. He auditioned and took on small parts in T.V. shows and movies. Some of his early television appearances included roles in popular series like Lancer, The F.B.I., and Bracken's World. But, it would take a
Experience the thrill of Progressive Puzzle Adventures, like Scavenger Hunt Games and Escape Room Activities combined Solve Treasure Hunt Puzzles online.
Matt Rife Cancels Shows Due to Health Concerns, Reschedules Tour Dates.pdfAzura Everhart
Matt Rife's comedy tour took an unexpected turn. He had to cancel his Bloomington show due to a last-minute medical emergency. Fans in Chicago will also have to wait a bit longer for their laughs, as his shows there are postponed. Rife apologized and assured fans he'd be back on stage soon.
https://www.theurbancrews.com/celeb/matt-rife-cancels-bloomington-show/
Meet Dinah Mattingly – Larry Bird’s Partner in Life and Loveget joys
Get an intimate look at Dinah Mattingly’s life alongside NBA icon Larry Bird. From their humble beginnings to their life today, discover the love and partnership that have defined their relationship.
Hollywood Actress - The 250 hottest galleryZsolt Nemeth
Hollywood Actress amazon album eminent worldwide media, female-singer, actresses, alhletina-woman, 250 collection.
Highest and photoreal-print exclusive testament PC collage.
Focused television virtuality crime, novel.
The sheer afterlife of the work is activism-like hollywood-actresses point com.
173 Illustrate, 250 gallery, 154 blog, 120 TV serie logo, 17 TV president logo, 183 active hyperlink.
HD AI face enhancement 384 page plus Bowker ISBN, Congress LLCL or US Copyright.
Modern Radio Frequency Access Control Systems: The Key to Efficiency and SafetyAITIX LLC
Today's fast-paced environment worries companies of all sizes about efficiency and security. Businesses are constantly looking for new and better solutions to solve their problems, whether it's data security or facility access. RFID for access control technologies have revolutionized this.
1. TRICK 2018 FINAL
Results
TRICK judges:
mame, eto, shinh, yhara, matz,
leonid, eban
Transcendental
Ruby
Imbroglio
Contest
for RubyKaigi
2. Transcendental
Ruby
Imbroglio
Contest
for RubyKaigi
What’s “TRICK”
• A contest for “esoteric” Ruby programming
– The most "strange" Ruby program wins
– Ruby version of IOCCC (International Obfuscated C Code Contest)
Transcendental /ˌtransɛnˈdɛnt(ə)l/
“relating to a spiritual realm” *
「霊的領域に関する」
「世俗を超越した」「超絶技巧」
Imbroglio /ɪmˈbrəʊlɪəʊ/
“an extremely confused, complicated, or
embarrassing situation” *
「極めて混乱した、恥ずかしい事態」
* Oxford Dictionaries
3. The story so far
• TRICK 2013: “Best pangram” by @kinaba
• TRICK 2015: “Best piphilology” by @kinaba
• TRICK 2018 is the 3rd and final(!) contest
!@THEqQUICKbBROWNfFXjJMPSvVLAZYDGgkyz&[%r{¥"}mosx,
4>6]|?'while(putc 3_0-~$.+=9/2^5;)<18*7and:`#
This prints each printable ASCII character exactly once.
This contains each printable ASCII character exactly once.
big , temp = Array 100000000 ** 0x04e2
3 1 4 1 5. 9 2 6
…
4. This talk
• We held TRICK 2018 FINAL (2018/01/01 – 03/31)
• We announce the winners of TRICK 2018
6. Judges
Yusuke Endoh (@mametter)
Koichiro Eto (@eto)
Shinichiro Hamaji (@shinh)
Yutaka Hara (@yhara)
Yukihiro Matsumoto (@yukihiro_matz)
Sun Park (@sunleonid)
Hirofumi Watanabe (@eban)
7. Judges
eto
– Media Artist.
– Chairman at NicoNicoGakkai Beta.
shinh
– The admin of anarchy golf.
– IOCCC winner.
yhara – The author of Japanese esolang book.
matz – The creator of Ruby.
leonid – The 1st super Ruby golfer.
eban – The 2nd super Ruby golfer.
– Full-time Ruby committer at Cookpad.
– The world’s No.1 IOCCC player.mame
8. Submission statistics
• Thank you for all the submitters!
(I’m using 3D pie charts here to obfuscate the precise number of submissions.)
JP
US
DE
PL BE
9. Honorable mentions
• Best monkey - Tomoya Ishida (tompng)
• Best abuse of lambda - Shinichiro Hamaji
• Best abuse of meta - Yuki Yugui Sonoda
• Most solvable - Don Yang
• Best layout - Yutaka HARA
• Best abuse of regexp - Benoit Daloze (eregon)
• Most tolerant - Shuichi Tamayose
• Best applause - Colin Fulton
– Enjoy these entries yourself
10. CAUTION
• From here, this talk has a lot of spoilers!
– Exit now if you want to enjoy analyzing the winners
• The winning entries will be published at:
No k!
http://github.com/tric /trick2018/
12. Winner »
eban eto mame shinh yhara leonid matz AVG.
“Most warned”
『最も警告されたで賞』
kinaba
(JP)
13th & yhara award
N/A 5 7 3 7 4 N/A 5.20
13. kinaba.rb
• A ten-line program
• It prints "TRICK2018"
13th & yhara award
“Most warned”
def STDOUT.write (s); syswrite s
end if def $>.write; end
s = Array.new(){}.map{|s|}
s << (-"Trick").grapheme_clusters{} [0] # frozen_string_literal: Trick
s << ("Ruby".unpack *"ao") [0]
s << "#{10**2018 + 1e2018}" [0]
s << "#{1>2>3 rescue $!.class.trust.class}"[0]
s << "#{true; Kernel.public_class_method}" [0]
s << ($ruby.object_id.coerce +2018) [0]
result = puts s*""
$ ruby kinaba.rb
TRICK2018
14. kinaba.rb - Spoiler 13th & yhara award
“Most warned”
$ ruby –w kinaba.rb
-:1: warning: parentheses after method name is interpreted as an argument list, not a dec
-:2: warning: mismatched indentations at 'end' with 'def' at 1
-:3: warning: shadowing outer local variable - s
-:4: warning: `frozen_string_literal' is ignored after any tokens
-:5: warning: `*' interpreted as argument prefix
-:6: warning: Float 1e2018 out of range
-:7: warning: comparison '>' after comparison
-:8: warning: unused literal ignored
-:9: warning: ambiguous first argument; put parentheses or a space even after `+' operato
-:10: warning: assigned but unused variable - result
-:1: warning: method redefined; discarding old write
-:2: warning: previous definition of write was here
-:3: warning: given block not used
-:4: warning: passing a block to String#grapheme_clusters is deprecated
-:5: warning: unknown unpack directive 'o' in 'ao'
-:6: warning: Bignum out of Float range
-:7: warning: trust is deprecated and its behavior is same as untaint
-:8: warning: public_class_method with no argument is just ignored
-:9: warning: global variable `$ruby' not initialized
-:10: warning: #<IO:<STDOUT>>.write is outdated interface which accepts just one argument
TRICK2018
Each line has
static (parse/compile-time) warnings
Each line also has
dynamic (run-time) warnings
16. Winner »
eban eto mame shinh yhara leonid matz AVG.
“Minimum alternative of irb”
『最小の irb 代替物で賞』
Jan Lelis
(DE)
12th & mametter award
N/A 2 8 6 6 6 N/A 5.60
17. jan.rb 12th & mametter award
“Minimum alternative of irb”
eval %w?_="";_ _=binding;l
oop( )do $>< <"> >¥s
"if $/> _;p uts "=>
¥s%p "%[ __.e val (_+
=get s||exit!) ,_=""];rescu
e(Ex cep tio n); put
s""+ "¥e [31 m%p ¥e[
0m"% [$! ,_= ""] if/
d¥se |ee /!~ "#$!"end?*""
18. jan.rb - Spoiler
• Serves as an interactive Ruby interpreter
– Colors an error message
– Supports line continuation
12th & mametter award
“Minimum alternative of irb”
$ ruby jan.rb
>> 1 + 2
=> 3
>> foo
#<NameError: undefined local variable or met
>> "Hello," +
"world"
=> "Hello,world"
19. jan.rb - Spoiler
• Highlight: How to detect line continuation
– Try to evaluate the input lines
– If it throws an exception, and if its message matches:
– the input is considered "unterminated yet"
• This Regexp determines if the error is either:
12th & mametter award
“Minimum alternative of irb”
/d e|ee/
syntax error, unexpected end-of-input
unterminated string meets end of file
syntax error, unexpected end-of-input
unterminated string meets end of file
20. jan.rb - Spoiler
• mametter's comment
– I believe this is the ever shortest implementation of
interactive ruby program.
– Both the implementation technique and its appearance
are so smart.
– Thank you for the great program!
• Jan's comment
12th & mametter award
“Minimum alternative of irb”
21. Winner »
eban eto mame shinh yhara leonid matz AVG.
“Most attractive”
『最も魅力的で賞』
Tomoya Ishida (tompng)
(JP)
11th & eto award
5 10 8 4 9 8 3 6.71
26. tompng2.rb 10th & matz award
“Best double meaning”
• Works as a FizzBuzz-like program
$ ruby tompng2.rb
1
2
Ruby
4
Trick
Ruby
7
8
Ruby
Trick…
27. tompng2.rb 10th & matz award
“Best double meaning”
• Looks like a FizzBuzz program
…
def fizzbuzz n
set_error 'wrong argument type' if n.nil?
if n < 0
n = -n
retval =fizzbuzz n
return retval
else
…
28. tompng2.rb - Spoiler 10th & matz award
“Best double meaning”
• Contains many Unicode spaces
…
def ■ fizzbuzz■n
set_error 'wrong argument type' if n.nil?
if n < ◆0
n = -n◆
retval =◆ fizzbuzz■n
return ◆◆◆◆◆ retval
else
…
■:U+00A0 No-break Space
◆:U+200B Zero Width Space
29. tompng2.rb - Spoiler 10th & matz award
“Best double meaning”
• Looks like a fizzbuzz, and is actually a fizzbuzz
• However, the interpretation is completely different
than we expect
– For example, is not an integer negation,
but calls String#-@ (freeze)
• Of course, if all Unicode spaces are removed,
it also works correctly as we expect!
n = -n
32. yhara.rb 9th
“Most (un)readable”
• A Quine that explains how to work in Japanese
def method_missing(n);$*<<n.to_s.bytesize
n[-1]=="!" and eval$*.map(&:chr).join;end
*自己言及的なプログラム.
これは「自己に言及」したQuineプログラムです.
動かすには普通に無引数で実行してください.
MRIの最新の安定版で動作確認を行っています.
*冒頭の2行が日本語プログラミングのDSLを提供します.
Rubyはピリオドまでの部分がメソッド名であると解釈します.
そのままではNoMethodErrorになります.
それをmethod_missingを使って検知しメソッド名のbytesizeをASCIIコードとして文字にします.
メソッド名が半角の!で終わる場合、記憶した文字たちをjoinしてevalします.
これにより任意のRubyプログラムを日本語により記述することができます.
このプログラムの場合はこのファイルをreadし出力するようになっています.
*Note:文の長さは注意が必要.
UTF_8の日本語は1文字が3bytes.
端数が丁度になるよう英語を入れる.
以上、自己言及的programでした!
38. tompng3.rb - Spoiler 8th
“Best compiler”
• Brainf*ck to Ruby compiler
✓ The Ruby code works as the original Brainf*ck code
✓ The Ruby code shapes like the original Brainf*ck code
✓ The Ruby code works as the compiler if a file is given
✓ (Hard-coded font data is cute)
++++[->+
+++[->++
+++++>++
+<<]<]>>
compile
Brainf*ck code Ruby code
46. justcolin.rb - Spoiler 7th & shinh award & leonid award
“Most composable”
• Works as a cell of "the Game of Life"
– You can copy and paste it as a cell
– The composed program print the next generation
• Highlight: How to detect which cell is filled or not
– Y-coordinate:
– X-coordinate:
• Another highlight: Very fragmented code
– To make it vertically composable, no block ranges multi-
line
__LINE__
;;……s=%; (spaces) ;;……s=%;
47. justcolin.rb - Spoiler 7th & shinh award & leonid award
“Most composable”
• leonid's comment
– Box-shaped code that can stack: Fascinating.
– It's also a quine: Incredible.
– It's a dot in the Game of Life: AMAZING!
• shinh's comment
• justcolin's comment
48. Winner »
eban eto mame shinh yhara leonid matz AVG.
“Most reversible”
『最もリバーシブルで賞』
Yusuke Endoh
(JP)
6th & eban award
9 7 N/A 9 8 8 4 7.33
50. mame.rb - Spoiler 6th & eban award
“Most reversible”
– yields a reverse-sort program
– yields a program that sorts by reversed lines
– yields a program that reverse-sorts by reversed lines
– yields the original sorting program
ruby mame.rb mame.rb > rsort.rb
ruby rsort.rb rsort.rb > sortr.rb
ruby sortr.rb sortr.rb > rsortr.rb
ruby rsortr.rb rsortr.rb > mame2.rb
55. • Generates 3D model data of
"solid of revolution"
• The shape is configurable by
the DSL
“Most three-dimentional”
tompng4.rb - Spoiler
$ ruby tompng4.rb > wine_glass.stl
gen3d 'ochoko.stl' do
l------------------------l
l-ww------------------ww-l
l-ww------------------ww-l
l-ww++++++++++++++++++ww-l
l-ww++++++++++++++++++ww-l
l--ww++++++++++++++++ww--l
l---wwww++++++++++wwww---l
l----wwwwwwwwwwwwwwww----l
l----www----------www----l
end
59. “Best one-liner”
justcolin2.rb - Spoiler
• 68-character
test framework
require './justcolin2'
🤔 "Math" do
🤔 "Addition" do
🤔 "One plus one equals two.",
1+1 == 2
🤔 "One plus one equals eleven.",
1+1 == 11
end
end
$ ruby test.rb
Math
Addition
One plus one equals two.
🚫 One plus one equals eleven.
70. • A Quine that prints itself in spiral manner
– Uses an escape sequence to move the cursor
• The output is rearranged, and contains many
escape sequences, but it is actually executable
• mame's comment
“Best spiral”
mame2.rb - Spoiler
71. • The first letter of
each line spells out:
“Best spiral”
mame2.rb - Spoiler
'';eval(r=%q(->z{r="'';eval(r=¥
%q(#{r}))[%q`#{z}`]";i=-040;30.
times{|n|(15+n%2*15-n/2).times{
r<<r[i+=(1.-n&2)*(32-n%2*31)]}}
i=r[524,0]=?¥0;eval(r[479..-1])
c['"']}))[%q`GFEDCBA"+"[e¥"'"'t
kE*;;¥";" TRICK2018 ";tb,;{{r
2E0$ob[us@*0)[90,336])_#i¥n}s#i
0H}>["t]];};o[1,?¥n*8];ex"-}eac
1Hl<1[-1]*2*t=n%2];o[14-n,0)mvk
8M$<4,?¥n];15.times{|n|;o[35ie2
!Pss.slice!(0,1)+x;sleep(0.0t;0
'W=%q"<<95<<$s<<95;o=->n,x{n.'1
;@[2]}|¥e../,%@s="'%trick2018!8
eval$s=%q_eval($s.gsub!(/#{%@`]
'';eval(r=%q(->z{r="'';eval(r=¥
%q(#{r}))[%q`#{z}`]";i=-040;30.
times{|n|(15+n%2*15-n/2).times{
r<<r[i+=(1.-n&2)*(32-n%2*31)]}}
i=r[524,0]=?¥0;eval(r[479..-1])
c['"']}))[%q`GFEDCBA"+"[e¥"'"'t
kE*;;¥";" TRICK2018 ";tb,;{{r
2E0$ob[us@*0)[90,336])_#i¥n}s#i
0H}>["t]];};o[1,?¥n*8];ex"-}eac
1Hl<1[-1]*2*t=n%2];o[14-n,0)mvk
8M$<4,?¥n];15.times{|n|;o[35ie2
!Pss.slice!(0,1)+x;sleep(0.0t;0
'W=%q"<<95<<$s<<95;o=->n,x{n.'1
;@[2]}|¥e../,%@s="'%trick2018!8
eval$s=%q_eval($s.gsub!(/#{%@`]
73. • Before showing the program…
– kinaba2.rb is a program that does nothing
“Most reserved”
kinaba2.rb
74. “Most reserved”
FYI: Ruby's reserved words
Ruby Reference Manual: spec/flexical
https://docs.ruby-lang.org/ja/latest/doc/spec=2flexical.html
Here is the list of the reserved words
Reserved words
75. • A program that consists only of
reserved words of Ruby
“Most reserved”
kinaba2.rb
alias BEGIN for unless def class
super true or return defined? next
break while begin undef do end
rescue then retry else undef module
nil ensure case if yield __LINE__
self and redo elsif not __FILE__
alias END in end when __ENCODING__
end until false end
76. • A position of the reserved words has
a strong restriction
– must be inside rescue
– / / must be inside loop
– if return then true end #=> SyntaxError (void value
expression)
• Further restriction of "six words pre one line" is
imposed
“Most reserved”
kinaba2.rb - Spoiler
retry rescue
break next redo
if return then true end
#=> SyntaxError (void value expression)
77. • / / can take reserved words
• / can be used to avoid "void value
expression"
“Most reserved”
kinaba2.rb - Spoiler
def alias undef
if return then true end
#=> SyntaxError (void value expression)
if false or return then true end
#=> no error
alias BEGIN XXX…
or and
78. • kinaba's last comment
“Most reserved”
kinaba2.rb - Spoiler
80. Honorable mentions
• Best monkey - Tomoya Ishida (tompng)
• Best abuse of lambda - Shinichiro Hamaji
• Best abuse of meta - Yuki Yugui Sonoda
• Most solvable - Don Yang
• Best layout - Yutaka HARA
• Best abuse of regexp - Benoit Daloze (eregon)
• Most tolerant - Shuichi Tamayose
• Best applause - Colin Fulton
– Enjoy them yourself at the github
83. Prize?
• Dishonor: the title of “insane”
• Invitation to RubyKaigi 2018
• Top five entries will be checked into the Ruby
official repository in “sample” directory
– Ruby 2.6.0 will have them (perhaps)
85. Conclusion
• The winning entries will be published soon at:
• Thank you for all participants!
• See you in the next TRICK "Returns" ???
No k!
http://github.com/tric /trick2018/