Last November, the RubyConf2008 conference was held. She passed absolutely past the Slavic part of the Ruby community. This conference is not mentioned almost anywhere in Ukrnet / Runet. I myself learned about this conference completely by chance from some blog, perhaps not even related to Ruby.
I watched one presentation from this conference and I wanted to retell it as a text on Habré. Having written the first two paragraphs, I looked at a few more speeches and realized that they are no worse than the one I began to retell. Further more. I looked through a dozen reports and realized that if I recite everything, it will take time until the next Ruby conference. Stepping on my own song's throat, I decided to change the presentation format. I will talk about all the speeches a little bit. Let it be a format similar to RSS where the subject of the speech, duration and key words and concepts will be briefly discussed. This format will give an understanding of whether or not to pay attention to this report and to learn the details or to look at some other one.
A separate paragraph will highlight the fact that the reports are in English.
')
Who might be interested. First of all rubists and rail workers. Secondarily, to programmers from the Java universe. Some topics may be of interest to other developers.
For convenience, I divided the reports into groups (reports in the group):
1) Ruby core (5)
2) At the intersection with Java (4)
3) Automatic testing (5)
4) Low Level Ruby (2)
5) Ruby and JavaScript (2)
6) Ruby on Internet (4)
7) Code making (6)
8) Ruby in the console (2)
9) Reports unrelated to Ruby directly (3)
10) Miscellaneous (2)
Ruby coreName: Reasons behind Ruby
Tags: Basic <= ... => Ruby <= ... => Lisp, Meta-DSL
Duration: 31 minutes
Description: This is the opening speech of the language creator at the conference. In a rather clumsy English, Matz talks about the reasons for which he created the language. This is not a technical description in which a bunch of functions and variables, but something like a story about the language as a whole, about the community and about the future of the language.
URL:
rubyconf2008.confreaks.com/matzs-keynote.htmlName: Future of RubyVM
Tags: VM, performance, jRuby, IronRuby, Rubinius, CRuby
Duration: 45 minutes
Description: English is even more dead compared to Matz, but something can be disassembled. Man makes his predictions about different implementations of VM. A brief description of the advantages and disadvantages of these VMs is given. The steps that are produced and planned to increase the performance of CRuby. Features which are planned to be added in 1.9.2. The atomic Ruby project during which they are trying to ease the language and increase its performance by creating several interpreter implementations designed for different development environments. Changes in the GC that will accelerate it. The report is a good example of why it is worth spending time learning English :)
URL:
rubyconf2008.confreaks.com/future-of-rubyvm.htmlName: Rubinius
Tags: rubinius, class, method, type, stack
Duration: 48 minutes
Description: Rubinius development team Timlid tells general ideas about how this VM works, how the class structure of code inside a VM is handled, how data types are controlled, how methods are called, and other low-level functionality. It is difficult to listen to in my opinion despite the fact that the topic is interesting. Perhaps this impression is due to the fact that I personally do not really like all these 'lingual guts'.
URL:
rubyconf2008.confreaks.com/rubinius.htmlName: Fork Ruby
Tags: experiments, ruby >> gems, ruby light, pruby, otuby, cluby
Duration: 48 minutes
Description: Dave Thomas - yes, the one who wrote the AWDWR - shares his thoughts about the language and possible ways of its development. You know, car dealerships are often exposed to concept cars that are not yet driven and not produced, but they look cool and amazing. Dave offers several such language concepts or, if you prefer, modules for a language applied to Ruby. Very interesting.
URL:
rubyconf2008.confreaks.com/keynote.htmlName: Ruby 1.9: What to Expect
Tags: 1.8, 1.9
Duration: 50 minutes
Description: Despite the fact that most developers still use version 1.8, not taking into account all the innovations in the next version of the language means to refuse the mass of amenities that it will bring. In order to make it easier to understand the changes in the new version, the speakers show two irb windows instead of the usual slides. By consistently executing code in both versions of the language, they explain what has changed and why, and how to use these changes.
URL:
rubyconf2008.confreaks.com/ruby-19-what-to-expect.htmlAt junction with javaName: Recovering from Enterprise
Tags: Java, Lego, Play-Doh, 1400 vs 11000
Duration: 45 minutes
Description: Remember a joke that ends with the words "You also started from afar"? The speaker also starts from afar but gradually comes to describing the differences between Ruby and Java universes. He talks about the fundamental differences between these two platforms, about his mistakes, and how he was taught to avoid these mistakes and write in Ruby rather than in Java using Ruby syntax.
URL:
rubyconf2008.confreaks.com/recovering-from-enterprise.htmlName: Monkeybars: easy cross platform GUIs
Tags: GUI, Swing, Rawr
Duration: 52 minutes
Description: <laughter in the room> Framework that uses jRuby to access Swing. </ Laughter in the room> Unit testing applications written in Monkeybars. Use component to build GUI. RAWR is a packer for creating jRuby cross-platform projects. The original approach to application security in Monkeybars applications.
URL:
rubyconf2008.confreaks.com/monkeybars-easy-cross-platform-guis.htmlName: Desktop Development with Glimmer
Tags: swt, tdd, GUI
Duration: 48 minutes
Description: If you do not like to use Swing and Monkeybars built on its basis, then you can look at the Glimmer project which is built on SWT. The speaker briefly recounts the existing GUI frameworks for Ruby and explains why he needed to create another one. As an example, demonstrates the creation of a small application that allows you to log in and log out. Describes the idea of linking model data and display. TDD in Glimmer framework. An example of creating the game Tic-Tac-Toe with the help of Glimmer. In my opinion, the approach to creating a clearer and more concise than in Monkeybars.
URL:
rubyconf2008.confreaks.com/desktop-development-with-glimmer.htmlName: JRuby: What, Why, How ... Try It Now
Tags: jvm, jruby
Duration: 47 minutes
Description: Two jRuby developers talk about what has changed over the last year in the system, what they could achieve. Briefly describes the scheme of jRuby. An example of using the Java library directly from Ruby code is shown. It tells about the application server GlassFish. It tells about the support for multithreading in jRuby and shows the results of a primitive test of the memory usage of Rails application in multithreading mode. A universal way to use C libraries in CRuby, jRuby and Rubinius.
URL:
rubyconf2008.confreaks.com/jruby-what-why-howtry-it-now.htmlAutomatic testingName: What does my Ruby do?
Tags: RubySpec, rspec, mspec
Duration: 45 minutes
Description: We have several versions of Ruby interpreters (Cruby, Rubinius, jRuby, IronRuby, ...). Despite such a space for experiments, for a language there is no specification that all these implementations must comply. Because of this, we can get incompatible versions of interpreters and a lot of headaches. To avoid this, there were people who set about creating a set of tests that would test not programs in the language but the language itself. Initially this was done with the help of Rspec, but later people switched to Mspec. The speaker talks about the current state of the project, plans, problems and solutions.
URL:
rubyconf2008.confreaks.com/what-does-my-ruby-do.htmlName: Testing Heresies
Tags: tdd, testing
Duration: 1 hour
Description: This report will be interesting not only for rubists / rail workers, but also for people working with other languages. The man tells about dogmas and delusions with automatic testing. About 10 seemingly true statements in practice are not true. This is described with examples of Ruby code, but despite this, general ideas can be understood without an understanding of how the code works.
URL:
rubyconf2008.confreaks.com/testing-heresies.htmlName: Coding for Failure
Tags: error, insurance, debugging, testing
Duration: 31 minutes
Description: The report is devoted to errors in web applications. Which web applications may have weak parts. Where this application may break and how to avoid it. In general, we consider ways to make your application reliable. By the way, this report may be interesting not only to Ruby / Rails developers, but also to users of other programming languages.
URL:
rubyconf2008.confreaks.com/coding-for-failure.htmlName: Using Metrics to Take a Look at Your Code
Tags: test, statistics
Duration: 42 minutes
Description: This is about code coverage with automatic tests. The report focuses on how to assess the effectiveness of code coverage tests, and describes the factors that may affect the complexity of the code and thoroughness of testing. It describes the scripts that allow you to calculate the complexity of the code in order to show the places of potential errors. Casual speaker tells about his own script in which he combines several separate evaluation scripts and calculates the complex complexity of the code.
URL:
rubyconf2008.confreaks.com/using-metrics-to-take-a-look-at-your-code.htmlName: Writing Code That Doesn't Suck
Tags: automatic testing, TDD, BDD, Merb
Duration: 54 minutes
Description: Did you learn such abbreviations as TDD, BDD, covered the entire code with 400% with a layer of tests and still get one hit after another from the application when you try to change something? Then Yehuda Katz goes to you. In the report, he tells on the example of developing the Merb framework how they worked with automatic tests and what mistakes they made before taking the right path. In short, how to and how not to write tests for Ruby projects.
URL:
rubyconf2008.confreaks.com/writing-code-that-doesnt-suck.htmlLow Level RubyName: Ruby for Embedded Applications
Tags: linux, vim
Duration: 41 minutes
Description: A person talks about Ruby development for systems with limited memory, processor, I / O, etc. The report deals with the features of setting up the environment in which you plan to run Ruby scripts. Development tools in similar environments and configuration of these tools are described. Looks without blinking.
URL:
rubyconf2008.confreaks.com/ruby-for-embedded-applications.htmlName: Ruby Arduino Development
Tags: microcontrollers, low-level programming
Duration: 39 minutes
Description: There is such a platform for the development of physical experiments, experiments with electronics like the
Arduino . Using this platform and hanging on it a dozen layers of software, we can use Ruby to program on it. Using Ruby means creating a DSL to form the desired algorithms for a user. The report demonstrates several examples of work on the platform, starting with blinking LEDs and ending with an electronic cocktail maker from a set of ingredients.
URL:
rubyconf2008.confreaks.com/ruby-arduino-development.htmlRuby and JavaScriptName: A wonderful, awful idea: ruby in the browser
Tags: javascript, rubyjs
Duration: 44 minutes
Description: The author of the report developed a web application and came to the conclusion that with the complication of the client part, there is a parallel development of classes connected with business logic on the client and server side of the application. This is duplication of code, duplication of functionality. The way out of this situation was chosen to refuse programming in JavaScript. This is a saying. To see the story, use the link on the next line.
URL:
rubyconf2008.confreaks.com/a-wonderful-awful-idea-ruby-in-the-browser.htmlName: How I Learned to Love JavaScript
Tags: javascript, command line
Duration: 35 minutes
Description: People who do not like JavaScript, but who recognize the fact that JavaScript is a very common language in web programming, have decided that we need to do something about it. And they made a library that contains two shells: one for Ruby so that it can be accessed as JavaScript and for the shell for JavaScript so that it acquires Ruby properties. The speakers themselves admit that it was hard, but it’s better to let them tell about it ...
URL:
rubyconf2008.confreaks.com/how-i-learned-to-love-javascript.htmlRuby on InternetName: Building Distributed Applications
Tags: drb, rinda, mack
Duration: 44 minutes
Description: When your application grows up and it becomes crowded on one server, you need to somehow distribute it across several servers. How to do it, what features Ruby provides for this, what problems are encountered and how to avoid them. Mack framework that allows you to simplify the creation of distributed applications.
URL:
rubyconf2008.confreaks.com/building-distributed-applications.htmlName: Ramaze: The underrated Web Framework
Tags: ramaze, yarf
Duration: 29 minutes
Description: Another framework written in Ruby. The framework supports a bunch of ORM and display systems (HAML, Erubis, ...). The speaker considers the features of the framework and demonstrates the creation of a test application. Yes, yes, the application is a blog :)
URL:
rubyconf2008.confreaks.com/ramaze-the-underrated-web-framework.htmlName: Lightweight Web Services
Tags: web service, sinatra
Duration: 42 minutes
Description: If your web application at the beginning of its life was small and beautiful, then later - as you add features and make changes - it has every chance of becoming less beautiful and more and more confusing. In order to avoid this, you can break one large complex application into several small simple ones. If you do this with the Rails framework, we can get a bunch of unused features and unnecessary functionality in each of the small projects. To avoid this, you can use the Ruby framework Sinatra which is made in an aggressively minimalist style and allows you to create small services without being distracted by heaps of unused libraries and features. Presenters show examples of using Sinatra.
URL:
rubyconf2008.confreaks.com/lightweight-web-services.htmlName: Components are not a dirty word
Tags: Rails, Cells, Apotomo
Duration: 43 minutes
Description: In horror films, the phrase often sounds: "... but sometimes they come back." In the rails before there were components, but they decided to give up. Some people needed to reuse the user interface component with all the business logic behind them. These people created Rails plug-ins, built sites using these plug-ins and delivered this report. You can, of course, say that using such things is not the Rails way, but you can experiment.
URL:
rubyconf2008.confreaks.com/components-are-not-a-dirty-word.htmlCode makingName: The Ruby Code Review. A Play in Three Acts
Tags: Rails, code review, DSL
Duration: 42 minutes
Description: This is an unusual performance. In essence, this is a play. The play has two actors: the developer of the project MyBookFaceSpaceTwit and the consultant who produces code review for the project. During this process, errors and problems in the project are shown and how to avoid them. All this is done in a very fun and intelligible form. A marvelous example of the idiotic use of DSL is shown. In general, this report will be of interest to any Ruby / Rails developer. Even if a person does not learn anything new, then he will have a lot of fun :)
URL:
rubyconf2008.confreaks.com/the-ruby-code-review-a-play-in-three-acts.htmlName: Unfactoring From Patterns
Tags: factoring
Duration: 36 minutes
Description: You write clear code, clear methods, use common Ruby tools. Any developer having come to the project can instantly understand what is being done and where. If all this can be said about you and about your work, then you can be fired at any time and take someone for half the salary. Do you see how you risk? From this terrible situation you can withdraw a new technique - "factoring". Make your code as complicated and incomprehensible as possible and then your employer will have to work with you because no one else can understand what you wrote. The report shows a variety of examples and techniques with which you can protect yourself from dismissal. This is the only report at the conference in which the entire audience actively participates, which once again proves the seriousness of the problem.
URL:
rubyconf2008.confreaks.com/unfactoring-from-patterns.htmlName: How Ruby Can Be Fast
Tags: garbage collector,
Duration: 48 minutes
Description: The speaker talks about the theory of the creation of interpreters, about the techniques of their acceleration, about generally accepted delusions. The report talks about the statistics of real working systems and how to sharpen the interpreters for these projects. Despite the complexity of the interpreters, the ideas that are presented are quite accessible to mere mortals. By the way, it may be interesting not only for rubists / rail workers, but also for users of other languages.
URL:
rubyconf2008.confreaks.com/how-ruby-can-be-fast.htmlName: Better Ruby through Functional Programming
Tags: functional programming, functions, math
Duration: 33 minutes
Description: A report on the reasons for using functional programming and Ruby features in this type of programming. The story of how you can use the benefits of the OP in Ruby, what mistakes you can make. The report demonstrates typical Ruby constructs and explains how they conform to the principles of AF.
URL:
rubyconf2008.confreaks.com/better-ruby-through-functional-programming-2.htmlName: Advanced DSLs in Ruby
Tags: DSL, context, templates, BNL
Duration: 48 minutes
Description: The speaker talks about the theory of DSL. Using the examples of his DSL, he demonstrates the most important concepts and rules that should be followed when drawing up the languages of his business logic. The report describes the difference between polishing, preprocessing and parsing when using DSL. A special case of DSL - BNL (the natural language of business logic) is considered - and describes the differences between these two concepts. The report shows an example of building BNL using ready-made Ruby libraries.
URL:
rubyconf2008.confreaks.com/advanced-dsls-in-ruby.htmlName: Making Your Code CRAPpier
Tags: design
Duration: 33 minutes
Description: The code is written not only for compilation / interpretation. The code is written for people. These people can be colleagues, unfamiliar developers who send you patches. In the end, it can be yourself a year after you wrote the code.
How to make so that the written code can be conveniently and without straining to read? The basis for the study was taken the book "Design for non-designers." The ideas covered in the book were applied to the coding process. The results of this application are shown in the report.URL: rubyconf2008.confreaks.com/making-your-code-crappier.htmlName: Should All ThreadsTags: stream, sync, deadlock, race conditionDuration: 47 minutesDescription: The report looks at working with threads in Ruby. It describes the problems arising in multi-threaded programs and how to (avoid) them. Examples of programs are shown and errors and methods of debugging these errors are shown. It is told very lucidly. The report mentions the languages Erlang and Clojure as an alternative solution to the problems of multi-threaded programming.URL: rubyconf2008.confreaks.com/what-all-rubyist-should-know-about-threads.htmlRuby in the consoleName: Using Git in Ruby ApplicationsTags: git, document, gritDuration: 49 minutesDescription: Explains the basics of how git works to understand how these features can be used. The story of how you can use git except its main purpose (version control code). Document Based Applications. Information delivery / distribution systems. Git as a wrapper for sql. Use grit to organize all this beauty. Git development plans for the near future.URL: rubyconf2008.confreaks.com/using-git-in-ruby-applications.htmlName: rush, a shell Tag: bash, command lineDuration: 26 minutesDescription: A report about gems that allows the use of Ruby commands in the command line. In the console, we write 'rush' and get the same console with home and root variables that store the full path of the folders. With these variables, we can use the standard console commands (home.ls) and additional commands (home ['*. *'] # => Array with files in the current user's home folder). In addition, there are still many additional commands such as searching text in files, copying and moving files, etc. The same features can be used from Ruby and Rails scripts.URL: rubyconf2008.confreaks.com/rush-a-shell-that-will-yield-to-you.htmlReports unrelated to RubyName: Patterns in Distributed ProcessingTags: theory, algorithmDuration: 39 minutes
Description: The report focuses on distributed programming with a focus on theory. The real projects and the application of theoretically proven algorithms to them are considered. The speaker describes the methods for selecting the permissible level of error for the operation of the system and shows how fault tolerance is related to the complexity of implementation. The report is not directly related to Ruby and Rails and can be viewed by users of other languages / frameworks.URL: rubyconf2008.confreaks.com/patterns-in-distributed-processing.htmlName: Ruby Kata and SparringTags: martial arts, trainingDuration: 45 minutesDescription: The report deals with the approach to the study of programming languages in the style of studying martial arts. In martial arts there is the concept of "Kata". Repeating the exercise many times and receiving comments from observers allows you to improve your technique over and over again and thus improve. About the same approach, the speaker suggests applying to programming languages. He takes some task, preferably not very difficult, and implements it over and over again. Talking about his method of solving the problem (or showing a recorded video file) a person receives feedback from listeners. Reviews allow you to adjust the solution and each time improve the solution to the problem until the full enlightenment.URL: rubyconf2008.confreaks.com/ruby-kata-and-sparring.htmlName: Fear of ProgrammingTags: art, programming, psychologyDuration: 44 minutes
Description: Report on fear in programming. Fear of starting a project being unsure if you’ve finished it. The fear that a program maintains is taking some patches from the community before these patches can be harmful. Fear of publication of the project (and here it is necessary to do this, and this, and this, ...). The fear that your technical skills cannot ensure the realization of your ideas at a good level of quality. The fear that your work is useless. The speaker talks about all this and much more. Advice is given on how to fight this circumstance and how to respond to this fear.URL: rubyconf2008.confreaks.com/fear-of-programming.htmlmiscellaneaName: Crate: packaging your ruby applicationTags: sqlite, packageDuration: 37 minutesDescription: You have a program on Ruby that you want to use in different OS without a headache. Crate is a kind of package creator that allows you to create programs independent of the OS and system settings. When creating packages, it includes your program Ruby along with patches, zlib and openssl on which Ruby depends, in which the sqlite stores the configuration and which you can use when running the application. How it is all organized and how it works and is described in the report.URL: rubyconf2008.confreaks.com/crate-packaging-your-ruby-application.htmlName: Ruby Mendicant ProjectTags: PDF, Prawn, open sourceDuration: 42 minutesDescription: The report deals with the creation of a PDF generator. First, it tells about why this problem arose and how you approached its solution. Mention is very unexpected for the developer of the situation with the financing of the project. The report shows how to create a PDF document step by step using the Prawn library.URL: rubyconf2008.confreaks.com/ruby-mendicant-project.htmlAnd now I will immediately answer a few questions that may arise:Question : I don’t have that much time to look through all these reports. I only have an hour of free time. What is the most interesting thing that I can see in this hour?Answer: As always, it depends. Depending on how close your language is and in what area you use it, you can select one of the groups of reports. Next I will point out the best / most important report in each group to my subjective view:Ruby core => Ruby 1.9: What to ExpectAt the intersection with Java => Recovering from EnterpriseAutomated testing => Writing Code Doesn't SuckLow Level Ruby => Ruby Arduino DevelopmentRuby and JavaScript => A wonderful, awful idea:Ruby on Internet => Components are not a dirty wordCode making => Advanced DSLs in RubyRuby in the console => rush,Reports unrelated to Ruby directly => Patterns in Distributed ProcessingMiscellaneous => Ruby Mendicant ProjectQuestion : when is the next conference and where will it take place?Answer : The next conference will be held in the United States on March 13-14, 2009. You can read more on the official website of the event .