25. 4. 2023

Rozbor - Power Banka - hranatá s tlačidlom

Pokazená power banka - hranatá s tlačidlom, podobnú kedysi rozdával Telecom k paušálom.

Po zapojení na nabíjačku sa tvárila funkčne - červené svetielko nabíjania, po stlačení tlačidla modré svetielko výstupu. Ale po odpojení zhasla a nefungovala.


Pre rozobratie treba odlupnúť nálepku s popismi konektorov, v rohoch sú 4 krížové skrutky. Po vybratí predného krytu ide zvyšok vysunúť do zadu.

18. 4. 2023

Oprava - minecraft fakľa

Plastová napodobenina fakle z hry Minecraft. Blikala a blbla podľa nárazov.

Minecraft fakľa

Táto fakľa pre fanúšikov hry Minecraft používa 3ks AAA batérií. Pri bežnom svietení berie prúd cca 50mA. Jednu dobu fungovala po podložení hrubšej vrstvy alobalu pod kryt batérií, teraz to už ale nestačilo, čas na rozobratie.

3. 4. 2023

Oprava - Canon LBP6000 nedetekovaná

 Malá domáca laserová tlačiareň Canon LBP6000 sa nedala inštalátorom tlačiarne detekovať. Kábel v USB Type-B na strane tlačiarne sa zdal dosť voľný a tak som tlačiareň rozobral.

USB typ-B na tlačiarni - zatlačený pin dovnútra plastu

Po rozobraní som zistil, že konektor drží pevne a nie je ani nijak polámaný. Avšak jeden pin.. čo teraz?

28. 2. 2023

Oprava - vláčik Lego Duplo 10874

Vláčik Lego Duplo Push&Go prestal jazdiť, najskôr po posunutí len na sekundu zavrčal, neskôr nastalo úplné ticho. Myslel som si, že nabral vlasy do prevodov, keďže kolesá šli ťažko, tak som pozrel dnu.

Lego Duplo Push and Go 10874

Vláčik rozoznáva na koľajniciach položené farebné značky a podľa nich reaguje (naplnenie vody, zastávka v stanici, trúbenie, blikanie, zmena smeru).

Senzor aj sníma, či a ktorým smerom sa vláčik hýbe a podľa toho prípadne na prekážke, alebo po dvihnutí z trate zastaví. Rozbehne sa položením a potlačením. Navyše ide vláčik ovládať aj mobilnou aplikáciou.

Nafúknutá batéria notebooku

Notebooky sú tenšie a batérie 18650 sa z nich vytratili. Nafukujúce batérie útočia tak, ako to poznáme z telefónov. Vytrácajú sa vymeniteľné a prevládajú zabudované. Občas si skontrolujte, či sa vám NB nezačína guľatiť.

23. 2. 2023

Javascript - AJAX načítanie časti obsahu stránky z iného zdroja

Pre dynamické zmeny na stránke bez jej obnovenia je možné použiť načítanie obsahu externej stránky javascriptom a jeho vloženie do existujúcej.

Výhodné je to použiť napríklad pre obnovovanie stavovej informácie, prípadné paralelné načítanie viacerých informácií.

Kód html, dole span prvky budú mať prepísaný obsah z externých stránok:

<html>
<head>
 <script type='text/javascript' src='tabulka.js?v=2'></script>
 <style>
.grida2 {
    display: grid;
    grid-template-columns: auto auto;
    max-width: 980px;
#    margin: auto;
}
.grida2 > div {
  margin: 0px;
  padding: 0px;
}
 </style>
</head>
<body>
<div class="grida2">
 <div> <span id='OBS1'>nacitavam tabulku1.. </span> </div>
 <div> <span id='OBS2'>nacitavam tabulku2.. </span> </div>
</div>
</body>
</html> 

Je tu použitý CSS grid, pre zobrazenie dvoch stĺpcov s obsahom vedľa seba.

Javascript zabezpečí prvé načítanie a pravidelné obnovovanie obsahu:

var MyTimer		= null;
var MyPocetSecund	= 31;

function requestHttp(url,nazovObj)
{
    var request = null;
    try {request = new XMLHttpRequest();}
    catch(e) {
        try {request = new ActiveXObject('Microsoft.XMLHTTP');}
        catch(e) {request = null;}
    }
    if(request == null) { return; }
    request.onreadystatechange = function()
    {
        if (request.readyState == 4)
        {
            if (request.status == 200)
            {
                document.getElementById(nazovObj).innerHTML = request.responseText;
            }
        }
    }
    request.open('GET', url, true);
    request.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
    request.setRequestHeader("Expire", "now");
    request.setRequestHeader("Pragma", "no-cache");
    request.send(null);
}

function RefreshStranky()
{
	url1 = 'obsp1.php';
	url2 = 'obst1.php';

	requestHttp(url1,'OBS1');
	requestHttp(url2,'OBS2');

	MyTimer = window.setTimeout('RefreshStranky();',(MyPocetSecund + Math.floor(Math.random() * 5 ))*1000);
}

RefreshStranky();

Novšia možnosť je sťahovať obsah cez fetch-API:
async function getData(url2,nazovObj2){
       const response= await fetch(url2);
       const data= await response.text();
       document.getElementById(nazovObj2).innerHTML=data;
     }

3. 2. 2023