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.


Aiheet - teele

Sivuja: 1 2 [3] 4 5 ... 18
41

Miten Ubuntu 20.04 -koneessa voi muokata vasemman reunan ohjelmakuvakkeiden komentotekstejä. Joskus aikaisemmein kuvakkeen komentorivin sai näkyviin ihan yksinkertaisesti, muistelisin.

Toiset ohjelmat voi käynnistää erilaisilla käynnistysparametreilla ja olisi kätevää, jos ne parametrit saisi suoraan kuvakkeen kautta.

42
En saa millään javascriptin replacea toimimaan. Kokeiluohjelma on tässä alla ja tarkoitus olisi, että tekstilaatikkoon kirjoitettu teksti tulisi laatikon yläpuolelle, kun laatikon alla olevaa painiketta napauttaa. Tekstistä pitäisi rivinvaihdot korvata <br> elementeillä, mutta se ei ole onnistunut, vaikka netissä on ohjeita vaikka kuinka paljon. :(


Koodia: [Valitse]

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html>
<head>
  <title> replace koe </title>
  <meta charset="UTF-8">
</head>

<body>

<br> <br> <br> <br>


 <div id="tekstitila" name="tekstitila"> tekstitila </div>


  Kirjoitus tähän ruutuun: <br>
  <textarea id="kirjoitustila" name="kirjoitustila" cols="80" rows="30" maxlength="1000"
            placeholder="Just 1000 characters allowed"></textarea>
           
  <p> painikkeet </p>         
  <input type="button" name="koe1" value ="koe1" onclick="koe1();" />

<script type="text/javascript">

  function koe1()
  {
    var old_text = document.getElementById('tekstitila');
    var new_text = document.getElementById('kirjoitustila');
    old_text.innerHTML = new_text.value.replace(/(\r\n|\r|\n)/g, '<br>');
    //old_text.innerHTML = new_text.value.replace(/(\r\n|\r|\n)/g, '<br>');
  }

</script>

</body>
</html>


Muokk.
Taitaa sittenkin toimia :)

43
Kokeilin html-sivua, jossa textareaan kirjoitettu teksti tulee html:nä samalle sivulle. Nyt pitäisi ratkaista, miten saa rivinvaihdot tyhjät rivit htmlk:ksi javascriptissä. Mitä pitää etsiä replace-komennolla, jos sen haluaa korvata <br>:llä.

Mutta sanitoinnin kannalta väkäset eivät liene hyvä ratkaisu. Miten esimerkiksi tämän palstan rivinvaihdot on ratkaistu. Ubuntu-fi.org:han toimii hienosti ja tämänkin viestin välirivit näkyvät katseltaessa html-tekstinä.

Muokk.

Taisi ratketa, kun laitoin html:ksi tulevan tekstin <pre> määritteiden sisälle.

44
Pilvipalvelimella olevan sivustoni sertifikaatti on yllättäen lopettanut toimimasta, vaikka sertifikaatit ovat vielä voimassa.

Koodia: [Valitse]
sudo certbot renew

Koodia: [Valitse]
he following certs are not due for renewal yet:
  /etc/letsencrypt/live/xxx1.dy.fi-0001/fullchain.pem expires on 2023-01-25 (skipped)
  /etc/letsencrypt/live/xxx2.dy.fi/fullchain.pem expires on 2023-01-09 (skipped)
  /etc/letsencrypt/live/xxx3.dy.fi/fullchain.pem expires on 2023-01-11 (skipped)
  /etc/letsencrypt/live/xxx4.dy.fi/fullchain.pem expires on 2023-01-22 (skipped)
  /etc/letsencrypt/live/xxx5.dy.fi/fullchain.pem expires on 2023-02-13 (skipped)
No renewals were attempted.


Yritin päivitystä ohjeen

https://community.letsencrypt.org/t/renew-letsencrypt-certificate/34677/2

mukaan.

Koodia: [Valitse]
sudo certbot certonly --force-renew -d xxx4.dy.fi
Saving debug log to /var/log/letsencrypt/letsencrypt.log

How would you like to authenticate with the ACME CA?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Apache Web Server plugin (apache)
2: Spin up a temporary webserver (standalone)
3: Place files in webroot directory (webroot)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-3] then [enter] (press 'c' to cancel):

Sertifikaattien osoitteet ovat näkyneet muistaakseni apachen sites-available -tiedostossa, mutta en vielä ole käynyt apachea nyt uudestaan läpi, ja voi olla, että paikkaa en muista oikein.

