aboutsummaryrefslogtreecommitdiff
path: root/public/making-cgit-look-nicer.html
blob: 35897ac030796089c5335f2e146c554708f1200e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
<!doctype html><html lang=en-us><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL69vf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv76+/8LBwQkAAAAAAAAAAAAAAAC+vb3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL+9vf/Bv78JAAAAAAAAAAAAAAAAu7q6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7ubr/vr29CAAAAAAAAAAAy8nJAZ6foP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnqGj/6GipAoAAAAAHLjU/xcXHf/BwsL/I8XY/yPK3v8XGiD/IbjL/yPF2f8XGiD/Fxkf/yLF2f8gnK3/Fxog/62ztv8fwNf/FRcd/x271v8mz93/GRsi/xkXHf8p097/GiIp/xobIv8p0t3/KdPe/xocIv8fYmr/KNPe/xoZH/8aHCL/J87c/xy81/8VFxz/IsPZ/8zS0/8XGiD/Ir/R/yPH2/8XGiD/Fxkf/yPH2/8dd4T/GBog/yPJ3f8jyNr/uru9/xcUGv8cudb/EhITDKi5vRKlvMP/RUpOERwcHRAdOj4QHTk8EBwdHRAdNTgQHTo/EBwcHRAcHB0QSGduEKW4vf+koqQfHzg+EBqz0ewSFRv7EyMr/xq51vsTERb7ExUb+xq41fsau9j7ExUb+xiPp/sZudb7ExUb+xMVG/sZuNX/GKvI/BIUGfMdvdn/IrfL/xcaIP8n1eb/J9Dh/xkcIf8ZGR7/J8/f/xxCSv8ZGyH/J9Dg/ybQ4P8ZHCL/FSQs/yPK3/8UExj/GE1b/ybS5P8ZGB7/Ghwj/ynW5P8p2Ob/Ghwi/yWrtv8p1eH/Ghwi/xocIv8p1uT/J8XT/xkcIv8m1un/Hb7d/xUYH/8hzOr/HtHu/xcaIf8XGB//I8vi/xgxOv8XGSD/I8rg/yPK4P8XGiD/GUFL/yPP6f8SERj/Fhkh/x3A4f8AAAAAJ2f9/ydr//8mZPH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlYu38J2v//ydo/f8AAAAAAAAAAAd8/fkFqf//Iob8sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMY39awWr//8FfP3/AAAAAAAAAAAFm/7/SfD//wR+/f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOB/f9B7v//BaX+/wAAAAAAAAAAQ878SAyZ/v9n1v4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADu9v8DDJb+/z3N/XgAAAAA3/sAAN/7AADf+wAA3/sAAAAAAAAAAAAAAAAAAN/7AAAAAAAAAAAAAAAAAAAAAAAAj/EAAI/5AACP8QAA3/sAAA==" rel=icon type=image/x-icon><title>Making cgit look nicer</title><meta name=description content="For personal use I have a private Git serverset up and I use GitHub just as a mirror."><link rel=alternate type=application/rss+xml title="Mitja Felicijan's posts" href=https://mitjafelicijan.com/index.xml><link rel=alternate type=application/rss+xml title="Mitja Felicijan's notes" href=https://mitjafelicijan.com/notes.xml><style>body{padding:1rem;max-width:760px;background:#fff;font-family:sans-serif;line-height:1.35rem;font-size:16px;margin:0 auto}hr{margin-block-start:1.5rem}h1,h2,h3{line-height:initial}h1{font-size:xx-large}footer{margin-block-start:2rem}cap{text-transform:capitalize}table{max-width:100%;width:100%;border-collapse:separate;border-spacing:2px;border:1px solid #000;border-left:1px solid #999;border-top:1px solid #999}blockquote{font-style:italic}table thead{background:#eee}ul.list li{padding:.2em 0}ul{line-height:1.4em}td,th{border:1px solid #000;padding:4px;border-right:1px solid #999;border-bottom:1px solid #999;text-align:left}pre{text-wrap:nowrap;overflow-x:auto;padding:0 1em;border:1px solid #dcdcdc}code{padding:0 3px;font-size:14px;border:0}pre code{line-height:1.3em}pre,code,pre *,code *{font-family:monospace}figure{margin-inline-start:0;margin-inline-end:0}figcaption{text-align:center}figcaption p{margin:.3em 0 0}img,video,audio{max-width:100%}header{display:flex;flex-direction:row;gap:3rem}nav{display:flex;gap:.75rem}nav.main{flex-grow:1}.pstatus-orange{background:gold}.pstatus-green{background:#9acd32}.pstatus-red{background:#cd5c5c}@media only screen and (max-width:600px){body{padding:15px}header{flex-direction:column;gap:1rem}a{word-wrap:break-word}}</style><header><nav class=main itemscope itemtype=http://schema.org/SiteNavigationElement role=toolbar><a href=/>Home</a>
<a href=https://files.mitjafelicijan.com/ target=_blank>Files</a>
<a href=/mitjafelicijan.pgp.pub.txt target=_blank>PGP</a>
<a href=/curriculum-vitae.html>CV</a>
<a href=/index.xml target=_blank>RSS</a></nav></header><main role=main><article itemtype=http://schema.org/Article><h1 itemtype=headline>Making cgit look nicer</h1><p><cap>note</cap>, Jun 24, 2023 on <a href=https://mitjafelicijan.com>Mitja Felicijan's blog</a><div><p>For personal use I have a <a href=https://git.mitjafelicijan.com>private Git server</a>
set up and I use GitHub just as a mirror. By default the cgit theme looks a bit
dated so I made the flowing theme.<ul><li><code>/etc/cgitrc</code></ul><pre tabindex=0 style=background-color:#fff><code><span style=display:flex><span>css=<span style=color:#a31515>/cgit.css</span>
</span></span><span style=display:flex><span>logo=<span style=color:#a31515>/startrek.gif</span>
</span></span><span style=display:flex><span>favicon=<span style=color:#a31515>/favicon.png</span>
</span></span><span style=display:flex><span>source-filter=<span style=color:#a31515>/usr/lib/cgit/filters/syntax-highlighting-edited.sh</span>
</span></span><span style=display:flex><span>about-filter=<span style=color:#a31515>/usr/lib/cgit/filters/about-formatting.sh</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>local-time=<span style=color:#a31515>1</span>
</span></span><span style=display:flex><span>snapshots=<span style=color:#a31515>tar.gz</span>
</span></span><span style=display:flex><span>repository-sort=<span style=color:#a31515>age</span>
</span></span><span style=display:flex><span>cache-size=<span style=color:#a31515>1000</span>
</span></span><span style=display:flex><span>branch-sort=<span style=color:#a31515>age</span>
</span></span><span style=display:flex><span>summary-log=<span style=color:#a31515>200</span>
</span></span><span style=display:flex><span>max-atom-items=<span style=color:#a31515>50</span>
</span></span><span style=display:flex><span>max-repo-count=<span style=color:#a31515>100</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>enable-index-owner=<span style=color:#a31515>0</span>
</span></span><span style=display:flex><span>enable-follow-links=<span style=color:#a31515>1</span>
</span></span><span style=display:flex><span>enable-log-filecount=<span style=color:#a31515>1</span>
</span></span><span style=display:flex><span>enable-log-linecount=<span style=color:#a31515>1</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>root-title=<span style=color:#a31515>Place for code, experiments and other bullshit!</span>
</span></span><span style=display:flex><span>root-desc=
</span></span><span style=display:flex><span>clone-url=<span style=color:#a31515>git@git.mitjafelicijan.com:/home/git/$CGIT_REPO_URL</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>mimetype.gif=<span style=color:#a31515>image/gif</span>
</span></span><span style=display:flex><span>mimetype.html=<span style=color:#a31515>text/html</span>
</span></span><span style=display:flex><span>mimetype.jpg=<span style=color:#a31515>image/jpeg</span>
</span></span><span style=display:flex><span>mimetype.jpeg=<span style=color:#a31515>image/jpeg</span>
</span></span><span style=display:flex><span>mimetype.pdf=<span style=color:#a31515>application/pdf</span>
</span></span><span style=display:flex><span>mimetype.png=<span style=color:#a31515>image/png</span>
</span></span><span style=display:flex><span>mimetype.svg=<span style=color:#a31515>image/svg+xml</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>readme=<span style=color:#a31515>:README.md</span>
</span></span><span style=display:flex><span>readme=<span style=color:#a31515>:readme.md</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:green># Must be at the end!</span>
</span></span><span style=display:flex><span>virtual-root=<span style=color:#a31515>/</span>
</span></span><span style=display:flex><span>scan-path=<span style=color:#a31515>/home/git/</span>
</span></span></code></pre><p>For <code>syntax-highlighting-edited.sh</code> follow instructions on
<a href=https://wiki.archlinux.org/title/Cgit#Using_highlight>https://wiki.archlinux.org/title/Cgit</a>.<ul><li><code>/usr/share/cgit/cgit.css</code></ul><pre tabindex=0 style=background-color:#fff><code><span style=display:flex><span>* {
</span></span><span style=display:flex><span>        <span style=color:#00f>font-size</span>: 11<span style=color:#2b91af>pt</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>body {
</span></span><span style=display:flex><span>        <span style=color:#00f>font-family</span>: <span style=color:#00f>monospace</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>background</span>: <span style=color:#00f>white</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>padding</span>: 1<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>th, td {
</span></span><span style=display:flex><span>        <span style=color:#00f>text-align</span>: <span style=color:#00f>left</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:green>/* HEADER */</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>#header {
</span></span><span style=display:flex><span>        <span style=color:#00f>margin-bottom</span>: 1<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>#header .<span style=color:#2b91af>logo</span> img {
</span></span><span style=display:flex><span>        <span style=color:#00f>display</span>: <span style=color:#00f>block</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>height</span>: 3<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>margin-right</span>: 10<span style=color:#2b91af>px</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>#header .<span style=color:#2b91af>sub</span>.<span style=color:#2b91af>right</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>display</span>: <span style=color:#00f>none</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:green>/* FOOTER */</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>footer</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>margin-top</span>: 2<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>font-style</span>: <span style=color:#00f>italic</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>footer</span>, .<span style=color:#2b91af>footer</span> a {
</span></span><span style=display:flex><span>        <span style=color:#00f>color</span>: <span style=color:#00f>gray</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:green>/* TABS */</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>tabs</span> a {
</span></span><span style=display:flex><span>        <span style=color:#00f>margin-bottom</span>: 2<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>display</span>: <span style=color:#00f>inline-block</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>margin-right</span>: 1<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>tabs</span> td a:only-child {
</span></span><span style=display:flex><span>        <span style=color:#00f>display</span>: <span style=color:#00f>none</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:green>/* HIDING ELEMENTS */</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>cgit-panel</span>, .<span style=color:#2b91af>form</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>display</span>: <span style=color:#00f>none</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:green>/* LISTS */</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>list</span> td, .<span style=color:#2b91af>list</span> th {
</span></span><span style=display:flex><span>        <span style=color:#00f>padding-right</span>: 2<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>list</span> .<span style=color:#2b91af>nohover</span> a {
</span></span><span style=display:flex><span>        <span style=color:#00f>color</span>: <span style=color:#00f>black</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>list</span> .<span style=color:#2b91af>button</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>padding-right</span>: 0.5<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:green>/* COMMIT */</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>commit-subject</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>padding</span>: 1<span style=color:#2b91af>em</span> 0;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>decoration</span> a {
</span></span><span style=display:flex><span>        <span style=color:#00f>padding-left</span>: 0.5<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>commit-info</span> th {
</span></span><span style=display:flex><span>        <span style=color:#00f>padding-right</span>: 1<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>commit-subject</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>padding</span>: 2<span style=color:#2b91af>em</span> 0;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>table.<span style=color:#2b91af>diff</span> div.<span style=color:#2b91af>head</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>padding-top</span>: 2<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>table.<span style=color:#2b91af>diffstat</span> td {
</span></span><span style=display:flex><span>        <span style=color:#00f>padding-right</span>: 1<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:green>/* CONTENT */</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>linenumbers</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>padding-right</span>: 0.5<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>linenumbers</span> a {
</span></span><span style=display:flex><span>        <span style=color:#00f>color</span>: <span style=color:#00f>gray</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>.<span style=color:#2b91af>pager</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>display</span>: <span style=color:#00f>flex</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>list-style-type</span>: <span style=color:#00f>none</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>padding</span>: 0;
</span></span><span style=display:flex><span>        gap: 0.5<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:green>/* DIFF COLORS */</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>table.<span style=color:#2b91af>diff</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>width</span>: 100<span style=color:#2b91af>%</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>table.<span style=color:#2b91af>diff</span> td {
</span></span><span style=display:flex><span>        <span style=color:#00f>white-space</span>: <span style=color:#00f>pre</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>table.<span style=color:#2b91af>diff</span> td div.<span style=color:#2b91af>head</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>font-weight</span>: <span style=color:#00f>bold</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>margin-top</span>: 1<span style=color:#2b91af>em</span>;
</span></span><span style=display:flex><span>        <span style=color:#00f>color</span>: <span style=color:#00f>black</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>table.<span style=color:#2b91af>diff</span> td div.<span style=color:#2b91af>hunk</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>color</span>: #009;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>table.<span style=color:#2b91af>diff</span> td div.<span style=color:#2b91af>add</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>color</span>: <span style=color:#00f>green</span>;
</span></span><span style=display:flex><span>}
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>table.<span style=color:#2b91af>diff</span> td div.<span style=color:#2b91af>del</span> {
</span></span><span style=display:flex><span>        <span style=color:#00f>color</span>: <span style=color:#00f>red</span>;
</span></span><span style=display:flex><span>}
</span></span></code></pre></div></div></main><section><hr><h2>Posts from blogs I follow around the net</h2><ul><li><a href=https://chotrin.org/writing/2023-10-20.html target=_blank rel=noopener>OpenBSD upgrade and fall things.</a><div>Been AFK for a bit. It's autumn and I upgraded this server to OpenBSD 7.4! — <a href=https://chotrin.org>chötrin's wiki.</a><li><a href=https://mirzapandzo.com/next-image-url-parameter-is-valid-but-upstream-response-is-invalid target=_blank rel=noopener>Next/Image "url" parameter is valid but upstream response is invalid</a><div>Getting "url" parameter is valid but upstream response is invalid error with Next/Image on WSL2 — <a href=https://mirzapandzo.com/>Mirza Pandzo's Blog</a><li><a href=https://drewdevault.com/2023/10/13/Going-off-script.html target=_blank rel=noopener>Going off-script</a><div>There is a phenomenon in society which I find quite bizarre. Upon our entry to
this mortal coil, we are endowed with self-awareness, agency, and free will.
Each of th… — <a href=https://drewdevault.com>Drew DeVault's blog</a><li><a href=https://solar.lowtechmagazine.com/2023/10/workshop-in-rotterdam-how-to-build-a-bike-generator/ target=_blank rel=noopener>Workshop in Rotterdam: How to Build a Bike Generator</a><div>Afbeelding: Low-tech Magazine workshop in Rotterdam, the Netherlands. Poster: Marie Verdeil. Image: Sara Vercauteren
The workshop takes place on behalf of the “Hou… — <a href=https://solar.lowtechmagazine.com/posts/>LOW←TECH MAGAZINE English</a><li><a href="http://offbeatpursuit.com:80/blog/?id=24" target=_blank rel=noopener>Printf debugging</a><div>tags:
plan9
There’s no shame in that. Yes, there is documentation, code to be
read, and debuggers to be used. But sometimes you just need to “see”
what is happening.
So… — <a href=http://offbeatpursuit.com:80/blog/>WLOG - blog</a><li><a href=https://neil.computer/notes/chart-of-accounts-for-startups-and-saas-companies/ target=_blank rel=noopener>Chart of Accounts for Startups and SaaS Companies</a><div>Accounting is fundamental to starting a business. You need to have a basic understanding of accounting principles and essential bookkeeping. I had to learn it. Ther… — <a href=https://neil.computer/>Neil Panchal</a><li><a href=https://journal.valeriansaliou.name/deploy-a-nomad-cluster-on-alpine-linux-with-vultr/ target=_blank rel=noopener>Deploy a Nomad Cluster on Alpine Linux with Vultr</a><div>After spending countless hours trying to understand how to deploy my apps on Kubernetes for the first time to host Mirage, an AI API service that I run, I ended up … — <a href=https://journal.valeriansaliou.name/>Valerian Saliou</a><li><a href=https://jcs.org/2023/10/17/wikipedia target=_blank rel=noopener>Wikipedia Reader 1.0 Released</a><div>Wikipedia Reader
1.0 has been released:
wikipedia-1.0.sit
(StuffIt 3 archive, includes
source code
and THINK C 5 project file)
SHA256: 360e12d064f6579695f1e627ce34cb2f0… — <a href=https://jcs.org/>joshua stein</a></ul><p><a href=https://git.sr.ht/~sircmpwn/openring>Generated with openring.</a></section><footer><hr><p><big><strong>Want to comment or have something to add?</strong></big><p>You can write me an email
at <a href=mailto:m@mitjafelicijan.com>m@mitjafelicijan.com</a> or
catch up with me <a href=https://telegram.me/mitjafelicijan target=_blank>on Telegram</a>.<hr><p>This website does not track you. Content is made available under
the <a href=https://creativecommons.org/licenses/by/4.0/ target=_blank rel=noreferrer>CC BY 4.0 license</a> unless specified
otherwise. Blog is also available as <a href=/index.xml target=_blank>RSS feed</a>.</footer><script>
	 window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };
	</script><script defer src=/_vercel/insights/script.js></script>