Shared posts

05 May 13:23

Miyazaki Filmlerinin GIF'li Afişleri

by Mert Serim
Miyazaki Filmlerinin GIF'li Afişleri

Yaşadığımız dünyada bazı zihinlerin içinde öylesine farklı dünyalar ve ilhamlar yer alıyor ki bir neslin dünyayı algılama şeklini değiştirebiliyor. Hayao Miyazaki'yi de kurguladığı dünyalar ve anlattığı hikayelerle bu ilham veren insanlar arasında kabul edebiliriz. Animasyon filmlerini hazırladığı Studio Ghibli ile yazdığı, yönettiği, yapımcılığını üstlendiği filmlerle Dünya'nın pek çok farklı noktasındaki ödül töreninde boy gösterdi.

Miyazaki, emekliliğe ayrılacağı konusunda pek çok kez açıklama yapıp üretmeye devam ettikçe bunun gerçek olmadığı düşünülmüştü. Ancak yönetmen 2013 yılında yayınladığı Wind Rises ile kariyerinde daha fazla adım atmama kararı aldı. Imgur kullanıcılarından podrickforking de yönetmenin hayatımıza kattığı bu güzel değerleri anmak için film afişlerini GIF haline dönüştürerek yeniden yaratmış. Bu naif övgüyle Studio Ghibli'nin hayatımıza kattıklarını tekrar hatırlayabiliyoruz.

Nausicaä of the Valley of the Wind (1986)


Castle in the Sky (1986)


My Neighbor Totoro (1988)


Kiki's Delivery Service (1989)


Porco Rosso (1992)


Princess Mononoke (1997)


Spirited Away (2001)


Howl's Moving Castle (2004)


Ponyo (2008)


The Wind Rises (2013)

Görsel, Imgur, podrickforking
Manşet görseli; Studio Ghibli



Mert Serim @mert_serim
29 Jan 06:57

Stanford’ın iOS8 için Swift uygulamaları geliştirme derslerini ücretsiz indirebilirsiniz

by Merve Kara
Stanford’ın iOS8 için Swift uygulamaları geliştirme derslerini ücretsiz indirebilirsiniz
Apple’ın yeni programlama dili Swift, geliştiriciler arasında oldukça popüler. Programlama dilini öğrenmek isteyenler içinse internette çok sayıda ücretsiz kaynak var. (Buradaki yazımıza göz atarak, bu kaynaklardan derlenen uzun bir liste görebilirsiniz.) Bu kaynaklara son eklenen bir diğer iyi kaynak, Stanford Üniversitesi’nin iOS8 için Swift uygulamaları geliştirme dersleri. Halihazırda Stanford’ın uygulama geliştirme dersleriyle aşinaysanız, dersler iTunes mağazasından ücretsiz olarak indirilip, […]
23 Jan 07:20

Review: Duet, the app that turns your iPad into a Lightning-connected Mac monitor

by Ben Lovejoy

duet

I’m a big-screen fan. It’s the reason my primary Mac is still a 17-inch MacBook Pro, and why I have that hooked up to a 27-inch Apple Thunderbolt Display when I’m in my home office. When travelling, though, I have fewer pixels to play with. Sure, I could get a 15-inch Retina MacBook Pro, but I favor physical screen space over smaller screen elements.

There are existing apps out there, like Air Display, that let you use an iPad as a second monitor for a Mac, but they work via WiFi, which poses two problems. First, they often don’t work on WiFi hotspots, which you’re likely to be using when away from home. Second, even when they do work, there is an annoying amount of lag.

Which is where Duet comes in. Instead of using WiFi, it feeds the video signal from your Mac to iPad using a standard Lightning or 30-pin cable. Built by ex-Apple engineers, I figured it ought to be work well, so put it to the test … 

Setup

Setup is very straightforward. Install the Duet iOS app on your iPad, then install the companion menu bar app on your Mac. You need to restart your Mac after installing the companion app, and then you’re done.

You can also run it on an iPhone. On an iPhone 6, it would be pointless, and I’m not convinced it would be that much more useful on an iPhone 6 Plus, but the option is there if you want it.

setup

Connecting your iPad

