Compare commits
10 Commits
configurin
...
712b61059f
Author | SHA1 | Date | |
---|---|---|---|
712b61059f | |||
2ead146d6a | |||
0ac70566cd | |||
809599d830 | |||
2e2f7b9be1 | |||
b0f0d15475 | |||
e951f7217f | |||
f7023b4431 | |||
08ad6fb469 | |||
b93aab5742 |
@ -8,3 +8,4 @@ I live in Espoo Finland. You can contact me on any of the following services.
|
|||||||
- **Slack**: masser@functionalprogramming.slack.com
|
- **Slack**: masser@functionalprogramming.slack.com
|
||||||
- **IRC**: MasseR@freenode
|
- **IRC**: MasseR@freenode
|
||||||
- **Mastodon**: MasseR@mastodon.social
|
- **Mastodon**: MasseR@mastodon.social
|
||||||
|
- **Keybase**: [https://keybase.io/MasseR](https://keybase.io/MasseR)
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 25 KiB |
@ -28,4 +28,4 @@ My [GPG key](./resources/2104943D6033C.txt)
|
|||||||
- **Java**
|
- **Java**
|
||||||
- Bunch of different smaller projects while working at Avoltus Oy.
|
- Bunch of different smaller projects while working at Avoltus Oy.
|
||||||
- **Other**
|
- **Other**
|
||||||
- I was involved in creating an email solicit platform.
|
- I was involved in creating an email advertising platform.
|
||||||
|
22
js/api.js
22
js/api.js
@ -1,22 +0,0 @@
|
|||||||
|
|
||||||
var getApiIpfsCurrent = function(onSuccess, onError) {
|
|
||||||
var xhr = new XMLHttpRequest();
|
|
||||||
xhr.open('GET', '/api/ipfs/current', true);
|
|
||||||
xhr.setRequestHeader('Accept', 'application/json');
|
|
||||||
xhr.onreadystatechange = function () {
|
|
||||||
var res = null;
|
|
||||||
if (xhr.readyState === 4) {
|
|
||||||
if (xhr.status === 204 || xhr.status === 205) {
|
|
||||||
onSuccess();
|
|
||||||
} else if (xhr.status >= 200 && xhr.status < 300) {
|
|
||||||
try { res = JSON.parse(xhr.responseText); } catch (e) { onError(e); }
|
|
||||||
if (res) onSuccess(res);
|
|
||||||
} else {
|
|
||||||
try { res = JSON.parse(xhr.responseText); } catch (e) { onError(e); }
|
|
||||||
if (res) onError(res);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
xhr.send(null);
|
|
||||||
};
|
|
||||||
|
|
10
js/app.js
10
js/app.js
@ -1,10 +0,0 @@
|
|||||||
$(document).ready(function() {
|
|
||||||
var success = function(x) {
|
|
||||||
$("#ipfs > em").html(x);
|
|
||||||
};
|
|
||||||
var error = function(x) {
|
|
||||||
$("#ipfs").hide();
|
|
||||||
console.log("ipfs hash not found: " + x);
|
|
||||||
};
|
|
||||||
getApiIpfsCurrent(success, error);
|
|
||||||
});
|
|
2
js/jquery-3.3.1.min.js
vendored
2
js/jquery-3.3.1.min.js
vendored
File diff suppressed because one or more lines are too long
7
nixpkgs.json
Normal file
7
nixpkgs.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"url": "https://github.com/NixOS/nixpkgs",
|
||||||
|
"rev": "7e1f60dfbba67b975d1a77d710a6f1437fd9709c",
|
||||||
|
"date": "2020-02-01T09:20:37-05:00",
|
||||||
|
"sha256": "0vk55459iljr5dzwnr5661l44b0wdc15952lk2rjcmxr1620yr5v",
|
||||||
|
"fetchSubmodules": false
|
||||||
|
}
|
29
release.nix
29
release.nix
@ -1,8 +1,32 @@
|
|||||||
{ pkgs ? import <nixpkgs> {} }:
|
let
|
||||||
|
pin = builtins.fromJSON (builtins.readFile ./nixpkgs.json);
|
||||||
|
pinnedPkgs = with pin; import (builtins.fetchTarball {
|
||||||
|
url = "https://github.com/NixOS/nixpkgs/archive/${rev}.tar.gz";
|
||||||
|
inherit sha256;
|
||||||
|
}) {};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{ pkgs ? pinnedPkgs }:
|
||||||
|
|
||||||
let
|
let
|
||||||
haskellPackages = pkgs.haskellPackages;
|
haskellPackages = pkgs.haskellPackages;
|
||||||
site = pkgs.callPackage ./default.nix {};
|
site = pkgs.callPackage ./default.nix {};
|
||||||
|
website = with pkgs; stdenv.mkDerivation {
|
||||||
|
pname = "rauhala.info";
|
||||||
|
version = "0.1.0";
|
||||||
|
src = lib.cleanSource ./.;
|
||||||
|
LANG = "en_US.UTF-8";
|
||||||
|
LOCALE_ARCHIVE = lib.optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
|
||||||
|
buildPhase = ''
|
||||||
|
${site}/bin/site clean
|
||||||
|
${site}/bin/site build
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/
|
||||||
|
mv _site $out/share/html
|
||||||
|
'';
|
||||||
|
};
|
||||||
shell = pkgs.buildEnv {
|
shell = pkgs.buildEnv {
|
||||||
name = "site-shell";
|
name = "site-shell";
|
||||||
paths = [];
|
paths = [];
|
||||||
@ -16,6 +40,5 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
site = site;
|
inherit site shell website;
|
||||||
shell = shell;
|
|
||||||
}
|
}
|
||||||
|
43
site.hs
43
site.hs
@ -8,7 +8,11 @@ import Data.Time (formatTime, defaultTimeLocale)
|
|||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = hakyllWith defaultConfiguration{ deployCommand = "ipfs add -Q -r _site" } $do
|
main = hakyllWith defaultConfiguration $ do
|
||||||
|
match "well-known/*" $ do
|
||||||
|
route (customRoute (prepend '.'. toFilePath))
|
||||||
|
compile copyFileCompiler
|
||||||
|
|
||||||
match "images/*" $ do
|
match "images/*" $ do
|
||||||
route idRoute
|
route idRoute
|
||||||
compile copyFileCompiler
|
compile copyFileCompiler
|
||||||
@ -31,40 +35,6 @@ main = hakyllWith defaultConfiguration{ deployCommand = "ipfs add -Q -r _site" }
|
|||||||
>>= loadAndApplyTemplate "templates/default.html" defaultContext
|
>>= loadAndApplyTemplate "templates/default.html" defaultContext
|
||||||
>>= relativizeUrls
|
>>= relativizeUrls
|
||||||
|
|
||||||
match "posts/incomplete/*" $ do
|
|
||||||
route $ setExtension "html"
|
|
||||||
compile $ pandocCompiler
|
|
||||||
>>= loadAndApplyTemplate "templates/post.html" postCtx
|
|
||||||
>>= loadAndApplyTemplate "templates/default.html" postCtx
|
|
||||||
>>= relativizeUrls
|
|
||||||
|
|
||||||
match "posts/guides/*" $ do
|
|
||||||
route $ setExtension "html"
|
|
||||||
compile $ pandocCompiler
|
|
||||||
>>= loadAndApplyTemplate "templates/post.html" postCtx
|
|
||||||
>>= loadAndApplyTemplate "templates/default.html" postCtx
|
|
||||||
>>= relativizeUrls
|
|
||||||
|
|
||||||
match "posts/brainstorming/*" $ do
|
|
||||||
route $ setExtension "html"
|
|
||||||
compile $ pandocCompiler
|
|
||||||
>>= loadAndApplyTemplate "templates/post.html" postCtx
|
|
||||||
>>= loadAndApplyTemplate "templates/default.html" postCtx
|
|
||||||
>>= relativizeUrls
|
|
||||||
|
|
||||||
create ["guides.html"] $ do
|
|
||||||
route idRoute
|
|
||||||
compile $ do
|
|
||||||
posts <- modFirst =<< loadAll "posts/guides/*"
|
|
||||||
let archiveCtx =
|
|
||||||
listField "posts" postCtx (return posts) `mappend`
|
|
||||||
constField "title" "Guides" `mappend`
|
|
||||||
defaultContext
|
|
||||||
|
|
||||||
makeItem ""
|
|
||||||
>>= loadAndApplyTemplate "templates/guides.html" archiveCtx
|
|
||||||
>>= loadAndApplyTemplate "templates/default.html" archiveCtx
|
|
||||||
>>= relativizeUrls
|
|
||||||
|
|
||||||
|
|
||||||
match "templates/*" $ compile templateBodyCompiler
|
match "templates/*" $ compile templateBodyCompiler
|
||||||
@ -85,3 +55,6 @@ postCtx =
|
|||||||
modifiedField key format = field key $ \i -> do
|
modifiedField key format = field key $ \i -> do
|
||||||
time <- getItemModificationTime $ itemIdentifier i
|
time <- getItemModificationTime $ itemIdentifier i
|
||||||
return $ formatTime defaultTimeLocale format time
|
return $ formatTime defaultTimeLocale format time
|
||||||
|
|
||||||
|
prepend :: a -> [a] -> [a]
|
||||||
|
prepend = (:)
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
<header>
|
||||||
<div class="logo">
|
<!-- <div class="logo"> -->
|
||||||
<a href="/">rauhala.info</a>
|
<!-- <a href="/">rauhala.info</a> -->
|
||||||
</div>
|
<!-- </div> -->
|
||||||
<nav>
|
<nav>
|
||||||
<!-- Git logo from https://git-scm.com/downloads/logos -->
|
<!-- Git logo from https://git-scm.com/downloads/logos -->
|
||||||
<!-- Logo by Jason Long -->
|
<!-- Logo by Jason Long -->
|
||||||
@ -29,10 +29,6 @@
|
|||||||
<footer>
|
<footer>
|
||||||
Site proudly generated by
|
Site proudly generated by
|
||||||
<a href="http://jaspervdj.be/hakyll">Hakyll</a>
|
<a href="http://jaspervdj.be/hakyll">Hakyll</a>
|
||||||
<span id="ipfs">and found on IPFS as <em></em></ipfs>
|
|
||||||
</footer>
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
<script type="application/javascript" src="/js/jquery-3.3.1.min.js"></script>
|
|
||||||
<script type="application/javascript" src="/js/api.js"></script>
|
|
||||||
<script type="application/javascript" src="/js/app.js"></script>
|
|
||||||
</html>
|
</html>
|
||||||
|
111
well-known/keybase.txt
Normal file
111
well-known/keybase.txt
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
==================================================================
|
||||||
|
https://keybase.io/masser
|
||||||
|
--------------------------------------------------------------------
|
||||||
|
|
||||||
|
I hereby claim:
|
||||||
|
|
||||||
|
* I am an admin of https://masser.keybase.pub
|
||||||
|
* I am masser (https://keybase.io/masser) on keybase.
|
||||||
|
* I have a public key ASD7WFMicMJhoArgnvPuR7Dc92WStIUWWXcyngnsTE_IaQo
|
||||||
|
|
||||||
|
To do so, I am signing this object:
|
||||||
|
|
||||||
|
{
|
||||||
|
"body": {
|
||||||
|
"key": {
|
||||||
|
"eldest_kid": "01202eb5d3b8d2fc63e4bc9c6edefb3a38f1043dfdc44a7268393951fe0ea5214cf00a",
|
||||||
|
"host": "keybase.io",
|
||||||
|
"kid": "0120fb58532270c261a00ae09ef3ee47b0dcf76592b485165977329e09ec4c4fc8690a",
|
||||||
|
"uid": "b01557931e13482e9e646593a64e9119",
|
||||||
|
"username": "masser"
|
||||||
|
},
|
||||||
|
"merkle_root": {
|
||||||
|
"ctime": 1580587604,
|
||||||
|
"hash": "890506579950548b2aa6fd0f35850b9fdb1d064786714f18515d0e3089cdc2458c5fe847d40ca71c2e021ca11677de055ac97804c53d1bef89432f88b57599d4",
|
||||||
|
"hash_meta": "104419595abc52918530f85495417faf35c7a5a608d6730bf53152dfa7288970",
|
||||||
|
"seqno": 14451686
|
||||||
|
},
|
||||||
|
"service": {
|
||||||
|
"entropy": "QIvRp0qNOIZFplyzXERiwp75",
|
||||||
|
"hostname": "masser.keybase.pub",
|
||||||
|
"protocol": "https:"
|
||||||
|
},
|
||||||
|
"type": "web_service_binding",
|
||||||
|
"version": 2
|
||||||
|
},
|
||||||
|
"client": {
|
||||||
|
"name": "keybase.io go client",
|
||||||
|
"version": "4.3.1"
|
||||||
|
},
|
||||||
|
"ctime": 1580587641,
|
||||||
|
"expire_in": 504576000,
|
||||||
|
"prev": "c99f66ba0bfa7ff6be736e24691c8007b0db41b6036b7f1e5f9335ab7f3550f4",
|
||||||
|
"seqno": 34,
|
||||||
|
"tag": "signature"
|
||||||
|
}
|
||||||
|
|
||||||
|
which yields the signature:
|
||||||
|
|
||||||
|
hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEg+1hTInDCYaAK4J7z7kew3PdlkrSFFll3Mp4J7ExPyGkKp3BheWxvYWTESpcCIsQgyZ9mugv6f/a+c24kaRyAB7DbQbYDa38eX5M1q381UPTEIH8FtgpzXt/JJxrhAYknW7xL4+K57JBJnbhFpXWAfEH5AgHCo3NpZ8RApEnmCcZApdOTf+XAHRbbgoysAZHfyTHamWC/BEHKuqEf/BlUFSxo6ASa/YC+Y2sMJfW2iRFlP2bs822TyJTBA6hzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEINm3yJdAbmbGJd03EnpuKVh2JzkI8WkngbWbAxbbR0MMo3RhZ80CAqd2ZXJzaW9uAQ==
|
||||||
|
|
||||||
|
And finally, I am proving ownership of this host by posting or
|
||||||
|
appending to this document.
|
||||||
|
|
||||||
|
View my publicly-auditable identity here: https://keybase.io/masser
|
||||||
|
|
||||||
|
===================================================================
|
||||||
|
https://keybase.io/masser
|
||||||
|
--------------------------------------------------------------------
|
||||||
|
|
||||||
|
I hereby claim:
|
||||||
|
|
||||||
|
* I am an admin of https://rauhala.info
|
||||||
|
* I am masser (https://keybase.io/masser) on keybase.
|
||||||
|
* I have a public key ASD7WFMicMJhoArgnvPuR7Dc92WStIUWWXcyngnsTE_IaQo
|
||||||
|
|
||||||
|
To do so, I am signing this object:
|
||||||
|
|
||||||
|
{
|
||||||
|
"body": {
|
||||||
|
"key": {
|
||||||
|
"eldest_kid": "01202eb5d3b8d2fc63e4bc9c6edefb3a38f1043dfdc44a7268393951fe0ea5214cf00a",
|
||||||
|
"host": "keybase.io",
|
||||||
|
"kid": "0120fb58532270c261a00ae09ef3ee47b0dcf76592b485165977329e09ec4c4fc8690a",
|
||||||
|
"uid": "b01557931e13482e9e646593a64e9119",
|
||||||
|
"username": "masser"
|
||||||
|
},
|
||||||
|
"merkle_root": {
|
||||||
|
"ctime": 1580591326,
|
||||||
|
"hash": "2b1b8c5e3de98e3e80ec4b4c28270066744d5d0982c23e4c13ec97d9311e32996b0cc39ab07f51a2418f833d3f03c0219c7ebd8cdc9c99ac09d3f88d0b6129d1",
|
||||||
|
"hash_meta": "0e85fd563e1159d6c5b32f5c424d4c97101c3a11346a0dad77bdbf043ca4f287",
|
||||||
|
"seqno": 14452336
|
||||||
|
},
|
||||||
|
"service": {
|
||||||
|
"entropy": "7UNm+4us1fZE3TRssgGatBC2",
|
||||||
|
"hostname": "rauhala.info",
|
||||||
|
"protocol": "https:"
|
||||||
|
},
|
||||||
|
"type": "web_service_binding",
|
||||||
|
"version": 2
|
||||||
|
},
|
||||||
|
"client": {
|
||||||
|
"name": "keybase.io go client",
|
||||||
|
"version": "4.3.1"
|
||||||
|
},
|
||||||
|
"ctime": 1580591336,
|
||||||
|
"expire_in": 504576000,
|
||||||
|
"prev": "ed5dd9b2571746743f37dd55f59235bd46d7f7de01a2bafba14b9c0929751aee",
|
||||||
|
"seqno": 35,
|
||||||
|
"tag": "signature"
|
||||||
|
}
|
||||||
|
|
||||||
|
which yields the signature:
|
||||||
|
|
||||||
|
hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEg+1hTInDCYaAK4J7z7kew3PdlkrSFFll3Mp4J7ExPyGkKp3BheWxvYWTESpcCI8Qg7V3ZslcXRnQ/N91V9ZI1vUbX994Borr7oUucCSl1Gu7EIJld9Pai+YxhSvZUIA+ZyzwEEbpy98uEqp975YKAEdz9AgHCo3NpZ8RAtksa9w0UQrwg8dPGEzahht+hY4QKQthbZ/yWuOSmfA3C5E1/KorbIEi+tcy5lkSJqNbZRSqBgpl9zerYw5bbAahzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEICy29OKKJc5LUELFLo8kW15N3zex43ussKLFeGLhTDapo3RhZ80CAqd2ZXJzaW9uAQ==
|
||||||
|
|
||||||
|
And finally, I am proving ownership of this host by posting or
|
||||||
|
appending to this document.
|
||||||
|
|
||||||
|
View my publicly-auditable identity here: https://keybase.io/masser
|
||||||
|
|
||||||
|
===================================================================================================================================
|
Reference in New Issue
Block a user