Pieniä kysymyksiä ohjelmoinnista

ORM on tuohon hyvä. Esimerkiksi Pythonissa SQLAlchemy. Siinä siis määritellään skeema, joka mäppäytyy tietokantaan. Mutta siinä voi määritellä myös relaatioita, esimerkiksi Kirja-taulussa voi olla relaatio Henkilö-tauluun jolloin relaatio sisältää kaikki henkilöt, jotka linkittyvät kyseiseen kirjaan. Tuo on m:n -yhteys, koska kirjalla voi olla useita kirjoittajia / kirjoittajalla voi olla useita kirjoja.

Sitten kun tuollaisen taulun sisällön dumppaa vaikka JSON:ksi, niin siellä on kiltisti kentän sisällä lista. JavaScriptille näyttää löytyvän useampia vaihtoehtoja, Sequelize, Prisma ym.
 
Jos haluaa tehdä fullstackia Reactilla, niin Next.js vai Remix? Onko kenelläkään kokemuksia molemmista? Onko jälkimmäinen tarpeeksi kypsä?
 
No siis en minä noita tarvitse jos teen Reactilla pelkän frontin, kuten olen tähän asti tehnyt. Nyt olisi ehkä toinen, pienempi projekti tiedossa, jossa minusta bäkkärin tekeminen jollain erillisillä ympäristöllä tuntuisi aika overkilliltä.

Eli siis bäkkäriin tarvitaan mm. autentikaatio ja tietokannan käsittely ja mahdollisesti muutama ulkoinen API-kutsu.
 
No siis en minä noita tarvitse jos teen Reactilla pelkän frontin, kuten olen tähän asti tehnyt. Nyt olisi ehkä toinen, pienempi projekti tiedossa, jossa minusta bäkkärin tekeminen jollain erillisillä ympäristöllä tuntuisi aika overkilliltä.

Eli siis bäkkäriin tarvitaan mm. autentikaatio ja tietokannan käsittely ja mahdollisesti muutama ulkoinen API-kutsu.
Ok. Ehkä minulta on mennyt ohi kun elin siinä luulossa että nämä eivät tee mitään muuta kuin fronttia (olen itse töissä tehnyt pari projektia Nextillä ja siinä se on kyllä ihan puhtaasti fronttina ollut).
 
Okei, ehkä sitten olen ymmärtänyt jotain väärin. On siis mahdollista tehdä Next:llä tuollainen appis, mutta ilmeisesti yleensä tuohon sekaan tungetaan Expressiä tai vastaavaa.

Mikä olisi nopein tapa tehdä simppeli appi (kourallinen näkymiä, muutamia ylläpitotoimintoja), jossa React on fronttina ja vaatimuksena LDAP ja SQL-tietokantaan pääsy? Tuo Prisma vaikuttaa hyvältä ratkaisulta tietokantaan yhteyden ottamiseksi, ja kun Nextistä löytyy routing, niin mitä tarkalleen joku Express tähän tuo?
 
Okei, ehkä sitten olen ymmärtänyt jotain väärin. On siis mahdollista tehdä Next:llä tuollainen appis, mutta ilmeisesti yleensä tuohon sekaan tungetaan Expressiä tai vastaavaa.

Mikä olisi nopein tapa tehdä simppeli appi (kourallinen näkymiä, muutamia ylläpitotoimintoja), jossa React on fronttina ja vaatimuksena LDAP ja SQL-tietokantaan pääsy? Tuo Prisma vaikuttaa hyvältä ratkaisulta tietokantaan yhteyden ottamiseksi, ja kun Nextistä löytyy routing, niin mitä tarkalleen joku Express tähän tuo?
Minun käsitykseni on että nextjs on vain serverless framework eli tietokannat pitää olla muualla. Eli joko prisma+supabase tai joku muu pilvitietokanta. Expressin kun laittaa nextjs kylkeen niin voi tietty itse hostata tietokannan.

Prisma toimii serverlessissä kai hieman hitaammin kuin noi query builderit kuten kysely.dev, on myös mahdollisuus näiden pilvitietokantojen kanssa. Expresillä tätä serverless hidastumista ei ole prisman kanssa.
 
Tässä sekoittuu nyt kaksi asiaa: backend ja frontend. Next kun voi renderöidä serverillä, ei varsinaisesti tarvitse erillistä backendiä vaan se voi toimia monoliittina. Sen vahvimpia puolia on kuitenkin että se voi toimia hybridinä joka renderöi fronttipalvelimella saitin nopeasti ja samalla osaa hakea dataa joustavasti serverikutsuilla taustapalvelimilta. Next ei kuitenkaan itse sitä tietokanta- ja autentikaatiopuolta hoida.

En tiedä onko tuohon mitään helppa hopealuotia, kun ldap autentikaatio ei ole ihan yleisimpiä use caseja esim. blogaajille. Ehkä joku Gatsby starter löytyisi suht valmiina tmv.
 
Next.js ei ole tuttu, mutta tämä "Api routes" kuulostaa siltä että sillä voi toteuttaa backendiin frontin tarvitsemat api-endpointit:

Eli jos tuo täyttää omat vaatimukset niin ei ole tarvetta Expressille tai muulle erilliselle http-serverille.
 
En tiedä kuuluuko tännä, mutta olettaisin täälä olevan asiasta tietäviä. Eli voinko lähettää Nodemcu 3V kortilta dataa (tx) sarjaportissa 5V arduino megalle (rx) suoraan vai pitäisikö välissä tehdä jotenkin jännitteen nosto?
 
En tiedä kuuluuko tännä, mutta olettaisin täälä olevan asiasta tietäviä. Eli voinko lähettää Nodemcu 3V kortilta dataa (tx) sarjaportissa 5V arduino megalle (rx) suoraan vai pitäisikö välissä tehdä jotenkin jännitteen nosto?
Kysymys varmaan soveltuisi paremmin elektroniikka-alueelle.

Voit lähettää suoraan, 5V sarjaportit toimivat kyllä 3.3V sarjaportin signaalitasoilla. Toiseen suuntaan sitten pitääkin tehdä jännitteenmuunnos koska 3V sarjaportit eivät yleensä tykkää 5V signaalitasosta mutta tuo muunnos on sentään helppo tehdä parilla vastuksella.
 
Nodemcu lähettää tämän sarjaportissa, alempi koodi Arduino mega vastaan ottaa toisen sarjan RX0 portissa ja toisen RX1 portissa, miksi saan sarjamonitorissa testi1=4 ja testi2=4 ja väillä taas kumpikin on 7?


C++:
#include <EasyTransfer.h>
EasyTransfer ET1, ET2;

float testi1;
float testi2;

struct SEND_DATA_STRUCTURE1{
float testi1;
};
SEND_DATA_STRUCTURE1 mydata1;

struct SEND_DATA_STRUCTURE2{
float testi2;
};
SEND_DATA_STRUCTURE2 mydata2;

void setup(){
  Serial.begin(9600);

ET1.begin(details(mydata1), &Serial);
ET2.begin(details(mydata2), &Serial);

  testi1 = 4;
  testi2 = 7;
}

void loop(){

  mydata1.testi1 = testi1;
  mydata2.testi2 = testi2;

  ET1.sendData();
   delay(100);
  ET2.sendData();
   delay(100);
}

C++:
#include <EasyTransfer.h>
EasyTransfer ET1, ET2;

float testi1;
float testi2;

struct RECEIVE_DATA_STRUCTURE1{
float testi1;
};

RECEIVE_DATA_STRUCTURE1 mydata1;

struct RECEIVE_DATA_STRUCTURE2{
float testi2;
};

RECEIVE_DATA_STRUCTURE2 mydata2;

void setup(){
  Serial.begin(9600);
  Serial1.begin(9600);

  ET1.begin(details(mydata1), &Serial);
  ET2.begin(details(mydata2), &Serial1);
  }
void loop(){

   if(ET1.receiveData())
 {
    Serial.print("testi1: ");
    Serial.println(mydata1.testi1); 
 delay(250);
 }

 if(ET2.receiveData())
 {
    Serial.print("testi2: ");
    Serial.println(mydata2.testi2); 
 }

    delay(200);
}
}
 
Viimeksi muokattu:
Nodemcu lähettää tämän sarjaportissa, alempi koodi Arduino mega vastaan ottaa toisen sarjan RX0 portissa ja toisen RX1 portissa, miksi saan sarjamonitorissa testi1=4 ja testi2=4 ja väillä taas kumpikin on 7?


C++:
#include <EasyTransfer.h>
EasyTransfer ET1, ET2;

float testi1;
float testi2;

struct SEND_DATA_STRUCTURE1{
float testi1;
};
SEND_DATA_STRUCTURE1 mydata1;

struct SEND_DATA_STRUCTURE2{
float testi2;
};
SEND_DATA_STRUCTURE2 mydata2;

