Django Rest Framework, Testing ImageField

I start developing a web API with Django rest framework lately. So It was a little bit challenging for me to write the test for ImageField because I am not so familiar with Django environment.

So I just publish how I got over the problem. Maybe it helps someone out there.

In my case, It was a simple category app with photo field. All we need to do is populate the field with an image file but the trick is that the request format must be ‘multipart‘.

 

Slim framework 3 and Jquery File Upload

This week, I tried php slim framework 3 and also implemented the Jquery File Upload plugin. Project contains only one controller which is named as “UploadController” under the namespace of “Imagely”.

In order to try the project, you can easily clone the repository, Install the dependencies via composer and start using the project.

It has also a simple Eloquent model. If you set up a database you can also store some information about the images that you upload.

For the front-end you will see a simple bootstrap template.

You can find the repo at link below. I hope this helps some people out there.

https://github.com/unicod3/slim3-jqueryFileUpload

Alıntı

Her okuduğumda farklı anlamlar çıkarttığım bir kitap olan Küçük Prens kitabından ufak bir pasaj;

“Ancak evcilleştirdiğin şeyleri tanıyabilirsin” dedi Tilki.
“İnsanlar artık hiçbir şeyi tanımaya vakit ayırmıyorlar. Hazır şeyleri satın alıyorlar tacirlerden. Dost satan tacir olmadığı için, insanların da hiç dostu olmuyor. Sen dost olmak istiyorsan, evcilleştir beni!”

“Ne yapmalıyım?” diye sordu Küçük Prens.

 “Çok sabırlı olmalısın” diye yanıt verdi Tilki. “Önce benden biraz uzakta, şöyle, otların üstüne oturacaksın. Ben sana göz ucuyla bakacağım, sen hiç ağzını açmayacaksın. Çünkü dil yanlış anlamaların asıl nedenidir. Ama hergün bana biraz daha yakın bir yere oturacaksın.”
Ertesi gün Küçük Prens yine geldi.

 “Aynı saatte gelseydin daha iyi olurdu” dedi Tilki. “Mesela, öğleden sonra saat dörtte geleceksen, ben saat üçte mutlu olmaya başlarım. Vakit ilerledikçe, ben de kendimi o ölçüde mutlu hissederim. Saat dört oldu mu da kıpırdanmaya, kaygılanmaya başlarım şimdiden; mutluluğun değerini anlamışımdır. Oysa sen herhangi bir saatte gelirsen, yüreğimi gelişin için hazırlayamam.”

Küçük Prens ~ Antoine de Saint-Exupéry

C# Web API 2 and AngularJS

angularIt has been almost a year that I have not posted anything to the blog so thanks to those life coach blog articles about “how to overcome laziness”! I have read bunch of them and then decided to write this out finally.

Anyway lets talk about web api 2, first of all this project was a weekend project and It is a very good example in order to learn web api 2 and basics of angular.

What does that project do? Basically I tried to create a micro accounting app has an stock support where the app user can perform Create/Read/Update/Delete (CRUD) operations for suppliers, products and link products to suppliers. After suppliers and products are created, app user can perform CRUD operations for purchase orders and link it with the suppliers but on the other hand there are customers which the app user can create sales orders  for them. So stock will be the difference of those purchase and sales orders for the products.

On the back-end since it is a .net MVC project;
My models are

  • Supplier
  • Product
  • PurchaseOrder
  • PurchaseOrderLine
  • User
  • SalesOrder
  • SalesOrderLine

I think the name of models are very clear. After creating the models I also tried to implement Repository Pattern for this project so I will not need to deal with different database types. There is good explanation at MSDN about the repository pattern :

” For example, if a client calls a catalog repository to retrieve some product data, it only needs to use the catalog repository interface. For example, the client does not need to know if the product information is retrieved with SQL queries to a database or Collaborative Application Markup Language (CAML) queries to a SharePoint list. Isolating these types of dependencies provides flexibility to evolve implementations. “

I did not want to engage with database in this project so I used List data type for seeding some test data into my project. You can see them in the TestDataHelper.cs file.

