Pieniä kysymyksiä ohjelmoinnista

Liittynyt
14.12.2016
Viestejä
182
Zapierilla varmasti onnistuu. Heillä on myös free tier. Facebook + Google Calendar Integrations
Tuonkin eilen löysin ja pitkään kaivelin.

Facebook Pages + Google Calendar Integrations

Tuossa on tarkempi linkki, mutta ei ole Facebook pagesilla triggeriä uudesta eventistä.. Actioniksi olisi kyllä valmis "Tee event kalenteriin", mutta tuo trigger puuttuu.

EDIT:
Zapier support sanoi:
Thanks for getting in touch today. Unfortunately there is no longer a "New Event" trigger as Facebook as deprecated the corresponding API endpoint.
Tulipahan kysyttyäkin Zapierilta...
 
Viimeksi muokattu:
Liittynyt
17.10.2016
Viestejä
481
Mitään ideaa miksi Node servu kaatuu n. 30min / 1h jälkeen? Ainoat Sockettiin liittyvät on tässä ja jotain on vialla ilmeisesti.

 
Liittynyt
17.10.2016
Viestejä
481
saako tuon kiinni on('error') eventillä?
Tarkoitatko näin? Onko muuten normaalia, että vaikka koko Unreal ei ole päällä, ja mitään mahdollisuutta ottaa socket yhteyttä niin silti tämä serveri saa otettua yhteyden johonkin?

nainko.png
Annan olla tuon päällä, otan aikaa ja katson milloin kaatuu
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Onko muuten normaalia, että vaikka koko Unreal ei ole päällä, ja mitään mahdollisuutta ottaa socket yhteyttä niin silti tämä serveri saa otettua yhteyden johonkin?
No tuskin se mitää yhteyttä saa aikaiseksi, jos ei ole minne yhdistää. :confused:

Toinen asia on sitten se että, varmistuuko tuo socketti yhteydestä, eli voihan se kuvitella kuuntelevansa olematonta sockettia.

Annan olla tuon päällä, otan aikaa ja katson milloin kaatuu
nyt kun handläät ton errorin niin ei pitäs kilahtaa tuon node instanssin, se vaan loggaa errorin ja jatkaa kuuntelua.

luultavasti olen väärrässä, mutta tuurilla joskus :nb:
 
Liittynyt
17.10.2016
Viestejä
481
No tuskin se mitää yhteyttä saa aikaiseksi, jos ei ole minne yhdistää. :confused:

Toinen asia on sitten se että, varmistuuko tuo socketti yhteydestä, eli voihan se kuvitella kuuntelevansa olematonta sockettia.



nyt kun handläät ton errorin niin ei pitäs kilahtaa tuon node instanssin, se vaan loggaa errorin ja jatkaa kuuntelua.

luultavasti olen väärrässä, mutta tuurilla joskus :nb:
Olisi loistavaa! Ainakin hyvä alku. Pistän raporttia mitä error tuo tullessaan :)
 
Liittynyt
17.10.2016
Viestejä
481
Näköjään tulee TimeOut aina 15000ms jälkeen. Hmm, ideoita?

error.png

edit: Serveri ei kaadu enää kun se vaan catchaa virheen, hyvä homma, mutta mikähän juttu tuo TimeOut sitten on.
 
Liittynyt
19.10.2016
Viestejä
1 563
Ainakin PHP:ssä on sellainen viritys, että prosessi kuolee automaattisesti, jos se kestää liian pitkään. Luullakseni syynä on se, että lähtökohtaisesti "liian pitkään" kestävä ajo tarkoittaa sitä, että ohjelman suoritus on juuttunut esim. ikuiseen silmukkaan ja se on parempi tappaa. Nodessa voi hyvinkin olla aina sama juttu, ja luultavasti siinäkin timeoutin pituutta voi jotenkin säätää.
 
Liittynyt
17.10.2016
Viestejä
481
Jaahas. Saattoi olla, että mulla oli portissa 3000 jotain outoa. Kun vaihdoin porttia niin lähti nuo haamu-yhteydet pois ja ollut jo tunnin päällä yhteys ilman ongelmia.

edit: Hah, lähes heti kirjoittamisen jälkeen kaatui jälleen. Pahus
 
Liittynyt
02.09.2018
Viestejä
47
Siinä näkyy alussa "Deprecated createSecurePair. Viittaako, että yrittää luoda suojattua, mutta pyytää tekemään se toisennimisellä metodilla. Tai jotain... Silloin se voisi jäädä odottamaan vastausta, joka laukeaa timeouttiin.
Nimimerkillä "Asiaa tuntematon".

Näkyy muuttuneen versiossa:

Class: SecurePair#
- Added in: v0.3.2Deprecated since: v0.11.3

Class: tls.TLSSocket#
- Added in: v0.11.4

Eli ympäristösi on muuttunut.
 
Viimeksi muokattu:

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Siinä näkyy alussa "Deprecated createSecurePair. Viittaako, että yrittää luoda suojattua, mutta pyytää tekemään se toisennimisellä metodilla. Tai jotain... Silloin se voisi jäädä odottamaan vastausta, joka laukeaa timeouttiin.
Nimimerkillä "Asiaa tuntematon".

Näkyy muuttuneen versiossa:

Class: SecurePair#
- Added in: v0.3.2Deprecated since: v0.11.3

Class: tls.TLSSocket#
- Added in: v0.11.4

Eli ympäristösi on muuttunut.
Noi "Deprecated" funkkarit yleensä kyllä toimii ihan hyvin, harvoin niitä poistetaan kokonaan.

Mutta @Jean_Sipulius vios tarkastaa Depsujensa veriost koska toi tosiaan kuoletettu jo node versiossa 0.11.3 ja node on tänään v11.6 :D
 
Liittynyt
17.10.2016
Viestejä
481
Selvisi asia. Koodissa itsessään ei ole ollut mitään vikaa ja tuo Socket, ei liittynyt tämän koodin sockettiin vaan täysin muuhun. Azuren tietokannassa on sisäänrakennettu LoadBalancer, joka tuhoaa idle-yhteydet, jos ne ei ole aktiivisia 4-20 minuutin aikana (saa itse päättää).

Sinne kun lähetti pienen pingin, ennen tuota timeria niin johan yhteys pysyy elossa! Jos joku muu kamppailee saman asian kanssa niin tuossa voi olla syy :)

edit: Hmm, lieköhän uudessa Nodessa joku sisäinen ominaisuus, joka olisi hoitanut Azuren ongelman? Pitää kokeilla jossain välissä. Epäilen kuitenkin, että sama ongelma jatkuisi :)
 
Liittynyt
20.04.2017
Viestejä
582
Osaako joku sanoa, että miten saisin tällä https://svgjs.com/ kirjastolla käännettyä SVG:ssä tiettyä osaa?
Sanotaan vaikka, että kyse on G elementistä IDllä spinner.
SVG ladataan suoraan html sekaan backendissä ja toistaiseksi olen käyttänyt ko. kirjaston adopt funktiota, jota kutsun, kun document.ready jälkeen.

Ei meinaa tulla yhtään mitään. En pääse millään kiinni em. spinner elementtiin SVG sisässä, jota voisin sitten helposti käännellä rotate-metodia kutsumalla.
 

Zigh

Tittelitön
Liittynyt
17.10.2016
Viestejä
4 649
Osaako joku sanoa, että miten saisin tällä https://svgjs.com/ kirjastolla käännettyä SVG:ssä tiettyä osaa?
Sanotaan vaikka, että kyse on G elementistä IDllä spinner.
SVG ladataan suoraan html sekaan backendissä ja toistaiseksi olen käyttänyt ko. kirjaston adopt funktiota, jota kutsun, kun document.ready jälkeen.

Ei meinaa tulla yhtään mitään. En pääse millään kiinni em. spinner elementtiin SVG sisässä, jota voisin sitten helposti käännellä rotate-metodia kutsumalla.
En ole ikinä JS:llä joutunut svg:tä manipuloimaan, mutta olisiko tästä jotain apua: Using Javascript with SVG ?
Etenkin kohdasta "Getting an element" alkaen.
 
Liittynyt
20.04.2017
Viestejä
582
En ole ikinä JS:llä joutunut svg:tä manipuloimaan, mutta olisiko tästä jotain apua: Using Javascript with SVG ?
Etenkin kohdasta "Getting an element" alkaen.
Juu, siis jQueryllä pääsen nopeasti kiinni ja muokkaamaan, mutta olisin halunnut käyttää tuota kirjastoa, kun siinä on tietyt ongelmat ratkottu valmiiksi.
Vaikuttaa taas vaan ylitsepääsemättömältä, vaikka pitäisi olla ko. tarpeeseen tehty kirjasto.

Ja toisaalta, käytän vähän tuon kirjaston ominaisuuksia, joten sinällään en sitä edes tarvitse.
Olisi ollut vain hyvä, jos olisi saanut kätevästi käyttöön... mutta dokumentaatio on ainakin omasta mielestä todella epäselvä mm. sen suhteen, että mitä kirjastossa on ja mitä varten pitää ladata sille tehtyjä lisäosia jne.
 

Zigh

Tittelitön
Liittynyt
17.10.2016
Viestejä
4 649
Äkkiseltään näyttäisi, että tuossa kirjastossa ei ole tukea valmiin SVG:n muokkaamiselle vaan pelkästään tuon kirjaston avulla luotujen.
 
Liittynyt
20.04.2017
Viestejä
582
Äkkiseltään näyttäisi, että tuossa kirjastossa ei ole tukea valmiin SVG:n muokkaamiselle vaan pelkästään tuon kirjaston avulla luotujen.
Tätä hieman pohdiskelin. En kuitenkaan jaksanut uskoa, koska siinä oli niitä eri menetelmiä tuoda SVG:tä.
Mene ja tiedä...
 

