Estimate mi, guess mi? Collocation Sözlükleri


İngilizcede özellikle metin yazarken bazı kelimelerin bazı kelimelerle birlikte kullanılmadığını hatırlayamadığımız zamanlar olur. İşte bu durumlarda ‘collocation’ sözlükleri çok işe yarar. Bir dostumun  önerisi ile bu sözlükleri keşfettim.

Adres şu: http://www.freecollocation.com/

Örneğin estimate kelimesi ile kullanılması uygun olan sözcükler şöyle görüntüleniyor:

cooloc

Kendi HTML Taglarınızı Oluşturun: Polymer Kullanmaya Giriş


polymer_logo

Polymer Framework’u kendi html etiketlerinizi üretmeye ve kullanmaya yarıyor. Üstelik bu etiketlere CSS stilleri ve Javascript ekleyebiliyorsunuz. Böyle ‘yeniden kullanılabilir’ nesneler, yani butonlar, portletler, formlar vs. oluşturabiliyorsunuz.

Örneğin:

<benim-obicim-tagim></benim-obicim-tagim>

<yenieklebutonu renk=’mavi’ id=’cabbar’></yenieklebutonu>

Bu özellikle temaya bağlı tasarımlarda her bir eleman için tekrar tekrar CSS tanımlamak, çağırmak, kullanmak gibi işlerden oluşan yükü hafifletebilir.

Basit bir örnek olarak aşağıdaki kodları göstereyim:

<!DOCTYPE html>
<html lang=”en”>
<head>
https://polygit.org/webcomponentsjs+1.0.0-rc.5/components/webcomponentsjs/webcomponents-loader.js

<!– Polymer nesnemizi aşağıdaki gibi çağırıyoruz html içinden html:)–>
<link rel=”import” href=”dom-element.html”>
</head>
<body>

<!– Aşağıdaki elemanın adını keyfimize göre veriyoruz –>
<dom-element></dom-element>
</body>
</html>

Burada dom-element’ini sonradan tanımladık. Bunu ise aşağıdaki html dosyası içinden üretiyoruz:

<link rel=”import” href=”https://polygit.org/polymer+2.0.0-rc.2/components/polymer/polymer-element.html”&gt;

<dom-module id=”dom-element“>
<template>

<style>
.kirmizi{
color:red;
}
</style>

<p class=”kirmizi”>Aha bu benim öz tag’ımdır</p>
</template>

class DomElement extends Polymer.Element {
static get is() { return “dom-element”; }
}
customElements.define(DomElement.is, DomElement);

</dom-module>

Sonuç da şu:

polymer

Detaylı bilgi için: Polymer Resmi Sitesi

Python Peewee


2017-04-08 19_52_35-peewee — peewee 2.9.2 documentation

Python ile birlikte birçok küçük ve orta ölçekli projenizde kullanabileceğiniz Peewee adlı bir veri tabanı var. Peewee ORM(Object Relational Map) imkanı da sunuyor. Yani veri tabanına eklenecek kayıtları bir nesne olarak tanımlayabiliyorsunuz.  Ben Flask ile birlikte bir web projemde kullanmış ve pratikliğinden epey memnun kalmışım.  Peewee Sqlite ile birlikte de çalışabiliyor:

from peewee import *

db = SqliteDatabase('people.db')

class Person(Model):
    name = CharField()
    birthday = DateField()
    is_relative = BooleanField()

    class Meta:
        database = db # This model uses the "people.db" database.

Örnek bir kod burada:
Kayıt yapmak bu kadar kolay:

>>> from datetime import date
>>> uncle_bob = Person(name='Bob', birthday=date(1960, 1, 15), is_relative=True)
>>> uncle_bob.save() # bob is now stored in the database

Bu da veri çekmek için:

>>> grandma = Person.select().where(Person.name == 'Grandma L.').get()

Peewee dökümantasyonu: buradaburada

MSSQL veritabanları hangi dizin altındadır