For the Repository pattern first of all I have created an interface that describes what my SupplierRepository class will do:

And then I implemented that Repository interface in the actual SupplierRepository class. As you will see below I load the table content in the constructor and do all the dirty stuff here for the data layer.

After doing so it comes to the controller. Under the controller folder there is only HomeController which extends the actual Controller class because I used that homecontroller for only calling appropriate view in the front-end but of course that could have done with a better way with separating each controller on its own.

The other controllers are only extends the APIController which lets us handle HTTP calls and create the logic. On the controller layer we have nothing left to do with domain model layer. It is time to create our app’s logic. Controllers initialize a SupplierRepository instance as a private variable in order to has the abilities of its repository class.

Well I think it is enough for the back-end lets talk about how things go on the front-end.

I used Bootstrap for the designing the interface and AngularJs 1.5.5 for performing CRUD operations on the API. It is easy to install these packages with nuGet. You can install them with

As I mentioned above in the HomeController I send all the actions to related view. So you can see my View files under the ~/Views/Home directory.  On the index you will see some buttons with the api’s endpoints you can reach the raw json data from here. I did not setup any authentication method because this is test project but you can reach a good tutorial of securing the web api from here you can also find a lot of tutorial on the google about securing the web api.

So lets continue with the angularJS you can see my angularJS controllers under ~/scripts/app folder. I have created the module, controller and the factory to use http service in angular. As you can see below we must initialize the Angular on the page with ng-app and then we need to specify our angular controller in the ng-controller attribute and then we can use angular freely in that code blocks.

AngularJS is very easy to write and understand. Its modular structure makes you write good code. Let’s see some example for the suppliers page controller for example.

On the controller side $scope represents our view’s attached page. We can add functions into scope to use for the actions. On the factory layer we isolated the api call’s from the logic. It uses the $http service of AngularJS in order to making calls to api back-end. You can find detailed AngularJS service here.

Screen shot of web api front-end

Screen shot of web api front-end

If you want to check out the code and run the application then you can find the code here on github. Feel free to contribute.
https://github.com/unicod3/WebApiExcercise

I also deployed the project on the free tier of azure server. I do not know how long it will last but the link to reach the project is below :
http://webapiexcercise.azurewebsites.net/

 

 

Android ile yönetilen Arduino; oyuncak araba

IMAG3595Elektronikte tabiri caizse artık popi bir kart olan arduino ile ilk çalışmamız gayet başarılı ve verimli geçti.
Android kullanarak geliştirdiğimiz bluetooth ile yönetilebilen araba, elektronik ve yazılımı birleştirdiğimiz basit ama güzel bir proje oldu. Ayrıca ekip olarak bir şeyler çıkartmak da bir o kadar zevkliydi.

IMAG3600Malzemeler sağdaki resimde görülebilir. İlk olarak bir adet motorlu oyuncak araba, diğerleri ise arduino uno R3, Arduino Bluetooth shield, Motor Shield, güç için 9v pil, arduino yu programlayabilmek için bir ara kablo, ihtiyaç durumda kabloları lehimleyebilmek için bir lehim makinesi, iki tane far için led.

Bu elemanların arasındaki elektronik bağlantıları şematik yolla çizmek yerine daha görsel bir şekilde çizmeyi tercih ettik, aşağıdaki resimde bağlantıları görebilirsiniz.

IMAG3612 Genel olarak projemizdeki arabanın bluetooth ile çalışmasının mantığı şu şekildedir; Android kısmında yazdığmız uygulama arduino ya bluetooth ile char türünde veri gönderir. Arduino ise bu veriyi bluetooth shield aracılığı ile karşılayarak gelen veriye göre işlem yapar.

Projenin android ve arduino kısmı için yazmış olduğum tüm kodlara buradan[BtManagerCar] erişebilirsiniz.

Yararlandığım kaynaklar;

Android in bluetooth kütüphanesinin kullanımı için kendi sitesinde bulunan açıklama gayet iyi;
http://developer.android.com/guide/topics/connectivity/bluetooth.html

Arduino motor shield için ise yine kendi sitesinde paylaşılan dökümantasyon ve örnek kod baya yararlı ;
http://www.arduino.cc/en/Main/ArduinoMotorShieldR3

Aşağıda da arabaya ait bir videoyu bulabilirsiniz.

Android; QRcode and barcode reader with zxing

Barcode ReaderIf you did any research on reading barcode and QRcode with Android then you must have seen zxing library which is opensource. The library does not simply read barcodes but also covers a lot of things, like which camera or layout we will use for capturing.

So I made a simple android application using zxing, my application is a  barcode reader, It just reads the barcode or QRcode and writes the data to the screen.

As you can see,  after creating an instance from IntentIntegrator. We just need to call initiateScan method and then boom, scaning starts!

After reading a barcode we can parse the result at “onActivityResult” like this

And you can find my android application’s codes here.

Ettom Genç Girişimciler Fikir Kampı 2015 Eskişehir

Ettom’un bu sene 3. sünü düzenlediği Girişimcilik ve fikir kampındaydım. 13 Mart Cuma günü başlayan kamp 15 Mart Pazar günü sona erdi. Kamp gerçekten ismi gibi bir kamp alanında tam da konseptine uygun yapıldı. 3 gün süren kamp gerçekten yorucu fakat bir o kadar da eğlenceliydi. Etkinlik alanımızı aşağıdaki resimlerde görebilirsiniz.

Etkinlik alanımızdan

Etkinlik alanımızdan

Etkinlik alanımızdan

Etkinlik alanımızdan

1.13 Mart Cuma günü yani ilk gün fikir kampının düzenlendiği yere otobüsle geçtik, protokol ve açılış konuşmasından sonra Levent hocanın aşırı bilimsel 😀 yöntemleri ile 8 takıma ayrıldık.

Takımlar belirlenirken

Levent Hocamız Takımları belirlerken

Takımlar seçilirken ilk önce kendini, teknocu, tasarımcı ve iş adamı olarak görenler olarak gruplara ayrıldık ben teknocu grubundaydım ve sayımız çok azdı. Sonraki adım olarak her üç gruptan kişiler seçilip 6 kişilik takımlar kuruldu. Kurulan takımların bence en güzel özelliği birbirlerini tanımıyor olmalarıydı böylece fikir ve projeyi geliştirirken kimsenin kimseye bir ön yargısı olmadı. Her takımda birer de yol gösterici (mentor kelimesine de hiç alışamadım) vardı.

Etkinlikte üzerine iş modeli geliştirmemiz istenen 2 farklı sorun vardı.
Bunlar;

1. Engellilerin toplumsal hayata katılımı
2. Genç dostu kentlerin oluşturulması

Bu 2 sorundan birincisi 4 gruba, ikincisi de kalan 4 gruba verildi. Bizim takımın uğraşacağı sorun ise 2. sorun yani Eskişehir’i genç dostu bir şehir haline getirmek olarak belirlenmişti.

İlk iş olarak takımların tanışması istenildi fakat öyle yayıla yayıla hayat hikayeni anlatmak yok, her şey nizami ve kısa sürede.. Velhasıl-ı kelam takım üyelerinin her birinin hayat hikayesini 1 dakikada masadaki diğer takım üyelerine anlatılması istenildi. Tabi bu kısa tanışma merasiminden sonra da giriştiğimiz hiçbir iş zamansız ve plansız olmadı.

Levent hoca ve bilgilendirilme..

fikirler, fikirler, fikirler

Levent hocanın işlenecek adım ile ilgili bilgilendirmesinden sonra zamanla yarış başlıyordu. Bence en heyecanlı kısımlar da bunlardı.

Saniyeler ve dakikalar ile verilen bu kısa sürelerde(zaman görecelidir tabi) sorunu anlama ve sorun üzerine fikir yürütme adımları ile sorunumuzu net bir şekilde tanımaya başladık. Daha sonra sorunumuz hakkındaki bilinen bilinmeyen tüm noktaları yazarak ortaya koymaya başladık, resmen fikirler havada uçuşuyordu.

Takım olarak fikir yürütme qeyf

Takım olarak fikir yürütme qeyf :p

