Anonymní profil Matěj Andrle – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Matěj Andrle – Programujte.comAnonymní profil Matěj Andrle – Programujte.com

 

Příspěvky odeslané z IP adresy 78.136.161.–

.NET › C# Předání odkazu na seznam…
14. 5. 2015   #202158

#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.

.NET › C# Předání odkazu na seznam…
14. 5. 2015   #202156

#18 ingiraxo
Nepřesouvám položky...

Assembler › Přečtení BMP - 938 sektorů
3. 1. 2014   #185902

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)

Assembler › Přečtení BMP - 938 sektorů
2. 1. 2014   #185869

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á...

Assembler › Přečtení BMP - 938 sektorů
2. 1. 2014   #185843

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.

Assembler › Jednoduché vykreslení křivky…
1. 1. 2014   #185828

#5 Kowalsky95
Děkuji - měl jsem nakonec podobnou myšlenku - použil jsem parametrické rovnice...

Assembler › Přečtení BMP - 938 sektorů
1. 1. 2014   #185822

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

Assembler › Přečtení BMP - 938 sektorů
1. 1. 2014   #185821

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.

Assembler › Přečtení BMP - 938 sektorů
31. 12. 2013   #185815

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...)

Assembler › Zprovoznění C/C++ nadstavby
30. 12. 2013   #185776

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

HTML / XHTML › Label - vlastnost for
29. 12. 2013   #185744

#2 JoDiK
Name potřebuji do PHP, ale děkuji - přidám ID... (Měl jsem za to, že label je na name...)

HTML / XHTML › Label - vlastnost for
29. 12. 2013   #185738

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.

Assembler › Přidržení programu - multita…
24. 12. 2013   #185593

#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.

Assembler › Přidržení programu - multita…
23. 12. 2013   #185578

#13 Seph
Proč bych nemohl psát OS bez multitaskingu? Mám klasický DOS - a funguje lépe, než FreeDOS. Má více funkcí atd. Chci se právě dostat dál - multitasking byl pro mě vždy až moc velký - chci to zkusit zvládnout...

Assembler › Přidržení programu - multita…
23. 12. 2013   #185574

#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

Assembler › Přidržení programu - multita…
23. 12. 2013   #185568

#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...

Assembler › Přidržení programu - multita…
23. 12. 2013   #185566

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...)

Assembler › Přidržení programu - multita…
23. 12. 2013   #185563

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...

C / C++ › C Jak přistoupit k jednomu c…
23. 12. 2013   #185555

#5 Vladimír
argv[0][indexCharu] je ten char, co chceš - nechápu, proč konvertovat do int... A jak by se tu daly použít pointery fakt nechápu - pointer by naopak ukazoval - takže by se to pole ještě prohloubilo...

Assembler › Přidržení programu - multita…
23. 12. 2013   #185554

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.

Sítě › Nevýhody mnohonásobného stah…
20. 12. 2013   #185509

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.

Offtopic › Maličký OS s českou lokalizací
11. 12. 2013   #185139

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,...

Assembler › Proč se VBR zapisuje do 7C00h?
2. 12. 2013   #184671

#6 z
Jak jsem psal - 32. segment je už volný...

Assembler › Proč se VBR zapisuje do 7C00h?
2. 12. 2013   #184665

#4 z
Já to myslel tak, jestli je to volné pro programy. (Pro zásobník/...) OK, pro OS - díky.

Assembler › Proč se VBR zapisuje do 7C00h?
2. 12. 2013   #184661

#2 z
Takže se prostor mezi tabulkou přerušení a VBR nevyužívá?

Assembler › Proč se VBR zapisuje do 7C00h?
2. 12. 2013   #184652

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í.

Offtopic › Kvalitní český tým?
20. 11. 2013   #184152

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.

Assembler › Konstrukce switch
10. 11. 2013   #183608

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.

Offtopic › Vytvoření features kernelu
5. 11. 2013   #183340

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.

Assembler › Jednoduché vykreslení křivky…
3. 11. 2013   #183159

#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...

Assembler › Jednoduché vykreslení křivky…
3. 11. 2013   #183157

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.

Offtopic › Hacking - když se nudí progr…
31. 10. 2013   #183038

#23 derty
Copak nemakám pro 3 firmy? (1x dobrovolník) Vsadím se, že tihle 2 poslení autoři nejsou ani programátoři...

Offtopic › Hacking - když se nudí progr…
30. 10. 2013   #183021

#19 Mixxy
Však píši, že nechci nikam pronikat...

Offtopic › Hacking - když se nudí progr…
29. 10. 2013   #182934

#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...

Offtopic › Hacking - když se nudí progr…
29. 10. 2013   #182927

#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.

Offtopic › Hacking - když se nudí progr…
29. 10. 2013   #182918

#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...

Offtopic › Hacking - když se nudí progr…
29. 10. 2013   #182910

#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.

Offtopic › Hacking - když se nudí progr…
29. 10. 2013   #182906

#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ě...

Offtopic › Hacking - když se nudí progr…
29. 10. 2013   #182904

#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.

Offtopic › Hacking - když se nudí progr…
29. 10. 2013   #182901

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ě.)

Offtopic › Hacking - když se nudí progr…
27. 10. 2013   #182846

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.

.NET › Test OOP - OpenSource projek…
19. 10. 2013   #182575

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.

Matěj Andrle
OS - GNU / Linux › LISP - n-tice
16. 10. 2013   #182470

Ú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...

Matěj Andrle
OS - GNU / Linux › LISP - n-tice
16. 10. 2013   #182423

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.

.NET › Jak dostat text z DOC?
11. 10. 2013   #182206

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...

.NET › Jak dostat text z DOC?
10. 10. 2013   #182187

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.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý