Hocam acayip heyecanlandım :)
a = 1; while(a < 1000000) {;a++} kodu
21 ms, 15 ╬╝s, and 5 hnsecs sürdü :D
http://rhodeus.org/upload/loop.png
Zekeriya
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
July 10, 2013 Yeniden yapılandırma | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Hocam acayip heyecanlandım :) a = 1; while(a < 1000000) {;a++} kodu 21 ms, 15 ╬╝s, and 5 hnsecs sürdü :D http://rhodeus.org/upload/loop.png Zekeriya -- |
July 10, 2013 Yeniden yapılandırma | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Kardesim harika isler yapiyorsun umarim birgun cok cok cok iyi yerlere geleceksin :) -- |
July 10, 2013 Yeniden yapılandırma | ||||
---|---|---|---|---|
| ||||
Posted in reply to agora | Teşekkür ederim, Ali ve Salih hocalarım sayesinde :) Foruma üye olduğumdan beri sorduğum her şeye istisnasız cevap verdiler ilgilendiler adeta sıcak bir programcı yuvası gibi :) Bu foruma üye olduğumda programlamayı sadece klasik asp den ibaret sanıyor ve koyu bir şekilde savunuyordum diğer dillere yeni geçiş yapmaya başlamıştım (Python, perl ve D :) ) ki daha o zaman compiled dil ne demek haberim yok ve ASM kodlarını ise "abi mov jamp birşeyler var birde böyle eaks meaks birşeyler var işte çok karışık" şeklinde tarif ederdim. Şimdi ise Rhodeus Script'te etkin olarak kullanmaya başladım. Onların değerini bil :) D dilinde yeni olduğun için söylüyorum arada bir D diline sayabilirsin ben çok yaşadım birkaç kez C ve türevlerine yönelmeyi bile düşündüm çünkü D'nin bazı olanakları halen daha yetersiz ama bu kesinlikle yapamayacağın anlamına gelmiyor. D gerçekten güçlü bir dil ve mümkün olduğunca hakim olmaya çalışmanı tavsiye ederim. Şu anda ben pek hakim değilim hala D ile yazılmış bir çok kütüphaneyi anlamakta güçlük çekiyorum özellikle de derleme zamanı çalıştırılan kodlar konusunda ama öğrenmek için acele etmiyorum zamanı gelince öğreniyorsunuz :) Zekeriya -- |
July 11, 2013 Yeniden yapılandırma | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Alıntı (zekeriyadurmus): >Teşekkür ederim, Ali ve Salih hocalarım sayesinde :) Foruma üye olduğumdan beri sorduğum her şeye istisnasız cevap verdiler ilgilendiler adeta sıcak bir programcı yuvası gibi :) Bu foruma üye olduğumda programlamayı sadece klasik asp den ibaret sanıyor ve koyu bir şekilde savunuyordum diğer dillere yeni geçiş yapmaya başlamıştım (Python, perl ve D :) ) ki daha o zaman compiled dil ne demek haberim yok ve ASM kodlarını ise "abi mov jamp birşeyler var birde böyle eaks meaks birşeyler var işte çok karışık" şeklinde tarif ederdim. Şimdi ise Rhodeus Script'te etkin olarak kullanmaya başladım. Onların değerini bil :) D dilinde yeni olduğun için söylüyorum arada bir D diline sayabilirsin ben çok yaşadım birkaç kez C ve türevlerine yönelmeyi bile düşündüm çünkü D'nin bazı olanakları halen daha yetersiz ama bu kesinlikle yapamayacağın anlamına gelmiyor. D gerçekten güçlü bir dil ve mümkün olduğunca hakim olmaya çalışmanı tavsiye ederim. Şu anda ben pek hakim değilim hala D ile yazılmış bir çok kütüphaneyi anlamakta güçlük çekiyorum özellikle de derleme zamanı çalıştırılan kodlar konusunda ama öğrenmek için acele etmiyorum zamanı gelince öğreniyorsunuz :) Zekeriya Benim cogu zamani GUI ile isim olmuyor. Genelde linux kullaniyorum :) D ile sistem kodlari yazacaksam tam benlik :) windowsta ise solidworks gibi modelleme egitim seti hazirliyorum :) gelelim diger dediklerine ben d'yi ogrenmeye calisiyorum :) ya aslinda cok zor degil ama nasi desem resmi sitesindeki bilgiler hic acik degil ya ogrenmek cok zor oluyor :) ayrica rhodeus script'i olusturmak icin basit degil bence ama sen yapmissin cok basarilisin tebrikleri hak ediyor. lexer olayi hep kafami karistirdi. daha onceden yine tahminim programlama ile bilgin vardi :) aslinda biraz diretirsen d tabanli bi dil de yazabilirsin. web tarafli degil yani :) ama cidden merak ediyorum hani ASM kodlarina erisebilmek icin baya buyuk bilgi birikimi de gerekir. Yani objdump der alirsin o kodlari o degil demek istedigim bunlari kullanmayi biliyorsun bu gercekten buyuk bilgi birikimi bence. Umarim cok daha iyi yerlere gelirsin :) Ki geleceksindir de :) Cidden boyle seyler gururlandiriyor :) -- |
July 11, 2013 Yeniden yapılandırma | ||||
---|---|---|---|---|
| ||||
Posted in reply to agora | Alıntı: >aslinda biraz diretirsen d tabanli bi dil de yazabilirsin. web tarafli degil yani CGI ve vibe'yi sistemde çıkarırsam masaüstü dili olur :) Projeye ilk başladığımda yeni bir masaüstü diline gerek olmadığını düşünüyordum ama şu ise aynı fikirde değilim :) Bu assembly olayı gibi öğrenmem gereken şeyler olduğuna inanıyorum en azından o zamana kadar güçlü bir assembler oluştururum ama oluşturacağım masaüstü dili de yine yorumlanan bir dil olur ( tür tanımlamaları olacak ama :) ). Assembly söz konusu olduğunda çokta bir performans kaybı söz konusu olmuyor. Alıntı: >ama cidden merak ediyorum hani ASM kodlarina erisebilmek icin baya buyuk bilgi birikimi de gerekir. Yani objdump der alirsin o kodlari o degil demek istedigim bunlari kullanmayi biliyorsun bu gercekten buyuk bilgi birikimi bence. Aslında görüldüğü gibi zor değil :) Geliştirme ortamım windows ve visuald ile (visual studio eklentisi) yazdığın kodların assembly çıktısını görebiliyorsun tabi kodları yorumlayarak gösterdiği için de http://onlinedisassembler.com/odaweb/ adresine hex kodlarını atarak yorumlanmamış saf asm kodunu elde ediyorum :) Alıntı: >daha onceden yine tahminim programlama ile bilgin vardi ASP de 5. senemdi ama 5 senelik bir bilgi olduğu söylenemez :D (Çok gereksiz vakit ayırmışım :D ) Dediğim gibi diğer diller ile yeni tanışmıştım ama şunu biliyordum sonuçta yapılan işlemler aynı döngü yap karşılaştırma yap topla çıkar tabi D dili gibi gelişmiş olanakları yoktu zaten D dili ile tanıştıktan sonra diğer bütün diller bana uzaylı gibi gelmeye başladı ilk görüşte aşk resmen :) Alıntı: >gelelim diger dediklerine ben d'yi ogrenmeye calisiyorum ya aslinda cok zor degil ama nasi desem resmi sitesindeki bilgiler hic acik degil ya ogrenmek cok zor oluyor D acayip mantıklı bir dil :) Farklı bir tabir ama evet öyle en azından kendi yazdığım kod için yorum satırı yazmaya gerek duymuyorum aslında yazsam iyi olur ama koda baktığımda metin okur gibi anladığım için gerçekten basit diyebiliriz sadece biraz fazlaca özelliği var :) Fonksiyon referansı olarak gayet iyi ama öğrenmek için yeterli olmayabilir. Ali hocamın yazdığı pdf gayet iyi ama seviye olarak ağır kaçabilir. Ali hocam herşeyi en ince ayrıntısına kadar anlatmış ilk etapta anlamakta güçlük çekebilirsiniz ama tavsiyem takılı kalmayın devam edin okumaya beyniniz arkaplanda onu işlemeye devam ediyor aslında, başka bir zaman tekrar okuduğunuzda bir bakmışsıız anlamışsınız :) veya ihtiyacınız olan şeyin ne olduğunu anlarsınız sonradan üzerinde durursunuz. Alıntı: >windowsta ise solidworks gibi modelleme egitim seti hazirliyorum İşiniz kolay değil gerçekten, kolay gelsin inşallah eğitim setini ve şu güvenlik olayını halledebilirsiniz. Ama ne kadar düşünürsem düşüneyim kırılamayacak bir sistem aklıma gelmiyor :) Ama yerinizde olsam diğer sistemleri incelerim mesela sizin gibi eğitim sistemi hazırlayan firmalar güvenlik önlemi alıyor mu alıyorsa ne tür şeyler alıyor ve işe yarıyor mu araştırmak lazım. Ama web üzerinden interaktif de yapabilirsiniz udemy tarzında :) Ama ne yaparsanız yapın kullanıcı videoları indirip paylaşabilir. Alıntı: >Umarim cok daha iyi yerlere gelirsin Ki geleceksindir de Cidden boyle seyler gururlandiriyor İnşallah, bir şeyler yapmaya çalışıyoruz ve sonuçda elde ettik çok şükür :) Dileğim hep beraber bir yerlere gelmek çünkü ülke olarak güzel şeyler bunlar. Herşeyde olduğu gibi bilgisayardada baya geriden takip ediyoruz. Zekeriya -- |
July 11, 2013 Yeniden yapılandırma | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Iyi yerlere geleceginden suphem yok :) Shurzan hocam sagolsun yardimci oldu :) Ya ben aslinda acik kaynak felsefesini desteklerim ama yasamak icin para gerekli :) Mecburen set cekiyoruz Yaklasik 200 saatlik bi set olacak. En bastan en sona. Satin alma gecmisi diye bi ozellik kattim. Android playformunda MxPlayer diye bisi vardi o premium programlari oyle kontrol ediyordu ben de oyle yaptim. Su anlik sorun yok :) bi hacker platformundaki ustada yolladim demo'yu eger saglam olmus derse devam edicem :) Ali hocamin yazdigi pdf'den ben de devam ediyorum :) Java'dan kat kat iyi lafi bile cok az kalir bence. Performans konusunad java bana cok cektirdi. Grafik tabanini hic kullanmam diyorum ama neden iyice ogrenince bi cizim programi da bizden cikmasin ki? Solidworks gibi CAT/CAM :) Aslinda bende durum su ben ilk okuyusta anlamam. Aradan bi 5-6 gun gecer bu sefer de nasil o konuyu anladigima sasiriyorum sanki beynim de onu yorumluyor ama biraz performansi dusuk gibi :) odaweb'in kullanimini aciklar misin? :) Ben D ile yazdigim bi programin tum objdump ciktilarini aldim 159 bin satir yapti da 9.2 mb falan bi boyutu olustu. ASM kodlarinin faydasi performans alaninda mi? Yani belirli alanlari duzenleyerek ki ben bilmiyorum onlari duzenleyerek mevcut kodda daha da iyilestirmeler mi yapmakta? Bu konudaki dokumanlara nereden ulastin acaba? D eksikliklerini tamamlarsa ya da tamamlamasa da sen bence rhodeus bitiminden sonra yani tamamen istedigin seviyeden sonra belki masaustu de denersin :) Asp ile hic zaman harcamadim :) Java hep en belalim o ama android :) -- |
July 11, 2013 Yeniden yapılandırma | ||||
---|---|---|---|---|
| ||||
Posted in reply to agora | Biraz geç cevap yazdım çünkü "ret 8" gibi bir assembly komutuna parametresini register üzerinden vermekle uğraşıyordum ve başardım da başkalarının da işini görür diye buraya yazayım onu :)
Bu komut stackı aslında 12 arttırıyor. Şöyle ki önce stackdan bir pop yapıyor(yani +4 arttırmak) daha sonra bu veriyi hafızada saklıyor (artık nereye yazdığını bilmiyorum ama ben kendi örneğimde bir register'a yazdım) daha sonra da stack'ı girilen parametre kadar arttırıyor yani 8. Toplamda ise 12 artmış oluyor. Aynısını birkaç komuta böldüğümüzde ise aşağıdaki çıktıyı elde ediyoruz add komutu ile 2 register arasında işlem yapabildiğimiz için de ret ECX; gibi bir komutu aşağıdaki şekilde çalıştırabiliyoruz.
Alıntı: >Ya ben aslinda acik kaynak felsefesini desteklerim ama yasamak icin para gerekli Mecburen set cekiyoruz Yaklasik 200 saatlik bi set olacak. En bastan en sona. Satin alma gecmisi diye bi ozellik kattim. Android playformunda MxPlayer diye bisi vardi o premium programlari oyle kontrol ediyordu ben de oyle yaptim. Su anlik sorun yok bi hacker platformundaki ustada yolladim demo'yu eger saglam olmus derse devam edicem Peki güvenlik olarak hedeflediğiniz şey nedir hocam? Sonuçta videolar internet ortamına sızdırılabilir. Ama şu yapılabilir videolar farklı bir codec ile oluşturulur ve bu codec bilgisine veya anahtarına sadece sizin program hakim olur bu sayede video dışarıdan açılamaz. Açık kaynak pek desteklemezdim ama bende artık onlardan birisi oldum :) Alıntı: >Java'dan kat kat iyi lafi bile cok az kalir bence. Performans konusunad java bana cok cektirdi. Grafik tabanini hic kullanmam diyorum ama neden iyice ogrenince bi cizim programi da bizden cikmasin ki? Solidworks gibi CAT/CAM Android uygulaması geliştirmenin haricinde Java kullanmadım ama D dilinden yavaş ve hantal olduğuna adım gibi eminim ve java kütüphaneleri keşke D de olsaydı :( Türkiye'de bu işi ciddi bir şekilde yapabilecek birisi çıkar mı bilmiyorum bizde anlayan insanlarda genel yargı şuna dönüşmeye başladı: zaten böyle bir program var ne gerek var bunun gibi bir program yapmaya ben buna eklenti geliştireyim o zaman daha iyi olur. Aynı olay rhs için de söylendi ne gerek var yeni bir dil geliştirmeye git yeni bir framework geliştir php dilinde şeklinde. Pardon ama ben php yi beğenmediğim için kalkıştım bu işe :) Tabi php den iyi mi diye sorarsanız değil ama iyi ki de bu projeye başlamışım istemediğim kadar çok şey öğrendim :) Alıntı: >Aslinda bende durum su ben ilk okuyusta anlamam. Aradan bi 5-6 gun gecer bu sefer de nasil o konuyu anladigima sasiriyorum sanki beynim de onu yorumluyor ama biraz performansi dusuk gibi Aynı durum bende de var ama benimki 5-6 gün değil daha ziyade 2-3 ay :) Alıntı: >odaweb'in kullanimini aciklar misin? Ben D ile yazdigim bi programin tum objdump ciktilarini aldim 159 bin satir yapti da 9.2 mb falan bi boyutu olustu. oraya yazdığınız hex kodlarının asm çıktılarını gösteriyor visuald ile elde ettiğim makine kodlarını buraya yazıp ebp li hallerini elde ediyorum. Alıntı: >ASM kodlarinin faydasi performans alaninda mi? Yani belirli alanlari duzenleyerek ki ben bilmiyorum onlari duzenleyerek mevcut kodda daha da iyilestirmeler mi yapmakta? Sonuçta bütün kodlar asm ye yada diğer bir tabirle makine koduna çeviriliyor. Derleyiciler de çoğu zaman en hızlı çalışacak asm kodunu oraya yazamıyor veya sentaks buna müsade etmiyor. Mesela ben şu an aynı fonksiyonu birkaç farklı şekilde çağırabilmek için bir yöntem geliştirdim fonksiyon bu sonuçta aldığı parametreler bellidir ama tam olarak öyle olmuyor işte :) Duruma göre aldığım parametreleri farklı işliyorum ve bu sistemi derleyici anlayamıyor ve hatalara yol açıyor düzgün çalışması için bende araya assembly komutları serpiştiriyorum :) Alıntı: >Bu konudaki dokumanlara nereden ulastin acaba? Türkçe doküman bulmak gerçekten zor İngilizce var ama onlardan da benim pek bir şey anladığım söylenemez. Kendim deneyerek bulmayı tercih ediyorum ve şu anda gayet iyi gidiyorum çok şükür. Mesela ret komutunu internette saatlerce aradım başkalarına sordum ama bir türlü cevabını bulamadım haliyle kendim deney yapıp bulmam gerekti. Bu yolla öğrenilen bilgi başka yerden öğrendiğiniz bilgiden daha değerli ve doğru oluyor diye de düşünüyorum. Alıntı: >D eksikliklerini tamamlarsa ya da tamamlamasa da sen bence rhodeus bitiminden sonra yani tamamen istedigin seviyeden sonra belki masaustu de denersin Aslında istiyorum ama script dili yazmaya benzemez compiler yazmak ama belki de script ile bir dikkat çekip bir geliştirici ekibi kurulmasına vesile olabilirim bu sayede ciddi bir compiler yazılabilir. Yerli işletim sistemimiz Pardus gibi (ama onun fiyaskoları olmayacak inşallah :) ) programlama dili ortaya çıkartılabilir tabi bunu lanse etme şekli olarak tamamen Türkçe yerli, TÜRK MALI şeklinde aşırı milliyetçi bir yaklaşımla yapmamız da uygun kaçmayacaktır. Sonuçta bunu yabancılar da kullanabilir. Zekeriya -- |
July 12, 2013 Yeniden yapılandırma | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Artik isin D kismindan cok assembly ile calisiyorsun sanirim :) Rhodeus icin egitim videolari da cekersin belki ya da dokuman tamamen hazirlarsin :) Stack dedigin bu Yigin Hafiza olayi mi? Stack Memory yani Bu islemleri kullanilmayan gereksiz birikinti yapan alanlar icin mi yapiyorsun mesela islemi bittikten sonra orada hala isleme hazir bekliyormuscasina calisan devrede duran alanlar mi? Tivibu uygulamasinin bi guvenlik onlemi var. Video stream kopyalanmasini engelliyor. Yani istedigin kadar cek bos dosya geliyor. Onu deniyorum. Java'nin codec uygulamalari var. Ya aslindan java ile sifirdan codec yazmak da gerekebilir ama nasi desem uygulama alani egitim seti sirf o set icin de cok ugrasmis olacagim. Neden PHP'den iyi olmasin ki? :) Simdi bugun bi test yaptim startTime ve finishedTime adinda long degerleri iceren islemlerin bitisine kadar sayim yapan bi test yaptim Java ile 542 MS surdu :) orada bir olay var
Garbage Collection islemi uyguladim bak islemin her satiri icin.. Programi kapatmadan ayni islemi 5-6 kere tekrarlayinca Thread kullanmam ragmen bu sayi 2.312 MS kadar artti. D dili ile henuz bu tip bi performans testi yapacak bilgim yok ama hizli olduguna eminim :) Sebebi ise pointer kavraminin olmasi. D dilinde Pointer ya da dershanedeki adi ile Gostergeler bunlarin yanlis kullanilmasi da Memory Leak dedigimiz yani Bellek Sizintisi olayina yol aciyor. Tabii bu daima senin yazilimindan olusuyor denemez. Ama dikkatli kullanmak gerekir yoksa onca bellek kullandigin gibi kalir. Swap alanina da fazladan yuklenirse cokme islemi olusuyor. Native olarak C++ ile yazilim gelistirilebiliyor Android'e kendim yazdim. Cok iyi olmasa da denedim. D ile de native bi ortam olusturulursa neden olmasin? Su linklerde gdc for android adinda kaynaklar var http://forum.dlang.org/thread/20120204203109.26c9a80b@jpf-laptop?page=1 https://bitbucket.org/goshawk/gdc/wiki/GDC%20on%20Android Dosyalar => https://github.com/jpf91/gdc-android-scripts Belki de genc alasilmanin sebebi cok yogunlasmaktir :) ASM dokumanlari derken mesela ASM kullanman gerektigine inandigim dokumanlar diyeyim :) Cogu kisi hic bu islere girismiyor cunku :) Milliyetci olmamak konusunda hemfikirim :) Dusunsene Turkce, Turk mali diye tanitip if, else bloklarini koyunca adam diyecek ki e neden onlar ingilizce? Pardus tam bi fiyasko idi ama o kadar emek vardi o proje sonlandirilmisti ya da oyle isteniyordu sanirim. Cok uzulmustum. Alintisiz yazdim affina siginarak :) karisiyordu obur turlu :) -- |
July 14, 2013 Yeniden yapılandırma | ||||
---|---|---|---|---|
| ||||
Posted in reply to agora | Alıntı: >Rhodeus icin egitim videolari da cekersin belki ya da dokuman tamamen hazirlarsin :) Fırsat olacağını sanmıyorum :) Geliştirme aşaması çok daha zevkli böyle hatayı bulana kadar kafayı yiyorsunuz falan mesela 2 gündür bir hata üzerinde çalışıyordum hata hiç tahmin etmediğim bir şey çıktı :) ÇÖP TOPLAYICILAR :) Alıntı: >Bu islemleri kullanilmayan gereksiz birikinti yapan alanlar icin mi yapiyorsun mesela islemi bittikten sonra orada hala isleme hazir bekliyormuscasina calisan devrede duran alanlar mi? Şöyle ki x adında fonksiyon çağırdığınız parametreler push ile gönderiliyor sonrada fonksiyon tarafından erişiliyor ve işlem bitiminde de ret 4 gibi bir komutla fonksiyondan çıkılıyor işte bu parametrelerin gittiği yer stack oluyor. Alıntı: >Tivibu uygulamasinin bi guvenlik onlemi var. Video stream kopyalanmasini engelliyor. Yani istedigin kadar cek bos dosya geliyor. Onu deniyorum. Java'nin codec uygulamalari var. Ya aslindan java ile sifirdan codec yazmak da gerekebilir ama nasi desem uygulama alani egitim seti sirf o set icin de cok ugrasmis olacagim. Hazır codecleri de editleyip şifreleme algoritmasına eklemeler yapabilirsiniz :) Alıntı: >ASM dokumanlari derken mesela ASM kullanman gerektigine inandigim dokumanlar diyeyim :) Cogu kisi hic bu islere girismiyor cunku :) Bir arkadaşın asm yi baya övmesinden dolayı giriştim :) Android işi bencede olur ama henüz daha vakit var gibime geliyor. Zekeriya -- |