- gban: Ingyen kellene, de tegnapra
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- vrob: Az IBM PC és a játékok a 80-as években
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Magga: PLEX: multimédia az egész lakásban
- Gurulunk, WAZE?!
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
-
LOGOUT
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
lanszelot
addikt
válasz
nevemfel #8499 üzenetére
Az nem legenerálja hanem önmagában futtatja.
Az egy családfa program, amit a saját gépeden nézegethetsz.
A családfát kigenerálja magába az adatokból, de nincs export.Pala: pontosan így van, tanulnom kell, de mindenhol az van /mivel az alapokat megtanultam/, hogy kezdjek el csinalni valamit amit szeretnék, és a felmerülő problémákat megoldva tanuljak tovább.
Én nem akarok ebben dolgozni, a flash-es családfám kuka lett, és azt szeretném újra megcsinálni, csak ennyi érdekel. Tehat ez az amit csinálnom kell.
Fentebb is írtam, hogy fogalmam sincs, hogy kell tervezni, az sehol senki sem mondja el.
Nem tudom mi az első lépés, és mi a második, harmadik.
Pl ramdom szám generátor: kell egy gomb, majd javaban írok egy random szám generátort, hozzá rendelem a gombhoz , végül alert-tel kiiratom.
Ezt nem tudom, mit kell a családfánál.
Így nem tudok mi után utána nézni. -
Pala
veterán
válasz
lanszelot #8496 üzenetére
Az a helyzet, hogy (látva a korábbi hozzászólásaidat a topikban) neked nem komplex feladatok megoldásával kellene foglalkoznod, hanem tanulással. Méghozzá azért, mert alapvető ismereteid hiányoznak, nem csak JavaScript és a webprogramozás, hanem úgy általában a programozás terén. Félreértés ne essék, nincs ezzel semmi gond, mindenki tartott itt egyszer... csak ezt fel kellene ismerned.
-
lanszelot
addikt
válasz
lanszelot #8484 üzenetére
Hello,
Itt írja a készítő, hogy SVG + html + css + js ezzel rakta össze.
De még mindig nem tudom merre induljak, hogy kezdjek bele, egyáltalán semmit.
-
Pala
veterán
válasz
Silεncε #8486 üzenetére
A linkelt codepennél az a probléma, hogy egyetlen root node-ból (parent) indul az egész, miközben ugyebár minden (normális) embernek két szülője szokott lenni, emellett oldalágon beházasodást is kezelni kell és akkor jönnek még ilyen buktatók, mikor rokoni szálon házasodnak emberek és úgy lesz gyerekük, meg egyéb finomságok...
Ezért nem lehet fa-struktúrát használni, hanem általánosabb gráf kell ide, amiben a körmentességet biztosítani kell, hiszen az nem fordulhat elő, hogy a nagyapa fiának a fia a nagyapa apja is legyen.
Fel kell állítani dummy adatokkal egy példa-családfát 20-30 emberrel, leképezni az egészet egy szomszédossági listába (adjacency list), ez alapján már ki lehet generálni rekurzívan valami otromba gráfot belőle, aztán lehet gondolkodni a formázáson. Szerintem ez utóbbi a nagyobb challenge benne, hogy miként lehet ezt átláthatóan prezentálni.
-
Silεncε
őstag
válasz
lanszelot #8484 üzenetére
Szerintem alapvetően két úton tudsz elindulni. Kérdés: mennyire szeretnéd, hogy dinamikus legyen?
Első út: ez akkor működik, ha elég a beégetett adat. Találtam egy ilyen codepent (nem én csináltam) [link], ez nagyjából olyan, amit szeretnél, de nyilván ki kell egészíteni.
Második út: canvas+JS. Ez (szerintem) muszáj, ha dinamikussá akarod tenni (meg lehet oldani az elsővel is valszeg, de kihullik a hajad a CSS miatt). Ekkor kell a Pala által felvetett gráfelmélet is
Sose csináltam még ilyet, csak ötletelek
-
Pala
veterán
válasz
lanszelot #8484 üzenetére
Ez egy nagyon nem triviális topik! Kezdőknek én nem javasolnám, de ha sok felesleges hajszálad van, akkor első körben egy kis gráfelmélet-tanulmányozást javaslok, azon belül is egy irányított körmentes gráfra (directed acyclic graph) lesz szükséged az adatmodellezéshez.
-
lanszelot
addikt
Hello,
Ha volna vkinek kedve/ideje/tudása segíteni:
Egy ilyen csaladfat szeretnék, html-css-js /se j-query, se bootstrap, se semmi más/
Fogalmam sincs merre induljak, vagy egyáltalán hogy kezdjek bele. -
Taci
addikt
Jobb megoldás híján maradtam transform-piszkálásnál.
Én így oldottam meg, ha esetleg később valaki ilyen problémával találkozna:
function scrollSidePanelScrollContent(yToScroll){
var sidePanelScrollContent = document.getElementsByClassName("scroll-content")[0];
var transformCurrentValue = sidePanelScrollContent.style.transform;
var translate3DValueOfYpx = transformCurrentValue.split(",")[1];
var translate3DValueOfY = translate3DValueOfYpx.replace("px", "");
var scrollToY = parseInt(translate3DValueOfY) + yToScroll;
leftSidePanelScrollContent.style.transform = "translate3d(0px, " + scrollToY + "px, 0px)";
}
(Nyilván profibban is lehet, de így átlátható, mit-miért, alapnak tökéletes lehet.)
Ha valaki azért tudja a "rendes" megoldást erre a problémára, írjon majd.
Köszi. -
Taci
addikt
Sziasztok!
(Bocsánat, csak ilyen hosszan leírva tudom elmagyarázni, mi is a probléma.)
A template-ben amit használok (Bootstrap-alapon), van egy JS, ami a scroll-ozásért felel:
smooth-scrollbar.js
Ezeket az infókat látom róla benne kommentelt sorokban, hátha segít beazonosítani, hátha valami általánosabb JS:
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License")
* cast `I.Scrollbar` to `Scrollbar` to avoid error
*
* `I.Scrollbar` is not assignable to `Scrollbar`:
* "privateProp" is missing in `I.Scrollbar`
*
* @see https://github.com/Microsoft/TypeScript/issues/2672Ahogy látom, ez a szkript a sidebar-ban van használva. Úgy találtam rá, hogy van a sidebar-ban pár elem, ami
data-toggle="collapse"
segítségével "bont ki" és "zár össze" tartalmakat (hogy több/kevesebb tartalmat mutasson), és most jött elő a következő hiba:Ha a sidebar alján lévő gombbal (
data-toggle="collapse"
) bontom ki a tartalmat, és legörgetek a kibővített lista aljára, és az ott lévő gombbal bezárom ezt a listát (szinténdata-toggle="collapse"
), akkor nem scroll-oz vissza, és ha mondjuk egy oldalnyi plusz tartalmat mutatott pluszban, és most azt zárom be, akkor a sidebar kvázi üres lesz, mert a tartalmat már elrejtette, viszont az összezárt tartalom feljebb van, és már csak az üres területet mutatja. Aztán amint egy picit is scroll-ozok, ugrik egy hathalmasat, pontosan onnan folytatva, ahol a kibontás előtt állt.Ezen a ponton kezdtem el keresgetni, mi-hol is történik, és ekkor találtam rá, hogy a
smooth-scrollbar.js
végzi ezt a scroll-ozós számításokat.Azt találtam, hogy létrehoz egy
scroll-content
nevű class-t/osztályt, aminek folyamatos számítások alapján állítja be a transform stílust, konkrétan ezzel mozgatva a tartalmat, srollozás gyanánt.Ha a tetejére scroll-ozok, akkor:
<div class="scroll-content" style="transform: translate3d(0px, 0px, 0px);">
Ha a jelenlegi ablakméret aljára, akkor:
<div class="scroll-content" style="transform: translate3d(0px, -291px, 0px);">
Ha kibontom a tartalmat, és az aljára scroll-ozok, akkor:<div class="scroll-content" style="transform: translate3d(0px, -988px, 0px);">
Tehát kb. 700 pixellel lejjebb visz/vagyok.Aztán itt jön a probléma, mert amikor összezárom a tartalma a
data-toggle="collapse"
segítségével, akkor konkrétan lent hagy az alján,-988px
-en marad a transform, míg a tartalom már azt a kb. 700 pixelt visszazárta, így ott marad kb. 700 pixelnyi üres terület.
Aztán ha egy picit is görgetek felfelé, akkor nem-988px
-elről kezdi felfele a görgetést, hanem az azelőtti értékről, a-291px
-ről.Szóval az a változó amit figyel, hogy meddig tart a tartalom alja, az már visszaállt a helyes értékre, a
-291px
-re, viszont atransform: translate3d()
-vel nem "megy utána".
Ezért arra gondoltam, hogy oké, akkor "utána küldöm" én:document.getElementsByClassName("scroll-content")[0].style.transform = "translate3d(0px, 0px, 0px)";
És itt jött az a gond, hogy alapból nem akartam ezzel sokat vesződni, mert akkor mindig azt kéne néznem, hogy honnan indult a kibontás, mennyi pixelről, és oda küldeni vissza. Ehelyett inkább egyből a tetejére dobtam vissza (0px, 0px, 0px).
Viszont itt láttam, hogy hiába a transform, attól még a
-291px
van bejegyezve, hogy ott állt meg legutóbb a scroll-ozás, így hiába dobom a tetejére, ha kicsit görgetek, újra-291px
-elről folytatja.Van valakinek tapasztalata ezzel esetleg? Meg lehet ezt oldani valami egyszerű módon?
Remélem, ez valami általánosabb JS (bár én sosem láttam még), és esetleg más is találkozott már ilyen "jelenséggel", így nem túl specifikus a kérdésem.Köszi!
-
coco2
őstag
Van valahol szabálygyűjtemény arról, hogy a javascript mikor konvertál automatikusan változó típust (pld numeric/string/boolean) ? Böngésző motoros js a kérdés, ha eltérő szabályok lennének.
-
-
lanszelot
addikt
Hello,
VSC ben a #8464 szerint szoktam futtatni.
Most megnyitottam egy file-t /file-openfile Ctrl+O/ és nem rakta ki oldalra /explorer részbe/, így nem tudom úgy megnyitni.
Ki van nyitva az explorer vannak is ott file-ok, de ezt hiába nyitom újra nem kerül oda.
Hogyan tudom oda oldalra kirakni?martonx: Köszönöm szépen neki estem tanulni
-
lanszelot
addikt
válasz
martonx #8472 üzenetére
Hello,
Köszönöm szépen.
Úgy szoktam indítani ahogy a képen van, ezek szerint az is szervernek felel meg.
/ezt nem tudtam, tehát szerverrel indítom/Van min átrágnom magam, mert minden új.
Miért => használtál a függvény helyett, van különbség?
/Azt értem hogy név nélküli függvény/-mentéskor automatikus formázás be van sztem állítva és azért így rakta be egy sorba
-
martonx
veterán
válasz
lanszelot #8464 üzenetére
Szia!
Csináltam neked egy ilyen példát:
Html:
<html><head> <title>Local json fetcher</title></head><body> <h1>Hello my json fetcher</h1> <div id="preview"></div> <script src="/index.js"></script></body></html>
Js:
(async () => { const previewElement = document.getElementById('preview'); const response = await fetch('data.json'); const jsonString = await response.text(); const myObject = JSON.parse(jsonString); myObject.users.forEach(user => { const newDiv = document.createElement('div'); newDiv.innerText = user.name; previewElement.appendChild(newDiv); });})()
Json:
{ "users": [ { "id": 1, "name": "Víz Elek" }, { "id": 2, "name": "Flex Elek" } ]}
Mivel localban csináltam, localban teszteltem, ez így garantáltan működik
Remélem segítettem, és remélem ezt a megoldást kerested!u.i: nem tudom miért ilyen fos a PH-s kódformázás, de mindegy, majd magadnál szépre átformázod, ezt a pár sor kódot.
-
nevemfel
senior tag
válasz
lanszelot #8464 üzenetére
Ha <script src=""> megoldással behúzol egy js fájlt, akkor ez így működhet. Ha viszont a json fájlt nem akarod vagy nincs lehetőséged js fájllá átkonvertálni (az a régebbi data = {...} erről szól), akkor lokálban nem tudsz csakúgy behúzni egy json fájlt. Kell egy lokális webszerver.
-
sztanozs
veterán
válasz
lanszelot #8464 üzenetére
illetve ha van fent python, akkor a gyökérkönyvtárból ez kell kiadni, hogy indíts egy egyszerű webszervert:
python -m http.server 8000
vagy ha vant fent php a gépen, akkor php -S localhost:8000
és a http://localhost:8000/ címen kiszolgálja az aktuális könyvtárat. -
disy68
aktív tag
válasz
lanszelot #8464 üzenetére
Nem mindegy lokálban sem, hogy a böngésző által megnyitott resource protokollja http(s):// vagy file://
Egyébként ez pl. node.js-el nagyon egyszerűen orvosolható.
Telepíteni kell a node.js-t.
Aztán feltelepíted npm-el a http-server-t:npm install http-server -g
majd a mappában, ahol vannak a fájlok elindítod:http-server
és localhost alatt a 8080-as porton eléred http-n keresztül
-
coco2
őstag
válasz
lanszelot #8464 üzenetére
Mondjuk azért töltenéd fel, hogy tesztelni tudj. Ha helyi könyvtárban össze is barkácsolsz valamit, utána felrakod szerverre, és azt fogod tapasztalni, se kép, se hang, semmi. Úgy szokott kinézni az elérési utak problémája. Neked nem csak annyi van a nyakadban, hogy helyi mappából működjön valami, hanem még a szerverbeállítás ezernyi nyűge is. Ha el nem kezdesz hozzáedződni, nagyon hideg zuhany lesz utólag.
Hobby webszervert win10-hez találsz pld itt: https://www.wampserver.com/en/
-
coco2
őstag
Idegesítő dolog, amibe js alatt folyton belefutok: json-ban érkezik változó php alól numeric 30 -> lesz belőle "30", js alatt i1-be bekerül, de nem numerikusan, hanem stringesen, aztán i1+=5; csinál belőle "305"-öt. Van valami általános módja megmondani a js-nek, hogy legyen szíves egy változót kizárólag numerikus változóként kezelni? Vagy a window.parseInt(i1,10) az egyetlen, amit tehetek?
-
Rimuru
veterán
válasz
lanszelot #8455 üzenetére
Arrol hogy egy bongeszoben mit tehetsz meg JS-bol egy eleg jo kiindulasi pont ez az mdn page.
-
lanszelot
addikt
Hello,
Először is köszönöm szépen a választ.
Amit linkeltem az nem működik /nekem úgy is jó lenne/.
JavaScript Object Notation (JSON) - és javascript-el nem tudom kezelni?
Wikipédia: "A JavaScript esetében a futási környezet jellemzően egy web böngésző."
Ugyanarról a Javascript-ről beszélünk?
Ahogy én gondolom: JavaScript oop nyelv. Akármilyen szöveg szerkesztőbe megírható, és szükség van egy futtató környezetre, ami legtöbb esetben egy web böngésző.
Rosszul tudom? -
coco2
őstag
válasz
sztanozs #8453 üzenetére
Itt valami félreértés volt, én mezei local stringet ollóztam, json, xhr meg hasonlókat belekeverni ilyet nem tudom hol írtam. Ha számít bármit, a stringet a php innerHTML-be írta bele alapból, arra gyártottam nagyítóüveg effektet loading indikátornak (tudom, béna, viszont böngészőkompatibilis
). A javaslatot elfogadtam, daraboltam, ragasztottam, probléma megoldódott.
-
sztanozs
veterán
Elég csak letöltés után dolgozni rajta (1),vagy szeretnéd ezt a letöltött json-t session-ök között is tárolni (2)?
(1) - XHR-rel lekéred egy változóba (vagy akár egy rejtett textarea-ba) és dolgozol rajta
(2) - local storage - az (1)-ben letöltött adatot nem csak egy változóba teszed, hanem larakod local storage-ba is.Ha jól rémlik 105 MB/origin (szerver) a max tárolható adatmennyiség, ami böngészőfüggetlen. Illetve még ott van az IndexedDB. -
martonx
veterán
válasz
lanszelot #8447 üzenetére
"Te pl azt állítottad, a javascript semmire se jó, és teljesen felesleges." - mutasd már meg, hogy hol állítottam?
Várj, ne mutasd, nem érdekel
Pont azt próbáltam elmagyarázni, hogy mennyire eltérően kell használni a javascriptet a futtatási környezettől. De képtelen vagy megérteni.
Szóval részemről peace és ignore, nem az én problémám, hogy képtelen vagy a valóságot elfogadni -
coco2
őstag
Stringet kellene megollóznom. Kivágnom pld 20 karakter hosszú stringből a 10.-edik karaktert, és stringet illesztenem a helyébe. A pozíciót nem tudom egyedi string minta alapján meghatározni. Karakter pozícióm van helyette. Néztem a string replace-t, de az nem pont ilyesmire van kitalálva. Mit szokás használni rá?
-
cattus
addikt
válasz
lanszelot #8447 üzenetére
Böngészőn keresztül JS-sel lokális fájlt nem fogsz tudni olvasni. Vannak rá workaround-ok, pl. hogy a JSON értékét stringként eltárolod egy JS változóba, és ezt ugyanúgy belinkeled a HTML-be mint az ezt feldolgozó JS-t (ez volt látható az általad linkelt megoldásban), vagy indítasz egy HTTP kérést a fájlod felé. Az már rajtad múlik, hogy melyik a neked megfelelőbb megoldás.
-
lanszelot
addikt
válasz
martonx #8445 üzenetére
Nem értelek titeket.
Kérkedtek a tudásotokkal, de amikor egy egyszerű kérdést teszek fel nem tudtok válaszolni, és ezért inkább tereltek.Te pl azt állítottad, a javascript semmire se jó, és teljesen felesleges.
Silence pedig hogy ő annyira jól tudja, hogy meg se tudja osztani.
Eddig bármit kérdeztem terelés lett belőle, majd gúnyolódás, és végül milyen királyak vagyunk megelégedés.
Nekem is van olyan tudásom amivel a porba alázhatnálak, csak nekem van inteligenciám is hozzá. Tudom, hogy mindenki volt kezdő, és nem mindenki egyforma, és legfőképpen nem felejtem el honnan jöttem.
Szégyeljétek magatokat.
-
Sziasztok!
Egyszerűnek tűnhet a kérdésem, de akkor is felteszem.
Eddig, ha a Weboldalról pl txt fájlt akartam megnyitni, szerkeszteni, esetleg a tartalmát karaktrekre lebontva felhasználni, módosítani és visszaírni, akkor PHP kódokat használtam. Ezzel mindössza annyi a probléma, hogy egyszer működik, az oldal betöltésekor és nem lehet a betöltött oldalon akárhányszor lefuttatni.A JS-t viszont igen. Így a kérdésem annyi volna, hogy az itt felsorolt műveletek végrehajthatóak-e JS-ben?
-
Rimuru
veterán
-
coco2
őstag
Milyen környezetben fut a javascripted? Mi a vm ami futtatja?
-
coco2
őstag
válasz
lanszelot #8433 üzenetére
Akkor két külön problémád van. Az egyik a szerver oldali file letöltése, a másik a json parsing.
-
lanszelot
addikt
Hello,
Tudna nekem vki segiteni?
Sehol se találom hogyan kell json file-t olvasni/írni javascript-tel (pl: valami.json file-t, ami "./json/valami.json" elérhetségen van).
Nem node-val, nem jquery-vel, ezek nem tudom mik, és nem is érdekelnek, javascript-tel érdekelne.cstomee: Köszönöm szépen, sajnos nálam nem jól működik, de átszerkesztem a css-t, és külön adok háttteret mindennek, úgy remélem jó lesz.
-
coco2
őstag
válasz
Silεncε #8426 üzenetére
Ennek alapján még nem kellene baj legyen.
Van egy parent div, azt z-index 0-n tartom. Azon belul vannak a rétegek egymás alatt fölött ugyan annak a parent div-nek a kontextusában. Azok között már nincs alá/fölé rendelés, egyenrangúak. Elvileg.
Azt látom, hogy a főciklus végén kidobom konzol logba egy adott div-hez tartozó z index-et, folyamatosan 1-et lát a javascript, de 5-öt a dev tools (bármikor megállítom, 5-öt ír vissza). Ha a megjelenítés lehet is trükkös, az a változó egy számszerűsített érték. Az hogy térhet el annyira? Kb olyasminek tűnik, mintha a z-index read-only lenne, és hiába írom át a zIndex-et, az nincsen hatással a z-index-re. A linkelt blog ilyesmire nem tér ki
-
coco2
őstag
Z-index hibanyomozásnak van valami trükkje, amit kezdőként jó lenne tudnom? Nyomozok egy layer problémát, és nem tudom, mit nem veszek észre.
A dom úgy néz ki, hogy réteg szerint vannak rendezve div-ek egymáson. A rétegek sorrendjét időnként megváltoztatom js-ből. Van egy olyan hibám, hogy mást látok megjelenítve, mint aminek lennie kellene az átírt értékek szerint.
Futó kódot megállítok (desktop chrome, dev tools), az elements tabot szétnyitogatom, jobb oldalt arra a div-re kiír z-index 5-öt. A html-ben inline css-t használok, az állítja be 5-re. Lehetséges lenne, hogy ott az eredeti forrást látom, és nem az aktuális értéket? Js-ből ugyanis átírtam 1-re. Üzenetben (console.log) visszajelzésem van róla, hogy az értéke 1. De a dev tools akkor is 5-öt jelez vissza róla. És a megjelenített kép szerint is 5 az értéke.
Külön gyártottam egy önálló példát, abban a z-index átállítás működik js-ből, mint a kisangyal ( https://jsfiddle.net/fLxkv6q3/ ). Sajnos ugyan ez az éles verzióba bepakolva nem működik. Szóval nem értem.
Hogyan szokás ilyesmi glitch-et nyomozni?
-
lanszelot
addikt
Hello
Css -ben a háttér színe *{} mindenre ki van terjesztve
Hogy tudom JS alatt elérni? -
Az a helyzet, hogy nem tervezek átmenni USB és Ethernet vonalra. USB-hez van egy remekül működő USB analizátorom, az átviszi a szükséges adatokat. Az internetre még nem szabadítom az ilyen jellegű programjaimat, mert még öntudatra ébredne a Skynet
Eddig egyébként borzasztó sok mindent meg tudtam oldani PIC-el anélkül, hogy bármi hiányosságot is éreztem volna.Egyszer kipróbáltam az Arduino-t is. Nem jött be. Főleg az nem, hogy egy egyszeri, az Ino alaplapjára integrált LED villogtatása fordítás után nagyobb adathalmazt eredményezett, mint Asm-ben ez az apróság. (A videóban szereplő eszközt mondjuk közösen csináltuk Édesapámmal, de jól szemlélteti a lényeget)
-
-
martonx
veterán
Most meg amit összekeversz, az egy winforms alkalmazásban futtatott webview, ami ha jól tudom Internet Explorer alapú. Mintha .Net Core latest winforms-nál már lenne valami webview2, ami már normál latest chromium alapú.
Igaziból a winforms-hoz nagyon nem értek, fogalmam sincs, hogy az ebben futtatott webview mennyire tud kommunikálni az app más részeivel, de vannak kétségeim.Amit te szeretnél arra az Electront, és ehhez hasonlókat szokták használni, amikkel a html+css+js kódodat be tudod csomagolni egy natív appba, azon keresztül elérve az OS apijait.
-
coco2
őstag
Attól függ, milyen stack-et használsz. Amíg bitgépekkel gpio-zól, meg elég egy uart, azzal el lehet szórakozni asm-ben. Nem vagyok én ellene a gyakorlatnak. Ha nagyon az a kedvenced, játszadozz fpga-kkal is. Abban a környezetben aztán lehet bármit órajel élváltásonként számolni. Még hogy asm? Az már egy egész processzor! Azt a kényelmesen dőzsölős mindenségit..
Viszont ha tovább lépsz az uart-ról usb vagy ethernet felé, akkor az asm kispolcra fog kerülni. Asm programok egészében a 4 kb-ot nem szokták átlépni. A 8 kbyte asm-ben már nagyon sok. Usb és ethernet stack önmagukban 30-30 kbyte-ok. Csak egy példa volt.
-
A PIC kapcsán csak annyit, hogy nem fogok áttérni C-re. Hogy miért? Mert ha lehet, akkor a bugos blokkprogramozást meghagyom annak, akinek nincs ideje egy jól átgondolt, letisztult, célorientált programot megírni - vagy csak szimplán nem képes rá.
Az viszont, hogy milyen PIC-et használ az ember, nagyban függ attól, hogy mi a feladat. PIC10 és PIC18-as szériák a külön kedvenceim. A DIP foglalat pedig mellékes, többször dolgozom SMD éretben, mint másban.
Úgyhogy erről igazán kár is vitatkozni, ez ízlések és pofonok.Nem mellékesen egyébként, áttértem egy HMI programozói platformra. Régen elég sokat dolgoztam a Nextion HMI-vel és úgy látom, hogy a szimulátora egyfelől kiválóan fut a gépen, másfelől képes kommunikálni a portokkal. Így végül ebben a formában fogom kivitelezni a programot. Bár ez már félig-meddig C...
nevemfel: Így akartam fogalmazni én is. Bár mostmár mindegy is.
-
nevemfel
senior tag
A Canvas nem a JS része, hanem a böngésző API-jáé, azaz a DOM-é. A JS lényegében mindenhol ugyanaz, az implementált API az, ami futtatókörnyezettől függően más és más. HA asztali alkalmazást akarsz, ami használni tudja a böngésző API-ját, arra ott van az pl. az Electron.
-
coco2
őstag
A dolgok természetét kellene megérteni és észben tartani. Minden, ami böngésző weblapon fut, még a file rendszertől is el van tiltva. Külön böngésző libek vannak arra, hogy ilyen 5 megabyte-nyi területet megkaphass automatizálásra, amikor terabyte-os tárhelyek vannak a mai világban. Minden máshoz egyesével felhasználói engedély kell. És akkor te elektronikai erőforrást akartál elérni? Pluginnal meg lehetne éppen csinálni, ha a google nem akarná a chrome os-ét erőszakolni. Így ugyanis még a plugin sem járható út. Keresztbe tesznek azoknak a projecteknek a legkülönfélébb módokon. Azért nincsen belőlük.
Pic-en igazán áttérhetsz C fordítóra, amíg legacy vonalon maradsz. Csak az X fordító borzalmas, de például a c32 még normális volt. A 8 bites pic-ekkel vacakolni szerintem csak extreme low power vonalon van értelme, minden máshoz ott vannak a 32mx-ek. Ha dip foglalatos kell breadboardba, van 32mx1,2 családokból dip foglalatos is. És akkor nem kell órajeleket számolgatni, mert van bőven
Drágának sem nagyon mondanám őket, ilyen ezres környékén vannak. A 8 bitesen sem sokkal olcsóbbak, azok is 400-tól kezdődnek, és kb semmire sem jó utólag a kód, amit kiteszteltél. A 32mx-ekkel legalább hordozható és újrafelhasználható kódod lesz. Persze ahogy érzed.
-
Ne érts felére, nem ellenkezni akartam és most sem azt akarok, mindent megértettem amit mondtatok. Csak fáj belegondolni, hogy egy látott "valami" alapján megkísérel az ember megvalósítani egy projektet, mert meg van győződve róla, hogy működik, mert látott ilyet valahol és a vége az, hogy koppen egyet, mert mégsem lehetséges.
Egyébként nem foglalkozom ArduIno-val, PIC-es vagyok, Assembly-ben.
Szóval igen,
csak az fáj, hogy 3 napig dolgoztam valamin, amit ha utána járok, előbb is megtudhattam volna, hogy felesleges időt ölni bele.Nem az elvesztegetett órákkal van itt a baj, hanem azzal, hogy mindezt megúszhattam volna, ha előbb kérdezek. Persze erre mondják, hogy van, aki mások kárán tanul és van, aki még a sajátján se. Nos, én most a kettő között érzem magamat, félútonEgyetlen dolgot tudok most csinálni, ami nem más, mint megköszönöm nektek az oktatást és nézek magamnak egy új irányt. Tehát: Köszönöm!
Szerk.: Utólagosan módosítok egy kicsit: Nem létezik a programozásban elvesztegetett idő. Hiszen a gyakorlás mindig új tapasztalatokkal gazdagít és ez most sem volt másként.
-
coco2
őstag
@martonx már leírta előttem, ha a javascript-et .exe-re fordítod, hozzáférsz minden rendszer szolgáltatáshoz, mint bármelyik bináris program.
A linkelt libed chrome book-on fut. Az egy amolyan eeepc koncepció chrome os-el, és szintén a design-error-ok mérföldköve. Asszem egy pamkutya paródiában hallottam "hogy hol is van az alsó határ, engem mindig elámít". Vagy Majka volt? Most nem emlékszem biztosan.
Ami a 20 "munkaórát" illeti, nem biztos, hogy értem. Az ilyesmi nem céges komolyságú, hanem hobby.
Ami a 20 órányi hobby-ra szánt idődet illeti, azt most szépen elereszted. Nem szorongatod. Nem sajnálod. Ha nagyon akarod, integess neki egy piros pöttyös zsebkendővel. Lazán, és könnyedén. És készülj rá, hogy másik 200-at is el fogsz még ereszteni, ha nagyon makacs vagy megérteni, hogy az arduinos webprojectekkel egy sötétben kivilágítatlanul közlekedő pofont sikerült megtalálnod. Ami tech stack-et végül felépítesz majd, azt a tanácsot tapasztalatból adtam. Persze hobbyból nem tilos az utólagos statisztika tapasztalata ellen hadakozni. Kellemes szórakozást hozzá.
-
válasz
martonx #8410 üzenetére
Nem, valójában teljesen reális a válaszod és oktató jellegű.
Csak itt azzal van a személyes problémám, hogy ezt is JS-nek hívják, meg azt is JS-nak hívják, azonban az egyik felületre megírtat (pl HTML-hez) nem tehetem 1:1-ben át egy másik felülethez, mert még a parancsok jórésze is különbözik.Egy egyszerű példa, a jelenlegi projektemből:
Megcsináltam HTML+CSS-el egy szép felületet, ahogyan azt igényli a feladat. Adtam hozzá JS-t, hogy működjenek rajta a dolgok és ne csak egy felület legyen. Ehhez alkalmaztam egy Canvas-t, ami grafikont rajzolna ki a majdani bejövő adatokból.
Ezután szembesültem az USB problémával. Ekkor jött az a gondolat, hogy lenne egy JavaScript exe program, ami kommunikál a portokkal, a bejövő adatokat lementi egy txt fájlba, amit a HTML dokumentum a JS segítségével megnyit és felhasznál. Ez 2 Bájt adatot jelent, másodpercenként 50 alkalommal, lekérdezésekkor 10 másodpercig (500 darab 2 bájtos adat). Ez még kivitelezhető is lehet, hiszen a legegyszerűbb HDD is képes erre a sebességre.
Megnyitottam hát a Microsoft Visual Studio-t és nekiláttam egy .NET keretrendszerű, JS alapú, EXE kiterjesztésű alszoftver megírásának. Eddig csak egyszer írtam ezen keresztül szoftvert, azt is már régen, így szinte minden új volt, ahogyan az is, hogy lehet betenni oda megnyitandó Weboldalt. Ki is próbáltam, mondván, hogy ez talán egyszerűsíti az életet, nem kell két szoftvernek futnia hozzá. A probléma ott kezdődött, mikor renderelés után megnyitotta azt a szörnyűséget. Ugyanis túl azon, hogy a CSS-t nem sikerült neki valami jól betöltenie, semmi nem működött, ami a HTML fájl JS részében a Canvas-hoz köthető.
Ezzel arra akarok utalni, hogy hiába JS-JS, egyáltalán nem kompatibilisek egymással.
Miután megnéztem, hogy a kimondottan Windows-ra írandó szoftver még csak nem is kínál Canvas-t, vagy egyéb ilyes fajta grafikai megjelenítőt, nem tudom, hogy egyáltalán kivitelezhető lenne-e ez a szoftver csak ebben a formában megírva, HTML megjelenítés nélkül.
-
martonx
veterán
A javascript egy nyelv, ami futhat kb. bármin. Azaz windows-on .exe-ként. Viszont rohadtul nem mindegy, hogy milyen kontextusban fut, milyen API-khoz fér hozzá.
Azaz legtöbb mindenhez akkor fér hozzá, ha win32-n fut (.exe vagy pl. Electron app, Nodejs mint szerver, vagy bármibe csomagolhatod, ami neked megfelel és az OS api-jaihoz hozzáférést ad).
Szintén elég sok mindenhez hozzáfér, de azért már valamivel korlátozottabban, ha Chrome kiegészítőként fut a böngészőben (lásd a linkelt példád).
És szinte semmihez nem fér hozzá, ha tisztán böngészőben egy html oldal részeként fut (kivéve a fentebb linkelt webusb preview api-t).Remélem ezzel rávilágítottam a kontextusok közötti különbségre. És előre is bocsánat, ha a válaszom bármilyen pontatlanságot tartalmaz.
-
Ebben az a furcsa, hogy írtam már JavaScript programot USB-UART kommunikációra, ami .exe kiterjesztésben lett elmentve és ahhoz semmilyen illesztőprogram nem kellett, minden Windows-t futtató gépen azonnal indult. Most azért gondolkodtam HTML+JS párosban, hogy minden rendszeren elfusson, ráadásul offline.
+ Ebbe a projektbe már benne van vagy 20 munkaórám, amit nem akarok, hogy kárba vesszen.Esetleg arra gondoltam még, hogy egy plusz program Win alá megírva JS-ben, ami felel a kommunikációért és valahogy azt összekötni a jelenlegi szoftverrel. Windows.localStorage vagy ilyesmi.
Egyébként azért is gondoltam, hogy nem okozhat gondot ez a feladat HTML+JS megoldásban külső szoftverek nélkül, mert itt is megoldották valahogyan.
-
coco2
őstag
Azokkal a kísérleti cuccokkal alaposan meg fog gyűlni a bajod. Remélem, erős idegeid vannak. Akkora design-error az összes olyan cucc, hogy nem a semmiért nem terjednek a gyakorlatban. Ha épp csak begolyózni nem akarsz, ágyúval kell lőni a verebet. Az uart fölé kell egy nt service, amellé egy db szerver, afölé egy webszerver, a webszerverre egy megírt xhr api. És utána tud neked a mikrovezérlős cucc javascript-ben erőforrás lenni.
Az utólagos statisztika azt mondja, hogy 200 emberből - hasonló ötletekkel, mint a tiéd - legalább 199 úgy döntött, inkább leül, és megvárja, míg elmúlik.
-
-
coco2
őstag
Desktop chrome, szivat a cache
Betöltöm az oldalt, forrásként bele van illesztve js file is. Nézem dev tools-al a js forrást, hát az a kód valami régi verzió. Szerver filesystem nálam fel van csatolva. Notepaddal belenézek, a szerveren a friss kód van. Böngészőben nyomogatom az f5-öt, chrome dev tools frissíti a tartalmat - ugyan úgy a régi kódot látom ott.
Ezmiez? És mit tudok tenni vele
-
dqdb
nagyúr
Új hozzászólás Aktív témák
Hirdetés
- RTX 4080 SUPER,16GB. Ryzen 7 7800X3D, 32 RAM Fury RGB! Garancia!
- Asztali PC , i7 9700K , RX 5700 XT , 32GB DDR4 , 500GB NVME , 1TB HDD
- Dell Inspiron 5406 2-in-1i5-1135G7 16GB DDR4 3200 512GB NVME 14" FHD Érintőkijelző W11Pro
- Eladó MacBook Pro 14" M1 Pro (2021) 16/512 99% akku Makulátlan állapotban!
- Újszeru GIGABYTE G5 - 15.6" FullHD 144Hz - i7-13620H - 48GB - 1TB - RTX 4050 - Win11 - 1,5 év gari
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
- BESZÁMÍTÁS! Gigabyte H610M i5 12600K 16GB DDR4 512GB SSD RTX 3060Ti 8GB Rampage SHIVA Seasonic 650W
- Alkatrészt cserélnél vagy bővítenél? Nálunk van, ami kell! Enterprise alkatrészek ITT
- Fotó állvány eladó
- Xiaomi Redmi Note 13 Pro+ 512GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest