Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: batman, dodany: 10.06.2011 21:07, tagi: jquery

Kolejna część serii “the best of” zawiera niemałą ilość pluginów do WordPressa bazujących na jQuery. Wbrew pozorom nie są to małe zabaweczki, a ich funkcjonalność może zadziwić niejednego użytkownika WP. Do najciekawszych należą:

  • Promotion Slider – plugin służący do tworzenia rotujących elementów na naszym blogu
  • Folding Archives – prosty plugin modyfikujący wygląd listy naszych wpisów w archiwum
  • Scrollarama – kolejny slider. Tym razem do karuzeli trafiły najnowsze wpisy z naszego bloga
  • Tweet Blender – czyli ćwierknięcia wyświetlane na naszym blogu
  • JQuery Hovering Footnotes – tworzenie przypisów wyświetlanych po najechaniu kursorem myszy nad opisywane słowo/zdanie

Pełna lista pluginów wraz z dokładniejszym opisem oraz linkiem do źródła znajduje się pod adresem http://designbeep.com/2011/06/10/35-useful-jquery-based-wordpress-plugins-you-may-not-have-seen-before/.

Autor wpisu: sokzzuka, dodany: 10.06.2011 09:37, tagi: php

Przeglądając dzisiaj dzone natrafiłem na ciekawy wpis Roberta Eisele, który „for fun” stworzył sobie swój fork PHP oparty na wersji 5.3.6. Wrzucił tam kilka ciekawych funkcji do obsługi stringów, trochę optymalizacji, obsługę literalnych liczb binarnych oraz krótką notację dla tablic. Pełną listę znajdziecie na jego stronie. Jak sam twierdzi nie zamierza rozwijać tego forka, jest to raczej proof of concept i będzie starał się by te ulepszenie trafiły do „oficjalnej wersji”. Źródła można jak zwykle ściągnąć z GitHub-a. Co sądzicie o ulepszeniach, które wprowadził Robert ?

Autor wpisu: Śpiechu, dodany: 10.06.2011 00:22, tagi: php

Dzisiaj drugi odcinek Waszego ulubionego serialu: Wygrzebane z GitHuba. Wszystkie stacje TV rywalizują o wyłączność na emisję kolejnego odcinka, padają kwoty siedmiocyfrowe wyrażane w zimbabwiańskich dolarach…

Imagine to udana próba ujednolicenia interfejsów różnych bibliotek graficznych w zakresie manipulacji obrazami w PHP. Nieważne czy pod maską mamy GD, ImageMagick czy Gmagick. Wszystkie operacje wykonamy za pomocą jednolitego interfejsu. Dokumentacja do znalezienia tutaj.

Pomimo tego iż projekt ma dopiero nieco ponad rok, jest przez ten czas wykonany kawał dobrej roboty. Projekt ma ładną strukturę wyrażoną w namespacach, przez co można śmiało ładować tylko potrzebne klasy za pomocą standardowego SplClassLoadera (do pociągnięcia np. stąd).

O Imagine pisał php|architect, jest również prezentacja.

Poniżej zademonstruję jak można użyć tego cuda do zmniejszenia zestawu obrazków do jednolitych kwadratów i wyświetlić na ekran w locie. To oczywiście metoda dla masochistów CPU, bo normalnie człowiek przecież zapisuje obrazki najpierw na dysk, a dopiero potem wyświetla. Efekt, który chcemy uzyskać będzie wyglądał tak:

<?php
require_once 'SplClassLoader.php';
 
// rejestrujemy przestrzen nazw Imagine
// i wskazujemy gdzie jej szukac
$classLoader = new SplClassLoader('Imagine', 'lib');
$classLoader->register();
 
// importujemy niezbedne klasy
use Imagine\ImageInterface;
use Imagine\Gd\Imagine;
use Imagine\Image\Box;
use Imagine\Image\Color;
use Imagine\Image\Point;
 
$columns = 2;
$images = 4;
$singleImgSize = 250;
 
// licze calkowita szerokosc tla
$backgroundXSize = (int) $columns * $singleImgSize;
// wysokosc zaokraglam w gore dla nieparzystych
$backgroundYSize = (int) $singleImgSize * ceil($images / $columns);
 
// jezeli mam i chce skorzystac z ImageMakicka
// to po prostu importuje wyzej
// use Imagine\Imagick\Imagine;
$imagine = new Imagine();
 