Zigh

Tittelitön
Liittynyt
17.10.2016
Viestejä
4 649
Tätä hieman pohdiskelin. En kuitenkaan jaksanut uskoa, koska siinä oli niitä eri menetelmiä tuoda SVG:tä.
Mene ja tiedä...
Testasitko tätä: Referencing ?
eli SVG.adopt
Haet siis noilla aiemmin linkkaamillani ohjeilla SVG:n dommista oikean elementin ja sitten tuuppaat sen tolle adoptille.
 
Liittynyt
05.11.2016
Viestejä
3 828
Osaako joku sanoa, että miten saisin tällä https://svgjs.com/ kirjastolla käännettyä SVG:ssä tiettyä osaa?
Sanotaan vaikka, että kyse on G elementistä IDllä spinner.
SVG ladataan suoraan html sekaan backendissä ja toistaiseksi olen käyttänyt ko. kirjaston adopt funktiota, jota kutsun, kun document.ready jälkeen.

Ei meinaa tulla yhtään mitään. En pääse millään kiinni em. spinner elementtiin SVG sisässä, jota voisin sitten helposti käännellä rotate-metodia kutsumalla.
SVG.get()-funktiolla kenties? Näin ikkään: SVG.Rect - JSFiddle

Tuo yllä mainittu adopt() vaikuttaa siltä, että se on tarkoitettu svg:n ulkopuolisten elementtien kanssa kikkailuun.
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Mitenkäs nyt React 16 kanssa saan näppärästi class componentissa validit html attribuutit propseista.

Koodi:
import React, { Component } from 'react';

export default class App extends Component {
  render() {
    return (
      <div className="App">
        <MyCustomInput
          name={'email'}
          type={'email'}
          veryCustomProp={() => 'something'}
        />
      </div>
    );
  }
}

class MyCustomInput extends Component {
  constructor(props) {
    super(props);
    this.state = {};
  }
  componentDidMount() {
    this.props.veryCustomProp();
  }
  render() {
    let { veryCustomProp, ...rest } = this.props;
    return <input className="cutomInput" {...rest} />;
  }
}
eli onko tosiaan ainoa vaihtoehto destructoida propsit renderissä jotta voin käyttää {..rest}?

Jos renderi näyttää tältä, niin react 16 antaa varoituksen, koska se yrittää tukkia tota veryCustomProp DOM:iin. (react 15 vain ignorasi ei validit html attribuutit)
Koodi:
  render() {
    return <input className="cutomInput" {...this.props} />;
  }
 
Liittynyt
09.03.2018
Viestejä
375
Taas tyhmä kysymys eli mulla on perus laskin switchillä, joka ottaa vastaan vastaan numeron jonka perusteella tehdään case. Ongelmana on, etten haluu kirjotella jokasta tulosta erikseen eli tyyliin kuin toi vikan rivin tulostus, mutta op-muuttuja on tolla koodilla siis numero (1-4) koska se on mitä syötetään. Voiko noille caseille antaa samalla jonku stringin tulostusta vai miltä kantilta tota pitäs kattoo.

Koodi:
                op = Convert.ToInt32(Console.ReadLine());

                switch (op)
                {
                    case 1:
                        result = a + b;
                        switchConfirm = true;
                        break;
                    case 2:
                        result = a - b;
                        switchConfirm = true;
                        break;
                    case 3:
                        result = a * b;
                        switchConfirm = true;
                        break;
                    case 4:
                        result = a / b;
                        switchConfirm = true;
                        break;
                    default:
                        Console.WriteLine($"An unexpected input ({op}), pick again ");
                        break;
                }

Console.WriteLine($"{a.ToString()} {op} {b.ToString()} = {result.ToString}");
Eli jos syöttää 1 niin output: a 1 b = ab, kun tarkotuksena ois tietty tulostaa a + b = ab

Tietysti voisin luoda stringin nimeltä op_string ja joka casessa nimetä sen +-*/ jne, mutta jotenkin sekin tuntuu "väärältä"
 
Viimeksi muokattu:

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Taas tyhmä kysymys eli mulla on perus laskin switchillä, joka ottaa vastaan vastaan numeron jonka perusteella tehdään case. Ongelmana on, etten haluu kirjotella jokasta tulosta erikseen eli tyyliin kuin toi vikan rivin tulostus, mutta op-muuttuja on tolla koodilla siis numero (1-4) koska se on mitä syötetään. Voiko noille caseille antaa samalla jonku stringin tulostusta vai miltä kantilta tota pitäs kattoo.

Koodi:
                op = Convert.ToInt32(Console.ReadLine());

                switch (op)
                {
                    case 1:
                        result = a + b;
                        switchConfirm = true;
                        break;
                    case 2:
                        result = a - b;
                        switchConfirm = true;
                        break;
                    case 3:
                        result = a * b;
                        switchConfirm = true;
                        break;
                    case 4:
                        result = a / b;
                        switchConfirm = true;
                        break;
                    default:
                        Console.WriteLine($"An unexpected input ({op}), pick again ");
                        break;
                }

