#20 Kit
O jak ty se tuze mýlíš. Implementoval jsem generickou třídu i jednu abstraktní - obě dokonale dodržely OOP a přitom umožnily rovnocenné funkčnosti a to bez toliko vysokých nároků. Dokonce ona abstraktní třída se dala implementovat mimo listy a pole - na přetížené metody atp.
Příspěvky odeslané z IP adresy 78.136.161.–
Tedy řešení:
bits 16
org 0x7C00
Boot:
mov dl, 0x80 ; 80 - FF => HardDisk
mov si, .imageStruct
mov cx, 14
.loadPart:
mov ah, 0x42 ; Extended Read Sectors From Drive
int 0x13
add dword [.imageStruct + 6], 2144
add word [.imageStruct + 8], 67
loop .loadPart
...
.imageStruct:
dw 16
dw 67
dd BMP ; Offset : Segment
dq 26
...
BMP:
ID resw 1
FileSize resd 1
Reserved1 resb 1
Reserved2 resb 1
Reserved3 resb 1
Reserved4 resb 1
Offset resd 1
HeaderLength resd 1
Width resd 1
Height resd 1
NumOfPlanes resw 1
Depth resw 1
Compression resd 1
BytesCount resd 1
Hresolution resd 1
Xresolution resd 1
NumOfUsedColors resd 1
NumOfImportantColors resd 1
Vykreslení, které funguje dokonale:
DrawImage:
cmp word [ID], "BM"
je DrawBMP
ret
DrawBMP:
pushad
mov [.X], eax
mov [.Y], ebx
mov [.x], eax
mov [.y], ebx
mov esi, BMP
add esi, [Offset]
mov [.pointer], esi
mov ebx, [Height]
add [.y], ebx
.drawLine:
mov esi, [.pointer]
mov al, [esi]
mov [.color], al
mov al, [esi + 1]
mov [.color + 1], al
mov al, [esi + 2]
mov [.color + 2], al
add dword [.pointer], 3
mov esi, .params
call DrawPixel
inc dword [.x]
mov ebx, [Width]
add ebx, [.X]
cmp [.x], ebx
jne .drawLine
mov ebx, [.X]
mov [.x], ebx
dec dword [.y]
mov ebx, [.Y]
cmp [.y], ebx
je .done
jmp short .drawLine
.done:
mov dword [.y], 0
popad
ret
.X dd 0
.Y dd 0
.pointer dd 0
.params:
.color dd 0
.x dd 0
.y dd 0
Popíši problém - to čtení disku 42h nedokáže brát celou adresu - bere Segment:Offset - takže byla blbost psát tam plnou adresu - přidávám segment 2144, místo celé adresy... (16 * 2144)
Nakonec jsem si uvědomil jak funguje adresace a napadlo mne použít segmenty - a vyšlo to... :D Teď už jen řeším jak správně BMP vykreslit ale základní tvar již odpovídá...
S jistotou jsem omezil kód na:
mov dl, 0x80 ; 80 - FF => HardDisk
mov si, .imageStruct
mov cx, 14
.loadPart:
mov ah, 0x42 ; Extended Read Sectors From Drive
int 0x13
add dword [.imageStruct + 4], 34304
add word [.imageStruct + 8], 67
loop .loadPart
Celý soubor má 938 sektorů - což je 14 * 67... Ale byť i jedna otočka způsobí, že to rozhodí kernel, což spolu nemá jak souviset. Mohu adresu cíle posunout maximálně v řádu stovek, přitom do přetečení FFFFFFFF to má zatraceně daleko - tak proč?
times 512 - (($-$$) % 512) db 0
sectorsForLoad equ ($-$$-512) / 512
section .bss
ModeInfo:
ModeAttributes resw 1
WinAAttributes resb 1
WinBAttributes resb 1
WinGranularity resw 1
WinSize resw 1
WinASegment resw 1
WinBSegment resw 1
WinFuncPtr resd 1
BytesPerScanLine resw 1
ScreenWidth resw 1
ScreenHeight resw 1
XCharSize resb 1
YCharSize resb 1
NumberOfPlanes resb 1
BitsPerPixel resb 1
NumberOfBanks resb 1
MemoryModel resb 1
BankSize resb 1
NumberOfImagePages resb 1
ReservedPage resb 1
RedMaskSize resb 1
RedMaskPos resb 1
GreenMaskSize resb 1
GreenMaskPos resb 1
BlueMaskSize resb 1
BlueMaskPos resb 1
ReservedMaskSize resb 1
ReservedMaskPos resb 1
DirectColorModeInfo resb 1
; VBE 2.0 extensions
PhysBasePtr resd 1
OffScreenMemOffset resd 1
OffScreenMemSize resw 1
resb 206 ; Odsazení od ModeInfo
BMP:
ID1 resb 1
ID2 resb 1
FileSize resd 1
Reserved1 resb 1
Reserved2 resb 1
Reserved3 resb 1
Reserved4 resb 1
Offset resd 1
HeaderLength resd 1
Width resd 1
Height resd 1
NumOfPlanes resw 1
Depth resw 1
Compression resd 1
BytesCount resd 1
Hresolution resd 1
Xresolution resd 1
NumOfUsedColors resd 1
NumOfImportantColors resd 1
Hlavička sedí - prvních 67 sektorů je tutově na správném místě, místo v RAM je - vše sedí - proč nemohu navršit dalších 67 sektorů? A to i když jsem udělal dvě jiné struktury - prostě opravdu nejde přilepit dalších 67 sektorů a jsem z toho na větvi - proč? (67 * 512 = 34304...)
Děkuji.
Tak jsem na to přišel sám... :D
"Note: The limitation about not crossing cylinder boundaries is very annoying, especially when combined with the 127 sector limit -- because the arithmetic for the length and "start CHS" of the next consecutive read or write gets messy. The simplest workaround is to read or write only one sector at a time in CHS mode. Not all BIOSes have these two limitations, of course, but it is necessary to program for the "lowest common denominator"."
Bohužel to neřeší problém - proč to nefunguje ani při rozkouskování na části najednou načítatelné... Snad na to také přijdu... :D
Tak už vím, že musím za ModeInfo nechat přesně 206 bytů - a hlavička mi sedí dokonale. Trochu si nejsem jist samotným vykreslením:
mov eax, BMP
add eax, dword [Offset]
mov [.pointer], eax
mov esi, .params
.drawLine:
mov eax, dword [.pointer]
mov ebx, dword [eax]
mov [.color], ebx
call DrawPixel
add dword [.pointer], 4
inc dword [.x]
mov ebx, dword [Width]
cmp dword [.x], ebx
jne .drawLine
mov dword [.x], 0
inc dword [.y]
mov ebx, dword [Height]
cmp dword [.y], ebx
je .done
jmp short .drawLine
.done:
mov dword [.y], 0
hlt
.pointer dd 0
.params:
.color dd 0
.x dd 0
.y dd 0
Ale tak jako tak je největším problémem načíst ceou bitmapu byť i po částech. Prostě to nejde načíst bez toho, aby pak načtení kernelu do RAM nezkončilo carry flagem. Nevíte někdo proč?
Děkuji.
Dobrý den,
mám toto VBR:
bits 16
org 0x7C00
Boot:
mov ah, 0x42 ; Extended Read Sectors From Drive
mov dl, 0x80 ; 80 - FF => HardDisk
mov si, .imageStruct
int 0x13
mov ah, 0x42
mov si, .kernelStruct
int 0x13
jnc InitializeVESA
mov si, .error
mov ah, 0xE
mov cx, 29
.writeChar:
lodsb
int 0x10
loop .writeChar
mov ah, 0
int 0x16 ; Wait for keystroke
mov ax, 0
int 0x19 ; Reboot the system
.kernelStruct:
dw 16 ; byte of structure length + empty byte
dw segmentsForLoad ; sector count
dd Kernel ; out address
dq 1 ; start
.imageStruct:
dw 16
dw 938
dd BMP
dq 26
.error db "Fatal Error! Press any key..."
InitializeVESA:
in al, 0x92
or al, 2
out 0x92, al
mov bx, 0x4118
mov ax, 0x4F01
mov di, ModeInfo
mov cx, bx
int 0x10
mov ax, 0x4F02
int 0x10
cli
lgdt [.GDTR]
mov eax, cr0
or al, 1
mov cr0, eax
; CR0: PG|----RESERVED----|NE|ET|TS|EM|MP|PE
; PE Bit 0. The Protected Environment flag. This flag puts the system into protected mode when set.
; MP Bit 1. The Monitor Coprocessor flag. This flag controls the operation of the "WAIT" instruction.
; EM Bit 2. The Emulate flag. When this flag is set, coprocessor instructions will generate an exception.
; TS Bit 3. The Task Switched flag. This flag is set automatically when the processor switches to a new task.
; ET Bit 4. The Extension Type flag. ET (also called "R") tells us which type of coprocessor is installed. If ET = 0, an 80287 is installed. if ET = 1, an 80387 is installed.
; NE Bit 5. New exceptions. If this flag is clear, FPU exceptions arrive as interrupts. If set, as exceptions.
; PG Bit 31. The Paging flag. When this flag is set, memory paging is enabled. We will talk more about that in a second.
mov ax, 0x8
mov ds, ax
mov es, ax
mov ss, ax
jmp 0x10:Kernel
.GDT dq 0, 0xCF92000000FFFF, 0xCF98000000FFFF
; Selector 0x00 cannot be used | 0x10 will be our code | 0x08 will be our data
.GDTR:
dw 0x1F
dd .GDT
times 510-($-$$) db 0
dw 0xAA55
%include "source/kernel/SMA.asm"
%include "source/kernel/features/Drawing.asm"
%include "source/kernel/features/Console.asm"
%include "source/kernel/features/Keyboard.asm"
%include "source/kernel/features/KeyMap.inc"
%include "source/kernel/features/Int.asm"
%include "source/kernel/features/String.asm"
segmentsForLoad equ ($-$$-512) / 16
times 512 - (($-$$) % 512) db 0
section .bss
ModeInfo:
ModeAttributes resw 1
WinAAttributes resb 1
WinBAttributes resb 1
WinGranularity resw 1
WinSize resw 1
WinASegment resw 1
WinBSegment resw 1
WinFuncPtr resd 1
BytesPerScanLine resw 1
ScreenWidth resw 1
ScreenHeight resw 1
XCharSize resb 1
YCharSize resb 1
NumberOfPlanes resb 1
BitsPerPixel resb 1
NumberOfBanks resb 1
MemoryModel resb 1
BankSize resb 1
NumberOfImagePages resb 1
ReservedPage resb 1
RedMaskSize resb 1
RedMaskPos resb 1
GreenMaskSize resb 1
GreenMaskPos resb 1
BlueMaskSize resb 1
BlueMaskPos resb 1
ReservedMaskSize resb 1
ReservedMaskPos resb 1
DirectColorModeInfo resb 1
; VBE 2.0 extensions
PhysBasePtr resd 1
OffScreenMemOffset resd 1
OffScreenMemSize resw 1
BMP:
ID1 resb 1
ID2 resb 1
FileSize resd 1
Reserved1 resb 1
Reserved2 resb 1
Reserved3 resb 1
Reserved4 resb 1
Offset resd 1
HeaderLength resd 1
Width resd 1
Height resd 1
NumOfPlanes resw 1
Depth resw 1
Compression resd 1
BytesCount resd 1
Hresolution resd 1
Xresolution resd 1
NumOfUsedColors resd 1
NumOfImportantColors resd 1
A tento kernel:
bits 32
Kernel:
mov eax, BMP
add eax, dword [Offset]
mov [.pointer], eax
mov esi, .params
.drawLine:
mov eax, dword [.pointer]
mov ebx, dword [eax]
mov [.color], ebx
call DrawPixel
inc dword [.x]
cmp dword [.x], Width
jne .drawLine
mov dword [.x], 0
inc dword [.y]
cmp dword [.y], Height
je .done
jmp short .drawLine
.done:
mov dword [.y], 0
hlt
.pointer dd 0
.params:
.color dd 0
.x dd 0
.y dd 0
Chci tedy vykreslit BMP obrázek pixel po pixelu. Ale 938 byte se načíst nedá - to selže a když jsem zkusil 38 byte, tak neseděla ani hlavička souboru. (Ani první 2 byte.) Nevěděl by někdo proč? (Ano - několikrát jsem si ověřoval, že ten obrázek začíná na 26. sektoru - zkusil jsem i 25 a 36 - protože mi tam haprovala 10 a ještě mě napadlo, že to začíná od 0. sektoru - ale vše marné.)
Děkuji.
EDIT:
Rezervoval jsem trochu místa za ModeInfo a nyní se snad jak to vypadá načte těch 38 sektorů. 938 musím tedy rozkouskovat - proč to nejde naráz? (Když je vstupem dword...)
Dobrý den,
udělal jsem ovladač pro grafickou kartu a ten dokáže vykreslit pouze jeden pixel za druhým. A nezní moc lákavě takto udělat byť i jen základní grafiku. (Potřebuji vykreslit alespoň nějaký font - ale nejlepší by byl Unicode - mám TTF soubor.) Studoval jsem různé fontové soubory a rastrovou grafiku. Tak si říkám - asi bude daleko jednodušší zprovoznit nějaké C/C++ knihovny. Ono navíc určitě jich bude třeba i za nedlouho. Jak tedy zprovoznit celou tu velkou soustavu objektových souborů, hlavičkových souborů atd.? (Bedlivě jsem studoval různá ASM/C/C++ OS a oni to řeší vlastními knihovnami atp. - což by mě nezbavilo problému udělat si vše sám - sice mě baví OS dělat, ale zase jsem na to úplně sám - takže něco bych do základů potřeboval...)
Děkuji
Dobrý den,
do teď jsem se mohl pyšnit bezchybnými stránkami, ale najednou začalo validátoru vadit:
<label for="captcha">Páté písmeno abecedy?</label>
<input type="text" maxlength="1" style="width: 8px" name="captcha" />
Prý:
"The for attribute of the label element must refer to a form control."
Ale vše přeci sedí - ne? (Ano, je to uvnitř tagu form...)
Děkuji.
#15 Sefiros
Rozumím 86% MenuetOS na přijatelné úrovni. (kdybych se měl snažit pochopit každý krok - hledat každou instrukci - to bych u toho zestárl...) Bavil jsem se pouze a jen o multitaskingu... Tedy krom něj neznám moc dobře celkově vymoženosti chráněného režimu... Nemám problém s řadiči - sběrnicí - porty, segmenty/offsety atd. Ale chráněný režim - globální halda, stránkování paměti, swapování, multitasking atd. - to už je jiná káva.
#9 KIIV
Ale to právě mám na mysli - jak zařídit, abych nepřerušil věc, co potřebuje více instrukcí? A hlavně si nedovedu představit, jak oddělit od sebe i jen 2/3 programy - když všechny mohou pracovat zrovna na jedné věci. Studuji MenuetOS a rozumím asi tak každé 5. věci... Doufal jsem, že se to dá nějak jednoduše vysvětlit... :D Snad se do toho nějak dostanu... :D
#6 Seph
Tak znovu - jak tedy spustit část jednoho programu, část dalšího,...? Na to se ptám - jak to právě nerozseknout uprostřed instrukce... Co píšeš nedává smysl - pokud opustím toho, co mi zařizuje multitasking, tak to přeci neskočí na další program...
Já se ptám hlavně, jak vykonat část programu, aniž bych jej utnul uprostřed instrukce atp. Neřeším teď přímo multitasking - to je další bod v programu... :D
(Jak píši - chci mít kontrolu nad tím procesem (ne do něj tupě skočit - do adresy v RAM - chci jej vykonávat za pomoci/kontroly kernelu) - z toho pak udělám ten multitasking...)
Ptám se na to, jak se řeší přepínání programů v multitaskingu... Tedy ne int instrukce, ale přepínání - běh více procesů naráz...
Dobrý den,
chtěl bych načíst program a spouštět jej tak, aby pořád vládl kernel a mohl upravovat chování programu. Aby v něm mohly být různé rozšířené funkce atd. Mám jediný problém - nemůžu spustit náhodnou část programu, něco udělat v kernelu a spustit další, jelikož to mohu rozseknout uprostřed úlohy, anebo useknu část instrukce - třeba parametry... Tak se ptám - jak funguje multitasking?
Děkuji.
Dobrý den,
máme konečně neomezený internet a tak toho hodlám využít. Bratr ale říka, že i přesto nemohu stahovat jako blázen - že se pak z nějakých příčin internet zpomalí. Čily - jak je tomu s tímto. A dále - používám program pro stahování, který rozdělí stream do několika částí a ty stahuje najednou. Jaká pro to platí pravidla, nevýhody atd.? Zkrátka - jak to správně nastavit, správně rozložit atd.
Děkuji.
Dobrý den,
rád bych něco malého - asi DOS/RTOS, který bude zvládat jak font - ěščřžýáíéúů (ať už UTF, ISO, CP/...), tak i skládání ˇ a znaku - ť, ď,... (accented characters) Například skládání nezvládá ani Ubuntu - konzole - teprve až X... Potřebuji totiž OS především na psaní dokumentů - v Češtině. Uvítám i návrhy na OS mimo "pouze psaní", jelikož svůj vysnění OS hledám již dlouho - to ovšem okrajem... Primárně mi jde o USB (flash disk).
Děkuji.
PS.: ano - pro DOS existují drivery - ale zatím žádný nefungoval plně správně, anebo když už ano, tak nefungoval v daném editoru. Na něm mi tak úplně nezáleží - ocenil bych, kdyby ono řešení fungovalo na nejlepším možném editoru... Například Word, T602 3.1,...
Dobrý den,
ať dělám cokoliv, nenacházím odpověď na otázku - proč VBR nezačíná od prvního volného sektoru? Co je vůbec na 0 - VBR tedy ne - když je v 7C00h - ne? Ale už po prvních 512 byte RAM lze umístit programy...
Děkuji za vysvětlení.
Dobrý den,
existuje i něco jiného, než skupina 6 - 14ti letých dětí? Chtěl bych uplatnit strojové znalosti, či alespoň programovat. Tedy ne HTML-like psaní kódu, ale tvorba algoritmů atp. Chtěl bych se s někým bavit o programování o to v plně terminologicky slengovém vyjadřování atd.
Děkuji.
Dobrý den,
napadlo mne jednoduché provedení této konstrukce:
mov bx, .switch
mov ah, 0
add bx, ax
add bx, ax
add bx, ax
jmp bx
.switch:
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .done ; Carriage Return
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
jmp .readKey
V al je číslo klávesy, v ah její kódové označení. ah tedy vynuluji a mám v ax jen al... Zatím to nefunguje, tak ještě nemám funkce pro všechny klávesy, ale zkouším to na té, pro kterou funkci mám - Enter. Pořád se mi nedaří dát to dokupy. Co je na tom špatně?
Děkuji.
Dobrý den,
i když to konkrétně píši v ASM, chci zabrat vícero lidí. Tedy mám kernel - a jakým systémem zapsat jeho funkce, aby je mohli používat všechny aplikace? (spouštění procesů, čtení souborů,...) Nabízí se třeba přerušení - je přerušení vhodnou činností pro CPU? Anebo je lepší jiný způsob práce s více procesy? Anebo je mohu načíst do vymezené paměti RAM a vytvořit vlastní tabulku určující lokace jednotlivých funkcí v RAM a nechat všechny uživatele těchto funkcí s nimi pracovat jako s normálními bloky. Anebo... Napadají mě ještě asi 3 další možnosti. Uvažuji spíše o monolitickém jádře - jak to tedy vhodně postavit? Dále - jak operovat se segmenty? Tím zase nemyslím nic konkrétního - ale kdy a proč segmentovat? Např. - segment pro každou funkci? Trochu mimo - jak zpracovat UTF znaky, když jsou namačkané vedle 1byte ASCII? (Funkce Write(Line))
Děkuji.
#2 Honzc
Jednoduché vykreslení křivky (kruhu)
To se čtvercem je jen moje úvaha, jak by se to dalo vyřešit... Napdalo mě pojmout to tak, že se zjistí zvětšení vůči modelu. Model je ten první "obrázek" nahoře. Tedy kosočtverec, který se tím pravidlem budu snažit zakulatit... V mém případě je pravidlem, že se zvětšuje pouze vnější část - a jen se nahradí vrcholy kosočtverce delší hranou - vznikne podivný kosočtverec - viz. 2. "obrázek". Problém tkví v tom, že větší kruh je třeba kulatit nejen na vrcholech, ale i na hranách kosočtverce...
Čtverec bych nikdy neřešil plošně - pokud bych ho nechtěl vybarvit - normálně 4 přímky...
Dobrý den,
bylo by možné vykreslit křivku pouze mechanicky? Tím myslím nějakým pravidlem, které budu aplikovat pod nějakou podmínkou. (Chci se zkusit vyhnout složitým počtům.) Uvažuji čtverec, který projdu cyklem pixel po pixelu a pod danou podmínkou vykreslím...
____O____
___O_O___
____O____
Rozšiřuji podle velikosti:
___OOO___
__O____O__
__O____O__
__O____O__
___OOO___
Jenže rozšiřování pouze nejvzdálenějších míst od středu na větší obrazce nestačí - dalo by se to pravidlo nějak vydedukovat?
Děkuji.
#15 liborb
Copak to fakt nečtete co píši? Proč asi chci dělat hacking - protože chci využít znalostí o PC, ASM atd. Právě proto, že nemohu najít uplatnění (nepočítám současnou pozici ve vývoji webu - myslím Desktop), tak bych zatím chtěl dělat hacking...
#13 liborb
Nechápu, že nechápeš, co je to OT - tohle musíme řešit mimo... Udělám cokoliv - proto píši, ať si řekneš a budeš to mít. Mám sice účet na devbooku atd. - ale svojí minulou prací se nehodlám chlubit. Sice každý začínal, ale zde jde o to, jak se vyjadřuji. Přesně to tu řešíš - že se tvářím jako pán bůh. Proto píši, ať mě otestuješ formou závodu, či tak nějak. Ale na většině aplikací bych neprokázal, že jsem schopen toho o čem píši.... (Sice jsem jich už hodně dělal v době, kdy už jsem znal dokonale ASM atd. - ale ty nemám nikde uložené atp.)
Přečti si co jsem napsal - já PC dokonale znám a moc jsem to zatím nikde nepoužil. Takže já ztrácím svůj ideál o programování... Pomalu se smiřuji s tím, že v rámci tohoto budu dělat jen weby...
PS.:
Lisp jsem vždy učil takto:
(funkce parametr1 parametr2 ...) a to je skoro vše...
Pak jsem dodal - místo funkce list stačí používat symboly - `/' a pak ještě dovysvětlil znaky , @ # no a nakonec &ddd a to bylo vpodstatě vše.
#10 KIIV
Copak jsi to nečetl? Sice to začalo zezdola, ale nyní se nižší kódy generují výhradně z vyšších jazyků. BIOS, CPU instrukce atd. Nikdo se už nepatlá s ASM atd. Byl jsem ve firmě co dělá firewally...
Napsat větu dokáže každý gramotný člověk - takže v tom nevidím žádnou technickou zručnost. Když mi nevezmeš esoterické jazyky, tak tu máme dotazovací jazyky... Nepotřebuješ školu na to, aby jsi měl alespoň základní technické myšlení - zvládlo by to 60% populace...
#8 KIIV
Napsal jsem obecný fakt - zmíněná slova ztratila význam - tak je zbytečné se o nich bavit... Aby jsi měl pravdu, musel by jsi ke slovům jako hacker dávat přívlastky - protože ono samo o sobě nemá žádný význam...
Se zmíněnými "programátory" je to spíše tak, že s novou dobou přišla velká abstrakce. Vždyť esoterické jazyky jako Chef jasně dokazují, že se už dají psát normální věty... + tyto jazyky jsou deklarativní - takže už stačí znát jen syntax. A když už by se o to někdo více zajímal, tak tu máme Gabage Collector, bytecode,... Myslel jsem si co ty. Ale není to pravda - už to nemá význam - nejen slova, ale i všechny znalosti atd. Nikdo se ti už nebude hrabat v kódu - vstupní testy se vpodstatě nedělají - leda tak u skutečně velké korporace. Ale většinou tě vezmou bez otázek... Jak jsem napsal - ztratil jsem iluze. Programátor je jen hezké slovo - má ještě menší význam, než hacker, cracker, debitní karta,... Vždyť je to směšné - jestli něco chtějí, tak znalosti enginů, frameworků a syntaxe - ne znalosti o PC... Co na tom, že engine je největší slátanina nejrůznějších paskvilů a nidko se v tom nedokáže vyznat a tak tam existuje 60 podobných funkcí atd. Mě jen vrtá hlavou, proč stále vyžadují technické vzdělání či tak něco. Naštěstí to většinou jen uvádí, ale ani to je už moc nezajímá...
A měl by jsi si zkusit některé ty testy - neodpovídají žádnému standardu. Vztahují se jen ke konkrétní situaci - co na tom, že by to mělo více řešení atd. => jsou naprosto špatně postavené lidmi, co asi ani nemají základní vzdělání. A že by někdo chtěl toho, co dělá věci tam dole? (BIOS/...) Kdepak - na to už jsou překladače - i na vytvoření instruční sady CPU existuje maximálně abstraktní jazyk - už není kde aplikovat znalosti PC - vše je automatické... Píši to jako ten, který si tím prošel - snažil se prosadit ve všech oblastech atd. Jedinou možností je web - protože je to prostředek týkající se 2 hlavních zmíněných kritérií - komunikace a informace... Proto už ani nechci být programátor - je to smutné, když zjistíš, že všechny znalosti můžeš spláchnout do kanálu...
Chef:
http://en.wikipedia.org/wiki/Esoteric_programming_language#Chef
Jednou mi někdo poradil antiviry či tak - abstrakce, automatizace a vůbec přenechávání všeho na vnitřních strukturách PC je už ale všude.
#6 KIIV
Zase tě nechci nijak urážet, ale systém programů je akorát více programů - pokud chceš proniknout od systému, tak pronikáš do programů => tak jako tak je to cracking... Vpodstatě stačí napadnout "Normandii" a už nemusíš vyhrát podřadné bitvy... Ale je blbostí o tom polemizovat. Ponevadž dnes se říká kóder naprosto zkušenému programátorovi, ostřelovač naprosto zkušenému odstřelovači, debitní kartě kreditní atd. - slova ztratila význam. Jakož i hacker - v ČT1 se normálně baví o útoku hackera - co na tom, že hacker nejedná nikdy nelegálně...
#4 KIIV
Přesně to jsem měl na mysli - tu definici, co jsi poslal... Vždyť píši:
Tedy žádné nelegální nabourávání se do systémů (cracking). (Celkově toho odborně o bezpečnosti tolik nevím.) Jde mi o to, že už tu všechno stejně je. Těžko přijít s něčím novým. Až na hacking - když už to nebude originální, tak alespoň jednoduše geniální, složité, propracované atp.
Ale ta první stránka - "This site provides several security-oriented challenges"... Jako vím, že komunikace, informace a bezpečnost vedou, takže si určitě něco o bezpečnosti přečtu, ale nemohl by jsi mi prosím poslat více stránek týkající se zmíněné pro mě správné definice? Děkuji.
Napsal jsem to jasně - hacking... Tedy žádné nelegální nabourávání se do systémů (cracking). (Celkově toho odborně o bezpečnosti tolik nevím.) Jde mi o to, že už tu všechno stejně je. Těžko přijít s něčím novým. Až na hacking - když už to nebude originální, tak alespoň jednoduše geniální, složité, propracované atp.
Jestli si vymýšlím, je to mínus jen pro mě... Zde jsem se ptal, co se vlastně dá v rámci hackingu dělat. Tedy jak už jsem napsal - došlo k desiluzi atd. - nechci vydělávat miliardy, dělat WoW II., a ani pronikat do pobočky FBI. Chci jen luštit rébusy, které mi pomohou ve skutečném životě...
Přesto, že dobře znám pravidlo "činnost se považuje za dostatečně zvládnutou za 10 let", považuji se za toho, který tvoří vyjímku. Ač reálných podkladů moc poskytnout nemohu. Jestli tu jde o to, že si musím podložit svou samolibost atd - proč ne - klidně si s tebou závod dám.
Narozdíl od tebe však nejsem arogantní a demagogický abych mluvil v množném čísle o jedné osobě. Což není ani urážení, ni nadávání, ni cokoliv neobjektivního. Jen upozorňuji, že takovéto narážky atd. si musíme řešit někde mimo. Což znamená, že pokud chceš, napiš mi na mail, či mě jakkoliv jinak vyzvi - ne však v diskuzi zaměřené úplně jinam... Pokud tě napadá lepší způsob jak se s tím vyrovnat, tak tak učiň - jak jsem napsal - ne však zde. (Pro ty kteří pochybují o mé racionalitě - nepsal jsem to s jakoukoliv emocionalitou - jednám čistě racionálně.)
Dobrý den,
došel jsem do bodu 0. Už mám za sebou doby, kdy jsem chtěl nereálné projekty atd. Zkoušel jsem týmy a všechno co patří k začátkům. Nyní se mi otevírá možnost placené práce - čily začáteční zapálení zkončilo a nová příležitost se teprve pomalu rozbíhá. Čím více toho vím, tím více se chci rozvíjet. Jenže jak jsem napsal - tak nějak se nemám kam pohnout. A přesně k tomu tu asi existuje hacking... Na internetu se však píše spíše o crackingu a navíc 80% materiálů neposlouží ani jako ozdoba na toaletním papíru... Tak bych vás chtěl poprosit, zda-li byste mě nenavedli správným směrem. Kdybych chtěl pokračovat v takových těch aplikacích co vpodstatě k ničemu moc neslouží, tak sem nepíši. Tedy jak už jsem zmínil - chtěl bych se rozvíjet - když už nemám iluze o tom, kdoví čeho dosáhnu... Nejde mi o hodnotu aplikace jako takové - ostatně ty v hackingu ani nemají být hodnotné, ale spíše o to posunout se tím někam dál...
Děkuji.
Dobrý den,
mám šanci pracovat u jedné firmy v rámci .NET. Framework dobře znám atd. - ale nenapadá mne na čem se procvičit. Přijde mi nejdůležitější OOP - tak se ptám - nebyl by nějaký test ne však formou otázek? Tedy abych dostal zadání a podle něj udělal aplikaci... Anebo něco, co se tomu bude nejvíce blížit - nějaký OpenSource projekt, či tak něco. Jak píši - abych se procvičil, jelikož zrovna nemám nic dostatečně velkého, co bych mohl udělat v .NET...
Děkuji.
Úspěch! :D
(defmacro !=(&rest parameters)
(list 'not `(= ,@parameters)))
Chápu už konečně rest - a Lisp miluji o to více... Pokud dáš a &rest b, tak a vytrhne první item, ale není to nezbytné - stačí vynechat a, a v b bude celý list...
Dobrý den,
jak předat n-tici/list funkci? Abych nemusel vytvářet funkci/list... Tedy takové (= 2 5 6 9 8) může mít n parametrů. Lze to nějak zařídit i mimo vestavěnou funkci? (!=):
(defun !=(params)
(not (= params)))
Děkuji.
Jak dostat text z DOC?
Kupodivu tedy DOC... (2003) Musí být ale nějak zachovány tabulky, listy atd. Proto je dokonalé to DOCX...
Dobrý den,
chtěl bych do šablony dosadit formátovaný text z různých dokumentů. Bohužel jen pár z nich jsou DOCX, ze kterých se dá dostat krásné XML... Souborů je skutečně hodně, takže ruční konverze by tedy byla hodně krutá. Navíc to dělám pro společnost, která jede na oknech - naštěstí tu v Unixu mám Mono. Pročež se nabízí hodně možností (dělat to přímo z C# - třeba vytahovat výstup z procesu "Word" atd.) a tak se ptám - co by se dalo dělat? Především s ohledem na to, že nemám Windows... (Nevím co, kde, odkud se dá tahat.)
Děkuji.