// tworze pusty obrazek w czarnym kolorze i 0 przezroczystosci
$background = $imagine->create(new Box($backgroundXSize, $backgroundYSize), new Color('000', 0));
 
// tablica z nazwami obrazkow do przeskalowania
// i wyswietlenia
$imagesArray = array('img1.jpg', 'img2.jpg', 'img3.jpg', 'img4.jpg');
 
// punkty startowe wklejania
$x = 0;
$y = 0;
 
foreach ($imagesArray as $img) {
  // otwieram obrazek z dysku,
  // zmniejszam go do kwadratu
  // uzywam trybu OUTBOUND,
  // czyli pilnuję proporcji i wywalam fragmenty dluzszego boku
  $image = $imagine->open('../images/' . $img)
            ->thumbnail(new Box($singleImgSize, $singleImgSize), ImageInterface::THUMBNAIL_OUTBOUND);
 
  // wklejam zmniejszony obrazek do tla
  // podajac lokalizacje lewego gornego rogu wklejania
  $background->paste($image, new Point($x, $y));
 
  // licze pozycje startowa dla nastepnego obrazka  
  $x += $singleImgSize;
  if ($x >= $canvasXSize) {
    $x = 0;
    $y += $singleImgSize;
  }
}
 
// obiekt Image obsluguje metode
// __toString() w postaci danych binarnych PNG
// wystarczy tylko podac naglowki
header('Content-Type: image/png');
// zamiast wyswietlac mozemy uzyc
// $background->save('obrazek.png',array('quality' => 85));
echo $background;

Oprócz typowych manipulacji typu skalowanie czy konwersja na inne formaty, projekt ma aspiracje na dosyć zaawansowane manipulacje obrazami typu odwracanie w poziomie i pionie, refleksy, wykresy, ujednolicony interfejs rysowania obiektów, histogramy itd.

Obrazki na licencji CC-BY pożyczone z Flickra. Właściciele praw do obrazków: pierwszego, drugiego, trzeciego, czwartego.

Autor wpisu: Tomasz Kowalczyk, dodany: 07.06.2011 22:49, tagi: symfony, framework, php

Problemy, jakie napotykamy podczas programowania wszelkiego rodzaju aplikacji można podzielić na dwie główne kategorie - wymagające doświadczenia i wymagające wiedzy. O ile te związane z doświadczeniem można rozwiązać bez pomocy innych - rozwiązania można po prostu wywnioskować na podstawie doświadczenia, o tyle związane z wiedzą nie są takie proste. Ich rozwiązanie to zdobycie informacji o [...]

Autor wpisu: batman, dodany: 06.06.2011 18:45, tagi: javascript

Kolejne “the best of” jakie wpadło mi w ręce zawiera dziesięć największych błędów, jakie popełniamy podczas pracy z językiem JavaScript. Do grona naszych najcięższych przewinień zaliczono między innymi stosowanie zmiennych globalnych, nieużywanie średników, korzystanie z funkcji eval czy niestosowanie klamer.

Pełną listę błędów wraz z ich przykładami oraz wyjaśnieniem dlaczego nie powinno się tak programować znajdziecie pod adresem http://net.tutsplus.com/tutorials/javascript-ajax/the-10-javascript-mistakes-youre-making/.

Autor wpisu: Aiv, dodany: 06.06.2011 08:25, tagi: php

Dzisiaj w ręce wpadł mi „ciekawy” kod który ostatno zaraża niezaktualizowane sklepy bazujące na osCommerce. Kod sam w sobie nie jest bardzo skomplikowany, ale sposób w jaki został napisany zasługuje na wyróżnienie [...]Ataki na web aplikacje – cz. 8

Autor wpisu: Tomasz Kowalczyk, dodany: 05.06.2011 22:58, tagi: javascript, jquery

jQuery to biblioteka, którą albo się uwielbia, albo nienawidzi. Można ją wychwalać za prostotę pisanego kodu i umożliwienie programiście tworzenie w prosty sposób zaawansowanych rozwiązań. Z drugiej strony, jako najbardziej popularne rozwiązanie stosowane przez twórców stron internetowych zebrało bardzo ostrą krytykę wśród tych, którzy są zwolennikami pisania własnego, "czystego" kodu, pozbawionego wszelkich "ulepszaczy". Niezależnie od [...]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.