Mikä certbotin tarjoamista valinnoista olisi yksinkertaisin ja ehkä sama kuin ennenkin. Mitä certbot tarkoittaa kysymällä webrootia, silloin kun noin pari vuotta sitten onnistuin laittamaan sertifikaatit, piti kai antaa (yhden) oman nettisivun osoite. Olisiko webroot nyt esim. xxx3.dy.fi, jos xxx3 olisi yksi dy.fi :n kautta osoitetuista sivuista.

En oikein uskaltaisi kokeilemalla alkaa selvittää asiaa, muuten pikku virtuaalipalvelin on täynnä kaikenlaista tiedostoa, mistä en ole millään tavalla perillä.

Muokk.
En tiedä, mitä on tapahtunut, mutta nyt sivustot näyttävät toimivan oikein ?!
Toivottavasti päivitys menee sitten

Koodia: [Valitse]
sudo certbot renew

komenolla, kun aikaa vanhentumiseen on alle 30 päivää, ja certonly-valitsin pitänee jättää pois, jos toivoo mahdollisia tarpeellisia muutoksia myös asetuksiin?

45
Laitoin päätteessä

Koodia: [Valitse]
sudo snap install qucs-spice
qucs

mutta tulos oli

Koodia: [Valitse]
qucs: command not found

Myöskään vasemmalla olevassa ohjelmapalkissa ei näy mitään qucsiin viittaavaa.

Miten saisi qucsin käyttöön Ubuntu 20.04:ssä.



46
Kokeiluohjelma löytää alku- ja lopputokenin rajaaman tekstin, kun alku- ja lopputokeni ovat samalla rivillä. Mutta jos alku- ja loppu ovat eri riveillä, etsintä ei onnistu

Koodia: [Valitse]
<?php

echo("muuntelu ");

$filetext $file_content file_get_contents("index.php"); 

$pattern "/<h4>(.*?)<\/h4>/";
echo( 
preg_match($pattern$filetext$str1) );
print_r($str1); 

echo(
$filetext); // tämä vain näyttää, että sivu toimii muuten

?>


Miten $patternia pitäisi muokata, että alku- ja lopputokeni voisivat olla eri riveillä.


47
Jos esimerkiksi pääteikkunassa haluaa käynnistää ohjelman taustalle ja sitten jättää sen sinne, ohjelma pitänee käynnistää & valitsimen kera. Mutta jos ohjelman nimi on vaikka oma_ohjelma1, voiko sen sulkea käskyllä

pkill oma_ohjelma1

Entä jos päätteen sulkee, sammuuko oma_ohjelma1 samalla. Voisiko sen jättää toimintaan ja sitten joskus myöhemmin avata uuden pääteikkunan, jossa sitä voisi hallita eli lopettaa.

Entä jos oma ohjelma on pilvikoneessa, jossa on Ubuntu, ja pitäisi jättää oma_ohjelma1 käyntiin ja katkaista sitten palvelinyhteys. Jäisikö oma_ohjelma1 käyntiin ja voisiko sitä hallita joskus myöhemmin uudella yhteydellä ja ehkä jopa toiselta koneelta.

48
Muotoa

"kirja istuin eläin maantie eilinen syksy"

oleva merkkijono pitäisi saada vector<std::string> muotoon

vec{ "kirja", "eläin", "maantie", "eilinen", "syksy"}

Olen kokeillut
Koodia: [Valitse]
  std::vector<std::string> str_to_vec(char* c)
  {
    std::vector<std::string> vec;
    char *token;
    char *rest = c;
 
    while((token = strtok_r(rest, " ", &rest)))
    {
      vec.push_back(std::string(trim(token)));
    }
    return vec;
  }

