Számítógép és internet kategória bejegyzései

10 legjobb programozási nyelv 2023-ban

Ma már olyan sok számítógépes programozási nyelv létezik, hogy felsorolni is hosszú lenne. Van közöttük általános célú, vagy kifejezetten az adott helyzetre, architektúrára szánt nyelv is. Ezek népszerűsége is folyamatosan változik, ahogy az is, épp melyik nyelvet lenne érdmes megtanulni első, de akár sokadik nyelvként. A mi listáng az alábbi lett.

Egyszerű világos/sötét téma váltó Powershell segítségével

A Windows 10-ben már régóta elérhető a világos/sötét téma (vagy ahogy a neten találkozni vele: dark mode), csak épp a mindennapokban kicsit kényelmetlen elérni. Ráadásul a Windows 10 frankó, automatikus éjszakai fény módjával (ami a kék fényt csökkenti a monitoron) ellentétben nem időzíthető.

Előbbire tökéletes egy Powershell script, aztán ezt kicsit megspékeljük pár extra kényelmi funkcióval, pl. időzítjük.

Így néz ki a Windows 10 beépített számológépe világos és sötét témában:

Számológép

A Powershell script maga

Az alábbi kódot másoljuk be bármilyen szövegszerkesztőbe, és mentsük el DarkMode.ps1 néven. Ha az egyszerűbb nekünk, akkor erről a GitHub linkről magát a scriptet le is tölthetjük.

##############################################################################
# DARKMODE POWERSHELL SCRIPT
# The easiest way to set dark/light theme or switch between of those
# Prerequisites: PowerShell 5.0 or later
# Version: 1.0
# Author: Iminetsoft
# GitHub: https://github.com/iminet/DarkMode
# License: CreativeCommons (CC BY 4.0)
# Usage: DarkMode.ps1 [status|dark|light|toggle] 
#        (without the optional switches, the toggle command will be performed)
##############################################################################

$regkey = "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionThemesPersonalize"
$property = "AppsUseLightTheme"
$darkvalue = 0
$lightvalue = 1
function  SetDark 
{
    Set-ItemProperty -Path $regkey -Name $property -Value $darkvalue
}

function  SetLight 
{
    Set-ItemProperty -Path $regkey -Name $property -Value $lightvalue
}

function IsDark
{
    if ($(Get-ItemPropertyValue -Path $regkey -Name $property) -eq $darkvalue)
    {
        return $true
    }
    else
    {
        return $false    
    }
}

function Toggle
{
    if (IsDark -eq $true) { SetLight }
    else { SetDark }
}

if ($args.Count -ge 1 -and $args[0] -eq "dark") { SetDark }
elseif ($args.Count -ge 1 -and $args[0] -eq "light") { SetLight }
elseif ($args.Count -ge 1 -and $args[0] -eq "status") { Write-Host $(if (IsDark -eq $true) { "Dark theme" } else { "Light theme" } ) }
=======
##############################################################################
# DARKMODE POWERSHELL SCRIPT
# The easiest way to set dark/light theme or switch between of those
# Prerequisites: PowerShell 5.0 or later
# Version: 1.0
# Author: Iminetsoft
# GitHub: https://github.com/iminet/DarkMode
# License: CreativeCommons (CC BY 4.0)
# Usage: DarkMode.ps1 [status|dark|light|toggle] 
#        (without the optional switches, the toggle command will be performed)
##############################################################################

$regkey = "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionThemesPersonalize"
$property = "AppsUseLightTheme"
$darkvalue = 0
$lightvalue = 1
function  SetDark 
{
    Set-ItemProperty -Path $regkey -Name $property -Value $darkvalue
}

function  SetLight 
{
    Set-ItemProperty -Path $regkey -Name $property -Value $lightvalue
}

function IsDark
{
    if ($(Get-ItemPropertyValue -Path $regkey -Name $property) -eq $darkvalue)
    {
        return $true
    }
    else
    {
        return $false    
    }
}

function Toggle
{
    if (IsDark -eq $true) { SetLight }
    else { SetDark }
}

if ($args.Count -ge 1 -and $args[0] -eq "dark") { SetDark }
elseif ($args.Count -ge 1 -and $args[0] -eq "light") { SetLight }
elseif ($args.Count -ge 1 -and $args[0] -eq "status") { Write-Host $(if (IsDark -eq $true) { "Dark theme" } else { "Light theme" } ) }
>>>>>>> 345d11e52f667be4e06c990f35c19b3143d8e82c
else { Toggle }

A script használata

Használat előtt feltétlenül tegyük a letöltött/elmentett fájlt a saját Dokumentumok mappánkba.

Mivel Powershellről van szó, nyilvánvaló, hogy ehhez szükségünk van a Powershellre. Indítsuk el úgy, hogy balra lent megnyomjuk a Start menüt, majd elkezdjük gépelni, hogy powershell. Amikor felbukkan a jellegzetes kék (újabb verziónál fekete) hátterű ikon, nyomjuk meg azt.