Takım arkadaşlarım, (İrem, Kübra, Berkay, Tuğba ve Firdevs) ve yol göstericimiz(Burak)  ile birlikte beyin fırtınası yapmaya ve sağda gördüğünüz gibi fikirleri yapıştırmaya başladık. Tabi bir de her takımın kardeş takımı vardı. Bize gelmeyen, diğer sorunu ele alan yanımızdaki masa ise bizim kardeş takımımız olmuştu.

Gerçek bir firma kurarken nasıl kullanıcı kitlesinden müşteri ilişkilerine kadar her şeyi detaylı bir şekilde düşünmek gerekiyor ise kampta yaptığımız şey de tam olarak buydu. Sorunu çözecek bir iş modeli geliştirmek ki ilk günün sonunda artık her takımın aklında nasıl bir iş modeli geliştireceği şekillenmişti.

2. Gün

14 Mart Cumartesi günü ise daha eğlenceli geçti çünkü bir önceki gün yalnızca sorunu ortaya koymak için çalışmıştık. Fakat bugun artık ortaya konan sorunlara çözüm arayacaktık. Çözüm ararken klasik şekilde ben bu sorunu nasıl çözerim şeklinde fikir yürütmek yerine, ben ne yaparsam bu sorun daha karmaşık hale gelir şeklinde ters fikir yürütme yöntemleri de uyguladık ve çözüm için yine sorunları belirlerken olduğu gibi fikirler havada uçuşuyordu. Tabi ki bugün de her adımı, zamanla yarışarak yapıyorduk.

Kardeş takımımız sunum yaparken

Kardeş takımımız sunum yaparken

Ürettiğimiz fikir ve çözümleri kardeş takıma sunmak da adımlardan birisiydi ve söylemek gerekirse, insan üzerine düşündüğü ve tasarladığı bir şeyi en iyi başkalarına anlatırken anlayabiliyor, eksiklerini ve açıklarını görebiliyor. Bizim kardeş takımımız geri dönüş konusunda acaip iyiydi, tam olmaz deyip karışıklığa düştüğümüz zaman bize çıkar yol gösteren ve bizi olumsuz düşüncelerden alan koca bir ekip, buradan da kendilerine başta ibrahim 😀 olmak üzere teşekkür ediyorum.

En yoğun geçen gün ikinci gündü çünkü artık tamamen olaya kanalize olmuştuk ve çözüm önerileri havada uçuşuyordu. Yalnızca 8 masa vardı ama binlerce fikir üretilmişti. E tabi fikir olur da ego eksik kalır mı hiç? Fikirler çoğaldıkça masalardaki sesler de yükselmeye başlamıştı. Her masada yükselen sesler aslında ego savaşlarının da sinyalleriydi. “Egosu çok olan kazansın!” bu mottoyu benimseyen gruplar birbirlerine düşmekten öteye gidemediler. Bizim takım bu konuda şanslıydı, çünkü her nekadar fikirlerimizi sağlam bir şekilde savunsak da yeri gelince egomuzu bırakıp “evet ben bir hata yaptım!” demesini bildik. 🙂

Fikir Selfie

Fikir Selfie

Masalardaki yemeklerle selfie yapılır da fikirlerle yapılmaz mı? Pek tabii fikir selfiemizi de sağ tarafta görebilirsiniz. Aslında ikinci gün en yorucu gündü diyebilirim. Çünkü akşam olup da etkinlikten çıkınca dahi gruplar kafeleri mesken tutup çalışmalarına devam ettiler. Biz de takım olarak bir kaç fire ile de olsa çalışmalara bir kafe de devam ettik.

Bulduğumuz çözüm aslında güzel olmasına rağmen gelir yapısı açısından eksik yönleri vardı ve kar amacı gütmekten çok sosyal sorumluluk projesine dönmek üzereydi. Üstüne bir kaç firma yetkilisi ile görüşüp, işkur ve kosgeb in neler yaptığını da araştırınca bizim proje suya düştü. O gün akşam evlere dağıldığımızda akıllarımızda yeni bir çözüm yoktu ama çözümümüzün suya düştüğü gün gibi ortaya çıkmıştı, başka şeyler yapmalıydık hem de çok hızlı yapmalıydık çünkü elimizde  yalnızca sunumlarımızı yapacağımız son gün kalmıştı…

