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 ... 16
1

Onko todennäköistä, että tietolevy alkaa olla käyttöikansä loppupuolella, kun lakitiedoissa on mm. seuraavanlainen ilmoitus ja kone temppuilee silloin tällöin muutenkin

Koodia: [Valitse]
System blk_update_request: critical medium error, dev sr1, sector 16360 op 0x0: (READ) 0x80700phys_seg 1 prio class 0
Tämä ilmoitus ei liittyne saman asiaan?

Koodia: [Valitse]
System Bluetooth hci0: unexpected event for opcode 0x0000

lokit on otettu näkyville Dashin Logilla, jos sillä on merkitystä näkyviin viesteihin.

Ratkaisu saattaisi siis olla uusi sd-levy, vai olisiko syytä epäillä jotain muuta?

2

Missä olisi harrastelijatasoiselle käyttäjälle sopiva opas dy.fi -palvelun käyttämiseen. En koskaan ole ymmärtänyt, mitä koneella pitää suorittaa, että dy.fi -domainit pysyvät käytössä. Mitä se noin viikon välein ajettava ohjelma tekee ja voiko sen toteuttaa millä kielellä vain.

dy.fi -sivulla voi ilmeisesti varata haluamiaan domainnimiä ja siitä ehkä selviää yrityksen ja voinee selvitä erehdyksen kautta.

Sivujen uudelleenohjauksen voi tehdä html/javascriptillä tai php:llä, mutta miten se tehdäään dy.fi-palvelun kaltaisissa paikoissa. Oletus on, että siellä se tehdään tehokkaammin ja näppärämmin.


3
Appimagien varmistamiseksi yksi mahdollisuus voisi olla ajaa appimageja jossain hiekkalaatikkoympäristössä. Onko tällainen ajatus oikeasti toimiva, eli voisi siis käyttää appimagea vaikka Firejailissa?

4
Ubuntu tietokoneissa / Appimaget eli sovelluskuvannot
« : 15.01.23 - klo:21.03 »

Taas on tullut uusi asia eteen: appimaget. Riittääkö tosiaan vain, että antaa sovelluskuvannolle suoritusoikeudet ja sitten kaikki toimii ilman huolia.

Kuka voi sovelluskuvantoja tehdä, onko se vaikeaa tai monimutkaista.

Netiisä luki, että sovelluskuvannot eivät ole hiekkalaatikoituja tai sandboksattuja, miten turvallisia ne ovat.

Mitä eroa niillä ja snapeilla on.


5
Haluaisin saada merkkijonon, jossa on välilyönnein  eroteltuja sanoja luetuksi vector-luokan säiliöön.

Toivomus olisi, että homma toimii aika turvallisesti ilman ylivuotoja tai muita ongelmia, vaikka tulevamerkkijono olisi vähän omituisempikin.

Nykyinen versioni on tällainen

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 valmis ' '-merkki päätti sen
        tok = "";
        cptr ++;
      }
      else
      {
        tok += *cptr;
        cptr++;
        if( *cptr == '\0')          // tok valmis \n -merkki päätti sen
        {
          vec.push_back(trim(tok));
        }
      }     
    }
    return vec;
  }


Jotta vektoriin ei tule luetuksi välilyöntejä, funktiossa on trim-käsky, joka on toteutettu näin

Koodia: [Valitse]
std::string ltrim(const std::string &s) {
    return std::regex_replace(s, std::regex("^\\s+"), std::string(""));
}
 
std::string rtrim(const std::string &s) {
    return std::regex_replace(s, std::regex("\\s+$"), std::string(""));
}
 
std::string trim(const std::string &s) {
    return ltrim(rtrim(s));
}

Kokonaisuus ei vaikuta kovin tyylikkäältä, kun kyseessä on vain aika yksinkertainen vektoritalletus ja sanojen poiminta.

Olisiko joitain keinoja, miten asian voisi hoitaa varmemmin ja tyylikkäämmin. (esim.nyt kai  ainakin pitäisi varautua siihen, että merkkijonon loppumerkkiä ei koskaan tulisikaa, ja varmaan moneen muuhunkin mahdolliseen ongelmaan)






