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 ... 19
21
Nettiohjeiden mukaan ! -operaattorin pitäisi kääntää totuusarvo, mutta en keksi, miksi niin ei näytä tapahtuvan tässä pienessä kokeiluohjelmassa

Koodia: [Valitse]

<?php 

if(1)
{
  echo(
"luku alkaa \n\n");
  
$qs readline("anna arvo1 arvo2 arvo3 ja arvot4: ");
  echo(
"\n\n luku loppu \n\n");
  
  
$_POST[&#39;arvo1&#39;] = explode(&#39; &#39;, $qs)[0] . &#39; &#39;;
  
$_POST[&#39;arvo2&#39;] = explode(&#39; &#39;, $qs)[1] . &#39; &#39;;
  
$_POST[&#39;arvo3&#39;] = explode(&#39; &#39;, $qs)[2] . &#39; &#39;;
  
$_POST[&#39;arvot4&#39;] = implode(&#39; &#39;, array_slice(explode(&#39; &#39;, $qs), 3));
/*
  echo( $_POST[&#39;arvo1&#39;] );
  echo( $_POST[&#39;arvo2&#39;] );
  echo("\n\n loppu \n\n");
*/
  
}  // if loppuu

if(empty($_POST["arvo1"]))
  {
    die(
"arvo1 puuttuu");
  }
 
 echo(
$_POST["arvo1"] ) ;
 echo( 
" arvon1:n pituus on " strlen(trim($_POST["arvo1"] )) . "\n"  );
  
if( !
is_int(trim($_POST["arvo1"] ))  )
  {
    die(
"\narvo1:n on oltava kokonaisluku\n ");  // <<<====== vaikka arvo on 1, tullaan tänne ????
  
}

$my_number str_replace(&#39; &#39;, &#39;&#39;, $_POST[&#39;arvo1&#39;] );    // tyhjät pois 
$my_number filter_var($my_numberFILTER_SANITIZE_STRING);
$my_number substr($my_number040); 

?>


kokeilu meni näin

Koodia: [Valitse]
php kokeilu_05.php

luku alkaa

anna arvo1 arvo2 arvo3 ja arvot4: 1 aa oo 2 3 4

 luku loppu

1  arvon1:n pituus on 1

arvo1:n on oltava kokonaisluku


Voi olla, että kyseessä on joku yksinkertainen logiikkavirhe omassa logiikassani, mutta itse sitä on vaikea huomata

Miten pitäisi testata, että syötettävä arvo on kokonaisluku php:ssä.



22
Yritin tehdä kahta luokka niin, että luokka1 käyttää luokka2:n tyyppistä muuttujaa ja luokka2 käyttää luokka1:n tyyppistä muuttujaa.

Kokeilun rakenne on tällainen

luokka1
{ fun1( luokka2 x);
}

luokka2
{ fun2 (luokka1 y);
}

Käännös ei onnistu, koska luokka1:ssä luokka2:ta ei tunnisteta. Netissä on std::forward- ja std::class -asioista ohjeita, mutta en ainakaan vielä ole keksinyt, miten niistä voisi olla apua.

Joskus muistan nähneeni directiivin forward, jonka voisi kuvitella ratkaisevan tällaisen asian, mutta ainakaan vielä hakutuloksissa sitä ei ole näkynyt.

Mikä olisi ratkaisu, on kokeiltu myös luokkien esittelyä etukäteen ja määrittelyä suoraan funktioineen.

23

Joillakin sivuilla on järjestelmävalvonnan mukaan paljon suorintintehoa vievää koodia, vaikka näkyvä toiminnallisuus on vain tekstejä ja linkkejä.

Voisiko jollain vakiona tulevalla Firefoxin työkalulla nähdä, mitä sivusto tekee taustalla, voiko se olla piilolauhintasivu tms.

Tietysti javascriptin voi aina tällaista sivua katsellessa laittaa pois päältä, mutta siinä on taas pari ylimääräistä napsua, ja sitten on vielä uteliaisuus: mitä se sivu oikein tekee :)

24
Käytössäni on vanha stereo, jossa on aux in left- ja right-paikat. Tuloherkkyys (input sensitivity) on 400mV ja impedanssi > 3 Ohmia.

Millaista äänen laatua voi odottaa, jos yhdistää puhelimen kuulokepaikasta piuhat aux in -sisääntuloihin.

Onko puhelimien kuulokelähdöissä joku standardilähtöalue niin, että 400mV suunnilleen toimii.


25
Esimerkkitapauksena voisi olla vaikka tekstisivu, jossa on 40 riviä ja jokaisen rivin maksimi- tai vaikiopituus on 80 merkkiä.

Varmaan tavallisella c:llä pitäisi tehdä kaksiulotteinen taulukko

char sivu[rivimäärä][merkkimäärä]

mutta haluaisin sivun c++ -tyylisesti eli rivit vakiopituisina stringeinä ja rivit vektoriin tai arrayhin niin, että kääntäjä ymmärtää, että mitään lisätilaa sivulle ei koskaan tarvita ja jos riviä muutetaan, se pysyy aina omassa tilassaan eli uusi rivi mahtuu vanhan rivin tilaan.

Jos vakiotilavaatimusta ei olisi, sivu olisi varmaan

std::vector<std::string> -muotoinen.

Toiveena olisi siis saada kääntäjä tekemään sellaista koodia, joka ei vaatisi mitään ylimääräistä tilaa eriputuisille stringeille tai muille varauksille.







26
Taas on tullut vastaan pieni ainakin toistaiseksi ratkaisematon pulma.

Koodia: [Valitse]

#include <vector>
#include <iostream>

int main()
{
  int ktab[10];
  ktab[4] = 44;
  for(auto i : ktab) std::cout << ktab[i] << " ";
  std::cout <<ktab[4];
return 0;
}


Ohjelma on kännetty näin
Koodia: [Valitse]
g++ -std=c++20 -pedantic koe.cpp -o koe

Käännös ja suoritus menevät hyvin, mutta tulostus on tällainen
Koodia: [Valitse]
0 0 0 0 0 0 0 0 0 0 44

Ajatuksena on, että taulukon kohdan 4 pitäisi näkyä myös for-osassa. Eikö automaattinen for toimikaan säilöjen ulkopuolella, virheilmoituksia eikä varoituksia kuitenkaan tule.

Olisiko tällainen kesäpähkinä sopiva: Etsi  virhe edellä esitetyssä päättelyssä     




27

Jos c++:ssa tehdään paljon objecteja listaan tai mappiin ja ne tuhotaan, niin milloin ja missä vaiheessa ne oikeasti vapautuvat käyttikselle eivätkä enää kuulu ohjelman muistitilaan.

Luultavasti on niin, että yksi merkkijonoobjecti listassa tai mapissa ei vapautuessaan näy käyttiksessä, mutta milloin iso määrä vapautettuja stringejä näkyisi. Millä tavalla c++ oikeasti varaa muistia ohjelmalle, ehkä jonkilaisina muistilohkoina tms?

Onnistuisiko käytännössä ohjelman muistinkäytön seuraaminen system monitorilla vai onko olemassa joku sopiva käyttiskomento ohjelman kulloinkin viemän muistimäärän seuraamiseksi.


28
Olisiko jotain tekstinkäsittelyohjelmaa, joka osaisi tehdä vaikka kaksipalstaista html-koodia. Kokeilujen mukaan palstat eivät onnistu libreofficen tekstinkäsittelyllä, muistaakseni ei kumpaankaan suuntaan.

Ehkä on joku muu tapa kirjoittaa suunnilleen oikein myös selaimessa näkyvä sivu, joku sivusto tms?

29
Kokeilin php:n scandi-komentoa

Koodia: [Valitse]
$my_files = array_slice(scandir( "./" ), 2);
slice on mkana vain poistamassa ylähakemistomerkintöjä eli ./ ja ../  -sanat tuloksesta, muuten näkyy hakemiston tiedostot. Näin toivoisinkin asian olevan, ja näin php toimii toisella virtuaalidomainilla pilvikoneessa.

Mutta sama komento toisessa domainissa tulostaa lisäksi selaimessa

Koodia: [Valitse]
bash logout
bashrc
cache
cloud-locale-test
gnupg
local
profile

Mielestäni laitoin ihan samanlaisena php-sivun kumpaankin virtuaalidomainin indexinä.

Olisiko virtuaalidomaineilla joitain säätöjä, joita pitäisi muutella, mutta miksi ne olisivat erilaisia, en ainakaan tietääkseni ole ollut asian kanssa missään tekemisissä aikaisemmin enkä ole yrittänyt mitään muutoksia tehdä.




30
php:llä pitäisi korvata pikku pätkä nettisivun tekstiä. Tämä versio ei näytä toimivan

Koodia: [Valitse]

<?php

function replaceVariable($body$s$e$replacement)
{
  while(
strpos($body$s) )
  {
    
$start strpos($body$s);
    
$end strrpos($body$e);
    
$body substr_replace($body,  $replacement $start+4$end-$start+4);
  }
  return 
$body;
}

$var "333 uusiotsikko 444";
$body file_get_contents(&#39;index2.html&#39;);
$newBody1 replaceVariable($body"333 "" 444" ,$var); 
file_put_contents(&#39;index3.html&#39;, $newBody1 );
?>



Ongelma vaikuttaa olevevan se, että korvattavan alussa on sama tokeni kuin korvaavassa tekstissä vaikka lisäyspaikan alkua on kokeilun takia jopa siirretty 4 merkkiä eteen päin.

Käytännön ongelma voisi olla vaikka tällainen

<h1>  vanha otsikko </h1> 

halautaan korvata nettisivulla tekstillä

<h1> uusi otsikko </h1>

Kokeilujen mukaan ongelma on se, että korvattava pätkä alkaa samalla tokenillä kuin korvaava. Kyse lienee niin yleisestä toimesta, että sen pitänee hoitua helposti eli tässä yrittämässäni versiossa on varmaan jotain periaatteellista häikkää.

Miten oikeassa nettimaailmassa uusittaisiin php:llä joku otsikko nettisivulla.

Muokk.

Kahden tokenin rajoittaman tekstin korvaaminen näyttäisi onnistuvan kikkailun avulla

Koodia: [Valitse]
function replaceVariable($body, $s, $e, $replacement)
{
  while(strpos($body, $s) )
  {
    $start = strpos($body, $s);
    $end = strrpos($body, $e);
    $body = substr_replace($body,  $replacement , $start, $end-$start+4);
  }
  return $body;
}

$var = "555 uusiotsikko 444";
$body = file_get_contents('index2.html');
$newBody1 = replaceVariable($body, "333 ", " 444" ,$var); //////// äääääääääääääääääääääääääääääääääääääää
$var = "333 uusiotsikko 444";
$newBody2 = replaceVariable($newBody1, "555 ", " 444" ,$var);
file_put_contents('index3.html', $newBody2 );


Mutta luulisin, että asia on niin yleinen, että sen hoitamiseen ei tarvita kikkailua. En oikein uskaltaisi tällaisessa tilanteessa laittaa säiettä ratkaistuksi.



31
Tarvitseeko zoom, teams tai jitsi javascriptin päälle tai perustuuko keskusteluvälitys pelkkään html 5:een. Jitsi voi ainakin vaatia javascriptiä, mutta onko kyse teknisestä vaatimuksesta vai sivun pitäjän halusta saada javascript päälle.

Mieluusti pitäisi javascriptin pois päältä, jos sitä ei oikeesti tarviata.



32
On kohtalainen joukko merkkijonoalkioita, joita laitetaan c++ sdt:map:iin niin, että yksi alkio on avain ja sen häntänä on vaihtelevan pituinen vektori muita joukon merkkijonoalkioita.

Mikä tahansa joukon merkkijono voi olla avaimena ja mitkä tahansa muut merkkijonoalkiot voivat kuulua sen häntään.

Kun mikä tahansa avaimena oleva merkkijonoalkio tekee muutoksia häntäänsä, hakemistossa korvataan sille uusi, muutettu häntä eli koko avain-häntä-pari korvataan uudella avain-häntä-parilla hakemistossa.

Vanhasta hännästä taitaa tulla roskaa. Osaako std:map huolehtia roskistaan vai jääkö se ohjelmoijan tehtäväksi. Mitä tapahtuu, jos map-rakenteessa muutetaan ja korvaillaan häntiä pitkä aika, kerääntyvätkö roskat jonnekin?



33
Netin ohjesivulla

https://www.tutorialspoint.com/cpp_standard_library/cpp_vector_range_constructor.htm

on hyvä esimerkkiohjelma, jonka voi kääntää suoraan sivulla. Tässä ohjelmassa vektorin v2 esittely ei toimi autona, vaikka näyttäisi, että kääntäjällä on tarpeeksi tietoa vektorin tyypin määrittelmiseksi. Yritin saada siistimmän näköistä ohjelmakoodia auton kanssa, mutta ei siis onnistu.

Mikä auton rajoite tässä kohtaa voisi olla kyseessä, miksi auto ei toimi. Kääntäjä antaa kyllä pitkät selitykset, mutta en oikein osaa niitä liiemmälti tulkita.

Tässä on alkuperäinen ohjelma, joka toimii

Koodia: [Valitse]
#include <iostream>
#include <vector>

using namespace std;

int main(void) {
   vector<int> v1(5);

   /* assigned value to vector v1 */
   for (int i = 0; i < v1.size(); ++i)
      v1[i] = i + 1;

   /* create a range constructor v2 from v1 */
   vector<int> v2(v1.begin(), v1.end());

   for (int i = 0; i < v2.size(); ++i)
      cout << v2[i] << endl;

   return 0;
}

ja tässä autoversio, joka ei toimi


Koodia: [Valitse]
#include <iostream>
#include <vector>

using namespace std;

int main(void) {
   vector<int> v1(5);

   /* assigned value to vector v1 */
   for (int i = 0; i < v1.size(); ++i)
      v1[i] = i + 1;

   /* create a range constructor v2 from v1 */
   auto v2(v1.begin(), v1.end());

   for (int i = 0; i < v2.size(); ++i)
      cout << v2[i] << endl;

   return 0;
}



34
Pilvikoneelle pääsee kirjautumaan ilman salasanaa, koska joskun olen tehnyt avaimen

Koodia: [Valitse]
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

ja lähettänyt sen pilvikoneelle tiedoksi

Koodia: [Valitse]
ssh-copy-id remote_username@server_ip_address
Mutta kun yritin kopioida pilvikoneelta tiedostoa kotikoneelle, tuli

Koodia: [Valitse]
/./tiedosto.odt: Permission denied
Yritetty komento kotikoneelta oli

Koodia: [Valitse]
scp -r pilvikäyttäjä@xx.xx.xx.xx:/home/pilvikäyttäjä/hakem1/hakem2/teksti1.odt /.
Muistelisin, että jos en olisi koskaan lähettänyt avainta pilvikäyttäjelle, scp kysyisi vain pilvikäyttäjän salasanaa ja kopiointi onnistuisi.

Kopiointi onnistuisi varmaankin kikkailemalla vaikka tekemällä jonkun toisen käyttäjän pilvikoneelle ja jättämällä sen ilman shs-avainta, mutta olis helpompaa, jos asiat sujuisivat muutenkin.

Ehkä scp-komennossani on joku (kirjoitus)virhe, jota en huomaa?








35

Taloyhtiöön on tullut elisan kaapeli, ja yhteys toimii ilman modeemia, kun laittaa piuhan seinään.

Onko tällainen osoite vakio niin, että jos laitan koneelle vaikka apache2:n, niin näkyy tiedostoja netissä. Voisiko selvitä ilman varmenteita (sertifikaatteja), jos selaimeen kirjoittaisi verkko-osoitteen, vai valittaisiko selain tässäkin tapauksessa epäluotettavasta sivusta.

36

Olisiko kellään Portaudio-kehityspaketista kokemuksia, voisi ehkä joskus kokeilla saada ääntä mikrofonista tiedostoon vaikka taajuuksien tutkimiseksi.

Kehityspaketit taitaa saadaa suoraan

sudo apt install portaudio19-dev


Octave on toinen vaihtoehto, mutta siihenkin pitää sitten löytää sopivia scriptejä taajuuskuvien piirtämiseen.  Onko hyviä vihjeitä octave-scripteistä, jotka näyttävät äänen voimakkuuden ja sen taajuuskomponentit kuvaajina.

Tai joku muu keino vaikka 16-bittisen äänen saamiseksi tiedostoon riittävällä taajuudella.






37
Haluaisin formatoida vanhan asennustikun, jossa on Ubuntu 20.04, tavalliseksi tiedostotikuksi, mutta formatointi ei onnistu tiedostonhallinnassa, koska tikulla on ositustaulukko (partition table).

Miten saan tikun formatoitua ja mikä tiedostotyyppi kannattaa valita, jos tikkua haluaa käyttää Ubuntussa ja joskus kirjaston Windows-koneella. Onko pakko olla fat, käykö ntfs tai joku muu.


38
Nyt tilanne on se, että olen kahden tikun loukussa. Huawei yrittää ilmeisesti ottaa yhteyttä, mutta luovuttaa sitten. Samoin banddeluxe, joka ilmestyy yhdisttäväksi ethernet-yhteydeksi, mutta ei kuitenkaan yhdisty, vaikka sen napsauttaa yhdistymään.

Huawei ilmioittaa, että johto on irti. Sen kanssa on edistytty sen verran, että se ei enää ilmoita olevansa vain cd-rom.

Osaisiko joku neuvoa hyviä keinoja tilanteesta eteen päin. Jos tarvitaan tarkempia oirekuvauksia, voin taas kokeilla niitä oikean tikun kanssa. Mutta jo tässä vaiheessa tikkuja ja simmiä on vaihdeltu aika monta kertaa edestakaisin. Pieni käytännön ongelmahan on, että toimimattoman kortin tilannekuvaa ei helposti pysty lähettämään netissä, koska silloin ei ole yhteyttä.

Hmmm, olisiko mahdollista laittaa kaksi tikkua yhtä aikaa eri usbeihin, silloin käytännön selvittely voisi helpottua.  (nyt toiminnassa on yksi huawei, joka yhdistyy kuin junan vessa :)     )


39

Kun pilvikoneen tiedostojen etämuokkaus menee hyvin sftp:llä ja kotikoneen tekstinmuokkaimella, seuraavaksi tulee mieleen kysymys, onnistuisiko etämuokkaus myös windowsilla tai jopa puhelimella.

Onko sftp niin yleinen menetelmä, että kaikki toimii sillä.


40
Olen pääkäyttäjänä pilvikoneella ja kokeilen

Koodia: [Valitse]
$ cd käyttäjä1
-bash: cd: takaovi: Permission denied

sitten

Koodia: [Valitse]
$ sudo chmod -R g+rx käyttäjä1
[sudo] password for slam1:

ja vielä

Koodia: [Valitse]
$ sudo chmod g+rx käyttäjä1
$ ls -l käyttäjä1
ls: cannot open directory 'käyttäjä1': Permission denied

Muistaakseni sudolla on aina ennen voinut tehdä mitä vain.

Eli homma näyttää olevan hieman sekaisin  :(

Hassuinta oli, että kaikki näytti toimivan ennen selaimen sulkemista niin, kuin pitikin.

Miten asiaa voisi alkaa selvittää?









Sivuja: 1 [2] 3 4 ... 19