- bitpork: Augusztus 2- szombat jelen állás szerint.
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- Yutani: Yutani Retró Hangkártyái: AdMOS AdWave 32
- user2: Kia Ceed Gold 160 1.5 T-GDI MY2024
- Kempingezés és sátrazás
- gerner1
-
LOGOUT
Új hozzászólás Aktív témák
-
don_peter
senior tag
válasz
dabadab #16482 üzenetére
Most a legtöbb esetben a Flutter jön szembe, kereszt platform tekintetében lehet jobb lenne ebbe az irányba elmozdulnom? A Dart nyelvről olvastam, hogy JS alapú illetve arra hasonlít legjobban, viszont a kód védelemről nem igen olvasni. Hogy oldják meg azt, hogy mondjuk egy adatbázis kapcsolati adatok ne kerüljenek ki? Vagy mondjuk fordítást követően már nem lesz nyílt a forráskód?
-
Csaby25
őstag
Sziasztok!
Flutter (Dart), vagy Django (Python), szerintetek melyiket lehet hamarabb elsajátítani egy junior (tapasztalat nélküli) pozícióra? (Jelenleg Java-t tanulok és nagyon régen volt egy kis Python)
Köszi!
-
Csaby25
őstag
Sziasztok!
Kb. másfél éve elvégeztem egy gyorstalpalót Java-ból. Azóta egyedül tanulom, SFJ videóit vettem át, jelenleg Udemy-ről tanulok. Nyolc óra munka és család mellett a vártnál lassabban haladok
A cél az lenne, hogy befejezem a Udemy kurzust, utána meg egy saját projektet készítek Spring Boot-al, amivel lehet esélyem egy junior pozícióra.
De most találtam egy helyi céget amely kezdőket is keres tapasztalat nélkül, Flutter-ben és Python (Django)-ban. Anno dolgoztam picit Odoo-ban, tehát a Python közelebb áll hozzám. Azt mondták, hogy ha készítek 2-3 Django webappet, amiből egyet tutorial nélkül akkor menni fog a technikai interjú.
Az lenne a kérdés, hogy szerintetek érdemes időt szánnom, Pythont (Djangot) tanulni? Igazából picit félek, hogy ez is elhúzódhat, mint a Java, illetve, ha abbahagyom a Java-t, akkor kárba megy a belefektet idő
Ti mit tennétek a helyemben, folytassam a Java tervet, vagy vágjak bele Django-ba?Köszi!
-
> Amíg valaminek nullánál nagyobb a valószínűsége, legyen az akármilyen alacsony ε is, addig nem lehet kijelenteni, hogy lehetetlen.
Pedig egyebkent jo ellenpelda az UUID. Veletlenszeruen generalt UUID-knel nem kell ellenorizni az utkozest, pedig 0-nal nagyobb a valoszinusege, hogy utkozik.
-
dqdb
nagyúr
válasz
pmonitor #16491 üzenetére
Én azt mondom, hogy meglehetősen alacsony a valószínűsége.
Amíg valaminek nullánál nagyobb a valószínűsége, legyen az akármilyen alacsony ε is, addig nem lehet kijelenteni, hogy lehetetlen. Már túl sok meglehetősen alacsony valószínűségű dolgot láttam bekövetkezni ahhoz, hogy azonnal nekiálljak jobb megoldást keresni az ilyeneknél.
-
pmonitor
aktív tag
> olyat, hogy a kicsi valószínűsége, nem lehet kijelenteni és építeni sem lehet arra, hogy kicsi a valószínűsége.
Szóval szted. ez bekövetkezik:
1.: Indítasz egy X típusú alkalmazást, aminek Y a PID-je, és Z az elsődleges window HWND-je.
2.: Bezárod ezt az alkalmazást.
3.: Indítasz egy következő X típusú alkalmazást, S idő múlva.
4.: Ennek az X típusú alkalmazásnak ugyanúgy Y a PID-je, és Z az elsődleges window HWND-je.Erre azt mondod, hogy "gyakorlatilag be fog következni."?
Sztem. még az is majdnem lehetetlen, hogy Y lesz a PID-je ÉS Z lesz VALAMELYIK window HWND-je. És gondolj bele: ez még mindig nem ugyanaz az eset, mert ugye a Z HWND-vel az ELSŐDLEGES window-nak kell rendelkeznie(nem valami button-nak, vagy textbox-nak).
Na én erre azt mondom, hogy lehetetlen! Attól függetlenül, hogy nem tudom, hogy a Microsoft "milyen algoritmus szerint osztogatja a handle-öket és PID-eket Windowsban". -
dqdb
nagyúr
válasz
pmonitor #16487 üzenetére
Ha valami elvileg lehetséges, akkor úgy kell felkészülni, hogy gyakorlatilag be fog következni.
A Microsoft sehol sem dokumentálta, milyen algoritmus szerint osztogatja a handle-öket és PID-eket Windowsban, így olyat, hogy a kicsi valószínűsége, nem lehet kijelenteni és építeni sem lehet arra, hogy kicsi a valószínűsége.
Van, amelyik "kidob", ha a feladatkezelőben "kilövöm" a böngészőt, és valamelyikeknél bejelentkezve maradok.
Session cookie vs persistent cookie, az oldalon múlik, hogy melyiket használja. -
-
pmonitor
aktív tag
válasz
sztanozs #16483 üzenetére
Igaz, hogy említettem a PID-et, de ha megnézed, akkor a példakódban a Fő form Handle-jét(HWND-t) nézem. És annak küldök üzenetet. Bár elvileg a HWND is lehetne ugyanaz ismételten, de nem hiszem, hogy sűrű jelenség lenne az ilyen. De lehet a PID-et és a Me.Handle-t is rögzíteni, akkor még biztonságosabb. Olyan tényleg nagyon ritkán van(ha van egyáltalán), hogy a egy új alkalmazás úgy jön létre, hogy az előtte nemrég bezárt alkalmazással azonos a Fő form HWND-je is és a PID-je is. Ez sztem. szinte lehetetlen.
-
lenkei83
tag
válasz
sztanozs #16485 üzenetére
Nem tudom ezt miből szűrted le. Korábban volt egy ilyen hozzászólás az egyik tagtól: "Ha nem rendeltetésszerűen szállt ki, akkor még bent van, majd a ráindításkor eldöntöd hogy most beengeded login nélkül vagy csak frissited az adatait."
De senki sem írta, hogy ez így működik, vagy így kellene működnie. Minden egyes belépésnél meg kell adni a login adatokat. -
sztanozs
veterán
válasz
pmonitor #16478 üzenetére
Ez azért nem biztonságos, mert egy terminal szerver esetén simán lehet, hogy egy új processz megkapja egy bezárt processz PID-jét és így a felhasználó egy másik user nevében automatikusan belép.
lenkei83
Amúgy felesleges ez a trükközés. Ha nem akarsz automatikus belépést, akkor minden alkalmazás indításnál el kell kérni a felhasználónevet és jelszót, és kakukk.Illetve ha nincs alkalmazásszerver, akkor a legegyszerűbb, ha a usereknek létrehozol SQL usereket és azzal lépteted őket be (nem pedig egy - remélhetőleg nem dba - shared user van az adatbázis kapcsolathoz, a kódba/config fájlba beégetve).
-
dabadab
titán
válasz
don_peter #16481 üzenetére
Ha ilyet akarsz csinálni, akkor nem igazán programnyelvet, hanem egy cross platform app development frameworköt kell választanod, mert az kell neked.
Amíg ide nem téved egy mobilos fejlesztő, csak így idehánynám az ismertebbeket, zárójelben a használt programnyelvvel:
Flutter (Dart)
Xamarin (C#)
React Native (JS + HTML)
NativeScript (JS + HTML)
Ionic (JS + HTML) -
don_peter
senior tag
Hölgyek és Urak!
Egyelőre csak kutatási fázisban van egy projektem, amelyben azt vizsgálom, hogy milyen programozási nyelven lenne érdemes nekiállni egy cross platform-os alkalmazás leprogramozásának. Python és java nyelvekre gondoltam és kikérném a véleményeteket tapasztalataitokat, hogy mobil alkalmazás készítésre merjem e használni ezen nyelveket vagy más felé kezdjek el gondolkodni.
A program néhány tulajdonsága.
Mobil alkalmazás, Android és iOS-re,
SQL adatbázist kell majd használnia
Webes oldal is lesz majd mellette, aminek az adatbázisát fogja használni
Dizájn fontos lesz, emiatt nyilván grafikus felületet kell alkotni,
Beléptető illetve regisztrációs, értesítő rendszerek,
Fontos továbbá, hogy a tárolt adatok érzékenyek, tehát nem lenne jó, ha hozzáférhetőek lennének az SQL hozzáférési adatok vagy a forráskód,
Esetleg, ha lenne ingyenes vagy fizetős sablonok az előnyt jelentene, mert akkor nem kellene nulláról felépíteni egy teljes alkalmazást.Előre is köszi minden tanácsot vagy megjegyzést.
-
pmonitor
aktív tag
válasz
lenkei83 #16474 üzenetére
Ez esetben a belépésnél el kell küldened a PID-et, vagy a Fő form Handle-jét, és rögzíted az adatbázisban, ha nincs benne. Én a fő form Handle-jét küldeném el, mert ebből is utána lehet nézni a PID-nek. A következő lépés attól függ, hogy mit rögzítesz az adatbázisban. Ha a Fő form Handle-jének WM_DESTROY üzenetet küldesz a SendMessage-el, akkor ugyanazt éred el, mint az application.exit-el(ez "mindent visz"). Ha WM_CLOSE üzenetet küldesz neki, akkor lefut pl. a form Form_Closing eseménye(ebből akár meg is akadályozhatod, hogy bezáródjon a form). Példaként megcsinálhatod a következőt(ha 64 bites wined van). Letöltöd innen a Processx64.rar-t.
Ezután készítesz egy winform alkalmazást, amire rádobsz egy textbox-ot, egy button-t, és egy combobox-ot. Design nézetben elrendezed őket úgy, ahogy akarod. A Form1.vb-ben lévő dolgokat lecseréled erre:Imports System.Runtime.InteropServices
Public Class Form1
Const WM_CLOSE = &H10
Const WM_DESTROY = &H2
Const WM_GETTEXTLENGTH = &HE
<DllImport("user32.dll", CharSet:=CharSet.Auto)>
Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As IntPtr
End Function
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
Button1.Text = "Bezárás"
ComboBox1.Items.AddRange(New Object() {"WM_CLOSE", "WM_DESTROY"})
ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
ComboBox1.SelectedIndex = 0
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If IsNumeric(TextBox1.Text) Then
Dim WM As Integer
If SendMessage(TextBox1.Text, WM_GETTEXTLENGTH, 0, IntPtr.Zero) Then
If ComboBox1.SelectedIndex = 0 Then
WM = WM_CLOSE
Else
WM = WM_DESTROY
End If
SendMessage(TextBox1.Text, WM, 0, IntPtr.Zero)
Else
MsgBox("Az ablaknak nincs címe!")
End If
End If
End Sub
End ClassEzt lefordítod. Ha minden jól megy akkor le is fordul. Majd megnyitsz egy notepad-ot, és írsz bele valamit. Megnyitod a Processx64.rar-ban lévő .exe-t és megkeresed azt a notepad-ot. Jobb klikk->Ablakok kiválasztása. A megnyíló ablakban megkeresed a Class mezőben a "Notepad"-ot. Ebben a sorban a Hwnd-t átmásolod a lefordított programod textbox-ába. Kiválasztod a combobox-ban a műveletet, majd klikk a button-ra. Itt láthatod a különbséget a WM_CLOSE és a WM_DESTROY között.
Neked ugyanezt kellene csinálnod, csak az adatbázisban tárolt Handle-nek küldeni ezeket.
-
martonx
veterán
válasz
lenkei83 #16475 üzenetére
User ellenőrzés szintjén úgy működhetne, hogy a user aktivitásakor ezt a táblát, amiben a Ture/False-t váltogatod, updatelnél egy mondjuk LastActivity timestamp mezőt.
Azt SQL job meg azt aki aktív, de a LastActivity-je mondjuk fél óránál régebbi, zokszó nélkül átállítja False-ra. -
lenkei83
tag
válasz
martonx #16472 üzenetére
Ketten is írtátok az alkalmazás szervert, ezzel nem tudok vitatkozni, valóban ez lenne a normális megoldás. De nekem az Atlantis űrsikló helyett jó lesz egy Szputnyik2 is
. Más funkciója nem lenne az alkalmazás szervernek, így fölösleges lenne most időt fektetnem a programozásába.
SQL-job most is fut, ami ellenőrzni a folyamatos SQL kapcsolatot, de őszintén mondom, fogalmam sincs, user ellenőrzés szintjén, hogyan kellene ennek működnie.
Ami most hirtelen a fejemben van: indítok egy time tickert ami letárolja a pillanatnyi időt sql-ben és kódban is, és a következő tick-nél ha a két idő egyzik (nyilván előtte megint megpróbálja beírni a pillanatnyi időt, de nem tudja mert valamiért már nem fut a kód), akkor a user inactive. -
martonx
veterán
válasz
lenkei83 #16467 üzenetére
Éppen most kezdesz eljutni a felismerésig, hogy ehhez egy alkalmazás szerver fog kelleni. Pedig te csak egy fapados session kezelést szerettél volna. Hát így jön ide az űrhajó.
Egy kókány módszert azért megléphetsz űrhajó építés előtt. Csinálj egy SQL jobot, amit utemezve tudsz futtatni, és az majd átállítja az inaktív usereket. -
lenkei83
tag
válasz
martonx #16466 üzenetére
"De malfunction esetén ez akár be is ragadhat, ha pl feladatkezelőn keresztül bezárom a progit." - ez nem így van.
Szerintem így van. Ha figyeltél, nálam még nincs session sem GUID sem semmi egyéb. Login-kor simán beírok True-t egy SQL UserActive mezőbe, ami a program normális bezárásakor False lesz. Ha kivágom feladatkezelőből, az UPDATE nem fog lefutni, vagy sem sem fog elhalni és látszóla aktív marad a felhasználó.
Igen, Using van beállítva adatbázishoz.
Írtam egy kódot ami működik, de szeretném tovább vinni olyan irányba, amit még nem csináltam. Nem tudom hogy jutottál el a rosszul megírt kódból az űrhajóig, de kíváncsi lennék. Minden rosszindulat nélkül. -
martonx
veterán
válasz
lenkei83 #16465 üzenetére
"De malfunction esetén ez akár be is ragadhat, ha pl feladatkezelőn keresztül bezárom a progit." - ez nem így van. Ebben az esetben SQL oldalon is el fog halni elég gyorsan az ide tartozó session. Az adatbázist ugye using-al használod? Azaz automatikusan dispose-oldóik?
És ennek semmi köze Asp.Net hez
Értem én, hogy valamit alapvetően rosszul írtál meg, és most nem ezt akarod kijavítani, hanem űrhajót építeni köré
Hidd el, mindenkinek jobb lesz, ha a kódodat javítod, ahelyett hogy űrhajót építenél.
SQL session-ök lekérdezése és erőltetett bezárása simán megoldható: KILL SPID command in SQL Server (sqlshack.com)De hidd el, neked nem ez kell, hanem egy jól működő programkód, ami nem hagy szemetet maga után.
-
opr
nagyúr
válasz
lenkei83 #16463 üzenetére
Aktív session kap valami hash-t vagy hasonlót (guid is jó), aztán handshake x időnként, amikor le van csekkolva, hogy ugyanaz a hash mindkét oldalon, aztán ha minden fasza, mehet a következő hash a következő handshakeig.
Így ha bezárod is kliens oldalon, pikkpakk timeoutol serveroldalon, plusz ha bezárod és újranyitod se lesz automatikusan belogolva, mert nem lesz meg az új instance-nek az aktuálisan elvárt hash.
Persze van ennél (sokkal) jobb megoldás is, de ha csak valami olyan kell, ami egyszerű, relative biztonságos és nem eszik sokat, akkor tökéletes ez is.
Ui: Ha ennyire nem kell túlgondolni, akkor meg simán socket close-ra is lehet figyelni és kész.
-
lenkei83
tag
Sziasztok!
VB.Net-ben írok egy programot (SQL adatbázis van mögötte), melybe felhasználó/jelszó párossal lehet belépni. A be és kilépéshez timestamp logolva van, valamint az aktív felhasználó is True értéket kap egy mezőben, ha éppen be van jelentkezve. De malfunction esetén ez akár be is ragadhat, ha pl feladatkezelőn keresztül bezárom a progit.
Amivel gondom van (valójában azt sem tudom, hogyan fogjak hozzá), hogy hogyan tudnék listázni minden Acitve Session-t és adott esetben be is zárni bármelyiket. Hogy mi ténylegesen aktív, azt egy GUID és time ticker megoldással össze lehet rakni, de mi a kulcs a bezárshoz?
Köszi
P. -
coco2
őstag
CEF3 browser framework-el futott már itt valaki köröket?
-
coco2
őstag
Google "coupon udemy" és dobálni fog párat, mint például ezt.
-
dudi6
senior tag
Sziasztok!
Tudtok olyan oldalt ahol udemy kurzusokhoz tudnék kuponokat szerezni, hogy olcsóbb legyen? -
pmonitor
aktív tag
válasz
K1nG HuNp #16433 üzenetére
>semmi koze a nyelv szintjének a gyorsasághoz
Kivételesen egyetértek. És még hozzá tenném, hogy ha pontosak akarunk lenni, akkor még a nyelvnek sincs semmi köze a gyorsasághoz. Pl. biztos teljesen más a VS 20XX C-jének a sebessége, mint a Code:
locks+mingw által alkotott bináris. És még lehetne példákat hozni. Tehát igazából amikor nyelvek gyorsaságát hasonlítjuk össze, akkor is eléggé pontatlanul fogalmazunk. De sztem. nem olyan eget verő pontatlanság.
Igazából magas szintű nyelv is lehetne elvben gyors. Csak a gond ott van, hogy bizonyos dolgokat ezerféleképpen meg lehet gépi kódban valósítani. És az adott magas szintű programnyelv nem biztos, hogy az optimális kódra fordít.
-
pmonitor
aktív tag
válasz
jattila48 #16450 üzenetére
Igen. Pl. itt a FindFileC.exe-t pontosan így készítettem(goto egy sincs benne
). Tehát van a TC, a FindFile és a FindFileC. A TC a leglassabb. A másik kettő sebessége megfelelő(kb. egyforma). Mondjuk hozzá kell tennem, hogy a C#-os FindFile.exe-t is C stílusban írtam(az OOP alapelveit felrúgva). Viszont mióta a C-ben készült változat megvan, azóta azt használom, mert egyrészt 2 kilóval rövidebb a C#-osnál(azért ez 10 kiló körüli programnál jelentős eltérés), másrészt nem kell hozzá .Net. Ja, és a C-ben írt vátozatnál van "Tallózás...", és így is kisebb a mérete.
A kis mérettel lapcsolatban meg itt van egy 29 byte-os "Hello world!!!" program.
-
ValGerald
csendes tag
Sziasztok!
Most egyetemen, elsőévesként C-ben tanulok programozni, mellette C#-ban szoktam unitybe hobbiból játékot, alkalmazást csinálni.
Szerintetek emellett belekezdhetek front end-et tanulni, vagy belezavarna a dolgokba? -
coco2
őstag
Ha valaki osx / xcode alatt szokott dinamik libeket gyártani, vagy legalább egyszer már végig járta a canossát a be nem töltődő libek problémájával, egy jelzést had kérjek tőle (kajak nem tudom, miért nem tölt be a lib, app nem indul, csak ennyi van).
-
jattila48
aktív tag
-
opr
nagyúr
válasz
jattila48 #16449 üzenetére
Olvasd el azt is, ami elotte van...
"Ha valamilyen geppel probalsz mondjuk soros porton kommunikalni"Magyarul:
Talakoztam mar olyan kinai fostalicska cuccal, amivel soros porton kellett kommunikalni, es aminek a dokumentacioja chart irt, de valojaban 16 bitet ertett alatta. De nem is wchar volt. Oruletbe kergetett, mire rajottem, hogy gyakorlatilag ugy kell kezelni, hogy minden ertelmes char utan odab@szok meg egy ureset, es akkor fog rendesen mukodni. Na ERRE mondtam azt, hogy a char az char, mindig 8 bit, minden szartol fuggetlenul, csak nehany nagyon specialis esetben van olyan, hogy egy-egy eszkoz mashogy kezeli. Attol meg 1 byte az 8 bit mindenben, es egy char az 1 byte mindenhol, sehol nem irtam olyat, hogy nem.Amugy a tippem az, hogy eredetileg wchar volt, hogy mukodjon az azsiai karakterekkel (azert erre tippelek, mert az inicializalo parancsban kotelezo volt kommunikacios nyelvet megadni - angol, mandarin, 2 byte-ban), aztan a nem kinai implementaciot is arra epitettek, csak uber tre modon, a dokumentacioba meg persze errol basztak irni barmit. Tehat a char az char volt, 8 bit, mint mindig, csak eppen megse, mert ahhoz, hogy a gep felfogjon barmit es ne hulyeseget csinaljon, minden charhoz kettot kellett atkuldeni.
-
jattila48
aktív tag
Van aki Windows GUI-t Win32 API-ban programozik C nyelven? Van erre külön topik?
-
Ispy
nagyúr
Sziasztok,
van egy gondom, amire nem nagyon találtam eddig megoldást: a nyomtatás alapból RDLC fájlokból csináljuk (.NET), de amikor kiküldöm direktbe a nyomtatványt a printerre, akkor elmászik a margó és az egy oldalas doksiból 2 lesz emiatt. Csinált már valaki itt ilyen RDLC direkt nyomtatást esetleg? Azt látom, hogy a printable area kisebb kb. 0.017-el, mint kéne, csak nem tudom hogyan lehetne ezt birizgálni. Illetve annyira már rájöttem, hogy a papir típussal van összefüggésben a dolog, csak nem értem, ha a report viewerben jól jelenik meg, akkor direkt nyomtatásban hogyan kéne beállítani, hogy ott is jó legyen.
A nyomtatás úgy megy, hogy az RDLC lerendelelem és átadom egy printdocumentnek, ez csinálja a nyomtatást magát.
Ha a normál modon megnyitom a reportviewerben a dokumentumot előnézetben, akkor 1 oldalas lesz a doksi.
Gugli sajnos nem volt a barátom, elég kevés thread van erről.
-
jattila48
aktív tag
Próbáld meg a BYTE típust, ami nyilván egy typedef. Ez biztos, hogy 8 bites, bármelyik platformon. Már ha létezik BYTE. Ha nem, akkor csinálsz, platformtól függően. 8 bites alap típus biztos, hogy van bármelyiken. A #pragma pack(1) (meg a __packed__) itt nem alkalmazható, mivel az a struktúra tagok alignálására vonatkozik, alaptípusokra nincs hatása.
Olyan pedig nincs, hogy a C nyelv char típusának bithossza attól függjön, hogy a rendszer vagy a fordító ázsiai, vagy más (mármint ha ugyanarról a rendszerről, pl. Window-ról, és ugyanarról a fordítóról beszélünk). Ázsiai nyelvek nyilván nem 1 byte-os karaktereket használnak, de erre a C-nek külön típusa (pl. wchar) van. Amúgy meg szerintem nyugodtan használd az unsigned char-t mint byte-ot, ma már nem valószínű, hogy van ettől eltérő platform. -
opr
nagyúr
Elvileg igen, gyakorlatilag MSVC-nel ganyolni kell hozza, hogy legyen olyan, hogy __packed__. Mondjuk ha VS-ben lecsereled a compilert masra, akkor mukodhet. Vagy hasznalod a #pragma pack(1)-et, de azt nem tudom hogyan/mennyire mukodik.
unsigned char az viszont unsigned char. Az, hogy ez hany bites, az attol fugg, mire forditod, de nagyon egzotikusnak kell valaminek lennie hozza, hogy letezzen olyan, hogy char (plane unsigned char), es nem pontosan 8 bit legyen.
ui.: Ha valamilyen geppel probalsz mondjuk soros porton kommunikalni, van par ilyen azsiai borzalom, ahol 16 bit a char alapbol, azokkal lehet szopni, de meg ott is ritka, altalaban kovetik a 8 bites "szabvanyt" Ok is.
-
coco2
őstag
Reménykedem benne, hogy valakinél frissen van ilyen ismeret.
"unsigned char" típus windows visual studio / osx xcode - ezekben a környezetekben / toolchain-ekkel lehet-e olyat biztosra kijelenteni, hogy 8 bites érték, és a memóriában is csak pont annyit foglal (__packed__ modifier / ekvivalense megkövetelhető) ?
-
Archttila
veterán
Nem teljesen programozás de szerintem ti tudtok segíteni.
Git repóba szeretném feltolni a konfig fájljaimat, de a GPG-t valami miatt nem akarja az igazat...
Természetesen előtte generáltam kulcsot amit github-on sikeresen hozzá is adtam a profilom-hoz, de már itt elakad őkelme:echo "test" | gpg2 --clearsign ✔ at 17:48:12
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
test
gpg: signing failed: Inappropriate ioctl for device
gpg: [stdin]: clear-sign failed: Inappropriate ioctl for device
cat .gitconfig
[user]
signingkey = 52ECEX7C42E28R96
email = akarmi@gmail.com
name = csokistyuk
[commit]
gpgsign = true
[alias]
logs = log --show-signature
[gpg]
program = gpg2
-
-
dabadab
titán
válasz
btraven #16438 üzenetére
Egyébként a korai Commodore C64 zenék kb. pont így készültek (kb '86 tájáig), csak nem Pythonban, hanem 6502 assemblerben, illetve mégígyebb, mert az egyes hangszerek nem sima hangmintalejátszásból álltak, hanem a hangchip regisztereit kellett real-time bizergálni.
Most meg bytebeat van, az külön agybaj
Dokumentáció meg játszótér: [link]
Egy durvább darab: [link] -
btraven
őstag
Igazi programozó csakis így készít zenét! [link]
-
Hege1234
addikt
Hali!
az összefoglalóban most nézem, hogy bele van írva a batch is
valakinek esetleg ötlete erre, hogyan lehetne megoldani? -
válasz
Fire/SOUL/CD #16427 üzenetére
> hogy az hány darab utasításból ál
hat nem igazan ettol fugg a sebesseg
-
K1nG HuNp
őstag
válasz
Fire/SOUL/CD #16427 üzenetére
semmi koze a nyelv szintjének a gyorsasághoz, lásd rust, go. manapsag a legperformansabb nyelvek koze tartozik mindketto, megis boven high level.
-
kovisoft
őstag
Itt most a sebességről volt szó, és lehet, hogy a C fordító nem használja olyan cizelláltan a carry flaget, mint ahogy lehetne, de cserébe jobban tudja, hogy milyen utasításokat milyen sorrendben rakjon egymás mögé, hogy minél több tudjon párhuzamosan végrehajtódni minél kevesebb órajel alatt. Nem azt mondom, hogy lehetetlen gyorsabb assembly kódot írni, mint amit egy C fordító gyárt, csak azt, hogy nagyon nehéz, és az is csak valamivel lesz gyorsabb, de messze nem a "min. 15 éves gépeken is pont úgy menne egy mai/2021-es játék, mint a mai erőműveken" kategória lesz.
-
coco2
őstag
válasz
kovisoft #16429 üzenetére
Ez egy ideje már nagyon nem így van.
Azért még van egy kicsi hiányosság. C alatt nincs opció olyat leírni, mint carry flagen keresztüli bit forgatás. Asm-ben a carry flag-re adat mozgatás vagy ugró utasítás szokott kerülni. Hatékonyabb kódot lehet úgy írni, mint pld 64 bites értéket gyártani és / vagy kapcsolatokhoz cmp-vel ellenőrizni, és arra rakni ugrást, vagy xor-al kezelni bites adatátvitelt. Az utóbbi időben a C-t elég sok marhasággal (semmire kellő csicsával) már kiegészítették, de ezt a hiányosságot valahogy nem sikerült legyűrni. A carry flag kezelésére nincsen koncepció. Pedig mindegyik modern cpu magban ott van rá a support.
-
kovisoft
őstag
válasz
Fire/SOUL/CD #16427 üzenetére
Ez egy ideje már nagyon nem így van. Gyakorlatilag szinte esélytelen gyorsabb kódot írni assemblyben, mint amilyet mondjuk egy normálisan optimalizáló C fordító fordít. Ehhez komoly mértékben kellene tudni ismerni és alkalmazni a modern CPU architektúrák finomságait (pl. milyen utasítás mivel tud párhuzamosan lefutni, milyen utasítás milyen körülmények között hány órajelet vesz igénybe, stb). Ezeket ugyanakkor beépítik a fordítóprogramokba.
-
Micsurin
nagyúr
válasz
Fire/SOUL/CD #16427 üzenetére
Azt a tanár tette oda és az az alap.asm amit elvileg nem kell bizerbáljunk csak használjunk... szóval mi nem piszkáljunk.
Megkaptuk a történeti fejtágítást csak valahogy nem fogom jobban megszeretni ettől ezt a szintű magamra utaltságot egy két magas szintű nyelv után.
C segítene kicsit a logika elsajátításában vagy felesleges abba is belekezdeni csak emiatt?
-
válasz
Micsurin #16425 üzenetére
OK, de az a kód, már a 2. sorában buktató(ZH=1-es), mert SS: Stack ez bukó...
(Stack fenntartott szó, így be sem lehet fordítani a kódot, arról nem is beszélve, hogy nem kerülhet a kód végére...)
Puritánság? Nem...
Erre szokták azt mondani (tanítani), hogy amit nem lehet Pascal-ban megírni, azt C++-ban meg lehet. Amit C++-ban nem lehet megírni, azt Assembly-ben meg lehet. Amit Assembly-ben nem lehet megírni, azt nem lehet megírni...Az Assembly "alatt" csak a gépi kód van (CPU ebből ért, tök mindegy milyen fejlesztőkörnyezetben írsz és fordítsz, a vége, akkor is gépi kód lesz) csak az nem mindegy, hogy az hány darab utasításból áll (ez határozza meg egy adott szoftver sebességét).
Minél "magasabb" szintű egy nyelv, annál lassabb, mert a felhasználóbarát függvények használatának ez az ára. Ha (és ez csak egy eszmefuttatás) a mai játékokat tisztán Assembly-ben írnák (még1x, ez csak eszmefuttatás), akkor min. 15 éves gépeken is pont úgy menne egy mai/2021-es játék, mint a mai erőműveken. Persze abba a fejlesztők beledöglenének, az tuti...A gépi kód, majd Assembly volt mindennek az alapja. Enélkül nem lenne Pascal, C/CPP , stb stb meg konkrétan semmi.
-
Nem, nem ismerem(tudom mi az, csak nem használtam), mert az a NASM-hoz tartozott (meg újabb keletű is volt talán jóval, mint a TASM/Turbo Debugger, asszem) Én meg világ életemben (mai napig) a Borland (vagy a felvásárolt, jelenleg Embarcadero) vonalat "erősítettem/erősítem"...
Amikor az ADF Debug neve egyáltalán felmerült, akkor már egy másik cuccot használtam SoftICE néven(rég volt, lehet, hogy csk az emlékezetem csal meg)... -
Micsurin
nagyúr
Nem azt szerettem volna ha megoldjátok helyettem csak iránymutatásra lett volna szükség, kovisoft* köszönöm végig nézem újra amint gép elé érek.
Neked meg köszönöm a könyv ajánlást már ezzel is jóval beljebb vagyok mint azzal a pár sajt fecnivel amit bent kaptunk.
*igen eredetileg csak azt vizsgálja, hogy a di elérte-e az ertek1+4-et ha igen akkor vége a futásnak lényegében. Elvileg duplázhatok minden címkét még nem jár érte dádá szvsz azt kell csak akkor megoldjam, hogy mielőtt a vizsg-be lépnél töröljem az al-t és kérjek be újra karaktert.
Fire/SOUL/CD Nem megírni kell de köszi
csak pár ötlet kellett, hogy mivel mit mert ráérezni erre a retekre igen nehezen megy mert végtelenül zavaró a puritánsága. Valahogy beleszoktunk mi a jóba az Intellisense és társaival... assembly csak ahhoz kell, hogy zh-ra értelmesen tudjak előre készülni és ne 25.-én lóhalálában akarjak valamit felszedni a 27.-i zh-ra. Ez egy Java esetében járható mert látom a beépített libraryket valamit csak összehazudik az ember a C# közelség miatt de 5 héttel ezelőtt láttam életemben először assemblyt.
Ha már itt tartunk DOS Box + említettek teljesen kiválthatják a virtuális XP-t?
Van a témához valami nagyon potato kezdő tutorial? Olyasmin mint mondjuk a w3 schools szokott lenni? -
coco2
őstag
Más, linux / bash script. Kicsit (nagyon) kijöttem a gyakorlatból.
Van egy környezeti változó, T_STR. Benn van mondjuk ez: "custom str" Környezetből használom shell scriptben (/bin/bash enyem_script.sh) valahogy így:
#!/bin/bash
echo "${T_STR}"
echo "$T_STR"
echo ${T_STR}
echo $T_STRValaki le tudja írni nekem legalább dióhéjban, hogy mi a különbség ezek között az echo-k között? Ami különbség van, az mikor számít?
A ""-ről talán az volt, hogy ha space van a stringben, és nem raktam macskakörmök közé a változó értékét olyankor, amikor egy shell parancsba beillesztettem, akkor az két külön paraméternek minősülhet, és "szét törhet" miatta a parancs bemenetem. De erre visszaigazolást várnék tényleg ez van-e vele, vagy rosszl emlékszem?
A { }-ről valami változó érték értelmezés volt talán, de sötét homály
-
coco2
őstag
válasz
Fire/SOUL/CD #16422 üzenetére
Debugot illetően emlékszel még az AFD.EXE-re?
-
válasz
Micsurin #16417 üzenetére
Mindig be szoktam nézni ide, mert hátha van valami -számomra- kihívás...
Hát most van.
Kb. 30 éve a PC-n (mert már előtte is C64-en) ASM-ba programoztam. (Bammeg, megöregedtem)
Szóval év vége felé mindig egy kicsit retrózom, ez viszont "nagyon" retró...Pár kérdés (légy oly szíves válaszolj mindegyikre!)
1. Mihez kell Assembly számodra? (Tényleg érdekel)
2. Mi a feladat akkor? Amit Én eddig levettem, hogy:
# 8086-os CPU-re írt ASM kód kell
# Kérjen be (bill.-ről) 2 darab, 4 számjegyű, egész, 10-es számrendszerbeli számot (még véletlenül sem hexadecimálist, ugye?)
# Tárolni is kell?
# A két "számmal" utólag kell matematikai műveleteket is végezni?(vagy csak kiíratni stb)Ha ezen infókat megkapom (avagy, +infókat is), akkor már repül is fel W11 alá a DOSBox+DOS Navigator+TASM és már írom is a kódot szövegszerkesztőben (természetesen FULL kommenttel ellátva)
Remek retró feeling lesz számomra...
UI: Alakul
DOSBox + DOS Navigator
4Ever Assembly
Debug-oljuk is ám -
kovisoft
őstag
válasz
kovisoft #16420 üzenetére
Vagy akár szimplán duplikálhatod a Bevitel, Vizsg, Tarol-t így: Bevitel1/Bevitel2, Vizsg1/Vizsg2, Tarol1/Tarol2, ahol az 1-esek az ertek1-gyel, a 2-esek az ertek2-vel dolgoznak. Az 1-est a szam1 menüből, a 2-est a szam2 menüből hívod meg. Ekkor is nyilván kell tartani, hogy megvan-e már az ertek1/ertek2, akkor végzett a program, ha mindkettő megvan.
-
kovisoft
őstag
válasz
Micsurin #16417 üzenetére
Megvan az eredeti programkód, ami 4 számjegyet kér be? Legjobb lenne ebből kiindulni.
Pl. csinálhatod azt, hogy a szam1 vagy szam2 menüponttól függően állítod be a di-ben az offset-et ertek1 vagy ertek2-re. Itt érdemes lehet pluszban még valahová (regiszterbe vagy memóriacímre) elmenteni ugyanezt, hogy később tudni lehessen, hogy melyik szám 4-es beolvasása folyik éppen.
A Bevitel/Vizsg kb. maradhat, ahogy eredetileg volt, mert úgyis csak annyit csinál, hogy bekér egy karaktert és ellenőrzi, majd beleteszi az al-be.
A Tarol-ban kell valami extra vizsgálat, hogy mindkét számból beolvasásra került-e már a 4+4 db karakter. Az eredeti kód gondolom csak annyit nézett, hogy a di elérte-e az ertek1+4-et. Itt lehetne használni a korábban elmentett címet, és a di-t az elmentett cím+4-gyel hasonlítani.
Plusz kell még valami, amiben eltárolod, hogy megvan-e már az ertek1 ill. megvan-e már az ertek2. Amíg valamelyik hiányzik, addig a Tarol végén visszaugrasz a Start-ra.
-
coco2
őstag
Más, XCode. Netes helpek "comprehensive" videók meg a többi - nem találok anyagot sehol. Fordítás után a kimeneti binárist alapból rendszer specifikus helyre rakja. Nekem project specifikus hely kellene. Sajnos eddig nem sok infót kaptam róla leszámítva a temérdek sok xcode 5-ös időkbeli blogot (most xcode 11 alatt vagyok), amik rég elavultak. Bármi ötlet?
-
coco2
őstag
válasz
Micsurin #16417 üzenetére
Mit értesz menü alatt? Az ott egy rövidke asm kód, nem a grafikus idők találmánya. Az ms-dos karakteres képernyőt használt.
A precíz folyamat szervezést pontosan úgy lehet megtanulni, hogy egyesével figyelsz oda a byte-okra, és a műveletek sorrendjére. Például hogy ne úgy végezd, mint az ejtőernyősök a katonaságnál. "Napi parancs szerint felmennek 2000 méter magasba, ott kiugranak a repülőgépből. A logisztika úgy szervezte, hogy az ejtőernyőt odalent kapják meg."
Ha copy / paste-elünk neked egy megoldást, abból ugyan nem tanulsz. Szánd csak rá a buksit fortnight helyett és gondolkodj kicsit
Ha doksi kell vagy tanulnivaló, abban tudunk segíteni. Interruptokról példul van gyűjtemény "Ralf Brown" neve alatt: link (Access the Interrupt List by Interrupt Number)
-
Micsurin
nagyúr
válasz
kovisoft #16414 üzenetére
Alapvetően azt csinálta ez a csoda, hogy 4 számjegyet kért be addig futott amíg nem lett meg mind a négy jegy, ha escapet nyomtál kilépett minden nem esc vagy nem számra meg a hiba üzit dobta el.
Na most ezt kellett volna átalakítsuk úgy, hogy 2db 4 jegyű számot kérjen be és szám1, szám2, kilépés szerű menü is legyen.
De már az órai kódba is belegabalyodtam.
A menü mindenképpen életképtelen lett nálam (03:00-kor adtam fel a kérdés után még futottam pár kört
) mert ha be is veszi az 'a' vagy a 'b' karaktereket és a jz is sikerül a szükséges szekcióba akkor is kiírja, hogy érvénytelen karakter ellenben a számba már belevette pl a leütött 'a'-t.
Egy számot letudtom kezelni de a 2.-at már csak folytatólagosan hozzáírja az elsőhöz szvsz amit ebből az alao kódból kreáltam tré ahogy van.Hogy kéne ennek nagyjából neki álljak? 27.-e ZH az a heti egy óra meg sok kárt nem tesz bennünk. Stack és társain meg nem 1:1 ilyen formában találtam eddig assemblyt.
coco2 de az elején ha van input is a menünek akkor is a vizsgre esik tovább.
Igen MS DOS környezet egy virtuális XP-n notepad++ és cmd+masm. Éljen a modern oktatás... Java és C# után nem kis oboa tanfolyam. -
coco2
őstag
válasz
Micsurin #16413 üzenetére
A xor ax,ax kevesebb memória a mov ax,0-nál. Egyéb oka nem volt anno, amiért úgy írtuk. Az eredménye ugyan az. (Egykoron még sokkal kevesebb volt a teljes memória, és bizony számított. Mikrovezérlős környezetekben mind a mai napig hasonló a hozzáállás.)
Ha a Start után a Bevitel-re megy tovább, akkor tovább esik a Vizsg címkére. A Vizsg címke a loop miatt van ott.
MS-DOS környezet a mai világban?
-
kovisoft
őstag
válasz
Micsurin #16413 üzenetére
Igen, az első int 16h előtt a 11. sorban hiányzik az ah nullázása (mármint ha itt is szeretnél karaktert beolvasni).
Milyen billentyűket nyomsz le és mit szeretnél, hogy történjen, mit kellene csináljon a program? Mert én úgy látom, hogy ha először nem 'a'-t nyomsz, akkor a Bevitel-re ugrik, onnan a Vizsg-re megy. Az 'a' utáni 'b' vizsgálatnak így már nincs is értelme, mert 'b' esetén már a vizsgálat előtt elugrott, ez a vizsgálat mindenképpen igaz lesz, tehát 'a' nyomásra Program_Vege-re ugrik.
-
Micsurin
nagyúr
Kérnék egy kis assembly helpet mielőtt a maradék hajam is kitépem.
[link]* itt hol az istenben van meghívva a Vizsg címke? Mert ha a legelején szeretnék int 16h-val lekezeltetni bármilyen egyéb karaktert akkor is a nyüves Vizsg címke fogja kidobni a nem megengedett bement üzijét.
* mov ax, 0 vagy xor ax, ax lemaradt a bevitel előtt az elején de nem változtat azon, hogy a Vizsg-re ugrik a kód.
-
bambano
titán
amit az rc fájlokba írsz, az abban a shellben és a belőle forkolt shellekben él.
ha azt akarod, hogy egy kinyitott terminálablakban éljen, akkor abban a környezetben kell hozzáadni a változót, ami a terminált indítja.
vagyis jó eséllyel újra kell indítani a grafikus felületet.
vagy:
az xcode-ot úgy kell elindítani, hogy erről tudjon.
tehát az ikonban, ami az xcode-ot indítja, átírod, hogy:
ENYEMVALTOZO=akarmi /usr/bin/xcode -
opr
nagyúr
Ha global env var kell, add hozza az /etc/environment-hez. Ezt szerkesztheted magadnak is, vagy akar scripttel is.
Bashrc azert nem fog mukodni, mert azok csak session environment variable-ok (azaz amint becsukod a cmd-t, amiben csinaltad/lefut a script, veget er a session es torlodnek).
-
coco2
őstag
OSX / Linux scripteléssel akadtam el kicsit.
Kellene nekem egy környezeti változó. Létrehozni kb ennyi:
export ENYEM_VALTOZO=hello_world
és készen van. Viszont használni szeretném. Ha ezt bele rakom a.bashrc
-be, aztán adok rásource ~/.bashrc
-t, abban a terminal-ban azenv
visszaírja, ott van. Viszont lecsukom azt a terminal-t, indítok egy másikat,env
, és nincs ott.Amire szükségem lenne, az egy XCode-ból indított scripten belüli elérés. Jó lenne, ha az a script alapból elérné. Google annyit talált, hogy a .bashrc a non-login interactive shell változókra kitalált hely. De valami nem okés
Bármi ötlet?
Előre is köszönöm
-
opr
nagyúr
válasz
skoda12 #16406 üzenetére
Hat, kerdes, hogy valaki akar-e olyan helyre menni, amelyik igy kezdi. En is szeretek mindenfele nyelven dolgozni, majdhogynem projekt szinten valtogatjuk (sok PoC), mindig fun, ettol fuggetlenul interjuzni se mennek el olyan ceghez, ahol ennyire nyilvanvaloan mindent IS nekem kell majd csinalni, meg vagyok elegedve az osz hajszalaim jelenlegi mennyisegevel, nem kell tobb.
Amugy nem keresek melot, eszembe se jutna valtani, imadom a mostanit, csak ez most nagyon fun level volt, godnoltam megosztom.
Tegyuk hozza, az, hogy kb barmilyen nyelven tudsz dolgozni, az nagyon nem ugyanaz, mint abbol a nyelvbol seniornak lenni. -
skoda12
aktív tag
Tudják, hogy nem fognak ilyen embert találni. Be lehet próbálkozni akkor is, ha csak pár dolog megy a listából senior szinten. 3 éve javásként kerültem be egy olyan projektre, ahol java mellett nodejs, scala és clojure is kellett napi szinten. Ebből pl a clojurehoz annyira nem értettem, hogy interjú után googleval sem találtam róla semmit, mert "closure"-ként kerestem rá.
Amúgy jók az ilyen vegyes állások. 1-2-3 év egy ilyen helyen és nagyon sokfelé lehet továbblépni. Én örülök, hogy már nem kell java + springre korlátoznom az álláskeresést.
-
opr
nagyúr
Imadom neha ezeket az "ajanlatokat", amik jonnek LinkedIn-rol. Ebben a pillanatban kaptam egy mailt, mindossze az alabbiakat kell tudni, termeszetesen senior modon:
C#, .NET, Azure, SQL, MS AD & Group Policy, HTML+css+js+react+mittudomen (gyakorlatilag egy fullst ack webdev), C++, JAVA.
Ezek kozul par nem teljesen kotelezo, mindossze "highly desired".
Fizetes? Ja, az kb annyi, mintha siman senior vagy a fentiekbol legalabb egy dologban.Bonusz kerdes: Hany kulon szakma van a fenti listaban?
Bonusz kerdes #2: Letezik-e szerintetek olyan ember ezen a bolygon, aki -ha ezen kivul csak alszik, es meg szarni is laptoppal megy- kepes ezt mindet valoban senior szinten tudni? -
coco2
őstag
Sziasztok!
Valaki képben van XCode projectekről annyira, hogy össze tudja rakni ezeket a fogalmakat? "Mach-O" + "dynamically-loaded library" + "bundle".
A kérdés pedig, hogy melyik XCode project template-et válasszam új project-hez?
-
Hege1234
addikt
-
Hege1234
addikt
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- Hibátlan Apple iPhone 15 Pro - Kártyafüggetlen - 128GB Fekete Titán (87% Akku)
- Apple iPhone 14 Pro, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi 12 Pro 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi Note 11 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- HP Probook 640 G2 (14/i3-G6/8GB/256SSD/Magyar/Win11) - Szép!
- Phanteks NV5 MK2 White (PH-NV523TG DMW02)
- Okosóra felvásárlás!! Samsung Galaxy Watch 6, Samsung Galaxy Watch 7, Samsung Galaxy Watch Ultra
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Sony PlayStation4 PRO 1TB fekete konzol extra játékokkal garanciával hibátlan működéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged