HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

  • Travis.CG: @hagymi: Úgy emlékszem nem működött, mert dátum volt a cella típusa, nem string. (2026.03.31. 12:20) Excel, mint büntetés
  • Travis.CG: Frissítés: Az operáció nem teljesen sikerült. A képernyő bizonyos időnként elsötétül, csak a hátté... (2026.01.11. 11:30) Iphone képernyő és aksi csere
  • Travis.CG: @webhauser: Én nem vagyok jó programozó. Nem vennéd sok hasznomat. (2025.09.18. 10:26) T0ad 2025
  • Travis.CG: Annyiban én is hibás vagyok, hogy könnyen előjönnek belőlem negatív posztok, ezt akartam ellensúly... (2025.05.22. 19:34) Ne csak a rosszat halljátok
  • sdani: Oh... néha eszembe jut, hogy az EBI után esetleg vissza kellene menni valamennyire az akadémiai vo... (2025.03.18. 16:58) Pontos, jól behatárolt célok

ParrosOS: csóró hackereknek

2026.08.30. 13:34 Travis.CG

A YouTube-ot elárasztják az olcsó, alacsony minőségű hacker csatornák. Ezeket úgy lehet felismerni, hogy legalább egy videót szentelnek annak a kérdésnek, hogy "milyen a hacker laptop". Ha ezt meglátod, menekülj!

A mai posztban bemutatom, mennyire irreleváns a kérdés.

Annak idején a feleségemnek vettem használtan egy Dell Inspiron N7110-et, még 2015-ben. Ez egy 17"-os laptop, 8Gb memóriával, amit nem lehet tovább növelni. Windows csak a 7-es verzióig hajlandó települni rá, ami elég gyorsan elhozta az Office párti felhasználók kiábrándulását, plusz elég nehéz. A gép további sorsa az volt, hogy a Covid idején a lányom ezen tanult. Utána egy ideig Red Alert-et játszottam rajta nosztalgiázás címén, majd kihasználatlanul állt pár évig.

Nem szeretem, ha kihasználatlanul állnak gépek, de mi legyen a szerepe? Sajnos memóriát nem lehet belerakni, be kell érni 8Gb-al. Van benne egy dedikált videokártya, és még HDD-vel üzemel. Elhatároztam, hogy ezen fogom csinálni a TryHackMe feladatokat.

Eddig két virtuális gépet használtam felváltva, mindegyiken Kali Linux volt. Az egyik egy Lenovo ThinkPad laptopon futott. Ennek a teljesítményével voltak problémáim, főleg, ha aksiról futott a Kali. A gépben ugyanis egy i5-ös mobil processzor volt, ami elég gyatra teljesítményt adott le, különösen, ha merült a telep, és elkezd a proci okoskodni a teljesítménnyel. A másik probléma, hogy a 15"-os képernyőt gyorsan betelíti egy Burp. Ha pedig a böngészőben osztott képernyőn jelenik meg a feladathoz tartozó virtuális gép, akkor végképp nehéz boldogulni. (Különösen, ha a feladat logo elemezése. Ilyenkor megnyílik a böngészőn belül a virtuális gép, amiben egy másik böngésző fut. Asztali gépen még oké, de 15"-os laptopon fájdalmas. Mintha egy Matrjoska babát kellene operálni).

Így született meg a döntés, hogy a régi Dell lesz a hackergép. Kali szóba sem jöhetett, mert a virtuális géphez képest alig lenne teljesítmény növekedés. Szerencsére nem csak Kali-t lehet használni, annak csak jó a marketingje. Tegyünk egy próbát a ParrotOS-el!

A telepítés szóra sem érdemes, USB be, bootol, telepít, újraindít. A betöltő képernyő az uncsi loading bar helyett glich-es logo van, amivel azonnal megvettek kilóra. Kicsit úgy indul, mint a hollywood-i hacker számítógépek. Sok csicsa, kevés konkrétum, imádtam.

Lehetne dobálózni, mennyi hacker programot telepít a rendszer alapértelmezetten, de minek? A legtöbb CTF-hez pár program kell csak, azon kívül mennyi felesleg van feltelepítve, nem számít. Libreoffice is van alapból, úgyhogy ha véletlenül hackerlés közben küldenek egy Excel doksit, akkor sem kell újraindítani.

Böngészés közben azért hamar kijön, hogy a memória kevés. Az egyik OSINT feladathoz megnyitottam a Google maps-et, a TryHackMe-t, Threads-et, futott még a VPN. Akkor azért küszködött egy kicsit. Ha valaki szeret sok lapot megnyitni, biztos nem szeretné ezt a konfigurációt.

A böngészőben egyébként van automatikus ad-blocker, Foxy-proxy, ami hasznos. Ha több privát térre vágynánk, akkor van Tor Browser és AnonSurf.

Az egyik bajom a Kali-val az szokott lenni, hogy a sorozatos frissítések hatására egyszer csak használhatatlanná válik. Még nem frissítettem olyan sokat a ParrotOS-t, hogy megtapasztaljam, itt milyen a helyzet, majd frissítem a cikket ezirányú tapasztalataimmal. Amit mondhatok, eddig jól muzsikál. Kis ablakban szól, ha van mit felrakni.

 Szóval egy régi roncsból is lehet menő hacker laptopot csinálni, csak egy kis rásegítés kell.

Szólj hozzá!

Címkék: biztonság rendszergazda

Cseppet sem objektíven: Assembly 2026

2026.08.23. 12:42 Travis.CG

Rövid filmek

Vegyük úgy, hogy nem volt. Hiányzott minden kreativitás idén a filmekből. Talán egy volt, ami esetleg érdekes lehetett volna (egy ember egy barlangban talált egy Windows XP-s laptopot, és végignézett rajta néhány érthetetlen videót). A koncepció arra volt jó, hogy keretet adjon több, random ötletnek, de összességében nem volt nagy eresztés. A többi videó még ezt a szintet sem érte el, egyszerűen katasztrofálisak voltak.

Gyors grafika

Mindegyiken volt egy egér kurzor. Ez lehetett a megadott motivum. Nem tetszettek.

Wild

Az egyik demó egy videó mixeren futott. Az nem volt tiszta számomra, hogy a mixernek honnan jöttek az adatok, és az alkotó csinált-e valamit, vagy csak tekergette a potmétereket. Minden esetre nem volt érdekes. Kaptunk egy QR kód demót, ahol a QR kód egy base64-el kódolt JavaScript demót tartalmazott. Szkennelés után a böngészőben elindult egy kicsi demó. A koncepció érdekes volt. Voltak táncoló robotporszívók is. Ebben a demóban még lett volna potenciál, de megértem, hogy nem akartak még több porszívót venni egy demó kedvéért.

Digitális grafikák

Elég gyenge felhozatal volt. Még Darkki képe sem tetszett, pedig ő az egyik kedvencem. Partikle képén a kompozícióval volt bajom, a fő téma teljesen a háttérbe olvadt. A jobb oldalon álló zubbonyos elvonja a figyelmet. Mindegy, azért elég jó volt. Vissza is néztem Partikle korábbi képeit, mert eddig elkerülte a figyelmemet a munkássága. Régi motoros, nem most kezdte a szakmát.

Pixel grafikák

Jok Amigás képe elég jó volt, de a mezőny nem volt erős. Azért berakom ide a képet, hogy lássátok ti is.

Táncolós zene

Teljesen vállaható kompó volt, nem voltak rossz számok, igaz kimagaslók sem. Turbo Knight csuklóból nyert.

Hallgatós zenék

Teljesen szokványos felhozatal, nem volt rossz, szívesen hallgattam mindegyiket, és nem néztem az órámra, hogy mikor lesz végük.

4k intrók

Ennyi rossz intrót egy kompóban én még nem láttam. Nagyítóval kell keresni az érdekes entry-ket. Nem csoda, hogy a nyertes intró nem a programozással, a zenével, hanem egy jó poénnal vitte el az első helyet.

Régi gépek demói

Az oldschool kompó a finneknél soha nem volt túl erős, ezért nem is voltak nagy elvárásaim. Meglepetés nem ért.

Egyperces demók

Ennek a kompónak elméletileg az lenne a lényege, hogy ha nincs egy egész demóra ötleted, esetleg még kezdő vagy, legyen egy könnyített terep számodra. Azért a Byterapers, Jumalauta, Adapt is beszuszakolt néhány Notch demót. Kétszáz megás, egy perc hosszú demók uralták a kompót. Azon olvasóimnak, akik nincsenek benne a demoscene bugyraiban: Ez olyan volt, mintha egy vidéki roncsderbin feltűnne néhány Leopard 2-es tank. Tizenhét induló volt, vagyik sokan indultak. Megmondom őszintén, nem tetszett ez a kompó.

Valódi demók

Eddig sem műdemókat láttunk, de ezek voltak a PC-s világ büszkeségei. Szerintem itt van helye a Notch-os demóknak. Nem is panaszkodhatom, jó sok volt belőle. A kedvencem a Demonscene volt a Gray Marcher-től. Mikor kibontottam a demót, el sem hittem, hogy csak 280K. A zene 12 MB mellette. Az ötlet, a kivitelezés, a technológia, mind kimagasló volt. Az első helyezett Before Zero számomra nem volt olyan koherens. Kicsit minden akart lenni. Folytatása a Superselection-nak, utánozni a Razor1911 demót. Helyette egyik sem lett. Technikailag nyilván kiváló volt, hála a Notch motornak, de hiányzott belőle minden lélek.

AI szemét

Beszélnünk kell az AI kompóról is, mert volt. Az egyik legnépszerűbb kompó volt, ha az indulók számát nézzük. Vagyis többen igénylik a vibe kódolást, mint a gyors grafikát! Egy kicsit elszomorít a dolog, hogy az emberek nem akarnak energiát beleölni a demókészítésbe. Ez persze személyes vélemény. Igazából még el is fogadnám, hogy legyen lusta kompó, ha legalább érdekes, esetleg jó demók lettek volna! De nem. Silány, semmitmondó, néhol egyenesen a kompofiller szintet sem tudták megütni.

A másik, amit nem tudtam hová tenni, az az AI gyalázás. Ha nem szeretik az AI-t, akkor miért AI-val készítik a demót, és adják be egy AI kompóra? Olyan, mintha elmennék tüntetni a multinacionális cégek uralma ellen, majd a fáradságot egy McDonalds-ban pihenném ki a barátaimmal. Paradox módon az Artificial az Anacron promptolásából mutatta meg legjobban, hogy mit érzek az egész kompóval kapcsolatban. Béna szöveg, ami a maga módján néha ráhibáz az igazságra. Közepes effektek, üvöltő zene, hanyag időzítés. Ez a teljesítmény, amit az emberek a demoscenébe beleadnak 2026-ban. Nem kell a kihívás, a határok feszegetése, csak a könnyen és gyorsan előállított közepes minőség.

Összegzés

Nem tetszett az idei Assembly. Nem volt jó. Gyors grafika, egy perces demók, vibe coding, Notch. Unreal, Unity, úgy vettem észre alig voltak. Ezek voltak a menők, ezek árasztották el kompókat. Bízom benne, hogy ez csak egy rossz évjárat volt, és jövőre kapunk egy igazi Assembly-t.

Szólj hozzá!

Címkék: demoscene

Pixel 6a képernyő csere

2026.08.16. 11:49 Travis.CG

Kis családom gondoskodik róla, hogy ne sorvadjanak el telefon szerelő képességeim. Most épp a feleségem telefonját kellett megjavítani. A nyaralás alatt szegény gyerekek internet és telefon függőségben szenvedtek. A szálláson nem volt internet, ráadásul gonosz szüleik aktiválták a képernyő időt, ami miatt "csak" 8 órát nyomogathatták a készülékeket. Mikor lejárt az idő, módszeresen kutatták a további játékokkal felszerelt telefonokat.

Én nem telepítettem játékokat, úgyhogy engem ignoráltak. Egy ideig a nagymama telefonját nyüstölték, felhasználva minden mobil internet keretet. Az erőforrások elhasználása után új prédát kerestek maguknak. Észrevették, hogy a feleségem telefonja dugig van tologatós, párosítós és logikai játékokkal, mindenféle korlátozás nélkül!

A három gyerek addig játszott a telefonnal, amíg ripityára nem törött a képernyő. Hiába kérdezgettük, ki volt, hirtelen senki nem látott, nem hallott, nem játszott. Ahogy ilyenkor lenni szokott: magától történt, mint egy kvantum esemény.

Az új képernyő nagyon gyorsan, már másnap megjött. Talán kicsit túl gyorsan is, mert OLED-et kértem, de LCD-t kaptam. Furcsa is volt a webáruházban, hogy az OLED kijelző volt az olcsóbb. Volt még egy meglepetés, de ez csak a szétszedés után derült ki. A tanúság, hogy alkatrész rendelésnél nézzük meg az összes elérhető típust, és csak utána döntsünk, mit veszünk.

Az LCD is ugyan olyan jól néz ki, én nem látok semmi különbséget, ezért nem is akadékoskodtam.

A készülék szétszerelése nagyon egyszerű. A kijelző egyszerűen bele van ragasztva a helyére. A szerelés során egyetlen csavart sem kellett kihajtani. Igazán üdítő volt az IPhone-hoz képest, ahol minden részegység más csavarral volt rögzítve.

A ragasztót nem kellett melegíteni sem, szépen elvált a kerettől. A képernyő egyetlen szalagkábelen keresztül kommunikál az alaplappal, amit egy kis fém rögzít. Amikor a csipesszel megpróbáltam eltávolítani, kipattant a helyéről, és a szoba közepén landolt. Szerencsére megtaláltam.

pixel6a.jpg

A régi és az új kijelző összehasonlításakor feltűnt, hogy a csere alkatrész nem tartalmazott ujjlenyomat olvasót. Szerencsére a feleségem eddig sem használta, ezért nem hiányzott. A régi képernyőről nem tudtam volna sérülésmentesen átemelni.

A legnagyobb nehézség (értsd: 7 percig szórakoztam vele) az új szalagkábel csatlakoztatása volt, valahogy nem akarta megtalálni a helyét, és maga a szalagkábel viszonylag rövid volt. Miután csatlakoztattam, be is kapcsoltam a készüléket, hogy ellenőrizzem a működését. Minden hibátlanul ment.

A képernyőt vissza kellett ragasztani, amire sima Pattex-et használtam, egy kis spatulával elkenve, és csak a sarkoknál felhordva. Természetesen lehet venni autentikus ragasztót is a boltban, szerintem nincs rá szükség. A Pattex eléggé megfogja, ha meg később mégis cserélni kell valamit, nem kell félni, hogy nem válik el. A vízállóságot természetesen el lehet felejteni, de ez eddig sem volt szempont.

A további balesetek megelőzése érdekében a telefon kapott képernyő védőt és egy ütésálló tokot. Sajnos a képernyő védő rontotta a játszhatóságot néhány esetben, úgyhogy rövid időn belül lekerült.

A régi képernyő, akár csak az IPhone esetében, nem bizonyult újrahasznosíthatónak.

Szólj hozzá!

Címkék: barkácsolás

LLM továbbképzés

2026.08.10. 08:19 Travis.CG

Megvolt a második LLM képzésem is, amit már csak fejlesztőknek tartottak. Ez a képzés még az előzőnél is csapnivalóbb volt. Az előadó AI-val készített egy prezentációt, és ismét bebizonyosodott számomra, hogy az LLM nem helyettesíti a rutint és a tapasztalatot. Hiába voltak szépek az előadás diái, hiába készült HTML-be, amit böngészőben tudtunk követni, az előadó még azt sem tudta, mikor kezdődik a képzés, nem tudta a hallgatóság milyen előismeretekkel rendelkezik, és azzal sem volt tisztába, mennyi ideje van mindent elmondani. Ebből adódóan nem is mondott el mindent.

Én egy órával előbb érkeztem, mert a nyaralást szakítottam meg a kurzus kedvéért, és a Balatonról így ért be a vonat. Az előadó meglepődött, hogy csak én vagyok jelen, utána meg aggódni kezdett, hogy nem tudja befejezni az előadást.

A kialakult helyzethez a legrosszabb módon alkalmazkodott. Ahelyett, hogy kihagyta volna a kevésbé releváns témákat, részletesen beszélt a git-ről, LLM-ekről általában. Olyasmikről, amikről vagy napi szintű tapasztalatunk van, vagy az első előadáson hallottunk.

A HTML kimenet nagyon hasznosnak bizonyult, mert a kivetített anyagot képtelenség volt elolvasni az apró betűk miatt, inkább a saját gépemen követtem.

Reménykedtem benne, hogy talán a tartalom kárpótolni fog. Az előadót úgy mutatták be, mint aki "másfél évvel a trendek előtt jár". Ez reményt keltően hangzott, akár csak az előadó életútja, aki rögtön azzal kezdte a bemutatkozást, hogy C64-en egy cracker csapat tagja volt a nyolcvanas években.

Honnan lehet tudni, hogy a trendek előtt járnak? Onnan, hogy amit ma megszokott eszközökként használunk, mint például az ügynököket, azokat ők már korábban kitalálták, csak rosszul nevezte el. Náluk az ügynökök például "doer"-ek voltak, mert csináltak valamit. Készítettek hozzá egy 3D világot is, ahol az ügynököket NPC-szerű emberek vizualizálták. A felhasználó úgy mozoghatott ebben a világban, mint egy FPS-ben, és a promptok szövegbuborékokban jelentek meg.

Látszólag jól nézett ki, de egy idő után biztos idegesítő, hogy egy folyamat megtekintéséhez végig kell gyalogolni a virtuális irodát, kerülgetni a lófráló ügynököket, stb. Ezt a virtuális világ izét már többször akarták az emberekre tukmálni (VRML, Metaverse), de valahogy mind a mai napig jobban boldogulunk egy terminálban (mellesleg az előadó is azt részesítette előnybe, még a Claude is parancssoros nála).

Azt is elmondták, hogy a szoftvernek már nincs értéke, azt nem is érdemes eladni, hiszen az LLM bármilyen programot elkészít. Az emberek nem fogják megvenni azt, inkább elkészítik maguknak. A jövő a szoftver készítő szoftvereké, amit természetesen LLM-el generálnak.

Sok hülyeséget hallottam már életemben, de mindig azok a legnagyobbak, amiben a beszélő még hisz is. Azt nem magyarázták el nekem, hogy miért jobb az LLM-el készített szoftver készítő, mintha az LLM egyből a célt készíti el, de úgysem értettem volna meg, hiszen én nem járok a trendek előtt.

Hiába kellett sietni az előadónak, hogy időben elmondhasson mindent, azért így is jutott ideje, hogy egy órán keresztül a cégét fényezze, mert olyan exkluzív kurzust fognak tartani, amire még a nagy cégek is csak két helyet kapnak ("Az Audi két helyet kap rá, értitek? Az Audi!") Ha az is ilyen minőségű lesz, mint ez a mostani, akkor az a két hely is sok.

Egyébként ez a videó sokkal rövidebben, érthetőbben többet tud elmondani, mint amit én hallottam az egész napos tréningen:

Délutánra akkora csúszásban volt az előadás, hogy már mi kértük, hogy inkább menjünk a gyakorlati részre, mert diákat olvasni otthon is lehet. Úgyhogy elkezdtünk egy feladatot. Szemantikai keresőt készítettünk egyetlen PDF felhasználásával, ügynökökkel, meg minden franccal, ami csak azért van, hogy tokeneket öljön halomra.

Claude feltett egy csomó kérdést, válaszolgattam neki, próbáltam irányítani, reménykedtem, hogy a nagy munkában nem töri fel a Pentagont, nem szökik meg a virtuális gépből, és csinál valami értelmeset. Ez utóbbi kívánságom kivételével minden teljesült. Ellenőrzésként a keresőnek feltöltöttem egy mikrobiológiai cikket, és kértem, hogy keresse meg a "neuron" szót, mert tudtam, hogy az nincs benne. Mit mondjak? Háromszor találta meg a nem létező szót. Itt lett elegem az egészből.

Sajnos a csoportból nekem lett egyedül végeredményem. A többiek ügynökei nem végeztek a megadott idő alatt, ezért nekem kellett beszélnem erről a szennyről. Elmondtam mennyire elégedetlen vagyok a végeredménnyel, mire az előadó megpróbált meggyőzni, hogy ez egy teljesen jó megoldás, amit kaptam. Jó megoldás? Egy pdftext + grep jobb megoldás!

Utána arról kérdezgettek, hogyan éreztem magam? Azt válaszoltam, hogy nem éreztem semmit, mert nem is csináltam semmit, csak utasítottam egy LLM-et. Utána ment a lelkizés, hogy a "folyamat során hozott döntésektől lesz ez a te munkád". A döntésektől? Később végig gondolva a beszélgetést arra jutottam, hogy a "döntéseimnek" nincs semmi jelentősége. Ez a rendszer akkor is tud valamit generálni, ha teljesen más technológiákat használ. Az emberi fejlesztésnél van jelentősége a döntéseknek, mert ezek szabják meg, mennyire hatékony a programozás, mint folyamat, milyen könnyen tudjuk később fejleszteni a rendszert. De ha a Claude generálja a kódot, akkor teljesen irreleváns a programnyelv, a keretrendszer, minden! Jó, nyilván van árnyalatnyi különbség, hogy melyik rendszerről mennyi adat volt jelen a tanuló adatszettben, de ezt leszámítva a döntések súlya szinte jelentéktelen.

De ha mégis úgy gondoljuk, hogy a döntésektől lesz saját kreálmány, akkor én egy csomó pulóvert kötöttem, mert én mondtam meg édesanyámnak, hogy melyik fonalat használja, és én választottam ki a mintát a Puli magazinból.

Azért jó dolog is történt azon a napon. Mikor mindenki elment, megkérdeztem, nem volt-e demoscene kapcsolata, ha már C64-ezett, meg crackelt. Természetesen volt. Con és Generiq néven futott, az Exceed és a Triad tagjaként. Első sorban zenét szerzett. Majdnem egy órán át beszéltünk demoscene jellegű dolgokról.

Az a véleményem, hogy az LLM technológia olyan gyorsan változik, annyira friss, hogy képtelenség "szakértőnek" lenni. Jó, a nagy cégeknél, ahol ezen modellek tanítása és fejlesztése folyik, ott vannak szakértők. De azok között, akik csak használják a modelleket, nincsenek. Csak egy terméket használnak. Egy olyan terméket, ami havonta-hetente változik. Többször előfordult, hogy a hallgatóság sorából megjegyezték, hogy "az új verzióban ez már benne van".

Úgy érzem, az "AI" szektorban sokkal több a kommunikáció, mint a tény. Önjelölt szakértők, akik csak a mondatok szintjén járnak a trendek előtt, cégek, akik hatásvadász cikkekben fényezik a modelljeiket, miközben a valóság sokkal prózaibb. Több objektivitásra lenne szükség, és kevesebb bullshit-re.

Szólj hozzá!

Címkék: demoscene machine learning

Gyerekek és technológia

2026.08.02. 19:05 Travis.CG

A gyerekek túl sok időt töltenek a képernyő előtt - hangzik fel rendszeresen. Ha visszagondolok a gyerekkoromra, én is rengeteg időt töltöttem a képernyő előtt. Ha őszinte akarok lenni, akkor a legtöbb ismerősöm is egyfolytában a gép előtt ült, szóval én nem takarózhatom azzal, hogy "bezzeg én mennyit fociztam, nem úgy, mint a mostani gyerekek!". Mindezzel csak azt akarom elmondani, hogy a képernyő-idő probléma nem most keletkezett, csak most lett tömeges jelenség.

Azt sem mondhatom, hogy a technológia korai megismerése hatalmas tudásbeli előnyt jelent, és ezekkel az ismeretekkel felvértezve egyenes úton vezet az IT szektorba. Az egykori ismerőseim döntő többsége, akik számítástechnikai tagozaton tanultak, egyáltalán nem ezen a területen helyezkedtek el.

Abban viszont biztos vagyok, hogy ha annak idején valaki "csak játszott", akkor akarva-akaratlanul szedett fel informatikai ismereteket. A DOS-os időkben tudni kellett az autoexe.bat és a config.sys felépítését, a memória kezelés sajátosságait, hogy elég erőforrás legyen a játékoknak. A Windows beköszöntével ismerni kellett a drivereket, patch-eket. Tudni kellett telepíteni szoftver komponenseket, hogy fusson a játék. Ha valaki netalántán warezolt, akkor tudni kellett, mi az a sávszélesség, hálózat, hogy minél előbb megkapja az áhított digitális élményeket.

Manapság erre nincs szükség. A játékok egyetlen koppintással a telefonra kerülnek. A lányom még azt sem érti, mi az az FPS, csak azt tudja, hogy laggol, és az rossz. De az okokat már nem érti, és a legrosszabb, hogy nem is akarja megérteni. Olyan hülyeségeket kiabál, hogy "Ez IPhone, ez nem laggolhat." Mint korábban bemutattam, a dühkezeléssel is vannak problémái, aminek a levét a szegény eszközök isszák meg.

A keresztfiam sem jobb. Még csak hat éves, de már neki is van telefonja. Mikor nálunk nyaralt, észrevettem, hogy egy játékos YouTube csatornát néz, ahol GTA 5-el játszottak. Én hülye elkotyogtam, hogy ezzel én is szoktam játszani. Onnantól nem volt nyugtom, egyfolytában GTA-zni akart. Ebéd közben odaült mellém:

- Mikoj végzel? Hajapj nagyobbat!

Le sem nyeltem az utolsó falatot, már húzott a géphez, hogy kapcsoljam be neki. Persze játszani nem tud vele, mert a szem-kéz koordinációja nincs azon a szinten, hogy egyszerre kezelje az egeret és a billentyűzetet. Össze-vissza lövöldözik, az autóval nem tud egyenesen menni, elüti a gyalogosokat, aztán csodálkozik, hogy üldözik a rendőrök.

Próbáltam mutatni neki, hogy máshogy is lehet játszani vele: tűzoltóként cicát menteni, autóka tuningolni és eladni, versenyezni. Nem érdekelte. Csak az, hogy járókelőket üthessen meg, majd beülhessen egy tankba, és halomra lője a kiérkező rendőröket.

- Így játszik a Kjisz és a Máté is.

A többi játékkal sem tud játszani, mert nem tud olvasni, és nem érti az angol nyelvet. Csak random nyomogatja a gombokat. Igaz, annak idején a C64-es játékok legtöbbjével én is így játszottam. A sikerélmény része volt az is, amikor rájöttem, hogy mi a feladat a játékban.

Az a legszörnyűbb, hogy a technológia az életük része, mégsem tudnak róla semmit.

Szerencsére elvétve találkozni kellemes ellenpéldával is. Egy másik scener lakásán voltunk, beszélgettünk, amikor a házigazda tizenkét év körüli fia odalépett hozzánk.

- Apa, megmutathatom, milyen trükköket tudok?

Megmutathatta. Úgy kezdte, hogy megnyitotta a Windows terminált! A legtöbb felhasználó szerintem nem is tudja, hogy ilyen létezik. A parancs a következő volt:

curl ascii.live/rick

Még színeket is tudott változtatni! Megnyitott vagy 16 terminált, mindegyiket más színben, és mindegyiken futott a rickroll. A másik trükk a "dir per pé" volt.

dir /p

Gondoltam, én is mutatok neki pár trükköt, hogy tudjon mivel menőzni, úgyhogy megmutattam a tracero

Szólj hozzá!

Címkék: életmód

ESHG konferencia áttekintés

2026.07.21. 20:05 Travis.CG

Kaptam egy hozzáférést az idei ESHG konferencia anyagához, és gondoltam átnézem, milyen újdonságok vannak a tudományban. A konferencia humán genetika központú, hibrid, ezért a poszterek mindegyike, az előadások nagy része visszanézhető. Erre szükség is van, mert párhuzamosan hat szekció is futott, a helyszínen lehetetlen valamennyit végignézni. Rettenetes mennyiségű anyag van, még utólag is komoly erőfeszítést igényel, hogy kiválogassam a hasznos részeket. Meg sem próbálok teljességre törekedni.

Hosszú readek a klinikum szolgálatában

Több előadás, poszter címe is utalt rá, hogy a hosszú readek használata egyre relevánsabb a klinikumban. Még az Illumina is próbál nyitni a hosszabb szekvenciák irányába. Igaz, a maguk módján. Továbbra is 2x150 readekkel operálnak, csak nem fragmentálnak. A hosszú DNS szálak ezért klaszterekbe rendeződnek a flow cell-en. A klaszterezésről magáról nem beszéltek, ezért nem tiszta számomra, hogy honnan tudják, melyik read melyik klaszter tagja. Az sem tiszta, hogy ezek a klaszter információk elérhetőek-e a felhasználók számára, vagy csak a Dragen platform eredményeit látjuk.

Hibák nélkül nem megy

Egy teljes szekciót, négy előadást szenteltek az elmúlasztott variánsoknak. Hiába szekvenálnak tízezres nagyságrendben genomokat, hiába duzzadnak a klinikai adatbázisok, még a nagy nyelvi modellek korában is alaposan meg kell nézni, mit kapunk eredményül. Ebben a szekcióban az előadók eseteket mutattak be, és egy online szavazó rendszerben a hallgatóság szavazhatott, hogy az adott variáns klinikailag releváns-e vagy sem. A válaszok nagyon szórtak. Számomra ebből az a következtetés, hogy a mutációk biológiai megítélése még most is nagyon szubjektív. A másik fontos információ, hogy az annotációk változnak. Ami most még klinikailag irrelevánsnak tűnik, később patogén besorolást kaphat.

Nyelvi modellek megtalálták a helyüket

Még továbbra is találni furcsa alkalmazását a nyelvi modelleknek. Az egyik ilyen az ember egész életútját egy nyelvnek fogja fel, és a különböző hatások (műtét, dohányzás, stb.) szavak, amelyek alapján a nyelvi modell megpróbálja megjósolni az illető életkilátásait. Szerencsére ezek a fajta kutatások kevesen voltak, a legtöbb poszterben az LLM-ek az annotációkat, szöveges forrásokat dolgoztak fel. Tehát arra használták, amire való. Végre!

Kincsek

Ez egy random felsorolás lesz azokkal a dolgokkal, amik érdekesnek tűntek. GenMasterTable: klikkelős program, aki unja a GoldenHelixet, használhatja ezt is. Van hozzá egy GenMasterAI nyelvi modell, hogy összegezze a találatokat. A VEP kapott AlphaMissense támogatást.

Szólj hozzá!

Címkék: bioinformatika

Fools Mate CTF

2026.07.10. 10:25 Travis.CG

Ez a feladat remekül példázza, miért nem lehet megbízni a kliens oldali ellenőrzésekben. A feladat, hogy mattot kell adni a számítógépnek, képletesen és szó szerint.

foolmate1.png

A weboldalon egy sakk feladvány van. Nagyon egyszerű felállással, gyakorlatilag egy lépésre, hogy mattot adjunk a gépnek. De jajj! Amint megtesszük a győztes lépést, rögtön megjelenik egy gonosz üzenet, hogy a gépünk le fog fagyni, ha megtesszük. Minden más lépést enged a gép.

foolmate2.png

Úgy tűnik, mi kaptunk mattot. Vagy mégsem? Hekkeljük meg a rendszert! A böngésző developer arzenálját nyissuk meg. Én most Mozillán mutatom meg a lépéseket, de más böngészőknek is vannak hasonló funkciói. Először nézzük meg az js/app.js-t. Jó sok sorból áll. Keressünk rá az üzenetre. Láthatjuk, hogy kliens oldalon ellenőrzi a lépéseket.

foolmate3.png

A Web Developer Debugger fülén keressünk rá az app.js-re. Jobb egérgomb után válasszuk ki az Add script override menüpontot.

foolmate4.png

Lementhetjük a szkriptet egy könyvtárban. Nyissuk meg kedvenc szövegszerkesztőnket, és vegyük ki a feltételt, vagy módosítsuk a visszatérési értéket. Ránk van bízva. Mentés, majd frissítsük a weboldalt. A módosított javascript fog lefutni, és megadhatjuk a kegyelem döfést!

Nagyon jó kis CTF volt, és még folytatása is van! Fools Mate, Revenge. Az már nem lesz ilyen egyszerű.

Szólj hozzá!

Címkék: biztonság

Kvarcjáték készítés (1. rész)

2026.07.07. 16:30 Travis.CG

Találtam egy kvarcjátékot a földön. Gondoltam megmutatom a lányomnak, hogy annak idején, mikor még nem volt Roblox, mivel ütöttük el az időt. Bár, őszintén megmondva, nekem csak egy kvarcjátékom volt, és azzal sem tudtam játszani, mert nem értettem, mit kell csinálni. A szegmentált kijelző miatt sokszor a fantáziánkra volt bízva, mi is történik. Sajnos a talált kvarcjáték már nem működött, és nem tudtam kitalálni, mi lehet a problémája. Viszont szöget ütött a fejembe, hogy lehetne-e készíteni egyet?

A neten sok kézikonzol építő van, de mindegyikük a Gameboy-t akarja újra megépíteni egy Raspberry segítségével. Én valami jóval egyszerűbbet akarok. Picit, monokrómot, pittyegőt. Két játék gombbal, és két játék váltó gombbal, amilyen egy klasszikus kvarcjáték volt. Semmi joystic, semmi D-pad. A régi kvarcjátékokkal szemben ezen több játék is lesz, a grafikánál pedig elhagyom a szegmentált kijelzőt, mert az már annak idején is gáz volt. Az eredmény majd egy wild lesz valamelyik demópartira.

Emlékeztem, hogy a vackaim között van egy apró mikrokontroller, és egy pici 1,3"-os OLED kijelző. Egy fickótól vettem évekkel ezelőtt, aki megunta a bütykölést, és egyben eladott mindent. Fél óra keresgélés után meg is lett mindkettő, még bontatlan csomagolásban!

A mikrokontroller egy ESP32 dev board, de még a mikousb csatolóval. Mondtam, hogy régi. A board NodeMCU32-S kompatíbilis, de a neten látható képek alapján valami hamisítvány lehet, mert hiányoznak a feliratok róla. A pin kiosztás viszont stimmel, ezért tudom használni. Az OLED kijelző típusát nem tudtam meghatározni.  Egy fél napot elszúrtam azzal, hogy a legegyszerűbb kódot feltöltsem az ESP32-re. Nyomkodtam a boot gombot, állítgattam a Linuxon a jogosultságokat, végül kiderült, hogy rossz USB kábelt használtam, amivel csak tölteni lehet, adatot átvinni nem.

Utána jött az OLED szenvedés. Mivel nem tudtam a típusát, random Adafruit könyvtárakat próbálgattam, hátha egyik működni fog. Végül az SH110X volt a befutó, mert a példakódot le tudtam futtatni.

Először egy prototípus board-on raktam össze a rendszert. Az ESP32-nek számos kimenete van, mindegyik több dolgot is tud. Egyes portokat nem is lehet használni. Vannak pull up ellenállások is, de ezt sem tudja mindegyik input pin, és természetesen az első próbálkozásra csak olyan pinre kötöttem a gombokat, amiknek nem volt ilyen funkciója.

A második kötés már megfelelően kezelte a gombokat. Elkezdtem példa kódokat írni, hogy érezzem a fejlesztés folyamatát. A platform.io vs Arduino IDE harcban elsőre az Arduini IDE nyert. Először nem is volt semmi gond. Mikor a kód három új include állománnyal bővült, akkor már éreztem az IDE korlátait. Első körben maradok ennél a megoldásnál, ha már halálra fog idegesíteni, majd átváltok platform.io-ra. Most haladni szeretnék.

Olyan játékokat akartam, amelyeket lehetett két gombbal irányítani. Az első játék a jól ismert T-Rex ugrálás. Nem bonyolítottam túl, egy fajta kaktusz van, egy dinó. Ehhez elég egy gomb is. A második egy sudoku volt. A képernyő felbontása miatt csak 6x6-os jöhetett szóba. Két gombbal lehet kezelni, az egyikkel kiválasztjuk a cellát, a másikkal a pörgetjük a számokat.

Éppen ehhez a blogbejegyzéshez készítettem képeket, amikor a képernyő elkezdett furcsán viselkedni. Először csak vibrált, majd teljesen elsötétült. Ezért nem tudtam javított fotót lőni. Be kell érnetek ezzel. kvarcjatek1.jpgRemélem sikerül majd megoldanom a problémát.

Szólj hozzá!

Címkék: programozás demoscene barkácsolás

A gondolkodás tokenekre cseréléséről

2026.06.27. 17:51 Travis.CG

Az adattisztítás egy elég fontos, viszont rettenetesen unalmas része az adatfeldolgozásnak. Ha a tisztítási lépés sok adatot érint, célszerű rá programot írni, ami elvégzi helyettünk. Ez az én esetemben egy iteratív folyamat szokott lenni, mert minden egyes lépés után ellenőrzöm, hogy a program nem módosított-e valamit azokon az adatokon, ahol nem kell módosítani semmit. Például ha az NA-t kicserélem 0-ra, akkor a nátrium vegyjelét hagyja békén.

Előbb-utóbb eljutok arra a pontra, amikor a programkód módosítás több időt vesz igénybe, mint szövegszerkesztővel végigmenni a kérdéses cellákon, és kézzel átírni, amit kell.

Ezzel csak azt akarom mondani, hogy tudni kell, mikor ne használjunk egy eszközt vagy módszert.

Az LLM-ek megjelenésével hirtelen nagyon sok, bonyolultnak tűnő feladatot lehet megoldani egy olyan módszerrel, ami közelebb áll hozzánk: emberi kommunikációval. Ez egy teljesen jogos igény, még Scotty, az Enterprise űrhajó gépésze is beszélni kezdett a PC-hez.

A fejlődés nagyon gyors. Részt vettem egy nagyképűen csak AI képzésnek nevezett izén - ahol csak LLM-ekről beszéltek - és adtak egy feladatot: készítsünk élvezhető kigyó játékot Excelben, VBA-t használva. A képzésen abból is látszott, hogy én voltam a legöregebb, hogy én még programoztam VBA-ban. Mindegy, elkalandoztam, a korral jár. Az élvezhető kitételt én úgy valósítottam meg, hogy kértem különböző power-up-okat, és egy ellenséget, ami üldözi a kígyót. Az első verzió nem működött, mert az irányításra nem reagált a játék. Mikor ezt megírtam neki, kijavította. A második verzióban volt egy szintaktikai hiba, amit kézzel kijavítottam (az előnye, ha valaki érti a VBA-t), és ezzel volt egy működő snake játékom Excelben.

Mint kiderült, ezt a példát azért adta az oktató, hogy lássuk, hogy az LLM-ek nem tudnak mindent megoldani. Nekem meg ott csücsült a gépemen egy működő verzió. Vagyis az oktató sem volt tisztában a jelenlegi LLM-ek képességeivel.

Az oktató egyébként magáról azt állította, hogy LLM-szkeptikus, de én ezt egy felvett szerepnek láttam, amivel az ódzkodó hallgatókat akarta bevonni. Az oktató ugyanis annyira szkeptikus volt, hogy már nem olvas könyvet, csak a könyvből készített podcastot hallgatja meg, amit nyelvi modell készít. LLM felügyeli az egészségét, mert élete minden percét elküldi egy agent-nek, ami figyelmezteti, ha egy héten túl sokat dolgozik. (Külön kihangsúlyozta, hogy 70 óra volt, amikor jelzett neki a program, hogy mindenki érezze, milyen nagy a munkabírása.)

Egy másik feladatban mikrobiológiai adatokat kellett elemezni. Itt egyértelműen elhasalt a rendszer, nem jött rá, hogy log traszformációra van szükség. Persze az oktató sem tudta, úgy beszélt az eredményekről, mintha minden rendben lenne a kiadott táblázatokkal.

A képzésen beszélt egy másik ember is, aki saját elmondása szerint "nem hagy tokeneket kihasználatlanul". Ezt a fajta hozzáállást a prog.hu-n is láttam, ahol egyik ember úgy mutatta, hogy mennyire jobb fejlesztő, hogy már három nap alatt elhasználta az egész havi token adagját.

Megmondom őszintén, nem értem, hogy a token használat miért jelenti a produktivitás fokmérőjét. Ez olyan, mintha egy katona Schwarzeneggerkét elhasználná az összes lőszert. Vajon ő a jobb, vagy a mesterlövész, akinek az a mottója, hogy "egy golyó, egy célpont"?

Régebben az volt az előnyös, ha egy problémát kevesebb erőforrással oldottunk meg. Ez a token égetés mintha pontosan az ellenkezője lenne. Hatalmas erőforrásokkal, pénzbeni ráfordítással oldanánk meg olyan problémákat, amelyeket korábban meg tudtunk oldani magunk is.

Hozzám is eljutnak a csoda-számba menő hírek a bugokról, amik évtizedekig rejtve ülnek a kódban, míg az aktuális csúcskategóriás modell meg nem találta a másodperc tört része alatt. Biztos van ilyen. Én a magam részéről ezekkel  a csodákkal nem találkoztam, de tanúságos esetekkel igen:

Az egyik munka során osztályoznom kellett a promótereket méret szerint. Nem viccelek, azt akarták, hogy keressek összefüggést a promóter mérete és a kísérleti csoportok között. Ez biológiailag értelmezhetetlen, de már megtanultam, hogy nem szó szerint kell érteni a biológusok igényeit. Ezért, hogy ne legyek nagyon támadó, visszakérdeztem, hogy mi az a promóter méret, és hogyan lehet meghatározni?

A biológusok nem válaszoltak, hanem megkérdezték a ChatGPT-t, és elküldték a válaszát. A válaszban szép kódok voltak, adatbázis hivatkozások, tanácsok. Egyetlen gond volt vele: az egésznek nem volt semmi értelme. A nyelvi modell szerint a CAGE adatbázisból kell kiszednem a promóter szélességre vonatkozó információkat. A válasszal több baj is van. Először is, a CAGE transzkripciós start helyeket gyűjt, nem promótereket. Másrészt a génszabályozás térben és időben változik, ezért a promóter nem egy fix képződmény.

Egy másik munka során cikkek alapján kellett eldönteni génekről, hogy tisztán carrier-ek (recesszív formában okoznak gondot), vagy heterozigóta alakban is mutatnak klinikai tüneteket. Azért döntöttünk a nyelvi modellek mellett, mert a genetikussal való beszélgetésnél kiderült, hogy az OMIM adatbázis hiába tartalmaz öröklésre vonatkozó információkat, a különböző fenotípusok szabad-szavas leírásai részletesebb képet adhatnak.

A problémára Claude workflow-t vetettünk be. Kértük, hogy cikkekkel támassza alá az érvelést, de használhat adatbázisokat, stb. Elkezdett dolgozni. Készített ügynököket, szkripteket, leírásokat. Az egésznek alig látszott az értelme. Az egyik szkript például tartalmazott egy 100 soros statikus változót, majd futtatás után kiírta teljes egészében. Más szkriptek indokolatlan kulcs-érték transzformációkat végeztek.

Először elhülve néztem káosz ezen megnyilvánulását, majd leesett, mi történt! Bioinformatikusként, amikor egyik adatot egy másik formátumra hozom, gyakran használok hash-eket. Ezt utánozza ez a szerencsétlen! Nem azért, mert szükség van rá, hanem mert ezt tartalmazza a tanuló adat. Újabb bizonyíték, hogy a nyelvi modellek - hiába jönnek a marketing szövegek a "reasoning", "deep thinking" és egyéb hangzatos szavakkal - nem gondolkodnak.

Visszatérve az eredményekre: több ügynök is ugyan azokat a cikkeket találta meg, de másképp értelmezték. Valahogy úgy, mint a politikusok, akik csak a saját narratívájukat hajtogatják, bármilyen hír hallatán.

Az eredmény nagyjából jó volt. Arra nem volt elég, hogy elfogadjuk azt, nem volt elég részletes, hogy esetleg kézzel tovább finomítsuk. Egyszerűen csak elpazaroltunk rá egy csomó időt, pénzt, bármilyen látható eredmény nélkül.

Személyes tapaszatalatom, hogy az LLM alapú munkák kétféle módon fejeződnek be: vagy elfogy a token, vagy rámondják az eredményre, hogy "ez már elég jó". (Van egy harmadik eset is, amikor a főnök játszik az AI-val, majd átruházza a feladatot a beosztottjára, ha már megunta, de ez is visszavezethető az előző két esetre.)

Az eredmények hiába nem ütik meg a mércét, azért elég biztos vagyok benne, hogy a jövőben nem lesz szükség dedikált bioinformatikusra. Ha egy kísérletes biológusnak kijön egy elemzés végén a kedvenc génje, nem fog ellenőrizni semmit. Számukra ez már önmagában elég bizonyíték, hogy a módszer jó :-)

A programozókra is furcsa hatással van az LLM használata. A fent említett képzésen elmondta egyikük, hogy mióta Claude-ot használ, nem élvezi a munkáját. Nincs meg benne az a megelégedettség, hogy megoldott valamit. Az oktató annyit reagált rá, hogy ő is ismer programozókat hasonló érzésekkel, akik később át is mentek alternatív platformokra, ahol az LLM nem tud segíteni.

A demoscenén is van egyfajta ambivalens kapcsolat a kóderek és az LLM-ek között. Egyrészt ott van az a hozzáállás, hogy "demoban nem használunk LLM-t", de másrészt "a demóhoz használt toolba akarunk használni". Az indoklás az, hogy a demótool kódja repetitív, nem önkifejező, uncsi, stb. Ezek mind igazak, de az én véleményem, hogy minden tevékenységben van uncsi rész. A futbalista is szeret gólt rúgni, de előtte naponta végig kell csinálni az uncsi bemelegítést, amiben nem látszik, hogy ő milyen jó. Pont ugyan olyan gyorsan futja a bemelegítő kört, mint egy harmadosztályú játékos. A festő sem dob egy freskót a falra, hanem előtte vázlatokat készít, meg színeket kever.

Én senkinek nem akarom megmondani, hogy mit csináljon. Nem is én fogom megváltoztatni egy iparág szenderdjeit, munkamódszereit. Például nálunk a melóhelyen erősen ajánlott az LLM-ek használata. Olyasmiket mondanak, hogy "aki nem tud AI-t használni, annak nem lesz munkája máshol sem". Ez nettó hülyeség. Az LLM nem fog pipettázni, nem nyúl bele senki végbelébe, hogy kitapintsa a prosztatáját, és nem viszi ki biciklin a megrendelt kaját. Munka lesz, legfeljebb nem bioinformatikai.

De még mindig szeretek kódolni. Ha pedig szeretek valamit csinálni, miért mással csináltassam? Nem fogom a sportolást sem abbahagyni, csak azért, mert van targonca, meg elektromos roller. Biztosan lassabb leszek, mint az aktuális hype, de nem érdekel. A magyar demópartik száma elég kevés, úgyhogy tudom tartani a határidőket.

Szólj hozzá!

Címkék: filozofálás machine learning

Így próbálták ellopni a Discord fiókom

2026.06.07. 09:51 Travis.CG

A Moonshine Discord szerverén már egy ideje terjedt az infó, hogy egyes felhasználók fiókja felett átvették az irányítást, és onnan újabb támadásokat intéztek más felhasználók ellen. Érdekelt, hogy miként hajtják végre ezeket a műveleteket, de igazából senki nem tudott minden kérdésemre válaszolni. A beszélgetésekből csak annyi derült ki, hogy minden egy üzenettel kezdődik: a támadó véletlenül jelentette a felhasználót, és emiatt törölni fogják a hozzáférését. A többi lépésről nem szóltak, csak szokás szerint azt hajtogatták, hogy erős jelszó legyen, meg két faktoros autentikálás.

Pár nappal később az egyik ismerősöm megkérdezte, hogy tudnék-e neki segíteni. Nem tudtam, miről lehet szó, ezért azt válaszoltam, hogy persze. Ez után küldte el a jól ismert szöveget: Sok sírós emoji mellett elmesélte, hogy véletlenül jelentett, mint csalót, és ezért zárolni fogják a Discord hozzáférésemet, és blokkolni fogják az IP címemet. Eljött az én időm! Kezdődhet a tánc.

Mondtam neki, hogy ne bánkódjon, én tudok élni Discord nélkül. Ekkor jött a második lépés: Azt mondta, fel kellene vennem a kapcsolatot az adminnal, bizonyítani, hogy nem vagyok csaló. Azt válaszoltam, hogy ez rossz logika. Ha azt gondolják, hogy csaló vagyok, akkor nem fognak hinni nekem. Vegye fel ő a kapcsolatot az adminnal, és mondja meg, hogy tévedett. Erre persze nem tudott mit válaszolni, úgyhogy csak ismételte önmagát: Véletlenül jelentett, ezért el fogom veszíteni a Discor hozzáférésem. Azt mondta, azért jelentett véletlenül, mert a felhasználói nevem nagyon hasonlít egy csalóra, és véletlenül engem írt be. Utána adott egy felhasználó nevet, és azt mondta, hogy ő az admin, vele kell beszélnem. Bejelöltem, mint barátot, nagyon hamar visszajelölt. A profil tényleg úgy volt elkészítve, mint egy admin. Szép mosolygós fej, a leírásban az szerepelt, hogy 24/7. Az illetőnek nem írtam, ő nem kezdeményezett. Közben a netet is keresgéltem, és ezt találtam.

A hamis admin feladata, hogy rávegyen, hogy vagy változtassam meg az email címemet egy olyanra, amit ő kezel, vagy adjam meg az adataimat "ellenőrzés" céljából (név, jelszó, stb). Onnantól megszabadítanak a felhasználói fiókom kezelésének terhétől. Az email cím esetén bizonyára kér egy jelszó helyreállítást.

Még annyit írtam vissza a "barátomnak", hogy az admin szerint semmi baj a hozzáférésemmel, aztán blokkoltam mindkettőt.

Szólj hozzá!

Címkék: biztonság

openpyxl, mint büntetés

2026.05.31. 19:15 Travis.CG

Eddig azt gondoltam, hogy az Excel használata a legnagyobb büntetés, amit kiszabhatnak rám, de tévedtem. Ha létezik informatikus pokol, akkor ott lennie kell egy bugyornak, ahol az elkárhozott lelkek Excel cellákat formáznak sikertelenül. (A bugyor pontos helye valószínűleg az inkompatibilis API hívások összekapcsolása és a manuális függőség telepítés között lehet, ahol minden függőségnek további három, nem telepített függősége van.)

Nemrég realizálódott bennem, hogy a bugyornak további rétegei vannak. Itt már nem elég kézzel formázni, hanem csak és kizárólag programkódon keresztül lehet elérni a cellákat. A lelkek időtlen büntetésüket Python programok írásával töltik, ahol képeket akarnak cellákba szúrni. Hiszen mi is lenne a legfontosabb feladata egy táblázat kezelő programnak, ha nem az, hogy képeket, videókat és más haszontalan tartalmakat ágyazzunk bele? Máskülönben elég lenne egy CSV is, nem?

Az openpyxl tényleg mindent megtesz, hogy ezt a hasznontalan formátumot ne kézzel kelljen piszkálni. De a használata olyan, mint egy undorító, híg anyagot újságpapíron egyensúlyozni. Valamelyik szélén le fog csorogni egy kis szenny. A felszínen elég egyszerűenk tűnik:

from openpyxl import load_workbook

excel = load_workbook(filename)

Betöltöttünk egy Excel fájlt, ami viszont több munkafüzetet, vagy mi a fenét tartalmaz.

sheet = excel.active
new_sheet = excel.create_sheet("Fancy")
copy = excel.copy_worksheet(sheet)

Az első példa betölti az aktív lapot, a második sor létrehoz egy újat, a harmadik pedig egy másolatot készít egy meglévő lapról. Fontos megjegyezni, hogy ez a másolat nem 100%! Tapasztalatom szerint csak azokat a tulajdonságokat másolja át, amelyek az openpyxl-ben implementálva vannak. Például hiába teszek a cellába képet az Excellel, azt nem fogja átmásolni a metódus.

 A cellákat a cell metódussal érjük el:

cell = new_sheet.cell(column = 1, row = 1)

Az indexelés 1 alapú, ne kérdezzétek, miért. Egy cellának rengeteg tulajdonsága van. Van például értéke (value), betűtípusa (font) és más tulajdonságai, amit a dokumentáció is részletesen leír. Ha a cellák méretét akarjuk megváltoztatni, azt nem a cell változón keresztül lehet megtenni, hanem a sheet-en keresztül:

new_sheet.row_dimension[1].height = 100
new_sheet.col_dimension["A"].width = 100

Megjegyzés: Ha iteráltatunk az összes oszlop/sor méreten, akkor csak azokhoz az elemekhez lesz numerikus érték beállítva, ahol nem alapértelmezett a méret. Különben None az eredmény. Vagyis, ott nincs méret. Értitek?

Ha csak ennyi lenne egy Excel, akkor nem is lenne nagy problémám, de vannak olyan entitások, hogy összevont cellák. Az összevont cellákat nem érjük el a cell metódussal. Azokat csak a merge_cell-el lehet elérni. De az összevont celláknak nem lehet értéket adni, mert csak olvashatóak. Ha értéket akarsz adni neki, akkor először szét kell választani őket (unmerge_cells), értéket adsz, majd újra összevonod őket. Nem nagyszerű? Itt vagytok még? Mert van tovább is, itt még nincs vége a mókának! A képekről még nem is beszéltünk!

Képeket így helyezhetünk el:

img = openpyxl.drawing.image.Image('image.png')
img.anchor = 'A1'
new_sheet.add_image(img)

Csak a cella pozícióját adhatjuk meg, semmi mást. A képet csak külső forrásból lehet betölteni. Itt fogyott el a lelkesedésem.

Szólj hozzá!

Címkék: programozás

Néhány gondolat a kritikus szemléletmódról

2026.05.24. 14:25 Travis.CG

Mai, felgyorsult világunkban azt veszem észre, hogy a gyorsétkezdék mintájára megjelentek a gyorsinfók is. Ahogy az étkezés világában megjelent a junkfood, úgy szerintem nyugodtan beszélhetünk a junkinfo-ról is. Ezek a könnyen, egy mondatba összefoglalt igazságok pont annyira nem tesznek jót a gondolkodásnak, ahogy az egészségünknek sem jó, ha kizárólag papírdobozos kaját eszünk, miközben sietünk valahova.

Könnyű lenne ezt is a nagy nyelvi modellekre kenni, ahogy tesszük ezt mindennel kapcsolatban mostanában, de a probléma korábban kezdődött, legalábbis a nyomait korábban is tapasztaltam. Ebben a posztban összegyűjttem néhány példát, ami megpróbál rávilágítani arra, hogy a kritikus gondolkodás nem csak a hétköznapokban, de még a tudományos életben sem magától értetődő. 

Műanyagot zabáló élőlények

Volt egy befulladt projekt, aminek a célja olyan baktériumok azonosítása/kitenyésztése, amelyek megélnek a műanyagon. Nem kell ecsetelnem, hogy műanyagok, mint szennyező elemek mekkora problémát jelentenek. A tipikus emberi megoldás: jöjjön valami, és egye meg, csak ne kelljen vele vesződni. (Képtelen vagyok megállni, hogy meg ne említsem a 80-as évek egyik nagy hoaxát, az Olajfalókat. A szennyezést ez a kis lény a film szerint felzabálta.)

A szakirodalom átnézése után kiderült, hogy annyi baktérium eszik műanyagot, hogy a kínaiak már külön adatbázist hoztak létre, hogy ezt a rengeteg tudást böngészni lehessen. Ebben a pillanatban úgy látszott a projekt nyitott kapuka dönget. El is kezdtük böngészni az adatbázist. És itt kezdődtek a gondok.

Előre leszögezem, hogy nem néztem át a teljes adatbázist, csupán egy baktérium törzsel kerestünk, mert a csoport azzal a törzsel rendelkezik átfogó ismeretekkel. Ahogy nézegettem az adatbázist, elkezdett motoszkálni a fejemben egy gondolat: Műanyag zabáló baktérium márpedig nincs. Olyan baktérium, ami termel valami vegyületet, ami akár még a műanyagot is bonthatja, olyan lehet, de olyan, ami megeszi, és nem kér mást enni vacsira, olyan szerintem nincs.

A cikkek legtöbbje Indiából, Iránból, Kenyából, és persze Kínából származik. Habár ezekben az országokban is folyik remek kutatás, furcsa, hogy egyetlen nyugati országból sincs hasonló vizsgálat. (Talán azért, mert a fejlett országok a szemetüket ide szállítják?)

Az egyik random kiválasztott cikk például alig talált szignifikáns különbséget a baktériumok által megcsócsált műanyag és a kontroll között. Értem én, hogy a cikkben a 0,043-as p-érték kisebb, mint 0.05, de azért ez nem egy erős bizonyíték.

Egy másik cikk, épp ellenkezőleg, mindenhol műanyag bontó baktériumokat talált. Egyszerűen az összes általuk izolált baktérium bontotta a műanyagot! Én ezt nem is értem. Ha minden megeszi a műanyagot, hogyhogy nem esik szét a billentyűzet az asztalomon? Magyarországon nem működnek? Elképzelhető, hogy Tanzániában nem érdemes kefírt venni, mert mire hazaérsz, a baktériumok szétrágják a poharat.

Mikrobiom, mint korbecslés

Ezt az előadást a tavalyi bioinformatika konferencián láttam. Az életkort a mikrobiom alapján akarták becsülni. Az előadás során egy csomó vízszinte korrelációs egyenest láttam. Szerencsétlen PhD hallgató mindezt azzal magyarázta, hogy az adatok "zajosak". Én a hallgatóság soraiban azzal magyaráztam a látottakat, hogy nincs korreláció. Cikk azóta sem készült belőle, vagy csak nem találtam. A mikrobiom nagyon divatos téma, és biztos vagyok benne, hogy az életünk számos területével kapcsolatban áll az összetételük, de mindennel biztosan nem. Úgy látszik, az életkor nem ilyen.

Baktériumok a rákos sejtekben

Ebből a hülyeségből teljesen kimaradtam, ezért nagyon meglepődtem, amikor egy folyosói beszélgetés során az egyik kollégám arról próbált meggyőzni, hogy a tumor nem más, mint sejten belüli baktériumok gerillatevékenysége. A hitetlenkedésemre azt mondta, hogy a cikk a Nature-ben jelent meg. Nos, az újság reputációja egyáltalán nem bizonyíték. Ha mást nem, a Covid ezt bebizonyította. Kérdeztem tőle, miért maradna egy baktérium a sejt belsejében? Miért nem csinál semmit az immun rendszer?

Elkeztem utána járni a dolognak, de nem találtam az említett cikket. Mint kiderült, azért nem, mert visszavonták. Ezen kívül is jelentek meg cikkek a témában, én viszont továbbra is szkeptikus vagyok, egyszerűen azért, mert az egér kísérletek, amelyek kiértékelésében részt vettem, nem baktérium fertőzéssel indukálták a tumort, hanem DNS mutációkkal.

Végszó

Nem állítóm, hogy a fenti konklúzióim mind igazak. Elképzelhető, hogy fognak megjelenni olyan publikációk, ami alapján felül fogom vizsgálni az álláspontomat. Jelen pillanatban azt gondolom, hogy nagyon óvatosan kell kezelni, amit olvasunk. Jó lenne megbízni minden tudományos eredményben, de ehhez az is kellene, hogy cikkek szerzői is kritkusan álljanak a saját munkájukhoz.

Szólj hozzá!

Címkék: filozofálás

A Szörnygép (3. rész)

2026.05.17. 19:02 Travis.CG

Elkezdtem készíteni a Szörnygép házát. Sokat gondolkodtam, milyen anyagból, milyen megmunkálással dolgozzak, és végül úgy döntöttem, lemezből fogom elkészíteni. Racionális oka nem volt, csak szerettem volna kipróbálni az új gyémántvágót.

Először is, szükségem volt egy lemezre. A választás egy régi számítógép házra esett, aminek a burkolatát a lehetőségeimhez mérten egyenesre kalapáltam. A tervem az volt, hogy a Szörnygép háza két részből fog állni. Az alsó rész egy felül nyitott doboz lesz, az oldalfalakat hajlítani fogom. Erre fog jönni egy lapos tető, ami tartalmazza majd a billentyűzetet. Bár még ez is képlékeny, olyan is eszembe jutott, hogy a tető egy hűtőventillátort fog tartalmazni, mert úgy tapasztaltam, akkor nem fagy az USB.

Második lépésként sablont készítettem egy papírra, és arra mértem fel a doboz méreteit. Megpróbáltam kimérni az összes csatlakozónak a rést, kigondolni, hol lesznek a fülek, amire csavarozom majd a billentyűzetet.

u64case.jpg

A papírt ezután a lemezre ragasztottam, és megkezdődött a méretre vágás. Bevallom, nem számítottam rá, hogy ez ennyire lassú folyamat lesz. Bár a lemez csak 1 mm vastag volt, több hónapon keresztül értem el a végső formát. Bevallom, azt hittem a gyémántvágó úgy fogja vágni, mint a vajat. Csak akkor mertem nekilátni, ha a családom nem volt otthon, mert iszonyú hangos volt a gép. Többször gondoltam rá, hogy egyszerűen kidobom, nem érdekel, meddig jutottam, mert ez a módszer nem elég célravezető.

Végül győzött a türelem, és csak kivágtam. Nagyon örültem, hogy befejeztem ezt a részét. A vágás elég pontatlan lett, amit csiszolással igyekeztem orvosolni. Ez is elég hosszú idő volt, de már kevésbé frusztráló, mert láttam a haladást.

Továbbra is maradtak éles részek, de ez passzol a Szörnygép imázsához: vad, kiszámíthatatlan, durva. Ha nem vigyázol vele, vérezni fog az ujjad!

A tető rögzítéséhez csavarokat akartam használni, ezért anyacsavarokat forrasztottam a fülekre. Először a forrasztás sem sikerült, mire rájöttem, hogy a lemez festése az akadály. Úgyhogy lecsiszoltam a festéket is.

u64case2.jpg

Az anyacsavarok forrasztása után elkezdtem összehajtani a dobozt. Természetesen megfelelő szerszámok nélkül. A tervezési fázisban nem gondoltam, hogy ilyen nehezen hajlítható a lemez. A végén természetesen kiderült, hogy a mérések során nem vettem figyelembe a hajlítási rádiuszokat, úgyhogy az alaplap nagyon szűken fér csak el a házban. Annyira ki van centizve minden, hogy távtartóknak sem maradt.

Az utolsó lépés a festés volt. Ez volt a legegyszerűbb. Gyurmával befedtem a meneteket, nehogy a festék eltömítse azokat. Néhol kicsit sokat fújtam a felületre. Ebből is látszik, gyerekkoromban kimaradtak a falfirkás évek.

Mivel nem volt hely a távtartóknak, meg kellett oldani, hogy az alaplap forrasztásai ne érhessenek a házhoz. Eredetileg dekorgumit akartam használni szigetelőnek, csak sajnos a lányom elhasználta az összeset. A kacatok között turkálva találtam parafa lemezeket. Gondoltam, ez jó lesz!

Korábban szétszedtem egy működésképtelen billentyűzetet, amiből eltettem a gumi lábakat, mert olyan jól néztek ki. Most elővettem, és a ház aljára ragasztottam az összeset.

Elkészült! És megvágta az ujjam.

Szólj hozzá!

Címkék: barkácsolás

Letter CTF

2026.05.06. 19:48 Travis.CG

A mostani CTF egy kicsit más, mint az eddigiek, amikről írtam. Ez egy OSINT feladat, vagyis nyílt forrásokból kell információkat keresni. A feladat során két képet, és egy rövid szöveges üzenetet kapunk. A játék szerint találtunk egy sérült levelet, ahol a címzett, és a levél egy része is olvashatatlan. Nekünk ki kell találni, kiről szól a levél, és mi az irányítószám.

A boríték így néz ki:

letter.png

Egyérelmű, hogy francia eredetű. Az SNSM a parti őrség rövidítése, a címzett vezetékneve G-vel kezdődik. Mivel a levél többi része sérült, ezért a jobb alsó sarokban látható barcode-ot kezdtem vizsgálni. Megtudtam, hogy többféle postai rendszer van, ezek különböző jelöléseket használnak. Szerencsére van egy online dekódoló is.

A levél szövege szerint a címzett dédapja egy hőstettet hajtott végre nagyon fiatalon, és biztos büszke lenne a dédunokájára, aki szintén hajón szolgál. A szöveg természetesen franciául van, úgyhogy a fordítóprogramot sűrűn használtam.

newspaper_clipping.png

Az újság is elég olvashatatlan, de egy kis kereséssel rá lehet akadni az összes számra a Gallica-n. A különböző kulcsszavak segítségével viszonylag le lehet szűkíteni a lapok számát. Én az Amundsen-t használtam, mert ő utazott az Északi Sarkra, a Maroc, Herriot és urgente szavakat használtam még. Az újság OCR átiratát le lehet tölteni, és egy fordítóval lefordítani. Ekkor derül ki, hogy az egyik cikk arról a városról szól, ahová a levelet küldték. Sajnos a Gallica nagyon lassú, több órán keresztül ment a keresés. A helyzetet az sem könnyítette, hogy a lányom kapcsolgatta a router-t, mert nem ment neki valami játék.

Az újságcikk szerint történt egy hatalmas hajós katasztrófa, ahol még a mentőhajó is felborult. Végül két halászhajó mentette ki az embereket. A cikk csupán a kapitány nevét említi, ezért tovább kell keresni a katasztrófa részleteit. Hol a kapitány, hol a hajók nevével keresgéltem, így akadtam erre az oldalra. Itt leírták az összes ember nevét, akik a mentésben részt vettek. Itt kellett megtalálni a kis hajósinas nevét, aki még kiskorú volt a mentés idején.

Nagyon jó kis OSINT feladat volt, egy kimondottan érdekes háttértörténettel. Mikor a feleségemnek meséltem, milyen feladatot kell megoldani, még ő is nekiállt keresgélni, pedig nem is szereti a "kiber dolgokat".

Szólj hozzá!

Címkék: biztonság

De hát elmúlt Húsvét!

2026.05.01. 20:18 Travis.CG

Egyik bejegyzésemben arról panaszkodtam, hogy nem látni szofisztikált jelszólopó módszereket, mindegyikről messziről virít, hogy átverés. Ahogy mondani szokás: vigyázz, mit kívánsz, mert teljesül. Nekem most teljesült egy kívánságom, kaptam egy egész jó adathalász levelet. Boncolgassuk is!

A levél egy létező e-mail címről jött, nem kamuról. A fejléc szerint valami cikket kellett volna átnéznem. Még ez is hihető volt. Az már kevésbé tűnt realisztikusnak, hogy egy magyar egyetem, magyar dolgozója angol nyelven ír nekem, ebből tudtam, hogy biztosan átverés. A másik hiba, amit elkövettek, hogy a levél törzsében már nem cikkről volt szó, hanem számláról.

A mellékletben volt egy PDF. Először attól tartottam, hogy a PDF JavaScript-et tartalmaz, ezért nem nyitottam meg, hanem a pdfinfo nevű programmal ellenőriztem.

pdfinfo.png

Mint látható, nincs benne sem JavaScript, sem titkosított rész. Ettől függetlenül nem mertem megnyitni a gépemen, hanem egy virtuális gépben tettem. Csak egy oldal volt, egy linkkel.

thepdf.png

Mivel a link egy dokumentumban szerepelt, a spam filteren átment. A link egy google forms-ra vezetett, ami szénné volt JavaScriptezve, esélyem sem volt megtudni, mit is kódolnak, úgyhogy a virtuális gépen megnyitottam. A google forms azért volt jó ötlet, mert nehéz kiszűrni az IT-nak. Mégsem tilthatják ki a guglit az egyetemről, nem?

gforms.png

De ezen kívül volt még egy réteg, mert ez az oldal csak arról akart meggyőzni, hogy le kell töltenem egy újabb dokumentumot.

A link egy másik oldalra vezetett, ahol a létező legtökéletesebb Microsoft Online bejelentkezést kaptam, ami csak létezik. Szinte hihetetlennek tűnt, hogy ilyen tökéletesen le tudták másolni. Még az oldal betöltését mutató animáció is hibátlan volt. Mint később ti is látni fogjátok, ez egy valódi Microsoft-os bejelentkező képernyő, nem utánzat.

Ez úgy derült ki számomra, hogy első blikkre meg akartam nézni az oldal forráskódját, és nem sikerült! Rutinból a billentyű kombinációt nyomtam meg, ami le volt tiltva, jobb egérgomb szintén. Ez már jelezte, hogy nem csak simán betölti a bejelentkező képernyőt, hanem valami mást is csinál, és ez a másik funkció rejtőzködik.

A böngésző menüjét viszont nem tudták blokkolni, így azon keresztül megláttam a forráskódot is.

jscode.png

A JavaScript figyelte, hogy esetleg Burp Suit-ot használok-e, és ha igen, akkor nem jeleníti meg az oldalt. Figyeli, milyen billentyűket nyomok le, és elküldi azt a támadóknak. Mindebből a felhasználó nem vesz észre semmit. Tényleg nagyon gyönyörű munka. Szokatlan volt, hogy nem obfuszkálták teljesen a kódot. Általában a támadók teljesen olvashatatlanná teszik a kódot, hogy ezzel is nehezítsék a felderítést.

Azért némi rejtegetés itt is volt. Egy viszonylag bonyolult módszerrel ellenőrizték, hogy honnan nyitották meg az oldalt. A reguláris kifejezést, amivel az ellenőrzést végezték, Base64-el kódolták, a dekódoló függvény nevét pedig elrejtették. Elképzelni sem tudom, mi szükség volt erre, miközben a letölthető JavaScript modulok URL-je szabadon olvasható. Az egész kód olyan, mintha valaki gyakorló feladatát látnám.

Szólj hozzá!

Címkék: biztonság

Light CTF

2026.04.19. 17:26 Travis.CG

A gépen két port volt nyitva, a 22-es és a 1337. Utóbbi egy telnet port, de ezt a leírásból is tudjuk. Ha csatlakozunk hozzá, egy kérdést kapunk csak:

Please enter your username:

A leírásban azt is megkapjuk, hogy a smokey nevű felhasználóval tesztelhetünk. Ha beírjuk, visszakapjuk a jelszót. Sajnos ezzel a jelszóval nem tudunk bejelentkezni. De az első kérdés úgyis az admin felhasználó név. Először írtam egy Python scriptet, hogy gyakori felhasználó neveket próbálgasson végig, de nem működött. Ezek szerint célravezetőbb a "többet ésszel, mint brute force-al" hozzáállás.

Azért poénból megnéztem, hogy kapok-e találatot a "bandit" vagy Burt Reynolds nevére. Nem kaptam.

Akkor valami injection-t kell használni. Először pontosvesszőt raktam a felhasználói névbe, de arra nem adott semmit. Utána "-t, de erre sem reagált. Egyszeres idézőjelre viszont kaptam hibaüzenetet!

Error: unrecognized token: "'ize'' LIMIT 30"

Limit 30? Csak nem SQL lekérdezést kell írni? Az "unrecognized token" viszont szokatlan. MySQL biztos nem ad ilyen hibaüzenetet. A kereső szerint SQLite adatbázissal van dolgunk. Oké, ez már ismerős terep. Ha kommentet akartam beírni, akkor is kaptam egy hibaüzenetet:

For strange reasons I can't explain, any input containing /*, -- or, %0b is not allowed :)

Oké, közeledünk. Mi a helyzet egy select-el?

Ahh there is a word in there I don't like :(

Ez nem jó hír. Mi van, ha egy kicsit megváltoztatjuk azt a selectet. Mondjuk Select-re? Erre már nem adott hibaüzenetet. Lássuk mi van az adatbázisban!

' Union Select name from sqlite_master where type='table

A válasz: admintable! Oké, mi van az admintable-ben?

' Union Select sql from sqlite_master where name='admintable

CREATE TABLE admintable (
id INTEGER PRIMARY KEY,
username TEXT,
password INTEGER)

Ez már könnyű innen. 

' Union Select username from admintable where id = '1

Erre megkapjuk az admin felhasználó nevét. Egy ilyen CTF esetén kifizetődő a kíváncsiság. Kíváncsi voltam, mi van, ha 2-t írok be a lekérdezésbe. Erre azt írta ki, hogy flag! Tehát a válaszokat akkor kapjuk meg, ha a következő módszerrel próbálkozunk:

' Union Select password from admintable where id = '1

illetve

' Union Select password from admintable where id = '2

Nagyon jó kis SQL Injection CTF volt! Ez most így olvasva egyszerűnek tűnik, de én SqlLite-ban a .table-t szoktam használni, hogy megtudjam a táblák nevét, a lekérdezésekre úgy kerestem rá. Sokszor lefagyasztottam a lekérdezést, mert beírtam a jó öreg or 1 = 1-t, ami itt nem működött. Az idézőjel sem volt egyértelmű, próbálgattam a "-t is, amíg rá nem jöttem a pontos szintaxisra. A select sql-re meg teljesen véletlenül akadtam rá az oszlopnevek lekérdezését keresve.

Szólj hozzá!

Címkék: biztonság

Cseppet sem objektíven: Revision 2026

2026.04.12. 14:36 Travis.CG

Ha itthon maradok Húsvétra, Revision-re vágyom, ha elmegyek, az itthoni dolgokon agyalok. Úgy gondolom, jobb lett volna elmenni (ebből tudhatjátok, hogy maradtam.). Fenébe a stream-el! Elmentünk a szokásos családlátogatásra, ahol apósom ilyet szólt, "lassan vége ennek a demózásnak". Nem hiszem, hogy értené, mit jelent: "demo or die". A streamet nem tudtam folyamatosan követni, mert a legkisebb gyerekkel zombikra kellett lövöldözni, vagy akkora hangzavar volt, hogy nem hallottam semmit. Azért amit tudtam, követtem, amit nem sikerült megnézni, azt utólag pótoltam.

Tracker music

Az All In Days Work tetszett a legjobban Curt Cool-tól.

Ascii Art

Két kedvencem volt a compóról, a Public Domain, ami régi filmek publikussá tételét ünnepelte. A képek alapján nem tűnt ismerősnek egyetlen film sem, de érdemes lenne utána nézni. A másik a Greetings, Earthlings volt, mert olyan színes volt. Több alkotás is a Moebius-al készült.

Oldskool music

A legszokatlanabb újítás, hogy idén 2M volt a limit. Ez a legtöbb régi hardver limitációját ismerve olyan, mintha egy autóversenyen megtiltanák, hogy átlépjék az első kozmikus sebességet. A Catalysis nagyon furcsa volt, meg kellett hallgatnom még egyszer, hogy el tudjam dönteni, hogy a glitch effekt valódi, vagy csak a stream szórakozott. A Related Searches jól indult, de hosszú lett. Glacial Heart volt a kedvenc.

3D graphics

A Till Death Do Us Part egy nagyon kidolgozott modell volt, nem volt olyan rajzfilm-szerű, mint a többi.

Animation/Video

Nosfe kétszer is beadta ugyan azt. Az első verzió fekete-fehér, a második színes volt. Most nem tetszett egyetlen videó sem, bár az amKLga-án kicsit nevettem. A győztes alkotást pedig nem értettem, még második megtekintés után sem.

3D printing

Szponzis compó. Egy olyan CoolerMaster házra kellett bigyókat nyomtatni, amit úgy terveztek, hogy bigyókat lehessen rá nyomtatni. A leghasznosabb egy külső drive volt, a legcoolabb pedig Topy 32x32-es led panelje.

Fast music

Maximum 30 másodperces lehetett egy zene, és nem akarok hazudni, de fájdalmas volt hallgatni a legtöbbet. Turbo Knight persze jó volt még ebben a kategóriában is, de fél perc alatt milyen zenét lehet élvezni?

Streaming music

Ha már a zenénél tartunk, akkor ezt érdemes hallgatni. Bár most nekem nem volt kedvencem a kompóról, szerintem nem voltak rosszak az indulók.

Executable music

Ez egy kicsit más tészta, mint a streaming, mert a zenét programkódból kell előállítani, méghozzá elég kicsi programokból. Tenfour száma nyert, ami nem is meglepő. Hallgassátok meg a gazdag hangszerelést, változatos dinamikát itt. Tetszik? Csak 32k ami mindezt előállítja.

4K executable graphics

A Trans Solidarity meglepő technikát alkalmazott, kis emberkékből állt össze a kép. Boyc is indult az Entangled című alkotással, ami szerintem kimagaslott a mezőnyből. Bár a Lost Media sem volt rossz, én előbbit tettem volna győztesnek.

Oldskool graphics

Három kedvencem volt a kompóról. A don't spit into the wind, az Arrival on Valthoria és a fiú a vizidisznójával. Ez utóbbit AI gyanúsnak bélyegezték páran, én meg nem vagyok azon a szinten, hogy ezt el tudjam dönteni.

Oldskool demo

Alig volt C64 induló, ami meglepett, és akik indultak, azok sem erőltették meg magukat. Cserébe kaptunk C16, Amstrad, PC és egy Atari 2600-as demót. Ez utóbbi nagyon komoly alkotás. Aki nem érti, miért, annak javaslom, nézze meg, milyen játékok jelentek meg a géptípusra. Konkrétan annak idején egyszínű téglalapokból álltak a karakterek!

Amiga intro

Két kedvencem is volt, az egyik a Back to Pixelated World, ami vektor grafikaként indult, majd egy platform játékba ment át, végül a címmel ellentétben visszaváltott vektor grafikába. Ennek ellenére nekem tetszett. A másik kedvenc a 64k-Silhouette volt. Ez sokkal konzisztensebb volt az előbbinél, remek kód és kiváló látvány jellemzi.

Amiga demo

Az idei Amigás demók érzésre visszafogottabbak voltak, mint korábban. A Second Nature erőlködés nélkül tudott nyerni. Szó se róla, hangulatos demó, többször is meg lehet nézni. Nekem különben a High Score is tetszett, de szinte biztos vagyok benne, hogy egy sarokba szorított veterán Amigás intróba lekódolja.

64k intro

Emberek, mi a fene történik a nagyvilágban!? Mi ez, hogy ennyi 64k intró van? Tizenhárom induló? Ha hihetünk a Pouet.net-nek, akkor 2024-ben és 2025-ben összesen 16 intró készült Windows-ra. Előző két évben 12! Mit képzelnek ezek az emberek, hogy így összezavarják a trendeket és a statisztikát! (Oké, az összehasonlíthatóság kedvéért meg kell jegyezni, hogy a compóban csak 9 Windows-os induló volt). Komolyra fordítva a szót, nagyon jó volt ennyi 64k-t látni. Nézzétek meg ti is az összeset.

PC Demo

Ha az idei demó termés nem is volt olyan bő, mint 2023-ban, azért nem lehet panasz az indulók számára. A győztes Razor1911 nem semmi alkotást tett le az asztalra. Kicsit a nosztalgia hullámra építettek a demót, de a jó értelemben. A csapat 40 éve aktív, amit leírni is döbbenet, és ők sokáig crackerként is működtek, még a 2000-es években is. Habár a tagok cserélődtek az idők során (sőt, sokan el is hunytak mára), a csapat szellemisége óriási időt ölel át. A demó vizualitása nagyon sok apró részlettel mutatja be ezt. Nem csak a crackeléshez használt debuggerek felhasználói felületén keresztül, de egy-egy híresebb grafikával is. A jelenetek organikusan egymásba folynak, mint egy nagy folyam. Ha apósomnak, vagy bárki másnak el akarnám magyarázni, mit jelent a "demo or die", akkor ezen a demón keresztül tenném. Architektúrák jönnek-mennek, a programozás metodikája változik, de az nem, hogy vannak emberek, akik leülnek, és release-eket készítenek. A módszer változik, az alkotás marad.

Szólj hozzá!

Címkék: demoscene

Kompozíciónális adatelemzés a mikrobiológiában

2026.04.03. 08:01 Travis.CG

A Mátrixban van egy jelenet, hogy Neo az utcát nézi, miután megvilágosodott:

Valahogy én is így éreztem magam, miután rájöttem, hogy totál rosszul értelmeztem eddig a metagenomikai szekvenálásokat. Ugyanis valami miatt úgy gondoltam, hogy ez a fajta szekvenálás egy random mintavétel a környezetből, tehát az ott tapasztalható arányok megfeleltethetőek a környezetben előforduló baktérium közösségek arányának. Persze, tudtam, hogy vannak taxonok, amik kimaradnak a detektálásból, és tudtam, hogy a módszerben lehetnek torzítások, ami miatt bizonyos taxonok felülreprezentáltak lesznek, ezeket elhanyagolhatónak véltem. Sőt, úgy gondoltam, az eredményként kapott táblázatokból nyugodtan szűrhetek, minden féle transzformáció nélkül, mert a kapott adat rekordok egymástól függetlenek.

Nagyon rosszul tudtam.

Ha egy mintavétel felülről korlátos (márpedig a szekvenálás ilyen, a készülék áteresztő képessége véges), akkor a kapott eredmény úgynevezett kompozíciónális adat. Ez azt jelenti, hogy az adott mennyiség, amit kapunk, nem releváns, csak az arányok. Ha egy hasonlattal kéne élnem, akkor azt mondanám, a kompozícionális adat olyan, mintha nylon zacskókat kellene dobozba rakni. Hiába nyomjuk össze a zacskókat, azok elkezdik visszanyerni eredeti alakjukat, ha megszűnik az erőhatás. Ha csak kettő zacsit teszel a dobozba, az a kettő fogja kitölteni azt. Ha tizet, akkor tíz zacskó tölti ki az egész teret. Nem számít, hogy kisebb, vagy nagyobb dobozt használunk, mert a zacskók akkor is kitöltik a rendelkezésre álló helyet.

Talán ebből a hasonlatból is látható, hogy nem lehet önkényesen zacskókat kivenni, mert a többi zacskó egymáshoz viszonyított aránya megváltozik. Éppen ezért, ha egy adat nulla, akkor az nem feltétlenül jelenti, hogy az adat nincs jelen, csupán azt, hogy a többi komponenshez képest elenyésző az aránya. De ennek eldöntése szinte lehetetlen. (A másik, inkább matematikai probléma, hogy nulla méretű zacskókból akár végtelen mennyiségűt is belerakhatunk, amitől meg fogunk bolondulni, ha értelmezni akarjuk.)

Éppen ezért az olyan technikák sem működnek, hogy "egymillió readre normalizálok, és csókolom". Csupán annyit tettem, hogy egy nagyobb dobozba raktam az adatokat, de a köztük lévő relációt nem oldottam fel. Hasonló okokból kifolyólag a kedves kis korrelációk, lineáris modellek és más statisztikai eljárások sem alkalmazhatóak. Legalábbis közvetlenül nem. (Pedig el nem tudom mondani, mennyi korrelációt számoltam ilyen adatokon...)

Az RNS-seq adatok is kompozícionális adatok. Miért nem lehet őket a mikrobiológiában használni? Azért, mert az RNS-seq esetén abból indulunk ki, hogy a kezelés hatására nem változik jelentősen a rendszer (nevezetesen az élő sejt, amit vizsgálunk). Ha nagyon megváltozna, akkor a sejt meghalna, és már nem tudnánk vizsgálni. A bakteriális közösségekre nézve nem élhetünk ilyen megkötésekkel. Csak egy otthoni példára gondolva, ha végiglocsolom fertőtlenítővel a padlót, akkor az azonosítható taxonok aránya drasztikusan meg fog változni.

A geostatisztikában már évek óta bevett gyakorlat a kompozícionális adatok használata, mert a kőzetek összetételét százalékosan adják meg. Valahogy nekem ez a rész kimaradt. Szóval vissza a suliba! Meg kell értenem pontosan ennek a módszernek a lényegét. Jelenleg a következő irodalmakat bújom:

https://pubmed.ncbi.nlm.nih.gov/29187837/
https://pubmed.ncbi.nlm.nih.gov/35830875/
https://link.springer.com/book/10.1007/978-3-319-96422-5

Szólj hozzá!

Címkék: statisztika bioinformatika

Excel, mint büntetés

2026.03.22. 11:41 Travis.CG

A helyzet az, hogy egyre többet kell dolgoznom Excellel, és még ennyi év után is meg tudok lepődni azon, hogy mennyire béna ez a program. Én nem vagyok egy kényes felhasználó, boldogulok Gimp-el, Blendert is már a korai verzióktól használok. Amikor kritikával illetik ezen programok felhasználói felületét, akkor igazat kell adnom nekik. Borzalmasak. Viszont a frusztráló felület mögött van egy olyan logika, amit megismerve az ember boldogul velük.

Az Excelben a logikát hiányolom.

Első példa: egy takarosan beformázott Excel cellából el kellett távolítani a linket. Mármint a linket, mint tulajdonságot. Én naívan jobb egérgombbal klikkeltem, majd a link eltávolítása menüpontra. Tényleg eltűnt a link. Az összes formázással együtt. Azok miért tűntek el? Végül a net segítségével sikerült megoldani a dolgot, mert más felhasználónak is pont ugyan ez volt a gondja. Kiderült, hogy van a menük között is egy link eltávolítása, ami csak nevében ugyan az, mint a jobb egérgombos funkció.

A második példa megoldása sokkal nehezebb volt. Egy hétköznapi adattisztítás volt, ahol a dátumok 90%-a kötőjellel volt elválasztva, 10% ponttal. Nagy volt a kísértés, hogy exportáljak, és sed-el oldjam meg a feladatot, de én úgy gondoltam, ha már úgyis ezzel a programmal kell szenvednem, talán érdemes jobban megismernem. A cellaformázással szenvedtem fél órát, majd úgy döntöttem, az időm többet ér. Mentem parancssor alá.

Otthon elmeséltem gyötrelmeimet, mire a feleségem kinevetett, hogy ennyi informatikai ismerettel képtelen voltam megoldani ezt az egyszerű problémát. Meg akarta mutatni, hogy milyen egyszerű. Először 10 percig néztem a próbálkozásait. Utána azt néztem, ahogy az AI segítségével próbálja megoldani. Itt, bevallom elvesztettem a fonalat, mert egy ponton a magyar Windows-on futó angol Excelnek angol területi beállításokkal kellett volna idézőjelet beírni, amit a feleségem a Word segítségével állított elő. Ez sem működött, úgyhogy én elmentem TryHackMe-zni. Megcsináltam a napi feladataimat, utána kíváncsiságból megnéztem, ő hol tart: a laptop képernyőjén plusz oszlopok voltak, nyitva volt a függvény bevitel, a böngésző három füllel. Elmentem vacsorát adni a gyereknek. Végül felhangzott a feleségem diadalmas kiáltása. Megcsinálta!

Nem kellett más, csak egy függvény, amivel a cellákat szöveggé alakította, cellaformázás szöveggé, mert a függvény bizonyos cellákat nem szeretett, majd keresés, csere, mindent cserélni, és kész volt. Megdícsértem a heroikus küzdelméért, majd magamban annyit mondtam: sed rulez.

2 komment

Címkék: életmód

PlatformIO, sallangok nélkül

2026.03.15. 10:25 Travis.CG

Elérkezett az idő, hogy az okosóra kapjon egy szebb firmware-t, mint amit ráraktam. A legfejlettebb firmware telepítéséhez kell a PlatformIO, VS Code, meg minden. Nem vagyok a VS Code ellensége, de nem érzem semmi szükségét, hogy telepítsem, ha csak ki akarok próbálni valamit.

A PlatformIO telepítése elég egyszerű:

wget -O get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py
python3 get-platformio.py

A home könyvtárban találunk majd egy .platformio könyvtárat, azon bellül a penv/bin könyvtárban lesznek a futtatható állományok. Nekünk ezek közül a pio lesz az érdekes. Ha akarjuk, betehetjük a PATH-ba, hogy bárhol elérhessük. Én nem vesződtem ilyen apróságokkal.

Ezután letöltjük a firmware-t egy nekünk kedves könyvtárba:

git clone https://github.com/sharandac/My-TTGO-Watch

A firmware több eszközön is fut, nekünk be kell állítani azt, amire fordítani akarjuk. Ehhez szerkeszteni kell az src/config.h fájlt. Mivel nekem még a régi típus van meg, ezért én a következő sort szúrtam be rögtön a 24. sorba:

#define LILYGO_WATCH_2020_V1

És jöhet a fordítás.

~/.platformio/penv/bin/pio run

Amilyen kicsi az eszköz, olyan sokáig tart lefordítani a kódot. A program leszedi a teljes toolchain-t, ami a kód előállításához kell. A szükséges információkat a platformio.ini fájlból szedi. Persze mi az eszközön szeretnénk látni a végeredményt. Kössük rá az órát az számítógépre. Ellenőrizhetjük, hogy a rendszer látja-e:

~/.platformio/penv/bin/pio device list

Ha minden jól megy, és van jogosultásgunk, rendben van a kábel, akkor láthatjuk az óra adatait. Rakjuk rá a firmware-t:

~/.platformio/penv/bin/pio run --target upload

Lehet örülni.

Alapvetően elégedett vagyok a firmware-el. Az én órámban nincs GPS, ezért minden helymeghatározós app teljesen felesleges rajta. Az akkumulátor töltöttsége mutató néha furcsa értéket mutat, de többségében konzisztens. A lépésszámláló elég korrekt. A naptár nagyon kicsi ehhez a képernyőmérethez, de egy érintő tollal jól kezelhető. Ez utóbbi megállapítás igaz minden beviteli mezős funkcióra. A wifi jelszót az ujjaimmal nehéz lett volna beírni. Van hozzá okostelefonos app is, azt nem próbáltam.

Szerintem ez a firmware remek alap, hogy az ember testre szabja. Meg is lehet tekinteni a különböző forkokat a GitHub oldalon.

twatch_1.jpg

Szólj hozzá!

Címkék: programozás

Nagy nyelvi modellek a bioinformatikában

2026.03.01. 10:05 Travis.CG

A bioinformatikában is vannak divatok. Megjelenik valami új technológia, és hirtelen az válik minden probléma megoldásává. Ilyen volt a rejtett markov láncok a 2000-es évek elején, Hadoop 2008-ban, a mélytanulás 2017-ben, most pedig a nagy nyelvi modellek segítségével akarják a kutatók megfejteni a genomok titkait.

Az ötlet abból indul ki, hogy a DNS (vagy fehérje) lánc egyes régiói más funkciókkal bírnak, és ezen régiók sorrendje hasonló az emberi nyelv szerkezetéhez. Kétségtelen, hogy népszerű analógia, de szerintem teljesen téves. A nukleotid sorrend nem nyelv. Nem gondolatok közlésére való, hanem információ tárolásra, amit a megfelelő pillanatban elő kell hívni. Egy nyelvet egy három éves gyerek megért és használ. De én még egyetlen kutatóval sem találkoztam, aki folyékonyan beszélne DNS-ül.

Ez minden esetre az én véleményem, elképzelhető, hogy a nagy nyelvi modellek sikeresek lesznek. Inkább nézzük meg, eddig milyen eszközök és milyen sikerek vannak.

DNABERT

A DNABERT egy nyelvi modell a humán nem kódoló DNS szakaszokhoz. A tanítás során 512 bázispár hosszú szekvenciákat használtak különböző hosszúságú k-mer tokenizálással. A betanított modellt saját, kis elemszámú adattal mi magunk is testre szabhatjuk, hogy olyan struktúrát keressen, amilyet mi szeretnénk. Nyilvánvaló hátránya, hogy legfeljebb a core promóter elemzésére képes.

ERNIE-RNA

Második programunk szintén egy nagy nyelvi modell, de RNS szerkezeti predikcióra specializált. Korábban is léteztek egyszerű algoritmusok az RNS szerkezetének meghatározására, de azok csak a loopok meghatározására szoltáltak. Az ERNIE-RNA egy lépéssel tovább megy, mert a másodlagos szerkezet mellett funkcionális annotációt is végez. Személy szerint ennek több értelmét látom, mint a DNS elemzésnek. Először is, az RNS-ek rövidebbek, nem kell attól tartani, hogy távoli enhancerek befolyásolják az adott régió funkcionalitását. Másodszor a modell tanításához van elég cimkézett adat. A nem kódoló DNS-t még nem értjük teljes mélységében, ezért szerintem megfelelő tanuló adatot sem tudunk még összeállítani.

ESMFold

Ez a program a Facebook válasza az AlphaFold-ra, ugyanis egy nyelvi modell segítségével igyekszik meghatározni a protein 3D szerkezetet. A programot három éve nem fejlesztik, amiből én arra következtetek, hogy nem volt sikeres az AlphaFold ellen. Egyébként nem tudom, mennyire jó. Van viszont egy olyan funkciója, hogy a 3D struktúrából határozza meg az aminosav sorrendet. Ez elég érdekesnek tűnik, lehetne használni evolúciós modellezésre, mert lehetne nézni, hogy milyen aminosav sorrendek vezetnek ugyan olyan térbeli struktúrákhoz. A program arra is jó példa, hogy csak azért, mert LLM alapú valami, még nem lesz automatikusan sikeres. Még akkor sem, ha egy olyan cég támogatja, mint a Facebook.

Forrás

https://onlinelibrary.wiley.com/doi/10.1002/qub2.70026
https://academic.oup.com/bioinformatics/article/37/15/2112/6128680?login=false
https://www.nature.com/articles/s41467-025-66899-y
https://www.nature.com/articles/s41467-025-64972-0
https://www.nature.com/articles/s41592-021-01252-x
https://www.science.org/doi/10.1126/science.ade2574

Szólj hozzá!

Címkék: bioinformatika

A nagy átverés

2026.02.21. 11:25 Travis.CG

Az egyetem, ahol dolgozom, nagy hangsúlyt fektet a spamek visszaszorítására. Még online képzési anyagot is összeállítottak a felhasználók oktatására, amit kötelező volt elvégezni.

Egy hét elteltével megint kaptam egy spam-et, amit szokás szerint megvizsgáltam. A feladó valami office365online címről küldte a leveleket, amit könnyű összekeverni az office365-el, amit az egyetem is használ. Az első furcsa dolog az volt, hogy a spam UUID-t használt az URL-ben. Az eddigi spamek nem sokat foglalkoztak ilyesmivel, mindenki ugyan azt az emailt kapta. Az egyedi azonosító azt feltételezi, hogy van egy adatbázis is, ahol az UUID és az email címet összekapcsolják. Nem is mertek ráklikkelni, mert a szerver már azt is loggolhatja.

A támadók tehát bejegyeztek egy domaint, nem feltört oldalakról küldték a spam-et. Gondoltam megnézem az IP cím geolokációját. Itt jött a második meglepetés. A IP az egyetem hálózatához tartozott! Mi a fene? Feltörték az egyetem egyik szerverét és onnan küldik a spam-et? Ennyit ér a sok képzés, kibervédelem? Már az egyetemről kapjuk a spam-et?

Elkezdtem nézegetni a webszervert, hátha az UUID-s link nélkül is találok valamit, de nem találtam semmit. UUID ide vagy oda, kénytelen vagyok megnézni a linket. Mint az várható is volt, emailt és jelszót kértek, de a forráskód elemzéséből az derült ki, hogy nem volt HTML form-ba ágyazva. Teljesen összezavarodtam. Feltörnek egy szervert, adatbázissal megpakolt webszervert futtatnak rajta, spam-et küldenek, majd a lopott jelszavakat nem tárolják. Ennek semmi értelme!

Elkezdtem nézni a summit gombhoz tárolt eseményeket. A javascript kódban volt egy URL, amire akkor ugrik az oldal, ha a felhasználó ráklikkel. Megnézem mi az. Egy üzenet volt rajta: "Ne adja meg a jelszavát idegen weboldalakon. Köszönettel: IT részleg."

Francba! Az egyetem csak a képzés hatékonyságát mérte. A sok bohóckodásommal most biztos úgy tartanak nyilván, mint akinél nem volt eredményes az oktatás, és gondolkodás nélkül megadja mindenhol a jelszavát.

Szólj hozzá!

Címkék: biztonság

