İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır . Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz


Konular - skate

Sayfa: 1 2 [3] 4 5 ... 35
31
return / Summer Intro / Return
« : 18.07.2012 11:54:10 »
Bu güne kadar hep biz yapmışız Return'ün ürün duyurularını (Return elemanları dışında ben, Ragnor v.s.). Ama görüyorum ürünü CSDB'de, Pouet'de falan, tr-demoscene'e girip bakıyorum, "şöyle şöyle ürün yayınladık" falan bir duyuru yok. Bu durumda iş başa düşüyor. Mütevazi adamlar sizi... :)

CSDB:
http://noname.c64.org/csdb/release/index.php?id=110096

Pouet:
http://pouet.net/prod.php?which=59539

Ürünle ilgili yorumumu her iki sitede de aynı metin ile yaptım, merak edenler oradan okuyabilirler.

Tebrikler arkadaşlar.

32
geyik / Welcome to the 40s club Crockett
« : 04.07.2012 17:48:26 »
ıyiki doğdun Crockett. 40'ı devirmişsin. :)

33
yabancı partiler / X'2012 web sitesi açıldı
« : 28.06.2012 01:03:03 »
http://www.scs-trc.net/x2012/

Kayıt olmak isteyenler acele etsin, 300 kişiden fazlasını garanti etmiyorlar.

Bu arada bana yakışan şekilde 64'üncü olarak kayıt oldum. ;)

34
Linux coderlarının iyi tasarımcılarla çalışmasını engelleyen bir protokol falan mı imzalandı, hayırdır? :) Bana son derece saçma geldi. Ama işin ilginç yanı, gerçekten de birçok linux demosunun tasarımının ya tamamen coderlar tarafından yapılması ya da zayıf grafikerlerle çalışmaları. Alın size bir tez konusu.


35
pc / frag manyağı :)
« : 02.06.2012 12:07:29 »
fsqrt isimli grubun sahibi frag'dan daha önce de bahsetmiş olduğumu zannediyorum. eleman 256b ve altı boyutlarda (özellikle 32b'larda) müthiş işler başarıyor. az önce yayınlanmış bir 32b'a yaptığı yoruma hasta oldum.

http://www.pouet.net/prod.php?which=59341

32b'lık ürünü 14b'a indirmiş, kalan 18b'ı improvement için kullanmayı tavsiye etmiş. wtf? :)

36
geyik / .NET'in memory leakleri
« : 07.03.2012 19:05:42 »
C++/CLI'da

Kod: [Seç]
Process::GetProcessesByName("myProcessName")
ya da C#/VB.NET'e uyarlarsak

Kod: [Seç]
Process.GetProcessesByName("myProcessName")
bu kadar basit bir kod ne sorun yaratabilir ki di mi? Benim makinemde 350-400 KB'lık bir memory leak yaratıyor. Her 5 sn'de bir bu kodu çağırıp bir process'in ayakta olup olmadığını kontrol etmeye kalktığımda 15 sn'de 1Mb, 15-20 dk içersinde de 4 GB (!) kadar memory leak yaratma potansiyeli var. Garbage Collector mal gibi olan biteni izliyor, müdahele etmiyor. :) Olay da şu. Verdiğiniz process ismini ararken açık tüm processlerden birer obje yaratıyor ama hiçbirini dispose etmiyor. Size de bir referansını döndürmediği için sizin de dispose etme şansınız olmuyor. Yani her halikarda bulunamayan tüm processler ciddi bir memory leak yaratıyor. Bunun yerine siz kendiniz bir loop ile GetProcesses() üzerinden aynı işlemi yaparsanız sorun yok. .NET'in hazır ve nazır bu muhteşem metodunu kullanmaya çalışırsanız vay halinize.

Benim gibi uzun süre memory leak'in kaynağını bulmaya harcamayın diye yazıyorum. GetProcessesByName() cıstır, bu böyle biline. :)

P.S: En azından .NET Framework 3.5'e kadar böyle, belki sonrasında çözmüşlerdir, araştırmadım.

37
geyik / PHP 5.4 Versiyonu
« : 05.03.2012 11:49:01 »
1 Mart 2012 itibariyle PHP 5.4.0 yayınlandı. PHP 5.3'ün en büyük olayı namespace'lerin eklenmesiydi. PHP 5.4'de ise "trait" özelliği OOP açısından büyük bir kullanım rahatlığı getiriyor.

