commit 8c07d707f794f3935d395e5f6276053164e2ea73
parent d3852e44b7d16955aec581d73e641fe495cb1420
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date: Wed, 3 May 2023 10:43:26 +0200
Bumped version to 2.0.4; added back www
Diffstat:
4 files changed, 359 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
@@ -1,6 +1,6 @@
# See LICENSE file for copyright and license details.
-VERSION = 2.0.3
+VERSION = 2.0.4
PREFIX = /usr/local
MANPREFIX = ${PREFIX}/share/man
diff --git a/www/favicon.png b/www/favicon.png
Binary files differ.
diff --git a/www/index.html b/www/index.html
@@ -0,0 +1,253 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title> Nissy </title>
+ <meta name="viewport" content="width=device-width" />
+ <link rel="stylesheet" type="text/css" href="/style-3.css">
+ <link rel="icon" href="/favicon.png">
+ <meta charset="utf-8">
+</head>
+
+<body>
+
+<h1>Nissy</h1>
+
+<p class=subtitle>A Rubik's cube solver and FMC assistant</p>
+
+<p>
+Nissy is a command-line Rubik's cube solver. It can find optimal solutions
+for random positions using techniques from Herbert Kociemba's
+<a href="http://kociemba.org/cube.htm">Cube Explorer</a> and
+Tomas Rokicki's
+<a href="https://github.com/rokici/cube20src/blob/master/nxopt.md">nxopt</a>.
+With 4 cores at 2.5GHz and using about 3Gb of RAM, Nissy can find an optimal
+solution in about a minute on average.
+</p>
+
+<p>
+Nissy aims at being a complete tool
+for FMC (Fewest Moves Challenge) practice. It can solve different steps
+of Thistlethwaite's algorithm (also know as DR/HTR) and cans use NISS
+(Normal-Inverse Scramble Switch).
+</p>
+
+<p>
+You should use Nissy if:
+</p>
+<ul>
+<li>
+You want to analyze your DR solutions or check for multiple optimal
+(or sub-optimal) solutions for EO/DR/HTR or similar steps.
+</li>
+<li>
+You just want a Rubik's cube solver and you like command line interfaces.
+</li>
+<li>
+You want an alternative to Cube Explorer.
+</li>
+</ul>
+
+<p>
+To get started, head to the <a href="/download/">download</a> page.
+</p>
+
+<p>
+You can also look at its source code by cloning the git repository
+<a href="https://git.tronto.net/nissy-classic">git.tronto.net/nissy-classic</a>
+</p>
+
+<h1>Get Nissy</h1>
+
+<table class="dltable">
+<tr>
+ <td></td>
+ <td><strong>Source code</strong></td>
+ <td><strong>Windows executable</strong></td>
+</tr>
+<tr>
+ <td><strong>Latest version</strong></td>
+ <td><a href="/nissy-2.0.4.tar.gz">nissy-2.0.4.tar.gz (67Kb)</a></td>
+ <td><a href="/nissy-2.0.4.exe">nissy-2.0.4.exe (780Kb)</a></td>
+</tr>
+</table>
+
+<p>
+In this page you can find download links (see above),
+<a href="#Installation">installation instructions</a> and
+<a href="#Upgrade">upgrade instructions</a>
+for nissy. If instead you wish to clone the
+<a href="https://git.tronto.net/nissy-classic">git repository</a>,
+you can use git:
+</p>
+
+<pre>
+<code>git clone https://git.tronto.net/nissy-classic</code>
+</pre>
+
+<p>
+For a summary of changes and a list of older versions see below. Some versions
+(for example 1.0) are not available directly, but can be obtained from
+the git repository.
+</p>
+
+<h2 id="Installation">Installation</h2>
+
+<h3>System requirements</h3>
+
+<p>
+A full installation of nissy requires about 3.1Gb of space,
+of which 2.3Gb are occupied by the huge pruning table for fast optimal solving,
+and running it requires the same amount of RAM.
+One can choose to never use this function and not to install the relative
+pruning table. There is an alternative (slower)
+optimal solving function that uses about 500Mb of RAM.
+
+When generating the pruning tables automatically (see the section Tables below),
+at least 5.3Gb or RAM are required.
+</p>
+
+<h3>Windows</h3>
+
+<p>
+Try downloading and executing in a terminal the file <code>nissy.exe</code>,
+then follow the instructions in the <strong>Tables</strong> section below for
+installing the pruning tables.
+If <code>nissy.exe</code> does not work, you can try following the UNIX instructions
+in WSL (Windows Subsystem for Linux) or in a similar environment.
+</p>
+
+<h3>UNIX (Linux, MacOS, *BSD...)</h3>
+<p>
+Download the source archive (.tar.gz). Extract it
+with your favorite archive program, for example with
+</p>
+<pre><code>tar -xvzf nissy-VERSION.tar.gz</code></pre>
+<p>
+Open a terminal in the directory just extracted.
+If you wish, edit the <code>Makefile</code> to match your local configuration
+(this is usually not necessary, but you may want to change the
+<code>PREFIX</code> variable to change the installation path) and run
+<pre><code>make</code></pre>
+<p>
+followed by
+</p>
+<pre><code>make install</code></pre>
+<p>
+Then follow the instructions below to install the pruning tables.
+</p>
+
+<h3>Tables</h3>
+
+<p>
+Once you have installed nissy, run
+</p>
+
+<pre><code>nissy gen</code></pre>
+
+<p>
+to generate all the tables that Nissy will ever need.
+Running this command requires around 5.3Gb of RAM, and it can take some time
+(about 40 minutes on my fairly old but decent laptop, with 8 CPU threads).
+</p>
+
+<p>
+Some unnecessary technical detail: by default this command is going to use
+at most 64 threads. If you want you can choose to use more threads (if your CPU
+is very powerful) or fewer threads (if you for example want to run this command
+in the background while you do other stuff) with the <code>-t</code> option, for
+example <code>nissy gen -t 1</code>.
+</p>
+
+<p>
+Alternatively, you can
+<a href="/nissy-tables-2.0.4.zip">download all the tables (1.7Gb)</a> and
+copy them into the correct folder (see manual page, <code>ENVIRONMENT</code>
+section). On UNIX operating systems this folder is either
+<code>.nissy/tables</code> in the user's home directory or
+<code>$XDG_DATA_HOME/nissy/tables</code> if the XDG variable is configured.
+On Windows it is the same directory as the <code>nissy.exe</code> executable
+file.
+</p>
+
+<h2 id="Upgrade">Upgrading</h2>
+<p>
+If you already have nissy installed and you want to upgrade to a more
+recent version, you can simply repeat the installation process:
+</p>
+<ul>
+<li>
+On Windows: simply replace nissy.exe with the new file with the same name.
+</li>
+<li>
+On UNIX systems: download the new version of the source code, extract it in
+a new folder and run <code>make</code> and <code>make install</code> again.
+</li>
+</ul>
+<p>
+Between each version new table files might have been added, or old ones
+may be not used anymore. Nissy will deal with this automatically.
+</p>
+
+<h2>Version history</h2>
+
+<h3>Nissy v2</h3>
+
+<table class=dltable>
+<tr>
+ <td><strong>Version</strong></td>
+ <td><strong>Date</strong></td>
+ <td><strong>Comment</strong></td>
+</tr>
+<tr>
+ <td><a href="/nissy-2.0.4.tar.gz">2.0.4</a></td>
+ <td>2023-05-03</td>
+ <td>Fixed bug on ARM; added corners-dr step</td>
+</tr>
+<tr>
+ <td><a href="/nissy-2.0.3.tar.gz">2.0.3</a></td>
+ <td>2022-09-10</td>
+ <td>Fixed bug in scramble dr</td>
+</tr>
+<tr>
+ <td><a href="/nissy-2.0.2.tar.gz">2.0.2</a></td>
+ <td>2022-06-01</td>
+ <td>Improved table generation speed</td>
+</tr>
+<tr>
+ <td><a href="/nissy-2.0.1.tar.gz">2.0.1</a></td>
+ <td>2022-02-22</td>
+ <td>Bugfix release</td>
+</tr>
+<tr>
+ <td>2.0</td>
+ <td>2021-12-29</td>
+ <td>Rewritten from scratch; much faster optimal solver</td>
+</tr>
+</table>
+
+<h3>Nissy v1</h3>
+
+<p>
+Nissy v1 was released in 2020. It was slow, full of bugs and the code
+was quite terrible. But in practice it got its job done most of the time.
+</p>
+
+<hr class="line">
+
+<nav class="bottom">
+ <table class="footer">
+ <tr>
+ <td class="contact">
+ <a href="https://sebastiano.tronto.net">sebastiano.tronto.net</a>
+ </td>
+ <td class="hosted">
+ <a href="mailto:sebastiano@tronto.net">
+ sebastiano@tronto.net
+ </a>
+ </td>
+ </tr>
+ </table>
+</nav>
+
+</body>
+</html>
diff --git a/www/style-3.css b/www/style-3.css
@@ -0,0 +1,105 @@
+.menu {
+ width: 100%;
+}
+
+.links {
+ text-align: right;
+ font-weight: bold;
+}
+
+.logo img {
+ width: 50px;
+ height: 50px;
+}
+
+.footer {
+ font-style: italic;
+ width: 100%;
+}
+
+.hosted {
+ text-align: right;
+}
+
+body {
+ margin: auto 8px 20px 8px;
+}
+
+img {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 100%;
+}
+
+code {
+ background-color: #eeeeee;
+ padding: 2px;
+}
+
+pre code {
+ padding: 0px;
+}
+
+pre {
+ background-color: #eeeeee;
+ border: 2px solid;
+ padding: 6px;
+}
+
+#blob {
+ background: #ffffff;
+ border: none;
+}
+
+a {
+ color: #0f2899;
+ text-decoration: none;
+}
+
+.links a {
+ font-weight: bold;
+ color: black;
+}
+
+.hosted a,
+.contact a {
+ font-weight: bold;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+html {
+ margin: 1em auto;
+ max-width: 42em;
+}
+
+h1 {
+ text-align: center;
+}
+
+td h1 {
+ text-align: left;
+ font-size: 1.5em;
+}
+
+table {
+ width: 100%;
+}
+
+.url td {
+ font-family: monospace;
+}
+
+.dltable th, .dltable td {
+ border: 1px solid black;
+ padding: 3px;
+}
+
+.subtitle {
+ text-align: center;
+ font-weight: bold;
+ font-size: 1.1em;
+}