Näytä kirjoitukset

Tässä osiossa voit tarkastella kaikkia tämän jäsenen viestejä. Huomaa, että näet viestit vain niiltä alueilta, joihin sinulla on pääsy.


Viestit - Mistofelees

Sivuja: [1] 2 3 ... 30
1
Laiteläheisiä hommia on helppo tehdä bashilla. Esimerkiksi tcp-portin lukeminen ja viestien lähettely.
Itsellä on tapana tehdä suuri osa laiteläheisistä tempuista bashilla (osa tietenkin C:llä), tehdä "matemaattinen" käsittely php:llä ja ulostus html-sivulle. Graafit tulevat mukavasti phplot:lla.
Vasta viimeaikoina olen opetellut AJAX:a ja inhoan joka hetkeä. Sitä nyt vaan on pakko käyttää, kun ei muutakaan tapaa ole tiettyjen ongelmien ratkaisuun.

Bash;ssa on muutamia omituisuuksia, jotka olisi pitänyt miettiä jo järjestelmää kokoonkeittäessä kuntoon, jotta ne eivät aina olisi käyttäjän kiusana.
Pahin on if-lause. Kun saat IF:n toimimaan ja menet tekemään siihen pienenkin muutoksen, sen toiminta lakkaa, eikä palaudu vaikka mitä yrittäisit. Ainoa tapa on kirjoittaa koko lause uudestaan merkki merkiltä. Ainoa syy, mitä olen keksinyt, on se, että editoidessa sekaan pujahtaa joku näkymätön merkki. Mutta mistä ja miksi juuri IF-lauseeseen ?

Muutenkin IF on omituisuuden ruumiillistuma.

Toinen omituinen on datan syöttö tiedostoon.
teejotain >>file.txt on eri asia, kuin  file="file.txt"; teejotain >>$file
Ei kuitenkaan aina

Kaikkineen bashilla on mukava keittää pieniä scriptejä, joilla saa automatisoitua asioita.
Eikä bash missään tapauksessa ole yhtä paha, kuin M$:n komentokieli, jonka kanssa tuli MSDOS-aikaan rakenneltua isojakin työkalupaketeita. M$ kusi taskuunsa, kun ei ottanut komentokieleksi Basic:a.

2
GIT tuntui turhan massiiviselta ratkaisulta omaan käyttööni, joten kirjoitin oman scriptin, jolla saan vanhat versiot talteen.
Täyttää minun tarpeeni.

Koodia: [Valitse]
!/usr/bin/bash
# 211222 Ohjelma tekee työhakemistosta ZIP-backupin
# ja tuhoaa vanhat.
# Backup-tiedoston nimi on pvm: yymmdd_HHMM

# Tuhotaan työkopiot:
rm *~

# Tehdään backup-hakemisto
if [ ! -d "BCK" ]; then
        mkdir BCK
fi

# Backup-tiedostolle nimi:
pvm=$(date +"%y%m%d_%H%M")
# Pakataan:
tehty=$(zip BCK/$pvm *)

fileet=($(ls BCK -pBA1))
len=${#fileet[@]};

# Tuhotaan vanhat versiot, jätetään viisi viimeistä
for (( i=0; i<=$len-5; i++ )); do
        echo "BCK/${fileet[$i]}"
        rm "BCK/${fileet[$i]}"
done
echo "Backup tehty => ./BCK, Vanhoja tuhottu\n"

3
Apache2:n asetustiedostot löytyvät yleensä hakemistosta /etc/apache2. Sen voi vaikka tarrata ( tar cvzWf file.tar.gz * ) ja sitten kotikoneelta käsin hakea sen mieleiseensä turvaan scp:llä (scp tunnus@serveri:/hakemisto/alihakemisto /home/omahakemisto )

4
Yleistä keskustelua / Vs: Esineiden Internet
« : tänään kello 00:54 »
Koitan vältellä kaikkia härveleitä, joille minun pitäisi antaa kotiverkkkoni salasana. Aina se ei ole mahdollista.

IoT laitteet teen itse ja ohjaan niitä oman kotiserverini kautta. (Parhaillaan työn alla wifin kautta ohjattavat pistorasiat, esp8266 ja sillai.)
Kun haluan talon ulkopuolelta päästä ohjaimiin, käytän VPN:ää. Talon pää-reitittimessä on oma VPN-serveri.

5
Yleistä keskustelua / Vs: Firefoxin pahus !
« : 11.01.23 - klo:13.37 »
Kannattaa muokata päivitysten asetuksia. Yllätys tapahtuu jos asetuksena on "Lataa ja asenna automaattisesti". Vaihda tilanne "Lataa automaattisesti", niin voit päättää milloin ajat valmiiksi ladatut päivitykset.

Mistähän tuollaisenkin asetuksen löytäisi ?
Kävin setupin läpi enkä löytänyt.

6
Yleistä keskustelua / Firefoxin pahus !
« : 10.01.23 - klo:23.59 »
Olin juuri bookkaamassa lentoa Hevonkuuseen. Pankkikortin tunnarit syötetty ja lentofirman sivu kuittasi, että odotahan hetki.
JA SILLOIN PAMAHTI !
FireFox nollasi sivut ja ilmoitti, että nyt päivitetään.
Ei mitään kysymystä siitä sopisiko tämä minulle. Ei mitään mahdollisuutta palata maksun käsittelyyn.
Mene suoraan kotipesään käymättä vankilan kautta.
No, poikkeaahan tämä M¤Wintoosan tavoista, joka kysyy Yes, No, Cancel, Retry ja tekee vasta sitten jotain typerää.

Koko sirkus piti aloittaa alusta. Lentofirma oli tietenkin tapansa mukaisesti nostanut hintaansa muutamalla kympillä.
Naputi-naputi-naputi ja puoli tuntia myöhemmin oli lippu ulostumassa printteriltä ja kotiserverin kovalevyllä PDF-tiedostona.

7
Yleistä keskustelua / Vs: Kotiserveri
« : 02.01.23 - klo:15.36 »
rakennella mittaus- ja valvontajärjestelmiä Arduinon ja ESP:n ympärille

Arduinon? Hep! Meitä on siis kaksi.

Hauskaa puuhaa Arduinoiden kanssa näpertäminen, ellei ota lukuun kotelointia ja virtalähteitä.
Viimeisin askare kyllä saa aikaan päänsärkyä. Samassa projektissa Arduinoa, bashia, C:tä, php:tä, Ajaxia ja html:ää. Olisipa yksi kieli, jolla saisi kaikki hoidettua. Tai olisipa kaikissa kielissä edes sama syntaksi ja muuttujien arvojen välittäminen selkeämpää.

8
Yleistä keskustelua / ? Terminologiaa ?
« : 31.12.22 - klo:01.20 »
Nyt hävettää, mutta on pakko kysyä:

Mitä on ARRAY Suomeksi ?

Aikoinaan sitä kutsuttiin nimellä 'vektori'.
Joku käytti nimitystä 'ryhmä', joku jopa 'paririvi'.
'Taulukko' ei oikein ole sama asia, kuin ARRAY, 'Taulukko' on 'Table'

Itse olen muutaman vuosikymmenen  käyttänyt dokumentoinnissa jokseenkin pelkkää Englantia, mutta nyt pitäisi vääntäää dokumenttia myös Suomeksi.

9
Yleistä keskustelua / Vs: Kotiserveri
« : 31.12.22 - klo:01.15 »
Tämä on minusta kovin luonnollista. Itse töissä yhdenlaisena teollisuus mekaanikkona ja osaisin/pystyisin tekeen monenlaista esim. autohuollot yms. onnistuisi kyllä helposti, mutta ei kiinnosta pätkääkään kuin muutamat kiinnostavammat aihealueet.

Pitää jotenkin pystyä vaihtamaan vähä eri sektoreillle vapaa-aikana :)
[/quote]

Aikojen kuluessa on tullut hypittyä liiankin moneen suuntaan. On tullut korjattua kaikkea mahdollista sukellusveneestä lentokoneeseen, rannekellosta omakotitaloon. Veneitä, autoja, ydinvoimaloita, Röntgen-tuotekehitystä, moottoripyöriä, tietokoneita.... siinä sivussa kierretty palloa myötä- ja vastapäivään. Nyt on huvina rakennella mittaus- ja valvontajärjestelmiä Arduinon ja ESP:n ympärille ja siinä sivussa askarrella wanhaa mopoa.

Itseäkään ei enää huvita ryömiä autojen alla tai likaojissa.

10
Yleistä keskustelua / Vs: Kotiserveri
« : 28.12.22 - klo:22.31 »
Kiitos hyvistä kommenteista ja heränneestä keskustelusta.
Itselläni on vuosien kuluessa rakentunut kotiserveri, jonka alta on rauta vaihtunut jo moneen kertaan. On myös pienempiä servereitä ja NAS-purkkeja. Järjestelmään on liitetty mitta- ja ohjauslaitteita ja varmuuskopiointia. Nettisivuilta löytyvät valokuva-albumit, dokumentti-varasto, matkailu-kirjanpito, mittalaitteiden grafiikkaa ja ohjauslaitteiden sivustoja.
VPN-serverinä toimii TP-Link Archer AX1500 reititin. Muina reitittiminä on TP-Linkin kevyempiä malleja.

Tässä muodossaan kotiserveri olisi mahdottomuus muiden käsiin annettavaksi.
Jotta yleisempi kotiserveri olisi mahdollinen, se pitäisi suunnitella kunnolla alusta alkaen. Siihen pitäisi luoda yksinkertainen mutta simppeli ylläpito-järjestelmä, johon voisi liittää osia, kuin legoja ja sen pitäisi sisältää oma varmuuskopiojärjestelmänsä joko lisälevyille tai pilveen.

Kun töissä IT-palveluissa juttelin kotiserveristä, pidin itsestään selvänä, että jokaisella on sellainen. Yllätys oli suuri. 70 hengestä vain kahdella minun lisäkseni oli moinen.

Nuo Kiinalaiset sähkörasiat ovat vielä tällä hetkellä sisäverkossa, mutta siirtyvät lähipäivinä DMZ:lle.

11
Yleistä keskustelua / Kotiserveri
« : 16.12.22 - klo:12.33 »
Jäin taas miettimään, miten ihmiset tulevat toimeen ilman kotiserveriä.
'Äly' laitteiden ohjaus kierrätetään Kiinan kautta, missä niiltä kerätään kotiverkkosi salasanat. Jos Kiinalainen firma kaatuu, jää laite mykkänä  käteen.
Kotiverkon serveriin liitetty laite on turvallisempi ja toimii ilman Kijnalaista firmaa.

Serverin nettisivuille voi lisätä graafeja lämpötiloista, sähkön ja veden  kulutuksesta. Mikäli käytössä olisi oikea reititin, voisi VPN-ohjelmaa käyttäen käyriä katsella vaikka itse olisi ulkomailla. Samoin voisi omia serverillä olevia dokumenttejä hakea kännykällä, vaikka läppäri olisi kotona kaapissa virrattomana.

Kotiserverillä valokuvien lajittelu ja käsittely olisi helpompaa ja mukavampaa, kuin M$ ja Kuukkelin pilvilevyillä. Tosin tarvittavat kuvankäsittely- ja esittelyohjelmat puuttuvat, koska ei ole ollut asiakkaita

Datan varmuuskopiointi ei jäisi sen varaan, että 'asiat ovat omalla läppärillä'.
Omat datat ja valokuvat eivät katoaisi aina läppärin kilahtaessa.
Kevyimmillään kotiserveri on korttipakan kokoinen laite kirjahyllyn nurkassa.. mikäli levytilan tarve kasvaa, siihen voi liittää pari kovalevyä, jolloin kokonaisuus on taskukirjan kokoluokkaa.

Jos kotiserverit yleistyisivät, niille luotaisiin ohjelmia, joita osaisivat hekin käyttää, joilla on vihreä jauhopeukalo keskellä kumpaakin vasenta kättä.

Nykyisin serverit ovat nörttien lahja nörteille. Miina ja Manu ja PK-yritykset on unohdettu (tässäkin) kokonaan.

12
Kirjoitin php:llä ohjelman, joka kaivaa spottihinnan esille.
Ohjelma näyttää pitkältä, koska lisäsin siihen reilusti kommentteja
Jos testaat tätä, pistä tähän viestiketjuun kommentti, niin tiedän lisätä kommentteja.

Päivämäärien käsittely on vielä työn alla.

Koodia: [Valitse]
#!/usr/bin/php
<?php
/*******************************************************************************
 261122 PTMusta, "Mistofeles", cordite(at)outlook.com
 Jos jaat ohjelmaa eteenpäin, toivon, että yllä oleva puumerkkini säilyisi
 If you copy and modify this program, I hope you don&#39;t remove my namestamp above

 Ohjelma on tässä muodossaan testattu 
 Linux Mint 20.3 Una, 5.4.0-132-generic, php 7.4
 Ubuntu 22.04.1 LTS, 5.15.0-53-generic, php 8.1
 Toimii varmasti muissaskin Linux-versioissa ainakin pienin muutoksin
 M$:n käyttöjärjestelmäyritelmä on kokeilijan vastuulla

 Ohjelma hakee ENTSO-E-palvelimelta sähkön spot-hinnan
 Tätä varten pitää rekisteröityä ENTSO-E -järjestelmään ja anoa [u]security tagia[/u] ohjeiden mukaan sähköpostilla
 OHJEITA:
 https://transparency.entsoe.eu/content/static_content/Static%20content/web%20api/Guide.html#_parameters
 https://transparency.entsoe.eu/content/static_content/download?path=/Static%20content/web%20api/RestfulAPI_IG.pdf
******************************************************************************************\
// Tulostetaan tämä ja huomispäivä
// Kellonajat ovat UTC

$alkaa=date(&#39;Ymd0000&&#39;);

$huominen = new DateTime(&#39;tomorrow&#39;);
$loppuu=$huominen->format(&#39;Ymd0000&&#39;);

//********OHJELMAN YDIN***************/
/
// Rakennetaan http-osoiterivi:
// (MUOKKAA riveille tuodaan päivämäärä)
$d1="https://transparency.entsoe.eu/api?";
// Pistä tähän oma Security tagisi (ota hakaset pois):
$d2="securityToken=[b]<Security Tagi>[/b]";  
// DocumentType A44: pricedocument:
$d3="documentType=A44&";        
// Maakoodit löytyvät:
// https://eepublicdownloads.entsoe.eu/clean-documents/EDI/Library/Market_Areas_v2.1.pdf
$d4="In_Domain=10YFI-1--------U&";
$d5="out_Domain=10YFI-1--------U&";
$d6="periodStart=".$alkaa;
$d7="periodEnd=".$loppuu;
$data=$d1.$d2.$d3.$d4.$d5.$d6.$d7;

// Lähetetään pyyntö, talletetaan muuttujaan:
$contents file_get_contents($datafalse);

// Pannaan raakadatatalteen siltä varalta, että halutaan tutkia:
// Ei välttämätön
$fp=fopen("raakadata",&#39;w&#39;);
fwrite($fp,$contents);
fclose($fp);
//************************************//
// Tästä eteenpäin haetun datan muokkausta ja tiivistystä
// Haettavat rivit:
// <start>2022-08-25T22:00Z</start>
// <end>2022-08-26T22:00Z</end>
// <position>1</position>
// <price.amount>206.93</price.amount>

// Käsitellään muuttuja rivi kerrallaan
// Irroitetaan <start><position> ja <price.amount>

// Talletetaan vain tämän ja huomisen tiedot:
$fd=fopen("loppudata.txt",&#39;w&#39;);

// Linuxissa rivin loppumerkiksi riittää "\n"
// M$Wintoosasta en halua tietää mitään
$separator "\n";

$rivi strtok($contents$separator);
while (
$rivi !== false) {
    
// Rivin alusta roskat pois:
    
$rivi=trim($rivi," \n\r\t\v\x00");
    
// onko etsittävä merkkiono tällä rivillä
    
$needle="start>";
    
$pos=strpos($rivi,$needle);
    if (
$pos != false){
        
// Rivin lopusta ja alusta tagit pois
        
$start=str_replace("</start>","",$rivi);
        
$start=str_replace("<start>","",$start);
        echo
"START:$start,";
        
// Poimitaan tunti
        
$hour=substr($start,11,2); 
        
// echo"HOUR:$hour\n";
    
}
    
   
//<end> on meille turha  
    
$needle="end>";
    
$pos=strpos($rivi,$needle);
    if (
$pos != false){
        
$endo=str_replace("</end>","",$rivi);
        
$endo=str_replace("<end>","",$endo);
        
// echo"END: $endo\n";
    

    
// <position> on tasatunti startsta alkaen       
    
$needle="position>";
    
$pos=strpos($rivi,$needle);
     if (
$pos != false){
            
$posi=str_replace("</position>","",$rivi);
            
$posi=str_replace("<position>","",$posi);
     }        
    
     
// Vihdoinkin se oleellisin: hinta
     
$needle="amount>";
     
$pos=strpos($rivi,$needle);
     if (
$pos != false){
         
$price=str_replace("</price.amount>","",$rivi);
         
$price=str_replace("<price.amount>","",$price);
         
$price/=10;

         
// Lasketaan hinnan kellonaika
         
$hetki=$hour+$posi;
        
// Vuorokausi vaihtuu:
        
if($hetki==24){
            
$hour-=24;
            
$hetki=&#39;00&#39;;
            
$day+=1// $day -arvon laskennassa on virhe:
         
}
         echo
"$day $hetki:00,   $price\n";
         
fwrite($fd,$posi.",".$price."\n");
         
    }
    
// Poimitaan seuraava rivi käsittelyyn:
    
$rivi=strtok($separator);
}


13
Kiitos vastauksesta. Tällä kertaa se ei  kuitenkaan auttanut.
Koitin kaikkia mahdollisia käsiliikkeitä php:n ja Apache2:n kanssa ja sain laumoittain mielenkiintoisia virheilmituksia.

Poistin (purge) Apache2 ja php ja tarkastin vielä, että kaikki rääppeetkin ovat poistuneet
Asensin molemmat takaisin ja vielä php8.1-gd:nkin, jota phplot kaipaa.
Lopuksi vielä kerran uudelleenkäynistetään apache2 palvelin.

Uudelleenasennus ja confailu tuotti sen verran tulosta, että nyt osa php-sivuista nousee jaloilleen
Osassa aiemmin hyvin toimineita on häiriöitä. Kaikki phplot graafit kieltäytyvät tulostumasta.

Osa php-scripteistä toimii huonosti tai suorastaan väärin, mikä viittaa siihen, että php7.4:n jälkeen php:n runkoon ja virheentarkastukseen on tehty muutoksia. Hyvä niin, vaikka se tuottaakin töitä. Pitäisi vaan saada parempaa debugia,
jotta jahti sujuisi ketterämmin.

Nyt sitten vaan puukottamaan kaikkia webbisivuja. Onneksi php-ohjelmia ei ole montaa sataa.
(Kaikki sivut ovat käsin väännettyjä tageillä. Ei yhtään SQL:ää, eikä valmiita koodipaketteja)
Melkein kaikki ongelmat ratkesivat lopulta Apachen confeja puukottamalla.

14
Osta vaan ihan oma virtuaaliserveri, jota ohjaat sitten ssh-clientillä Androidin puolelta.

Oma kuitu helpottaa. Itsellä on kotiserveri, jolle pääsen reitittimen VPN:n kautta. sekä toinen yksinkertaisempi DMZ:lla.
Kännykässä käytän xfiles:ä, jossa on scp.

Edelleen odotan täyspainoista Linux-tablettia tai kännykkää ilman Android layeriä siinä välissä. Kiinasta oli jotain tarjolla, mutta ilmeisesti Google sanoi rumasti.

15
-" Jos haluat toimivan ja juuri päivitetyn serverin, sinulla pitää olla kaksi konetta".
Pakko ilmeisesti uskoa ja hankkia toinen serveri pääserverin rinnalle.

Suoritin tänään distro-upgraden serveriin.
Tulos oli jokseenkin odotettu.
Systeemi nousee pystyyn. Kaikki tähän asti testaamani toimii (ainakin pääsin kirjautumaan)

MUTTA:
Kaikki php:tä sisältävät webbisivut ovat rikki :(

Ei ole ensimmäinen kerta. PHP on ollut varsinainen riesa näiden päivitysten kanssa. Esimerkiksi 'split'-komennon korvaaminen 'explodella' aiheutti minulle parin viikon ylimääräiset työt firman servereiden päivityksessä.
Järkevä ylläpitäjä olisi linkittänyt splitin explodeen php:n ytimessä, jolloin asiakkaille ei olisi aiheutunut niin paljoa kiroamista.
Sain tämän korjattua tekemällä scriptin, mutta työtä oli silti paljon, koska servereitä oli lauma.

Ilmeisesti vika ei tälää kertaa ole PHP:ssä, vaan Apache2:ssa.
Etsimiseen menee taas hel*ti aikaa.

16
Yleistä keskustelua / Arduino IDE 2.0 ?
« : 14.11.22 - klo:19.15 »
Miten tuon Arduinon uuden IDE:n saa asennettua Linuxiin ?
Arduinon omilla sivuilla oleva ohje on pahasti vajaa.
Latasin heidän ZIP-pakettinsa ja levitin sen omaan hakemistoonsa.
Sieltä löytyy ohjelma 'arduino-ide', joka kyllä lähtee pyörimään, mutta ainakaan kahden tunnin odottelulla ei ole tapahtunut mitään muuta kuin että mustalla ruudulla supistelee Arduinon pöllönkuva.
Meinasin mennä kysymään Arduinon forumilta, jolla olen ennenkin asioinut, mutta nyt siellä vaaditaan kaksisuuntaista mielialahäiriötä, jota varten pitäisi ladata jotain lisäohjelmia kännykkään. Pitäköön tunkkinsa.

17
Onkohan kenelläkään valmiina dokumentoitua ohjelmanpätkää, joka laskisi CRC-16 X-25 tarkistussumman?
(mieluiten C tai php, mutta muukin käy)

Olen nyt haaskannut muutamia tunteja katsellen netistä tälläistä, mutta kaikki ovat huonosti dokumentoituja. Ei mitään selitystä siitä, missä muodossa data pitäisi tajoilla ja missä muodossa se tulee ulos.
Dokumentoinnissa on myös unohdettu kertoa, onko CRC-16 CCIT:lle, Kermitille, X-25:lle ...

Netissä olleet selitykset itse laskenta-algoritmista ovat olleet kovasti risti-riitaisia. 

18
Lainaus
Python silti tällä hetkellä yksi käytönnöllisimmistä kielistä ja kehityy vain  :)
Olen tämän myös todennut käytännössä, mutta silti kaipaan noita sulkuja.
Tämä olisi aivan erilaista, jos työskentelisi vain yhdellä koneella ja isolla ruudulla
Kun hyppii koneelta toiselle ja vaihtaa editoria, tulee helposti  sekaannuksia.
Eräät editorit jopa poistavat oma-alotteisesti white-spaceja.
Olisivatpa sulut edes sallittuja, vaikkeivat olisikaan pakollisia.

19
En haluaisi siirtyä php:stä Pythoniin kesken projektia.
Sitäpaitsi inhoan Pythonia, koska siinä ei voi käyttää sulkuja ohjelman osien niputtamiseen. Pilattu hyvä ohjelmointikieli ylläpitäjän itsepäisyydellä.

20
Kyllästyin taistelemaan tuon kanssa ja kirjoitin php:llä scriptin, joka hoitaa homman nilkuttaen.
Scripti ei vielä osaa GT06:n kaipaamaa kättelyä, joten se kaataa yhteyden muutaman minuutin välein, jolloin myös ohjelma kaatuu.
Data kyllä tulee oikeassa muodossa ja tarkkuus on tarkastettu.

Kaikkea ei ehdi päivässä, kun pitää muutakin touhuta..

Sivuja: [1] 2 3 ... 30