Yazar arşivleri: Uğur Ethem AYDIN

FreeBsd Make Error

Here are the commands I had to run to get things working on my FreeBSD 9.0 box that was still using old pkg_ tools.

 

 

# portsclean -C
Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

Unknown modifier 't'

"/usr/ports/Mk/bsd.sites.mk", line 958: Malformed conditional (!empty(_PERL_CPAN_ID) && ${_PERL_CPAN_FLAG:tl} == "cpan")
Unknown modifier 't'

"Mk/bsd.port.mk", line 2929: Unclosed conditional/for loop
"Mk/bsd.port.mk", line 2929: Unexpected end of file in for loop.

"Mk/bsd.port.mk", line 6711: Unclosed conditional/for loop
"Mk/bsd.port.mk", line 6711: Unexpected end of file in for loop.

1 open conditional:
         at line 1179 (evaluated to true)
make: fatal errors encountered -- cannot continue
/usr/local/lib/ruby/site_ruby/1.9/pkgtools/portsdb.rb:237:in `join': can't convert nil into String (TypeError)
        from /usr/local/lib/ruby/site_ruby/1.9/pkgtools/portsdb.rb:237:in `index_file'
        from /usr/local/lib/ruby/site_ruby/1.9/pkgtools/portsdb.rb:247:in `db_dir='
        from /usr/local/lib/ruby/site_ruby/1.9/pkgtools/portsdb.rb:167:in `setup'
        from /usr/local/lib/ruby/site_ruby/1.9/pkgtools/pkgtools.rb:242:in `init_pkgtools_global'
        from /usr/local/sbin/portsclean:134:in `block in main'
        from /usr/local/lib/ruby/1.9/optparse.rb:882:in `initialize'
        from /usr/local/sbin/portsclean:70:in `new'
        from /usr/local/sbin/portsclean:70:in `main'
        from /usr/local/sbin/portsclean:727:in `<main>'
Solution Code:
pkg_add -r http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-9.0-release/devel/bmake-20111111.tbz
cp /usr/bin/make /usr/bin/make.old
rm /usr/bin/make
ln -sv /usr/local/bin/bmake /usr/bin/make
cd /usr/ports/ports-mgmt/pkg
make -m /usr/share/mk UPGRADEPKG=1 install clean
pkg2ng

To use ports after this, I have to run make -m /usr/share/mk instead of make.

Yazılım Geliştirme ve Tasarımda Bilinen Yanlışlar: “Anti-Pattern”

Hepimizin bildiği gibi yazılım geliştirme çok kompleks ve kaotik bir süreçtir. Niyetlendiğimiz işe başladıkdan sonra bile çok sıkça niyet değiştirebiliriz. İsteklerimiz değişebilir, müşteri fikir değiştirebilir ve her şeyi sil baştan yapabiliriz. Zira işe başladıktan sonra kaybedilecek şey sadece zamandır ve zaman da göreceli olarak değersiz görülür. Oysa bir inşaat işine başladığınızda plan dışına çok nadir çıkarsınız, çünkü planı değiştirmek istediğinizde o ana kadar kullandığınız inşaat malzemesini çöpe atmak istemezsiniz o malzemenin ölçülebilir maddi değeri vardır. Ancak müşteri, yazılımın geliştirme safhasında henüz bir şey görmediği için değişiklik isteklerini futursüzca yazılım ekibine iletebilir. Bizler de yazılım geliştiriciler olarak her şeyin bir yolunu bulabildiğimiz için bir şekilde müşteriye ayak uydurmak zorunda kalırız. Bu ayak uydurmalar zaman içinde yazılımımızın kod kalitesini, standardını ve tasarımını bozmakla beraber bir çok kod parçasının nerdeyse tekrar dokunulamaz hale gelmesine neden olmakta.

İşte bütün bu riskleri minimuma indirgemek için daha en başta bazı temel kurallara dikkat etmek ve herkesçe malum olan bazı kötü tasarım ve geliştirme yaklaşımlarından uzak durmak gerekir. Bu sayede geceleri daha rahat uyuyabilir, müşteri taleplerine daha serinkanlı cevap verebiliriz.

Bu yazıda yazılım geliştiriciler tarafından yapılmaması gereken ve sebebi ne olursa olsun (istisnalar hariç olmak üzere) uzak durulması gereken ve ismi konulmuş bir takım kavramlardan ve yöntemlerden bahsedeceğim. Kısacası konumuz : “anti-pattern”.

İşte size adını sıkça duyabileceğiniz yapılmaması gerekenler; Okumaya devam et

MacOS üzerinde kullandığım uygulamaların listesi

Çoğu zaman bir çok kişi tarafından ‘Hangi IDE ?’ yada ‘Video montajı için hangi yazılım kullanıyorsunuz?’ gibi birçok soru alıyorum. Her seferinde güzel güzel cevapladığımı fark ettiğim için buraya bir macOS uygulama rehberimi hazırlamaya karar verdim. Şu şekilde programlar ile haşır neşirim…

Okumaya devam et

MacOS sabit disk alanı yetmez ise neler yapılabilir.

iMovie, Final Cut gibi apple yazılımlarını sıkça kullanırım. Video prodüksiyon, video montaj  işleri yapmanız gerektiğinde en büyük sıkıntınız sabit diskinizde yer kalmaması konusu olmuştur.

Final Cut ve iMovie nasıl çalışır

Apple ekosisteminde iMovie ve Final Cut Pro gibi yazılımlar, video montaj işlemlerini yaparken bizlere bir preview (ön izleme) alanında video muzun o anki durumunu gösterirler.

Bu işlemi yapabilmek için hazırlanan videonun o zamana kadar olan tüm olaylarını render ederek cihazımızın içerisindeki sabit disk alanında saklarlar. Bu durum proje ile çalışırken işlemcimizin üzerinden  bir yük almak için yapılır.

Ancak bu durumda her yaptığımız işlem sonunda videonun neredeyse o zamana kadar olan değişiklikleri için yepyeni çıktılar üretilir. Buda ciddi bir yer işgali demektir. Bu FinalCut yada iMovie için sanıyorum çözümü pek kolay olmayan değiştiremediğimiz bir durum. Eğer bu uygulamalar ile çalışacaksanız ciddi bir sabit disk alanına ihtiyacınız olacaktır.

Peki yerimiz yoksa ne yapacağız.

Pek fazla yapılacak bir şey olmasada mac içerisinde bir gezintiye çıkarak önem sırasına göre bir çok klasörü silmemiz gerekebilir.

Benim hikayem

Elimdeki birçok fotoğrafı ve videoyu bir video altında derleyip toplayayım dedim. iMac ‘imde (2014 yılındaki cihazım) 240GB’lık bir SSD kullanmaktayım. Ortalama boş yerim 30-40 GB arasında değişir. Bir kaç gün video ile haşır neşir olduktan sonra yetersiz disk alanı hatası almaya başladım.

Okumaya devam et

Unix Tar Komutu

TAR Unix altında yedekleme için kullanılabilen bir araçtır. TAR arşivi oluşturulurken hedef olarak bir dosya ya da manyetik teyp cihazı kullanılabilir.

TAR arşiv dosyalarında dosyalara ilişkilendirilmiş çalışma şekilleri ve kullanıcı izinleri de muhafaza edilir.

Okumaya devam et

Install perl’s libwww

Install perl’s libwww

wget http://www.cpan.org/modules/by-module/LWP/libwww-perl-5.837.tar.gz

tar -zxvf libwww-perl-5.837.tar.gz

cd libwww-perl-5.837

perl Makefile.PL

make

make install

OR


perl -MCPAN -e 'install Bundle::LWP'

OR, on FreeBSD, install it from ports


# portmaster www/p5-libwww

Usage

Check from command line:

# ./check_squid.pl --url=http://www.facebook.com --proxy=proxy.neant.ro --proxyport 3128 --proxyuser=user --proxypass=pass --status=200

OK – Status: 200 OK

Nagios config, command definition:

# ‘check_squid’ – tries to access an URL through proxy

define command {

command_name check_squid

command_line $USER1$/check_squid.pl –proxy=$HOSTADDRESS$ –proxyport=$ARG1$ –proxyuser=$ARG2$ –proxypass=$ARG3$ –url=$ARG4$ –status=$ARG5$

}

Example service check definition:

define service {

service_description squid

use generic-service

host_name proxy

check_command check_squid!3128!squid!squid!http://www.facebook.com!200

contact_groups admins_sms

}

Yazılım geliştirirken yapılan yanlışlar: “Anti-Pattern”

Hepimizin bildiği gibi yazılım geliştirme çok kompleks ve kaotik bir süreçtir. Niyetlendiğimiz işe başladıkdan sonra bile çok sıkça niyet değiştirebiliriz. İsteklerimiz değişebilir, müşteri fikir değiştirebilir ve her şeyi sil baştan yapabiliriz. Zira işe başladıktan sonra kaybedilecek şey sadece zamandır ve zaman da göreceli olarak değersiz görülür. Oysa bir inşaat işine başladığınızda plan dışına çok nadir çıkarsınız, çünkü planı değiştirmek istediğinizde o ana kadar kullandığınız inşaat malzemesini çöpe atmak istemezsiniz o malzemenin ölçülebilir maddi değeri vardır. Ancak müşteri, yazılımın geliştirme safhasında henüz bir şey görmediği için değişiklik isteklerini futursüzca yazılım ekibine iletebilir. Bizler de yazılım geliştiriciler olarak her şeyin bir yolunu bulabildiğimiz için bir şekilde müşteriye ayak uydurmak zorunda kalırız. Bu ayak uydurmalar zaman içinde yazılımımızın kod kalitesini, standardını ve tasarımını bozmakla beraber bir çok kod parçasının nerdeyse tekrar dokunulamaz hale gelmesine neden olmakta.

Okumaya devam et