Follow along with the video below to see how to install our site as a web app on your home screen.
Huomio: This feature may not be available in some browsers.
Pitää harkita tuota GitHubia ainakin kokonaisille scripteille.
Mites ne "muistiinpanot", jotka ovat siis lyhyitä pätkiä, joita copy & pastetan scriptiä tehdessä. GitHubiin vain nekin vai onko parempia työkaluja niille?
Ihan hyvin menee sinne. Löytyy tuolta ihan yhdenki rivin ja parin komennon lyhyitä juttuja tai iha parin rivin conffejaki. Miksi ei, ei maksa mitää.Pitää harkita tuota GitHubia ainakin kokonaisille scripteille.
Mites ne "muistiinpanot", jotka ovat siis lyhyitä pätkiä, joita copy & pastetan scriptiä tehdessä. GitHubiin vain nekin vai onko parempia työkaluja niille?
No, Googlekin sössi jotain Android 13:ssa, koska Pixeleissä oli alkuun paljon akunkestoon liittyviä ongelmia ja Samsungeissa edelleenTuntuu hullulta, että vuonna 2023 edes betajulkaisu voi mennä niin pieleen, että laitteen akkukesto romuttuu.
Niinpä. Näyttää vaan ongelma olevan edelleen Pixeleissäkin olemassa, eli ei olekaan mikään yksinkertainen ratkaista. Itse kun vaihdoin Samsungissa A12 -> A13, alkoi järjetön virrankulutus.Eihän se vaadi kuin sen, että jokin estää laitetta menemästä deep sleepiin.
Jaa, tuo selittääkin sitä kun nykyään tuntuu omassa Samsungissa akku kuluvan aiempaa nopeammin. Ajattelin että johtuu vaan siitä että alkaa olla aika vanha puhelin ja akku ehtoopuolella mutta tosiaan tuo ilmiö alkoi samoihin aikoihin kun jonkun käyttispäivityksen asensin siihen, taisi olla juurikin Android 12 -> 13.Niinpä. Näyttää vaan ongelma olevan edelleen Pixeleissäkin olemassa, eli ei olekaan mikään yksinkertainen ratkaista. Itse kun vaihdoin Samsungissa A12 -> A13, alkoi järjetön virrankulutus.
Et sitten raaskinut yhtään kertoa mitä olet tekemässä.Nonih, apua taas kaipaillaan ja tämä ketju ei ole ikinä tuottanut pettymystä. Eventghostilla yritän lähettää https-urlia ajaakseni automaatiota, mutta en tiedä mitä Eventghostin python script komennoksi pitää kirjottaa.
jos url on vaikkapa https://kylonkivaa.com , niin mitä tuohon ruutuun pitää naputella.
![]()
Tätä jo yritin kun kaivoin eventghostin hajonneelta foorumilta välimuistista keskusteluja:
import urllib; urllib.urlopen('https jotain jotain jotain')
Mutta ei toimi.
Et sitten raaskinut yhtään kertoa mitä olet tekemässä.
EventGhost -niminen tuote löytyy kyllä githubista, mutta projekti vaikuttaa kuolleelta.
Luonnollisesti tarkoitin, että et kerro mitä sillä python-lauseella pitäisi saada aikaan, noin pääpiiorteissään. Siitä nimittäin riippuu sen lauseen sisältö, jota kai kysyit. Mutta kun ei eventghost ole enää edes sen verran olemassa, että dokumentaatiota löytyisi jostain, niin antaapa olla.öö...en ymmärtänyt, että tässä olisi tarve itse automaatiota avata sen enempää, vai mitä tarkoitit? Kysymys siis kuului, että millä python scriptillä voi lähettää POST:n, mutta taklasin tämän toista reittiä jo. EventGhostin oletin (ei pitäisi) monelle olevan tuttu ja kun sillä ei sinällään ole merkitystä, että tekeekö tässä POST:n nyt EventGhostin kautta vai jollakin muulla Pythonia puhuvalla kikkareella.
öö...en ymmärtänyt, että tässä olisi tarve itse automaatiota avata sen enempää, vai mitä tarkoitit? Kysymys siis kuului, että millä python scriptillä voi lähettää POST:n, mutta taklasin tämän toista reittiä jo. EventGhostin oletin (ei pitäisi) monelle olevan tuttu ja kun sillä ei sinällään ole merkitystä, että tekeekö tässä POST:n nyt EventGhostin kautta vai jollakin muulla Pythonia puhuvalla kikkareella.
Luonnollisesti tarkoitin, että et kerro mitä sillä python-lauseella pitäisi saada aikaan, noin pääpiiorteissään. Siitä nimittäin riippuu sen lauseen sisältö, jota kai kysyit. Mutta kun ei eventghost ole enää edes sen verran olemassa, että dokumentaatiota löytyisi jostain, niin antaapa olla.
Okei, kiitos selvennyksestä. On olemassa eräs webcore kotiautomaatiosäännöstö, jossa ajetaan kotiautomaatioon liittyviä sääntöjä. Jos automaatiosäännössä ei ole triggeriä, niin sääntöä voi kutsua myös pilvipalvelun yli automaation internetissä olevalla url-osoitteella. Kun url kirjoitetaan selaimeen, niin automaatio ajetaan.
Nyt yritin siis Evenghostiin määritellä sääntöä, kun tietokone herää suspend tilasta, niin 10 sekuntia heräämisen jälkeen eventghostissa ajetaan python komento joka kutsuu kyseistä internetissä olevaa urlia. Automaation url on https://lässytilää.com. Ja automaatio itsessään power switchaa pistoketta, jotta Dellin näyttö herää hdmi-signaaliin. Siinä siis tietoa jota olitte vailla
Joka tapauksessa ja kuten sanoin, sain asian hoidettua Eventghostilla joka avaa selaimeen urlin ja sulkee sen parin sekunnin päästä pois.
Jos nyt tällä perusteella joku osaa kertoa mitä python-kielellä/komentona pitää kirjoittaa, niin mielelläni kuulisin ja oppisin.
import urllib2
urllib2.urlopen('https://lässytinlää.com')
Mutta en usko, että onnistuu ihan näin helpolla, vaan jotenkin pitää varmaan sinne sivulle tunnistautuakin? Kaikki muu kannattaa tehdä käyttöjärjestelmän säädöillä.Python:import urllib2 urllib2.urlopen('https://lässytinlää.com')
Voi olla, että se sivu toimii JavaScriptilla ja se käyttää jotain protokollaa, mikä onnistuu JS:lla. WebSocket jne., mitä näitä kaikkia on.Joo tuota mä kokeilin jo kun googlettelin apuja. En saanut tuolla toimimaan. Eventghostin loki kertoo "wrong protocol". Jotenkin tuli mieleen, että onkohan https jotenkin urllibille ongelma.
Rust tarjoaa ratkaisun turvalliseen ja suorituskykyiseen muistinkäyttöön. Muistivuotoihin ja virranhallintaan siinä ei sinänsä ole mitään erityisempää, mutta toki sen vahva tyyppijärjestelmä ja kääntäjä antavat eväitä erilaisten ongelmien varmatoimisiin ratkaisuihin. Usein Rustia verrataan pikemminkin C++:an kuin C:hen, joten siinä mielessä C++ 2.0 olisi varmaan lähempänä totuutta kuin C. Tosin se eroaa molemmista huomattavasti, joten Rustin kutsuminen kummankaan 2.0-versioksi voi varmaankin perustellustikin herättää vastalauseita.Koska sulariohjelmoijan elämä on kuin trapetsitaiteilu veitsen terällä ja tasapainona toimii kauhu muisti- ja virranhallintavuotojen välimaastossa, niin tarjoaako Rust tähän ongelmaan ratkaisuja? Onko Rust = C 2.0?
Riippuu varmastikin siitä, miten haluaa tehdä asioita ja millaisia asioita arvostaa ohjelmistokehityksessä. Muistiturvallisiin ja suorituskykyisiin tarkoituksiin Rust on varmastikin erittäin mainio kieli, mutta harvempi tahtoisi esim. kirjoittaa juurikaan minkäänlaisia prototyyppejä Rustilla. Myös vahva tyyppijärjestelmä ja kääntäjä jakavat varmasti mielipiteitä kenties ennen kaikkea siksi, että ne rajoittavat kovalla kädellä huonojen suunnitteluratkaisujen tekemistä (mutteivat toki voi estää kaikkia huonoja ratkaisuja). Tavallaan yllättävänkin usein näkee myös mainittavan, että homma jotakuinkin toimii, kun ohjelman saa kääntymään. Kovin monesta kielestä ei voi laajemmin samaa sanoa. Moniin tarpeisiin Rust on varmastikin erinomainen ratkaisu, mutta joihinkin muihin tarkoituksiin voi löytyä parempiakin työkaluja.Onko Rust hypetyksen arvoinen?
Haiskahtaa siltä että "wrong protocol" kertoo että tuo osaa lähettää nykyisellään vain HTTP:llä ja HTTPS vaatii jotain lisää tuohon. Urlllib (ja muutkin python-kirjastot) tuntuvat välillä antavan todella epäselviä virheilmoituksia joten menee aikalailla arpomiseksi tuon kanssa.Voi olla, että se sivu toimii JavaScriptilla ja se käyttää jotain protokollaa, mikä onnistuu JS:lla. WebSocket jne., mitä näitä kaikkia on.
E: selvinnee, jos avaat selaimesta developer toolsit (F12), sitten menet Network-välilehdelle ja suoritat kutsun selaimella. Tai en ole 100% varma näkyykö se tuolla jos on WebSocket.
Jos palvelu tarjoaa vain HTTP:ää, eikä HTTPS:ää, niin sitten kyllä urllibin vastaus on kyllä tosi paska. Olisi paikallaan lähettää PR.Haiskahtaa siltä että "wrong protocol" kertoo että tuo osaa lähettää nykyisellään vain HTTP:llä ja HTTPS vaatii jotain lisää tuohon. Urlllib (ja muutkin python-kirjastot) tuntuvat välillä antavan todella epäselviä virheilmoituksia joten menee aikalailla arpomiseksi tuon kanssa.
Laitoin hakuun ws:// GitHubista ja jotain löytyi tuolta, niin voisi olla WebSocket kyseessä sen perusteella. En etsinyt sen enempää.Haiskahtaa siltä että "wrong protocol" kertoo että tuo osaa lähettää nykyisellään vain HTTP:llä ja HTTPS vaatii jotain lisää tuohon. Urlllib (ja muutkin python-kirjastot) tuntuvat välillä antavan todella epäselviä virheilmoituksia joten menee aikalailla arpomiseksi tuon kanssa.
uinput = 11# int(input("give number:"))
run = 2
while run<=uinput:
print(run)
run-=1
print(run)
run+=3
if run>uinput:
if (uinput %2) == 0:
pass
else:
print(uinput)
public class Product {
private Long id;
private String productName;
private Company company;
}
public class Company {
private Long id;
private String companyName;
private List<Products> products;
}
{
"productName": "tuote1",
"companyId": 1
}
{
"productName": "tuote1",
"companyName": "Oy Yritys AB"
}
Jos on seuraavanlaiset Java-luokat:
Koodi:public class Product { private Long id; private String productName; private Company company; }Koodi:public class Company { private Long id; private String companyName; private List<Products> products; }
Ja halutaan clientistä tehdä POST-pyyntö uuden Product-tietueen lisäämistä varten, niin kumpiko on parempi tapa viitata tietokannassa olevaan Company-tietoon?
JavaScript:{ "productName": "tuote1", "companyId": 1 }
JavaScript:{ "productName": "tuote1", "companyName": "Oy Yritys AB" }
Sekä nimi että id ovat molemmat tietokannassa uniikkeja, joten se ei tuota ongelmia.
EDIT: Rest API Design - Work with IDs or Literal Strings?
Tämän mukaan noista vaihtoehdoista parempi on tuo tekstimuotoinen viittaus, joten sillä mennään.
En tiedä voiko tuohon vastata oikein mitään järkevää tietämättä tarkemmin, että mikä homma tuo on, miten sovellus buildataan ja julkaistaan, missä tuota ajetaan jne., mutta jos sitä tiedostoa ei voi paketoida sovelluksen matkaan, niin voiko se softa käydä lukemassa sen tiedoston jostain käynnistyessään? Joku julkisen pilven object storage, levypinta tai mikä tahansa paikka, joka ois käytettävissä ja jonne tuolla softalla on vaan pääsy. Tuolloin ylläpito on sitä, että käyt tyrkkään vaan uuden tiedoston tarjolle ja julkaiset tai käynnistät vaan sovelluksen uudestaan.Meillä on csv-tiedostossa 500 riviä ja 4 saraketta. Nämä tiedot pitäisi kovakoodata ohjelmaan sisälle, jotta csv-tiedosta ei tarvitsisi laittaa ohjelman mukana. Onko tähän jokin järkevämpi tapa, kuin kovakoodata rivit omaksi luokaksi sovelluslaajennuksen sisälle? Lähinnä ylläpitoa ajattelen. Jos csv-tiedostoon tulee lisää rivejä, uudelleen pakkaus ei ole ongelma, mutta rivien kovakoodaus esim. skriptillä tuntuu vähän purkkaviritykseltä. "Supersalaisena" tietona noita rivejä ei haluta toimittaa tekstieditorilla avattavassa muodossa. Jos rivejä tulee lisää, tulee uusi csv-tiedosto. Salattu tietokanta tuntuu aika yliampuvalta näin pieneen hommaan.
Mites vaikka triviaali 'salaus' csv tiedostoon, vaikka yksinkertainen xor tai TEA? Jakeluvaiheessa sitten jollain vartavasten tehdyllä simpplelillä kikkareella 'salataan' tuo csv, ja ohjelmassa olisi sisäänrakennettuna vastaava mekanismi tiedoston avaamiseen käynnistysvaiheessa? Mulla oli täsmälleen vastaava juttu firman sisäiseen käyttöön tehdyssä ohjelmassa, ja ratkaisin asian näin (käytin TEA-salausta). Toimi.Meillä on csv-tiedostossa 500 riviä ja 4 saraketta. Nämä tiedot pitäisi kovakoodata ohjelmaan sisälle, jotta csv-tiedosta ei tarvitsisi laittaa ohjelman mukana. Onko tähän jokin järkevämpi tapa, kuin kovakoodata rivit omaksi luokaksi sovelluslaajennuksen sisälle? Lähinnä ylläpitoa ajattelen. Jos csv-tiedostoon tulee lisää rivejä, uudelleen pakkaus ei ole ongelma, mutta rivien kovakoodaus esim. skriptillä tuntuu vähän purkkaviritykseltä. "Supersalaisena" tietona noita rivejä ei haluta toimittaa tekstieditorilla avattavassa muodossa. Jos rivejä tulee lisää, tulee uusi csv-tiedosto. Salattu tietokanta tuntuu aika yliampuvalta näin pieneen hommaan.
Niin tässä mallissako tuo ite tiedosto eläis versionhallinnassa selkokielisenä?Mites vaikka triviaali 'salaus' csv tiedostoon, vaikka yksinkertainen xor tai TEA? Jakeluvaiheessa sitten jollain vartavasten tehdyllä simpplelillä kikkareella 'salataan' tuo csv, ja ohjelmassa olisi sisäänrakennettuna vastaava mekanismi tiedoston avaamiseen käynnistysvaiheessa? Mulla oli täsmälleen vastaava juttu firman sisäiseen käyttöön tehdyssä ohjelmassa, ja ratkaisin asian näin (käytin TEA-salausta). Toimi.
Kyllä, ja sitten paketointi/jakeluvaiheessa csv kryptataan.Niin tässä mallissako tuo ite tiedosto eläis versionhallinnassa selkokielisenä?
Täytyy heti alkuun myöntää että en ole Vuella mitään ikinä tehnyt, mutta veikkaisin että tarvitset Chromeen Vuen devtools lisäosan: Vue.js devtools
Ainakin Reactin vastaava lisäosa helpottaa debuggaamista huomattavasti
Olen tehnyt laskentakaavan if ( A == 1 || A == 2 && B == 3, 'X', 'Y'), mutta se tulostaa aina X, mikäli ensimmäinen ehto täyttyy (A == 1) riippumatta mikä B on. Mikäli ensimmäinen vertailu on false eli tosiasiassa A = 2 tai jokin muu, silloin kaava toimii oikein ja myös B huomioidaan. Samoin jos muokkaan kaavaa niin, että on pelkästään yksi A:n vertailu ja lisäksi tuo B:n vertailu, se toimii oikein.
Jees.Kyllä, ja sitten paketointi/jakeluvaiheessa csv kryptataan.
Lisää sulkeet. Eli if ( ( A == 1 || A == 2) && B == 3...). Silloin vaaditaan, että B on 3, ja lisäksi A:n oltava 1 tai 2. Kannattaa katsoa ohjelmointikielen syntaksista, miten nuo evaluoidaan eli missä järjestyksessä tuo puretaan.
No näin! Nuo sulkeethan saivat kaavan heti toimimaan, ja nyt jälkikäteen mietittynä asia on tietysti looginen. Koitin tuon kielen syntaksia netistä etsiä, mutta en löytänyt. Kiitos avusta!
Esim. C++:ssa ja Javassa evaluoidaan ensin yhtäsuuruus, sitten && ja lopuksi ||. Eli sun ekassa "A == 1 || A == 2 && B == 3" jos A on 1 ja B on 55, niin tuosta tulee "true || false && false" -> "true || false" ->> "true". Mutta sulkeiden kanssa: "(A == 1 || A == 2) && B ==. 3" -> "(true || false) && false" -> "(true) && false" -> "false".
Mutta et tainnut vieläkään kertoa, mistä kielestä kyse, joten en osaa tarkemmin sanoa.
En tosiaan tiedä varsinaisesti mitä kieltä tuo edes on. Kirjoitin siinä ekassa viestissä, että käyttää NCalcia (GitHub - ncalc/ncalc: Mathematical Expressions Evaluator for .NET), tuon verran lukee ohjeissa. Tämä on eräs täysin ohjelmointiin tai mihinkään tietotekniikkaan liittymätön muu järjestelmä, johon pystyn meidän ympäristöön tekemään tällaisia yksinkertaisia laskentakaavoja eri kenttien sisältöjen vertailuun jne. Mutta ainakin noissa sulkeilla tosiaan toimii kuten vinkkasit.
Miten saisin kätevästi tyypit muuttujasta kuten
JavaScript:Let variable = {} variable.something = 566 Typeof variable // ei toimi vaan tyyppi on {}
console.log(typeof {});
let variable = {}
variable.something = 566
console.log(typeof variable);
console.log(typeof variable.something);
-->
> "object"
> "object"
> "number"
Käytämme välttämättömiä evästeitä, jotta tämä sivusto toimisi, ja valinnaisia evästeitä käyttökokemuksesi parantamiseksi.