To use your iPad as a monitor, simply connect it to your Mac using a standard Lightning or 30-pin cable (I use an Amazon Basics one, mostly because it’s black …) and launch the Duet app on your iPad. Within 2-3 seconds, the Mac will automatically detect the iPad and start using it as a second monitor.

I found the first time I connected it, it set the iPad screen to be the main one, with the dock and menu bar over on the iPad. This looked rather funky, giving a sense of what an iPad running OS X would look like, but isn’t the most useful setup.

osx

Reversing that works the same as any other external monitor: just click the Arrangement tab and drag the menu bar back to the Mac display.

menu

In subsequent launches, Duet remembered this setting, so it was a simple, one-off task.

You can also use it as a third monitor alongside a conventional one if desired.

In use

I have two Macs: a heavily-upgraded late-2011 MacBook Pro 17, and a 2013 MacBook Air 11. Duet says that the app works only with 2013 Macs and later (running OS X 10.9 or later), and this is pretty much correct–but not the whole story.

With my MacBook Air, performance is silky smooth. It’s indistinguishable from a conventional external monitor, even when playing video. I was incredibly impressed, and think you will be too. Judge for yourself:

Updated: My usage on my MacBook Pro 17 was carried out with pre-release software, in which cursor-lag was horrible. But with the latest version installed, responsiveness is–while still compromised–is still perfectly usable.

Touchscreen OS X

One really nice, uh, touch with Duet is that you can choose to control the apps on the iPad monitor using your Mac touchpad/mouse, or the touchscreen display on the iPad–switching back-and-forth between the two methods as you like.

It’s really quite fun to explore what OS X would be like on a touchscreen device. Obviously it’s not designed as a touchscreen OS, so a lot of the user interface elements are rather small for a finger, but for things like weblinks, it makes for a convenient additional means of control.

issues

Issues

Generally when using an external monitor, it will be larger than your Mac display. In this case, it’s smaller, which means any large windows you drag across to the iPad will need resizing. It’s easier to make them small before you drag them and then resize them as desired once positioned on the iPad.

I found that if I let my Mac go to sleep, it wouldn’t always automatically reconnect to the iPad. Sometimes it did, sometimes it didn’t. When it didn’t, not even relaunching Duet on my iPad worked: I had to quit both iOS and Mac apps, disconnect the Lightning cable–then relaunch both apps and reconnect the cable. Conclusion: set your Mac not to sleep when using the app.

Things were fine at the iPad end: I could switch off the iPad when I didn’t need the second monitor, and it would reconnect to the Mac within a few seconds of switching it back on again. Same thing when disconnecting and reconnecting the cable. You can also use other iPad apps and just pick up where you left off when resuming Duet.

conclusions

Conclusions

I love it. Used on a recent Mac, it’s as good as a conventional monitor (albeit a small one). Those who use chat apps for work will find it especially useful, enabling you to keep an eye on the chat while still retaining full use of your Mac screen for your actual work.

Even on older, theoretically incompatible Macs it is still useful for some applications. Granted, there is extreme pain involved in getting the app window positioned on the iPad in the first place, which could literally take several minutes when using my MacBook Pro 17, but once it’s there, it works just fine for things like Hipchat. It claims to work fine on older iPads.

At $14.99, it’s one of the more expensive iOS apps around, but given the boost it will give to your mobile productivity, I think it’s excellent value for money.

Duet requires a modern Mac running OSX 10.9+, and an iPad running iOS 7+. The Duet iOS app costs $14.99 from iTunes, while the companion Mac app is free.


Filed under: iOS Devices, Mac, Reviews Tagged: iPad, iPad as Mac monitor, iPad monitor, Lightning, Mac monitor, MacBook, MacBook Air

For more news on iOS Devices, iPad, and Reviews continue reading at 9to5Mac.

What do you think? Discuss "Review: Duet, the app that turns your iPad into a Lightning-connected Mac monitor" with our community.

24 Jul 16:00

3B Kaligrafi

by Kardelen Uysal
3B Kaligrafi

Grafik tasarımcı ve elektrik mühendisi Tolga Girgin, kaligrafi sanatına gölgeleri ekleyerek onları üç boyutlu eserler haline getirdi. Kendisini Instagram hesabından takip edebilir, Behance sayfasından çalışmalarına göz atabilirsiniz.

Görsel kaynağı: behance.net



Kardelen Uysal
11 Jul 13:54

Michael Acton-Smith To Step Aside As CEO Of Mind Candy As Moshi Monsters Struggles

by Ingrid Lunden
mind candy office Mind Candy, led by its star gaming property Moshi Monsters and its founder Michael Acton-Smith, has been seen as one of the breakout successes of the UK startup and gaming world. But as many others in the space know all too well, game fads come and go, and so things are changing. Today Mind Candy is announcing that Acton-Smith is stepping down as the company’s CEO, while Divinia… Read More
12 Apr 09:26

Facebook’un satın aldığı Oculus Rift ile Parrot AR drone entegre olursa [Video]

by A. Bugra Ferah

drone-oculusFacebook’un 2 milyar dolara satın aldığı sanal gerçeklik gözlüğü Oculus Rift’le ne yapacağı konusunda ihtimaller konuşulmaya devam ederken, Almanya’dan farklı bir haber geldi.

Berlin’de yaşayan yazılımcı Diego Araos Oculus Rift ile Parrot AR’ı entegre ederek YouTube kanalında paylaştı.

Araos, Oculus Rift ile kafasını ileri geri hareket ettirerek Parrot’u sağlıklı bir şekilde kontrol etmeyi başarmış. Facebook’un Oculus VR‘dan önce satın aldığı Titan Aeurospace‘in ise İnsansız Hava Araçları ürettiğini düşündüğünüzde gelecekte bu videodaki görüntülerin gerçekleşebileceğini söyleyebiliriz.

Bilim kurgu filmlerinden bir sahne izlenimi veren videoyu yazının devamında izleyebilirsiniz. 

07 Mar 16:20

Anlaması Kafa Gerektiren GIF'ler

by Eda Demir
Anlaması Kafa Gerektiren GIF'ler

GIF'in artık bir sanat kolu olduğunu vurgulayarak tüm yaratıcı GIF sanatçılarının işlerine yer vermeye çalışıyoruz Bigu'da. Markalar için de bunu izlemenin görsel netin yükselişiyle önemli olduğunu vurgulayarak.

Önce bir yazının, bir fotoğrafın bize neler anlatabileceğini gördük, bir video kaydı ise bu konuda daha şanslıydı. Şimdi de kendini tekrar eden animasyonlar ve GIF'lerle bir hikayenin nasıl anlatabileceğini keşfediyorum. Milos Rajkovic'in GIF'lerinin her biri farklı farklı kesimlerden kodamanların kafasının içinde neler olduğunu resmediyor. Her GIF'te ayrı bir politik/sosyolojik mesaj olduğunu anlıyorsunuz. Öte yandan yalnızca izlemesi dahi büyüleyici.


















Eda Demir @edademir
01 Sep 12:07

20 of the fastest growing developer tools

by Christina Farr

Venture capitalists and angel investors are clamoring to fund developer tools. According to a recent estimate, they poured a massive $646 million into this space in 2012, making it one of the hottest market opportunities for entrepreneurs.

So of course, companies are rushing to create new tools for developers. Some of these new products provide real value, and are selling fast. Others inspire initial interest from customers, and then fall flat. However, unless you’re highly technical and have abundant time on your hands to test new products, it’s near impossible to figure out what is the best.

Mattermark is helping investors pinpoint startups with potential. For its latest free newsletter, the Mattermark team compiled a handy list of the front-end and back-end developer tools with the most momentum, meaning the companies that are growing their user-bases at a consistent and steady rate. Some of these startups have raised venture financing or an angel round, others are entirely bootstrapped. They all have a minimum of 10,000 users, but many have far more than that.


Editor’s note: Our upcoming CloudBeat conference, Sept. 9-10 in San Francisco, will be tackling revolutionary cases of enterprise cloud usage. Register today!


Mattermark compiles data from a variety of sources, including news articles, AngelList, app store rankings, Alexa.com rankings, and anonymous tips. The signals for business-to-business startups are weaker, but Mattermark tracks sales support materials, like white papers and customer videos, to get a sense of how robust the company’s business pipeline is. Its analysts factor out anomalies, like a surge of interest due to a Hacker News hit.

