Monday, August 25, 2014

Listen switch_user Event in #Symfony


#config.yml 
services: 
  myproject.security_switch_user: 
    class: MyApp\AppBundle\Listener\SecuritySwitchUserListener 
    tags: 
      - { 
         name: kernel.event_listener, 
         event: security.switch_user, 
         method: onSecuritySwitchUser }
<?php
// src/MyApp/AppBundle/Listener/SecuritySwitchUserListener.php
namespace MyApp\AppBundle\Listener;
use Symfony\Component\Security\Http\Event\SwitchUserEvent;
class SecuritySwitchUserListener
{
public function onSecuritySwitchUser(SwitchUserEvent $event)
{
$newUser = $event->getTargetUser();
} }

Friday, August 22, 2014

Pecl errors

PECL paketleri kurulumu sırasında bazen arşiv hataları olusabiliyor.

Örnek bir durum

$ sudo pecl install mongo 
downloading mongo-1.5.5.tgz ...
Starting to download mongo-1.5.5.tgz (192,109 bytes)
.........................................done: 192,109 bytes
could not extract the package.xml file from "/build/buildd/php5-5.5.9+dfsg/pear-build-download/mongo-1.5.5.tgz"
Download of "pecl/mongo" succeeded, but it is not a valid package archive
Error: cannot download "pecl/mongo"
Download failed

install failed


Bu durumdan genellike --nocompress ile kurtulabilirsin. 

pecl install --nocompress mongo"

Friday, August 1, 2014

#redis Matt Stancliff talks about the challenges on a large open source project.

Redis is a popular key-value store used by many companies. Matt Stancliff, a Redis Core Contributor, talks about the challenges with working on a large open source project. Takes your 30 minutes, but worth it.

Update:
At first I must say that Matt is a bit prejudiced about MongoDb. but still a "must watch" video if you are interested in open source development and redis.



Wednesday, July 30, 2014

Two Links : Note taking and outliner tool suggestion


1. laverna.cc
Laverna is a note taking application that supports both Dropbox and remoteStorage


2. fargo.io
Fargo is a simple idea outliner, notepad, todo list, blogging tool, project organizer. #


Both tools are open source and free.

Tuesday, July 29, 2014

Hadoop at Pinterest



Big data plays a big role at Pinterest. With more than 30 billion Pins in the system, we’re building the most comprehensive collection of interests online. One of the challenges associated with building a personalized discovery engine is scaling our data infrastructure to traverse the interest graph to extract context and intent for each Pin.
We currently log 20 terabytes of new data each day, and have around 10 petabytes of data in S3. We use Hadoop to process this data, which enables us to put the most relevant and recent content in front of Pinners through features such as Related Pins, Guided Search, and image processing. It also powers thousands of daily metrics and allows us to put every user-facing change through rigorous experimentation and analysis.


Building a self-serve platform for Hadoop

Though Hadoop is a powerful processing and storage system, it’s not a plug and play technology. Because it doesn’t have cloud or elastic computing, or non-technical users in mind, its original design falls short as a self-serve platform. Fortunately there are many Hadoop libraries/applications and service providers that offer solutions to these limitations. Before choosing from these solutions, we mapped out our Hadoop setup requirements.
1. Isolated multitenancy
2. Elasticity
3. Multi-cluster support
4. Support for ephemeral clusters
5. Easy software package deployment
6. Shared data store
7. Access control layer 
Read all 7 items more on engineering.pinterest.com

Monday, July 28, 2014

Artist collections


I fetched albums and songs with youtube media links for one of the best singer of all times "Zeki Müren" and the coffee mate man "Tom Waits".
Project and data fetcher scripts are hosted on github.

Fix "Invalid SSL Certificate" bug in OS X

OS X kullananlar için genel olmayan bir problem sanırım. Detayı burada

Sertifika sorunuzu bener başka sertifika sorunları gibi silerek çözebilirsiniz.  

Keychain Access programını başlatın. View -> Show Expired Certs ve burada süresi geçmiş sertifikaları silin veya daha güvenli bir yolan oalrak sadece ‘DigiCert High” ifadesi geçen ve süresi geçmiş sertifikayı bulup silin.

Wednesday, June 25, 2014

Metor'a destek


Hi everyone -

It's been two days since we launched the 2014 Meteor Challenge. This week until June 30,sponsors from the Meteor community are donating $5 to CodeNow every time someone new stars Meteor on GitHub. If we can introduce 5,000 people to Meteor by then, we'll raise $25,000 for kids learning to code.



We've broken $6000, we're a quarter of the way to our goal, and my twitter feed is full of #meteorchallenge-- all thanks to you. We're right on track for hitting $25,000 next Monday. Let's see if we can kick it up a notch and get there early -- I want to see how fast you can raise 3,500 more stars.

Let's each take a moment today to share the Meteor Challenge. E-mail is the most powerful way to do this -- nothing beats a direct message from a friend. Forward this to your eng@ lists, developer groups, and school listservs with a quick word on why you think they should check out Meteor and star it.



We can watch the numbers go up together at challenge.meteor.com. Give a shout on #meteorchallengeafter you've e-mailed your friends, and I'll favorite/retweet you!



PS - If you're making money with Meteor, it's not too late to join in as a sponsor! Just e-mailcommunity@meteor.com and let us know how much you'd like to pledge. More sponsors means we can raise our goal, reach even more new Meteorites, and help even more CodeNow kids.

Monday, June 16, 2014

Twig Extension içinde Symfony ContainerInterface kullanabilme

