Cleaning Tiny Applications Collection, I’ve dropped both artificial intelligence scripts. Not wanting to let them disappear completely, I’m posting them here for posterity. The first one is an eight line of code version that might be what Sid wrote as his first ever program:
#!/usr/bin/perl -wWtT
while (<>) {
if (/[aeiouyAEIOUY][^a-zA-Z]*$/) {
print "Yes.\n";
} elsif (!/^\s*$/) {
print "No.\n";
}
}
UserFriendlsy comic strip for 2000-10-14 in which Sid describes his eight-line AI program.
HTML has gone quite a long way since its inception. This means a lot of new features but also some small incompatibilities which may pose issues in certain situations. For instance, when posting a code snippet for others to include on their websites, it’s best if it works correctly on as many sites as possible which implies being compatible with as many versions of HTML as possible. But how to create a snippet that works both in HTML and XHTML? Here are a few tips:
CSS sprites aren’t anything new. They have been around for years, and are one of the methods to optimise website’s load time. The idea is to incorporate multiple images into one and in this way decrease number of round trips between the server and the browser.
In its traditional use, CSS sprites work as a replacement for images and cannot be used as a background. Alas that is exactly what I wanted to do with a quote and flag icons like the following:
Update: This website has evolved slightly since 2013. The flags are no longer used (replaced by content negotiation) and quote sprite icon has been replaced by an SVG. While I no longer use this technique, it is of course still valid.
After some playing around I’ve finally figured out how to get this working. Even though there are some caveats, sprites can be used as a top-left no-repeat background image as well.
This day must have come sooner or later. Even more so since I love squeezing every byte out of the data being sent over the network, which is why source of this website is so unreadable (don’t worry though, readable sources are available in a git repository).
So yeah. I’ve switched this website to HTML5 with some of it’s new elements and optional tags removed. After years of using XHTML 1.1 it feels a bit weird not closing tags, but I guess a few saved bytes are worth it, aren’t they? ;)
I’ve even got my electric slash working in Emacs’s html-mode (ie. if I press slash after < sign, inner most element is closed automatically).
Unfortunately, not all is so shiny. For some reason, automatic pagination on entries list page and ‘load content’ link stopped working under Opera. The way those work is by making an XMLHttpRequest and injecting portion of the fetched document in appropriate place. For some reason, Opera ends up with a DOMException: INVALID_STATE_ERR.
Surprisingly I couldn’t find any HTTPS-aware examples how to drop the www. prefix from web hosts in Apache, so I had to come up with one myself. Firstly, the following lines need to find their way to the end of Apache configuration file (/etc/httpd/conf/httpd.conf or something):
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1$1 [L,R=301]
Secondly, analogous lines need to be added inside of the <VirtualHost _default_:443> directive of mod_ssl configuration file (/etc/httpd/conf.d/ssl.conf or similar), like so:
<VirtualHost _default_:443>
# … various directives …# Here’s what needs to be added:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://%1$1 [L,R=301]
</VirtualHost>
Now, after a restart, Apache will drop the www. prefix for both secure and insecure connections.
@mastersthesis{Nazarewicz2013bsc,
title = {Alokacja ciągłych fizycznie obszarów pamięci w systemie {Linux}},
author = {Michał Nazarewicz},
year = 2013,
school = {WEiTI/ISE, PW},
address = {Warszawa},
type = {Praca inżynierska},
urn = {urn:pw-repo:WUT2a4eca3283974485823865112329121d},
url = {https:/mina86.com/2013/cma-po-polsku/}
}
ACM
Michał Nazarewicz. 2013. Alokacja ciągłych fizycznie obszarów pamięci w systemie Linux. Praca inżynierska. WEiTI/ISE, PW, Warszawa. https:/mina86.com/2013/cma-po-polsku/
APA
Nazarewicz, M. (2013). Alokacja ciągłych fizycznie obszarów pamięci w systemie Linux [Praca inżynierska, WEiTI/ISE, PW]. https:/mina86.com/2013/cma-po-polsku/
IEEE
M. Nazarewicz, „Alokacja ciągłych fizycznie obszarów pamięci w systemie Linux,” Praca inżynierska, WEiTI/ISE, PW, Warszawa, 2013. [Online]. https:/mina86.com/2013/cma-po-polsku/
Będę miał dzisiaj przyjemność prezentować Contiguous Memory Allocator na seminarium dyplomowym (CMA jest bowiem tematem mojej pracy). Dostępny jest również referat opisujący z większą zawartość slajdów. Aktualizacja: Z racji, że jestem już po obronie, dodaję również link do pracy inżynierskiej.
Prezentacja nie opisuje sposobu użycia CMA zatem po więcej szczegółów odsyłam do materiałów z LCE 2012. No i oczywiście jest również strona mina86.com/cma/, z której linkuję do przeróżnych materiałów dotyczących CMA.