Linux Format - June 2025
Linux Format - June 2025
Les Pounder
My feature is specific for Ubuntu on
ʋǠơࢳèŔɽɢŹơɭɭˊáǫࡳ¡ŔȇơʋǠơeáz¶ŔȥƎ
camera easier to use. With the power of
ʋǠơࢳèŔɽɢŹơɭɭˊáǫࠄŔȥƎá-zơ࢛ŹŔɽơƎɽʋȶɭŔnjơ
Back
ˁơǠŔʽơʋǫȥˊɭȟ࢛ɢȶˁơɭơƎá-ɽŔȥƎčŹʠȥʋʠ
ƃȶʠȍƎŹơʋǠơǫƎơŔȍ¶òljȶɭȟŔȇơɭɢɭȶǿơƃʋɽࡳ
Mayank Sharma
issues!
zࢬƎȍǫȇơʋȶɽơơɽȶȟơljȶɭȟȶljơȥŔŹȍơƎ࢛Źˊ࢛ Digital and print:
see page 62
default automated backup. A combination
of TimeShift, %ʋɭljɽɽȥŔɢɽǠȶʋɽŔȥƎRsync to
take periodic snapshots of system and user
ljǫȍơɽࡳȥƎŔȶȥơ࢛ƃȍǫƃȇȶȥ࢛ƎơȟŔȥƎ%Ŕƃȇʠɢ
Now switch that can save and then restore the desktop.
UBUNTU
REVIEWS
BLASTS OFF
The new 25.04 version of
Ubuntu is here, and it’s
geared towards dual
Ryzen 9 9950X3D 19
Processor connoisseur Paul Alcorn simply
boot setups. Nick Peers
loves this new 16-core monster that’s been explains how to run it
unleashed by AMD. alongside Windows.
See page 32!
Debian 12.10 20
Nate Drake explores the latest stable point
release for Bookworm. Does the OS still
live up to its reputation for stability?
CREDIT: Magictorch
Garuda Linux 250308 21
Nate Drake dives into this Arch-based
distro, named after a divine bird. Is it a
soaring eagle or just a lame duck?
Ubuntu 25.04 22
Huffing and puffing, Nate Drake takes a
ROUNDUP IN DEPTH
look at the interim 25.04 release and
wonders how things could get much better.
CREDIT: Magictorch
Pi USER TUTORIALS
Twister OS 3.0.2 44 Frost-free fruit with a Pi Pico 46 HARDWARE: What made Linux great 68
Les Pounder hasn’t seen Twister, or the Les Pounder grows strawberries, but now After the ’80s 8-bit boom, enthusiasts
sequel, Twisters, but he has played Half- he has planted a Raspberry Pi Pico, hoping moved to more capable 16-bit systems, able
Life, live on air using a Pi and Twister OS. for a fresh crop of raspberries. to run Linux. Mike Bedford investigates.
CODING ACADEMY
ARTIFICIAL INTELLIGENCE
,-"/1&,+0/"%2/1&+$
open source projects
AI crawlers are overwhelming open source platforms, escalating
costs, and forcing drastic measures like country-wide blocks.
pen source platforms are under
O
-)",# /#1&+$20"/$"+101/&+$0
0&"$"#/,*$$/"00&3" 4" 1,/"0"*)")"$&1&*1"4"/,40"/0o
/4)"/0n4%& %&+0,*" 0"0/" "3"/1%")"00n1%",-"+0,2/ "
,3"/4%")*&+$&+#/01/2 12/"n!&0/2-1&+$0"/3& "0 ,**2+&16%0"$2+#&$%1&+$ (o
and escalating costs. )0*!"3"),-"/& ,)ƪ
,*",10!"0&$+"!1,0 /-"1/&+&+$!1 "+"/+!&+,1"!1%1%"#&/0104
#,/ *,!")0&$+,/"&+01/2 1&,+0&+4"0&1" "3&!"+ ",#1%&04%"+-& 12/"
robot.txt#&)"0+,11,0 /-"0&1"!1o%",3"/))
robot.txt of an anime girl appeared on a
"##" 1 +"0&*&)/1,!"+&),#0"/3& " +,*" &1&+01+ "o%"&*$"
attacks. /"-/"0"+1"!1%"!"#2)1),!&+$-$"
/"4"2)1n#,2+!"/+!,#,-"+ for +2&0o%&01,,)&0-/,,#v,#v
0,2/ "!"3"),-*"+1-)1#,/*,2/ " 21n 4,/( %))"+$"/!"0&$+"!1,), (
/" "+1)6011"!1%1%"}0 2//"+1)60-"+!&+$ 0 /-"/0o +&1&)/"02)10%3"""+
:8v988,#%&01&*"*&1&$1&+$%6-"/v -/,*&0&+$o +,*"060!*&+/1
$$/"00&3" )/$")+$2$"*,!") &,1/,40(&-,01"!,+01,!,+1%1
/4)"/010 )"o 4&1%&+:o=%,2/0&**"!&1")6#1"/&+01))&+$ Open-source platforms like Read the
"3&+ "+7&n*"*"/,#1%" "!,/$2/" +2&0n&1), ("!@9n;>> )&"+10n4%&)")),4&+$ Docs noted multiple incidents where
-/,'" 1}0060!*&+1"*n%0)0,011"!1%1 :n>A8o +,1%"/4,/!0n/,2+!A?,#1/##& 1, excessive traffic generated by posts
#1"//"-"1"!)61/6&+$1,), (,102+"10n 1%"-)1#,/*4021,*1"!o caused huge bandwidth costs.
%"%!1,/"0,/11,++&+$))1/##& 4&1%o/ 0"##" 1&3"0+2&0&0n&1}0 20"!&002"0
/7&)!,*&+o #,/)"$&1&*1"20"/0o ,/&+01+ "n&#
"++&0 %2"/1n4%,&0)"!*&+1&+"/,# )&+(&00%/"!&+ %1/,,*,/*&)&+$
1%",-"+0,2/ "&0-,/0, &)+"14,/(n%0 )&01n&1}0)&(")61%1*2)1&-)"-",-)"4&))
)0,-2)& )6)*01"!&$1" % ,*-+&"0 click it simultaneously. +2&0&02+)"
#1"/!&0 ,3"/&+$1%1,3"/?8,#1/##& 1,%&0 1,!&01&+$2&0%"14""+1%&0+!,1
CREDIT:"!1%", 0o"0,
SOFTWARE OPINION
T
%")"+!"/ ,2+!1&,+%0++,2+ "!
1%"/")"0",#3"/0&,+<o<,#&10#/""
+!,-"+0,2/ ";$/-%& 01,,)o
"3"),-"/0%3""*-%0&0"!01&)&16#,/1%&0
/")"0"n4%& %40!"3"),-"!,3"/)1":8:< Italo Vignoli
+!"/)6:8:=n)"!&+$1%"*1,!21%"&/$/,2- is one of the founders
"##,/11%"&+1"/,#2)&16o2/&+$1%&01&*"n of LibreOffice and the
,3"/?882$#&5"0%3"""+!!/"00"!o Document Foundation.
)"+!"/)0,+,4 ,+1&+00"3"/)("6
2-!1"0o%&"#*,+$1%"0"&0+"4461, &/"##& " 1&3")6
,))1"*2)1&-)"!1v), (+&*1&,+0&+1, The Blender Foundation has released a showcase reel of clips supports language
0&+$)" 1&,+20&+$1%"),10#"12/"o from projects that are being developed using the software. *&+,/&1&"04,/)!4&!"o+"
)1%,2$%2)(+02--,/1&001&))"5-"/&*"+1)n ,#1%"("6460&1 %&"3"0
-"/#,/*+ "%0+,4""+ ,+0&!"/)6 *,!&#&"/0/"+,402--,/1"!#,/"5-,/1#/,* 1%&0&01%/,2$%1/+0)1&,+
&*-/,3"!o,*"#"12/"0/"*&00&+$n02 % )"+!"/o%&0)),4020"/01,-) ",)2*" +!), )&01&,+n4&1%1%"
0-"+n-"+2!&3+! 6!/3&"4-,/1o &0-) "*,!&#&"/,3"/v1,-+"5&01&+$ 0,#14/"3&))"&+,3"/
,4"3"/n&1)0,%0&*-/,3"! ,*-1&&)&16 sequence or deploy Geometry Nodes to created 9:8)+$2$"0n&+ )2!&+$
4&1% !/&3"/0n&+ )2!&+$1%"3&!& +&*1"!3,)2*"0-/, "!2/))6o minority and constructed
:888v=8880"/&"0o %")1"01/")"0"#"12/"0/14,/(#/,* )+$2$"0)&(""+1/)
%"-1&!"+,&0"/%0)0,""+2-$/!"!o 1%"0 /v4&++&+$*,3&" ),4n4%& %40 2/!&0%n)&+$,++!
1+,402--,/10*,/" ,+0&01"+1!"+,&0&+$n *!""+1&/")6&+)"+!"/o ++&+1"/3&"4,+1%" +1"/0)3& o%&0/,!
*,/" 2/1" ,),2/0n+!)"00),1 %&+$o ,2+!1&,+4"0&1"n!&/" 1,/ &+10&)),!&0 )&+$2&01& 02--,/1)),40
)"+!"/3&!",0 ++,4"/"+!"/"!20&+$ 011"!1%1*+6,#1%""5&01&+$#&)*+&*1,/0 small communities to
1%" o:>=3&!", ,!" n3&1%" ,//"0-,+!&+$ 1,,()"001%+4""(1,04&1 %1,)"+!"/o " -/"0"/3"1%"&/)+$2$"0
!/,-v!,4+*"+2o"+!"/2!&,)0,+,4 )0,!*&11"!1%11%"*&+!/4,#20&+$ 620&+$1%"*&+*,!"/+
02--,/10/"+!"/&+$1,#,/*1o+&*1"! )"+!"/ for ),440!,4+1,&10/")v1&*"v 0,#14/""+3&/,+*"+10o
3,)2*"0#/,* ",*"1/6,!"0,/3,)2*" /"+!"/&+$"+$&+"o %"&/"##& "&+$2&01&
,,)0"51"+0&,+%")-0
/"0"/ %"/0+!"+1%20&010
document minority
SOFTWARE )+$2$"0o 1&+1"$/1"0
1,,)0#,/*+$&+$)&+$2&01&
!1n ,+3"/1&+$#,/*10n+!
A
#1"/1%"#&)2/",#,7&))/&0*1, 1%"0&0&1 20"!20"/ ,+#20&,+n-)201%"/" 02 ""!n+!+1&3"
#2))6&+1"$/1"4"--)& 1&,+04&1% 40) (,#-"/ "&3"!3)2"o )+$2$"-/,'" 10&+3,)3"
CREDIT:)"+!"/<o<%,4 0"""),22"o,7&))
OPINION LINUX
T
%"!"1"02//,2+!&+$&+25 ,!&+$ &$+,/"!o21*,/"&*-,/1+1)6n1%,0"12/!0)0,
Mark Filion 01+!/!0%01("++"412/+n#1"/ /"(#&)"+*" ,*-)"1&,+j,+,n!!&+$&11,
is senior marketing manager &+20,/3)!0,-"+)6)*01"!+ $&1&$+,/"!,"0+}1 12))6#&51%"-/,)"*o%&0
Ŕʋࢳ-ȶȍȍŔŹȶɭŔࡳ 1"01-1 %#,/1%"&/" 1"+!"/&+$ 1%&+$+""!01,!&"o
+$"/020601"*&+&+25>o9=o +1")"+$&+""/04!"!&+1,1%"!&0 200&,+
+9<1%v9>1%6n1%" &02+%--&+"00 "+1/"!,+1%"# 11%11%" 6 (+,4)"!$&+$1%",3"/0&$%1o%"61%"+
*"!!"!" &-"0 ,!"402&)10-/1,##2))("/+")2&)!0n0, 02$$"01"!/"), 1&+$1%"%!/1"01#&)"01,
,+#"/"+ "&0%"!&+$1, )"3"0"%&+!2+4+1"!#&)"0&+1%"&+ )2!" .hdrtest02!&/" 1,/&"0n1%"+&+1/,!2 &+$
& "o/!&1&,+))6%")! !&/" 1,/&"01%1%" ))"!12/!0o ,+#&$2/1&,+,-1&,+1,*+$"1%"0"2&)!v
),+$0&!""/+")" &-"0&+ ,/3)!0!!"!p%"1%&+$1%1*!"*" 1&*" %" (0o +1%",/6n1%&04,2)!-/"3"+1+6
/&0n1%&06"/*/(0&10#&/01 +,1& "1%1&14001&))1%"/"401%1|$&101120} *,/",#&+20}00,v ))"!12/!0#/,* )211"/&+$
standalone edition – set ,*-)&+0,211%"012-&!12/!0+,1"&+$ 1%"2&)!1/""o
$&+011%" (!/,-,#1%"
-& 12/"0.2" /"+ %&3&"/
%" ,+#"/"+ ",##"/0
2+&.2",--,/12+&161,
,++" 14&1%0,*",#
HARDWARE FUNDING
1%"1%,2$%1)"!"/0+!
,/"!"3"),-"/0,#1%"
"*"!!"!n,-"+0,2/ "
0,#14/" ,**2+&16o
The Nope Deck Open source
11"+!""0 +),,(#,/4/!
1,14,!60,#&+0&$%1#2)
1)(0n#,)),4"!6!6
HP dismisses handheld
plans after an interview funding fight
!"!& 1"!1,4,/(0%,-0n with its gaming SVP. The OTF is suing the
4%"/", 1,n)$/&!n
USAGM for jeopardising
H
)& *"/+!&-"&/" %0 )/&#&"!1%1&1%0+,&**"!&1"
!"3"),-"/04&))*""1o -)+01,-/,!2 "%+!%")!$*&+$ open source projects.
4,!!&1&,+)"3"+104&)) !"3& "&+1%"3"&+,#,1%"/1" %
T
,,("+!1%" ,+#"/"+ "o *+2# 12/"/0)&("+!"+,3,o %"+,+v-/,#&1 -"+" %+,),$6
201"#,/"*"!!"! +)&+"0-" 2)1&,+#)/"!/&"#)6#1"/+ 2+!&002&+$1%"$"+ 6#,/
" &-"0(& (0,##1/ &+1"/3&"44&1% ,0"-%&+"+n }0,# ),)"!& +!1%"##& "
%,"+&5n1%"&+25"!& $*&+$0,)21&,+0o+-/&0"!1"* ,#+$"*"+1+!2!$"1#1"/#2+!&+$40
2**&14&))1("-) ",+ #,/"&+$"11"/02&1"!1,0*))0 /""+0,+ 1"/*&+1"!6!" /""#/,*/"0&!"+1/2*-o
9;1%6n/&$%1 /,001%" %+!%")!0o ,4"3"/n0%""*-%0&0"!1%1 %" 02--,/10/,2+!=8,-"+0,2/ "
01/""11 ,1")*-+&)"o &0#, 20"!,+&10+! 6-"//+!0o -/,'" 10&+ )2!&+$,/n"1}0+ /6-1n-"+
%"+n#/,*9>1%v9@1%6n %&0%0+}1-/"3"+1"!"!!&1,/0#/,* +! v/,&!o 10)402&1 )&*01%"1"/*&+1&,+&0
1%" 1/"*"/ ,**2+&16 !&0 200&+$%6-,1%"1& ) %+!%")!n',(&+$)6 2+)4#2)n0#2+!&+$,#[<;o=*&))&,+#,/:8:=
4&))"%,01&+$&10++2) 4,+!"/&+$"/04,2)!+""!1,-6*,+1%)6 %!)/"!6""+$/+1"!6,+$/"00o
-/&+$ (#"011", 020 /&-1&,+n00,*" -/&+1"/,4+"/0!,o /!&1&,+))61%"$,3"/+*"+1%0
,v4,/(&+$0- "&+& "o &+3"01"!%"3&)6&+,-"+0,2/ "3&1%" o +
&1%&10$/"1)&+"2- :8:<n"1}0+ /6-1/" "&3"![@88n888n4%&)"
+!!' "+1 ,**2+&16 1%",/-/,'" 140$&3"+[=88n888o
"3"+10n*"!!"!" &-"0 0-" &)!3&0,/1,1%"/2*-
:8:=-/,*&0"01,"+ !*&+&01/1&,+/&("!"0 /&"!1%" 0
2+*&00)"$1%"/&+$#,/ 2/!"+1,1%"15-6"/n!"0-&1"1%"# 11%1
"*"!!"!,-"+0,2/ " 1%"%&1" ,20"+!*+6,1%"/#"!"/)
"+1%20&010o ,/*,/"!"1&)0n 4"0&1"020""1}0+ /6-1 "/1&#& 1"0o
3&0&1https://embedded- %" 4"0&1"0601%"#2+!%0/")"0"!
recipes.org/2025/ and ,3"/:n=88-1 %"0#,/,-"+0,2/ "0,#14/"o 1
https://gstreamer. Tan praised SteamOS for playing well with small screens, as )0,02--,/1020$"#,/<=*&))&,+-",-)"
freedesktop.org/. well as its ability to save game progress between sessions. &+ ,2+1/&"04&1%01/& 1&+1"/+"1 "+0,/0%&-o
Distro watch
OPINION
VALKEY
What’s behind the free software sofa? TURNS ONE
DEEPIN 25 ALPHA
%&0%&+"0"&+25!&01/,%0""+&+!"3"),-*"+10&+ ":88<o 1&*0
1,"")"$+1+!20"/v#/&"+!)6n4%& %&1 %&"3"01%/,2$%""-&+
"0(1,-+3&/,+*"+1n0"!,+1%"1=1,,)(&1o%&0)1"01)-%
includes upgraded,+1/,)"+1"/*,!2)"0#,/4))--"/n0 /""+03"/n
-,4"/*+$"*"+1n*,20"+!1,2 %-!o 1)0,2+!)"0&+6-0 – The distribution was Lori Lorusso
""-&+}0- ($"*+$"*"+11,,)o%"!"30061%&0-/,3&!"02+&#&"! formerly known as is head of community
--/2+1&*""+3&/,+*"+1!" ,2-)"!#/,*1%"owww.deepin.org Linux Deepin. ŔʋࢳáơɭƃȶȥŔࡳ
)("6%0/" %"!&10
,+"v6"/++&3"/0/6
ENDEAVOUROS 2025.03.19 0-/,'" 1o 140.2& ()6
&(" %60"""),4+!"3,2/&00"!,+/ %&+25o !,-1"!0-/,'" 16
1#,)),40/,))&+$/")"0"*,!")+!!"#2)101,1%")0* 1%"&+25 ,2+!1&,+#1"/
!"0(1,-o0"/04%,,-1#,/1%"!&01/,}0,+)&+"&+01))"/ + %,,0" "!&0 %+$"!&100,#14/"
,1%"/"+3&/,+*"+10o%")1"01"/ 2/6",/"#/"0%/")"0")0, )& "+ "n4&1%02--,/1#/,*
,*"04&1%+2-$/!"!,##)&+"&+01))"/n&+ )2!&+$#&51%1"+02/"0 ,+1/&21,/01n ,,$)"n
/ %*&//,/0),!-/,-"/)6o #20"/0 %,,0"Systemd21,v&+01))n Setup now has better "+ "+1n)&n/& 00,+n
0"12-+,4 /"1"0: -/1&1&,+&+01"!,#9 o,2 + support for installing "/ ,++!&3"+o214%1
!&0 ,3"/*,/"1https://endeavouros.com. multiple kernels. %0%--"+"!&+1%")016"/n
+!4%6!,"0&10%,4$/"1
future for open source?
)("6@o9)2+ %"!1
Q4OS 5.8 2",+&+,+!,+o),+$
<&00"!,+"&+o-&+0/"3&))"4&1%n04"))0 4&1%+1&3"02--,/1#,/
1%"/&+&16!"0(1,-"+3&/,+*"+1n4%& %-/,3&!"0*,/"1/!&1&,+) +!3" 1,/0&*&)/&160"/ %n
!"0(1,-o%")1"0101)"/")"0"n ,!"v+*"!.2/&20n&00"!,+ &1!!0-/,$/**&)&16
1%"*,01/" "+1-,&+1/")"0",#"&+9:o98+! ,+1&+0+2*"/,20 02--,/10,6,2 + %,,0"
2$#&5"0o%"!"0(1,--/,#&)"/1,,)%0+"4-)2$&+#,/%+!)&+$ Q4OS now has better %,46,2-216,2/!10"
)1-(0o%"-/,#&)"/}0 -&)&1&"0%3")0,""+"5-+!"!n0&1+,4 support for Flatpaks 0 /&-101,$"1%"/o%&0*("0
%0"11"/02--,/1#,/*2)1&1%/"!&+$o""*,/"1https://q4os.org. and multithreading. it easier to plug in your
%,0"+)+$2$")&("61%,+
+! /"1" ,**+!00"!
,+%,46,22&)!o
CACHYOS 250330 %"$,)&01, /"1"
%&0/ %v0"!&+25!&01/,&0!"0&$+"!#,/,1%0-""!+!0" 2/&16o -/,'" 11%1 ,*-+&"0 +
*-/,3"*"+10&+ )2!"!"-),6&+$1%"2/01v/&"+1"!"0-,+0" *,3"1,o%1&+3,)3"01/201o
+%+ "/0 %"!2)"/1,,-1&*&0"1%"&+25("/+")o%")1"013"/0&,+ 10"0%3"1,4,/(n+!
&+ )2!"01%"+"4&*&+",,1),!"/o%&002--,/10,1% n +! 6,2%3"1,1/2011%11%"6
!&/" 11/#00+-0%,10o%")0,+,4&+ )2!"00"11&+$01, ,+#&$2/" 4&)) //6,+4,/(&+$o,2&)!
+!"+)"*#&)"0%/&+$o %6+,4!"-),60,><x CachyOS comes 1%11/201n1%" ,**2+&16
customised &+"- ($"4&1%+,)&;:!"-"+!"+ &"0o%"!"30 )&* with an overhauled %04,/("!,+#"12/"0
1%&0&*-/,3"0-"/#,/*+ ",#&+" apps. https://cachyos.org bootloader. 1%1*("&1"+1"/-/&0"v
/"!6+!&*-/,3"
performance so companies
feel safe to migrate.
GOBOLINUX 017.01 )("6+,4%0*,/"
%&0&+25!&01/,40#&/01/")"0"!&+:88:21#,)),403"/6&//"$2)/ 1%+9n888 ,**&10n9=8
/")"0" 6 )"o2 "00&3"3"/0&,+0 *",21/,2$%)6"3"/66"/ ,+1/&21,/0n9;/")"0"0+!
"14""+:88>+!:88@o"/0&,+89?o89/"-/"0"+101%"#&/01+"4 ,3"/#&3"*&))&,+, ("/ pulls.
/")"0"&+,3"/#&3"6"/0o ,,&+2501+!0-/1&+1%1&1!,"0+}1 10%,401%11%" ,**2+&16v
#,)),41%"1/!&1&,+)#&)"601"*%&"// %601+!/!,#*,01!&01/,0o ,/ Each GoboLinux )"!--/, %&0*,/"
"5*-)"n&+01"!,#-) &+$--0&+usr/binn0,#14/"+!)&//&"0%3" program has its own "##" 1&3"1%+0&+$)"v3"+!,/
1%"&/,4+!"!& 1"!#,)!"/&+/Programs. https://gobolinux.org subdirectory tree. ,-"+0,2/ "-/,'" 10o
4,+!"/4%"/"4"4&))
"+"516"/r
Kernel Watch
OPINION
MAN VS
MACHINE
Jon Masters summarises the latest happenings in
the Linux kernel, so that you don’t have to.
inus Torvalds announced Linux aims to be developed upstream in reasonably
L 6.15-rc1, noting that it was
“one of the bigger” development
digestible chunks, which is why the initial
upstream commit is bare bones and not
Jon Masters is a kernel hacker cycles, “due to the previous releases being intended to be usable for gaming or machine-
who’s been involved with Linux impacted by the holiday season”. The new learning workloads.
for over 22 years, and works on kernel includes various internal reworks Still, it will be fascinating for many to be able
energy-efficient Arm servers. (such as updating minimum compiler to watch a new open source driver for Nvidia
versions and refactoring networking code), GPUs being developed in the open using Rust
There has been some but it also includes a number of user-visible from day one.
interesting discussion changes, such as the initial driver stub for The original announcement for the Nova
about a patch addressing a the new Nova-core successor to the project occurred back in March 2024: https://
bug in the Linux netfilter Nouveau Nvidia GPU driver. lore.kernel.org/dri-devel/Zfsj0_tb-0-tNrJy@
tunnel driver. Most If things follow a typical Linux kernel cassiopeiae/. There is also a talk from last year’s
interesting was the development cycle, we are looking at a final &+25)2*"/0,+#"/"+ "&+ )2!&+$3&!",n
discussion’s use of AI LLMs 6.15 kernel release in June. We will keep here: https://lpc.events/event/18/
for an explanation. readers updated next month as the kernel is contributions/1911/.
The crux of the patch tested. Of course, this assumes that Linus
comes from this line: doesn’t forget to do the release, as he RIP Dave Täht
infamously did last month for 6.14. After we We recently learned that long-time network
went to press noting that 6.14 was imminent, engineer Dave Täht has passed away. He
the new kernel was delayed by an extra day 40=Ao3"&0*,014"))(+,4+#,/
This attempts to perform when Linus got distracted preparing for ,#,2+!&+$1%"2##"/),1-/,'" 1n4%& %
type conversion (the bit in upcoming developments and “entirely forgot &*01,/"!2 "2++" "00/6,3"/20",#
parentheses) from an to actually ever cut the release”. Oops. .2"2"0+!2##"/0&++"14,/(&+#/01/2 12/"
opaque pointer (opts->u. beyond that which is necessary for reliable
data) to a geneve_opt The Nova project 1/+0*&00&,+o2 %),1 12))60"/3"01,
pointer type. Except the The new Nova project is intended to &+ /"0")1"+ 6+!'&11"/n-/1& 2)/)6#,//")v
)&+"&0*&00&+$+" "00/6 eventually replace Nouveau for Nvidia Turing time communications and interactions. News
parentheses around the (GeForce 20 series, from six years ago) and ,#%&0!"1%40-2)&0%"!61%"&/",
opts->u.data + opts->len as later GPUs that include a GPU System project: https://libreqos.io/2025/04/01/
the original intention is to Processor (GSP). It is written in Rust and in-loving-memory-of-dave/.
cast the whole expression.
The patch is thus a trivial
one-liner. In the discussion, ONGOING DEVELOPMENT
a number of replies attempt
to use AI chatbots to explain ,),,+7&+&-,01"!-1 %0"/&"0 memory management. This relates to other
the problem, some of which 1&1)"!|p-)+"0}1%111"*-101, recent discussion about simplifying the
get it wrong by failing to provide a unified implementation for the "/+")*"-$""/$&+$ ,!"1%1
understand the point of a generalised concept of virtual privilege de-dupes identical memory across, for
typecast. This serves as a levels in the context of confidential example, several virtual machines. In the
useful reminder of the compute. This allows a confidential virtual preferred future, a special kernel daemon
importance of AI as a tool machine to have “multiple copies of a (ksmd) is replaced by userspace code that
rather than a replacement vCPU’s register state”, effectively to can “trigger merging on the specified
for human beings. mutiplex several services within the memory region asynchronously”.
It also serves as a useful 0*"o%&0*&$%1&+ )2!"0-" &) Akamai has announced that it is now
example of the importance 0"/3& "0-/,3&!"!1, ,+#&!"+1&)n +"4&+#/01/2 12/"-/1+"/1,1%"
of sanitisers, which run prior #,/"5*-)"o &+25"/+")/$+&71&,++!%00&$+"!
to a code submission, and An initial patch was posted by Sourav *2)1&v6"/$/""*"+1&+4%& %&14&))
flag up dangerous patterns +!&*-)"*"+1&+$|")" 1&3"p provide, “at no cost”, all the necessary
that might be coding errors. Synchronous and Partitioned Merging’ infrastructure to host Kernel.org, including
Alas, today there is no following a discussion at the LSF/MM-25 the various Git repositories used for daily
standardised set of conference on Linux filesystems and kernel development.
pre-submission tests
for kernel code.
if you have the read command near the User cron tasks
beginning of a long script or one with a lot are not installed
as part of the
of loop iterations, you can turn this option
OS, but many
on and off within the script with these two packages do
commands, respectively: ĬÐijǏķĥǎĬőĬijÐąǎ
set +x cron jobs.
set -x
Another way to deal with this is to use
the source command to call the script:
$ source ./myscript
Source executes the contents of the
script in the current shell, so comes with
a couple of caveats. Firstly, and most
&*-,/1+1)6n+6*,!&Y 1&,+0*!"1,
the script’s environment also affect the
current environment. Also, you may get
unpredictable results if running the script
in a different shell from that given in the
shebang line – for example, if your shell is
zsh but the script starts with: 01%"0"0601"*20"0systemd/ %3"+"51/Y")!0-" &+$1%"20"/1,
#!/usr/bin/bash timers instead.” So, that means the run the job, which is not necessary for a
cron',04,2)!+,1%3"""+,+1%")&3" user cron task because it has to run as
Q Persistent cron
Am I right in assuming that all cron
installation stick.
Patrick Lord
that user.
User cron jobs do not survive a
',0,+&+25"+1"/"!,+)-1,- reinstallation, even if /home is on a
+""!1,""+1"/"!61%"-"/0,+)20"/
of that laptop, if there are no outside
A The Arch Linux wiki is a really good
source of information, but it is
0"-/1"-/1&1&,+n01%"6/"0&!"&+/var.
,4"3"/n*,01,#1%"0601"*cron',0/"
!*&+&01/1,/0l )0,002*"1%"0" inevitably orientated towards Arch itself. not part of the base OS but are installed
cron',0!&0--"/4%"+1%"%/!!/&3" Arch does indeed use systemd timers by individual software packages. For
,#1%1)-1,-&0/"-) "!6+,1%"/%/! rather than a cron daemon, but most example, locate,,/,+",#&10)1"/+1&3"0n
!/&3"+!1%"&0/"&+01))"!#/,* distros stick with one of the traditional needs to regularly update its database of
fresh live stick. cron implementations. Y)"0,+1%" ,*-21"/o%&0&0202))6/2+0
*0(&+$" 20"&+),,(&+$1 There are both system cron jobs a script from /etc/cron.daily. The source
the terminal output of the laptop I am +!20"/,+"0o%"0601"*cron jobs of each cron script is usually obvious
/"#"/"+ &+$n+5:<8"+,3,%&+(-!n +"!"Y+"!&+/etc/crontab but from the name, but you can use the dpkg
there are cron',0)&01"!#/,*6"/0$,n /"202))60"12-00"-/1"Y)"0&+ command on Ubuntu (and other distros
even though I changed the hard drive last 1%"/etc/cron.daily, /etc/cron.hourly and based on Debian) to determine which
6"/+!#/"0%)6&+01))"!1%"2+12 /etc/cron.weekly directories. User cron - ($"0&+01))"!Y)"p
from a stick. ',0/"202))6!"Y+"!&+var/spool/ $ sudo dpkg --search /path/to/file
+1%"4&(&,#/ %&+25n /"!p cron/crontabs/$USER. There is one
“There are many cron implementations, 0&$+&Y +1!&##"/"+ ""14""+0601"* GET HELP NOW!
21+,+",#1%"*/"&+01))"!6!"#2)1 and user cron tasks. The system tasks
We’d love to try to answer any questions 20 /&-1&,+0p for magazine issues email [email protected]
you send to [email protected],
A QUICK REFERENCE TO… TEE TIME no matter what the level. We’ve all been
stuck before, so don’t be shy. However,
Shell direction is pretty common, Tee effectively produces two copies we’re only human (although many suspect
being able to direct the output from of the data piped to it, one sent to the Neil is a robot), so it’s important that you
,**+!1,Y)"4&1% > , or using +*"!Y)"+!,+"1,01+!/!,21-21n include as much information as you can.
| to send the output through a pipe to 202))61%"1"/*&+)o,1"1%1%"Y)" ?ãǏĬČąÐijéìĆäǎŋČĨüĬǎČĆǎČĆÐǎÌìĬijĨČǎÅķijǎĆČijǎ
another command. Sometimes, though, exists, it is overwritten without warning. another, tell us. If you get an error message,
we need more than that. For example, Use the -a (or --append) option to add please tell us the exact message and
you may want to save the output to a 1%"!11,+"5&01&+$Y)"xtee still precisely what you did to invoke it.
Y)"+!0""&1,+1%"1"/*&+)n&+/") /"1"01%"Y)"&#&1!,"0+,1"5&01n0, If you have, or suspect, a hardware
1&*"o"!&+$1%"!"01&+1&,+Y)"0 you could get into the habit of using -a problem, let us know about the hardware.
&1&04/&11"+1,!,"0+,1!,1%1" 20" by default. Consider installing hardinfo or lshw. These
data is buffered before writing, but What if you want to send the output programs list the hardware on your
there is a command that can, and it of your command to another program, machine, so send us their output. If you’re
is called tee. The name gives a good such as xargs, and still see its output? unwilling, or unable, to install these, run the
indication of its function – it acts like %"/"}0+,Y)"&+3,)3"!%"/"o"))n1%"/" following commands in a root terminal and
a T-piece in pipework, splitting the is, because in Linux “everything is a send us the system.txt file, too.
stream into two. To do what we just Y)"n"3"+1%"01+!/!,21-21,#6,2/ uname -a > system.txt
described, you would use: terminal. Try something like this: lspci >> system.txt
$ somecommand | tee somefile $ somecommand | tee /dev/tty | xargs ... lspci -vv >> system.txt
WRITE TO US %&+"0"
}*&+1/&$2"!6))1%" ,3"/$",21 vo }*)0,
Do you have a &1 ,+ "/+"!o9,01,#1%")-1,-0/"3&"4"!0,#/
burning Linux-
&+LXF1%1%3"1%1/ %&1" 12/"20"0601"*v,+vv
related issue
%&--/, "00,/0o:,01&#+,1))02 % %&-0/"*!"
that you want to
discuss? Write to &+%&+o* 4,//&"!1%1,-"+&+$GIMP4&)) 20"&1
us at Linux Format, 1,0"+!/"-,/11,"&'&+$l,n+,16"1o1&))n&0+6,+"
Future Publishing, 1Linux Format 4/",#+6"##,/101,-/,!2 "
xķőǏ<ČķĬÐƨǎ v-/, "00,/0"&1%"/&+2/,-",/&+1%"l
éÐǏąÅķĨőƨǎ Mike Neary, Spring City
ijéƨǎūǎūǎČĨǎ
email letters@ Neil says…
linuxformat.com. I think there is great interest in RISC-V in China
" 20"&1}0,-"+1" %+,),$61%1 +}102!!"+)6
"0+ 1&,+"!61%""01o01)&0%"!"01"/+
,*-+&"0%3")"00&+1"/"0101%"6 +}1 ,+1/,) yÐÿìŊÐǎijéÐǎijĥÐǎÌőĬǎŋìijéČķijǎéŊìĆäǎijČǎķĬÐǎijĥÐƧ
-/,!2 1&,++,/&+ )2!"1%"&/,4+) (,5),01%1
,2)!""*&+$6,2/!11,1%"o,11%1 +!--"/1-"4"/"20"! (&+1%"!6o )0,
!,"0+}1%--"++6461%+(01,1%" &3"6"0r $/"1)6--/" &1"%,4&(")460#&+!0+!)&+(01,
1}0$/"1.2"01&,++!%3&+$.2& (),,(/,2+!n "*2)1,/0#,/1%"0"+ &"+1* %&+"0n0,6,2 +0
1%"/"}0$,,!!"),#2/,-"+ 1&3&16&+ v %3""5-"/&"+ "1%"*n)"&13&/12))6o +$"+"/)n }*
!"3"),-*"+1n0&1}00""+0461,&+!"-"+!"+ " &$#+,#1%"*$7&+"n+!40"0-" &))61& ()"!1,
#/,*1%" +1")!2,-,)6o ,/"5*-)"nhttps:// 0""*60")#/"#"/"+ "!&+6,2/0"/&"0,+ ,!&+$
codasip.com is just one of many start-ups. 0& Space Invaders$*"0j""-2-1%"$,,!4,/(o
Colin
))1-"!,21
We’ve looked at '2014+1"!1,4/&1"+!06%,4*2 % }3""+',6"! Neil says…
éČŋǏy?}ǎéĬǎĥÿőÐÌǎ
ǎĥĨijǎìĆǎéÐÿĥìĆäǎ
&(""!#,/!}0/" "+1/1& )"0,+1%"+! Glad you’re appreciating Mike’s fantastic work. I’m
PìĆķŐǎÌÐŊÐÿČĥǎČŊÐĨǎ -2+ % /!1" %+,),$6o"))6&+1"/"01&+$012##n+! always trying to get him to ensure we keep these
the years. &("!&!$/"1',,#"5-)&+&+$%,4-2+ % /!0 /"1/,1" %+,),$6/1& )"0/")"3+11,1,!66#&+!&+$
"*2)1,/0+!1,,)01%1"+)"6,2
1,/")&3"+!-)64&1%1%"*o
Debian 12.10
Nate Drake explores the latest stable point release for Bookworm.
Does the OS still live up to its reputation for stability?
e last covered Debian
IN BRIEF
Debian isn’t
W 12 (code name
Bookworm) when it
flashy. Instead it was released in LXF305. As most
offers a mature readers know, the OS is one of
and stable OS the oldest versions of Linux in
with easy setup. active development.
You mightn’t Debian follows a painstaking
benefit from development process, whereby
))1%")1"01 project members carefully
software curate packages for stability.
features but This is why the OS forms the
&1}0/")&)" basis of so many popular Linux
daily driver. distros, such as Ubuntu.
Packages are initially only
accepted into Debian’s unstable
SPECS branch. To become a candidate Debian’s Welcome screen seems identical to the live Setup Assistant. From here you can
CPU: 1GHz for the next release, it must be configure options such as the keyboard layout.
Mem: 2GB migrated into the testing
HDD: 10GB branch. This is a meticulous process, as packages must ESR (Extended Support Release). This emphasis on
Builds: not have any release-critical bugs, nor can they break stability is also shown when examining app versions.
Aarch64, any existing code used in the testing branch. For instance, the most recent version of LibreOffice is
/*")n/*%#n The Debian Project is currently on the verge of the currently 25.2.1; however, Debian 12.10 uses v7.4.7.2.
i386, i686, next major release of Debian. Version 13, code-named You can install additional programs via the default
Loongarch64, Trixie, is scheduled for summer 2025. package manager, which in our case was Gnome
mipsel, ppc64el, In the meantime, this tenth update of the stable Software. We used this to install VLC directly from
s390x, Riscv64 version contains numerous bug fixes and security Debian repositories and were pleased to see this
x86_64 patches. There are multiple installation images, reflected the most recent stable release (3.0.21).
including a small ‘netinst’ ISO of around 630MB, which This raises an important dilemma as to whether
can download required packages as required. Debian is truly suitable as a daily driver. On one hand,
We opted for a live image of Debian running the choosing and testing packages carefully results in a
Gnome desktop, though other flavours are available very stable system, which is why major versions of
with KDE, XFce, LXDE, and Cinnamon. Debian are released only once every few years.
On first boot, we were greeted by the Initial Setup On the other hand, using older versions of software
window, prompting us to select basic configuration means users can’t take advantage of the latest
options like the keyboard layout. From here, you can features. They can also be prone to security bugs.
also disable location services and connect online This latest point release addresses this dilemma by
accounts such as Google, Nextcloud or Microsoft. including a number of upgrades. Certain packages that
Once the Gnome desktop loaded, we chose to are no longer maintained have also been removed for
launch the installer, which is based on Calamares, via security reasons.
the dock. After choosing our region and keyboard
layout (again) we could erase the current partition. Full
disk encryption is supported. Once installation was
VERDICT
underway, setup completed in our virtual machine in DEVELOPER: The Debian Project
less than six minutes. This puts it on a par with other WEB: www.debian.org LICENCE: DFSG-
major distros we’ve reviewed, like Arch and Ubuntu. compatible licences, plus proprietary
Upon restarting our virtual machine (which
automatically ejected the live install disk), we were FEATURES 8/10 EASE OF USE 9/10
greeted by Debian’s Welcome window, which is PERFORMANCE 10/10 DOCUMENTATION 9/10
identical to Initial Setup.
We launched System Monitor and discovered that This point release isn’t as major as the upcoming Debian 13,
with no other graphical apps running, Debian used just but does address numerous bugs and security issues.
1.5GB of virtual RAM. CPU usage hovered around 1%.
Debian has a carefully selected collection of default Rating 9/10
apps, which are chosen for stability, such as Firefox
Ubuntu 25.04
Huffing and puffing, Nate Drake takes a look at the interim 25.04 release
and wonders how things could get much better.
he name Ubuntu is
IN BRIEF
The team
T derived from a Bantu
word that roughly
1+,+& ) translates as ‘humanity towards
only goes ,1%"/0}o&+ " 1,"/:88<n1%&0
#/,*01/"+$1% community spirit has been
1,01/"+$1%4&1% reflected by regular releases of
Ubuntu. Setup this Debian-based OS.
now includes Over the years, Ubuntu has
more flexible undergone many iterations.
installation Initially, its flagship edition
options. There deployed the Gnome 2 desktop
are also environment. This all changed
improved with the advent of Ubuntu 11.04
wellness Natty Narwhal in 2011, which
features and %"/)!"!+,+& )}0,4++&16
better support desktop environment, which Ubuntu 25.04 uses kernel v6.14. It has new features such as drastically improved
for Windows provided a more modern and performance for emulating Windows programs.
emulation. touch-friendly interface.
In 2017, Canonical abandoned Unity in favour of As with previous versions, you can also choose
between an interactive guided installation or automatic
SPECS
+,*"o2+12}0/")"0" 6 )"+,4/,2$%)6#,)),401%1
of new versions of the desktop environment, with new setup using a YAML file. Setup also still offers the choice
CPU: 2GHz versions being released approximately every six months. between a small default collection of apps, or extended
Mem: 4GB At the time of writing, Ubuntu 25.04 (scheduled for installation that includes extra software like office tools.
HDD: 25GB 17th April) has yet to be released, so our review focuses After choosing the first option in each case, we were
Builds:%#n on the beta. This means that the listed features or prompted to choose a partition. Disk encryption using
PPC64el, screenshots may differ from the final release. As always, LUKS with LVM is supported. You can also opt to encrypt
vn0;A85n do your own research before installing. with a passphrase using ZFS or use hardware-backed
x86_64 One of the first things we noticed when downloading encryption, though these are classified as experimental.
1%")1"012&)!,#2+12:=o8<&01%1&1}0/,2+!9 Once the install was underway, we were treated to
(at 6.3GB) larger than version 24.10 (5.3GB). 0"/&"0,# ,),2/#2)0-)0%0 /""+0"5-)&+&+$))1%1}0
Upon booting the live image in our virtual machine, $/"1,212+12o%&0&+ )2!"!1%" )&*1%1&1}01%"
4"041%11%"0"12- ,+1&+"!+,02/-/&0"0#,/1%,0" choice of 66% of developers. This is based on a 2020
already familiar with the OS. The assistant prompts you survey by Hacker Earth, and reflects the preferences of
Our build didn’t to choose a language and offers accessibility options. “experienced developers”.
include Top Charts The keyboard layout screen seems to be different from %"&+01))"/)0, ,+1&+"!%")-#2))&+(01,2+12}0
in App Center "#,/"n$&3"+1%11%"/"}0"1" 1211,+o/"00&+$1%&0 official documentation, as well as Ubuntu Discourse,
to list popular
prompts you to type specific keys – such as * – to which serves as a combination of a mailing list and
programs, but
ìijǏąőǎÅÐǎìĆǎijéÐǎ !"1"/*&+"1%")6,21o%"/"}0)0,%+!61"51#&")! #,/2*#,/20"/0o%&0&0,+"/"&+4%& %1%"0%&+"0o
final release. where users can type using their chosen configuration. 2+12}0,+)&+"!, 2*"+11&,++!!&0 200&,+0/"1%"
*,01-/,)&#& 4"}3""3"/0""+#,/&+25!&01/,n4&1%
1%"-,00&)""5 "-1&,+,#"! 1o
Setup completed in around six minutes, which is on a
par with previous iterations of Ubuntu.
Once we restarted our virtual machine, we were
invited to visit the aforementioned Ubuntu Discourse
1,3&"41%"/")"0"+,1"0o%,2$%4"0(6,21,"/&+
mind our prior warning that details for the stable release
of Ubuntu 25.04 may differ from our daily build, we did
uncover some useful titbits of information.
These included the fact that this release (code name
Plucky Puffin) will be supported for nine months until
January 2026.
It was here that we discovered the Ubuntu installer
now has additional encryption options beyond those
1%14" %,0"o%"/"}0+,4"11"/02--,/1#,/&+01))&+$
UBUNTU FLAVOURS
+",#2+12}001/"+$1%0&01%1,##& &)3"/0&,+0/"3&))"20&+$
multiple desktop environments. Although the flagship edition
deploys Gnome 48, Kubuntu uses Plasma 6.3.
01%"!,"0+}1&+ )2!"0+-!n"/0,-1#,/*&+&*)&+01))n
6!"#2)11%"!,"0+}1&+ )2!"1%"+-3"/0&,+,# Firefox.
However, users can still install a web browser via the command line
from Ubuntu repositories. Kubuntu also uses Calamares instead of
the customer installer found in the flagship edition.
Gnome 48’s new Wellbeing settings enable users to set screen time Xubuntu 25.04 is due to ship with the version 4.20 of the Xfce
limits. There are also options to configure break notifications. desktop. This means the OS will ship with tentative experimental
support for Wayland, though it still has X11 functionality. It will
Ubuntu alongside existing encrypted Windows BitLocker )0,02--,/11%"4 +!6#&/" ,*-,0&1,/0+!4,/("11"/
partitions. The installer can also now replace an existing with HiDPI displays. Developer notes on GitHub also state that there
Ubuntu installation altogether. will be a friendly GUI for backing up data. This has been tentatively
After returning to the welcome window, you are asked set as deja-dup, though this may change for the final release.
whether you wish to share system data with Canonical to Lubuntu 25.04 deploys the LXQt 2.1 desktop. As the beta was
%")-&*-/,3"2+12o%"/"}0)0,-/,*-11,,-"+1%" available at the time of writing, we confirmed that it has performance
App Center. improvements, including two-minute minimal installs. If you opt for a
After launching System Monitor, we found that Normal or Full installation, you can also install Snap packages during
Ubuntu is still very forgiving on system resources. With setup. Pre-installed Snaps can also be upgraded via delta downloads,
no other programs running, the OS consumed 1.3GB of which is more efficient than downloading the entire new package
,2/3&/12)+!,+)6<,#/"0,2/ "0o04" " %1&*"o%"/"}0+,02--,/1#,/6)+!n1%,2$%1%"!"3"),-"/0
chose the Default selection of apps earlier, the install hope to include this before the release of Ubuntu 26.04 LTS.
footprint also weighed in at a very reasonable 10.6GB.
According to the release notes, Ubuntu 25.04 comes
with Gnome 48. Thanks to the efforts of Canonical build, though we live in hopes it will be included in the
developers, the desktop environment now supports final release. Nevertheless, we took the opportunity to
triple buffering, which helps with rendering on lower-end search for and install the Thunderbird mail client in under
GPUs, such as Intel integrated graphics. one minute.
Other changes to Gnome are more overt. Version 48 %"/")"0"+,1"0011"1%1,2}/"2-$/!&+$1,
now includes a dedicated Wellbeing section. Android Ubuntu 25.04, instead of doing a clean install as we did,
users will find the options familiar, given that you can set updates will refresh seeded Snaps to the appropriate
)&*&10,+0 /""+1&*"n02 %0"&$%1%,2/0!6o%"/"}0 Snaps channels, regardless of what was tracked before.
)0,!"!& 1"!/"("*&+!"/00" 1&,+n4%"/"6,2 One exception to this is the document viewer, which
can have the OS prompt you to look away from the has now been upgraded from Evince to Papers. The
screen and/or move around at regular intervals. latest version includes some nifty new features, including
While browsing through the Gnome settings, we also the ability to verify digital signatures. The App Center
reviewed the Appearance section, where we discovered also now offers the latest stable release of GIMP (3.0.0).
there are no fewer than 10 alternative Puffin-themed Ubuntu now deploys the new Linux 6.14 kernel. This
wallpapers. From here, you can still adjust accent colours, news is probably most exciting to those who like to run
as in the previous version of Gnome. Windows games on Linux, given that it includes an
"+"51!" &!"!1,1("1%"") ,*"00&01+1}0 overhauled NTSYNC driver, which emulates Windows NT
advice to launch the App Center."}!-/"3&,20)6/"! synchronisation primitives.
,+2+12&0 ,2/0"1%11%"!"3"),-"/0-)++"!1, This can hugely improve performance for those
introduce Top Charts support here to list apps based on running Windows titles via compatibility layers like those
-,-2)/&16o%&0!&!+}10""*1,"-/"0"+1&+,2/!&)6 in Wine or Steam Play.
VERDICT
DEVELOPER: Canonical
WEB: https://ubuntu.com
LICENCE: Mainly GPL
The Evince document viewer has been replaced by Papers. The latest Rating 10/10
version has new features like digital signature verification.
Museums are renowned for their money-making antics. A fossil exhibit, yes yes, it’s full of ex-Linux Format editors…
Nothing fishy to see here, although this might be a tuna fish. A group of cheese men observe a science exhibit.
museum in front of us, we felt we had that little more announcer, and Jane Webley does absolutely nail that
foresight and planning behind us, and we really hit our slightly sarcastic edge that we Brits simply can’t resist.
groove by the time we were sent to Pebberley Heights Our campaign money woes also inspired us to go all-
and the quirky science facility Bungle Wasteland. out in Two Point Museum’s sandbox mode, which has a
We did, however, become increasingly frustrated with huge selection of drop-down menus and sliders of
certain aspects of Two Point Museum as we progressed. settings to tweak alongside three difficulty presets. It
During the times when we were losing money, or failing means that hardcore management simmers can give
to fully satisfy VIP guests and primary school visits, we themselves a tough-as-nails challenge they won’t
often struggled to pinpoint why. Although you can pull necessarily get from the campaign, while we can go back
2-+,3"/3&"4,#6,2/#&++ "0n1%"$*"!,"0+}1/"))6 to treating the whole thing like a well-cultured dollhouse.
point out where you’re going wrong. Even after culling We didn’t get to spend a ton of time in the sandbox
staff numbers and bumping up ticket prices – something mode, as we were more focused on experiencing the
that did not go down well with our guests – we were still progression from the campaign, but that’s ultimately
struggling to break even on one of our maps. what Two Point Museum wants you to do anyway. Get
We went from treating Two Point Museum like a drip-fed the intricacies one by one before letting it all
glorified Sims to muttering under our breath, “Noooo, we flood your veins later down the line. We already know
are haemorrhaging money, our staff are unhappy, and we’re going to be dipping back in on a less professional
4" +}1#&1+,1%"/1%/,,*&+1%&0#)&--&+$2&)!&+$o basis, just to craft the exhibitions of our dreams.
The museum rating panel offers little to no If you’ve enjoyed Two Point Hospital and Two Point
constructive feedback, even when our rating was Campus, it’s an absolute no-brainer that you give Two
%,3"/&+$&+1%"*&!v>80o%"0""5%&&10/"$/"1j Point Museum a try. We’d argue that, as a concept, a
+! }*/"))6"+',6&+$1%"*20"2*j1,,(-"/*+"+1 museum management sim is the most endearing
residence in the common thoughts column, which ,#1%"*))n+!&1}0""+',61,0""'201%,4$/"1
weren’t exactly helpful when trying to get into the canvas the concept has been for Two Point Studios to
!"1&)0,#4%6,2/$2"01%--&+"00-"/ "+1$"40+}1 really go all-out on its signature whimsy.
necessarily reflecting those comments. And if sterilised medical institutes and dorms filled
Call it a skill issue, which it kind of is, and we weren’t with sexy young adults aren’t your thing, the cosiness a
looking for a play-by-play, but we couldn’t help but wish humble museum offers might be just the thing you need
Two Point Museum did a better job of saying, “Hey, here’s to reel you into what is easily one of the neatest, most
4%"/"6,2}/"*"00&+$2-n&!&,1o,*"1&*"0& ,+04,2)! approachable management sims in recent memory.
pop up of folk being thirsty, or their bladder fit to burst,
but we still seemed to get those even when the building
was crammed with an abundance of cafeterias, vending
VERDICT
machines and loos. We would also occasionally get icons DEVELOPER: Two Point Studios
that we didn’t understand at all, and despite our efforts, WEB: www.twopointstudios.com
we were unable to discern exactly what the game was PRICE: £24.99
trying to tell us.
GRAPHICS 9/10 GAMEPLAY 8/10
Anything is fossible LONGEVITY 8/10 VALUE 8/10
It’s our main complaint in what is otherwise a very solid,
stellar experience – bar the odd occasion where the Zany Two Point Museum is the coolest, cosiest and most evolved
British Tannoy Voiceover was a little too zany, as we were iteration of the formula to date, even if its more obtuse
regularly hearing the same voicelines over and over aspects prevented us from becoming a pro curator.
again. Saying that, we did particularly appreciate the
more meta-leaning acknowledgement of her previous Rating 8/10
undertakings as a hospital and college campus
Michael Reed
is a highly private
individual, who is
Zen Brave LibreWolf secure both in
Vivaldi Tor Browser himself and in his
choice of secure,
private browser.
Secure browsers
Always the cautious type, Michael Reed goes on the hunt for a browser
that offers enhanced security without compromising on fun and features.
HOW WE TESTED…
using the EFF’s Cover Your without compromising day-to-day usability. online privacy, there is a principle at stake.
Tracks website, and frankly, it We’d prefer not to miss out on features and #6,220"1%"/&$%1/,40"/n6,2 +06
threw up some surprises. convenience just to feel safe. goodbye to the adverts that pop up in
Security and privacy aren’t quite the same reference to something you were searching
thing. Security is protection from malicious for or discussing minutes before.
Installation
and setup
The first stage is obtaining a copy
of the software and installing it.
ll the browsers support Linux, Windows and Mac OS,
Settings and
customisation
The first port of call: making sure
the software works how you want.
or Browser has a settings page that is similar to that
User interface
Nice environments Zen 8/10 Brave 8/10
are productive. From the start, we have to give Zen some Brave makes good use of the sidebar for
credit because the developers have tried bookmark browsing and the reading list.
ecause this is a special to introduce new ideas into the GUI The sidebar is also home to the AI chat
Extensions
Add features and make things work the way you want them to.
or Browser is built on a basic Firefox base. The Brave uses the same approach as Vivaldi as it has a few
Tracking and
fingerprinting
Make sure only entities you approve
of can see what you’re doing.
e put the browsers through the EFF’s Cover Your Tracks
As a daily driver
How well does it work as a normal
browser for day-to-day use?
verall, Tor Browser can be used for basic, standard
The verdict
Secure browsers
e’ve made Brave our top pick as a privacy and
ALSO CONSIDER
All of these browsers are based on mainstream browsers. distro that can be booted from a flash drive and includes Tor
+1%",/6n6,2 ,2)!1("1%"+,/*)3"/0&,+,#Firefox or Browser. It’s about as secure a setup as you can get.
Chromium and research the most stringent security options, Opera is a browser with good privacy features. Although it
creating a customised, secure setup. Firefox, in particular, is now based on Chromium for rendering pages, it continues
exposes a lot of useful security options. to innovate in the area of interfaces. Opera also has a built-in
Tor Browser is a standalone browser that can be run from a VPN that should offer a similar level of anonymity as browsers
directory on your hard drive or from a flash drive. Tails is a live that can connect to the Tor network.
%"+"4:=o8<3"/0&,+,#2+12&0
%"/"n+!&1}0$"/"!1,4/!0!2)v
,,10"12-0o& (""/0 explains
%,41,/2+&1),+$0&!"&+!,40o
T
1,0"12-6,2/1,4") ,*"&10+"4
about Ubuntu: releases are ,**&11&+$6"11,#2))v),4+&+01))o # ,-"/1&+$0601"*o
(almost always) as regular 0,n1%&0#"12/"&0#,/6,2o"}))4)(6,2 "}))01"-6,21%/,2$%1%""+1&/"
0 ), (4,/(o "/"4"/"n 1%/,2$%1%"-/, "00,# /"1&+$2+12 &+01))1&,+-/, "00x*!""3"+"0&"/
/")60&5*,+1%0#1"/2+12:<o98 &+01))1&,+*"!&n-)20/"3")%,41, 1%+(01,2+12:=o8<}0&*-/,3"!
--"/"!n+!&1002 "00,/&0)/"!6&+ 1"01&1&+ ,*-)"1"0#"16#/,*,1%1%" &+01))"/#,/!2)v,,10"12-0n-)20$&3"
1%"2&)!&+$o5&01&+$2+12:<o9820"/0 )&3"!"0(1,-+!&+3&/12)"+3&/,+*"+1o 6,21,2/,#1%"2+12:=o8<!"0(1,-n
0%,2)!%3"/" "&3"!1%"-/,*-11, "}))1%"+$,,+1,/"3")%,40&*-)" 4%&)"/"3")&+$%,41,(""-6,2/0601"*
2-!1"6+,4n4%&)"2+12:<o8< – and relatively safe – it is to install 2-1,!1"n#&+!+!&+01))+"4--0n+!
20"/0&*-1&"+1#,/+"4#"12/"0 + 2+12:=o8<),+$0&!"&+!,40o,2})) %,41,1/6,21!&##"/"+1!"0(1,-0,2
p Magictorch
VIRTUAL UBUNTU
ot only is it technically possible to run Ubuntu drive? The latter is preferable – you can buy an internal
installation (leave Default Selection selected) or one label it’s been allocated) has been detected and will be
with more preinstalled apps (Extended Selection). We configured for Ubuntu 25.04.
recommend the latter as it includes a data backup tool You should also check to see where Ubuntu’s boot
(deja-dup) as well as an office suite (LibreOffice), photo manager – GRUB – is likely to reside. In most cases, it
organiser (Shotwell), email client (Thunderbird) and will be placed on the Windows Boot Manager partition
media player (Totem). Make your choice and click Next. (you can confirm this by checking that it says ‘Used for
Tick both boxes to install recommended proprietary boot/efi’), even if you’re installing Ubuntu on its own
software, including drivers and support for additional drive. All other partitions should remain unchanged.
media formats that isn’t open source, then click Next. Once you’re happy that Ubuntu has detected your
chosen disk or partition, click Install. Now sit back as
Configure dual boot Ubuntu installs itself to your PC alongside Windows.
We now reach the crunch section – you’re asked ‘How
do you want to install Ubuntu?’ As you’ve done the Post-install steps
%/!4,/(,#0"11&+$2-6,2/!&0(+!-/1&1&,+)6,21 Once installation completes, you’re returned to the live
accordingly, you can leave Install Ubuntu Alongside desktop. Time to test your new install – click the button
Windows Boot Manager selected and click Next. in the top-right corner to reveal a pop-up menu. Click
You’re given the option of encrypting your hard the power button and choose Restart, then click
!/&3"x//")6+" "00/62+)"006,2}/"20&+$)-1,- Restart again. When prompted, remove your boot flash
and have sensitive information to protect. Show drive or DVD and press Enter.
Advanced Options reveals even more encryption and All being well, you should be greeted with the GRUB
filesystem options, none of which are needed for a menu, but this time it contains different options. By
simple dual boot setup, so leave No Encryption selected default, Ubuntu is selected and if you don’t use the
(or choose to encrypt your drive with a passphrase and arrow keys to change boot option, it automatically
follow the prompts) before clicking Next again. starts after a 10-second delay. You should also see
The next screen prompts you to set up your Ubuntu Windows Boot Manager as an option – selecting this
user account. This will be used to log into Ubuntu, plus loads your existing Windows installation as normal.
you’ll need to enter your account password whenever Going forward, GRUB will always default to the first
6,2+""!")"31"! "001,1%",-"/1&+$0601"* option (Ubuntu) in the list – we’ll explore how to change
(such as when installing new software). With this mind, this in the final pages of this feature. For now, let Ubuntu
choose a password that’s strong, but easy to remember. load and click your username when it appears at the
You’ll also see Ubuntu give your computer a name to login menu. You’ll find yourself at the desktop where
identify it on your network – this can be changed as you’re greeted by a post-setup menu. Click Next.
required. Leave Require My Password To Log In ticked Step one is to agree (or not) to sharing system
and click Next. The penultimate step is to confirm your !14&1%1%"2+121"*o,2}/"1%"+-/,*-1"!1,
time zone, then click Next again. explore the Ubuntu App Center, which is where you’ll be
able to add new programs to your Ubuntu installation.
Confirm dual boot setup Click Open App Center or click its shortcut – then find
You are now given a detailed summary of your out more about what’s on offer in the box (opposite).
0"12- %,& "0o%"*,01&*-,/1+11%&+$1%1
/".2&/"0 %" (&+$&01%"/1&1&,+00" 1&,+n4%"/" Stay up to date
6,2}))0"""5 1)64%"/"2+12-)+01,&+01))&10")# Like all OSes, staying up to date with the latest features,
alongside Windows. fixes and security patches is essential. Ubuntu prompts
Ubuntu (and Linux in general) labels disks as sda, you for updates via the Software Updater app
sdb+!0,,+n4&1%-/1&1&,+01%"+$&3"+)")002 % (accessed via the Launcher). You can review the
00!9, sda2 and so on. The key thing is this: if you’re updates, or just click Install Now, enter your password,
installing Ubuntu on the same drive as Windows, you and keep things running smoothly. While updates are
should see that Ubuntu 25.04 is listed on your primary being applied, click Details to reveal a window similar to
drive (sda) as the final partition (so sda5 in our the Windows command prompt (the Linux terminal)
example), marked as ‘Created and formatted as ext4 displaying details about the updates being downloaded
used for /’. If you’ve installed a dedicated hard disk for and installed. Once complete, click OK, then turn the
Ubuntu’s use, you should find that sdb (or whatever disk page to start exploring your new desktop in detail.
fter logging into Ubuntu proper for the first apps and attached drives. Several key apps are pinned
greeted by the full path (such as /home/username), Navigate your new desktop
which you can manually change to whatever you wish.
1 4 5
Customise your setup
When you open the quick-access menu, you’ll see
shortcuts for managing networks, changing volume,
switching power mode and toggling the Dark Style 2
desktop theme. Above the volume slider are four icons,
including one for triggering screenshot capture (or use
the Print Screen key) and accessing the Settings tool. 6
This works in a similar way to the Windows settings
tools – browse the categories on the left, divided into
five sections. Work through these to tailor Ubuntu (and
Gnome) to your needs, whether configuring hardware,
setting desktop preferences or connecting online
accounts. Press F1 at any point to open a help
document describing the currently selected category. 3
Terminal access 1
Switch workspace
Gnome supports multiple virtual desktops 4
Calendar
Click here to display the notifications
It’s easy to forget, but Linux remains a command-line- it dubs workspaces. Click this switch to add new panel (complete with Do Not Disturb switch) as
based operating system. Gnome sits on top of the workspaces, switch between them and access well as a calendar and list of any events due.
underlying OS, and it’s added more and more features Ubuntu’s search tool.
to make it possible to minimise (if not eliminate) your Quick-access menu
Dock 5 Click the icons in the top-right corner
exposure to the command line. Still, there will be times 2 The equivalent of the Windows taskbar, to access a series of shortcuts, including the
when you need to access the underlying shell. this houses shortcuts to favourite apps (which Settings and all-important Power buttons.
In most cases, you can do this from the comfort can be pinned), plus drives and open windows.
File manager
,# +,*"0&*-)66,-"+&+$1%"1"/*&+)n1,,)1%1
Launcher 6 Ubuntu’s default File Manager works in
gives you direct access to the underlying OS. You can 3 The Windows Start menu! Click here a similar way to Windows’ own File Explorer.
access the terminal via the Launcher, but the quickest to bring up a list of shortcuts to all installed Click inside Home to view the full path to the
461,,-"+&1&04&1%1%"1/))10%,/1 21o ĥÆüäÐĬƧǎĬÐǎijéÐǎĬÐĨÆéǎÅķijijČĆǏijČǎħķìÆüÿőǎ currently selected folder.
The terminal isn’t just a place to go when there’s no locate an app.
other option, but can be a more efficient way to get
things done. For example, the following option quickly would prefer that GRUB remembered your last choice,
finds, downloads and installs the latest updates: then you’ll need to edit a system file – and that involves
$ sudo apt update && sudo apt -y upgrade using the terminal. First, you need to open the file in
When you perform the update check, you’re the nano text editor:
prompted for your password; that’s because updating $ sudo nano /etc/default/grub
Ubuntu requires elevated (administrator) access, Now change the GRUB_DEFAULT=0 so it reads
4%& %&04%11%"sudo command does. You don’t need GRUB_DEFAULT=saved , then add the following line
to enter your password every time you use sudo, but beneath it:
you will be prompted at set intervals. You’ll also be GRUB_SAVEDEFAULT=true
prompted for your user password when attempting to + "!,+"n-/"001/)n1%"+-/"004%"+
do certain things from the desktop (including running prompted to save the file. Finally, you need to issue the
the update check) – it’s not an annoyance, but a vital following command:
security feature that ensures nothing can get at the $ sudo update-grub
deep parts of your system without your explicit say-so. Going forward, GRUB will remember your last
choice and make that its default.
Edit GRUB menu
By default, GRUB will always boot into Ubuntu unless New features in Ubuntu 25.04
you specifically select Windows Boot Manager. If you One advantage of installing this brand-new version
,#2+12&01%16,2}/"+,4,+1%"#011/ (1,+"4
and improved features, with major new versions rolling
out every six months. One of Ubuntu 25.04’s most
visible new features is a new Wellbeing section in
Settings – not only can you use it to track your
computer usage, but you can also configure it to
prompt you to take regular eyesight and movement
breaks. It can even be used to set screen and daily
limits, too.
Other improvements are outlined in our full review
(see page 22) – these features won’t stand out
necessarily if you’re new to Ubuntu, but they’re proof
that the operating system is constantly evolving and
There’s no need to be afraid of Linux’s command line – the terminal improving, making it your perfect companion (and
lets you interact with it from the comfort of your desktop. eventual successor) to Windows.
system debuts
such as the
Raspberry Pi
Foundation to help
boost people’s
maker skills.
One size does not fit all, especially for embedded CARE IN THE
systems in industrial situations. COMMUNITY
ecognising the need in industry
R
%"9;1%&/1%!6,#1%"
#,/%&$%)6 201,*&0"!2&)!0,#&10 Raspberry Pi has been and gone,
Raspberry Pi OS, the Pi Foundation +!4"+,4"+1"/1%"4(4/!
is introducing/-&v&*$"v$"+n+)1"/+1&3" teenage years! Raspberry Pi has
1,,)1,pi-gen, 1,%")-$"+"/1"%&$%)6 $/,4+2-),10&+ "&12/01,+1,
201,*&0"!0,#14/"&*$"0#,/1%"&o 1%"0 "+"o +1%""/)6!60n4"
%"/"/""5&01&+$1%&/!v-/162&)! 04"$"/20"/0 40,+",#
0601"*0n21&+1/,!2 &+$+&+v%,20",+" 1%"*$/0-&+$#,/1%" %+ "1,
"+)"00-"//6&1,%3"0&+$)"0"1,# $"11%"&/%+!0,+,/!o%&0
0,2/ "01%1 +"2-!1"!n&*-/,3"!,/ 40/"-)& 1"!!2/&+$1%"
#&5"!&+0&+$)"-) "+!0,3&))"1,)) -+!"*& +! %&- /&0&0,#
&**"!&1")6n4&1%,21!")6o :8:8v:8::n4&1%0-"//6&0
%"+"40601"*&+1/,!2 "0-/,#&)"0n "&+$0//"01,&)"1--"/o
&*$")6,210+! ,+#&$#&)"0o/,#&)"0 21 (1,1%"-,&+1o +1%,0"
CREDIT: Raspberry Pi Foundation
Twister OS 3.0.2
Les Pounder hasn’t seen Twister, or the sequel, Twisters, but he has
played Half-Life, live on air using a Raspberry Pi and Twister OS.
t has been some time since
IN BRIEF
The latest
I we used Twister OS, and we
haven’t used it with the
release of Raspberry Pi 5, so the recent release
Twister OS is of Twister OS 3.0.2 was welcome.
geared towards "1"01"!&1,+&=9> /2++&+$
the Raspberry from an NVMe SSD. Installation was
Pi 5 and 500, /""7"20&+$Raspberry Pi Imager
offering a slick +!,,11&*"0/"46#01"/1%+
and fully- Raspberry Pi OS, despite them both
featured sharing a Debian foundation.
experience Twister OS is all about choice. You
#,/1%,0" can choose your theme, from the light
looking for an or dark Twister OS themes to many
alternative to versions of Windows and a nod to
the official o" %,0"1%")&$%1!"0(1,-+! Twister OS’s themes include Windows and Mac doppelgangers. We prefer the default theme.
Raspberry Pi it was a great experience. It looked
OS. Coming good and the layout saw the Applications menu in the one snag: there was no preview window to frame our
with different top-left, which also has a section for settings such as shot. However, the camera was able to capture an image
app stores and display configuration. Wi-Fi, Bluetooth and so on are using rpicam-jpeg and the quality matched what we have
easy-to-use &+1%"1,-v/&$%1n'201,3"0,*"),3")6v),,(&+$Conky already tested with Raspberry Pi OS.
tools to tweak graphs. At the bottom is a plank dock, with a selection The GPIO is usable; we tested using the Python
the OS for extra ,#--01%16,2/"#/""1,14"(n&+ )2!&+$Chromium library GPIO Zero and built a simple test project. More
performance, Media Edition. Geared for DRM-protected streaming advanced uses of the GPIO depend on requirements–
Twister OS services such as Netflix, Hulu and Disney+, it works well. using lgpio requires a little effort, but is possible.
&0$/"1 On the desktop are two installers for PiKISS and The beauty of Twister OS is its simplicity. It is primarily
alternative OS. Pi-Apps. The former is a terminal-based application to focused on providing a beautiful and slick experience to
install extra apps and tweak the OS. You can also install the end user, but it doesn’t sacrifice on features. Sure the
and play older PC games, such as Half-Life, using it, as camera issue is awkward, but we can work around it.
we demonstrated on an episode of Tom’s Hardware, The This could be your daily driver. It does most of what
Pi Cast. Underlying the OS is Box86, Box64 and Wine, Raspberry Pi OS does, but looks like a ‘grown-up’ OS.
offering the ability to play older games. You do need legal It did feel a little sluggish, even running from a Pi 5
copies of them, including the Steam installation files. with NVMe SSD. We went into raspi-config, enabled PCIe
Pi-Apps and
PiKISS are Gamers are well catered for, with emulators for classic Gen 3 speeds and rebooted. We then confirmed it was
included with retro consoles, and even the Nintendo GameCube and enabled by using dd1,/"!1%""!/&3" ,+1"+101,
Twister OS and Wii. Pi-Apps is an app store for the Raspberry Pi and it /dev/null. Read speeds were 892MB/s but the OS still
they bring two provides an exceptionally easy means to install apps for felt a little slow to react. But we are sure this will be
extremely easy
means to install coding, gaming, illustration, office and even 3D printing. smoothed out as new releases are made. Twister OS is a
applications for We tested the official Raspberry Pi Camera Module 3 fun and very capable OS that we could easily use for our
the host OS. and it worked out of the box with Twister OS, but with next Pi project, or even as a lightweight desktop.
VERDICT
DEVELOPER: Pi Labs
WEB: https://twisteros.com
LICENCE: Mixed
Rating 8/10
Modulo 5 Basic
Is it a Pi? Is it a Pine? No, it’s Les Pounder waving the latest Pineboards
expansion around. Stop it Les, put it down!
oland’s Pineboards has a
IN BRIEF
At a glance, this
P history of beating Raspberry
&1,1%"*/("1o"041%&0
is a Raspberry 4&1%&+",/!0} 1/&3"0jn4%& %
Pi 5, but delving brought PCIe-based storage (and AI
deeper, we can accelerators) to the freshly released
see that there Raspberry Pi 5. Its latest Modulo line
are many key &0#,/1%"&,*-21",!2)"=+!<n
differences +!/&+$0&=v)&(""5-+0&,+o
between the At first glance, you’d think this was a
two. Chiefly, the Raspberry Pi 5. But look a little closer,
CM5 PCB in the and you’ll realise that there are several
centre of the differences between the two. The CM5
board, which PCB in the centre of the board has a
has a very very similar layout to the Raspberry Pi 5
similar layout to x1%",n9+!/"&+0&*&)/
the Raspberry locations – but the eMMC (if your CM5
Pi 5. has it) is on the underside of the CM5.
The other differences are the
location of the camera and display
connectors, moved behind the USB There’s something missing from this Raspberry Pi 5… Hang on!
ports and the ports for the RTC battery,
#++!!"2$o3"/61%&+$")0"&01%"0*"0,+ application. On the Modulo 5 Basic, flip the switch to
Pi 5. This means the Modulo 5 Basic can be used inside Flash Mode, then connect to your PC via the USB Type C
1%",##& &)&= 0"q,1%"/ 0"0*6/".2&/"14"(&+$o cable. Press the power button twice and the CM5
The PCIe connector is in the same place as the appears as a USB device. All you need to do now is open
Raspberry Pi 5 and that means we can use Pineboards’ Raspberry Pi Imager and flash your chosen OS.
1/&3"j+,,/+,1%"/o: #,/#2)) " "+ Using the GPIO on the Modulo 5 Basic is just as easy
;o8"5-"/&"+ "o"1"01"!&1+!6"0n4"$"11%"0*" as on a Raspberry Pi 5, and it comes with the Python
performance as a regular Raspberry Pi 5. +!9&002"01%1)0,# "1%"&=o"%!+
Technically, the official Raspberry Pi 5 Active Cooler blinking and fully controlled from a push button with just
&0 ,*-1&)"n216,2+""!1,20"1%"&+ )2!"!,!2),= a few lines of the GPIO Zero Python 3 code. Adding a
0& v ,*-1&)"-)01& -)2$0o"1/&"!1,-211%" 1&3" HAT to the GPIO will vary greatly depending on software
cooler on the Modulo 5 Basic without the plugs and it support. Newer HAT+ boards will work, but right now,
was just too thick, because the CM5 sits on top of the we’ve only used HAT+ boards that connect to the PCIe
connectors, raising it a few millimetres. You can get one connector, not the GPIO. Using something such as
side on, but the other side tilts upwards, with the plastic &*,/,+&}05-),/"/ 1/,4,2)!/".2&/"0&$+&#& +1
/1+1)&0&+$)6 ),0"1,1%",!2),=0& o,+}11/6 workarounds given the changes to how the Raspberry
1,#,/ "&1j"!&!+!4"|0)&$%1)6}4/-"!1%"o Pi’s GPIO now works.
It bent back OK, and everything works. If you want
cooling for your CM5, use the official Pi 5 Active Cooler
with the Modulo 5 Basic plugs. Or use the CM5 passive
VERDICT
cooler (it comes with the official CM5 development kit) DEVELOPER: Pineboards
,/1%"" ,,)"/n4%& %/&+$0 1&3" ,,)&+$n#2))6 WEB: https://pineboards.io
controlled by the OS via the fan connector. PRICE:[<A^;@
%"0-"//6&*"/0+!+"4,2 %&0-)6
:o84,/(4&1%1%",!2),=21 "001,1%" ,++" 1,/0 FEATURES 8/10 EASE OF USE 7/10
&01&$%1n"0-" &))6%"=&0)/"!6&+0"/1"!o" PERFORMANCE 8/10 VALUE 7/10
used a plastic spudger to unlock and lock the plastic
tabs. After that, we told the Raspberry Pi CM5 where to A good compromise of the Raspberry Pi 5 form factor.
find our camera and screen. You see, the CM5 does not ?ijǏäìŊÐĬǎķĬǎijéÐǎyĬĥÅÐĨĨőǎvìǎůǎÐŐĥÐĨìÐĆÆÐƨǎÅķijǎŋìijéǎĆǎ
21,*1& ))6!"1" 11%"!"3& "0x6,2+""!1,!!"51/ ķĥäĨÌÐÅÿÐǎVůǎijǎìijĬǎéÐĨijƧ
lines to /boot/firmware/config.txt for it to find them.
Flashing an OS to the CM5 via the Modulo 5 Basic is Rating 8/10
really simple. On your PC, run Raspberry Pi’s RPiBoot
PI PICO W
Frost-free fruit
with a Pi Pico
Les Pounder grows strawberries in his garden, but now he has planted a
Raspberry Pi Pico, hoping for a fresh crop of raspberries.
else:
oled.text(“Disconnected”,0,0)
oled.show()
time.sleep(5)
Inside of a while True (forever) loop, we clear the
OLED display before taking a reading using the DHT11,
followed by a short pause:
while True:
oled.fill(0)
oled.show()
sensor.measure()
time.sleep(1)
Create two objects, temp and hum, and in them,
store the current temperature and humidity reading,
rounded to two decimal places:
temp = round(sensor.temperature(),2) message is told the name of the topic, and the data we The circuit has
hum = round(sensor.humidity(),2) wish to send (in this case the current temperature). The two parts: the
input (DHT11)
Print values to the Python shell for debug purposes: headers section is used to set the title, ‘FROST and the output
print(temp, hum) ALERT!’, and the priority (five being the highest). Tags (OLED display),
The OLED display displays the live data. Starting are used to inject an emoji into the message for easy with only seven
from the top-left, we print ‘Temperature’, then moving identification. Note that the temperature of 25 is used wires needed
ãČĨǏÆČĆĆÐÆijìČĆƧ
!,4+9>-&5")0n4"-/&+1| 2*&!&16}p for testing; set this lower for your trigger temperature:
oled.text(“Temperature: “,0,0) if temp < 25:
oled.text(“Humidity: “,0, 16) requests.post(“https://ntfy.sh/garden_shed”,
To insert the values, we use the oled.text() function, data=(str(temp)+”C”),
but pass the data as strings, not integers/floats as it headers={
causes errors. The position of data is passed using X, Y “Title”: “FROST ALERT!”,
coordinates. The temperature is on the first line, so we “Priority”: “5”,
set the Y value to zero, but the X value (horizontal) is “Tags”: “thermometer”,
95, giving it space from the ‘Temperature’ text. The })
same practice is applied to the humidity data: If there is no frost, the else condition uses pass to
oled.text((str(temp)+”C”), 95,0) ),,-n"#,/"1%" ,!"-20"0#,/,+"%,2/;n>88
oled.text((str(hum)+”%”), 85, 16) seconds). Then the process repeats itself.
oled.show() Save the code as main.py to the Pi Pico W. This
Now let’s add notifications on our smartphone using /2+01%" ,!"4%"+1%"& ,&0-,4"/"!2-o,4"/
Ntfy.sh. To use it we need an Android or Apple device. cycle the Pico and watch the OLED display. You should
Download the app from the app store and open it. We see ‘Wi-Fi Connected’ followed by the current
need to subscribe to a topic, so click on the + in the temperature and humidity. If you left the temperature
bottom-right. In the Subscribe To Topic dialog, set the at 25°C, the alert should appear on your phone.
topic name. We used ‘garden_shed’, but remember
Ntfy’s app is very
that this is a public topic, so anyone can see the output. easy to use and
Make the topic name unique and click Subscribe. The you will soon
topic page appears, where all the messages for our be sending data
topic are archived. Go back your phone’s home screen from your Pico W
ijČǏőČķĨǎĥéČĆÐƧ
– that way notifications appear when we test the code.
Back to the code on the Pico. A conditional test is
used to read the value stored in the temp object. If
1%"1"*-"/12/"!/,-0"),41%&03)2"n20&+$/".2"010
we construct a message that is sent to Ntfy.sh. The
The RX 9070
XT is based
on AMD’s
new RDNA 4
architecture.
Inside the
+"4$"+"/1&,+,# 0&0%"/"o*1"2/$"+"),$&01
Jarred Walton-& (0-/11%"#*&)6%"/&1$",#<o
MD’s brand new Radeon RX 9070 and "1}0 %" (,211%"0-" &#& 1&,+0#,/}0<
A A8?8,1%0%&--"!,+>1%/ %o
%"</ %&1" 12/"+!!",+
A888v0"/&"0 04"/"-/1&))6
0n1)(,21/ %&1" 12/)2-!1"0n+!!&$&+1,))
1%",1%"/!"1&)0o
,/#2))0-" 0 (see the table, page 51) 1%"A8?8
/"3")"!1:8:=n"5 "-11%"64"/"+}1-/1,# ,)2*+0%,2)!"#2))6 2/1"o"}/"/"0,+)602/"
}0("6+,1"o%"0"4&))$,2-$&+011%"3&!& 1%"/"4&))"1/&**"!v!,4+A8>820&+$1%"
) (4"))=8v0"/&"0 0+!1%" +1") 0*"3&<@!&"01%"A8?8 /!0n'2014&1%#"4"/
11)"*$"/ v0"/&"0 0o&("3&!&}0 0,*-21"+&10+!*"*,/6 ,+1/,))"/0"+)"!o
=8v0"/&"0$/-%& 0 /!0n}0<)2+ % "),41%1n1%&+$0$"1*2/(6o
0""*01,%3"""+!")6"!n1%,2$%-"/%-0#,/ ,,(&+$11%"A8?8n&120"0#2))6"+)"!
!&##"/"+1/"0,+0o 3&<@!&"1%1&+ )2!"0><<0o,*&+"!
#6,2),,(1$/-%& 0 /!3&)&)&16/&$%1+,4n 4&1%:oA? 7,,01 ), (+!:=>v&1*"*,/6
4%1" ,*"0&**"!&1")6 )"/&01%13&/12))6 &+1"/# "4&1%:8 0 >n1%",1%"/0-" 0
"3"/61%&+$&00,)!,21,/n11%"3"/6)"01n0"/&,20)6 *,01)6 ,*"#/,*01/&$%1*1%"*1& ) ) 2)1&,+0o
,3"/-/& "!o 10""*0 )"/"!1%"?888v0"/&"0 %"A8?8&0*,01)61%"0*" ,+#&$2/1&,+n'201
0#/,*0%,-0%")3"0&+" "*"/+! +2/6o 4&1%=>0+!:o=: 7,,01 ), (x0201+1&))6
+)61%"),4"/1&"/?>88+!?>88/"01&)) ),4"/1%+&10&$$"/0&)&+$n1%,2$%4"}))%3"1,4&1
&+01, (o%"/"02)1%0""+!/*1& ))6&+ /"0"! +!0""4%1/")v4,/)! ), (0 12))6),,()&("o
!"*+!#,/"3"/61%&+$#/,**&+01/"*1,%&$%v"+! 4 ,*-21"4,/(0,211,<@o? ;:,+
$/-%& 0 /!0n+!3&!&}0=8A8n=8@8+! 1%"A8?8+!;>o9 ,+1%"A8?8o+--"/n
=8?8&))0,)!,21)*,01&+01+1)61)2+ %n0, 1%1*("01%"2-1,;=#01"/o +-/ 1& "n4"
4" +}10""02--)6 ,-&+$o21"+,2$%0!1)(o 020-" 11%"14, %&-04&))".2&1"&1 ),0"/+!1%1
MONOLITHIC GPUS
+",#1%"&+1"/"01&+$ %+$"04&1%<&01%1&0n1)"01
#,/+,4n!&1 %&+$1%" %&-)"10--/, %o 1*6 ,*" (1,
1%1&+1%"#212/"n211%"3&<@+!-/"02*)61%"/2*,2/"!
3&<<4&))"*,+,)&1%& %&-0o&0)0,2-$/!&+$#/,*}0
=-/, "00+,!"20"!,+;1,1%"<+,!"#,/<o
&0+}1/"))61/6&+$1,1("!,4+3&!&}01,- 0o%") (,#
?*"*,/6,/)/$"/!"0&$+-/,3"1%&0o%"3&<@ %&-4&))
%,20"=;oA&))&,+1/+0&01,/0&+;=>o=**:!&"o3&!&}0 :8;
20"!&+1%"=8@8+!=8?8& ,+1&+0<=o>&))&,+1/+0&01,/0
&+;?@**:!&"o%& %*&$%102$$"01 12))6%002-"/&,/
-/, "00+,!"+!,/!"0&$+o214" +}1/"))6 ,+ )2!"1%1o
AMD is finally offering the AI acceleration that’s being demanded.
/ %&1" 12/"n+!0""*01,"1(&+$0&*&)/
--/, %o 1)&(")6!,"0+}1%")-))4,/(),!0".2))6n
21060&1!,2)"01%"9"+ ,!&+$1%/,2$%-21o
&+))6n< 04&))02--,/1 "=o8
&+1"/# "0o%1!,2)"01%"1%/,2$%-21,3"/1%"59>
)&+(n1%,2$%&+-/ 1& "*,014,/(),!0)&(")64,+}1
0""*2 %"+"#&1o *&+$!,"0+}11"+!1,+""!*,/"
1%+ ";o8n,/-"/%-0<o8n4%"+20&+$#2))59>
,++" 1&,+o ,4"3"/n +! "/1&+ ,+1"+1 /"1&,+
10(0 +"+"#&1#/,*1%"!!"!+!4&!1%o,+}1"
AMD’s RX 9070 02/-/&0"!%"#212/"3&<@ %&-0+!-,00&)61%"
XT performed A8>8 211%"&+1"/# "!,4+1,5@,/"3"+5<o
nearly twice +"1%&+$1%1&0+}1 %+$&+$#/,*;&01%"
ĬǏŋÐÿÿǎĬǎijéÐǎ
*"*,/602--,/1o%&)"3&!&%0*,3"!)),#1%"
y ǏűųŪŪǎ ǎ
ŋìijéǏ}ijÅÿÐǎ ,+;n+!1%" <1%/,2$%-210""00&*&)/2- ++,2+ "!) (4"))=8v0"/&"00,)21&,+01,
Diffusion XL. 1,"&$%11&*"0&*-/,3"*"+1o ?n4&)) ,+1&+2"1,20" >n ), ("!1
$3"/")v4,/)!"5*-)",#%,41%&0##" 10 2-1,:8 0o,2-)"!4&1%:=>v&1&+1"/# ",+1%"
-"/#,/*+ "20&+$Stable Diffusion XL.%" A8?8+!A8?8 0n1%1/"02)10&+><8 0,#
A8?84&1%><01,,(,+1%"?A884&1%@< *"*,/6+!4&!1%o%1}01%"0*" - &16
0o%1$&3"01%",)!"/ ;9!3+1$"&+0n 01%"?A88 +!?@88n+!)0,1%"
211%"A8?8"+!"!2-!")&3"/&+$ ),0"1,14& "1%" 0*"03&!&}0=8?8&+!<8?8&2-"/o
-"/#,/*+ "o%14&))-/,3"3"/6%")-#2)#,/,1%"/ %">< +#&+&16 %"4&))&*-/,3"1%""##" 1&3"
+!* %&+")"/+&+$4,/(),!0n&+ )2!&+$v0"! +!4&!1%n1%,2$%!&!+}1-/,3&!"+6"01&*1"0
2-0 )&+$+!#/*"$"+"/1&,+(see FSR 4, below). ,# %"%&1/1"0o%"?A88 +!?@88
),+$0&!"1%"0" %+$"0n%0/"4,/("!0,*" ,1%%!>< +#&+&16 %"0n+!-/,3&!"!
,#1%" %"+!*"*,/6%&"// %6o 1!&!+}1-/,3&!" "##" 1&3"+!4&!1%/1"01%14"/",21#,2/1&*"0
)"/!"1&)0n21+,1"01%11%&0&01%"1%&/!$"+"/1&,+ 1%"0"*"*,/6+!4&!1%4&1%1%,0" 0n0,4"
,# +#&+&16 %"o%" - &16/"*&+0><n1%" "5-" 11%"3&<@ 04&))0""0&*&)//"02)10o
0*"0,+1%":=>v&1?A88 +!?@88n21 1}0)0,-,00&)"1%1#2/1%"/&*-/,3"*"+101,1%"
+,41%" %"&0$&+-/1,#1%"*,+,)&1%& %&-n0,&1 +#&+&16 %"%3"*!"&1)"00 /&1& )#,/1,
)&(")6%0"11"/)1"+ &"0+!1%/,2$%-21o *,3"1, ?1-/"0"+1o,+0&!"/&+$1%13&!&
060&1%0&*-/,3"! o:><.2)&1662- $"10<8&*-/,3"*"+1&+/4+!4&!1%#/,*
1,:=n o:>= 699n+!&*-/,3"!1%"9 :@ 0 ? ,*-/"!1,}0:8 0 >n
"+ ,!&+$"##& &"+ 6o 1)0,%0"11"/02--,/1#,/9 1%1*&$%10""*)&("0&7")"!3+1$"o ,4"3"/n
+!A!" ,!&+$+!/"!2 "!*"*,/6 "00"0o "##" 1&3"+!4&!1%#1"/# 1,/&+$&+1%")/$" %"0
"0&!"01%".2)&16&*-/,3"*"+10n<!!0 *6+,1"))1%1!&##"/"+1o
!2)*"!&"+$&+"o3&!&!&!1%&04&1%&10!
Super Resolution!
"0&!"01%"%/!4/"n%0)0,""+4,/(&+$
RX 9070 PERFORMANCE ,+3/&"16,##"12/"&*-/,3"*"+10o%"&$$"01
,+"&02+!,21"!)6&10,-"+0,2/ " <o%&0&01%"
2/"5&01&+$!1 ,*&+"!4&1%}0!102$$"0101%"A8?8 #,2/1%&1"/1&,+,#}0 &!")&16 2-"/"0,)21&,+
4&))"11%"=8?8&6-"/%-0>1<#,//01"/&01&,++!9: )$,/&1%*n+!&14&))/"(4&1%1/!&1&,+&+
19<<8-o +/61/ &+$n%,4"3"/n3&!&--"/01,01&))%3"1%" ,2-)",#("6460o
"!$"+!"/,2+!:8#01"/1<+!9<<8-o" +}1" &/01n <4&)))"3"/$"1%"*,/"-,1"+1
-/" &0"" 20"1%"/"/",1%"/# 1,/0&+-)6x!&##"/"+11"01&+$ ")"/1,/0&+1%"< 0o1)2+ %n&14&))
02&1"0n!&##"/"+1-)1#,/*0n+!14,)"3")0,#"51/-,)1&,+x21 /".2&/"+< o,4+1%"/,!#"4*,+1%0n
,3"/))&1--"/01%"A8?84&)))+!.2&1" ),0"1,1%"=8?8&o *61/6 (v-,/1&+$1%")$,/&1%*0,1%1&1 +
,&+$1%"0*" ) 2)1&,+0#,/1%"3+&))A8?8n&14,2)!" /2+,+;+!*6""3"+: 0x21&1
!" "+19:v9?-"/ "+10),4"/1%+1%"A8?8n4%& %4,2)!" 0""*02+)&(")6o
,214%"/"1%"<8?8&0&10&+,2/1"01&+$o214"!,+}1(+,4 +01"!n <4&))0& ))6 ,v"5&014&1% ;o9n,/
-/" &0")64%"/"1%"=8?84&)))+!6"1n0, +}1/"))6 ,*"1, /1%"/n1%"+,+v 2-0 )&+$4&)) ,+1&+2"1,",##"/"!o
+6 ,+ )20&,+o&1%,+)69: ,#,+1%"3&!&=8?8n 1}0+,1"+1&/")6 )"/"5 1)6%,41%&04&))-)6,21n21
%,4"3"/n&10""*0*,/")&(")61%11%"A8?84&))1("+,3"/)))"!o (""-&+$"3"/61%&+$2+&#&"!2+!"/,+"+*"*("0
%"A8?8 /!04"/"/")"0"!,+>1%/ %n21%0 *,/"0"+0"o%14"!,(+,4&01%1-)+01,
)0,1)"01-/1&))61"0"!+A8>8#*&)6,# 0o&))1%"/" )),4$*"/01,20"1%"*,/"-,1"+1 <)$,/&1%*
"*2)1&-)" /!0,/,+)6,+"l&))1%"/""),4"/v1&"/A8=8 ,+$*"01%1%3" ;o902--,/1o&))1%1%--"+
/!004"))l"}!$2"000,*"1&*""14""+6+!1%""+!,# 21,*1& ))6,//".2&/"!/&3"/0"11&+$01,$$)"l 1
1%"6"/n%,-"#2))60,,+"/1%+)1"/o 0""*0)&("1%")11"/n214"}))%3"1,4&1+!0""o
%"+*&+$0 %"*"#/,*02$$"0101%11%"A8>84&)) <&0+}1'201#,/2-0 )&+$n"&1%"/q&1)0,%0
,*-"1"4&1%1%"=8>8#*&)6o%14,2)!-"/%-0/".2&/" #/*"$"+"/1&,+o /,*,2/2+!"/01+!&+$n,1%
)/$"/ %&-1%+4%1}0&+!& 1"!o21?>88!,"01" %+& ))6 2-0 )&+$+!#/*"$"+4&))20"1%" ")"/1,/0
,*-"1"4&1%1%"<8>8n+!1%"/"}0+,<8=8+!-/,)6 ,#1%"A888v0"/&"0 0o)0,060<
4,+}1"+=8=8o &0+"2/)/"+!"/&+$/"!64&1%,21/"))6$,&+$&+1,
#2/1%"/!"1&)o/"02*)6n1%1}0/")1"!1,& /,0,#1}0
,*-+6,##$2/!x214%"+;//&3"!&+
:8::n&1/"))6+""!"!1,!,*,/"+!"*,/"o
%1}0&+1"/"01&+$&01%1))1%"0"+"4%/!4/"
#"12/"0%3"+}1 20"!*00&3"),1&+1%"!&"
Encrypt anything
For the modern computer user, sensitive information
comes in all shapes and sizes, be it text or PDF files,
,/"3"+&*$"+!3&!",#&)"0o,2 +20"Eddy to
encrypt all manners of files with the eddy encrypt
<filename> command.
You’re prompted to provide a password and then
Eddy stores the encrypted file in the current working
directory as filename.eddy.
$ eddy enc Bus\ Ticket-Delhi-Jaipur-08Feb2025.pdf
Bus Ticket-Delhi-Jaipur-0...
(63.05 KiB) [---------------------------------]
Done in 380ms
$ ls Bus*
‘Bus Ticket-Delhi-Jaipur-08Feb2025.pdf’ ‘Bus Ticket- so the structure of the command should be eddy Although Eddy
offers to force-
Delhi-Jaipur-08Feb2025.pdf.eddy’ <flags> <command> .
decrypt a file,
You can run the eddy -h command for a quick When encrypting files, Eddy doesn’t delete, rename bypassing the
introduction to Eddy commands, but here are the or otherwise interfere in any way with the original files. password check,
useful ones that you’ll commonly use: So, make sure you safeguard the original files, too, the files so
otherwise the whole exercise of encrypting them decrypted were
not readable in
Command Function would be rendered moot. our tests.
encrypt, enc, e Encrypt the specified files
If you have several files to encrypt, you can use
Eddy to simultaneously encrypt all of them with
decrypt, dec, d Decrypt the specified files the eddy enc <filename> <2nd-file> <another-file>
Generate a passphrase command. Each of the files is individually encrypted as
generate, gen, g filename.eddy. That is, Eddy merely encrypts the files,
of specified length
and doesn’t club them together. You’ll have to create a
You’ll notice the use of emojis in the output tarball, and then feed it to Eddy if you want to make
generated by Eddy to denote the completion of 0&+$)6"+ /6-1"!#&)"1%1 ,*-/&0"00"3"/)#&)"0o
operations. Run all Eddy commands with the
--no-emoji or the -n flag option to disable the use of Decrypt away
colours and emojis in output. All files encrypted with Eddy have the EDDY extension,
Instead of being prompted for a password, you can which makes them easily identifiable. A unique feature
also get Eddy to use a generated passphrase for added of Eddy is that the encrypted files don’t need to retain
security. The command eddy -g <passphrase length> this EDDY extension. So, the encrypted circular.pdf.
enc <filename> uses a passphrase of specified length eddy file can be renamed as youcantopenthis.pdf and
to encrypt the file. If no number is specified, Eddy Eddy can still decrypt it when called upon to do so.
defaults to a passphrase of six. If you don’t specify an output directory with the -o
$ eddy -g 8 enc Bus\ Ticket-Delhi-Jaipur-08Feb2025. command flag, Eddy decrypts the file in the current
pdf working directory. The exercise fails if a file with the
same name already exists. To overcome this, you can
NOTE: using this passphrase: ‘proponent-calamari- use the -w or --overwrite command flags to overwrite
playhouse-modify-avid-radiated-cranial-dipper’ the existing file when decrypting. It might make
Run the eddy dec <filename.eddy> command sense to create
Bus Ticket-Delhi-Jaipur-0... 1,!" /6-1#&)""+ /6-1"!4&1%Eddy. To specify a a repository
(63.05 KiB) [---------------------------------] different output directory, you have to run the eddy -o of several
<output-dir> -w dec <encrypted-file> command. passphrases, of
Done in 383ms Here, we’ve specified the output directory with the varying lengths,
and save them
Take note of the passphrase used by Eddy to -o flag, and used the -w flag to overwrite any existing
in a text file,
encrypt your file. You’ll be prompted to enter it when file with the same name. itself encrypted
you decide to decrypt the file. For now, it’s not possible to provide a name for the with a strong
The passphrase generator can also be used decrypted file, which retains the original name of password.
independently. In other words, you can run the eddy 1%"#&)"4%"+&140"+ /6-1"!o%&0&04%66,2/,+)6 You can then
gen <passphrase length> command to generate a recourse is to either use the -w flag and overwrite an decrypt this file,
random passphrase of the specified length. You can existing file of the same name, or to always extract and look up the
then use it with any other tool or for any other purpose encrypted files to a new directory. passphrase you
of your choosing. Eddy is a straightforward utility that doesn’t have a might have used
Eddy is particular about the syntax of the command, vast dependency list and can be quickly installed and to encrypt any
given file.
and the flags must be specified before the command, put to use by anyone.
MUSESCORE
Credit: https://github.com/musescore/MuseScore
I 0 ,*-,0"/n,/0&*-)64+1
1,-/ 1&0"4,/(&+$4&1%0%""1
music, there’s only one tool for the job.
MuseScore Studio 4.5 has just been
OUR released and builds on years of
development to add so many bells and
EXPERT whistles it’s hard to know where to start.
Nick Peers What is MuseScore? It’s professional
still can’t believe notation software that’s completely free
how reliable a and open source. You can use it with a
technology MIDI MIDI keyboard to simplify note entry or
has been over manually transcribe music using your
the decades. It’s mouse and keyboard. It supports standard
older than his formats like MusicXML, too, so you can
35-year-old easily import music from other sources – MuseScore’s New Score wizard ensures you have your score set up perfectly.
Yamaha PSS-790 it can even import from some PDF files.
keyboard (still the most recent of which dates back to 2022 (v3.6.2).
working). Making beautiful music Instead, head to the project’s www.musescore.org
A search for MuseScore in Ubuntu’s App Centre or where you’ll find a link to download the latest version
Mint’s Software Manager brings up several versions, as a portable AppImage. Other options can be found by
rolling your mouse over the Download shortcut above
and choosing Software from the drop-down menu, but
MUSESCORE AND THE CLOUD only one – Flatpak – offers the latest 4.5 release.
Beneath the link for MuseScore Studio is a further
When saving your score for the first time, you’re greeted by a pop-up link for Muse Sounds Manager – see the box (page 56)
dialog enabling you to choose between saving the file on your PC in for details on what this is and whether you need to
the usual way or storing it in the cloud through a free MuseScore install it for your individual needs.
account. The dialog stresses that all files are stored privately in your Once downloaded, make the AppImage executable
personal account, but you can also share drafts with others (great for – in Ubuntu, right-click the file, choose Properties, and
collaborative projects) and publish finished scores publicly, too. flick the Executable As Program switch on; Mint users
If you choose this option, you’re prompted to log into your need to switch to the Permissions tab and tick Allow
MuseScore account – do this to open a browser window and click Executing File As Program. Then simply double-click
Sign Up if you don’t yet have a free account. Once signed in, you’re the file to run the program.
given the opportunity to name your composition plus set its Visibility Alternatively, consider installing AppImageLauncher
– choose Private to ensure no one else can see it, or Unlisted if you (https://github.com/TheAssassin/AppImageLauncher
want to share it privately with others. You’re also prompted to create – choose the bionic_amd64.deb release in most cases)
an MP3 playback file of your composition for storing online – this is to integrate MuseScore (and other AppImages) into
based on your own user configuration, so includes any Muse Sound your desktop and shortcut menu.
instruments and effects you’ve applied through the Mixer panel.
Once saved, all future changes are automatically saved online. First score
You’ll also see lots of prompts to sign up for a PRO or PRO+ account When you first open MuseScore Studio, you’re greeted
– this isn’t necessary for solely using MuseScore for online backup, by a welcome dialog, enabling you to set a theme
but it does unlock more sharing, saving and publishing opportunities. (system, light or dark) plus your choice of highlight
colour on menu buttons. You’re invited to learn about
MuseHub and sound libraries – the sounds used when GO ON TOUR WITH MUSESCORE
playing back your scores through your PC. You’re then
directed to the Learn section of MuseScore’s Home
tab, where you’ll find a string of online tutorials
1
revealing how to use the program’s many features. 5
Switch back to Scores, where you’ll see a New
,/",-1&,+x )& (1%&01,,-"+1%""4 ,/"4&7/!n 4
2
which enables you to create scores from scratch or 6
3&1"*-)1"0o/"1&+$0 ,/"0#/,*0 /1 %&+3,)3"0
choosing the group you’re composing for (various
+!+!"+0"*)",-1&,+0 ,*-+6 %,&/,/
orchestra), then adding instruments to it in the order
they should appear on the score.
For small groups, selecting Create From Template
opens up pre-built templates – including options for
soloists as well as a General option for simple notation
involving a single treble clef or bass clef stave, or 3
Grand Staff (pair of treble and bass staves).
Make a choice and click Next. You’re prompted to
set key and time signatures, tempo and length in bars. Main notation
Note input
You can also add a title, subtitle and composer/lyricist 1 Use this toolbar to quickly insert and 4 Your score appears in this window – roll
credits, along with a copyright notice before clicking edit the notation on your score. your mouse over any element to select it.
Done to create the empty score, ready to be filled in.
Palettes Playback controls
2 You can add just about any element 5 Listen back to your composition using
Populate your score you want to your score from these a series of playback controls – including an
You’ll find yourself at MuseScore’s main window – the collapsible sections. optional metronome.
annotation (right) provides a quick tour. Let’s start by
discovering how to populate the staves with your Virtual piano Properties inspector
3 If you’re proficient with the piano, use 6 Customise just about every aspect of
music. The first bar and stave is highlighted in blue, the selected note, rest or bar from here.
this virtual keyboard to quickly enter notes.
indicating it’s been selected by default. To switch to
note entry, either click the pencil icon on the note input
toolbar above the main window or press N. button in the toolbar before adding your note as
Next, select the length of note you wish to insert normal. To convert a note to a sharp or flat, click the
from the selection on the toolbar and roll your mouse relevant toolbar button after entering (or selecting) the
over the stave – the note appears in blue as you move note. Tied notes are added automatically, but can also
the mouse – position it where you want it to go, then be added to an existing note by selecting the length of
click. You’ll hear the note get played for emphasis. You the following note, then clicking the tie button.
can then move on to the next note, or insert additional
notes for a chord under or over the original note. Use real instruments
As you enter notes, MuseScore automatically adds Entering notes in this way can quickly become tedious,
rests to fill the remaining space in each bar; however, but you can import scores from other sources plus It may seem
you can insert rests manually. To do this, click on the make use of keyboard shortcuts – A through G for note counter-
rest symbol on your score to select it – verify the rest pitches and 1 through 7 for note lengths – when in intuitive, but
MIDI cables
symbol is selected on the note input toolbar, then click Note Entry mode. There’s also a virtual piano – press P
should be
the note that corresponds to the length of the rest to bring it into focus, then simply tap on the keys with connected to
6,24+1o%"013"2-!1"04&1%6,2/ %,& ",#/"01 your mouse to input your notes. the ‘opposite’
followed by additional rests to fill the bar – these can You can also hook up a MIDI instrument if you have ports – so plug
then be replaced by notes as before. one. Connect it to your PC using a standard MIDI-to- the MIDI out
By default, only full-length notes are inserted – if USB cable, which can be had for as little as £6-7 online. cable into your
you’d like to add a dotted note, click the dotted note Verify the connection after plugging in the cables and instrument’s
switching on your MIDI instrument by opening a MIDI in port,
terminal window and issuing the following command: ĆÌǏŊìÆÐǎŊÐĨĬƧ
$ aplaymidi -l
You should see something like CH345 – CH345
MIDI 1 , confirming it’s been detected.
Now switch to MuseScore and choose Edit >
Preferences > Audio & MIDI. Click the MIDI Input
button and set it to CH345 (or whatever aplaymidi
displayed). If you’d like to hear your score played
through your keyboard, set MIDI Output to the same
device before clicking OK.
You should now be able to input notes using the
instrument when in note entry mode – however,
Sharing your compositions with others is easy thanks to MuseScore’s 6,2 +}10&*-)6-)612+"+!%3"&1*$& ))6
wide support for export formats (as well as online sharing options). transcribed in MuseScore; you literally use the
keyboard to enter notes one at a time at the currently enough, MuseScore also makes it possible to
set duration on the note input toolbar. customise just about every notation element going
Support for
You can map other tools to your MIDI keyboard’s 3&&10 ,/*116)"*"+2x&+ )2!&+$!, 2*"+1v4&!"
VST effects is
controls (Edit > Preferences > MIDI Mappings), making settings such as musical symbol and text fonts.
coming, but
if you can’t it possible to map common controls including playback
wait that long, and duration-setting tools to your keyboard. Customise your workspace
download the If you’re looking to play an entire piece of music on While it’s easy enough to switch tabs between
MuseScore your MIDI instrument and have it converted to notation, Palettes, Layout and Properties, there might be times
LXVST fork a better bet is to combine MuseScore with a MIDI where you’d like to see them all on screen together,
from https:// sequencer like Rosegarden (www.rosegardenmusic. particularly on larger screens. The good news is that
github.com/ com). Record yourself with this, then export the file in each one can be undocked – simply click and drag on
diedeno/ MusicXML format, which can be opened in MuseScore. its title. This converts the panel to a floating window,
MuseScore –
where it can be left sitting on top of your main display
visit https://
musescore.
Working with palettes or docked to either the left or right edge of the screen,
org/en/ Should you need to add other elements to your scores, where it can sit above or below any existing elements
node/351813 the Palettes sidebar has your back – expand a section or be merged back into a single multi-tabbed panel.
for a detailed like Clefs, Time Signatures or Tempo Notation, then Other panels can be flicked on and off via the View
description of drag and drop the item into place on your score. Click menu – some of these take up residence at the bottom
the problem the Add Palettes button to add other palettes, from of the screen, where you’ll find the virtual piano and
and what this arpeggios and glissandos to guitar fretboard diagrams. percussion as well as the mixer (see step-by-step
ãČĨüǎãìŐÐĬƧ Whatever notation you’ve seen on other scores, there’s guide). %"0"%,/&7,+1)-+")0 +"-) "!,3",/
almost certainly a palette for it in MuseScore. below the main notation and can be grouped into tabs
Should you need to add new instruments (or staves), just like the sidebars. One panel worth adding if it’s not
switch to the Layout tab on the sidebar, then expand already present is the History tab, which makes it easy
an existing instrument to see its current staves. You’ll to review and undo multiple actions quickly and easily.
see options to hide/show elements, add new staves to Over time, you may find you want to configure
existing instruments, or add new instruments. You can different layouts for different tasks – click Workspace:
rearrange, edit (click the settings button) and remove Default at the bottom and you’ll open the Workspaces
elements, too. Use Ctrl+Z if you make a mistake. dialog, where you can create multiple workspaces, set
The final tab on the sidebar – Properties – is up each one, then switch quickly between them.
context-sensitive and enables you to edit the current
object (such as a note or rest) or selection (like a full Play back your music
bar). Options are split into three collapsible sections: MuseScore Studio enables you to listen back to
General, Bars and Note. And if all these tools weren’t 6,2/0 ,/"006,2 ,*-,0"1%"*x6,2 +0""1%"
playback controls in the top-right corner of the are all stored when you save your file, so you can return
4&+!,4o&*-)"-)6+!/"4&+!/"',&+"!61,$$)" to them later.
loop playback control, plus an option to alter the MuseScore
playback speed using a beats-per-minute slider. The Print, publish and share publishes a
controls can be left fixed in place, or you can click and Once your composition is complete, MuseScore has comprehensive
drag them off the toolbar to convert them into a everything you need to produce the finished result. You online
floating window. can explore options via the File menu or switch to the handbook
to using the
When you click play, you’ll hear the music played Publish tab, where you’ll get a clean view of your score
program – it
back using whichever instruments you’ve allocated to as a double-page spread. Above this you’ll see Print
recently moved
them. These synthesised sounds are adequate, but and Export buttons, from which you can export the to a new home,
some (piano) are more realistic than others (strings). To entire composition or just selected parts in a variety of so bookmark
generate more realistic instruments, check out the box standard formats, including PDF, MIDI and MusicXML. https://
on Muse Sounds (opposite page). You’ll also see options to publish your score online handbook.
MuseScore also enables you to exhibit finer control at MuseScore.com as well as sharing any MP3 file musescore.
over playback through a built-in mixer, which makes it you’ve produced to Audio.com. You need to log into org for future
possible to assign individual channels to each 1%"/")"3+1,+)&+"0"/3& ""#,/"-/, ""!&+$o +"&1%"/ ĨÐãÐĨÐĆÆÐƧ
instrument and adjust their volume (and placement in event, you’re sharing your scores for free, so if they’re
01"/",*&5,++&+!&3&!2)0&0x1%"01"-v6v01"- not your own composition, make sure you’re not
guide (below) reveals how to set this up. These settings breaching any copyright rules by doing so.
and spreadsheets
Marco Fioretti explains how to create the same office files you can
make with LibreOffice – but without LibreOffice.
Plotting the have to do some conversions so we can convert this totalMinutes.append(int(minutes) + int
jogging data as a
bar graph instead.
into a total number of minutes for graphing. (hours))
Smoothed average
in black. Extracting the time Plotting the data
Thankfully, Python has a function for splitting strings You can then plot with:
separated by a delimiter. Let’s say that we assigned the plt.plot(totalMinutes)
time ‘0:36:00’ to a string variable called time. We can plt.show()
extract the individual parts of that time with: You can plot extra data by issuing another plot
time = ‘0:36:00’ command. Let’s say we want to superimpose a
hours, minutes, seconds = time.spit(‘:’) smoothed (averaged) version of these running times
This extracts the values that are stored in the string, over the top of the other plot. Create a list of smoothed
separated by the : character, to the variables hours, values using the uniform_filter1d function in Scipy by
minutes and seconds. These are still strings, but it’s adding the following at the top of the source file:
easy to convert between strings and numbers in from scipy.ndimage import uniform_filter1d
Python using the int() function. The total number of Add the following before the plot calls: smoothed =
minutes is: uniform_filter1d(totalMinutes, size = 10) to create a
totalMinutes = int(hours * 60) + int (minutes) smoothed version of the data set. After the first plot
In other words, the total number of minutes is the command, add the following line: plt.plot(smoothed)
total number of hours multiplied by 60 plus the number In languages such as Java, what we’ve done might
of minutes. We’ll leave off seconds for our purpose. require a lot of code for things like opening and closing
That small example extracts the values from a single the file. Python accomplishes importing the modules
time string. But, to be useful, our program must extract we need, loading data from a CSV file and plotting it on
the Times column into a Python list and then loop screen in several lines of code without dragging us into
around every entry to process it: the technicalities of how it all works at a low level.
times = df[‘Times’].tolist()
for counter in range(len(times)): Sleep data
totalTime = times[counter] Typical sleep data presents a few extra problems
hours, minutes,seconds = totalTime.split(‘:’) compared to the simple jogging data example. We’ll
R: AN EASIER ALTERNATIVE?
R is a statistical programming You can put together a
language. Python, on the great environment for data
other hand, is a general- analysis and visualisation by
purpose programming pairing R with RStudio. This
language. When learning data editor environment is in most
science programming, R is, distro repos, and it divides the
generally, easier to learn than screen into panels for source
Python. In most cases, R has code, variables and plots.
fewer ways of doing things If you’re working with data
than Python and much of processing and visualisation,
what you are likely to need you can probably get more
&02&)1&+6!"#2)1o%1}0 done, more quickly with R.
not to say that Python isn’t The downside is that it’s
popular with data scientists, +,1$"+"/)v-2/-,0" RStudio’s interface defaults to giving you panels for code, variables and plots.
but you’re constantly having language. For comparison, if
to learn how to work around you invest an hour in Python difficult, but you are and your programming skills
Python’s way of doing things. programming, it may be more improving your Python skills in general.
use the exported output from a sleep monitoring app A spreadsheet like
(or a fitness band). We begin by importing the CSV file LibreOffice Calc is
often the easiest
into a dataframe that we can work with: tool for cleaning
df = pd.readCSV(‘sleep.csv’, usecols [‘From’,’To’ ]) and arranging the
Here is a line of data from the file: data before using it
Index ID 2540 1583846984157 in Python code.
From 10. 03. 2020 13:29
End 10. 03. 2020 17:40
We’re not interested in the index number or the ID
for the entry, but we do need to know the sleep event
start time (From) and the sleep event end time (End).
As before, the date and time data is stored as a string.
We can’t use the simple approach of splitting the
string up this time, but Python has a method to convert
a string to a datetime object. Data conversion is
another area in which Python has become popular as it
handles situations like this so easily.
The first thing we need to work out is the date dateformat = “%d. %m. %Y %H:%M”
format. In Python terms it’s: “%d. %m. %Y %H:%M”. daylength = 1440
Where there’s a space in the source string, there needs This first half of the code sets things up. It imports When it comes
to be a corresponding space in the format string. the four modules that we’re going to use. It imports the to working
date_obj = datetime.strptime(date_str, “%d. %m. %Y CSV file with the sleep data into a dataframe. It then out the date
format string,
%H:%M”) sets up four lists for the starts, ends and lengths of
an AI chat can
The above line of code extracts the date from each sleep event, and for the storage of each day
be extremely
1%"01/&+$ ))"! date_str and places it in a datetime number. Following this, it creates a string variable helpful. We
object called date_obj. You can work with any format containing the date format string (dateformat) and a gave ChatGPT
for times and dates, if you can come up with an variable containing the number of minutes in a day. an example
appropriate date format string. Storing these in variables is handy as we can make date time, and
Languages like Python store times as the number of changes to the entire program by simply changing the ìijǏÌìÌǎijéÐǎĨÐĬijƧ
0" ,+!00&+ "901 +2/69A?8n(+,4+01%"+&5 line containing the variable assignment.
Epoch. It might sound like these numbers are huge, for counter in range(len(df[‘From’])):
21*,!"/+;:,/><v&1 ,*-21"/0 +%+!)"1%"* StartString = df[‘From’].iloc[counter]
easily. You can extract this number from the datetime StartTime = datetime.timestamp((datetime.
object, and this is called a timestamp. Once we have strptime(StartString, dateformat)))
the numbers, we can start to do maths with them. StartTime /= 60
date_stamp = datetime.timestamp(date_obj) StartMinutesCorrected = StartTime %
day = int (date_stamp / 60) daylength
time = int (date_stamp / 60 % 1440) days.append(int(StartTime / daylength ))
We convert the timestamp from seconds to EndString = df[‘To’].iloc[counter]
minutes by dividing by 60. Although computers can EndTime = datetime.timestamp((datetime.
handle times as seconds since the Unix Epoch, for strptime(EndString, dateformat)))
humans, minutes are easier to deal with if we need to EndTime /= 60
inspect the data manually. We then use the modulo EndMinutesCorrected = EndTime %
operator. Once you have divided a timestamp by 60, if daylength
6,2!&3&!"&1$&+69n<<81%"+2*"/,#*&+21"0&+ ends.append(EndMinutesCorrected)
day) and round it to a whole number, this gives you the starts.append(StartMinutesCorrected)
number of days since the Unix Epoch. The remainder lengths.append(EndTime - StartTime)
of the division is how far into the day the event is, in This sets up a loop that goes around the same
minutes, and the modulo operator (%) gives you this. number of times as there are entries in the From
When plotting as a bar graph, the day is the x axis of column of the data. We need to know three things
the graph, the sleep start is the bottom of a bar and the about each sleep event: its day, start time and length.
length of a sleep is the length of the bar. We can work out the length by subtracting the start
Here’s the finished program: time from the end time. Once we have calculated these
import numpy as np three bits of data, we append them to their lists.
import pandas as pd plt.bar (days, bottom=starts, height=lengths)
import matplotlib.pyplot as plt plt.show()
from datetime import datetime Finally, we plot the graph. We’re just scratching the
df = pd.read_csv(‘sleep.csv’) surface of what Matplotlib is capable of in terms of
starts = [] producing graphs for unusual situations. In this case,
ends = [] we use the optional parameter, bottom, to control the
lengths = [] bottom part of each bar, something that’s difficult to
days = [] do in a typical spreadsheet.
Part Three!
LINUX HARDWARE Missed an
issue?
%""/)69A@80*/("!
Instruction Set) approach, which we delved into 4&1%'201#"4"5 "-1&,+0n ,*-1&&)&16 ,+1&+2"!
)01*,+1%o throughout the whole of the 68xxx family of chips.
Motorola processors first hit the market with the %")1"/0" ,+!v$"+"/1&,+>@8;8%!*"*,/6 There are
@v&1>@88n (&+9A?<n+!4" +1%&+(,#1%10 management unit. several
fulfilling the same niche as Intel’s 8080. The company We’re not going to give a detailed description of the emulators
*&$/1"!1,9>;:v&14&1%1%">@888&+9A?An1%" continued development of the 68xxx, but here are the available for
the Amiga and
implication in the name, it’s been suggested, was that highlights. The third generation was heralded by the
Atari ST. For
&140981&*"0#01"/1%+1%">@88o%&0 %&-40 68040, which had a floating point unit, and clock
something
1," ,*"1%"#&/01,#0"/&"0,#>@555-/, "00,/0n 0-""!02-1,<8 7o+!1%"9AA<>@8>8n4%& % you’re only
,1%"/4&0"(+,4+0*>@(n'20101%" +1")@8@> 401%"#&/01#,2/1%v$"+"/1&,+-/, "00,/n*,01)6%! going to use
became the first of the x86 family of chips. Clock %+$"01%14"/"%&!!"+1,1%"20"/x#,/"5*-)"n on the odd
speeds from 4MHz to 20MHz were available. 98v01$"-&-")&+"+!/+ %-/"!& 1&,+x-)20 occasion,
What did 16/32-bit mean? A rather strange mix *5&*2*?= 7 ), (0-""!o"11%"0" %+$"0 we’d normally
really, and more of a mix than Intel had adopted. When certainly brought performance gains. The 68060 suggest you
it first introduced a 16-bit processor, and again when it 40--/,5&*1")6=8#01"/1%+1%">@8<811%" use an online
introduced a 32-bit chip, Intel offered variants with same clock speed. But when we take the maximum emulator, but
most of those
narrower external data buses than their internal data available clock speed into account, it was about three
only allow you
buses. This allowed cheaper external components and times as fast. And since the launch of the 68000,
to run games
memory to be used. The 68000 was much more of a users benefitted from a 30-fold speed increase. and demos.
mix than that, though. It had 32-bit registers and a When we looked the beginnings of Linux a couple However,
32-bit instruction set, but pretty much everything of months ago, we learned that Linux inventor Linus there are full
")0"x1%1}01%"!120"0n&+1"/+)+!"51"/+)n Torvalds considered the 80386 to have been the first emulators for
+!"3"+1%"x409>&104&!"o""!)"001, serious x86 processor. This, in turn, made it a suitable both platforms
06n1%,2$%n1%"!!/"0020404&!"/o1:<&10n&1 platform on which to that will run
allowed 16MB of memory to be accessed. develop and launch Linux. under Linux.
%">@8:8n)2+ %"!&+9A@<n401%"#&/01,# However, there are
1%"0" ,+!v$"+"/1&,+>@555-/, "00,/0n+!&1 indications that he held Starting in the
represented a significant milestone. There was no 68xxx processors in the ÌőĬǏČãǎìijĬǎČĨìäìĆÿǎ
and unique form
more confusing mixture of ‘bitness’; the 68020 was same regard. Indeed, it factor, the Apple
genuinely a 32-bit processor. In addition to having didn’t take long for Linux Mac has used no
;:v&1!120"0n&+1"/+))6+!"51"/+))6n+!;:v&1 to be ported to this ISA. fewer than four
n1%"!!/"0020&+ /"0"!1,;:&10n1%"/"6 After all, before they ĥĨČÆÐĬĬČĨǎãąìÿìÐĬƧǎ
increasing the addressable memory capacity to 4GB. migrated to the various
The clock speed increased, too, topping out at 33MHz. %&-0,#1%"}@80n
CREDIT: Giovanni Cardona, CC BY 2.0, https://commons.wikimedia.org/wiki/File:Amiga_3000_(medley).JPG
emulator on the ,-"/1&+$0601"*%! n214"}))),,(11%" Atari to have a fully 32-bit 68xxx chip. In fact, it had a
C64. Oh, and it later. Then there was the matter of floppy disk drives. Motorola 68030 processor. That leaves the Falcon,
took 39 hours
Certainly, business computers had floppy drives in which was to become Atari’s last foray into personal
ijČǏÅČČijƧ
9A@=n214"01/2$$)"!1,#&+!*,/"1%+1%",!! computers. It, too, used the fully 32-bit 68030, but it
the Amiga was the go-to home computer for creative when the debate between Tanenbaum and Torvalds
applications, the Atari ST was, perhaps, more popular was in full swing, the Amiga and Atari ST were key to
as an all-rounder (,%/"))6lx). demonstrating that there genuinely was a potential
long-term future for Linux beyond the 80386.
Operating systems
Needless to say, with both the Amiga and Atari STs
//&3&+$,+1%"0 "+"&+9A@=n&+2540+}1+,-1&,+o APPLE MAC
In fact, Linux would only be a reality for the final four
years of the m68k-based Amigas, and only the final You might be surprised to see reference to the Apple Macintosh,
two years of the Atari ST. And we can imagine that, in since it wasn’t really a home computer, even though some hobbyists
the early days, when hardly anyone had heard of Linux, did use them. Even so, given that it was one of the first machines to
few Amiga or Atari ST users would have contemplated use Motorola 68000 series processors, we couldn’t ignore it.
shifting from their familiar operating systems. Launched three years after the IBM PC, the Macintosh became
Not an encouraging assessment, you might think, the main alternative to the PC, as it still is. It used the 6800 initially,
and in terms of revolutionising home computers of +!1%">@8;8#/,*9A@@o /,*9AA<n1%"-)1#,/**&$/1"!1,1%"
1%")1"}@80+!"/)6}A80n6,2}!"/&$%1o21n4"}! ,4"/ -/, "00,/n+!#/,*:88>n&11/+0&1&,+"!1,5@>o%"
suggest, these platforms did play a huge role in the latest move took place in 2020, when Apple started using its own
development of Linux in the early days. As we saw %&-0n0"!1%">< o&+25%0""+3&))"#,/))1%"0"
&+1%"#&/01-/1,#1%&00"/&"0n&+2540#&/014/&11"+ processor families; indeed, Linux was ported to Apple Macs of all
#,/1%" +1")@8;@>n+!)01*,+1%n4"),,("!1%,4 four generations. In fact, Linux appeared on an m68k Macintosh in
it very soon embraced the various up-and-coming 9AA>n*(&+$&1,+",#1%""/)&"01>@555-)1#,/*01,"02--,/1"!o
%&-01%1--"/"!#/,*1%"*&!v}@80,+4/!0o However, it appears that it was one of the trickiest Linux ports, in no
But the 68000 series also got the Linux treatment small part because of Apple’s reluctance for third-party operating
&+1%"3"/6"/)6!60n0-" &#& ))6,+1%"0" ,+!v systems to run on its hardware. Whether that was the reason for the
generation 68030 and beyond, because of their built- lack of detailed hardware information we can only guess. However,
in memory management units. according to reports, this also contributed to making the porting
+-/1& 2)/n1%"*>@(40!!"!1,&+25&+9AA;n process somewhat less than the proverbial walk in the park.
making it probably only the second ISA supported. Not
MICE
Logitech MX Master 3S
Best wireless mouse for most.
SPECS
%",$&1" %01"/;&04,/1%"3"/6-"++6
Sensor:
T if you make use of all its features. It combines a
comfortable, sculpted design with useful
Logitech productivity features such as an electromagnetic scroll
Darkfield Laser wheel, a separate, side-scrolling thumb wheel, and a ton of
Comms: customisation options. It can also use Logi Flow through
Bluetooth LE or the Logi Options+ 0,#14/"n4%& %&0&+!,40+!
Logi Bolt (Up to ,+)6o%"$,,!+"40&0,)/https://github.com/pwr-
3 devices) Solaar/Solaar) is fully open source and can mostly replace
Battery: Up to the custom controls you need.
?8!60v %"01"/;}0")" 1/,*$+"1& 0 /,))4%"")&0
charging) one of its most impressive features. It lets you toggle
Weight:9<9$ between a smooth, free-scrolling feel or a notched The MX Master 3S has twice the DPI of its predecessor.
Size (LxWxH): scrolling feel with the press of a button – or automatically,
9:<oA5@<o; based on how fast you spin it. It’s perfect for quickly %"01"/;%014,+,1& ")"&*-/,3"*"+10
5=9** scrolling through long documents, then switching to more ,3"/&10-/"!" "00,/n1%"01"/;p+2-$/!"!
precise tasks where you need that ratcheted precision. 0"+0,/1%1$,"02-1,@n888!-&n+!.2&"1"/04&1 %"0&+
The mouse also has a second thumb wheel on the left the main left/right-click buttons.
1%1)"106,2-"/#,/*10(002 %07,,*&+$n0 /,))&+$
horizontally in spreadsheets, and changing system volume.
The mouse has six configurable buttons (seven,
VERDICT
including the clickable scroll wheel), which you can set DEVELOPER: Logitech PRICE:^?AoAA
2-1,-"/#,/*!&##"/"+110(00"!,+1%"--6,2}/"
using. Logi Options+ tracks the app currently in use and Rating 9/10
automatically switches the mouse’s profile to match.
Logitech Lift
Best wireless ergonomic mouse
he Logitech Lift is an ergonomic wireless mouse
SPECS
Sensor: Not
T designed for people with small-to-medium-sized
hands – it’s not for everyone, but it’s nice to see
disclosed an option for those who might not find the larger Logitech
Comms: MX Vertical comfortable to use. The Lift also comes in
Type-A dongle both right-handed and left-handed versions, making it
or Bluetooth LE ,+",#1%",+)6"/$,+,*& *,20",-1&,+0#,/)"#1v%+!"!
Battery: people (though while the right-handed version comes in
Rechargeable pink, white and graphite, the left-handed version only
,3"/v comes in the latter).
Weight:99>o@$ The Lift has a vertical design, which puts your hand It may take you a while to get used to the ergonomic design.
Size (LxWxH): 1+,-1&*)=?v!"$/""+$)"x)0,(+,4+01%"
99Ao9;5?<o<: handshake angle. This angle is more natural than the does support the Lift model so you can take advantage its
5<:oA;** typical horizontal angle mice normally have, but the extended features.
!"0&$+!,"0),2/%+!46#/,*6,2/!"0(o #6,2}/" The Lift’s vertical design makes it less than ideal for
used to a regular mouse, it may take you some time to precision tasks, such as gaming – gamers who want an
grow accustomed to this new position (and you may never ergonomic mouse should check out the incredibly
get used to it, especially if you work with very precise comfortable Razer DeathAdder V3 Pro.
movements – it’s harder to be precise when your hand is
further from the desk).
VERDICT
CREDIT: Logitech
SPECS
%",$&1" %/$,=?=,20"&01%"%"/,6,2/
Sensor:
T strained wrists have been waiting for. With it,
6,24,+}1+""!1,*,3"1%"*1))o 201)66,2/
Trackball hand on your mouse once, and you’re all set for eight hours
Comms: straight without needing to move it again. Of course, your
2.4GHz, thumb will be getting a workout the whole time.
Only got a small
Bluetooth Low That’s because this mouse uses a trackball to move space to work in?
Energy 1%" 2/0,/o 1}0+,1+"4--/, %n211^=8+!4&1% The M575 could
Battery:95 :o< 7+!)2"1,,1%02--,/1n1%"/$,=?=&0*,/" be the solution.
Weight:9<=$ !3+ "!1%+4%16,24,2)!%3"$,1&+1%"}A80o0&+$
4&1%95 it takes some practice, of course, but it feels like a dream.
Size (LxWxH): It completely eliminates strain from repetitive motions, once you do, your wrists will thank you. Your desk might
9;<5988 and the wide body contorts to your hand shape. 1%+(6,2n1,,o%&)"1%"=?=&02)(6*,20"n&1)0,
5<@** Of course, not being able to move the mouse’s body paradoxically has a small footprint because you don’t need
itself does come with some struggles. For instance, while to move it when using it. It doesn’t even need a mouse
this isn’t supposed to be the best gaming mouse, let’s not pad, making it great for people with small desks or
kid ourselves. You’re probably not constantly swapping keyboard trays. If you like trackball mice, this is one of the
between a gaming and work mouse with your home setup. best modern options available.
Clicking and dragging also takes some rewiring if you’re
not used to using both your thumb and index finger when
doing so. It takes thought to remember to let go of your
VERDICT
&+!"5#&+$"/#1"/!/$$&+$n21+,16,2/1%2*o&*&)/)6n&1 DEVELOPER: Logitech PRICE:^<AoAA
can be hard to precisely highlight text with a trackball.
Most of these issues, aside from the mouse not being Rating 8/10
well suited to games, are easy to fix with practice. And
SteelSeries Rival 3
The best budget gaming mouse.
e’ve always maintained that a good gaming
SPECS
Sensor: Optical
W mouse is also a good computer mouse in
general, and that’s definitely the case with
Comms: 1%"1"")"/&"0&3);o%&00)""(n*"!&2*v0&7"!
Battery: 95,/ peripheral features a no-nonsense, semi-ambidextrous
2x AAA design with two programmable thumb buttons and a
Weight:??$n pretty LED strip on the bottom. The Rival 3 is the only
Size:9:85=@ mouse here with programmable RGB lighting, and
5:9** while that won’t make you any more productive, it will
make your desk look a whole lot prettier.
Overall, the Rival 3 performed well across multiple Add a little colour to your computing life with the Rival 3.
games, including Overwatch, Age of Empires II:
Definitive Edition, Thronebreaker: The Witcher because you’ll never need to set the DPI that high – but
)"0and World of Warcraft. We took a few minutes it does indicate that the sensor is less powerful.
beforehand to reprogram the thumb buttons for each There are no other modern gaming mice from major
title. Having suffered through the subpar performance manufacturers in this price range, as far as we know.
of some truly cheap gaming mice, it was an absolute ,n&#^:8,/0,&04%16,2}/"),,(&+$1,0-"+!n1%&0&0
pleasure to find that the Rival 3 (with the proper mouse the mouse to get.
-!&0)*,010$,,!0+6,#1"")"/&"0}0%&$%"/v
CREDIT: 1"")0"/&"0
Nate Drake
is a technology Ubuntu suffers
namespace breach
journalist
specialising in
cybersecurity and
retro gaming.
U
+9AAAn--)"&+1/,!2 "!
4&/")"00 ,++" 1&3&161,&10&,,( and 23.10 to secure their systems.
)-1,-0o 140"#,/"1%"1"/* The Qualys Threat Research Unit
&v &402&.2&1,20n0,--)" (TRU) recently disclosed three security
!2"!1%"+"4#"12/"&/-,/1o bypasses in Ubuntu’s unprivileged user
%" ,+3"+&"+ "1%&0,##"/"! namespace restrictions. Qualys responsibly
#,/-,/1)"!"3& "040 disclosed these vulnerabilities to the Ubuntu
obvious. Internet users no longer Security Team on 15th January.
needed to carry around cabling This exploit is restricted to local users
in the hope they could hook up 21"+)"01%"*1, /"1"20"/04&1%#2))
1, ,+3"+&"+11%"/+"1-,/1o admin privileges. While this exploit doesn’t The big brains at Qualys will keep you protected.
%"0"!60n&1}0 ,**,+#,/ &+&10")#"+)"#2))0601"*"5-),&11&,+n&1
public areas like uni campuses !,"0"+)"20"/01,1("!3+1$",# sandboxed applications. The issue is that
+!&/-,/101,,##"/|#/""&v }n ,1%"/32)+"/&)&1&"0o 4%"+("/+")32)+"/&)&1&"0/"!&0 ,3"/"!n
1,4%& %-",-)" + ,++" 1+! User namespaces are used in most distros 1%"0" +""5-),&1"!1%/,2$%+*"0- "0
02/#4&1%,21"1&+$&+1,1%"&/ to enable unprivileged users to create by unprivileged users.
-/" &,20*,&)"!1)),4+ "o +*"0- "01%1%3"#2))!*&+/&$%10o &+!,21*,/",21%,42)601/ ("!
1&))n1%"/&0",#4&/")"00 %"0"/"16-& ))620"!#,/ ,+1&+"/0+! 1%&0!,4+%"/"phttps://bit.ly/lxf328qualys
+"14,/(0%0)"!1,+2*"/,20
0" 2/&16 ,+ "/+0o +1%",/6n
WIFIPHISHER
Credit: https://wifiphisher.org
#6,2}/"0"/&,20,21" ,*&+$-"+"1/1&,+
)&01"!o%&0&0$/"1#,/-/,,#,# ,+ "-1n21,2}/"
running serious security tests, you can configure
Wifiphisher1,01,/",1&+"! /"!"+1&)01,0-" &#& Wifiphisher
file using --credential-log-pathx#,/&+01+ "p automatically
$ sudo ./wifiphisher -e ‘FREE WIFI’ -p oauth-login -kB selects the
--logging --credential-log-path /home/kali/credentials.txt best network
interface for
setting up rogue
Fake firmware access points
So far, we’ve used Wifiphisher to demonstrate how bad and capturing
1,/0 + -12/"1%"&v &0" 2/&16("6#,/)"$&1&*1" credentials.
+"14,/(06&*-"/0,+1&+$1%"*o"}3")0, /"1"! However, if you
Any captured credentials are listed under HTTP Requests. You can also +2*"/,#-)20&)"v),,(&+$#/""&v &%,10-,101, want to specify
view them when you quit by pressing Esc. 0&*2)1"%,4% ("/0 +20"#(" -1&3"-,/1)1, a particular
1/& (-",-)"&+1,%+!&+$,3"/ /"!"+1&)0o adaptor or
6,2-/"001%"0 ("61,.2&11%"Wifiphisher interface, Wifiphisher has another attack scenario: firmware network card,
+6-004,/!0"+1"/"!/")&01"!&+1%"1"/*&+)o 2-$/!"o%&04,/(0&+0&*&)/461,1%""3&)14&+ you can do so
using the -i
By default, the rogue AP has no wireless attack in that users are fooled into connecting to a
parameter – for
authentication. However, once you’ve obtained the legitimate-looking network. However, instead of being
example: sudo
security key for a legitimate network, you can assign 1("+1,,$20 -1&3"-,/1)n1%"6}/"/"!&/" 1"!1, ./wifiphisher
1%"0*"-004,/!1,6,2/"3&)14&+20&+$1%"pK #("/,21"/),$&+-$"o%&0&+#,/*01%"*1%1+"4 -i wlan0 -e
-/*"1"/o ,/"5*-)"n%"&v &("6#,/1%" version of the router firmware must be installed before ‘D AND F
legitimate network ABC CAFE is enjolras123, enter: 1%"6 +$,,+)&+"o+6,+"4%,0")" 101/1-$/!" FORTUNES’
$ sudo ./wifiphisher -e ‘ABC CAFE’ -p wifi_connect -PK must enter the wireless security key of the network. -p firmware-
enjolras123 %&016-",#11 (&0"5 "))"+1#,/,/$+&01&,+04%"/" upgrade .
1%"&v &+"14,/(+*"&0(+,4+x#,/"5*-)"p
Lighting the beacons $ sudo ./wifiphisher -e ‘D AND F FORTUNES’ -p
Wifiphisher)0,02--,/10-%&0%&+$11 (*,!" firmware-upgrade
))"!(+,4+" ,+0o +1%&00 "+/&,n&+01"!,#'201 Naturally, if someone enters their Wi-Fi network
&*-"/0,+1&+$(+,4+&v &+"14,/(n&1$"+"/1"0 credentials, this is recorded under HTTP Requests.
series of beacon frames containing common ESSIDs,
02 %0&/-,/12)& & &o Phishing precautions
These usually match the names of wireless As with all the hacking tools in this series, make sure
+"14,/(01,4%& %!"3& "0%3" ,++" 1"!&+1%"-01o 6,2%3"1%"+"14,/(,4+"/}0-"/*&00&,+"#,/"
%&016-",#11 ("5-),&101%"21, ,++" 1#"12/",# &*-"/0,+1&+$1%"&/,//2++&+$+6-"+1"010o
,-"/1&+$0601"*0)&("&+!,40n4%& %21,*1& ))6
,++" 11,02--,0"!)6(+,4+&v &+"14,/(o%&0
saves hackers the trouble of checking for legitimate
+!0"11&+$2-1%"&/,4+"3&)14&+o PUSHING PAYLOADS
To launch a known beacons attack, run:
$ sudo ./wifiphisher -p wifi_connect -kB If you’ve already run Wifiphisher4&1%,21+6,1%"/-/*"1"/0n
#6,2-/"#"/n6,2 +)0, ,*&+"1%&011 (4&1% 6,2}))0""1%1&1,##"/01%"-)2$&+2-!1"11 (0 "+/&,o ("/0
+"3&)14&+,#6,2/,4+x#,/"5*-)"p sometimes make use of rogue APs to convince victims that they
$ sudo ./wifiphisher -e ‘FREE WIFI’ -p wifi_connect -kB +""!1,&+01))+2-!1",/!!v,+#,/1%"&//,40"/1, ,+1&+2"o
0-",-)" ,++" 11,1%"0"/,$2"0n1%"&/!"3& "0 ,2 +/" /"1"1%&020&+$1%"-)2$&+u2-!1"*,!2)"o%&0&0"01
are again listed under Connected Victims. Currently, combined with a known beacons attack, as in real life, a hacker
the attack is still configured for the wifi_connect 4,2)!4+11,!")&3"/1%"-6),!1,0*+6* %&+"00-,00&)"o
*,!2)"n4%& %-/,*-101%"*#,/4&/")"00-004,/!o ,!"*,+01/1"1%&0n6,2+""!+"5" 21)"-/,$/*o" %,0"
%&0&0+}1"0-" &))6%")-#2)4%"+&*-"/0,+1&+$-2)& -,/1)"&+01))"/,#Firefoxhttps://portableapps.com/apps/
&v &%,10-,10n01%"0"202))6/"+}10" 2/"!6 internet/firefox_portableo"51n)2+ %Wifiphisher in known
("6o +01"!n1/61%",21%v),$&+*,!2)"x#,/"5*-)"p " ,+0*,!"4&1%/,$2"+*",#6,2/,4+n#,/"5*-)"p
$ sudo ./wifiphisher -e ‘FREE WIFI’ -p oauth-login -kB sudo ./wifiphisher -i wlan0 -e ‘FREE WIFI’ -p plugin_update -kB
If you do this, Wifiphisher generates not only the %"21&)&16+,4-/,*-106,21,"+1"/1%"#2))-1%,#1%"-6),!
fake wireless network FREE WIFI but a rogue’s gallery 6,24&0%1,0"/3"o+1"/1%&020&+$0&+$)".2,1"*/(0x#,/"5*-)"p
of alternate fake APs. If a user tries to connect to any ‘/home/kali/Downloads/paf.exe’
,#1%"0"n1%"6}/"/"!&/" 1"!1,-)20&)"v),,(&+$ + "1%"-6),!&0 %,0"+nWifiphisher generates the rogue AP.
-1&3"-,/1)1%1-/,*-101%"*1,"+1"/1%"&/ ,++" 1"!20"/0/"/"!&/" 1"!1,+"14,/(),$&+-$"1%11"))0
Facebook account credentials. If they do so, they 1%"*1%"6*2012-!1"1%"&/ )0%-)2$&+1, ,+1&+2"o+63& 1&*0
receive an error message stating that the engineers 4%, %,,0"-!1",4!,4+),!1%"-6),!6,2 ,+#&$2/"!o
/"4,/(&+$,+1" %+& )-/,)"*o %&01"*-)1"&0+,1*,&)"v#/&"+!)6n0,,2}/"1"01&+$1%&0&++
In the meantime, Wifiphisher!&0-)601%" -12/"! organisation that uses mobile devices, you may need to customise
20"/+*"+!-004,/!2+!"/ ".2"010o0 &1o&0&1https://bit.ly/wifiphisherextensions #,/*,/"%")-4&1%1%&0o
"#,/"n,2-/"000 n)) -12/"! /"!"+1&)0/"
Mayank Sharma
has never been to a
Thunderbird Clapper Media Player Bottles concert. His wife wanted
him to take her to a musical,
Exercise Timer KPhotoAlbum ProtonVPN but he refused. Nurturing a
broken tibia, he now has
Fastfetch Blinken KsirK Refine Qpdf Tools ample time to dig for apps.
EMAIL CLIENT
Thunderbird
Version: 136
Web: www.thunderbird.net
MEDIA PLAYER
Clapper
Media Player
Version: 0.8.0
Web: https://rafostar.github.io/clapper/
ǏČijijÿÐĬǎ
SOFTWARE EMULATOR makes it fairly
straightforward to
Bottles
run Windows apps
and games on
Linux, and offers
several ease-of-
use advantages
Version: 51.20 over Wine.
Web: https://usebottles.com
B 4601,/2+&+!,400,#14/"1,-&+25
distros. The bulk of the heavy lifting is done
61%"Wine compatibility layer. On top of that, Bottles
helps create isolated environments that have all the
configurations and dependencies to ensure the
Windows app runs smoothly. Windows software you want to install and run. Then
Bottles is available on Flathub, and can be installed follow the installation wizard as you would on Windows.
with flatpak install flathub com.usebottles.bottles . ,2 +)0, )& (1%" +01))/,$/*0211,+1,
When you fire it up for the first time, it’ll take a few quickly install software curated by Bottles’ community.
minutes to configure itself. Once the software is installed, it appears in the
Click the + button to create a new bottle. Then give /,$/*00" 1&,+,#1%",11)"o)& (1%"2+211,+
your bottle a name and select from one of the three next to the program to launch it. You can also use the
environment types. There’s Gaming that’s optimised three-dot menu besides the app to rename the app,
#,//2++&+$$*"0n,#14/"#,//2++&+$--)& 1&,+0n add it to the library of installed apps, add the app to
and Custom that enables you to customise settings your distro’s applications menu, uninstall it, and more.
manually. Then click Create to generate the new Experienced campaigners can also adjust all kinds
environment, which could take a while. of settings related to Wine from inside a bottle. You
When it’s done, click the bottle to open it. You can, for instance, tweak the Wine version used for
++,4 )& (1%"2+5" 21)"211,+1,/,40" " %,11)"n),+$4&1%1%"&+!,403"/0&,+n&+01))
1%"#&)"0601"*n+!-,&+11%"--1,1%"#&)",#1%" additional dependencies, and a lot more.
Exercise Timer is
FITNESS APP a nifty little app
for anyone who
Exercise
wants a no-frills,
easy-to-use timer
for their workouts.
Use it to create a
Timer
workout plan and
stay healthy.
E %&$%v&+1"+0&16&+1"/3)1/&+&+$ 4,/(,210o
You can use it to set up custom timers for routines in the main window, along with the total time
exercise intervals and rest periods, which essentially it’ll take to complete each workout.
makes it a good option for any timed exercise routine. To begin exercising, click the workout you wish to
The app is primarily designed for Gnome, but you do. The app counts down the preparation time, then
can install it on any Flatpak-enabled distro with flatpak guides you through the workout with visual and audio
install flathub xyz.safeworlds.hiit . cues. The timer alternates between work and rest
1%00&*-)"&+1"/# "o &11%"/"1"/&+&+$ periods, displaying the remaining time for each interval,
button to configure your workout. Begin by giving the ),+$4&1%1%"/"*&+&+$+2*"/,#0"10o0,2+!
routine a name, then use the sliders to set the duration plays five seconds before each interval’s start and end.
of each exercise interval in seconds, the length of each When all rounds are completed, the app notifies you
rest period, the number of sets or rounds you want to 1%11%"4,/(,21&0#&+&0%"!o2/&+$1%"4,/(,21n6,2
complete, and the preparation time. + )& (20"1,1"*-,//&)601,-1%"1&*"/n,/%&11%"
When you’ve configured your workout, press the Reset button to stop the timer and return to the setup
Create button to save it. You can press the + button to screen. You also get the option to tweak the volume of
create as many workouts as you want. The app lists all the audio cues, or mute the app completely.
PHOTO MANAGER
KPhotoAlbum
Version: 6.0.1
Web: www.kphotoalbum.org
VPN
ProtonVPN
Version: 4.9.4
Web: https://protonvpn.com
P 0"/3& "1%1}0-/1,#/,1,+}002&1",#-/&3 6v
"+1/& -/,!2 10n4%& %&+ )2!"0/,1,+&)n
list of servers from all over the
world. However, free users can
secure email service. only select one of three
/,1,+1& (0))1%"/&$%1,5"00$,,! countries, namely Japan,
privacy-enhancing service, thanks to features such as "1%"/)+!0+!1%"o
&10+,v),$0-,)& 6o 1&0,-"+0,2/ "+!&+!"-"+!"+1)6 Hit Connect next to a
audited, and in addition to its paid plans also offers an country’s name to route traffic
ad-free, unlimited volume/bandwidth free tier as well. through there. You can even
Begin by creating an account with the service, and use the pull-down to select a
1%"+$/&10 )&"+1o/,1,+%0,##& &)&+/6 )&"+10 specific server inside a country.
#,/,1%+!v0"!!&01/,0n),+$4&1% "/3"/0/")&01"!),+$4&1%1%"&/),!n)1%,2$%1%" The good thing
about the open
!"1&)"!&+01))1&,+&+01/2 1&,+0o #6,2!,+}14+1 ones with the least amount of load aren’t available to source ProtonVPN
1,20"1%"--n/,1,+ +)0,%")-6,2 ,+#&$2/" free users. You can also just hit the Quick Connect service is its
-"+,/&/" 2/!1,/,21"))&+1"/+"11/##& button to delegate the server selection to the app. uncapped free-
1%/,2$%/,1,+o The app lets you know when it’s connected to a tier plan, and
the kill switch
That said, the most convenient mechanism is to use 0"/3"/o0"1%"&0 ,++" 1211,+1,0"3"/1%"
functionality.
the unofficial distro-agnostic Flatpak package with ,++" 1&,+o,2 +)0,%"!1,1%"--}0"11&+$0
flatpak install flathub com.protonvpn.www . 4&+!,4+!1,$$)"1%"&))4&1 %,-1&,+n4%& %
Now fire up the client and sign in with the login automatically disconnects you from the internet if
/"!"+1&)06,220"!1,/"$&01"/4&1%1%"0"/3& "o#1"/ 6,2),0"1%" ,++" 1&,+o
Fastfetch supports
SYSTEM INFORMATION a variety of ASCII
logos. Use
Fastfetch
fastfetch --list-
logos to list all
distros, and replace
your distro’s logo
with another with
Version: 2.38.0 Web: https://github. fastfetch --logo
com/fastfetch-cli/fastfetch <logo_name> .
astfetch&0+)&11)" 1,,)1%1!&0-)60
Blinken is a digital
MEMORY GAME recreation of the
classic Simon
Blinken
electronic game,
where you have
to correctly repeat
a sequence of
button presses.
Version: 24.12.3
Web: https://apps.kde.org/blinken/
STRATEGY
KsirK
Version: 24.12.3
Web:
Refine is a
TWEAK GNOME useful tool for
customising
Refine
the appearance
and default
ÅÐéŊìČķĨǏČãǎijéÐǎ
Gnome desktop.
Version: 0.5.2
Web: https://tesk.page/refine/
R +,*"!"0(1,-"+3&/,+*"+1o 1)),4020"/0
to tweak some advanced and experimental
Gnome settings, through an intuitive graphical
interface. Refine aggregates settings that are often
hidden or difficult to find, which makes it a must-use
tool for Gnome users to help them tweak their desktop minimise the window instead. Refine also lets you
without manually editing configuration files. define actions for the middle and right-click, too.
Refine is distributed as a Flatpak and can be installed The most interesting options, though, are under
with flatpak install flathub page.tesk.Refine . 1%"%"))©,*-,0&1,/0" 1&,+o ,/01/1"/0n6,2 +
The app has a straightforward two-pane interface. %+$"1%"4&+!,4211,+)6,21o+!4"}/"+,1
")" 1#/,*,+",#1%" 1"$,/&"0)&01"!,+1%")"#11, talking about moving all three buttons from the
bring up the relevant settings on the right. right-hand side to the left, but rather repositioning
+!"/--"/+ "n6,2 +04&1 % 2/0,/+!& ,+0n them individually.
as well as change the fonts for the interface and more. Then there are the experimental features, such
Then there’s Mouse & Touchpad, from where you can 03/&)"/"#/"0%/1",-1&,+0+!#/ 1&,+)
disable the default middle-click action to paste text. 0 )&+$o%")11"/&0*"+1#,/%&$%v/"0,)21&,+ &
)0,n6!"#2)1n!,2)"v )& (&+$,+ +,*" *,+&1,/0o+ ""+)"!n%"!1,1%"&0-)60" 1&,+
window’s header bar maximises it. You can disable this 2+!"/ +,*""11&+$0n#/,*4%"/"6,2 ++,4
action, or switch it to one of the other dozen options. %,,0"#/,*0 )&+$# 1,/002 %09:=n9=8
For instance, you can tweak the double-click action to +!9?=1,"11"/#&16,2/+""!0o
Qpdf Tools is a
PDF EDITOR no-frills graphical
interface for the
Qpdf Tools
qpdf CLI tool
ijéijǏőČķǎÆĆǎ
ķĬÐǏijČǏÆČąĥĨÐĬĬƨǎ
split, merge and
rotate PDFs.
Version: 3.1.2 Web: https://github.
com/silash35/qpdftools
CODING ACADEMY
DJANGO
Create a web-based
reward system
Matt Holder wonders how difficult it would be to replace a card-and-
stamp-based reward system with something a little more modern.
from django.utils import timezone the created models. In your IDE, navigate to the Points
from datetime import datetime directory and edit admin.py, with the settings below:
class Account(models.Model): from django.contrib import admin The Django
accountCode = models.CharField(verbose_ from .models import Account, AccountOperation tutorial is
an excellent
name=”Account Code”, max_length=30, unique=True, admin.site.register(Account)
resource for
default=””) admin.site.register(AccountOperation)
learning more:
dateTimeCreated = models.DateTimeField(verbose_ Now, in the terminal, run the following: https://docs.
name=”Date / Time Created”, default=timezone.now) $ uv run manage.py runserver djangoproject.
currentPoints = models.BigIntegerField(verbose_ This opens Django’s built-in web server, which you com/en/5.1/
name=”Current Points”, default=0) can then use to test your code. Open your web browser intro/
totalPoints = models.BigIntegerField(verbose_ and navigate to http://localhost:8000/admin. When tutorial01/
name=”Total Points Collected”, default=0) this loads, you will see a login screen and you can use
availableRewards = models.BigIntegerField(verbose_ the credentials you created when running the
name=”Available Rewards”, default=0) createsuperuser command earlier on.
rewardsUsed = models.BigIntegerField(verbose_ Once logged in, spend some time looking at the
name=”Rewards Used”, default=0) Accounts and AccountOperations links and create
lastModified = models.DateTimeField(verbose_ some accounts and account operations. When doing
name=”Last Modified”, editable=False, auto_now=True) so, note how you can select from the list of accounts
class AccountOperation(models.Model): when creating the account operation. This is an
account = models.ForeignKey(Account, on_ important concept to which we will return.
delete=models.CASCADE) The admin interface is excellent and a real ‘batteries
dateTimeOfOperation = models. included’ feature of Django. However, it wouldn’t be the
DateTimeField(verbose_name=”Date / Time of best tool to use for the staff of the coffee shop, who
Operation”, default=datetime.now) would need something a bit more streamlined. This is
operation = models.CharField(max_length=30, where we will start to develop our views and templates.
verbose_name=”Operation”) 21#&/01n)"1}01("01, (x0,#/4"%3"0"12-
pointsChange = models.BigIntegerField(verbose_ Django project, added an app, created our database
name=”Points Change”, default=0) models, and used the admin interface to investigate
The Account model contains seven fields to hold the database tables used for our app.
the information we need. Django automatically adds a A view will be developed to return all accounts from
numerical ID field to the database, which is the primary the database, pass them to a template, then they can
key and will always be unique. However, we want to be rendered as HTML. We will also develop a view to
ensure that account codes are also unique, so we provide buttons to interact with the accounts, so we
,2)!"&1%"/20"1%&0#&")!01%"-/&*/6("6n,/!, can add points, or allow customers to spend rewards.
what we have here by setting the unique attribute to "#,/"!"3"),-&+$3&"4n4"+""!1,0"12-,2/
true. We then store the date and time that the account URL mappings. This allows us to call a Python function
is created and add a field to store the last modification when a URL is called. In the RewardSystem directory,
date. Other than these fields, we add fields that store open the urls.py file and add the following:
the current number of points, total number of points from django.contrib import admin
earned, rewards currently available and rewards used. from django.urls import include, path
This is useful, but doesn’t give us any way to urlpatterns = [
understand what was earned or used and when. This path(‘admin/’, admin.site.urls),
&04%"/"1%"0" ,+!*,!") ,*"0&+1,&10,4+o +1%&0
model, we first use the ForeignKey function to create a
field that links back to the Account model. This means FRAMEWORKS AND FUNCTIONALITY
we have a database relationship that links the account
operations with the accounts themselves. Other than Django is not the only game in town – like lots of things in the open
this, we add fields to the model to store what the source world, multiple projects exist to scratch the same itch. This is
operation is (AddPoints, AddRewards and so on). generally a good thing, as friendly competition drives improvements
We need to commit these changes to the database. across the board. CherryPy, Pyramid and Flask are all frameworks
To do so, in the terminal at the bottom of your IDE, that can be used to create web applications. They do not come
make sure you are in the CoffeeShop directory, which bundled with their own database abstraction layer, or ORM (Object
contains manage.py, and run the following commands: Relational Mapper), so a separate solution needs to be used. The
$ uv run manage.py makemigrations Points SQL Alchemy project is a highly regarded framework, which can
$ uv run manage.py migrate provide the same functionality as Django’s built-in ORM.
The first command creates the set of SQL Deployment with all of the frameworks is largely the same, given
commands needed to construct the database, and the they all use the Web Server Gateway Interface (WSGI) standard,
second commits these changes. This feels like overkill which was developed for hosting web apps written in Python.
when creating such a simple model and creating from Further expansion of web apps can be carried out using projects
an empty database, but it is important if you ever such as Django-ninja, which allows easy creation of APIs within
needed to change the database schema throughout 6,2/--+!&1 +)0,$"+"/1"0 %"*0#/,*6,2/*,!")o #6,2
the dev process and wanted to commit the changes wanted to add QR codes to your application, this is simple to do
while hopefully keeping the data. using the segno library. Finally, Matplotlib can be used to embed
Next, we’ll look at the included admin interface, plots into your views.
which provides a way to interact with the database and
Create a Simple
with previous
issues – see
page 64!
"}3" ))"!,2/-/,$/*Choice,
W +!6,2 +0""%,4&14,/(0&+
the Logical Dice boxout (page 96).
%"+&1}0/2+n&1!"#2)101,#&3"-",-)"n21
,2-00&++2*"/#/,*;v@01%"
OUR #&/01-/*"1"/n&120"01%1o +1%" VS Code
EXPERT 1"/*&+)n20"1%&01,/2+&1#,/0&5-",-)"p
$ cargo run 6
David Bolton ,2 +!,4+),!1%"-/,'" 1#/,*
has always been &1 2https://github.com/David-H-
a bit of a maths Bolton/Projects/blob/main/rust_choice.
nerd and draws zipo 1&+ )2!"0 launch.jsonn0,6,2 +/2+
upon a book &1&+VS Code,+!,+"/2"6-"#,+1n0,
ŹˊࢳŔȟŔʋǠɽ 1%" ,!" +,21-211"51o%"+6,2
writer to find /2+&1n&1$"+"/1"0%,/&7,+1))&+"0"14""+
inspiration for 1%"*"*"/ ,)2*+0o,3"1%"*,20"
the program in ,3"/-"/0,++2*"/+!&1%&$%)&$%101%"
this article. -1%1,1%",11,*4&1%/"!)&+"o%")&+" The program when the mouse moves over 3.
0%,40!&##"/"+1-1%#,/" %-"/0,+o
%"-/,$/*%,)!01%"%,/&7,+1))&+"00 subsystem. We need the TTF subsystem to output
" -,&+1n4%"/"-,&+1%014,&+10 ))"!start 1%"-)6"/+2*"/211,+0n+!&120"01%"&*$"
+!endo,#,)),4-)6"/n'20101/14&1%1%"-)6"/ 020601"*1,,21-211"51o")0,+""!1, /"1"
+2*"/+!&1"/1"1%/,2$%1%"Veco #1%" 2//"+1 4&+!,41,!&0-)6"3"/61%&+$p
There’s a lot
-)6"/".2)01%"01/1,/1%""+!n %+$"&11,1%" let window = video_subsystem
of functions
in SDL2 and ,1%"/,+"o #1%" 2//"+1-"/0,+&09n+!start&09+! .window(“Choice”, 900, 600)
finding out what end&0;n1%" 2//"+1-"/0,+" ,*"0;o %-1% .position_centered()
you can call $,"01,!&##"/"+1"5&1n&+ )2!&+$1%",+"4&1%1%"o .build()
in Rust can be "1/&"!4&1%!&##"/"+1 ,),2/"!)&+"0n21" 20" .map_err(|e| e.to_string())?;
tricky. The best 1%"*&+),,-/2+01>8#/*"0-"/0" ,+!n2+)"001%" %"A88+!>88&+1%&0/"1%"4&+!,40&7"0
suggestion is to ,),2/ %+$&+$&0!,+"1%"0*"&+" %#/*"n&1'201 &+-&5")0%,/&7,+1)n3"/1& )n-)201%"4&+!,41&1)"n
do a Ctrl-click %+$"0 ,),2/3"/6.2& ()6o |%,& "}n+!1%"4&+!,4}0-,0&1&,+n4%& %&0 "+1/"!
on a function’s ,+1%"0 /""+o
parameters
and get to the
Architecture of SDL ,4,/(4&1%1%"4&+!,4n4"20"*21)"n
)*,01))&*-)"&/" 1"!&6"/--)& 1&,+0 Canvas<Window>o)),#1%"#2+ 1&,+0n02 %0draw_
source code.
%3"0&*&)// %&1" 12/"o vertical_line+!0,,+n,//,41%&0+!-00&10
•
For instance,
Ctrl-clicking on +&1&)&0"1%"0 /""+n),!+6 #,+1020"!n),! &mut canvas.
Canvas opens &*$"0&+1,02/# "0o
render.rs, which
is very well
•• $*"),,-o 1/"-"101%"0"1>8#-0o
"+!"/0 /""+,'" 10o
Drawing text
/4&+$1"51&0'201-211&+$-&5")0,+0 /""+o%"
commented
• ,,(#,/("60*,20" )& (0o #2+ 1&,+ render_text,21-21001/&+$&+0-" &#&"!
and includes
examples in • #0 -"&0-/"00"!n"5&1o
"+""!1,&+&1&)&0":n1%"+1%"3&!",
#,+1+! ,),2/11%"!"0&/"! ,,/!&+1"0o
,2+!"/01+!1%&0#2+ 1&,+n)"1}0$, (1,0& 0o
comments.
020601"*n1%"&*$"0020601"*+!1%" :&03"/6$,,!10)--&+$-&5")0!,4+,+1%"
A function showing
lifetimes.
60fps or more?
%"+4" /"1"1%" +30n4" +0-" %"
Bugs can be 2+!"/01+!%,41%"201 ,*-&)"/&0&+1"/-/"1&+$6,2/ %/!4/"06+ 01,1%"3"/1& )/"1/ "n(306+ o%&0
squished and ,!"o%&0#"12/"&0 ))"!$%,011"51,/&+)6%&+10o &01%"1&*"4%"+6,2/*,+&1,/}0%/!4/"%0!/4+
explained by AI %"+6,24/&1"201 ,!"1%1&+3,)3"0/"#"/"+ "0 1%"0 /""++!&0/"12/+&+$1,1%"1,-,#1%"0 /""+1,
systems such
ĬǏČĥìÿČijƧ 21!,"0+}1"5-)& &1)60-" )&#"1&*"0n1%" ,*-&)"/ !/4&1$&+o #6,220"1%"#&/01)&+"n306+ &0!&0)"!
20"0)&#"1&*"")&0&,+/2)"01,21,*1& ))6!"1"/*&+" +!1%"0" ,+!%0&1"+)"!p
--/,-/&1")&#"1&*"0o%"$/"61"51&+ VS Code shows let mut canvas = window.into_canvas().build()….
1%"0"&*-)& &1)&#"1&*"01%11%" ,*-&)"/!!0"%&+! let mut canvas = window.into_canvas().present_
1%"0 "+"0o"!*,/",21)&#"1&*"")&0&,+1https:// vsync().build()….
doc.rust-lang.org/nomicon/lifetime-elision.html. #6,2"+)"306+ n6,2/-/,$/*&0)&*&1"!1,
>8#-0o%&0*"+06,2/ ,!"*201#2))6/2+#/*"&+
Why doesn’t it flicker? )"001%+9>o>>>*0o ,/1%"Choice--n1%&0&0+,1
2/3&!", /!&0 " ,/ ":8>84&1%> ,# -/,)"*o #6,2/ ,!""3"/1("0),+$"/1%+1%&0n1%"
o%"*&+4&+!,4&0A885>88-&5")0n4%& % #/*"/1"!/,-0+!+61%&+$*,3&+$*&$%1--"/
&0=<8n888n" %&+1%/"" ,),2/08v:=>o +;:v&1 &1'+(6o&1%,21306+ n6,2 +%3"3"/6%&$%#-0
,),2/n" %-&5")1("0<61"0n0,1%"0 /""+20"0 !"-"+!&+$,+%,4#016,2/-/,$/*/2+0o%1}0*,/"
'201,3"/:,#o:02--,/1014,0 /""+0n /")"3+11,$*"0o
+!4%"+4"-21&10,+1%"0 /""+n4"/"4/&1&+$ %"$*"),,-01/1011%" running:),,-
!&/" 1)61,1%"0 /""+1%1&0,##0 /""+x1%&0 011"*"+1o%"for event ),,-%+!)"0+6"3"+10
&0 ))"!1%" (2##"/o 02 %0("6-/"00"0n*,20"*,3"0+!*,20"
%"+4%"+"3"/61%&+$%0""+4/&11"+n4"#)&-1%" 211,+-/"00"0o)& (&+$*,20"211,++!/")"0&+$
(2##"/0,&1&0+,4,+0 /""+n+!1%"1%1 &11/&$$"/014,"3"+10pMouseButtonDown+!
40,+0 /""+&0+,41%" (2##"/o%"#)&--&+$&0 MouseButtonUpo%"0"%3"""+)"#1&+21/"
!,+"6 ))&+$canvas.present()o 10%,2)!"1%")01 +,120"!o
If you want ))#1"/)),#1%" ))01,!/41"51n&*$"0+!0,,+ $,,!/2)"%"/"&01,0"1#)$0&+1%""3"+1
őČķĨǏĥĨČäĨąǎijČǎ /"!,+"o %+!)"/0n1%"+ 1,+1%,0"#)$0)1"/,+&+0&!"1%"
halt early, use :)4604/&1"01,1%" (2##"/o #&14/,1" $*"),,-o%&0&0!,+"4%"+1%"*,20"&0*,3"!+!
std::process 1,1%"!&0-)6"!0 /""+n6,2}!$"13&0&)"#)& ("/o &1&0!"1" 1"!1%1&1*,3"!,3"/211,+o%"draw_
::exit(n); %"/"01,#1%"&03&))"#,/%,)!&+$ player -12/"01%"-)6"/#/,*1%"211,+n+!1%"
where n is a 1%"1"512/"0o draw_path()#2+ 1&,+&0 ))"!)1"/,+#1"/1%"3"/1& )
number from +!%,/&7,+1))&+"0%3"""+!/4+o
0-255; 0 usually Inside the game loop
means success
while 1-255 can
14,2)!%3"""+-,00&)"1,4/&1"1%&04&1%,21&1 The buttons
2-!1&+$1>8#-0n211%"+6,2%3"1,),,(,21#,/ &1%&+1%"),,-4" ))button.rendero%&0!/401%"
be error codes.
*+$&+$4%"+1,#)&-1%" (2##"/4%& %&0 1"5120&+$!&##"/"+1 ($/,2+! ,),2/#,/%,3"/+!
LOGICAL DICE
#6,2}/",214&1%*1"0+!!" &!"1%1 -/16!/4,+",/14,%,/&7,+1))&+"0
,+",#6,2&0$,&+$1,26-&77#,/1%" "14""++614,3"/1& ))&+"0o
/"01n6,2 ,2)!!/401/40n211/61%&0 +#,)!1%"4%,)"0%""1+!#,)),4
&+01"!o 1,/&$&+1"!&+1%"*1%"*1& ) -1%!,4+#/,*" %-"/0,++!0""
-$"0,#Scientific American, (4%"+ 4%,"+!011%"o%"+6,2/" %,+"
/1&+ /!&+"/4/,1"1%"*o))6,2 "+!,#%,/&7,+1))&+"n$,1,1%",1%"/o #
+""!&0-"++!0%""1,#--"/o 6,2#,)),43"/1& ))&+"1,1%"*&!!)",#
/43"/1& ))&+"#,/" %-"/0,+o )&+"n&$+,/"&1+! //6,+!,4+o,n
- "1%"*,211,, 2-61%"--"/}0 **$,"0!,4+n /,001,,#&n!,4+n
4&!1%+!4/&1"1%"+*",#" % /,001,3n!,4+n /,001,&*n
-"/0,+11%"1,-o ,)!&10,1%"+*"0 !,4+n1%"+ (1,%"/0")#o&*$,"0
/"%&!!"++!%3"0,*",+"/+!,*)6 /,001,,%n!,4+n,3"/1,**n
!!+11%",11,*,#,+")&+"o !,4+n /,001,&*n!,4+n1%"+"+!0
,4#,)!&10,,1%1%"+!+*"0 2-1,#&n/" %"01%"+!-60j
/"%&!!"+n+!)"1" %*"*"/,#1%" Logical dice to figure out who has to pay. %1}01%"-/,$/*4"}/"4/&1&+$o
LXF3n2s9ale
The #1 open source mag
Future Publishing Limited, Quay House, The Ambury, Bath, BA1 1UA
will be o y
Email [email protected]
EDITORIAL
Tuesda
Editor-in-chief Neil Mohr
Art services Adequate Media Limited
27th May
Production editor Katharine Davies
Content director Marc Chacksfield
2025
Group art director Warren Brown
Editorial contributors
Paul Alcorn, Mike Bedford, David Bolton, Neil Bothwick,
Nate Drake, Marco Fioretti, Matt Holder, Jon Masters,
Nick Peers, Les Pounder, Michael Reed, Mayank Sharma,
Shashank Sharma, Mollie Taylor, Saeed Wazir
Cover illustration Magictorch.com
Raspberry Pi is a trademark of the Raspberry Pi Foundation.
Tux credit: Larry Ewing ([email protected]).
Content production Adequate Media Limited
ADVERTISING
Commercial sales director Clare Dove
[email protected]
Advertising director Lara Jaggon
[email protected]
Account director Andrew Tilbury
[email protected]
INTERNATIONAL LICENSING
Head of print licensing Rachel Shaw
Linux Format is available for licensing and syndication.
To find our more contact us at [email protected]
or view our content at www.futurecontenthub.com
NEW SUBSCRIPTIONS & PAST ISSUES
Web www.magazinesdirect.com
EXISTING SUBSCRIPTIONS
Web www.mymagazine.co.uk
Subscription delays: Please allow up to seven days before
contacting us about a late delivery to [email protected]
25 YEAR
MANAGE YOUR SUBSCRIPTION ONLINE WITH MYMAGAZINE
Visit www.mymagazine.co.uk/FAQ to view frequently asked questions
or log in at www.mymagazine.co.uk
CIRCULATION
Newstrade & retail category director Ben Oakden
PRODUCTION AND DISTRIBUTION
Group head of production Mark Constance
Production manager Nola Cokely
Senior ad production manager Jo Crosby
Digital editions manager Jason Hudson
ANNIVERSARY!
THE MANAGEMENT
Managing director technology group Paul Newman
Global head of design Rodney Dive
Commercial finance director Tania Brunning
Printed by William Gibbons & Sons
Distributed by Marketforce UK
121-141 Westbourne Terrace, London W2 6JR. www.marketforce.co.uk
For enquiries email: [email protected]
It feels a lot longer than that… Send us on our merry Order and access past issues: If you are an active subscriber, you have instant access to past issues through your iOS or
Android device/s. Your digital magazine entitlement is available at no additional cost and no further action is required.
Pocketmags library may not have access to the full archive of digital past issues. You will only be able to access the digital
Escape Windows 10
www.gnu.org/copyleft/gpl.html. All copyrights and trademarks are recognised and respected.
Disclaimer: All contents © 2025 Future Publishing Limited or published under licence. All rights reserved. No part of this
magazine may be used, stored, transmitted or reproduced in any way without the prior written permission of the publisher.
Future Publishing Limited (company number 2008885) is registered in England and Wales. Registered office: Quay
House, The Ambury, Bath BA1 1UA. All information contained in this publication is for information only and is, as far as we
Save all your old PCs from the scrap heap, annoy your are aware, correct at the time of going to press. Future Publishing Limited cannot accept any responsibility for errors or
inaccuracies in such information. You are advised to contact manufacturers and retailers directly with regard to the price of
products/services referred to in this publication. Apps and websites mentioned in this publication are not under our
friends and force them to run Linux instead! control. We are not responsible for their contents or any other changes or updates to them. This magazine is fully
independent and not affiliated in any way with the companies mentioned herein.
If you submit material to us, you warrant that you own the material and/or have the necessary rights/permissions
1,02--)61%"*1"/&)+!6,221,*1& ))6$/+1 212/"2)&0%&+$&*&1"!+!&10)& "+0""0)& "+ "1,-2)&0%6,2/
submission in whole or in part in any/all issues and/or editions of publications, in any format published worldwide and on
Taking our ongoing Rust coding series to single-board We are committed to only using magazine paper derived from responsibly managed, certified forestry and chlorine-free
manufacture. The paper in this magazine was sourced and produced from sustainable managed forests, conforming to
strict environmental and socioeconomic standards.
We’re going with Linux Mint but there are more distros
under the sun than we have time to cover or even try.
Content of future issues subject to change. All change, everyone off!