3.Gün

15 Mart Pazar günü, pazar günü dediğime bakmayın tüm ekipler gece geç saatlere kadar çalışmış ve sabah 9 da otobüsde yerlerini almıştı. Artık son günün verdiği heyecan ve stress iyice hissediliyordu. Fakat bizim ekibin küçük bir sorunu vardı ki sunum yapacak bir iş modelimiz hala yoktu.

Levent hocamız herzamanki gibi enerji dolu bir şekilde iyi bir sunum nasıl yapılır ve akşam yapacağımız sunumun konsepti hakkında bizi bilgilendirdi. Saat 12 olduğunda sunumlar için geri sayım başlamıştı. Akşam 4 e kadar herkesin sunumunu vermesi istenilmişti. Ve biz hala ne yapacağımıza karar verememiştik. Üstüne üstlük sunum yapmamız için yalnızca 180 saniye verilecekti.

Aslında her şey bir önceki akşam etkinlikten sonraki toplantıda Berkay’ın verdiği fikirden çıkmıştı. O fikir bizim ekip için kapkaranlık bir odadaki kıvılcım gibi parladı ve umut ışığı oldu. Bu fikir üzerine kafa yormaya, ilk iki gün yaptığımız iş modeli kağıtlarına en baştan uygulamaya başladık ve iş planımız tüm adımlara çok iyi uydu. Bir yandan da sunum hazırlamak zorundaydık. Güzel bir giriş sayfası ve ardından da 8 sayfa gelecek şekilde bir sunum hazırladık. E tabi sunum yetmez, ekipler kurdukları iş modeli ile ilgili, oyuncak hamur ve çeşitli kırtasiye malzemeleri kullanarak maketler de yaptı.

Kardeş takım sunumu için maket hazırlıyor

Kardeş takım, sunumu için maket hazırlıyor

Ekibimizden Firdevs sunum için maket hazırlıyor

Ekibimizden Firdevs sunum için maket hazırlıyor

Bizim ekip sunumunu tamamlayıp da verdiğinde geriye sunum provası yapmak için çok az
bir vaktimiz kalmıştı. 180 saniye de jüriye tüm derdimizi anlatmış olmak zorundaydık. Sunum için yalnızca 3 prova yapabildik ve yalnızca birinde 180 saniyeyi tutturabilmiştik. Sunumun girişini Kübra, iş modelimiz hakkındaki kanun ve tasarıları Berkay, geriye kalan 4 sayfalık ana hatlar ve işin mali yapısını da ben sunup kapanışı yapacaktım.

Ekip olarak  iş modelimizi son gün bulup, sunumu son dakikalarda vermiş olsak, hatta prova yapamamış dahi olsak bu kez herkesin içine sinmişti. Bir önceki güne nazaran gerçekten herkes inanmaya başlamıştı.

Sunum sırası için kura çekilmişti ve bizim takım 7. sıradaydı. Bu yönden şanslıydık çünkü bizimle aynı sorunu alan diğer tüm takımlar bizden önce anlatmış olacaktı.

Jüri salona geldiğinde ise herkesin gözünden heyecanı okuyabilirdiniz. 3 gün boyunca emek verip ürettiğimiz iş modellerini bugün sunacaktık işte. Sunumu yapacak kişilerden biri olmanın etkisiyle haliyle bende de bir hayli heyecan vardı.

Takımlar çıkmaya başladı, sahne kullanımı ve hareketler konusunda ekip olarak güzel notlar aldık , tabi ben arada tuvalete gidip ufak bir prova yapmayı da unutmadım. Sıra bize geldiğinde aslında çok umutluyduk çünkü bizden önce çıkan takımlar arasında çok parlak bir iş modeli gelmedi. Tabiri caizse tek rakibimiz kendimizdik o an (yazar burada gaza geldi 😀 ).

180 saniye başlamıştı.. Konuşurken Levent hocanın IPHONE6 sının ekranından geri sayımı görebiliyorduk.