“Hacker News spikes do help the company, but only if they can sustain meaningful traffic beyond the initial bump,” chief executive Danielle Morrill told me.

If you’re not familiar with Mattermark, check out our in-depth profile of Mattermark that ran last week. In a nutshell, it’s a new service that helps investors make more informed bets. The data isn’t foolproof by any means, but for investors, it’s a good place to start.

Here are the top development tool companies as identified by Mattermark.

10 front-end software development tools 

Ink Mobility - tool for enabling apps to communicate on mobile
Bootstraptor - Twitter Bootstrap templates for web developers
Macaw - web design tool capable of writing semantic HTML and succinct CSS
XingCloud - “One click” localization of your website
FlauntResponsive - responsive design conversion tools
StatusPage.io - simple downtime communication tools
GrowthGiant - Continuous A/B testing tools (private beta not yet launched)
Spinnakr - tools for A/B testing content, display different messages to different users
Dakwak - deliver localized versions of your website to your visitors
Nitrous.IO - rapid development environment management and code collaboration

10 back-end developer tools

Bitnami - app store for server software running on Amazon, Azure and VMWare
Flywheel - WordPress hosting and management for designers
Pivotal - enterprise platform as a service (spin out from EMC and VMWare)
Salt Stack - systems and configuration management for DevOps organizations
KnackHQ - manage databases in the cloud
HortonWorks - commercial vendor of Apache Hadoop, used for big data storage
Digital Ocean - cloud hosting service for developers
Fastly - next generation content delivery network (CDN)
Honeybadger - modern error management service for Rails
Mean.io - boilerplate for MongoDB, Node.js, Express and AngularJS applications

[Disclosure: Morrill made an angel investment in Bitnami.]


Filed under: Business

VentureBeat is creating an index of the most exciting cloud-based services for developers. Take a look at our initial suggestions and complete the survey to help us build a definitive index. We’ll publish the official index later this month, and for those who fill out surveys, we’ll send you an expanded report free of charge.

    






20 Jul 11:40

Downgrade from PHP 5.4.x to PHP 5.3.5

#!/bin/bash # # Original for 5.3 by Ruben Barkow (rubo77) http://www.entikey.z11.de/ # release 1 PHP5.4 to 5.3 by Emil Terziev ( foxy ) Bulgaria # Originally Posted by Bachstelze http://ubuntuforums.org/showthread.php?p=9080474#post9080474 # OK, here's how to do the Apt magic to get PHP packages from the natty repositories: echo "Am I root? " if [ "$(whoami &2>/dev/null)" != "root" ] && [ "$(id -un &2>/dev/null)" != "root" ] ; then echo " NO! Error: You must be root to run this script. Enter sudo su " exit 1 fi echo " OK"; #install aptitude before, if you don`t have it: apt-get update apt-get install aptitude # or if you prefer apt-get use: # alias aptitude='apt-get' # finish all apt-problems: aptitude update aptitude -f install #apt-get -f install # remove all your existing PHP packages. You can list them with dpkg -l| grep php PHPLIST=$(for i in $(dpkg -l | grep php|awk '{ print $2 }' ); do echo $i; done) echo these pachets will be removed: $PHPLIST # you need not to purge, if you have upgraded from natty: aptitude remove $PHPLIST # on a fresh install, you need purge: # aptitude remove --purge $PHPLIST #Create a file each in /etc/apt/preferences.d like this (call it for example /etc/apt/preferences.d/php5_2); # #Package: php5 #Pin: release a=natty #Pin-Priority: 991 # #The big problem is that wildcards don't work, so you will need one such stanza for each PHP package you want to pull from natty: echo ''>/etc/apt/preferences.d/php5_3 for i in $PHPLIST ; do echo "Package: $i Pin: release a=natty Pin-Priority: 991 ">>/etc/apt/preferences.d/php5_3; done echo "# needed sources vor php5.3: deb http://bg.archive.ubuntu.com/ubuntu/ natty main restricted deb-src http://bg.archive.ubuntu.com/ubuntu/ natty main restricted deb http://bg.archive.ubuntu.com/ubuntu/ natty-updates main restricted deb-src http://bg.archive.ubuntu.com/ubuntu/ natty-updates main restricted deb http://bg.archive.ubuntu.com/ubuntu/ natty universe deb-src http://bg.archive.ubuntu.com/ubuntu/ natty universe deb http://bg.archive.ubuntu.com/ubuntu/ natty-updates universe deb-src http://bg.archive.ubuntu.com/ubuntu/ natty-updates universe deb http://bg.archive.ubuntu.com/ubuntu/ natty multiverse deb-src http://bg.archive.ubuntu.com/ubuntu/ natty multiverse deb http://bg.archive.ubuntu.com/ubuntu/ natty-updates multiverse deb-src http://bg.archive.ubuntu.com/ubuntu/ natty-updates multiverse deb-src http://bg.archive.ubuntu.com/ubuntu/ natty-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu natty-security main restricted deb-src http://security.ubuntu.com/ubuntu natty-security main restricted deb http://security.ubuntu.com/ubuntu natty-security universe deb-src http://security.ubuntu.com/ubuntu natty-security universe deb http://security.ubuntu.com/ubuntu natty-security multiverse deb-src http://security.ubuntu.com/ubuntu natty-security multiverse deb-src http://archive.canonical.com/ubuntu natty partner deb http://extras.ubuntu.com/ubuntu natty main deb-src http://extras.ubuntu.com/ubuntu natty main deb http://bg.archive.ubuntu.com/ubuntu/ natty-backports main restricted universe multiverse deb-src http://bg.archive.ubuntu.com/ubuntu/ natty-backports main restricted universe multiverse deb http://archive.canonical.com/ubuntu natty partner deb-src http://archive.canonical.com/ubuntu natty partner " >> /etc/apt/sources.list.d/natty.list aptitude update apache2ctl restart echo install new from natty: aptitude -t natty install $PHPLIST # at the end retry the modul libapache2-mod-php5 in case it didn't work the first time: aptitude -t natty install libapache2-mod-php5 apache2ctl restart # extra: http://askubuntu.com/questions/116254/how-to-downgrade-from-php-5-4-to-5-3
04 Jul 12:01

