Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...yaevents
Алексей Воинов, Яндекс
Закончил МГТУ им. Н.Э.Баумана в 1998 году. Посвятил часть своей жизни свободному программному обеспечению. Замечен в любви к языкам, как к алгоритмическим, так и к человеческим, как к естественным, так и к искусственным. Работает в Яндексе с 2009 года, занимается разработкой Яндекс.Почты.
Тема доклада
Зачем обычному программисту знать языки, на которых почти никто не пишет.
Тезисы
Есть категория алгоритмических языков, которые большинство программистов считает в лучшем случае странными. Это такие языки как Haskell, *ML, Lisp, Q. «Странные» языки не приживаются в промышленной разработке софта, потому что они не дают возможности писать стандартный «промышленный» код. Однако они бывают очень хороши для придумывания приёмов, которые помогают улучшить промышленный код. Впоследствии многие из них становятся стандартными промышленными. Знание «странных» языков очень полезно, когда в силу внешних обстоятельств сделать промышленный код радикально лучше невозможно, но его можно улучшать небольшими шагами.
Rails 5: awesome features and breaking changesАлександр Ежов
The document discusses the major changes in Rails 5 including:
- Many deprecated features have been removed such as respond_to/respond_with and XML serialization.
- New features have been added like ActiveRecord::Relation#or and ActiveModel::Errors#codes.
- Performance improvements including requiring Ruby 2.2.2 for speed boosts and more efficient Active Record querying.
- Breaking changes to callback behavior and parameter handling.
This document provides an overview of abstract machines for evaluating lambda calculus expressions and arithmetic expressions. It discusses the SECD machine, which evaluates lambda calculus using a stack, environment, code, and dump. It also discusses the K machine and tail call optimization. The document explains evaluation schemes and transitions for abstract machines and provides examples of evaluating expressions using different machines.
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...yaevents
Алексей Воинов, Яндекс
Закончил МГТУ им. Н.Э.Баумана в 1998 году. Посвятил часть своей жизни свободному программному обеспечению. Замечен в любви к языкам, как к алгоритмическим, так и к человеческим, как к естественным, так и к искусственным. Работает в Яндексе с 2009 года, занимается разработкой Яндекс.Почты.
Тема доклада
Зачем обычному программисту знать языки, на которых почти никто не пишет.
Тезисы
Есть категория алгоритмических языков, которые большинство программистов считает в лучшем случае странными. Это такие языки как Haskell, *ML, Lisp, Q. «Странные» языки не приживаются в промышленной разработке софта, потому что они не дают возможности писать стандартный «промышленный» код. Однако они бывают очень хороши для придумывания приёмов, которые помогают улучшить промышленный код. Впоследствии многие из них становятся стандартными промышленными. Знание «странных» языков очень полезно, когда в силу внешних обстоятельств сделать промышленный код радикально лучше невозможно, но его можно улучшать небольшими шагами.
Rails 5: awesome features and breaking changesАлександр Ежов
The document discusses the major changes in Rails 5 including:
- Many deprecated features have been removed such as respond_to/respond_with and XML serialization.
- New features have been added like ActiveRecord::Relation#or and ActiveModel::Errors#codes.
- Performance improvements including requiring Ruby 2.2.2 for speed boosts and more efficient Active Record querying.
- Breaking changes to callback behavior and parameter handling.
This document provides an overview of abstract machines for evaluating lambda calculus expressions and arithmetic expressions. It discusses the SECD machine, which evaluates lambda calculus using a stack, environment, code, and dump. It also discusses the K machine and tail call optimization. The document explains evaluation schemes and transitions for abstract machines and provides examples of evaluating expressions using different machines.
Liquor, Liquid и другие безопасные языки разметки в RoRАлександр Ежов
This document discusses various options for creating safe templates in Ruby, including Liquid, Liquor, Radius, Ruty, Laminate, and cs/Template. It provides code examples for how templates can be defined and secured in each system. The document also discusses how Liquor can be used to define attributes, named scopes, and associations for rendering complex templates in a safe way.
The document discusses configuration management tools like Chef, Puppet, and Cfengine. It also discusses using these tools to manage versions of software like MySQL, PHP, and Ruby on different server environments. Specific commands are provided to install, remove, and change software versions. The document also discusses using tools like Capistrano and Lorenz for deployment and managing state changes across servers.
Sphinx is a very fast search engine that allows for integrated full-text search and queries without temporary tables. It supports different attribute types like strings, integers, and arrays. Attributes can be used in queries with operators like equals, not equals, in, between and more. Indexes can be defined on models with indexes on fields, sorting, and field types. Searches support filtering with conditions, sorting results, and grouping results by fields with aggregate functions. Deltas indexes can be used to track changes and updated through rake tasks or indexer commands.
Использования PgQ и Londste в rails-приложенииАлександр Ежов
Londiste is a master-slave replication system for PostgreSQL that uses PgQ (Postgres Queue) to queue transactions and events. PgQ allows asynchronous replication by queuing transactions and events from the master database to be consumed by subscribers or slaves. Rake tasks are provided to install, start, stop and manage Londiste replication and PgQ queue consumers. Example code shows how to create a PgQ queue, register a consumer, and add events to the queue to be processed asynchronously.
Front-end Rails-приложений приложений, основанный на БЭМАлександр Ежов
This document discusses front-end Rails application organization based on the BEM methodology. It introduces some BEM concepts and provides examples of implementing BEM in Sass and HTML. Key points include:
- Organizing stylesheets by global styles, layouts, and component blocks.
- Using BEM naming conventions like block__element and block--modifier.
- Implementing common patterns like icons through mixins and global styles.
- Structuring Sass imports, variables, and mixins to support the BEM methodology.
Возможности, особенности и проблемы AR::RelationАлександр Ежов
Active Record Relation (AR::Relation) allows queries to be built up in steps and later executed all at once. It provides identity mapping, which caches objects in memory to ensure that multiple queries for the same object return the same object instance. Identity mapping was added by Emilio Tagua and provides performance and consistency benefits. Developers are encouraged to contribute to further improvements in AR::Relation and identity mapping.
Liquor, Liquid и другие безопасные языки разметки в RoRАлександр Ежов
This document discusses various options for creating safe templates in Ruby, including Liquid, Liquor, Radius, Ruty, Laminate, and cs/Template. It provides code examples for how templates can be defined and secured in each system. The document also discusses how Liquor can be used to define attributes, named scopes, and associations for rendering complex templates in a safe way.
The document discusses configuration management tools like Chef, Puppet, and Cfengine. It also discusses using these tools to manage versions of software like MySQL, PHP, and Ruby on different server environments. Specific commands are provided to install, remove, and change software versions. The document also discusses using tools like Capistrano and Lorenz for deployment and managing state changes across servers.
Sphinx is a very fast search engine that allows for integrated full-text search and queries without temporary tables. It supports different attribute types like strings, integers, and arrays. Attributes can be used in queries with operators like equals, not equals, in, between and more. Indexes can be defined on models with indexes on fields, sorting, and field types. Searches support filtering with conditions, sorting results, and grouping results by fields with aggregate functions. Deltas indexes can be used to track changes and updated through rake tasks or indexer commands.
Использования PgQ и Londste в rails-приложенииАлександр Ежов
Londiste is a master-slave replication system for PostgreSQL that uses PgQ (Postgres Queue) to queue transactions and events. PgQ allows asynchronous replication by queuing transactions and events from the master database to be consumed by subscribers or slaves. Rake tasks are provided to install, start, stop and manage Londiste replication and PgQ queue consumers. Example code shows how to create a PgQ queue, register a consumer, and add events to the queue to be processed asynchronously.
Front-end Rails-приложений приложений, основанный на БЭМАлександр Ежов
This document discusses front-end Rails application organization based on the BEM methodology. It introduces some BEM concepts and provides examples of implementing BEM in Sass and HTML. Key points include:
- Organizing stylesheets by global styles, layouts, and component blocks.
- Using BEM naming conventions like block__element and block--modifier.
- Implementing common patterns like icons through mixins and global styles.
- Structuring Sass imports, variables, and mixins to support the BEM methodology.
Возможности, особенности и проблемы AR::RelationАлександр Ежов
Active Record Relation (AR::Relation) allows queries to be built up in steps and later executed all at once. It provides identity mapping, which caches objects in memory to ensure that multiple queries for the same object return the same object instance. Identity mapping was added by Emilio Tagua and provides performance and consistency benefits. Developers are encouraged to contribute to further improvements in AR::Relation and identity mapping.