void setup(){
  Serial.begin(9600);

ET1.begin(details(mydata1), &Serial);
ET2.begin(details(mydata2), &Serial);

  testi1 = 4;
  testi2 = 7;
}

void loop(){

  mydata1.testi1 = testi1;
  mydata2.testi2 = testi2;

  ET1.sendData();
   delay(100);
  ET2.sendData();
   delay(100);
}

C++:
#include <EasyTransfer.h>
EasyTransfer ET1, ET2;

float testi1;
float testi2;

struct RECEIVE_DATA_STRUCTURE1{
float testi1;
};

RECEIVE_DATA_STRUCTURE1 mydata1;

struct RECEIVE_DATA_STRUCTURE2{
float testi2;
};

RECEIVE_DATA_STRUCTURE2 mydata2;

void setup(){
  Serial.begin(9600);
  Serial1.begin(9600);

  ET1.begin(details(mydata1), &Serial);
  ET2.begin(details(mydata2), &Serial1);
  }
void loop(){

   if(ET1.receiveData())
{
    Serial.print("testi1: ");
    Serial.println(mydata1.testi1);
delay(250);
}

if(ET2.receiveData())
{
    Serial.print("testi2: ");
    Serial.println(mydata2.testi2);
}

    delay(200);
}
}

Tuossa ylemmässä molemmissa on sama sarjaportti, onko tarkoituksella ?
Easytransfer ei ole tuttu mutta jos ensimmäinen lähettää samalla portilla 2 eri arvoa ja vastaanottaja lukee eri porteista niin ei kuulosta ihan oikealta.
Normaali sarjaporttihan on 1-1 eli myös lähettävässä pitäisi olla 2 porttia. No joo, saman lähetyksen voi kyllä laittaa kahdelle vastaanottajalle kunhan kytkee vain tx -> 2x rx mutta en kyllä näe siinä mitään hyötyä.
 
Tuossa ylemmässä molemmissa on sama sarjaportti, onko tarkoituksella ?
Easytransfer ei ole tuttu mutta jos ensimmäinen lähettää samalla portilla 2 eri arvoa ja vastaanottaja lukee eri porteista niin ei kuulosta ihan oikealta.
Normaali sarjaporttihan on 1-1 eli myös lähettävässä pitäisi olla 2 porttia. No joo, saman lähetyksen voi kyllä laittaa kahdelle vastaanottajalle kunhan kytkee vain tx -> 2x rx mutta en kyllä näe siinä mitään hyötyä.
Nodemcu:ssa on vain yksi sarjaportti, tuo on vain testailu toista koodia varten, mutta ihmettelin vain miksi kumpikin muuttuja saa saman arvon.
 
Voi olla sitten, että ei voikkkaan toimia noin, oletin että megan RX0 portissa otetaan vastaan vain paketti mydata1 ja muuttujan testi1 arvo, RX1 portissa taas paketti mydata2 ja muuttujan testi2 arvo.
 
Voi olla sitten, että ei voikkkaan toimia noin, oletin että megan RX0 portissa otetaan vastaan vain paketti mydata1 ja muuttujan testi1 arvo, RX1 portissa taas paketti mydata2 ja muuttujan testi2 arvo.
Siellä sarjaportissa kulkee tuossa esimerkissäsi vain nuo numerot 4 ja 7 eli siinä ei kulje mitään tietoa mukana mikä muuttuja se on, sen takia nuo tulevat sikinsokinsekaisin.
 
Siellä sarjaportissa kulkee tuossa esimerkissäsi vain nuo numerot 4 ja 7 eli siinä ei kulje mitään tietoa mukana mikä muuttuja se on, sen takia nuo tulevat sikinsokinsekaisin.
Mutta kuitenkin muuttujien nimet täytyy olla kummassakin täysin samat tuosa Easytensferissa, jos toisessa on esim. test1, test2 ja test3 ja toisessa vain test1 ja test2 niin mitään ei mene perille. Käytössä myös sääasema, jossa lähetän lämpötiloja yli 10kpl ja oikeat lämpötilat menevät oikeille muuttujille.
 