Asp.Net Web API Üzerinden Resim Döndürmek

by bsenyurt

Road-Runner-Wile-E-Coyote-looney-tunes-5226561-1024-768Merhaba Arkadaşlar,

Eminim çocukken çizgi filmlerle aranız vardı. Hatta çoğumuz yaşı kaç olursa olsun çizgi filmlere arada sırada da olsa zaman ayırmakta. (Ben Batman gördüm mü pür dikkat izlerim örneğin) Keza pek çok büyüğümüz de, eskiden izlediği çizgi filmler ile karşılaştığında taaaa çocukluk yıllarına kadar gidip aynı o zamanki gibi içten gülebiliyorlar da(Rahmetli babamdan bilirim)

Aslına bakarsanız bazen teknoloji de bizi aynen bu mantıkta epeyce güldürebiliyor. Örneğin Microsoft’ un ürünlerini düşünelim. (Gerçi çok fazlalar ama gene de düşünmeye çalışalım) Sürekli yenilikler çıkartıyorlar, sürekli verisyon atlatıyorlar ve işin en acı tarafı da koşan Road Runner’ a benziyorlar. Biz mi? Biz ise Road Runner’ ı her fırsatta yakalamaya çalışıp yakaladığını zanneden ama son anda hep elinden kaçıran Coyote’ ye Smile Bence bu senaryoda developer’ lar biraz daha şanslı. Ya benim gibi düzenli blog tutmaya çalışanlar napsınlar Disappointed smile 

Sözü fazla uzatmadan ve moralimizi daha da bozmadan konumuza geçelim.

Bu yazımızda Asp.Net Web API üzerinden, SQL tablolarında binary formatta tutulabilen resim içeriklerini nasıl çekebileceğimizi basit bir örnek ile incelemeye çalışıyor olacağız. Örneğimizin özel yanlarından birisi de kısa süre önce yayınlanan Visual Studio 2013 Preview ile geliştirilecek olması. Önce senaryomuza bir bakalım.

Senaryo

