Pieniä kysymyksiä ohjelmoinnista

Liittynyt
26.10.2019
Viestejä
9
Tuolla toteutettuna sekä fetchilla että importilla: https://codepen.io/zvona/pen/jOOazxW?editors=1010

Ainoana erona se, että tuossa ei no-cors -modea voi käyttää, koska vastaava palvelin nimenomaan olettaa corsia (näin käsittääkseni)
Herjasi Corsista. Poistin kommentit 'no-cors' rivin edestä, niin suoritti skriptin, mutta alertissa lukee: "with Fetch:" eikä muuta.

Todella omituista.
 
Liittynyt
29.10.2016
Viestejä
446
Xamarin Forms / Android App kysymys
Miten saa näytön koon ja kosketuksen xy-koordinaatin?
Toistaiseksi mennään kikkailemalla koko näytön täyttävän imageviewin kanssa.
tapping.jpg

Mielellään ilman ylimääräisiä plugineja.
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Pohdiskelua...

Kun katson skriptin suoritusta konsolista, on response tyhjä kun alert-ruutu tulee tyhjänä esiin. Heti kun kuittaan ruudun painamalla ok, ilmestyy response sellaisena kun pitääkin.

Ymmärrän tämän niin, että tuo alert suoritetaan liian aikaisin eikä skripti ole vielä ehtinyt saada palautetta. Vai?
Alert pysäyttää js säikeen, eli koodi seisahtuu paikalleen kunnes kuittaa alertin.

koodi esimerkki vois myös autaa..
 
Liittynyt
26.10.2019
Viestejä
9
Alert pysäyttää js säikeen, eli koodi seisahtuu paikalleen kunnes kuittaa alertin.

koodi esimerkki vois myös autaa..
Koodi:
fetch('http://192.168.1.8/request?S_227_85', { mode: 'no-cors' })
.then(res => res.text())
.then(teksti => {
    alert(teksti);
})
Nyt haluttu string ilmestyy responseen ennen alertin kuittaamista, mutta ei tule mukaan alert-ruutuun.
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Koodi:
fetch('http://192.168.1.8/request?S_227_85', { mode: 'no-cors' })
.then(res => res.text())
.then(teksti => {
    alert(teksti);
})
Nyt haluttu string ilmestyy responseen ennen alertin kuittaamista, mutta ei tule mukaan alert-ruutuun.

Kuten sanoin nykyaikaiset selaimet estää corsit.

fetch mode 'no-cors' voit tehdä kutsun, ja saada paluuna statuksen, mutta responseen ei sallita pääsyä.

no-cors — Prevents the method from being anything other than HEAD, GET or POST, and the headers from being anything other than simple headers. If any ServiceWorkers intercept these requests, they may not add or override any headers except for those that are simple headers. In addition, JavaScript may not access any properties of the resulting Response. This ensures that ServiceWorkers do not affect the semantics of the Web and prevents security and privacy issues arising from leaking data across domains.
Request.mode
 
Liittynyt
23.10.2016
Viestejä
658
Miten nuo isot palvelut, kuten Facebook, Twitter ja Reddit tekee liketykset yms tilapäivitykset? Esimerkiksi Twitterissä kun painaa sydäntä, niin palaute tulee heti (sydämen väri muuttuu). Käsittääkseni ne ei siis odota, että tietokannasta tulee vastaus ensin, eli käytännössä kutsut on optimistisia ja oletetaan, että kutsu menee onnistuneesti perille?
 
Liittynyt
23.10.2016
Viestejä
658
En tiedä, mutta luulisin, että se toimii niin, että käyttöliittymällä on oma tila, jota se ylläpitää. Käyttöliittymän tilaa päivitetään varmaankin suoraan ja palvelimen kanssa kommunikoidaan taustalla.
Koitan omalle sivulle saada samantyylistä systeemia rakennettua. Tällä hetkellä päivitän frontin vasta, kun palvelimelta tulee vastaus kutsuun. Tuntuu vähän köpöltä tuo viive, kun on tottunut moderneihin palveluihin. Täytynee tutustua noiden firmojen blogeihin. Sieltä voi löytyä mielenkiintoista tietoa.
 

Hessu

