- Magga: PLEX: multimédia az egész lakásban
- gban: Ingyen kellene, de tegnapra
- ricshard444: Fényképező ? Telefon helyett
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- bambano: Bambanő háza tája
- bitpork: MOD Júni 28- Augusztus 2- szombat jelen állás szerint.
- Kempingezés és sátrazás
- Luck Dragon: Asszociációs játék. :)
- Szoszo94: Xiaomi Mi Router 3G - Padavanra fel!
-
LOGOUT
Új hozzászólás Aktív témák
-
Silεncε
őstag
válasz
Netszemete #16698 üzenetére
Alapból a reddit nem ad módot rá, hogy korlátozd moderátorként, hogy ki nyithat új thredet. Ennek a megkerülése az automod, aki egy sima bot (ilyenből millió szaladgál redditen btw), aki csekkolja a fiokod korát pl és ha nem elég törli a pitsába.
Nem mondom hogy nem bugos a reddit (mert az), de jelen esetben ez az adott subreddit modjainak (az egyébként nagyon helyes) döntése.
-
Silεncε
őstag
válasz
Netszemete #16696 üzenetére
Az ugye megvan, hogy ez nem a reddit, hanem az adott subreddit “hibája”? (Btw ez egy nagyon jó dolog, egy időben rhun rohadtul elszabadultak a trollok, azért lett bevezetve). Amikor te beküldöd a topikot, a reddit nem tud arról, hogy ezt majd az automod torolni fogja, ez utólag történik.
-
Ispy
nagyúr
válasz
Drizzt #16694 üzenetére
Sokszor fordul elő olyan az emberrel, hogy már 5 éve csinál valamit valamilyen módon, aztán egyszercsak véletlenül megismer rá egy sokkal egyszerűbb módszert
Pláne, ha közben a frissítések hoznak be folyamatosan új dolgokat, ms sql-ben rengetek ilyen van, persze ilyenkor meg a legacy code tud problémákat okozni. Nekem például az utolsó ilyen a json natív támogatása volt, persze ott meg szívás van, ahol az ügyfél nem hajlandó új sql szervert venni, szóval ilyenkor marad a visszafelé kompatibilitás megoldása.
-
Drizzt
nagyúr
válasz
Netszemete #16692 üzenetére
Nem jársz tévúton, teljesen valid a választott út. Embere válogatja, hogy kinek melyik irány a kényelmesebb ezek közül. Lehet először entity-t írni, aztán abból sémát generálni és fordítva is. Vagy lehet írni mindkettőt kézzel, de annak tényleg nem olyan sok az értelme. Viszont a generált dolgokat érdemes mindig átnézni, mert a generálás valamilyen önkényes választások alapján fog eredményt hozni amikor döntési pont van. Én is egyébként általában előbb a schema DDL-eket írom meg mint az entity-ket.
Tutorialok java része egy irányból szokott csak megmutatni dolgokat és célja a bevezetés, nem a teljes mélységek megmutatása. Sokszor fordul elő olyan az emberrel, hogy már 5 éve csinál valamit valamilyen módon, aztán egyszercsak véletlenül megismer rá egy sokkal egyszerűbb módszert. Ez az élet része. Nincs olyan tutorial/training, amivel ezt el lehetne kerülni.
Pythonban egyébként nem vagyok otthon. -
cattus
addikt
válasz
Netszemete #16692 üzenetére
A tutorialok általában nulláról indított projekten vezetnek végig, és elsődlegesen a framework bemutatása a céljuk, így teljesen érthető hogy miért a code-first módszert alkalmazzák (nem kell potenciálisan ismeretlen SQL parancsokkal bombázni a tanulni vágyókat). A te esetedben több értelme van a DB-first megoldásnak, ahogy előttem is mondták, teljesen szituációfüggő, hogy melyiket érdemes alkalmazni.
-
Drizzt
nagyúr
válasz
Netszemete #16689 üzenetére
Azt konkrétan magadnak kell eldönteni.
Ha kicsi alkalmazás, akkor kb. teljesen mindegy. H
Azt nem teljesen értettem a reflectiont miért hoztad fel. Illetve a programnyelv is segíthetne a döntésben. Én elsősorban JPA-hoz értek, de az Java. Ott nem is lenne olyan lehetőség a nyelv tulajdonságából adódóan, hogy a kód változtatása nélkül az entity class dinamikusan megváltozzon, azt feltételezve, hogy az entity egy class. Míg pl. Javascriptben ugyanez megoldható, mert a classhoz lehet felvenni új mezőket futás közben is. Az már egy másik kérdés, hogy ez miért jó, általában nem az. Persze Javaban is meg lehet oldani hasonlót, de nem sok értelme van, mert onnantól távolról sem lesz OO a kód.
Az egyébként nem baj, hogyha változik a séma akkor sem, ha a kód közben nem változik mindaddig, amíg a séma változás új oszlopok felvételét jelenti csak. Ha meglévő mappelt oszlop lesz átnevezve, vagy esetleg olyan típusúra átalakítva, amivel a régi mapping nem kompatibilis, akkor baj lesz belőle.
Ha meg nagyon változó sémáról van szó, akkor eleve nem biztos, hogy relációs adatbázisban kellene gondolkodni. -
Drizzt
nagyúr
válasz
Netszemete #16687 üzenetére
1. Az ORM nem tudja elrontani a mappinget, míg a user igen. Persze ebben annyi hazugság van, hogy vannak dolgok, amik többféleképpen mappelhetők, tipikusan az ID-k. Ugyanis ha az ID egy foreign key, akkor lehet helyette Objektumként mappelni. Szóval az ORM egyszerűen megcsinálja azt helyetted, amivel dolgoznod kéne.
2. Az ORM megteszi az entity-object mappinget, ami ORM nélkül magadnak kell megtenned. Általában ad valamilyen object oriented query buildert APIt is.
3. ORM egyszerűen bizonyos mértékig elrejti előled, hogy adatbázissal dolgozol, használhatsz simán OO szemléletet.
4. ORM gyakran integrálható tranzakció management-tel, ami megintcsak olyan extra kód, amit magadnak kéne megírni.
5. Az ellenkező irány is lehetséges a fejlesztésnek: megírod az entity-t és az ORM frameworkkel generáltatsz táblákat.
Meg igazából lehetne sorolni bőven.
Nagyobb alkalmazásoknál egyértelműen meg tud térülni az ORM által elnyelt boilerplate kód, amit amúgy meg kéne írni. Viszont azért ORM-ek sem mindenre tökéletesek, update/insert teljesítményre optimalizálni kimondottan nehéz tud lenni. Ezeket sokszor natív SQL-lel egyszerűbb megcsinálni. De semmi nem gátolja meg az embert abban, hogy a kód egy részében ORM-mel bűvészkedjen az entity-jeivel, más részén meg natív SQL-lel módosítsa őket. -
Marky18
aktív tag
válasz
Netszemete #16684 üzenetére
Kezdokent en ORM nelkul tanulnam meg az adatbazis hasznalatat. Irj PreparedStatement-tel (vagy ami az adott nyelven a megfeleloje) SQL lekerdezeseket, mert az ORM agyuval-verebre eset tud lenni kisebb feladatokra.
Ha ez magabiztosan megy, meg akkor se hasznalj ORM-et, hanem absztrakcioval rejtsd el az adatbazis reteget annyira, mintha mar ORM-et hasznalnal.
Ha ezzel is megvagy, akkor nyugodtan kezdj el ORM-el foglalkozni, mert mar tudni fogod mi tortenik a keretrendszerben -
Silεncε
őstag
válasz
böng ész ő #16682 üzenetére
Ha mobilon nézted, ott mindig ajánlgatja az alkalmazás telepítését, de nekem engedni szokta az összeset megnézni böngészőben.
Az, hogy ar rhun nem találtál progos dolgokat, nem meglepő, nem arra van. Én pl amit szoktam nézni néha, a webdev (mivel frontendes vagyok) ott például sokszor látok olyan topikokat, amik ilyen kicsit "brainstorming" jellegűek. Az meg, hogy nem a te problémád lesz kiemelve a főoldalon, ez ilyen. Minél nagyobb egy sub, annál több ember fog kérdéseket feltenni ott és annál nagyobb lesz a "verseny".
-
Silεncε
őstag
válasz
böng ész ő #16679 üzenetére
mert az az érzésem, hogy nem sűrűn használod
Nagyon rosszul érzed
-
pmonitor
aktív tag
válasz
pmonitor #16670 üzenetére
>az itoa()-nak a visszatérési értéke lehetne olyan mutató, ami a karakterláncot lezáró '\0' karakter utánra mutat.
Ezt itt meg is valósítottam. A függvény hívása/használata:
int main()
{
char str[128]; //arra figyelni kell, hogy elegendő helyet foglaljunk le
char *str_1 = pitoa(-2138, str, 10); //itt str_1 az str[6]-ra mutat(ha jól számolok)
char *str_2= pitoa(21526, str_1, 10);
char* str_3 = pitoa(568712, str_2, 10);
printf("%s\n%s\n%s\n", str, str_1, str_2);
return 0;
}Sztem. hasznos egy ilyen funkció.
-
Silεncε
őstag
válasz
böng ész ő #16676 üzenetére
Redditen a tematikus subredditeket érdemes megpróbálni, az inkább való ilyesmi beszélgetésekre szerintem
-
cattus
addikt
válasz
böng ész ő #16676 üzenetére
A Disqus szerintem tipikusan akkor van használva, ha valaki szeretne egyszerűen kommentelési lehetőséget hozzáadni az oldalhoz, de nincs kedve saját megoldást lefejleszte(t)ni. Statikus oldalakhoz is egyszerűen hozzáadható, így nem kell csak ezért egy teljes backendet felhúzni authentikációval meg adatbázissal meg mindennel.
-
cattus
addikt
válasz
böng ész ő #16673 üzenetére
Az a helyzet, hogy rengeteg kérdés, amit akár én is feltennék egy fórumon, már fel lett téve és meg lett válaszolva. És az ilyen fórumokat kezelő moderátorok teljesen érthetően nem akarják mindig az ezredszerre is feljövő ugyanolyan kérdést megválaszolni. Ezért nekem mindig az az első hogy keresek addig, amíg nem találok valami infót, ami már létezik az interneten, és ha tényleg kimerítettem mindent, akkor kérdezek meg valamit (de ez a legtöbb esetben nem is szükséges). Mondjuk én kb. csak ide járok, meg ha mondjuk egy OSS package-ről van szó, akkor annak a GitHub oldala szokott lenni a default. Stackoverflow-ra nem is regisztráltam még, mert elegendő kereséssel mindig megtaláltam a nekem szükséges infókat.
-
Ispy
nagyúr
válasz
böng ész ő #16673 üzenetére
Én felhívom az egyik kollégámat, vagy addig túrom a netet, amíg ki nem okoskodom a megoldást, írogatni nem szoktam.
Ide párszor próbáltam, de itt kicsi a merítés, senki sem mer VB-ben programozni.
Meg általában nem olyan kérdés van, hogy akkor ezt vagy azt a kódot hogyan kell megírni, hanem komplex problémák, ami sok lépcsőből állnak, azt meg ugye nem fogják neked megoldani, mert ezért kapod a fizetésed.
-
Ispy
nagyúr
válasz
böng ész ő #16671 üzenetére
Hát vagy felmész a netre, és amit találsz az van, vagy elmész olyan helyre dolgozni, ahol a tapasztaltabb kollégák segítenek, vagy felbérelsz valakit, aki pénzért segít (vagy valami képzésben részt veszel, ami az alapokat elmagyarázza).
Olyan ez mint legyártani egy szekrényt: persze, a neten meg lehet nézni milyen gépek kellenek, miből mennyi anyag, még akár meg is tudod magadnak tervezni, de amikor ott állsz élesben egy kva éles és gyorsan forgó géppel a kezedben és szét kéne farigcsálni a drága anyagot, akkor ott már inkább a rutin számít, ami neked nem lesz. És a netes fórumokon sem fogják neked azt tudni megmondani, amit mondjuk egy asztalos 5-10-15 év alatt magára szedett, mint tudás. Szóval, ha ilyen gondod van a stackoverflowval, akkor át kell fogalmazni a kérdéseket, esetleg több felé bontani, vagy lebontani egyszerűbb részekre. Én még spec soha nem tettem ott fel kérdést, read only vagyok.
-
pmonitor
aktív tag
válasz
böng ész ő #16665 üzenetére
Sztem. ilyen nincs. A stackoverflow-n vannak néha jó dolgok, de ebben sem lehet megbízni. Ami még jobban bosszant, hogy a könyv(ek)-ben sem lehet megbízni. Gyakorlatilag nincs 1 hiteles forrás nemhogy magyarul, de még angolul sem. Ha elakadsz valamiben, akkor:
1.: a probléma átgondolása(gondolkodás)
2.: google, könyv, jegyzet
3.: az adott témában gyakorlás, gondolkodás, gyakorlás...
4.: ha ezek nem vezetnek eredményre, akkor vissza az 1. pontra.Nézd meg. Én itt jó pár témáról 'rajzolgattam, de mindenki csak az utolsó mondatomra reagált. Pl. arra, hogy ezt hogy lehet C-ben megoldani, arra senki sem:
push_chars :
xor edx, edx
mov ecx, base
div ecx
add edx, 0x30
push edx
inc ebx
test eax, eax
jnz push_chars
pop_chars :
pop eax
stosb
dec ebx
cmp ebx, 0
jg pop_charsDe ebben a hozzászólásomban a kezdő témámra sem reagált senki.
--------------------------------------------
Itt a függvény szignatúrákról jutott eszembe, hogy pl. az itoa()-nak a visszatérési értéke lehetne olyan mutató, ami a karakterláncot lezáró '\0' karakter utánra mutat. strcat() esetén meg a karakterláncot lezáró '\0'-ra. Sztem ez is hasznos dolog lenne/lehetne...
-
dabadab
titán
válasz
böng ész ő #16668 üzenetére
A Liskov-féle helyettesítési elv arról szól, hogy ha van egy függvényed, amit meg tudsz hívni egy A osztályú objektummal, mint paraméterrel, akkor az A-ból származtatott B osztályú objektumot is átadhass neki paraméterként és működjön, akkor is, ha az adott függvény azt se tudja, hogy az az adott objektum nem A osztályú vagy hogy egyáltalán létezik B osztály.
Ez annyira alap és magától értetődő dolog bármelyik modern objektumorientált nyelvnél, hogy valószínűleg azért lehetett nehéz megérteni, mert eszedbe se jutott, hogy ezt így külön le kellene írni, hiszen ez a természetes
-
martonx
veterán
válasz
böng ész ő #16665 üzenetére
Ez esetben rossz hírem van a számodra.
-
dabadab
titán
válasz
böng ész ő #16665 üzenetére
nem olyan agyoncenzúrázott, mint a stackexchange oldalak
Wut?
-
Ispy
nagyúr
-
Silεncε
őstag
ő csak itt elbütygölget értelmetlen dolgokat c-ben
Ez így nem igaz, szerintem egész jó dolgokat is csinálgat, abszolút nem ezzel van a baj. A baj ott van, hogy mindenképpen be akarja bizonyítani, hogy ő "laikusként" okosabb mint a magukat "programozónak" nevező emberek, csak mert dolgozik a kisebbségi komplexus és emiatt állandóan telifossa ilyen hülyeségekkel a topikot.
De majd megkapjuk megint, hogy mi nem is vagyunk programozók, csak névtelen nickek, szóval menjünk a pitsába
-
Ispy
nagyúr
válasz
böng ész ő #16657 üzenetére
jaj, ne válaszoljál neki, mert jön a flow, ő meg utána megy 1 hónap pihire.
ez csak a szokásos programozókra héterkedése, futottunk már itt pár kört emiatt
ő csak itt elbütygölget értelmetlen dolgokat c-ben, minden más szar, igazi programozók meg nem is járnak ide, kb. zanzásítva a sztori
-
Silεncε
őstag
válasz
pmonitor #16655 üzenetére
Egy programozó is el tud akadni valamivel? Én azt hittem, hogy azért tanultak olyan sokat, hogy a szakterületükön ne akadjanak el semmivel. De lehet, hogy tévedek/tévedtem.
Megint kezdődik? Tök jó lenne, ha nem itt élnéd ki a kisebbségi komplexusodat, mostmár rohadt unalmas
-
y@g4n
tag
Egy digitális kamerákhoz összerakott live capture appot nézegetek githubon, ezt:
mtplvcap
Működik, D90-el tesztelem, a fő problémám vele hogy maximum 640x424-es felbontásra képes, automatikusan erre áll be, a kamera live view-ét kapja el. Ez multiplatform és Go.Találtam azonban egy mac specifikusat, (nem élek apple termékekkel, kipróbálni nem tudom)
ptpwebcam
ahol lehetséges beállítani, (vagy minimum megpróbálni) nagyobb live view felbontást, és ezzel párhuzamosan nő az usb-n továbbított videofeed felbontása. Ez Objective-C.Se Go-ul, se Objective-C ül nem értek, ha valakinek van kedve szenvedni vele(m) akkor szívesen fogadok segítséget.
Az Objective-C ben megírt felbontásállítást kellene a Go-s cuccba portolni, tegnap kiakasztott ez a Go annyira korlátoz mindent mindenhol.
Azért gyanítom hogy lehetséges, mert itt az 543-as sorban a konstans hex kódja ugyanaz mint a másik repoban ugyanazen konstans hex kódja a 113-as sorban, és ezen utóbbi maces projektben vannak olyan konstansok amik felelősek a live view beállíthatóságáért, 0xD1A6, és 0xD1AC a tippjeim.Ez a commit ahol beillesztette a mac es projektbe a készítő a felbontásbeállítást.:
commit -
pmonitor
aktív tag
válasz
sztanozs #16528 üzenetére
Készítettem én is egy 300000-es futtatást olyan szisztémával, mint ahogy Te csináltad. Tehát hogy az "A" program írta file-ba az adatokat. Ez lett az output. Nálam mondjuk mások az egyedi adatok:
Egyedi PID: 241955
Egyedi HWND: 286085
a 300000-ből.
Olyan eset nem volt, hogy mindkettő megegyezett volna. A program leírása itt található meg.@Silεncε:
Ugye milyen jó, hogy nem fogadtál?
Az itoa() szignatúrája:char * itoa ( int value, char * str, int base );
Az én függvényem szignatúrája:
char* int_ToStringC(int i, char* s, int base)
Nincs többfajta input.@sztanozs:
Pl. ilyen teszt programok esetén is elég so'xor kell integert konvertálni. Ahányszor meghívom a PidAndHwndA.exe-t, mindannyiszor 2 számot konvertál(a pid-et és a hwnd-t).
Vagy másik példa a feledatkezelő. Ott is nagyon so'xor kell számot konvertálni. Mondjuk egyik esetben sem kell 30 misiszer konvertálni, de azért látszik, hogy akad 1-2 eset, amikor jó sokszor.@dabadab:
Ugye, hogy nem veri meg ezt az assembly kódot!?@dabadab:
Itt azt írtad, hogy:
>A C az gyakorlatilag hordozható assembler, ennek megfelelően kell hozzáállni, aki ott azt mondaná, hogy a JMP használatát el kell kerülni, azt kiröhögnék.Szerintem a C nem hordozható assembler. Közel sem!!! Ilyent hogy írsz meg C-ben?
push_chars :
xor edx, edx
mov ecx, base
div ecx
add edx, 0x30
push edx
inc ebx
test eax, eax
jnz push_chars
pop_chars :
pop eax
stosb
dec ebx
cmp ebx, 0
jg pop_charsEzt én úgy írtam meg, hogy char tömböt használtam, és a végén "megfordítottam". De ez a megoldás nagyon nem ugyanaz, mint az asm esetén használt push-ok és pop-ok használata. A C közel sem hordozható assembler!
@böng ész ő:
>Ha elakadsz valamivel
Egy programozó is el tud akadni valamivel? Én azt hittem, hogy azért tanultak olyan sokat, hogy a szakterületükön ne akadjanak el semmivel. De lehet, hogy tévedek/tévedtem. -
ktg3
őstag
Tud valaki segíteni ebben?
long mhMessage;
int *responseMessage;
ClearWriteWindow();
mhMessage = Uds.DiagNewRequest("Identification/Version_read/Read");
Write("--------");
responseMessage = BMW_R8_Uds.DiagSendRequest(mhMessage);
A problémám az, hogy van egy olyan UDS job-om, ami a többséggel ellentétben erre a kérésreDiagSendRequest
sokkal hosszabb válasszal (67byte) tér vissza.
Hogy kéne itt deklarálnom responseMessage-et, hogy használható legyen?
Órák óta ülök fölötte, de nem jutok előrébb -
martonx
veterán
válasz
böng ész ő #16648 üzenetére
stackoverflow, google
-
Ispy
nagyúr
válasz
böng ész ő #16648 üzenetére
Definiáld a szakmai problémát.
-
rosejbli
senior tag
válasz
böng ész ő #16648 üzenetére
Attól függ, mit nevezel szakmai problémának. Ha elakadok valami feladatban, akkor google vagy youtube szokott a segítségemre lenni. Ha a kollégákkal van bajod akkor profession.hu
-
coco2
őstag
Linux X-szerverek automatizálásában van otthon valaki?
Van egy Xdotool nevű csoda ara, hogy gomblenyomásokat és egér kattintásokat küldjek egy futó alkalmazásnak. A problémám vele az, hogy nem kevés gombnyomás + egér klikk kellene + össze kellene építenem grafikus adat felismeréssel is, ami megköveteli, hogy egy előtérben futó alkalmazás maradjon előtérben. Sajnos az nem jön össze, ha system() parancsokkal konzol appokat indítok
Ha futott már valaki köröket a problémával, bármilyen bölcsességnek örülnék, mit lehet kezdeni vele.
-
pmonitor
aktív tag
A Cutter_1.0.0.1 program funkcióját bővítettem. Mostantól ha leállítjuk a keresést, akkor is kiírja az addigi legjobb eredményt a középső szövegmezőbe(ezt eddig nem tette). Ezzel már használható úgy is, hogy egy nagy számot állítunk be a "Próbák száma" részben, és akkor állítjuk le a keresést, amikor csak akarjuk.
-
cattus
addikt
válasz
zsolti_20 #16644 üzenetére
document.getElementById("box1").value = document.getElementById("box2").value = "kecske";
vagy
["box1", "box2"].forEach(id => document.getElementById(id).value = "kecske");
Meg még biztos van rá sok egyéb módszer, de most ezek jutottak eszembe. De érdemes megfontolni, hogy sokszor a rövidebb kód nem biztos hogy jobb, gyakran az olvashatóság rovására megy a sorok számának kényszeres redukálása.
-
zsolti_20
senior tag
válasz
disy68 #16639 üzenetére
Sikerült megoldani amit szerettem volna, köszönöm szépen a segítséget.
1 dolog maradt már csak hátra, hogy egy javascript utasítással tudjak több értéket változtatni.
Jelenleg így van megoldva:document.getElementById("box1").value = "kecske";
document.getElementById("box2").value = "kecske";
Lehetséges ezt a két sort valahogy így összefűzni?document.getElementById("box1") && ("box2").value = "kecske";
-
zsolti_20
senior tag
válasz
disy68 #16639 üzenetére
Köszönöm szépen a tippet, ez alapján sikerült egy ilyen kódot találnom, ami már majdnem amit szeretnék.
Van arra valami mód, hogy lekérjem először az x.rowIndex-et majd egy for ciklusba bedobva végig kattintson rajta?
<!DOCTYPE html>
<html>
<head>
<style>
table, td {
border: 1px solid black;
}
</style>
</head>
<body>
<p>Click on each tr element to alert its index position in the table:</p>
<table>
<tr onclick="myFunction(this)">
<td>Click to show rowIndex</td>
</tr>
<tr onclick="myFunction(this)">
<td>Click to show rowIndex</td>
</tr>
<tr onclick="myFunction(this)">
<td>Click to show rowIndex</td>
</tr>
</table>
<script>
function myFunction(x) {
alert("Row index is: " + x.rowIndex);
}
</script>
</body>
</html>
-
Yany
addikt
válasz
ValGerald #16456 üzenetére
Nem gondolnám, hogy ismereteid tágítása bezavarna bármibe, sőt, szerintem az absztrakciós skilledet csak javíthatja. Persze "bezavarhat" olyan értelemben, hogy jobban elkezd érdekelni és a többit ezért elhanyagolod, de én mindig azt vallottam, igazán jó csak abban lehetsz, amit szeretsz csinálni. Hát csináld azt. Azt viszont csak akkor tudod meg, hogy mi érdekel igazán, ha kipróbálod.
Amúgy Unityben én most ilyesmin dolgozom: [Bridge Master WIP] , és így néz ki környezetbe ágyazva egy egyszerűbb, vele készült híd: [Bridge Master - Forest]
-
K1nG HuNp
őstag
@zsolti_20
Fogsz egy headless chromeot pl puppeteer vagy playwright es azt felhasznalva irod meg a szkriptedet. Egyreszt ha nagyon ezt a meretes dolgot akarod tolni (amit nem eroltetek, attol hogy nincs IDje vegtelen mas modon el tudsz odaig jutni) akkor azt kontrolaltan megteheted, de nezz bele a doksikba es hamar talalsz jobb megoldast.
-
zsolti_20
senior tag
válasz
fatal` #16638 üzenetére
Sajnos nincs semmi. Ezek valamiféle dhtmlXTree checkboxok. Ha megfigyelem csak egy gif van a helyén amit változtat.
<img src ="folder/dhtmlxTree/folder/folder/img.gif" align="absmiddle" stlye ="width: 16px, height: 16px;">
Ha kiválasztom az egér click eventet a DevTools-ból akkor beugrik egy javascriptbe ahol a tickbox chekolás ezzel a paranccsal történik:
this.treeNod._setCheck(this.parentObject, true);
vagythis.treeNod._setCheck(this.parentObject, false);
Attól függően ugye hogy az if melyik feltétele teljesül rá.
A this-re ha ráviszem az egeret akkor azt az img-t jelöli ki amire rákattintottam előtte.
A this.parentObjectre pedig egy dhtmlXTreeItemObjectet ír ki a consoleban. -
zsolti_20
senior tag
válasz
disy68 #16636 üzenetére
A weboldal ahol használni szeretném, ott nincs ID-je a checkbox/tickboxnak, így sajnos nem tudom manipulálni javascriptből. Megnéztem mi fut a háttrében pontosan és láttam, hogy egy egér kattintást vár, amiből bekéri a koordinátákat, majd ebből találja ki valahogy, hogy mire lett kattintva.
Arra gondoltam, hogy ID hiányában az egér kattintással az egész folyamatot könnyedén elindíthatnám. -
zsolti_20
senior tag
Sziasztok!
Össze dobtam egy kódot JavaScriptben ami képes lekérni a koordinátát a weboldalon ahová kattintok és azt is, hogy a lap tetejétől mennyire lett legörgetve.
Ezt össze adva megkapom az X és Y koordinátát ahová szeretnék kattintani.
Szeretnék egy egérkattintást megoldani egy bizonyos területre amit X és Y koordinátával adok meg. A probléma az, hogy ha az oldal mérete nem ugyan az a másik laptopon mint az enyémen akkor nem fog oda kattintani. Egy 150%-ra zoomolt weboldalon mondjuk a 100, 100 koordinátán máshová fog kattintani mint egy olyan weboldalon ahol a zoom 100%-os.
Véleményetek szerint lehetséges, azt megoldani, hogy a képernyő mérettől vagy a zoomtól függetlenül ugyan oda történjen a kattintás?
-
pmonitor
aktív tag
-
dqdb
nagyúr
-
pmonitor
aktív tag
válasz
sztanozs #16612 üzenetére
>a felhasználói programok nagy részében a műveletek végrehajtási idejének nagy részét az IO-ra való várakozás tölti ki, nem a kalkuláció.
Van a következő kód:
#include <stdio.h>
#include <Windows.h>
#include <time.h>
#include <sys/timeb.h>
long timediff(struct timeb* start, struct timeb* end)
{
long seconds;
seconds = (long)(end->time - start->time);
start->millitm = end->millitm - start->millitm;
if (0 > start->millitm) {
start->millitm += 1000;
seconds--;
}
return seconds;
}
int main()
{
struct timeb start, end;
long seconds, seconds_1, seconds_2;
int militm, militm_1, militm_2;
int i, j;
char ch[] = "abcdefghijklmnopqrstuvvxywz";
DWORD sizewrit;
BOOL ret;
ftime(&start);
for (i = 0; i < 10000; i++)
{
FILE* fp = fopen("d:\\b.txt", "w");
for (j = 0; j < 100; j++)
{
fwrite(ch, sizeof(ch[0]), 27, fp);
}
fclose(fp);
remove("d:\\b.txt");
}
ftime(&end);
seconds = timediff(&start, &end);
militm = start.millitm;
ftime(&start);
for (i = 0; i < 10000; i++)
{
HANDLE FileH = CreateFileA("d:\\a.txt", GENERIC_WRITE, 0, 0, CREATE_NEW, FILE_ATTRIBUTE_ARCHIVE, 0);
for (j = 0; j < 100; j++)
{
WriteFile(FileH, ch, 27, &sizewrit, 0);
}
CloseHandle(FileH);
DeleteFileA("d:\\a.txt");
}
ftime(&end);
seconds_1 = timediff(&start, &end);
militm_1 = start.millitm;
printf("Eltelt ido(fwrite()): %ld.%03d masodperc\n", seconds, militm);
printf("Eltelt ido(CreateFileA()): %ld.%03d masodperc\n", seconds_1, militm_1);
return 0;
}Itt pl. a C library jelentősen gyorsabb, mint a win api hívások. Pedig mindegyik a HW-n végez műveleteket. Az állításod szerint elvileg mindegy lenne, hogy melyik algó a gyorsabb/lassabb. De itt nem így van. Pedig a disk sebessége ugyanaz. A C függvények mégis "folyékonyabban beszélik a nyelvét".
Mostanában a szabadidőmben elég sokat foglalkoztam a sebességgel. Arra jutottam, hogy egyáltalán nem lehet általánosságban kategorikusan kijelenteni vmit. Ha csak a C-t, és a library-t nézzük, akkor sem. Az egyiknél jelentősen gyorsabb, mint egy egyedi implementáció, másik esetben meg fordítva van. Ki tudja megmondani, hogy melyik van többségben?
@Ispy #16621:
Azért a játéknál többet érnek ezek a példák. Én pl. sokat tanultam belőlük. Talán a legfontosabb, hogy a mostanra majdnem NULL ASM tudásomat frissítettem. Ez önmagában is elég lenne. Ezen kívül megtudtam, hogy a C library-ban is vannak nagyon lassú megvalósítások(bár hogy mennyi, azt nem tudom) is. És még sok mindent...
Ráadásul több esetben megtudtam, hogy bizonyos esetben melyik a hatékonyabb. Ezeket sztem. nem felejtem el, ugyanakkor "elmentettem". Így ha valamikor a hatékonyabb algóra van szükség, akkor elő tudom venni a tarsolyomból. Szóval számos gyakorlatban használható eredménye is volt.@sztanozs #16625:
Kimondottan C területről nem tudok. De pl. a(z) (alkalmazás) szervereken elég sok számot kell konvertálni. És egy sűrün látogatott oldalon ez sokat jelenthet. -
MostaPista
tag
Milyen programmal lehet egy weboldal-bol (html fajl) lementeni viszonylag rovid szoveges informaciot html tag-ek alapjan, es azt tagolt szovegkent, vagy csv fajlba eltarolni?
Peldaul a html tag az a "title" es akkor a ket title kozotti szoveget kell kimenteni.
Persze, valahogy weben meg kell talalni a fajlt, es onnan kimenteni - vagy esetleg egy programmal lementeni a html fajlt egy adott konyvtarba, es egy masik programmal onnan kikeresni a szovegreszletet?
-
Marky18
aktív tag
válasz
sztanozs #16625 üzenetére
Raadasul egy szalon...
Jok ezek a peldak, senki se vonja ketsegbe, hogy egy adott processzorra kioptimalizalt assembly gyorsabb, mint egy magasabb szintu implementacio, de amikor dolgozni kell, akkor nem fog senki beincludeolni egy libet azert, hogy kis idot nyerjen egy trivialis lepesen. Inkabb szalakra dobalom a feldolgozni valot, vagy, ha olyan a feladat, akkor architekturalisan optimalizalok.
Beagyazott rendszereken kivul nem is igazan tudnek olyan teruletet, ahol ilyen szintu optimalizalas kell, de oda meg amugy is olyan fejlesztok mennek, akik kenik-vagjak az adott processzorra torteno fejlesztest. -
Froclee
őstag
Gépet kell vennem melóra. MacBook-ot veszek valszeg, mert már nagyon hozzászoktam, csak arra vagyok kíváncsi, hogy az új M1-esekkel dolgozik-e már tőletek valaki. Ha lehet inkább azt venném, mint Intel-est.
.NET Core / Ruby / Node / Go / Java / Python, elég vegyes felvágott a felhozatal.
-
Ispy
nagyúr
Már megint a sebességnél tartunk....tudomásul kell venni, hogy manapság a hardvert bővíteni olcsóbb, mint egy agyonoptimalizált programot íratni bárkivel is. Játéknak jók ezek a példák, de ha üzleti szempontból nézem nem sok haszna.
-
pmonitor
aktív tag
válasz
sztanozs #16618 üzenetére
Kb. 30-40 milliószor. De azt sem szabad figyelmen kívül hagyni, hogy ha több ilyen alacsony hatékonyságú függvény van az STL-ben, azok természetesen összeadódnak. Még szerencse, hogy a legnagyobb különbség a bináris számrendszerben van. Ott az itoa() 200!!!, míg az int_ToStringC() 25 sec. körül végez(8-ad része alatt). Ez azért szerencse, mert a bináris formátumot ritkán kell tömegesen használni. Azért azt senki nem mondhatja, hogy a 200, és a 25 másodperc között jelentéktelen a különbség.
Ki tudja mennyi ilyen függvény van az STL-ben, és nagyságrendi különbség van-e egy programozó implementációjával szemben? Egy példa:
A FindFile.exe(C#), és a FindFileC.exe(C) programom is rekurzióval hívom meg, de úgy, hogy egyszerre csak 1 findfirstfile()-al megnyitott handle van. Ez jóval gyorsabb, mint a "szokásos" rekurzió, amelyben sokkal több handle van egyszerre nyitva. Viszont a módszerem hátránya, hogy memóriazabáló(de hát valamit valamiért). -
martonx
veterán
válasz
pmonitor #16616 üzenetére
"De sztem. az elég sokszor előfordul, hogy tömegesen kell számokat szövegre konvertálni." -
Szerinted. A valóságban meg nemlegalábbis semmiképpen sem tömegesen. Néha 1-1 logban nyilván szövegesen iratod ki a számokat is, de kb. ennyi (a nyilvánvaló programozói hibákat, helytene adat modellezést leszámítva).
-
pmonitor
aktív tag
válasz
pmonitor #16614 üzenetére
Viszont most megnéztem winen a Code:: Blocks+Mingw kombóval. Itt meg az itoa() minimálisan gyorsabb(de ugyanazzal a kóddal mindegyik 15 és 19 sec. között fut le). Ez azonban a VS középértékének felel meg. A fordítótól is nagyon sokat függ.
@martonx:
Igazából a sebesség akkor számít, ha valamit ciklusban és sokszor hívunk(addig nem érdekes). De sztem. az elég sokszor előfordul, hogy tömegesen kell számokat szövegre konvertálni. -
martonx
veterán
válasz
pmonitor #16611 üzenetére
Hagy mondjak egy személyes példát.
Megrendelőnek volt egy utazáskereső rendszere, aminek már sok fejlesztő csapat nekifutott, a legjobb aki előttünk volt 2 perces keresés válaszidőket tudott felmutatni, nulla szűrési feltételekkel, hibás listázással stb...
Utána szerződött velünk, és az volt a kikötése, hogy 30 másodperc alatt érkezzenek meg a keresésre a válaszok, működő szűrésekkel, hibátlanul.
Megoldottuk neki C#-al, hogy 40 ms (igen fél perc volt az elvárás, és 40 milisec alatt jönnek a válaszok) alatt érkeznek a válaszok, vicc szerver terheléssel, minden szerződéses határidőt betartottunk. Az ügyfél szuper elégedett volt.
Vajon tényleg ennyire elégedett lett volna, ha tízszer ennyi idő alatt, tízszer ennyi pénzből oldjuk meg a feladatot C-vel / assembly-vel, és cserébe 2 ms alatt jönnek a válaszok?
Nem igazán hinném. -
sztanozs
veterán
válasz
pmonitor #16611 üzenetére
Nem foglalkoznak. Azaz, ahogy a rendszerszervezés tanárom mondta annó:
Ha egy kónak 0.0001 mp alatt kell végrehajtódnia, de az csak 0.0002 mp alatt fut le, akkor az lassú, de ha az elvárás 3 mp és 2 alatt fut le, akkor az gyors.
Igazából az esetek nagy részében nincs szükség sebességre optimalizálni (se kódméretre - néhány memóriaszegény embedded/mikrokörnyezet kivételével), hiszen a felhasználónak mindegy, hogy a művelet, amit észre sem vesz 0.001 vagy 0.01 mp alatt fut majd le. Ráadásul a felhasználói programok nagy részében a műveletek végrehajtási idejének nagy részét az IO-ra való várakozás tölti ki, nem a kalkuláció. -
pmonitor
aktív tag
Köszi a forrás útvonalát.
Az lehet, hogy a stabilitásra optimalizálják a library-kat, de a sebességgel ennyire nem foglalkoznak!? Mert itt nem 1-2 %-ról beszélek. Az adott kód futásideje nagyságrendileg egyharmadára csökken(illetve lehet csökkenteni). Ez sztem. nem nagyon fér bele abba, hogy "lehetőleg jó sebességgel tegyék".
>Te nyújtottál egy implementációt x86-ra
Sztem félreértetted. Amelyik hozzászólásomra válaszoltál, az már nem az általam assemblyben írt kódról szólt. Ez már arról szólt, hogy C-ben könnyen lehet jelentősen gyorsabb kódot írni pl. az itoa() esetében. A C kód meg minden támogatott architektúrán és rendszeren jó. Az zavarhatott meg, hogy az elején az általam asm-ben írt kódról volt szó.
De mind1. Már ezt is tudom, hogy a C library függvényei sem a sebességükről híresek. Ez van.
-
dqdb
nagyúr
válasz
pmonitor #16609 üzenetére
C:\Program Files (x86)\Windows Kits\10\Source\10.0.xxx.0\ucrt\convert\xtoa.cpp
Itt meg tudod nézni a forrást, a mappa neve változhat a telepített SDK verziószámának függvényében. Ha másik implementációra is kíváncsi vagy, akkor a glibc-ben lévőt itt találod.A crt, glibc és hasonló alap C libraryk célja nem az, hogy a végtelenségig optimalizálva legyenek sebességre, hanem az, hogy a végtelenségig optimalizálva legyenek stabilitásra, ne tartalmazzanak hibát, működjenek minden támogatott architektúrán és rendszeren, és mindezt lehetőleg jó sebességgel tegyék.
Te nyújtottál egy implementációt x86-ra, míg a Microsoft megoldása x64, ARM32 és ARM64 esetében is működik, a glibc esetében pedig kilométeres a lista.
-
pmonitor
aktív tag
válasz
kovisoft #16602 üzenetére
Módosítottam itt a mintakódokat, valamint bemásoltam azok eredményeit. Csak azt nem értem, hogy a standard könyvtárbeli itoa() függvénye miért ennyire lassú. Pedig ezt is programozó(k) készített(e/ék). Azt én már biztosnak veszem, hogy sebesség szempontjából minden nyelvben az alkalmazott algoritmusnak van nagy jelentősége. Ha az algoritmus jó, akkor már csak kevésbé lehet optimalizálni. Legalábbis, ha a nagyságrendet nézzük.
De egyébként úgy látom, hogy Rád lehet hallgatni. Nagyot nem tévedsz. -
coco2
őstag
válasz
Marky18 #16603 üzenetére
Nem kell addig menni, hogy xml vagy json. A bemeneti paraméterek előre file-ba lesznek írva javascript változók formájában, a weblap be fogja olvasni js file-ként. A kimeneti változókat össze tudom csomagolni egyetlen stringes paraméterbe, és belerakom a GET hívásba. Azon túl adatátvitel nem kell.
Az "xmlhttprequest" nevet illetően: ez a neve JS-ben, nincsen választék
A fene se akar xml-el vacakolni
Csak localhost lesz address, nem kerül webre. És szívesen megspórolnám a webszervert és használnék inkább mezei c# programot, csak nem biztos, hogy megtehetem
Enterprise policy nem játszik, viszont stabilan működő eredményt szeretnék.
Jó lenne leírva látni milyen policy-kat követ a chrome engine-je a cél domain-eket illetően. Mikor követel meg https-t és mikor nem. Ha felpattog mindenféle el-ok-ézandó üzenet, meg hogy kivétel hozzáadása meg a többi google-inkvizíció, az nem funny.
-> A problémám lényegében annyi, hogy nem találom a policy összefoglalót
Ha valakinél éppen kéznél van olyan link, had kérjem el. A többivel elboldogulok.
-
pmonitor
aktív tag
válasz
kovisoft #16602 üzenetére
Értem amit írsz, és igazad van, C-re visszafordítva sokkal gyorsabb. Bár még csak a 10-es számrendszert tudja. De aki otthon van az ASM programozásban, lehet, hogy a C kódnál is tud még gyorsabb kódot írni ASM-ben.
De azt is figyelembe kellene venni, hogy ha van egy itoa() függvény, akkor miért kell a user-nek(mármint a programozónak) újra implementálnia, hogy az itoa()(vagy mondhatnám bármelyik függvényt) idejét 100%-nak nézve kb. 30% alatt fusson le?
És ugyanezt mondhatnám bármelyik nyelvre is. Hogy csak a C#-ot emeljem ki. Ott is csak úgy lehet gyors kódot írni, ha:
1.: Az ember teljesen felrúgja az OOP alapelveit(tehát áttér a C stílusú kódolásra)
2.: Unsafe kódot használ.
3.: Ha nem algoritmusos/matematikai probléma, akkor áttér a win api használatára.Nem tudom, hogy érted-e, hogy mi a mondanivalóm lényege. Ha megvalósítottak vmit. az adott programnyelven, akkor miért kódolja le a user még egyszer ugyanazt, hogy jelentősen gyorsabb legyen?
-
Marky18
aktív tag
En elfelejtenem az XML-t, hasznalj JSON-t es nyalazd at a .NET WebAPI-t, mert konnyebb implementalni, mint a socket kommunikaciot. A JSON azert jo, mert gyorsabban atkuldheto es feldolgozhato, plusz debugolasnal szemmel is konnyebb atlatni.
Nem tudni mennyire kritikus ez a rendszer, de en nem szarakodnek SSL-el, ha nem kerul netre a cucc. -
kovisoft
őstag
válasz
pmonitor #16597 üzenetére
Nem látom sok értelmét annak, hogy egy általad pontosan nem ismert működésű függvény (legyen ez akár az sprintf, akár az itoa) futásidejét hasonlítgatod egy Assembly kódhoz, ami látszólag ugyanazt csinálja, majd ebből próbálsz meg következtetést levonni a C vs Assembly sebességére. Ha ilyen összehasonlítást akarsz tenni, akkor írj két függvényt (az egyiket C-ben, a másikat Assemblyben), amik ugyanazt csinálják, de úgy, hogy egyikben sincs plusz ismeretlen tartalmú függvényhívás. Például fordítsd vissza az Assembly kódodat C-re, fordítsd le sebességre optimalizálva, és ezeket hasonlítsd össze.
-
coco2
őstag
Sziasztok!
Windows desktop alkalmazásból (valószínűleg c#, de igazából mindegy) helyi gépen elindítom a gépen lévő chrome-ot, és betöltetek vele helyi hdd-ről weblapot (az origin nem webcím lesz, hanem helyi könyvtár). A weblapban html + css + javascript alkalmazás van. A host programból szeretnék kommunikálni valahogy a javascript alkalmazással. Ha jól sejtem, az xmlhttprequest() az egyetlen szabványosan elfogadott forma, ahogyan abból a js alkalmazásból adatot ki tudok küldeni a host alkalmazás felé. HTTP://127.0.0.1-hez tudok tcp socketot nyitni (lefoglalok egy random portot, pld pont a 2222 lett az, és http://127.0.0.1:2222-re nyitok csatornát xmlhttprequest-el), és fogadni, amit a javascript küldene. De ha kötelező HTTPS-t használnom, mert azt mondja a jelenkori ukáz, hogy a HTTP már ördögtől való akár helyi gép akár nem, akkor egy kicsit bajban vagyok, hogy van-e win 10 alatt rendszeresített tanusítvány mindenféle extra beállítás nélkül?
Ha valaki küzdött már meg a problémával, örülnék az utólagos bölcsesség tanácsának. Köszönöm.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Alakul a SpaceX Starlink európai ellenfele
- Milyen TV-t vegyek?
- Mibe tegyem a megtakarításaimat?
- Anime filmek és sorozatok
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Hobby elektronika
- Lexus, Toyota topik
- PlayStation 5
- OnePlus 7T Pro - árban is a csúcson
- CURVE - "All your cards in one." Minden bankkártyád egyben.
- További aktív témák...
- HP OMEN 17" Gamer laptop , RTX 4060 , R5 8645HS , 16GB DDR5
- Eladó egyben 17 db HDD
- szinte új 11 hüvelykes iPad Pro (M4) (2024)Wi-Fi 256GB silver ezüst Smart Cover Apple 3 év garancia
- Xiaomi Redmi Note 11 128GB, Kártyafüggetlen, 1 Év Garanciával
- új aktiválatlan MacBook Pro 16 hüvelykes M1 Max 1TB SSD 64GB Apple silver ezüst
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest