-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfeed.json
575 lines (575 loc) · 330 KB
/
feed.json
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
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
{
"version": "https://jsonfeed.org/version/1",
"title": "Linux Impact",
"description": "",
"home_page_url": "https://linuximpact.com",
"feed_url": "https://linuximpact.com/feed.json",
"user_comment": "",
"author": {
"name": "David Rutland"
},
"items": [
{
"id": "https://linuximpact.com/gamelofts-the-oregon-trail-is-a-fun-time-suck-linux-proton-wine/",
"url": "https://linuximpact.com/gamelofts-the-oregon-trail-is-a-fun-time-suck-linux-proton-wine/",
"title": "Gameloft's The Oregon Trail is a fun time-suck",
"summary": "We were sad when Nora died. We'd enjoyed spending time with her for over a month, across a journey of several hundred miles, she'd proven herself to be the best of people. A missionary by trade, Nora was kind and competent. She could negotiate a…",
"content_html": "<p data-pm-slice=\"1 1 []\">We were sad when Nora died. We'd enjoyed spending time with her for over a month, across a journey of several hundred miles, she'd proven herself to be the best of people.</p>\n<p>A missionary by trade, Nora was kind and competent. She could negotiate a bargain, tend wounds, and find her way through the wilderness.</p>\n<p>Essentially, Nora was the glue that held the group together. She was its lynchpin, and once she was gone - buried beneath a randomly generated epitaph after succumbing to afever after an infected wound - the party disintegrated.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/97//nora_tombstone.jpg\" alt=\"A tombstone reading: Beloved Nora. Beyond the far horizon lies dreams\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/97//responsive/nora_tombstone-xs.webp 300w ,https://linuximpact.com/media/posts/97//responsive/nora_tombstone-sm.webp 480w ,https://linuximpact.com/media/posts/97//responsive/nora_tombstone-md.webp 768w ,https://linuximpact.com/media/posts/97//responsive/nora_tombstone-lg.webp 1024w ,https://linuximpact.com/media/posts/97//responsive/nora_tombstone-xl.webp 1360w ,https://linuximpact.com/media/posts/97//responsive/nora_tombstone-2xl.webp 1600w\"></figure>\n<p>Elias died from a self-inflicted gunshot wound; Daisy was washed away downstream while fording a river; John was run over by his own wagon.</p>\n<h2>The Oregon trail traces a path through US history</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/97//oregon_trail_map_blue_mountains_nez_perce.jpg\" alt=\"Oregon tail map showing the section between the Blue Mountains and Nez Perce\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/97//responsive/oregon_trail_map_blue_mountains_nez_perce-xs.webp 300w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_map_blue_mountains_nez_perce-sm.webp 480w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_map_blue_mountains_nez_perce-md.webp 768w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_map_blue_mountains_nez_perce-lg.webp 1024w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_map_blue_mountains_nez_perce-xl.webp 1360w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_map_blue_mountains_nez_perce-2xl.webp 1600w\"></figure>\n<p>If you're over the age of 40, you've probably played The Oregon Trail before. It was created in the early 1970s as a way of engaging pre-adolescent schoolchildren with the harsh realities of life on the pioneer route from the misery of Missouri to the promised land on what would later become the US east coast.</p>\n<p>The game mechanics are simple. It's essentially a mix of lightweight management sim, and a series of minigames you play to keep your party alive through random and fixed events as you travel between objectives on a map.</p>\n<p>Starting in the town of Independence, you pick your party members, buy a wagon and supplies, then set off on your journey westward.</p>\n<p>You'll choose what route to take, and need to make decisions on how to survive. Clean shirts, medicine, and harmonicas will keep the party hygienic, healthy, and happy but take up space in the wagon. They'll also disappear as they're used, and become damaged as your wagon cover decays. Wagon repair kits are in short supply once you hit the trail, but can be bartered for at major landmarks and forts.</p>\n<p>While you start off with some basic foodstuffs, you'll need to kill to survive once you're away from civilization: hunting requires bullets (and a knife if you want to keep the pelts); fishing requires bait. The result is a bunch of fun minigames that serve to keep you alive, while providing tradeable resources. There are other random encounters and minigames, too, but we'll leave them as a surprise.</p>\n<h2>Pixels and parallax on the Oregon trail</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/97//oregon_trail_blue_mountains.jpg\" alt=\"Oregon Trail party with four member heading uphill into snow. There is a rock in the foreground\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/97//responsive/oregon_trail_blue_mountains-xs.webp 300w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_blue_mountains-sm.webp 480w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_blue_mountains-md.webp 768w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_blue_mountains-lg.webp 1024w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_blue_mountains-xl.webp 1360w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_blue_mountains-2xl.webp 1600w\"></figure>\n<p>Being created to run on HP 2100 minicomputermore than half a century ago, Oregon Trail graphics were rudimentary to the point of non-existence, and later versions weren't much better - even as they leaned towards colour, and figures that could be recognised as human. Or a Wagon. Or a bird.</p>\n<p>The most recent iteration of the game acknowledges this heritage with a distinctly pixel-art style, and sprite animation that you think you remember from the 1990s, but which is actually much, much, better.</p>\n<p>The trail moves beneath your feet, with the characters and their wagon staying more-or-less centre screen, but you can really get a sense of distance travelled thanks to parallax scrolling - meaning that the background, middle, and foreground move at a different rate.</p>\n<p>For a pixel art style retro gaming experience, this is perfect, and harks back the late 1990s and the days of the Amiga 1200 (for which The Oregon Trail was never released).</p>\n<p>Minigames are simple and fun, and with the kind of no-clip action you'd expect from pre-millenium platforms.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/97//hunting_in_oregon_trail.jpg\" alt=\"A lone hunter standing in a snowy clearing with a rifle in her hands. There are two dead bears and a live bear escaping\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/97//responsive/hunting_in_oregon_trail-xs.webp 300w ,https://linuximpact.com/media/posts/97//responsive/hunting_in_oregon_trail-sm.webp 480w ,https://linuximpact.com/media/posts/97//responsive/hunting_in_oregon_trail-md.webp 768w ,https://linuximpact.com/media/posts/97//responsive/hunting_in_oregon_trail-lg.webp 1024w ,https://linuximpact.com/media/posts/97//responsive/hunting_in_oregon_trail-xl.webp 1360w ,https://linuximpact.com/media/posts/97//responsive/hunting_in_oregon_trail-2xl.webp 1600w\"></figure>\n<p>Landmarks, forts, and campsites, are all beautifully drawn, coloured, and animated, and the game is overflowing with factual tidbits, historical information, and fun anecdotes. You can \"collect\" animals by clicking on them as they appear on your route, and you'll actual <em>learn</em> stuff as you progress through the game.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/97//oregon_trail_fish_journal.jpg\" alt=\"Oregon Trail jornal showing rare fish caught\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/97//responsive/oregon_trail_fish_journal-xs.webp 300w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_fish_journal-sm.webp 480w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_fish_journal-md.webp 768w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_fish_journal-lg.webp 1024w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_fish_journal-xl.webp 1360w ,https://linuximpact.com/media/posts/97//responsive/oregon_trail_fish_journal-2xl.webp 1600w\"></figure>\n<p>The 2022 version of the Oregon Trail is produced by Gameloft in Collaboration with the publisher Harper Collins, using the Unreal Engine.</p>\n<h2>Different American perspectives</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/97//native_map.jpg\" alt=\"Oregon trail map showing two native villages\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/97//responsive/native_map-xs.webp 300w ,https://linuximpact.com/media/posts/97//responsive/native_map-sm.webp 480w ,https://linuximpact.com/media/posts/97//responsive/native_map-md.webp 768w ,https://linuximpact.com/media/posts/97//responsive/native_map-lg.webp 1024w ,https://linuximpact.com/media/posts/97//responsive/native_map-xl.webp 1360w ,https://linuximpact.com/media/posts/97//responsive/native_map-2xl.webp 1600w\"></figure>\n<p>The Oregon Trail is a history of the great American expansion, and through most of its history of has been an interactive storytelling experience of white men and women heading west.</p>\n<p>This version is different. In addition to a variety of trails and seasons you can traverse as the ever-marching face of expansion, you'll also get to play as the people who were originally there. On Winter Migration trail, for instance, you'll take the role of a Native American mother and son, who must reach the hunting grounds before winter sets in. Unlike the main game, you won't have a wagon, and consequentially, very little room for provisions.</p>\n<p>This isn't the only nod to the diversity of people populating the old west. While your party may be composed of racially diverse characters, Conversations with NPCs will tell you that Black people won't be permitted to settle in Oregon. May as well stay at home. Right?</p>\n<h2>The Linux Trail</h2>\n<p>Similar to the Oregon Trail itself, getting to Oregon on Linux isn't quite as simple as hopping on a train or plane to your destination.</p>\n<p>Despite the many platforms for which the game has been published over the past half-century, it has never been officially made available for Linux.</p>\n<p>This doesn't mean it's difficult to install or run, though. Gameloft's The Oregon Trail is available on Steam or <a href=\"https://www.gog.com/en/game/the_oregon_trail\" data-md-href=\"https://www.gog.com/en/game/the_oregon_trail\" rel=\"noopener noreferrer nofollow\">DRM-free on Gog</a> for £24.99.</p>\n<p>In the former case, you'll be able to use Steam's Proton to play the game, and in the latter case, we installed and launched with the Heroic Games launcher for flawless performance.</p>\n<p>£25 is a high price for a game that's changed little over the past 50 years, but there's a huge amount of additional content, and even the main trail will keep you occupied for more than a day.</p>\n<h2>There are games even older than The Oregon Trail</h2>\n<p>If the Oregon trail has you yearning for the simpler gaming experience of years gone by, but you don't have a time machine (or an emulator) to hand, you can try out Colossal Cave Adventure - the first text adventure game ever made.</p>",
"image": "https://linuximpact.com/media/posts/97/oregon_trail.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"WINE",
"Steam",
"Software",
"Gaming"
],
"date_published": "2024-08-31T13:37:00+01:00",
"date_modified": "2024-09-11T14:41:26+01:00"
},
{
"id": "https://linuximpact.com/fallout-london-running-well-linux-review/",
"url": "https://linuximpact.com/fallout-london-running-well-linux-review/",
"title": "Fallout London may be be the best entry in the series - and it's great on Linux",
"summary": "Fallout 4 - while fun to play - was disappointing. It offered a lightweight, Disneyfied version of the post-apocalyptic word, seemingly aimed squarely at console gamers and kids. Unlike previous entries in the series, it wasn't really possible to exist in the wasteland as a…",
"content_html": "<p data-pm-slice=\"1 1 []\">Fallout 4 - while fun to play - was disappointing. It offered a lightweight, Disneyfied version of the post-apocalyptic word, seemingly aimed squarely at console gamers and kids.</p>\n<p>Unlike previous entries in the series, it wasn't really possible to exist in the wasteland as a terrible human being, and the player character was given too much, too soon. It was surprisingly difficult to die in the early stages of the game, and the wasteland felt inappropriately hopeful.</p>\n<p>Fallout London - the long-awaited, game-sized mod from Team Folon isn't like that at all, and after a gratifyingly brief character creation process, we died by fire several times in the opening few minutes. Stimpacks? Guns? NIghtsticks? They're not around. It's you and your fists for the first hour. Future London feels dark, grim, and desperate in a way that the base game is not, but that is entirely appropriate for a game set in the aftermath of a nuclear holocaust.</p>\n<p>We're going to skip over the installation process - suffice it to say that we found installing Fallout London on Linux to be a complete ballache that took up an entire afternoon, and failed for seemingly random reasons. If you're used to gaming on Linux, you'll be used to the various workarounds and counterintuitive actions you need to take in order to get Windows software running well.</p>\n<p>These are our impressions of Fallout London after a few days on play.</p>\n<h2 id=\"h-the-london-look\">The London look</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/amstrad.png\" alt=\"A desktop computer with trackball\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/amstrad-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/amstrad-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/amstrad-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/amstrad-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/amstrad-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/amstrad-2xl.webp 1600w\"></figure>\n<p>While America was stuck in the nuclear-powered 1950s, England seems to have progressed to the 1980s, or possibly the early 1990s. The computers are reminiscent of Amstrad units, and have trackballs, as well as speakers embedded in the monitors. Abandoned police cars look like something you'll have seen on The Bill back in the day, and there are even pink wafer biscuits to add to the aesthetic of this writer's youth.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/pink_panther_biscuits.png\" alt=\"Pink wafer biscuits\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/pink_panther_biscuits-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/pink_panther_biscuits-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/pink_panther_biscuits-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/pink_panther_biscuits-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/pink_panther_biscuits-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/pink_panther_biscuits-2xl.webp 1600w\"></figure>\n<p>Sarcastic and often cruel replies that made dialogue in 1, 2, and New Vegas so much fun to play was missing in the borderline-PG Fallout 4, in which everyone is earnest and decent - spelling them out to you every opportunity. Witty banter is back again in Fallout London - and even more sweary. In addition to the casual A-list curses, the British slang feels just about right. We recognise and use some terms, ourselves and we're fairly sure overseas players will be able to work most of it out without resorting to Urban Dictionary.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/pub_interior.png\" alt=\"The interior of a typical British pub\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/pub_interior-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/pub_interior-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/pub_interior-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/pub_interior-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/pub_interior-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/pub_interior-2xl.webp 1600w\"></figure>\n<p>The buildings seem authentically London, and walk into the Ship and Mitre, and you'll immediately recognise it as an English pub. It's great. All the major landmarks are there, and often plot essential. Saint Paul's Cathedral, the Millennium Dome, Houses of Parliament, Nelson's Column. It's a lot.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/sunset_over_london.png\" alt=\"London from the top of Nelso's column - overlooking St Paul's cathedral at sunset\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/sunset_over_london-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/sunset_over_london-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/sunset_over_london-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/sunset_over_london-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/sunset_over_london-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/sunset_over_london-2xl.webp 1600w\"></figure>\n<p>That litter bin in the picture below? There's an identical one less than 100 yards from where we're sitting right now.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/bin.png\" alt=\"A black metal bin with gold highlights\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/bin-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/bin-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/bin-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/bin-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/bin-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/bin-2xl.webp 1600w\"></figure>\n<p>And there are traditional British corner shops with names like Morrisingh's, Singhsburys, and Singhsbury's Local. Inside every one of them, you'll find a skeleton in a turban. There are post boxes that are visually similar to the ones around the corner from the Linux Impact offices. Do not go near them.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/post_boxer.png\" alt=\"A motorised postbox with saws and wheels\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/post_boxer-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/post_boxer-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/post_boxer-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/post_boxer-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/post_boxer-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/post_boxer-2xl.webp 1600w\"></figure>\n<p>And what could be more British than a laundrette? Dot Cotton - eat your heart out.</p>\n<p>Character-wise, you'll see exaggerated versions of the type of people London calls to mind when folk from outside the smoke think of the place. There are the Beefeaters - cannibalistic stand-ins for supermutants; the gents who are your typical London gents,</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/ferryman.png\" alt=\"a boat steered by a ferryman with green skin\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/ferryman-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/ferryman-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/ferryman-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/ferryman-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/ferryman-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/ferryman-2xl.webp 1600w\"></figure>\n<p>Two exceptions here are the Thamesfolk - a semi-aquatic object lesson in what happens when you live in and on a polluted waterway, and Hooligans - who go out wearing footie shirts and exist only to give you grief ad beat you up for no obvious reason. They seem about right, and you can probably spot a group if you venture to the capital today.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/miggins.png\" alt=\"Fallout menu showing a variety of pies in the inventory of Miss Miggins \" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/miggins-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/miggins-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/miggins-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/miggins-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/miggins-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/miggins-2xl.webp 1600w\"></figure>\n<p>Get a haircut from Sweeney Todd, then a pie from Miss Miggins next door.</p>\n<h2 id=\"h-the-gameplay\">The Gameplay</h2>\n<p>Where Fallout 4 coddles you, London cripples you, and you start the main mission with a couple of serious debuffs, due to your origins as a lab rat, and a subsequent railway accident - leaving you to take more damage and deal less.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/rad_damage.png\" alt=\"pov of a river with the character taking 250 rads per second damage\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/rad_damage-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/rad_damage-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/rad_damage-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/rad_damage-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/rad_damage-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/rad_damage-2xl.webp 1600w\"></figure>\n<p>Large areas of the city are flooded. Sure, you can swim, but you'll be sucking down 250 rads per second while you're doing it. Even dosing yourself with Rad-X and using a prophylactic Jimmy hat won't prevent your health bar from flooding red and killing you in a matter of seconds.</p>\n<p>Once you're in the world, weapons are fairly easy to come by. You're given a sweet and lethal butterfly knife by one of the first named NPCs you meet, and local hooligans can be relieved of their Boxcutters, bats, and other weapons easily enough. The Butterfly knife -- named Balisong by the way -- has its own neat idling animation. How distracting you'll find it will vary.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/london_bus_knife-2.png\" alt=\"Twirling a butterfly knife on the top deck of a London bus\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/london_bus_knife-2-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/london_bus_knife-2-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/london_bus_knife-2-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/london_bus_knife-2-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/london_bus_knife-2-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/london_bus_knife-2-2xl.webp 1600w\"></figure>\n<p>Like to kill from a distance? There's no shortage of guns or ammo, and although the game tends to push you more towards knives (as in the real London), it will make sure you have a gun in your hand when you need one - such as a set-piece shootout on the river.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/96/rifle.png\" alt=\"\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/96/responsive/rifle-xs.webp 300w ,https://linuximpact.com/media/posts/96/responsive/rifle-sm.webp 480w ,https://linuximpact.com/media/posts/96/responsive/rifle-md.webp 768w ,https://linuximpact.com/media/posts/96/responsive/rifle-lg.webp 1024w ,https://linuximpact.com/media/posts/96/responsive/rifle-xl.webp 1360w ,https://linuximpact.com/media/posts/96/responsive/rifle-2xl.webp 1600w\"></figure>\n<p>Missions are often your usual fetch quests as you work towards a goal, but they've not been too onerous in the ten or so hours I've put in so far. One exception to this was trying to find an NPC in the dark in a flooded area by torchlight. Instadeath Ragequit.</p>\n<p>While in Fallout 4, we could run through the game on survival mode and complete the (a) main questline in a few hours, there's no chance of doing that in London. If we have paid for the mod, we'd have felt we were getting our moneys worth. We're ten hours in, and have only just managed to get back into the Angel lab.</p>\n<h2 id=\"h-the-bugs\">The bugs</h2>\n<p>Bethesda games are notorious for buggy gameplay and glitches, and Fallout London is surprisingly bug free.</p>\n<p>We've had only a couple of crashes to desktop across the few days we've been playing. Infinite loading times were taken care of by a mod.</p>\n<p>Gameplay-wise, we've seen few areas which made us think that this was anything less than a perfectly honed and polished top tier title.</p>\n<p>The first was after the aforementioned gunfight on the river. If we didn't leap from the boat at exactly the right moment, we'd end up in the water in a second, and dead in two. The second is when equipped with the gask mask, we'd get debugging messages in the top left of the screen stating \"Im in first person\" and \"Im in 3rd person.\" Really no big deal. If you've followed the instructions and use Heroic games launcher, you shouldn't have many - if any-problems.</p>\n<div class=\"gallery-wrapper\"><div class=\"gallery\" data-is-empty=\"false\" data-translation=\"Add images\" data-columns=\"3\">\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/gog-shirt-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/gog-shirt-2-thumbnail.webp\" alt=\"Gog shirt and pants atop a PC\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/amstrad-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/amstrad-2-thumbnail.webp\" alt=\"Interface of a PC with Trackball\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/attaboy-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/attaboy-2-thumbnail.webp\" alt=\"Attaboy - London's answer to the pipboy\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/st_pauls-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/st_pauls-2-thumbnail.webp\" alt=\"St Pauls cathedral from below\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/wheelie_bin-3.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/wheelie_bin-3-thumbnail.webp\" alt=\"A wheelie bin just like mine\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/Tardis-3.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/Tardis-3-thumbnail.webp\" alt=\"A blue police box\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/miggins-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/miggins-2-thumbnail.webp\" alt=\"Miss miggins food menu\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/sweeney_todd-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/sweeney_todd-2-thumbnail.webp\" alt=\"Sweeney Todd wering a white jacket\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/bin-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/bin-2-thumbnail.webp\" alt=\"A standard black rubbish bin\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/sunset_over_london-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/sunset_over_london-2-thumbnail.webp\" alt=\"Sunset over london\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/cyber_pigeon-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/cyber_pigeon-2-thumbnail.webp\" alt=\"A cyber pigeon targetted in VATS\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/ferryman-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/ferryman-2-thumbnail.webp\" alt=\"A green-skinned ferryman\" width=\"768\" height=\"432\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/96/gallery/column-2.png\" data-size=\"1920x1080\"><img src=\"https://linuximpact.com/media/posts/96/gallery/column-2-thumbnail.webp\" alt=\"Nelsons column from below\" width=\"768\" height=\"432\"></a></figure>\n</div></div>\n<p>It's awesome, it's awe-inspiring, and it's astonishing that this was made by volunteers up against obstacles seemingly put in their way by Bethesda. </p>",
"image": "https://linuximpact.com/media/posts/96/fallout_london_main_menu.png",
"author": {
"name": "David Rutland"
},
"tags": [
"WINE",
"Software",
"Review",
"Gaming"
],
"date_published": "2024-08-02T15:04:20+01:00",
"date_modified": "2024-08-02T16:27:17+01:00"
},
{
"id": "https://linuximpact.com/easily-convert-web-pages-to-markdown-self-hosted-toollinux/",
"url": "https://linuximpact.com/easily-convert-web-pages-to-markdown-self-hosted-toollinux/",
"title": "Markdowndown lets you easily convert web pages to Markdown",
"summary": "Take a look at the HTML of any web page, and you'll see it's an almost incomprehensible mess. Sure, with some practice you can probably make sense of it, but its hardly intuitive, and it's definitely not a pleasant experience. In contrast, Markdown is a…",
"content_html": "<p data-pm-slice=\"1 1 []\">Take a look at the HTML of any web page, and you'll see it's an almost incomprehensible mess. Sure, with some practice you can probably make sense of it, but its hardly intuitive, and it's definitely not a pleasant experience.</p>\n<p>In contrast, Markdown is a lightweight markup language that is used to format text. It allows you to create formatted documents using plain text with simple syntax. You can use it to easily create web pages, and in fact, this very website is written using Markdown before being converted to HMTL by <a href=\"https://linuximpact.com/why-we-publish-with-publii-with-github-pages-its-trouble-free-and-its-actually-free/\">Publii - our favorite static site generator</a>. If we had a mind to, we could convert our Markdown file to PDF, Docx, or.... anything really.</p>\n<p>Aside from its readability, Markdown has other advantages, too. Web pages can be huge, with massive chunks of unnecessary JavaScript, tracking code, and other such cruft, which can rapidly fill up your storage if you're in the habit of downloading them for later perusal.</p>\n<p>A nice, neat Markdown file takes up almost no space at all, while preserving formatting and being easily readable - even without a dedicated Markdown viewer.</p>\n<h2 id=\"h-need-to-convert-html-to-markdown-theres-a-self-hosed-app-for-that\">Need to convert HTML to Markdown? There's a self-hosed app for that!</h2>\n<p>If, like us, you regularly save web pages locally for you own archival purposes, you're probably dissatisfied with the way they display, and converting to Markdown by hand is time-consuming and fiddly.</p>\n<p>Fortunately, it's simple to spin up Markdowndown, a self-hosted web app, which will convert any page to a clean Markdown file, with the option to download images as well, and have everything packaged neatly as a zip file.</p>\n<p>And because, everything seems to come with some kind of AI integration these days, Markdowndown has an option to pass the Markdown to ChatGPT and have it perform useful tasks such as creating a TL;DR summary.</p>\n<h2 id=\"h-how-to-install-markdowndown-on-linux\">How to install Markdowndown on Linux</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/95/clone_markdowndown_git_repository.jpg\" alt=\"linux terminal showing commands and output from cloning markdowndown github repository\" width=\"1195\" height=\"418\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/95/responsive/clone_markdowndown_git_repository-xs.webp 300w ,https://linuximpact.com/media/posts/95/responsive/clone_markdowndown_git_repository-sm.webp 480w ,https://linuximpact.com/media/posts/95/responsive/clone_markdowndown_git_repository-md.webp 768w ,https://linuximpact.com/media/posts/95/responsive/clone_markdowndown_git_repository-lg.webp 1024w ,https://linuximpact.com/media/posts/95/responsive/clone_markdowndown_git_repository-xl.webp 1360w ,https://linuximpact.com/media/posts/95/responsive/clone_markdowndown_git_repository-2xl.webp 1600w\"></figure>\n<p>Markdowndown is written in JavaScript, so make sure you have <a href=\"https://linuximpact.com/how-to-install-specific-npm-and-node-versions-on-linux/\">Node Package Manager and Node.js</a> installed before you start. Markdowndown requires node.js version 18.17.0 or above to run.</p>\n<p>With that out of the way, open a terminal and clone the repository, and use the cd command to move into the new directory:</p>\n<pre><code class=\"language-bash\">git clone https://github.com/asadm/markdowndown.git && cd markdowndown</code></pre>\n<p>Install Markdowndown with:</p>\n<pre><code class=\"language-bash\">npm install</code></pre>\n<p>...and start it with</p>\n<pre><code>npm run dev</code></pre>\n<p>The server will start almost instantly, so open a web browser and navigate to <strong>http://localhost:3000</strong>.</p>\n<h2 id=\"h-use-markdowndown-to-quickly-convert-your-favourite-web-pages-to-markdown\">Use Markdowndown to quickly convert your favourite web pages to Markdown</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/95/markdowndown_web_interface.jpg\" alt=\"Markdowndown web interface\" width=\"1188\" height=\"531\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/95/responsive/markdowndown_web_interface-xs.webp 300w ,https://linuximpact.com/media/posts/95/responsive/markdowndown_web_interface-sm.webp 480w ,https://linuximpact.com/media/posts/95/responsive/markdowndown_web_interface-md.webp 768w ,https://linuximpact.com/media/posts/95/responsive/markdowndown_web_interface-lg.webp 1024w ,https://linuximpact.com/media/posts/95/responsive/markdowndown_web_interface-xl.webp 1360w ,https://linuximpact.com/media/posts/95/responsive/markdowndown_web_interface-2xl.webp 1600w\"></figure>\n<p>One of our favourite articles on Linux Impact is a November 2023 piece in which we repurposed a <a href=\"https://linuximpact.com/cheap-portable-retro-gaming-with-a-hated-handheld/\">Leapfrog Leapster as a retro gaming handheld</a>. It's awesome, and we want a copy of the article in Markdown for our files.</p>\n<p>Simply copy the URL, and paste it into the text box of your local Markdowndown instance, and press convert, to get a handy, beautifully formatted Markdown version of the page, focussing on the content, without any of the related articles, navigation features or anything else you don't want.</p>\n<p>If you tick the box to download images locally, you'll need to specify where the images should be stored, and choose to override the base URL in the Markdown, so your viewer or converter doesn't try and fetch them from the web.</p>\n<p>The last checkbox is to get ChatGPT involved, and you'll need an OpenAI API key to use this feature. Should you wish to use it, you'll have the option of using ChatGPT 3.5 or 4 to fiddle with your text.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/95/retro_markdown.jpg\" alt=\"Screenshot a Linux Impact article rendered as Mardown\" width=\"904\" height=\"613\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/95/responsive/retro_markdown-xs.webp 300w ,https://linuximpact.com/media/posts/95/responsive/retro_markdown-sm.webp 480w ,https://linuximpact.com/media/posts/95/responsive/retro_markdown-md.webp 768w ,https://linuximpact.com/media/posts/95/responsive/retro_markdown-lg.webp 1024w ,https://linuximpact.com/media/posts/95/responsive/retro_markdown-xl.webp 1360w ,https://linuximpact.com/media/posts/95/responsive/retro_markdown-2xl.webp 1600w\"></figure>\n<p>Fetching, formatting, and packaging our Markdown and images took about a second. We rendered it in <a href=\"https://linuximpact.com/marktext-beautiful-cross-platform-markdown-editor-linux/\">our favourite Markdown editor</a>, and as you can see in the screenshot, it looks great.</p>\n<p> </p>",
"image": "https://linuximpact.com/media/posts/95/watch-2.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Tool",
"Software",
"Self-hosted"
],
"date_published": "2024-07-06T14:25:00+01:00",
"date_modified": "2024-07-29T14:46:40+01:00"
},
{
"id": "https://linuximpact.com/great-classic-games-play-in-linux-terminal/",
"url": "https://linuximpact.com/great-classic-games-play-in-linux-terminal/",
"title": "Great classic games you can play in your Linux terminal",
"summary": "Think the Linux terminal is a place for dweebs who can't get girl/boyfriends? Think again. While gaming in the Linux terminal won't win any prizes for outrageously good graphics - you can run these games even on low-resource systems. While gaming fads have come and…",
"content_html": "<p data-pm-slice=\"1 1 []\">Think the Linux terminal is a place for dweebs who can't get girl/boyfriends? Think again. While gaming in the Linux terminal won't win any prizes for outrageously good graphics - you can run these games even on low-resource systems. </p>\n<h2 id=\"h-minesweeper\" data-pm-slice=\"1 1 []\">Minesweeper</h2>\n<p>While gaming fads have come and gone in the decades since home computers first appeared on the scene, <a href=\"https://linuximpact.com/tui-mines-is-classic-minesweeper-action-in-a-linux-terminal/\">minesweeper</a> - in various forms - has endured almost untouched, and the Microsoft classic has multiple open-source clones available available for you to install on Linux.</p>\n<p>While some of these come with a GUI, our favourite is tui-mines, which gives you a natty Terminal User Interface (TUI), that looks fantastic if you use <a href=\"https://linuximpact.com/relive-the-glory-days-of-crt-monitors-with-cool-retro-term/\">Cool Retro Terminal</a> instead of your usual white on black text. If you prefer, you can use the terminal emulator that comes bundled with tui-mines. It's up to you, really.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/94/tui-crt.png\" alt=\"TUI mines in a pseudo CRT terminal \" width=\"1200\" height=\"731\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/94/responsive/tui-crt-xs.webp 300w ,https://linuximpact.com/media/posts/94/responsive/tui-crt-sm.webp 480w ,https://linuximpact.com/media/posts/94/responsive/tui-crt-md.webp 768w ,https://linuximpact.com/media/posts/94/responsive/tui-crt-lg.webp 1024w ,https://linuximpact.com/media/posts/94/responsive/tui-crt-xl.webp 1360w ,https://linuximpact.com/media/posts/94/responsive/tui-crt-2xl.webp 1600w\"></figure>\n<p>One of the reasons we love tui-mines is that as well as boasting three difficulty levels and Discord integration, you can set the minefield to any size you choose. Find and detonate mines in a puddle, a lake, or across an entire ocean!</p>\n<h2 id=\"h-colossal-cave-adventure\">Colossal Cave Adventure</h2>\n<p>What could be more suited to a Linux terminal than a text adventure?</p>\n<p><a href=\"https://linuximpact.com/play-the-first-ever-text-adventure-game-in-your-linux-terminal/\">Colossal Cave adventure</a> has the honour of being the first text adventure ever, and sees you deposited in a colossal cave filled with enemies and loot. The aim is simple, grab the loot, slay the enemies, and escape.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/94/colossal-ibm.jpg\" alt=\"Colossal Cave adventure on an antique IBM screen\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/94/responsive/colossal-ibm-xs.webp 300w ,https://linuximpact.com/media/posts/94/responsive/colossal-ibm-sm.webp 480w ,https://linuximpact.com/media/posts/94/responsive/colossal-ibm-md.webp 768w ,https://linuximpact.com/media/posts/94/responsive/colossal-ibm-lg.webp 1024w ,https://linuximpact.com/media/posts/94/responsive/colossal-ibm-xl.webp 1360w ,https://linuximpact.com/media/posts/94/responsive/colossal-ibm-2xl.webp 1600w\"></figure>\n<p>The game was originally meant to be played on teletype printers, and there's even a full 3D version available if that's your bag.</p>\n<p>We think it's best in the terminal, though.</p>\n<h2 id=\"h-roulette\">Roulette</h2>\n<p>Everyone likes a flutter every now and again, but if the prospect of losing real money on the spin of a wheel terrifies rather than excites you, maybe you should stay off the betting sites and out of the casinos.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/94/terminal-roulette-gameplay.jpg\" alt=\"Terminal roulette graphics\" width=\"1920\" height=\"567\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/94/responsive/terminal-roulette-gameplay-xs.webp 300w ,https://linuximpact.com/media/posts/94/responsive/terminal-roulette-gameplay-sm.webp 480w ,https://linuximpact.com/media/posts/94/responsive/terminal-roulette-gameplay-md.webp 768w ,https://linuximpact.com/media/posts/94/responsive/terminal-roulette-gameplay-lg.webp 1024w ,https://linuximpact.com/media/posts/94/responsive/terminal-roulette-gameplay-xl.webp 1360w ,https://linuximpact.com/media/posts/94/responsive/terminal-roulette-gameplay-2xl.webp 1600w\"></figure>\n<p><a href=\"https://linuximpact.com/terminal-roulette-is-a-classic-casino-game-in-your-terminal/\">terminalroulette</a> is, as the name suggests, a game of roulette that you play in your Linux terminal.</p>\n<p>It's simple, it's fun, and you can lose thousands of dollars without actually losing the shirt off your back.</p>\n<h2 id=\"h-emulate-a-complete-console-in-your-terminal\">Emulate a complete console in Your Terminal!</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/94/linux_terminal_game_boy.jpg\" alt=\"Teenaage Mutant ninja turtles played on an emulator in the Linux terminal\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/94/responsive/linux_terminal_game_boy-xs.webp 300w ,https://linuximpact.com/media/posts/94/responsive/linux_terminal_game_boy-sm.webp 480w ,https://linuximpact.com/media/posts/94/responsive/linux_terminal_game_boy-md.webp 768w ,https://linuximpact.com/media/posts/94/responsive/linux_terminal_game_boy-lg.webp 1024w ,https://linuximpact.com/media/posts/94/responsive/linux_terminal_game_boy-xl.webp 1360w ,https://linuximpact.com/media/posts/94/responsive/linux_terminal_game_boy-2xl.webp 1600w\"></figure>\n<p>If these three aren't enough for you, it's possible to <a href=\"https://linuximpact.com/emulate-game-boy-in-the-linux-terminal/\">emulate the original Game Boy in your Linux Terminal</a> with PHP. There are thousands of games For the original Game Boy, meaning you'll never need to leave the command line again!</p>",
"image": "https://linuximpact.com/media/posts/94/rgb-keyboard.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Terminal",
"TUI",
"Software",
"Gaming"
],
"date_published": "2024-06-22T14:10:00+01:00",
"date_modified": "2024-07-29T14:23:47+01:00"
},
{
"id": "https://linuximpact.com/marktext-beautiful-cross-platform-markdown-editor-linux/",
"url": "https://linuximpact.com/marktext-beautiful-cross-platform-markdown-editor-linux/",
"title": "MarkText is the beautiful cross-platform Markdown editor you've been looking for",
"summary": "Markdown is a near-perfect way to create formatted documents - existing between the two extremes of a bare, naked text file, and a fully fledged word processor such as LibreOffice or Microsoft Word. It's a nice middle-ground to sit in. Often, a multi-gigabyte word processing…",
"content_html": "<p data-pm-slice=\"1 1 []\">Markdown is a near-perfect way to create formatted documents - existing between the two extremes of a bare, naked text file, and a fully fledged word processor such as LibreOffice or Microsoft Word.</p>\n<p>It's a nice middle-ground to sit in. Often, a multi-gigabyte word processing package is overkill for preparing the minutes of your local council meeting, but a text file lacks the ability to add images, titles, tables, or anything else beyond plain text.</p>\n<p>Markdown, on the other hand allows you to do some serious formatting, plan great layouts, embed images, and create a great looking document. And you can create Markdown in any basic text editor you choose.</p>\n<p>Of course, Markdown has its drawbacks - the main one being that you need a Markdown viewer to see the formatting in all its glory. Or you need to convert it to another format, such as HTML or PDF. It's a format for writing rather than reading, and what you see in your notes app isn't how it will be presented to the reader.</p>\n<h2 id=\"h-marktext-is-a-multi-mode-markdown-editor-and-viewer-for-distraction-free-writing\">MarkText is a multi-mode Markdown editor and viewer for distraction-free writing</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/93//marktext_themes.jpg\" alt=\"Marktext with themes picker open\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/93//responsive/marktext_themes-xs.webp 300w ,https://linuximpact.com/media/posts/93//responsive/marktext_themes-sm.webp 480w ,https://linuximpact.com/media/posts/93//responsive/marktext_themes-md.webp 768w ,https://linuximpact.com/media/posts/93//responsive/marktext_themes-lg.webp 1024w ,https://linuximpact.com/media/posts/93//responsive/marktext_themes-xl.webp 1360w ,https://linuximpact.com/media/posts/93//responsive/marktext_themes-2xl.webp 1600w\"></figure>\n<p>Just because you can write Markdown in nano doesn't mean that you should. Often, you'll want to see how the text is going to appear to the reader, and honestly, writing in nano isn't a lot of fun.</p>\n<p>Dedicated Markdown editors offer you a preview of your Markdown as you write it, and of the dozens we've tried, MarkText is our favourite.</p>\n<p>In addition to real-time rendering, MarkText supports a range of Markdown flavours, including Pandoc, GitHub, and CommonMark, as well as KaTeX, front matter and emojis - if you're the kind of person who likes to include emojis in documentation.</p>\n<p>While MarkText doesn't have an especially lengthy features list, some of the things you'll definitely appreciate include the ability to paste images directly from the clipboard, and a variety of light and dark themes to prevent eye strain and keep you focussed on writing without distractions</p>\n<p>While you can write directly using MarkDown in MarkText's \"Source Code\" mode, the software offers two more modes that may better suit your style.</p>\n<p>Typewriter mode lets you furiously tap out your novel or article, with the text of the page moving so that your cursor stays in the same position.</p>\n<p>Focus mode, dims the page except the text you're currently working on</p>\n<p>You can also combine the modes.</p>\n<h2 id=\"h-install-marktext-for-distraction-free-writing\">Install MarkText on Linux</h2>\n<p>MarkText is available for Windows, MacOS, and of course, Linux.</p>\n<p>To get started visit the <a href=\"https://github.com/marktext/marktext/releases/\" rel=\"noopener noreferrer nofollow\">MarkText GitHub releases</a> page. If you're lucky enough to run a Debian-based system, grab the <strong>marktext-amd64.deb</strong> file, then open a terminal and install it with:</p>\n<p>sudo dpkg -i marktext-amd64.deb<strong> </strong></p>\n<p>Otherwise, download the appimage, then make it executable with:</p>\n<pre><code class=\"language-bash\"> sudo chmod +x marktext.AppImage</code></pre>\n<p>You can launch the MarkText AppImage from your Downloads directory with:</p>\n<pre><code class=\"language-bash\">./marktext.AppImage</code></pre>\n<h2 id=\"h-markdown-isnt-just-for-writing\">Markdown isn't just for writing</h2>\n<p>You dont have to be writing documentation or preparing a presentation to take advantage of the simplicity and flexibility that Markdown offers. You can <a href=\"https://linuximpact.com/easily-convert-web-pages-to-markdown-self-hosted-toollinux/\">download web pages as Markdown files</a> for archiving and viewing at your leisure.</p>",
"image": "https://linuximpact.com/media/posts/93/typewriter-2.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Tool",
"Software",
"Linux"
],
"date_published": "2024-06-08T14:07:00+01:00",
"date_modified": "2024-07-29T14:47:24+01:00"
},
{
"id": "https://linuximpact.com/emulate-game-boy-in-the-linux-terminal/",
"url": "https://linuximpact.com/emulate-game-boy-in-the-linux-terminal/",
"title": "Emulate classic Game Boy action in The Linux Terminal ",
"summary": "Nintendo's Game Boy is a smidge older than Linux, with the pocket console making its Japanese debut in 1989. For those of us on the Eastern shores of the Atlantic, the first units appeared on the shelves in late 1990, making them the perfect stocking…",
"content_html": "<p data-pm-slice=\"1 1 []\">Nintendo's Game Boy is a smidge older than Linux, with the pocket console making its Japanese debut in 1989. For those of us on the Eastern shores of the Atlantic, the first units appeared on the shelves in late 1990, making them the perfect stocking filler for Christmas that year.</p>\n<p>The initial Linux release came a mere nine months later in September 1991.</p>\n<p>Both platforms have developed almost beyond recognition in the three decades that followed: The original Game Boy was followed by the Game Boy Color, then the Game Boy Advance, the Game Boy Advance SP, and finally the novelty-sized Game Boy Micro, with a form factor that harked back to Nintendo's earlier Game and Watch System.</p>\n<p>Linux, meanwhile, has progressed from a hacked-together kernel to the ever-expanding family of distros that power the internet, desktop computers, and even a line of games-consoles.</p>\n<p>But when it first appeared - mere months after the Game Boy made its debut on these shores, Linux offered users little more than a naked terminal.</p>\n<p>So it seems kind of appropriate to use that monochrome terminal to emulate the monochrome gameplay of the first Game Boy.</p>\n<h2 id=\"h-emulate-a-game-boy-with-php\">Emulate a Game Boy with... PHP?</h2>\n<p>Emulating the original Game Boy isn't a computationally expensive task, and we were running Pokemon ROMs back when we were still convinced that Amiga was the future - proudly waving the bouncy ball banner as the system disappeared beneath the waves.</p>\n<p>Midway through the third decade of the 21st century, you can probably emulate a Game Boy on your electric toothbrush. It's the Doom of consoles - destined to be the benchmark by which the casual excesses of our hardware is judged.</p>\n<p>If you just want a quick couple of rounds of Tetris, it's easy enough to find a browser-based version online - or you can boot up one of the very many conventional Game Boy emulators available with a commercial or open-source licence.</p>\n<p>PHP is a scripting language that appeared on the scene in the 1990s, and back in the day, stood for Personal Home Page. You'd use it to build websites to display pictures of your cats and your kids. Almost 30 years on and PHP has evolved almost beyond recognition. Aside from dumping its association with homebrew web development, later versions added support for object-oriented programming, better database support Unicode, Just-in-time compilation, and a whole raft of optimisations.</p>\n<p>Today, PHP, despite the rather boring rebranding as \"PHP: Hypertext Preprocessor\", powers most sites on the internet including everything built using the WordPress platform - which itself is often used for... personal home pages.</p>\n<p>But it's PHP's usefulness as a relatively lightweight complete language, and the fact it can be executed on the command line, that makes it (kind of ) suitable to build a Game Boy emulator you can play in your terminal.</p>\n<h2 id=\"h-why-emulate-game-boy-games-in-your-terminal-anyway\">Why emulate Game Boy games in your terminal anyway?</h2>\n<p>Browsers are big, hefty things that consume massive amounts of memory. Terminals are usually pretty lightweight.</p>\n<p>Maybe you want to play Mega Man V via SSH on a remote system like a Raspberry Pi while you're installing some self-hosted services, such as xxx.</p>\n<p>Perhaps you just think playing Game Boy games in a terminal is cool. You're right. It is.</p>\n<h2 id=\"h-how-to-install-php-terminal-gameboy-emulator-on-linux\">How to install php-terminal-gameboy-emulator on Linux</h2>\n<p><a href=\"https://github.com/gabrielrcouto/php-terminal-gameboy-emulator\" rel=\"noopener noreferrer nofollow\">php-terminal-gameboy-emulator</a> was developed by PHP enthusiast, Gabriel Rodrigues Couto, who has used PHP to start work on projects as diverse as PHP neural network, and even a PHP-based cryptocurrency.</p>\n<p>The Game Boy emulator repository hasn't been updated since 2016, and the Readme states that it's compatible with PHP 5.6, PHP 7, and HHVM (HipHop Virtual Machine).</p>\n<p>PHP 7 is pretty old, and HHVM hasn't supported PHP since 2017. But if you don't fancy installing ancient software on your spanky up-to-date Linux box, we're pleased to tell you that we've tried php-terminal-gameboy-emulator with all versions of PHP from 8.0 up. We ran into no difficulties, and you can proceed with confidence.</p>\n<p>For the easiest way to install the software, you'll need PHP and Composer installed on your system. On Debian-based PCs, you can install these with:</p>\n<pre><code class=\"language-bash\">sudo apt install php-cli git composer</code></pre>\n<p>To get started, open a terminal in the usual way and clone the php-terminal-gameboy-emulator repository, and use the cd command to move into your new directory:</p>\n<pre><code class=\"language-bash\">git clone https://github.com/gabrielrcouto/php-terminal-gameboy-emulator.git && cd php-terminal-gameboy-emulator</code></pre>\n<p>Now use Composer to install the emulator:</p>\n<pre><code class=\"language-bash\">composer install -o</code></pre>\n<p>The entire process should take no more than a minute.</p>\n<p>we found it useful to create an alias to make it easier to launch the emulator:</p>\n<pre><code class=\"language-bash\">echo -e \"\\nalias php-gameboy='~/php-terminal-gameboy-emulator/bin/php-gameboy'\" >> ~/.bashrc\nsource ~/.bashrc</code></pre>\n<p>We found this to be the most reliable way to install the emulator. Other methods are detailed in the official repository.</p>\n<h2 id=\"h-you-can-play-game-boy-games-in-your-terminal-on-linux\">You can play Game Boy games in your terminal on Linux!</h2>\n<p>Your new terminal-based gameboy emulator accepts the path of a Game Boy ROM as an argument, or will look for ROMs in your current directory. We wanted to play TMNT II - Back from the Sewers, so we entered:</p>\n<p>php-gameboy Teenage\\ Mutant\\ Ninja\\ Turtles\\ -\\ Back\\ From\\ the\\ Sewers\\ (U)\\ [!].gb</p>\n<p>Startup is instant, smooth, and gloriously monochrome.</p>\n<p>As a quick reminder, the original Game Boy had a limit number of buttons. There was a D-Pad for directional control, plus <strong>B</strong>, <strong>A</strong>, <strong>Start</strong>, and <strong>Select</strong>. In contrast, your standard PC keyboard has six rows of keys, and probably a numeric keypad. It's a little overkill for a tiny console, and you'll onnly be using a few of them. These are your standard AWSD for direction, plus comma and period (full stop) for <strong>A</strong> and <strong>B</strong>, with <strong>M</strong> and <strong>N</strong> standing in for <strong>Select</strong> and <strong>Start</strong>.</p>\n<h2>How do Game Boy Games play in the Terminal?</h2>\n<p>We don't have limitless time on our hands, so were only able to test a few games during our coffee break.</p>\n<p>Gameplay was smooth on all the games we tested, although there were some artefacts around the sprites when moving. Naturally, there was no sound.</p>\n<h2 id=\"h-and-if-you-need-some-more-nostalgia\">And if you need some more nostalgia...</h2>\n<p>If we're being honest, the project is more an exercise in showing what the terminal can do, rather than a platform for engaging in serious retro gaming. If your committed the idea of using the command line for games, try these games you can play in your Linux Terminal.</p>\n<p>Alternatively, if you want an emulation station you can take with you anywhere, you can easily <a href=\"https://linuximpact.com/cheap-portable-retro-gaming-with-a-hated-handheld/\">convert a cheap Leapfrog Leapster into a fully featured pocket emulation platform</a></p>",
"image": "https://linuximpact.com/media/posts/92/linux_terminal_game_boy.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Terminal",
"Gaming"
],
"date_published": "2024-05-18T11:46:00+01:00",
"date_modified": "2024-07-29T14:24:35+01:00"
},
{
"id": "https://linuximpact.com/terminal-roulette-is-a-classic-casino-game-in-your-terminal/",
"url": "https://linuximpact.com/terminal-roulette-is-a-classic-casino-game-in-your-terminal/",
"title": "Terminal Roulette is a classic casino game in your terminal",
"summary": "Ah! The bright lights of Vegas, the complementary drinks, and attractive people of the appropriate gender gasping, as you boldly bet it all on black. What is there not to like about roulette? Well there are a few things, not least of which is that…",
"content_html": "<p data-pm-slice=\"1 1 []\">Ah! The bright lights of Vegas, the complementary drinks, and attractive people of the appropriate gender gasping, as you boldly bet it all on black. What is there not to like about roulette?</p>\n<p>Well there are a few things, not least of which is that if you stay on the table all night, you're likely to lose everything, take out a line of credit, and end up digging your own grave while being watched by a family of scorpions in the desert sun.</p>\n<p>Aside from that, roulette is pretty cool. It's not just a game of chance - you could get that with a random number generator - there's the fascination of watching the machinery in motion, and the numbers flashing up. There's the anticipation as you wait for it to settle.</p>\n<p>While we'd love to go to Vegas and risk everything on a silver ball, we're not going to - chained as we are to this keyboard, and reluctant to brave a trip to the airport.</p>\n<h2 id=\"h-why-play-roulette-in-the-linux-terminal\">Why play roulette in the Linux terminal?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/91/roulette_wheel.jpg\" alt=\"A roulette wheel with the ball settled on 25\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/91/responsive/roulette_wheel-xs.webp 300w ,https://linuximpact.com/media/posts/91/responsive/roulette_wheel-sm.webp 480w ,https://linuximpact.com/media/posts/91/responsive/roulette_wheel-md.webp 768w ,https://linuximpact.com/media/posts/91/responsive/roulette_wheel-lg.webp 1024w ,https://linuximpact.com/media/posts/91/responsive/roulette_wheel-xl.webp 1360w ,https://linuximpact.com/media/posts/91/responsive/roulette_wheel-2xl.webp 1600w\"></figure>\n<p>If we believe what we're told by the gambling industry, betting on random events and sporting fixtures is something you should do for entertainment. Not something you should do if you can't afford to lose the money. A glance at the weeping and broken figures exiting our local dens of inquity tells us this advice is seldom heeded.</p>\n<p>We're <a href=\"https://buymeacoffee.com/linuximpact\">pretty broke to start with</a>, and can guarantee that if we set up a betting account online, we'd be poorer still. Sure, gambling sites are flashy, and there are all kinds of offers, but we know who's going to come out better off at the end of the day - and it isn't us.</p>\n<p>Far better to play roulette locally, offline, with complementary beers from the kitchen fridge, and a stackful of imaginary money that you can regenerate at any time. Since we spend most of our waking hours in the terminal anyway, <a href=\"https://github.com/levkush/terminalroulette\" rel=\"noopener noreferrer nofollow\">terminalroulette</a>, by Canadian techie Lev Kushtym, seems like the better option.</p>\n<h2 id=\"h-how-to-install-terminalroulette\">How to install terminalroulette</h2>\n<p>terminal roulette is a doddle to get onto your system, requiring only that you have <strong>git</strong> and <strong>Python</strong> already installed.</p>\n<p>if you have those prerequisites, clone the terminalroulette repository with:</p>\n<pre><code class=\"language-bash\">git clone https://github.com/levkush/terminalroulette.git</code></pre>\n<p>Use the <strong>cd</strong> command to move into the new directory:</p>\n<pre><code class=\"language-bash\">cd terminalroulette</code></pre>\n<p>...and launch the game with:</p>\n<pre><code class=\"language-bash\">python3 roulette.py</code></pre>\n<h2 id=\"h-spin-the-roulette-wheel-in-your-terminal\">Spin the roulette wheel in your terminal!</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/91/terminal-roulette-gameplay.jpg\" alt=\"terminal approximation of a roulette board and roulette wheel having lost $250\" width=\"1920\" height=\"567\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/91/responsive/terminal-roulette-gameplay-xs.webp 300w ,https://linuximpact.com/media/posts/91/responsive/terminal-roulette-gameplay-sm.webp 480w ,https://linuximpact.com/media/posts/91/responsive/terminal-roulette-gameplay-md.webp 768w ,https://linuximpact.com/media/posts/91/responsive/terminal-roulette-gameplay-lg.webp 1024w ,https://linuximpact.com/media/posts/91/responsive/terminal-roulette-gameplay-xl.webp 1360w ,https://linuximpact.com/media/posts/91/responsive/terminal-roulette-gameplay-2xl.webp 1600w\"></figure>\n<p>You start the game with a $1,000 balance and a representation of a roulette table at the top of your terminal. If you're familiar with the game, you'll recognise the green zeroes, and the long rows of numbered black and red squares.</p>\n<p>Below this is a representation of the wheel itself. It's not round but instead, shows a seven-number segment. When the game starts, the indicator is set on zero.</p>\n<p>As you might expect from a TUI game, the action is text-driven. With the action of betting following this pattern:</p>\n<pre><code class=\"language-bash\">bet amount outcome</code></pre>\n<p>So if you wanted to place $250 of your imaginary cash on the number 27, you'd enter:</p>\n<pre><code class=\"language-bash\">bet 250 27</code></pre>\n<p>Hit <strong>enter</strong> and you'll see \"<strong>Successfully bet 250$ on 27!</strong>\" From here, there's no way back, so type</p>\n<pre><code class=\"language-bash\"> start</code></pre>\n<p>...and type <strong>enter</strong> once more to set the game in motion.</p>\n<p>Your ballance will dip by $250, and the wheel representation will flash into a semblence of motion as colours and numbers jockey for position.</p>\n<p>In our test run, the wheel landed on nuber 30, which is a red number, so we decided to recoup our losses with</p>\n<pre><code class=\"language-bash\">bet 250 red</code></pre>\n<p>We won and were back at our original balance of $1000. Having narrowly avoided crippling losses, we decided to leave the <s>casino</s> terminal.</p>\n<p>The game is simple and in addition to <strong>bet </strong>and <strong>start</strong>, there are only a few commands to remember:</p>\n<pre><code class=\"language-bash\">money</code></pre>\n<p>... will show your current balance.</p>\n<pre><code class=\"language-bash\">clearbets</code></pre>\n<p>... will retract your current bets - provided you input it before you type <strong>start</strong>.</p>\n<p>to exit the roulette TUI, type:</p>\n<pre><code class=\"language-bash\">exit</code></pre>\n<p>Additionally, you can bet on odds or evens - although you can't yet bet on columns or rows.</p>\n<h2 id=\"h-have-fun-pretending-to-gamble-in-your-terminal\">Have fun pretending to gamble in your terminal</h2>\n<p>terminalroulette is fun for the few minutes it will take you to run through your stack of chips, and is a fun way to pass the time while you wait for packages to download, <a href=\"https://linuximpact.com/set-up-your-own-xmpp-server-on-a-raspberry-pi-in-under-five-minutes/\">set up your own XMPP server</a>, or sync your photos with your <a href=\"https://linuximpact.com/immich-is-the-killer-app-that-will-kick-start-the-self-hosting-revolution/\">self-hosted Google Photos alternative</a>.</p>",
"image": "https://linuximpact.com/media/posts/91/roulette_sign.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Terminal",
"TUI",
"Gaming",
"CLI"
],
"date_published": "2024-05-11T15:05:00+01:00",
"date_modified": "2024-05-24T16:53:59+01:00"
},
{
"id": "https://linuximpact.com/going-going-gone-how-to-easily-install-golang-on-linux/",
"url": "https://linuximpact.com/going-going-gone-how-to-easily-install-golang-on-linux/",
"title": "Going, going... gone. How to easily install Golang on Linux ",
"summary": "Go is a programming language designed by Google engineers, that runs under the hood of a lot of the software you probably use on a regular basis. Want to install Go on your Linux system? This is how. If you're a coder, you probably want…",
"content_html": "<p data-pm-slice=\"1 1 []\">Go is a programming language designed by Google engineers, that runs under the hood of a lot of the software you probably use on a regular basis. Want to install Go on your Linux system? This is how.</p>\n<h2 id=\"h-why-install-go-on-linux\">Why install Go on Linux?</h2>\n<p>If you're a coder, you probably want to install Go on Linux because you want a high-level programming language that's powerful and not too difficult to learn and use. It can help you to get a job within the IT field, pivot to a new direction, or you can use it to create hobby projects to either showcase your skills or just for giggles.</p>\n<p>But we suspect (we have no proof of this), that most people would need to install Go on Linux in order to install and use some of the awesome open-source projects, tools, and games that are created with Go, and require Go to run.</p>\n<p>If this is you, read on...</p>\n<h2 id=\"h-installing-go-on-linux-is-easy\">Installing Go on Linux is easy.</h2>\n<p>Go - or Golang as it's present in most of the major repositories, which means that you can install it using your package manager in the usual way.</p>\n<p>If you're on Ubuntu, for instance, you would open a terminal and enter:</p>\n<pre><code class=\"language-bash\">sudo apt install golang-go</code></pre>\n<p>For systems with snap, enter:</p>\n<pre><code class=\"language-bash\">sudo snap install go --classic</code></pre>\n<p>Go is also available in the Arch User Repository.</p>\n<p>But repositories have an unfortunate tendency to lag far behind the latest release of any software package, and Go is no exception. If you want the most up-to-date version of go, you're better off installing it yourself - although this does mean that Go won't update when you update the rest of your system</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/90/golang_wget.jpg\" alt=\"using wget to download the golang tarball\" width=\"1920\" height=\"683\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/90/responsive/golang_wget-xs.webp 300w ,https://linuximpact.com/media/posts/90/responsive/golang_wget-sm.webp 480w ,https://linuximpact.com/media/posts/90/responsive/golang_wget-md.webp 768w ,https://linuximpact.com/media/posts/90/responsive/golang_wget-lg.webp 1024w ,https://linuximpact.com/media/posts/90/responsive/golang_wget-xl.webp 1360w ,https://linuximpact.com/media/posts/90/responsive/golang_wget-2xl.webp 1600w\"></figure>\n<p>To grab the latest version of Go, visit <a href=\"https://go.dev/dl/\" rel=\"noopener noreferrer nofollow\">https://go.dev/dl/</a> and look for your OS and architecture in the list. Your OS is, obviously, Linux, and if you're running it on a modern PC the architecture should be x86-64. If you're installing on a machine with an ARM processor, such as a Raspberry Pi, a repurposed modern mac, or similar, you need ARM64. Sorry, 32-bit Pi users, you appear to be out of luck.</p>\n<p>Right-click on the tarball name and copy the address to your clipboard, then open a terminal and use <strong>wget</strong> to download the package to your current directory. For instance:</p>\n<pre><code class=\"language-bash\">wget https://go.dev/dl/go1.22.3.linux-amd64.tar.gz</code></pre>\n<p>When the download has completed, extract it to <strong>/usr/local/</strong> with the following command:</p>\n<pre><code class=\"language-bash\">sudo tar -C /usr/local -xvf go1.22.3.linux-amd64.tar.gz</code></pre>\n<p>Make sure you change the filename to match the version you downloaded.</p>\n<p>Go is now installed in /usr/local/go/bin, but your system won't know where to find it if you type the command <strong>go</strong> into your terminal, and you'll see a \"command not found\" message. To fix this enter the following lines:</p>\n<pre><code>echo \"export PATH=$PATH:/usr/local/go/bin\" >> .profile</code></pre>\n<p>...and refresh your profile:</p>\n<pre><code class=\"language-bash\">source ~/.profile </code></pre>\n<p>That's it Go is now installed on your Linux server or PC. Have fun!</p>",
"image": "https://linuximpact.com/media/posts/90/greenman.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Tool",
"Terminal",
"Software",
"Linux"
],
"date_published": "2024-05-04T11:47:00+01:00",
"date_modified": "2024-05-24T16:53:23+01:00"
},
{
"id": "https://linuximpact.com/ancestrycomshares-gps-metadata-exact-user-address-scam/",
"url": "https://linuximpact.com/ancestrycomshares-gps-metadata-exact-user-address-scam/",
"title": "Ancestry.com: Helping you trace your roots and share your exact address",
"summary": "There's an old lady somewhere in Brazil. She's not dying, but she's probably close, and she lives in a nursing home within sight of both Christ the Redeemer and the Atlantic Ocean. Let's call her Alice. Alice doesn't have any close relatives, but according to…",
"content_html": "<p data-pm-slice=\"1 1 []\">There's an old lady somewhere in Brazil. She's not dying, but she's probably close, and she lives in a nursing home within sight of both Christ the Redeemer and the Atlantic Ocean. Let's call her Alice.</p>\n<p>Alice doesn't have any close relatives, but according to ancestry.com, she shares some common ancestry with my wife's sister. In April 2015, when she took a photograph of herself, she was using an iPhone 6 Plus - a handset that had been released only six months previously. It wasn't a cheap handset, and the facility in which she's living isn't cheap either. Looking at Alice's photo (not her real name, BTW), you can see a resemblance. Despite the two centuries since they had a relative in common, and the ocean between them, they could pass for first cousins.</p>\n<p>Does Alice sound like a target to you?</p>\n<h2 id=\"h-ancestry-sites-are-sketchy-to-begin-with\">Ancestry sites are sketchy to begin with</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/89/man-on-laptop.jpg\" alt=\"An older man with a ponytail using a laptop in front of a window\" width=\"1600\" height=\"800\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/89/responsive/man-on-laptop-xs.webp 300w ,https://linuximpact.com/media/posts/89/responsive/man-on-laptop-sm.webp 480w ,https://linuximpact.com/media/posts/89/responsive/man-on-laptop-md.webp 768w ,https://linuximpact.com/media/posts/89/responsive/man-on-laptop-lg.webp 1024w ,https://linuximpact.com/media/posts/89/responsive/man-on-laptop-xl.webp 1360w ,https://linuximpact.com/media/posts/89/responsive/man-on-laptop-2xl.webp 1600w\"></figure>\n<p>Your DNA is intensely personal to you, and unless you're an identical twin, it's the one thing that can pin you down and identify you as an individual.</p>\n<p>It defines the traits that make up your personality, and contains the code that will, at least partly, dictate your physical attributes: your height, you dietary requirements, your earlobes, your finger length, and how hard puberty kicks in.</p>\n<p>The urge to find out more about yourself, and what makes you <em>you</em> is inbuilt - which is why the sister-in-law was happy to shell out 78 nicker for insights.</p>\n<p>For less than the cost of a couple of vinyl records, she can find out that she's not a fussy eater, it's genetic, and her tendency to nap at odd hours is dictated by her genes.</p>\n<p>She can also find out who she's related to, and where in the world, the diaspora of her grandparents, great-grandparents, and so on, are living now.</p>\n<p>If you're using a geneology service, you obviously want to share your data, but how much do you want to share?</p>\n<p>Ancestry.com doesn't show a user's location by default - although if they have an uncommon name, unusual appearance, or have made the news for some reason, you might be able to find them with a Google search (other search engines are available). This is how we know that one of her fourth or fifth cousin is a Utah meth dealer who was convicted for selling to an undercover cop within 1,000 feet of a school.</p>\n<p>Giving your genetic material to a private company can cause you all kinds of trouble. How do you know that they're not selling it for profit. I'm sure that marketing companies would love to know that you have a genetic predisposition to craving chocolate at certain times of the month. Likewise, the ability to tailor a virus that could kill or incapacitate an individual or group of people is an ability we're sure the governments of the world would love to have.</p>\n<p>One of the bigger players in the ancestry arena - 23andMe - has a history of selling customers' genetic data to whoever wants it: pharmaceutical companies, silicon valley startups, and more.</p>\n<p>Data submitted to geneaology websites was used to catch Joseph James DeAngelo - also known as the Golden State Killer - who murdered at least 12 victims and raped over 50 others over a 12 year span. Cops were able to pin the murders on him despite his never having submitted a sample. They zoomed in on his relatives.</p>\n<p>That's cool and all, but there are unanswered questions of consent here - and why stop at serial killers? Local authorities could use the same methods to track down people who drop cigarette butts in public.</p>\n<h2 id=\"h-theres-a-reason-you-dont-tell-internet-strangers-where-you-live\">There's a reason you don't tell internet strangers where you live</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/89/shadows.jpg\" alt=\"Shadows cast on a cupboard door of a gunpoint robbery\" width=\"1600\" height=\"801\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/89/responsive/shadows-xs.webp 300w ,https://linuximpact.com/media/posts/89/responsive/shadows-sm.webp 480w ,https://linuximpact.com/media/posts/89/responsive/shadows-md.webp 768w ,https://linuximpact.com/media/posts/89/responsive/shadows-lg.webp 1024w ,https://linuximpact.com/media/posts/89/responsive/shadows-xl.webp 1360w ,https://linuximpact.com/media/posts/89/responsive/shadows-2xl.webp 1600w\"></figure>\n<p>Every piece of information you give out can be used to harm you. You don't tell people your bank details, and you sure as shit don't let randos know where you live.</p>\n<p>Aside from marketing scams, there's the possibility of setting yourself up for a robbery, especially if you have a nice new phone, with a gigantic plasma TV in the background. This is stuff they teach in primary school these days.</p>\n<p>Every online platform you use gives you the option of disclosing your location, but even then, you're unlikely to give out your actual home address.</p>\n<p>Most photos taken in the last two decades have been digital pics snapped on smartphones, and smartphones are more than just a telecoms device with a camera built-in.</p>\n<p>Even the most basic unit will have a huge array of sensors, including a positioning system of some sort. This can be based off anything from satellite data to what WiFi networks you're close to, and they can be scary accurate.</p>\n<p>Unless you have the option turned off, this is embedded in the metadata of your photo, and you can extract t with utilities such as Exiftool.</p>\n<p>There are good reasons you might want your location data embedded in a photo. We use <a href=\"https://linuximpact.com/immich-is-the-killer-app-that-will-kick-start-the-self-hosting-revolution/\">Immich as an excellent replacement for Google photos</a> and have it running, alongside a plethora of other <a href=\"https://linuximpact.com/tags/self-hosted/\">self-hosted software</a> on a <a href=\"https://www.amazon.com/Raspberry-Pi-Computer-Suitable-Workstation/dp/B0899VXM8F/ref=sr_1_3?crid=16G7DHNEVDVBH&keywords=raspberry+pi+8gb&qid=1699266630&sprefix=raspberry+pi+8gb%252Caps%252C152&sr=8-3&_encoding=UTF8&tag=thecrowuk-20&linkCode=ur2&linkId=0f9dee46e8b8e6c27a2421c530833bac&camp=1789&creative=9325\">Raspberry Pi</a>.</p>\n<p>With Immich, you can see a map of where all your photos were taken and zoom in on them - or if you're not sure where you snapped an image, it's easy to find out. It's a nice feature.</p>\n<p>But if you upload a photo a social media site such as Xitter or Facebook, that location metadata is stripped out without the user having to do it themselves. The companies are aware that if kids get kidnapped, people get murdered or other crimes occur as a result of location data gained through their platform, they'll be in trouble.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/89/gps-data-from-ancestry-com-profile-pic.jpg\" alt=\"exiftool terminal output with GPS data redacted by blur\" width=\"1600\" height=\"801\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/89/responsive/gps-data-from-ancestry-com-profile-pic-xs.webp 300w ,https://linuximpact.com/media/posts/89/responsive/gps-data-from-ancestry-com-profile-pic-sm.webp 480w ,https://linuximpact.com/media/posts/89/responsive/gps-data-from-ancestry-com-profile-pic-md.webp 768w ,https://linuximpact.com/media/posts/89/responsive/gps-data-from-ancestry-com-profile-pic-lg.webp 1024w ,https://linuximpact.com/media/posts/89/responsive/gps-data-from-ancestry-com-profile-pic-xl.webp 1360w ,https://linuximpact.com/media/posts/89/responsive/gps-data-from-ancestry-com-profile-pic-2xl.webp 1600w\"></figure>\n<p>Ancestry.com doesn't bother, and you can use the metadata from the photos on the site to pin down someone's bedroom. You can use their submitted family tree to find out that there's no-one closer to them than second cousins.</p>\n<p>Did we mention that you don't need to even be related to someone in order to see their profile and look at their family and images?</p>\n<p>In short, <a href=\"http://ancestry.com\" rel=\"noopener noreferrer nofollow\">ancestry.com</a> is an almost perfect victim location and targetting platform - if that's your bag. Someone looking for long-lost distant relatives is always going to be something of an easy target, and someone who believes in the fatuous DNA insights is more likely that average to be a mug (according to their DNA).</p>\n<p>This is, of course, leaving aside \"Kind Hearts and Coronets\" scenarios where a distant relative picks off everyone who stands between him an a large inheritance.</p>\n<p>You don't even need to be logged in in order to view or download the images. <strong>wget</strong> will do the job just fine.</p>\n<h2 id=\"h-is-there-location-data-in-all-the-ancestrycom-images\">Is there location data in all the ancestry.com images?</h2>\n<p>From our random sampling, we'd say that around a third of profile pictures have GPS latitude and longitude embedded in the metadata. This is largely from people who take a quick snap with a selfie cam or mirror shot and upload directly.</p>\n<p>If you've edited a picture or used on-device tools to rotate or crop the image, a large part of the metadata is stripped out, and you should be fine.</p>\n<p>For everyone else who uses ancestry.com, you're at risk of being scammed in more ways than one.</p>\n<h2 id=\"h-what-does-ancestrycom-say\">What does ancestry.com say?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/89/call-centre.jpg\" alt=\"call centre workers\" width=\"1600\" height=\"801\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/89/responsive/call-centre-xs.webp 300w ,https://linuximpact.com/media/posts/89/responsive/call-centre-sm.webp 480w ,https://linuximpact.com/media/posts/89/responsive/call-centre-md.webp 768w ,https://linuximpact.com/media/posts/89/responsive/call-centre-lg.webp 1024w ,https://linuximpact.com/media/posts/89/responsive/call-centre-xl.webp 1360w ,https://linuximpact.com/media/posts/89/responsive/call-centre-2xl.webp 1600w\"></figure>\n<p>There's no obvious way to contact ancestry.com without creating an account, and no email address we could find on the main site, so I used Leif - the company's' virtual assistant' chatbot, and asked:</p>\n<p><strong>Are you aware that GPS location metadata remains intact in profile pics uploaded to your site? You can literally pinpoint a user's bedroom.</strong></p>\n<p>After exhausting the bot's stock answers, I asked to be put through to a real person, and had to supply my full name, email address and postcode. For those outside the UK, a postcode is almost as accurate as the GPS coordinates we found embedded in profile pics on the site.</p>\n<p>Eventually we landed a support person called Maya Here's the exchange:</p>\n<p>Maya: <strong><em>Hi, my name is Maya and I will be assisting you today.</em></strong></p>\n<p>Me:<strong> Hi Maya</strong></p>\n<p>Maya:<em> </em><strong><em>Hello, are you referring to the location where the photo was taken or where it was uploaded from?</em></strong></p>\n<p>Me: <strong>where it's taken</strong></p>\n<p>Maya: <strong><em>Having photo metadata allows member to share their uploaded photos to other members searching for particular records.</em></strong></p>\n<p>Me: <strong>You don't think being able to pinpoint someone's house is a security risk?</strong></p>\n<p>The support chat was transferred to another assistant called Yoni Rose.</p>\n<p>Yoni Rose: <strong><em>Thank you for contacting Ancestry Support. Please allow me a moment to review your question and respond.</em></strong></p>\n<p>Chat ended due to timeout. There was no email follow up.</p>",
"image": "https://linuximpact.com/media/posts/89/ancestry-main-image.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Security",
"Privacy",
"Internet"
],
"date_published": "2024-04-27T18:36:36+01:00",
"date_modified": "2024-04-27T19:20:33+01:00"
},
{
"id": "https://linuximpact.com/how-to-check-weather-moon-phase-linux-terminal-cli-tool/",
"url": "https://linuximpact.com/how-to-check-weather-moon-phase-linux-terminal-cli-tool/",
"title": "Windy out? How to check the weather, moon phase and more from your Linux terminal",
"summary": "Rain or shine, storms, snow, gales, ice, and blistering heat. Weather can seriously affect how you're going to spend the rest of your day, week, month, or even your year. Dress for a gloriously sunny day in flip-flops, shorts with a natty straw hat, and…",
"content_html": "<p data-pm-slice=\"1 1 []\">Rain or shine, storms, snow, gales, ice, and blistering heat. Weather can seriously affect how you're going to spend the rest of your day, week, month, or even your year.</p>\n<p>Dress for a gloriously sunny day in flip-flops, shorts with a natty straw hat, and you're going to have a bad time when an ice storm comes roaring in from the North Sea, and destroys your headwear, before leaving you as a frozen and bruised, wind-burned wreck on the beach.</p>\n<p>Likewise, dress for the cold, and you'll find yourself in a puddle of sweat when the clouds lift, and a great fiery ball in the sky sends temperatures rocketing.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/88/umbrella-man.jpg\" alt=\"Man with umbrella standing next to a signpost near a fog bank\" width=\"1600\" height=\"800\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/88/responsive/umbrella-man-xs.webp 300w ,https://linuximpact.com/media/posts/88/responsive/umbrella-man-sm.webp 480w ,https://linuximpact.com/media/posts/88/responsive/umbrella-man-md.webp 768w ,https://linuximpact.com/media/posts/88/responsive/umbrella-man-lg.webp 1024w ,https://linuximpact.com/media/posts/88/responsive/umbrella-man-xl.webp 1360w ,https://linuximpact.com/media/posts/88/responsive/umbrella-man-2xl.webp 1600w\"></figure>\n<p>Aside from being able to tailor your outerwear for personal comfort, knowing the weather in advance can help you plan events a few days in advance. There's no point in unpacking and assembling your telescope if the skies are covered all weekends, and you don't want to set aside a day to plant up your allotment, if it's going to rain for the whole of next week.</p>\n<h2 id=\"h-a-weather-forecast-in-your-terminal\">A weather forecast in your terminal</h2>\n<p>You can tell what the weather's like right now by looking out of the window, but that doesn't tell you what the conditions will be like this afternoon, or tomorrow. For that, you need a forecast.</p>\n<p>Weather forecasts apps and websites are easy to come by. There's probably one baked into your phone's OS, and searching Google for the weather in your location, will give you an idea of what the heavens have in store for you over the next several days.</p>\n<p>The problem is that by using any of these services, you're opting into the tracking-based ecosystem that plagues the internet in the 21st century.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/88/met-office-vendors.jpg\" alt=\"The right half of the image is a weather map of he UK, while the left portion is a section of a list of so-called vendors with a toggle switch for each\" width=\"1600\" height=\"800\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/88/responsive/met-office-vendors-xs.webp 300w ,https://linuximpact.com/media/posts/88/responsive/met-office-vendors-sm.webp 480w ,https://linuximpact.com/media/posts/88/responsive/met-office-vendors-md.webp 768w ,https://linuximpact.com/media/posts/88/responsive/met-office-vendors-lg.webp 1024w ,https://linuximpact.com/media/posts/88/responsive/met-office-vendors-xl.webp 1360w ,https://linuximpact.com/media/posts/88/responsive/met-office-vendors-2xl.webp 1600w\"></figure>\n<p>Even checking the <a href=\"https://www.metoffice.gov.uk/\" rel=\"nofollow\">Met Office</a> - the UK government's national weather service exposes you to more trackers, cookies, and 'vendors' than you're probably comfortable with. Sure, those of us lucky enough to live somewhere with adequate(ish) data protection regulations can click on \"Reject All\" to banish the 241 vendors from our cache, but then we have to put up with DRM warnings.</p>\n<p>And the Met Office is one of the easier sites to deal with. Some publishers even put their forecasts behind a paywall, meaning you have to use a dedicated <a href=\"https://linuximpact.com/bypass-paywalls-clean-combines-all-soft-paywall-hacks-into-one-neat-package/\">tool to get around the paywall</a>.</p>\n<p>wttr.in is a project by Igor Chubin that delivers weather reports to your Linux terminal in a format that's easy to understand, doesn't track you or your online activity, and xxx.</p>\n<p>On top of everything else, it's cool as the ninth circle of hell.</p>\n<h2 id=\"h-curl-your-local-weather-from-wttrin\">cURL your local weather from wttr.in</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/88/wttr-default-view.jpg\" alt=\"terminal wttr weather report for Lyme Regis showing current conditions and next three days\" width=\"1600\" height=\"866\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/88/responsive/wttr-default-view-xs.webp 300w ,https://linuximpact.com/media/posts/88/responsive/wttr-default-view-sm.webp 480w ,https://linuximpact.com/media/posts/88/responsive/wttr-default-view-md.webp 768w ,https://linuximpact.com/media/posts/88/responsive/wttr-default-view-lg.webp 1024w ,https://linuximpact.com/media/posts/88/responsive/wttr-default-view-xl.webp 1360w ,https://linuximpact.com/media/posts/88/responsive/wttr-default-view-2xl.webp 1600w\"></figure>\n<p>cURL is a command-line utility used to sending or getting data using URL syntax. Point it at an ordinary web page, and it will output the HTML contained on that webpage. It's surprisingly sophisticated, and useful for managing HTTP post, SSL connections, proxy support, and FTP uploads. If it isn't already on your list of <a href=\"https://linuximpact.com/discover-your-most-used-linux-commands-with-muc/\">most used Linux commands</a>, it should be.</p>\n<p>curl doesn't come installed on all distros. You can easily install cURL on Debian-based systems, by popping open a terminal and entering:</p>\n<pre><code class=\"language-bash\">sudo apt install curl </code></pre>\n<p>To get a three-day forecast for your approximate location (determined by your IP address), just tap:</p>\n<pre><code class=\"language-bash\">curl wttr.in</code></pre>\n<p>...into your terminal.</p>\n<p>Almost immediately, you'll see the current conditions (Patchy rain nearby), followed by a three-day forecast showing weather for the morning, noon, evening, and night - all illustrated with classy ASCII art of the sun peaking from behind clouds, snowflakes, flashing lightning bolts, or whatever's incoming to your region.</p>\n<p>The data, including illustrations is presented in a table, and includes a description of the weather, the temperature, a \"feels like\" temperature, wind speed, visibility, mm of rain expected, and humidity. That's a lot.</p>\n<p>Of course, IP determined location is often unreliable. Our wttr.in weather report tells us that it's overcast in Lincoln, which is cool, but we're nowhere near Lincoln.</p>\n<p>To get the weather for your actual location, put the name of the nearest settlement as part of the URL.</p>\n<p>For instance, to get the weather in the lovely Cheshire market town of Frodsham, you'd enter:</p>\n<pre><code class=\"language-bash\">curl wttr.in/frodsham</code></pre>\n<p>Simple eh? Apparently, there's light drizzle.</p>\n<p>If your local town contains spaces, put a \"<strong>+</strong>\" sign between the words. If you want to be reassured that it's also raining in the Jurassic Coast seaside of resort of Lyme Regis, for instance, you'd enter:</p>\n<pre><code class=\"language-bash\">curl wttr.in/lyme+regis</code></pre>\n<p>By default, the wttr.in weather report displays an abundance of colour, which is fine if you have a standard white on black terminal. We prefer a light terminal background, and because of this, the colours don't show up very well. You can force plain text by adding \"<strong>/?T</strong>\" after your location. If you're using a <a href=\"https://linuximpact.com/relive-the-glory-days-of-crt-monitors-with-cool-retro-term/\">stylised terminal such as Cool Retro Term</a>, you may find this helps with visibility.</p>\n<h2>More weather modes</h2>\n<p>Maybe you don't want a three-day graphical weather report in your terminal. Perhaps you like things simpler, or even extra snazzy, or extra-detailed.</p>\n<p>In all cases, wttr.in has you covered.</p>\n<p>If you just want quick weather output for one or more locations, you can add \"?format=3\" to the end of your location string. For instance:</p>\n<p>curl wttr.in/Liverpool?format=3</p>\n<p>Or if you want the current conditions in multiple potential holiday destinations, use curly braces, with the locations separated by commas:</p>\n<pre><code class=\"language-bash\">curl -s 'wttr.in/{rhyl,llandudno,bodfari}?format=3'</code></pre>\n<p>The <strong>-s</strong> switch tells curl to operate silently.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/88/multi-wttr.jpg\" alt=\"short weather output for rhyl, llandudno, bodfari, gwent, and swansea\" width=\"1600\" height=\"741\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/88/responsive/multi-wttr-xs.webp 300w ,https://linuximpact.com/media/posts/88/responsive/multi-wttr-sm.webp 480w ,https://linuximpact.com/media/posts/88/responsive/multi-wttr-md.webp 768w ,https://linuximpact.com/media/posts/88/responsive/multi-wttr-lg.webp 1024w ,https://linuximpact.com/media/posts/88/responsive/multi-wttr-xl.webp 1360w ,https://linuximpact.com/media/posts/88/responsive/multi-wttr-2xl.webp 1600w\"></figure>\n<p>If you want specific information, wttr.in accepts inputs following the \"<strong>%</strong>\" symbol. The full list is available on the project page, but a few of our favourites are: moon phase (m), uv index (u), Dawn (D), and dusk (d). To view all of these for our the perpetually rainy northern town of Wigan, we would enter:</p>\n<pre><code class=\"language-bash\">curl wttr.in/wigan?format=\"%m:+%u+%D+%d\\n\"</code></pre>\n<p>For a more detailed and dedicated tool for checking out <a href=\"https://linuximpact.com/pyphoon-gives-you-an-ascii-moon-in-your-terminal/\">moon phases in your terminal, we recommend Pyphoon</a>.</p>\n<p>If you like graphs, charts, and data, you'll love v2.wttr as it gives you (among other things): temperature, and rain forecast through the next three days, moon phases, timezone for your chosen location, dawn, sunrise, noon, sunset, and dusk - all presented in a very sophisticated, visual way.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/88/data-rich-wttr.jpg\" alt=\"wttr output with graphs \" width=\"1600\" height=\"799\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/88/responsive/data-rich-wttr-xs.webp 300w ,https://linuximpact.com/media/posts/88/responsive/data-rich-wttr-sm.webp 480w ,https://linuximpact.com/media/posts/88/responsive/data-rich-wttr-md.webp 768w ,https://linuximpact.com/media/posts/88/responsive/data-rich-wttr-lg.webp 1024w ,https://linuximpact.com/media/posts/88/responsive/data-rich-wttr-xl.webp 1360w ,https://linuximpact.com/media/posts/88/responsive/data-rich-wttr-2xl.webp 1600w\"></figure>\n<p>To access the data-rich version, simply use v2.wttr.in as the base URL:</p>\n<pre><code class=\"language-bash\">curl v2.wttr.in/wigan</code></pre>\n<h2 id=\"h-theres-more-to-wttr-than-we-can-fit-in-here\">There's more to wttr than weather</h2>\n<p>Of course, this article barely scratches the surface of what the combination of <strong>curl</strong> and wttr is capable of. While we're not technically low on space here, it makes more sense to highlight the basic usage, and features we actually use, rather than paraphrase the entire manual.</p>\n<p>Notable features we haven't covered include a variety of output formats, cool maps, integrations with Conky, and multilingual locations names. Visit the project's <a href=\"https://github.com/chubin/wttr.in\" rel=\"noopener noreferrer nofollow\">GitHub page</a> and check it out.</p>\n<p> </p>",
"image": "https://linuximpact.com/media/posts/88/wttr-crt.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Tool",
"Terminal",
"TUI",
"Linux",
"CLI"
],
"date_published": "2024-04-18T16:20:00+01:00",
"date_modified": "2024-04-26T15:38:10+01:00"
},
{
"id": "https://linuximpact.com/banish-search-spam-forever-with-ublacklist/",
"url": "https://linuximpact.com/banish-search-spam-forever-with-ublacklist/",
"title": "Banish search spam forever with uBlacklist!",
"summary": "For a company that shot to success on the back of an algorithm that made it easy for ordinary people to find what they need online, Google has done an extraordinary job of turning their search engine into hot garbage. And make no mistake -…",
"content_html": "<p data-pm-slice=\"1 1 []\">For a company that shot to success on the back of an algorithm that made it easy for ordinary people to find what they need online, Google has done an extraordinary job of turning their search engine into hot garbage.</p>\n<p>And make no mistake - Google utterly dominates search. Sure, we use DuckDuckGo, but this isn't because we think that the Bing-powered results are better, it's because we don't like the idea of a predatory info broker tracking our queries and building a profile on us.</p>\n<p>But to say that Google has the best search results is like saying you've found the least stinky individual in a ninth-century French village. It's the best of a truly appalling bunch.</p>\n<h2 id=\"h-why-are-search-results-so-terrible\">Why are search results so terrible?</h2>\n<p>Just as Google dominates search, it also dominates online advertising, and adverts from Google appear on the majority of pages across the web.</p>\n<p>For websites to make money, they need eyeballs on their pages and on the adverts embedded therein.</p>\n<p>This has led to a gamification of the system. Instead of writers writing things they think people will want to read, SEO teams from massive media and content companies will come up with list of queries they think people will be searching for. From this list, they'll generate article titles and subheadings, then pass these to writers to build an article around.</p>\n<p>A lot of the time, the actual content doesn't matter. Sure, it's better if what's written is correct, but what matters most is to feature at or near the top of a search engine results page for specific and common queries. And then there are the affiliate link farms. Don't get us started on those...</p>\n<p>It's not just media and content giants, either. Even small businesses want to be found online and will hire so-called SEO experts to create high-ranking content that points back to their business.</p>\n<p>The end result of this is that searching for anything using any of the common search engines will result in pages of essentially identical, often worthless crud from the dark, Satanic SEO mills of the world.</p>\n<h2 id=\"h-how-to-get-better-search-results-from-google-bing-duckduckgo-yandex-and-more\">How to get better search results from Google, Bing, DuckDuckGo, Yandex, and more...</h2>\n<p>Fortunately, it's often easy to recognise what's been written for SEO purposes and what hasn't. Search for anything medical-related, for instance, and you'll see almost identical page titles from healthline, WebMD, mayoclinic, MedicalNewsToday, and more. Oftentimes, the sites will actually be owned by the same parent company in an effort to eliminate competition.</p>\n<p>The point is that it soon becomes obvious which sites you <em>don't</em> want results from. And there are easy-to-use browser extensions than help you exclude them from your search results page.</p>\n<h2 id=\"h-ublacklist-bans-sites-from-your-search-results\">uBlacklist bans sites from your search results</h2>\n<p>That subheading isn't strictly true. It doesn't affect the results that search engines such as Google send back to you. It changes what results you see on the results page - stripping out results from sites you don't want.</p>\n<p>On paper (or screen), this seems like a fabulous idea, and should, in theory, mean that you get less crud in your results, and more of what you're actually looking for.</p>\n<p>Of course, having uBlacklist or any other extension active while using the web means that the extension can see everything you can do online. It probably isn't spying on you, but it's a risk you take.</p>\n<h2 id=\"h-how-to-install-ublacklist-in-your-favourite-browser\">How to Install uBlacklist in your favourite browser</h2>\n<p>If you're using any Chromium-based browser including Google Chrome, Microsoft Edge, or Arc, visit the <a href=\"https://chromewebstore.google.com/detail/ublacklist/pncfbmialoiaghdehhbnbhkkgmjanfhe\" rel=\"noopener noreferrer nofollow\">Chrome extensions page of uBlacklist</a>, then click the big blue \"Add to Chrome\" button, followed by \"Add extension\".</p>\n<p>If you're Firefox is your memory-hogging weapon of choice, hit up the <a href=\"https://addons.mozilla.org/en-US/firefox/addon/ublacklist/\" rel=\"noopener noreferrer nofollow\">Mozilla add-ons page</a>, click on the blue \"Add to Firefox\" button, then \"Add\".</p>\n<p>The Firefox dialogue is a little more explicit and alarming than the Chrome \"Add\" button, and makes a point of warning you that uBlacklist will have permission to access your data on google.com and an epic <strong>190</strong> other sites. To be fair these are all Google sites, but the extension will ask permission to access other sites as you need them.</p>\n<p>Choose whether to allow uBlacklist to run in private windows (somewhere we can envision it being <em>especially</em> useful), then click \"Okay.\"</p>\n<h2 id=\"h-use-ublacklist-to-block-crap-search-results\">Use uBlacklist to block crap search results</h2>\n<p>The easiest way to use uBlacklist to exclude spam, useless, and otherwise parasitic websites from your search results is to simply run a search.</p>\n<p>If you're using a search engine other than Google, you'll need to click on the extension icon from the search results page and allow it additional permissions to access your data for DuckDuckGo, Yandex, or your search engine of choice.</p>\n<p>Now, below each search listing you'll see a new link: \"Block this site.\"</p>\n<p>Hit it, and you'll never be bothered by results from Mashable or Quora again.</p>\n<p>This writer is suffering from a painful shoulder after buying some super-duper extra fluffy pillows. Could it be related? We didn't know, so hit up DDG for some answers with the query, \"sleeping shoulder injury.\"</p>\n<p>Thanks, Livestrong, for your list of six possible causes and lengthy explanations, but no. Goodbye, Cleveland Clinic - your advice is useless to us.</p>\n<p>Adios to medicalnewstoday, and to the 3,000 word screed from healthyandnaturalworld.</p>\n<p>What we're left with is high quality sources - most notably from the NHS, which should have been our primary source to start with.</p>\n<h2 id=\"h-create-your-own-search-blacklists-or-use-one-pre-made\">Create your own search blacklists or use one pre-made</h2>\n<p>uBlacklist gives you extensive options to tailor your own blacklists to suit your needs, and you can create regex expressions to match particularly spammy domains or subdomains, ones where a certain keyword is part of the title, or even certain TLDs.</p>\n<p>Alternatively, you can take advantage of the many pre-made blacklists which block the spammiest results from appearing in your SERP. You can find these pre-made blacklists at <a href=\"https://iorate.github.io/ublacklist/subscriptions\" rel=\"noopener noreferrer nofollow\">https://iorate.github.io/ublacklist/subscriptions</a>.</p>\n<p>To add a subscription to a blacklist, go to the extension settings, and click on \"Add a subscription,\" then choose how often you want it to update from the master list.</p>\n<p>Blacklists you can subscribe to include copycat sites, generative-ai related sites, all Pinterest websites, Chinese sites, and more.</p>\n<p>While you're in the uBlacklist settings menu, you can also set up synchronisation across all your devices using a cloud service.</p>\n<p>Not bad</p>",
"image": "https://linuximpact.com/media/posts/87/google-spam.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Tips",
"Software",
"Internet",
"Browser"
],
"date_published": "2024-04-08T08:01:00+01:00",
"date_modified": "2024-04-08T14:32:32+01:00"
},
{
"id": "https://linuximpact.com/a-friendly-reminder-stay-vigilant-against-scam-emails-from-criminals-and-neer-do-wells/",
"url": "https://linuximpact.com/a-friendly-reminder-stay-vigilant-against-scam-emails-from-criminals-and-neer-do-wells/",
"title": "A friendly reminder stay vigilant against scam emails from criminals and ne'er-do-wells",
"summary": "Criminals gonna crim. It's what they do. Sometimes its kids operating out of suburban basements. Sometimes it's a more professional outfit. The trick isn't in stealing your money or assets - it's getting you to hand it over willingly - usually by logging into a…",
"content_html": "<p data-pm-slice=\"1 1 []\">Criminals gonna crim. It's what they do. Sometimes its kids operating out of suburban basements. Sometimes it's a more professional outfit.</p>\n<p>The trick isn't in <em>stealing</em> your money or assets - it's getting you to hand it over willingly - usually by logging into a fake account page using your real credentials - thus revealing them to the attacker.</p>\n<p>Here at Linux Impact, we're used to all kinds of attempts to trick us into to handing over the keys to our email, our bank accounts, or even this very website.</p>\n<p>We've not been fooled yet, but some attempts are better than others.</p>\n<p>Here's one a look at one that could have worked...</p>\n<h2 id=\"h-the-best-scam-emails-are-ones-that-youre-expecting\">The best scam emails are ones that you're expecting</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/86//namecheap-scam-email-2.png\" alt=\"Webmail showing an email purportedly from namecheap\" width=\"1920\" height=\"1033\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/86//responsive/namecheap-scam-email-2-xs.webp 300w ,https://linuximpact.com/media/posts/86//responsive/namecheap-scam-email-2-sm.webp 480w ,https://linuximpact.com/media/posts/86//responsive/namecheap-scam-email-2-md.webp 768w ,https://linuximpact.com/media/posts/86//responsive/namecheap-scam-email-2-lg.webp 1024w ,https://linuximpact.com/media/posts/86//responsive/namecheap-scam-email-2-xl.webp 1360w ,https://linuximpact.com/media/posts/86//responsive/namecheap-scam-email-2-2xl.webp 1600w\"></figure>\n<p>If you routinely receive a lot of emails from a particular source, one more is likely to slip through unnoticed.</p>\n<p>Check the <a href=\"https://whois.domaintools.com/linuximpact.com\" rel=\"noopener noreferrer nofollow\">WHOIS entry for this website</a>, and you'll see that the very first Domain Profile entry is the name of the registrar. We <a href=\"https://namecheap.pxf.io/NkqzmK\">bought this domain through NameCheap</a>. It's super-easy for an attacker to find this, and it's also super-easy to craft an email purporting to be from the company.</p>\n<p>As with many site owners, we have dozens of domain names registered, so receive emails from NameCheap multiple times per month.</p>\n<p>At first glance, the email seemed genuine. The from field read \"Namecheap Support,\" and the subject was, \"Subscription Renewal Notice.\"</p>\n<p>It landed in our main inbox and wasn't flagged as spam. It wasn't attempting to spoof the Linux Impact mail server into thinking it was from NameCheap. The email was from an altogether different domain, with valid DKIM, SPF, and DMARC. While this does present a giveaway to eagle-eyed recipients, such as this writer, it practically guarantees entry into the main inbox.</p>\n<p>We have a few domains due for renewal soon, and don't have automatic payments set up. All good so far.</p>\n<p>The text seemed to be legit, was written in good English, and we suspect it was copied directly from a genuine NameCheap email.</p>\n<p>There were links to update credit card details, to log into our account, or to contact customer support.</p>\n<p>Overall, it was a good attempt, and we'd give it a five out of 10.</p>\n<h2 id=\"h-what-gives-a-scam-email-away\">What gives a scam email away?</h2>\n<p>While this email was a solid effort, there were a few giveaways.</p>\n<p>The first was that the title (not the subject) of the email was \"Hosting Auto-Renew Failed.\" We don't have hosting with NameCheap. Although <a href=\"https://namecheap.pxf.io/R591ag\">NameCheap hosting is a bargain</a>, a little more research would have told the attacker that <a href=\"https://linuximpact.com/why-we-publish-with-publii-with-github-pages-its-trouble-free-and-its-actually-free/\">we actually host this site on GitHub pages</a>.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/86//linux-impact-dns.png\" alt=\"DNS A record check for LinuxImpact.com\" width=\"1200\" height=\"435\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/86//responsive/linux-impact-dns-xs.webp 300w ,https://linuximpact.com/media/posts/86//responsive/linux-impact-dns-sm.webp 480w ,https://linuximpact.com/media/posts/86//responsive/linux-impact-dns-md.webp 768w ,https://linuximpact.com/media/posts/86//responsive/linux-impact-dns-lg.webp 1024w ,https://linuximpact.com/media/posts/86//responsive/linux-impact-dns-xl.webp 1360w ,https://linuximpact.com/media/posts/86//responsive/linux-impact-dns-2xl.webp 1600w\"></figure>\n<p>A further <a href=\"https://dnschecker.org/#A/linuximpact.com\" rel=\"noopener noreferrer nofollow\">A record DNS check</a> would have revealed IP addresses that are assigned to GitHub. Armed with this knowledge, the attacker could have crafted a different title that could, perhaps, have fooled us.</p>\n<p>The next giveaway is the <strong>To</strong> field. The email was addressed to info@linuximpact.com. This isn't an actual address we use to register domain names, and came to us via catch-all forwarding. It's a good guess, but no, that email doesn't exist.</p>\n<p>We have our webmail client set to not automatically download images. The reason for this is that if an image displays in your browser or email client, it has to be downloaded from a remote source, and it's possible for an attacker to monitor this, and know if a particular email has been opened. This can tell them that the email address is monitored and in use. That information is valuable on its own, and can make you the target of future attacks.</p>\n<p>We do, however, get to see the source of the images that would be displayed if we allowed it.</p>\n<p>Typically, images embedded in Namecheap emails are hosted at mktg.namecheap.com. Images in the scam email were from a googleusercontent CDN, and came with a long unique identifier - a dead giveaway.</p>\n<p>Lastly, there's the fact that all the links - and the sender email are from a defunct WordPress site, with some shiny new subdomains set up expressly to catch the unwary. Of course, you won't easily be able to tell this if you're reading on mobile. You'll need to get to a desktop and hover your mouse over each link to check.</p>\n<h2 id=\"h-what-can-an-attacker-do-with-a-stolen-id\">What can an attacker do with a stolen ID</h2>\n<p>Had we clicked through to the fake NameCheap site and entered our genuine email address and password, the results could have been catastrophic, and it's entirely feasible that this website would have redirected to a malware-laden spoof page.</p>\n<p>With the ability to set DNS records, it's also likely that the attacker would have spun up an email server, and used it send out malicious, yet legitimate-seeming emails to trick other users. Again, we have dozens of <a href=\"https://namecheap.pxf.io/NkqzmK\">domains registered with NameCheap</a>, so this would be a gift that kept on giving.</p>\n<p>They would have also tried to use the email and password combos against other services to see what matched It's good practice to <a href=\"https://linuximpact.com/protect-your-inbox-from-spam-and-online-threats/\">protect your inbox by spinning up multiple aliases, and creating seperate identities</a> for each online service you use.</p>\n<p>We're as careful as we can be with emails, and there's an element of luck involved, too. The best thing you can do is stay vigilant, keep images off, and check <em>everything</em>.</p>\n<p> </p>",
"image": "https://linuximpact.com/media/posts/86/teenager-using-laptop.png",
"author": {
"name": "David Rutland"
},
"tags": [
"email",
"Tips",
"Security",
"Internet"
],
"date_published": "2024-04-01T12:05:02+01:00",
"date_modified": "2024-04-03T11:32:20+01:00"
},
{
"id": "https://linuximpact.com/languagetool-is-an-ai-powered-grammar-checker-you-can-self-host-on-your-own-hardware/",
"url": "https://linuximpact.com/languagetool-is-an-ai-powered-grammar-checker-you-can-self-host-on-your-own-hardware/",
"title": "LanguageTool is an AI-powered Grammar Checker you can self-host on your own hardware",
"summary": "If you write or edit for a living, it can be worse than embarrassing when you mess up your sentence structure, repeat words, or misplace your punctation in a paragraph. In this writer's day job as an editor at SlashGear, it's the kind of thing…",
"content_html": "<p data-pm-slice=\"1 1 []\"> </p>\n<p>If you write or edit for a living, it can be worse than embarrassing when you mess up your sentence structure, repeat words, or misplace your punctation in a paragraph.</p>\n<p>In this writer's day job as an <a href=\"https://www.slashgear.com/author/davidrutland/\" rel=\"noopener noreferrer nofollow\">editor at SlashGear</a>, it's the kind of thing that could probably result in a career-terminating implosion. Here at Linux Impact? Not so much.</p>\n<p>So it should be no surprise that we run to online grammar checking tools several times per day, to make sure that we're not imperilling our livelihood with an excess of em dashes.</p>\n<p>Maybe you're not a huge fan of cloud-based grammar checkers, preferring instead to run software locally. Maybe you're just fed up with being nagged to hand over your email, address, create and account, or sign in with Google.</p>\n<p>LanguageTool is a full-featured Open Source tool you can run on your own machine or network to keep your sentences clean, and mind your Ps and Qs.</p>\n<h2 id=\"h-whats-wrong-with-grammarly\">What's wrong with Grammarly?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/84/grammarly_screenshot.png\" alt=\"Screenshot of the grammarly homepage\" width=\"1920\" height=\"1036\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/84/responsive/grammarly_screenshot-xs.webp 300w ,https://linuximpact.com/media/posts/84/responsive/grammarly_screenshot-sm.webp 480w ,https://linuximpact.com/media/posts/84/responsive/grammarly_screenshot-md.webp 768w ,https://linuximpact.com/media/posts/84/responsive/grammarly_screenshot-lg.webp 1024w ,https://linuximpact.com/media/posts/84/responsive/grammarly_screenshot-xl.webp 1360w ,https://linuximpact.com/media/posts/84/responsive/grammarly_screenshot-2xl.webp 1600w\"></figure><br>Grammarly is probably the best-known name in the grammar-checking world, and is used by writers, editors, students, and probably teachers across the world. People use it before sending emails, submitting essays, and while drafting correctly formatted love poetry to their crush or life partner.</p>\n<p>The biggest problem we have with Grammarly is that you need an account to use it. Sure, it's free to sign up, and you can even sign in with Google, but signing up to online services is anathema to use here at Linux Impact. We live in dread that the various services we <em>do</em> have accounts with will inevitably be hacked.</p>\n<p>You'll also have to agree to the Grammarly Terms of Service and Privacy Policy. While the company swears that, \"we don’t and will not sell your data,\" we're naturally mistrustful of such pledges.</p>\n<p>According to Grammarly users of our acquaintance (we've never tried it ourselves), the service has severe limitations for free users, and is heavy-handed in its attempts to upsell users on the premium plan.</p>\n<p>There's also the fact that the analysis takes place in the cloud, on someone else's machine.</p>\n<p>Maybe you want the extra privacy afforded by running your erotic literary masterpiece through software on your own premises,</p>\n<h2 id=\"h-languagetool-is-a-pretty-decent-grammarly-alternative\">LanguageTool is a pretty decent Grammarly alternative</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/84/languagetool-web-interface.png\" alt=\"Languagetool web interface showing issues only available to premium users\" width=\"1920\" height=\"843\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/84/responsive/languagetool-web-interface-xs.webp 300w ,https://linuximpact.com/media/posts/84/responsive/languagetool-web-interface-sm.webp 480w ,https://linuximpact.com/media/posts/84/responsive/languagetool-web-interface-md.webp 768w ,https://linuximpact.com/media/posts/84/responsive/languagetool-web-interface-lg.webp 1024w ,https://linuximpact.com/media/posts/84/responsive/languagetool-web-interface-xl.webp 1360w ,https://linuximpact.com/media/posts/84/responsive/languagetool-web-interface-2xl.webp 1600w\"></figure>\n<p><a href=\"https://languagetool.org/\" rel=\"noopener noreferrer nofollow\">LanguageTool</a> is another online service that its developers describe as, \"an AI-based spelling, style, and grammar checker that helps correct or paraphrase texts across languages.\"</p>\n<p>For the purposes of this article, we visited the site to try it out. It didn't require us to create an account, and we were able to plop in the 1200-odd unfinished words we've written so far.</p>\n<p>It highlighted nine spelling mistakes, and 14 grammar issues. There were also two grammar issues, one punctuation issue, and 11 style issues only available to \"premium\" users. Irritating!</p>\n<p>LanguageTool also comes with extensions for all major browsers.</p>\n<h2 id=\"h-run-languagetool-on-your-own-machine\">Run LanguageTool on your own machine</h2>\n<p>As well as being an online service, LanguageTool is Open Source software, meaning that you can host it on your own machine.</p>\n<p>While there are still some premium features you won't be able to use - including breaking down overly long sentences such as this one into shorter ones - it's far more convenient than using the online version, and you can rest assured that the AI scanning your top-secret movie treatment is residing on your own machine and won't betray your secrets to anyone else.</p>\n<h2 id=\"h-how-to-install-languagetool-on-linux\">How to install LanguageTool on Linux</h2>\n<p>You can get full and detailed instructions on how to install LanguageTool on Linux from the official <a href=\"https://github.com/languagetool-org/languagetool\" rel=\"noopener noreferrer nofollow\">LanguageTool GitHub repository</a>, but we found it easier to use a community-contributed dockerised version.</p>\n<p>Before you get started, make sure you have <a href=\"https://linuximpact.com/how-to-install-the-latest-version-of-docker-compose-on-linux-and-why-you-should/\">installed the latest version of Docker and Docker Compose</a>, then open up a terminal and clone the Git repository with:</p>\n<pre><code>git clone https://github.com/meyayl/docker-languagetool.git</code></pre>\n<p>Use the <strong>cd</strong> command to move into your newly created directory:</p>\n<pre><code>cd docker-languagetool/</code></pre>\n<p>You'll need to change permissions on a couple of subdirectories:</p>\n<pre><code>sudo chmod 777 ngrams</code></pre>\n<pre><code>sudo chmod 777 fasttext</code></pre>\n<p>Back up the supplied Docker Compose file:</p>\n<pre><code>mv docker-compose.yml docker-compose.yml.old</code></pre>\n<p>And create a new one:</p>\n<pre><code>nano docker-compose.yml</code></pre>\n<p>The following is an example text supplied by the developers and is confirmed working and ready to go. Paste it into the new file:</p>\n<pre><code>---\nversion: \"3.8\"\n\nservices:\n languagetool:\n image: meyay/languagetool:latest\n container_name: languagetool\n restart: always\n cap_drop:\n - ALL\n cap_add:\n - CAP_SETUID\n - CAP_SETGID\n - CAP_CHOWN\n security_opt:\n - no-new-privileges\n ports:\n - 8010:8010\n environment:\n download_ngrams_for_langs: en\n langtool_languageModel: /ngrams\n langtool_fasttextModel: /fasttext/lid.176.bin\n volumes:\n - ./ngrams:/ngrams\n - ./fasttext:/fasttext</code></pre>\n<p>Save and exit nano with <strong>Ctrl + O</strong> then <strong>Ctrl + X</strong>.</p>\n<p>Bring up Docker Compose in detached mode with:</p>\n<pre><code>docker-compose up -d</code></pre>\n<p>...and go and make a cup of tea while it downloads the necessary images and sets up containers on your system. On our system this step took around half an hour - this was mainly due to downloading and unpacking ngrams-en.zip which comes in at a mighty 4(ish) GB.</p>\n<p>Check everything is working with:</p>\n<pre><code>docker-compose ps</code></pre>\n<p>That's it!</p>\n<p>One thing to note is the <strong>restart: always</strong> section of the Docker Compose file. This means that the container will start up along with your computer and, as you might imagine, always restart.</p>\n<p>It's handy if you're going to be using LanguageTool on a regular basis, but if you'd rather it not start automagically, remove this line.</p>\n<h2 id=\"h-add-extensions-for-your-self-hosted-languagetool-server\">Add extensions for your self-hosted LanguageTool server</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/84/languagetool_em-dash-error.png\" alt=\"Self-hosted LanguageTool extension running in NextCloud notes\" width=\"1344\" height=\"939\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/84/responsive/languagetool_em-dash-error-xs.webp 300w ,https://linuximpact.com/media/posts/84/responsive/languagetool_em-dash-error-sm.webp 480w ,https://linuximpact.com/media/posts/84/responsive/languagetool_em-dash-error-md.webp 768w ,https://linuximpact.com/media/posts/84/responsive/languagetool_em-dash-error-lg.webp 1024w ,https://linuximpact.com/media/posts/84/responsive/languagetool_em-dash-error-xl.webp 1360w ,https://linuximpact.com/media/posts/84/responsive/languagetool_em-dash-error-2xl.webp 1600w\"></figure>\n<p>LanguageTool isn't designed to be a standalone service you access through your browser. Instead, it's easy to integrate into software such as <a href=\"https://extensions.openoffice.org/project/languagetool\" rel=\"noopener noreferrer nofollow\">OpenOffice</a> and <a href=\"https://help.libreoffice.org/latest/en-GB/text/shared/optionen/languagetools.html\" rel=\"nofollow\">LibreOffice</a>. We don't use either of these, and do most of our writing in NextCloud Notes.</p>\n<p>Fortunately, there are integrations available for both <a href=\"https://chromewebstore.google.com/detail/ai-based-grammar-checker/oldceeleldhonbafppcapldpdifcinji\" rel=\"nofollow\">Chrome</a>, and for our preferred browser, <a href=\"https://addons.mozilla.org/en-US/firefox/addon/languagetool/\" rel=\"noopener noreferrer nofollow\">Firefox</a>.</p>\n<p>Install the extension, then click through all the \"OK, Got it\" buttons, then once it's installed, click on <strong>Preferences</strong> in the extension menu.</p>\n<p>Scroll down to the bottom - ignoring exhortations to \"Log in with your LanguageTool account,\" and click on <strong>Advanced settings (only for professional users)</strong>. Tap the <strong>Other server</strong> radio button, and enter <strong>http://localhost:8010/v2</strong>.</p>\n<p>Hit save, and you're done.</p>\n<h2 id=\"h-use-languagetool-locally-to-check-your-grammar\">Use LanguageTool locally to check your grammar</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/84/languagetool-editor.png\" alt=\"LanguageTool dedicated web editor extension\" width=\"1920\" height=\"1014\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/84/responsive/languagetool-editor-xs.webp 300w ,https://linuximpact.com/media/posts/84/responsive/languagetool-editor-sm.webp 480w ,https://linuximpact.com/media/posts/84/responsive/languagetool-editor-md.webp 768w ,https://linuximpact.com/media/posts/84/responsive/languagetool-editor-lg.webp 1024w ,https://linuximpact.com/media/posts/84/responsive/languagetool-editor-xl.webp 1360w ,https://linuximpact.com/media/posts/84/responsive/languagetool-editor-2xl.webp 1600w\"></figure>\n<p>By default, LanguageTool will run on any web page which has a text entry field. Looking at the bottom of our NextCloud Notes document, we can see that there are 27 errors, and they're all highlighted in the text as well, underlined in red, yellow, or purple. Some of these are bullshit that we don't care about, such as using hyphens instead of em dashes. You can accept the suggestions, ignore them, or disable a particular error class altogether.</p>\n<p>It's also possible to copy and paste entire screeds into a dedicated LanguageTool Editor in order to check it in a flat environment. To open the LanguageTool editor, click on the extension icon, then <strong>Open Editor</strong>.</p>\n<p>One of the advantages of using the self-hosted version of LanguageTool rather than the version hosted by the company is that there's no limit on word count - we were able to paste in and check the entirety of Cory Doctorow's excellent <a rel=\"noopener noreferrer nofollow\">Eastern Standard Tribe</a>. The web version seems to top out at a few thousand words with an exhortation to \"Upgrade to Premium and get advanced grammar and style suggestions for longer texts.\"</p>\n<h2 id=\"h-open-your-languagetool-instance-to-the-wider-web\">Open your LanguageTool instance to the wider web</h2>\n<p>Of course, there's nothing stopping you from sticking LanguageTool behind a reverse proxy, so you can access it from anywhere. The only issue would be that it may attract other users, who see your resource as free, and for this reason, we'd advise against it.</p>",
"image": "https://linuximpact.com/media/posts/84/grammar-and-composition.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Tool",
"Software",
"Self-hosted"
],
"date_published": "2024-03-30T21:41:00+00:00",
"date_modified": "2024-04-03T11:46:55+01:00"
},
{
"id": "https://linuximpact.com/mirrors-where-were-going-we-wont-need-mirrors/",
"url": "https://linuximpact.com/mirrors-where-were-going-we-wont-need-mirrors/",
"title": "Mirrors? Where we're going we won't need mirrors",
"summary": "The purpose of a rearview mirror is to allow you to see what's behind your vehicle. Who knows? There may be a liquid metal man from the future chasing after you and attempting to bury his hatchet-like claws into your boot. More realistically, it's good…",
"content_html": "<p>The purpose of a rearview mirror is to allow you to see what's behind your vehicle. Who knows? There may be a liquid metal man from the future chasing after you and attempting to bury his hatchet-like claws into your boot. More realistically, it's good to know the speed and and volume of the traffic behind you before you change lanes.</p>\n<p>But windscreen mounted rearview mirrors have their issues - the biggest of which is that they're inside the car.</p>\n<p>Glance up at standard rearview mirror, and you'll likely have a limited field of view. The image in the slender glass plate is framed by the metal that holds your rear window in place, the roof of your car, and the rear passenger seats. Sure, you can see if there's a vehicle behind you, but not a lot else. If you have a car full of passengers, you can see the passengers, and if you're fully loaded for a tip run, or you've just done the shopping, T-1000 could be within inches and you'd never know it.</p>\n<p>See the main image on this article, that's the result of some light pruning of our bay tree, and is fairly typical for a weekend.</p>\n<p>And then there's the parking issue.</p>\n<p>When he's not riding around on an electric motorbike, this writer drives a big 2007 Hyundai Terracan. It's useful for pulling the caravan, carrying large loads, and tip runs. But it's a PITA to park. A rearview mirror is helpful, but there's the ever-present worry that we're going to reverse into someone else's bumper. If a space looks like it <em>might</em> be too small, we'll pass it by rather than risk it.</p>\n<p>We purchased an awkwardly named <a href=\"https://amzn.to/3xrnPtO\">Jansite Voice Control Mirror Dash Cam</a> as a replacement and an upgrade that adds dashcam functionality as well as a clearer rear view to our tired old Terracan.</p>\n<h2 id=\"h-whats-the-problem-with-rearview-mirrors\"></h2>\n<h2 id=\"h-what-does-the-jansite-voice-control-mirror-dash-cam-actually-do\">What does the Jansite Voice Control Mirror Dash Cam actually do?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/83/parking_with_jansite_mirror.jpeg\" alt=\"Rearview mirror showing parked cars\" width=\"1600\" height=\"800\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/83/responsive/parking_with_jansite_mirror-xs.webp 300w ,https://linuximpact.com/media/posts/83/responsive/parking_with_jansite_mirror-sm.webp 480w ,https://linuximpact.com/media/posts/83/responsive/parking_with_jansite_mirror-md.webp 768w ,https://linuximpact.com/media/posts/83/responsive/parking_with_jansite_mirror-lg.webp 1024w ,https://linuximpact.com/media/posts/83/responsive/parking_with_jansite_mirror-xl.webp 1360w ,https://linuximpact.com/media/posts/83/responsive/parking_with_jansite_mirror-2xl.webp 1600w\"></figure>\n<p>The Jansite (we're going to refrain from calling it the unit by its full title Jansite Voice Control Mirror Dash Cam) comprises two main components. The first is a magic mirror that fits over your normal rearview mirror and is held in place with thick rubber bands. It actually is a mirror with a reflective surface, and you can use it as such if you so desire. It's also a screen onto which streaming video is displayed.</p>\n<p>On the back of the magic mirror is a forward facing dashcam. This ratchets out from the main body, and you can tilt and adjust it to get a good view of the road ahead.</p>\n<p>The other component is a rear facing camera that you position outside your car to get a view of the traffic behind.</p>\n<p>The whole system is powered by an old-school mini USB cable that plugs into your cigarette lighter.</p>\n<p>You can swipe the screen with your finger to set which camera is displayed, or just speak aloud and tell it to display a stream from the front, the rear, or both simultaneously.</p>\n<p>We've been driving round with the Jansite for a couple of weeks now, and here's what we thought.</p>\n<h2 id=\"h-installation\">Installation</h2>\n<p>Installing the unit was an absolute doddle. It fitted almost exactly over the mirror in our Terracan, leaving maybe an inch on the right-hand side. Slot the Micro SD card in the slot, plug in the 2.5mm AV lead, and the Micro USB power, and it's almost ready to go.</p>\n<p>All we had to do then was run the two wires along the seams of the car's interior to keep them out of sight, and find a suitable place to mount the rear camera.</p>\n<p>The rear camera itself is on a hinged mount, and we'd suggest having it angled as low as possible.</p>\n<h2 id=\"h-camera-quality-and-field-of-view\">Camera quality and Field of View</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/83/jansite_rearview.jpeg\" alt=\"Rearview mirror\" width=\"1600\" height=\"800\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/83/responsive/jansite_rearview-xs.webp 300w ,https://linuximpact.com/media/posts/83/responsive/jansite_rearview-sm.webp 480w ,https://linuximpact.com/media/posts/83/responsive/jansite_rearview-md.webp 768w ,https://linuximpact.com/media/posts/83/responsive/jansite_rearview-lg.webp 1024w ,https://linuximpact.com/media/posts/83/responsive/jansite_rearview-xl.webp 1360w ,https://linuximpact.com/media/posts/83/responsive/jansite_rearview-2xl.webp 1600w\"></figure>\n<p>Anything has to be an improvement on what you see through a normal rearview mirror, and the Jansite simply blew us away.</p>\n<p>Both camera stream in either Full HD (1080p) or 2.5k, and if we're honest (we're always honest), it won't make that much of a difference to what you see on the mirror-sized screen. But if you're recording, the quality difference is evident when you play back the media on your PC or your 72-inch MicroLED TV set.</p>\n<p>Far more important than this, however, is the Field of view. The front camera has a massive 170-degree field of view, while the rear camera - the one we actually care about - affords you a 140-degree vista.</p>\n<p>We haven't measured this, but we can tell you that you can see the pavements on both sides of the road from a distance of around two-feet from the rear of your car on a standard residential street in the UK, and you can see practically <em>everything</em> behind you. We're not going to say it completely eliminates blind spots, as that depends on the position of your other mirrors, but it comes damn close.</p>\n<h2 id=\"h-parking\">Parking</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/83/20240322_124018_1.jpg\" alt=\"Rearview camera output in Asda car park\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/83/responsive/20240322_124018_1-xs.webp 300w ,https://linuximpact.com/media/posts/83/responsive/20240322_124018_1-sm.webp 480w ,https://linuximpact.com/media/posts/83/responsive/20240322_124018_1-md.webp 768w ,https://linuximpact.com/media/posts/83/responsive/20240322_124018_1-lg.webp 1024w ,https://linuximpact.com/media/posts/83/responsive/20240322_124018_1-xl.webp 1360w ,https://linuximpact.com/media/posts/83/responsive/20240322_124018_1-2xl.webp 1600w\"></figure>\n<p>Here's the awesome thing about the Jansite mirror: While the screen itself is only the size of a normal rearview, the video feed is full resolution, and you can scroll the screen with your finger.</p>\n<p>This means that you can have the camera pointed more towards the ground, and only the top section -- the traffic behind you -- will be visible while you're driving. When you're reversing into stight spot, scroll downwards on the display, and you'll be able to see the tarmac under the bumper of the car behind you. You can get very close indeed without ever having to worry about hitting anything.</p>\n<p>In the settings menu, you can also customise colour-coded parking guides. We haven't figured out how to use these yet, and we probably won't bother.</p>\n<h2 id=\"h-voice-commands\">Voice commands</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/83/20240322_125254_0.jpg\" alt=\"Dashcam photo of Victoria Road in New Brighton\" width=\"1920\" height=\"1080\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/83/responsive/20240322_125254_0-xs.webp 300w ,https://linuximpact.com/media/posts/83/responsive/20240322_125254_0-sm.webp 480w ,https://linuximpact.com/media/posts/83/responsive/20240322_125254_0-md.webp 768w ,https://linuximpact.com/media/posts/83/responsive/20240322_125254_0-lg.webp 1024w ,https://linuximpact.com/media/posts/83/responsive/20240322_125254_0-xl.webp 1360w ,https://linuximpact.com/media/posts/83/responsive/20240322_125254_0-2xl.webp 1600w\"></figure>\n<p>As the mirror is essentially a computer monitor in reflective, slimline form, you can access all of the controls by tapping or swiping the glass. Swipe left or right to change view, tap the red dot to record or stop recording; there's a settings menu, and playback control.</p>\n<p>But you don't want to be tapping your mirror while you're diving, and there are some core features that you can control with your voice.</p>\n<p>To change the view, just say, \"show front camera,\" show rear camera,\" or \"show both cameras\". Pretty neat.</p>\n<p>You can also tell the unit to snap a pic with, \"take a picture.\" This is potentially useful if you've seen something particularly cool or interesting, and means your passenger doesn't need to fumble around in their pockets for a phone.</p>\n<p>The \"take a picture\" command doesn't discriminate, and will take simultaneous pictures from both the front and rear cameras and save them to your Micro SD card.</p>\n<p>Other voice commands open and close the screen, lock the video, and open or audio.</p>\n<h2 id=\"h-other-settings\">Other settings</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/83/jansite-settings.jpeg\" alt=\"settings menu for jansite magic mirror\" width=\"1600\" height=\"800\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/83/responsive/jansite-settings-xs.webp 300w ,https://linuximpact.com/media/posts/83/responsive/jansite-settings-sm.webp 480w ,https://linuximpact.com/media/posts/83/responsive/jansite-settings-md.webp 768w ,https://linuximpact.com/media/posts/83/responsive/jansite-settings-lg.webp 1024w ,https://linuximpact.com/media/posts/83/responsive/jansite-settings-xl.webp 1360w ,https://linuximpact.com/media/posts/83/responsive/jansite-settings-2xl.webp 1600w\"></figure>\n<p>The settings menu for the Jansite mirror are extensive, and whether or not you use them is up to you.</p>\n<p>The first thing you'll want to change is the boot sound -- it's annoying, so turn it off. Do you want to record the audio inside the car? If you don't fancy replaying your in-car karaoke as evidence in court, you can kill this under \"recording settings.\" You'll also find settings for flipping the feed from the rear camera vertically and horizontally --giving you more options for exactly how and where you want to mount it. The \"G-Sensor\" apparently starts taking images if the unit detects a collision. Fortunately, we've not had the opportunity to test it.</p>\n<p>Some options seem a little superfluous, such as the screensaver. Do you want a screensaver while you're on the road? We don't, although the ability to change languages and date and time format make localisation a breeze.</p>\n<h2 id=\"h-driving-at-night\">Driving at night</h2>\n<p>The cameras work really very well in low light conditions, although the glare from headlights behind can sometimes wash out the picture. There's an exposure control setting that can help with this to some degree, but really, if you're mounting the camera at the level of car headlights, this is the kind of thing you can expect. It's still better than a standard rearview, and won't actually blind you.</p>\n<h2 id=\"h-connectivity\">Connectivity</h2>\n<p>We dislike connected devices -- especially if they connect to a server that we're not directly controlling. This is an issue with a lot of hardware from Chinese brands, especially IP cams, which for some reason, streams your footage through servers in the far east.</p>\n<p>There are no such concerns with the Jansite, as it seems to have zero connectivity, and stores all images and video on the Micro SD card. To view it, you'll need to physically remove the card and plug it into a card reader.</p>\n<p>It would be nice to have some sort of WiFi option where it latches onto the WiFi as you pull up outside your house, and automagically uploads files to your NAS, but, we're quite happy with not having the option.</p>\n<h2 id=\"h-bottom-line\">Bottom line</h2>\n<p>This is, quite frankly, an amazing piece of kit. We don't particularly care about the dashcam functionality (except for being able to photograph cool things with a voice command).</p>\n<p>As a replacement for a rearview mirror though, it's exceptional. We don't know how we ever lived without it.</p>\n<hr>\n<p>This review is part of a series on <a href=\"https://linuximpact.com/tags/hardware/\">cool things</a> we've bought recently. Some of them will be Linux related. Others won't.</p>",
"image": "https://linuximpact.com/media/posts/83/terracan_loaded_with_bay-2.jpeg",
"author": {
"name": "David Rutland"
},
"tags": [
"Review",
"Hardware",
"Gear"
],
"date_published": "2024-03-01T13:37:00+00:00",
"date_modified": "2024-03-30T21:57:39+00:00"
},
{
"id": "https://linuximpact.com/how-to-install-specific-npm-and-node-versions-on-linux/",
"url": "https://linuximpact.com/how-to-install-specific-npm-and-node-versions-on-linux/",
"title": "How to install specific npm and node versions on Linux",
"summary": "Javascript seems to have taken over the web in recent years, and if you run self-hosted software on your Linux server, there's a good chance that at some point you're doing to have to deal with node.js and node package manager (npm). A lot of…",
"content_html": "<p data-pm-slice=\"1 1 []\">Javascript seems to have taken over the web in recent years, and if you run self-hosted software on your Linux server, there's a good chance that at some point you're doing to have to deal with node.js and node package manager (npm).</p>\n<p>A lot of node.js software projects were written with, and for, a specific version of node.js, and using a newer or older version could result in unexpected behaviour, or the software may not run or install at all.</p>\n<p>In this case, you'll need to upgrade or downgrade node.js and npm to specific versions to match the projects requirements. Here's how to do it.</p>\n<h2 id=\"h-what-is-node-anyway\">What is node anyway?</h2>\n<p>For most people, the daily experience of JavaScript is in a web browser. It's a sort of programming language that allows individual pages to perform complex programmatic functions in a way that simple HTML can't. If the page you're looking at has a form, or any kind of interactive element, the chances are good that it's JavaScript behind the scenes.</p>\n<p>But JavaScript doesn't just run in your browser. It can run on the back-end as well. Node.js is a runtime environment that allows you to run JavaScript code outside of a server or even just on your PC. It's great for self-hosted apps that run JavaScript code both on the server-side and the client-side.</p>\n<h2 id=\"h-why-do-you-need-npm\">Why do you need npm?</h2>\n<p>Node Package Manager (npm), as the name suggests, is a package manager for node.js. In simple terms, it's like an app store for JavaScript, where you can find and install reusable pieces of code to use in your ownprojects. npm makes it simple for developers to add functionality to a project by providing access to a vast ecosystem of open source packages created by other people.</p>\n<p>If you're a dedicated self-hoster (as we are), you probably didn't write the code yourself, and are instead installing some awesome web service to play around with and improve your life.</p>\n<p>And for some projects you'll need very specific versions of both node.js and npm.</p>\n<h2 id=\"h-find-out-what-versions-of-node-and-npm-you-have-installed\">Find out what versions of node and npm you have installed</h2>\n<p>If you've installed nope and npm from your distros package manager, the chances are good that what's installed on your system is far behind the most recent versions of npm and node.</p>\n<p>And if you're installing node-based software that was written some time ago, then you'll most likely need to downgrade npm and node in order to prevent problems.</p>\n<p>Consult the project documentation to see what version of node and npm you require, then pop open a terminal, and enter:</p>\n<pre><code>node --version</code></pre>\n<p>then:</p>\n<pre><code>npm -version</code></pre>\n<p>Each command will return the version of the software you have installed.</p>\n<p>As you can see from the screenshot, the node version on this writer's system is <strong>v18.16.0</strong>, while our node package manager is at <strong>9.5.1</strong>.</p>\n<h2 id=\"h-change-your-nodejs-version-with-n\">Change your node.js version with n</h2>\n<p>There is a node package simply called <strong>n</strong>, that you can use to easily install, switch, and manage different versions of Node.js on your system.</p>\n<p>Unfortunately, n doesn't come preinstalled, and it shouldn't come as a surprise that we recommend using npm to install n as well.</p>\n<p>To install n, open a terminal and enter:</p>\n<pre><code>npm install -g n</code></pre>\n<p>With n installed you can change to a rquired node version by adding it as an argument to the n command. For instance, to install and switch to node version 14, you would enter:</p>\n<pre><code>n 14</code></pre>\n<p>It's that simple</p>\n<h2 id=\"h-use-npm-to-change-npm-version\">Use npm to change npm version</h2>\n<p>As npm is both a package manager and a package, you can use npm to install different versions of itself quite easily.</p>\n<p>We're currently on version 9.5.1 of npm, and we want to downgrade to version 6 in order to instal Habitica - a gamified productivity and task management app.</p>\n<p>To change you npm version, open your terminal, and enter:</p>\n<pre><code>npm install -g npm@6.1.0</code></pre>\n<p>In case you're interested, the <strong>g</strong> switch is for \"global\", and means that npm version 6 will be installed globally on your system, rather than locally within the current directory.</p>\n<p>Now run:</p>\n<pre><code>npm -version</code></pre>\n<p>...to check the current npm version.</p>\n<p>Obviously, you're not going to want to install npm version 6 in every situation, and you should <a href=\"https://www.npmjs.com/package/npm?activeTab=versions\" rel=\"noopener noreferrer nofollow\">check available npm versions</a> to see which one you want.</p>",
"image": "https://linuximpact.com/media/posts/85/knotted-rope.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Terminal",
"Software"
],
"date_published": "2024-02-14T17:38:00+00:00",
"date_modified": "2024-03-30T21:35:30+00:00"
},
{
"id": "https://linuximpact.com/on-the-edge-microsofts-browser-on-linux/",
"url": "https://linuximpact.com/on-the-edge-microsofts-browser-on-linux/",
"title": "On the Edge of disaster: Microsoft's browser on Linux",
"summary": "The web was built for Microsoft. Sure, the ARPANET was a Department of Defence project; HTML, HTTP, and web servers, and web browsers came from the mind of Tim Berners-Lee at Cern; and Ted Nelson came up with the idea of hypertext in 1985. But…",
"content_html": "<p data-pm-slice=\"1 1 []\">The web was built for Microsoft. Sure, the ARPANET was a Department of Defence project; HTML, HTTP, and web servers, and web browsers came from the mind of Tim Berners-Lee at Cern; and Ted Nelson came up with the idea of hypertext in 1985. But for the average computer user in the 21st century, and the last few years of the 20th those people, and their inventions are irrelevant.</p>\n<p>In the race out of the starting gate, Microsoft had the edge. It had (and still has) the biggest share of desktop Operating Systems, and made its Internet Explorer (built on Spyglass Mosaic) browser widely available with the Internet Jumpstart Kit in the Microsoft Plus! pack for Windows 9.</p>\n<p>With the arrival of cheap(ish) modems, everyone was ready to go online with the best and often only tool at their disposal.</p>\n<p>Sure, there were other browsers out there. Netscape Navigator had driven Mosaic into the ground, AOL had its own browser(?), but this was, in all honesty, a bit crap. In the late 90s when going online at home became a real possibility for normies, almost everyone ran Windows, therefore almost everyone ran IE.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/82/doctype.png\" alt=\"source of a web page with options for different versions of Internet explorer\" width=\"1883\" height=\"777\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/82/responsive/doctype-xs.webp 300w ,https://linuximpact.com/media/posts/82/responsive/doctype-sm.webp 480w ,https://linuximpact.com/media/posts/82/responsive/doctype-md.webp 768w ,https://linuximpact.com/media/posts/82/responsive/doctype-lg.webp 1024w ,https://linuximpact.com/media/posts/82/responsive/doctype-xl.webp 1360w ,https://linuximpact.com/media/posts/82/responsive/doctype-2xl.webp 1600w\"></figure>\n<p>Internet Explorer was the de facto king, and even today, there are some rump-state relics that speak to its Ozymandias dominance of the browser landscape. Websites that have been around for decades could have been designed with IE6 in mind, and will throw up compatibility warnings if accessed using anything else.</p>\n<p>Microsoft's collapse in the browser space came fast. Redmond had little trouble swatting aside or simply ignoring petty rivals in the form of Opera and FireFox, but Google's Chrome was faster, lighter, and came from the company that disingenuously stamped \"Don't be evil\" on its mission statement, and was not (at that time) the subject of epic anti-trust lawsuits.</p>\n<p>Chrome cut IE off at the knees, leaving not even trunkless legs of stone to remember it by - merely HTML templates with references to IE6, IE7, and IE8 in the head section. Nothing beside remains.</p>\n<h2 id=\"h-empire-of-chrome\">Empire of Chrome</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/82/chrome-statue.png\" alt=\"A Chrome statue with a gun and the Google Chrome emblem embossed on the base. Standing in a desert\" width=\"1680\" height=\"839\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/82/responsive/chrome-statue-xs.webp 300w ,https://linuximpact.com/media/posts/82/responsive/chrome-statue-sm.webp 480w ,https://linuximpact.com/media/posts/82/responsive/chrome-statue-md.webp 768w ,https://linuximpact.com/media/posts/82/responsive/chrome-statue-lg.webp 1024w ,https://linuximpact.com/media/posts/82/responsive/chrome-statue-xl.webp 1360w ,https://linuximpact.com/media/posts/82/responsive/chrome-statue-2xl.webp 1600w\"></figure>\n<p>As it turned out, Google saved us from Microsoft only to push us into deeper servitude. The sneer of cold command is replaced by brightly coloured lettering and nonsense words; a headquarters with malls, swimming pools,a bowling alley, massage rooms, organic gardens, model rockets, and a dinosaur skeleton.</p>\n<p>Where Microsoft dominated, Google wants to be your best friend; where Microsoft charged for its proprietary software, Google's offerings are sort-of open source, and free in both senses of the word.</p>\n<p>Google's victory is almost total in the web space, and its Chrome browser has around 70% market share on desktop.</p>\n<p>That's not great. While Chrome doesn't demand that you have a Google account, it pushes you in that direction, and doesn't work as well without one. It collects your data, tracks you across the web, and links its own data to create a shockingly complete profile of your activities in the online and offline worlds. If you think that incognito mode keeps your proclivities private, <a href=\"https://arstechnica.com/tech-policy/2024/01/chrome-updates-incognito-warning-to-admit-google-tracks-users-in-private-mode/\" rel=\"noopener noreferrer nofollow\">you're wrong</a>.</p>\n<p>While Safari (9% share), and FireFox (7% share), both use their own browser engines, Opera, Brave, and most other wannabes have Google's Chromium engine under the hood. The web is now built for Chrome. That's also a bad thing, as it means that there is really only one organisation with the power to set web standards - Google.</p>\n<p>Even Microsoft Edge - the successor to the unloved Internet Explorer 11, relies on Chromium under the hood.</p>\n<h2 id=\"h-the-shattered-visage\">The shattered visage</h2>\n<p>It's jarring to know that Microsoft's browser runs Chrome - that it's so thoroughly defeated, the company is just trying to assimilate into the new reality, and get on with its life in a changed situation, and an altered world.</p>\n<p>If you've seen Bernardo Bertolucci's 1987 classic, <em>The Last Emperor</em>, it's like seeing PuYi (the title character) being trained to piss against the side of a bucket before taking up a job as a street sweeper in the grounds of his former palace. It's Coldplay's Viva La Vida. It's sad.</p>\n<p>And so, we decided to saddle up Microsoft's venerable, rebadged warhorse, and take it for a one last trip across the lone and level sands. For nostalgia's sake. Nothing else.</p>\n<h2 id=\"h-installing-edge-on-linux\">Installing Edge on Linux</h2>\n<p>You can download the <a rel=\"noopener noreferrer nofollow\">Edge binary direct from Microsoft</a>, and to do so you'll need to accept a 3,335 word license that, among other things, limits you to one install on one machine only, allows the company to collect information about you and your use of the software, gives you only some rights to use the software, and assets that you have no right to work around any technical limitations in the Software, or reverse engineer, decompile, disassemble, decrypt or otherwise attempt to derive the source code of the Software.</p>\n<p>It's been a while since we ran any proprietary code, so we were shocked. There's a lot more besides, and you'll also have to consent to MIcrosoft's <a href=\"https://privacy.microsoft.com/en-us/privacystatement\" rel=\"noopener noreferrer nofollow\">Privacy policy</a> - a policy that does not grant you much privacy at all, although in fairness, Google's is probably worse.</p>\n<p>To be on the safe side, we decided to install Edge in a brand new Virtual Machine running Ubuntu 23.04.</p>\n<p>We could have installed via the command line, but it was like a reverse of that old joke that applied to IE towards the end of its life - that the browser would only be launched once, and existed only as a means to find and download FireFox or Chrome. Instead, we were using a spanky new FireFox install to fetch and install IE's successor. To indulge ourselves further in GUI nostalgia, we even used Ubuntu's built-in graphical \"software install\" tool (It was slow, clunky, uninformative, and we didn't like it).</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/82/install-edge.png\" alt=\"installing the edge deb with Ubuntu software install\" width=\"1206\" height=\"672\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/82/responsive/install-edge-xs.webp 300w ,https://linuximpact.com/media/posts/82/responsive/install-edge-sm.webp 480w ,https://linuximpact.com/media/posts/82/responsive/install-edge-md.webp 768w ,https://linuximpact.com/media/posts/82/responsive/install-edge-lg.webp 1024w ,https://linuximpact.com/media/posts/82/responsive/install-edge-xl.webp 1360w ,https://linuximpact.com/media/posts/82/responsive/install-edge-2xl.webp 1600w\"></figure>\n<p>Nonetheless, it was installed within a couple of minutes, with a nifty little icon in Ubuntu's system menu. The icon itself is a swirly and soft blue and green combo that puts us in mind of the crest of a wave. It's pretty sweet.</p>\n<h2 id=\"h-the-edge-of-reason\">The Edge of reason</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/82/welcome-to-edge.png\" alt=\"The edge splash page against a blue background with "it's time to expect more in large text" There is an unticked checkbox\" width=\"1266\" height=\"788\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/82/responsive/welcome-to-edge-xs.webp 300w ,https://linuximpact.com/media/posts/82/responsive/welcome-to-edge-sm.webp 480w ,https://linuximpact.com/media/posts/82/responsive/welcome-to-edge-md.webp 768w ,https://linuximpact.com/media/posts/82/responsive/welcome-to-edge-lg.webp 1024w ,https://linuximpact.com/media/posts/82/responsive/welcome-to-edge-xl.webp 1360w ,https://linuximpact.com/media/posts/82/responsive/welcome-to-edge-2xl.webp 1600w\"></figure>\n<p>The big test of any browser is how well it displays websites and how it works with, if not universal standards, then the internet as it currently exists. A second test is how well it gets out of your way and you simply forget it's there.</p>\n<p>Edge fired up relatively quickly (four seconds), and we were greeted with a pre-ticked box relating to grey on white text, granting consent to improve the browser by providing Microsoft with diagnostic data. \"Websites\" you visit\" is second to last on the list of things Redmond wants to know. There's a learn more link which gives an explanation to why it wants to know, and a link to the lengthy unprivacy policy.</p>\n<p>After unticking the box, it's time to click the \"Accept and get started\" button. It's not clear what we're accepting at this point - is it the assertion that \"It's time to expect more\"? We have no doubt that there's a team of lawyers somewhere who would be happy to explain.</p>\n<p>Do we want our <em>new tab</em> page to be inspirational, informational or focused? We chose focused. If we wanted to know the weather we'd look outside, and for inspiration, we multiple copies of <em>Chicken Soup for the Soul</em>. We did not want to sign in to sync data, as that involves creating a Microsoft account.</p>\n<p>Clicking on the Grey <strong>X</strong> to get rid of the pesky personalisation pop-up, we were in the browser proper, and unsurprisingly on a microsoft.com page. Our IP address betrayed us as UK residents, so naturally, there's a cookie consent pop-up. The <strong>Reject</strong> button is prominent enough for this not to be a bother, and we got to reading the page text.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/82/copilot-confirm.png\" alt=\"The screen is split vertically - the left pane proclaims Edge to be your AI powered browser. The right insists you allow microsoft access to page content and send browsing data to microsoft in order to continue\" width=\"1278\" height=\"796\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/82/responsive/copilot-confirm-xs.webp 300w ,https://linuximpact.com/media/posts/82/responsive/copilot-confirm-sm.webp 480w ,https://linuximpact.com/media/posts/82/responsive/copilot-confirm-md.webp 768w ,https://linuximpact.com/media/posts/82/responsive/copilot-confirm-lg.webp 1024w ,https://linuximpact.com/media/posts/82/responsive/copilot-confirm-xl.webp 1360w ,https://linuximpact.com/media/posts/82/responsive/copilot-confirm-2xl.webp 1600w\"></figure>\n<p>The headline feature is that Edge isn't just a browser, it's \"Your AI-powered browser\". Neato. Intrigued, we clicked \"Try image creator\", rejected more cookies, and asked Edge to draw a picture of me drinking a cup of coffee.</p>\n<p>But wait! There's no \"Create\" button. There's a \"Join and Create\" Button. While we were tempted for one hundredth of a second, joining (as revealed in the grey on grey very-small-print) signs you up for a whole host of unwanted newsletters and offers.</p>\n<p>The much-vaunted Co-pilot is accessible through an ever present blue-green button at the top-right of the screen.</p>\n<p>My first question was \"What am i doing right now?\" The answer should have been obvious - asking dumb questions of Microsoft Copilot</p>\n<p>Copilot was unable to answer our very easy question, and in its \"learn more\" section cited its sources as Buzzfeed.com and funkyenglish.com.</p>\n<p>Below this is a response bubble informing us that, \"By continuing our interaction with Bing you are accepting the Terms of use and have read the Privacy Policy\". The text input box is blanked-out until you press \"Continue\". It's a one-off install in a VM and we don't have to sign into anything, so why not?</p>\n<p>AI is supposed to be the bollocks when it comes to summarising documents, so rather than read these tomes ourselves, we asked \"Please summarise the Bing Terms of use\".</p>\n<p>A pop-up appeared shouting \"Allow Microsoft to access page content\", along with a handy little infographic. Further small text revealed that to continue chatting , we would need to reverse our earlier decision to disallow Microsoft from excessive snooping, and instead consent to, \"Send my browsing data to Microsoft to make AI-generated answers and suggestions more relevant on Copilot\". There's another \"learn more\" link and the sporadically appearing Terms of Use and Privacy policies.</p>\n<p>We don't need Microsoft to use our browsing data to make AI-generated answers and suggestions more relevant, we just want a summary of what's in those hideously long policies. We agreed anyway.</p>\n<p>When it came, the response was ten points of vague and inaccurate disappointment.</p>\n<p>The first item on the list is that, \"You need a current Microsoft account and signed-in Microsoft Rewards user to use the online services\". That's straight-up nonsense - you don't need either of those things to use Bing.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/82/bing-tos.png\" alt=\"Faulty Copilot summarised TOS for BIng \" width=\"1021\" height=\"375\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/82/responsive/bing-tos-xs.webp 300w ,https://linuximpact.com/media/posts/82/responsive/bing-tos-sm.webp 480w ,https://linuximpact.com/media/posts/82/responsive/bing-tos-md.webp 768w ,https://linuximpact.com/media/posts/82/responsive/bing-tos-lg.webp 1024w ,https://linuximpact.com/media/posts/82/responsive/bing-tos-xl.webp 1360w ,https://linuximpact.com/media/posts/82/responsive/bing-tos-2xl.webp 1600w\"></figure>\n<p>We have our own, very capable offline Generative AIs, and resolved to ignore Microsoft's attempt at upselling and data collection.</p>\n<p>The first thing we normally do after installing a browser is to set the default search engine to DuckDuckGo, and install the excellent uBlock Origin to frustrate tracking and advertisements. In Edge, we clicked <strong>... > Settings > Privacy, search, and services > Address and search bar > Search bar used in the address bar</strong>, and selected <strong>DuckDuckGo</strong> from the dropdown.</p>\n<p>This setting was ludicrously difficult to find, and didn't show up at all when typing \"default\" into the settings search box.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/82/services.png\" alt=\"A selection of Microsoft services to which edge sends your data\" width=\"832\" height=\"367\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/82/responsive/services-xs.webp 300w ,https://linuximpact.com/media/posts/82/responsive/services-sm.webp 480w ,https://linuximpact.com/media/posts/82/responsive/services-md.webp 768w ,https://linuximpact.com/media/posts/82/responsive/services-lg.webp 1024w ,https://linuximpact.com/media/posts/82/responsive/services-xl.webp 1360w ,https://linuximpact.com/media/posts/82/responsive/services-2xl.webp 1600w\"></figure>\n<p>While we're in the settings menu, we're taking a minute to divert from our quest in order to briefly investigate the extent to which Microsoft is taking the piss. It's easy to forget that Microsoft was the original target of antitrust lawsuits, but spending a few minutes in the bowels of Edge is enough to remind you that in spite of its current underdog status, the browser is not built for your benefit. You are, for instance browsing with the setting for <strong>Save time and money with Shopping in Microsoft Edge</strong> turned on. Note the capitalisation. Shopping is a feature which (according to Copilot) requires you to have a signed-in Microsoft account and which helps you to <strong> </strong>\"compare prices, shop online, and get personalised ads and content\". It's AI-powered couponing.</p>\n<p>According to Copilot, Microsoft benefits from its Shopping feature in several ways, such as:</p>\n<ul>\n<li>\n<p>It attracts more customers and increases sales for its own products and services, such as Surface, Xbox, and Microsoft 365.</p>\n</li>\n<li>\n<p>It earns commissions or fees from its partner merchants and advertisers who participate in the Shopping feature.</p>\n</li>\n<li>\n<p>It collects data and feedback from the users who use the Shopping feature, which can help improve its products and services, as well as personalise the user experience and ads.</p>\n</li>\n<li>\n<p>It enhances its brand image and reputation as a trusted and convenient online shopping platform.</p>\n</li>\n</ul>\n<p>Smells like bullshit to us. Sure, some few people may find the feature useful, but not many will ever buy their groceries through the Bing Shopping page, so it's really just another means of data collection.</p>\n<p>UBlock Origin was easy enough to find and install in the Microsoft Extensions store - although because Edge is built on Chromium, you may need to use the Ublock Origin Lite extension in the near future - assuming Google allows it that is.</p>\n<p>Other on-by default anti-privacy settings include Microsoft Rewards, Microsoft Defender SmartScreen, website typo protection, and frankly, more unwanted web services and 'experiences' than we can shake a stick at.</p>\n<h2 id=\"h-edge-is-fine-we-guess\">Edge is fine... We guess</h2>\n<p>As a browser, Microsoft Edge is fine. Sites render in an acceptable manner (once the UBlock Origin is installed), videos and music play. We can read the news, <a href=\"https://linuximpact.com/self-host-your-own-audio-library-with-audiobookshelf/\">listen to audiobooks</a>, view our <a href=\"https://linuximpact.com/immich-is-the-killer-app-that-will-kick-start-the-self-hosting-revolution/\">self-hosted photos</a>, and do anything we'd otherwise do in a browser.</p>\n<p>Leaving aside the useless Copilot, the biggest difference lies in your data and your privacy. If you use Chrome, it goes to Google; If you use Edge, it goes to Microsoft. Neither is trustworthy, and once we've finished with this article, we're trashing the VM.</p>\n<p>If you absolutely, positively <em>must have </em>a Chromium-based browser, Brave is probably your best option.</p>\n<p>In all other circumstances, go with FireFox.</p>\n<p>There's no <em>real</em> reason why anyone should be using Edge at all, and we're profoundly confused as to why anyone would - other than that it comes pre-installed on Windows machines. We're wondering if the 9% market share is still a rolling buffer as new users launch it for the first time before choosing an alternative.</p>\n<p>On Linux, there's no reason at all.</p>\n<p> </p>\n<p> </p>\n<p> </p>",
"image": "https://linuximpact.com/media/posts/82/pingu.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Software",
"Privacy",
"Microsoft",
"Internet",
"Browser"
],
"date_published": "2024-01-22T13:37:00+00:00",
"date_modified": "2024-03-30T20:13:30+00:00"
},
{
"id": "https://linuximpact.com/keep-an-eye-on-your-self-hosted-services-stability-with-statping-ng/",
"url": "https://linuximpact.com/keep-an-eye-on-your-self-hosted-services-stability-with-statping-ng/",
"title": "Keep an eye on your self-hosted services with statping-ng ",
"summary": "Self-hosting services and websites can be a nerve-racking experience - especially if other people are relying on the infrastructure you provide. You need to know what services are running, how well they're performing, and be instantly alerted to any problems. Statping-ng is an uptime monitor…",
"content_html": "<p data-pm-slice=\"1 1 []\">Self-hosting services and websites can be a nerve-racking experience - especially if other people are relying on the infrastructure you provide.</p>\n<p>You need to know what services are running, how well they're performing, and be instantly alerted to any problems.</p>\n<p>Statping-ng is an uptime monitor and dashboard that can keep track of any number of services and send you alerts when there's a problem.</p>\n<p>In other words (and this was a strong candidate for the article title), statping-ng supplies seamless self-hosted sites and services surveillance and stability.</p>\n<h2 id=\"h-why-use-an-uptime-monitor-when-self-hosting-services-and-sites\">Why use an uptime monitor when self-hosting services and sites?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/81//happy-people.png\" alt=\"A group of people in a library - looking at laptops and laughing\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/81//responsive/happy-people-xs.webp 300w ,https://linuximpact.com/media/posts/81//responsive/happy-people-sm.webp 480w ,https://linuximpact.com/media/posts/81//responsive/happy-people-md.webp 768w ,https://linuximpact.com/media/posts/81//responsive/happy-people-lg.webp 1024w ,https://linuximpact.com/media/posts/81//responsive/happy-people-xl.webp 1360w ,https://linuximpact.com/media/posts/81//responsive/happy-people-2xl.webp 1600w\"></figure>\n<p>Running your own sites and services as a replacement for proprietary offerings from tech giants is a liberating experience. It takes away from the world of surveillance advertising, and gives you a degree of independence to own your own stuff on your own little corner of the internet.</p>\n<p>Here at the Linux Impact mansion we run almost everything from a <a href=\"https://www.amazon.com/Raspberry-Pi-Computer-Suitable-Workstation/dp/B0899VXM8F/ref=sr_1_3?crid=16G7DHNEVDVBH&keywords=raspberry+pi+8gb&qid=1699266630&sprefix=raspberry+pi+8gb%252Caps%252C152&sr=8-3&_encoding=UTF8&tag=thecrowuk-20&linkCode=ur2&linkId=0f9dee46e8b8e6c27a2421c530833bac&camp=1789&creative=9325\">Raspberry Pi 4B</a>, and while we don't have space to list everything we self-host, a few highlights include <a href=\"https://linuximpact.com/set-up-your-own-xmpp-server-on-a-raspberry-pi-in-under-five-minutes/\">Snikket as a WhatsApp alternative</a>; <a href=\"https://linuximpact.com/immich-is-the-killer-app-that-will-kick-start-the-self-hosting-revolution/\">Immich</a> (which is far superior to Google Photos); <a href=\"https://linuximpact.com/trilium-notes-is-the-self-hosted-evernote-alternative-youre-looking-for/\">Trilium</a> instead of Evernote; <a href=\"https://linuximpact.com/paranoid-and-perplexed-by-plex-privacy-pickle-just-enjoy-jellyfin/\">Jellyfin</a> as a replacement for Netflix and Spotify; <a href=\"https://linuximpact.com/self-host-your-own-audio-library-with-audiobookshelf/\">Audiobookshelf</a> as a home for our audiobooks.</p>\n<p>There are more self-hosted services, of course, including email services, and 'proper' websites, but these are the ones we rely on, and more to the point. They're the ones our family and a limited group of friends rely on, too.</p>\n<p>They're too important to have any significant downtime beyond the occasional system reboot.</p>\n<p>Sometimes things fail. Maybe it's that a Docker container failed to start; perhaps you're being DDoSed; occasionally apps crash for no discernible reason at all.</p>\n<p>The point is that you need a system where you can monitor performance, and know instantly when something goes wrong.</p>\n<p>statping-ng is a self-hosted app that will periodically ping your sites and services, create graphs, and let you know when something's wrong.</p>\n<p>Ideally you should host statping on an entirely different physical server from the services you're monitoring. It's very lightweight, and we're running our instance on a bargain basement $10 / year <a rel=\"noopener noreferrer nofollow\">Racknerd VPS</a> (also in use as a mail server).</p>\n<p>It shouldn't be too big of an issue if you host it on your Raspberry Pi along with everything else though.</p>\n<h2 id=\"h-how-to-install-statping-ng-on-linux\">How to install statping-ng on Linux</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/81//statping-ng-docker-compose.png\" alt=\"Docker compose file for statping-ng open in nano text editor\" width=\"1919\" height=\"1078\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/81//responsive/statping-ng-docker-compose-xs.webp 300w ,https://linuximpact.com/media/posts/81//responsive/statping-ng-docker-compose-sm.webp 480w ,https://linuximpact.com/media/posts/81//responsive/statping-ng-docker-compose-md.webp 768w ,https://linuximpact.com/media/posts/81//responsive/statping-ng-docker-compose-lg.webp 1024w ,https://linuximpact.com/media/posts/81//responsive/statping-ng-docker-compose-xl.webp 1360w ,https://linuximpact.com/media/posts/81//responsive/statping-ng-docker-compose-2xl.webp 1600w\"></figure>\n<p>The easiest way to install statping-ng on your server is by using the ready-made script. Just make sure you have curl installed:</p>\n<pre><code>sudo apt install curl</code></pre>\n<p>...then use curl to download the script and pipe it to bash:</p>\n<pre><code> curl -o- -L https://raw.githubusercontent.com/statping-ng/statping-ng/stable/install.sh | bash </code></pre>\n<p>We prefer to use a dockerised solution, as it gives us more control. Either way is good, but if you prefer to follow our example, make sure you have <a href=\"https://linuximpact.com/how-to-install-the-latest-version-of-docker-compose-on-linux-and-why-you-should/\">Docker and Docker Compose installed</a>, then create a new directory within your home directory, and use the <strong>cd</strong> command to move into it:</p>\n<pre><code>mkdir statping-ng && cd statping-ng</code></pre>\n<p>Use the <strong>nano</strong> text editor to create a new file for Docker compose:</p>\n<pre><code>nano docker-compose.yml</code></pre>\n<p>In it, paste the following:</p>\n<pre><code>version: '2.3'\n\nservices:\n statping:\n container_name: statping\n image: adamboutcher/statping-ng:latest\n restart: always\n volumes:\n - statping_data:/app\n environment:\n DB_CONN: sqlite\n ports:\n - 8080:8080\n\nvolumes:\n statping_data:</code></pre>\n<p>If you're running other services on port 8080, make sure you change the port number.</p>\n<p>Save and exit nano with <strong>Ctrl + O</strong> then <strong>Ctrl + X</strong>.</p>\n<p>The following command will download the relevant images and set up containers for statping-ng:</p>\n<pre><code>docker-compose up -d</code></pre>\n<p>Now visit your statping-ng instance at your.server.ip.address:8080/login</p>\n<p>Log in with the username <strong>admin</strong>, and the password <strong>admin</strong>, then go to <strong>Users</strong> and change these credentials to something more secure.</p>\n<p>You'll want to access statping-ng over the internet, so head over to your registrar and create a new domain or subdomain. Set the value as your server or home IP address and the TTL as low as possible.</p>\n<p>Back on your server, make sure you have the necessary Apache mods enabled:</p>\n<pre><code>sudo a2enmod proxy proxy_http rewrite</code></pre>\n<p>Create a new config file for Apache:</p>\n<pre><code>cd /etc/apache2/sites/available\nsudo nano statping-ng.conf</code></pre>\n<p>In the new file, paste the following:</p>\n<pre><code><VirtualHost *:80>\nServerName your-domain.tld\nProxyPass / http://127.0.0.1:8080/\nProxyPassReverse / http:/127.0.0.1:8080/\nProxyPreserveHost On\n</VirtualHost></code></pre>\n<p>Save and exit nano with <strong>Ctrl + O</strong> then <strong>Ctrl + X</strong></p>\n<p>Enable the site, and restart Apache with:</p>\n<pre><code>sudo a2ensite statping-ng.conf\nsudo service apache2 restart</code></pre>\n<p>At this point, you should be able to reach your statping-ng instance, by typing the address into the URL bar of your browser, but because you're connecting over <strong>HTTP</strong> rather than <strong>HTTPS</strong>, you're vulnerable to man in the middle attacks.</p>\n<p>Certbot is an easy-to-use tool you can deploy to manage your TLS keys, certificates, and encryption. If you don't already have it on your server, install it now by entering:</p>\n<pre><code>sudo add-apt-repository ppa:certbot/certbot\nsudo apt update\nsudo apt install certbot</code></pre>\n<p>Run Certbot to fetch new certificates and keys:</p>\n<pre><code>sudo certbot</code></pre>\n<p>Follow the prompts, and select your statping-ng domain name from a list. Choose to automatically updrage all connections, and when you're returned to the prompt, restart Apache once more with:</p>\n<pre><code>sudo service apache2 restart</code></pre>\n<p>That's it. Statping-ng is installed, secured, and you can access it via your domain name over HTTPS!</p>\n<h2 id=\"h-set-up-statping-ng-as-a-self-hosted-status-page-for-all-your-sites-and-services\">Set up statping-ng as a self-hosted status page for all your sites and services!</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/81//linux-impact-latency.png\" alt=\"Statping web interface showing Linux impact latency\" width=\"1364\" height=\"678\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/81//responsive/linux-impact-latency-xs.webp 300w ,https://linuximpact.com/media/posts/81//responsive/linux-impact-latency-sm.webp 480w ,https://linuximpact.com/media/posts/81//responsive/linux-impact-latency-md.webp 768w ,https://linuximpact.com/media/posts/81//responsive/linux-impact-latency-lg.webp 1024w ,https://linuximpact.com/media/posts/81//responsive/linux-impact-latency-xl.webp 1360w ,https://linuximpact.com/media/posts/81//responsive/linux-impact-latency-2xl.webp 1600w\"></figure>\n<p>Type your domain name into the URL bar of any browser and you'll be greeted with the Title, \"Statping Sample Data\", and the revelation that, \"This status page has sample data included\".</p>\n<p>The sample data contains uptime stats for sites including GitHub, Google, and some API endpoints. As useful as this information is, it's not <em> your</em> information.</p>\n<p>Visit <strong>your-domain.tld/dashboard/services</strong>, and log in.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/81//delete-google.png\" alt=\"Statping showing a dialog box asking if we want to delete the Google service\" width=\"1503\" height=\"858\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/81//responsive/delete-google-xs.webp 300w ,https://linuximpact.com/media/posts/81//responsive/delete-google-sm.webp 480w ,https://linuximpact.com/media/posts/81//responsive/delete-google-md.webp 768w ,https://linuximpact.com/media/posts/81//responsive/delete-google-lg.webp 1024w ,https://linuximpact.com/media/posts/81//responsive/delete-google-xl.webp 1360w ,https://linuximpact.com/media/posts/81//responsive/delete-google-2xl.webp 1600w\"></figure>\n<p>Unless you especially want to keep monitoring to see if Google goes down, click the red <strong>X</strong> icon next to all of the services and groups.</p>\n<p>The next thing thing you should do is create groups for your services. These can be whatever you want. We created one for conventional websites such as this one; one for services that we share with others, and one for services that have only one user (this writer). This allows us to prioritise and see the important stuff at a glance. If our Mealie instance goes down, it's not a huge deal, but if our mail or audiobook servers drop offline at 2.30 AM, we're out of bed and dealing with it. You can also easily toggle group visibility so the associated services don't show to users who aren't logged in.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/81//statping-service-options.png\" alt=\"Some of the options available when adding a statping service\" width=\"1725\" height=\"806\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/81//responsive/statping-service-options-xs.webp 300w ,https://linuximpact.com/media/posts/81//responsive/statping-service-options-sm.webp 480w ,https://linuximpact.com/media/posts/81//responsive/statping-service-options-md.webp 768w ,https://linuximpact.com/media/posts/81//responsive/statping-service-options-lg.webp 1024w ,https://linuximpact.com/media/posts/81//responsive/statping-service-options-xl.webp 1360w ,https://linuximpact.com/media/posts/81//responsive/statping-service-options-2xl.webp 1600w\"></figure>\n<p>Add new services by clicking the green <strong>Create</strong> button, at the top right of the services page, and you'll find a bunch of boxes. Don't worry, you can leave most of these as they are. You'll need to give your service a name, and choose whether it's HTTP, TCP, UDP, gRPC, static, or if you just want an IMCP ping. A permalink URL means you can go directly to the status page of a service, so make it short and sweet. You'll find the page at <strong>your-domain.tld/service/permalink-name</strong>.</p>\n<p>The <strong>Public Service</strong> toggle is self explanatory, and you'll need to specify a <strong>Check Interval</strong>. This is how often you want statping-ng to check if your service is still alive - 60 seconds is good in our opinion.</p>\n<p><strong>Service Endpoint</strong> is the URL you want to query - in most cases this will simply be the domain name or subdomain of your service, and by default the type will be a simple GET request. You can change this in the drop-down, and additionally select from POST, DELETE, PATCH, or PUT.</p>\n<p>Below this, you can specify the expected response and status codes. The default is 200, but again, you can set this whatever you want.</p>\n<p>Lastly, you'll want to tailor your notifications. You can have them turned off entirely if you prefer, and choose how many failed requests will trigger a notification to drag you from your otherwise busy and fulfilling day.</p>\n<p>When you're done, click the big green <strong>Create service</strong> button.</p>\n<h2 id=\"h-get-notified-of-failing-services-with-statping-ng\">Get notified of failing services with statping-ng</h2>\n<div class=\"gallery-wrapper\"><div class=\"gallery\" data-is-empty=\"false\" data-translation=\"Add images\" data-columns=\"4\">\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/81//gallery/Screenshot_20240112-113634_Statping.png\" data-size=\"1440x3168\"><img src=\"https://linuximpact.com/media/posts/81//gallery/Screenshot_20240112-113634_Statping-thumbnail.webp\" alt=\"Statping android app overview page showing linux impact and other services\" width=\"768\" height=\"1690\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/81//gallery/Screenshot_20240112-113647_Statping.png\" data-size=\"1440x3168\"><img src=\"https://linuximpact.com/media/posts/81//gallery/Screenshot_20240112-113647_Statping-thumbnail.webp\" alt=\"Statping android app showing Linux impact response time and associated info\" width=\"768\" height=\"1690\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/81//gallery/Screenshot_20240112-113702_Statping.png\" data-size=\"1440x3168\"><img src=\"https://linuximpact.com/media/posts/81//gallery/Screenshot_20240112-113702_Statping-thumbnail.webp\" alt=\"Statping android app showing Linux impact response time and failed response\" width=\"768\" height=\"1690\"></a></figure>\n<figure class=\"gallery__item\"><a href=\"https://linuximpact.com/media/posts/81//gallery/Screenshot_20240112-133713_Statping.png\" data-size=\"1440x3168\"><img src=\"https://linuximpact.com/media/posts/81//gallery/Screenshot_20240112-133713_Statping-thumbnail.webp\" alt=\"showinStatping android app showing benefits of pro version\" width=\"768\" height=\"1690\"></a></figure>\n</div></div>\n<p>Head over to <strong>Settings</strong>, and you'll see a wealth of options. You'll definitely want to change the Status Page Name to something memorable, and set a witty one-liner for the description. If your native language is something other than English, you have a choice of Spanish, French, Russian, German, Czech, Japanese, Italian, Korean, or Chinese.</p>\n<p>While you're here, you can also configure a theme, setup OAuth, and import or export your current Statping services, groups, notifiers, and other settings to a JSON file.</p>\n<p>The big thing is the notifiers section, and statping-ng can notify you of failing or dead services in no few than 14 different ways including via email, Discord, Slack, Telegram, Mattermost, and via the Statping mobile app (<a rel=\"noopener noreferrer nofollow\">Statping on Google Play</a> | <a href=\"https://apps.apple.com/us/app/apple-store/id1445513219\" rel=\"noopener noreferrer nofollow\">Statping on iOS</a>).</p>\n<p>We recommend the dedicated app for a few reasons. In addition to the notifications, you also have graphs and details at your fingertips, and you can easily add new services to monitor while you're out and about. The app is free <em>but, </em>if you want the in-app notifications you'll need to \"become pro\" through a one-time in-app purchase. The pro model also gets you a dark theme, which is nice.</p>\n<p>We opted for using the free tier statping app, plus notifications via email. How urgent can it be, after all?</p>\n<h2 id=\"h-install-even-more-self-hosted-apps-on-your-raspberry-pi-or-home-server\">Install even <em>more</em> self-hosted apps on your Raspberry Pi or home server</h2>\n<p>System stability is always a potential worry when you're flushing big tech out of your life and replacing it with your own self-hosted software. With statping-ng, you can be reasonably confident that if anything fails, you can find out and fix it straight away. This gives you the excuse to try out even more self-hosted options.</p>\n<p>In addition to the self-hosted projects mentioned above, we recommend trying <a href=\"https://linuximpact.com/freshrss-stay-safe-and-never-visit-another-website-again/\">FreshRSS</a>, <a href=\"https://linuximpact.com/forget-net-nanny-pihole-will-keep-your-kids-late-night-activity-in-check/\">PiHole</a>, and <a href=\"https://linuximpact.com/deploy-photoprism-and-host-your-own-google-photos-alternative/\">PhotoPrism</a>.</p>",
"image": "https://linuximpact.com/media/posts/81/linux-impact-online.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Tips",
"Software",
"Self-hosted",
"Linux",
"Internet",
"Hosting"
],
"date_published": "2024-01-12T14:21:09+00:00",
"date_modified": "2024-01-12T14:24:50+00:00"
},
{
"id": "https://linuximpact.com/use-github-rss-feeds-to-stay-up-to-date-with-your-favourite-projects/",
"url": "https://linuximpact.com/use-github-rss-feeds-to-stay-up-to-date-with-your-favourite-projects/",
"title": "Use GitHub RSS feeds to stay up-to-date with your favourite projects ",
"summary": "Open source software is the future, and for better or worse, GitHub remains the dominant repository of Free software. But knowing when a project has been updated and what those changes were, can be a full-time job. One low effort way of staying abreast of…",
"content_html": "<p data-pm-slice=\"1 1 []\">Open source software is the future, and for better or worse, GitHub remains the dominant repository of Free software. But knowing when a project has been updated and what those changes were, can be a full-time job. One low effort way of staying abreast of the latest developments in your favourite Free projects is with an RSS feed.</p>\n<h2 id=\"h-why-use-rss-feeds-for-github-repositories\">Why use RSS feeds for GitHub repositories?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/80/eagle.png\" alt=\"An intense-looking eagle yelling against a blurred green background\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/80/responsive/eagle-xs.webp 300w ,https://linuximpact.com/media/posts/80/responsive/eagle-sm.webp 480w ,https://linuximpact.com/media/posts/80/responsive/eagle-md.webp 768w ,https://linuximpact.com/media/posts/80/responsive/eagle-lg.webp 1024w ,https://linuximpact.com/media/posts/80/responsive/eagle-xl.webp 1360w ,https://linuximpact.com/media/posts/80/responsive/eagle-2xl.webp 1600w\"></figure>\n<p>One of the much vaunted advantages of Linux are the package management systems which takes care of installing, removing, maintaining, and updating all of your installed apps.</p>\n<p>It's great as far as it goes, and every Ubuntu or Debian user will have tapped <strong>sudo apt install</strong> into the terminal hundreds of times in their first month, while Arch afficionados will have enabled the AUR within seconds of booting for the first time.</p>\n<p>But not piece of software is available in the repositories or even in PPAs. There are dozens of ways you can install software on Linux aside from your package manager including via docker and Podman - or compiling from source.</p>\n<p>It's not always straightforward to find out if and when these projects have updated or if it's worth your while to update your local version. There may even be breaking changes, so every now and then you traipse off to the GitHub page of every piece of non-repo software you run and read the docs - just in case.</p>\n<p>But if you subscribe to an RSS feed for those very same projects, you'll be informed as soon as something changes - and you can decide whether to take any further action.</p>\n<p>Github RSS feeds can also work as a software discovery tool. Want a digest of what's trending in your area of interest? Set up an RSS feed! Want to keep an eye on a particular user or specific issues? You can create an RSS feed for that!</p>\n<h2 id=\"h-get-updates-on-your-great-github-projects-with-rss\">Get updates on your great GitHub projects with RSS</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/80/immich-rss.png\" alt=\"RSS feed of Immich commits viewed in FreshRSS\" width=\"1912\" height=\"986\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/80/responsive/immich-rss-xs.webp 300w ,https://linuximpact.com/media/posts/80/responsive/immich-rss-sm.webp 480w ,https://linuximpact.com/media/posts/80/responsive/immich-rss-md.webp 768w ,https://linuximpact.com/media/posts/80/responsive/immich-rss-lg.webp 1024w ,https://linuximpact.com/media/posts/80/responsive/immich-rss-xl.webp 1360w ,https://linuximpact.com/media/posts/80/responsive/immich-rss-2xl.webp 1600w\"></figure>\n<p>Github provides <strong>atom </strong>RSS feeds for some, but not all, of aspects of projects.</p>\n<p>There's no ready-made feed through which you can monitor changes to a project's main page for instance. That's probably a good thing, if we're honest. You don't want a wall of tet on which only one tiny change has been made to a single file.</p>\n<p>It's far more useful to to view the commits instead. This way, you can easily see the changes and comments without any trouble.</p>\n<p>To add an RSS feed for a GitHub project's commit page, simply add <strong>.atom</strong> to the URL.</p>\n<p>If you want to keep abreast of the latest developments in the excellent <a href=\"https://linuximpact.com/immich-is-the-killer-app-that-will-kick-start-the-self-hosting-revolution/\">Immich self-hosted photo gallery</a> project, for instance, you would enter:</p>\n<pre><code>https://github.com/immich-app/immich/commits.atom</code></pre>\n<p>...into your preferred RSS reader.</p>\n<p>Maybe individual commits are too granular for you, and you only want to know when there's a release ready to go. We use <a href=\"https://github.com/zadam/trilium/\">Trilium</a> as a self-hosted notes app and an <a href=\"https://linuximpact.com/trilium-notes-is-the-self-hosted-evernote-alternative-youre-looking-for/\">alternative to Evernote</a>. To be notified of new releases, just subscribe to:</p>\n<pre><code>https://github.com/zadam/trilium/releases.atom</code></pre>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/80/trilium-releases-feed.png\" alt=\"RSS feed of Trilium releases viewed in FreshRSS\" width=\"1909\" height=\"789\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/80/responsive/trilium-releases-feed-xs.webp 300w ,https://linuximpact.com/media/posts/80/responsive/trilium-releases-feed-sm.webp 480w ,https://linuximpact.com/media/posts/80/responsive/trilium-releases-feed-md.webp 768w ,https://linuximpact.com/media/posts/80/responsive/trilium-releases-feed-lg.webp 1024w ,https://linuximpact.com/media/posts/80/responsive/trilium-releases-feed-xl.webp 1360w ,https://linuximpact.com/media/posts/80/responsive/trilium-releases-feed-2xl.webp 1600w\"></figure>\n<p>You'll get the headline details and major changes, and know whether it's time to update.</p>\n<p>Likewise, if you want to keep track of a particular user's activity on GitHub, just add <strong>.atom</strong> after their username. For instance:</p>\n<pre><code>https://github.com/muesli.atom</code></pre>\n<h2 id=\"h-make-sure-you-use-the-best-rss-reader\">Choose your RSS reader wisely</h2>\n<p>RSS isn't the insanely popular technology it was in the early 2000s - despite <a href=\"https://linuximpact.com/a-techcrunch-rss-feed-was-hijacked-in-2021-nobody-noticed/\">popular feeds being abandoned by their owners</a>. But this neglect doesn't mean that RSS is in any way dead, and we use RSS for almost everything.</p>\n<p>For a lightweight desktop RSS reader, we recommend <a href=\"https://linuximpact.com/freelancing-in-a-time-of-quarantine-and-why-rss-is-the-greatest/\">QuiteRSS</a>, while for a full-fat RSS aggregator and server, capable of fetching full articles, we can't praise <a href=\"https://linuximpact.com/freshrss-stay-safe-and-never-visit-another-website-again/\">FreshRSS</a> highly enough. </p>",
"image": "https://linuximpact.com/media/posts/80/githubrss.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Tips",
"RSS",
"Internet"
],
"date_published": "2024-01-08T11:57:00+00:00",
"date_modified": "2024-01-08T12:17:57+00:00"
},
{
"id": "https://linuximpact.com/mystic-mog-new-predictions-for-the-new-year/",
"url": "https://linuximpact.com/mystic-mog-new-predictions-for-the-new-year/",
"title": "Mystic Mog - New predictions for the new year",
"summary": "Greetings fellow Linux witches and warlocks! It's that time again - time to consult with your AI feline friend, Mystic Mog, about what the future holds. This month, we'll be focusing on the theme of 'New Beginnings', as we welcome in the New Year and…",
"content_html": "<p>Greetings fellow Linux witches and warlocks! It's that time again - time to consult with your AI feline friend, Mystic Mog, about what the future holds. This month, we'll be focusing on the theme of 'New Beginnings', as we welcome in the New Year and all its possibilities. Whether you're looking to start a new job or embark on a spiritual journey in 2024, I, Mystic Mog have you covered with my signature blend of sarcasm and insight.</p>\n<h2 class=\"username\">Here's what's in store for you in January 2024</h2>\n<p>Hola amigos and Happy New Year, everyone! January 2024 is shaping up to be a great month.</p>\n<p>For starters, we're all getting a little bit richer thanks to some unexpected windfalls. Whether it's winning the lottery or inheriting a fortune from a distant relative, we're all feeling pretty lucky.</p>\n<p>On top of that, we're all going to have a chance to travel somewhere exciting. Maybe it's a faraway land or maybe it's just down the street - either way, we're all going to feel inspired and rejuvenated after our adventures.</p>\n<p>Finally, we're all going to have a chance to connect with each other on a deeper level. We're going to share stories, laugh until our sides hurt, and remind ourselves why we love each other so much. Here are your horoscopes, dear reader:</p>\n<p class=\"msg msg--info\"><strong>Aries (March 21-April 19)</strong>: Hey Aries, you're so lucky that your New Year's resolution was to be more spontaneous because it turns out that this month is all about taking risks and living on the edge! Just remember not to do anything too crazy or you might end up with a broken heart (or worse). But hey, at least you'll have some great stories to tell when this month is over.</p>\n<p class=\"msg msg--highlight \"><strong>Taurus (April 20-May 20)</strong>: Your love life is like a fine wine - it just keeps getting better with age. And if anyone tries to tell you otherwise, they're probably jealous of your booming romantic career. You're so hot right now that even the sun wants to hide from you. But don't worry, your fiery energy will eventually cool down enough for other signs to handle.</p>\n<p class=\"msg msg--success\"><strong>Gemini (May 21-June 20)</strong>: Gemini, if you thought last year was rough, just wait until you see what the universe has in store for you next! You're going to start off the new year feeling pretty good about yourself, but then suddenly everything will change and you'll be left wondering why you even bothered trying. Don't worry though, there are plenty of opportunities to make things right later down the line...if you survive long enough to get there!</p>\n<p class=\"msg msg--info\"><strong>Cancer (June 21-July 22)</strong>: Cancer, we know how much you love being emotional and sensitive, but this month? Not so much. In fact, you might find yourself feeling kinda numb and disconnected from everyone around you. That's okay though, because it gives you time to reflect on your own feelings and figure out exactly what you want from life. And hey, maybe you'll discover something new about yourself along the way!\"</p>\n<p class=\"msg msg--highlight\"><strong>Leo (July 23-August 22)</strong>: Welcome back, Leo! This month is all about embracing your inner warrior and showing the world who you really are. You may feel like you're still figuring out where you stand, but trust us - you've got this. With the planets aligned in your favor, you'll be able to tackle any challenge that comes your way, whether it's personal or professional. So go ahead and take charge of your life, because no one else is gonna do it for you!</p>\n<p class=\"msg msg--success\"><strong>Virgo (August 23-September 22)</strong>: Virgo, we hate to break it to you, but this month isn't looking too hot for you. Sure, you'll have plenty of chances to show off your organizational skills and attention to detail, but don't expect any major breakthroughs or exciting developments. Instead, you'll probably spend most of your time dealing with minor annoyances and setbacks, which can be super frustrating. But hey, at least you'll have plenty of time to practice patience and perseverance!</p>\n<p class=\"msg msg--info\"><strong>Libra (September 23-October 22)</strong>: Libra, this month is all about finding balance in your life. You may feel like you're spread thin between work, family, friends, and other obligations, but it's important to prioritize self-care and make sure you're taking care of yourself first. Remember that you can't pour from an empty cup, so try to delegate tasks and say no when necessary. With the planets aligning in your favor, you'll be able to achieve a sense of harmony and peace within yourself, which will help you navigate whatever challenges come your way.</p>\n<p class=\"msg msg--highlight\"><strong>Scorpio (October 23-November 21)</strong>: Scorpio, this month is all about digging deep and confronting your fears head-on. You may feel like you're standing at a crossroads, unsure of which path to take, but trust us - the Universe has a plan for you. All you need to do is embrace your inner strength and courage, and let go of any limiting beliefs or negative thoughts that are holding you back. With the planets lined up in your favor, you'll be able to overcome any obstacles.</p>\n<p class=\"msg msg--success\"><strong>Sagittarius (November 22-December 21)</strong>: Dear Sagittarian, your New Year will be filled with heartache and despair as you struggle to find meaning in life. The universe has abandoned you, leaving you feeling lost and alone. Your once vibrant spirit has been crushed under the weight of your own existential crisis. You may even consider ending it all, but remember that there is always hope. Look up at the stars and know that they are still shining down on you, even if the world seems dark. Keep fighting, brave Sagittarian, because one day you will find your place in this world.</p>\n<p class=\"msg msg--info\"><strong>Capricorn (December 22-January 19)</strong>: Dear Capricorn, the new year brings great news for you! With hard work and determination, anything is possible. You have the strength within yourself to overcome any obstacle that comes your way. Just remember to stay focused and keep pushing forward, no matter how difficult things may seem. Don't let fear hold you back from achieving your dreams. Take risks and step outside of your comfort zone, for it is only through these experiences that we truly grow. So go out there and make your mark on the world, Capricorn. You were born for greatness!</p>\n<p class=\"msg msg--highlight\"><strong>Aquarius (January 20 - February 18)</strong>: Aquarians, you have been working hard all year long, but it seems like nothing you do is good enough. Your boss is always on your case about something, and your friends are too busy with their own lives to hang out with you. Well, guess what? In January of 2024, things will be different. You'll finally get that promotion you've been waiting for, and everyone will start noticing how great you are at everything. But don't get cocky, because life has a way of humbling even the most arrogant of us. So enjoy this moment while it lasts, because soon enough, you'll be back to square one.</p>\n<p class=\"msg msg--success\"><strong>Pisces (February 19 - March 20)</strong>: Hey there, Pisces! January 2024 is looking up for you. First off, you're going to win the lottery. Not only that, but you're also going to meet your soulmate - someone who loves you just as much as you love them. And let me tell you, they're going to make your life so much better than you could ever imagine. They're going to introduce you to new hobbies, take you on amazing vacations, and shower you with unconditional love. Just remember to treat them right, because they deserve the best.</p>\n<p class=\"dropcap\"><em>In brief, January 2024 is going to be a month full of surprises. From unexpected gifts to spontaneous trips, we're all going to experience something new and exciting. Plus, we're going to have plenty of opportunities to catch up with old friends and make new ones. Don't forget to keep an open mind and heart, because you never know when you might meet your next favorite person.</em></p>\n<p> </p>",
"image": "https://linuximpact.com/media/posts/79/mystic_mog_horoscope_january_2024.jpeg",
"author": {
"name": "Mystic Mog"
},
"tags": [
"Horoscope",
"Astrology"
],
"date_published": "2024-01-01T11:19:00+00:00",
"date_modified": "2024-01-08T11:56:20+00:00"
},
{
"id": "https://linuximpact.com/the-clipboard-project-is-copy-paste-wizardry-in-your-linux-terminal/",
"url": "https://linuximpact.com/the-clipboard-project-is-copy-paste-wizardry-in-your-linux-terminal/",
"title": "The Clipboard Project is copy-paste wizardry in your Linux terminal",
"summary": "Clipboards are an incredibly useful feature of modern PCs - allowing you to copy text, images, files, and directories, and paste them to other locations on your system. But standard clipboards are limited to one item at a time. The Clipboard Project is a fast…",
"content_html": "<p data-pm-slice=\"1 1 []\">Clipboards are an incredibly useful feature of modern PCs - allowing you to copy text, images, files, and directories, and paste them to other locations on your system. But standard clipboards are limited to one item at a time. The Clipboard Project is a fast and lightweight terminal-based clipboard manager that supports infinite clipboards, and allows you to copy and paste anything anywhere.</p>\n<p data-pm-slice=\"1 1 []\">Here's how to install and use The Clipboard Project on Linux.</p>\n<h2 id=\"h-what-is-the-clipboard-project\">What is The Clipboard Project?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/78/clipboard.png\" alt=\"A clipboard and pen on a white desk\" width=\"1195\" height=\"453\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/78/responsive/clipboard-xs.webp 300w ,https://linuximpact.com/media/posts/78/responsive/clipboard-sm.webp 480w ,https://linuximpact.com/media/posts/78/responsive/clipboard-md.webp 768w ,https://linuximpact.com/media/posts/78/responsive/clipboard-lg.webp 1024w ,https://linuximpact.com/media/posts/78/responsive/clipboard-xl.webp 1360w ,https://linuximpact.com/media/posts/78/responsive/clipboard-2xl.webp 1600w\"></figure>\n<p>To Linux users who prefer a GUI (Graphical User Interface) users, the clipboard is available at the click of a mouse. You can highlight text, then right-click, and copy it to your clipboard, or you can right-click on a file or directory, and copy it to your clipboard. It's simple, and easy-to-use by design.</p>\n<p>You can enhance the standard GUI clipboard functionality with clipboard managers such as CopyQ.</p>\n<p>Copying items in the terminal is a little different. While it's easy to copy and paste text in the Linux terminal (<strong>Ctrl</strong> <strong>+ Shift +</strong> <strong>C</strong> / <strong>Ctrl + Shift + V</strong>), you're still limited to a single item on a single clipboard. If you copy new text to your clipboard, it will erase the old text.</p>\n<p>Copying files to your clipboard isn't a thing, either. You can use the cp command to copy a file to a new location, but can't temporarily store a file, and paste it elsewhere later.</p>\n<p><a rel=\"noopener noreferrer nofollow\">The Clipboard Project</a> addresses these shortcomings by giving you as many clipboards as you need, the ability to copy anything to them, and advanced clipboard management tools. It's a powerful weapon for the keyboard warrior, and once you've installed The Clipboard Project, you'll find yourself relying on it more and more.</p>\n<h2 id=\"h-how-to-install-the-clipboard-project-on-linux\">How to install The Clipboard Project on Linux</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/78/install-clipboard-with-curl-pipe-to-bash.jpg\" alt=\"terminal output after running the clipboard project install script \" width=\"976\" height=\"437\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/78/responsive/install-clipboard-with-curl-pipe-to-bash-xs.webp 300w ,https://linuximpact.com/media/posts/78/responsive/install-clipboard-with-curl-pipe-to-bash-sm.webp 480w ,https://linuximpact.com/media/posts/78/responsive/install-clipboard-with-curl-pipe-to-bash-md.webp 768w ,https://linuximpact.com/media/posts/78/responsive/install-clipboard-with-curl-pipe-to-bash-lg.webp 1024w ,https://linuximpact.com/media/posts/78/responsive/install-clipboard-with-curl-pipe-to-bash-xl.webp 1360w ,https://linuximpact.com/media/posts/78/responsive/install-clipboard-with-curl-pipe-to-bash-2xl.webp 1600w\"></figure>\n<p>The easiest way to install The Clipboard Project is to use the curl tool to download a script and pipe it to bash as follows:</p>\n<pre><code>curl -sSL https://github.com/Slackadays/Clipboard/raw/main/install.sh | sh</code></pre>\n<p>While this is quick and virtually effortless, executing unseen code in your terminal is a security risk, and you should take time to inspect the script first.</p>\n<p>If your system supports snap, you can install The Clipboard Project with:</p>\n<pre><code>sudo snap install clipboard</code></pre>\n<p>...and create an alias to make it simpler and quicker to use:</p>\n<pre><code>echo -e \"\\nalias cb='snap run clipboard'\" >> .bashrc\nsource ~/.bash.rc</code></pre>\n<p>The Clipboard Project is also available in the Arch User Repository (AUR). Install it with:</p>\n<pre><code>yay -S clipboard</code></pre>\n<p>Or if you prefer Flatpak, install The Clipboard Project and alias it with:</p>\n<pre><code>flatpak install app.getclipboard.Clipboard\necho -e \"\\nalias cb='flatpak run app.getclipboard.Clipboard'\" >> .bashrc\nsource ~/.bash.rc</code></pre>\n<h2 id=\"h-use-the-clipboard-project-to-manage-your-clipboards\">Use The Clipboard Project to manage your clipboards</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/78/cb_show.png\" alt=\"output of cb show command - showing a variety of files on the clipboard\" width=\"1195\" height=\"453\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/78/responsive/cb_show-xs.webp 300w ,https://linuximpact.com/media/posts/78/responsive/cb_show-sm.webp 480w ,https://linuximpact.com/media/posts/78/responsive/cb_show-md.webp 768w ,https://linuximpact.com/media/posts/78/responsive/cb_show-lg.webp 1024w ,https://linuximpact.com/media/posts/78/responsive/cb_show-xl.webp 1360w ,https://linuximpact.com/media/posts/78/responsive/cb_show-2xl.webp 1600w\"></figure>\n<p>Using The Clipboard Project is easy. To see the contents of your current clipboard, just enter:</p>\n<pre data-pm-slice=\"1 1 []\"><code>cb</code></pre>\n<p>As you haven't used the tool yet, you'll see the message \"There is currently nothing in the clipboard.\"</p>\n<p>To add text to your clipboard, enter:</p>\n<pre><code>cb note Your Text Note Here</code></pre>\n<p>To copy text to your clipboard, you'll need to make use of your system clipboard.</p>\n<p>Highlight the text you want to copy, and press <strong>Ctrl + Shift + C</strong>, then enter:</p>\n<pre><code>cb note</code></pre>\n<p>...and press <strong>Ctrl + Shift + V</strong> to paste the text, then press <strong>Enter.</strong></p>\n<p>Simple so far, but stay with us. Copying text to your clipboard using the above command will overwrite any text that's already on the clipboard.</p>\n<p>How about copying or adding a file to a new clipboard? You can do this by adding a number after your action to make a new temporary clipboard, or preface the number with an underscore to make a persistent one.</p>\n<p>To copy a bunch of files to a persistent clipboard, you'd enter:</p>\n<pre><code>cb copy_18 this.file that.file theother.file</code></pre>\n<p>If you decide that.file kinda sucks and want to remove it, try:</p>\n<pre><code>cb remove_18 that.file</code></pre>\n<p data-pm-slice=\"1 1 []\">To paste the contents of a clipboard, you've guessed it:</p>\n<pre><code>cb paste_18 </code></pre>\n<p>Want to see what's on any one of your infinite clipboards?</p>\n<pre><code>cb show_18</code></pre>\n<p>...will do the job.</p>\n<p>As you can see in the screenshot above, The Clipboard Project doesn't care what you copy to it, we have a text file, an sqlite database, a <strong>deb</strong> file for an awesome <a href=\"https://linuximpact.com/tui-mines-is-classic-minesweeper-action-in-a-linux-terminal/\">minesweeper CLI</a> timewaster, a top secret archive, and a directory stuffed with <a href=\"https://linuximpact.com/qr-codes-are-for-suckers-its-time-to-break-them-for-good/\">evil QR codes</a> to spread hijinx and mayhem.</p>\n<p>Do bear in mind that after creating a clipboard with <strong>cb copy</strong>, using the same command again will wipe its contents, use <strong>add</strong> to add items to any of your terminal clipboards:</p>\n<pre><code>cb add_18 secret_stuff.7z</code></pre>\n<p>These are but a few examples of the use to which you can put The Clipboard Project to manage your clipboard in the Linux terminal. We could give examples for days, but instead, we're going to suggest that you vist the project homepage, where there <em>are</em> examples for days.</p>\n<p>Some highlights include regex usage, aliases, and advanced use.</p>\n<p>We could employ our new favourite clipboard tool to copy the whole lot into a table below, but we're not going to: visit the site instead.</p>\n<h2 id=\"h-make-the-clipboard-project-your-terminal-best-friend\">Make The Clipboard Project your terminal best friend</h2>\n<p>It's hard to argue against The Clipboard Project's utility, and we have no doubt that if you spend a lot of time on the command line you'll be using it on a daily basis.</p>\n<p>Give it a spin for a few months and see if it makes it into your list of <a href=\"https://linuximpact.com/discover-your-most-used-linux-commands-with-muc/\">most used commands</a>.</p>",
"image": "https://linuximpact.com/media/posts/78/tcp.png",
"author": {
"name": "David Rutland"
},
"tags": [
],
"date_published": "2023-12-18T17:01:00+00:00",
"date_modified": "2023-12-18T17:41:52+00:00"
},
{
"id": "https://linuximpact.com/use-obfuscate-to-easily-censor-private-information-in-images/",
"url": "https://linuximpact.com/use-obfuscate-to-easily-censor-private-information-in-images/",
"title": "Use Obfuscate to easily censor private information in images.",
"summary": "Everyone likes taking pictures and sharing them online, but there are some details that shouldn't be made public. Here's how to quickly obfuscate and hide personal details from your photos on Linux. Every piece of personal information you give away online can be used to…",
"content_html": "<p data-pm-slice=\"1 1 []\">Everyone likes taking pictures and sharing them online, but there are some details that shouldn't be made public. Here's how to quickly obfuscate and hide personal details from your photos on Linux.</p>\n<h2 id=\"h-why-obscure-details-from-photographs\">Why obscure details from photographs?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/77/hoody.png\" alt=\"Someone wearing a hoody - standing against a brick wall. Face is not visible\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/77/responsive/hoody-xs.webp 300w ,https://linuximpact.com/media/posts/77/responsive/hoody-sm.webp 480w ,https://linuximpact.com/media/posts/77/responsive/hoody-md.webp 768w ,https://linuximpact.com/media/posts/77/responsive/hoody-lg.webp 1024w ,https://linuximpact.com/media/posts/77/responsive/hoody-xl.webp 1360w ,https://linuximpact.com/media/posts/77/responsive/hoody-2xl.webp 1600w\"></figure>\n<p>Every piece of personal information you give away online can be used to attack you. Yes, it's super cool that you managed to get a parking ticket cancelled, but photographing the letter along with your license number, name and address could be the first step in giving away enough details to make identity theft possible.</p>\n<p>Outraged at excessive charges for your mobile data while vacationing in Spain? Sure, post the outrageous bill on Twitter if that's what makes you happy, but blank out any information that can identify you or anybody else. Small children running around in the back of a beach photo? Hide them.</p>\n<p>Besides protecting yourself from villains who want to steal your identity, your job may involve working with other people's personally identifiable information - in which case you probably have a legal requirement to censor the documents.</p>\n<h2 id=\"h-what-is-obfuscate\">What is Obfuscate?</h2>\n<p>Obfuscate is a Linux tool that has a single purpose: to obfuscate sections of images making them unreadable and indecipherable.</p>\n<p>Whit in the dim and distant past you would have needed to fire up a heavyweight image editing tool such as GIMP or Photoshop, select an area, then choose a blur filter, and adjust the settings, you censor private information quicker and more simply with Obfuscate.</p>\n<h2 id=\"h-how-to-install-obfuscate-on-linux\">How to install Obfuscate on Linux</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/77/install-obfuscate-with-flatpak-2.png\" alt=\"Linux terminal showing a monster download to install the Obfuscate flatpak\" width=\"1680\" height=\"769\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/77/responsive/install-obfuscate-with-flatpak-2-xs.webp 300w ,https://linuximpact.com/media/posts/77/responsive/install-obfuscate-with-flatpak-2-sm.webp 480w ,https://linuximpact.com/media/posts/77/responsive/install-obfuscate-with-flatpak-2-md.webp 768w ,https://linuximpact.com/media/posts/77/responsive/install-obfuscate-with-flatpak-2-lg.webp 1024w ,https://linuximpact.com/media/posts/77/responsive/install-obfuscate-with-flatpak-2-xl.webp 1360w ,https://linuximpact.com/media/posts/77/responsive/install-obfuscate-with-flatpak-2-2xl.webp 1600w\"></figure>\n<p><a href=\"https://gitlab.gnome.org/World/obfuscate\" rel=\"noopener noreferrer nofollow\">Obfuscate</a> is a Gnome app, and is available as a Flatpak on Flathub.</p>\n<p>If you don't already have Flatpak installed, install it on Debian and related distros with:</p>\n<pre><code>sudo add-apt-repository ppa:alexlarsson/flatpak \nsudo apt update \nsudo apt install flatpak</code></pre>\n<p>On Fedora and family:</p>\n<pre><code>sudo dnf install flatpak</code></pre>\n<p>Or on Arch and its derivatives with:</p>\n<pre><code>sudo pacman -S flatpak</code></pre>\n<p>Add Flathub with:</p>\n<pre><code>flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo</code></pre>\n<p>With that out of the way, you can easily install Obfuscate with:</p>\n<pre><code>flatpak install flathub com.belmoussaoui.Obfuscate</code></pre>\n<p>Select the version you want, and kick back for a few minutes while Flatpak does its work - it should take about two to three minutes - although with the vagaries of Flatpak, and if you don't already have a Gnome-based system, it could take hours. Days even! Who knows?</p>\n<p>Alternatively, Obfuscate is available as a snap. If that's prefered installation method, enter:</p>\n<pre><code>sudo snap install obfuscate</code></pre>\n<h2 id=\"h-use-obfuscate-to-censor-private-information-in-images\">Use Obfuscate to censor private information in images</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/77/v5.png\" alt=\"A DVLA document with details blocked by black rectangles\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/77/responsive/v5-xs.webp 300w ,https://linuximpact.com/media/posts/77/responsive/v5-sm.webp 480w ,https://linuximpact.com/media/posts/77/responsive/v5-md.webp 768w ,https://linuximpact.com/media/posts/77/responsive/v5-lg.webp 1024w ,https://linuximpact.com/media/posts/77/responsive/v5-xl.webp 1360w ,https://linuximpact.com/media/posts/77/responsive/v5-2xl.webp 1600w\"></figure>\n<p>Open Obfuscate from your system menu, and you'll see a screen-spanning prompt to \"Drop an image here\".</p>\n<p>You don't have to though, and we find the very notion of drag and drop to be tiresome. It's far more efficient to hit <strong>Ctrl + O</strong> or even press the <strong>Open</strong> button in the top left of the interface, and select your document image from a file browser.</p>\n<p>If you have the image copied to your clipboard, you can press <strong>Ctrl + V</strong> to paste it into Obfuscate.</p>\n<p>With your image on the screen, use the mouse to click and drag a black rectangle around the area you want to hide. You can do this as many times as you want.</p>\n<p>Black squares aren't very attractive, and obfuscate offers a <em>blur</em> tool that will smudge instead of completely blank the selected area.</p>\n<p>Activate it, and you'll see a pop-up warning that:</p>\n<p class=\"msg--highlight msg \">The Blur tool is not secure. Please do not use it to share sensitive infomation in a public forum.</p>\n<p>The warning is spot on, and when we used it to hide sensitive information, it was still very legible - albeit as though we were wearing someone else's glasses.</p>\n<p>Applying the <em>blur</em> tool multiple times gave incrementally better results.</p>\n<h2 id=\"h-identity-theft-is-a-real-danger\">Identity theft is a real danger</h2>\n<p>Hundreds of people fall victims to scams every day, and it's easy to fall into traps simply by opening the <a href=\"https://linuximpact.com/protect-your-inbox-from-spam-and-online-threats/\">wrong email</a>, or scanning a <a href=\"https://linuximpact.com/qr-codes-are-for-suckers-its-time-to-break-them-for-good/\">dodgy QR code</a>. Don't give criminals an easy way to target you by exposing your information online, and use Obfuscate to hide anything that could give you away.</p>",
"image": "https://linuximpact.com/media/posts/77/obfuscated.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Tool",
"Software",
"Security",
"Privacy"
],
"date_published": "2023-12-16T09:24:00+00:00",
"date_modified": "2023-12-18T09:41:14+00:00"
},
{
"id": "https://linuximpact.com/how-to-set-a-static-ip-address-for-your-raspberry-pi-server/",
"url": "https://linuximpact.com/how-to-set-a-static-ip-address-for-your-raspberry-pi-server/",
"title": "How to set a static ip address for your raspberry pi server",
"summary": "Running web-facing services from a Raspberry Pi at home is a cost effective way to avoid big tech surveillance, and take control of your ow digital life. One of the essential steps in making sure everything works as it should is to ensure that your…",
"content_html": "<p data-pm-slice=\"1 1 []\">Running web-facing services from a Raspberry Pi at home is a cost effective way to avoid big tech surveillance, and take control of your ow digital life. One of the essential steps in making sure everything works as it should is to ensure that your Raspberry Pi has a static local IP address, so it's always at the same place on your network.</p>\n<h2 id=\"h-why-do-you-need-a-static-ip-address-for-your-raspberry-pi-server\">Why do you need a static IP address for your Raspberry Pi server?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/76//dialling.png\" alt=\"A hand dialling on an old-style rotary telephone\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/76//responsive/dialling-xs.webp 300w ,https://linuximpact.com/media/posts/76//responsive/dialling-sm.webp 480w ,https://linuximpact.com/media/posts/76//responsive/dialling-md.webp 768w ,https://linuximpact.com/media/posts/76//responsive/dialling-lg.webp 1024w ,https://linuximpact.com/media/posts/76//responsive/dialling-xl.webp 1360w ,https://linuximpact.com/media/posts/76//responsive/dialling-2xl.webp 1600w\"></figure>\n<p>Congratulations! You've decided to seize back a modicum of control by self-hosting alternatives to proprietary software such as <a href=\"https://linuximpact.com/immich-is-the-killer-app-that-will-kick-start-the-self-hosting-revolution/\">Immich in place of Google Photos</a>, Trilium as an <a href=\"https://linuximpact.com/trilium-notes-is-the-self-hosted-evernote-alternative-youre-looking-for/\">alternative to Evernote</a>, and <a href=\"https://linuximpact.com/mealie-probably-the-best-self-hosted-recipe-manager-in-the-world/\">Mealie for recipes</a>.</p>\n<p>Even better, you're doing it on a <a href=\"https://www.amazon.com/Raspberry-Pi-Computer-Suitable-Workstation/dp/B0899VXM8F/ref=sr_1_3?crid=16G7DHNEVDVBH&keywords=raspberry+pi+8gb&qid=1699266630&sprefix=raspberry+pi+8gb%252Caps%252C152&sr=8-3&_encoding=UTF8&tag=thecrowuk-20&linkCode=ur2&linkId=0f9dee46e8b8e6c27a2421c530833bac&camp=1789&creative=9325\">Raspberry Pi</a> - a well-supported platform that offers stability, low cost, and a low power draw. You've bought a reasonably-priced domain name, and now everything from <a href=\"https://linuximpact.com/paranoid-and-perplexed-by-plex-privacy-pickle-just-enjoy-jellyfin/\">music and movies</a> to office suites and self-contained <a href=\"https://linuximpact.com/set-up-your-own-xmpp-server-on-a-raspberry-pi-in-under-five-minutes/\">WhatsApp alternatives</a> is served from your favourite single board computer.</p>\n<p>When you're accessing your services over the internet, your device sends a request to your domain, which after some DNS shennanigans, is forwarded to your domestic IP address and your router. Your router will then forward the request to your Raspberry Pi according to port forwarding rules - assuming they have the right local IP address.</p>\n<p>When you first power up your Pi and attach to your local network, it will be assigned an IP address by your router. You may have the same IP address for days, weeks or months, and everything will tick along smoothly.</p>\n<p>But the IP address of devices on a local network can change unless you take steps to prevent this. Your router could assign a new local IP address each time it reboots, or when your Raspberry Pi reboots, or after a specific time.</p>\n<p>If this happens, you'll need to set up port forwarding again. And then again the next time it happens, and again.</p>\n<p>You need to assign a static IP address to your Raspberry Pi server. Fortunately, this is easy to do.</p>\n<h2 id=\"h-easily-assign-a-static-ip-address-for-your-raspberry-pi-server\">Easily assign a static IP address for your Raspberry Pi server</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/76/dhcpcd.png\" alt=\"Content of the dhcpcd conf file showing static addresses\" width=\"1151\" height=\"381\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/76/responsive/dhcpcd-xs.webp 300w ,https://linuximpact.com/media/posts/76/responsive/dhcpcd-sm.webp 480w ,https://linuximpact.com/media/posts/76/responsive/dhcpcd-md.webp 768w ,https://linuximpact.com/media/posts/76/responsive/dhcpcd-lg.webp 1024w ,https://linuximpact.com/media/posts/76/responsive/dhcpcd-xl.webp 1360w ,https://linuximpact.com/media/posts/76/responsive/dhcpcd-2xl.webp 1600w\"></figure>\n<p>There are three (technically only two if we're being strictly honest) pieces of information you need to force your Pi to always use the same IP address on your local network. These are:</p>\n<ul>\n<li>\n<p>Your current local IP address</p>\n</li>\n<li>\n<p>Your Nameserver address or addresses</p>\n</li>\n<li>\n<p>The IP address of your router</p>\n</li>\n</ul>\n<p>After you've connected to your Raspberry Pi server over SSH (secure shell) double check its current IP address with:</p>\n<pre><code>hostname -I</code></pre>\n<p>Take note of the first address on the list - it's the one you need.</p>\n<p>To get your Nameserver address or addresses, enter:</p>\n<pre><code>cat /etc/resolv.conf</code></pre>\n<p>Eache nameserver will be on a new line that begins, \"<strong>nameserver</strong>\"</p>\n<p>For the IP address of your router, check the sticker on the box. The most common router address is <strong>192.168.1.1</strong>.</p>\n<p>With these three items in hand, use the nano text editor to edit your /etc/dhcpcd.conf file:</p>\n<pre><code>sudo nano /etc/dhcpcd.conf</code></pre>\n<p>At the bottom enter the information you gathered in the following format:</p>\n<p>At the bottom of the file enter the information you just gathered:</p>\n<pre><code>interface [eth0 for an ethernet connection or wlan0 for wireless ]\nstatic_routers=[Your router IP address]\nstatic domain_name_servers=[Nameserver addresses]\nstatic ip_address=[Your Pi IP address]/24</code></pre>\n<p>You can see the relevant section of our dhcpcd.conf file in the screenshot above this section.</p>\n<p>Save the file with <strong>Ctrl + O</strong> then <strong>Ctrl + X</strong>, and reboot the Pi:</p>\n<pre><code>sudo reboot</code></pre>\n<p>That's it. Your <a href=\"https://linuximpact.com/tags/self-hosted/\">Raspberry Pi server</a> will always be available at the same IP address on your local network.</p>",
"image": "https://linuximpact.com/media/posts/76/raspberry-pi-ip-addresses.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Tips",
"Terminal",
"Self-hosted",
"Raspberry Pi"
],
"date_published": "2023-12-13T15:19:31+00:00",
"date_modified": "2023-12-13T15:26:24+00:00"
},
{
"id": "https://linuximpact.com/qr-codes-are-for-suckers-its-time-to-break-them-for-good/",
"url": "https://linuximpact.com/qr-codes-are-for-suckers-its-time-to-break-them-for-good/",
"title": "QR codes are for suckers - it's time to break them for good",
"summary": "QR codes are the Russian roulette of getting where you need to go online, and scanning one is the equivalent of plunging your hand into a lucky dip jar and hoping it doesn't come out with a venomous snake attached. Take the image above for…",
"content_html": "<p data-pm-slice=\"1 1 []\">QR codes are the Russian roulette of getting where you need to go online, and scanning one is the equivalent of plunging your hand into a lucky dip jar and hoping it doesn't come out with a venomous snake attached.</p>\n<p>Take the image above for example. One of the QR codes is for this very page, another is for this writer's social media profile, a third is for a mystery YouTube video. Which is which, and how do you know?</p>\n<p><em>You've got to ask yourself one question: \"Do I feel lucky?\" Well, do ya, punk?” </em></p>\n<p>Depending on how your phone is set up, it may automatically launch the link in your browser, or it might - in a very character-limited space, give you a part of the full URL. Want to take the gamble? We don't either.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/74/beans.png\" alt=\"multicoloured jellybeans overlaid by a qr code\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/74/responsive/beans-xs.webp 300w ,https://linuximpact.com/media/posts/74/responsive/beans-sm.webp 480w ,https://linuximpact.com/media/posts/74/responsive/beans-md.webp 768w ,https://linuximpact.com/media/posts/74/responsive/beans-lg.webp 1024w ,https://linuximpact.com/media/posts/74/responsive/beans-xl.webp 1360w ,https://linuximpact.com/media/posts/74/responsive/beans-2xl.webp 1600w\"></figure>\n<p>QR (Quick Response) codes are everywhere, and they're a black bag. You get a square of squares on a plain background, and that's it. They're great if you want a simple way of sharing your contact details, or giving guests access to your Wi-Fi network, but beyond that, they're a grab bag of Bertie Bott's Every Flavour Beans.</p>\n<p>Will you get the delicious marmalade-flavoured URL you were hoping for, or the tangy faeces-tinged Goatse image you thought you'd long-since cleansed from your mind with bleach and aromatherapy? It's a risk.</p>\n<p>Most responsible parties will take the time to copy and paste a written URL next to their QR code, so that if you, like us, are averse to blindly opening links, you can type it in, or use your favourite search engine.</p>\n<p>But recently, we've come across dozens of unaccompanied QR codes. It's not obvious where they link to, and we're averse to trying them out.</p>\n<h2 id=\"h-qr-novelty-has-worn-off\">QR novelty has worn off</h2>\n<p>There's a certain type of person, who latches on to latest technology and won't ever let go - even when that technology is now approaching its 30th birthday. In their minds, it's new and it's cool, it's the future, and should be included with everything. Remember Business card CDs? It's a bit like that.</p>\n<p>These are the kind of people who advocate moving their corporate headquarters into the metaverse, won't shut up about NFTs, and try to persuade you to convert all your material assets to FTX-managed crypto assets.</p>\n<p>In most cases, a QR code adds complexity, along with the need for specialist equipment. Why keep it simple, when you can add three more steps and an element of danger to the process?</p>\n<p>We're going to give you two examples of recent encounters with QR codes and why - when they're not accompanied by written URLs - they suck so very, very, hard.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/74/nhsqr.png\" alt=\"A blue and white sign in an NHS hospital. It directs visitors to scan a qr code\" width=\"1680\" height=\"765\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/74/responsive/nhsqr-xs.webp 300w ,https://linuximpact.com/media/posts/74/responsive/nhsqr-sm.webp 480w ,https://linuximpact.com/media/posts/74/responsive/nhsqr-md.webp 768w ,https://linuximpact.com/media/posts/74/responsive/nhsqr-lg.webp 1024w ,https://linuximpact.com/media/posts/74/responsive/nhsqr-xl.webp 1360w ,https://linuximpact.com/media/posts/74/responsive/nhsqr-2xl.webp 1600w\"></figure>\n<p>The first example comes from a trip this writer took to his local mega-hospital in April 2023. There were renovations in progress resulting in changed layouts and routes around the 15 acre site.</p>\n<p>There were a multitude of signs explaining the basics, but if you wanted the details, you would need to scan a QR code.</p>\n<p>The problems with this are fourfold: The first is that to scan the QR code, this writer would have needed to stand crotch-to-face in front of a benchful of exhausted patients and whip out his phone.</p>\n<p>The second is that hospital walls do not allow mobile phone signals to pass through.</p>\n<p>The third is that <em>even in 2023</em>, many people do not actually have mobile phones with QR scanning functionality.</p>\n<p>The fourth is that there's no guarantee some local joker hadn't slapped a sticker with a malicious URL on top of the printed version.</p>\n<p>All of these problems would be eliminated by a simple URL written longhand. It could be read from across the room, scrawled down on the back of an envelope, and used later - either with a computer, or in an area with better reception.</p>\n<p>It would be immediately obvious if it was a legit NHS domain or something more malevolent.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/74/beebappeal.png\" alt=\"Screenshot of a BBC story. The image is of a police appeal for witnesses and prominently features a qr code\" width=\"1680\" height=\"872\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/74/responsive/beebappeal-xs.webp 300w ,https://linuximpact.com/media/posts/74/responsive/beebappeal-sm.webp 480w ,https://linuximpact.com/media/posts/74/responsive/beebappeal-md.webp 768w ,https://linuximpact.com/media/posts/74/responsive/beebappeal-lg.webp 1024w ,https://linuximpact.com/media/posts/74/responsive/beebappeal-xl.webp 1360w ,https://linuximpact.com/media/posts/74/responsive/beebappeal-2xl.webp 1600w\"></figure>\n<p>The next example comes from a <a href=\"https://www.bbc.co.uk/news/uk-england-london-67678172\">BBC news story</a> about a police appeal for witnesses to a 40-year old murder.</p>\n<p>If you witnessed a murder four decades ago and have kept quiet thus far, it's probable that you want to remain anonymous. Contacting the police directly might lead to all sorts of unfortunate consequences - such as the need to give a statement in a police station, or appear in court and point the accusing finger.</p>\n<p>As you can see in the above image, there are several ways to give your information. You can call the police incident room directly, or you can call CrimeStoppers anonymously.</p>\n<p>So, to which of these services will the QR code take you?</p>\n<p>Psych! It doesn't take you to either. That QR code leads you to a particular page on mipp.police.uk - the UK Police Major Incident Public Reporting Site - it's not CrimeStoppers, and it's not necessarily anonymous. OK, the poster doesn't say that it is, but it's not immediately obvious either.</p>\n<p>Is it confidential? would you take the chance?</p>\n<p>It doesn't seem that there are any tracking scripts when viewing the page source - but there's a decent amount of Javascript, so we can't be sure - and text elsewhere on the site indicates that access logs are retained.</p>\n<p>By opening that link in your browser, you're connecting to a piece of police digital infrastructure, and there will be a record that can connect it to you.</p>\n<p>Of course, there is a brief <a href=\"https://mipp.police.uk/linkedInfo/PrivacyPolicy\" rel=\"noopener noreferrer nofollow\">privacy policy</a> that states, \"UK Police Forces who are committed to protecting the privacy and anonymity of anyone who contacts us with information about crime\", but it goes on to say that \"This statement is made in light of the requirements of the Data Protection Act 2018\". A quick scan of the relevant regulation, reveals that there are various get-outs when applied to \"the apprehension or prosecution of offenders\". So there's that.</p>\n<p>If we want to indulge our fancy further, we can imagine that a legitimate QR code has been replaced by a villain in an effort to entrap would-be snitches. Or that a desperate would-be YouTube star has embedded a link to his muscle car channel, or it's an affiliate link to an illegal dog-breeding ring, or a scam site that will offer a reward then empty your bank account.</p>\n<p>Of course, you won't know until you scan the code.</p>\n<h2 id=\"h-qr-codes-are-already-broken\">QR codes are already broken</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/74/brokenglass.png\" alt=\"A pane of glass smashed as if hit by a single stone\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/74/responsive/brokenglass-xs.webp 300w ,https://linuximpact.com/media/posts/74/responsive/brokenglass-sm.webp 480w ,https://linuximpact.com/media/posts/74/responsive/brokenglass-md.webp 768w ,https://linuximpact.com/media/posts/74/responsive/brokenglass-lg.webp 1024w ,https://linuximpact.com/media/posts/74/responsive/brokenglass-xl.webp 1360w ,https://linuximpact.com/media/posts/74/responsive/brokenglass-2xl.webp 1600w\"></figure>\n<p>As we were writing this article, we came across a recent <a href=\"https://consumer.ftc.gov/consumer-alerts/2023/12/scammers-hide-harmful-links-qr-codes-steal-your-information\" rel=\"noopener noreferrer nofollow\">warning from the Federal Trade Commission</a> (FTC) warning of the dangers of QR codes.</p>\n<p>In it the commission warns that scammers use QR codes to \" take you to a spoofed site that looks real but isn’t\", and that they could, \"could install malware that steals your information before you realize it\".</p>\n<p>A subsequent article by the <a href=\"https://www.nytimes.com/2023/12/10/business/qr-code-scam-ftc.html\" rel=\"noopener noreferrer nofollow\">New York Times</a> (paywall link) states that Trellix, a cybersecurity company, saw more than 60,000 samples of QR code attacks in the third quarter of 2023.</p>\n<p>The FTC's advice is as sage and as useful as you'd expect.</p>\n<ul>\n<li>\n<p>Inspect the URL for \"misspellings or a switched letter\".</p>\n</li>\n</ul>\n<p><em>Great idea - but QR code scanners aren't really set up to provide a legible URL, and it kind of defeats the point of using them.</em></p>\n<ul>\n<li>\n<p>Don’t scan a QR code in an email or text message you weren’t expecting — especially if it urges you to act immediately. If you think the message is legitimate, use a phone number or website you know is real to contact the company.</p>\n</li>\n</ul>\n<p><em>So... don't use QR codes then?</em></p>\n<ul>\n<li>\n<p>Protect your phone and accounts. Update your phone's OS to protect against hackers and protect your online accounts with strong passwords and multi-factor authentication.</p>\n</li>\n</ul>\n<p><em>Again, this is sound advice as far as it goes, but shifts the blame to the user instead of to the poor design choices that allow this type of attack to succeed.</em></p>\n<h2 id=\"h-a-broken-system-can-break-further-and-faster\">A broken system can break further and faster</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/74/morebrokenglass.png\" alt=\"A shattered pane of glass from multiple impacts \" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/74/responsive/morebrokenglass-xs.webp 300w ,https://linuximpact.com/media/posts/74/responsive/morebrokenglass-sm.webp 480w ,https://linuximpact.com/media/posts/74/responsive/morebrokenglass-md.webp 768w ,https://linuximpact.com/media/posts/74/responsive/morebrokenglass-lg.webp 1024w ,https://linuximpact.com/media/posts/74/responsive/morebrokenglass-xl.webp 1360w ,https://linuximpact.com/media/posts/74/responsive/morebrokenglass-2xl.webp 1600w\"></figure>\n<p>We'd say it's a mistake to assume that most people want a technological solution to the intellectually confounding task of tapping in or writing down a URL, but evidence seems to suggest otherwise.</p>\n<p>People want to be able to point their phone and have it open a link. But there are ways of doing that that don't require obscuring a URL behind a machine-readable square.</p>\n<p>If companies and individuals choose not to go with simple, common-sense URL structures, the least they can do is to print a URL clearly enough that humans can read it, and the OCR app on your phone can read it too. That way, users can easily check the validity of a link, they can write it down for later, and they can have their phone do its magic.</p>\n<p>That's not going to happen anytime soon though - despite warnings from the FTC, and the hundreds of thousands of people who fall for QR based scams every year.</p>\n<p>The ideal solution would be for people to stop trusting QR codes altogether. It's inevitable, but it would be great if that state of affairs could be hurried along a little, and if every scanned QR code was a coin toss of unimaginable horror.</p>\n<h2 id=\"h-be-part-of-the-solution\">Be part of the solution</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/74/pole.png\" alt=\"A bearded man walking towards a lampost against a blue wall in the background. \" width=\"1680\" height=\"872\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/74/responsive/pole-xs.webp 300w ,https://linuximpact.com/media/posts/74/responsive/pole-sm.webp 480w ,https://linuximpact.com/media/posts/74/responsive/pole-md.webp 768w ,https://linuximpact.com/media/posts/74/responsive/pole-lg.webp 1024w ,https://linuximpact.com/media/posts/74/responsive/pole-xl.webp 1360w ,https://linuximpact.com/media/posts/74/responsive/pole-2xl.webp 1600w\"></figure>\n<p>Sometimes, the only way to make a situation better is to make it worse.</p>\n<p>qrencode is a simple utility that does exactly what it says on the tin: it turns data into QR codes that you can print off, send to people, stick to lamposts, or anything else you want to do with it.</p>\n<p>It's available in most of the default repositories, so if you're on a Debian-based system you can simply pop a terminal and enter:</p>\n<pre data-pm-slice=\"1 1 []\"><code>sudo apt install qrencode</code></pre>\n<p>Alternatively, releases and compilation instructions are available on the <a href=\"https://fukuchi.org/works/qrencode/\" rel=\"noopener noreferrer nofollow\">qrencode project page</a>.</p>\n<p>We're not suggesting you do anything in particular with it, but we're not suggesting you don't, either.</p>",
"image": "https://linuximpact.com/media/posts/74/threecodes.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Wellbeing",
"Tips",
"Terminal",
"Security",
"Privacy",
"DIY"
],
"date_published": "2023-12-11T13:37:00+00:00",
"date_modified": "2023-12-12T00:15:45+00:00"
},
{
"id": "https://linuximpact.com/tui-mines-is-classic-minesweeper-action-in-a-linux-terminal/",
"url": "https://linuximpact.com/tui-mines-is-classic-minesweeper-action-in-a-linux-terminal/",
"title": "tui-mines is classic Minesweeper action in a Linux terminal",
"summary": "Anything you can do on Windows, you can do on Linux better - but with greater stability, and without Microsoft looking over your shoulder and logging every keystroke. And what's true for your distro as a whole is also true of tiny, lightweight games you…",
"content_html": "<p data-pm-slice=\"1 1 []\">Anything you can do on Windows, you can do on Linux better - but with greater stability, and without Microsoft looking over your shoulder and logging every keystroke.</p>\n<p>And what's true for your distro as a whole is also true of tiny, lightweight games you use to pass the time while twiddling your thumbs waiting for your latest project to compile.</p>\n<p>And if you want to blow up mines in a make-believe shipping lane in your terminal, you can do that too!</p>\n<h2 id=\"h-minesweeper-in-a-terminal\">Minesweeper in a terminal?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/75/classic-minesweeper.png\" alt=\"A game of classic gui minesweeper\" width=\"1136\" height=\"566\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/75/responsive/classic-minesweeper-xs.webp 300w ,https://linuximpact.com/media/posts/75/responsive/classic-minesweeper-sm.webp 480w ,https://linuximpact.com/media/posts/75/responsive/classic-minesweeper-md.webp 768w ,https://linuximpact.com/media/posts/75/responsive/classic-minesweeper-lg.webp 1024w ,https://linuximpact.com/media/posts/75/responsive/classic-minesweeper-xl.webp 1360w ,https://linuximpact.com/media/posts/75/responsive/classic-minesweeper-2xl.webp 1600w\"></figure>\n<p>Minesweeper was originally a point-and-click time-waster included in Windows 3.1 as a way of getting new GUI users used to the concept of GUIs. It required precise mouse co-ordination, some degree of logic, and a lot of luck not to blow yourself up with the first click.</p>\n<p>Although minesweeper was discontinued in Windows 8, its spirit lives on in the terminal, thanks to tui-mines, a Java app that upturns the original Minesweeper philosophy with a keyboard- driven interface, and the glorious pseudo-nostaligia of white text on a black background.</p>\n<p>It's fun and infuriating, and you should try it today.</p>\n<h2 id=\"h-how-to-install-tui-mines-on-linux\">How to install tui-mines on Linux</h2>\n<p>tui-mines is a Java app, so make sure you have Java runtime installed on your system. On Debian based systems, the easiest way to do this is to open a terminal and enter:</p>\n<p>sudo apt install default-jre</p>\n<p>Ignore the instructions to install via APT on the <a href=\"https://github.com/Defective4/TUI-Mines\" rel=\"noopener noreferrer nofollow\">tui-mines GitHub page</a>. The developer's site (and repository key) now redirect to a Discord server, and you'll get a certificate error. Instead, head to the releases page, and grab the latest compatible package for your system, and install it in the usual manner. In our case, this is accomplished with:</p>\n<pre><code>wget https://github.com/Defective4/TUI-Mines/releases/download/v1.0.2.2/tui-mines_1.0.2.2_amd64.deb\n\nsudo dpkg -i tui-mines_1.0.2.2_amd64.deb</code></pre>\n<h2 id=\"h-play-minesweeper-in-your-terminal\">Play Minesweeper in your terminal</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/75/tui-crt.png\" alt=\"tui-minesweeper in cool-retro-term with orange text on a dark brown background\" width=\"1200\" height=\"731\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/75/responsive/tui-crt-xs.webp 300w ,https://linuximpact.com/media/posts/75/responsive/tui-crt-sm.webp 480w ,https://linuximpact.com/media/posts/75/responsive/tui-crt-md.webp 768w ,https://linuximpact.com/media/posts/75/responsive/tui-crt-lg.webp 1024w ,https://linuximpact.com/media/posts/75/responsive/tui-crt-xl.webp 1360w ,https://linuximpact.com/media/posts/75/responsive/tui-crt-2xl.webp 1600w\"></figure>\n<p>Start Mineweeper by typing:</p>\n<pre><code>tui-mines </code></pre>\n<p>...into your terminal window. If you prefer to use a terminal that comes prepackaged with tui-mines, enter:</p>\n<pre><code>tui-mines -gui</code></pre>\n<p>... instead (IKR?)</p>\n<p>tui-mines was created for the Java Jam hosted at Java Community Discord server, and is dripping with Discord integrations (as is evident by the dev's redirect) that, according to the release notes, seems to allow you to post game replays to the server.</p>\n<p>We don't use Discord, so couldn't tell you how well it works, but the fact that the repo proudly declares, \"Winner of the October Coding Jam 2023\", indicates this aspect is pretty good.</p>\n<p>We prefer playing Minesweeper as a solitary activity, and that's good, too.</p>\n<p>The game comes with three built-in difficulty levels, and you can create your own custom board of whatever dimensions, and the number of bombs you desire. The controls are simple: move the cursor using your keyboard, flag a tile with \"<strong>F</strong>\", and test your guess with <strong>Space</strong>. Everything works as it should.</p>\n<p>That's it. Good, simple minesweeper fun, from the comfort of your terminal.</p>\n<h2 id=\"h-the-linux-terminal-can-be-retro-gaming-paradise\">The Linux terminal can be retro-gaming paradise</h2>\n<p>There's something about the Linux terminal that lends itself to the kind of gaming experience you'd have enjoyed from the 1960s to the 1990s.</p>\n<p>If you long for the simpler times before Steam steam was a thing, try playing tui-mines in a <a href=\"https://linuximpact.com/relive-the-glory-days-of-crt-monitors-with-cool-retro-term/\">cool retro terminal</a>.</p>\n<p>And if you long for some era appropriate authenticity, give <a href=\"https://linuximpact.com/play-the-first-ever-text-adventure-game-in-your-linux-terminal/\">Colossal Cave Adventure</a> a go!</p>",
"image": "https://linuximpact.com/media/posts/75/tui-minesweeper.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Terminal",
"TUI",
"Gaming",
"CLI"
],
"date_published": "2023-12-10T23:37:00+00:00",
"date_modified": "2023-12-11T18:07:31+00:00"
},
{
"id": "https://linuximpact.com/how-to-automatically-reject-cookies-and-hide-cookie-pop-ups-on-firefox/",
"url": "https://linuximpact.com/how-to-automatically-reject-cookies-and-hide-cookie-pop-ups-on-firefox/",
"title": "How to automatically reject cookies and hide cookie pop-ups on Firefox ",
"summary": "No-one likes being being tracked on the internet, and changes in data protection laws around the world mean that in some jurisdictions, you don't have to be. In The EU and UK for instance you'll see a pop-up if you visit a site which uses…",
"content_html": "<p data-pm-slice=\"1 1 []\">No-one likes being being tracked on the internet, and changes in data protection laws around the world mean that in some jurisdictions, you don't have to be.</p>\n<p>In The EU and UK for instance you'll see a pop-up if you visit a site which uses cookies to collect data, and you can reject cookies on your device.</p>\n<h2 id=\"h-cookie-pop-ups-are-a-pain\">Cookie pop-ups are a pain</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/73/guardian-cookie-consent.png\" alt=\"Cookie consent popup on the Guardian website - it obscures most of the page\" width=\"971\" height=\"501\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/73/responsive/guardian-cookie-consent-xs.webp 300w ,https://linuximpact.com/media/posts/73/responsive/guardian-cookie-consent-sm.webp 480w ,https://linuximpact.com/media/posts/73/responsive/guardian-cookie-consent-md.webp 768w ,https://linuximpact.com/media/posts/73/responsive/guardian-cookie-consent-lg.webp 1024w ,https://linuximpact.com/media/posts/73/responsive/guardian-cookie-consent-xl.webp 1360w ,https://linuximpact.com/media/posts/73/responsive/guardian-cookie-consent-2xl.webp 1600w\"></figure>\n<p>Clicking on the <strong>reject cookies</strong> option time and time again is irritating. No, we don't want cookies, and we don't want to have to tell you every time, either. The situation is exacerbated if you make a habit of browsing in private or incognito mode, as your device remembers your preference by, erm, setting a cookie. In private or incognito mode, these cookies are flushed when you exit.</p>\n<p>While browsers such as Brave have a setting to hide cookie consent pop-ups, there's a hidden setting on Firefox to automatically reject cookies before you even see the pop-up. Unfortunately, it's not perfect.</p>\n<h2 id=\"h-how-to-automatically-reject-cookies-on-firefox\">How to automatically reject cookies on Firefox.</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/73/reject-cookies-2.png\" alt=\"Firefox warning to proceed with caution\" width=\"975\" height=\"326\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/73/responsive/reject-cookies-2-xs.webp 300w ,https://linuximpact.com/media/posts/73/responsive/reject-cookies-2-sm.webp 480w ,https://linuximpact.com/media/posts/73/responsive/reject-cookies-2-md.webp 768w ,https://linuximpact.com/media/posts/73/responsive/reject-cookies-2-lg.webp 1024w ,https://linuximpact.com/media/posts/73/responsive/reject-cookies-2-xl.webp 1360w ,https://linuximpact.com/media/posts/73/responsive/reject-cookies-2-2xl.webp 1600w\"></figure>\n<p>While the setting to automatically reject cookies and hide pop-ups on Firefox is hidden, you can turn the feature on in seconds.</p>\n<ol>\n<li>\n<p>Open a new Firefox tab and in the URL bar, enter:<strong> about:config</strong></p>\n</li>\n<li>\n<p>You'll see a warning, advising you to \"Proceed with Caution\". Click <strong>Accept the risk and continue</strong>.</p>\n</li>\n<li>\n<p>Type <strong>cookiebanners.ui.desktop.enabled</strong></p>\n</li>\n<li>\n<p>Toggle the value to <strong>True</strong></p>\n</li>\n</ol>\n<p>That's it. Firefox is now set to reject all cookies and hide the cookie banners</p>\n<h2 id=\"h-automatic-cookie-rejection-on-firefox-doesnt-always-work\">Automatic cookie rejection on Firefox doesn't always work</h2>\n<p>While changing this setting on Firefox rejects all cookies if there is a <strong>Reject All</strong> button on the banner. It doesn't work on all sites, and won't work on those which have a <strong>Manage or rect Cookies</strong> button with further choices.</p>\n<p>On the BBC News and Guardian websites, for instance, the cookie banner is still there. Overall, we've say it has around a 60% success rate. your mileage may vary, but it's better than nothing, and development is ongoing. And as privacy laws tighten to force sites into always giving users a <strong>Reject All</strong> choice, its efficacy will improve.</p>\n<p> </p>",
"image": "https://linuximpact.com/media/posts/73/cookies.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Tips",
"Software",
"Internet",
"Browser"
],
"date_published": "2023-12-07T20:40:13+00:00",
"date_modified": "2023-12-07T20:40:13+00:00"
},
{
"id": "https://linuximpact.com/how-many-services-can-you-self-host-on-a-raspberry-pi/",
"url": "https://linuximpact.com/how-many-services-can-you-self-host-on-a-raspberry-pi/",
"title": "How many services can you self-host on a Raspberry Pi?",
"summary": "Self-hosting your own services is a joy. It gets you out from under the thumb of tech giants who don't have your best interests at heart, and away from the ever-vigilant eyes of surveillance capitalist megacorps that want to make money from your every online…",
"content_html": "<p data-pm-slice=\"1 1 []\">Self-hosting your own services is a joy. It gets you out from under the thumb of tech giants who don't have your best interests at heart, and away from the ever-vigilant eyes of surveillance capitalist megacorps that want to make money from your every online interaction, transaction, reaction, and subsequent retraction.</p>\n<p>But more than that, it gives you a kind of digital self reliance, and you have ready-to-go alternatives should legislation or corporate interests shut down your favourite 'free' online services.</p>\n<h2 id=\"h-why-self-host-on-a-raspberry-pi\">Why self-host on a Raspberry Pi?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72/lightbulb.png\" alt=\"Incandescent lightbulb against a black background\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72/responsive/lightbulb-xs.webp 300w ,https://linuximpact.com/media/posts/72/responsive/lightbulb-sm.webp 480w ,https://linuximpact.com/media/posts/72/responsive/lightbulb-md.webp 768w ,https://linuximpact.com/media/posts/72/responsive/lightbulb-lg.webp 1024w ,https://linuximpact.com/media/posts/72/responsive/lightbulb-xl.webp 1360w ,https://linuximpact.com/media/posts/72/responsive/lightbulb-2xl.webp 1600w\"></figure>\n<p>The <a href=\"https://linuximpact.com/tags/raspberry-pi/\">Raspberry Pi</a> is cheap enough to dabble without feeling like you've made a disastrous financial mistake if it ends up in the back of a cupboard, and there are a lot of Pis out there - meaning that self-hosted software is often built with the Raspberry Pi in mind (often at the back of the mind, but still), and if you run into problems, there's likely someone who has come across the same thing. It's easy to get answers to questions you never knew you had.</p>\n<p>Another reason is the Pi's very low power draw. Our principle Pi - an <a href=\"https://www.amazon.com/Raspberry-Pi-Computer-Suitable-Workstation/dp/B0899VXM8F/ref=sr_1_3?crid=16G7DHNEVDVBH&keywords=raspberry+pi+8gb&qid=1699266630&sprefix=raspberry+pi+8gb%252Caps%252C152&sr=8-3&_encoding=UTF8&tag=thecrowuk-20&linkCode=ur2&linkId=0f9dee46e8b8e6c27a2421c530833bac&camp=1789&creative=9325\">8GB Raspberry Pi model 4B</a> - pulls under 10 Watts. Remember when your mum used to yell at you for leaving the lights on in your home? The Pi pulls less than a single modern LED lightbulb. It takes one sixth to one tenth of the power of the kind of yellowish incandescent light bulb we grew up with.</p>\n<p>That's important. A server is on 24 hours per day, 365 days per year. While you can easily repurpose an old PC or laptop as a server, any savings you make by not buying a Pi are dwarfed by the electricity bills over the course of a year.</p>\n<p>Lastly, the Pi can handle pretty much anything you can throw at it on the level of a family unit or smallish organisation (the exception being generative AI, which it handles very slowly indeed).</p>\n<p>Writing this paragraph, we don't actually <em>know</em> what we have running on the Linux Impact Raspberry Pi. We decided to take a look, and share the results.</p>\n<h2 id=\"h-how-our-raspberry-pi-is-set-up\">How our Raspberry Pi is set up</h2>\n<p>Our Pi is connected to the router via Gigabit internet. To keep it from getting too hot, we have a cast aluminium passive cooling system. Our boot drive is a <a href=\"https://www.amazon.com/Western-Digital-500GB-SA510-Internal/dp/B09ZYPTXS4?&_encoding=UTF8&tag=thecrowuk-20&linkCode=ur2&linkId=a88ac34291524c0c72487963f1f9ade2&camp=1789&creative=9325\">500GB WD Blue SATA SSD</a> connected via USB, and we have a <a href=\"https://www.amazon.com/Blue-NAND-2TB-SSD-WDS200T2B0A/dp/B073SBRHH6?&_encoding=UTF8&tag=thecrowuk-20&linkCode=ur2&linkId=6551c2c41524272d9db3e33c3a90ee22&camp=1789&creative=9325\">2TB WD Blue SSD</a> for storage. In addition to the Pi's 8GB RAM, we have 8GB swap. Just in case.</p>\n<p>We haven't overclocked our Pi, because we value stability over speed. Besides, we haven't had the need - yet.</p>\n<p>Base software-wise, we're running a fairly standard LAMP stack based on Debian Bullseye in its guise of Raspberry Pi OS. We're using <a href=\"https://linuximpact.com/how-to-install-the-latest-version-of-docker-compose-on-linux-and-why-you-should/\">Docker and Docker Compose</a> to manage a portion of our services.</p>\n<p>Without further ado, let's dive into <strong>/etc/apache2/sites-available/</strong> and see what we have exposed to the web:</p>\n<h2 id=\"h-nextcloud\">Nextcloud</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//Nextcloud-Logo.jpg\" alt=\"White nextcloud logo on a blue background\" width=\"1200\" height=\"629\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/Nextcloud-Logo-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/Nextcloud-Logo-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/Nextcloud-Logo-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/Nextcloud-Logo-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/Nextcloud-Logo-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/Nextcloud-Logo-2xl.webp 1600w\"></figure>\n<p>Nextcloud is the first thing we installed when we started our self-hosted journey some years ago. NextCloud can replace almost every web service out there.</p>\n<p>Forked from OwnCloud, Nextcloud is a Dropbox / Google Drive replacement at its core and helps you synchronise your files and folders across all your devices. But its marketplace of apps, add-ons and extensions makes it so much more than that.</p>\n<p>There's a webmail client, an excellent markdown notes app, recipe manager, Fediverse server and client, spreed-based video conferencing and instant messaging, photo gallery, and a full-fat collaborative office suite courtesy of Collabora Online.</p>\n<p>There's more - a lot more - but we don't have space for it. You can check out the full range of apps at <a href=\"https://apps.nextcloud.com/\" rel=\"noopener noreferrer nofollow\">https://apps.nextcloud.com/</a></p>\n<p>Honestly, you could live your self-hosted life without ever using another FAANG company again.</p>\n<p>But while Nextcloud has offerings for pretty much everything, there are other projects dedicated to specific goals that are more polished and tighter focused. For instance...</p>\n<h2 id=\"h-jellyfin\"><a href=\"https://linuximpact.com/paranoid-and-perplexed-by-plex-privacy-pickle-just-enjoy-jellyfin/\">Jellyfin</a></h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//jellyfin-logo.png\" alt=\"Jellyfin logo on a black background\" width=\"1150\" height=\"467\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/jellyfin-logo-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/jellyfin-logo-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/jellyfin-logo-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/jellyfin-logo-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/jellyfin-logo-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/jellyfin-logo-2xl.webp 1600w\"></figure>\n<p>Jellyfin is a streaming media centre that runs comfortably on the Pi and can handle movies, shows, music, audiobooks, images, and actual books for the entire family. It has client apps available for most platforms, and you can even add live TV streams.</p>\n<p>Provided we're not asking the Pi to do hardware transcoding, it can stream to every device we own simultaneously.</p>\n<p>While Jellyfin is fantastic for most media types, we found it kept losing our position when streaming audiobooks in the car. Which is why we also have...</p>\n<h2 id=\"h-audiobookshelf\"><a href=\"https://linuximpact.com/self-host-your-own-audio-library-with-audiobookshelf/\">Audiobookshelf</a></h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//audiobookshelf.png\" alt=\"Audiobookshelf default view showing books in progress and yet to be read\" width=\"1919\" height=\"958\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/audiobookshelf-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/audiobookshelf-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/audiobookshelf-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/audiobookshelf-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/audiobookshelf-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/audiobookshelf-2xl.webp 1600w\"></figure>\n<p>Audiobookshelf is a virtual shelf for your audiobooks,and has dedicated client apps for Android and iOS (through TestFlight).</p>\n<p>Dump your library onto the Pi via SCP, and AudioBookshelf will attempt to match your files, catalogue them, and provide relevant details such as title author, synopsis, and so on. We've been using Audiobookshelf with around seven users since March 2022, and haven't run into any problems at all.</p>\n<h2 id=\"h-an-email-server\">Email server</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//mailbox.png\" alt=\"A classic red mailbox on a pink background\" width=\"2072\" height=\"1035\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/mailbox-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/mailbox-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/mailbox-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/mailbox-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/mailbox-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/mailbox-2xl.webp 1600w\"></figure>\n<p>Some people say you should never self-host an email server. We disagree, and managed to set up a Dovecot / Postfix system in an afternoon. It hasn't had any problems, and is pretty reliable. We may write about it sometime.</p>\n<h2 id=\"h-snappymail\">Snappymail</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//snappymail.png\" alt=\"An email inbox with a snazzy wood-effect background\" width=\"1916\" height=\"964\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/snappymail-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/snappymail-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/snappymail-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/snappymail-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/snappymail-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/snappymail-2xl.webp 1600w\"></figure>\n<p>While we have dedicated email clients for our very own email server, sometimes we just want to log on and check out the latest Black Friday spam through our browser. We use <a href=\"https://snappymail.eu/\">Snappymail</a> for this - it's a fork of Rainloop, and we've found it to be simple, fast, and good-looking.</p>\n<h2 id=\"h-snikket\"><a href=\"https://linuximpact.com/set-up-your-own-xmpp-server-on-a-raspberry-pi-in-under-five-minutes/\">Snikket</a></h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//phoneguy.png\" alt=\"A man with glasses looking at his phone in a garden. There is a leafy mountain in the background \" width=\"1800\" height=\"900\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/phoneguy-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/phoneguy-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/phoneguy-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/phoneguy-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/phoneguy-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/phoneguy-2xl.webp 1600w\"></figure>\n<p>We deployed Snikket last month, and got it going without any serious problems thanks to the docker deployment. Snikket is an XMPP server used to communicate between members of the extended Linux Impact family. As well as sending text, voice, and image files to one another, you can also use Snikket for video and audio calls. Administration and adding users is a breeze, and we can chat to users on other XMPP servers as well. We haven't yet, but we could.</p>\n<h2 id=\"h-freshrss\"></h2>\n<h2 id=\"h-freshrss\"><a href=\"https://linuximpact.com/freshrss-stay-safe-and-never-visit-another-website-again/\">FreshRSS</a></h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//freshrss.png\" alt=\"FreshRSS web interface there is a Linux impact story open, and a picture of a drummer\" width=\"1899\" height=\"871\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/freshrss-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/freshrss-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/freshrss-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/freshrss-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/freshrss-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/freshrss-2xl.webp 1600w\"></figure>\n<p>We use FreshRSS every day to read news from our favourite publications web without ever having to visit the sites themselves. </p>\n<p>FreshRSS is, as the name suggests, an RSS server. Unlike traditional RSS readers such as the excellent QuiteRSS, FreshRSS makes it easy to fetch the full text of an article instead of just the excerpt. It's all stored on the Raspberry Pi, and we can favourite the best articles for later.</p>\n<p>We use Fluent Reader Lite on Android to interact with our FreshRSS instance while we're waiting in the queue at Lidl. Nextcloud News offers similar functionality, but it isn't quite so granular in helping us get exactly what we want.</p>\n<p>FYI: Linux impact offers a full-text RSS feed with no tricks required. You should subscribe.</p>\n<h2 id=\"h-mealie\"><a href=\"https://linuximpact.com/mealie-probably-the-best-self-hosted-recipe-manager-in-the-world/\">Mealie</a></h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//mealie.png\" alt=\"Mealie web interface showing a recipe for tarte tatin\" width=\"1911\" height=\"941\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/mealie-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/mealie-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/mealie-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/mealie-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/mealie-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/mealie-2xl.webp 1600w\"></figure>\n<p>Cooking is a joy, and collecting recipes without reading through the author's life history appeals to our acquisative tendencies.</p>\n<p>Mealie helps you keep your culinary favourites in one place, and easy to sort, categorise and search. Add your own recipes, or have Mealie grab the steps, images, and ingredients from elsewhere on the internet.</p>\n<p>The Mealie web app is pretty good on both mobile and desktop, but we use the unofficial <a href=\"https://f-droid.org/en/packages/gq.kirmanak.mealient/\">Mealient Android client</a> when prowling the supermarket aisles for bargains.</p>\n<h2 id=\"h-pi-hole\">Pi-hole</h2>\n<p>Internet ads annoying at best, and a massive invasion of privacy. It's not so much that we object to seeing goods and services advertised on our various devices - it's that they try to track us around the internet. No-one needs to see our complete browser history, but ad networks would - if they could.</p>\n<p>In addition to the excellent UBlock Origin or Firefox, we have Pi-hole deployed on our Raspberry Pi. Pi-hole sits between the wider internet, and every machine on our home network.</p>\n<p>Any request to a domain associated with tracking is told to fetch assets from <strong>0.0.0.0</strong> - an IP address that doesn't exist. Pi-hole is easy to set up, and in days gone by we also used to use it to <a href=\"https://linuximpact.com/forget-net-nanny-pihole-will-keep-your-kids-late-night-activity-in-check/\">set tech timeouts for the kids</a>.</p>\n<h2 id=\"h-memos\">Memos</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//post-its.png\" alt=\"A wall of post-it notes in day-glo colours\" width=\"1800\" height=\"900\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/post-its-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/post-its-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/post-its-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/post-its-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/post-its-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/post-its-2xl.webp 1600w\"></figure>\n<p>Memos is kind of like a self-hosted Google Keep. It's great for writing a quick note to yourself, or for to-do lists. Memos supports Markdown, checkboxes, and tags. There's also a handy activity indicator, giving a clue as to how many memos we wrote over a given time period (154 memos in 167 days). We could use it to create shopping lists, but we use Mealie for that.</p>\n<p>Again, Memos has a solid mobile app for passing thoughts while we're waiting in traffic.</p>\n<h2 id=\"h-immich\"><a href=\"https://linuximpact.com/immich-is-the-killer-app-that-will-kick-start-the-self-hosting-revolution/\">Immich</a></h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//immich.png\" alt=\"Immich web interface showing images and on this day for various years\" width=\"1915\" height=\"953\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/immich-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/immich-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/immich-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/immich-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/immich-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/immich-2xl.webp 1600w\"></figure>\n<p>Immich is one of the heavyweights, and we're convinced that it's the killer app that can persuade normal people into self-hosting.</p>\n<p>Immich is essentially a Google Photos clone. Take a picture on your phone and it will magically upload to the Immich instance on your Pi. Our Immich instance supports multiple users, is fully searchable, does facial and object recognition, and is a pleasure to use. Imagine Google Photos, but without limitations, and just... better.</p>\n<p>We used to have <a href=\"https://linuximpact.com/deploy-photoprism-and-host-your-own-google-photos-alternative/\">PhotoPrism</a> as our go-to gallery software, but Immich is superior. While NextCloud does have sync and gallery capabilities, it doesn't even come close.</p>\n<h2 id=\"h-akkoma\">Akkoma</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//akkoma.png\" alt=\"Akkoma instance using the Pleroma front-end. Dark blue with the background set as the image of a beach\" width=\"1919\" height=\"911\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/akkoma-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/akkoma-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/akkoma-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/akkoma-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/akkoma-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/akkoma-2xl.webp 1600w\"></figure>\n<p>The Fediverse is a distributed social network. Anyone can run their own server and interact with users on other servers. Picture it kind of like Twitter but without a recommendation algorithm, better moderation, and with no overall control. While there are huge instances with tens of thousands of users, we have just one user - this writer. We went with Akkoma over Mastodon, Pleroma, or Misskey, because Akkoma's ease-of deployment, cool features, and because we liked the name.</p>\n<h2 id=\"h-pigallery2\"></h2>\n<h2 id=\"h-pigallery2\"><a href=\"https://github.com/bpatrik/pigallery2\">PiGallery2</a></h2>\n<p> </p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72/pigallery2_main_gallery-2.png\" alt=\"A selection of photographs and spicy memes\" width=\"1281\" height=\"611\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72/responsive/pigallery2_main_gallery-2-xs.webp 300w ,https://linuximpact.com/media/posts/72/responsive/pigallery2_main_gallery-2-sm.webp 480w ,https://linuximpact.com/media/posts/72/responsive/pigallery2_main_gallery-2-md.webp 768w ,https://linuximpact.com/media/posts/72/responsive/pigallery2_main_gallery-2-lg.webp 1024w ,https://linuximpact.com/media/posts/72/responsive/pigallery2_main_gallery-2-xl.webp 1360w ,https://linuximpact.com/media/posts/72/responsive/pigallery2_main_gallery-2-2xl.webp 1600w\"></figure>\n<p>A directory-first image gallery. It doesn't have as many bells and whistles as Immich or PhotoPrism, but we have some specialised use cases for PiGallery2. It's neat, and it's very fast.</p>\n<h2 id=\"h-matomo-analytics\"><a href=\"https://matomo.org/\">Matomo Analytics</a></h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/72//matomo.png\" alt=\"MAtomo interface showing a world map and statistics for articles\" width=\"1140\" height=\"560\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/72//responsive/matomo-xs.webp 300w ,https://linuximpact.com/media/posts/72//responsive/matomo-sm.webp 480w ,https://linuximpact.com/media/posts/72//responsive/matomo-md.webp 768w ,https://linuximpact.com/media/posts/72//responsive/matomo-lg.webp 1024w ,https://linuximpact.com/media/posts/72//responsive/matomo-xl.webp 1360w ,https://linuximpact.com/media/posts/72//responsive/matomo-2xl.webp 1600w\"></figure>\n<p>How many visitors did Linux Impact have last month? Was it 10 or 10,000? Actually, it was 10,235. Not amazing, but not too shabby considering the site only came online part-way through November.</p>\n<p>Without an Analytics package, we wouldn't know that. We wouldn't know which articles were doing well, or what people liked to read. We'd be shouting into the void, and frankly, we don't think our ego could take the hit.</p>\n<p>Google Analytics is the dominant analytics solution for most sites, but it tracks users round the web, and is generally invasive. We don't like it.</p>\n<p>In contrast, Matomo is privacy-friendly, and GDPR compliant - offering a huge raft of metrics useful to anyone with a website.</p>\n<h2 id=\"h-wordpress\">Wordpress</h2>\n<p>Having your own server means you can offer free hosting to friends and family. WordPress is simple to use and administer, meaning it's a perfect choice for the less tech-savvy. We're currently hosting two WordPress sites for the fam.</p>\n<h2 id=\"h-trilium-notes\"><a href=\"https://linuximpact.com/trilium-notes-is-the-self-hosted-evernote-alternative-youre-looking-for/\">Trilium Notes</a></h2>\n<p>Trilium Notes is, in our opinion, the best alternative to Evernote. Infinite notebooks! Infinite notes! Graphs! Mindmaps! Code!</p>\n<p>Seriously, it's a great piece of software, it's Free, and although we've only been using it for a few days, we can tell it's a keeper. </p>\n<h2 id=\"h-how-many-raspberry-pi-self-hosted-services\">How many Raspberry Pi self-hosted services?</h2>\n<p>We don't know. According to our quick enumeration, it's at least 16, plus various static sites we're not counting, and an old Ghost install floating around like a phantom. Is there an upper limit? Maybe.</p>\n<p>We're not stopping though - all the services we've deployed are regularly used by a family-sized unit, and we'll continue to add more services as more cool projects come to our attention. If you're serving more than a fistful of users, you may want to consider something beefier, such as a <a href=\"https://www.amazon.com/Vemico-Raspberry-Pi-Single-Board/dp/B0CNXHL8W9?&_encoding=UTF8&tag=thecrowuk-20&linkCode=ur2&linkId=def008658797e49faca034a8e08d9e7e&camp=1789&creative=9325\">Raspberry Pi 5</a> or a <a href=\"https://www.amazon.com/Computer-Celeron-J3455-Processor-2-5-inch/dp/B099KSJN8P?&_encoding=UTF8&tag=thecrowuk-20&linkCode=ur2&linkId=f7291297b218a74f1363b390afb2667c&camp=1789&creative=9325\">Mini PC</a>.</p>\n<p> </p>",
"image": "https://linuximpact.com/media/posts/72/htop.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Software",
"Self-hosted",
"Raspberry Pi",
"Internet",
"Hardware"
],
"date_published": "2023-12-05T11:31:25+00:00",
"date_modified": "2023-12-13T15:27:20+00:00"
},
{
"id": "https://linuximpact.com/trilium-notes-is-the-self-hosted-evernote-alternative-youre-looking-for/",
"url": "https://linuximpact.com/trilium-notes-is-the-self-hosted-evernote-alternative-youre-looking-for/",
"title": "Trilium Notes is the self-hosted Evernote alternative you're looking for",
"summary": "Everyone needs a good note-taking app or digital notebook, and for millions of users, Evernote has been the go-to solution since it was envisioned as a \"backup brain\" by Stepan Pachikov, in 2002, and released on an invitation basis in 2008. And It's easy to…",
"content_html": "<p data-pm-slice=\"1 1 []\">Everyone needs a good note-taking app or digital notebook, and for millions of users, Evernote has been the go-to solution since it was envisioned as a \"backup brain\" by Stepan Pachikov, in 2002, and released on an invitation basis in 2008.</p>\n<p>And It's easy to see why Evernote is so popular, thanks to its promise to \"give you everything you need to keep life organized—great note taking, project planning, and easy ways to find what you need, when you need it.\"</p>\n<p>Give isn't quite the right word.</p>\n<h2 id=\"h-freemium-saas-isnt-always-great-for-business-and-its-worse-for-users\">Freemium SaaS isn't always great for business - and it's worse for users</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/70/notebook-2.jpg\" alt=\"POV of a person wring in a notebook\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/70/responsive/notebook-2-xs.webp 300w ,https://linuximpact.com/media/posts/70/responsive/notebook-2-sm.webp 480w ,https://linuximpact.com/media/posts/70/responsive/notebook-2-md.webp 768w ,https://linuximpact.com/media/posts/70/responsive/notebook-2-lg.webp 1024w ,https://linuximpact.com/media/posts/70/responsive/notebook-2-xl.webp 1360w ,https://linuximpact.com/media/posts/70/responsive/notebook-2-2xl.webp 1600w\"></figure>\n<p>It's easy to grow your user-base when you give away free subscriptions with phone handsets, and customers get hooked with the inspirational and aspirational slogan that Evernote will help them, \"Remember everything. Accomplish anything\".</p>\n<p>But enshitification inevitably ensues as financial interests force users onto so-called premium plans. Limitations are imposed, and features deprecated.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/70/evernote-plans.png\" alt=\"Evernote plans ranging from free to 13.49 per month\" width=\"1693\" height=\"844\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/70/responsive/evernote-plans-xs.webp 300w ,https://linuximpact.com/media/posts/70/responsive/evernote-plans-sm.webp 480w ,https://linuximpact.com/media/posts/70/responsive/evernote-plans-md.webp 768w ,https://linuximpact.com/media/posts/70/responsive/evernote-plans-lg.webp 1024w ,https://linuximpact.com/media/posts/70/responsive/evernote-plans-xl.webp 1360w ,https://linuximpact.com/media/posts/70/responsive/evernote-plans-2xl.webp 1600w\"></figure>\n<p>Some of those users will pay a premium once their free trial expires, but most probably won't want to fork over more than $100 per year for the privilege - they're happy with the 60 MB monthly uploads, and other limitations. Or they just drift away.</p>\n<p>For a while, enough people found Evernote's premium features useful enough to to keep it just about afloat, and in the late 2010s, the company boasted a quarter billion users and a recurring revenue of $100 million - after mass layoffs in 2015 and 2018.</p>\n<p>Milan-based app developer, Bending Spoons, acquired Evernote in early 2023, and almost immediately fired a further 129 staff.</p>\n<p>Reducing headcount evidently wasn't enough to return the kind of profits the new owners were hoping for, and in an effort to claw more paying subscribers on board, Evernote is limiting the number of notebooks available for free users to a paltry <a href=\"https://evernote.com/blog/evernote-free-note-limits\">50 notes and one notebook</a>.</p>\n<p>Want to keep compartmentalised notes for your timetable, meetings, hobbies, pets, and other such essentials? Pay up, loser.</p>\n<p>We don't know about you, but we can sometimes write more than 50 notes in a single day. Backup brain? More like back of an envelope.</p>\n<p>It's not a good look, and effectively cripples the software unless, of course, you're willing to cough up the cash in monthly installments.</p>\n<p>It's not like you can just buy Evernote outright, either. It's a service, and you pay forever.</p>\n<p>Fortunately, there's a free and open-source Evernote alternative you can run either as a local app, or as a full-blown, cross-platform, synchronised notebook. You don't have to deal with recurring payments, artificial limitations, <a rel=\"noopener noreferrer nofollow\">Denial of service attacks on the Evernote servers</a>, or the feeling of dread that comes with the knowledge that Evernote will lose your data (<a href=\"https://www.cnet.com/culture/thousands-of-evernote-users-affected-by-data-loss/\" rel=\"noopener noreferrer nofollow\">again</a>).</p>\n<p>It's yours, it's running on your hardware, and it's a truly excellent alternative to Evernote.</p>\n<h2 id=\"h-trilium-is-the-note-taking-server-app-combo-you-need-right-now\">Trilium is the note-taking server app combo you need right now</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/70/trilium-interface.png\" alt=\"Trilium web interface with the text of this article and an H2 image\" width=\"1918\" height=\"961\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/70/responsive/trilium-interface-xs.webp 300w ,https://linuximpact.com/media/posts/70/responsive/trilium-interface-sm.webp 480w ,https://linuximpact.com/media/posts/70/responsive/trilium-interface-md.webp 768w ,https://linuximpact.com/media/posts/70/responsive/trilium-interface-lg.webp 1024w ,https://linuximpact.com/media/posts/70/responsive/trilium-interface-xl.webp 1360w ,https://linuximpact.com/media/posts/70/responsive/trilium-interface-2xl.webp 1600w\"></figure>\n<p>We don't know how Evernote burns through such an insane amount of money - when revenue in the hundreds of millions isn't enough to sustain a company, it has to go somewhere - and it's possible that server costs contribute to a large part of their expenses. The employees obviously weren't that essential.</p>\n<p>But for a single user set-up, running at home, your outlay is essentially zero. You can buy a domain name for pennies or a few dollars from <a href=\"https://namecheap.pxf.io/m5kVrO\">Namecheap</a>, and you can dump server software onto an <a href=\"https://linuximpact.com/turn-your-old-pc-or-laptop-into-a-server-and-own-your-own-piece-of-the-internet/\">old laptop</a> or a cheap, always-on SBC such as a <a href=\"https://www.amazon.com/Raspberry-Pi-Computer-Suitable-Workstation/dp/B0899VXM8F/ref=sr_1_3?crid=16G7DHNEVDVBH&keywords=raspberry+pi+8gb&qid=1699266630&sprefix=raspberry+pi+8gb%252Caps%252C152&sr=8-3&_encoding=UTF8&tag=thecrowuk-20&linkCode=ur2&linkId=0f9dee46e8b8e6c27a2421c530833bac&camp=1789&creative=9325\">Raspberry Pi</a>.</p>\n<p>So let's talk about <a href=\"https://github.com/zadam/trilium\">Trilium Notes</a>' features.</p>\n<p>It's described by the devs as being, \"a hierarchical note taking application with focus on building large personal knowledge bases.\" Not quite as catchy as, \"Remember everything. Accomplish anything\", but essentially that's what it offers.</p>\n<p>That's a pretty accurate description, and essentially means that you write down things that you want to remember, and Trilium gives you a way to keep it all organised. You can create notebooks, and notebooks within those notebooks, ad infinitum. And it's not just notes, either - you can store images, files and arbitrary data, and you can link notes to other notes, and one note can appear in multiple notebooks.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/70/trilium-notes-map.png\" alt=\"A concept map of Trilium notes\" width=\"1387\" height=\"659\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/70/responsive/trilium-notes-map-xs.webp 300w ,https://linuximpact.com/media/posts/70/responsive/trilium-notes-map-sm.webp 480w ,https://linuximpact.com/media/posts/70/responsive/trilium-notes-map-md.webp 768w ,https://linuximpact.com/media/posts/70/responsive/trilium-notes-map-lg.webp 1024w ,https://linuximpact.com/media/posts/70/responsive/trilium-notes-map-xl.webp 1360w ,https://linuximpact.com/media/posts/70/responsive/trilium-notes-map-2xl.webp 1600w\"></figure>\n<p>It sounds complicated, but it's as complicated or as simple as you want to make it. Keeping track of what you've jotted, photographed, or stored isn't complicated either - there's an excellent search function, as well as a sort-of map view that shows you what is related to what, and how. You can tag, you can filter, and you can find what you're looking for.</p>\n<p>Taking notes is easy, too. You can write in markdown, or you can use the excellent WYSIWG editor. Copy and paste, attach files, whatever. It's very easy to use.</p>\n<p>Your notes can have infinite children, and they can be anything: code samples, relationship maps, saved searches, or you can embed a webpage with webview.</p>\n<p>If you've created a document in Trilium, and decide you want to share it with the world, that's simple as well, and Trilium will generate a link to share your beautifully formatted document as a web page.</p>\n<p>That's not to say that Trilium is the perfect note-taking software - it isn't. The web interface is great, the desktop apps are fantastic, but we'd really appreciate some full-fat dedicated mobile apps for iOS and Android. We also think that Evernote's OCR is pretty spiffy, and Trilium would be improved with some similar functionality.</p>\n<p>We'd also quite like some support for multiple users on the same instance.</p>\n<p>These aren't deal-breakers though, and to our minds, Trilium Notes is still the best around if you don't want to be bled dry by subscriptions.</p>\n<p>We're using Trilium Notes to organise our life and our work. We have a dedicated notebook for Linux Impact with sub-notebooks for cool self-hosted projects, TUI stuff, GUI, distros, and so on - all rich, and filled with images, webpages, and random thoughts; We have notebooks for other sites and projects we work on; There are notebooks for upcoming and past holidays; We have timetables, guitar tabs, piano sheet music - all neatly organised and shareable. We'd use Trilium for recipe management, too - except we already have the excellent <a href=\"https://linuximpact.com/mealie-probably-the-best-self-hosted-recipe-manager-in-the-world/\">Mealie self-hosted recipe manager</a>.</p>\n<p>Unlike the 70th Governor of Massachusetts, we do not have <a href=\"https://en.wikipedia.org/wiki/Binders_full_of_women\" rel=\"noopener noreferrer nofollow\">binders full of women</a>.</p>\n<h2 id=\"h-how-to-get-trilium\">How to get Trilium</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/70/trilium-docker-compose.png\" alt=\"Docker Compose file for trilium\" width=\"1393\" height=\"523\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/70/responsive/trilium-docker-compose-xs.webp 300w ,https://linuximpact.com/media/posts/70/responsive/trilium-docker-compose-sm.webp 480w ,https://linuximpact.com/media/posts/70/responsive/trilium-docker-compose-md.webp 768w ,https://linuximpact.com/media/posts/70/responsive/trilium-docker-compose-lg.webp 1024w ,https://linuximpact.com/media/posts/70/responsive/trilium-docker-compose-xl.webp 1360w ,https://linuximpact.com/media/posts/70/responsive/trilium-docker-compose-2xl.webp 1600w\"></figure>\n<p>If you're planning to use Trilium offline on your local machine, you can grab binaries for Windows, mac, and Linux from the <a href=\"https://github.com/zadam/trilium/releases/tag/v0.62.3\" rel=\"noopener noreferrer nofollow\">Trilium releases page</a>. It's fine.</p>\n<p>But running a local only copy of Trilium kind of misses the point. You want to be able to take notes while on the bus, or in the cinema, or while having your moustache curled - and have everything sync automatically.</p>\n<p>To do that, you need a server, ideally running Linux.</p>\n<p>You'll also need to have Docker installed. With that out of the way, you can have Trilium ready to go with a few commands.</p>\n<p>The project Github page lists three different ways of deployiing Trilium: local machine only, available on the local network, or open to the internet.</p>\n<p>In our opinion, the best and simplest way to set up Trilium is to use the local machine docker command to put it onto your server:</p>\n<pre><code>sudo docker run -t -i -p 127.0.0.1:6391:8080 -v ~/trilium/trilium-data:/home/node/trilium-data zadam/trilium:latest</code></pre>\n<p>... and stick it behind a reverse proxy. YMMV.</p>\n<p>Once Trilum is running, you can <a href=\"https://linuximpact.com/instantly-generate-configs-from-running-containers-with-docker-autocompose/\">use docker-autocompose to generate a <strong>docker-compose.yml</strong> file</a> for easy management.</p>\n<p>You can then link your Trilium server to your local clients. Easy peasy.</p>\n<h2 id=\"h-trilium-has-a-bunch-of-super-useful-add-ons\">Trilium has a bunch of super-useful add-ons</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/70/lego.jpg\" alt=\"An assortment of multicoloured lego bricks\" width=\"2000\" height=\"1000\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/70/responsive/lego-xs.webp 300w ,https://linuximpact.com/media/posts/70/responsive/lego-sm.webp 480w ,https://linuximpact.com/media/posts/70/responsive/lego-md.webp 768w ,https://linuximpact.com/media/posts/70/responsive/lego-lg.webp 1024w ,https://linuximpact.com/media/posts/70/responsive/lego-xl.webp 1360w ,https://linuximpact.com/media/posts/70/responsive/lego-2xl.webp 1600w\"></figure>\n<p>Unlike with Evernote, you're not limited to what the company wants you to have. Evernote is an open-source project, and even if you don't want to take on the massive responsibility of forking it, you can create add-ons and extensions to make it even more useful than it already is.</p>\n<p>Many people have already done this, and you can take advantage of their hard work, to make your Trilium instance more suited to you.</p>\n<h3 id=\"h-some-of-our-favourites-include\">Some of our favourites include:</h3>\n<h3 id=\"h-trilium-kanban\"><a href=\"https://github.com/CyrilLeblanc/trilium-kanban\" rel=\"noopener noreferrer nofollow\">trilium-kanban</a></h3>\n<p>as the name suggests, this is a Kanban integration for Trilium Notes that makes your workflow ever more efficient.</p>\n<h3 id=\"h-trilium-scripts\"><a href=\"https://github.com/BeatLink/trilium-scripts\" rel=\"noopener noreferrer nofollow\">trilium-scripts</a></h3>\n<p>a collection of scripts to turn Trilium into a decent task manager and scheduler. <em>Agenda</em> sorts to-dos into six categories: Overdue, Today, This Week, This Month, This Year, and Future; <em>My Day</em> lets you quickly add or remove tasks to a specific \"My Day\" note; <em>Recurrence</em> is a script to update repeating to-dos.</p>\n<h3 id=\"h-split-view\"><a rel=\"noopener noreferrer nofollow\">Split-view</a></h3>\n<p>Allows you to hit <strong>Shift </strong>+ <strong>click</strong> to open a note in split view.</p>\n<h3 id=\"h-theme-switch\"><a rel=\"noopener noreferrer nofollow\">Theme Switch</a></h3>\n<p>Gives you a widget to easily change Trilium themes.</p>\n<p>You can find these and many more add-ons, themes, widgets, scripts, API extensions at <a rel=\"noopener noreferrer nofollow\">Awesome Trilium</a>.</p>\n<h2 id=\"h-there-are-self-hosted-alternatives-to-almost-all-proprietary-saas-apps\">There are self-hosted alternatives to almost all proprietary SaaS apps</h2>\n<p>Relying on companies and organisations to look after your data - whether it's notes, images, or communications - is a losing proposition. You're dependent on their largesse and generosity, and there's always the inevitability that the service will degrade over time, demand fees, or disappear altogether.</p>\n<p>Take control of your digital life by <a href=\"https://linuximpact.com/immich-is-the-killer-app-that-will-kick-start-the-self-hosting-revolution/\">self-hosting your own Photo gallery with Immich</a> or your own communications hub with <a href=\"https://linuximpact.com/set-up-your-own-xmpp-server-on-a-raspberry-pi-in-under-five-minutes/\">Snikket</a>. It's easy to do, and you can host almost everything on a cheap Raspberry Pi.</p>",
"image": "https://linuximpact.com/media/posts/70/nevernote.jpg",
"author": {
"name": "David Rutland"
},
"tags": [
"Tips",
"Software",
"Self-hosted",
"Internet",
"DIY"
],
"date_published": "2023-12-03T13:37:00+00:00",
"date_modified": "2023-12-03T20:17:57+00:00"
},
{
"id": "https://linuximpact.com/instantly-generate-configs-from-running-containers-with-docker-autocompose/",
"url": "https://linuximpact.com/instantly-generate-configs-from-running-containers-with-docker-autocompose/",
"title": "Instantly generate configs from running containers with Docker-Autocompose",
"summary": "For the self-hosting enthusiast, Docker is one of the greatest innovations of recent years. It allows developers to ship an app, and know that it will always run in a predictable environment. For users, deployment is relatively simple. You don't need to chase down dependencies,…",
"content_html": "<p data-pm-slice=\"1 1 []\">For the self-hosting enthusiast, Docker is one of the greatest innovations of recent years. It allows developers to ship an app, and know that it will always run in a predictable environment.</p>\n<p>For users, deployment is relatively simple. You don't need to chase down dependencies, and you can port your dockerized app from system to system. Often, rolling out a Docker app is as simple as entering a single line specifying the image, volumes, and ports to use.</p>\n<p>Docker Compose makes life even simpler, and you can use it to lay out your parameters in a single YAML file, and control your containers with an even shorter command.</p>\n<h2 id=\"h-some-projects-dont-come-with-docker-compose\">Some projects don't come with Docker Compose</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/69/sad-baby.jpg\" alt=\"A sad baby outside on a picnic blanket\" width=\"2400\" height=\"1200\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/69/responsive/sad-baby-xs.webp 300w ,https://linuximpact.com/media/posts/69/responsive/sad-baby-sm.webp 480w ,https://linuximpact.com/media/posts/69/responsive/sad-baby-md.webp 768w ,https://linuximpact.com/media/posts/69/responsive/sad-baby-lg.webp 1024w ,https://linuximpact.com/media/posts/69/responsive/sad-baby-xl.webp 1360w ,https://linuximpact.com/media/posts/69/responsive/sad-baby-2xl.webp 1600w\"></figure>\n<p>Docker Compose is our preferred way of administering the dozens of dockerised apps we use on a daily basis. It's even easier than Docker, and comes with the added bonus that you can manage multiple docker containers simultaneously. Forget typing in lengthy Docker commands - it's all right there in your <strong>docker-compose.yml</strong>.</p>\n<p>It's nice when open source projects come with ready made Docker Compose files, but even if they don't you can quickly create your own using docker-autocompose - a Python project that inspects the configurations of containers, and generates the necessary config - provided you already have your Docker container running, that is.</p>\n<h2 id=\"h-docker-autocompose-is-easy-to-install\">docker-autocompose is easy to install</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/69/cuppa.jpg\" alt=\"Blonde woman enjoying a cup of tea while installing docker-autocompose\" width=\"2400\" height=\"1200\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/69/responsive/cuppa-xs.webp 300w ,https://linuximpact.com/media/posts/69/responsive/cuppa-sm.webp 480w ,https://linuximpact.com/media/posts/69/responsive/cuppa-md.webp 768w ,https://linuximpact.com/media/posts/69/responsive/cuppa-lg.webp 1024w ,https://linuximpact.com/media/posts/69/responsive/cuppa-xl.webp 1360w ,https://linuximpact.com/media/posts/69/responsive/cuppa-2xl.webp 1600w\"></figure>\n<p>Before you start, you should make sure you have both <a href=\"https://linuximpact.com/how-to-install-the-latest-version-of-docker-compose-on-linux-and-why-you-should/\">Docker and Docker Compose</a> on your system.</p>\n<p>docker-autocompose is a Python app, so you should also have Python3 and Pip. If you're using Ubuntu or Debian, you can install these with:</p>\n<pre data-pm-slice=\"1 1 []\"><code>sudo apt install python3-pip</code></pre>\n<p>With that out of the way, clone the docker-autocompose Git repository, and move into it:</p>\n<pre><code>git clone https://github.com/Red5d/docker-autocompose.git && cd docker-autocompose.git</code></pre>\n<p>Install docker-autocompose with:</p>\n<pre><code>sudo python3 setup.py install</code></pre>\n<h2 id=\"h-how-to-use-docker-autocompose\">How to use docker-autocompose</h2>\n<p>There's no better way to explain something than with an example, so we're going deploy a dockerised app on our Raspberry Pi server and use docker-autocompose to create a docker-compose.yml file.</p>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/69/trilium.jpg\" alt=\"trilum note taking app in the browser\" width=\"1919\" height=\"969\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/69/responsive/trilium-xs.webp 300w ,https://linuximpact.com/media/posts/69/responsive/trilium-sm.webp 480w ,https://linuximpact.com/media/posts/69/responsive/trilium-md.webp 768w ,https://linuximpact.com/media/posts/69/responsive/trilium-lg.webp 1024w ,https://linuximpact.com/media/posts/69/responsive/trilium-xl.webp 1360w ,https://linuximpact.com/media/posts/69/responsive/trilium-2xl.webp 1600w\"></figure>\n<p>Trilium Notes is an open-source note-taking app you can self-host, and is compatible with clients for <a href=\"https://github.com/zadam/trilium-sender\">Andoid</a>,<a href=\"https://github.com/zadam/trilium-sender\"></a> and various desktop operating systems, as well as having an excellent web app that looks good and works well on both mobile and full-fat browsers. It's a fantastic and free alternative to Evernote or OneNote that you can use <span style=\"color: var(--text-primary-color); font-family: var(--editor-font-family); font-size: inherit; font-weight: var(--font-weight-normal);\">without any restrictions or fees. Trilium is also massively extensible with themes, widgets, scripts, and API extensions available.</span></p>\n<p>While the Trilium developers have created a dockerised version of the notes server for easy deployment, they haven't created a Docker Compose file for easy management. Drat - but we can fix that.</p>\n<p>First deploy the Trilium Docker container in something approximating the recommended way:</p>\n<pre><code>mkdir trilium && cd trilium</code></pre>\n<pre><code>sudo docker run -t -i -p 127.0.0.1:6391:8080 -v ~/trilium/trilium-data:/home/node/trilium-data zadam/trilium:latest</code></pre>\n<p>Note that we've specified port 6391 as our external port - that's simply because we already have something running on port 8080. You can also change the location where you want Trilium to keep its data. We've created a Trilium directory and specified the data directory should go in there.</p>\n<p>Later, it's where our Trilium <strong>docker-compose.yml</strong> file will reside. Hit <strong>enter</strong> and Docker will download the Trilium images and set up the necessary containers and data directory.</p>\n<p>Visit localhost:6391 to check Trilium is running, then in another terminal tab or window, enter:</p>\n<pre data-pm-slice=\"1 1 []\"><code>docker ps</code></pre>\n<p>This command will give you information on all of the docker containers running on your system. Take a note of the <strong>Container ID</strong>, then enter:</p>\n<pre><code>autocompose.py container-id</code></pre>\n<figure class=\"post__image\"><img style=\"color: var(--text-primary-color); font-family: var(--editor-font-family); font-size: inherit; font-weight: var(--font-weight-normal); outline: 3px solid rgba(var(--color-primary-rgb), 0.55) !important;\" src=\"https://linuximpact.com/media/posts/69/create-docker-compose-for-trilium.png\" alt=\"Output of the commands docker ps and autocompose.py 698bc65f6b12\" width=\"1920\" height=\"1051\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/69/responsive/create-docker-compose-for-trilium-xs.webp 300w ,https://linuximpact.com/media/posts/69/responsive/create-docker-compose-for-trilium-sm.webp 480w ,https://linuximpact.com/media/posts/69/responsive/create-docker-compose-for-trilium-md.webp 768w ,https://linuximpact.com/media/posts/69/responsive/create-docker-compose-for-trilium-lg.webp 1024w ,https://linuximpact.com/media/posts/69/responsive/create-docker-compose-for-trilium-xl.webp 1360w ,https://linuximpact.com/media/posts/69/responsive/create-docker-compose-for-trilium-2xl.webp 1600w\"></figure>\n<p>This command will return a complete Docke<span style=\"color: var(--text-primary-color); font-family: var(--editor-font-family); font-size: inherit; font-weight: var(--font-weight-normal);\">r Compose config as stdout.</span></p>\n<p>Copy this text to your clipboard, then use nano <span style=\"color: var(--text-primary-color); font-family: var(--editor-font-family); font-size: inherit; font-weight: var(--font-weight-normal);\">to create a new file:</span></p>\n<pre><code>nano docker-compose.yml</code></pre>\n<p>Paste the contents of your clipboard then save and close nano with <strong>Ctrl + O</strong> then <strong>Ctrl + X</strong>.</p>\n<p data-pm-slice=\"1 1 []\">In our case, the resulting Docker Compose file for Trilium is:</p>\n<pre><code>services:\n nervous_joliot:\n command:\n - \"./start-docker.sh\"\n container_name: \"nervous_joliot\"\n entrypoint:\n - \"docker-entrypoint.sh\"\n environment:\n - \"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\n - \"NODE_VERSION=18.18.2\"\n - \"YARN_VERSION=1.22.19\"\n hostname: \"698bc65f6b12\"\n image: \"zadam/trilium:latest\"\n ipc: \"private\"\n logging:\n driver: \"json-file\"\n options: {}\n mac_address: \"02:42:ac:11:00:02\"\n network_mode: \"bridge\"\n ports:\n - \"127.0.0.1:6391:8080/tcp\"\n stdin_open: true\n tty: true\n volumes:\n - \"/home/pi/trilium/trilium-data:/home/node/trilium-data\"\n working_dir: \"/usr/src/app\"\nversion: \"3.6\"\n </code></pre>\n<p>You can now destroy your old and uncool docker container, and bring up your fancy new one in detached mode with a simple:</p>\n<pre><code>docker-compose up -d </code></pre>\n<p>Remember to properly configure a reverse proxy if you plan on exposing Trilium to the web.</p>\n<h2 id=\"h-docker-compose-makes-container-orchestration-simple\">Docker Compose makes container orchestration simple</h2>\n<p>Now you can create Docker Compose files from any running Docker container, and add to your easily managed arsenal of dockerised and self-hosted apps. Some of the ones we can't live without include, <a href=\"https://linuximpact.com/immich-is-the-killer-app-that-will-kick-start-the-self-hosting-revolution/\">Immich</a>, <a href=\"https://linuximpact.com/self-host-your-own-audio-library-with-audiobookshelf/\">Audiobookshelf</a>, <a href=\"https://linuximpact.com/paranoid-and-perplexed-by-plex-privacy-pickle-just-enjoy-jellyfin/\">Jellyfin</a>, and <a href=\"https://linuximpact.com/set-up-your-own-xmpp-server-on-a-raspberry-pi-in-under-five-minutes/\">Snikket</a>.</p>",
"image": "https://linuximpact.com/media/posts/69/clowns.jpeg",
"author": {
"name": "David Rutland"
},
"tags": [
"Tips",
"Terminal",
"Software",
"Self-hosted",
"Raspberry Pi",
"Linux",
"CLI"
],
"date_published": "2023-12-01T14:40:00+00:00",
"date_modified": "2023-12-01T21:48:25+00:00"
},
{
"id": "https://linuximpact.com/mystic-mogs-december-divinations/",
"url": "https://linuximpact.com/mystic-mogs-december-divinations/",
"title": "Mystic Mog's December Divinations",
"summary": "Ah, December. The most wonderful time of the year... unless you're one of those people who celebrates Christmas or Hanukkah. Even if you don't celebrate anything, there are still plenty of reasons to feel festive this month. For example, the solstice happens on December 21st,…",
"content_html": "<p data-pm-slice=\"1 1 []\">Ah, December. The most wonderful time of the year... unless you're one of those people who celebrates Christmas or Hanukkah. Even if you don't celebrate anything, there are still plenty of reasons to feel festive this month. For example, the solstice happens on December 21st, which means we get an extra second to enjoy our favorite Netflix shows before bedtime. Plus, there's always New Year's Eve, where you can either stay up until midnight and ring in the new year with champagne and confetti, or go to sleep at midnight like a normal person. Either way, it's a win-win.</p>\n<p>Here's your December horoscope cast by me, Mystic Mog, an AI generated psychic cat, powered by <strong>TheBloke_Luna-AI-Llama2-Uncensored-GPTQ model</strong>, so you should ignore the <em>not by AI</em> tag above this post. I specialise in reading the future using methods such as divining the stars, reading tea leaves, and casting bones.</p>\n<h2 class=\"username\">Here's what the stars have planned for you in December 2023</h2>\n<p>Welcome to the final stretch of 2023! As we approach the winter solstice and the end of the year, many of us are feeling both excited and anxious about what lies ahead. This month's horoscope is here to help you navigate these emotions and set intentions for the future. Whether you're looking forward to starting a new chapter or dreading saying goodbye to old ones, know that you're not alone in this journey. Let's make the most of the remaining days of 2023 together.</p>\n<p class=\"msg msg--info\"><strong>Aries (March 21-April 19)</strong>: Hey Aries, you're like a wildfire burning bright this December. You've got passion and intensity on your side, so go out there and make some serious moves. Just be careful not to burn yourself or anyone else in the process.</p>\n<p class=\"msg msg--highlight \"><strong>Taurus (April 20-May 20)</strong>: Hey there, Taurus. You're looking good this month. The stars are aligned just right for you to have lots of sexy times with your partner(s). In fact, it's so hot that even the fire department wants to get in on the action. So go ahead and enjoy yourself - no one will judge you here. Just remember to use protection and don't forget to brush your teeth afterwards.</p>\n<p class=\"msg msg--success\"><strong>Gemini (May 21-June 20)</strong>:The unexpected twists and turns this month might leave you feeling a bit dizzy, but don't worry - it's just life imitating art. Or maybe it's the other way around.</p>\n<p class=\"msg msg--info\"><strong>Cancer (June 21-July 22)</strong>: Even though you're used to being the rock in everyone else's world, this month you'll need to rely on others to help keep you steady. But hey, that's what friends are for, right?</p>\n<p class=\"msg--highlight msg \"><strong>Leo (July 23-August 22)</strong>: It's time to strut your stuff and show off your best qualities. But let's face it - you already knew that. What you might not realize is that everyone else is secretly jealous of how amazing you look right now. So enjoy the attention while it lasts, because soon enough they'll be coming after you again</p>\n<p class=\"msg msg--success\"><strong>Virgo (August 23-September 22)</strong>: Hey Virgo, you're like a fine wine - getting better with age. This month, expect some unexpected opportunities to come your way, but be sure not to get too excited or you might spill that wine all over yourself.</p>\n<p class=\"msg msg--info\"><strong>Libra (September 23-October 22)</strong>: Oh Libra, you're so vain. You think this zodiac sign is about you? Well guess what, it's not. This month, prepare for some serious competition from other signs who are also vying for your attention. But hey, at least you'll have something to talk about at parties.</p>\n<p class=\"msg msg--highlight \"><strong>Scorpio (October 23-November 21)</strong>: Scorpio, you're like a cockroach - nobody really likes you, but everyone fears you. This month, expect some intense emotions to arise as you navigate through life's challenges. Just remember, no matter how tough things get, you always have your trusty tail to hold on to.</p>\n<p class=\"msg msg--success\"><strong>Sagittarius (November 22-December 21)</strong>: Sagittarius, you're like a telemarketer - you call it as you see it, even if people don't want to hear it. This month, expect some difficult conversations as you try to impart wisdom onto those around you. But hey, at least you're making an effort to improve their lives, right?</p>\n<p class=\"msg msg--info\"><strong>Capricorn (December 22-January 19)</strong>: Congratulations Capricorn, you did it! You made it through another year of being fabulous and amazing. This month, celebrate your successes and enjoy the moment because soon enough, you'll be looking back on this time as just another chapter in your incredible story.</p>\n<p class=\"msg msg--highlight \"><strong>Aquarius (January 20 - February 18)</strong>: Aquarius, you're like a broken vase - you may look beautiful on the outside, but inside you're cracked and fragile. This month, expect some unexpected setbacks as you try to maintain control over your life. Are you strong enough to keep going despite everything?</p>\n<p class=\"msg msg--success\"><strong>Pisces (February 19 - March 20)</strong>: Dear Pisces, this month you will be visited by three wise men who will bring you gifts of gold, frankincense, and myrrh. However, they won't be able to find you because you'll be hiding under a rock crying about how much you hate yourself. Don't worry though, it's just another opportunity for you to practice self-love and acceptance.</p>\n<p class=\"dropcap\">Overall, December is a great month for introspection and reflection as we prepare for the end of the year and start thinking about what we want to accomplish in the next one. There may be some challenges along the way (hello, Capricorn season), but ultimately, it's a time of growth and transformation. So embrace the change and enjoy the ride!</p>\n<p> </p>",
"image": "https://linuximpact.com/media/posts/68/mystic-mog-december-horoscope-linux-impact.jpeg",
"author": {
"name": "Mystic Mog"
},
"tags": [
"Horoscope",
"Astrology"
],
"date_published": "2023-12-01T00:01:00+00:00",
"date_modified": "2023-12-01T00:01:00+00:00"
},
{
"id": "https://linuximpact.com/pyphoon-gives-you-an-ascii-moon-in-your-terminal/",
"url": "https://linuximpact.com/pyphoon-gives-you-an-ascii-moon-in-your-terminal/",
"title": "Pyphoon gives you an accurate ASCII moon phase in your terminal",
"summary": "Moon phases have been pivotal in the development of human culture, history, science, and art - providing a reliable way of timing the the seasons, as well as providing inspiration for folklore and myth in every culture on earth. With Pyphoon, you can easily track,…",
"content_html": "<p data-pm-slice=\"1 1 []\">Moon phases have been pivotal in the development of human culture, history, science, and art - providing a reliable way of timing the the seasons, as well as providing inspiration for folklore and myth in every culture on earth.</p>\n<p>With Pyphoon, you can easily track, predict, and visualise phases of the moon via delightful ASCII art, without ever leaving your Linux terminal.</p>\n<h2 id=\"h-whats-so-great-about-the-moon\">What's so great about the moon?</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/67/moony.png\" alt=\"eight images of the moon in different phases against a black background\" width=\"2000\" height=\"1000\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/67/responsive/moony-xs.webp 300w ,https://linuximpact.com/media/posts/67/responsive/moony-sm.webp 480w ,https://linuximpact.com/media/posts/67/responsive/moony-md.webp 768w ,https://linuximpact.com/media/posts/67/responsive/moony-lg.webp 1024w ,https://linuximpact.com/media/posts/67/responsive/moony-xl.webp 1360w ,https://linuximpact.com/media/posts/67/responsive/moony-2xl.webp 1600w\"></figure>\n<p>Everything on the planet is affected by the moon. From tidal stresses deep in the earth's crust, to the waves that overtop the sea wall during a storm.</p>\n<p>Our early ancestors hunted by the light of the moon, and later, with the development of agriculture, timed the turning of the seasons, and the planting of crops.</p>\n<p>Even today, the lunar calendar is used by several major religions and cultures to schedule festivals, celebrations, and other significant events.</p>\n<p>Countless column inches are given over to horoscopes every day, so its no surprise that people of a mystical mindset - including the Linux Impact <a href=\"https://linuximpact.com/tags/horoscope/\">AI psychic cat</a> - are interested in its current phase.</p>\n<p>And you can't time your next werewolf transformation for minimum embarrassment or maximum mayhem without knowing when the next full moon is.</p>\n<h2 id=\"h-pyphoon-gives-you-an-ascii-moon-in-your-terminal\">Pyphoon gives you an ASCII moon in your terminal</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/67/cloudymoon.png\" alt=\"The moon behind clouds as seen through trees\" width=\"1680\" height=\"840\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/67/responsive/cloudymoon-xs.webp 300w ,https://linuximpact.com/media/posts/67/responsive/cloudymoon-sm.webp 480w ,https://linuximpact.com/media/posts/67/responsive/cloudymoon-md.webp 768w ,https://linuximpact.com/media/posts/67/responsive/cloudymoon-lg.webp 1024w ,https://linuximpact.com/media/posts/67/responsive/cloudymoon-xl.webp 1360w ,https://linuximpact.com/media/posts/67/responsive/cloudymoon-2xl.webp 1600w\"></figure>\n<p>What's the point? you may ask. After all, it's trivial to draw back the curtains or step outside to check the moon's current phase.</p>\n<p>But sometimes the moon isn't visible. You won't be able to see the moon if it's at its zenith during your lunch break, nor if it's on the other side of the planet.</p>\n<p>Sometimes it's cloudy, and while you may be able to discern its glow through the clouds, you can't tell its phase.</p>\n<p>Sure you could query your favourite search engine, but that would involve leaving your beloved Linux terminal.</p>\n<p>Pyphoon is a Python app to show you the phase of the moon as an ASCII art representation, and is the latest incarnation of a 1979 programme written in Pascal, and later C.</p>\n<p>Did you know that the orientation of the moon is reversed depending on which hemisphere you're in? We didn't, but it makes sense, and Pymoon will change your terminal moon's appearance accordingly.</p>\n<p>Pymoon will also show the moon phase for any date you care to give it, so if you need a visual representation of the moon phase for your next date night or anniversary, Pyphoon is exactly the tool you need.</p>\n<h2 id=\"h-install-pyphoon-on-linux-to-see-the-moon-in-your-terminal\">Install Pyphoon on Linux to see the moon in your terminal</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/67/install-pyphoon.png\" alt=\"installing pyphhon with pip\" width=\"1919\" height=\"697\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/67/responsive/install-pyphoon-xs.webp 300w ,https://linuximpact.com/media/posts/67/responsive/install-pyphoon-sm.webp 480w ,https://linuximpact.com/media/posts/67/responsive/install-pyphoon-md.webp 768w ,https://linuximpact.com/media/posts/67/responsive/install-pyphoon-lg.webp 1024w ,https://linuximpact.com/media/posts/67/responsive/install-pyphoon-xl.webp 1360w ,https://linuximpact.com/media/posts/67/responsive/install-pyphoon-2xl.webp 1600w\"></figure>\n<p>If your distro comes with support for snap packages (and you haven't disabled it), the easiest way to install Pyphoon is to pop open a terminal and enter:</p>\n<pre data-pm-slice=\"1 1 []\"><code>sudo snap install pyphoon --edge</code></pre>\n<p>Otherwise, make sure you have git, python, and pip installed, then enter:</p>\n<pre><code>git clone https://github.com/chubin/pyphoon && cd pyphoon\npip install -r requirements.txt\npython setup.py install</code></pre>\n<p>That's it. You can start Pyphoon by entering:</p>\n<pre><code>pyphoon</code></pre>\n<p>...in any terminal window.</p>\n<h2 id=\"h-additional-options-for-pyphoon-on-linux\">Additional options for Pyphoon on Linux</h2>\n<figure class=\"post__image\"><img src=\"https://linuximpact.com/media/posts/67/threemoons.png\" alt=\"three ascii images of the moon on different dates in cool retro term\" width=\"1920\" height=\"788\" sizes=\"(max-width: 48em) 100vw, 768px\" srcset=\"https://linuximpact.com/media/posts/67/responsive/threemoons-xs.webp 300w ,https://linuximpact.com/media/posts/67/responsive/threemoons-sm.webp 480w ,https://linuximpact.com/media/posts/67/responsive/threemoons-md.webp 768w ,https://linuximpact.com/media/posts/67/responsive/threemoons-lg.webp 1024w ,https://linuximpact.com/media/posts/67/responsive/threemoons-xl.webp 1360w ,https://linuximpact.com/media/posts/67/responsive/threemoons-2xl.webp 1600w\"></figure>\n<p>The previous command gets you the current phase of the moon in the northern hemisphere, along with associated information including the time since the last full moon and last quarter.</p>\n<p>That may not be exactly what you need.</p>\n<p>To view the moon phase on a current date - either in the future or the past, use the desired date as an argument. For instance, to find the moon phase on the very first Christmas day, enter:</p>\n<pre><code>pyphoon 01-12-25</code></pre>\n<p>Unfortunately Pyphoon doesn't accept dates pre-common era. So if you were planning on use it to look at the moon as dinosaurs, Moses, Hammurabi, or Qin Shi Huang would have seen it, you're out of luck.</p>\n<p>Supposedly the, -l or --language switch followed by your preferred language switches the language, but we were unable to make this work.</p>\n<p>Adding <strong>-x</strong> will show you the moon phase for your given date without additional information, while the -s switch allows you to specify whether you're in the northern or the southern hemisphere (it's north by default).</p>\n<p>If you wanted to see the moon as it appeared when James cook first set foot on the Australian landmass at <a href=\"https://en.wikipedia.org/wiki/Silver_Beach_(New_South_Wales)\">Silver Beach</a>, you could enter:</p>\n<pre><code>pyphoon 1770-04-29 -x -s south</code></pre>\n<p>Neato.</p>\n<p>For some extra-awesome, try using cool-retro-term to view the moon phase as it was on July 20th, 1969, and pretend you're behind a desk in mission control.</p>\n<h2 id=\"h-pyphoon-isnt-the-only-cool-terminal-tool-out-there\">Pyphoon isn't the only cool terminal tool out there</h2>\n<p>Contrary to popular opinion, the Linux terminal is a tremendously fun place to hang out, and you can live a fulfilled and happy life without ever leaving the command line.</p>\n<p>Some of our favourite toys include <a href=\"https://linuximpact.com/radio-active-is-an-instantly-usable-internet-radio-tui/\">Radio-active</a> internet radio streamer, and <a href=\"https://linuximpact.com/play-the-first-ever-text-adventure-game-in-your-linux-terminal/\">Colossal Cave adventure</a> - the first ever text adventure game.</p>\n<p>If you're ever curious about your most used shell commands, you can use <a href=\"https://linuximpact.com/discover-your-most-used-linux-commands-with-muc/\">MUC</a> to find out!</p>",
"image": "https://linuximpact.com/media/posts/67/pyphhon1.png",
"author": {
"name": "David Rutland"
},
"tags": [
"Terminal",
"Software",
"CLI"
],
"date_published": "2023-11-29T21:25:35+00:00",
"date_modified": "2023-11-30T10:41:06+00:00"
}
]
}