Каждый разработчик рано или поздно сталкивается с предметно-ориентированными языками (DSL). Мы разберемся, зачем же нам нужны DSL, и какие проблемы они нам помогают решать. Поймем, в каких случаях нам стоит разрабатывать свой язык, а в каких — использовать уже существующий. Попробуем провести грань и решить, где у нас просто библиотека, а где — предметно ориентированный язык. Придумаем свой DSL и сравним различные подходы к работе с ним в Python. Увидим, как работают лексический и синтаксический анализаторы. Обязательно поговорим про то, как облегчить жизнь пользователям нашего языка. Как сделать информативными сообщения об ошибках? Как тестировать сценарии, написанные на нашем языке? На эти вопросы мы сможем дать ответ.
На докладе вы узнаете:
как ликвидировать Ахиллесову пяту ваших unit test’ов;
о достоинствах и недостатках SinonJS в рамках современной теории unit test'ирования;
почему теория - это по-настоящему важно;
чем отличается SinonJS от других инструментов тестирования и для чего он вообще нужен;
какими принципами стоит руководствоваться при создании заглушек независимо от test framework'а;
как быстро и легко начать использовать SinonJS на вашем проекте уже сейчас.
Know each horse in your castle!
How to Make Ruby CGI Script Faster - CGIを高速化する小手先テクニック -kwatch
The document discusses ways to make Ruby CGI scripts faster. It explains that process invocation and library loading are the main reasons CGI scripts are slow. Various case studies are presented on optimizing code by lazy-loading libraries, avoiding unnecessary objects, and parsing query strings efficiently. Benchmark results show performance improvements from these techniques.
De 2012 a 2018, la persona asistió a la escuela cada año, con excepción de 2013 cuando también asistió a un campamento. Además de la escuela, la persona vivió en casa en 2014 y 2017, y asistió a un campamento en 2013.
This document discusses using Perl modules to cache website content from WordPress by storing it in an S3 bucket. It describes setting up a file watcher to sync the local uploads directory to S3 when files change. It also explains implementing a request handler and output filter to serve the cached content from S3 if available, or generate and cache the content if needed.
The document discusses various smart home and environmental monitoring devices, including a Netatmo weather station, Slack bot, and Nagios integration. It also mentions an Atmotube device that monitors carbon monoxide and volatile organic compounds, and notes concentrations of different compounds. Links are provided to product websites and documentation.
This document discusses the history and evolution of Perl web development from CGI scripts in the 1990s to modern web frameworks. It covers early technologies like CGI, mod_perl, FastCGI and introduces newer standards like PSGI/Plack that unify Perl web development. It emphasizes how PSGI/Plack abstracted web servers and allowed frameworks like Catalyst to flourish.
The document discusses the use of AUTOLOAD in Perl to dynamically compile and execute subroutines. It provides examples of how AUTOLOAD works in the CGI.pm module to dynamically generate CGI functions at runtime. It also summarizes how the Apache::LogFormat::Compiler module uses a similar approach to dynamically compile format strings into subroutines for logging request data.
The document discusses various mathematical concepts including trigonometric functions such as sine, cosine, and tangent. It covers trigonometric identities involving addition and subtraction formulas. It also discusses exponential functions, complex exponentials, and their relationship to trigonometric functions. Further, it briefly mentions applications of mathematics including GPS and Pokémon GO.
The document discusses gentle_unlink, a Perl script created by OGATA Tetsuji that slowly deletes files over time instead of immediately to avoid spikes in disk activity. It can delete files gradually in the background while the disk is idle. This helps improve performance and reduce wear when deleting large numbers of files at once, such as when removing old log files or database tables. The author recommends it as an alternative to commands like rm and truncate that delete files all at once.
This document provides biographical information about Tetsuji Ogata, a Perl programmer from Okinawa, Japan. It mentions that he started learning Perl in 2003 and has contributed to various Perl projects. Ogata believes Perl is still relevant today despite competitors like Ruby and Go, and hopes to continue promoting and contributing to the Perl community.
How to Make Ruby CGI Script Faster - CGIを高速化する小手先テクニック -kwatch
The document discusses ways to make Ruby CGI scripts faster. It explains that process invocation and library loading are the main reasons CGI scripts are slow. Various case studies are presented on optimizing code by lazy-loading libraries, avoiding unnecessary objects, and parsing query strings efficiently. Benchmark results show performance improvements from these techniques.
De 2012 a 2018, la persona asistió a la escuela cada año, con excepción de 2013 cuando también asistió a un campamento. Además de la escuela, la persona vivió en casa en 2014 y 2017, y asistió a un campamento en 2013.
This document discusses using Perl modules to cache website content from WordPress by storing it in an S3 bucket. It describes setting up a file watcher to sync the local uploads directory to S3 when files change. It also explains implementing a request handler and output filter to serve the cached content from S3 if available, or generate and cache the content if needed.
The document discusses various smart home and environmental monitoring devices, including a Netatmo weather station, Slack bot, and Nagios integration. It also mentions an Atmotube device that monitors carbon monoxide and volatile organic compounds, and notes concentrations of different compounds. Links are provided to product websites and documentation.
This document discusses the history and evolution of Perl web development from CGI scripts in the 1990s to modern web frameworks. It covers early technologies like CGI, mod_perl, FastCGI and introduces newer standards like PSGI/Plack that unify Perl web development. It emphasizes how PSGI/Plack abstracted web servers and allowed frameworks like Catalyst to flourish.
The document discusses the use of AUTOLOAD in Perl to dynamically compile and execute subroutines. It provides examples of how AUTOLOAD works in the CGI.pm module to dynamically generate CGI functions at runtime. It also summarizes how the Apache::LogFormat::Compiler module uses a similar approach to dynamically compile format strings into subroutines for logging request data.
The document discusses various mathematical concepts including trigonometric functions such as sine, cosine, and tangent. It covers trigonometric identities involving addition and subtraction formulas. It also discusses exponential functions, complex exponentials, and their relationship to trigonometric functions. Further, it briefly mentions applications of mathematics including GPS and Pokémon GO.
The document discusses gentle_unlink, a Perl script created by OGATA Tetsuji that slowly deletes files over time instead of immediately to avoid spikes in disk activity. It can delete files gradually in the background while the disk is idle. This helps improve performance and reduce wear when deleting large numbers of files at once, such as when removing old log files or database tables. The author recommends it as an alternative to commands like rm and truncate that delete files all at once.
This document provides biographical information about Tetsuji Ogata, a Perl programmer from Okinawa, Japan. It mentions that he started learning Perl in 2003 and has contributed to various Perl projects. Ogata believes Perl is still relevant today despite competitors like Ruby and Go, and hopes to continue promoting and contributing to the Perl community.
The document contains the output from running the "strace rm" command on a file. The strace output lists each system call and signal that rm makes when deleting the file. It also contains discussions on using find/xargs, rsync, gentle_unlink, and other commands for deleting large numbers of files. Gentle_unlink is a Perl script that can slowly and safely delete files in batches over time or when processes are interrupted.