Console.WriteLine($"{a.ToString()} {op} {b.ToString()} = {result.ToString}");
Eli jos syöttää 1 niin output: a 1 b = ab, kun tarkotuksena ois tietty tulostaa a + b = ab
miten olis array ops = ['?','+','-','*','/'] ja tulosta sitte vaan ops[op]

default casee laitat op = 0 tai jotain muuta fiksua.
 
Liittynyt
20.04.2017
Viestejä
582
Justiin tänään tutkailin erästä JS sovellusta, joka sisälsi paljon/piiiitkiä switch ehtolauseita.

Eroaako ne mitenkään esim. objektin käytöstä? Nopeus, siisteys, jtn muuta?
Itse olisin varmaan tehnyt objektin, josta vain avaimella noudan halutun arvon...
 
Liittynyt
19.10.2016
Viestejä
1 563
Justiin tänään tutkailin erästä JS sovellusta, joka sisälsi paljon/piiiitkiä switch ehtolauseita.

Eroaako ne mitenkään esim. objektin käytöstä? Nopeus, siisteys, jtn muuta?
Itse olisin varmaan tehnyt objektin, josta vain avaimella noudan halutun arvon...
Ellei puhuta hyvin isoista ehtomääristä, voisi ainakin kuvitella nopeuden olevan molemmissa samaa luokkaa. Toki jos on suorituskykykriittinen osa, lienee turha lähteä spekuloimaan vaan kannattaa suosiolla mitata suorituskyky ja tehdä valinta sen perusteella. Tosin lähtökohtaisesti voisi kuvitella, ettei missään tiukassa silmukassa kannattaisi ainakaan luoda toistuvasti "switch-oliota" varsinkaan, jos ehtomäärä on iso. Joka tapauksessa ellet tiedät tarvitsevasi kaikkea mahdollista suorituskykyä, silläkään ei liene väliä - eli ei kannata optimoida ennenaikaisesti. Siisteys riippuu vähän siitä, mitä tarkalleen ottaen tekee ja miten. Itse näkisin, että molemmissa on puolensa siisteyden kannalta. Kirjoittamallahan tuon näkee helpoiten.
 

Kamsi

Team R&T
Liittynyt
17.10.2016
Viestejä
299
Miten pythonin moduleita kuuluisi importtaa? Tein Visual Studiolla testiksi projektin missä juuressa on "PythonTraining.py" tiedosto ja alihakemiston pyfund minne loin tiedoston words.py

Avasin interactive windowin ja ajoin siellä:

Koodi:
>>> from pyfund.words import *
>>> words
<module 'pyfund.words' from '.\\pyfund\\words.py'>
>>> words.print_items([1,2,3,"lalala"])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'pyfund.words' has no attribute 'print_items'
Vastaavanlaisesti laitoin tuohon juuressa olevaan tiedostoon koodin:

Koodi:
from pyfund.words import print_items

def main():
    print_items([1,2,3,"lalala"])
    

if __name__ == '__main__':
    main()
Ja sitten interactive windowissa:
Koodi:
>>> from PythonTraining import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File ".\PythonTraining.py", line 1, in <module>
    from pyfund.words import print_items
ImportError: cannot import name 'print_items'
 
Liittynyt
17.10.2016
Viestejä
401
Miten pythonin moduleita kuuluisi importtaa? Tein Visual Studiolla testiksi projektin missä juuressa on "PythonTraining.py" tiedosto ja alihakemiston pyfund minne loin tiedoston words.py

Avasin interactive windowin ja ajoin siellä:

Koodi:
>>> from pyfund.words import *
>>> words
<module 'pyfund.words' from '.\\pyfund\\words.py'>
>>> words.print_items([1,2,3,"lalala"])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'pyfund.words' has no attribute 'print_items'
Vastaavanlaisesti laitoin tuohon juuressa olevaan tiedostoon koodin:

Koodi:
from pyfund.words import print_items

def main():
    print_items([1,2,3,"lalala"])
  

if __name__ == '__main__':
    main()
Ja sitten interactive windowissa:
Koodi:
>>> from PythonTraining import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File ".\PythonTraining.py", line 1, in <module>
    from pyfund.words import print_items
ImportError: cannot import name 'print_items'
Tulee ekana mieleen se, että sulta puuttuu __init__.py tiedosto sieltä kansiosta jossa se moduuli on, lukase lisää täältä 6. Modules — Python 3.7.2 documentation
 
Liittynyt
22.10.2016
Viestejä
1 106
Millä perustalla nykyään kannattaa toteuttaa web-sovelluksen back end?
 

ted

Liittynyt
17.10.2016
Viestejä
183
Tuohan se näemmä oli. Onko Pythonissa tarkoitus, että moduuleita kutsutaan "moduuli.main()" vai pitäisikö pelkkä "moduuli" toimia?
Jos laitat
Koodi:
import moduuli
niin sieltä kutsutaan moduuli.main()

mutta jos importtaat eksplisiittisesti mainin, eli

Koodi:
from moduuli import main
niin sitten voit kutsua moduulista sitä mainia pelkästään main() , jos ymmärsin oikein mitä kysyt :)

Tosin, jollei moduulin ole tarkoitus pyöriä yksinään, niin se ei sitä mainia tarvitse. Tai en ole koskaan kutsunut toisen moduulin mainia toisesta, ainoastaan luokkia(oliota) tai funktioita.
 

Kamsi

Team R&T
Liittynyt
17.10.2016
Viestejä
299
Jos laitat
Koodi:
import moduuli
niin sieltä kutsutaan moduuli.main()

mutta jos importtaat eksplisiittisesti mainin, eli

Koodi:
from moduuli import main
niin sitten voit kutsua moduulista sitä mainia pelkästään main() , jos ymmärsin oikein mitä kysyt :)

Tosin, jollei moduulin ole tarkoitus pyöriä yksinään, niin se ei sitä mainia tarvitse. Tai en ole koskaan kutsunut toisen moduulin mainia toisesta, ainoastaan luokkia(oliota) tai funktioita.
Tänks. Ilmeisesti tarkoitus on aina käyttää tuota:

Koodi:
import module
Tyyliä?
 
Liittynyt
23.10.2016
Viestejä
658
Koodi:
from pillow import PIL
from threading import Thread
Tänks. Ilmeisesti tarkoitus on aina käyttää tuota:

Koodi:
import module
Tyyliä?
Ei ole aina tarkoitus käyttää tuota.

Esimerkiksi moduuleja, joissa on monta eri luokkaa sisällä ja halutaan käyttää vaan jotain tiettyä luokkaa, niin voidaan myös importata vain kyseinen luokka.

Koodi:
from PIL import Image
from threading import Thread
Myös Flaskin kanssa näkee käytettävän usein spesifejä importteja tyyliin:
Koodi:
from flask import Blueprint, render_template, redirect, url_for, request, flash
Tämä ei ole suositeltavaa:
Koodi:
from moduuli import *
 
  • Tykkää
Reactions: ted

ted

Liittynyt
17.10.2016
Viestejä
183
Tänks. Ilmeisesti tarkoitus on aina käyttää tuota:

Koodi:
import module
Tyyliä?
Riippuu vähän keneltä kysyy, mutta kai suositus on, että eksplisiittisesti importataan. Tosin, itse käytän import moduuli -tapaa, niin tietää mistä moduulista kutsuu funktiota. Tai ainakin itselläni helpottaa debuggaamista. Toki jos on monta eri moduulia, missä samannimiä funktioita, esim. read(), niin sitten voi tehdä näin (muistaakseni):

Koodi:
from moduuli_1 import read as read_1
from moduuli_2 import read as read_2

#koodia

read_1()
read_2()
 
Liittynyt
20.04.2017
Viestejä
582
Millä perustalla nykyään kannattaa toteuttaa web-sovelluksen back end?
Ei tästä nyt ota tolkkua. Mihin kieleen sitä kannattaisi ryhtyä?
Jos kärkenä on verkkopalvelut, niin mihin suuntaan se on menossa?
Oletuksena, että pitäisi olla käyttäjätilit, käyttäjäryhmät, ryhmäsisällöt ja verkkokauppa sekä näiden välinen viestinvaihto?

Python taipuu toki moneen, mutta ehkä se on sen takia enemmän varsinaisiin sovelluksiin kuin "vain" verkkopalveluihin sopiva.
Vastaavasti taas JS olisi verkkopalveluiden näkökulmasta jotenkin luonteva valinta.
Mutta JS-vaihtoehtojakin on niin pirusti ml. kaikki toteutustekniikat.

Mutta aina tuntuu olevan aivan hemmetin takkusta näiden kanssa.
Nimim. juuri koitin asentaa yhden node sovelluksen, niin eihän se edes onnistunut Windowsissa "file name too long" :facepalm:
Jos se nyt C:n juureen asentaa, niin ehkä onnistuu...Juu, en ole asentamassa.
 

Noz

Liittynyt
17.10.2016
Viestejä
161
Pienoinen ongelma saada Leaflet ja GeoServer puhumaan samaa kieltä.

Eli GeoServer tarjoaa WMS-palveluna MML:n 1:320 000 -taustakartan Leafletille. Leafletiin on lisätty kuvan oikeassa yläkulmassa näkyvä nasta, jonka pitäisi olla Helsingin kohdilla. Jostain syystä se ei ole.

Jos karttaa klikkaa Helsingin kohdalta, niin saadaan koordinaatti, joka sijaitsee oikeasti Alankomaiden ja Belgian rajalla, ei siis Helsingissä. Spoilerissa on kommenttiblokissa toinen WMS-tarjoaja, jonka karttapohjalla nasta näkyy oikeassa paikassa.

GeoServerin pohjakarttatasoon ei ole tehty muita muutoksia kuin toisessa kuvat näkyvät.

Koodi:
<!DOCTYPE html>
<html>
    <head>
        <title>Kartta</title>
        <!-- Styles -->
        <link rel="stylesheet" href="styles/styles.css" />

        <!-- Leaflet -->
        <link rel="stylesheet" href="js/leaflet/leaflet.css" />
        <script src="js/leaflet/leaflet.js"></script>

        <!-- Meta -->
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    </head>
    <body>
    <div id="mapContainer">
        <script>

         var myMap = L.map('mapContainer', {
          center: [51.170229, 1.491668],
          zoom: 10,
          crs: L.CRS.EPSG3857
          });

          var wmsLayer = L.tileLayer.wms('http://192.168.1.186:8080/geoserver/ows?', {
           layers: 'taustakartta:taustakartta'
           }).addTo(myMap);


          var marker = L.marker([60.170573, 24.941650]).bindTooltip("Tooltip", {permanent: true}).addTo(myMap);

          /*
          var wmsLayer = L.tileLayer.wms('https://demo.boundlessgeo.com/geoserver/ows?', {
           layers: 'ne:ne'
           }).addTo(myMap);
          */

          var popup = L.popup();
            
          function onMapClick(e) {
           popup
           .setLatLng(e.latlng)
           .setContent("You clicked the map at " + e.latlng.toString())
           .openOn(myMap);
           }
            
          myMap.on('click', onMapClick); 

        </script>
    </div>
    </body>
</html>

kartta.PNG geoserver.PNG
 
Liittynyt
16.10.2016
Viestejä
543
Mutta aina tuntuu olevan aivan hemmetin takkusta näiden kanssa.
Nimim. juuri koitin asentaa yhden node sovelluksen, niin eihän se edes onnistunut Windowsissa "file name too long" :facepalm:
Jos se nyt C:n juureen asentaa, niin ehkä onnistuu...Juu, en ole asentamassa.
Tämän takia näitä pyöritetäänkin nykään containereissa... Mitä tulee bäkkärikieliin niin jos valitsee Node, Python tai Go niin ei ihan hirveän metsään mene.
 
Liittynyt
09.03.2018
Viestejä
375
Pienoinen ongelma saada Leaflet ja GeoServer puhumaan samaa kieltä.

Eli GeoServer tarjoaa WMS-palveluna MML:n 1:320 000 -taustakartan Leafletille. Leafletiin on lisätty kuvan oikeassa yläkulmassa näkyvä nasta, jonka pitäisi olla Helsingin kohdilla. Jostain syystä se ei ole.

Jos karttaa klikkaa Helsingin kohdalta, niin saadaan koordinaatti, joka sijaitsee oikeasti Alankomaiden ja Belgian rajalla, ei siis Helsingissä. Spoilerissa on kommenttiblokissa toinen WMS-tarjoaja, jonka karttapohjalla nasta näkyy oikeassa paikassa.

GeoServerin pohjakarttatasoon ei ole tehty muita muutoksia kuin toisessa kuvat näkyvät.
Mistään mitään tietämättä, voiko tämä https://i.gyazo.com/a34a1f1800d782c8e9db2d145f5de4e6.png olla syyllinen
 
Liittynyt
20.04.2017
Viestejä
582
Sinällään ohjelmointia liippaava kysymys tahi kommentti, kun esim. Google Drivessa ei voi erottaa linkkisolusta pelkkää URLia.
Kuitenkin, kun viet kursorin päälle, niin kummasti osaa tooltipsissä esittää URLin.

Sama vaivaa Exceliä ja pitää viritellä skriptit, että onnistuu - ehkä.
Eikä ainakaan Drivessa onnistunut Googlesta löytyneiden ohjeiden avulla ja funktion jälkeen solu on tyhjä.

Tuntuisi, että tällainen olisi aika built-in, mutta ei ilmeisesti...
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Sinällään ohjelmointia liippaava kysymys tahi kommentti, kun esim. Google Drivessa ei voi erottaa linkkisolusta pelkkää URLia.
Kuitenkin, kun viet kursorin päälle, niin kummasti osaa tooltipsissä esittää URLin.

Sama vaivaa Exceliä ja pitää viritellä skriptit, että onnistuu - ehkä.
Eikä ainakaan Drivessa onnistunut Googlesta löytyneiden ohjeiden avulla ja funktion jälkeen solu on tyhjä.

Tuntuisi, että tällainen olisi aika built-in, mutta ei ilmeisesti...
En kyllä yhtää ymmärrä mitä tarkoitat tässä? Avaas vähän.

ps.
Tuolla on muuten ihan exeli lankakin.
 
Liittynyt
20.04.2017
Viestejä
582
Jos ei omista Exceliä ja haluaisi käyttää Googlen tuotteita monestakin perustellusta syystä, niin ei onnistu.
Ei onnistu, vaikka Google Sheets itsessään tunnistaa linkitetun solun ja sen osoitteen, niin solun tekstiä ja linkkiä ei saa erotettua toisistaan.