2015031512250220150315122500

Kübra güzel bir giriş yaptıktan sonra websitesini tanıttı ve sözü Berkay’a bıraktı. 1 ve 2. sayfa slaytlar bitmişti.

Berkay 3. slayta başladı ve konu ile ilgili kanun ve yasa tasarısından bahsetti, 5. slaytı da bitirip sözü bana bıraktı.

6. slaytı anlatmaya başladığımda geriye sadece 75 saniyemiz kalmıştı. İş modelinin uygulanabilirliği ve piyasadaki ihtiyacı açıklamaya başladım. Onları halledince 7 ve 8. slaytta yer alan mali yapıyı hızlıca geçip, son slayta geldim. En heyecanlı yeri burasıydı ve son slaytı da bitirip teşekkür ettiğimde sadece 2 saniyemiz kalmıştı.

İşte olmuştu zamanında bitirebilmiştik sunumumuzu, ayrıca jürinin sorduğu sorulara verdiğimiz cevaplar ve jüriden aldığımız yorumlar da iç açıcıydı. Heyecanla sonucu beklemeye başladık. 3 gün boyunca uğraşıp kafaya takıp ürettiğimiz fikirlerimiz değerlendirilmeye başlanmıştı.

Sonuç açıklanırken belki de en umutlu takım bizim takımdı. Çünkü ürettiğimiz fikir istenileni gayet yerine getiriyordu ayrıca sunumumuzu da başarılı bir şekilde yapabilmiştik.

Ve beklenen an.. Sonuç açıklandı.. 1. olan takım bizim takımdı. Kısa sürede çok iş yapmıştık resmen gerek sunumumuz, gerek yaptığımız maketlerle juriyi kapmıştık ve liderliği de göğüsledik. Böylece aslında takım olarak Einstein’ın “Bana bir problem ve 1 saat süre verilse bu sürenin 45 dakikasını problemi anlamaya, 10 dakikasını çözüm yolları üretmeye, 5 dakikasını çözmeye ayırırım.” sözünü de tekrar doğrulamış olduk.

20150315122913

1. olmak da yakışmış bize

Neyse işin hikaye kısmı bir yana bu etkinlik gerçekten çok şey kattı bana eminim etkinliğe katılan herkes aynı şekilde düşünüyordur. Zamanı yönetmenin ve disiplinin ne demek olduğunu Levent hoca çok güzel öğretiyor. Ayrıca insan bir araya gelirse 3 gün gibi kısacık bir vakitte neler yapabileceğini görmüş oluyor.

Check Domain

Python Domain Name Checker

I was really tired about checking whois websites to learn about a domain’s whois information. So I found a nice python library which is Python-Whois and it is under “Do What The Fuck You Want To Public License” then I decided to put an end to this misery for myself and created a GUI by using python-whois and pygtk libraries so that I can use it any time easily without open a browser from my desktop.

Well I must admit that my application’s appearance does not look well 😀 but I think it does the job. You can see the screenshots below.

Screenshot-Check Domain-1 Check Domain

Click here to go to my github account for the application, but it is still as py file so feel free to contribute. By the way I wrote that application with version 2.7 of python.

Happy coding…

 

 

İletişim üzerine bir şeyler…

printMakro evrenden,  mikro evrene tüm problemler ve bu problemlerin çözümü aslında temel olarak bir iletişim ve haberleşme problemidir. Bir evren düşünün ki sürekli bir biri ile iletişim halinde, gezegenler güneş ile bir oran ve şekle göre iletişim halinde, hayvanlar birbirleri ile koku, ses veya daha kompleks olan düşünce yolu ile, hücreler biyolojik ve kimyasal yollar ile iletişir ve haberleşirler. Hatta dinlere baktığımızda tanrılar dahi yarattıkları kulları ile haberleşmek için bir aracı kullanırlar. Ben bu yazıda daha çok çalakalem iletişimin insanlar arasındaki boyutu ile ilgilenmeye çalışacağım.

İletişimin, insanlar arasında ilkel anlamda her zaman var olduğu bilinse de alfabetik olarak birşeylerin ortaya çıkmasının M.Ö 3000 li yıllara dayandığı bilinmektedir. Gördüğümüz üzere insanlar iletişimi bir yere kadar ilkel(şuana kıyas ile) anlamda götürdükten sonra daha kolay bir hale getirmek için harfleri veya şekilleri kullanmayı tercih etmişlerdir. Milattan sonra insanlara yalnızca yazı yazmak yetmemeye başladı, zaman geçtikçe yazılan bu yazılar kağıtlar üzerine yazılmaya başlandı. Ayrıca yazılan metinlerin başka insanlar tarafından okunmasının zorluğu ortaya çıktı. Bunun üzerine bu problemin çözümü olarak posta servisleri kurulmaya ve yazılan yazıtların uzak diyarlardaki insanlara aktarılmasına başlandı.

OLYMPUS DIGITAL CAMERAKitapların el yazımı olması yalnızca sınırlı sayıda üretilmesini neredeyse zorunlu kılıyordu. Bu yüzden insanlar bu sorunu aşabilmek adına mekanik anlamda matbaayı icat etti. İnsanlar arasındaki iletişim giderek hızlanıyordu. Kitaplar daha hızlı basılmaya başlandı. Daha sonra daktilo ve fotokopi makineleri ile iletişim daha fazla sürat kazandı. Fakat buraya kadar olan gelişmeler her nekadar tüm dünyayı etkilese de tabi ki her yerde aynı hızda bir gelişme olmadı. Her toplum farklı hızlarda gelişti ve farklı hızlarda yeniliklere ayak uydurdu veya uyduramadı, ta ki elektrik ve bunun sonucu olarak elektronik insanlık tarafından farkedilinceye kadar.

M.S 1700 lü yıllardan başlayarak insanlar elektirik ile iletişim fikri üzerine çalışmalara başladı. 1800 lü yıllarda ise telgraf ile birlikte somut bir başarı elde edildi. 1800 lü yıllar ve sonrası iletişim adına muhteşem gelişmeleri ortaya çıkartmıştır. Toplum kitlelerine hitap edilebilen radyo başta olmak üzere televizyon da 1900 lü yıllarda kullanılabilir bir şekilde hayata geçirilmiştir. İnsanların iletişim anlayışı bu yönde hızla evrilirken, yenilikler de hız kesmeden devam etmiştir.

The Complex Number Calculator (CNC)1930 lu yıllardan başlayarak iletişim adına çok daha farklı gelişmeler yaşanmaya başladı. İlk bilgisayarların ve 1960 da internetin icadı ile iletişim çok farklı bir boyut kazandı. Uzaktaki insanların artık birbirleri ile haberleşirken haftalar veya aylarca beklemesine gerek kalmadı. Daha sonralardan insanların internet üzerinde topluluklar oluşturabildiği platformlar geliştirildi ve ‘sosyal ağlar’ kurulmaya başlandı. Artık insanlar daha hızlı bir şekilde haberleşip bir çok sorunu yerinden kalkmadan halledebilmeye başladılar.

Sosyal Ağ kavramı yeni bir kavram gibi görünse de aslında yukarıda bahsetmiş olduğum tüm süreçler sosyal ağ kavramının bir parçası olarak görülebilir. Çünkü bakıldığında insanların tarih boyunca sürekli bir iletişim ağı kurma çabasında olduklarını görebiliyoruz. 21. yy ise bu anlamda devrim niteliğini taşımaktadır diye düşünüyorum. Artık taşınabilir bir bilgisayar da diyebileceğimiz akıllı telefonların ve anlık mesaj uygulamalarının yaygınlaşmasıyla iletişim belki de 20 yıl öncesinde bir çok insanın hayal dahi edemeyeceği bir boyuta büründü. Yapay zeka çalışmalarının hızla devam ettiğini düşünürsek, insanlar çok da uzak olmayan bir gelecekte iletişim ihtiyacını karşılamak için belki de hattın karşı ucunda canlı bir insan dahi olmasına gerek duymayacak.

Sosyal Ağ kavramı üzerine google da bir şeyler bakarken TIME’da yayınlanmış  güzel bir video buldum.