Mutta kuitenkin muuttujien nimet täytyy olla kummassakin täysin samat tuosa Easytensferissa, jos toisessa on esim. test1, test2 ja test3 ja toisessa vain test1 ja test2 niin mitään ei mene perille. Käytössä myös sääasema, jossa lähetän lämpötiloja yli 10kpl ja oikeat lämpötilat menevät oikeille muuttujille.
Kävin kurkkaamassa tuota EasyTransferin koodia enkä nähnyt siinä kyllä missään mitään mikä identifioisi tuon datan. Eli tuon pitäisi toimia ihan hyvin jos toisessa päässä on test1 ja test2, vastaavasti toisessa päässä testikukko ja testikana. Tuo siis lähettää vaan tuon structin koon ja sisällön binäärisenä sarjaporttia pitkin, laskee sille tarkistussumman ja lähettää tarkistussumman että toisessa päässä voi tarkistaa menikö paketti ehjänä perille.
 
Kävin kurkkaamassa tuota EasyTransferin koodia enkä nähnyt siinä kyllä missään mitään mikä identifioisi tuon datan. Eli tuon pitäisi toimia ihan hyvin jos toisessa päässä on test1 ja test2, vastaavasti toisessa päässä testikukko ja testikana. Tuo siis lähettää vaan tuon structin koon ja sisällön binäärisenä sarjaporttia pitkin, laskee sille tarkistussumman ja lähettää tarkistussumman että toisessa päässä voi tarkistaa menikö paketti ehjänä perille.
Tuon kanssa olen paljon tehnyt kaikenlaista ja käynyt useasti niin, että jäänyt yksi muuttuja pois toisesta päästä tai jossain yhden merkin virhe niin ei toimi, esimerkki koodissa lukee myös "put your variable definitions here for the data you want to receive, THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO"

Toimii myös niin että yksi arduino lähettää kaksi eri pakettia samassa sarjapotissa, eli johdotettu TX -> RX ->RX ja osaavat mennä oikeaan arduinoon, siksi ihmettelinkin miksi ei toiminut Megassa kun lähetti sen kahteen eri sarjoporttiin.
 
Python, Numpy, miten tämän saisi helpoimmin? Tämä on pienennetty esimerkki jotta mahtuu ruudulle mukavasti. Oikeassa on suuremmat arrayt ..

Pitäisi määritellä funktio, joka ottaa arrayn, "rullaa" keskimmäistä saraketta ja palauttaa koko arrayn jossa on tuo rullaus tehty.

Miten tuon saisi jotenkin helposti tehtyä, kun ei nyt oikein keksi .. Tuo 3x5 olisi vaikka se input array ja alemmassa on sen keskisarakkeen rullaus ..

Pitäisi saada ulos 1,2,13,4,5,6,7,3,9,10,11,12,8,14,15 array ..

Koodi:
>>> import numpy as np

>>> np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]).reshape(3,5)
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15]])

>>> np.roll([3,8,13],1).reshape(3,1)
array([[13],
       [ 3],
       [ 8]])
 
Python, Numpy, miten tämän saisi helpoimmin? Tämä on pienennetty esimerkki jotta mahtuu ruudulle mukavasti. Oikeassa on suuremmat arrayt ..

Pitäisi määritellä funktio, joka ottaa arrayn, "rullaa" keskimmäistä saraketta ja palauttaa koko arrayn jossa on tuo rullaus tehty.

Miten tuon saisi jotenkin helposti tehtyä, kun ei nyt oikein keksi .. Tuo 3x5 olisi vaikka se input array ja alemmassa on sen keskisarakkeen rullaus ..

Pitäisi saada ulos 1,2,13,4,5,6,7,3,9,10,11,12,8,14,15 array ..

Koodi:
>>> import numpy as np

>>> np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]).reshape(3,5)
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15]])

>>> np.roll([3,8,13],1).reshape(3,1)
array([[13],
       [ 3],
       [ 8]])

Sun pitää operoida sillä rollilla vain keskisaraketta ja sijoittaa se takaisin sinne. Esim. näin:
Python:
import numpy as np

>>> arr = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]).reshape(3,5)
>>> arr
array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15]])

>>> arr[:,2] = np.roll(arr[:,2], 1)
>>> arr
array([[ 1,  2,  8,  4,  5],
       [ 6,  7, 13,  9, 10],
       [11, 12,  3, 14, 15]])

Ja voit tietty sitten reshapella tai flattenilla tms. muokata haluamaasi muotoon, esim. 1D:ksi:
Python:
>>> arr.flatten()
array([ 1,  2,  8,  4,  5,  6,  7, 13,  9, 10, 11, 12,  3, 14, 15])
 
>>> arr[:,2] = np.roll(arr[:,2], 1)