Trait nedir?

PHP, benzeri birçok dilde olduğu gibi multiple inheritance desteklemez. PHP'de inheritance için "extends" kullanılmaktadır. Örnek:

Kod: [Seç]
<?php
class {
    function 
myFunction1() { ... }
}

class 
extends {
    ...
}
?>


Bu örnekte B class'ı A'nın "myFunction1()" fonksiyonunu artık içermektedir. Ancak şöyle birşey yapmak istediğimizde;

Kod: [Seç]
class A {
    function myFunction1() { ... }
}

class B {
    function myFunction2() { ... }
}

class C extends A, B { // <- HATA!!!
    ...
}
?>

Birden fazla class üzerinden inheritance mümkün değildir. Bunun için belki (eğer yapı ve şartlar uygunsa);

Kod: [Seç]
class A {
    function myFunction1() { ... }
}

class B extends A {
    function myFunction2() { ... }
}

class C extends B {
    ...
}
?>

Böyle bir çözüm kullanılabilir. Yani B A'dan, C de B'den türetilirse sonuç olarak C "myFunction1()" ve "myFunction2()"ye sahip olacaktır. Ama daha kompleks yapılarda, örneğin elimizdeki 10 tane class'ın birkaçından türetmek istediğimiz classlarımız oldukça bu kullanım karmakarışık bir hal alabilir. Aslında biz hep altyapımızı amacımıza uygun tasarlayarak single inheritance ile de durumu kontrol altında tutabilir ve karmaşık bir yapı oluşmasını önleyebiliriz. Ya da bu noktada interfacelerden yararlanabiliriz. Ancak PHP 5.4'de gelen trait özelliği bu işe çok güzel bir çözüm oluşturmuş.

Örnek:

Kod: [Seç]
trait A {
    function myFunction1() { ... }
}

trait B {
    function myFunction2() { ... }
}

class C {
    use A, B;
    ...
}
?>

"extends" bile kullanmadan işi çözebiliyoruz. "class" yerine "trait" kullandıktan sonra classımızın içinde "use" ile hangi traitleri kullanmak istediğimizi dilersek tek satırda bile verebiliyoruz. Tabii bu arada istersek yine "extends" kullanarak mevcut bir sınıfın özelliklerini de classımıza ekleyebiliriz.

Kısa Array Tanımlama Özelliği

Artık şunun yerine;

Kod: [Seç]
    $myArray = array(...);
?>

şunu;

Kod: [Seç]
    $myArray = [...];
?>

yazabiliyoruz.

Built-in Web Server

Artık sadece PHP kurulu olan, Apache, IIS v.b. bir web server kurulu olmayan bir makinede de web sayfalarınızı test edebileceksiniz. Çünkü artık PHP'nin içersinde basit bir CLI SAPI web server geliyor. Bu web server'ı php.exe üzerinden;

Kod: [Seç]
php -S localhost:8000

şeklinde çalıştırabiliyorsunuz.

Sonuç

PHP 6.0 (hatta bir iddiaya göre 6.0 çıkmadan 7.0 çıkabilirmiş 6.0 çok yılan hikayesine döndüğü için) çıkana kadar 5.x versiyonu kendi içersinde oldukça sağlam gelişmeler ve yeni özelliklerle ilerlemeye devam ediyor. Tahminim PHP 5.5 yerine artık 6 ya da 7 serisini göreceğimiz yönünde. Ama bu gidişle belli de olmaz... :)

38
çeşitli / WinUAE Demo ToolChain
« : 16.02.2012 11:48:06 »
Çok seksiymiş!

http://pouet.net/prod.php?which=58703

The Super Simple WinUAE Tool Chain For Amiga Demo Programmers, Version 4, released February 15, 2012
Put together by XXXXX

GOALS FOR TSSWUAETCFADP
1. Gather everything you need to start programming on the amiga into a single place
2. Set up a one-click-build, one-click-run system for amiga development in Windows, where you can see code running on screen in under 15 seconds
2. Provide a sample with c and assembler working seamlessly together
3. Include ship-quality system-friendly startup code for demos that works with all Amiga platforms.
4. Include a ship-quality music player
5. Get it all to build and run from within Visual Studio 2010
6. Gather useful documents in a pc-friendly (and Kindle-friendly) format
7. (new) Make it easy to run your favorite flavor of protracker

BASIC INSTRUCTIONS
1. unpack all files into a folder
2. in command line, run build.bat to build dh0\mydemo.exe
3. run RunAros.bat to see the amiga automatically run the freshly built file, mydemo.exe, using the AROS rom on an A4000/40 (this rom is a replacement for Kickstart 3.1)
3b. if the run*.bat files doesn't boot the newly built file, and you may have used WinUAE before, you may have old info in your registry. In that case, try to run DestroyOldUAESettings.bat, and try the run*.bat files again
4. You may want to get Kickstart 1.3, 2.04 and 3.0 copied into the root of the WinUAE folder. You can always buy the Amiga Forever Plus DVD from http://www.amigaforever.com/, and copy the contents of the \Amiga Files\Shared\rom folder (remember to also copy rom.key). Or you can go hunting for the kick13.rom, kick204.rom and kick30.rom at your own peril :-)
5. This enables you to run runa500.bat, runa4000_40.bat, runa1200.bat, or runa500plus.bat to see the amiga automatically run the demo on any file, or RunAll.bat to see the demo run simultaneously in 5 different configs

MUSIC INSTRUCTIONS:
1. run startProtracker23d.bat, startProtracker315.bat, or startProtracker362.bat to start tracking
2. to convert samples to protracker-friendly raw format
 a. just put a wav-file (xxx.wav) in dh0\wavsamples
 b. run ConvertWavToRaw.bat xxx.wav
 c. you now have xxx.raw in dh0\rawsamples
3. to change the music in the sample,
 a. run startp61converter.bat
 b. press cancel on the env: requester
 c. pick a protracker mod-file, and convert it to p61 format
 d. put the new filename into main.asm instead of the old one
 e. build and run

CODE INSTRUCTIONS
1. If you have visual studio 2010, just
 a. start by running StartVisualStudio.bat,
 b. you can now build and run (but not debug)
2. open source\main.asm and start coding!
3. to delete temporary files (and final built file), run cleanup.bat
4. to debug, press shift+f12 inside WinUAE
5. you may want to download notepad++ or something else as notepad doesn't do well with unix format text files
6. download  "Amiga Hardware Reference Manual" - maybe look in http://amiga-manuals.xiik.net/ebooks? - and some manual for the 68000

STANDING ON THE SHOULDERS OF GIANTS. This was built using:
  vasm/vbcc/vlink by Volker Barthelmann.  Repackaged with permission - this is a stock recompilation without changes. For vasm/vbcc/vlink licensing agreement please see manuals\vbcc.pdf, manuals\vasm.pdf, and manuals\vlink.pdf
 This came from kusma's amiga-dev toolchain (precompiled versions of compiler, assembler, linker etc.)
  config file was changed
 startup code and howtocode7 documents from from cj of Share and Enjoy
  I fixed pal/ntsc check bug
  I fixed crash on exit in   I merged all the howtocode7 documents into a single guide-file, so I could generate a PDF
 The player 6108 by Sahara surfers and lots of other people
  I fixed case sensitivity issues
 notes from krabob/rload on ada.untergrund.net about mixing c and asm
 piru's input handler
 winuae
 winguide to generate pdf files
 Protrackers by a lot of people
 SoundExchange

KNOWN ISSUES/QUESTIONS
none
TODO
  - add in avail and avail flush calls to check for memleaks
CHANGE LOG
V4
 toolchain changes
 - added adfview archive to toolchain folder - run this to browse adf files
 - got redistribution permissions from Volker Barthelmann
 - replaced NDK with alternative open source headers (but you can still put NDK back if you want - search for HAS_NDK
 - removed posix and netinclude libs and includes
 - added support for an exit string - this is printed to shell on exit
V3
 toolchain changes
 - added support for Aros rom - so no need to get regular kickstart files
 - added command line parameter to boot disks (runa500.bat [relativePathToFloppyImage])
 - created runall.bat that boots all configs simultaneously
 - added windows caption to winuae configs
 code changes
 - fixed broken disablecache
 - fixed borked workbench launch code - doh!
 - changed p61 config to be system friendly - doh again (caused crash on at least workbench 2.04)
V2
 toolchain changes
 - added protrackers including startup batch files
 - created batch file to start p61 converter
 - created a4000 batch file and config
 - updated run batch files to work both with amigaforever roms and other roms
 - added Visual Studio 2010 .user file, so debugger commands are already configured
 - minor change in setpaths to remove double backslash
 - updated notes on where to legally get the kickstart roms
 - moved files out of root folder where possible
 - create DestroyOldUAESettings.bat to fix problems with old users
 - added wav to raw conversion batch
 code changes
 - moved versionstring to top of file
 - added flag to shut off multitasking (DISABLE_MULTITASKING)
 - disable_multitasking safely blocks blitter access during execution
 - when detecting NTSC, code just quits on startup, because that's usually what you want when making demos :-)
 - added flag to shut off cache (DISABLE_CACHE)
 - moved music player into a system friendly vblank interrupt,
 - restructured startup/main calling pattern to make it more readable and less error-prone
 - using Piru's input handler to "eat" input from the system, and to block requesters from popping up
V1 Initial Release

39
çeşitli / 256b PostScript Mandelbrot (Wild)
« : 04.02.2012 22:48:11 »
http://www.pouet.net/prod.php?which=58608

250 bytelık bir postscript, çalıştırınca içinde mandelbrot olan bir PDF oluşturuyor. Süper gereksiz ve eğlenceli bir ürün, çok sevdim. :)

