* [ANN] yahns 1.17.0 -_- sleepy app server for Ruby
@ 2019-04-22 7:37 5% Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2019-04-22 7:37 UTC (permalink / raw)
To: ruby-talk, yahns-public
Earth day release of a server designed for low energy use!
A Free Software, multi-threaded, non-blocking network
application server designed for low _idle_ power consumption.
It is primarily optimized for applications with occasional users
which see little or no traffic. yahns currently hosts Rack/HTTP
applications, but may eventually support other application
types. Unlike some existing servers, yahns is extremely
sensitive to fatal bugs in the applications it hosts.
* git clone https://yhbt.net/yahns.git
* https://yhbt.net/yahns.git/about/
* https://yhbt.net/yahns/NEWS.atom.xml (supported by most "RSS" readers)
* we only accept plain-text email yahns-public@yhbt.net
* and archive all the mail we receive: https://yhbt.net/yahns-public/
* nntp://news.public-inbox.org/inbox.comp.lang.ruby.yahns
lrg nabgure ubeevoyl-anzrq freire :>
Changes:
This releases includes a few kqueue-related bugfixes from
Lin Jen-Shin <godfat@godfat.org>. There's also some
shutdown_timeout-related bugfixes and some cleanups to
reduce dependencies on kgio.
extras/exec_cgi and extras/autoindex both got some minor
updates; the latter of which defaults to a dark scheme to save
power on OLED and CRT displays (it is Earth Day, after all :>)
Eric Wong (25):
doc: fix git URLs in README and HACKING
http_client: do not warn on do_pread overreach
remove IO#close_on_exec= calls
yahns/worker: shrink pipe under Linux
test/test_extras_exec_cgi.rb: improve test reliability
extras/exec_cgi: remove kgio dependency
extras/exec_cgi: update copyright year and use SPDX
extras/exec_cgi: @body_tip is always set
extras/exec_cgi: support Process.spawn options (e.g. RLIMIT_*)
server_mp: favor "Kernel#select" instead of "IO.select"
server_mp: remove redundant srand call
extras/exec_cgi: remove unecessary .freeze calls
server: respect shutdown_timeout
server: extra shutdown timeout debugging
wbuf: use IO#write directly in Ruby 2.5+ for writev
worker: rely on F_SETPIPE_SZ to set mininum value
remove calls to kgio_wait_* able
do not shutdown until listeners are all stopped
README: remove SMTP-based subscription info
sigevent_*: fixup non-eventfd path
README: note HTTPS support for HTTP/1.1
extras/autoindex: use dark colors by default
doc: update homepage to point to cgit install
doc: update wording to avoid "mailing list"
doc: remove inaccurate comment about "GNU-ism"
Lin Jen-Shin (2):
Add QueueQuitter#closed? to queue_quitter_pipe.rb
@srv.shutdown could raise Errno::ENOTCONN
Please note the disclaimer:
yahns is extremely sensitive to fatal bugs in the apps it hosts. There
is no (and never will be) any built-in "watchdog"-type feature to kill
stuck processes/threads. Each yahns process may be handling thousands
of clients; unexpectedly killing the process will abort _all_ of those
connections. Lives may be lost!
yahns hackers are not responsible for your application/library bugs.
Use an application server which is tolerant of buggy applications
if you cannot be bothered to fix all your fatal bugs.
*zzzzzzz*
^ permalink raw reply [relevance 5%]
* [PATCH] extras/autoindex: use dark colors by default
@ 2019-04-21 21:24 7% Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2019-04-21 21:24 UTC (permalink / raw)
To: yahns-public
Some browsers (e.g. Firefox 67.0a1 via "ui.systemUsesDarkTheme") are
adding support for the "prefers-color-scheme" @media query. So this
allows pages to respect user choice when it comes to dark or light
schemes.
OLED and CRT displays measure significant power savings when using
dark schemes. Dark themes work better with less ambient light, so
favoring darkness can lead to overall power savings even with CCFL
and LED-lit displays.
---
| 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
--git a/extras/autoindex.rb b/extras/autoindex.rb
index 45b80cf..9060c6c 100644
--- a/extras/autoindex.rb
+++ b/extras/autoindex.rb
@@ -14,6 +14,21 @@ class Autoindex
FN = %{<a href="%s">%s</a>}
TFMT = "%Y-%m-%d %H:%M"
+ # default to a dark, web-safe (216 color) palette for power-savings.
+ # Color-capable browsers can respect the prefers-color-scheme:light
+ # @media query (browser support a work-in-progress)
+ STYLE = <<''.gsub(/^\s*/m, '').delete!("\n")
+@media screen {
+ *{background:#000;color:#ccc}
+ a{color:#69f;text-decoration:none}
+ a:visited{color:#96f}
+}
+@media screen AND (prefers-color-scheme:light) {
+ *{background:#fff;color:#333}
+ a{color:#00f;text-decoration:none}
+ a:visited{color:#808}
+}
+
def initialize(app, *args)
app.respond_to?(:root) or raise ArgumentError,
"wrapped app #{app.inspect} does not respond to #root"
@@ -139,8 +154,9 @@ def call(env)
path_info_html = path_info_ue.split(%r{/}, -1).map! do |part|
Rack::Utils.escape_html(part)
end.join("/")
- body = "<html><head><title>Index of #{path_info_html}</title></head>" \
- "<body><h1>Index of #{path_info_html}</h1><hr><pre>\n" \
+ body = "<html><head><title>Index of #{path_info_html}</title>" \
+ "<style>#{STYLE}</style>" \
+ "</head><body><h1>Index of #{path_info_html}</h1><hr><pre>\n" \
"#{dirs.concat(files).join("\n")}" \
"</pre><hr></body></html>\n"
h = { "Content-Type" => "text/html", "Content-Length" => body.size.to_s }
--
EW
^ permalink raw reply related [relevance 7%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2019-04-21 21:24 7% [PATCH] extras/autoindex: use dark colors by default Eric Wong
2019-04-22 7:37 5% [ANN] yahns 1.17.0 -_- sleepy app server for Ruby Eric Wong
Code repositories for project(s) associated with this public inbox
https://yhbt.net/yahns.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).