Kuukkeloimalla löydetty skriptikään ei näytä toimivan enää ja palauttaa tyhjän vastauksen.
Joku muukin voisi toki testata: Extract URLs or Link Text from a Google Sheets Cell - BetterCloud Monitor
 
Liittynyt
23.10.2016
Viestejä
658
Nyt en kyllä minäkään ymmärrä mistä tässä puhutaan.

Siis haluat hakea linkin jostain google sheets -dokumentin solusta, jossa on muutakin tietoa URL:n lisäksi? Voitko laittaa screenshotin?
 

Zigh

Tittelitön
Liittynyt
17.10.2016
Viestejä
4 649
Kuukkeloimalla löydetty skriptikään ei näytä toimivan enää ja palauttaa tyhjän vastauksen.
Joku muukin voisi toki testata: Extract URLs or Link Text from a Google Sheets Cell - BetterCloud Monitor
Kyllä tämä linkin skripti toimii ainakin uuteen tyhjään Google Sheetiin. Tiedä sitten mikä se sinun tiedostosi on, joku importattu Excel?

Kun valitset sen linkin sisältävän solun, niin mitä formula-kentässä näkyy? Pitäisi olla tyyllin:
Koodi:
=HYPERLINK("https://www.google.com/","Testi linkki")
 
Liittynyt
20.04.2017
Viestejä
582
Nyt en kyllä minäkään ymmärrä mistä tässä puhutaan.

Siis haluat hakea linkin jostain google sheets -dokumentin solusta, jossa on muutakin tietoa URL:n lisäksi? Voitko laittaa screenshotin?
No se on aika tavanomaista, että linkkiteksti eroaa urlista, ja tässä on kyse niiden erottamisesta omiksi soluiksi.

Kyllä tämä linkin skripti toimii ainakin uuteen tyhjään Google Sheetiin. Tiedä sitten mikä se sinun tiedostosi on, joku importattu Excel?

Kun valitset sen linkin sisältävän solun, niin mitä formula-kentässä näkyy? Pitäisi olla tyyllin:
Koodi:
=HYPERLINK("https://www.google.com/","Testi linkki")
Jep, Excelistä kopioitu, jolloin ei näytä olevan sitä kaavaa. (HTML-sivuhan se google taulukko on, jolloin siinä voi olla erityyppisiä linkkiratkaisuja)
Sain kuitenkin luotua Exceliin funktion, joka riisui URLit omaan sarakkeeseen.
 

Noz

Liittynyt
17.10.2016
Viestejä
161
Pienoinen ongelma saada Leaflet ja GeoServer puhumaan samaa kieltä.

Eli GeoServer tarjoaa WMS-palveluna MML:n 1:320 000 -taustakartan Leafletille. Leafletiin on lisätty kuvan oikeassa yläkulmassa näkyvä nasta, jonka pitäisi olla Helsingin kohdilla. Jostain syystä se ei ole.

Jos karttaa klikkaa Helsingin kohdalta, niin saadaan koordinaatti, joka sijaitsee oikeasti Alankomaiden ja Belgian rajalla, ei siis Helsingissä. Spoilerissa on kommenttiblokissa toinen WMS-tarjoaja, jonka karttapohjalla nasta näkyy oikeassa paikassa.

GeoServerin pohjakarttatasoon ei ole tehty muita muutoksia kuin toisessa kuvat näkyvät.

Koodi:
<!DOCTYPE html>
<html>
    <head>
        <title>Kartta</title>
        <!-- Styles -->
        <link rel="stylesheet" href="styles/styles.css" />

        <!-- Leaflet -->
        <link rel="stylesheet" href="js/leaflet/leaflet.css" />
        <script src="js/leaflet/leaflet.js"></script>

        <!-- Meta -->
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    </head>
    <body>
    <div id="mapContainer">
        <script>

         var myMap = L.map('mapContainer', {
          center: [51.170229, 1.491668],
          zoom: 10,
          crs: L.CRS.EPSG3857
          });

          var wmsLayer = L.tileLayer.wms('http://192.168.1.186:8080/geoserver/ows?', {
           layers: 'taustakartta:taustakartta'
           }).addTo(myMap);


          var marker = L.marker([60.170573, 24.941650]).bindTooltip("Tooltip", {permanent: true}).addTo(myMap);

          /*
          var wmsLayer = L.tileLayer.wms('https://demo.boundlessgeo.com/geoserver/ows?', {
           layers: 'ne:ne'
           }).addTo(myMap);
          */

          var popup = L.popup();
           
          function onMapClick(e) {
           popup
           .setLatLng(e.latlng)
           .setContent("You clicked the map at " + e.latlng.toString())
           .openOn(myMap);
           }
           
          myMap.on('click', onMapClick);

        </script>
    </div>
    </body>
</html>

