Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - zboj

Stran: 1 ... 17 18 [19] 20 21 ... 101
271
Dobrý den.

Snažím se proniknout  do node.js a socket.io a z  některých věcí nejsem trochu moudrý. Vezměme jejich příklad s jednoduchou chat aplikací.Ten je celkem srozumitelný.

Ovšem jsem v koncích, když přemýšlím, jak  to propojit s externími aplikacemi.

Když už jsme u jejich  kódu chatovací aplikace:

Kód: [Vybrat]
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);


chápu že si pomocí require vytvořím express framework objekt, v jeho rámci objekt http serveru (a ten někam bindnu), v  rámci serveru si vytvořím  objekt io, reprezentující websocket, (víceméně matrjoška)  jakmile se na něj někdo připojí vznikne socket

A v jeho rámci  reaguji na události - socket.on("událost", function(blah){udělejněco})

Kód: [Vybrat]
io.on('connection', function(socket){
  socket.on('chat message', function(msg){
    io.emit('chat message', msg);
  });
});

Řekněme že se připojí  součastzně Franta a Pepa. Chápu, že jejich spojení a jejich websockety nepromíchají neb každé patří do jiné instance objektu socket z jejich příkladu. Řekněme, že si Franta i Pepa vymění nějaké autorizační zprávy ze serverem a tedy bude jasné kdo je na kterém socketu.

Problém začíná, když potřebuji přes takto navázané spojení  poslat klientovi data z  jiného běžícího programu.Řekněme, že něco běžícího na serveru dojde k názoru, že potřebuje poslat zprávu Pepovi.

Otázklou je JAK to propojit. Zkrátka čím a jak "vstoupit" dovnitř těch vnořených objektů (a do toho správného) a říci (vyvolat událost): ted pošli TYTO data.

Hloupého kopni.... Umí mi prosím někdo vyplnit toto bílé místo ? Děkuji.
Systémové řešení jen mít prostě API pro IPC a onen objekt registrovat. IPC pak bude běžet nezávisle a posílat data dle potřeby. Koncepčně čisté řešení jsou například kanály (CSP), i když zrovna v JS se CSP implementuje dost blbě.

272
Vývoj / Re:Gramatiky v IT
« kdy: 18. 05. 2017, 11:13:33 »
No ale ten obrázek je de facto grafický zápis pravidel gramatiky. To jste se trochu střelil do nohy.
OMG! Je to de facto zápis gramatiky, protože pro ten automat existuje regulární gramatika. Ale tohle je prostě automat. Automat je automat a gramatika je gramatika.

Gramatika je generativna, automat je akceptacny. Gramatikou sa opisuju mozne vstupy pre ten automat.
Blbost, gramatika může být rekognoskativní (sic!) a automat generovat, to s tím vůbec nesouvisí.

273
Vývoj / Re:Callbacky vs. korutiny v C
« kdy: 18. 05. 2017, 11:11:53 »
Jestliže tam poběží nějaký RTOS, není lepší použít přímo jeho korutiny, které přepínání kontextu vesměs řeší za tebe?
Kooperativní konkurentní běh se vesměs řeší v userspacu (je to levnější) a ani OS nepotřebuje (minimalistické MPU). Obecně vyjma inicializace stačí pro přepnutí sekvence 1. push registrů, 2. přehození zásobníku, 3. pop registrů. Některé jazyky ani s registry nic nedělají, protože mají jiné vhodnější ABI, ale i tak je to operace velmi levná. Vlákna jsou zbytečně drahá, když je stejně k dispozici jen jedno vlákno a veškeré operace jen čekají (buď na senzor nebo data z jiné korutiny). Preemptivní přepínání je ve většinu případů kontraproduktivní (navíc vyžaduje přerušení, čímž se to celé ještě zhorší).

274
Studium a uplatnění / Re:Jak hledat zajímavou práci?
« kdy: 17. 05. 2017, 20:43:40 »
V 90. letech mohl aspoň trochu úspěšně podnikat každej lempl, navíc o IT se tu vědělo pramálo a velká spousta systémů nebyla ani tolik složitá, jako dneska. Najímali se na ně různí joudové, kteří se to učili za pochodu: "Informační systém v no-name firmě a člověk s výučákem z elektro-čehosi, kterýho k tomu pustili už byl najednou 'ajťák'".