Mutta se näyttää vaikutavan alkuperäiseen parametrina tulevaan merkkijonoon :(

Netistä ei oikein löydy hyvää eaimerkkiä strtok-funktiosta tai sitten kukaan ei välitä, mitä alkuperäiselle merkkijonolle tapahtuu?

Voisiko tässä kutsussa olevan *c parametrin jotenkin korvata niin, että strtok ei pääsisi käsiksi alkuperäiseen merkkijonoon niin, että merkkijono muuttuu? Tai olisiko joku muu tapa saada välilyönnein erotellut sanat char-merkkijonosta sanavektoriksi.


Muokk.

En millään saanut strtok -funktiota selvitetyksi. Vaihtoehtona yritin seuraavaa, toivottavasti siinä ei ole mitään ikäviä yllätyksiä tai liikaa hitautta verrattuna valmiiseen funktioon.


Koodia: [Valitse]
  std::vector<std::string> str_to_vec(char* cptr)
  {
    std::vector<std::string> vec;
    std::string tok = "";
         
    while( *cptr != '\0')
    {
      if(*cptr == ' ' && tok != "")
      {
        vec.push_back(trim(tok));
        tok = "";
        cptr ++;
        continue;
      }
      else
      {
        tok += *cptr;
        cptr++;
        if( *cptr == '\0')
        {
          vec.push_back(trim(tok));
        }
      }     
    }     
    return vec;
  }

49

Netistä löytyi monia sokettiohjeita ja niillä tehdään ylensä palvelin ja asiakkaita niin, että palvelin avataan omaansa ja asiakkaita omiinsa pääteikkunoihin.

Mutta jos haluaisi oikeasti testailla, miten vähän tiheämmin tulevat asiakaspyynnöt toimivat tällaisen  palvelimen kanssa, pääteikkunat eivät luultavasti oikein riitä.

Vastaisiko millään tavalla todellisuutta, jos tekisi testiohjelmaan  asiakassäikeitä, jotka pyytäisivät palvelimelta jotain viestiä sopivan tiheäasti. Jos tällaista ohjelmaa ajaisi yhdessä pääteikkunassa, kuvaisiko se millään tavalla tilannetta, jossa palvelimelle tulee oikeasti pyyntöjä ulkomaailmasta eri osoitteista, vai pitäisikö olla aliprosesseja säikeiden sijasta tai jotain muuta?


50
Taas on tullut aikaa leikkiä php:n kanssa ja ehkä nyt taas aluksi voisi kokeilla php:tä vain php:nä. Mutta ohjeen

https://linuxconfig.org/how-to-install-php-on-ubuntu-linux

mukaan tässä asennuksessa tulee apache mukana. Voisiko php:n asentaa ainakin aluksi ilman apachea, jotta voisi kokeilla vaikka php:n socketteja tai muuta sellaista. Onko pelkän php:n asentaminen edes hyvä idea, vai kannattaisiko vain tehdä yllä olevan ohjeen mukaan tai pitäisikö jopa suoraan laittaa LAMP.. Käyttis on Ubuntu 20.04 ainakin vielä vähän aikaa.


51

Laitoin sudo apt install g++. Apt ehdott ivielä seuraavia lisukkeita:

Suggested packages:
  binutils-doc g++-multilib g++-9-multilib gcc-9-doc gcc-multilib make
  autoconf automake libtool flex bison gcc-doc gcc-9-multilib gcc-9-locales
  glibc-doc libstdc++-9-doc

Miten ne saisi yhdellä komennolla, että ei tarvitsisi kirjoitella jokaista aptiin erikseen.

52
Komennolla sudo lshw -C display näkyi

description: 3D controller
       product: GK208M [GeForce GT 740M]
       vendor: NVIDIA Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list rom

ja

 description: VGA compatible controller
       product: 3rd Gen Core processor Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 09
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list


Yle areena valitti Firefoxissa, että videoiden näkymiseen tarvitaan luultavasti ajuri.

Miten nvdia-ohjain pitäisi asentaa Ubuntussa ja mistä sen läytää. Ubuntun asennuksessa ei ollut ruksittu käytäsuljettuja ajureita,voisiko sen jotenkin vielä muuttaa, jos se ratkaisisi asian.

Muokk.

Oheita ohjaimen asennukseen löytyi täältä

https://montblanczone.com/fi/ubuntu-linux-asenna-nvidia-ohjain-uusin-oma-ohjain/

mutta jos ohjaimia ei välttämättä tarvita, voisi ne jättää asentamattakin. Ongelmahan voi olla siinä, että kyseessä on ihna uusi asennus ja ehkä firefox ei vain löydä jotain ohjainta. Mutta miten asiaa voisi selvittää?




53
Oletuksen mukaan olen hankkinut Thinkpad edge E351 type 6885 model 688526G -läppärin. Mutta Ubuntu 20.04 -asennus ei oikein viedolä ole onnistunut. Kyseessä voi tosiaan olla oletus, koska koneessa ei ole mitään tarraa tai tyyppimerkintää ulkopuolella. Mallinumero on peräisin bios-asetusohjelmasta, ja toivottavasti
kopioin sen oikein.

Ensiksi olisi mukava päästä käsiksi biosiin niin, että koneen voi muuttaa käynnistymään asennusta varten tehdyltä usb-tikulta. Netistä ei kuitenkaan ole löytynyt tätä mallia koskevia ohjeita biosin muuttamiseksi. Koneessa on Windows 10 ja sitä kautta on biossi kerran saatu näkymään hyvin monimutkaisen menettelyn kaukautta, eli sitä reittiä ei ole mukava kokeilla kovin montaa kertaa.

Jos biosiin pääsee, sitten tulee uefi- ja pikakäynnistysvalinnat, joista luulisi, eddä pikakäynnistys pitää olla valittuna pois. Mutta uefi, pitääkö sen olla legacy tai efi tai jotain muuta.

Käynnistyslaitteeksi luultavasti usb hdd drive, vaikka kyseessähän on tavallinen muistitikku?

Näyttää siltä, että käynnistysnapin painamisen jälkeen näytöllä vilahtaa joku teksti, joka entisinä aikoina kertoi, miten pääsee bios-säätöihin, mutta tässä koneessa vilahdus on niin nopea, että mitään ei ehdi lukea.

Kaikki vihjeet ovat tarpeellisia ja tervetulleita :)





