Tagged project on Rasmus.krats.sehttps://rasmus.krats.se/tag/project.en2023-07-09T12:45:05+00:00Reminiscing this and that, on the web since 1994.Rsass 0.28.0 releasedhttps://rasmus.krats.se/2023/rsass028.en2023-07-09T12:45:05+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj2023-07-09T12:45:05+00:00<p>It is time to announce <a href="https://lib.rs/crates/rsass" data-type='ReferenceUnknown'>rsass</a>, <a href="https://lib.rs/crates/rsass-macros" data-type='ReferenceUnknown'>rsass-macros</a> and
<a href="https://lib.rs/crates/rsass-cli" data-type='ReferenceUnknown'>rsass-cli</a> version 0.28.0.
Almost half a year has gone since <a href="/2023/rsass027.en" data-type='Inline'>the last release</a>,
and as usual, there is a bunch of breaking changes and a bunch of
improvements.</p>
<p>A small symbolic milestone is that 2/3 of the tests in sass-spec now passes
(up from 66.5 % in the previous release to 66.8 % now).
Also, I have reduced the number of cases where rsass fails with the wrong
output even further.</p>
<p>My thanks to new contributor <a href="https://github.com/greyhillman" data-type='Inline'>Grey Hill</a>.</p>
<p class='readmore'><a href='https://rasmus.krats.se/2023/rsass028.en'>Read whole <q>Rsass 0.28.0 released</q>.</a></p>Command line interface <code>url</code>https://rasmus.krats.se/2023/url-cli.en2023-02-05T23:25:08+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj2023-02-05T23:25:08+00:00<p>I wrote a little command-line interface for sending a http request and
getting the response.
I call the package <a href="https://lib.rs/crates/url-cli" data-type='ReferenceUnknown'>url-cli</a>, and the command itself is <code>url</code>.
It has sub-commands for the different http methods.</p>
<p>If you have a rust toolchain installed, you can get it by cargo install.
I haven’t made any binary packages yet.</p>
<pre data-lang="sh"><span class="syhsource syhshell syhbash"><span class="syhmeta syhfunction-call syhshell"><span class="syhsupport syhfunction syhcolon syhshell">:</span></span><span class="syhkeyword syhoperator syhlogical syhcontinue syhshell">;</span> <span class="syhmeta syhfunction-call syhshell"><span class="syhvariable syhfunction syhshell">cargo</span></span><span class="syhmeta syhfunction-call syharguments syhshell"> install url-cli</span>
<span class="syhmeta syhfunction-call syhshell"><span class="syhvariable syhfunction syhshell">[...</span></span><span class="syhmeta syhfunction-call syharguments syhshell"> building, installing ...]</span>
<span class="syhmeta syhfunction-call syhshell"><span class="syhsupport syhfunction syhcolon syhshell">:</span></span><span class="syhkeyword syhoperator syhlogical syhcontinue syhshell">;</span> <span class="syhmeta syhfunction-call syhshell"><span class="syhvariable syhfunction syhshell">url</span></span><span class="syhmeta syhfunction-call syharguments syhshell"> get https://rasmus.krats.se/2023/url-cli.en</span>
<span class="syhmeta syhfunction-call syhshell"></span><span class="syhmeta syhfunction-call syharguments syhshell"><span class="syhkeyword syhoperator syhassignment syhredirection syhshell"><</span>!doctype html<span class="syhkeyword syhoperator syhassignment syhredirection syhshell">></span>
</span><span class="syhmeta syhfunction-call syhshell"><span class="syhvariable syhfunction syhshell">[...</span></span><span class="syhmeta syhfunction-call syharguments syhshell"> and all the rest of the html for this web page ...]</span>
</span></pre>
<p class='readmore'><a href='https://rasmus.krats.se/2023/url-cli.en'>Read whole <q>Command line interface <code>url</code></q> with 2 comments.</a></p>Rsass 0.27.0 releasedhttps://rasmus.krats.se/2023/rsass027.en2023-01-17T21:06:29+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj2023-01-17T21:06:29+00:00<p>Again, after almost four months since <a href="/2022/rsass026.en" data-type='Inline'>the last
release</a>, it is time to announce <a href="https://lib.rs/crates/rsass" data-type='ReferenceUnknown'>rsass</a> 0.27.0.
There is a bunch of breaking changes and a bunch of improvements.</p>
<p>This time, one change may seem drastic: The <code>rsass</code> crate no longer
contains the command-line program rsass.
Instead, that is now provided by a separate <code>rsass-cli</code> crate.
So you no longer have to enable a “commandline” feature, instead you can
install the command line interface with:</p>
<pre data-lang="sh"><span class="syhsource syhshell syhbash"><span class="syhmeta syhfunction-call syhshell"><span class="syhsupport syhfunction syhcolon syhshell">:</span></span><span class="syhkeyword syhoperator syhlogical syhcontinue syhshell">;</span> <span class="syhmeta syhfunction-call syhshell"><span class="syhvariable syhfunction syhshell">cargo</span></span><span class="syhmeta syhfunction-call syharguments syhshell"> install rsass-cli</span>
</span></pre>
<p>There is also a new <a href="https://lib.rs/crates/rsass-macros" data-type='ReferenceUnknown'>rsass-macros</a> crate.
Read on into <a href="/2023/rsass027.en#macros" data-type='Inline'>the Macros section</a> for that.</p>
<p class='readmore'><a href='https://rasmus.krats.se/2023/rsass027.en'>Read whole <q>Rsass 0.27.0 released</q>.</a></p>Rsass 0.26.0 releasedhttps://rasmus.krats.se/2022/rsass026.en2022-09-18T20:04:43+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj2022-09-18T20:04:43+00:00<p>More than three months after the last release, is is now the time to
announce <a href="https://lib.rs/crates/rsass" data-type='ReferenceUnknown'>rsass</a> 0.26.0.
There is a bunch of breaking changes and a bunch of improvements.
The <a href="https://github.com/kaj/rsass/blob/main/CHANGELOG.md" data-type='Inline'>changelog</a> has
the whole (too long) list.</p>
<p>But this time, some of the changes may go a bit deeper.
As usual, the breaking changes is breaking mainly to users who in some way
modify the global context from rust code, maybe by providing their own
builtin functions or maybe just by inserting a global variable.</p>
<p>Also this time, there is an improved way of calling ructe from a cargo
<code>build.rs</code> program, see <a href="/2022/rsass026.en#cargo" data-type='Inline'>the Cargo section</a> below.</p>
<p class='readmore'><a href='https://rasmus.krats.se/2022/rsass026.en'>Read whole <q>Rsass 0.26.0 released</q>.</a></p>A compiling template system in Rusthttps://rasmus.krats.se/2016/ructe.en2016-10-07T18:32:00+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj2016-10-07T18:32:00+00:00<p>When developing web applications, it is often useful to have a
<em>template system</em>.
Something that lets you write generic versions of web pages, that the
application can fill with the specific content for each page it should
show.</p>
<p>There exists lots of “languages” to write such templates, such as
<a href="https://mustache.github.io/mustache.5.html" data-type='Inline'>mustache</a>,
<a href="http://jinja.pocoo.org/" data-type='Inline'>jinja2</a>, and
<a href="https://www.playframework.com/documentation/2.5.x/ScalaTemplates" data-type='Inline'>play 2 scala templates (twirl)</a>.
Most fits very well with a dynamic language, where you can get
properties from an object, or even call a method, by its name in a
plain string.
In a statically compiled language, the actual names of fields and
methods are not relevant, and generally not present, after
compilation.
This makes a “dynamic” template language a hard match for a compiling
language such as rust.
So why not try to create a better match?</p>
<p class='readmore'><a href='https://rasmus.krats.se/2016/ructe.en'>Read whole <q>A compiling template system in Rust</q> with 3 comments.</a></p>Chordlab: chopro to pdfhttps://rasmus.krats.se/2008/chordlab.en2010-10-20T05:55:00+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj2008-02-12T00:15:00+00:00<figure class='sidebar front' data-type='ReferenceUnknown'><a href='https://img.krats.se/img/49696-m.jpg'><img src='https://img.krats.se/img/49696-s.jpg' alt='' width='288' height='202'></a><figcaption>Two chord grids from the chordlab output. </figcaption></figure>
<p>Chordlab is a command line program I wrote to create <a href="https://en.wikipedia.org/wiki/pdf" title="Se pdf på wikipedia" data-type='ReferenceUnknown'>pdf</a>
songbooks from chopro source.</p>
<p>Normal usage is to give chordlab a list of chopro files (each
containing one or more songs).
Chordlab then produces a pdf of one page for each song.
Long songs can span several pages, as needed.
Since the lines of a song text is often short, chordlab supports pages
with multiple columns.</p>
<p class='readmore'><a href='https://rasmus.krats.se/2008/chordlab.en'>Read whole <q>Chordlab: chopro to pdf</q>.</a></p>imaputilhttps://rasmus.krats.se/2002/imaputil.en2007-12-18T07:50:00+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj2002-07-02T18:56:02+00:00<p>Some simple command-line utilities for mail management over imap.</p>
<p>Since <a href="https://en.wikipedia.org/wiki/imap" title="Se imap på wikipedia" data-type='ReferenceUnknown'>imap</a> is a nice protocol to handle email messages
independent of <abbr title="mail user agent">MUA</abbr>, some
functionality is wanted <abbr>MUA</abbr>-independently.
imaputil is a few simple perl programs to run in a command line
context.</p>
<p>These utilities depend on an external program to connect to the server
and take care of the <a href="https://en.wikipedia.org/wiki/Kerberos_(protocol)" title="Se Kerberos (protocol) på wikipedia" data-type='ReferenceUnknown'>Kerberos</a> and/or <a href="https://en.wikipedia.org/wiki/SSL" title="Se SSL på wikipedia" data-type='ReferenceUnknown'>SSL</a> stuff.
I use <code>imtest</code> from the
<a href="http://asg.web.cmu.edu/cyrus/imapd/" data-type='Inline'>cyrus-imap</a> package, but it
should be easily replaceable.</p>
<p><strong><!-- Strong -->Update 2007-12-18 07:50:</strong>
A new release: <em>imaputil 0.6</em> is
<a href="ftp://ftp.stacken.kth.se/pub/projects/imaputil/" data-type='Inline'>on the ftp server</a>.</p>
<ul><li>The imap-append command is addedd.</li>
<li>Manual page corrections.</li>
</ul>
<p class='readmore'><a href='https://rasmus.krats.se/2002/imaputil.en'>Read whole <q>imaputil</q>.</a></p>StyleScripthttps://rasmus.krats.se/1998/stylescript.en2003-12-28T12:00:00+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj1998-12-14T12:00:00+00:00<p>An open-source <abbr>HTML</abbr> / <abbr>SGML</abbr> printer that uses
<abbr>CSS</abbr>2.</p>
<p>StyleScript reads a <abbr>HTML</abbr> / <abbr>SGML</abbr> file, local
or from an URL, and writes a Postscript file.
I use the <a href="http://www.jclark.com/sp/" data-type='Inline'>sp</a> library, so only files that
names a <a href="https://foldoc.org/dtd" title="Se dtd i free online dictionary of computing" data-type='ReferenceUnknown'>dtd</a> and conforms to it is supported.</p>
<p>If your document passes the
<a href="http://validator.w3.org/" data-type='Inline'><abbr>W3C</abbr> validator</a> without errors,
it should be printable.</p>
<p><strong><!-- Strong -->Update 2003-12-28:</strong>
<em>StyleScript is dead, viva
<a href="http://www.stacken.kth.se/project/pptout/" data-type='Inline'>Passepartout</a></em></p>
<p class='readmore'><a href='https://rasmus.krats.se/1998/stylescript.en'>Read whole <q>StyleScript</q>.</a></p>webredirecthttps://rasmus.krats.se/2001/webredirect.en2003-07-17T12:00:00+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj2001-01-17T22:34:16+00:00<p>A small web server serving “301 Moved Permanently” or “302 Moved
Temporarily” to all requests.</p>
<p><strong><!-- Strong -->Update 2003-07-17:</strong>
Relase 0.3 of webredirect is out <a href="ftp://ftp.stacken.kth.se/pub/projects/webredirect/" data-type='Inline'>on the ftp
server</a>. The main
news in this release are:</p>
<p>Updated the C++ language usage, so this version works with gcc 3.x
(and should work with other standard-compliant C++ compilers).</p>
<p class='readmore'><a href='https://rasmus.krats.se/2001/webredirect.en'>Read whole <q>webredirect</q>.</a></p>XkBiffhttps://rasmus.krats.se/1996/xkbiff.en2002-07-09T12:00:00+00:00Rasmus Kajhttps://rasmus.krats.se/rkaj1996-05-03T12:00:00+00:00<figure class='sidebar front' data-type='ReferenceUnknown'><a href='https://img.krats.se/img/7374-m.jpg'><img src='https://img.krats.se/img/7374-s.jpg' alt='' width='288' height='288'></a><figcaption>Waiting for mail </figcaption></figure>
<p>XkBiff is my attempt at a <em>biff</em> program that understands <em>kpop</em>.
When there is mail, it pops up another window featuring the <em>From</em> and
<em>Subject</em> fields of the mails.</p>
<p><strong><!-- Strong -->Update 2002-07-09:</strong>
The XkBiff project is discontinued and no longer maintained, mainly
because I don’t even use <a href="https://foldoc.org/POP" title="Se POP i free online dictionary of computing" data-type='ReferenceUnknown'>POP</a> anymore.
If you want to use it, you probably have to fix it as well.</p>
<p class='readmore'><a href='https://rasmus.krats.se/1996/xkbiff.en'>Read whole <q>XkBiff</q>.</a></p>