Pieniä kysymyksiä ohjelmoinnista

dome

Tukijäsen
Liittynyt
17.10.2016
Viestejä
588
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ää.
sed ei osaa \d, käytä [[:digit:]], tai [0-9]

Koodi:
$ sed -E 's/.*\((.*)\,.*([[:digit:]]{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)"
Kissakala seikkailee jälleen (2023)
 
Liittynyt
17.10.2016
Viestejä
5 475
sed ei osaa \d, käytä [[:digit:]], tai [0-9]

Koodi:
$ sed -E 's/.*\((.*)\,.*([[:digit:]]{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)"
Kissakala seikkailee jälleen (2023)
Tuo on sellainen miina mihin itsekin on tullut monesti astuttua. noita \d ja vastaavia ei välttämättä hirveästi kannata käyttää ellei ole ihan varma että kyseinen regex kyseisen osaa. Itse olen jokusen kerran samaan miinaan polkaissut ja sitten esim [0-9] muuttamalla on lähtenyt toimimaan. Itse olen todennut että noita lyhimpiä muotoja ei kannata käyttää kuin regex-golfissa.
 
Liittynyt
21.11.2017
Viestejä
301
sed ei osaa \d, käytä [[:digit:]], tai [0-9]

Koodi:
$ sed -E 's/.*\((.*)\,.*([[:digit:]]{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)"
Kissakala seikkailee jälleen (2023)
Kiitoksia. Ois saattanut omin avuin mennä tovi, kas kun ei googletellessa tullut vastaan.
 
Liittynyt
17.10.2016
Viestejä
1 132
Kiitoksia. Ois saattanut omin avuin mennä tovi, kas kun ei googletellessa tullut vastaan.
GNU sed ja POSIX regexpit ovat tosiaan aika pylleröstä, heitämpä täältä sivusta toisen vaihtoehdon mitä itse käytän kun tarvitsen jotakin sedin kaltaista mutta vaadittava regexp ei ole mallia käpylehmä:
Koodi:
perl -pe "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)"
E: Vaatii luonnollisesti perlin mutta en muista edes milloin olisi tullut vastaan ympäristö josta löytyy sed mutta ei perliä...
 
Liittynyt
01.01.2018
Viestejä
1 138
1. Teettekö te "hamburger menu"n fixed vai absolute sijoituksella? fixed vaikutti ihan hyvältä vaihtoehdolta, kun tein samanlaisen kuin io techissa että se tulee tuolta sivulta.

2. Kannattaako menu tehdä niin kuin sivun ulkopuolelle, vai lisätä uusi dom node kun menu avataan ja poistaa kun suljetaan?

3. Laitoin vielä niin että menun voi sulkea takaisin navigoinnilla sekä tietty sulkemis napista tai ohi klikkaamalla. Takaisin navigointi sulkeminen on tehty query parametreillä. Onko tuosta ominaisuudesta mitään haittaa? Käytännössä mikään saitti ei toimi samalla tavalla menun osalta. Minusta se on ainakin ihan kätevä kun androidilla sulkee kaiken muutenkin takaisin gesturella.
 
Liittynyt
03.07.2018
Viestejä
347
Mitenkäs te pro-koodarit teette nykyiaikaisen many-to-many relaation ?

Aiemminhan se meni mysql-tietokantaan omana taulunaan ja muoto oli esim parts_machines (part_id, machine_id)
Mutta nykyiset web-sovellukset frontissa käsittelee dataa objekteina. Eli bäckendille lähtee data jsonina.
Pitäisikö relaatiot tallentaa nykyisin sovellukseen suoraan json-tekstinä. Jos taas näin on, niin eikö se vaikeuta yksinkertaisten hakujen tekemistä huomattavasti kun join täytyy tehdä jsonia parsettamalla.
Muistaakseni mariadb/mysql ei aiemmin osannut tuota tehdä helposti...
 
Liittynyt
08.05.2019
Viestejä
1 241
Mitenkäs te pro-koodarit teette nykyiaikaisen many-to-many relaation ?

Aiemminhan se meni mysql-tietokantaan omana taulunaan ja muoto oli esim parts_machines (part_id, machine_id)
Mutta nykyiset web-sovellukset frontissa käsittelee dataa objekteina. Eli bäckendille lähtee data jsonina.
Pitäisikö relaatiot tallentaa nykyisin sovellukseen suoraan json-tekstinä. Jos taas näin on, niin eikö se vaikeuta yksinkertaisten hakujen tekemistä huomattavasti kun join täytyy tehdä jsonia parsettamalla.
Muistaakseni mariadb/mysql ei aiemmin osannut tuota tehdä helposti...
Yksi mahdollinen lähestymistapa asiaan on käyttää perinteisen SQL-relaatiotietokannan sijaan jotain modernimpaa NoSQL "document oriented" tietokantaa, kuten vaikka MongoDB, johon voi puskea objektit suoraan JSON:ina ja jossa one-to-many tai many-to-many -relaatiot onnistuvat suoraan ilman ylimääräistä "välitaulua".

