Pieniä kysymyksiä ohjelmoinnista

Liittynyt
17.10.2016
Viestejä
5 451
Ja TAAS olen ihan hukassa... Jos joku ennättää ja jaksaa auttaa niin olisin kiitollinen! Tässä tehtävä, tehtävän esimerkki ja lopussa meikäläisen yritys ratkaista tehtävä (epäonnistunut). Olen kysynyt jos tuon FiTechin sivujen kautta apua, mutta ikävä kyllä en siltäkään ymmärrä. Selkeästi taitoni eivät riitä koodaukseen, mutta en halua vielä luovuttaa, saattaa olla kuitenkin että jossain vaiheessa löytyy se juttu missä olen hyväkin :D
Mutta tässä tehtävä, esimerkki ja oma yritys:

Kirjoita ohjelma, joka kysyy käyttäjältä lukuja kunnes käyttäjä syöttää luvun 0. Tämän jälkeen ohjelma tulostaa syötettyjen lukujen keskiarvon. Käytä luvun kysymiseen tekstiä Syötä luku. ja syötettyjen lukujen summan tulostamiseen tekstiä Keskiarvo: 3.5 (edellä keskiarvo 3.5). Lukua 0 ei huomioida keskiarvon laskemisessa. Mikäli käyttäjä ei syötä yhtäkään lukua, ohjelman tulee tulostaa viesti Keskiarvoa ei voi laskea. Alla on esimerkki odotetusta ohjelman toiminnasta.Syötä luku.
< 3
Syötä luku.
< 2
Syötä luku.
< 0
Keskiarvo: 2.5

Toinen esimerkki.Syötä luku.
< 0
Keskiarvoa ei voi laskea.

****************'
Oma viritelmä jossa vastaus Infinity...

import 'dart:io';

main() {
var summa = 0;
var luku = 0;

while (true) {
print('Syötä luku.');
var syote = int.parse(stdin.readLineSync());
if (syote <= 0) {
break;
}
summa += syote;
summa ++;
}
if (summa > 0) {
var keskiarvo = summa / luku;
print('Keskiarvo: $keskiarvo');
}else{
print('Keskiarvoa ei voi laskea.');
}

}
Ihan aluksi vinkkinä että nuo koodinpätkät kannattaa laittaa tänne foorumille code-tagien väliin niin sisennykset pysyvät mukana ja on huomattavasti helpompaa lukea koodia. Toki kun lainaa tekstiä, sisennys näkyy siellä.

Itse tekisin tuossa tuon syötteen tarkastelun toisin päin eli jos syöte on suurempi kuin 0 niin tehdään asioita. Toiseksikin sinulla taitaa olla pieni aivopieru tuossa kun lisäät summaan syötteen ja heti perään lisäät summaa yhdellä. Ja luku-muuttujaa ei taideta käyttää muualla kuin keskiarvon laskennassa joten sen käyttöä kannattaa vähän kurkata tuossa koodissasi. Ihan suoraan en viitsi ratkaisua antaa... Niin ja itse ehkä nimeäisin tuon luku-muuttujan vähän loogisemmin, hetki meni ennenkuin tajusin.
 

Starglazer

Tukijäsen
Liittynyt
17.10.2016
Viestejä
3 107
Ja TAAS olen ihan hukassa... Jos joku ennättää ja jaksaa auttaa niin olisin kiitollinen! Tässä tehtävä, tehtävän esimerkki ja lopussa meikäläisen yritys ratkaista tehtävä (epäonnistunut). Olen kysynyt jos tuon FiTechin sivujen kautta apua, mutta ikävä kyllä en siltäkään ymmärrä. Selkeästi taitoni eivät riitä koodaukseen, mutta en halua vielä luovuttaa, saattaa olla kuitenkin että jossain vaiheessa löytyy se juttu missä olen hyväkin :D
Mutta tässä tehtävä, esimerkki ja oma yritys:

Kirjoita ohjelma, joka kysyy käyttäjältä lukuja kunnes käyttäjä syöttää luvun 0. Tämän jälkeen ohjelma tulostaa syötettyjen lukujen keskiarvon. Käytä luvun kysymiseen tekstiä Syötä luku. ja syötettyjen lukujen summan tulostamiseen tekstiä Keskiarvo: 3.5 (edellä keskiarvo 3.5). Lukua 0 ei huomioida keskiarvon laskemisessa. Mikäli käyttäjä ei syötä yhtäkään lukua, ohjelman tulee tulostaa viesti Keskiarvoa ei voi laskea. Alla on esimerkki odotetusta ohjelman toiminnasta.Syötä luku.
< 3
Syötä luku.
< 2
Syötä luku.
< 0
Keskiarvo: 2.5

Toinen esimerkki.Syötä luku.
< 0
Keskiarvoa ei voi laskea.

****************'
Oma viritelmä jossa vastaus Infinity...

import 'dart:io';

main() {
var summa = 0;
var luku = 0;

while (true) {
print('Syötä luku.');
var syote = int.parse(stdin.readLineSync());
if (syote <= 0) {
break;
}
summa += syote;
summa ++;
}
if (summa > 0) {
var keskiarvo = summa / luku;
print('Keskiarvo: $keskiarvo');
}else{
print('Keskiarvoa ei voi laskea.');
}

}
Koodista tulee paljon selkeämpi lukea sisennyksillä (ja täällä koodi tägillä):
Koodi:
import 'dart:io';

main() {
    var summa = 0;
    var luku = 0;

    while (true) {
        print('Syötä luku.');
        var syote = int.parse(stdin.readLineSync());
        if (syote <= 0) {
            break;
        }
    summa += syote;
    summa ++;
    }
    if (summa > 0) {
        var keskiarvo = summa / luku;
        print('Keskiarvo: $keskiarvo');
    }
    else {
        print('Keskiarvoa ei voi laskea.');
    }
}
 
Liittynyt
07.01.2021
Viestejä
688
Mikä on oikea tapa määritellä serverikohtaisia asetuksia Reactissa? Minulla on nyt sellainen ongelma, että olen määritellyt serverin ja API:n osoitteet ts-tiedostossa ja pitää aina muistaa käydä vaihtamassa nuo ennen kuin buildaan ja deployaan, mikä on virhealtista (en edes huomaa kehityskoneelta, jos tuo unohtuu korjata).
 

Zigh

Tittelitön
Liittynyt
17.10.2016
Viestejä
4 682
Mikä on oikea tapa määritellä serverikohtaisia asetuksia Reactissa? Minulla on nyt sellainen ongelma, että olen määritellyt serverin ja API:n osoitteet ts-tiedostossa ja pitää aina muistaa käydä vaihtamassa nuo ennen kuin buildaan ja deployaan, mikä on virhealtista (en edes huomaa kehityskoneelta, jos tuo unohtuu korjata).
.env -tiedostot

 
Liittynyt
07.01.2021
Viestejä
688
Jostain syystä minulle tuosta envistä tuli vain tiedosto, josta sain kuvan että tuolla voi määritellä vain tietyt Reactin sisäiset muuttujat. Pitääpä kokeilla.
 
Liittynyt
19.10.2016
Viestejä
3 460
Jostain syystä minulle tuosta envistä tuli vain tiedosto, josta sain kuvan että tuolla voi määritellä vain tietyt Reactin sisäiset muuttujat. Pitääpä kokeilla.
Joo, tuo env on melko monikäyttöinen, ja nimenomaan eri rajoitu tiedostoihin, vaan esimerkiksi juuri ajalen jotain Puppeteer pohjaisia testejä pilvessä, ja ympäristömuuttujissa (ENV) jotain asetuksia aiheeseen liittyen.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 033
Kannattaa huomioida ettei create react appia enää ylläpidetä ja sen käyttöä ei suositella. Helpoin tapa käyttää .env tiedostoja on dotenv npm paketti (oletan että cra käyttää samaa). Sen on sikäli myös kiva ettei se yliaja ympäristömuuttujia.
 
Liittynyt
07.01.2021
Viestejä
688
Minkähänlainen homma olisi muuttaa projekti pois CRA:sta?

Yksi ongelma minulla tuon kanssa on ollut. Yhtä pakettia ei saanut järkevästi CRA:n kanssa toimimaan, joten jäi sitten käyttämättä.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 033
Minkähänlainen homma olisi muuttaa projekti pois CRA:sta?

Yksi ongelma minulla tuon kanssa on ollut. Yhtä pakettia ei saanut järkevästi CRA:n kanssa toimimaan, joten jäi sitten käyttämättä.
Jos jokin muu vastaavaa kelpaa, niin esim. Viiteen siirtyminen on ihan kohtuu helppoa. Jo haluat kokonaan irti valmiista setupeista on edessä vähän enemmän hommaa ja työkalujen valintaa. Vaikeus riippuu myös siitä kuinka laajalti on käyttänyt CRAn temppuja.
 
Liittynyt
07.01.2021
Viestejä
688
Jos alan CRA:sta hankkiutua eroon, niin enköhän minä sitten mene manuaaliseen setuppiin. Mutta taitaa olla kaukana tulevaisuudessa se sitten.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 033
Jos alan CRA:sta hankkiutua eroon, niin enköhän minä sitten mene manuaaliseen setuppiin. Mutta taitaa olla kaukana tulevaisuudessa se sitten.
Ei se kovin iso juttu useimmiten ole. Itse irrotin viime vuonna harrasteprojektin CRA:sta ja siihen meni noin tunti. Laitoin webpackilla ihan vaan koska se on tuttu töistä ja tarve saada nopeasti tehtyä. Mitä siinä tarvitsi tehdä oli vähän webpack konffeja loadereineen, uudet npm skriptat, svg wrapperi (jos niitä on käyttänyt cra tyyliin) ja muistaakseni jotain pientä syntaksimuutosta joka ei tarkemmin jäänyt mieleen.

