Pieniä kysymyksiä ohjelmoinnista

Liittynyt
14.10.2017
Viestejä
670
Kiitos! Ja näköjään tuo hämärä .T @ kohta on "laajennettuna"

print(np.matmul(np.transpose(a),b))
Tajusin just, että Numpyssä on ulkotulolle oma funktio, jolla homman saa tehtyä vielä helpommin:
Koodi:
import numpy as np
a = np.array([0,0,1])
b = np.array([1,0,1,0])
print(np.outer(a, b))

Tällä tavalla tehtäessä ei tarvitse käyttää a:lle ja b:lle tuplahakasulkuja, koska outer-funktio hoitaa matriisialgebran automaattisesti, vaikka a ja b ovat yksiulotteisia objekteja.
 
Liittynyt
07.01.2021
Viestejä
703
Olisiko jossain hyvää opasta tai jotain näiden server-komponenttien käytöstä, mitkä on jo NextJS:ssä käytössä ja tulee tänä kesänä vanilla-Reactiin? Koittanut lueskella, mutta en saa ihan perusasioistakaan kiinni, eli miten arkkitehtuuri pitäisi tehdä.

Esimerkiksi jos minulla on lista, ja listan yläpuolella nappeja lajittelua ja yksityiskohtien määrän valintaa varten niin miten tuollainen pitäisi tehdä? Ladataanko lista aina uudestaan serverin päässä kun käyttäjä painaa nappia, eli clientille tulee aina vain html:ää?
 
Liittynyt
23.10.2016
Viestejä
670
Mikähän voi mättää jun Nextjs:n refresh kestää 10-20s vaikka tyyliin CSS-luokkaa muuttaa yhdestä elementistä. On todella rasittavaa devata tällä suorituskyvyllä.

Läppäri on aika vanha (2017 Thinkpad T470s, mutta ei se kai voi niin paljoa vaikuttaa? Prossu on i5-7200U ja muistia 20GB. Sveltekit tällä pyörii kuitenkin ihan ilman ongelmia.

Projektissa tällä hetkellä alle 10 komponenttia, joten ei voi olla koostakaan kiinni.
 

Liitteet

Liittynyt
17.12.2016
Viestejä
447
Mikähän kieli kannattaisi opetella työllistymisen kannalta, kun on vuosikausia tunkannut pääasiassa Python+Django/React -yhdistelmää? Työpaikkailmoituksissa Pythonia kysytään lähinnä apukielenä tai data engineering -hommissa, mutta webin puolella Django/Flask/FastAPI on täysin marginaalissa. Taikasanoja tuntuvat olevan JS/TS, Java ja C# mutta aika takamatkalta saa lähteä, jos yrittää kilpailla Node- tai .NET-konkareiden kanssa.
 

kolistelija

Make ATK Great Again
Liittynyt
17.02.2018
Viestejä
1 187
Mikähän kieli kannattaisi opetella työllistymisen kannalta, kun on vuosikausia tunkannut pääasiassa Python+Django/React -yhdistelmää? Työpaikkailmoituksissa Pythonia kysytään lähinnä apukielenä tai data engineering -hommissa, mutta webin puolella Django/Flask/FastAPI on täysin marginaalissa. Taikasanoja tuntuvat olevan JS/TS, Java ja C# mutta aika takamatkalta saa lähteä, jos yrittää kilpailla Node- tai .NET-konkareiden kanssa.
Suurin valtti työnhaussa on hyvät perusohjelmointitaidot ja vuorovaikutuskyvyt. En olisi niin huolissani jos olet hyvä tiimipeluri ja taitava React ja js koodaaja, saat varmasti hommia joissa pääset opettelemaan Muutakin. TS perusteet on aika helppo oppia varsinkin jos osaa js:n hyvin.
 
Liittynyt
02.11.2016
Viestejä
1 201
Suurin valtti työnhaussa on hyvät perusohjelmointitaidot ja vuorovaikutuskyvyt. En olisi niin huolissani jos olet hyvä tiimipeluri ja taitava React ja js koodaaja, saat varmasti hommia joissa pääset opettelemaan Muutakin. TS perusteet on aika helppo oppia varsinkin jos osaa js:n hyvin.
Oma kokemus työnhausta ei kyllä yhtään tue tätä väitettä. Voi tietysti olla, että kaikki HR-väki valehtelee, mutta useimmiten sanotaan, ettei osaaminen vastaa mitä haetaan. Ei musta siis vaikuta, että tavallinen osaaminen riittää lainkaan.
 
Liittynyt
17.12.2016
Viestejä
447
Edit: siirsin oman vastaukseni YK:n ketjuun ettei mene täällä ohjelmointikeskustelu yleiseksi IT-alan höpinäksi:
 
Viimeksi muokattu:
Liittynyt
01.01.2018
Viestejä
1 204
Onko kellään kokemusta cloudflare tunneleista? Ymmärsinkö oikein että jos mulla on nyt reverse proxyssa esim. grafana.domain.com, niin sen sijasta käyttäisin sitä jotenkin cloudflaresta kokonaan ilman tuota subdomainia?
 
Liittynyt
21.10.2016
Viestejä
58
Onko kellään kokemusta cloudflare tunneleista? Ymmärsinkö oikein että jos mulla on nyt reverse proxyssa esim. grafana.domain.com, niin sen sijasta käyttäisin sitä jotenkin cloudflaresta kokonaan ilman tuota subdomainia?
Tuossa tapauksessa on mahdollista laittaa cloudflaren softa sinne grafana-serverille, joka tekee tunnelin siitä cloudflareen. Sitten voit cloudflaren nimipalvelin asetuksissa laittaa grafana.domain.com osoittamaan siihen tunneliin. Tällä välttää sen ettei tuolta grafana-serveriltä tarvitse avata yhtään porttia internettiin.
 
Liittynyt
01.01.2018
Viestejä
1 204
Tuossa tapauksessa on mahdollista laittaa cloudflaren softa sinne grafana-serverille, joka tekee tunnelin siitä cloudflareen. Sitten voit cloudflaren nimipalvelin asetuksissa laittaa grafana.domain.com osoittamaan siihen tunneliin. Tällä välttää sen ettei tuolta grafana-serveriltä tarvitse avata yhtään porttia internettiin.
Eli periaatteessa perinteistä reverse proxya ei tarvitse ollenkaan? Onko tuossa tunnelissa mitään kaista rajoitusta?
 

Lare

Error 404
Liittynyt
13.11.2016
Viestejä
4 218
Sanokaapas tietäjät, mikä on, kun en saa tulostettua näytölle mitään maan tietoja? GET palauttaa maan tiedot kyllä oikein konsoliin, mutta tulostuksessa mättää joku. Epäilys on, että ongelma on map-metodissa tai syntaksissa (country.name.common).

Tietoja haen täältä: studies.cs.helsinki.fi/restcountries/

import React, { useState } from 'react';

function CountrySearch() {
const [searchQuery, setSearchQuery] = useState('');
const [countries, setCountries] = useState([]);



const fetchCountries = async (query) => {
try {
const response = await fetch(`https://studies.cs.helsinki.fi/restcountries/api/name/${query}`);
if (!response.ok) {
throw new Error('Country not found');
}
const data = await response.json();
console.log("Fetched data:", data);
// const country = data[0];
//console.log("Country:", country.name.common);
setCountries(data);
} catch (error) {
console.error('Error fetching countries:', error);
setCountries([]);
}
}
const handleSearchChange = (event) => {
setSearchQuery(event.target.value);
};
const handleSearch = (event) => {
event.preventDefault();
fetchCountries(searchQuery);

};

return (
<div>
<h2>Country data</h2>
<form onSubmit={handleSearch}>
<div>
Country: <input type="text" value={searchQuery} onChange={handleSearchChange} />
</div>
<div>
<button type="submit">search</button>
</div>
</form>
<h2>Countries</h2>
<ul>
{Array.isArray(countries) && countries.map(country => (
<li key={country.ccn3}>
<h3>{country.name.common} ({country.name.official})</h3>
<p><strong>Capital:</strong> {country.capital?.[0]}</p>
<p><strong>Region:</strong> {country.region}</p>
</li>
))}
</ul>
</div>
);
}
const App = () => {
return <CountrySearch />;
}
export default App
 
Liittynyt
17.10.2016
Viestejä
15 316

Lare

Error 404
Liittynyt
13.11.2016
Viestejä
4 218
Katsopa mikä tyyppi sieltä https://studies.cs.helsinki.fi/restcountries/api/name/{NAME} -endpointista tulee. Nyt luulet/toivot että se on array, mutta onko se? /all-endpointin paluutyyppi puolestaan olisi array.
ChatGPT lopulta osasi auttaa. Seuraavalla pätkällä lähti toimimaan. Tuo ei ole tuttua vielä itselleni, mutta ilmeisesti countries ei ole array, vaan se pitää pakottaa siihen muotoon?

{(Array.isArray(countries) ? countries : [countries]).map(country => (
<li key={country.ccn3}>
<h3>{country.capital}</h3>
 
Liittynyt
17.10.2016
Viestejä
15 316
Tuo ei ole tuttua vielä itselleni, mutta ilmeisesti countries ei ole array, vaan se pitää pakottaa siihen muotoon?
No riippuu ihan mitä haluat tehdä. Mutta yksittäisen maan kysely antaa vastaukseksi vain yksittäisen objektin. Eli tämän yhden maan tiedot, eikä mitään muuta. Tuo /all taas palauttaa listan objekteja eli usean maan tiedot. Alla esimerkki:

Koodi:
const country1 = {
    name: "Sweden"
}

const country2 = {
    name: "Finland"
}

const allCountries = [ {name: "Spain"}, {name: "Germany"} ]
Jos haluat käyttää tuollaisen listan map-metodia, niin sitten sun pitää kääriä yksittäinen maa listaan jotta voit sitä käyttää. Tai sitten luot oman komponentin yksittäisen maan ja usean maan näyttämiseen ja annat ensimmäiselle vain sen objektin ja jälkimmäiselle listan. Nämä voi tehdä monella tavalla.
 
Liittynyt
16.11.2020
Viestejä
2 720
Tarviiko cloudflare tunnelien kanssa ollenkaan ufw:ta? Nmapin mukaan vain ssh portti on auki, mutta ufw inactive.
Ei pitäs varmaan kommentoida asioita, joista ei oikein tiedä, nimittäin kun tuo Cloudflaren tarjooma ei oo tuttua, mutta et varmaan halua IP- tai porttiluvituksia siellä serverillä tehdä, vaan lähtökohtaisesti Cloudflaren päässä, jossa varmastikin mahdollisuudet konfiguroida, mistä tuonne tunneliin sallitaan yhteydet.

(Grafanan kyllä laitoin tarjolle juuri toiseen pilveen, että sinällään tuttuja kuvioita)
 
Liittynyt
03.04.2018
Viestejä
373
Serverien firewall yleensä estää ulkoapäin tulevaa liikennettä koska sieltä ne vihulaiset on tulossa mutta serveristä lähtevää ulosmenevää liikennettä firewallit eivät defaulttina estä.

Cloudflaren demoni kun käynnistetään sinun serverissä niin se "soittaa kotiin" eli ottaa sinun serveristä yhteyden cloudflaren servereihin ja sen jälkeen koko liikennöinti hoidetaan tällä samalla yhteydellä. Koska tämä alkaa ulospäin menevänä liikenteenä niin firewallien default configuroinnit ei tätä estä ja siksi tätä tunnelia varten ei tarvitse avata firewallin default konffauksen lisäksi mitään portteja vaan kaikki saa olla kiinni.

Jos sinulla ei ole mitään firewallia käynistetty niinkuin tuo "ufw inactive" tuntuisi kertovan niin tämä kuulostaa vaaralliselta. Pistä firewall vaan aktiiviseksi olipa se mikä tahansa joko ufw tai joku muu ja kaikki portit kiinni mitä sinä et itse tarvitse tämän tunnelin lisäksi.

Tai toimiihan kaikki toki ilmankin mitään firewallia jos sinä niin haluat. Tällöin tosin sen sun webbiserverin portti johon tunnelin liikenne ohjataan on auki myös tunnelin ohitse kenties koko maailmalle joka on yleensä epätoivottua. Yleensä kait eräs motivaatio tunnelin käyttöön on että vihulaiset ei pääse häiriköimään webbiserveriä suoraan avoimesta portista vaan kaikki liikenne kulkee cloudflaren kautta joka suodattaa osan häiriköinnistä pois.

Cloudflare mainostaa kahta mahdollisuutta konffata se tunneli kokonaan yhdestä paikasta joko sinun serveristä käsin cli komennoilla tai sitten cloudflaren webbisivulta käsin molemmat tunnelin päät samalla kertaa. Tämän lisäksi on kolmas mahdollisuus jota cloudflare ei kovasti mainosta eli tunnelin kummatkin päät konffataan erikseen. Serverin pää "config.yml" tiedostoa editoimalla ja cloudflaren pää webissä "DNS" sivulta ja minusta tämä kolmas on paljon selkeämpi kuin kumpikaan noista mitä cloudflare enemmän mainostaa etenkin jos yhteen tunneliin yritetään laittaa paljon erilaista liikennettä. Ehkä yhden webbisivun konffaus on helpoin tehdä cloudflaren webin "tunnel" sivulta niinkuin cloudflare kovasti houkuttelee konffauksen tekemään.
 
Viimeksi muokattu:
Liittynyt
16.11.2020
Viestejä
2 720
Minä jotenkin aattelin, ettei tuo serveri näkyis oletuksena muulle maailmalle mitenkään (ei julkista IP:tä tai nimeä), vaan entry point on jossain pilvessä, jossa voidaan konfiguroida se, miten liikennettä halutaan johonkin privaattiresurssiin päästää..

Se on ihan hyvää käytäntöä, että kaikki portit on kiinni, mitä ei jossain ympäristössä tarvita, mutta esim. AWS-maailmassa noi tehdään verkkotason access control listeissä tai instance tason security groupeissa, eikä serverillä, jossa ne minusta olis väärässä paikassa, kun yhteyksien pitäs tulla blokatuksi jo ennen, kuin mitään ei haluttua on päässy serverille saakka.

Tarvis varmaan kokeilla tuommoisen tunnelin konfigurointi. Ei oo vaan meikäläisen hommissa Cloudflarea tarvinnu, vaan kaikki menny näiden isojen pilvitoimijoiden pilvessä, mikä ei jossain konesaleissa ole sit asunut ja tietoliikenne jonkun toisen toimittajan tai asiakkaan itsensä vastuulla. Mut kiinnostaa, miten nää on eri toimijoilla tehty, miks tähän aloitin edes kirjoittamaan tuossa aiemmin.
 
Viimeksi muokattu:
Toggle Sidebar

Statistiikka

Viestiketjut
250 756
Viestejä
4 368 857
Jäsenet
72 672
Uusin jäsen
Koostumus

Hinta.fi

Ylös Bottom