Kiitos juuri tuota ihmettelin, että miten se rullataan jotenkin paikallaan. Ajattelin että mun pitäisi jotenkin slice-asioilla purkaa koko juttu paloiksi ja koota uudelleen ja oli jotenkin ajatus, että tämän voi tehdä kyllä varmaan helpomminkin ..
 
Oma osaaminen jämähti asp.net ja MVC-tasolle. Nyt tarkoitus päivittää osaamista Reactiin, NET7:aan ja vastaaviin. Kehitysvälineinä Microsoftin tuotteet ja kielenä C#. Onko vinkkejä sivustoista joissa käytäisiin viimeisimpiä selainpohjaisia sovelluskehitystekniikoita havainnollisesti läpi ja sisältäisi ehkä jopa harjoitustehtäviä/esimerkkejä. Tiedän että googlella löytyy - mutta löytyy paljon myös sekavia ja huonoja sivustoja.
 
Oma osaaminen jämähti asp.net ja MVC-tasolle. Nyt tarkoitus päivittää osaamista Reactiin, NET7:aan ja vastaaviin. Kehitysvälineinä Microsoftin tuotteet ja kielenä C#. Onko vinkkejä sivustoista joissa käytäisiin viimeisimpiä selainpohjaisia sovelluskehitystekniikoita havainnollisesti läpi ja sisältäisi ehkä jopa harjoitustehtäviä/esimerkkejä. Tiedän että googlella löytyy - mutta löytyy paljon myös sekavia ja huonoja sivustoja.
Tästä voi vaikka aloitella: Full stack open
 
Aloittelijan kysymys c#. Kuinka saisin nuo numerot tuohon ”arvosana” sarakkeen alle niinkuin nimetkin on.
 

Liitteet

  • IMG_3682.jpeg
    IMG_3682.jpeg
    301,4 KB · Luettu: 205
Aloittelijan kysymys c#. Kuinka saisin nuo numerot tuohon ”arvosana” sarakkeen alle nimien viereen?

Console.WriteLine("{0} {1}", oppilas[ i ], arvosana[ i ]);

tai

Console.WriteLine(oppilas[ i ]+ " " + arvosana[ i ]);

Parempi kyllä käyttää \t kuin välimerkkejä.
 
Ja yhteistähän ylläolevilla on että luodaan yksi merkkijono joka annetaan ensimmäisenä parameteinä WriteLine metodille, koska se ei ymmärrä useampaa merkkijonoa parametrina.
 
Aloittelijan kysymys c#. Kuinka saisin nuo numerot tuohon ”arvosana” sarakkeen alle niinkuin nimetkin on.
Kantsii sensuroida kuvasta oma nimi ja koulu pois. Muutenki kätsympää, jos ihan tekstinä (code-tageissa) kuvan sijasta ilmaisee ongelman. Lisäksi tulevaisuuden varalle; täällä ei ruukata koulutehtävissä antaa valmiita vastauksia, mut toki autetaan. Sullakin oli vain syntaksi-ongelma nii pikku tönäisy riitti.
 
Kantsii sensuroida kuvasta oma nimi ja koulu pois. Muutenki kätsympää, jos ihan tekstinä (code-tageissa) kuvan sijasta ilmaisee ongelman. Lisäksi tulevaisuuden varalle; täällä ei ruukata koulutehtävissä antaa valmiita vastauksia, mut toki autetaan. Sullakin oli vain syntaksi-ongelma nii pikku tönäisy riitti.
Juu hyvä pointti. Tosiaan tuota syntaksia vain hain.
 
Viimeksi muokattu:
Miten te olette deplannu webbi apit?

Tein deploy.yml github actionin joka rakentaa dockerfilesta imagen ja työntää sen docker hubbiin. Itse vpsllä on ajettu docker compose joka lataa tuon imagen, lisää envit ja tietokannan. Watchtower seuraa tuota imagea.

Onko tämä ihan hyvä tapa deplata? Onko tuo actionien free tier kovin iso ja onko docker hubissa mitää rajoituksia kaistan suhteen?
 
SQL kyssäri. En osaa muotoilla tätä että saisin StackOverflow:sta vastauksen.
Esimerkiksi asiakastietokanta. Se kytketään toiseen tauluun useisiin rooleihin. Miten saan tehtyä kyselyn, jossa näen asiakkaat jotka ovat kytketty johonkin rooliin? Esimerkki:

Asiakastietokanta
AsiakasID Nimi
1Pentti
2Jorma
3Mikael
4Jonna

Tilaukset
TilausTilaajaID MaksajaID
X11
Y12
C31


Tarvitsisin siis kyselyn, jonka tuloksena olisi että AsiakasID:t 1,2 ja 3 ovat käytössä.
 
Tarvitsisin siis kyselyn, jonka tuloksena olisi että AsiakasID:t 1,2 ja 3 ovat käytössä.

Ymmärsinkö oikein, että haluat suunnilleen tämän:


Eli teet vain distinctin noille kahdelle ID-kolumnille ja otat niiden unionin? Ja Tuolla ekalla kannalla ei ole mitään tekemistä tämän kysymyksen kanssa, ellet halua yhdistää nimiä noihin ID:ihin.
 
Ymmärsinkö oikein, että haluat suunnilleen tämän:


Eli teet vain distinctin noille kahdelle ID-kolumnille ja otat niiden unionin? Ja Tuolla ekalla kannalla ei ole mitään tekemistä tämän kysymyksen kanssa, ellet halua yhdistää nimiä noihin ID:ihin.
Just näin! Joskus tulee ajateltua liian monimutkaisesti! Kiitos paljon!
 
Päivitin tuossa heidisql:llä tietokantaa jonka koko n. 30mt, kymmeniätuhansia rivejä.
Lisäsin siihen ainoastaan yhteen tauluun sarakkeen. Muutoksen suorituksessa tuli virhe että yhdessä rivissä float value on "Out of range" ja toisessa sama vika mutta eri float-sarakkeessa.
Kun hain rivit heidisql:llä niin näytti olevan ihan ok luku molemmissa ja frontissakin tuoterivit latautui hyvin.

mitähän tämä meinaa...?
 
Kokeillaas täällä.
Nettisivu Apachella ja WAR java juttu Tomcatissä samalla serverillä ja CORS aiheuttaa tämän ongelman, kun nettisivu yrittää sitä kutsua. Mitä pitää muuttaa ja mistä? Onko vain joku triviaali juttu?

IMG_0235.png
 
Kokeillaas täällä.
Nettisivu Apachella ja WAR java juttu Tomcatissä samalla serverillä ja CORS aiheuttaa tämän ongelman, kun nettisivu yrittää sitä kutsua. Mitä pitää muuttaa ja mistä? Onko vain joku triviaali juttu?

IMG_0235.png

Kaksi vaihtoehtoa:

1) Laita se kutsuttava API vastaamaan samaan osoitteeseen kuin missä sitä kutsuva sivusto asuu. Niin ettei sen kutsumisesta synny "cross-domain request" selaimen perspektiivistä. Nyt selvästi osoitteet eivät täsmää. Jos Tomcat kuuntelee nykyisellään suoraan maailmalle avoimena jossain portissa, niin konffaa mieluummin niin, että sivustoa hostaava Apache toimii myös reverse proxynä Tomcatille, jolloin kummatkin ovat saavutettavissa saman osoitteen kautta. Tomcattia ei yleensä ole tapana tarjoilla suoraan maailmalle (tai ehkä jossain on, mutta se on esim. tietoturvamielessä kyseenalaista).

2) Konffaa API:a tarjoilevaan serveriin (Tomcat?) CORS:iin liittyvät headerit ja CORS:in preflight-OPTIONS-kyselyyn vastaaminen kuntoon. Lisätietoja vaikka: Cross-origin resource sharing - Wikipedia
 
Iso kiitos! Pitääpä tarkistella noita.
Molemmat ihan vain sisäverkossa ja eri porteissa. Suoraan selaimella pääsen kiinni molempiin, mutta apachen sivua käyttämällä ei tuohon tomcatin juttuun.
 
joudun lataamaan eräälle web sivustolle töissä paljon materiaalia, kuvia ja tekstiä tekstikenttiin, yleensä olen kirjoitellut google taulukkoon tekstit valmiiksi ja jakanut kuvat alihakemistoihin 1 ja 2 jne. Taulukossa kohdat samalla tavalla, teksti kohde 1 ja 2 jne. Mietin, voisiko luoda jonkin botin tai scriptin joka tekisi tuon puuduttavan toistuvan työn automaattisesti?
 

Onko nämä app passwordit tietoturvariskejä jos ne pääsee vuotaa? Authelia kaipaa tuota, mutta en ihan ymmärrä miten tuo toimii. Pääsekö sillä koko gmail accountiin käsiksi vai onko se vain emailin lähettämistä varten
 