Ha feltárult elénk a Powershell ablaka, akkor menjünk is be a Dokumentumok mappánkba, ahol a script is található:

cd ([environment]::getfolderpath("mydocuments")

Próbaképp ellenőrizzük, hogy minden működik-e:

DarkMode.ps1 status

Ha a fenti parancs begépelése után a program visszajelzése az, hogy "Light theme" (vagy nyilván, ha már most sötét módot haszálunk, akkor "Dark theme"), akkor minden jól működik.

Próbáljuk ki a téma váltást:

DarkMode.ps1 toggle

Ezt a parancsot bármennyiszer kiadhatjuk, hatása az, hogy ellenkezőjére vált a téma: világosból sötét, sötétből világos lesz.

A toggle helyett használhatjuk a light vagy a dark kapcsolót is, ebben az esetben a kívánttal megegyező téma esetén nem fog történni semmi. Ha világos témánál kiadjuk azt, hogy light, akkor nem fogunk változást észrevenni.

Powershell

Időzített témázás

Ez eddig tök jó, de csak keveset nyertünk vele, hisz ugyanúgy kézzel kell kiadni a parancsot. Most jön az igazi móka, automatizáljuk a fent megismert parancsokat. Ehhez segítségünkre lesz a Windowsba beépített Feladatütemező (Task scheduler).

Feladatütemező indítása

Indítsuk el úgy, hogy a Start menüt megnyitva elkezdjük gépelni azt, hogy Feladatütemező. Amikor megjelenik találatként az ikonja, kattintsunk rá.

Aki nem ismerné még ezt a remek programot, az elsőre megijedhet, annyi minden van benne, már alapesetben is. De mi most nem fogjuk ezt megismerni, nem célunk.

Feladat létrehozása

A felső menü Művelet menüpontját lenyitva válasszuk a Feladat létrehozása alpontot. Kapunk egy űrlapot, több füllel. Nem lesz mindenre szükségünk.

Az Általános lapon csak a nevet töltsük ki. Ez bármi lehet, de azért legyen egyértelmű, mit is csinál ez a feladat. Legyen pl. Automatikus téma - világos a neve.

Feladatütemező

Az Indítás fülön Kattintsunk az Új gombra. Itt legyen kiválasztva a Naponta, a napot hagyjuk alapértelmezetten (ez a mai dátum lesz), az időt pedig állítsuk arra a reggeli időpontra, amikor világos témára váltanánk. Pl. 6:00. Kattintsunk az Ok gombra.

Feladatütemező

A Műveletek fül kicsit érdekesebb, itt adjuk meg, hogy pontosan mit is csináljon az ütemező, ha elérkezett a fentebb kiválasztott időpont. Az Új művelet gomb megnyomása után a Program/Parancsfájl alatti mezőbe írjuk be, hogy powershell.

Az alatta lévő (Argumentumok hozzáadása) mezőbe pedig:

-Command "& 'C:Users[FELHASZNÁLÓ-]DokumentumokDarkMode.ps1' light"

Feladatütemező

Figyelem, itt a [FELHASZNÁLÓ-] helyére írjuk be a saját felhasználói nevünket. A teszteléskor használt Powershell ablakban ezt pontosan láthatjuk is. De ha mégse, akkor adjuk ki az alábbi parancsot egy üres Powershell ablakban, és másoljuk onnan ki:

[environment]::getfolderpath("mydocuments")

Kattintunk az Ok gombra, majd a Feladat létrehozása ablakban is az Ok gombra.

Az esti sötét módhoz csinájuk végig a fentieket, az alábbi módosításokkal:

  • Az ütemezési időpont legyen valamilyen esti, pl. 19:30
  • A feladat nevében legyen benne a "sötét", pl. Automatikus téma - sötét
  • az Argumentum mezőben a light helyett dark szerepeljen

Végeredmény, konklúzió

És ennyi... Ezek után reggel és este is lefut a megfelelő parancs. A dolog szépséghibája, hogy futáskor egy pillanatra felbukkan a Powershell ablaka, majd el is tűnik. Később kiegészítjük a scriptet, hogy abszolút a háttérben fusson, felvillanás nélkül.

Emlékezetes lerészegedés - mint A másnaposok a való életben

Egy hülye vloggerlány megmutatja nekünk, hogy ne végezd egy átmulatott éjszaka után - vagy legalábbis ne streameld az előre nem megjósolható végeredménnyel záruló züllést élő egyenes adásban az ismerőseidnek.

Az alábbi Twitter bejegyzés arról tanúskodik, hogy egy társaság miként fogyaszt el jó néhány "Mimosa" névre hallgató, számomra (legalábbis) ismeretlen italt. A videóban előbb mindenki jó kedéllyel közli az elfogyasztott italok számát:

This is me after x mimosas (Ez vagyok én x [db] mimosa után)

Aztán a végén már a videóból ki nem derülő köztes történések eredményét látjuk: az addig jó kedélyű hölgy arcát véresen, hiányzó fogakkal.

Hmm.. A hülyék köztünk élnek.

Valahol azt olvastam, végül visszapattintották az elmászott fogakat eredeti helyükre az állkapocsban. Akkor is csak gratulálni tudok.

[PHP] Codeigniter XML-RPC szerver/kliens SSL/HTTPS kiegészítése

Codeigniter

A Codeigniter nevű PHP framework-öt már elég régóta, több, mint 10 éve használom, ám annyira gyorsan fejlődik, és sokszor teljesen feleslegesen távolítanak el belőle remek funkciókat, hogy gyakorlatilag tényleg lemaradtam vele, és csupán azt hegesztem hozzá, ami tényleg fontos.

Az XML-RPC szerver/kliens nálam már régóta kiépült, gépek automatikus kommunikációjához használom. Az XML-RPC ráadásul már ki is került a hivatalos Codeigniter verziókból, állítólag a PHP 7.0 miatti nehézkes megoldás miatt (persze ez csak bullshit, ha valamit nagyon akarunk, megoldjuk PHP 7.0 alatt is, nekem sikerült).

Az XML-RPC egyetlen nagy hátránya, hogy nem támogatja a most már de-facto kötelező HTTPS-t. Nagy kár. A neten fellelhetők félmegoldások, nekem egyik se működött, pedig pl a cURL kiegészítés egész jól hangzott.

Marad hát a saját megoldás, ami, néha a dolgok mögé nézve nagyon egyszerűnek tűnik. Akit nem érdekel az ezzel kapcsolatos technikai részlet, irány a poszt végén lévő GitHub link, ahonnan letölthető.

Nagyon egyszerű a trükk

Kellett törnöm a fejem, miért nem működik, aztán rájöttem, hogy az fsockopen körül lesz a megoldás, ugyanis ez már elég erősen legacy a PHP-ben. De hiába őskövület, rábírható az SSL-féle 443-as port használatára.

Volt egy ilyen sor az eredeti XML-RPC library-ben:

$fp = @fsockopen($this->server, $this->port,$this->errno, $this->errstr, $this->timeout);

Ennek az elejére biggyesztettem egy apró kiegészítést, ami 443-as port esetén"ssl://"-rel egészíti ki a szervert. Íme:

$fp = @fsockopen(($this->port == 443 ? "ssl://" : "").$this->server, $this->port,$this->errno, $this->errstr, $this->timeout);

És tényeg ennyi. Innentől kezdve, csupán egy sor módosításával HTTPS-en keresztül is ugyanúgy megy a kommunikáció, mint azelőtt.

Letöltés, telepítés

Ezt fel is dobtam GitHubra, ott megtalálható, hogy pontosan mit, hová kell letölteni, bemásolni - egyetlen .php fájlról van szó.

GitHub link

Bízom benne, másnak is hasznos lesz, ahogy nekem is az.

Klasszikust őrzünk az utókornak: az internet utolsó oldala

Ma már a mémek a jellemzők, de azelőtt, az internet feltörekvésekor (kb. 15-20 évvel ezelőtt) is voltak igazi szállóigévé vált klasszikusok. Hogy pontosan mik voltak azok, felsorolni is nehéz lenne. Viszont, tervbe vettük klasszikusok megőrzését is, olyan oldalakat, képeket, melyek a látogatót időutazásra, nosztalgiázásra késztetik. Ez a projekt még elég erősen kialakítás és tervezés alatt áll, így részletek még tényleg nincsenek, de egy külön szekciót fog kapni később.

De megvan az első fecske. Aki nem az elmúlt 10-15 évben született, hanem jóval korábban, biztosan emlékszik erre  megmosolyogtató névre: Az Internet utolsó oldala. Nos, több ilyen is van, képként, HTML oldalként, kicsit a régi Internet Explorer hibaüzeneteire hajazó verzióban, stb.

Nálam 5 db ilyen oldal volt elkönyvjelzőzve, ebből már csak egy darab maradt fenn, de kb ahhoz se nyúltak évek óta (FrontPage alapok, amikor a mobilnézet még nem is létezett).

Hát elkészítettem a saját verziómat, persze nem most érdekes ez, hanem úgy újabb 20 év múlva, amikor az emberek többsége azt se tudja már, mi az az Internet Explorer. Bár a klasszikus IE hibalapot idézi, modernizáltam rajta finoman: mobileszközön is tökéletes, jobban olvasható, finomabb a betűtípusa, de mégis a klasszikus, az eredeti ikonokkal. Ráadásul megosztásbarát, simán meg lehet osztani Facebookon, Twitteren, hisz minden ehhez szükséges technikai eszközt tartalmaz.

Terveim között szerepel olyan hosszú ideig megőrizni, ameddig csak lehet, és ha kell, az adott kor technikai követelményeihez fogom igazítani.

Íme:

https://blog.iminet.hu/internet_vege.html

Az Internet vége