54
Yleistä keskustelua / EU-rajoitukset nettiselailuun
« : 05.04.22 - klo:20.54 »

Luin uutisia Helsingin sanomien sivuilta venäläisestä uutistoimistosta

https://www.hs.fi/ulkomaat/art-2000008730387.html

Jutun lopussa on maininta, että EU on estänyt yhteyden uutistoimiston sivuille.

Onko tämä oikeasti mahdollista, voidaanko EU:ssa noin vain estää sivujen näkymistä. Sivusto olisi artikkelin mukaan ollut nähtävillä EU:n ulkopuolisen vpn:n kautta.

Voisiko EU siis estää muidenkin sivujen näkymistä, jos sivustot eivät sitä miellytä.


55
Olen silloin tällöin katsellut uutisia ylen areenasta, mutta tänään kuvatilassa näkyi vain mustaa, painikkeet näyttivät toimvan. Onko lähetystapaa jotenkin muutettu. Käytössä on Ubuntu 20.04 perusversiona. Miten uutisten katselu onnistuisi taas.


56
Ubuntu tietokoneissa / [ ratkaistu } php 7.2 -päivitys
« : 04.03.22 - klo:20.00 »
Laitoin tarjotut päivitykset ja huomasin, että php:n kanssa kehotetaan ajamaan vielä muutamia ohjelmia. Mutta tämä ilmoitus on keskellä päivityksen tekstiselvitystä ja sen  jälkeen tulee vielä ilmoitusta up php.

En oikein osaa teksteistä päätellä, tekikö päivitys jo tarvittavat muutokset itse, vai pitäisikö ne käsketyt ohjelmat vielä ajaa. Niiden nimet ovat ainakin itselleni ihan outoja.

Päivityksen palautetekstiä on tässä alla ja siitä näkyy viitatut kehotukset ohjelmien ajamiseen ja se, että päivitys eteni vielä kehotusten jälkeen. En muistaakseni ole itse koskaan koskenut mihinkään säätöön apachessa, missä olisi ollut jotain proxy-mainintaa.



Koodia: [Valitse]
NOTICE: Not enabling PHP 7.2 FPM by default.
NOTICE: To enable PHP 7.2 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php7.2-fpm
NOTICE: You are seeing this message because you have apache2 package installed.
Setting up php7.2 (7.2.24-0ubuntu0.18.04.11) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for ureadahead (0.100.0-21) ...
Processing triggers for systemd (237-3ubuntu10.53) ...

Muokk.

Näyttää toimivan ilman ohjelmien ajoakin ja versiokikin näyttää oikealta

Koodia: [Valitse]
$ php -v
PHP 7.2.24-0ubuntu0.18.04.11 (cli)

Koska proxy-asioista ei ole mitään käsitystä eikä niihin ole aikasemminkaan koskettu, arvaus on, että tämä säie voidaan laittaa ratkaistuksi :)


57

Post-parametrin välitys aiheuttaa ongelmia libhttpseverissä. Eroaako post-parametrin rekisteröinti get-parametrin rekisteröinnistä libhttpserverissä niin, että httpserver::http_request& hyväksyy vain get_arg -menetelmän get-parametreiile.

Kokeilin tällaista luokkaa

Koodia: [Valitse]
class file_response_resource3 : public httpserver::http_resource
{
 public:
 const std::shared_ptr<httpserver::http_response> render_POST(const httpserver::http_request& req)
{
  std::string datapar06 = req.get_arg("data06");  // ??????
  std::cout << "!!!!!!!data06 on nyt:" << datapar06 << std::endl; // ??????
  return std::shared_ptr<httpserver::file_response>(new httpserver::file_response("textareafile.html", 200, "text/html"));
     }
}; // luokka file_response_resource3 loppuu


