Webdevelopment

PHP Tips n’ Tricks

Doskonała prezentacja Radosława Benkela dotyczą trików, które można wykorzystać w codziennej pracy z kodem php.

Tags: ,

niedziela, Styczeń 22nd, 2012 php, Symfony 2.0, Webdevelopment Brak komentarzy

Symfony 1.4 w chmurze

Znalazłem doskonałą prezentacje autorstwa Krisa Wallsmitha dotyczącą uruchamiania symfony 1.4 w chmurze Amazonu. Opisuje ona:

  • implementacje doctrine 1.2 na Amazon RDS,
  • zarządzanie sesją na Amazon EC2,
  • Upload Plików na Amazon S3,
  • konfigurację środowiska na lokalne środowisko developerskie,
  • deployment projektu do cloud’a.

W sieci nie ma wiele przykładów co do tego typu implementacji symfony 1.4. Więc uważam tę prezentacje jako cenne znalezisko.

Tags: , , , , , ,

Mały fail po migracji.

Od 22.10 blog był niedostępny dla czytelników. Ponieważ miała miejsce przeprowadzka na nowy serwer (linuxpl.com). Generator subdomen w panelu zostawił mi index.html w głównym katalogu Vhosta i tak oto ruch nie był kierowany na index.php

W produkcji są 4 wpisy na tematy związane z Doctrine:

  • Doctrine: behaviour NestedSet
  • Doctrine: Tworzenie tabel w utf-8
  • Doctrine: uruchamianie dodatkowych zapytań po build
  • Doctrine: behaviour geographical

czwartek, Listopad 10th, 2011 czas wolny, Webdevelopment Brak komentarzy

Optymalizowanie ilości Http requestów

Jednym ze sposobów na optymalizacje ilości requestów do strony, oraz zmniejszenie ilości przesyłanych danych z serwera jest łączenie i kompresowanie plików ze skryptami java script. Jest to możliwe gdy przeglądarka obsługuje taki format skompresowanych plików js.

› Continue reading

Tags: , ,

SQLSTATE[HY000]: General error: 1005 Can’t create table

Jeżeli przy próbie wywołania polecenia:

$symfony doctrine:insert-sql

Wyskakuje Ci błąd

SQLSTATE[HY000]: General error: 1005 Can't create table 'TwojaBazaDanych.#sql-6c_2d' (errno: 121)

To znaczy że mysql nie może utworzyć relacji między obiektami, z trywialnego powodu pole klucza obcego jest różnego typu od pola powiązanego w lokalnej tabeli.

› Continue reading

Tags: , , ,

wtorek, Luty 22nd, 2011 doctrine, MySql, php, symfony, Webdevelopment 2 komentarzy

WordPress dodawanie postów do facebook’a (facebook share)

Najprostszym sposobem by dołączyć możliwość podzielenia się postem na facebook’u jest instalacja wtyczki np. ShereThis.

Jednak jeżeli nie chcemy nadmiernie obciążać WordPressa dodatkowymi pluginami i ładującym się trzy dni javascriptem. Można to zrobić w template.

› Continue reading

poniedziałek, Listopad 29th, 2010 php, WordPress 1 komentarz

Javascript: Walidator Numeru Rachunku Bankowego (NRB)

Opis Formatu NRB

Format NRB jest to 26 cyfr zapisanych w formacie:

CC AAAA AAAA BBBB BBBB BBBB BBBB

Gdzie:

  • CC to suma kontrolna (2 cyfry),
  • AAAAAAAA to numer rozliczeniowy jednostki organizacyjnej banku (8 cyfr),
  • BBBBBBBBBBBBBBBB to numer rachunku klienta w banku (16 cyfr).

Więcej na ten temat powie nam wikipedia.

Algorytm Walidacji:

  1. Wytnij znaki nie numeryczne z ciągu wejściowego i przejdź do kroku 2.
  2. Jeżeli długość ciągu znaków wynosi 26 to przejdź do kroku 3 w przeciwnym wypadku zwróć false.
  3. Do ciągu znaków dopisz kod kraju 2521, który odpowiada kodowi literowemu PL (P - 25, L - 21).
  4. Dwa pierwsze elementy ciągu zawierającego numeru konta przenieś na koniec tego ciągu(które zawierają sumę kontrolną).
  5. Przeglądaj numer konta od końca mnożąc kolejno: ostanią cyfrę numeru konta z pierwszą wagą  zawartą w tablicy wag. Sumując wynik powyższego mnożenia.
  6. Jeżeli wynik  reszty z dzielenia przez 97  jest równy jeden to zwróć true w przeciwnym wypadku zwróć false

Implementacja funkcji sprawdzającej poprawność NRB

function NRBvalidatior(nrb)
  {
    nrb = nrb.replace(/[^0-9]+/g,'');
    var Wagi = new Array(1,10,3,30,9,90,27,76,81,34,49,5,50,15,53,45,62,38,89,17,
            73,51,25,56,75,71,31,19,93,57);
 
    if(nrb.length == 26) {
      nrb = nrb + "2521";
      nrb = nrb.substr(2) + nrb.substr(0,2);
      var Z =0;
      for (var i=0;i<30;i++) {
        Z += nrb[29-i] * Wagi[i];
      }
      if (Z % 97 == 1) {
        return true;
      }else{
        return false;
      }
 
    }else{
      return false;
    }
  }

Wywoływanie sprawdzania przy edycji pola lub wysłaniu formularza