En tehnyt ejectillä. Siitä seuraa vaan kauhea sotku siivottavaksi. Sen sijaan poistin vaan react-scripts paketin ja asensin käsin tarvittavat paketit.
 
Liittynyt
07.01.2021
Viestejä
688
Mikä on oikea tapa määritellä serverikohtaisia asetuksia Reactissa? Minulla on nyt sellainen ongelma, että olen määritellyt serverin ja API:n osoitteet ts-tiedostossa ja pitää aina muistaa käydä vaihtamassa nuo ennen kuin buildaan ja deployaan, mikä on virhealtista (en edes huomaa kehityskoneelta, jos tuo unohtuu korjata).
Minähän kysyin näköjään väärän kysymyksen ja tajusin vasta kun aloin tehdä tätä.

Minä siis käännän tuon paketin tässä samalla koneella ja kopioin sitten build-kansion suoraan serverille. Tuo .env on src-kansiossa (jotta dotenv löytää sen), joten sehän pitäisi jotenkin korvata ennen käännöstä.

Kokeilin kuitenkin tuota dotenviä (olisihan se siistimpi ratkaisu joka tapauksessa) ja taas on pitänyt rikkoa jotain, kun webpackissa ei ole enää polyfilliä. Stackoverflow tarjoaa tolkuttoman määrän eri korjausehdotuksia, joista mikään ei ilmeisesti toimi kaikilla ja osa vaatii melkoista tunkkaamista.
 
Liittynyt
19.10.2016
Viestejä
3 460
Minä siis käännän tuon paketin tässä samalla koneella ja kopioin sitten build-kansion suoraan serverille. Tuo .env on src-kansiossa (jotta dotenv löytää sen), joten sehän pitäisi jotenkin korvata ennen käännöstä.
Et varsinaisesti tainnut kysyä tätä, mutta ehkä tämä hyvä mainita, ehkä siitä jollekin iloa: Usein versiohallinnassa on .env.example, joka sitten kopioidaan .env:iksi käyttöä varten. Täten sitä konffia ei yleensä tarvitse muokata päivitysten yhteydessä tms. Jos tulee joku oleellinen lisäparametri, niin voi olla hyvä tarkistaa, että se on määritelty (ei niin, etteikö muutenkin, mutta tuo on paikka missä nopeasti sohlatessa voi unohtua)
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 033
Kokeilin kuitenkin tuota dotenviä (olisihan se siistimpi ratkaisu joka tapauksessa) ja taas on pitänyt rikkoa jotain, kun webpackissa ei ole enää polyfilliä. Stackoverflow tarjoaa tolkuttoman määrän eri korjausehdotuksia, joista mikään ei ilmeisesti toimi kaikilla ja osa vaatii melkoista tunkkaamista.
Vähän sivuhuomiona:
Implisiittinen polyfillien lisääminen oli lähtökohtaisesti typerä ominaisuus. Hyvä vaan että poistivat sen.
 
Liittynyt
07.01.2021
Viestejä
688
Olisi kuitenkin kiva, että jos tekevät rikkovia muutoksia, että siihen olisi selkeämpi ratkaisu.
.env -tiedostot

En näköjään ekalla lukemisella tajunnut tuota dokumenttia oikein. Vaati näköjään pari päivää taukoa että aukesi että annoit ihan oikean vastauksen.
 
Liittynyt
01.01.2018
Viestejä
1 135
Onko kellään kokemusta noista arm pohjaisista vps:sistä? Toimiiko niillä dockerit ynnä muut hyvin vai onko ne epävakaita tai muita ongelmia.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 033
Onko kellään kokemusta noista arm pohjaisista vps:sistä? Toimiiko niillä dockerit ynnä muut hyvin vai onko ne epävakaita tai muita ongelmia.
Ihan hyvin esim. docker toimii, mutta itseäni x86 käyttäjänä on ärsyttänyt aika paljon se veivaaminen arm/x86 konttien välillä. Ehkä siihenkin jonkun siistimmän ratkaisun saisi kuin skriptoilla sekoilun?
 
Liittynyt
01.01.2018
Viestejä
1 135
Miten paljon tuosta lighthouse tuloksista kannattaa välittää? Valittaa mm. Js blocking timesta ja liian monista dom nodeista. Mutta puhelimellakin toimii nopeasti. Sivulla on siis monta chartistilla tehtyä svg kaaviota. Voiko tuon jotenkin lazy loadata nuo kaavioden tekemisen?
 

debuggeri

Tukijäsen
Liittynyt
17.10.2016
Viestejä
541
Jos se toimii tarpeeksi nopeasti niin en stressaisi asiasta joka ei ketään haittaa. lozad.js voisi olla vaihtoehto tuohon.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 033
Jos SEO:lla on väliä, pitäisin lighthouse tulosta tärkeänä, muuten oman prioriteetin mukaan.
 