A slo to!!! Prave tihle lide ukazali "vedeckym" ITkum ze se ze sebe nemaji tak posirat a citit se nejak vylucni. A hodne tomu pomohl MS, ktery si uvedomoval ze masovym nastupem PC do firem v devadesatych letech vznikne obrovsky nedostatek kvalifikovanych lidi a umoznil laickou administraci OS. Tim si sveho "cloveka, ktery umi vecer po sve praci preinstalovat OS" mohla nakontrahovat kdejaka mikro-firmicka a nemusela tim byt zavisla na predrazenych pausalech velkych spravcovskych firem bez smyslu pro individualni potreby zakazniku. Navic to k pocitacum pritahlo znacne mnozstvi technickych nadsencu bez (pro ne nudneho ci neprekrocitelneho) teoretickeho vzdelavani. Nekdo pozdeji odpadl, jiny si vzdelani doplnil a zustal, ale ja tohle obdobi povazuju za velmi demokraticke, vstupni bariery prakticky neexistovaly a zacit mohl naprosto kdokoliv.

Co vim od mýho otce (kterej byl přesně tenhle případ), tak na složitější věc, než nastavení mailu museli stejně přijet drahý specialisti, takže asi tak...

"vedeckym" ITkum ze se ze sebe nemaji tak posirat a citit se nejak vylucni.

tohle je jen další koment ve stylu javamana, na to ani nemá smysl reagovat... ::)

EDIT: hrubka :-[

To je omyl, většinu IT firem v 90. letech zakládali vysokoškolsky vzdělaní lidé v oboru IT. Pro ostatní byl prodej počítačů zajímavý tak do roku 1996. Pak už to komerčně nebylo zajímavé, a ti lidé odcházeli jinam, do tehdy výnosnějších oborů.
 
Programátorů s vysokoškolským vzděláním bylo tehdy u nás odhadem tak 5000-10000.

U nás ve městě například, byl první počítač už v roce 1928, byly to děrnoštítkové stroje Hollerith, takže první programátor šel do penze někdy počátkem 70. let. V roce 1988 bylo u nás ve městě cca 2 velké počítače IBM System/370 a do 15 kusů PDP-11. PC XT bylo tehdy tak 5 mezi soukromníky a 10 ve státních podnicích.

Takže tehdy lidí na zakládání IT firem odborně zdatných bylo docela dost.
Hollerith nepamatuju, ale asi deset osmibitů. Jo to byly časy  ::)

275
Studium a uplatnění / Re:Jak hledat zajímavou práci?
« kdy: 17. 05. 2017, 20:40:29 »
"vedeckym" ITkum ze se ze sebe nemaji tak posirat a citit se nejak vylucni.
tohle je jen další koment ve stylu javamana, na to ani nemá smysl reagovat... ::)
Tak ono je pravda, že člověk by se neměl posírat :) Byť to je obecně naopak, pos... se lopaty z lidí, co mají inteligenci, znalosti a úspěchy  ;D

276
Odkladiště / Re:Linkedin upadá
« kdy: 17. 05. 2017, 14:47:07 »
Macron je požehnání v tom, že Front national je na pokraji rozpadu? Merklová to přehnala tak moc, až CDU/CSU má letos nejlepší volební výsledky za desetiletí? LOL
... jako Rotschieldův globalista ...
Je to Rothschild.
Začněte* tím, že se to konečně naučíte psát.
https://en.wikipedia.org/wiki/Rothschild_family
 ;)

* Teď nevykám.
Tak ale nevíme koho myslel, Rotschieldů je na světě taky plno ;)

277
Citace
A víte, že mi  těch cca 20 příspěvků, kdy se zeptám na věci které mne zajímají,  dalo více než deset tutoriálů ?

Přesně tak, zeptat se na základy není ostuda. A odpovídající nemusí dávat najevo svou nadřazenost - pokud někoho dotazy na základy obtěžují, tak přece nemusí odpovídat.

Je sice pravda, že k osvojení základních pojmů a principů by mělo sloužit oficiální vzdělání, ale jak víme, praxe je často taková, že se člověk učí vše až za pochodu. Proto dobrých zdrojů, které to vzdělání kvalitně doplní, není nikdy dost.
Tak od toho jsou fóra. Problém je, že na otázky odpovídají lidi, co o tom taky nic neví (a co hůř, myslí si opak). Node.js znám například skrznaskrz a v čemkoliv rád poradím, ale to, co tu občas člověk čte za bláboly, je k neuvěření. Chce-li se někdo něco dozvědět, měl by jít na stackoverflow.

278
Vývoj / Re:Callbacky vs. korutiny v C
« kdy: 17. 05. 2017, 13:03:39 »
setjmp a longjmp je možné použít k userspace implementaci korutin.
To není pravda. longjmp likviduje zásobník, takže něco jako kooperativní
Kód: [Vybrat]
sleep_dont_block(1000);
go_on();
s tím udělat nejde. Na to je potřeba již zmíněný ucontext, což je ovšem (zastaralá) záležitost POSIXu.

Stack jde hacknout nějak takhle: http://fanf.livejournal.com/105413.html
Hezké to není, ale fungovat by to mělo, pro mikrokontrolér myslím dobré, relativně nenáročné na zdroje a všechno je pod kontrolou v userspace.
Tady akorát záleží, na čem to poběží, aby to zbytečně nebrzdily syscally. Jinak ano, osobně sice preferuju čistší switch zásobníku, ale pokud se někomu ten kód líbí...

279
Vývoj / Re:Callbacky vs. korutiny v C
« kdy: 17. 05. 2017, 12:38:30 »
setjmp a longjmp je možné použít k userspace implementaci korutin.
To není pravda. longjmp likviduje zásobník, takže něco jako kooperativní
Kód: [Vybrat]
sleep_dont_block(1000);
go_on();
s tím udělat nejde. Na to je potřeba již zmíněný ucontext, což je ovšem (zastaralá) záležitost POSIXu.

280
Vývoj / Re:Callbacky vs. korutiny v C
« kdy: 17. 05. 2017, 12:02:07 »
Preemptivní přepínání kontextů to přímo neřeší, ale třeba probouzení vláken událostmi, čekání vlákna na signál, mailboxy/fronty mezi vlákny atd. - možná by ten polling vůbec nebyl potřeba, kdyby se využily možnosti embedded OS. Samozřejmě ve finále to na tom jednojádře poběží stejně, ale vývoj může být trochu méně bolestný a bližší programování v normálním OS. Leč nechť každý koná dle svých potřeb.
On ten polling (vlastní smyčka) je alternativou, to ano, ovšem využití služeb OS zní jako overkill, když můžu přepínat kontexty v userspacu. Třeba na Arduinu je vlastní implementace jediná možnost.

281
Vývoj / Re:Callbacky vs. korutiny v C
« kdy: 17. 05. 2017, 11:41:38 »
docela se mi zalíbil chibiOS s pěkně udělanými preemptivními vlákny. Možná bys ty korutiny vůbec nepotřeboval.
Souhlas, s Chibiosem jsem si taky trochu hrál a moc se mi líbil.
Preemptivní přepínání kontextů ale neřeší dotaz.

282
V JS se tupě multiplexuje na jedno vlákno, takže typicky se čeká (blokuje), než callback doběhne. Když něco trvá dlouho, tak by se měl použít další callback, aby se ty kusy kódu proložily.
P.S. Vývojáři knihoven v JS by udělali dobře, kdyby začali používat korutiny (když už je novější JS má), aby ušetřili sobě i uživatelům těch knihoven spoustu problémů s callbacky.

283
Studium a uplatnění / Re:Jak hledat zajímavou práci?
« kdy: 17. 05. 2017, 09:00:27 »
Dobří programátoři zajímavou práci nehledají, ale vytvářejí.
To je sice pravda, ale ne každý je dostatečně kreativní a motivovaný na to, aby něco takového dokázal.

284
Studium a uplatnění / Re:Jak hledat zajímavou práci?
« kdy: 17. 05. 2017, 08:57:58 »
Někomu přijde progamování obecně jako totální opruz bez ohledu na peníze.
Takové to rutinní psaní kódu opruz docela je a pokud to někdo dělá jen kvůli penězům, tak se unudí. "Zajímavé" v IT často znamená kreativní a inovativní, ovšem i to je pochopitelně subjektivní.

285
Děkuji všem za odpovědi.  Ještě by mě ovšem zajímala jedna věc. Reentrantnost , součastný běh či serializovatenost callbacků.

z  přikladu:

  socket.on('chat message', function(msg){
  UDELEJ NECO CO TRVÁ DLOUHO
};

co  se stane, když  callback ještě běží... a dojde další "chat message" ? běží paralerně ?  čeká se na dokončení toho prvního ? Nebo co vlastně ?
V JS se tupě multiplexuje na jedno vlákno, takže typicky se čeká (blokuje), než callback doběhne. Když něco trvá dlouho, tak by se měl použít další callback, aby se ty kusy kódu proložily.

Stran: 1 ... 17 18 [19] 20 21 ... 101