SunshinePHP

Symfony2 – Tak jak to robi Kris Wallsmith

Ostatni weekend obfitował w konferencje. Oprócz meetphp w poznaniu za oceanem odbyła się konferencja SunshinePHP. A na niej wystąpił twórca Assetic Kris Wallsmith ze swoją prezentacją na temat Symfony2.

Opisał w niej dobre praktyki programowania w Symfony2 wraz z MongoDB.

meet.php

Prezentacja na MeetPHP#8

Zapraszam wszystkich czytelników na spotkanie meetPHP #8 już w najbliższą sobotę(tj. 9.02.2013) o 17 w Poznaniu!

logo

Jak by ktoś nie zauważył, to w agendzie jestem również wyszczególniony ;) A ponad to z tagów tego wpisu można wywnioskować o czym będzie moja prezentacja.

Do zobaczenia!

coderbits

Zamknięta Beta Coderbits!

Ostatnio dostałem na Twitterze zaproszenie od zamkniętej Bety startupu CoderBits.com. Serwis naprawdę zamiata resztę konkurencji. Przepych integracji zabija. Myślałem że po CoderWall.com  nie zaskoczy mnie nic swoimi integracjami. Jednak się myliłem, gdyż tworzenie własnego na coderbits profilu polega na dokładaniu kolejnych kont z serwisów mniej lub bardziej dotyczących programowania, systemów kontroli wersji, profilu zawodowego itd.

Po spięciu 19 kont mój profil wygląda tak: https://coderbits.com/mgz

 

Zaproszenie do zamkniętej Bety

https://coderbits.com/account/signup?inviteCode=bf778296-2254-4892-b868-d8493ace8ba2

ubuntu-amdati

[Ubuntu]AMD Radeon debug temperatury karty graficznej

Mój radeon w laptopie się niemiłosiernie przegrzewał. Temperatura skakała o 10′C gdy tylko poruszałem oknem w Unity 3d. Podczas pracy lub gry karta potrafiła osiągnąć 106′C po czym laptop z poziomu biosu się wyłączał by zapobiec usmażeniu się karty. Nic nie trafiało do syslogu.

Radę dał serwis NBD Della, gdyż okazało się że chińczyk, który składał mój egzemplarz chłodzenie CPU i karty graficznej dokręcił je jedynie dwiema śrubkami zamiast siedmioma. Serwisant sam był zaskoczony.

By zdiagnozować problem, gdyż najpierw obstawiałem CPU,a następnie dysk napisałem skrypt, który loguje do pliku aktualną temperaturę układu graficznego.

 

Dzięki niemu centrala serwisu Dell odrazu przysłała serwisanta z nowym układem chłodzenia.

ubuntu-amdati

[ubuntu 12.10] Problem z Unity i AMD Radeon HD 6770M/7650M + Intel HD 3000 [rozwiązany!][Update!]

Objawy:
Po aktualizacji dystrybucji z 12.04 na 12.10 systmem uruchamia się w low-graphics mode. Reinstalacja sterowników AMD nie pomaga. Czyli z grania na Ubuntu nici.
Powód:
AMD zepsuło sterowniki w wersji 12.10.

O look They kill fglrx. You bastards!

Continue reading

itvpdownloader

iTVPdownloader Silex APP

Z potrzeby chwili stworzyłem startup do ściągania materiałów z itvp.pl.

Nawet działa :) Live: http://itvpdownloader.mmx3.pl/

Kod można zobaczyć na moim githubie, lub klikając w link: https://github.com/emgiezet/iTVPDownloader

Applikacja powstała w 3 godziny (razem z deployem na AppFog – naprawdę rewelacyjny hosting). Za jakiś czas pojawi się nowy wpis na blogu dotyczący tworzenia takich szybkich aplikacji w Silexie z deploymentem na AppFoga.

symfony_black_02

[Ubuntu] Instalacja LESS oraz Integracja z Symfony2 Assetic

Ostatnio staje się bardziej popularny LESS. By go zintegrować z Symfony2 za pomocą Assetic’a i zachować prędkość ładowania strony bez przeskoku spowodowanego kompilacją LESS’a przez JavaScript less.js.

Dzięki temu pliki less będą skompilowane do normalnego css. Dodatkowo można je wrzucić bezpośrednio na serwer do static contentu np. Amazon S3.

Schemat działania Less Node.js i Assetica

Schemat działania Less Node.js i Assetica

  1. Instalacja Less

    1. Instalacja Node.js
       sudo apt-get update
       sudo apt-get install git-core curl build-essential openssl libssl-dev
       git clone https://github.com/joyent/node.git
       cd node
       chmod +x ./configure
       ./configure
       make
       sudo make install
       node -v
      
    2. Instalacja NPM
      wget http://npmjs.org/install.sh --no-check-certificate
      sudo ./install.sh
    3. Instalacja Less
      sudo npm install less  --global

      Parametr global jest niezwykle istotny, gdyż nie będziesz mógł potem uzyskać dostępu do lessa

    4. Dodanie PATH Less’a do ~/.bashrc
      Edytuj plik: ~/.bashrc

      gedit ~/.bashrc
      

      Dodaj nową linię na końcu pliku:

       PATH=$PATH:$HOME/node_modules/less/bin
      
    5. Teraz trzeba przeładować profil Basha
       source ~/.bashrc
      
    6. Testujemy Less!
       lessc wejscie_less.less > wyjscie_css.css
  2. Integracja z Symfony2 i Assetic
    1. Konfiguracja Assetic
      Edytujemy config.yml i dodajemy 3 linię związane z lessem tak jak to widać na przykładzie poniżej:

      # app/config/config.yml
      assetic:
          debug:          %kernel.debug%
          use_controller: false
          filters:
              cssrewrite: ~
              less:
                  node: /usr/local/bin/node
                  node_paths: [/usr/local/lib/node]
              yui_css:
                  jar: %kernel.root_dir%/../java/yuicompressor-2.4.6.jar
              yui_js:
                  jar: %kernel.root_dir%/../java/yuicompressor-2.4.6.jar
      
    2. Edytujemy nasz główny plik layoutu(base.html.twig)
      Dodając wartość less, do argumentu filter:

      #base.html.twig
      ...
      <head>
      {% stylesheets filter='less,?yui_css' '@AcmeBundle/Resources/less/main.less' %}
          <link href="{{ asset_url }}" rel="stylesheet" media="screen" />
      {% endstylesheets %}
      </head>
      ...
      
    3. Budujemy assety za pomocą Assetic’a
      php app/console assetic:dump --env=prod
      
    4. Cieszymy się śmigającym arkuszem styli kompilowanym z less’a!

symfony_black_02

Symfony2 – Dodawanie Klasy CSS do pola formularza zawierającego błąd

Case

Webdeveloper przygotował nam HTML do strony zawierającej formularz.Przy błędzie walidacji pola formularza. Pole to ma otrzymać dodatkowo klasę CSS error. Jeżeli to nie zostanie zaimplementowane, to kleint będzie wściekły, szef da po premii. A webdeveloper co ciął psd2html będzie mieć cię za Lamera!

#Rozwiązanie: 1 (Ugly)

Jest to proste, jednak wrzuca nam logikę do templateów TWIG’a. Przez co tracimy na czytelności plików TWIG. Templaty „tyją” przez ciągłe wklejanie tego samego kodu.
Continue reading