Onko nämä app passwordit tietoturvariskejä jos ne pääsee vuotaa? Authelia kaipaa tuota, mutta en ihan ymmärrä miten tuo toimii. Pääsekö sillä koko gmail accountiin käsiksi vai onko se vain emailin lähettämistä varten
En saanut tuosta dokumentista irti tietoa mikä tuo app password tarkalleen on. Jos se on sovelluskäyttöön tarkoitettu salasana jonka oikeuksia ei voi säätää, en käyttäisi sellaista mihinkään. Jos sen oikeuksia voi säätää, käyttäisin sitä vain jos ne saa sellaiselle tasolle ettei sillä saa aikaa sellaista joka harmittaisi itseäni.

On se tietoturvariski jos se vuotaa. Tuo pakollinen mfa tuo lisäsuojaa sen verran että uskaltaisin käyttää sitä rajatuin oikeuksin.
 
En saanut tuosta dokumentista irti tietoa mikä tuo app password tarkalleen on. Jos se on sovelluskäyttöön tarkoitettu salasana jonka oikeuksia ei voi säätää, en käyttäisi sellaista mihinkään. Jos sen oikeuksia voi säätää, käyttäisin sitä vain jos ne saa sellaiselle tasolle ettei sillä saa aikaa sellaista joka harmittaisi itseäni.

On se tietoturvariski jos se vuotaa. Tuo pakollinen mfa tuo lisäsuojaa sen verran että uskaltaisin käyttää sitä rajatuin oikeuksin.
Riistakamerassa on tuommoinen käytössä kun lähettää sähköpostia gmailtilin kautta
 
Vääntäkääs mulle rautalangasta niinkuin vääntäisitte kumisaappaalle asiasta kun Unityssä koitan C#:saa oppia thisin käyttöä. Ymmärrän jollain tasolla mutta kun käytännön esimerkkejä katsoo niin menee aivot solmuun kaiken this.objekti, (this), kiffeli = this; kanssa.

Google/YouTube/Chatgpt koluttu läpi ja silti vain ei iskostu asia.
 
Vääntäkääs mulle rautalangasta niinkuin vääntäisitte kumisaappaalle asiasta kun Unityssä koitan C#:saa oppia thisin käyttöä. Ymmärrän jollain tasolla mutta kun käytännön esimerkkejä katsoo niin menee aivot solmuun kaiken this.objekti, (this), kiffeli = this; kanssa.

Google/YouTube/Chatgpt koluttu läpi ja silti vain ei iskostu asia.
Eiks esim. tää artikkeli avaa asiaa riittävästi, mihin this-avainsanaa C#:ssa (tai ihan vastaavasti Javassa) käytetään? Luokan sisäisessä koodissa, jossa on näkyvyys luokkamuuttujiin, this:ia ei ole pakko käyttää, kun haluaa viitata luokkamuuttujaan, mutta esim. konstruktoreissa, joissa tarvii erottaa tyypillisesti mukavuuden vuoksi saman niminen metodin parametri luokkamuuttujasta, sitä tarvii ja samoin silloin, kun haluat luokan sisäisessä koodissa välittää (tai palauttaa) sen koko luokkaobjektin jonnekin.


Builder patternit vielä lisäesimerkki, missä tuota this:ia tyypillisesti esiintyy. Kts. esim. C# Builder Pattern: Constructing Objects Step-by-Step

muoks. tuossa alla vielä hyvä selvennys sit olio-ohjelmointikielissä käytetystä oliorakenteesta, mihin tuo this:kin tässä liittyy.
 
Viimeksi muokattu:
Vääntäkääs mulle rautalangasta niinkuin vääntäisitte kumisaappaalle asiasta kun Unityssä koitan C#:saa oppia thisin käyttöä. Ymmärrän jollain tasolla mutta kun käytännön esimerkkejä katsoo niin menee aivot solmuun kaiken this.objekti, (this), kiffeli = this; kanssa.