ChIP-seq minőségi ellenőrzés

2026.02.10. 08:04 Travis.CG

Az immunoprecipitáción alapuló szelvenálási módszerek sokkal körültekintőbb ellenőrzést igényelnek, mint a "hagyományos" DNS vagy RNS szekvenálás. Bár a címben ChIP-seq szerepel, az itt leírtak szinte minden immunoprecipitáción alapuló módszerre (CUT&RUN, ChIP-exo, Dip-seq) alkalmazhatóak.

Az első lépés természetesen a kapott FASTQ fájlok ellenőrzése például a FastQC programmal. Itt ugyan azok az elvek érvényesek, mint bármilyen más szekvenálás ellenőrzésénél, bár a szekvencia duplikáció magasabb lehet, mivel a teljes genomnak csak egy kis részét szekvenáljuk. Ha a FASTQ fájlok megfelelőek, akkor más módszereknél megnyugodhatunk, hogy az elemzéssel nem várható komoly gond (hacsak nincs kontamináció), viszont ChIP-seq akkor is lehet használhatatlan, ha a FASTQ fájlok tökéletesek.

A szekvenciák illesztése ugyan úgy zajlik, mint más esetben. Amennyiben adaptor szennyezést tapasztaltunk, természetesen azokat levághatjuk, de a BWA úgysem illeszti az idegen részeket. Az illesztett readek aránya ugyancsak hasznos információ, 90% alatt nem szabadna lennie.

Utána jöhet a peak keresés. Ezt legtöbbször a macs3-al végezzük, de meg kell jegyezni, hogy bár ez a legelterjedtebb peak kereső, vannak más alternatívák, és lehetnek olyan kísérleti elrendezések, ahol a macs3 nem a legjobb választás. Ökölszabályként elmondhatjuk, hogy 10 ezer alatti peakszám valami problémát jelent.

Az immunoprecipitáció nem egy egyszerű lépés, ezért minden mintát kétszer szekvenálnak meg. Van egy úgynevezett "input", ahol a szekvenálás immunprecipitáció nélkül történik. A párja természetesen az "IP", ahol a korábban említett lépést nem hagyják ki. Ez a két minta alkot egy egységet. Bár vannak bátrabb bioinformatikusok, akik input nélkül elemeznek, és tőlem is többször kérték, hogy "azért nézzük meg input nélkül is...", tudni kell, hogy a sokkal jobb jel-zaj arányt kapunk, kevesebb lesz a fals pozitív, ha inputot is használunk.

A peak fájlok BED formátumúak, a fő információ a kromoszóma koordináta, a legtöbb program azt használja, még akkor is, ha a macs3 további értékeket tárol.

ChIPQC

Ez egy nagyon jó R csomag lenne, ha nem tartalmazna 11 éves elavult függőséget, ami miatt a legújabb Bioconductor nem tartalmazza. Nekem is csak azért működik, mert kézzel forgattam a csomagot és a kérdéses függőséget. Használata nagyon egyszerű:

sample <- ChIPQCsample("ip.bam", peaks="NA_peaks.narrowPeak", annotation="hg19")

A két minta közül az IP-t kell megadni illesztésként, a peak fájlt, valamint a genom annotációját. Táblázatos formában megkapjuk az összes hasznos minőségi mutatót a következő paranccsal:

QCmetrics(sample)

Lássunk egy kimenetet:

      Reads    Map%  Filt%  Dup%  ReadL   FragL RelCC   SSD  RiP%
3320201.000 100.000 37.700 0.000 51.000 174.000 0.683 0.237 2.210 

Ez egy tipikusan rossz kísérletből származik. Habár a readek 100%-a illeszkedik a genomra (ez a duplikáció kiszűrése utáni BAM fájl, de eredetileg is 96% volt. És ezért 0% a Dup oszlop), a peakekre csak a readek 2,21% esik (RiP, read in peaks), ami nagyon rossz. Az SSD a normalizált lefedettségből készített hisztogram szórása, amire a dokumentáció azt írta, "minél nagyobb, annál jobb". Nos, jó kísérleteknél ez 20-40 is lehet, de tipikusan 2-3. A 0.237 nem elfogadható. Végül a RelCC egy olyan mérőszám, ami a forward és reverz readek lefedettsége között számol korrelációt.

DiffBind

Ez a csomag különbségeket keres a kezelt mintában, viszont van pár nagyon hasznos funkciója, amivel a minták minőségét vizsgálhatjuk. Ha vannak ismétléseink, és nem csak egy mintával akarjuk megváltani a világot, akkor fontos tudni, hogy van-e batch effekt, nem történt-e minta összecserélés, vagy bármi olyan, amit a laborosok kerek perec képtelenségnek tartanak (és amiről utólag kiderül, hogy nem is olyan képtelenség).

A program használatához készíteni kell egy DataFrame-et, ami tartalmazza a mintákat, illesztett BAM-ok, peak-ek elérési útját, kezelést, ismétlések számát, . Ezen kívül bármilyen más információt felvihetünk, de ez a minimum, ami szükséges.

sampleSheet <- data.frame(SampleID=c("c1","c2","em1", "em2"),
Tissue=c("unknown", "unknown","unknown","unknown"),
Treatment=c("control","control","treatment","treatment"), Replicate=c(1,2,1,2),
bamReads=c("bams/c1ip.bam", "bams/c2ip.bam", "bams/em1ip.bam", "bams/em2ip.bam"),
bamControl=c("bams/c1input.bam", "bams/c2input.bam", "bams/em1input.bam","bams/em2input.bam"),
Peaks=c("peaks/C1/c1_peaks.narrowPeak", "peaks/C2/c2_peaks.narrowPeak", "peaks/EM1/em1_peaks.narrowPeak"),
PeakCaller=c("narrow","narrow","narrow","narrow"))

Ezután létrehozunk egy adatbázist a fenti információkkal:

sample <- dba(sampleSheet = sampleSheet)

Ha megvagyunk az adatbázis elkészítésével, jöhetnek az érdekes plotok. Először is egy PCA:

dba.plotPCA(samples, label=DBA_ID)

Ha a minták nem a kísérleti elrendezés szerint csoportosulnak, akkor valami gond van.

Homer

A Homer egy mindent az egyben csomag. Nagyon könnyű használni, a nehézségét az adja, hogy annyi minden van beleépítve, hogy elsőre a felhasználó azt sem tudja, mit futtasson. Dedikált QC elemzés nincs benne, nem ír ki számokat, de az elemzés során ad szöveges megjegyzéseket a minőséggel kapcsolatban. Például a peakCall parancs adhat ilyen eredményeket:

Guessing sample is ChIP-Seq - uneven enrichment between same strand and
different strands - may have problems such as clonal amplification.

IGV

Bár az IGV nem számol semmit, segít, hogy egy általános képünk legyen az illesztésről. Ha szemmel nem látunk feldúsuló readeket, akkor a programok sem fognak peakeket találni.

Szólj hozzá!

Címkék: bioinformatika

FreeDOS hálózati beállítás

2026.02.01. 14:29 Travis.CG

Korábban három kívánságom volt egy FreeDOS-os laptoppal kapcsolatban: 1 SoundBlaster beállításokkal legyen hangja, lehessen netezni vele, működjön az USB. A Compaq csak az utolsót tudta teljesíteni, azt is kritikán alul. Olyan lassú rajta az USB, hogy jobban megéri CD-ről bootolni egy Linuxot, csatolni a FreeDOS meghajtót, rámásolni a stuffot és újraindítani. Hálókártya pedig nincs rajta, csak valami PCMCIA kártyával lehetne netet varázsolni rá, de eddig nem találtam megfelelő hardvert.

Régi laptopot viszont könnyebb szerezni, mint hálókártyát. Van egy HP OmniBook XE4500-am. Az aksija természetesen halott volt, de még lehet hozzá kapni utángyártott alkatrészt, úgyhogy nem nekem kellett szerelni.

Hátrányai: kissebb felbontások a képernyő közepén vannak, hatalmas fekete sávval körbevéve. Az SBEmu nem szereti a hangkártyát, az felejtős. Apropó hang. A HP-nál egy mérnök remek ötletnek gondolta, hogy a beep teljes hangerőn robbanjon a beépített hangszórókon. Ha megnyomom a TAB-ot, és nincs olyan fájl, amire kiegészíthetné, akkorát szól a gép, hogy a lakás másik végén megijed a gyerek. Egyik alkalommal véletlenül megtöltöttem a billentyőzet puffert, mire folyamatos teljes hangerőn pittyegett. Egy üres jack dugót szoktam a fülhallgató kimenetbe kötni, azzal némítom. Miért nem némítom a BIOS-ban? Természetesen azért, mert a BIOS beállítások olyan limitáltak, mintha egy táskarádiót akarnék testre szabni.

Viszont gyorsabb, nagyobb tárhelye van, mint a Compaq gépnek, a ventillátor csendesebb.

ÉS MEGY AZ INTERNET!

A FreeDOS hálózati képességek lelke a packet driver. Ha találsz drivert a hálókártyához, akkor lesz net, egyébként meg nem. Sajnos a laptophoz elérhető doksik elég kezdetlegesek, a hálókártya típusát nem sikerült meghatározni, ezért Linux alól szedtem némi információt. A gyártónak a Crywnr bizonyult, úgyhogy leszedtem minden packet drivert, ami valamilyen módon kapcsolódik ehhez a gyártóhoz, rámásoltam a gépre, és elkezdtem próbálgatni. Végül a C83815 drivre bizonyult jónak. Csupán egyetlen paramétert kell megadni, a szoftveres megszakítás címét. Ez a legtöbb esetben a 0x60.

C83815.COM 0x60

Utána jönnek a programok. Mivel a DOS-ban nincs dedikált hálózati alrendszer, ezért a programok egy konfigurációs fájlon keresztül szedik az információt, hogyan is kapcsolódjanak a netre. Az első program a DHCP.EXE, ami ezt az állományt előállítja.

DHCP.EXE

A program beállítja az ip-t, DNS-t, stb. és letárolja az C:\FREEDOS\MTCP.CFG fájlba. Mikor láttam, hogy a gép ip-t kapott, nagyon örültem. Meg akartam pingelni a routert.

PING 192.168.0.1

Kaptam egy szép hibaüzenetet: "Your DHCP lease expires in less than 3600 seconds" A Gemini szerint ez azért van, mert rossz a driver. Gondoltam magamban, hogy ez egy hülyeség, mert akkor nem lenne a gépnek ip címe sem. Mint kiderült az AI ezt egy fórum bejegyzésből vette, ahol az egyik hozzászóló szóról-szóra ezt írta. Szóval csak óvatosan ezekkel a gyorsan generált válaszokkal! Megoldást nem találtam, de mivel a hibaüzenet egy érték miatt volt, kézzel átírtam a lease értéket jó nagyra. És onnantól ment a ping!

A következő ötletem az volt, hogy valami értelmeset is csináljunk a nettel. Weboldalak szóba sem jöhetnek, mert hozzájáruló nyilatkozatokra sem tudok ráklikkelni. Nézzük meg az FTP-t! Kik használnak még anoním FTP-t? Hát persze, hogy a scenerek! (Meg persze a bioinformatikusok, de mit kezdjek egy genommal FreeDOS-on?)

FTP FTP.SCENE.ORG

Beléptem, és letöltöttem Tomcat Kocka demóját, majd elindítottam.

 dosnet.jpg

Módosítom a kívánságlistát: Nem kell USB támogatás a FreeDOS-os laptopra. Működő net és hangkártya kell.

Szólj hozzá!

Címkék: rendszergazda

Házi riasztó készítés (3. rész)

2026.01.25. 17:29 Travis.CG

A riasztó fals jelzései nagyon aggasztottak, ezért elkezdtem kicsit jobban utánajárni a dolgoknak. Először is, megnéztem, mások mit tapasztaltak az ultrahang szenzor pontosságával kapcsolatban. Habár a szenzornak van hibája, másoknál ekkora hibát nem eredményezett, mint nálam. Valamit rosszul csináltam.

Először készítettem egy másik, egyszerűsített összeállítást, ahol csak egy Arduino és egy szenzor volt összekötve. A hiba mértéke sokkal kisebb volt. Ezután elkezdtem cserélgetni a komponenseket. Másik szenzort, másik Arduinót használtam (mert a riaszóban egy Arduinó klón volt), de a szórás továbbra is alacsony maradt. Még azt is megnéztem, hogyan változik a mérés pontossága, ha nem 5V-al, hanem csak 3V-al táplálom a szenzort, de a pontosságot csak nagyon kis mértékben befolyásolta, hibahatáron belül volt.

Ez csak egyetlen dolgot jelenthet: a szervómotor áramfelvétele befolyásolja a mérést. Az én összeállításomban ugyanis a szervót is az Arduinó látja el árammal, amit nem tartanak jó ötletnek, de mivel a próbapaneles összeállítás alatt jól működött, gondoltam figyelmen kívül hagyom a javaslatot. Úgy látszik ez mégsem volt bölcs dolog.

A rendszert átalakítottam, hogy a szervót külső áramforrásból tápláljam. Három félig lemerült gombelemet forrasztottam össze, ami 8,5V-ot adott le. Gondoltam elég lesz a tesztekhez. Feltöltöttem a a kódot, és reménykedtem.

Sajnos a külső áramforrás nem volt elég a motornak, pár halk kattogást leszámítva nem csinált semmit, de a fals risztások száma lecsökkent. Nem szűnt meg teljesen, de lecsökkent.

A prototípusból a következő következtetéseket tudom levonni: A motor használata nem jó ötlet. Elveszi az áramot a többi komponenstől, elmászik a helyéről a riasztó forgatás közben, a szerkezet instabil lesz . Csak a gond van vele. Jobb lett volna 3 ultrahang szenzort használni, amelyek különböző irányokba mutatnak, mint egyet forgatni.

Szólj hozzá!

Címkék: barkácsolás

süti beállítások módosítása