Liittynyt
17.10.2016
Viestejä
14 824
Miten paljon tuosta lighthouse tuloksista kannattaa välittää? Valittaa mm. Js blocking timesta ja liian monista dom nodeista. Mutta puhelimellakin toimii nopeasti. Sivulla on siis monta chartistilla tehtyä svg kaaviota. Voiko tuon jotenkin lazy loadata nuo kaavioden tekemisen?
Se, että itsellä toimii hyvässä verkossa ei tietenkään tarkoita, että jollain toisella toimii paskemmalla yhteydellä toisella laitteella yhtä hyvin. Ja siellä voi olla ihan hyviä vinkkejä muutoinkin fiksata niitä virheitä. Oman maun mukaan tietenkin kun on harrasteprojekti, mutta sinänsä ne eivät ole vain jotain teoreettisia juttuja vaan ihan käytännön UX:ään liittyviä.

Tuosta Chartistista ei ole kyllä kokemusta.
 
Liittynyt
01.01.2018
Viestejä
1 135
Tuli just mieleen tuo intersection observable api, kun olen aikaisemmin sitä käyttänyt ja näköjään tuo lozad.js käyttää sitä myös. Javascript mikä liikkuu verkon yli taisi olla jotain 20kB, niin ei sen ainakaan verkon nopeudesta pitäisi olla kiinni. SEO:sta puutui vaan manifest, ja se oli jo 80 pojoa.

Mulla on muistaakseni 200 child diviä (plus niillä lisää childeja kuten svg), gridin sisällä, joten periaatteessa voisin tehdä "infinite pagination" tai virtualisoinnin jos olen oikein ymmärtänyt. Näistä ei kumminkaan ole kokemusta joten en tiedä toimisiko ne tässä.
 
Liittynyt
17.10.2016
Viestejä
14 824
Mulla on muistaakseni 200 child diviä (plus niillä lisää childeja kuten svg), gridin sisällä, joten periaatteessa voisin tehdä "infinite pagination" tai virtualisoinnin jos olen oikein ymmärtänyt. Näistä ei kumminkaan ole kokemusta joten en tiedä toimisiko ne tässä.
Tai joskus ihan vaan "Load more..." -namiska ajaa asiansa ja näin UI ei itsekseen lataile mitään pyytämättä. Tuo on helppo toteuttaa ja tyypillisesti välität bäkkärille limit ja offset -parametrit, joilla se osaa palauttaa oikean verran oikeaa tavaraa frontille piirrettäväksi. Infinite-versiossa sitten tekee saman mutta ilman nappia, eli frontti tsekkaa vain että ollaan skrollattu oikeaan kohtaan, mikä triggeröi haun.
 
Liittynyt
01.01.2018
Viestejä
1 135
Nyt laitoin nuo svg piirrot chartistilla intersectionobserverin taakse ja total blocking time meni 2500ms -> 200ms. Lighthouse perffi on 90+.
 

emagdnim

dnimretsam
Tukijäsen
Liittynyt
21.10.2016
Viestejä
9 426
Tai joskus ihan vaan "Load more..." -namiska ajaa asiansa ja näin UI ei itsekseen lataile mitään pyytämättä. Tuo on helppo toteuttaa ja tyypillisesti välität bäkkärille limit ja offset -parametrit, joilla se osaa palauttaa oikean verran oikeaa tavaraa frontille piirrettäväksi. Infinite-versiossa sitten tekee saman mutta ilman nappia, eli frontti tsekkaa vain että ollaan skrollattu oikeaan kohtaan, mikä triggeröi haun.
"loputon sivutus" on kyl rasittava yleensä. Joskus sitä vain haluaa sivun alareunaan, mut sivu vain latailee lisää sisältöä kokoajan.. :D "load more" on paljon parempi. Toki riippuu mistä roikkuu, ainaha eri tekniikoita ja ominaisuuksia väärinkäytetään.
 
Liittynyt
20.03.2018
Viestejä
38
Hieman erikoisempi kysymys. Olen tehnyt yritykselle ,missä työskentelen toimivan android sovelluksen ChatGPT:llä. Ollut testikäytössä kuukauden ja toiminut ongelmitta. Saman tyyppinen ohjelma olisi maksanut 15 000 - 60 000€, joten tein itse sellaisen, karsituin ominaisuuksien kanssa tietenkin. Minkälaisen palkkion tälläisestä kehtaa pyytää? :darra:
 
Liittynyt
27.10.2017
Viestejä
1 858
Hieman erikoisempi kysymys. Olen tehnyt yritykselle ,missä työskentelen toimivan android sovelluksen ChatGPT:llä. Ollut testikäytössä kuukauden ja toiminut ongelmitta. Saman tyyppinen ohjelma olisi maksanut 15 000 - 60 000€, joten tein itse sellaisen, karsituin ominaisuuksien kanssa tietenkin. Minkälaisen palkkion tälläisestä kehtaa pyytää? :darra:
Onko teillä mitään keksintöihin yms. liittyvää linjausta? Jos on isompi firma niin yleensä sellainen löytyy ja sen mukaan voi saada erillisen palkkion.
 