$('form').submit(function(){
  if(NRBvalidatior($('input#nrb').val()))
  {
    return true;
  }
  else
  {
    return false;
  }
});

Tags: , , ,

wtorek, Listopad 16th, 2010 AJAX, JavaScript, jQuery Brak komentarzy

Zmiany, plany, status

Przepraszam za taką przerwę w postach drodzy czytelnicy. Dużo się działo, wiele się zmieniło w moim życiu.

Pierwszą rzeczą jest to, że w końcu odnalazłem szczęście u boku wspaniałej kobiety, która jak to mówił Ten Typ Mes:

„…dodaje pierwiastek kobiecości do rozmów, nie tylko do ciastek…”

Budzenie się rano z myślą o kimś, który potrafi tak naładować mnie pozytywną energią sprawia, że staje się lepszym człowiekiem.

Kolejną zmianą w moim życiu jest zakończenie etapu freelancera. W poniedziałek rozpoczynam pracę, na etacie. Niestety nie mogę zdradzić gdzie, ponieważ obowiązuje mnie klauzula poufności. Teraz kończę wszystkie projkety, których się podjąłem w ostatnim miesiącu, bo obowiązuje mnie klauzula o zakazie konkurencji.

Przejdźmy zatem do planów. Długie lata temat pracy magisterskiej wydawał mi się sprawą tak abstrakcyjną, że nigdy nie brałem tego pod uwagę. Staneliśmy przed problemem wyboru tematu (Ja i Maciek, z którym to będziemy pisali pracę). Po burzy mózgów doszliśmy do następujących wniosków:

Technologie:

  • PHP – phpAMF  remoting funkcji z php
  • FlashVideo – odtwarzanie vido
  • FLEX – Podstawa aplikacji GUI + Upload Plików
  • MySQL – przechowywanie testów jak i ich wyników

Opis aplikacji:

  1. Tworzenie Testu
    1. Upload pliku z wykładem (vido)
    2. Konwersja server-side avi, mpg, wmv do flv
    3. Ustawianie czasu wyzwalaczy, które będą uruchamiały pytania podczas oglądania materiału
    4. Dodawanie pytań, ustawianie poprawnych odpowiedzi (test jednokrotnego/wielokrotnego wyboru)
    5. Testowy Test, zapisanie drzewa XML do bazy danych
  2. Przeprowadzanie Testu
    1. Materiał Video jest odtwarzany
    2. Odtwarzacz dochodzi do wyzwalacza gdzie znajduje się pytanie
      1. Kontrolki Playera są blokowane
      2. Można jedynie odpowiedzieć na pytanie
      3. Odpowiedź na pytanie jest zapisywane do bazy danych
      4. Odblokowanie kontrolek playera i wznowienie playbacku
    3. Po zakończeniu odtwarzania filmu wyświetla się podsumowanie z wynikiem testu, oraz propozycjami fragmentów, które wypadało by powtórzyć
  3. Statystyki grupy studentów
    1. Informacje dla wykładowcy o najsłabiej opanowanym materiale przez grupę itp.

Po dalszych ustaleniach z promotorem, rozszerzyliśmy zakres funkcjonalności o plugin do systemu e-learningowego OpenSurce o nazwie OLAT, który jest rozwijany na uniwersytecie w Zurychu.

Co do statusu, to co rano budzę się z kacem od YouTube Data API, oraz os-commerce bo muszę freelance skończyć, nim podpiszę umowę.

Pozdrawiam,

mGz

After the session

Wszystko zadne, nawet największy kozak w pierwszym terminie. W międzyczasie poszukuje pracy o dziwo nawet czynnie, bo już mój fejm na goldenline się chyba wyczerpał.

W między czasie by mój talent programistyczny nie zardzewiał do reszty zająłem się ambitnym przedsięwzięciem, polegającym na stworzeniu Thema do wordpressa dla mojego znajomego co zajmuje się renowacją starych motorów. O dziwo stworzyłem również własnoręcznie na tablecie Wacom Bamboo wyczesany layout i właśnie jestem w trakcie jego cięcia. Ja rozumiem, że pojęcie wyczesany jest mocno przegięte. Również typografia pozostawia wiele do życzenia, ale to już są pierdoły, którymi można zająć się podczas pisania CSS’ów.

Layout Classic Motor

Layout Classic Motor

Jak to zwykle bywa po dobrze wykonanym obowiązku czas odpocząć więc dnia 7.03 uderzam tutaj:

Wyświetl większą mapę

Tymczasem zostawiam wam coś do przemyśleń, a’propos waszych wymówek w pracy.

Będzie mnie jeszcze można zobaczyć na najbliższym Barcampie oraz marcowym spotkaniu Poznań Adobe User Group

Pozdrawiam wszystkich Allegrowiczów,

mGz

Tags: , ,

Spotkanie AUG i nadchodzący barcamp

Po Wtorkowym spotkaniu Adobe User Group Poznań, na którym mogłem popisać się projektem jaki teraz robię razem z Robertem więcej na ten temat można poczytać na stronie grupy w poście zawierającym debriefing ze spotkania.
13.12.2008 o 13:00 GMT +1 Odbędzie się trzynasty z cyklu Barcamp odbędzie się on w Starym Browarze(Słodownia). Będę na pewno. Amatorom konferencji przy piwie i pizzy gorąco polecam(tylko pizza za friko). Dla osób zainteresowanych dalszymi informacjami zapraszam na Stronę barcamp’u

Tags: ,

piątek, Grudzień 5th, 2008 czas wolny, Webdevelopment Brak komentarzy