40
pc / ılginç C++ davranışı
« : 02.02.2012 17:35:56 »
printf ve türevlerinde kullanılan %d, %s v.b. string içi değişken kullanımını bilirsiniz.

Kod: [Seç]
printf(&quot;hedenin degeri: %d&quot;, hede);
şimdi şunu bir deneyin bakalım.
Kod: [Seç]
printf("%d %d", 4294967298, 8);
ılk parametre 32 bit'i geçen bir değer. Dolayısıyla ekrana ilk yazılacak değerin 4294967298 olmaması beni pek şaşırtmıyor. Peki ya ikinci değerin 8 yerine 1 olmasına ne demeli?

Bu güne kadar hep %'lerle parametrelerin indexlerinin birebir örtüşmesi gerektiğine inanmıştım ancak anlaşılan durum pek de bu biçimde işlemiyormuş.

4294967298 sayısını 64 bit binary olarak yazacak olursak.

Kod: [Seç]
4294967298 = %0000000000000000000000000000000100000000000000000000000000000010
32'şer bite parçalayınca da

Kod: [Seç]
%00000000000000000000000000000001 = 1
%00000000000000000000000000000010 = 2
yani high dword 1, low dword 2. Yani 4294967298 yerine 32bit kapasiteli %d'nin low dword'ü yazması gayet normal. ancak sonraki %d'nin yazdığı 1 de aslında ilk parametre'nin high dword'ü. peki ya 8 nereye gitti?

Kod: [Seç]
printf("%d %d %d", 4294967298, 8);
Bir tane daha %d eklediğimizde 2. parametre 3. %d'de karşımıza çıkıyor. Tabii ki bunun yerine 64bit, yani long long tipindeki değişkeni;

Kod: [Seç]
printf("%lld %d", 4294967298, 8);
bu biçimde %lld ile yazdırırsak parametreler olması gerektiği şekilde pattern ile örtüşüyor. ilginç değil mi?

41
hardware / 6502 yeniden üretimde
« : 26.01.2012 18:04:42 »
Konuyla ilgili blogumda kısa bir yazı yazdım, daha çok haber niteliğinde. Ancak ilerde belki daha detaylı bir inceleme yazısı yazabilirim, konunun takipçisiyim.

http://emir.akaydin.com/?p=276

42
Main Forum / Yeni Üyelikler Hakkında
« : 13.01.2012 13:18:06 »
Foruma üye olmak isteyen arkadaşlar,

Foruma üyelik oldukça basit olmakla birlikte, spamlere karşı vermiş olduğumuz mücadelenin yan etkisi olarak bazı hesapları onaylamakta tereddüt etmemiz sonucunda sizler için zor bir süreç olabiliyor. Lütfen üye olurken üyelik formundaki alanları boş bırakmayıp, bizi en azından spam bot olmadığınıza ikna edecek kadar birşeyler yazın. Aksi taktirde üyeliklerinizi onaylayamayabiliyoruz.

Forumun temiz ve düzenli kalması için sahip olduğumuz bu tür hassasiyetleri anlayışla karşılayacağınızı ümit ediyorum.

43
geyik / E-mail adresi koruması için text reversing
« : 12.01.2012 19:16:19 »
Az önce bir arkadaşım aradı. Bir siteden text copy&paste edince e-mail adreslerinin ters olarak geldiğini söyledi. Yani bu trickin zaten bilinen bir trick olduğunu gösteriyor. Ben şahsen denedim ve cidden akıllıca bir trick. Resim kullanmak, garip seperator karakterler kullanmak gibi yöntemlerden çok daha pratik. Elbette ki bunu da düşünüp daha zeki e-mail crawlerlar yazılabilir. Yine de bilmeyenlerin hoşuna gidebilir.

email address : moc.liamg@tset
Bu browserlarda

Alıntı
email address : test@gmail.com

şeklinde görünürken copy paste ettiğinizde text

Alıntı
email address : moc.liamg@tset

 şeklinde elinize ulaşıyor. Crawlerlar da bu senaryoyu hesaba katmadığı sürece e-mail'ı ele geçiremiyorlar tabii ki.

Bu adreste sonucu görebilirsiniz: http://jsfiddle.net/MQyMP/

44
Aşağıdaki linkteki topic'de

http://www.tr-demoscene.info/showthread.php?7015-7dx-2011-Parti-Raporları&p=28599#post28599

7dx'de yayınlanan bir demonun bazı makinelerde sorun çıkarması konusuyla ilgili, diğer topic'in konusunu fazla dağıtmamak için bu başlığı açmayı uygun gördüm. hemen konuyla ilgili mektubumu yazayım.

sevgili demo coder arkadaşlarım, (hmm, en azından PC-Windows üzerinde demo geliştirenler :))

biliyorum demo projeleri her zaman aceleye gelir ve error log dosyası oluşturmak v.b. işler, hatta hatta bazı çağırdığınız fonksiyonlardan dönen değerleri kontrol etmek fazlasıyla külfettir. ancak bu tür durumlar için son derece basit kullanabileceğiniz bir tool mevcut.

DebugView:
http://technet.microsoft.com/en-us/sysinternals/bb896647

C++ kullananlar için;

projenizde windows.h'ı include ettikten sonra şu basitçe şekilde kullanabilirsiniz.

Kod: [Seç]
void myWorldFirstFXFunction() {
    OutputDebugString(&quot;application reached myWorldFirstFXFunction&quot;);
    ...
    LoadTextures();
    OutputDebugString(&quot;texture loading is successful&quot;);
    ...
}
Proje ayarlarınız unicode'a ayarlıysa buraya unicode string girebilir ya da kolayca OutputDebugString() yerine OutputDebugStringA() kullanabilirsiniz.

C#, C++/CLI, VB.Net gibi .NET dilleri üzerinden managed olarak benzeri fonksiyonalite kullanmak isteyenlerin işi daha da kolay.

Kod: [Seç]
System.Diagnostics.Debug.Write("hede");
ya da C++/CLI syntax'ı ile

Kod: [Seç]
System::Diagnostics::Debug::Write("hede");
doğrudan bu şekilde debug loglarını DebugView tool'u üzerinden izleyebilirsiniz.

bunun sağladığı avantaj şu ki demonun çalışmadığı makinelerde sorunun kaynağını bulmak için, sorunu yaşayan kullanıcıya 286KB'lık DebugView'ı indirtip, demoyu çalıştırmadan önce DebugView'ı çalıştırmasını rica etmeniz yeterli. demo hata verdikten sonra DebugView penceresinde CTRL+S ile kaydettiği log dosyasını size e-mail atmasını rica ederek, en azından demonun tam olarak nerede, hangi aşamada patladığını bulup, o bölümdeki olası uyumsuzluklara odaklanabilirsiniz.

bu bahsettiğim en ideal error log'u üretme / sorunları çözme yöntemi değil tabii ki. ancak bence bu tür konularda genel olarak üşengeç olan demo coderları için oldukça ideal ve pratik bir yöntem. demoyu çalıştıramayan kişinin hiçbir teknik bilgisi olmasa da, kolaylıkla DebugView'ı indirip, size bu bilgiyi hızlıca ulaştırabilir.

45
geyik / Gittiiii dağ gibi 2011 gittiii :(
« : 31.12.2011 21:42:02 »
Herkes 2012'yi kutluyor, ben 2011'in yasını tutuyorum. Güzel yıldı be. :( Neyse 2012 de idare eder herhalde. Dünyanın sonunun gelmesi v.s. epey hareketli olacak. ;)

Mutlu yıllar arkadaşlar.

Sayfa: 1 2 [3] 4 5 ... 35