Jonkinlainen ratkaisu:
1) Yksirivinen .prj-päätteinen tiedosto GeoServerin karttatiedostojen sekaan samaan kansioon:
Koodi:
PROJCS["ETRS89 / TM35FIN(E,N)",GEOGCS["ETRS89",DATUM["European_Terrestrial_Reference_System_1989",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4258"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",27],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","3067"]]
2) GeoSerververissä luodaan ImageMosaic-tyyppinen store kartta-aineistosta (WorldImage toimii myös, mutta raskas renderöitymään)
3) saatavaan karttatasoon 'Declared SRS: EPSG:4326' ('SRS handlingia' en testaillut, 'Bounding boxes' jätetty oletuksiin)
4) index.html:stä 'crs: L.CRS.EPSG3857' pois
 

nnaku

I'm object-oriented!
Liittynyt
28.11.2016
Viestejä
779
Jos ei omista Exceliä ja haluaisi käyttää Googlen tuotteita monestakin perustellusta syystä, niin ei onnistu.
Ei onnistu, vaikka Google Sheets itsessään tunnistaa linkitetun solun ja sen osoitteen, niin solun tekstiä ja linkkiä ei saa erotettua toisistaan.

Kuukkeloimalla löydetty skriptikään ei näytä toimivan enää ja palauttaa tyhjän vastauksen.
Joku muukin voisi toki testata: Extract URLs or Link Text from a Google Sheets Cell - BetterCloud Monitor
upload_2019-2-1_22-25-38.png


Koodi:
/**
 * Returns the URL of a hyperlinked cell, if it's entered with hyperlink command.
 * Supports ranges
 * @param {A1}  reference Cell reference
 * @customfunction
 */
function linkURL(reference) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var formula = SpreadsheetApp.getActiveRange().getFormula();
  var args = formula.match(/=\w+\((.*)\)/i);
  try {
    var range = sheet.getRange(args[1]);
  }
  catch(e) {
    throw new Error(args[1] + ' is not a valid range');
  }
  var formulas = range.getFormulas();
  var output = [];
  for (var i = 0; i < formulas.length; i++) {
    var row = [];
    for (var j = 0; j < formulas[0].length; j++) {
      var url = formulas[i][j].match(/=hyperlink\("([^"]+)"/i);
      row.push(url ? url[1] : '');
    }
    output.push(row);
  }
  return output
}

edit: oli joku satavuotta vanha välilehti auki, asia on näköjään jo keskusteltu täällä
 
Liittynyt
20.04.2017
Viestejä
582
Kukaan tutustunut tähän kirjastoon, jolla voi ainakin osoitteen yli ladata JSON-statia badosa/JSON-stat ?
En löytänyt mitään viitteitä POST metodista, joten ajattelin, että voiko POSTin hoitaa muulla tapaa ja syöttää vain sen vastauksen tuolle kirjastolle?
En vain löytänyt mitään siihenkään liittyen...

EDIT: itse itselleni vastaten eli voi syöttää dataa yksinkertaisesti JSONstat(object);
 
Liittynyt
09.03.2018
Viestejä
375
Yritän pientä create-react-app ohjelmaa testailla Jestillä ja Enzymellä, joka on aivan uusi tuttavuus mutta ei kelpaa. Antaa errorin: Cannot find module 'enzyme' from 'tester.test.js'

Koodi:
import React from 'react';
import { shallow } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
Vai pitääkö luoda jotain setuppifiluja, kun dokumentaatiossa puhutaan sellasista. Installation · Enzyme
 
Liittynyt
19.10.2016
Viestejä
653
Yritän pientä create-react-app ohjelmaa testailla Jestillä ja Enzymellä, joka on aivan uusi tuttavuus mutta ei kelpaa. Antaa errorin: Cannot find module 'enzyme' from 'tester.test.js'

Koodi:
import React from 'react';
import { shallow } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
Vai pitääkö luoda jotain setuppifiluja, kun dokumentaatiossa puhutaan sellasista. Installation · Enzyme
Kai sulla on depsuna tuotu enzyme package.jsoniin?

Ja kyllä se taitaa vaatia ton setupin myös. Jestin konffifiluun sitten kerrot sen olemassaolosta.
 
Viimeksi muokattu:
Liittynyt
09.03.2018
Viestejä
375
Kai sulla on depsuna tuotu enzyme package.jsoniin?

Ja kyllä se taitaa vaatia ton setupin myös. Jestin konffifiluun sitten kerrot sen olemassaolosta.
Missäs tää Jestin konffifilu sitten löytyy, vai pitääkö se ite luoda? Oon siis aivan pihalla reactista, testaamisesta sitte puhumattakaan. Yritän noita dokumentaatioita seurata, mutta mikään ei tunnu toimivan.
 
Toggle Sidebar

Statistiikka

Viestiketjut
240 136
Viestejä
4 196 813
Jäsenet
70 854
Uusin jäsen
rata-mestari

Hinta.fi

Ylös Bottom