Tukijäsen
Liittynyt
29.10.2016
Viestejä
4 420
Koitan omalle sivulle saada samantyylistä systeemia rakennettua. Tällä hetkellä päivitän frontin vasta, kun palvelimelta tulee vastaus kutsuun. Tuntuu vähän köpöltä tuo viive, kun on tottunut moderneihin palveluihin. Täytynee tutustua noiden firmojen blogeihin. Sieltä voi löytyä mielenkiintoista tietoa.
Eipä tuollaisen tekeminen hirveästi vaadi. Ylläpidät tiedon vaan jossain lokaalissa muistissa ja laitat palvelimelle postin tuosta tiedosta. Toki kannattaa tarkastaa vielä taustalla, että tuo palvelimelle lähettäminen onnistui. Jos ei niin toksit vaan frontin näyttämään jonkun virhesanoman.
 
Liittynyt
17.10.2016
Viestejä
14 550
Jollain logiikalla tosiaan virhettä käyttäjälle, tai sen liketyksen poistaminen UI:sta, jos palvelin ei vastaa tai vastaa virheellä. Eipä se sen kummempaa vaadi.
 
Liittynyt
06.11.2016
Viestejä
1 749
Kysymys liittyen css media queryyn.
Onko jotain hyväksi todettua tapaa havaita käytetty laite (puhelin, tabletti, pc)?

Vai käytänkö suosiolla javascriptiä media queryn kaverina?
Tämä aiheuttaa tällä hetkellä ongelmia projekteissani, kun en tiedä mikä olisi oikea tapa hoitaa tämä.
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Kysymys liittyen css media queryyn.
Onko jotain hyväksi todettua tapaa havaita käytetty laite (puhelin, tabletti, pc)?

Vai käytänkö suosiolla javascriptiä media queryn kaverina?
Tämä aiheuttaa tällä hetkellä ongelmia projekteissani, kun en tiedä mikä olisi oikea tapa hoitaa tämä.
Miksi css media queryt ei riittäisi viewportin tunnistukseen? Kysymys ei oikein aukaise varsinaista ongelmaa.
 
Liittynyt
18.10.2016
Viestejä
272
Kysymys liittyen css media queryyn.
Onko jotain hyväksi todettua tapaa havaita käytetty laite (puhelin, tabletti, pc)?

Vai käytänkö suosiolla javascriptiä media queryn kaverina?
Tämä aiheuttaa tällä hetkellä ongelmia projekteissani, kun en tiedä mikä olisi oikea tapa hoitaa tämä.
Käännetäänpä kysymys toiselle kantille: mitä yrität saavuttaa?

Jos kyse on tietyistä tyyleistä päätelaitteesta riippuen, niin käytät CSS:ää. Tällöin voit lukaista esim. tämän 02/2019 päivitetyn artikkelin aiheesta: Media Queries for Standard Devices | CSS-Tricks

Jos taas kyse on toiminnallisuudesta, niin silloin käytät JS:ää. Tällöin kannattaa tutustua `matchMedia()` funktioon: Window.matchMedia()
 
Liittynyt
06.11.2016
Viestejä
1 749
Miksi css media queryt ei riittäisi viewportin tunnistukseen? Kysymys ei oikein aukaise varsinaista ongelmaa.
Ehkä ongelma on enemmänkin se, etten osaa niitä käyttää.
Mutta hyvä tietää, jotta pelkästään niillä pärjää.

Käännetäänpä kysymys toiselle kantille: mitä yrität saavuttaa?

Jos kyse on tietyistä tyyleistä päätelaitteesta riippuen, niin käytät CSS:ää. Tällöin voit lukaista esim. tämän 02/2019 päivitetyn artikkelin aiheesta: Media Queries for Standard Devices | CSS-Tricks

Jos taas kyse on toiminnallisuudesta, niin silloin käytät JS:ää. Tällöin kannattaa tutustua `matchMedia()` funktioon: Window.matchMedia()
Yritin väsätä media querya iPadille (landscape), mutta kaikesta huolimatta sama query suoritettiin desktopilla.
Mutta löysi tuohon jo toimivan ratkaisun media queryna.

Pitääpä tutustua aiheeseen vähän paremmin.
 