Uzun zamandır uğramadığımız hatta pek çok genç arkadaşımızın belki de adını bile duymadığı bir Microsoft veritabanını ele alıyor olacağız. Pubs, SQL 2000 sürümünde sıklıkla Northwind ile birlikte andığımız kobay veritabanlarından birisidir Smile Bu veritabanında yayıncılara ait bazı bilgiler yer almaktadır. Örneğin pub_info isimli tablo içerisinde pub_id, logo ve pr_info isimli 3 adet alan yer almaktadır. Bu alanlardan logo tahmin edileceği üzere Binary veri tipindedir ve yayıncının firma logosunu tutmaktadır.

Hedefimiz bu binary içerikleri(yani logoları) bir Web API fonksiyonu üzerinden geriye döndürebilmek ve hatta en azından tarayıcı pencresinde resim formatında gösterebilmek olacaktır. O halde projeyi açarak ilk adımımız atalım.

wapigi_1

Projenin Oluşturulması

İlk olarak yeni bir Web uygulaması oluşturarak işe başlayabiliriz. Pek tabi Visual Studio 2013 preview içerisinde görünen önemli özelliklerden birisi de One Asp.Net yeteneğidir. Buna göre tek bir Web uygulaması şablonu üzerinden hareket edilerek istenen kabiliyetlere göre seçimler yapılması sağlanmaktadır.

wapigi_2

Doğruyu söylemek gerekirse Asp.Net tarafındaki proje şablonlarının artması kafa karışıklıkları yanında bir arada kullanmak istediğimiz kabiliyetler olduğunda da sıkıntı yaratmaktaydı. Umarız bu özellik baki olur ve daha da iyileştirilir.

Asp.Net Web Application seçimi sonrasında karşımıza gelen pencereden Empty template tipini seçip Web API özelliğini etkineleştirebiliriz. Ya da Web API özelliğini işaretleyip ilerleyebiliriz. Ben mümkün mertebe sade bir ortam arzu ettiğimden Empty template seçip Web API kutusunu işaretledim.

wapigi_3

Bu işlemler sonucunda solution ve proje içeriği aşağıdaki gibi oluşacaktır.

wapigi_4

Modelin Eklenmesi

İzleyen adımda modelimizi ilave etmemiz gerekiyor. Tahmin edeceğiniz gibi Entity Framework den yararlanıyor olacağız. Projeye yeni bir öğe olarak Ado.Net Entity Data Model nesnesi ekledikten sonra klasik adımlarımızla ilerliyoruz(Model klasörü altına ekleyebilirsiniz) Lakin Visual Studio 2013 Preview’ a has bir özellik olarak Entity Framework versiyonunu seçebileceğimiz bir ekranla karşılaşacağız(Sanırım Entity Framework tarafı kadar hızlı versiyon atlatan ürün sayısı nadirdir) Ben 6.0 sürümünü seçtim ve bunun sonucu olarak Beta 1’ in kütüphane olarak ilave edildiğini fark ettim.

wapigi_5

İzleyen kısımda sadece pub_info tablosunun eşleniği olan entity üretimini yaptırmamız yeterlidir. (Diğer tablolaraı dilersenize ekleyebilirsiniz ancak şu anki senaryomuz için çok da gerekli değiller)

wapigi_6

Controller Tipinin Yazılması

Web API’ nin temel yapı taşı olan Controller tipini ekleyerek örneğimize devam edelim.

wapigi_7

Web API controller sınıfı için iki farklı versiyon bulunmaktadır. (Ben v1’i seçerek ilerledim ama bunu yaparken iki versiyon arasındaki farkı tam olarak bilmediğimi itiraf etmek isterim Embarrassed smile)

LogosController sınıfı içeriği

using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;

using System.Net.Http;
using System.Net.Http.Headers;
using System.Web.Http;

using WebApplication4.Models;

namespace WebApplication4.Controllers
{
    public class LogosController
        : ApiController
    {
        public List<string> Get()
        {
            List<string> pubIds = null;
            using (PubsEntities _context = new PubsEntities())
            {
                pubIds = (from p in _context.pub_info
                          select p.pub_id).ToList();
            }
            return pubIds;
        }
        public HttpResponseMessage Get(string id)
        {
            HttpResponseMessage response = null;

            using (PubsEntities _context = new PubsEntities())
            {
                var pubPicture = (from p in _context.pub_info
                                       where p.pub_id == id
                                       select p.logo).FirstOrDefault();
                if (pubPicture==null)
                {
                    response = new HttpResponseMessage(HttpStatusCode.NotFound);
                }
                else
                {
                    MemoryStream ms = new MemoryStream(pubPicture);
                    response = new HttpResponseMessage(HttpStatusCode.OK);
                    response.Content = new StreamContent(ms);
                    response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
                }
            }
            return response;
        }
    }
}