tällaisen javascript-funktion kautta

Koodia: [Valitse]
async function fetch_textareafile02() // postina, libhttpserverissä
{                                     // laitettava postiksi
 let response = await fetch('textareafile.html',
     {
      method: 'POST',
      headers: {
                 "Content-Type": "text/plain;charset=UTF-8"
               },
      body: { 'data06': 'ÖÅÖÅÖÅÖÅÖÅÖÅÖÅÖÅÖÅÖÅ ' }
       }
     );
  let text = await response.text();
  form_var = document.getElementById("form01");
  textarea_var = form_var.tekstialue_id;
  textarea_var.value += text + '\t'; 
}

Html sivulla tekstialue päivittyy, mutta libhttpserver-puolella parametrin arvo ei tulostu. Kokeilin myös    post_arg("data06"); , mutta arvaus meni vähän pieleen, koska vain get_arg menetelmä on olemassa. Eroavatko get- ja post-käsittelyt libhttpserverissä jotenkin html-parametrien suhteen, vai teenkö taas jonkun mielikuvituksekkaan virheen tässäkin asiassa.



58

Kun tiedot nyt kulkevat libserverin ja html-sivun välillä kumpaankin suuntaan, voisi olla mahdollista kokeilla oikean, ulospäinkin näkyvän nettisuvun tekemistä. Tämä tarkoittanee salausta eli https yhteyttä nykyään.

Valitettavasti osaamisesta puuttuu vielä pari "pientä yksityiskohtaa":

miten hankitaan salausavaimet
minne ne laitetaan
miten kerrotaan libhttpserverille, mistä se voi ne löytää
jos sivupyynnössä on https-muoto, osaako libhttprerver siitä päätellä, että salattua muotoa käytetään, vai pitääkö se ottaa huomioon c++ -koodia kirjoitettaessa

Eli nämä "pikkuasiat"  aluksi :)

Olisi kuitenkin mukava, jos pystyisi kirjoittelemaan vähän vuorovaikutteisiakin sivuaja ilman, että pitää uppoutua apachen syövereihin. Ehkä libhttpserver olisi jopa pikku sivuihin kevyempi vaihtehto.

Httphttpmicroserveristä löytyi käsikirja ja opas netistä, mutta libhttpserver ja https tai encrypt -haut eivät näytä tuovan vastauksia kysymyksiin.



 

59
Sivun

https://javascript.info/fetch

ohjeiden  mukaan javascriptin fetchin kanssa käytetään awaitia, mutta jos await-sanan laittaa Firefoxin javascriptiin, javascriptin toiminta loppuu eikä painikkeen javascript vastaa mitään esimerkiksi tässä kokeiluohjelmassa

Koodia: [Valitse]
<!DOCTYPE html>
<html>
<head>
<title> syöttökaavake, versio 01 </title>
</head>

<body style="text-align: left;">
 <h1 style="color: green;"> Syöttökaavake </h1>
 
<p> Napsauta kaavake auki </p>
<button onClick="fetch_test_fun()">Avaa kaavake </button>
<p id="prgh"></p>

 <script>
 
 function fetch_test_fun()

  alert("kokeilufunktio alkaa");
  let response = await fetch("/hello");
  //let text = await response.text(); // read response body as text
  //alert(text.slice(0, 80) + '...');           
}
 
</script>       
</body>   
</html>

<!--
https://javascript.info/fetch
 
https://javascript.info/xmlhttprequest

 -->


Fetch vaikuttaa muuten kätevämmältä kuin xhtmlrequest, jos halutaan pikku viestejä palvelimelta vaikka libhttpserveriltä. Mitä pitäsi tehdä, await pois vai xhtmlrequestin pariin vai joku muu (mukavan helppo) ratkaisu pikku viestien kyselyyn palvelimelta.



60
Yrittäisin saada std::string-tyyppisen muuttujan arvoksi html-sivun koodin. Tässä  alla pieni lomakekokeiolu, joka ei toimi, MIkä olisi hyvä tapa laittaa std::stringin arvoksi html-koodia, olisiko siihen jotain oikotietä vai pitääkö \ -merkkejä vain sijoitella eri paikkoihin tai kahdentaa " -merkkejä tai ......... ?

Koodia: [Valitse]

#include <iostream>
int main()

{
  std::string str4 =
     " <form action=" http://localhost:8080/hello"  method="post"> "  ";
  std::cout << str4 << std::endl;
 
  return 0;
}

Sivuja: 1 2 [3] 4 5 ... 18