Esim. tuolta löytyy esimerkkiä: Many-to-Many Relationship in MongoDB - Model Intricate Data
 
Liittynyt
17.10.2016
Viestejä
14 833
Aiemminhan se meni mysql-tietokantaan omana taulunaan ja muoto oli esim parts_machines (part_id, machine_id)
Mutta nykyiset web-sovellukset frontissa käsittelee dataa objekteina. Eli bäckendille lähtee data jsonina.
Se, miten se data palautetaan clientille ei tarvitse suoraan vastata sitä, miten se data on siellä kannassa. Eli kun frontti tekee pyynnön, niin bäkkäri voi hakea relevantin datan kannasta, mankeloida sen juuri sellaiseen muotoon joka on frontin toiminnan kannalta järkevintä ja frontti sitten käsittelee vain sitä mankeloitua versiota tietämättä mitään siitä, miten se on kantaan tallennettu. Mutta olisiko sulla joku yksinkertainen esimerkki, niin voisi ehkä paremmin miettiä, mitä eri tapoja sen toteuttamiseen on?

Dataa voi ehdottomasti tallentaa jsonina kantaan, mutta siinä on aina myös huonot puolensa.
 
Liittynyt
01.01.2018
Viestejä
1 138
En ole pro koodari, mutta ainakin olen tuollaiset query builderilla www.kysely.dev kirjastolla. Frontista tulevan json voi tallentaa tuolla esim. Etsimällä ensin nimen perusteella parts_idn ja machine_idn ja tallentamalla ne js objektina jolloin esim {part_id: 23, machine-id: 16} menee parts_machine tauluun, 23 part_id sarakkeelle jne. Ulos ne saa sitten joinaamalla josta tulee js objekti tai rivi objekteja.
 
Liittynyt
07.01.2021
Viestejä
688
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.
 
Liittynyt
07.01.2021
Viestejä
688
Jos haluaa tehdä fullstackia Reactilla, niin Next.js vai Remix? Onko kenelläkään kokemuksia molemmista? Onko jälkimmäinen tarpeeksi kypsä?
 
Liittynyt
07.01.2021
Viestejä
688
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.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 037
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).
 
Liittynyt
07.01.2021
Viestejä
688
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?
 
Liittynyt
01.01.2018
Viestejä
1 138
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.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 037
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.
 
Liittynyt
04.03.2017
Viestejä
287
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.
 

pAy

Liittynyt
15.08.2020
Viestejä
80
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?
 
Liittynyt
17.10.2016
Viestejä
5 475
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.
 

pAy

Liittynyt
15.08.2020
Viestejä
80
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:
Liittynyt
17.01.2018
Viestejä
2 105
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ä.
 

pAy

Liittynyt
15.08.2020
Viestejä
80
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.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 037
Nodemcu:ssa on vain yksi sarjaportti, tuo on vain testailu toista koodia varten, mutta ihmettelin vain miksi kumpikin muuttuja saa saman arvon.
Kuuntelet siis samaa sarjaporttia kahdennettuna ja saat saman arvon molempiin?
 

pAy

Liittynyt
15.08.2020
Viestejä
80
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.
 
Liittynyt
17.10.2016
Viestejä
5 475
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.
 

pAy

Liittynyt
15.08.2020
Viestejä
80
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.
 
Liittynyt
17.10.2016
Viestejä
5 475
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.
 

pAy

Liittynyt
15.08.2020
Viestejä
80
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.
 
Liittynyt
20.10.2016
Viestejä
798
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]])
 
Liittynyt
17.10.2016
Viestejä
5 734
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])
 
Liittynyt
20.10.2016
Viestejä
798
>>> 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 ..
 
Liittynyt
08.01.2020
Viestejä
139
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.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 037
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
 
Liittynyt
17.10.2016
Viestejä
987
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ä.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 037
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.
 

emagdnim

Tukijäsen
Liittynyt
21.10.2016
Viestejä
9 459
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.
 
Liittynyt
27.10.2022
Viestejä
11
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:
Liittynyt
01.01.2018
Viestejä
1 138
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?
 

Starglazer

Tukijäsen
Liittynyt
17.10.2016
Viestejä
3 107
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ä.
 
Liittynyt
17.10.2016
Viestejä
14 833
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.
 

Starglazer

Tukijäsen
Liittynyt
17.10.2016
Viestejä
3 107
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!
 
Liittynyt
03.07.2018
Viestejä
347
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...?
 
Liittynyt
17.10.2016
Viestejä
4 166
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
 
Liittynyt
08.05.2019
Viestejä
1 241
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?

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
 
Liittynyt
17.10.2016
Viestejä
4 166
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.
 
Toggle Sidebar

Statistiikka

Viestiketjut
241 920
Viestejä
4 231 690
Jäsenet
71 119
Uusin jäsen
hippii22

Hinta.fi

Ylös Bottom