LogosController sınıfı içerisinde iki adet Get metodu bulunmaktadır. İstemci tarafından gelecek HTTP Get taleplerine cevap verecek olan bu fonksiyonlardan birisi pub_info tablosundaki pub_id alanlarını liste olarak döndürmektedir. Diğer yandan senaryomuzun can alıcı Get metodu ise, HttpResponseMessage tipinden bir nesne örneğini döndürmektedir. Bu metod parametre olarak string tipinden olan bir pub_id değerini alır. İlgili alana eş satırın logo içeriğini bulur(eğer varsa). Bu içeriğin byte[] tipinden olan karşılığı bir MemoryStream referansından yararlanılarak HttpResponseMessage örneğinin Content özelliğine set edilir.

Bundan sonra yapılması gereken, istemciye dönecek cevap içeriğinin bir image olduğunu belirtmektir. Headers.ContentType özelliğine bir MediaTypeHeaderValue örneğinin atanmasının ve parametre olarak image/png verilmesinin sebebi de budur. Çok doğal olarak ilgili id değeri yanlış girilebilir ve LINQ sorgusu bu durumda null değer üretebilir. Null değer kontrolü yapılarak böyle bir vaka oluşması halinde HTTP 404 Not Found istisnasının döndürülmesi de sağlanmaktadır(Web’ in doğasına ve isteğine uygun şekilde Winking smile )

Testler

Uygulama kodunun tamamlanmasını müteakip test çalışmalarına başlanabilir. Her hangi bir tarayıcı uygulama ile bu işlemi yapabiliriz(Ben tercihimi Google Chrome’ dan yana kullandım Smile ) Örneğin api/logos şeklinde bir talepte bulunulduğunda aşağıdaki ekran görüntüsüne benzer olacak şekilde pub_id bilgilerinin elde edildiği görülür.

wapigi_8

Eğer belirli bir pub_id değeri için talepte bulunulursa asıl istediğimiz sonuçlara ulaşırız. Yani yayıncının logosuna Winking smile

api/logos/0736 için aşağıdaki sonuç elde edilirken

wapigi_9

api/logos/1756 için

wapigi_10

sonucu elde edilir. Çok doğal olarak olmayan bir pub_id için istemci tarafında HTTP 404 hatası dönecektir.

Daha Neler Yapılabilir ve Size Kalan

Senaryomuz sadece yayın evinin logosunu ve yayın evi numaralarını döndürecek fonksiyonelliklere sahip bir Asp.Net Web API hizmetini içermektedir. Ancak siz bu senaryoyu daha da geliştirebilirsiniz.

  • Örneğin jQuery kullanarak yayıncıların listesinin logoları ile birlikte bir View’ da görünmesini deneyebilirsiniz.
  • Kuvvetle muhtemel yukarıdaki maddeyi bir MVC projesinde denersiniz. Ama aynısını Web Forms tabanlı bir uygulama için de yapmaya çalışabilirsiniz.
  • Resimlerin gösterilmesi haricinde istemcilerin yine Asp.Net Web API’ den yararlanarak upload etme işlemlerini yapabilmelerini de sağlayabilirsiniz Winking smile Bunu bir araştırmanızı öneririm. POST şeklinde bir talebi ele almanız gerektiğini ip ucu olarak verebilirim.
  • Bir önceki maddede var olan kısmı birden fazla dosyayı bir seferde yükleme senaryosu için ele alabilirsiniz(Multiple Upload)
  • Büyük boyutlu resimleri parça parça atmayı veya okumayı deneyebilirsiniz.
  • ve benim aklıma gelmeyen ama sizin ele alacağınız başka bir senaryo da söz konusu olabilir.

Görüldüğü üzere bir Asp.Net Web API servisini resim içeriklerinin elde edilmesini konu alan bir senaryo da kullanabildik. Örneğimizi yeni göz bebeğimiz Visual Studio 2013 Preview üzerinde geliştirmeye çalıştık ve böylece geldik bir yazımızın daha sonuna. Tekrardan görüşünceye dek hepinize mutlu günler dilerim.