Liittynyt
18.10.2016
Viestejä
272
Hieman erikoisempi kysymys. Olen tehnyt yritykselle ,missä työskentelen toimivan android sovelluksen ChatGPT:llä. Ollut testikäytössä kuukauden ja toiminut ongelmitta. Saman tyyppinen ohjelma olisi maksanut 15 000 - 60 000€, joten tein itse sellaisen, karsituin ominaisuuksien kanssa tietenkin. Minkälaisen palkkion tälläisestä kehtaa pyytää? :darra:
Teitkö sovelluksen työajalla vai työajan ulkopuolella? Jos ulkopuolella niin työtunnit x firman maksama tuntilaskutus konsulteille on aikalailla se mitä ainakin perustellusti voi pyytää
 
Liittynyt
16.11.2020
Viestejä
2 622
Kannattaa tosiaan ekana lukea työsoppari. Työajalla, työkoneella tai muita yrityksen resursseja käyttäen tehdystä sovelluksesta voi olla aika vaikeaa saada latiakaan ja työsopimuksessa voi olla jo ihan suoraan jotain tuohon liittyvää, niin kuin meillä esim. on.

Meillä oli vielä jotain vähän niinku vaikutukseltaan laajempiakin kirjauksia työsuhteen aikana tehtyyn softakehitykseen, vaikka ei tekis edes työajalla tai työkoneella, mutta en jaksa kaivaa sopparia ja kattoa, miten nuo meni..

muoks. joka tapauksessa ensimmäinen asia tuossa on minusta selvittää se, omistaako työnantaja jo lähtökohtaisesti tuon työsuhteen aikana kehitetyn softan ja siihen liittyvät oikeudet, jolloin siitä ei luonnollisestikaan makseta mitään, vai ei.
 
Viimeksi muokattu:
Liittynyt
20.03.2018
Viestejä
38
Onko teillä mitään keksintöihin yms. liittyvää linjausta? Jos on isompi firma niin yleensä sellainen löytyy ja sen mukaan voi saada erillisen palkkion.
Joo kyllä löytyy sellainen, mutta ei ole ennen tämän mittakaavan ideaa siinä ollut, lähinnä tarkoitettu todella pienille ideoille.

Teitkö sovelluksen työajalla vai työajan ulkopuolella? Jos ulkopuolella niin työtunnit x firman maksama tuntilaskutus konsulteille on aikalailla se mitä ainakin perustellusti voi pyytää
Olen tehnyt sovelluksen vapaa-ajalla. Kiitos vinkistä.
 
Liittynyt
03.07.2018
Viestejä
347
Nyt en osannut kysyä edes chatgpt:ltä oikeaa kysymystä joten laitetaan tähän;

Teen pientä php&mysql harrasteprojektia joka listaa dataa tietokannasta. Kun data on haettu se palautuu jsonina, ts. mysql kaikki palautetut rivit muutetaan arrayksi joka sisältää objekteja joka sarakkeesta.

Osa riveistä sisältää one-to-many suhteen. Eli aiheet. Tämä tieto pitäisi saada tuohon jsoniin sub-arrayna jotta se palautuisi järkevästi myös json-muodossa, vähintäänkin jokaisen valitun aiheen id.

Vakionahan mysql laittaa left joinista vain saman päärivin useamman kerran ja
GROUP_CONCAT(t.id ORDER BY t.sort_order ASC, t.id ASC SEPARATOR ',') AS topic_ids,
onnistuin sentään saamaan pilkulla erotetun listan..
 

debuggeri

Tukijäsen
Liittynyt
17.10.2016
Viestejä
541
Eikö tuo ollut jo ihan hyvin muotoiltu kysymys?
Ehkä chatgpt osaisi antaa paremman vastauksen jos annat sille halutun esimerkki jsonin?

Chatgpt:
Hyvä että olet jo onnistunut saamaan aiheiden id:t pilkulla eroteltuna käyttämällä GROUP_CONCAT-funktiota. Mutta kuten sanoit, jos haluat palauttaa ne JSON-formaatissa sub-arrayna, sinun täytyy käsitellä tätä PHP:ssa. Tässä on esimerkki siitä, miten voit tehdä sen:

<?php
// Oletetaan, että olet suorittanut SQL-kyselyn ja saanut tuloksen $result

$rows = array();

while ($row = mysqli_fetch_assoc($result)) {
// Erottele topic_ids pilkulla ja muunna ne taulukoksi
$row['topic_ids'] = explode(',', $row['topic_ids']);
$rows[] = $row;
}

// Muunna taulukko JSON-muotoon
$json = json_encode($rows);

echo $json;
?>
Tässä esimerkissä explode-funktio muuntaa pilkulla erotetun merkkijonon taulukoksi. Sitten tämä taulukko lisätään alkuperäiseen tietoriviin, ja lopuksi kaikki rivit muunnetaan JSON-muotoon.