6
Joitain vuosia olen pitänyt pientä pilvikonetta Hetznerillä ja joitain perusjuttuja on ehkä tullut opittuakain. Mutta kun yritin ottaa versiopäivityksen 18.04 ---> 20.04,

Koodia: [Valitse]
do-release-upgrade
tuli varoitus

Koodia: [Valitse]
Reading cache

Checking package manager

Continue running under SSH?

This session appears to be running under ssh. It is not recommended
to perform a upgrade over ssh currently because in case of failure it
is harder to recover.

If you continue, an additional ssh daemon will be started at port
'1022'.
Do you want to continue?

Continue [yN] N
=== Command detached from window (Sun Jan  1 16:32:00 2023) ===
=== Command terminated with exit status 1 (Sun Jan  1 16:32:10 2023) ===


Miten päivityksen voi tehdä, jos ssh:ta ei saa käyttää vai onko varoitus vain "kaiken varalta". 


7
Kopsasin tiliotteeni tekstin pankin sivulta tekstinmuokkaimeen ja sitten haluaisin poistaa välilyönnin luvusta

1 300,00     (kopsattu päätteestä omasta ohjelmastani)

Mutta kun omassa ohjelmatekstissäni on tämän luvun käsittelyyn koodia

Koodia: [Valitse]
std::cout << "s33 raaka on " << s33 << std::endl;               
s33.erase(remove(s33.begin(), s33.end(), ' ' ), s33.end() );
std::cout << "s33 ilman tyhjää on " << s33 << std::endl;

niin toivoisin sen välilyönnin luvusta 1 300 poistuvan.

Kuitenkin ohjelman aputulostukset ovat tällaiset

Koodia: [Valitse]
s33 raaka on 1 300,00
s33 ilman tyhjää on 1 300,00

Muistikuvani on vielä sellainen, että joskus aikaisemmin ohjelma olisi todella poistanut välilyönnin luvusta. Onko välilyönniltä näyttävä merkki mahdollisesti jokin muu merkki, vaikuttaisiko kopiontitapahtuma jotenkin asiaan, ehkä utf-8 ja char-ristiriitaisuuksia?




8
Joskus olisi hauska saada jotain kuviakin, niin kokeilin gnplotia, joka on valmiina vakio Ubuntu 20.04 -koneessa.

Tarkoitus olisi saada suorakaiteen muotoinen liukuvärinen "heat map", kun havaintopisteet ovat valmiina m * n matriisissa ja samalle kuva-alueelle olisi kätevä saada vaikka pari vähän eri muotoista liukuvärjättyä suorakaidetta.

Netissä on paljon ohjeita, mutta mikään ei ihan heti näytä sopivan tilanteeseen, esimerkiksi

https://stackoverflow.com/questions/21663358/gnuplot-heatmap-xyz
https://gnuplot.sourceforge.net/demo/heatmap_points.html
https://web.physics.utah.edu/~detar/phys6720/resources/Gnuplot_tutorial.html

Voisi kuvitella, että liukuvärjätyt suorakaiteet ovat ihan perusjuttuja gnuplotilla, ehkä etsinnässä on jotain pielessä, kun sopivaa ei ole läytynyt.

nim. vihjeestä kiitollinen  :)









9

Miten voisi saada taulukon uudelleenlaskennan käynnistettyä Ubuntu 20.04:n perusversion libreofficen calcissa. Netissä olevien ohejeiden mukaan sen voisi valita vaihto -ctrl f9 -yhdistelmällä, mutta mitään ei näytä tapahtuvan. Olen myös asettanut iteratiiviset viittaukset -valinnan päälle, jos sillä olisi mitään vaikutusta asiaan.

10

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.

11
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 :)

12
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.

13
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?

14
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ä.



15
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ä.


16
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.

17
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;
  }

18

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?


19
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.


20

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.

Sivuja: [1] 2 3 ... 16