MSSQL veritabanlarına SQL Server Manager’den erişiriz. Ancak bu veri tabanları fiziksel olarak da bir yerde tutulmaktadır. Bu yer genellikle şu adrestedir:

C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA

Bu klasörün altında bilgisayarızdan erişlebeildiğiniz tüm veritabanlarına dosya olarak erişebilirsiniz.

Constructor ne işe yarar?


Modern tüm programlama dillerinde constructor yapısı mevcuttur. Onu daha önce kullanma ihtiyacı duymamış olabilirsiniz.  Ancak bu yapıyı öğrenmek işinize çok yarayacaktır.  Constructor yapısını anlayabilmek için class (sınıf)  yapısını anlamak gerekir.

Constructor’un ne işe yaradığını ifade etmek için soyut ifadeler yerine basit bir problemden yola çıkalım. Soyut açıklamaları sonra yaparız.

İş yerinizde çalışanlara tekabül eden Employee adlı bir sınıfınız olsun. Bu sınıfa maaş adlı bir property (özellik) eklemek istiyorsunuz. Bunu tanımlamak için constructor kullanabilirsiniz. Örnek şöyle: (C#)

public class Employee
{
public int salary;
//Constructor buradan başlar
public Employee(int annualSalary)
{
salary = annualSalary;
}
//Constructor burada biter.

}

Ne oldu peki? Henüz hiç bir şey. Ancak eğer bu Employee nesnemizi çağırırsak şöyle çağırma şansımız oluşuyor:

Employee e1 = new Employee(30000);

Bu durumda maaş bilsini sınıfa tanımlamış oluyoruz. Evet hepsi bu!. Sorunu köpürtelim: Girdiğimiz maaş bilgisi yıllık idi. Peki maaş bilgisi haftalık olursa ne olacak? Birden fazla constructor tanımlayabilir miyiz? Evet. O da şöyle:

 public class Employee
        {
            public int salary;

            public Employee(int annualSalary)
            {
                salary = annualSalary;
            }

            public Employee(int weeklySalary, int numberOfWeeks)
            {
//Haftalık maaş değeri ile hafta sayısı (bir yıldaki) çarplıyor.
                salary = weeklySalary * numberOfWeeks;
            }
        }

Sınıfımızı böyle tanımladıktan sonra ise aşağıdaki her iki türde de sınıfı çağırabiliriz.

Employee e1 = new Employee(30000);
Employee e2 = new Employee(500, 52);

Bu sınıfımız girdi olarak haftalık veya yıllık nasıl girersek girelim bize yıllık maaş olarak sonucu verecek. Constructor’lar bu dinamizmi sağlıyor.

Peki teknik tanım nedir?:

When a class or struct is created, its constructor is called. Constructors have the same name as the class or struct, and they usually initialize the data members of the new object.

Bir sınıf tanımlandığında constructor çağrılır. Constructorlar sınıf ile aynı isime sahiptirler. Genellikle yeni tanımlanan bir nesneye veri elemanlarını aktarmak için kullanılırlar.

Yararlanılan kaynak: Microsoft

Selenium with Python


Selenium is the popular testing package. It has library for Java, C#, nd Python. It is not only for testing  but also very good choice for web scraping task. I have used it during my PhD Thesis for scraping news from Google News.

In fact usage of it with Python slightly easier and readable. For Python 2.7 just install selenium with ‘pip install selenium’. If you work on windows you should use path of pip like below before install command.

“c:\python27\scripts\pip.exe”

Besides, you should download chromedriver.exe from here

Then you can use Selenium. Here is a code which download relevant image from Google Images with Selenium:

from selenium import webdriver
import urllib
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('C:/Python27/Scripts/chromedriver.exe')
word="apple"
url="http://images.google.com/search?q="+word+"&tbm=isch&sout=1"
driver.get(url)
imageXpathSelector='//*[@id="ires"]/table/tbody/tr[1]/td[1]/a/img'
img=driver.find_element_by_xpath(imageXpathSelector)
src=(img.get_attribute('src'))
urllib.urlretrieve(src, word+".jpg")
driver.close()