Tämä on yksinkertainen esimerkki, joka saattaa toimia sinun tapauksessasi. Jos sinulla on monimutkaisempi skenaario, saatat joutua soveltamaan tätä esimerkkiä eri tavoin.

Muista myös, että voit käyttää MySQL:n JSON-objekteja ja -funktioita, jos käytät MySQL 5.7.8 tai uudempaa versiota. Tämä voi mahdollistaa monimutkaisemman datan käsittelyn suoraan SQL-kyselyssäsi.
 
Liittynyt
03.07.2018
Viestejä
347
Eikö tuo ollut jo ihan hyvin muotoiltu kysymys?
...
Kiitos

Hullulla googlettamisella löytyi ehkä paras ratkaisu..
Koodi:
SELECT
      a.*,
      IFNULL(CONCAT('[',GROUP_CONCAT(topic_id),']'),'[]') as topic_ids
      ..tekee hienon stringin
      ja 
json_decode($r['topic_ids'], true);
tekee siitä arrayn eikä vain arrayta muistuttavan stringin
 

debuggeri

Tukijäsen
Liittynyt
17.10.2016
Viestejä
541
Chatgpt aproves:
Kyllä, tuo on erinomainen tapa tehdä se. GROUP_CONCAT-funktiolla luot ensin JSON-formaatin mukaisen merkkijonon ja käytät sitten PHP:n json_decode-funktiota muuntaaksesi merkkijonon takaisin PHP-taulukoksi. Tässä on esimerkki siitä, miten voit tehdä sen:


<?php
// Oletetaan, että olet suorittanut SQL-kyselyn ja saanut tuloksen $result

$rows = array();

while ($row = mysqli_fetch_assoc($result)) {
// Muunna topic_ids JSON-merkkijonosta taulukoksi
$row['topic_ids'] = json_decode($row['topic_ids'], true);
$rows[] = $row;
}

// Muunna taulukko JSON-muotoon
$json = json_encode($rows);

echo $json;
?>


Kuten mainitsit, tässä esimerkissä MySQL-kysely muodostaa JSON-tyyppisen merkkijonon ja PHP sitten muuntaa sen taulukoksi. Tämä on erittäin joustava tapa hallita JSON-dataa, koska voit käsitellä sitä sekä MySQL:ssä että PHP:ssä.

Muista, että json_decode palauttaa arvon NULL, jos annettu merkkijono ei ole validi JSON. Jos sinulla on ongelmia tämän kanssa, kannattaa varmistaa, että merkkijonosi on todella JSON-formaatissa.

kysyin miksi ei heti ehdottanut tuota:
Pahoittelut, että en maininnut tätä menetelmää ensimmäisessä vastauksessani. Alkuperäisen kysymyksen ja esittämäsi tiedot pohjalta lähdin ehdottamaan yleisempää tapaa, jolla tällainen ongelma voitaisiin ratkaista.

Olet aivan oikeassa, että MySQL:n CONCAT- ja GROUP_CONCAT -funktioiden yhdistelmä ja PHP:n json_decode -funktio ovat tehokas tapa muuntaa pilkulla erotettu merkkijono suoraan JSON-muodossa olevaksi taulukoksi. Tämä on erittäin hyvä ratkaisu ja se toimii erinomaisesti monissa tilanteissa.

Tulevaisuudessa pyrin tarjoamaan laajemman valikoiman vaihtoehtoja heti ensimmäisessä vastauksessani. Kiitos palautteestasi!

Sori tämä chatgpt ripulointi, innostuin vain koittamaan kun mainitsit yrittäneesi…
 
Liittynyt
03.07.2018
Viestejä
347
Varmaan en osannut itsekään kysyä tuota aluksi oikein.. muistelin vaan että jos ei olisi mysql vaan postgresql niin siinä voisi olla yksi sarake suoraan jsonia ja postgre osaisi käsitellä sitä paremmin.
Mutta siinäkin oli jotain toimimattomuuksia joten nyt mielummin mysqlillä
 
Liittynyt
19.10.2016
Viestejä
3 460
Varmaan en osannut itsekään kysyä tuota aluksi oikein.. muistelin vaan että jos ei olisi mysql vaan postgresql niin siinä voisi olla yksi sarake suoraan jsonia ja postgre osaisi käsitellä sitä paremmin.
Mutta siinäkin oli jotain toimimattomuuksia joten nyt mielummin mysqlillä
Postgressin jsonb-kentät on muuten sikäli hauskoja, että ne tukee indeksejä suhteellisen nätisti.

 
Liittynyt
01.01.2018
Viestejä
1 135
Onko nuo openid:n mukaiset id:t aina stabiileja per oauth tarjoaja omalla sivullani? En halua tietokantaani mitään muuta kuin tuon id:n niin en tallenna sähköpostia tai edes nimeä esim. Discordista.

