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.
Onko kokemuksia WSL2:n (windows subsystem for linux) päällä devaamisesta? Hitti vai Huti?
Aikaisemmissa hommissa devailin aika pitkälti pelkästään VirtualBoxin sisällä olevassa Ubuntu-koneessa, mutta sen kanssa oli omat kömpelyytensä ja esim. pasteeminen windowsin ja virtuaalikoneen välillä ei tuntunut koskaan toimivan niin kuin pitää, virtuaalikoneen ikkunan venyttäminen toimi vähän miten sattuu jne. Joten meinasin testata hommien ja duunikoneen vaihduttua WSL:n päällä devaamista. (Mietin duunikoneeksi Macia, mutta niiden saatavuus oli pakolliselta toimittajalta vähän heikkoa ja en nyt sit tullu valinneeksi käyttikseksi suoraan Linuxia, koska tottumus.)
Mulla on nyt IntelliJ (ultimate) asennettuna Windowsiin (11) ja kaikki projektifilut meinasin pitää WSL:ssä (eli Ubuntu-virtuaalikoneessa). Lähinnä jotain pientä häikkää tuntuu olevan sen kanssa, että tunnistaako IntelliJ projektit oikein, hakeeko se Javan Windowsista vai virtuaalikoneesta ja tunnistaako IntelliJ:n terminaali ylipäätään, että ollaanko Windowsissa vai Linuxissa. Java-kehitystä teen pääasiassa. Saattaa tulla jotain pientä React / TypeScript tehtävää kanssa, mihin vois asennella ehkä erikseen VSCoden.
Hyvä kuullaAiemmin tullut itse vaihdeltua myös Windows/Ubuntu välillä, niin erillisillä koneilla, dualbootilla, kuin virtualboxillakin. Mutta nykyään WSL2 Ubuntun päällä kaikki. Integraatio VSCoden ja Docker Desktopin kanssa toimii mainiosti ja voin lämpimästi suositella. Ainoa suora miinus tulee siitä, että välillä jostain mystisestä syystä WSL:n kautta olevat latausnopeudet netistä on todella tahmaisia. Erilaisia korjauskikkoja on testailtu, mutta mitään lopullista ratkaisua ei ole löytynyt. Ongelma tosin esiintyy melko harvoin, joten ei välttämättä iso juttu. Saattaa myös olla laitteisto/ajurispesifi juttu, eli ei välttämättä edes vaivaa kaikkia.
Hyvä kuulla
Jos saa vielä udella, niin onkos sulla X-server asennettuna tuonne Ubuntuun, ts. ajatko graafisia sovelluksia suoraan sieltä Ubuntusta vai miten? Vai siis sullakin nuo duunisoftat Windowsissa ja työskentely tapahtuu muuten tuolla virtuaalikoneessa?
Kävin latailemassa jo jotkut NVidian ajurit graafisten sovellusten ajamiseksi WSL:ssä ja saan esim. tuon Idean käynnistymään suoraan WSL:stä, mutta vähän kökköä, kun pitäs starttailla se prosessi taustalle ja jos epähuomiossa suljet WSL:n terminaali-ikkunan, niin sulkeutuu myös Idea jne. Eikä tuon WSL:stä startatun IDE:n ikkunan venyttely oo kovin mukavaa (eikä se tottele myöskään tota Windowsin automaattista ruutuun sovittamista).
En tiedä tämänkään asian nykyistä asianlaitaa. Kertokaa jos teillä on tuoreempaa tietoa.
Googlasin vaan pikaiseen aamulla ja jos oikeasti tarvis käyttää rinnan, niin pitäs kokeilla, mutta ilm. VirtualBoxia ja WSL2:ta pitäs pystyä ajamaan nykyisellään rinnan, kunhan on riittävän tuore VirtualBoxin versio. Jäi kyllä vähän epäselväksi, että tarviiko vai eikö tarvii jotain kikkakolmosia Windowsin buuttikonffiin.Mä kokeilin joskus viime vuonna WSL2:ta ja löysin heti ainakin kaksi ongelmaa, jotka käytännössä estivät WSL2:n käytön omalla kohdallani.
Ensinnäkin, Windowsissa piti vaihtaa joku virtualisointiin liittyvä asetus, minkä jälkeen VirtualBox ei toiminut ollenkaan. Eli ei ollut mahdollista käyttää WSL2:ta ja VirtualBoxia samaan aikaan (tai edes eri aikaan mutta samalla käynnistyskerralla). Tämä ei tietenkään kaikille ole mikään vakava ongelma. En tiedä onko tilanne vielä sama.
Toinen ongelma oli GPU:n toimimattomuus. Jonkinlainen (experimentaalinen) tuki Nvidian laitteille ja CUDA:lle yms. oli kai olemassa, mutta tulin siihen tulokseen että ei ne toimi läheskään yhtä hyvin kuin oikeassa Linuxissa. Jossain Nvidian foorumillakin sanottiin että kaikki ei toimi WSL2:ssa vaikka ehkä periaatteessa olisi pitänyt. En tiedä tämänkään asian nykyistä asianlaitaa. Kertokaa jos teillä on tuoreempaa tietoa.
useEffect(document.documentElement.classList.add("dark");)
Miten tuon NextJS:n saa toimimaan tailwindin dark moden kanssa että se ensin lataa <html class="dark"> tagin, eikä pelkän <html> tagin, jos dark mode on päällä. _document.tsx voi laittaa ensin <html class="dark">, mutta sitten on aina dark mode aluksi päällä ennen kuin selain katsoo localstoragesta mikä pitäisi olla.esim. index.tsx:n sisällä toimii liian hitaasti, eli selain saa pelkän <html> tagin ensiksi ja vaihtaa sitten vasta <html class="dark">. Googlella olen toki yrittänyt etsiä miten tämä on mahdollista, mutta ei ole onnistunut.JavaScript:useEffect(document.documentElement.classList.add("dark");)

Miten tuon NextJS:n saa toimimaan tailwindin dark moden kanssa että se ensin lataa <html class="dark"> tagin, eikä pelkän <html> tagin, jos dark mode on päällä. _document.tsx voi laittaa ensin <html class="dark">, mutta sitten on aina dark mode aluksi päällä ennen kuin selain katsoo localstoragesta mikä pitäisi olla.esim. index.tsx:n sisällä toimii liian hitaasti, eli selain saa pelkän <html> tagin ensiksi ja vaihtaa sitten vasta <html class="dark">. Googlella olen toki yrittänyt etsiä miten tämä on mahdollista, mutta ei ole onnistunut.JavaScript:useEffect(document.documentElement.classList.add("dark");)
Juuri näin, pitäisi saada tuo arvo localstoragesta ennen kuin alkaa selain alkaa rendaamaan. Nextjs tietty tekee ensimmäisen avattavan sivun serverin puolella niin se vaikeuttaa tätä ongelmaa.Onko ongelma nyt se, että sun koodi ei osaa katsoa localstoragesta, että esiintyykö siellä joku arvo, ennen kuin renderöi sivuston?
import { Html, Head, Main, NextScript } from "next/document";
export default function Document() {
return (
<Html>
<Head />
<body className="font-sans bg-slate-100 dark:bg-gray-800 transition-colors duration-1000">
<Main />
<script
dangerouslySetInnerHTML={{
__html: `
if (
localStorage.theme === "dark" ||
(!("theme" in localStorage) &&
window.matchMedia("(prefers-color-scheme: dark)").matches)
) {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}`,
}}
/>
<NextScript />
</body>
</Html>
);
}
Käytättekö te ammattilaiset UML-kaavioita suunnittelun apuna? Jos kyllä, niin millä softalla teette UML-kaaviot? Kokeilin Umbrelloa, mutta se on aika buginen.
Kannattaa tsekata myös PlantUML. Tuolla voi kuvata erinäköisiä kaavioita tekstinä, joka helpottaa kaavioiden versionhallintaa. Esim. GitLab osaa rendata PlantUML-kaavioita, jotka on kirjoitettu suoraan Markdown-tiedostoon.Käytättekö te ammattilaiset UML-kaavioita suunnittelun apuna? Jos kyllä, niin millä softalla teette UML-kaaviot? Kokeilin Umbrelloa, mutta se on aika buginen.
Toinen vastaava on Mermaid, joka on tuettu myös Gitlabissa, Githubissa ja Azure Devopsissa.Kannattaa tsekata myös PlantUML. Tuolla voi kuvata erinäköisiä kaavioita tekstinä, joka helpottaa kaavioiden versionhallintaa. Esim. GitLab osaa rendata PlantUML-kaavioita, jotka on kirjoitettu suoraan Markdown-tiedostoon.
cmake -DCMAKE_BUILD_TYPE=RelWithDebugInfo ..
Miksi cmake ei anna mitään virheilmoitusta tai edes varoitusta jos typottaa build typen? Eli jos suoritan vaikkaniin kaikki näyttää toimivan ja ohjelman voi sen jälkeen kääntää, mutta oikeasti kääntäjälle ei mene mitään optimointi- tai debug-flaggeja, koska tuossa build typessä on typo (Pitäisi olla RelWithDebInfo). Teenkö mä jotain vääärin tai eri tavalla kuin muut? Luulisi, että tämä olisi yleinen ongelma. Varoitus tulee asianmukaisesti esim. silloin jos typottaa tuon muuttujan (CMAKE_BUILD_TYPE) nimen.Koodi:cmake -DCMAKE_BUILD_TYPE=RelWithDebugInfo ..
Miksi cmake ei anna mitään virheilmoitusta tai edes varoitusta jos typottaa build typen? Eli jos suoritan vaikkaniin kaikki näyttää toimivan ja ohjelman voi sen jälkeen kääntää, mutta oikeasti kääntäjälle ei mene mitään optimointi- tai debug-flaggeja, koska tuossa build typessä on typo (Pitäisi olla RelWithDebInfo). Teenkö mä jotain vääärin tai eri tavalla kuin muut? Luulisi, että tämä olisi yleinen ongelma. Varoitus tulee asianmukaisesti esim. silloin jos typottaa tuon muuttujan (CMAKE_BUILD_TYPE) nimen.Koodi:cmake -DCMAKE_BUILD_TYPE=RelWithDebugInfo ..
Jos haluaa next level päänsärkyä niin cmake kuikkaan ja bazel tilalle. Siitä alkaa ... päänsärky ... joka ei lopu ennen kuin maailmassa on vain bazel jäljellä.
Olisiko tuoreita näkemyksiä em. työkalujen, tai vastaavien, sopivuudesta hommaan vai onko niin perusjuttu että kaikilla onnistuu? Data ei muutu eli sen voisi muuttaa vaikka jsoniksi jos se helpottaa.
Juurikin näin, jos ei ole tarve datalle tehdä mitää muuta kuin suodattaa & esittää, javascript itsessää nykyää jo sisältää kaikennäköistä kivaa. Jos pitää vielä järjestellä ja/tai suodattaa monimutkaisemmin, nii voipi suorituskyvyssä näkyä riippuen toteutuksesta. Mut noin pienellä datamäärällä huonommallaki toteutuksella javascript selvinnee helposti.Itse tekisin juuri noin kuten mainitsit, eli tiedosto vaikkapa json muodossa palvelimelle josta sen voi lukea Jqueryn fetchillä urlin kautta (tai natiivi javascriptillä ajaxilla jos haluaa), ja sitten käyttää Chart.js:ää käyrän piirtoon. Ei tarvitse tietokantoja eikä mitään isoja js-kirjastoja/kehitysympäristöjä käyttää välttämättä.
Saako pelkällä CSS:llä tehtyä sellaista video-iframea, jonka leveys muuttuu korkeuden muuttuessa, vai vaatiiko se Javascriptiä? Korkeushan muuttuu nätisti leveyden mukaan, mutta mites toisinpäin?
Tällaista ratkaisua haen: linkki. Kun tuolla muuttaa sivun korkeutta niin video kapenee kuvan mukana.
Ongelma on mulla se, että jos korkeussuunnassa muutan sivun kokoa, niin video ei pienene vaan menee alareunasta yli.Esimerkissäsi on kait 100% width&height. Ei lähtökohtaisesti vaadi javascriptiä eikä pitäiskään. Mikä on ongelma?
Jos voit/saat, niin laita html ja css filut tänne, nii varmaan löytyy ongelmaan (voi olla useitaki ongelmia) syy. Mieluusti toki spoiler ja kooditagien alle tai linkki itse sivustoon.Ongelma on mulla se, että jos korkeussuunnassa muutan sivun kokoa, niin video ei pienene vaan menee alareunasta yli.
Ongelma on mulla se, että jos korkeussuunnassa muutan sivun kokoa, niin video ei pienene vaan menee alareunasta yli.
Omassa tilanteessa mulla on siis Youtube-tyyliin gridi täynnä thumbnaileja. Kun thumbnailia klikkaa, niin avaan modalin, jossa on sisällä iframe, joka taas pitää sen videon sisällään. Tällä hetkellä siis video skaalautuu halutusti leveyssuunnassa, mutta pystysuunnassa ei. Seuraavaksi koodi. Käytän saitilla svelteä, muttaJos voit/saat, niin laita html ja css filut tänne, nii varmaan löytyy ongelmaan (voi olla useitaki ongelmia) syy. Mieluusti toki spoiler ja kooditagien alle tai linkki itse sivustoon.
<div on:click|self class="modal">
<div class="content">
<svelte:component this={modalContent} {modalProps} />
</div>
</div>
<style>
.modal {
background-color: rgba(0, 0, 0, 0.5);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.content {
background-color: var(--black1);
border: 2px solid var(--black3);
border-radius: 4px;
width: 80%;
height: 80%;
}
</style>
<div class="container">
<div class="video-wrapper">
<iframe
src="https://www.vidska.com"
frameborder="0"
scrolling="no"
allowfullscreen="allowfullscreen"
/>
</div>
</div>
<style>
.container {
width: 100%;
height: 100%;
}
.video-wrapper {
width: 100%;
height: 100%;
}
iframe {
width: 100%;
height: 100%;
}
</style>
Luultavasti toimii prosentteina video playeri, jos jossain aiemmissa parent diveissä määrittelet tarkemmin sen containerin koon prosenttien sijaan (käyttäen esim. vh vw tai px ja erityisesti sille korkeudelle). Eli ne on aina suhteessa parent elementtiin. Height on rantumpi nuiden suhteen, sillä se katsoo enempi contenttia sen sivun varsinaisen korkeuden sijaan.Jaa. Nyt se lähtikin toimimaan, kun laitoin .content-luokkaan korkeuden ja leveyden vh-yksikköinä prosenttien sijaan.Miksei se prosenteilla toimi?
Joo, no nyt tuo tuntuu aika selvältä. Tai tuntui siihen asti kunnes huomasin, että tuossa mun .content-luokassa width pitää olla määritettynä vh-yksiköllä, jotta tämä toimii. Nyt mulla on siis height 100% ja width 100vh ja näin toimii. Jos käännän noi toisinpäin, niin sitten ei taas toimi.Luultavasti toimii prosentteina video playeri, jos jossain aiemmissa parent diveissä määrittelet tarkemmin sen containerin koon prosenttien sijaan (käyttäen esim. vh vw tai px ja erityisesti sille korkeudelle). Eli ne on aina suhteessa parent elementtiin. Height on rantumpi nuiden suhteen, sillä se katsoo enempi contenttia sen sivun varsinaisen korkeuden sijaan.
Tässä linkissä on asia aika hyvin selitetty heti solution 1 kohdassa:
![]()
[Solved] CSS – why doesn’t percentage height work?
Solution 1 ⭐ The height of a block element defaults to the height of the block's content. So, given something like this: <div id="outer"> <div id="inner"> <p>Where is...9to5answer.com
"However, the height of a block element depends on its content unless you specify a specific height. So there is feedback between the parent and child where height is concerned and saying height: 50% doesn't yield a well defined value unless you break the feedback loop by giving the parent element a specific height. "
Eli tiivistettynä: Et ollut määritellyt missään, että paljonko tuo 100% korkeus on. Vh arvon käyttäminen antaa lukeman pixeleinä viewportin korkeuden mukaan, jonka vuoksi myös sisemmät containerit alkavat ymmärtämään prosenttiarvoja. Sinun antamassa esimerkissäkin videoplayerin divi pitää sisällään: max-height: 80vh.
Javascript/typescript ja vaikka next.js.Mitä backend-tekniikoita & koodikieltä kannattaisi opiskella jos haluaisi tehdä backendin jollain muulla tekniikalla kuin php&mysql ( sekä apache/nginx - perus webhotelli tai google app engine) ?
Ja miten nämä bäckend-tekniikat skaalautuu esim. tuhannen käyttäjän kokoluokkaan ja mitä ne maksaa ?
Php & mysql on ollut helppo ja halpa, mutta tuntuu että se on nykyisin halveksittu
+ bäkkärissä pilvipalvelut myös. Eipä nykyää samanlaista simppeliä komboa vain ole. Onhan toki php-frameworkitki edellee käytössä ja toimii. Php:lla on vain hyvin helppo tehdä hirveitä virheitä.Javascript/typescript ja vaikka next.js.
phplla on todella helppo tehdä asioita ihan pirun väärin (ja aiheuttaa vahinkoa). Siksi se on "vihattu", ei siksi etteikö se olis "cool". Kaikissa kielissä on hyvä käyttää frameworkeja, mut varsinki php:n kans ei pidä sooloilla ellei varmasti tiedä mitä tekee, silloinki parempi triplatarkistaa koodi.Hirveitä virheitä voi tehdä kielestä riippumatta
Ja ei, tämä ei ollut php:n puolustus.
Itse pidän paljonkin Pythonista ja Flaskistakin, mutta en kyllä millään voi suositella tuotantoon Flask backendiä, ainakaan varauksetta. Flask on simppeli kun siinä ei ole mitään ja tuotantoa varten kasataan eri kirjastoista käyttöön sopiva kokonaisuus. Näissä taas kirjastojen laatu vaihtelee kovasti. Ja jos on tarkoitus tehdä monoliitti niin siitä Flask-projektista voi kasvaa todella suuri ja monimutkainen kokonaisuus joka parsitaan kasaan ilman vakiintunutta arkkitehtuuria, eli käyttäjä päättää mielensä mukaan miten koodi ja projekti jäsennellään. Tässä voi tulla huomattavia virheitä ja vääriä tapoja. Lisäksi suorituskyky, muistin ja cpu hallinta voi olla haastavaa Python projekteissa.Bäkkäri flaskilla (eli Pythonilla) on minusta kyllä aika simppeli.
Käännettävillä kielillä on vaikea tehdä kovin suuria virheitä. Esim. Rust-kieli on kovaa huutoa just nyt kun sen kääntäjä on niin hyvä.Hirveitä virheitä voi tehdä kielestä riippumatta
Ja ei, tämä ei ollut php:n puolustus.
Käytämme välttämättömiä evästeitä, jotta tämä sivusto toimisi, ja valinnaisia evästeitä käyttökokemuksesi parantamiseksi.