- The document discusses various aspects of Unix programming using Perl, including handling errors, filehandles after forking processes, and signals.
- It provides examples of how to properly check for errors, avoid resource collisions after forking, and make code cancellable using signals.
- Key topics covered include using the Errno module to check for errors, closing filehandles after forks to prevent sharing issues, and trapping signals like SIGPIPE and SIGTERM.
Reorganizing Website Architecture for HTTP/2 and BeyondKazuho Oku
This document discusses reorganizing website architecture for HTTP/2 and beyond. It summarizes some issues with HTTP/2 including errors in prioritization where some browsers fail to specify resource priority properly. It also discusses the problem of TCP head-of-line blocking where pending data in TCP buffers can delay higher priority resources. The document proposes solutions to these issues such as prioritizing resources on the server-side and writing only what can be sent immediately to avoid buffer blocking. It also examines the mixed success of HTTP/2 push and argues the server should not push already cached resources.
WordPress Multi-User: BuddyPress and BeyondJoss Winn
Slides to accompany my #altc2009 presentation of WordPress MU and BuddyPress for universities.
Please see my notes that accompany the slides (p.30 onwards)
Unit 1.3 Introduction to Programming (Part 1)Intan Jameel
This document discusses various formatting and layout features in Microsoft Word including inserting images, drawing objects, bookmarks, hyperlinks, and publishing documents as web pages. It provides steps to format text, add clips and pictures, divide documents into columns, and create links within and between documents. The goals are to help users learn how to create and format documents, and publish them online.
Más allá del Pokémon Go: Realidad Aumentada y Virtual en el AulaIsmael Burone
La realidad aumentada y virtual puede ampliar la información en las aulas mediante el uso de dispositivos y la creación de mundos virtuales que interactúan con el mundo real, permitiendo varios niveles de inmersión.
Este documento trata sobre las hemorragias del tubo digestivo, clasificándolas según su altura, severidad y causa. Una hemorragia masiva puede causar shock hipovolémico e incluso la muerte. El manejo inicial incluye asegurar las vías aéreas, canalizar venas y realizar exámenes. Para hemorragias altas, el tratamiento endoscópico es efectivo, mientras que las bajas a menudo requieren angiografía o cirugía. La morbimortalidad depende de factores como el volumen y veloc
Socialist Software Development - RubyConf 2010CJ Kihlbom
Socialism is often portrayed as pure evil by US media (hello Fox News), yet many socialist countries are ranked as some of the best countries in the world (Newsweek). So maybe it’s not all bad?
If you look at job listings for software developers, it seem like a lot of companies are looking for “programmer rock stars”, “coding ninjas”, etc. There is a romantic notion about the ultra productive independent super developer.
This talk examines software development from a socialist perspective. Might we get better results and provide more value if we set aside our egos and work together?
The document discusses the performance of HTTP/2 compared to HTTP/1.1 across different network conditions. It summarizes results from testing 8 real websites under 16 bandwidth and latency combinations with varying packet loss rates. Overall, HTTP/2 performs better for document complete time and speed index, especially on slower connections, though results vary depending on the specific site and metrics measured.
- The document discusses various aspects of Unix programming using Perl, including handling errors, filehandles after forking processes, and signals.
- It provides examples of how to properly check for errors, avoid resource collisions after forking, and make code cancellable using signals.
- Key topics covered include using the Errno module to check for errors, closing filehandles after forks to prevent sharing issues, and trapping signals like SIGPIPE and SIGTERM.
Reorganizing Website Architecture for HTTP/2 and BeyondKazuho Oku
This document discusses reorganizing website architecture for HTTP/2 and beyond. It summarizes some issues with HTTP/2 including errors in prioritization where some browsers fail to specify resource priority properly. It also discusses the problem of TCP head-of-line blocking where pending data in TCP buffers can delay higher priority resources. The document proposes solutions to these issues such as prioritizing resources on the server-side and writing only what can be sent immediately to avoid buffer blocking. It also examines the mixed success of HTTP/2 push and argues the server should not push already cached resources.
WordPress Multi-User: BuddyPress and BeyondJoss Winn
Slides to accompany my #altc2009 presentation of WordPress MU and BuddyPress for universities.
Please see my notes that accompany the slides (p.30 onwards)
Unit 1.3 Introduction to Programming (Part 1)Intan Jameel
This document discusses various formatting and layout features in Microsoft Word including inserting images, drawing objects, bookmarks, hyperlinks, and publishing documents as web pages. It provides steps to format text, add clips and pictures, divide documents into columns, and create links within and between documents. The goals are to help users learn how to create and format documents, and publish them online.
Más allá del Pokémon Go: Realidad Aumentada y Virtual en el AulaIsmael Burone
La realidad aumentada y virtual puede ampliar la información en las aulas mediante el uso de dispositivos y la creación de mundos virtuales que interactúan con el mundo real, permitiendo varios niveles de inmersión.
Este documento trata sobre las hemorragias del tubo digestivo, clasificándolas según su altura, severidad y causa. Una hemorragia masiva puede causar shock hipovolémico e incluso la muerte. El manejo inicial incluye asegurar las vías aéreas, canalizar venas y realizar exámenes. Para hemorragias altas, el tratamiento endoscópico es efectivo, mientras que las bajas a menudo requieren angiografía o cirugía. La morbimortalidad depende de factores como el volumen y veloc
Socialist Software Development - RubyConf 2010CJ Kihlbom
Socialism is often portrayed as pure evil by US media (hello Fox News), yet many socialist countries are ranked as some of the best countries in the world (Newsweek). So maybe it’s not all bad?
If you look at job listings for software developers, it seem like a lot of companies are looking for “programmer rock stars”, “coding ninjas”, etc. There is a romantic notion about the ultra productive independent super developer.
This talk examines software development from a socialist perspective. Might we get better results and provide more value if we set aside our egos and work together?
The document discusses the performance of HTTP/2 compared to HTTP/1.1 across different network conditions. It summarizes results from testing 8 real websites under 16 bandwidth and latency combinations with varying packet loss rates. Overall, HTTP/2 performs better for document complete time and speed index, especially on slower connections, though results vary depending on the specific site and metrics measured.
This document discusses programming TCP for responsiveness when sending HTTP/2 responses. It describes how to reduce head-of-line blocking by filling the TCP congestion window before sending data. The key points are reading TCP states via getsockopt to determine how much data can be sent immediately, and optimizing this only for high latency connections or small congestion windows to avoid additional response delays. Benchmarks show this approach can reduce response times from multiple round-trip times to a single RTT.
The document discusses optimizations to TCP and HTTP/2 to improve responsiveness on the web. It describes how TCP slow start works and the delays introduced in standard HTTP/2 usage from TCP/TLS handshakes. The author proposes adjusting the TCP send buffer polling threshold to allow switching between responses more quickly based on TCP congestion window state. Benchmark results show this can reduce response times by eliminating an extra round-trip delay.
Presentation material for TokyoRubyKaigi11.
Describes techniques used by H2O, including: techniques to optimize TCP for responsiveness, server-push and cache digests.
Cache aware-server-push in H2O version 1.5Kazuho Oku
This document discusses cache-aware server push in H2O version 1.5. It describes calculating a fingerprint of cached assets using a Golomb compressed set to identify what assets need to be pushed from the server. It also discusses implementing this fingerprint using a cookie or service worker. The hybrid approach stores responses in the service worker cache and updates the cookie fingerprint. H2O 1.5 implements cookie-based fingerprints to cancel push indications for cached assets, potentially improving page load speeds.
JSON SQL Injection and the Lessons LearnedKazuho Oku
This document discusses JSON SQL injection and lessons learned from vulnerabilities in SQL query builders. It describes how user-supplied JSON input containing operators instead of scalar values could manipulate queries by injecting conditions like id!='-1' instead of a specific id value. This allows accessing unintended data. The document examines how SQL::QueryMaker and a strict mode in SQL::Maker address this by restricting query parameters to special operator objects or raising errors on non-scalar values. While helpful, strict mode may break existing code, requiring changes to parameter handling. The vulnerability also applies to other languages' frameworks that similarly convert arrays to SQL IN clauses.
This document discusses using the prove command-line tool to run tests and other scripts. Prove is a test runner that uses the Test Anything Protocol (TAP) to aggregate results. It can run tests and scripts written in any language by specifying the interpreter with --exec. Extensions other than .t can be run by setting --ext. Prove searches for tests in the t/ directory by default but can run any kind of scripts or tasks placed in t/, such as service monitoring scripts. The .proverc file can save common prove options for a project.
JSX - developing a statically-typed programming language for the WebKazuho Oku
Kazuho Oku presents JSX, a statically-typed programming language that compiles to JavaScript. JSX aims to improve productivity over JavaScript by enabling errors to be caught at compile-time rather than runtime. It also aims to optimize code size and execution speed compared to JavaScript through type information and compiler optimizations. Oku discusses JSX language features like classes and types, benchmarks showing improved performance over JavaScript, and efforts to bind JSX to W3C standards through automatic translation of interface definition languages.