Aiheuttaako tuo anonyymiys vaatimus muita ongelmia? Vai onko ne vain pieniä ongelmia, kuten käyttäjä ei voi nähdä millä nimellä on kirjautunut sivun puolella.

Sitten vielä noista magic linkeistä, että tarviiko niissä tallentaa sähköpostia tietokantaan? En kyllä keksi miten ne tunnistavat jo rekisteröityneen käyttäjän ilman että sähköpostia tallennetaan.
 
Liittynyt
19.10.2016
Viestejä
3 460
Onko nuo openid:n mukaiset id:t aina stabiileja per oauth tarjoaja omalla sivullani? En halua tietokantaani mitään muuta kuin tuon id:n niin en tallenna sähköpostia tai edes nimeä esim. Discordista.

Aiheuttaako tuo anonyymiys vaatimus muita ongelmia? Vai onko ne vain pieniä ongelmia, kuten käyttäjä ei voi nähdä millä nimellä on kirjautunut sivun puolella.

Sitten vielä noista magic linkeistä, että tarviiko niissä tallentaa sähköpostia tietokantaan? En kyllä keksi miten ne tunnistavat jo rekisteröityneen käyttäjän ilman että sähköpostia tallennetaan.
En ole aivan varma, mitä haet, mutta oletettavasti saisit openid:ltä sen käyttäjänimen (ja emailin), jota voisit käyttää ui:ssa ilman sen tallentamistakin?

Mailin taas voisit varmaan tallentaa hashinakin, ja lähettää magic linkin käyttäjän antamaan osoitteeseen, jos hash mätsää?

E. ja toi sub on stabiili
"sub REQUIRED. Subject Identifier. A locally unique and never reassigned identifier within the Issuer for the End-User, which is intended to be consumed by the Client "
 
Liittynyt
01.01.2018
Viestejä
1 135
En ole aivan varma, mitä haet, mutta oletettavasti saisit openid:ltä sen käyttäjänimen (ja emailin), jota voisit käyttää ui:ssa ilman sen tallentamistakin?

Mailin taas voisit varmaan tallentaa hashinakin, ja lähettää magic linkin käyttäjän antamaan osoitteeseen, jos hash mätsää?

E. ja toi sub on stabiili
"sub REQUIRED. Subject Identifier. A locally unique and never reassigned identifier within the Issuer for the End-User, which is intended to be consumed by the Client "
Periaatteessa voisin kai tallentaa localstorageen käyttäjän nimen, mutta se vaatisi auth.js:n muokkaamista todennäköisesti. Emailia en pyydä scopessa, koska en tarvitse sitä ja anonyymiys kärsii. Mietin tuota magic linkin hashaamista, mutta täytyy katsoa miten sen saisi toimimaan auth.js:n kanssa.

Onko noissa nodemailereissa mitään rajoituksia lähetysten määrästä tai meneekö ne helposti roskapostiin?

Sub tulee näköjään kun scope=openid, eli stabiiliuiden suhteen ei taida sitten olla ongelmia.
 
Liittynyt
19.10.2016
Viestejä
3 460
Onko noissa nodemailereissa mitään rajoituksia lähetysten määrästä tai meneekö ne helposti roskapostiin?
Nodemailerissa ei itsessään rajoituksia. Lähettävän palvelun omasta luotettavuudesta (ja mahdollisista rajoituksista, mutta tuskin ihan määrättömästi lähettelet..?) kiinni. Toki lähetettävä viesti kannattaa tsekata.

Esim. Newsletters spam test by mail-tester.com antaa aika kattavaa palautetta. Huomioitavaa on, että ilmaisia kokeiluja (jollakin ajanjaksolla jota en nyt muista) on rajoitetusti. (e. ei tarvitse olla newsletter)
 
Liittynyt
01.01.2018
Viestejä
1 135
1. Onko kellään mitään hyvää linkkiä/linkkejä miten tyylitellään css "hienosti"? Semmoisia "yleisiä sääntöjä" fonttien, white spacen, sijoittelun suhteen yms..

2. Voiko lokaalisti pyörittää ubuntu serveriä jolle kasaisi ansiblet, jotta saa vps:n nopeasti pystyyn ja appit deployattua? Voihan tuota tehdä live vps:lläkin, mutta ainakin joissain on rajoituksia uudelleen formatoinnin suhteen.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 033
1. Onko kellään mitään hyvää linkkiä/linkkejä miten tyylitellään css "hienosti"? Semmoisia "yleisiä sääntöjä" fonttien, white spacen, sijoittelun suhteen yms..
Esim. material designista voi hakea inspiraatiota. Yleisiä ohjeita on tietenkin mahdollisimman luettava fontti ja yhdenmukainen whitespace koko sivulla (käytetään kertoimia, esim. 8 px/16px/24px tai vastaavia em/rem tarpeen mukaan). Sijoittelu on haastavempaa, koska se vaatii käyttötapauksen mukaista suunnittelua ja sellaista yleistä sääntöä on vaikeampi löytää.

Material design: Material Design
2. Voiko lokaalisti pyörittää ubuntu serveriä jolle kasaisi ansiblet, jotta saa vps:n nopeasti pystyyn ja appit deployattua? Voihan tuota tehdä live vps:lläkin, mutta ainakin joissain on rajoituksia uudelleen formatoinnin suhteen.
Mikä tarkoitat lokaalilla? Sisäverkossa olevaa konetta vai esim. virtuaalikonetta?
 
Liittynyt
01.01.2018
Viestejä
1 135
Esim. material designista voi hakea inspiraatiota. Yleisiä ohjeita on tietenkin mahdollisimman luettava fontti ja yhdenmukainen whitespace koko sivulla (käytetään kertoimia, esim. 8 px/16px/24px tai vastaavia em/rem tarpeen mukaan). Sijoittelu on haastavempaa, koska se vaatii käyttötapauksen mukaista suunnittelua ja sellaista yleistä sääntöä on vaikeampi löytää.

Material design: Material Design

Mikä tarkoitat lokaalilla? Sisäverkossa olevaa konetta vai esim. virtuaalikonetta?
Virtuaalikonetta.
 
Liittynyt
17.10.2016
Viestejä
14 824
Voiko lokaalisti pyörittää ubuntu serveriä jolle kasaisi ansiblet, jotta saa vps:n nopeasti pystyyn ja appit deployattua? Voihan tuota tehdä live vps:lläkin, mutta ainakin joissain on rajoituksia uudelleen formatoinnin suhteen.
Kyllä VM (esim. VirtualBox) on tuohon oikein hyvä väline. Eli voit pyörittää lokaalia virtuaalikonetta ja asentaa sen Ansiblella kuntoon. VM pystyyn ja sitten pitää joku port forward tehdä, jotta voit ottaa siihen yhteyden. Käytännössä pitää laittaa NAT päälle Virtual Boxin asetuksista ja luoda port forward, jolloin määrittelet sun oman koneen portin - esim. 2222 - johon menevä liikenne forwardoidaan sen VM:n porttiin 22 (SSH). Kun tuo on tehty ja kunhan siinä VM:ssä on SSH-serveri päällä, voit ottaa siihen yhteyden osoitteeseen 127.0.0.1:2222 tai localhost:2222.

Sitten kun tuo SSH-linkki toimii, voit alkaa räpeltää Ansiblen kanssa. Googlella löydät tarkat ohjeet tuolle.

VM vastaa tuossa täysin 1:1 sitä VPS:ää joten siinä mielessä tuo on hyvä tapa testata se Ansible playbook kuntoon.
 
Liittynyt
01.01.2018
Viestejä
1 135
Ei siihen ole mitään estettä, mutta vaatii tietty säätämistä.

Onko joku tietty syy miksi esim. Docker (tai jopa K8s ja haluaa tosissaan säätää) ei olisi vaihtoehto?
Ajattelin laittaa ansiblen kautta nuo perus linux säädöt mitä vpslle tehdään turvallisuuden suhteen. Itse appit pyörii dockerilla. Lähinnä idea on se että saan hyvän ansiblen joka asentaa kaiken hyvin että voin laittaa vaikka koko vpsn uudestaan alusta alkaen pyörimään jos tulee uutta palvelinta yms.
 

dome

Tukijäsen
Liittynyt
17.10.2016
Viestejä
587
Ajattelin laittaa ansiblen kautta nuo perus linux säädöt mitä vpslle tehdään turvallisuuden suhteen. Itse appit pyörii dockerilla. Lähinnä idea on se että saan hyvän ansiblen joka asentaa kaiken hyvin että voin laittaa vaikka koko vpsn uudestaan alusta alkaen pyörimään jos tulee uutta palvelinta yms.
Vagrant ja virtualbox on ihan hyvä combo moiseen testailuun ansiblen kanssa. VM:n luonti ja ansible playbookin ajo onnistuu yhdellä vagrant konffilla jolloin luonti/tuhoaminen tapahtuu yhdellä komennolla ja helpottaa huomattavasti ns. alusta aloittamisessa.

 
Liittynyt
21.11.2017
Viestejä
301
Ei nyt varsinaisesti ohjelmointiongelma, mutta sinnepäin.

sed ei ole eirtyisen tuttu, enkä millään keski miten saisi tämän toimimaan:
Koodi:
sed -E "s/.*\((.*)\,.*(\d{4})\)/\1 (\2)/" <<< "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. (Kissakala seikkailee jälleen, Foobar 2023)"
Lopputuloksen pitäisi olla: "Kissakala seikkailee jälleen (2023)", mutta tuo ulostaa alkuperäisen inputin sellaisenaan. Jokuhan tossa kusee, mutta en millään oo keksinyt mikä tossa mättää.
 
Toggle Sidebar

Statistiikka

Viestiketjut
241 440
Viestejä
4 218 595
Jäsenet
71 044
Uusin jäsen
migosz

Hinta.fi

Ylös Bottom