Google/YouTube/Chatgpt koluttu läpi ja silti vain ei iskostu asia.
Kustakin luokasta (class) voi luoda useita olioita. Kun luokan metodissa sanotaan this, tarkoitetaan this-sanalla sitä oliota, jolle metodia kutsutaan. Jos luokkana on vaikka Pallo ja metodina kasva, niin kasva-metodissa saattaisi lukea vaikkapa this.säde += 1.0;. Tällöin this viittaa juuri kyseiseen palloon ja this.säde sen säteeseen. this ei siis viittaa esim. luokkaan/kaikkiin palloihin vaan juuri siihen tiettyyn palloon, jolle kyseistä metodia kutsutaan. Samoin vaikkapa tuo kiffeli = this; vain asettaa kiffeli-muuttujan arvoksi kyseisen olion (esimerkissäni pallon) siinä missä arvoksi voitaisiin asettaa mikä tahansa muukin muuttuja/olio. this on vain tapa viitata juuri siihen tiettyyn olioon (esimerkissäni palloyksilöön) luokan sisältä käsin, sillä ei C#:ssa ei ole mitään muuta tapaakaan pystyä viittaamaan "itseen". Tavallaan this on siis vain tapa sanoa "minä", ja itse asiassa joissain muissa ohjelmointikielissä käytännössä samaa tarkoittaa self.
 
Tätä en nyt millään ymmärrä
jos mysql:ssä on 3 taulua, vaikka tuotteet, osat ja osat_tuotteet joka yhdistää nämä many-to-many periaatteella, niin aikaisemmin mysql4 tai jotain toimi group by
mutta nyt ei sitten enää millään koska valittaa että epämääräistä dataa tms.

Miten siis voisi hakea kaikki osat ja liittää osaan möys tuotteen nimen, mutta siten että haetaan vain yksi tuotenimi vaikka niitä olisikin useampia.. ts. ei haeta yhtäkään osaa kuin max yhden kerran.
Lisäksi pitäisi samalla kyselyllä saada myös palautettua osat joilla ei ole yhtään tuotetta määritelty join-taulun avulla.
 
Tätä en nyt millään ymmärrä
jos mysql:ssä on 3 taulua, vaikka tuotteet, osat ja osat_tuotteet joka yhdistää nämä many-to-many periaatteella, niin aikaisemmin mysql4 tai jotain toimi group by
mutta nyt ei sitten enää millään koska valittaa että epämääräistä dataa tms.

Miten siis voisi hakea kaikki osat ja liittää osaan möys tuotteen nimen, mutta siten että haetaan vain yksi tuotenimi vaikka niitä olisikin useampia.. ts. ei haeta yhtäkään osaa kuin max yhden kerran.
Lisäksi pitäisi samalla kyselyllä saada myös palautettua osat joilla ei ole yhtään tuotetta määritelty join-taulun avulla.
Jos oikein ymmärsin, niin jotakin tämän kaltaistako ?
Koodi:
SELECT * FROM osat;
+----+-----------+
| id | osanimi   |
+----+-----------+
|  1 | Suristin  |
|  2 | Päristin  |
|  3 | Perse     |
|  4 | Kairain   |
+----+-----------+
SELECT * FROM tuotteet;
+----+------------------+
| id | tuotenimi        |
+----+------------------+
|  1 | Perseensuristin  |
|  2 | Perseenpäristin  |
+----+------------------+
SELECT * FROM osa_tuote;
+--------+----------+
| osa_id | tuote_id |
+--------+----------+
|      1 |        1 |
|      3 |        1 |
|      2 |        2 |
|      3 |        2 |
+--------+----------+
SELECT o.id,o.osanimi,MIN(t.tuotenimi) AS tuotenimi, COUNT(t.id) as tuotteita
FROM osat AS o
LEFT JOIN osa_tuote AS ot ON o.id=ot.osa_id
LEFT JOIN tuotteet AS t ON ot.tuote_id=t.id GROUP BY o.id;
+----+-----------+------------------+-----------+
| id | osanimi   | tuotenimi        | tuotteita |
+----+-----------+------------------+-----------+
|  1 | Suristin  | Perseensuristin  |         1 |
|  2 | Päristin  | Perseenpäristin  |         1 |
|  3 | Perse     | Perseenpäristin  |         2 |
|  4 | Kairain   | NULL             |         0 |
+----+-----------+------------------+-----------+
Tästä nähdään että kumpikaan tuote ei mahdu, koska kairain puuttuu molemmista :D
Ratkaisevana tekijänä jonkin aggrekaattifunktion käyttö (MIN(t.tuotenimi)) sellaisille columneille, joita ei groupata. Välttämättä tämä ei ole paras mahdollinen tapa taklata käsillä oleva ongelma, mutta toimii isohkoillakin datamäärillä kohtuu nopeasti.
 

Statistiikka

Viestiketjuista
302 718
Viestejä
5 153 315
Jäsenet
82 209
Uusin jäsen
Edz

Hinta.fi

Back
Ylös Bottom