config.yml services altında

  ojstr.twig.ojs_extension:
  class: Sfapp\Common\Twig\SfappExtension
  arguments: [@service_container]
  tags:
    - { name: twig.extension } 



arguments sayesinden extension dosyasında service container'a erişebileceğim.


Sunday, May 18, 2014

Laravel 4.0 > 4.1 Upgrade Problem

Şurada güzelce açıklanan upgrade klavuzunu adım adım takip edince genelde sorununuz kalmaz. Ancak son denediğim güncelleme grişiminde "composer update" sırasında şöyle bir hata aldım.


PHP Fatal error:  Class 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider' not found in /home/tayyar/test/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 123
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Class 'Illuminate\\Foundation\\Providers\\ConsoleSupportServiceProvider' not found","file":"\/home\/tayyar\test\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/ProviderRepository.php","line":123}}Script php artisan clear-compiled handling the post-update-cmd event returned with an error


                                                                    
  [RuntimeException]                                                                                                                                                  
  Error Output: PHP Fatal error:  Class 'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider' not found in /home/tayyar/test/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 123                                                                              


Bu veya benzer bir hata alınması halinde ilk olarak "composer update --no-scripts" çalıştırmalı. Ancak muhtemelen bu sorunu çözmeyecektir.

Sırayla

rm -rf vendor
rm  composer.lock
composer install

Artık sorununuz kalmamış olmalı.


Thursday, May 8, 2014

Important Announcment on Chrome Native Messaging API


Important announcement!
Due to Chrome's abandonment of NPAPI, we had to move to a newer technology called Native Messaging API. Which is kind of good, because now we fully support Linux!
The bad news is that in order to use Devtools Terminal now you have to manually install the Node.js proxy. 

Don't worry, it's easy, here are some quick instructions to get you going: * Install Node.js (http://nodejs.org/)
 
* Open your terminal and run:  

npm install -g devtools-terminal  
sudo devtools-terminal --install --id=leakmhneaibbdapdoienlkifomjceknl


Basically, the first command will install the proxy app and the second one will tell the Chrome browser where to find it. If it didn't work for you, please, report at https://github.com/petethepig/devtools-terminal/issues Thanks

Friday, May 2, 2014

HHVM on Ubuntu 14.04

Ubuntu 14.04'e yükseltmişseniz HHV derlemek için gerekli paketler bunlar

  sudo apt-get install \
autoconf automake binutils-dev build-essential cmake g++ git \ 
libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev \ libboost-system-dev libboost-thread-dev libbz2-dev libc-client-dev \ 
libc-client2007e-dev libcap-dev libcurl4-openssl-dev libdwarf-dev libelf-dev \ 
libexpat-dev libgd2-xpm-dev libgoogle-glog-dev libgoogle-perftools-dev libicu-dev \ 
libjemalloc-dev libmcrypt-dev libmemcached-dev libmysqlclient-dev libncurses-dev \ 
libonig-dev libpcre3-dev libreadline-dev libtbb-dev libtool libxml2-dev zlib1g-dev libevent-dev \ 
libmagickwand-dev libinotifytools0-dev libiconv-hook-dev libedit-dev libiberty-dev libxslt1-dev ocaml-native-compilers

Friday, April 25, 2014

baudio by @substack

Eğer takip etmiyorsanız @substack takip edilecek kişilerdendir.

Javascript ile müzik yapmak için geliştirilmiş çok sevdiğim şu paketin de geliştiricisi : baudio

Yarım saatlik şu videosunu da izlerseniz bu paket hakkında daha çok fikre sahip olursunuz.



Baudio ile muzik yapmak javascript geliştiriciler için çok daha eğlenceli :)

Örnek :
var baudio = require('baudio');

var n = 0;
var b = baudio(function (t) {
    var x = Math.sin(t * 262 + Math.sin(n));
    n += Math.sin(t);
    return x;
});
b.play();

Saturday, April 19, 2014

Hroute.js

Tiny helper to catch hash changes

Demo : http://jsfiddle.net/hasantayyar/Wq7PC/2/embedded/result/

hroute({
        '': function(){
            content.innerHTML = "default page";
        },
        'about': function(){
            content.innerHTML = "about page";
        },
        '^video\/(.*)': function(params){
            content.innerHTML = '<iframe width="100%" height="315" '+
            'src="https://www.youtube.com/embed/'+params[1]+
            '" frameborder="0" allowfullscreen></iframe>';
        } 
    },{
    default: function(){
        console.log("404/notfound/default action"); 
    }, 
    beforeAction: function(){
        console.log("before action");
    }
});

Tuesday, April 15, 2014

Yalan api

http://yalan.herokuapp.com/

Üstelik Api'si de mevcut.

$ curl http://yalan.herokuapp.com/json 
{
  "lie": "Stajyer herşeyi bozmuş!"
}

Ayrıca bana daha fazla yalan lazım. Şurdan iletirseniz.

https://github.com/hasantayyar/yalan/issues

Monday, April 7, 2014

Turkey Internet Map

Alexa verileriyle her ay güncellediğim http://turkey-internet.herokuapp.com/







Maintenance page redirection with htaccess

RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /maintenance.html [R=503,L]
ErrorDocument 503 /maintenance.html 


When you want to disable maintenance mode just remname maintenance file to something else

mv maintenance.html maintenance.html.disabled"

Gist with sample maintenance page :

Wednesday, April 2, 2014

Symfony forms disable csrf protection

Şöyle iki şekilde yapılabilir. İlki formu olustururken, ikincisi de kökten çözüm EntityFormType içine yazarak. İkincisini yaparsanız ilgili tüm form kullanımlarında csrf olayını kapatmış oluyorsunuz.