Liittynyt
17.10.2016
Viestejä
14 550
mitä yrität saavuttaa?
Tämä. Tämä kannattaa AINA kertoa kun täällä jotain kyselee. Liian usein kysyjä kysyy aivan väärää asiaa, ja sitten taas arvuutellaan, mitä oikeasti ollaan tekemässä. En tiedä, oliko tässä niin, mutta tuohon vastaamisella saa helpommin relevantteja vastauksia.
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Ehkä ongelma on enemmänkin se, etten osaa niitä käyttää.
Mutta hyvä tietää, jotta pelkästään niillä pärjää.



Yritin väsätä media querya iPadille (landscape), mutta kaikesta huolimatta sama query suoritettiin desktopilla.
Mutta löysi tuohon jo toimivan ratkaisun media queryna.

Pitääpä tutustua aiheeseen vähän paremmin.
Tässä on hyvin pelkistety esimerkki ns. mobile first leiskasta, eli idea on pitää layout oletuksena perus blockeina.
Ja sitä mukaan kun näytön leveys kasvaa ja vaatii muutoksia, niitä määritellään media-queryjen avulla.

weathered-glade-u6lfl - CodeSandbox
 
Liittynyt
13.12.2016
Viestejä
7
Miten nuo isot palvelut, kuten Facebook, Twitter ja Reddit tekee liketykset yms tilapäivitykset? Esimerkiksi Twitterissä kun painaa sydäntä, niin palaute tulee heti (sydämen väri muuttuu). Käsittääkseni ne ei siis odota, että tietokannasta tulee vastaus ensin, eli käytännössä kutsut on optimistisia ja oletetaan, että kutsu menee onnistuneesti perille?
Redis cache on ainakin ollut Redditin käytössä

View Counting at Reddit
 
Liittynyt
06.11.2016
Viestejä
1 749
Miten reactissa pystyy lisäämään useamman luokan samalle elementille ehdollisestin (conditionally) ?

Tyyliin:
Koodi:
<div className="class-a class-x">
...
</div>

Yhden luokan saan lisättyä ehdollisestin, seuraavastin:
Koodi:
<div className={condition ? 'class-a' : 'class-b'}>
...
</div>
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Miten reactissa pystyy lisäämään useamman luokan samalle elementille ehdollisestin (conditionally) ?

Tyyliin:
Koodi:
<div className="class-a class-x">
...
</div>

Yhden luokan saan lisättyä ehdollisestin, seuraavastin:
Koodi:
<div className={condition ? 'class-a' : 'class-b'}>
...
</div>
Laita ne taulukkoon, käytä join()-funktiota niiden liittämiseen stringiksi ja anna lopputulos luokaksi.
Useamman luokan ehdollinen renderöinti vaatii jo pikkasen filtteriä mukaan. Mutta käytännössä joo array kautta menee helpoiten.

Koodi:
const classes = {
  "class-a": true,
  "class-b": false,
  "class-x": true,
  "class-y": false
};

const activeClasses = Object.entries(classes)
  .reduce((acc, [className, condition]) => (condition ? acc + " " + className : acc),"")
  .trim();
edit: pikkubugi korjattu :vihellys:


Jos et halua keksiä pyörää uudelleen, tutustu kirjastoihin classnames ja clsx
 
Viimeksi muokattu:
Liittynyt
23.10.2016
Viestejä
658
Mites tuon uuden Windows Terminaalin kanssa saisi tehtyä shortcutteja? Mulla on esim. tietokantayhteyden avaamiseen tällainen shortcut:

Koodi:
C:\Windows\System32\cmd.exe /k mongo "mongodb+srv://db.urli" --username username
Koitin korvata tuon tällä:

Koodi:
C:\Users\username\AppData\Local\Microsoft\WindowsApps\wt.exe /k mongo "mongodb+srv://db.urli" --username username
Mutta ei toimi.
 
Liittynyt
20.04.2017
Viestejä
580
Miksi PHP:ssä on luotu monta is_[type] funktiota sen sijaan, että olisi pelkkä is, jolle syötetään arvo ja operaattori?
Esim. is_array($arvo) vs is('array', $arvo)

Tuommoisen universaalin issin tekee toki itsekin.
 
Liittynyt
19.10.2016
Viestejä
3 411
Miksi PHP:ssä on luotu monta is_[type] funktiota sen sijaan, että olisi pelkkä is, jolle syötetään arvo ja operaattori?
Esim. is_array($arvo) vs is('array', $arvo)

Tuommoisen universaalin issin tekee toki itsekin.
Vähemmän virheitä, kun voi helposti tarkistaa kirjoitusvaiheessa syntaksin automaattisesti? is_arrau vs is('arrau'...
 
Liittynyt
19.10.2016
Viestejä
1 560
Miksi PHP:ssä on luotu monta is_[type] funktiota sen sijaan, että olisi pelkkä is, jolle syötetään arvo ja operaattori?
Esim. is_array($arvo) vs is('array', $arvo)

Tuommoisen universaalin issin tekee toki itsekin.
Jos arvata pitäisi, PHP:n tapauksessa homma on vähän tuollaiseksi suunnittelun puutteen takia. Voi olla ihan hyväkin ratkaisu tai sitten ei (en jaksa pohtia syvällisemmin eikä heti tule mieleen syitä, miksi pitäisi olla tavalla X tavan Y sijaan), mutta koko PHP vaikuttaa sille, että asiat ovat aika orgaanisesti muotoutuneet sellaisiksi kuin ne ovat.
 
Liittynyt
18.10.2016
Viestejä
272
Asia selvä. Pitänee sitten unohtaa koko juttu. Kiitos kaikille neuvoja antaneille.
Tällainen tuli vastaan: https://crossorigin.me/

Eli proxy CORS-pyynnöille. En tosin tiedä, miten toimisi sisäverkkoon (tuskin). Mutta jätän tähän, jotta tulee tietouteen vastaavien ongelmien kanssa painiville, jos eivät halua tehdä omaa proxya.

Luonnollisesti mitään sensitiivistä ei tuon kautta kannata liikutella.
 
Liittynyt
06.11.2016
Viestejä
1 749
Miten reactilla pitäisi käsitellä taulukon suodatusta kun käytössä on useampi 'rasti ruutuun' -elementti?
Jos tuosta koko suodatuksesta väsäisi oman komponentin, niin miten saan kätevästin usealta checkbox -elementiltä tilan (on/off)

Ja jos nuo saisi esimerkiksi taulukossa, niin miten suodatan taulukossa olevan datan perusteella?
En välttämättä kaipaa edes koodia, mutta jos saisi hivenen osviittaa miten edetä.

Joka tapauksessa, alla linkki codesandbox esimerkkiin, jossa on yksi suodatin sekä taulukko.
bold-cartwright-7w7hb - CodeSandbox
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Miten reactilla pitäisi käsitellä taulukon suodatusta kun käytössä on useampi 'rasti ruutuun' -elementti?
Jos tuosta koko suodatuksesta väsäisi oman komponentin, niin miten saan kätevästin usealta checkbox -elementiltä tilan (on/off)

Ja jos nuo saisi esimerkiksi taulukossa, niin miten suodatan taulukossa olevan datan perusteella?
En välttämättä kaipaa edes koodia, mutta jos saisi hivenen osviittaa miten edetä.

Joka tapauksessa, alla linkki codesandbox esimerkkiin, jossa on yksi suodatin sekä taulukko.
bold-cartwright-7w7hb - CodeSandbox
Array filtteria ja includes käyttämällä. Eipä se oikeen muuta kun lisää vaan ehtoja sinne ja tänne.

usean checkboxin tilan voit viedä arraylle tai map ihan kummin haluat ja useReducer hookilla tietinkin väännät jo vaikka mikälaisen tilan komponentille.

holy-silence-mqn0z - CodeSandbox mitenkään ajatuksella en tätä tehnyt, mutta nopeesti vääntämällä tälläkertaa tuli tällänen. :joy:
 
Liittynyt
06.11.2016
Viestejä
1 749
Array filtteria ja includes käyttämällä. Eipä se oikeen muuta kun lisää vaan ehtoja sinne ja tänne.

usean checkboxin tilan voit viedä arraylle tai map ihan kummin haluat ja useReducer hookilla tietinkin väännät jo vaikka mikälaisen tilan komponentille.

holy-silence-mqn0z - CodeSandbox mitenkään ajatuksella en tätä tehnyt, mutta nopeesti vääntämällä tälläkertaa tuli tällänen. :joy:
Näyttäis pelaavan hienostin, minä kiitän!
Pitääpä hivenen tutustua tähän luomukseen.
 
Liittynyt
06.11.2016
Viestejä
1 749
Array filtteria ja includes käyttämällä. Eipä se oikeen muuta kun lisää vaan ehtoja sinne ja tänne...
En vain käsitä miten tuo filtteröinti toimii tuossa sun esimerkissä.
Yritin muokata tuota esimerkkiäsi niin, että pystyisin suodattamaan useammasta sarakkeesta, mutta se meni aika sotkuksi.

Olisin kiitollinen jos viitsisit lisätä muutaman kommentin tohon :)
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
En vain käsitä miten tuo filtteröinti toimii tuossa sun esimerkissä.
Yritin muokata tuota esimerkkiäsi niin, että pystyisin suodattamaan useammasta sarakkeesta, mutta se meni aika sotkuksi.

Olisin kiitollinen jos viitsisit lisätä muutaman kommentin tohon :)

Koodi:
const userMatch = userFilter.length ? userFilter.includes(elem.userId) : true;
jos userFilter on tyhjä TAI pitää sisällään ko elementin userid palautuu true

Koodi:
const titleMatch = titleInput.value ? elem.title.includes(titleInput.value) : true;
jos titleInput on tyhjä TAI ko. elementin title sisältää inputin arvon substriginä palautuu true.

Koodi:
const bodyMatch = bodyInput.value ? elem.body.includes(bodyInput.value) : true;
jos bodyInput on tyhjä TAI ko. elementin body sisältää inputin arvon substriginä palautuu true.

Koodi:
return userMatch && titleMatch && bodyMatch;
jos kaikki kolme testiä ovat tosia, palautetaan true. eli ko. elementti läpäisee filterin ja päätyy taulukkoon näkyville.

Eli sun täytyy hakuehdon lisäksi tarkastaa onko ko. hakuehto käytössä jos ei ole, palautetaan oletuksena true koska ko. suodatusta ei haluta suorittaa.

edit:

olisiko tää helpompi sisäistää?
Koodi:
  const dataFilter = elem => {
    const userMatch = !userFilter.length || userFilter.includes(elem.userId);
    const titleMatch = !titleInput.value || elem.title.includes(titleInput.value);
    const bodyMatch = !bodyInput.value || elem.body.includes(bodyInput.value);
    return userMatch && titleMatch && bodyMatch;
  };
 
Viimeksi muokattu:

Noz

Liittynyt
17.10.2016
Viestejä
161
Nodella ja csv-parserilla muunsin csv-tiedoston array[Object]-muotoon.

Miksi jokaisen objektin KUNTANRO-avaimen arvon tyyppi on 'undefined'?

Koodi:
console.log(data[1]);
console.log('***');
console.log(typeof data[1].KUNTANRO);
console.log(typeof data[1].MAISTRAATTINRO);
console.log('***');
console.log(data[1].KUNTANRO);
console.log(data[1].MAISTRAATTINRO);
Koodi:
{ 'KUNTANRO': '9',
  KUNTANIMIFI: 'Alavieska',
  KUNTANIMISV: 'Alavieska',
  KUNTAMUOTO: 'Kunta',
  KIELISYYS: 'suomi',
  VAALIPIIRINRO: '12',
  VAALIPIIRIFI: 'Oulun vaalipiiri',
  VAALIPIIRISV: 'Uleåborgs valkrets',
  MAISTRAATTINRO: '796',
  MAISTRAATTINIMIFI: 'Pohjois-Suomen maistraatti',
  MAISTRAATTINIMISV: 'Magistraten i Norra Finland',
  'PALVELUYKSIKKÖNRO': '130',
  'PALVELUYKSIKKÖFI': ' Ylivieskan yksikkö',
  'PALVELUYKSIKKÖSV': ' Enheten i Ylivieska',
  MAAKUNTANRO: '16',
  MAAKUNTANIMIFI: 'Pohjois-Pohjanmaa',
  MAAKUNTANIMISV: 'Norra Österbotten' }
***
undefined
string
***
undefined
796
 
Liittynyt
17.10.2016
Viestejä
985
Huomaatko kuntanro:ssa nuo '' ympärillä.
 
Viimeksi muokattu:

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Nodella ja csv-parserilla muunsin csv-tiedoston array[Object]-muotoon.

Miksi jokaisen objektin KUNTANRO-avaimen arvon tyyppi on 'undefined'?

Koodi:
console.log(data[1]);
console.log('***');
console.log(typeof data[1].KUNTANRO);
console.log(typeof data[1].MAISTRAATTINRO);
console.log('***');
console.log(data[1].KUNTANRO);
console.log(data[1].MAISTRAATTINRO);
Koodi:
{ 'KUNTANRO': '9',
  KUNTANIMIFI: 'Alavieska',
  KUNTANIMISV: 'Alavieska',
  KUNTAMUOTO: 'Kunta',
  KIELISYYS: 'suomi',
  VAALIPIIRINRO: '12',
  VAALIPIIRIFI: 'Oulun vaalipiiri',
  VAALIPIIRISV: 'Uleåborgs valkrets',
  MAISTRAATTINRO: '796',
  MAISTRAATTINIMIFI: 'Pohjois-Suomen maistraatti',
  MAISTRAATTINIMISV: 'Magistraten i Norra Finland',
  'PALVELUYKSIKKÖNRO': '130',
  'PALVELUYKSIKKÖFI': ' Ylivieskan yksikkö',
  'PALVELUYKSIKKÖSV': ' Enheten i Ylivieska',
  MAAKUNTANRO: '16',
  MAAKUNTANIMIFI: 'Pohjois-Pohjanmaa',
  MAAKUNTANIMISV: 'Norra Österbotten' }
***
undefined
string
***
undefined
796

Onko avaimessa jotain ihme merkkejä vai miksi se on kääritty lainauksiin?

Koita myös data[1]['KUNTANRO']
 
Liittynyt
16.10.2016
Viestejä
1 150
Mitä cloud palvelua voi opiskella ilman että maksaa kuukausimaksua siitä. Tai jollain kokeiluversiolla. Azure, AWS? Tarkoituksena olisi saada laitettua oma projekti sinne pyörimään.
 
Liittynyt
23.10.2016
Viestejä
1 466
Miksi jokaisen objektin KUNTANRO-avaimen arvon tyyppi on 'undefined'?
Koska objektin avain ei ole KUNTANRO vaan 'KUNTANRO'. Nämä kaksi ovat eri tilanteita:

Koodi:
// Olettamasi tilanne
const wishfulThinking = {
  'KUNTANRO': 9
  kuntanimi: 'Alavieska'
}

// Todellinen tilanne
const reality = {
   "'KUNTANRO'": 9,
   kuntanimi: 'Alavieska'
}
Todennäköisesti nämä heittomerkit ovat osa lähdetiedostoa.
 
Liittynyt
23.10.2016
Viestejä
658
Mitä cloud palvelua voi opiskella ilman että maksaa kuukausimaksua siitä. Tai jollain kokeiluversiolla. Azure, AWS? Tarkoituksena olisi saada laitettua oma projekti sinne pyörimään.
Heroku on ilmainen yhdellä prosessilla. Servu menee tosin sleep-tilaan 30 minuutin idlauksen jälkeen ja tällöin tunnit ei kulu.
 
Liittynyt
19.10.2016
Viestejä
3 411
Mitä cloud palvelua voi opiskella ilman että maksaa kuukausimaksua siitä. Tai jollain kokeiluversiolla. Azure, AWS? Tarkoituksena olisi saada laitettua oma projekti sinne pyörimään.
Ensimmäisen vuoden ajalle AWS, Azure ja Google Cloud sisältää ilmaiseksi käytettäviä palveluja ja/tai credittejä. Muistaakseni kaikissa noissa tarkempiin tietoihin pääsee ihan etusivun / signupin kautta, eikä vaadi mitään temppuja (luottokortin todennäköisesti). Noissa myös aika hyvin 'näin teet tällaista' esimerkkejä.
 

Noz

Liittynyt
17.10.2016
Viestejä
161
Koska objektin avain ei ole KUNTANRO vaan 'KUNTANRO'. Nämä kaksi ovat eri tilanteita:

Koodi:
// Olettamasi tilanne
const wishfulThinking = {
  'KUNTANRO': 9
  kuntanimi: 'Alavieska'
}

// Todellinen tilanne
const reality = {
   "'KUNTANRO'": 9,
   kuntanimi: 'Alavieska'
}
Todennäköisesti nämä heittomerkit ovat osa lähdetiedostoa.
Kokeiltu data[1]['KUNTANRO'] ja data[1]["'KUNTANRO'"] yhtä huonolla menestyksellä. Lähdetiedosto: Kunnat - Voimassa olevat Suomen kunnat 1.1.2018 - Avoindata.fi
 

Noz

Liittynyt
17.10.2016
Viestejä
161
Puhdista lähdedata heti ensimmäisenä ennen kuin tuuppaat sen jsoniin niin ei tarvitse kikkailla.
Tuolla lähti toimiman: awk '{if(NR==1)sub(/^\xef\xbb\xbf/,"");print}' kuntaluettelo-laajat-tiedot-2018-01-01.csv > kuntaluettelo-laajat-tiedot-2018-01-01.csv.nobom

Tiedoston alussa oleva 'UTF-8 byte order mark' (/357 / 273 /277) oli varmaankin syynä. Se tarttui ensimmäiseen avaimeen näkymättömäksi merkiksi.
 
Viimeksi muokattu:
Liittynyt
18.10.2016
Viestejä
1 353
Oma kirjoittamani (toki lähteenä on käytetty "jonkin" verran nettiä") Powershell script joka kirjoittaa logitiedostoon login päivämäärän ja kellonajan, Windows käyttäjänimen, Windows profiilin sijainnin ja tämän profiilin koko niin gigatavuina kuin megatavuina.

Koodi:
$Date = Get-Date -Format yyyy.MM.dd_HH.mm.ss
$LOGFILE = "User folder size " + $Date + ".txt"
$Size = (Get-ChildItem $env:userprofile -Recurse | Measure-Object -Property Length -Sum).sum
Write-Output ("Log Date and Time: " + $Date) >> $LOGFILE
Write-Output ("Username: " + $env:USERNAME) >> $LOGFILE
Write-Output ("Profile Location: " + $env:USERPROFILE) >> $LOGFILE
Write-Output ("Profile size in: " + "{0:N2}" -f ($Size/1MB) + " MB") >> $LOGFILE
Write-Output ("Profile size in: " + "{0:N2}" -f ($Size/1GB) + " GB") >> $LOGFILE
Start $LOGFILE
Powershell scriptiä kirjoitan omaksi huvikseni omaan käyttöön ja oppiakseni powershell scriptausta. En ole ikinä koodausta tai scriptausta muutenkuin omaksi huvikseni ja omin päin opiskellut joten kaikki palaute on hyväksi. Eli mikä pistää silmään, mikä on tehty hyvin ja mikä huonosti? Ja mitä parannettavaa tuossa ois?
 
Liittynyt
16.10.2016
Viestejä
543
Eli mikä pistää silmään, mikä on tehty hyvin ja mikä huonosti? Ja mitä parannettavaa tuossa ois?
Ainakin noi stringien ynnäykset ovat aika karseita, ihan kielestä riippumatta. Oma versio:

Koodi:
$Date = Get-Date -Format yyyy.MM.dd_HH.mm.ss
$logFileName = "User folder size $($Date).txt"
$Size = Get-ChildItem $env:userprofile -Recurse | Measure-Object -Property Length -Sum | Select-Object -ExpandProperty Sum

@"
Log Date and Time: $Date
Username: $($env:USERNAME)
Profile Location: $($env:USERPROFILE)
Profile size in: {0:N2} MB
Profile size in: {1:N2} GB
"@ -f ($Size / 1MB), ($Size / 1GB) | Set-Content -Path $logFileName

Start-Process $logFileName
 
Viimeksi muokattu:
Liittynyt
18.10.2016
Viestejä
1 353
Korjailtu ja lisätty vähän tavaraa. Ja kyllä, olen hankkimassa kirjaa tähän hommaan. Ihan mielenkiintoinen homma näin innokkaan harrastelijan silmin:

Koodi:
$Date = Get-Date -Format yyyy.MM.dd_HH.mm.ss
$LogFileName = "PC log $($Date).txt"
$Size = Get-ChildItem $env:userprofile -Recurse | Measure-Object -Property Length -Sum | Select-Object -ExpandProperty Sum
$SizeMB = "{0:N2}" -f ($Size / 1MB)
$SizeGB = "{0:N2}" -f ($Size / 1GB)
$Mem = Get-CimInstance -className Win32_PhysicalMemory | Measure-Object capacity -Sum | % {[Math]::Round(($_.sum / 1GB),2)}
$CPU = (Get-CimInstance -ClassName Win32_Processor | select Name | out-string).Trim()
$GPU = (Get-CimInstance -className Win32_VideoController | select Name | out-string).Trim()
$PC_info = Get-CimInstance -ClassName Win32_ComputerSystem | select -property Name, PrimaryOwnername, Domain, Model, Manufacturer | out-string

@"
Log Date and Time: $Date
Profilename: $env:USERNAME
Profile size in: $SizeMB MB
Profile size in: $SizeGB GB

Processor:
$CPU

Memory size: $Mem GB

Videocard(s):
$GPU

Windows info: $PC_info
"@ | Set-Content -Path $LogFileName

Start-Process $LogFileName
 
Liittynyt
10.08.2017
Viestejä
10
Eräässä open source c# palikassa on kirjoitettu integeri byteiksi näin:
Koodi:
            WriteByte((byte)(val & 0xFF));
            WriteByte((byte)((val >> 8) & 0xFF));
            WriteByte((byte)((val >> 16) & 0xFF));
            WriteByte((byte)((val >> 24) & 0xFF));
Eikö nuo and operaatiot ole tuossa tarpeettomia? Tämänhän pitäisi tuottaa sama lopputulos:
Koodi:
            WriteByte((byte)val);
            WriteByte((byte)(val >> 8));
            WriteByte((byte)(val >> 16));
            WriteByte((byte)(val >> 24));
Vai olenko missannut jotain oleellista noihin casteihin liittyen?
 
Liittynyt
19.10.2016
Viestejä
1 560
Eräässä open source c# palikassa on kirjoitettu integeri byteiksi näin:
Koodi:
            WriteByte((byte)(val & 0xFF));
            WriteByte((byte)((val >> 8) & 0xFF));
            WriteByte((byte)((val >> 16) & 0xFF));
            WriteByte((byte)((val >> 24) & 0xFF));
Eikö nuo and operaatiot ole tuossa tarpeettomia? Tämänhän pitäisi tuottaa sama lopputulos:
Koodi:
            WriteByte((byte)val);
            WriteByte((byte)(val >> 8));
            WriteByte((byte)(val >> 16));
            WriteByte((byte)(val >> 24));
Vai olenko missannut jotain oleellista noihin casteihin liittyen?
Tuo jälkimmäinen taitaa pystyä heittämään OverflowExceptionin.
 
Liittynyt
20.04.2017
Viestejä
580
Onko kukaan oikeasti törmännyt laadukkaaseen avoimeen lähdekoodiin?
Tai sellaiseen, joka lunastaa ne lupaukset modular, extendable ja developer friendly?

Esim. joku verkkokauppakehys - eikö sellaisen ominaispiirteeksi pitäisi kuulua erityisesti tuotteiden, tilausten ja asiakastietojen hallinta sekä muokattavuus?
Esim. kentän lisääminen tuotteelle ei pitäisi vaatia ensinnäkään dokumentaation ulkopuolista tiedonhakua ts. joltain foorumilta pitää etsiä "issue", jossa joku ratkaisee asian ja käyttää siihen noin 200 riviä koodia.
Mun mielestä tuossa ei ole mitään järkeä.

Rakenteita on toki monenlaisia, mutta eikö tuo nyt pitäisi olla lähinnä tuoteluokan perintä ja uusien "kenttien" lisäys?
Tai jopa ihan GUIhin asti toteutettu ratkaisu, jossa voi vain drag'n'drop uusia kenttiä?
 
Toggle Sidebar

Statistiikka

Viestiketjut
237 479
Viestejä
4 163 604
Jäsenet
70 414
Uusin jäsen
O&G

Hinta.fi

Ylös Bottom