01 Jul 11:11

Meet 15 Finalists and Science in Action Winner for the 2013 Google Science Fair

by Emily Wood
Bugra Cakmak

Congratulations to Elif!

Creating a world-class science project is no easy task, but this year thousands of 13-18 year olds from more than 120 countries submitted their project to the third annual Google Science Fair. After further judging and deliberation, today we’re announcing the 15 finalists from our top 90 regional finalists, as well as the winner of the Scientific American Science in Action Award.

From the creation of an exoskeletal glove to support the human hand to managing the impact of infrastructure projects on endangered species to an early-warning system for emergency vehicles, the caliber, ingenuity and diversity of this year’s projects is a testament to the fact that young minds really can produce world-changing ideas.

The 15 finalists will join us at our Mountain View headquarters on September 23 to present their projects to an international panel of esteemed scientists for the final round of judging. The Grand Prize winner will receive a 10-day trip to the Galapagos Islands with National Geographic Expeditions, $50,000 in scholarship funding and more.


Congratulations to our finalists:

Age 13-14
Alex Spiride (USA): Squid-Jet: Bio-Inspired Propulsion System for Underwater Vehicles
Venkat Sankar (USA): Ecology or Economy: Managing the Impact of Infrastructure Projects on Endangered Species
Kavita Selva (USA): Superconductor Tapes: A Solution to the Rare Earth Shortage Crisis
Liza Sosnova and Tina Kabir (Russia): Lyytinen - Universal hydrostatic densitometer
Viney Kumar (Australia): The PART (Police and Ambulances Regulating Traffic) Program

Age 15-16
Elif Bilgin (Turkey): Going Bananas!-Using Banana Peels in the Production of Bio-Plastic As A Replacement of the Traditional Petroleum Based Plastic
Ann Makosinski (Canada): The Hollow Flashlight
Yi Xi Kang, Kwok Ling Yi and Tricia Lim (Singapore): Efficacy of Estrogens and Progesterone in Hepatic Fibrosuppression
Valerie Ding (USA): Rapid Quantum Dot Solar Cell Optimization: Integrating Quantum Mechanical Modeling and Novel Solar Absorption Algorithm
Shrishti Asthana (India): Solar Light Assisted nanoZnO Photo Catalytic Mineralization - The Green Technique for the Degradation of Detergents

Age 17-18
Charalampos Ioannou (Greece): An Exoskeleton Glove which Enhances and Supports the Movement of the Human Palm
Esha Maiti (USA): Stochastic Monte Carlo Simulations to Determine Breast Cancer Metastasis Rates from Patient Survival Data
Elizabeth Zhao (USA): A Novel Implementation of Image Processing and Machine Learning for Early Diagnosis of Melanoma
Eric Chen (USA): Computer-aided Discovery of Novel Influenza Endonuclease Inhibitors to Combat Flu Pandemic
Vinay Iyengar (USA): Efficient Characteristic 3 Galois Field Operations for Elliptic Curve Cryptographic Applications

We’re also announcing the winner of the Scientific American Science in Action Award, which honors a project that makes a practical difference by addressing an environmental, health or resources challenge. An independent panel has selected Elif Bilgin from Turkey for this award for her work using banana peels to produce bioplastics. Congratulations to Elif, who will receive $50,000 and and a year’s worth of mentoring from Scientific American to help develop her project. Elif’s project is also one of the 15 finalists, and she is still in the running for the Grand Prize Award.

Which of the 15 finalist projects do you think has the potential to change the world? While the official judges will decide the 2013 Grand Prize Winner, in August you’ll be able to participate in this year’s competition by voting for the Voter's Choice Award. Visit the Google Science Fair website August 1-30 to vote for the project you think has the greatest potential to change the world.

Check back for more details, and tune in live to see the finalist gala on September 23, which will be broadcast on our website, Google+ page and YouTube channel. Congratulations to all our finalists. We look forward to meeting in Mountain View!

Posted by Clare Conway, Google Science Fair team

Update July 30: Updated the name of the Voter's Choice Award (previously the Inspired Idea Award).