00:00:09.679
Hello! Yes, I bought this; I'm enjoying it.
00:00:17.580
I'm from Austin. First, I'm Yusuke Endoh, and my Twitter account is a bit meta.
00:00:26.189
I've been a Ruby committer since 2008.
00:00:32.940
Some of my main contributions to Ruby include the implementation of keyword arguments.
00:00:38.430
I just implemented the design, and I also worked on the Ruby itself and a design and implementation coverage measurement library.
00:00:49.590
That's a back-end tool that helps create benchmarks for Ruby. Last year, I joined Cookpad as a three-time Ruby committer. My current job is to develop Ruby's safety.
00:01:05.670
But now, let me share some information about Cookpad.
00:01:11.840
Currently, Cookpad supports 22 languages and operates in 68 countries. We aim to be number one in 100 countries, and to maintain such a high-intensity service, we need many great engineers.
00:01:28.460
So if you are interested in working at Cookpad, please let me know.
00:01:39.630
The reason why I am here today is not just because I'm a good Ruby committer, but also because I'm one of the most peculiar Ruby programmers.
00:02:00.828
Today's topic is transcendental programming. I guess few people have heard of transcendental programming because I created this name.
00:02:13.900
By this term, I mean the act of enjoying programming regardless of practicality. I'm sure many of you enjoy programming, but most of you likely have practical objectives, like creating a useful web application or tool.
00:02:35.500
That’s great, but sometimes you may miss the pure joy of programming itself. We can enjoy programming without focusing solely on its practical uses.
00:02:51.190
In this talk, I want to explore the essence and joy of programming. We can utilize a powerful programming language like Ruby to write completely useless programs.
00:03:13.019
Today, I will demonstrate some of the useless programs that I have created in the spirit of transcendental programming.
00:03:36.870
Let me show you the first program. This is a simple Ruby program that prints "Hello, Hiro." It’s just a basic "Hello World" example.
00:04:02.260
Yes, it’s a "Hello World" program written in Ruby. As you can see, it’s a straightforward program, and everyone knows the phrase. It is the most famous program, but do you need anything more complex?
00:04:49.470
Next, I will show you a technique to encode and decode any given string, in this case, a Ruby program, into a natural number and vice versa.
00:05:18.990
There are many approaches to encoding and decoding, but in this case, we hold fragments of data that relate to encoding and decoding, respectively.
00:05:43.310
I will show you how to encode and decode a Ruby program into hexadecimal. This encoded format allows us to execute the Ruby program.
00:06:00.240
After this, all you need to do is process the generation. For instance, we can take a number and decode it to yield the original code.
00:06:30.979
Then, you can pass the decoded code to execute it again. However, it still won't work without defining certain constants.
00:07:00.850
Next, here's a little trick: we need to ensure all parts of the code have been defined properly, or else the code will not execute correctly.
00:07:22.840
I made a gem available for this, and the next part involves a QR code that you can scan.
00:07:53.210
If you have a smartphone, please try to read the QR code I've provided. It might be difficult to scan correctly, but don’t worry!
00:08:24.300
The next step is to ensure your device can read the QR code correctly. If it works, you'll receive a simple Ruby program.
00:09:12.500
This QR code contains a Ruby program that executes properly. Let me show you the inner workings of this program.
00:09:39.310
The program utilizes three parts: a QR encoder, a pink generator, and an analysis module that reads each part of the code.
00:10:24.500
The essence of this program is that it generates output that represents itself. It's fascinating how simple it is.
00:10:41.860
For instance, by adding a few lines of code, we can transform it significantly to create fun output.
00:11:24.760
We can create various outputs based on what we want. The ultimate goal is to show how creative programming can take shape.
00:12:17.360
Next, I'll talk about another example, which is much like the core idea of transcendental programming.
00:12:45.800
This involves taking a simple program and turning it into a piece that generates interesting outcomes using animations.
00:13:44.020
The following program represents a blend of traditional programming with visual outputs.
00:14:26.740
The program features animated outputs, showcasing how programming can also convey images and delightful experiences.
00:15:05.180
Next, I will demonstrate a musical theme combined with animations. This particular program is simple yet expresses joy.
00:15:34.310
With the musical aspect, you can create many genres of sound. Adjust the pattern, and you can play any song you desire!
00:16:38.450
It's important to see how animation and sound synthesis can work together to create a joyful experience.
00:17:00.030
Now, allow me to present one last program that combines many of the concepts we've discussed, evolving the idea of a simple QR code.
00:17:41.300
This program will showcase how we can take traditional concepts of programming and make them interesting and engaging.
00:18:10.230
We can also see designs merging programming logic with visual outcomes.
00:18:33.180
Let’s explore how enjoyable programming can be when combined with artistry.
00:19:06.880
I hope you've been entertained so far and that this illustration gives a glimpse into the kind of joy programming can bring.
00:19:28.230
Thank you for attending, and I invite you to explore the world of transcendental programming.
00:19:43.510
Remember, programming can be fun even without focusing solely on practical outcomes.
00:20:22.400
If you're interested in practical tasks, consider joining Cookpad, where there are plenty more opportunities.
00:20:43.800
In closing, continue to embrace the joy of programming and keep exploring interesting codes!
00:21:03.520
One more thing: this last program demonstrates the number of ways Ruby can create intriguing output.
00:21:40.530
This program exemplifies the relationship between data and programming to challenge traditional programming paradigms.
00:22:10.120
If you're interested, I have a book discussing more artistic programming examples. It illustrates how to push the boundaries of creativity with Ruby.
00:22:55.400
Thanks for joining me today, and I hope you enjoyed this presentation of transcendental programming.
00:23:40.560
Keep exploring the artistic side of programming, and take care!