fejlesztés - 500 megfelelő bejegyzés

Mutass mindent

Jelöld be, hogy főbb mely kategóriákat akarod olvasni, vagy ha csak egyet: kattints a nevére.


Legújabb dependenciánk.

Képfeltöltés, képátméretezés, szöveg/logó elhelyezése, ratio megtartása, crop, stb.

A blogon eddig nem volt webes képfeltöltési lehetőség. Anno megoldottam hogy a kommentekben url alapján máshonnan lehessen képeket átszippantani, és az avatarok automatikusan frissültek ha valakinek volt gravatarja, de. Hát ez egy komoly missing feature. És nincs kedvem a PHP default fájlfeltöltésével meg rém puritán image libraryjével baszakodni. Ezvan. Végre valamihez nincs kedvem, ezt is megéltük.

Tud vki jobb php-s képkezelő/átméretező/feliratozó/vízjelező libet? Elég ha nem mindet teljesíti.

Haszprus

Lett a blogból egy Amazon EC2-n futó példány

©   Haszprus   |   amazon aws ec2 fejlesztés mysql

Egyik ügyfélnek EC2 kell, alapvetően azért szórakozok ezzel.

Day 2 - Fejlesztés

Pas elugrott kicsit, nekem meg van lehetőségem fejleszteni. Barcelonában sokat voltam már és főleg Pas meg buli miatt jöttem (ld korábbi postok).

Szóval ma "itthon" fejlesztek. De felrakok pár képet. Kaptam egy 4K monitort kölcsön. Meg kell mondjam tényleg nagyon szépek a betűk rajta, és egy élmény dolgozni vele.

- megkérdeztem, kimehet

Haszprus

Barcelona 2024 day 1 péntek

©   Haszprus   |   barátok barcelona első fejlesztés instant külföld olvasnivaló remarkable történelem túra

Day 1 - reptér, taxi, megérkezés

Gondolkodtam hogy bemenjek a MasterCard lounge-ba de úgy tűnik sima gold kártyát már adnak minden hajléktalannak, ez látszik is, Golddal 4000 Ft a belépő. Gondolkodtam, hogy mi legyen, bebasszak mielőtt felszállok a gépre, vagy mi. Végül az image uploader fejlesztése mellett döntöttem a friss levegőn - a dohányzó szekcióban, úgyhogy a levegő az inkább valami más volt. Örültem hogy hoztam magammal kardigánt és mellényt mert kb szétfagytam volna. Viszont haladt az image upload. Négy verziót készít a feltölöttt képekből (orig, big, medium, small). Egyelőre bejegyzésekhez múködik, de még nincs kellően összeintegrálva, utána a user avatarok jönnek, aztán ha marad energiám, akkor a kommentek.

Előtte levő napon kicserlétettem a telóm (S20) akksiját, meg vittem mobiltöltőt is, 95%-on voltam a fejlesztés befejezésekor, megnyugtató. Ha teló van, minden van.

Azt hittem a gépen fogok laptopozni vagy remarkable-özni de valszeg instant sleepbe kerültem.

Reptér előtt kicsit majréztam hogy minden oké lesz-e. A gépet 1,5 órával későbbre tolták de a fejlesztés teljesen jó elfoglaltságnak bizonyult.

Barcelonában nem éreztem a chi-t tömegközlekedéshez úgyhogy a reptéren fogtak nekem gyorsan egy taxit. Kb 35-40 EUR volt.

Pásszal benéztünk a mekibe, az első kört én fizettem, kb. 20 EUR volt.

Barcelona gyönyörű, imádom az utcáit, nagyon szép építészetileg az egész. Utoljára asszem 2019-ben voltam itt. (.)

Haszprus

FormatterChains

©   Haszprus   |   blog fejlesztés php

Különböző szövegmezők formázásai a blogon.

<?php

namespace Uberblog\Text;

use Uberblog\System\DI;

class PreSaveFormatterChains
{
    public function formatPreSaveUserTextarea(string $text,
                                              string $inputType): string
    {
        return $this->apply($text, $inputType,
            DI::MarkDownPresaveFormatter(),
            DI::BbcodePreSaveFormatter(),
            DI::TextPreSaveFormatter(),
            DI::CommentPreSaveFormatter()
        );
    }

    private function apply(string                       $string, 
                           string                       $inputType, 
                           PresaveFormatterInterface ...$formatters): string
    {
        foreach ($formatters as $formatter) {
            $string = $formatter->doThePresaveFormatting($string, $inputType);
        }
        return $string;
    }

    public function formatPreSaveEditableTextarea(string $text, 
                                                  string $inputType): string
    {
        return $this->apply($text, $inputType,
            DI::PostPreSaveFormatter(),
            DI::TextPreSaveFormatter()
        );
    }

    public function formatPreSaveGeneratedTextarea(string $text, 
                                                   string $inputType): string
    {
        return $this->apply($text, $inputType,
            DI::PostPreSaveFormatter(),
            DI::MarkDownPresaveFormatter(),
            DI::TextPreSaveFormatter()
        );
    }

    public function formatPreSavePostTitle(string $text, 
                                           string $inputType): string
    {
        return $this->apply($text, $inputType,
            DI::PostPreSaveTitleFormatter()
        );
    }
}

Like? Dislike? Ötlet? Javaslat?

(7.2-es PHP-re be vagyok korlátozva, másképp mondjuk minimum enumok lennének az $inputType-ok, most máson nem gondolkodtam, hogy mi lenne frissebb PHP-vel.)

21:09 elvileg hamarosan lesz 8.2-es PHP-nk, yeaaah

Haszprus

Heti olvasnivaló

©   Haszprus   |   amazon aws ec2 ecs elastic fejlesztés laravel php

A terv

Most épp ezt olvasom

További jelöltek

Notes

Értelemszerűen nem sorról sorra de van ezekben pár sor ami érdekes számomra. Az AWS könyvből főképp az ECS/EC2 pl. Bár kicsit más jellegű írás, mint amit kerestem (nagyon high level). Mindegy, kezdetnek egynek nem rossz.

Haszprus

Syntax highlight / prism / torchlight

©   Haszprus   |   blog első fejlesztés javascript laravel php történelem

Mivel az utóbbi időben 1-2 code sample-t is tettem az oldalra, syntax highlighthoz berántottam a prism js-t.

Közben lehet, hogy a Torchlight jobb lenne syntax highlightra, de első körben nem láttam plain php támogatást.

Amúgy én Parsedownt használok .md parsingra (ami elvileg a leggyorsabb markdown parser). The struggle is real. Mondjuk a prism se rossz, de ha lehet elkerülném a kliens oldali js bütykölést, performance okokból.

Haszprus

PSR-4 - Autoloader

©   Haszprus   |   fejlesztés php

Hát ez ugye semmi extra, aki használ bármilyen épkézláb autoloadert (pl a Composert), az tudja hogy mi az elnevezési konvenció. \Namespace\Subnamespaces\Classname, és a Classname megfeleltethető egy .php fájlnak ugyanezen a néven. Case sensitive (miután a fájlrendszer amire mappelődik a namespace, többnyire case sensitive az adott OS-en). Ennyike.

Bővebben a hivatalos oldalon.

Haszprus

Egy kis random PHP olvasnivaló

©   Haszprus   |   fejlesztés php
Haszprus

PHP verziók újításai a PHPStorm szerint

©   Haszprus   |   fejlesztés php phpstorm

8

  • @ sticher.io, php.watch

7

7.2 (ennek special jelentése van)

5

Haszprus

PSR-7 - HTTP message interfaces

©   Haszprus   |   fejlesztés php

Na ez már combosabb, nem volt türelmem/időm normálisan végigolvasni, kigyűjtöttem belőle pár core gondolatot/buzzwordöt.

  • StreamInterface
  • UriInterface
  • ServerRequestInterface, UploadedFileInterface <-- itt eléggé megbirizgálták a PHP default $_FILES tömbjét fájlfeltöltések esetére egy logikusabb struktúrával, aminek a használata kb ez:
Upload an avatar: <input type="file" name="my-form[details][avatars][]" />

Elérése PHP-ből:

$request->getUploadedFiles()['my-form']['details']['avatars'][1];

Ahol az 1 egy többfájlos feltöltés esetén az 1-es indexű (0-tól kezdődő) feltöltött fájlt jelenti.

Másik példa:

$file0 = $request->getUploadedFiles()['files'][0];
$file1 = $request->getUploadedFiles()['files'][1];

printf(
    "Received the files %s and %s",
    $file0->getClientFilename(),
    $file1->getClientFilename()
);

// "Received the files file0.txt and file1.html"

move_uploaded_file() helyett érdemes a moveTo($targetPath)-t használni.

MessageInterface: immutable, "módosító" függvények új példányt adnak vissza belőle. RequestInterface és ResponseInterface szülője.

UploadedFileInterface-re visszatérve

  • getStream()
  • moveTo($targetPath)
  • getSize()
  • getError()
  • getClientFileName()
  • getClientMediaType()

nekem egyértelműen úgy tűnik, hogy erre kivételesen érdemes egy libraryt berántani, nem magamnak leimplementálni. A blogon egyébként van egy Request classom ami sztem ügyes meg szép, de köze nincs ahhoz amit ez csinál. Lehet hogy ez egy réteg lehetne alatta, maybe. Nem tudom eldönteni. Response-t nem csináltam, de igény az volna rá.

Btw egy rakás PSR-7 implementáció van, ld. packagist.org

  • Guzzle
  • laminas-diactoros
  • slim/slim
  • slim/psr7

Guzzlehttp/psr7-nek 700 millió letöltése van a packagist-en. "Packagist is the main Composer repository". A laminas a zend-framework utódja. Abban írt anno Fater valamit egy ügyféljelöltünknek, akiből végül cégátszervezés miatt nem lett ügyfél.

Haszprus

PSR-11 - Container interface

©   Haszprus   |   fejlesztés php

"Common interface for dependency injection containers"

public methods:

public function get(string $className);
public function has(string $className);

A $className-et a PSR $id-ként említi, de szvsz nyilvánvalóan ClassName-ről van szó. (Right?)

"Users SHOULD NOT pass a container into an object so that the object can retrieve its own dependencies. This means the container is used as a Service Locator which is a pattern that is generally discouraged."

Ezen az egészen el lehet vitatkozni, lesz egy írásom majd a PHP-DI-ról, vagy ki tudja, lehet hogy már megjelenik mire ez megjelenik :Đ

Haszprus

Installing Laravel Sail on Windows

©   Haszprus   |   blog fejlesztés laravel life php

Előkövetelmények (Windowson)

curl -s https://laravel.build/example-app | bash
cd example-app
./vendor/bin/sail up

Esetleg

./vendor/bin/sail up -d

Hogy csöndben legyen, meg hogy ne pazaroljunk el rá egy külön nyitva tartandó ablakot.

Nekem most momentán azért kell egy projekthez, mert fel akartam rakni a PHPStant, és a natív Windowsos PHP-mmel valahogy akadt, és úgy gondoltam, hogy nem arra fordítom az energiámat, hogy a Windowsos PHP problémámat próbálom megoldani, hanem inkább felteszem a Sailt, mert abban úgyis van egy csomó dolog amire szükségem lenne egyébként is.

Amíg ezt leírtam, a Sail nagyjából fel is rakta magát.

Alapból egy nagyon kellemes hibaoldallal fogad, mert még nem futtattuk a migrációt.

Segítsünk ezen, futtassunk egy migrációt:

./vendor/bin/sail artisan migrate

A sailhez majd vagy fel kell venni egy aliast, vagy csinálni rá egy symlinket.

Mindenesetre fáradozásunk eredménye egy gyönyörű üres Laravel oldal a localhoston.

Pár blog-todo:

Haszprus

Encoding

©   Haszprus   |   fejlesztés google l0lzor

Voltak karakterek amiket nem tudtál migrálni? Azt hiszed ciki? Persze, hogy az. VÉRCIKI.

DE!

A Google-nek se sikerült

Üdv 2024-ben.

(Eskü nem úgy adtam meg a nevem hogy legyen benne egy ilyen kérdőjel, és valószínűleg x évvel ezelőtt még nem kérdőjel volt.)

Haszprus

My Remarkable

©   Haszprus   |   fejlesztés google hwsw

Vettem egy ilyet még kb. 2019-ben de sose írtam róla.

Az a roppant kellemes meglepetés ért egyik nap, mikor előszedtem (már jóideje a szekrényben porosodott), hogy a legrégebbi customereknek a cég úgy döntött, hogy ingyen adja végtelenül (ha jól értettem) a Google Drive, Dropbox, One Drive integrációt. Kurvajó, be is lőttem, végre zökkenőmentesen olvasgathatok ebookokat mondjuk a Dropboxomról. Ehhez korábban egy kis sync eszköz kellett, a Remarkable saját programja, elég körülményes volt kiszemelgetni hogy mi az amit át akarok vinni rá.

Jeah.

Habár amúgy a legjobb az lenne ha ki lehetne jelölni egy mappát és azt tényleg full automatikusan leszippantaná (jelenleg úgy van, hogy bemész mondjuk a Dropboxra az eszközről és kijelölgeted h mi kell onnan neked).

Eredetileg egyébként azért vettem, hogy különböző körülmények között jegyzetelgethessek rajta, ahol mondjuk nem szereti valaki ha laptopot nyomkodok miközben vele beszélek, és nekem is elvonná a figyelmemet a sok ikon. Ez meg tök nyugis, nem fut rajta kb semmi, full jó. Könnyű, végtelen akkuidő, stb. A képen épp 6%-on áll az akksi de meg nem mondom mióta a szekrényben hevert. (Az eredeti jegyzetelgetős use-case mára kevésbé aktuális.)

Nagyon hirdetik egyébként a 2-es verzióját, amin van böngésző meg minden, de szerintem azzal pont elveszíti az interrupt-mentes "kényszerfókuszált" olvasgatás lehetőségét. (Ingyen kéne persze.)

Haszprus

GuzzleHttp Client első körben

©   Haszprus   |   blog done első fejlesztés laravel php todo történelem

Van egy endpointom a blogon, amin a TODO itemeket csekkolgatom ki-be (/my/todo/toggle/{id}). Ez nem Laravelben van, hanem a jó öreg saját blogengine-ben, és most a laraveles felületre nem akarok semmi JS-t tenni. Az endpoint egy JSON-t ad vissza:

{ "checked": true }

vagy

{ "checked": false }

Annak függvényében nyilván hogy a TODO done lett-e vagy .. todo.

Igazából sosem használtam a Guzzle-t. Nem nagyon akarok sokmindent változtatni, annyit akarok, hogy az endpointomat meg tudjam hívni, amihez szükségem van arra, hogy bejelentkezett adminnak lásson a blog. Ehhez át kell küldenem a vid, uid, sid cookie-kat.

A Guzzle http kliensét akartam kipróbálni, ez a lényege a feladatomnak.

Következőt sikerült produkálni, ez egy Laravel kontrollerben van:

namespace App\Http\Controllers\Admin;
use GuzzleHttp\Client;

class TodoController
{
    public function toggle(HbTodo $todo)
    {
        $headers = [
            'Cookie' =>
                'vid=' . DI::Cookies()->getVid()
                . ';uid=' . DI::Cookies()->getUid()
                . ';sid=' . DI::Cookies()->getSid()
        ];
        $client = new Client();
        $res = $client->post(DI::Config()->siteUrl 
            . '/my/todo/toggle/' . $todo->t_id, [
            'headers' => $headers
        ]);
        $contents = json_decode($res->getBody()->getContents());

        return redirect()->route('admin.todos', [
            'checked' => $contents->checked
        ]);
    }

A fenti kódban a DI nevű class egy saját dependency injection megoldás (használhatnám a PHP-DI-t pl, de minek, ugye, itt minden saját). (Egyik nap ami azt illeti be is rántottam a PHP-DI-t a blog alá, aztán kitöröltem. Teljesen működőképes volt stb, de ... akartam írni egy postot a PHP-DI-ról hogy miért nem azt használom... majd egyszer talán. Közben létrehoztam a postot hogy nyomasszon, benne van a queue-ban, mire megjelenik, szeretnék írni bele valamit. :Đ )

Na de a lényeg: létrehozzuk a Guzzle Client-et, simán küldünk vele egy POST requestet, belesütjük a Cookiekat, json_decode-oljuk a választ az endpointról, és átirányítjuk a usert (magamat) az új Laraveles TODO admin oldalra, becsűrve az URL-be hogy done lett-e az item vagy todo (checked=0 v checked=1).

A Guzzle ->post() helyett tudna ->postAsync() -et is, az elég fontos funkció lenne, de akkor nem kapnám meg, hogy mi lett az endpoint válasza, és így nem tudnám belesütni az URL-be.

Amúgy az URL-be belesütés nyilván nem annyira hatékony módja a kommunikációnak, de leszarom, egyszerűen csak ismerkedek libekkel.

Van amikor hasznos, pl. egy sima URL logból látom, hogy mondjuk valaki hozzászólt egy topikhoz, mert az URL-ben benne van hogy &thx4=cmnt (aki nézi az URL-t, biztos találkozott már ilyennel a blogon, miután hozzászólt valami témához). Kiszedhetném belőle, a blogon van egy kellemes kis értesítős megoldás (most már azzal is találkozhattok pl. ha beléptek vagy kiléptek, vagy módosítjátok a profilotokat).

Mi ez a function toggle(HbTodo $todo)?

Éleslátók észrevehetik, hogy a Laravel tök faszán URL-ből felpéldányosít nekem egy HbTodo objektumot. Ez szerintem kurvajó. Itt a példában tök fölösleges, mert csak az ID-jára van szükségem. De annyiból mégis jó, hogy ha rossz ID lenne, akkor már eleve a Controller végrehajtása előtt kapna a user egy HTTP 404 not found hibát. Így az ID-t nem kell manuálisan validálni, hogy létezik-e. Szóval annyira mégse fölösleges. Good.

Miért nem JS-ben írom?

Mert perpill a Laravel dolgaira akarok fókuszálni, épp egy backend developer role-ra pályázok, és nem akarok JS-sel foglalkozni most, így is végeláthatatlan dolognak kell utánanézzek. Egyébként természetesen JS-ben lenne logikus, pláne ha már ilyen nice endpointom van ami JSON-t ad vissza.

Másfelől perpill nem tenném le a voksomat semmilyen JS lib mellett, a Reactot évente újra kell írni (nekem nem lesz ennyi kapacitásom a blogra, most épp van, de tudom hogy nem lesz), jQuery-t minek gyakoroljak 2024-ben, stb.

Legfőképp meg azért mert a Laravel admin felületemre egyelőre semmi JS nincs bevezetve. Pedig fájóan kéne egyébként. Fel is jegyzem:

Haszprus

Typora

©   Haszprus   |   blog fejlesztés hwsw

Megvettem a Typorát (nem volt különösebben drága szvsz, ~7000 Ft), ami egy - szerintem - kurvajó markdown editor.

  • WYSIWYN - What you see is what you need. Nem a forráskódot szerkeszted hanem a vizuális végeredményt. Vagy írod be a kódokat és rögtön konvertálja át a megjelenésre, vagy vannak shortcutok és azokat használod (pl. H1 = Ctrl + 1, stb, tök kényelmes.)
  • Atom kellemes UI
  • Jó shortcutok
  • Simply awesome

Te mit használsz Markdown szerkesztésre?

(Itt a blogon egyébként egyszerűen markdown "forráskódot" írok, egyelőre csak az adminban elérhető, később lehet hogy bevezetem a kommentek közé is, de még tesztelgetem. A Parsedown-t használom rá egyébként.)

Vannak egyébként bugjai, de így is simán megérte.

Elgondolkodtam azon, hogy mi lenne ha a blogpostokat gitben (is?) tárolnám (DB helyett / mellett). A mass replace dolgokat eléggé megkönnyítené. Persze elég sokat kéne kódolni hozzá (importálni folyton a változásokat markdownból vagy pláne oda-vissza syncelni - itt mindig szem előtt kell tartani hogy ez nem egy ezer fős projekt, szóval mennyi időm van magyarán).

Haszprus

Hogy tartom up-to-date-en magam?

©   Haszprus   |   amazon android biznisz css fejlesztés google interjú kondi laravel meló php python react sport
  • amikor látok valami hírlevelet, feliratkozok rá
  • blogok
  • amikor látok valami érdekes cikket, felveszem egy Learn mappába könyvjelzőnek, és rendszeresen végigmegyek rajta
  • google developers, learn.microsoft.com, coursera, linkedin learning (subscriber vagyok évek óta), pluralsight, daily.dev, web.dev, dev.to, reddit, amazon oldalak, infoq
  • bizonyos projektek/nyelvek dokumentációi, pl. Laravel, Flask
  • youtube fejlesztői csatornákra feliratkozás & könyvjelző
  • tiktokon meglepő módon csomó érdekes főképp css/frontend tartalom jön szembe, de vannak keményebb fejlesztői témák is, pl. van egy csávó aki a GitHubnál dolgozik és szokott gondolatokat megosztani
  • podcastok nem annyira, de hallgattam Python podcastot pl.
  • freecodecamp
  • GitHub projektem van arról hogy miket akarok tanulni
  • a blogomba is gyűjtök listákat hogy miket akarok csinálni/tanulni
  • idén kipróbáltam a React Native-et, a Vercelt, a Laravelt, az Android Studiot, egy rakat CSS újdonságot aktívan használok, lokálban kipróbáltam a PHP8 újdonságait
  • ChatGPT-vel / Geminivel generáltattam egy rakás kártyát és betettem Ankiba aztán végigmentem rajtuk / egy részükön
  • néha megnézek interjú kérdéssorokat, volt h ebből is csináltam Anki kártyákat
  • még 2019-ben vettem egy Remarkable-t, időnként elolvasok 1-2 könyvet rajta
  • ja és vannak mindenféle audio anyagok is, én pl. sokáig subscriber voltam (vagyok? ) Headwayre, úton valamerre vagy kondi közben kiváló
Haszprus

nesbot/carbon

©   Haszprus   |   blog első fejlesztés laravel php történelem

Tudnivalók

  • carbon.nesbot.com
  • An API extension for DateTime that supports 281 different languages.
  • A legújabbhoz (most épp) 8.1-es php kell
  • Carbon::now()
  • Ezt használja a Laravel, tipikusan now()-ként hivatkozik rá

Blade template-ben így lehet használni, ha a meződ alapból nem lenne Carbon [ld lejjebb]:

<div>
    {{\Carbon\Carbon::parse($todo->t_inserted_at)
        ->diffForHumans()}}
</div>

Vagy így is:

@inject('carbon', 'Carbon\Carbon')
<div>
    {{$carbon::parse($todo->t_inserted_at)->diffForHumans()}}
</div>

Amit megjelenít (pl):

1 day ago

Vagy magyarul:

{{$carbon->parse($todo->t_inserted_at)
    ->locale('hu_HU')->diffForHumans()}}

A kimenet:

1 napja

A locale('hu_HU') nem szükséges, ha a config/app.php-ben be van állítva, hogy

    'timezone' => 'Europe/Budapest',

És akkor említettem hogy "ha a meződ nem lenne alapból Carbon". A Laravel ugye egy inserted_at és egy created_at mezőt használ a db-ben a rekord beszúrási/frissítési időpontjaira. Ezeket a mezőket a Laravel alapból castolja Carbon példányokra, így alapból hívható rajtuk a diffForHumans metódus, illetve amúgy bootolhatod úgy is az appot hogy bizonyos mezőket alapból castoljon Carbonra.

Személy szerint nem ezeket a mezőneveket használom a DB-ben a blogon, de a Laravel modelljeit lehet instruálni, hogy más mezőneveket használjon, így azokat is Carbonná konvertálja by default, megkönnyítve a template-ben a dolgunkat, nem kell a Carbont külön injektálni. A Laravel setupolása igazából eredetileg nem volt a célom ebben a postban, úgyhogy nem is megyek bele jobban. :)

Az a gyanúm, hogy frissebb Laravelekben lehetne csinálni egy ilyet, de a blog momentán 7.2-es php-n fut (ami 7-es laravelt jelent), úgyhogy itt ezt nem tudom kipróbálni. Az AppServiceProvider.php-ben van egy boot metódus:

    public function boot()
    {
        // ...
        Blade::stringable(function (Carbon $date) {
            return $date->diffForHumans();
        });
    }

Ezzel elvileg az összes dátumot így lehetne kiíratni. Idő hiányában ezt most nem tudom kipróbálni 11-es laravel projektben, mert mozdulnom kell a köv témára. :) Next time maybe.

Nyilván egy csomó dolgot tud még, szóval ld. fenti link, vagy nesbot/carbon on packagist, vagy laravel.com doksi.

20:12 syntax highlighthoz berántottam a prism-öt.

Haszprus

Checkboxok

©   Haszprus   |   első fejlesztés php todo történelem

Valami kurvalassú benne de most már lehet (nekem) a bejegyzésekben a checkboxokat UI-ról kipipálni és megjegyzi veeheheh. Kibaszott egy monstrum megoldás, mert amellett h felveszi DB-be, átírja a szerkeszthető szövegmezőt is (ami nemrég került bevezetésre), meg a legenerált köztes HTML mezőt is. Gyakorlatilag újragenerálja a bejegyzést. Mivel ez nem lesz egy túl gyakori művelet így 0.1-nek bőven megteszi. Szerintem ez lesz az első feature amitől megválok a jövőben, nem nevezném elegánsnak.

Ehun egy-két példa:

ápr. 08. 19:45 sose válok meg tőle, imádom, eddig kb. 100 létrehozott todonál tartok

Haszprus

Laravel Breeze

©   Haszprus   |   css done első fejlesztés javascript laravel mysql php react történelem typescript

$ ./sail composer require laravel/breeze --dev

(Ja a ./vendor/bin/sail -re van egy symlink.)

(Ezt a parancsot így wsl-ben kell kiadni ha épp Windowson vagyunk.)

Milyen csomagjaink vannak most?

Csomi Miez
User reg, login, pwchange, pw confirm, pwreset, simple profile page + opcionálisan Livewire, Inertia + opcionálisan Vue/React. Pretty much out of box if you ask me.
A Laravel saját Docker wrappere, felhúz neked egy PHP containert, MySQL containert, Redis containert, látok itt még valami test, mailpit és selenium konténereket. Aham a mailpitet eléred a 8025-ös porton, ahol ül egy lokál inbox a rendszerből kiküldött emailekkel (standard thing)
"authentication system for SPAs (single page applications), mobile applications, and simple, token based APIs"
A Laravel REPL-je
DateTime, bővebben egy hamarosan megjelenő bejegyzésben
"beautiful error reporting"
it's like Tailwind CSS, but for the PHP command-line applications
"beautiful error page for Laravel apps" - hozzáteszem tényleg kurvajól néz ki, ez volt az első dolog amivel találkoztam a Laravel felrakása után (írási jogosultság-para miatt), szép, true.

Aham, a feléről nemtom micsoda, a Breeze-t most ismertetem, a Sail egy Docker-compose wrapper a Laraveltől, a Tinker öö passz, a Carbon ha az amire gondolok akkor valami időkezelés, Collision az valami hibakezelő cucc commandline-ban, Termwind passz, Ignition mintha az is valami hibakezelés lenne. ápr. 07. 19:35, közben utánanéztem a dolgoknak, be is írtam a táblázatba

Breeze

Laravel Breeze is a minimal, simple implementation of all of Laravel's authentication features, including login, registration, password reset, email verification, and password confirmation. In addition, Breeze includes a simple "profile" page where the user may update their name, email address, and password.

Okés.

Laravel Breeze's default view layer is made up of simple Blade templates styled with Tailwind CSS. Additionally, Breeze provides scaffolding options based on Livewire or Inertia, with the choice of using Vue or React for the Inertia-based scaffolding.

Értem.

Igazából Nekem egy loginra (screenre) volt szükségem, mert eggyel korábban, amikor még aludtatok, a

$ ./sail artisan install:api

eredményeképp azt kaptam, hogy

Route [login] not defined.

Szóval gondoltam mi lenne ha kivételesen ezt nem írnám meg magamnak manuálban, hanem megnézném, hogy mit ad a Laravel. Hát itt tartunk. Azaz már nem egészen itt, mert a composer require laravel/breeze után ez volt a javasolt köv lépés:

$ ./sail artisan breeze:install

Itt felajánlott amolyan ASCII UI-on egy pár választási lehetőséget, én a következő szavazatokat adtam le:

Kérdés Válasz
Which Breeze stack would you like to install? React with Inertia
Az inertiáról egyelőre nem tudom hogy micsoda, de a React az azért jó, mert a csőben levő ügyfelünk Reactozik.
Would you like any optional features? Dark mode & TypeScript
Ezeknek meg Pas fog örülni
Which testing framework do you prefer? Pest
Itt fel volt kínálva a PHPUnit is de azt ismerjük és véletlen túl hatékonyak lennénk benne.
Haszprus

Laravel @ coreconsult

©   Haszprus   |   biznisz coreconsult fejlesztés laravel life meló php

pas fater haszprus sail eloquent php 8.3 laravel 11.0 wsl2 docker resourcecontroller resourcemodel migrations grid layout & coming ecs ec2 redis queue

Bennem most felmerult h esetleg ujrairhatnank a site-ot (cchu) ebben

...

Aztán belenéztem a cchu-ba hogy milyen feature-ök vannak benne, hát good luck hogy ezt szó szerint újraírja valaki. Nyilván mást lehet írni helyette. De elég.. brutál dolgokat tud. Nem is értem, hogy a francban volt erre energiám anno. (nem a publikus felületre gondolok annyira hanem a 'members area'-ra.)

Lehet h tenyleg autista vagyok? Mindenhez redirectet irok, most ez az uj Thing.

Kurvajol rendet raktam a kategoriak kozott, legalabbis jobb lett, mint volt. Thx 2 Laravel Category Admin UI.

A mai fejlesztest kifejezetten elveztem, ujra.

Viszont nem foglalkoztam az Amazon cuccokkal Ma masodik kor a potencialis uj ugyfelnel... Q elet.

Viszont Markdown power

Haszprus

Laravel in da house

©   Haszprus   |   blog fejlesztés laravel php

Raktam be a blog alá laravelt jól. Egyelőre - és várhatóan a jövőben is - kizárólag admin funkciókhoz. Nem rossz az ha 20 év múlva is megy valami.

Vicces, 2 hónapja még minden dependenciámat ki akartam vakarni a blog alól, most meg épp abban vagyok h berántsak ezt-azt.

Szerintem ezt a site-ot amúgy úgy érdemes csinálni - és nagyjából így is van -, hogy a "mainstream" oldalhoz nem nagyon használok külső dolgokat, az adminisztrációhoz, fejlesztéshez, meg igen.

DE MIÉÉÉÉRT

Mert előfordulnak röpke 10 évek az életemben amikor mondjuk nem annyira foglalkozom a bloggal, és utána kb lehetetlen a régi dependenciákkal mit kezdeni, meg ugye nem is szereti az ember annyira a lejárt dolgokat, de nehéz upgrade-elni, kivakarni, stb. Ez nem egy 200 fős projekt, érted. Nincs folyamatosan up-to-date tartva. Tökjó ha olyan dolgokból épül, ami menni fog az unokáimnak is.

Most idén amikor elkezdtem foglalkozni vele újból, konkrétan taskokat hoztam létre arra, hogy pár dependenciától nézzem már meg hogy miként tudnék megszabadulni. Hát sejthető hogy mennyire sikerült. (Semennyire.)

Ugyanakkor ami mondjuk csak lokál fejlesztéshez volt használva - vagrant - azt nyilván 0 sec alatt kivágtam.

Mondjuk most már kezdek úgy behúzni ezt-azt hogy kb feature switchelhető hogy van-e vagy nincs, azt' max nincs használva az adott funkcionalitás. Dehát ezt nyilván nem lehet mindennel megcsinálni.

Haszprus

Back to "normal"

©   Haszprus   |   amazon aws barátok blog ec2 ecs fejlesztés laravel life meli mysql php

Voltak itt Meliek. Elmentek. Altalaban nem erzem magam olyan egyedul, mint most. Csak most eros a kontraszt.

Konkretan ram tort a panik.

Idokozben vege lett.

Beszeltem anyammal ahol a "true self"-em elojohet. Elegge elveztem, alig tudtam abahagyni, vegul azert ejjel 2.30kor lekorlatoztam magam.

Ezeket at kell nezzem a keddi interjuig

Es tok jo lenne ha el tudnek . De lathatoan nehezen menedzselem a prios dolgokat. Anyam tanacsa: mi hataridos. Nos egyedul a keddi meeting hataridos, a tobbi a kutyat nem erdekli (magamon kivul) hogy elkeszul-e v mikor

Meliek behuztak a , lol

De a true selfet egyebkent szivesen megmutatnam masoknak is, de valszeg korlatozottabb lenne ra az erdeklodes.

, ami valszeg senkit se erdekel egyebkent, de engem annal inkabb

Haszprus

Laravel & forge 1st step

©   Haszprus   |   coreconsult fejlesztés laravel meló php

Felraktam a Laravelt, kapásból egy hibaüzenettel indított, de kurvára tetszett hogy hogy néz ki. Regisztráltam magam a -on is, itt lehet szervert bérelni 12 USD/hótól.

Ma derült ki számomra hogy az új ügyfelünk már múlt héten visszajelzett hogy lesz meeting, de csak Past címezték be... én meg teljesen magam alatt voltam, hogy még csak válaszolni se válaszoltak...

Haszprus

Bejegyzéskategóriák tisztogatás

©   Haszprus   |   blog

Noh a bejegyzéskategóriáknál csináltam egy nagyrendrakást, be lett állítva h melyik mászhat fel automatikusan és melyik nem, volt egy rakat amiket visszamenőleg leszedtem a bejegyzésekről.

Haszprus

Commentdelay 2007-2024

©   Haszprus   |   blog bme fejlesztés over

Akik végigküzdötték velem a BME-s vizsgaidőszakokat, talán emlékezhetnek, hogy volt egy commentdelay mód a blogon, amit ha bekapcsoltam, akkor az aznapi kommentek nem jelentek meg, csak éjféltől. Így redukáltam a site-ra fordított függőségi időt. Mert ugye akkoriban rengeteg komment jött (asszem 169 komment volt egy nap a csúcs), egész nap volt mit olvasgatni, meg mire válaszolgatni.

Nos ezt a funkciót most eltemetjük, béke poraira.

Haszprus

OMG this tool is beautiful

©   Haszprus   |   blog buli css design fejlesztés php

Blog health check & maintenance.

(A második kép valójában nem kattintható de már a fülemen jön ki a CSS hegesztés, sry.)

Még gondolkodom rajta hogy automatizáljam-e az ilyen orphanok törlését. Bizonyos esetekben mehet, de mondjuk találtam értékes adatokat is a múltból amiket restauráltam. (Pl. egy rakás kommentet egy törölt bejegyzéshez.)

Haszprus

utf8mb4

©   Haszprus   |   blog fejlesztés php

Oké sikeresen áttértünk utf8mb4-re. Ofkorsz élesen kellett kipróbálni. Ofkorsz elhasalt a felénél. De most már lehet smiley-kat írni a szövegbe. Mármint igazi smiley karaktereket. Mind blown.

Erre azért volt szükség mert kimásoltam ide egy chatrészletet és elveszett a bejegyzésem smiley-tól hátralevő része. Elsőre nem vágtam hogy mi van.

A dolog mindenesetre elég könnyen ment. Nem is vártam mást, annak ellenére hogy egy encoding váltás anno micsoda KŐKEMÉNY SZOPÁS volt.

Haszprus

Dübörög a várólista

©   Haszprus   |   blog fejlesztés

Helyreállítottam ezt a funky feature-t és így sokkal nyugodtabban írkálok mindenféle fasságról. Mint pl arról hogy helyreállítottam ezt a feature-t.

Talán valahogy még rankelnem kellene a várakozó bejegyzéseket, hogy a legvégére maradjanak a futottak még kategóriájúak, de nem tudtam kitalálni jól automatizálható metrikát. Illetve ki tudja lehet hogy a legjobbakat érdemes a végére hagyni (feltételezve hogy lesz olyan pont amikor egy darabig nem lesz a várólistában semmi, akkor tökjó ha a legjobb post a legújabb).

Haszprus

@!!#

©   Haszprus   |   blog fejlesztés php phpstorm

Hogy b*nád meg phpstorm, besz.pattál a refaktorral. Hát a f.szom, nem mindent nevezett át.

11:45 resolved.

Haszprus

Moderálási alapelvek

©   Haszprus   |   blog fejlesztés film

Mielőtt hozzászólást írsz, tudnod kell, hogy…

  • Fikázások nem jelennek meg az oldalon.
  • Ha filmhez írsz, többet írj, mint hogy tetszett vagy sem.
  • Film- és zenekérések törlésre kerülnek.
Haszprus

Redirects++

©   Haszprus   |   blog fejlesztés seo

Csak csendben elég brutál képessége lett az archívumnak. Mondjuk nem csoda, beletoltam pár nap fejlesztést. Gyakorlatilag akárhova lehet kattintgatni és mindenre jön elő értelmes kontent. Nincs üres oldal. És nem duplicate content, hanem szépen egy rakat redirekt/logika.

Miért: seo miatt. Brutális mennyiségű nemlétező (tartalomtalan) oldalt indexelnek a blogon. Ezt igyekeztem megszűntetni, megtartva az archívum elég combos funkcionalitását.

Mint a képen látjuk, a társszerzők is bekerültek a logóba

Haszprus

Vaffankulo

©   Haszprus   |   blog fejlesztés php

Baszki kikapcsolt a gepem, a legizgalmasabb resznel. Visszakapcsolom.

23:09

Végre zöld a phpstan, el se hiszem, persze új baseline fájllal nyilván csak zöld lehet, ez némileg levon belőle.

A mai nap kiemelt kommitja: render templates with reflection. Yeah.

Haszprus

PHPStan baseline -20%

©   Haszprus   |   fejlesztés php

Feb 6 óta 21%-kal kisebb lett a phpstan-baseline.neon fájl, ami a(z amúgy 7-es levelre állított) phpstan baseline fájlja.

(Mi az a baseline? Ez sorolja a projektben található hmm szabálysértéseket/hinteket.)

Good.

Haszprus

Linkbár 404 byby

©   Haszprus   |   fejlesztés life seo

Fuh kiganéztam a linkbárt a kis kezemmel. Írtam ugyan egy toolt ami rendszeresen fel fogja annotálni a halottgyanús linkeket, de nem 100% megbízható h egy oldal vajon tényleg nem létezik-e. Unfortunately.

Mindegy, dobtam a lejárt linkeket, ez is rontotta a seo-t.

Ja így is maradhattak még, főleg azokat néztem meg amik halottgyanúsnak voltak jelölve

Ain't Nobody Got Time Fo' Dat

Haszprus

A terrible decision

©   Haszprus   |   blog fejlesztés google seo

Ez a teljesen custom szűrhető archívum egy viszonylag bonyi de kurvajó feature.

Egész addig, amíg nem gondolsz bele, hogy a keresőbotok (hello SEO) mit kezdenek vele.

Szerencsétlen bot idejön, és azt találja, hogy millió féle archívum oldal elérhető, a fele duplicate kontent, a fele üres. Emberi user szerintem könnyen átlátja hogy mire érdemes szűkíteni, de a logból tűnt fel hogy értelmetlen oldalakat indexelnek ezerrel a botok. Ideiglenesen kikapcsoltam pár dolgot szegények miatt. Hamarosan érkezik egy jobb megoldás. (Amin még kénytelen vagyok gondolkodni előtte )

Haszprus

JS Days

©   Haszprus   |   fejlesztés javascript

Lesz ma egy javascript conf, illetve 3 napos. Kíváncsi vagyok.

feb. 22. 13:12 hát, a day 1-2 nem mondhatnám h lekötött, a day 2-t már teljesen háttérben néztem, még ma benézek talán a day3-re, de sok elvárásom már nincs, valszeg fejleszteni fogok közben.

feb. 22. 17:06 vállalhatatlan volt, kilőttem.

Haszprus

Automata refaktor #2

©   Haszprus   |   fejlesztés php phpstorm

Muszáj vagyok tovább menni az automata refaktorálás "csapdáin".

Valamiért a PHPStorm is nagyon kínálgatja hogy egy függvényből való visszatérés előtt az utolsó változót inline-oljam, és a Rector is simán automatán kiirtja a fölöslegesnek vélt utolsó változókat return előtt, tehát:

$x = something(..);
return $x;

Helyett használjam ezt:

return something(...);

De vaffankúló (amúgy ezt nem szoktam használni, de ide illik), komolyan, miért?! Mi ez a trend? Rájöttünk ezer éve, hogy a függvénynevek és változónevek ugye milyen fontosak hogy jól legyenek elnevezve, erre jön valaki (egy egész trend), és azt mondja, hogy szerinte spóroljunk meg egy változónevet.

Ami azt jelenti, hogy elveszítesz egy tök fontos információt, hogy mi történt az utolsó lépésben.

Csak a példa kedvéért:

function foo($pattern) {
  // ... some other logic here ...
  return preg_replace('{^(([^.+*?\[^\]$(){}=!<>|:\\\\#-]+|\\\\[.+*?\[^\]$(){}=!<>|:#-])*).*}', '$1', $pattern);
}

A fenti kódot a Composer Autoloaderéből szedtem, szóval teljesen real world, és biztosan nem a saját hülyeségem (ott fel van kommentezve* amúgy, és nem ennyiből áll a függvény, de ettől még tök jó példa). Tegye fel a kezét, aki szerint tök fasza, ha nincs elnevezve, hogy mit is kapunk ebből a preg_replace-ből. :Đ

* arról nem is beszéltem h van aki szerint a kommentek is hülyeségek :D Egy időben amúgy totál ezt vallottam én is, most szopok rendesen ahogy refaktorálom a blogot :D Kommentezek "mindent". (És nem azért mert nem használtam jó változóneveket/függvényneveket.)

Haszprus

Azért óvatosan az automata refaktor toolokkal

©   Haszprus   |   fejlesztés php

Most hogy csak egy példát mondjak a Rectorból, de eddig amúgy 6 konkrét rule-t tiltottam le belőle és 2 setet egyszerűen használhatatlannak ítéltem (a DEAD_CODE-ot és a CODE_QUALITY-t)

Legyen két példa:

settype($x["hello"], "string");

Szerinte lecserélhető erre (le is cseréli szorgalmasan):

$x["hello"] = (string)$x["hello"];

Ez tökjó de ugye undefined index error kapásból ha az adott index nem létezik, és azért idegesít ez engem, mert sztem tök nyilvánvaló, szóval nem értem hogy hogy hozhatnak létre ilyen rule-t.

Másik:

private static foo($unusedVariable) { // some code that doesn't use $unusedVariable }

Szerinte lecserélhető arra hogy

private static foo() { // some code }

Ezt bőszen meg is teszi. Oké. És mi van azokkal a függvényhívásokkal, amik átadják ezt a változót? Azokhoz nem nyúl hozzá. ¯_ (ツ) _ / ¯ Gyanítom akkor se, ha mondjuk nem az utolsó hanem egy közbülső unused variable-t töröl ki a függvény szignatúrájából. Ami ugye nyilvánvalóan konkrét bugot eredményez, hiszen elcsúszik a paraméterátadás.

Igazából végül annyi ilyen szart kellett letiltanom hogy nem maradt javaslata a kódra nézve Eh. Na majd futok vele talán még köröket.

Haszprus

React Native

©   Haszprus   |   android fejlesztés react

Egyébként React Native-vel szórakoztam ma egy kicsit.

Kellemes. Korábban Reactoztam (Reacteztem) már, úgyhogy ez a rész sok újdonságot nem hozott. A JSX-et asszem kifejezetten szeretem. Pár óra alatt sikerült összerakni egy gagyi kis mobil appot úgy, hogy korábban mobilfejlesztéssel viszont nem foglalkoztam (igazából elvből távol akartam tartani magam ettől a témától, mondván hogy úgyse lehet mindenhez érteni).

Na jó, hétvégén kipróbáltam az Android Studiót is Kotlinnal, 40 percben. Ott egy Hello Worldig jutottam, utána kilőtte a gépemet az ütemezett gépkilövő, amit múlt héten üzemeltem be újra az addikció uralása végett.

Mostanság eléggé rákattantam a fejlesztéssel kapcsolatos ismereteim aktív szélesítésére.

Haszprus

WebP

©   Haszprus   |   coreconsult fejlesztés

Esettanulmány.

www.coreconsult.hu logó (képfájl)(ld. korábbi bejegyzésemben vagy a site-on)

IRCQuote fight! In the ring:

PNG WebP
Fájlméret 200 KB 14 KB

A többi képet is megpróbáltam átkonvertálni, 1-2 kivétellel 100%-os minőséget választva is komoly látványos veszteséget szenvedtek, úgyhogy javarészt meghagytam jpg/png-ben. De a logó mondjuk pont nem, big win.

Haszprus

A bit more responsive

©   Haszprus   |   blog english fejlesztés

Gallery got better a bit on mobile. Planning to improve further. It doesn't handle touch gestures yet. I start to feel like I should continue developing this site every year at least a bit. It's still fun as a hobby project.

Haszprus

Monster deploy

©   Haszprus   |   blog fejlesztés

Feltoltam 120 módosított fájlt, kíváncsi vagyok mi tört el. Remélem semmi. (Ez vajon mennyire életszerű?)

Volt egy kis refaktor, fixing, etc.

Ha látsz vmi problémát, kifejezetten örülnék, ha szólnál, thx.

Haszprus

Lehet regisztrálni

©   Haszprus   |   blog fejlesztés

Mint kiderült, többek között el volt törve a blogon a regisztráció. Oops.

Ciki vagy sem, ha esetleg akarsz regelni, most már tudsz. Azt hittem egy ideje senki se akar. Persze ettől még lehet h senki se akar.

Meg még egy pár egyéb dolog is el volt törve, javítás folyamatban...

Ps. A Playwright tests for the blog c. bejegyzéshez egy automata fazon kommentálgatja a git commitok szövegeit. Majd lehet h változtatok rajta, mert kicsit spam jellegű.

Haszprus

Playwright tests for the blog

©   Haszprus   |   blog fejlesztés php

Na ha már törünk mindent, akkor legyenek end-to-end / UI tesztek. Az utóbbi években történt a szerveren egy PHP verziófrissítés, aminek a változásait csak ímmel-ámmal követtem le (nem volt fókuszban a blog, de ezt nyilván észlelték akik követnek valamennyire). Most ránéztem újra alaposabban a site-ra, mert növelni akartam kicsit a reszponzivitást, és rájöttem, hogy egy csomó feature el van törve, meg én is eltörtem ezt-azt miközben ezt lefejlesztettem. Meg arra is ráeszméltem így sok év szünet után, hogy atyaúristen mennyi minden funkciót csináltam itt Ami mókás és örömteli felismerés volt. Úgyhogy elkezdtem playwright teszteket írni. Még nincs sok, mivel tegnap álltam neki.

Egyelőre egy külön privát github repóba tettem, szépen CI-ban futtatva, kapok emailt ha hasal meg minden. Később valószínűleg jobb lenne beletenni a blog főrepójába.

Van pár known issue, és azokat már úgy akarom meghegeszteni, hogy teszt is legyen rá.

Hát, nemtom meddig lesz erre időm, de most épp van.

Haszprus

I'm back

©   Haszprus   |   blog life

Újra megy a blog. The one and only.

A kommenteket úgy látom még debugolni kéne. Egyéb problémák is lehetnek. De most ezzel megelégszem. Majd lehet h később ránézek.

19:11 kommentek is mennek

Haszprus

CoreConsult Systems Kft

©   Haszprus   |   android angular ceo coreconsult design fejlesztés haszpra olivér java javascript life meló mysql nightwatch nodejs oracle php play python react scala typescript

CoreConsult - Your web application development company

PHP Javascript Angular Typescript Node.js Scala Android iOS React Java C# Python Rust Play Sangria GraphQL Kafka Hadoop MSSQL Elastic Mysql Oracle MongoDB Nightwatch Gitlab Bitbucket CI JIRA TDD SCRUM UX design + what not.

business@coreconsult.hu
Olivér Haszpra - haszprus@coreconsult.hu
Gergely Pász - pas@coreconsult.hu

How does this work?

  • CoreConsult provides custom software development as a service, for an hourly rate.
  • At the moment we have about 8 clients (including billion dollar clients from the insurance industry) and 20+ developers/ux designers/testers.
  • If your company needs custom software or web developments, please contact us at business@coreconsult.hu
  • If you are a developer with motivation to work for us, please contact us at contact@coreconsult.hu
Haszprus

CoreConsult

©   Haszprus   |   android angular ceo coreconsult design fejlesztés haszpra olivér javascript life meló mysql nightwatch nodejs oracle php play python react scala typescript
Haszprus

Bottom-up piaci szabályozás

©   Haszprus   |   life seo

Napi okosság a Vacókia blogról, ahol egyébként egy lakásfelújítás (hello seo) követhető milliméter pontosan végig.

"Ha azt tapasztaljuk, hogy bunkó egy eladó, akkor fogjuk magunkat, és távozunk a boltból. Így egyrészt jobb lesz a hangulat az otthonunkban, mert csak olyan tárgyat viszünk be a lakásba, ami pozitív élményeket juttat eszünkbe, másrészt nem támogatjuk a kritikán aluli szereplők helyzetét a versenyszférában. "

Word.

Haszprus

Development team for hire

©   Haszprus   |   angular life mysql
We are a small group of talented developers. If you need a software, web page, send me a message. You can check me on linkedin.

We mainly focus on:

  • PHP
  • Python
  • Node.js
  • Angular 1, 2, 4
  • Scala
  • DB: MySQL, MSSQL, MongoDB.

Drop me a message at haszprus@gmail.com or facebook.

Haszprus

Bérfejlesztést vállalunk

©   Haszprus   |   angular life mysql nodejs oracle php python scala
Bérfejlesztést vállalunk egy kis csapattal. Ha kell neked szoftver, weblap, dobj rám egy üzit vagy hagyj egy kontaktot. PHP, Python, Nodejs, Angular 1-2-4, Scala, ilyesmi tech stack játszik. Meg persze db-ként mysql, mssql, oracle, mongodb. Vagy bármi egyéb. Érdeklődj itt, vagy a haszprus@gmail.com-on, vagy facebookon.
Haszprus

MOTHERFUCKER.

©   Haszprus   |   life php phpstorm
FUCKING PHPSTORM REFORMATTED array() to [] at commit time, which is not interpreted by the live - old php version - server. of course, my bad, btw. i just didn't notice this.
Haszprus

Refaktor, új backend feature-ök, ilyesmi

©   Haszprus   |   blog php

Mostanában elég sok időm van, és sokmindent egyszerűen nem csinálhatok, pl nem sportolhatok. Meg minden. Meg egyébként is újra php-zek (vagy hackezek, ld. hhvm*) backenden, úgyhogy ezen apropóból nekikezdtem egy ideje a blog modernizálásának, és tervezem hogy kisebb-nagyobb időszeleteket erre fogok allokálni. Igazából új feature-öket nem tudom mennyire várhatok, először szeretném a meglehetősen legacy kódbázist egy picit modernizálni. Nem egyszerű feladat egyébként, és felmerülhet a but why kérdés is. Hiszen pl nem több értelme lenne-e valami másik nyelven írni egy új motort, vagy valami egészen új dologba kezdeni. Igen, ezek a kérdések validak, a válaszom pedig az hogy most erre van lehetőségem így hosting terén, és egyébként sem akarom veszni hagyni a blogot. 2003 óta létezik, az annyit tesz hogy idén lesz 14 éves (nem semmi azért), és még él, lélegzik, és ezt meg is akarom tartani még egy darabig. Modernizációkra szükség van.

* HHVM is an open-source virtual machine designed for executing programs written in Hack and PHP. HHVM uses a just-in-time (JIT) compilation approach to achieve superior performance while maintaining the development flexibility that PHP provides. HHVM is developed by Facebook.

Úgyhogy ma:

  • Meghegesztettem a szóismétlésekre figyelmemet felhívó cuccot az admin felületen
  • Kiveszi a vízbűl bejegyzésből a szavakat és ha talál olyan címkéket a db-ben akkor ráaggatja őket
  • Ha a bejegyzés címe egy duplikátum lenne akkor hozzáhegeszt valami egyedi azonosítót hogy ne legyenek már duplikátumok (igen, a bejegyzéscím azért nem unique key a db-ben, nyilván, mert miért ne lehetne két bejegyzésnek az a címe hogy Sun is shining)
  • Egyéb refaktor dolgok

Egyébként elgondolkodtam persze azon is - már egy ideje - hogy nem kéne-e valami pluszmelóba tolnom a szabadidőmet, pénzért. Well, it can happen on some day, addig meg igazából ennek is van értelme. Például tök jól flowba kerülök tőle.

Haszprus

RSS feed update

©   Haszprus   |   blog fejlesztés php

Nem tudom használ-e még valaki régi RSS url-eket a blogról (ahol a címekben nincs benne az rss mappa, vagy rss_* a feedek címe), mindenesetre kipurgáltam őket. Ha szeretnéd frissíteni a feedjeidet, a https://blog.haszprus.hu/rss/ címen megteheted. Az rss/bejegyzesek, rss/kommentek, meg ilyesmi című feedek működnek a továbbiakban. (Ezek a címek már évek óta léteznek, az ennél régebbi feedcímeket dobtam ki.)

Egyébként nekimentem a motorháztető alatt egy masszív takarításnak ill. újrastrukturálásnak.

Haszprus

Boston 2016 dec

©   Haszprus   |   amerika barátok biznisz boston buli első fejlesztés fotózás külföld logmein meló mobilfotó s7

Első utam Amerikába.

A céggel mentünk ki öten, biznisz trip.

Azért elég jófejek voltak velünk, jól éreztük magunkat.

Kérdeztük mit érdemes megnézni a városban, de a leggyakoribb válaszok a pub, kocsma és söröző voltak.

Ennek megfelelően alakult a hetünk.

Milyen Boston? Nos kisebb a különbség, mint gondoltam. Az épített dolgok nagyok, nagyok az épületek, nagyok az ajtók, szélesek a terek, alapvetően minden oversized.

A szállodai szobáink nagyon szépek voltak, ez elsőre nem tűnt fel, alapvetően mindenre rá kellett éreznem kicsit. Ahogy a cég kinti irodáját is elsőre a semmi különös kategóriába tettem, majd ahogy jártuk végig a szinteket, tereket, úgy derült ki hogy vannak nagyon kellemes meglepetések, és így utólag ha visszanézem a képeket, azért eléggé rendben vannak a dolgok.

Én a magam részérl egy dimenziónyi különbségre készültem, de visszafogottabb dolgokat találtam. Bár azt mondják a tapasztaltak, hogy Boston nagyon európai, és Amerika jellege más helyeken jön elő igazán. Majd igyekszem még menni erre-arra, merítettem egy kis erőt ebből a tripből, 2017-ben igyekszem többfelé utazni.

A cég. Adnak a terekre, hogy megtaláld magadnak azt a helyet ahol szívesen vagy. Mivel úgyis laptopod van, ezért dolgozhatsz akárhonnan. Szerintem nagyon rendben van.

Haszprus

We are back

©   Haszprus   |   blog fejlesztés life
Na az elmúlt 1 hétben kicsit vacakolt a blog, így lemaradtunk pár posztról, de remélem most már oké lesz. Hamarosan írok majd összefoglalót 2016-ról, meg terveket idénre, meg mindent.
Haszprus

Big Data alapfogalmak

©   Haszprus   |   big data fejlesztés

Utánanézni

  • hive: A Hive egy adattárház infrastruktúra Hadoop alapokon. A HiveQL egy SQL szerű absztrakciós réteg a Hadoop fölé. Eredetileg a fb fejlesztette. Az Apache csinált belőle egy forkot, az Apache Hive-ot.
  • sqoop
  • hadoop
  • pig
  • hdfs
  • flume
  • mapreduce
  • impala
  • solr
  • spark
  • sentry.
  • BigQuery
  • DataFlow
  • Google Pub/Sub
  • BigTable
  • ETL
  • Gobblin
  • Unified ingestion for hadoop
  • Kafka
  • Espresso Kafka
  • Samza
  • Presto
  • Scalding
  • WhereHows built by linkedin, where is the data and how did it get there.
  • Pinot
  • Helix
Haszprus

Crunch 2016

©   Haszprus   |   fejlesztés konferencia logmein

Kaptam a Crunch konferenciára belépőt Jeah.

Mi lesz terítéken?

Csütörtök

  • Andy Cotgreave: The Beautiful Science of Data Visualization
  • Dan McKinley: Data Driven Products Now!
  • Jeff Magnusson: Engineers Shouldn’t Write ETL: Optimizing Data Science Teams
  • Mike Elsmore: NoSQL is a lie
  • Colin McFarland: Experimentation at Skyscanner
  • Sean Braithwaite: Mechanics of data pipelines
  • Jeroen Janssens: The Polyglot Data Scientist
  • Marton Trencseni: Data Science in Facebook Product Teams
  • Szilárd Pafka: No-Bullshit Data Science
  • Dirk Duellmann: Understanding the computing for the Large Hadron Collider at CERN
  • Mike Olson: Big Data in the Real World: Technology and Use Cases

Péntek

  • Ben Yoskovitz: Product Management: Data + Guts
  • Wouter de Bie: Changing the tires of a moving car - Moving Spotify's Data Infrastructure from on-premise to Google Cloud Platform
  • Jonathan Magnusson: Data is King
  • Sergii Khomenko: From Data Science to Production - deploy, scale, enjoy
  • Alex Dean: Asynchronous micro-services and the unified log
  • Elena Verna: Pricing Page Optimization
  • Yash Nelapati: Behind of the scenes of Pinterest
  • Shirshanka Das: Big Data Infrastructure @ LinkedIn
  • Dharmesh Desai Creative Data Science Trends that Transform Marketplaces
  • Danny Yuan: Realtime Stream Processing @Uber
  • Michael Hunger: Enabling the Panama Papers Investigations with Open Source Tools
  • Casey Stella: Data Preparation for Data Science: A Field Guide
Haszprus

Angular 2

©   Haszprus   |   angular endticket fejlesztés javascript

A héten bejött hozzánk VDavid és megírtuk az első kis Angular 2 projektemet (TypeScriptben), persze csak kis kód, tutorial alapján, de nem is ez a lényeg, hanem hogy végre van egy Angular 2-es code base-em. Juhu!

Hogyan tovább?

Haszprus

Propaganda

©   Haszprus   |   endticket epam python typescript

Hali!

Well, orulok ha elvezed. Nekem eletem legjobb valtasa volt. Bocsi nagyon elszoktam mar a levelezgetestol, vicces de ossze kell gyujteni az erot arra h egy egysorosnal hosszabb valamit irjak v olvassak. Penzben nekem szemely szerint jobb mint az epam, vez fejleszto poziban vok itt, amiota itt vagyok reszlegesen bevezetesre kerult a typescript, a jshint tslint, a scrum, heti sprintekkel (azon meg dolgozok h igyekezzunk realisabban tervezni oket), redminerol attertunk taigara, vettunk fel manual teszteloket, lettek processek, bevezettuk a feature brancheket frontenden is (eddig ment minden a masterbe), code review lett, amibol refaktoraltattam 10 controllert angularban es tovabbi 20 varat magara, vegigprobaltuk a protractort, a nightmare-t, es a nightwatchot, ezek end to end ui test frameworkok, vegul a nightwatchra esett a valasztasom es abban elkezdtem irni e2e teszteket (cucumbert szerettem volna eredetileg de vegulis ez lett), amiket az infras srac mar be is tett h fussanak automatikusan a dev szerveren commitra. Eleg porgos itt az elet. most epp itthon vok es tanulok a szombati vizsgamra. Van backendunk is python + mongoban, de arra egyelore keves ralatasom van. Majd idovel, egyelore orulok ha a rendszert megismerem. Ami a legjobb h a hangulat maximalisan jo es laza az epam utan. Amugy egy masik epamos csapatomban az is jo volt, a legutobbiban ez kevesbe sikerult, ahogy te is irtad kicsit kevesbe lazak az emberek ott. Az ot evvel ezelotti arcokkal viszont pont nemreg voltam sorozniz es azert remelem h a mostaniakkal is leszek meg vmikor.

Haszprus

Nightwatch js end to end ui test automation framework

©   Haszprus   |   angular endticket fejlesztés

We started to use Nightwatch js a few days ago and I'm totally satisfied with it, even if I have some smaller questions that need to be answered.

The progress is that I could easily create screenshots with it, it can run selenium automatically, the documentation has a clever way about how to create page object models, which are actually super lightweightly implemented in Nightwatch and they are very easy to use. The tests become easily clear and clean, I think they are very readable (I've seen some tests in the last few years so trust me on this one).

I'm very happy that we found this.

Haszprus

Things at EPAM & life 2015Q1

©   Haszprus   |   angular energiablog epam fejlesztés javascript life meló php scala

Nagyon érdekes megfigyeléseket tettem a projektünkön az API-val, a UI tesztjeinkkel kapcsolatban. Az API backendünk ugye Scala, találtam benne egy csomó refaktorálni való dolgot, Scalatrát használunk egyébként frameworkként, és természetesen nem mondhatom el a pontos refaktorálnivaló dolgot, de nagyon izginek ígérkezik, már elkezdtem dolgozni rajta illetve a többieket is bevontam, konzultáltam velük hogy szerintük miképp lehetne megoldani, hiszen én alapvetően eddig a UI-on tevékenykedtem, a Scalaban nem mélyültem el. Viszont most el akarok. Nem triviális a dolog, az ügyfél is kell hozzá egy kicsit, de bízom benne hogy tudunk alkotni valamit.

A másik rész ahol észrevettem dolgokat, azok a UI unit tesztjeink, úgy látom hogy ott is lenne mit megmódosítani, ez is izgalmasnak ígérkezik, vagy ha nem is izgalmasnak, de legalábbis nagy munkának.

Volt egy angular migráció is a hétvégén az amcsiknál, kíváncsian várom mit kapunk az új verziótól.

Itt megjegyezném hogy az angular 2.0 még sehol, de amúgy nagyon várom azt is, örülnék ha megjelenne, kíváncsi vagyok miket hoz magával, a már ismert részleteken kívül, a gyakorlatban is örömmel látnám.

A harmadik a Cucumber UI integration tesztek, na ezek végképp kívül esnek a hatókörömön, de lett a projekten egy új kollegina pár hónapja, aki nagyon jó észrevételeket tett, itt számos performance gaint könyvelhettünk el a tevékenysége során, és egy-két hiányosságra is fény derült a tesztlefedettséggel kapcsolatban.

Kezd sokkal izgalmasabbá válni ez a projekt, mint amilyen eddig volt, főleg hogy a csapatvezető 3,5 év után lekérte magát és helyette most új emberünk van. Van más új emberünk is, egész konkrétan két fejlesztő, akiknek az egyike ráadásul angol anyanyelvű, ami az angol jóval nagyobb fokú napközbeni folyamatos használatát követeli meg. Sokkal többet pair programmingolok az utóbbi időben, a projekten úgy általánosságban is megnőtt az együttműködés (pénteken négyen pörögtünk egy abszolúte brainfuck problémán és estére sikerült valamennyire megoldani legalább egy workarounddal, és kurva happy voltam). Úgy látom most mindenki bizonyítani akar, és megindult a projekten az eddigieknél egy jóval nagyobb mozgolódás, jobban élvezem mint eddig bármikor, és ennek nagyon örülök.

Hamarosan töltünk egymásról negyedéves értékeléseket, kíváncsian várom a feedbackeket a kollégáktól, és egyben örülök hogy én is írhatok, mert van mit.

Orca megkérdezte reggel hogy mizú, és egyszerűen fülig ért a szám miközben válaszoltam: minden cool, és most tényleg, minden cool A dolgok nagyon jó irányba haladnak.

Volt nálam egy kolléga meg én is voltam valakinél az utóbbi 1-2 hétben és egyszerűen maximálisan pörgök szakmai dolgokon, néztünk kódot, tanultunk dolgokat, kurvajó volt.

Itthon a whiteboardomra felraktam egy csomó taskot magamnak erre a hétre is és jövő hétre is, és egyszerűen öröm ránézni, egy csomó mindenhez van kedvem, tanulni, és alig várom azt is hogy dolgozhassak (tudniillik hétvége van, és bár beremote-oltam péntek este kivételesen, de a hétvége azért mégse munkára van ), az EPAM-os projekten is, meg más projekteken is. Terveim is vannak, mindenféle. Örülnék, ha a nap nem 24 órából állna, vagy ha a hét nem hét napból. Jóval több dolgot van kedvem csinálni, mint amennyire időm jut. Happy times

Haszprus

I heart my life

©   Haszprus   |   energiablog fejlesztés life meló php scala zene

Ma este úgy érzem hogy újra beleestem a programozásba (Scala, Angular, JS, Django, PHP, so many tech stuff & so many possibilities)

Közben ez szólt és betoltam egy m&m's-es karamellás mcflurryt

Annyira kurvajó idő van... És az új monitoromnak olyan gyönyörű színei vannak. Ahh, istenem

Tervek vannak.

Holnap amúgy vizsgám van de ez annyival érdekesebb

Client-side JavaScript App built using AngularJS wrote in CoffeeScript, served from the Play 2 Framework and using document persistence with Reactive Mongo a non-blocking Scala client for MongoDB.

Úgy érzem, mintha a lehetőségeim végtelenek lennének

Haszprus

2014 évösszegző

©   Haszprus   |   barátok epam fejlesztés haszpra olivér life történelem

Hogy milyen volt 2014?

Csak nagyon felületesen és röviden átfutva...

  • rengeteg interjú év elején, 8 helyről kaptam ajánlatot, 5 helyről itt Bp-n, 3 helyről külföldön, itt kiemelném hogy voltam Bécsben és Gibraltárban is ennek kapcsán (oda is, nagyon jó ajánlattal, ámde)
  • végül az EPAM-ot választottam itthon, számos okból
  • év eleje felé megpróbáltunk összehozni egy kis cégszerűséget (it was fun!)
  • kineveltem egy programozó-palántát
  • megkezdtem egy MBA képzést a BME-n (ez egy vezetői képzés, menedzsment, ha esetleg céget csinálnék valamikor, úgy gondolom jól jönne, illetve valszeg egy multinál is kamatoztatható, amilyen az EPAM is)
  • volt egy szakasz sok csajjal ki hosszabb, ki rövidebb ideig, természetesen továbbra is egy stabil kapcsolat esne a legjobban
  • nyugalom, stabilitás
  • voltam just for fun Lengyelországban és Barcelonában (hello Mf! )
  • rengeteget haverokkal, barátokkal, bulikban, sörözni, meg mindenfelé
  • kicsit előszedtem a fotózást mint hobbit
  • vettem egy mazda 6-ot, ami állat
  • fejlesztettem egy csomót hobbiból, just for fun, elkezdtem scalazni, de főleg angularozni, a blogra is készült pár új feature, mint pl. az istenes youlog (naptár és kiadás-nyilvántartó), amibe kb. fél éve egy csomó kis csinosítgatást teszek, habár nem a nagyközönségnek készül a cucc, de mégis élvezem fejleszteni
  • epamban elkezdtem interjúztatni
  • epamban megérett egy előléptetés
    • All of us were impressed with your skills and experience! Everything went excellent. After the session one guy from committee told: That’s a pity this guy is not in my team =)
    • Your subordinate Oliver shown impressive knowledge and experience. We are very happy to recommend him to D3 position.
    • Oliver did an excellent job during the interviews we had together. I think Oliver's soft skills are way above average and it is obvious he has significant tech interview experience, this showed through all the interviews. I was very glad to have him participate in our PHP interviews, I think his contribution raised the quality of these considerably.
  • egyéb fejlesztői projektek is voltak/vannak kapcsolatot szándékozom tartani a php világgal meg egyéb kihívásokkal

Ilyesmi. Hát ez így akár egész jónak is tűnhet. És remélem hogy 2015 még jobb lesz.

Ami még kéne: több idő. Még több idő. Korlátlan idő. 40 órás napok. Egyszerűen nem férek a napjaimba. Szeretnék a telekkel többet foglalkozni, megtanulni barkácsolni, építgetni, ilyesmi, rendbe rakni pár dolgot, fejleszteni a fizikai világban. Jó lenne ismét sportolni is, a tanulásra több időt szánni, tök jó lenne még többet programozni, még többet... többet mindenből.

Most épp vizsgaidőszak van mba-n, hát meg kell mondjam hogy rendesen szívás, itt helyt kell most állnom, és valami módon több szabadságot kell szereznem mert ez a meló + mba bedarál. A saját ütemezésemen változtatva is mondjuk sokat tudok itt nyerni egyébként, ezt be kell látnom hogy csinálhattam volna előrelátóbban.

Na, szóval a dolgok jó irányba mennek, így kell nyomni őket tovább.

Haszprus

SEO

©   Haszprus   |   fejlesztés seo

Szeretném tovább fejleszteni a SEO skilljeimet, ha te egy olyan arc vagy, akinek van kedve kicsit dumálni a témáról, akkor írj

Haszprus

Hétösszegzés 2014.07.27. & Projektsüti Kismaroson

©   Haszprus   |   barátok black cab bme buli élelmezés emarsys energiablog epam kismaros kocsi life mba phpstorm sör

Ilyen hetem volt

  • Kedd megnéztük a leendő autómat szervizben, körbevezettem Petyát az EPAM-ban
  • Szerda egy ajánlat, lefoglalóztam a leendő autómat, este Zolival sör
  • Csütörtök Márk Levi Black-cab hambi, írtam a PHPStorm Cookbook könyv első fejezetéről egy reviewt a kiadónak (tervezett megjelenés decemberben), este Orca Bea sör @ Shakesbeer, eredményhirdetés, felvettek MBA-re, utána még Grundon sör
  • Péntek projektebéd @ Trattoria, körbevezettem Csabát az EPAM-ban, Emarsys-EPAM-Prezi sör @ Kamra
  • Szombat sütögetés & sör @ Kismaros Dunapart, este bográcsozás & sör @ Molnár sziget, majdnem spontán lementünk a balcsira de végül csak csónakáztunk egyet a Dunán
  • Vasárnap Pas meet, PHPStorm Cookbook chapter 2 review, telek (Új bluetooth hangfalakkal )

Projektsütögetés Kismaroson:

Lecseréltem a version historyt a blogon, statikus html-ből egy angularos kis oldal lett, filterezési lehetőséggel.

Sokminden történik újabban, lehet hogy lenne érdemes írnom egy bejegyzést - ne adj isten cikksorozatot - a blogon történő újabb fejlesztésekről, az architektúráról, a fejlesztési módszerről. Nyilván aki nem hardcore törzsolvasó és pláne nem regisztrált user, vagy nem trusted, az ezeknek jórészéről lemarad egyébként, és valszeg kérdőjel rajzolódik ki a homlokára, hogy ugyan miről, de a helyzet az hogy a blog azért egy elég nagy cucc ahhoz képest hogy csak egy blog.

Na szóval a history meg:

A Batarang nevű chrome extensionnel tudod debugolni és sebesség-optimalizálni az angularjs oldaladat. Sebesség-optimalizáció címszó alatt nagyjából hasonló feature-t kapsz mint amit php-ben az xhprof vagy xdebug adna, megláthatod hogy mely function hívásokkal telik el az oldalad legnagyobb időhányada. Állat.

Például a YOULOG-ban észrevehető volt már szemmel is, hogy beszaggatott, amikor begépelt valami keresőszót az ember. Nem tudtam igazából, hogy vajon melyik rész lehet a lassú, meg amúgy ez az első angular cuccom amit valaha írtam. Na nézzük Batarangben:

Mint látható, az oldalon töltött idő 66%-a, azaz 763 msec azzal telt, hogy a fejlesztes keresőszó begépelésének hatására lefutott ez a pár kis redundáns filter. Nosza optimalizáljunk valamit rajta:

Miután a userFilter futtatásának számát redukáltam 2-re, már csak 393 msec telik a filterrel, így az oldal 66%-a helyett már csak 44%-át töltjük itt, nyertünk közel 400 msecet (!!!!!), ami bőven érzékelhető is, mert ez a lag a gépeléskor a karakterek megjelenését is késleltette.

Emeletes csúcskirály!

Ps. a dolgot a userFilter memoizációjával tovább lehetne gyorsítani, nem beszélve arról ha minden adatműveletet átemelnék a controllerbe.

Két könyvet tudok most megemlíteni Angular JS témában, az egyik az O'Reilly féle 200 oldalas AngularJS címre hallgató. Ezt úgy gondolom hogy 200 oldalon át semmi olyat nem mond szinte amit 1-2 hét minimális gyakorlati kódbökdöséssel ne tudna meg az ember, ez ilyen dummies könyv, tényleg pár perc alatt átpörgethető és érzed hogy nem mond semmit. A másik a 600 oldalas ng-book Ari Lernertől, na ez faszának tűnik, és többek közt az optimalizációra is kitér, mégha 10 oldalnál nem is szán rá többet, de a memoizációt is innen szedtem egyébként, és ez látványosan egy mélyebb könyv.

Haszprus

Google IO @ BME

©   Haszprus   |   fejlesztés google io konferencia

Holnap Google IO a BME-n:

  • 16:00 - 16:30 Google I/O Extended 1. nap megnyitó (BME AUT)
  • 16:30-17:00 QII ChromeOS az ASUS tálalásában (Gyepes Máté - ASUS)
  • 17:00-17:30 QII Samsung
  • 17:30-18:00 QII NokiaX
  • 18:00-19:30 QII KeyNote
  • 20:00-20:45 QII Reflection lehetőségei és veszélyei Android környezetben. (Hands-on-lab lehetőséggel) (Ekler Péter)
  • 20:50-21:30 QII Függőség kezelési elvek és függőség kezelési eszközök (Erdődy-Nagy Zsombor)
  • 21:30-22:00 QII Google Cloud a gyakorlatban BigData/Hadoop fejlesztésekhez (Ujj Tamás)
  • 22:00-22:45 QII Making your cloud apps Google-fast
  • 22:00-22:45 QBF14-15 What's new in Android
Haszprus

2 órás build? wtf!!! :D

©   Haszprus   |   fejlesztés
Tegnap sorozes közben ahogy jöttek a kocka témák a build futasidejerol, kornyezetekrol, unit testekrol, azt vettem észre magamon hogy ismét kurvara érdekel ez az egész és ennek nagyon örülök alig várom hogy fel birjak kelni és folytathassam a saját kis blog projektemet
Haszprus

Fejlesztői környezet

©   Haszprus   |   blog fejlesztés life php

Na jó, az lesz, hogy összehozok egy local environmentet mégiscsak a blognak. Erre az alapkésztetés az, hogy nagyobb feature-ök lefejlesztésére nagyobb hajlandóságot éreznék, ha nem lenne folyton a nyakamban az, hogy elcseszek valamit productionben.

A második nagy késztetés, hogy előbb-utóbb portolni kell újabb php verzióra a blog motorját, és ez nem annyira frankó élőben.

Amúgy a dolog marha izgalmas, csomó deprecated dolog időközben kivezetésre került, úgyhogy jönnek a factoryk és a különféle elágazások környezet mentén.

Muy excitement, mucho power! Sose gondoltam volna, hogy egyszer lesz ez még ennyire izgalmas.

Most pedig péntek este van, sörre fel!

Haszprus

Open Academy 2014 június

©   Haszprus   |   barátok fejlesztés

Most jöttem Open Academyről, ahol volt pár kurvajó előadás, mint pl. a legjobb nec előadása volt a ustreamtől a Javascript Module Serverről (javascript fájlok kiszolgálása dependencia gráfoknak megfelelően, csomagolva, de csak azt ami éppen kell még a kliensnek), illetve nem volt rossz a Functional Reactive Programming sem, amit egy prezis arc tartott, 40 percben leprogramozott egy kis animált Mario játékot. Nice.

Tényleg a mai átlagon felüli volt, thumbs up.

Néha elgondolkodom ezen a ustream dolgon.

Haszprus

Scala developers wanted for EPAM :)

©   Haszprus   |   epam scala

Scala nyelven backendet fejleszteni nem akar valaki nálunk (EPAM)?

Előfeltétel: minimum vmi egyéb nyelven legyél jó fejlesztő, és legyen benned érdeklődés a Scala felé. Ha már eleve Scala fejlesztő vagy, az se baj.

Haszprus

Seamless Mode

©   Haszprus   |   epam hwsw scala

Istenem, Oracle VirtualBoxban Seamless Mode, hogy eddig miért nem találtam, hát ez istenkirályság, ajh. Happy happy happy.

(Így a VM-nek nincs háttérképe, húzigálhatod a Windows ablakokat és a VM ablakokat szépen egymás közt. Gyönyör.)

Óriási produktivitásjavító felfedezés. Nagyon örülök

Haszprus

PHP vs Angular & YOULOG

©   Haszprus   |   angular blog fejlesztés javascript php történelem

Csak egy gyors angular vs php view kód összevetés

PHP:

Angular:

Sasszeműeknek feltűnhet hogy az angular kódom egy picivel kevesebbet tud, ettől függetlenül tisztább, szárazabb érzés.

Szóval a YOULOG most kőkemény angular js lett:

Oh yeah.

Haszprus

youlog

©   Haszprus   |   blog fejlesztés life önmenedzsment php

Mai állat fejlesztésünk: youlog.

Mint tudjuk régóta csinálok fancy naptárat magamnak arról, hogy miket csináltam. Most egyelőre az van hogy fel tudom címkézni a blogon a napjaimat faszán.

Aztán hosszú távon szeretném megcsinálni vele ugyanazt, amit most excelben tudok:

A cucc egyelőre a saját useremre van limitálva, de lehet hogy felkínálom még valakinek érdeklődés esetén.

Ami nagyon fontos, és ami a fő motiváció, hogy motiválni akarom magam, hogy csináljak dolgokat. Pl. kondizzak, fejlesszek, ilyesmi.

A háttérben meg mellesleg csináltam hozzá egy kis ActiveRecord implementációt szórakozásból.

/** * Class Diary * @property int id * @property string date */ class Diary extends HfModel { protected $table = "hb_diary"; protected $fieldsPrefix = "d"; /** * @var array */ public $fields = array( "id", "date", ); ?>

A fenti kód már önmagában validálja az id és a date mezőket, dob kivételt ha nem jók, stb. Nyilván a HfModelben van a lényeg, csak megmutattam hogy ilyen kis lightweight cuccka lett, a használata pedig:

$diary = new Diary(); $diary->date = $_REQUEST['date'] ? $_REQUEST['date'] : date("Y-m-d"); $diaryId = $diary->save();

Oh, I heart PHP!

Haszprus

Lájkkirályok

©   Haszprus   |   fejlesztés

Nemtom észrevette-e valaki, de lett jobb oldalon egy lájkkirályok doboz.

Persze productionön lefejlesztve az egész fennakadás nélkül, ahogy kell, sum(downtime) = 0, count(dev & test environments) = 0.

Haszprus

Life after facebook

©   Haszprus   |   energiablog fejlesztés life php play scala

Mai productivity eredmény: melóban egyértelműen jobban haladtam fb nélkül, itthon pedig leporoltam a januárban félbehagyott scala play blogengine projektemet (Elavultak a cuccok alatta, már nem fordult IntelliJ-ben (ez nem egészen tudom hogy hogy lehet, habár gondolom úgy, hogy a play konzol valamit update-elt magán, az IntelliJ meg nem követte), rendbe kellett rakni. Ráment kb. 2 óra, de megérte. )

A miranda ng-t pedig még tovább customizáltam, egész barátságos lett. (Atom minimál.)

23:02 Na még egy gyors bejegyzéslájkolós feature lefejlesztése belefért. 0.1-es verzió, egyelőre lehet lájkot leadni, és kiírja hogy hányan lájkolták eddig a bejegyzést. Oje! Majd lesz fullosabb később. (Ja és csak ha belépett user vagy.) Igen, igen, tudom hogy volt már hasonló, de ez kicsit másmilyen lesz, meg jobbabb is lesz.

Mai fejlesztéssel töltött idő itthon: 3-4 óra. Roxx! Istenem, végre.

(Mert persze be kellett tolni egyből egy új 0-ról írt frameworköt is az új feature alá, nem lehet csak úgy. Rég nyúltam a blog kódjához na, és már mások az elképzeléseim.)

Ja és itt kikúrt continuous delivery van ám, annyira hogy nincs localhoston meg sehol tesztszerverem, a blog úgy jó egyből ahogy megírom.

Machete dont text test.

Nem tesztelni kell, hanem jó kódot írni, basszátok meg.*

* A szerző a pókerarcos humor hazai élharcosa. Ismeri és gyakorolja a TDD-t, de ez itt most nem az a projekt, itt tényleg izgibb egyből productionön futó kódot írni. Ennek is megvan a szépsége, ha valaki nem hiszi, próbálja ki dev/test környezetek nélkül fejlesztenie az akármilyen rendszerét.

Haszprus

Hello World of Traits

©   Haszprus   |   fejlesztés howto php

Eddig nem használtam a Traits feature-ét a PHP-nek, megnéztem most vele egy Hello Worldöt. Semmi extra.

<?php

trait Hello {
    function sayHello() {
        echo "Hello";
    }
}

trait World {
    function sayWorld() {
        echo "World";
    }
    function sayHello() {
        echo "Szia";
    }
}

trait HelloWorld {
    use Hello, World {
        World::sayHello insteadof Hello;
    }
    function sayHelloWorld () {
        $this->sayHello();
        echo " ";
        $this->sayWorld();
        echo "!";
    }
}

class Main {
    use HelloWorld;
}

$m = new Main();
$m->sayHelloWorld(); // Szia World!
Haszprus

Scala Play blogengine, now with comments!

©   Haszprus   |   fejlesztés howto play scala

Hoppá-hoppá, megjelent egy aloldal és kommentek, ugyanakkor fix menüsor a bejegyzésekkel

A lényeg:

// ...

import java.util.Date

// ...

class Comment(
  val id: Int,
  val date: Date,
  val text: String,
  val login: String
)

object Posts extends Controller {

  def index(id: Int) = Action {

     // ...


     var comments = selectComments().map(row =>
        new Comment(
          row[Int]("id"), 
          row[Date]("date"), 
          row[String]("text"), 
          row[String]("users.login")
     )).toList

     // ...

}

Mit mondjak, ha egyszer az ember ráérez, akkor p. gyors! POWER!

02:54 kitoltam githubra! A kód csúnya, nem az a cél vele, csak elkezdtem szórakozni a playjel/scalaval, és ha valakit érdekel, rácsekkolhat.

Haszprus

Angol végre

©   Haszprus   |   energiablog english fejlesztés haszpra olivér scala történelem

Sose jártam nyelvi magántanárhoz, vagy nyelvtanfolyamra, de hosszú évek óta tervben van, hogy majd egyszer, és most végre létrejött, egy arccal beszélgettem Skype-on, aki NY-ban született, és jelenleg is Amerikában lakik, és kifejezetten foglalkozik ilyesmivel. Ennél bár nem tudok konkrétabbat, de a csávóval tényleg jól el lehet dumálgatni, javasol nyelvi fordulatokat stb, korrigál, én meg nagyjából pont ezt kerestem, illetve nem tudtam hogy mit keresek, de most ez tökéletes. Jepp. Amúgy szerintem fogok keresni még további arcokat, rá akarok feküdni önmagam képzésére keményen. Ma vettem két angol nyelvkönyvet is, Scalaztam is (Play frameworköt feltettem, mysql-hez kapcsolódtam, lekérdeztem, csináltam benne routolást, új controllert, új actionnel, új template-tel), eredményes napot tudhatok magam mögött. Valahogy így képzelem a közeljövőt is. Power

Mint azt egy korábbi bejegyzésben említettem, a tudásom valahol felsőfok környékén van egy szintmérő teszt szerint (melóhoz napi szinten kellett is beszélnem angolul), a célom nem az hogy megtanuljam a nyelvet, hanem hogy tovább finomítsam és tökéletesítsem. Régen kifejezetten informatikai angolt szerettem volna tanulni, mostanra úgy gondolom, hogy azzal semmiféle problémám nincs, úgyhogy inkább az általános angol felé fordult az érdeklődésem, informatikára gyakorlatilag elég nehéz találni bárkit is, mert aki tud fejleszteni az aligha angolórákkal fog foglalkozni. A fejlesztés jobban fizet.

Egyébként ami a nyelveket illeti, 3+4 évet tanultam németül, ezzel párhuzamosan 4 évet latinul, később 4 évet középhaladóval kezdve angolul és 4 évet spanyolul. Angolból eredetileg a felsőfokot szerettem volna kapásból letenni, de beparáztattak hogy ott atomerőművek belsejéről kell beszélni meg ilyenek, úgyhogy középfokkal megelégedtem 12. osztályban. Később belekóstoltam még a franciába mp3-ak formájában, de pár lecke után elmúlt az érdeklődésem. Néha gondolok rá, hogy a többi nyelvemet is fel kéne eleveníteni, mármint a németet és/vagy a spanyolt. Bár mivel ezeken a nyelveken nem jön szembe semmi (se meló, se film, se slágerek, se semmi), így ezek aktívan tartása elég nagy kihívás lehet mind időben, mind pénzben, ami erőforrásokat lehet hogy jobban megtérülő dolgokba is be lehet fektetni.

Balage

Android vs. iOS

©   Balage   |   android life
Ha a pénz nem számítana, akkor ti milyen operációs rendszerrel ellátott mobilt vennétek és miért?
Haszprus

Überblog for Android

©   Haszprus   |   android fejlesztés php scala

Amúgy kéne írnom egy überblog android appot, legalábbis az admin dolgoknak. Csak azért ennyire fb-központú vagyok, mert ott könnyebb megszerkeszteni a dolgokat. Mind mobilról, mind innen netről.

Mondjuk hozzáteszem, hogy nagyobb közönséget is érek el vele, legalábbis jelenleg. (Ha akarják, ha nem, ahah!)

Mindenesetre az Android app helyett most egyelőre elscalazgatok, azzal is elkezdtem játszani. Kellemes, szimpatikus.

Haszprus

Mongo Contact DB by Haszprus at github

©   Haszprus   |   fejlesztés php

I've released on github a simple contact management concept based on mongodb. The goal was to write as little code as possible and still give the user an amount of functionality.

Later I'll try to create a longer description about the project. Until then, if you are interested, please look at how lightweight the models and the controllers are, and still how much functionality they give to the user.

Mongo Contact DB by Haszprus at github

Haszprus

TDD - Test Driven Development

©   Haszprus   |   bme emarsys fejlesztés sanoma

A TDD-ről (Test Driven Development) még a BME-n írtam Szoftverminőség és menedzsment tárgy kereteiben, és bár tetszett az ötlet, de nem igazán tudtam elképzelni öt éve, hogy hogy lehetne egy alkalmazást fullosan tesztelhetővé tenni, vagy úgy megírni.

2010-ben egy korábbi munkahelyemen, ahol azért elég pro arcokat válogattak össze, még mindig ott tartottunk, hogy invesztigálni kellene a TDD-t, hogy mire jutnánk vele.

2011-ben amikor a Sanoma Mediánál voltam a PPCS (Product Price Comparison System) / Olcsóbbat / Kirakat projekten, egy több hetes hibakeresésre sikerült pontot tenni azzal hogy - az amúgy korábbról teljesen teszteletlen kódhoz - felraktam egy PHPUnitot és írtam pár unit tesztet, egyből (egy napon belül) kibuktak a bugok. Ekkor kezdtem ténylegesen hinni a unit tesztelésben.

2012-ben alkalmam nyílt részt venni az Emarsysnál egy igen nagy folyamatos fejlesztő / refaktor projektben, ami teljesen megváltoztatta a Test Driven Developmentről kialakult képet a fejemben, mivel végre láttam hogy hogy is lehet ezt fulltime alkalmazni, hogy lehet valamit 100% TDD-vel megírni.

A módszernek láttam előnyeit és hátrányait, és biztos vagyok benne, hogy vannak helyzetek, amikor alkalmaznám. Alapvetően feladatfüggőnek gondolom. Ha sok pénz múlik azon, hogy a kiadott termék hibamentes legyen (pl. mert egy olyan piaci szegmensben játszol, ahol a bugok egyszerűen nem tolerálhatóak, a vevők odébb mennek), akkor mindenképp érdemes lehet használni.

Haszprus

HTML5 history management

©   Haszprus   |   fejlesztés

Today I've learnt a small but very exciting feature, html 5 history management:

window.history.pushState(data, "Title", "/new-url");

Paired with:

window.onpopstate = function(event) { 
    console.log(event.state); 
};

This way you can set the window.location to your custom new url without reloading the page (or even without any communication with the server), but creating an entry in the browser's history (so the user can go back and forward between the saved states), and saving any custom state data as the first attribute of pushState().

With onpopstate you can catch the browser's navigation events and load the previously saved state to your page (eg. fill forms, request ajax page elements etc).

HTML5 has it's very funky features.

Haszprus

PHPStorm 4 is out

©   Haszprus   |   fejlesztés hwsw php

Megjelent a PHPStorm 4.

PHP 5.4 language features support
Code coverage for PHPUnit
Drupal coding style support
ECMAScript Harmony support
PHP code sniffer integration
New PHP code inspections
Smarter JavaScript completion

What's new

Haszprus

PHP 5.4

©   Haszprus   |   english fejlesztés php

Things I like:

(Of course there are other things too.)

+1 lol from the changelog:

<?= is now always available, regardless of the short_open_tag php.ini option.
How hard they were fighting against short open tags… I think this is similar to HTML 5 where you don't have to close your tags despite the whole community was forcing strict XHTML for years because it's better.

Haszprus

Day 49 @ Sanoma

©   Haszprus   |   buli energiablog fáradtság fejlesztés sanoma zene

Hétvégén alapoztunk, voltunk Morri Ligetben és Coronitában, hajnalban csatlakozott egy kedves régi ismerős is, közben befoglaltam megint a szekusok székét , hétfőn éjfélig dolgoztunk, este hívnak telefonon bocs dolgozom, írnak skype-on bocs dolgozom, taxi haza és még tovább, power, kedden pedig alvásmennyiség alapján kipihenetlenül, gyakorlatilag mégis úgy pörögve, mint még soha folytattam (boss meg is kérdezte, mit tolok). Vuttu-tuttu vuttu-tuttu. Red Bull Hell C Vitamin Béres csepp Ginseng ampulla kávé, szóval mindent, de ami leginkább pörget az az ha valamit lerakok és azt elismerik. (Másik boss másnap külön odajött mosolyogva gratulálni, apróság, de mégsem.) Nap végén hazaindulás előtti percekben beesik egy task amit csináljunk meg még ma, nyilván. Safranek, jöjjön közelebb... Itthon megnyitom a shellt, majd telefont emelek az ágyban hogy felhívjam akivel nem lehetek, helyben elalszom ruhában, égő lámpával, ahogy kell, de ezúttal legalább cipő nincs rajtam. Éjfélkor felébredek, kipihent vagyok, emaileket írok meg ticketeket kezelek 3 órán keresztül, elolvasom amire napközben nem volt időm, megírok pár irányelvet és kitűzök pár célt a karbantarthatóbb folyamatok érdekében, aztán ráébredek, hogy nem is tudok már aludni, no meg hogy hajnal 5 múlt.

Ami most jó:

  • Yves Larock - The Zoo (Muzzaik Remix)

Jó még:

  • Djuma Soundsystem - Les Djinns (Trentemoller remix)
  • Wawa - SOMBRITA ( Lauer & Canard ft Greg Note Rmx )
  • ANIMA SOUND SYSTEM - Tedd a napfényt be a számba ( MATULA feat GOLDSOUND remix )
  • Andy Caldwell feat. Lisa Shaw-Warrior (Tiger Stripes Mix)
  • Loco & Jam - Medusa [Rekluse]
  • Popmodell - Kiskece (radio edit)
  • Loco & Jam - Medusa [Rekluse]
  • Pet Shop Boys-Love Etc (Gui Boratto Remix)
  • Serge Devant Addicted with lyrics 2009 [HQ Club Mix]
  • Radio Slave Feat Danton Eeprom - Grindhouse ( Dubfire Terror Planet Remix )
  • Mightyb - Taj Mahal (Original Mix)
  • MATULA feat GOLDSOUND - Wonderful World (original)
  • Chris Lake & Nelski - Minimal Life (Original Mix) (HD)
  • Federico Scavo, Alex Kenji - Gimme Five (Mix 1)
  • Modestep - To The Stars (Break The Noize & The Autobots Remix) (Official Video)

A reggeli kardio alapjai. És az fontos.

Haszprus

Query optimalizálás

©   Haszprus   |   fejlesztés sanoma sql

30 másodperces query:

SELECT webshop_id,
  w.name,
  w.hidden,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id)
    AS prices_count,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id and deleted=1)
    AS deleted_count,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id and product_id>0
     and skipped=0 and deleted=0)
    AS paired_count,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id and skipped=1 and deleted=0)
    AS skipped_count,
  (SELECT count(*) FROM prices 
    WHERE webshop_id=w.webshop_id and skipped=0
     and product_id=0 and deleted=0)
    AS waiting_count 
  FROM webshops w
  WHERE w.book_shop = 0 
  HAVING prices_count>0 
  ORDER BY w.name

6 másodperces query:

SELECT w.webshop_id, w.name, w.hidden, 
  x.prices_count, x.deleted_count, x.paired_count, 
  x.skipped_count, x.waiting_count
  FROM webshops w
  JOIN (
    select p.webshop_id,
    count(*) AS prices_count,
    sum(deleted) 
      AS deleted_count,
    sum(if(product_id > 0 and skipped = 0 and deleted = 0, 1, 0)) 
      AS paired_count,
    sum(if(skipped = 1 and deleted = 0, 1,0)) 
      AS skipped_count,
    sum(if(skipped = 0 and product_id = 0 and deleted = 0, 1, 0)) 
      AS waiting_count
    from prices p
    group BY webshop_id
    HAVING prices_count > 0
    ORDER BY webshop_id
  ) AS x
  ON x.webshop_id = w.webshop_id
  WHERE w.book_shop = 0
  ORDER BY w.name

Note: ez a bejegyzés évekkel azután lett publikus hogy a rendszert lecserélték egy másikra.

Haszprus

Sanoma day 25

©   Haszprus   |   energiablog fejlesztés sanoma sql

Pár napja megbeszéltünk egy feladatot az Atyaúristennel és a juniorommal. Az atya elment szabira. A juniorom előadta a dolgot a technikai pm-nek, aki egy iszonyat optimizer csávó, komolyan fekete mágia amit sql query optimalizálásban lenyom, közölte, hogy ezt a dolgot nem lehet megoldani, mert van benne egy akkora descartes szorzat amit a világegyetem összes szerverével se fogunk tudni kiszolgálni. Persze égett a képem, de nem volt semmi az ügyből. Ma este ahogy hazamentek már a népek és csillapodott a nyüzsi a Sanomában, eszembe jutott egy remek ötlet amivel szerintem lineárisan halál lazán végigmászhatunk a db-n, baromira nem lesz descartes szorzat, kb. a tábla mérete lesz 2-vel szorozva a szükséges lépések száma, és annyira jó érzéssel jöttem el 19-kor (még maradtam volna, csak időre mentem), hogy ihaj. Remélem meg tudjuk oldani így.

Haszprus

Optimalizációs feladatok

©   Haszprus   |   css fejlesztés howto javascript képzés mysql php sanoma
  • PHP optimalizálás
    • Jenkinses elemzés a kódra
      • CPD és PMD checkre van szükség
    • XHPROF elemzés
  • DB optimalizálás
    • CT mérés javítása
      • Ne okozzon table lockot a CT mérés során keletkező INSERT-ek és UPDATE-ek. Lehetőségek: delayed vagy low priority.
    • MySQL 5.5 percona frissítés
    • Adatok elemzése
      • Nagy méretű táblák elemzése, törlési, archiválási stratégiák kialakítása és a szerkesztőséggel egyeztetés.
    • InnoDB storage engine használat
    • Query optimalizálások
      • Queries not using indexes lekérdezések optimalizálása
      • Slow query optimalizálás
      • Jetprofiler elemzések
    • Táblák particionálása
  • Kereső optimalizálás, Sphinx bevezetés
    • Admin és frontend kereső átalakítása
    • Feleslegessé vált indexek törlése
  • Admin folyamatok optimalizálása
    • Workflow felülvizsgálata, tapasztalatok implementálása
  • HTML, JS, CSS optimalizálás
    • http://gtmetrix.com/ javaslatok alkalmazása

Na ez például egy remek szakmai fejlődési program.

Igazából nem kéne meglepődnöm. Abban a szobában kb. 40 projektnek a fejlesztése zajlik, rengeteg külsős cégnek adnak ki megbízásokat a senior fejlesztőink. Csupa ilyen arccal vagyok körülvéve, juniorok nem nagyon dolgoznak a Sanomában, mert a legtöbb projektet kizárólag külső erőforrásokkal fejlesztik, plusz a hotfixeket belül, meg a deploy, üzemeltetés, ilyesmi. A lényeg hogy rengeteg tudás koncentrálódik körülöttem, és ha jól csinálom akkor rengeteget profitálhatok az itt eltöltött időből. Sajnos ebből a szobából hamarosan ki leszünk emelve egy kevésbé szakmai közegbe, de lobbizni fogok hogy tarthassam minél jobban a DPO-s kapcsolataimat.

Haszprus

Zend Framework

©   Haszprus   |   barátok fejlesztés képzés php symfony

Nu, Gábortól megint tanultam egy kis Zend Frameworköt, de igazából az eddigi rátekintéseim eddig mindig hiányérzettel zárultak, nem igazán érzem hogy ez miért jó, valahogy a Symfony úgy jobban egyben van…

Haszprus

New Technology Meetup 2011/09

©   Haszprus   |   barátok google

Been there!

  • Mezei Áron, Szabó Gergely: Szig.it - közösségi fesztiválozás mobillal
  • Buherátor (SilentSignal, buhera.blog.hu): XSS 2.0
  • Németh Bottyán- Vincze Gábor ( Gravity): Amikor a Google kevés
  • Lám István (Tresorium Kft.): Tresorium - Lehet-e biztonságosan adatot tárolni felhőben, és ha igen, miért nem?
  • Farmosi Attila (ACE Telecom): Behálózott fesztiválok
Haszprus

Web developer

©   Haszprus   |   barátok fejlesztés

Ma a következő témakörökről meséltem Istvánnak (dankoi) 6 órában iszonyatosan összesűrítve:

  • fejlesztői környezet: phpstorm, netbeans, zend studio
  • verziókezelés: svn, hg, github
  • php frameworkök: symfony, mvc, orm, schema, yaml, routing, fixtures, modellek testreszabása, formok, modulgenerálás
  • javascript: ajax, jquery, dom
  • dokumentáció: phpdoc, doxygen
  • tesztelés: unit test, phpunit, mock object
  • elosztott nagyterheltségű rendszerek: cache-elés, memcache, kliens oldalt terhelni (js, számítások ott), sok php szerver, 1 db (legegyszerűbb eset): db-t kímélni
  • fejlesztés: refaktor, coding standard (zend), firebug
  • módszertan: scrum, kanban
Haszprus

Open Academy

©   Haszprus   |   barátok css fejlesztés javascript képzés php

Ott voltunk ezen is Orcával és PAStheLoDdal.

Szubjektív véleményem: nagyon hardcore advanced cuccot vártam, ehhez képest kicsit bme-sre sikerült, legalábbis az első egy-két előadást a magam részéről túl lassúnak ill. bealvósnak éreztem, a verziókezelős és a scrumos teljesen triviális dolgokról beszélt (szerintem elhibázott tematika). Volt viszont nagyon kellemes meglepetés is, éspedig a PHP Security, ami nagyon élvezetes volt (erről a témakörről még valszeg többször ennyit szívesen hallgatnék), illetve a HTML5 bemutató, ami viszonylag meglepő módon még mindig tudott egy csomó újdonsággal szolgálni a HTML 5 konferencia után is.

Amik voltak:

  • Multiplatform mobil fejlesztések (Dr. Forstner Bertalan)
  • Hogyan optimalizáljunk C/C++ kódokat! - Esettanulmány (Illés Márton)
  • Verziókövető rendszerek alkalmazása fejlesztési projektekben (Gyöngyösi Péter)
  • Webműves Kelemen tanácsai, avagy mi kell a PHP falába? (Varga-Perke Bálint)
  • Hogy kerül a csizma az asztalra? HTML 5, CSS3, JavaScript (Magyar Attila és Györkő Péter)
  • AGILIS / SCRUM fejlesztés (Bakonyi András)
Haszprus

New Technology Meetup

©   Haszprus   |   amazon barátok buli fejlesztés képzés

Tegnap voltunk PAStheLoD kollégával New Technology Meetupon, ilyen fajtán most először. Elég hardcore témák, volt pár iszonyat élvezetes - ahogy valaki fogalmazott, 'itt csöppen el az igazi programozó' - előadás, sajnálom hogy 5 perc van ezekre, szerintem bőven többet megérnének.

Témák voltak:

  • Flash játékok üzleti megközelítésben.
  • Low-level iOS, hogyan lehetne gyorsabb? A mobil eszközökben sokkal több és egyben sokkal kevesebb erő van, mint gondolnád. Ha szorít a CPU, akkor nem csak az alap SDK-s trükkökben érdemes turkálni. Már az sem egyszerű, hogyan mérjünk. Szálak, UIKit, memória-elérés, Assembly, satöbbi.
  • Scale-out igényű nagy adatos feladat-feldolgozó láncok cloudon. Amazon Cloudon megvalósult Hadoopra épülő bioinformatikai feldolgozó lánc. Ott felmerülő kihívások, és megoldásaik open-source technológiai elemekre építkezve. EC2, S3, Hadoop, HDFS, jclouds, whirr.
  • ScalienDB, egy skálázható NoSQL adatbázis Budapestről.
  • Miért nem használjuk a scrumot? Kanban.

Üdítő volt végre egy erősen szakmaibb konferencián ott lenni, nekem Bátorfi Zsolt HTML 5 bevezető előadása kellőképpen hatásosnak bizonyult. Mondjuk a későbbiek nem értek a nyomába, de ettől még rengeteg implementáció szinten új dolgot láttam. Örülök hogy ott voltam, legnagyobb hiba lett volna kihagyni. Az MS nagyon nyomulni akar, és valszeg a legjobb helyen teszik (a fejlesztőknél). Atomprofi szervezés stb. Elvileg lesz majd még ilyen, feltétlen menni akarok arra is.

Haszprus

Első node.js http szerverem :)

©   Haszprus   |   fejlesztés javascript node.js

Gondoltam kipróbálom ezt is. Szerver oldali javascript ugye ("server side javascript done right"). Íme az app.js tartalma:

var http = require('http'); var server = http.createServer(function(request, response) { response.writeHead(200, { 'Content-type': 'text/plain' }); response.end('Hello world'); }); server.listen(8000); console.log('Server is listening on http://127.0.0.1:8000');

As seen in the tutorial. És ez igen könnyen már futtatható is (konzolba node app.js), és a http://127.0.0.1:8000 címen meghívva valóban kapunk is egy hello world oldalt.

Haszprus

Twig template engine

©   Haszprus   |   fejlesztés howto php

Gondoltam eljátszom a twig template kezelővel, ami erősen a symfony 2-höz és fabien potencierhez kötődik, tekintve hogy ő az atyja mindkettőnek és ez a symfony 2 default templating engine-je.

A telepítés igen könnyű pearrel:

pear channel-discover pear.twig-project.org pear install twig/Twig

(Egyébként nem muszáj pearrel telepíteni.)

Hozzuk létre a kis hello world sablonunkat:

<html> <head></head> <body> <p>Hello {{ name }}</p> <p>The date is {{ date }}</p> <p>The time is {{ time }}</p> </body> </html>

Mentsük el templates/hello.tpl-ként.

A template-et adattal kiszolgáló php a következőképp fog kinézni:

<?php include 'Twig/Autoloader.php'; Twig_Autoloader::register(); try { // templates könyvtárban keressük a template-eket $loader = new Twig_loader_Filesystem('templates'); $twig = new Twig_Environment($loader); $template = $twig->loadTemplate('hello.tpl'); echo $template->render(array( 'name' => 'World', 'date' => date('Y-m-d'), 'time' => date('H:i:s'), )); } catch (Exception $e) { die('Hiba: ' . $e->getMessage()); }

Ez ennyiből már működik is. A twig lehetőségeibe mélyebben nem megyek bele, aki használt már bármilyen template engine-t, annak sok újat nem fog mutatni.

Haszprus

CakePHP modellek

©   Haszprus   |   cakephp fejlesztés howto php symfony

Nemrég kezdtem el picit ismerkedni a CakePHP MVC frameworkkel, igazából egyáltalán nem célom ismertetni a képességeit vagy bármi hasonló, mindössze megragadnék egy dolgot ami megtetszett. A dolog nem újdonság, mint ahogy a CakePHP sem az, sőt.

Induljunk ki onnan, hogy már megvannak a tábláid a db-ben, amit még korábban létrehoztál, hogy Cake-et kezdtél volna használni. Nem feltétlen tipikus felállás, tudom.

Megmondod az érintett kontrollerednek egy tagváltozóban, hogy

$uses = array('Restaurant', 'Place');

, aminek a hatására a kontroller a Restaurant és a Place nevű modelleket példányosítani fogja és hozzárendeli a $this->restaurant ill $this->place változókhoz a Controlleren belül.

Amennyiben a megfelelő könyvtárban nincs Restaurant ill. Place modell (az ezekhez tartozó php fájl és osztály), akkor megnézi, hogy a db-ben létezik-e restaurant ill. place nevű tábla, és ha igen, akkor ezekből generál on-the-fly egy-egy modellt.

Lekérdezi tehát a db-ből a táblák oszlopait, és rögtön használhatod is valamennyi tagfüggvényt rájuk, mint pl. megkeresheted az 5-ös id-jű éttermet:

$this->restaurant->findById(5);

Nem csak id alapján kereshetsz, hanem bármi egyéb oszlopnév alapján is természetesen, tehát pl. $this->restaurant->findByType('lacikonyha') hívás is teljesen valid.

Nekem ebben az tetszik mondjuk egy symfonyval szemben, hogy a modellt nem kell generálnod, létrehozza neked on-the-fly, aminek különösképp ott érzem előnyét, ha valami változik az adatbázis sémában (nevezetesen nem kell újragenerálgatni a modelleket, ami marha kényelmes dolog). Nyilván hátránya, hogy egy IDE sem fogja kitalálni neked, hogy vajon milyen tagfüggvényeket hívhatsz meg az ilyen módon használt modelljeiden.

Haszprus

Meetoff - videó a neten

©   Haszprus   |   12e barátok javascript képzés szülinap videó

Tegnap volt Meetoff, és kibiri kib* jó volt, valamint kiderült megint, hogy mennyire belterjes is ez a szakma Megint voltak ismerős arcok, ezúttal az előadók közt is, dumáltunk, rámköszöntek, nagyon jól esett. A helyszín választása egész jó volt, és hogy tartottunk szünetet, az is.

A téma Videó a neten volt (Tolni kell a kontentot alcímmel), volt pár érdekes előadás új kezdeményezésekről vagy akár meglévő trendekről, de meg kell mondjam, hogy nekem legalább ugyanennyit számított az a közeg is amiben voltam, mivelhogy ScoobyZolival és eL Gerivel mentem, a helyszínen pedig egyszercsak fölénk magasodott PAStheLoD, és még váltottunk pár szót a bárpultnál Kereskényi Balázzsal is. Plastik Józsit pedig életnagyságban láthattuk, akár meg is érinthettük volna a Mestert.

Ps. egyébként 27. szülinapom volt tegnap, és kaptam tortát a Virgótól (ügyvezető adta át), felköszöntöttek a kollégák, ami lássuk be, igen kellemes élmény.

Meetupokra, meetoffokra, és egyéb hasonló nyalánkságokra pedig megyünk a továbbiakban is, bejött a téma.

ápr. 25. 18:57 Ott voltunk! Megjött a bizonyíték

Quick fact: tegnap voltunk Gerivel budapest.js meetupon, és volt egy csomó ismerős arc. (Sajnos utána rohannunk kellett tovább.) A téma különböző javascript frameworkök bemutatása volt egy drag&drop + slideshow mintafeladaton keresztül (jquery, mootools, yui, dojo, valamint volt még egy közönségi jquery és egy közönségi fapad javascript bemutató is). Kicsit sajnáltam, hogy az, hogy mit láttunk, nemcsak a keretrendszernek, hanem leginkább az előadó előadásmódjának és egyéni elképzeléseinek függvénye volt (mivel a specifikáció nem volt strict, ami persze jó, hisz nyilván minden fw-ben mást és mást egyszerű vagy nehéz megcsinálni).

Magam részéről a versenyzőket látva és egymáshoz viszonyítva tetszett a jQuery és a mootools, számomra olvasható/emészthető kódja és felépítése miatt, dojora nem voksolnék az alacsony dokumentáltsága folytán, yui nagyon profi cuccnak tűnik, de ugyanakkor érzésem szerint igen macerás fejleszteni benne. Ugyanakkor még egyszer megjegyezném, reálisabb lenne az összehasonlítás, ha mindegyiket ugyanaz a személy mutatta volna be. Nyilván minden nyelvet meg lehet közelíteni egyszerűen és bonyolultan, mint ahogy a két jQuerys példában is egészen eltérő szemléletben oldotta meg a két bemutató ugyanazt a feladatot.

Tetszett amúgy.

Haszprus

Full text search stb

©   Haszprus   |   cakephp fejlesztés meló php seo symfony virgo

Múlt héten a CodeIgniter Framework megismerése volt terítéken, ma pedig kutattam egy kicsit, amit a napokban még folytatni fogok full text search témában, érintve, de nem korlátozódva a következőkre:

  • Zend Search Lucene
  • Sphinx
  • Xapian

Implementáltam egy a Zend Frameworkben található Zend Search Lucene-t használó megoldást (abszolút experimentális jelleggel, index buildelés és lekérdezés) CakePHP Framework alá beültetve.

Megjelenítési réteghez úgy tűnik 960 Grid System lesz a választottunk.

Itthon eközben symfony frameworköt nyomok továbbra is Doctrine ORM-mel.

Izgi mind.

SEO power.

Haszprus

symfony tech demo

©   Haszprus   |   barátok doctrine fejlesztés php symfony

Tegnap ledemóztam Zolinak a symfony - doctrine duó YAML alapú (schema.yml) adatbázis- és modellgenerálási képességeit, illetve hogy miként lehet ebből formokat és komplett modulokat legenerálni, valamint miként lehet testreszabni ezeket. Ahogy láttam, impresszív volt. Mondjuk szerintem is az.

Haszprus

CSS3 a blogon

©   Haszprus   |   css design fejlesztés idézet

IRCQuote fight! In the ring:

Haszprus
Volt egy kis ráncfelvarrás a blogon, kapott sokminden színátmenetet meg shadowt, sztem tök pofás lett, képek is kaptak shadowt, de remélem nem overused.
Hedge
láttam, nice...
css3... faintos

nov. 30. 03:46 1-2 dolog megvalósult Hedge év eleji design-ötleteiből, nyomjatok egy refresht.

nov. 30. 05:34 toltam rá némi animációt is.

Haszprus

LESS

©   Haszprus   |   css fejlesztés javascript

Kipróbáltam a blog készülő v3-as motorján a LESS JavaScriptes implementációját, és hát tök fasza cucc. Aki esetleg nem ismerné, változókat, számításokat, függvényhívásokat visz a LESS a CSS-be, illetve írhatsz nested szabályokat is (erre mi a magyar szó?). Tökjó.

Haszprus

return($foo);

©   Haszprus   |   fejlesztés

Azon gondolkodtam, hogy magyarázhatnám el egy védőnő hallgatónak hogy mi az a return, és rájöttem, hogy az a függvény segglyuka.

Haszprus

Szilárd & Corvin tető

©   Haszprus   |   buli corvin epam php power zene

IRCQuote fight! In the ring:

voltam epamosokkal bulizni az este, szilárddal feljöttünk előtte hozzám inni aztán gáborékhoz csatlakoztunk a corvin tetőn. szilárddal beszéltünk az önértékelési problémáimról, leírtam 3 gondolatát:

- nagyon értesz az emberekhez és nagyon is akarsz érteni hozzájuk

- szard le mások véleményét

- hidd el h a felhozatalban elég magas szinten állsz. akik php-vel foglalkoznak, kb. a venere csapata az akit az 5 év alatt, amióta dolgozom... alkalmaznék...

Közben rámírt Gyuri (jedlikből):

Haszprus

Lézeres szemműtét ma | update: DONEZ!

©   Haszprus   |   barátok google idézet life meló szemműtét történelem ustream

Ma műtenek. Voltam vizsgálaton a Focus Medicalnál (Margit sziget), majd az Optik-Mednél. Utóbbit választottam.

Mindkét szemem -1 dioptriás, legjobb esetben 125%-os látást tartanak elérhetőnek (a Focus Medical 120%-ot saccolt). Meglátjuk. IntraLASIK lesz egyébként, mert annak gyorsabb a gyógyulása mint a PRK-é.

Egy hét múlva kezdek az új munkahelyemen (USTREAM), remélem hogy azzal nem nagyon fog interferálni a problémás szakasz.

Nem titkolt cél hogy Google-ben a lézeres szemműtét szóra megint kicsit feljebb jussak. Jelenleg a második oldalon vagyok, pedig régóta nincs pörgés a lézeres szemműtét és alternatívái témában (ami anno harmadik volt a google találati listáján).

19:59 megvolt, látok, nem fáj, tökjó! közelre egyelőre nem tökéletes, és a fények körül látok némi glare-t. A tájékoztató szerint ez eleinte teljesen normális. Holnap reggel kontroll.

IRCQuote fight! In the ring:

Haszprus
két nagyobb fázis van, a lebenykészítés meg a lézerezés. na két szemre ez négy fázis, mindegyik relatíve rossz volt, kivéve a jobb szemem lézerezését (azt lézerezték elsőként), ami konkrétan kurvajó volt kb mintha diszkóban lettem volna ez nálam a jövök máskor is kategória
WiZARD

aug. 31. 00:03 valami gebasz lehet

Haszprus
csáááááááááááááá
mainframe
hali! mi a helyzet? látsz?
Haszprus
ajaj nem látlak, kéne?
mainframe
most feltettem a kezem, így?
Haszprus
ígyse bakker

szep. 01. 01:10 36 órával a műtét után:

WiZARD
szemed hogy van?
Haszprus
jól. ma voltam vizsgálaton. 100% most, 125% várható jövő hétre doki szerint. ami annyi h legalsó sort is el tom olvasni majd. fények körül glare. közelre még nem tökéletes. monitoron érzem h még van mit javítani. de simán olvasok. vizsgálat 10-kor volt, utána mentem mammutba és felhívtam anyámat h lemennék telekre. 12-13 körül levezettem biatorbágyra. utána 18-19 körül hazavezettem ide, innen ustreamhez, meg onnan haza. egyhuzamban. szemem jól bírta. pedig picsaszar időjárás volt, szar látási viszonyok. fájdalom stb: mintha semmit se csináltak volna vele
Haszprus

Hetedik jubileumi giga blogtali

©   Haszprus   |   barátok fejlesztés

Gyerekek, 2010. szeptember 21-én HÉT ÉVES lesz a blog!

Ezért aztán egy fergeteges iszonyat überbrutál giga blogtali kerül megrendezésre aznap.

Akinek van képe távol maradni, azt személyesen fogjuk meglátogatni és lezúzzuk az arcát könyörtelenül ámde alaposan.

Ehhez tartsátok magatokat, amikor válaszoltok a kérdésre, hogy ott lesztek-e.

Mikor: Szeptember 21, kedd
Hol: Instant
Haszprus

HTML5

©   Haszprus   |   css fejlesztés

Betoltam egy-két HTML5 elemet a blog alá. Semmi komoly, csak pl.

  • új doctype, ami abszolút elnyerte a tetszésemet. Az első doctype amit fejből megjegyeztem.
  • header - a site logója ebbe megy
  • footer - copyright és egyéb infók
  • nav - sidebarok
  • article - bejegyzések
  • time - a bejegyzések időpontjainak, datetime paraméterrel, amibe egy sztenderd formátumban is eltettem az infót
  • figure és figcaption - képek és képaláírások
  • linkek és scriptek type attribútum nélkül
  • néhány inputnak required attribútum (amit a megfelelő böngészők már kliensoldalon beépítetten validálnak)

Hát sokmindent nem kellett átírni, mivel ezek legtöbbje különböző divek 1:1 megfelelője.

Disclaimer: Ezt az egész site-ot ugye 2003-ban csináltam javarészt, azóta is volt rajta fejlesztés rendesen de az utóbbi években már semennyit sem foglalkozok vele.

Haszprus

Happy coding

©   Haszprus   |   energiablog epam javascript

Wow, még mindig megy a hepi kóding Vasárnap déltől hétfő hajnal fél 6-ig nyomtam, most meg 23 óra lesz és még mindig bent vok epamban Tökjó az új taskom.

júl. 16. 07:32 Ma meg bejöttem 7-re, omg.

Haszprus

Spring tréning

©   Haszprus   |   epam fejlesztés java képzés

Írtam a resource managernek hogy érdekelnének különféle tréningek, aki szólt egy trénernek és kapásból kaptam is egy levelet, hogy lesz egy Spring tréning jövő héten, oje

Kb ezek a témák:

  • Spring IOC Container
  • Spring AOP
  • Spring Web-MVC
  • Spring Hibernate – ORM support
  • Spring Transactions
  • Spring security esetleg

Jejeje!

Haszprus

Ethical hacking

©   Haszprus   |   barátok bme fejlesztés képzés

Voltam tegnap Ethical Hackingen a BME-n. Első kétharmada q érdekes volt.

Érdemes ezekre a külön cuccokra járni azt hiszem, tágítja az ember világképét, sokmindent meg lehet ismerni elég gyorsan, és most végre időm is van rá.

Haszprus

6 éves lesz a blog!

©   Haszprus   |   barátok fejlesztés

6 nap múlva, azaz szeptember 21-én 6 éves lesz a blog!

Kéne blogtali. Gyertek! Mikor legyen?

Kérdezitek hogy mikor, gondolom mint eddig, mondjuk 20-tól, de mindenki akkor jön/megy amikor tetszik. És gondolom az instantban, de javasolhattok mást is.

szep. 18. 20:35 a dolog hétfőn lesz az instantban 20-tól.

Haszprus

Python

©   Haszprus   |   fejlesztés képzés python

Megírtam az első Hello worldömet Pythonban.

05:30 megírtam az első osztályomat Pythonban.

05:44 megírtam az első komplex szám osztályomat Pythonban.

class MyComplex: def __init__(self, re, im): self.re = re self.im = im def echo(self): print self.re, "+", self.im,"j" def add(self, c): newc = MyComplex(self.re + c.re, self.im + c.im) return newc import MyComplex c = MyComplex.MyComplex(3, 5) c.echo() d = MyComplex.MyComplex(4, 6) d.add(c).echo()

13:43 apró változtatásokkal Tamás kommentje nyomán

class MyComplex: def __init__(self, re, im): self.re = re self.im = im def __str__(self): return str(self.re) + "+" + str(self.im) + "j" def __add__(self, c): newc = MyComplex(self.re + c.re, self.im + c.im) return newc import MyComplex c = MyComplex.MyComplex(3, 5) print c d = MyComplex.MyComplex(4, 6) print d+c
Haszprus

Címkék alapján navigáló galéria

©   Haszprus   |   fejlesztés fotózás

Pl. Skandinávia, Mainframe, tűzijáték stb. Az elérhető címkék listájáról nem csináltam külön listát - minden olyan címke elérhető, ami a bejegyzéseknél szokott szerepelni (és annál még több is, csak azt a pórnép nem látja).

Btw tűzijáték: a 2005-ös albumot ajánlom, ahol a tűzijáték kivitelezője (Absolut Pyro Kft.) a blog kommentjeiben keresett meg hogy elkérje a fotóimat. Nice. A felső képből pedig a The Dethroners zenekar akart először albumborítót, végül egy közbülső lap lett belőle.

Btw fel kéne raknom a skandináv és holland képek hátralevő részét…

aug. 20. 01:13 lett dátum szerinti bontás a címkékre, pl. Mainframe dátum szerint, vagy pl. külföld dátum szerint.

aug. 26. 06:35 lett ajaxos kereső a galériához. A többi keresőhöz hasonlóan ez is a lap jobbfelső részén található keresőmezővel érhető el, a Mit keresel? kérdésre Képet választva az opciók közül.

Haszprus

Portál biznisz

©   Haszprus   |   barátok fejlesztés idézet meló

IRCQuote fight! In the ring:

Haszprus
most hívott egyik évfolyamtársam, [censored], kb. ilyen évfolyamelső kategória, hogy nem akarok-e vele közös biznict csinálni vmi portálfejlesztés témakörben
merhogy anno csináltunk már egy pici oldalt közösen és h milyen gyorsan meg faszán meglett az is
privacy power 1 aha
van erre időd?
Haszprus
nincs
privacy power 1 akkor nemet mondtál?
Haszprus
aha
kár mer jóarc meg biztos lenne mit tanulni tőle
privacy power 2,
aki tudja, hogy
censored kicsoda
pedig nem lenne rossz biztos
(magyarul: pedig biztos jó lenne )
Haszprus

Haszprus PHP Framework prezentáció

©   Haszprus   |   bme energiablog fejlesztés

14:01 Még bent vagyok. Kérdezi a főarc a prezentációm után, hogy és ebből mi működik? - mondom minden amit elmondtam, az működik, és ennél még sokkal több is. Le volt nyűgözve Külön örült, hogy éles rendszer alá is be fogom tolni a nyáron. (Person #1)

15:12 Rendben volt, az első három srác után nagyon jó előadást tartottál. (Person #2)

16:03 Orulok, hogy sikered volt, a fiuk is mondtak, hogy eros volt az anyagod. Gratulalok! (Person #3)

Haszprus

Haszprus Framework

©   Haszprus   |   bme fejlesztés mátrix php

Irgalmatlan tempóban készül a Haszprus PHP Framework…

(Önlabra lesz, egyelőre van benne fasza formgenerálás, mvc (mégpedig kicsit smarty-style), minden ami kell… Nem használ fel korábbi cuccaimat, written from scratch, inspired by symfony and TRES.)

(Munkáltatóm figyelmébe: a cuccot itthon készítem ingyé nem kevés időben (pl. most 4:50-kor végzek vele és kb. tegnap 18 óta nyomom, az hány elszámolatlan óra is egy nap alatt?) és maximálisan fel fogom használni a munkámban. Jól.)

Haszprus

Keresőlog :)

©   Haszprus   |   fejlesztés
recent_searches (1) ( 10  31  anon  )
12-25 09:13    ScoobyZoli    monitor kalibrálás
12-25 09:13    ScoobyZoli    kalibrálás
12-25 09:13    ScoobyZoli    monitor
12-25 09:13    ScoobyZoli    monitorbeállítás
12-25 09:13    ScoobyZoli    kalib
12-25 09:13    ScoobyZoli    monitor
12-25 09:13    ScoobyZoli    skéla
12-25 09:13    ScoobyZoli    skála
12-25 09:14    ScoobyZoli    monitor
12-25 09:14    ScoobyZoli    szinek beállítása
12-25 09:15    ScoobyZoli    szürke skála
12-25 09:15    ScoobyZoli    FASZOM HASZPRUS NEM TALÁLOM

Észleltem egy olyan személyes levélnek álcázott típusú spamet ami valahogy átjutott a szűrőn, és mindjárt keresetlen válaszra is méltattam (naivan bízva abban hogy nem spambot csinálja, és ezúttal be is igazolódott a gyanúm), majd továbbküldtem a Homárnak. Igaz, nem az én bejelentésem alapján, de lehozták a dolgot. A spammerem azonban gyorsabb volt, és válaszolt. (Ami azért nem mindennapos, ezért is gondoltam hogy megírom ilyen backstage-finomság gyanánt a levelezésemet vele.)

Haszprus

Nagymennyiségű adat

©   Haszprus   |   barátok bme fejlesztés l0lzor

IRCQuote fight! In the ring:

Carl0s 21:27 szia
Haszprus
jégcsákány
Carl0s nem tudsz nagy mennyiségű adat rendezésére valami toolt?
olyan ami nem fér be a memóriába
Haszprus
ümm
algel könyv
+ eclipse
Carl0s 21:31 tuti van vmi progi erre
Carl0s 21:48 és szerinted ha én hegesztenék össze egy ilyet az hatékonyabb lenne mint egy meglévő megoldás?
kétlem
Haszprus
nyugimá, vicc volt
nem tudok, az a lényeg
Carl0s bazz
pedig itt olvasom a könyvet
Haszprus

......
kész

Úgy alakult, hogy külföldről be kellett szerezzünk valamit a fejlesztéseinkhez, és egybeköthettem ezt egy kis továbbképzéssel. Természetesen számomra utóbbi volt a lényeg.

Igazából nincs jelentős vezetési rutinom, ezer éve nem kommunikáltam angolul, külföldön sosem voltam egyedül, pláne nem autóval kombinálva. Úgyhogy kihívásnak ígérkezett a dolog, és megragadtam az alkalmat. Nagyon helyesen tettem.

23-kor érkezés a hotelbe, Linzben (Ausztria). Tervezetten 436 km, ennél valszeg kicsit többre sikerült, és egyéb problémák is akadtak. A hotel elég szép volt, közvetlen kilátás a Dunára, panoráma-függőfolyosó, HD TV (lekötött vagy 10 mp-re), kihasználatlan francia ágy. Elalvás paplanon, ruhában. Reggel tali a cég embereivel, akiket követtem Hagenbergbe, a Software Parkba, ami ugyanolyan mint az itthoni BME I épület és környékére ráhúzódó Infopark, azzal a különbséggel, hogy az embernek elég szegényes érzése támad a hagenbergi változatot látva. Nem is akarok többet írni erről, beszéljenek a képek magukért. (Mondjuk az tény, hogy az infopark üzleti épületeiben még nem voltam.)

IRCQuote fight! In the ring:

(privacy power)hogy vagy?
Haszprus
istenien
elégedetten
önelégülten
a világ tetején
és fáradtan
de átszellemülten
a gondok felett
egy álomvilágban

Update 14:38: Megcsináltam valamit, aminek eddig a közelében sem jártam.

Haszprus

Python

©   Haszprus   |   fejlesztés képzés mátrix python

Az új srác ma megismertetett a Python alapjaival. 1-2 nagyon alap dolgot már tudok írni, illetve láttam kódot, ami alapján el tudok indulni. Nice.

A nyelvről egyelőre annyit említenék meg, hogy a programkódban nincs { és }, ehelyett kőkemény indentáció alapján dönti el, hogy mi hova tartozik. Ezzel egyszer s mindenkorra megoldja, hogy a különböző fejlesztők ugyanazokat az indentálási konvenciókat használják*. Ötletes.

Ezen kívül kaptam egy NFC-képes Nokia telót, hogy fejlesszek rá valami szépet.

Ezek mennek.

* a kommentek szerint ez nem teljesen van így

Hirtelenfelindult poszt, mert Mf unalmában beleolvasott egy villamoson utazó néni válla fölött a sztármagazinjába (fujjnemszabad), és két egymást követő oldalon két olyan személlyel találkozott, mint XY, a Fábry Show-ban bemutatott vécésnéni (sic!), illetve YX, az M1 Telesportjának az egyik műsorvezetőnője (aki terhes, ez a hír). A mi sztárjaink, kéremszépen....

A kommentek között pedig olvashattok egy kezdeményezést a női pólus kiegyensúlyozására itt a blogon.

Haszprus

Haszprus überblog - utat mutat

©   Haszprus   |   fejlesztés olvasói levelek

[...] szinte az összes blogon található bejelentkezős-regisztrálós rendszer egy nagy kalap bálnabánat. Írnám a kommentet nagy hévvel, erre csak egy link, vagy sokszor csak egy üres felirat vigyorog rám gizdán, hogy regisztrálj, vagy jelentkezz be. És akkor kattintok, bejelentkezek, visszadob, és máris elveszett a pillanat varázsa.

Vagy minden egyes alkalommal be kell írnom azt, hogy szerda van [...]; vagy hogy Mefi volnék, és van blogom meg e-mail-címem is.

Az összes gagyi. Kivéve egyet. [...] elég csak kipróbálni, és rögtön megszereti az ember. Szóval egyetlen helyen van ez a dolog ügyesen megoldva, mégpedig Haszprus blogján. Ha valaki kommentált már ott, tudja mi a módi; ha reigsztrált vagy, jelentkezz be, ha nem, add meg a neved és írj. Na de nem ám egy sima szöveg van, hanem a komment után van egy űrlap a bejelentkezésnek és van egy a név megadására is. Nem kell hat másik oldalra ellátogatni, egy helyben, ügyesen megoldhatod. És ez jó, ezt a példát követni, mondhatnám, ezt a mintát szabványosítani kellene. És amikor én ezt anno megláttam, már akkor tudtam, hogy ha valaha írni fogok bejelentkezést, akkor az így fog kinézni. [...]

(Intelligens bejelentkezés a mefiblogon)

(Későbbi korok kedvéért: így néz ki a szóban forgó kommentform kijelentkezve, így pedig bejelentkezve.)

Haszprus

OO!

©   Haszprus   |   fejlesztés mátrix

Oh yeah belemélyedtem itt az objektumorientációba, megírtam életem első überperfekt osztályhármasát. Adott két adatformátum, a feladat az egyikből a másikba konvertálgatni. Ugyanazokból az elemi adatokból épülnek fel, csak másként kell őket megjeleníteni. Na mindkét megjelenítéshez lett egy-egy osztály, fill és __toString metódusokkal (2+1 sornyi törzzsel). Ezen kívül minden mást a szülőosztály végez el. Ő tudja hogy a két adattípus hogy néz ki (és ez abszolút így van rendjén), hogyan kell őket formázni, miket tárolnak, és mivel van benne abstract public function is (a fill), ezért beszól, ha ezt nem definiálja felül a tisztelt leszármaztatott osztály. Plusz ezt az abstract functiont hívja meg a szülő __construct()-ja, ami azt hiszem a Factory Method nevű design pattern elve, de ebben most nem vagyok egészen biztos. Hát én nem tudom, de erős a gyanúm, hogy ilyen szinten relatíve ritkán használják a PHP-t már. Most ez feldobott, nyilván titeket is.

Update már. 23. 12:31: A factory method más: az egy objektumot létrehozó osztály, aminek paraméterül adhatod hogy mit példányosítson, és ő példányosítja. PHP esetén ezzel megspórolható a fájl elején a példányosítandó osztályt tartalmazó php fájlok require-rel történő meghívása.

The GuNN

Olvasói levelek 080229

©   The GuNN   |   blog olvasói levelek szánalmas

Feladó: soliman

Címzett: The GuNN

Küldve: 2008. február 28. 23:21 (tegnap)

archiválva törlés

Szia! Azt sem tudod miről beszélsz,fiam.Akkor miért mondod.(örök téma)Maradnál csöndben és csak figyelnél.Többet érnél vele.Amúgy(biztos)fasza gyerek vagy.Máshoz is így szólsz hozzá?

És még egy kis mellékes infó:

regisztrált: 2008. február 28., csütörtök 23:13

itt járt: 2008. február 28., csütörtök 23:30

hozzászólások: 0

letöltött lapok: 29

feladott privát üzenetek: 1 (0 olvasatlan)

kapott privát üzenetek: 1 (1 olvasatlan)

Haszprus

Olvasói levelek 080228

©   Haszprus   |   olvasói levelek

Én most atomra beleástam magam a Drupal rendszerbe amit ezermillióan fejlesztenek. Persze, az nem egy blogmotor hanem általános CMS. Mégis, én azt látom, hogy a Te blogot technikailag többet tud. Biztosan nagyon sok munkád van benne. Őszinte leszek, nagyon kiváncsi vagyok rá milyen belülől. Nem, nem kérek acc-ot az adminhoz, de ha lenne időd esetleg egy screencast-ot összedobni az szuper lenne. Ha nem, néhány screenshot is megteszi, de a lényeg ugye az ajax-y dolgokban van

Amúgy pont az apró újítások jönnek be, amiket máshol nem látok. Pl, hogy a comment textarea automatikusan megnő, vagy hogy egy comment több másik commentre is reagálhat. Ez a két dolog pl nekem nagyon bejött.

Emellett látom van privát blog, belső üzenetküldő rendszer, stb...

Ha azt nézem, hogy csak neked 6000 hozzászólásod és 3000 post-od van, akkor bizony az adatbázis mérete sem lehet kicsi.

Na, ezek miatt mondtam hogy komoly

Haszprus

A 4-11. napon

©   Haszprus   |   12e barátok biznisz bme bringa első energiablog fejlesztés film life mátrix mba php sport symfony tanulás túra

A 4. napon (csütörtök)

Az 5. napon (péntek)

  • BME - Tibi, Olthyer, Aston, Viktor, Andor, megalapítottuk az szmmfUnclubot (szoftverminőség és menedzsment labor négyfős csapat ), Takó, Gatza
  • Mátrix
  • Polárvétel
  • Esti kurvajó bringa - most először éreztem jól magam nagyon hosszú idő óta bringázás közben (nem szeretem a telet és nem is vagyok kondiban)

A 6. napon (szombat)

  • Bringa - kormánycsavaró szél, 0 fok, de a frizura mégis tart: elegendő volt az aláöltöző, két rövid mez, és a polár. Nomeg maszk persze, termogatya, térdmelegítő, és egy alsó aláöltöző (hétfőn újítva). A téli tekerés roppant megerőltető, el is aludtam utána

A 7. napon (vasárnap)

A 8. napon (hétfő)

  • BME - Aston, Takó, Andor; amőba 3:2 Takónak (Évek óta nem játszottam, de bejött )
  • Mátrix

A 9. napon (kedd)

  • BME
  • Mátrix - megint letettem valamit az asztalra Kaptam feladatot, főnök kérdezte mikor lesz kész. Mondom 1 nap. Na jó max 2 nap. Kérdezi a főnök, hogy a héten biztosan készen lesz-e, mondom igen-igen. Elkezdtem csinálni, fél óra után azt hittem hogy pénteken kénytelenek leszünk visszaállítani a projekt keddi állapotát, mert annyira átláthatatlan és reménytelen lesz addigra az egész. Ehhez képest 3 óra alatt meglettem vele Örültem ám.

A 10. napon (szerda)

  • Mátrix
  • Tali Schloddival
  • BME - Grafika: Anett, Montana, Tibi, Carl0s; önlabkonzi: kibiri kibaszott jó volt (vázoltuk hogy kb. mik a félévi irányelvek; kiderült hogy a konzulensem pont az egyik olyan céggel szeretne szorosabb kooperációt, akinek ismerem az alapítóját (öö igaz a másik cégnek is ismerem az alapítóját ) (a port.hu-ról és az index.hu-ról van szó btw, csak ugye utóbbiban Nyírő már nincs ott) ); utána még Orcával dumáltam egy fél órát
  • Este kibiri kibaszott jó hírek fogadtak a mátrixból

A 11. napon (csütörtök)

  • BME - első szabtech gyak, egész jó volt; Aston (symfony), Andor, ++
  • Olasz - kibiri kibaszott jó volt, részletek
  • Mátrix - azzal a hírrel fogadtak, hogy amit kedden újraírtam, és tutira lezsíroztuk hogy A módon kell, és nem B módon, azt most megint újra kéne írni B módon, mert a megrendelő mégis inkább B-t akar. Vahz! De tökjól oldottam meg korábban, úgyhogy kb. 20 perc alatt kész voltam az átírással is (Előzetesen elképzelt idő: minimum órák, illetve voltak kétségeim hogy vajon a hétfői bemutatóra fog-e egyáltalán rendesen működni )
  • Tanulás - végre tanultam egy kicsit, konkrétan matlaboztam.
    Ezt is lehet ám szeretni
  • Cserébe éjfél lesz 2 perc múlva, ma is alszom vagy 5 órát
mainframe

Úristen, mit tettünk...?!

©   mainframe   |   bme fejlesztés hwsw szánalmas

Egy rövid idézet ((C) egon) abből az időből, amikor még régi jó neptununk volt, és nem tudtuk megbecsülni:

"Majd ha bevezetik a Neptun.NET-et... Hmm, fincsi lesz..."

Amikor ezt olvastam olyan érzésem volt, mintha a Terminator N+1-ben találna a főhős egy megégett újságcikket a romok között, hogy A nép izgatottan várta a Skynet mai üzembehelyezését. Egyfelől lol, másfelől omg.

Haszprus

Übertúra március 1 éjjel

©   Haszprus   |   barátok blog bme éjjel éjszakai túra fejlesztés túra
Tali március 1 21:20-kor a Nyugati pályaudvar jegypénztárában. Vonat 21:40-kor indul. Akármilyen idő esetén.

Na ha látod ezt a topicot, az azt jelenti hogy meg vagy hívva túrázni! Itt a blogon vagyunk már elegen ahhoz, hogy összejöhessen egy ilyesmi, ráadásul egy csomóan bme-sek vagyunk, szóval noha még nem mindenki ismer mindenkit, de adja magát hogy most már szervezzünk itt valamit...

Ha van kedved jönni, akkor az alábbi két szavazáson csekkold be az összes megfelelőnek tűnő időpontot, és meglátjuk mi lesz.

  1. Melyik éjszakai túrára lenne kedved és lehetőséged jönni?
  2. Melyik nappali túrára lenne kedved és lehetőséged eljönni?
  3. Szavazás rossz idő esetére

Kommentbe egyéni megjegyzések, lelkesítő szövegek, meg bármi releváns jöhet. Az is királyos lenne, ha itt a blogon is jeleznéd, hogy van kedved jönni, nemcsak a doodle-ön. A doodle azért jó, mert megkönnyíti a szervezést, a blog meg azért jó mert személyesebb, mindenki szívesen látja itt is, hogy jössz te is!

Ha tudod hogy nem jönnél, dobj lécci egy privmsg-et. Nincs sértődés nyilván, és sokkal jobb, mintha nem jeleznél vissza semmit.

Haszprus

A kommentkezelési újítások hatása

©   Haszprus   |   fejlesztés

Durva hatása lett annak a három apróságnak gondolt feature-nek, amiről a Kommentkezelési újítások bejegyzésben írtam. Mik voltak ezek?

  1. A topicok a friss témák menüben színeződnek aszerint, hogy hozzászóltál-e, és ha igen, válaszoltak-e.
  2. A topicoknál a kommentform környékén lelki terror kényszeríti bele a júzert a kommentálásba. A júzer nem tud menekülni.
  3. Egy apró vonalka jelzi a menüben, hogy melyik volt az a legfrissebb topic, amit a júzer már minden kommentjével együtt látott.

A hatás

Haszprus

Olvasói levelek 080104

©   Haszprus   |   olvasói levelek

Még mindig jók vagyunk, íme egy őszinte olvasói vélemény

A személyes blogok nagy része a film + game kombinációt heti adagokban rendszeresen ellövi. És eddig nekem az überblog azzal tűnt ki, hogy olyan témákról születtek bejegyzések amik nem húzhatók rá általánosságban erre a sablonra. Szerencsére nem egy szartam, ebédeltem, jóezagame, jóezamozi, hülyemindenluvnya vonal.

(Hedge, 2007.12.30.)
Haszprus

Kommentkezelési újítások

©   Haszprus   |   fejlesztés

Nem nagy cucc, de ha már Mefi rákérdezett az üzenőfalon, akkor beszámolok róla.

A friss témák menüje kicsit megváltozott: színeződnek a dolgok aszerint, hogy hozzászóltál-e az adott topichoz, és hogy te voltál-e az adott topicban az utolsó.

Ha nem szólsz hozzá egy topichoz, azt nem szeretjük, ezért optikailag büntetünk és lelki terrort alkalmazunk:

Ellenben ha hozzászólsz, azt szeretjük és megköszönjük:

Mindehhez be kell jelentkezned.

Haszprus

Mátrix

©   Haszprus   |   fejlesztés mátrix

Azt találtam ki, hogy a munkahelyi bejegyzések a mátrix címke alatt fognak futni, legalábbis egy darabig. (A címke eddig is létezett, csak más néven, és nem volt publikus. Bizonyos címkéket ugyanis nem lát mindenki.)

Haszprus

Mission one completed (XML parser optimalizáció)

©   Haszprus   |   fejlesztés mátrix php xml

A cégnél az első feladatom egy olyan script optimalizálása volt, amely 12-től 30 vagy akár még több MB-ig terjedő XML állományok alapján hajt végre nagyságrendileg 100-500e egymással összefüggő SQL insertet (értsd: mély és széles xml-fa).

Az eredeti progi egy 30 megás XML-lel kb. 2 perc 40 másodpercnyi munkát adott az apache.exe-nek (ennyit foglalt a prociból tehát az apache), miközben a memóriahasználat az alapjáratú 27 MB-ról felment 558 MB-ra. A program teljes futási ideje 383 másodperc volt.

Elég sok időt eltöltöttem azzal, hogy egyrészt a program logikáját megértsem, másrészt utána nézzek, hogy vajon van-e valami hatékonyabb XML parser. Miután nem találtam a használt megoldásnál jobbat (tekintve hogy az se a teljes dokumentumfát tárolta a memóriában), már majdnem ott kötöttem ki, hogy ezt bizony nem lehet (vagy én nem tudom) optimalizálni (bár persze kételkedtem), ehelyett kicsit kitesztelgettem, hogy hogyan is működik a php-ben a változók és objektumok megsemmisítése (ld. __destruct), és a megfelelő stratégiai helyen mért csapás eredményeként a program most nem növeli az apache alapjáratú memóriafoglalását egy megával sem (Érdekes módon az unset nem segített.)

Azaz az én verzióm a 30 megás XML-lel ugyanúgy 2 perc 40 másodpercig tekeri az apache.exe-t, azonban összesen csak 358 másodpercig fut (fél perc nyeremény itt, miközben sebességre még nem is optimalizáltam), és ami a lényeg, hogy 27-ről nem 558 MB-ra nyomja fel az apache memóriahasználatát, hanem mindössze 29-re. Nem kell mondani, hogy ez mennyire előnyös egy olyan környezetben, ahol más dolgok is futnak (ti. ez egy webszerver).

Amikor nekiálltam a dolognak, egy nagyságrendi változást akartam volna elérni, aztán ahogy beleástam magam, megelégedtem volna akár egy memóriafelezéssel is, végül már majdnem teljesen feladtam, de arra álmomban sem gondoltam, hogy sikerül a memóriahasználatot úgy ahogy van megszűntetni Ettől igen jó kedvem lett

Rulz.

Haszprus

133 komment - thx!

©   Haszprus   |   fejlesztés

133 komment! Pörgős hetünk volt. Igaz, ez nem mind látható, de azért sokminden ment publikusan is Risztekpa mindenkibe! Ja és köszönöm is a kommenteket, a héten több olyan bejegyzés is volt, ahol értékes hozzászólások érkeztek, és sokat segítettetek! Thx!

Hiszek abban, hogy itt egy elég frankó olvasóközönség alakult ki, amire/akikre nyugodtan büszke lehetek.

Haszprus

Képajánló

©   Haszprus   |   adatbányászat bme fejlesztés

Bizonyos esetekben egész jól műxik. Időm nem volt alaposan kitesztelni meg ilyenek. Most ez nekem két kreditért oké volt, ennyi. Ha érdekel, itt megnézheted [update 2024-03-02: csak megnézhetted], hogy személy szerint neked mit ajánl.

Nagyjából azt érdemes figyelni, hogy az eddig letöltött képeid függvényében vajon úgy érzed-e, hogy nagyjából releváns képeket ajánl, tehát hasonló jellegűeket. Például ha tűzijátékos fotókat néztél, akkor jóeséllyel látsz további tűzijátékosokat. Ha külföldi fotókat néztél, jóeséllyel látsz további külföldi fotókat. Legalábbis ez volt a kiindulási alapfeltevésem, aztán egyáltalán nem biztos, hogy a gyakorlat ezt a feltevésemet igazolja. Ugyanis a képeket nem hasonlóság alapján ajánlja, hanem hozzád hasonló ízlésű felhasználók képnézegetési szokásai alapján. Azaz az ajánlott képek nem feltétlen kapcsolódnak egymáshoz. De azért megfigyelhető egy-két dolog, amibe most nem megyek bele…

Ha csak két képet látsz, az azt jelenti, hogy nem tud ajánlani neked a rendszer semmit. Valószínűleg nem tudja hogy ki vagy (pl. mert törlöd a cookie-kat), vagy még nem töltöttél le képet. Bizonyos bugok is vannak a userazonosítás körül, amiket még nem debugoltam (és egy darabig nem is fogom, mert nem érek rá).

  • Képajánló a Haszprus überblogon

2024. már. 02. 14:03 kivezettem ezt a funkciót. Magyarul töröltem.

Haszprus

Referer hack

©   Haszprus   |   fejlesztés javascript php

Ma az adminfelületen a logok közé benézve a következő ablak villant fel:

Gondoltam biztos valamelyik firefox extension bugzik. De nem. Valaki egy lapletöltésnél user agentnek azt bírta megadni, hogy

<script>alert(1)</script>

Ofkorsz a user agentek biztonságosan kerülnek az adatbázisba egy $db->safe_string() konverzión keresztül, mert nehogymár valaki ott kezdjen sql-t injektálni, de arra még nem gondoltam, hogy valaki html-t vagy js-t fog becsempészni így az oldalra. Trükkös.

Tamás

Szerdai kvíz #1

©   Tamás   |   fejlesztés php

Kvízjáték: mit jelent az alábbi PHP hibaüzenet és hogyan lehet kiváltani?

Parse error: syntax error, unexpected T_DEC,
expecting T_PAAMAYIM_NEKUDOTAYIM

Google nem ér.

Haszprus

Objektum-orientált JavaScript

©   Haszprus   |   fejlesztés javascript

Eddig az objektum-orientált javascript valahogy kimaradt az életemből. Nem nehéz megindokolni igazából, a helyzet az, hogy a weben előforduló feladatok többsége nem igényel oo js-t, és valahogy nincs agyonreklámozva hogy a js az tulajdonképpen egy oo nyelv. Pedig az. Szóval meg is írtam az első saját js objektumomat egy tutorial alapján, marha nehéz volt, mit ne mondjak, le is publikálom ennek örömére.

Haszprus

PHP/JS/AJAX fejlesztésgyorsító cuccok

©   Haszprus   |   ajax fejlesztés javascript php

Először arra gondoltam, létrehozok egy bejegyzést a Propelnek, de kezdetnek inkább csak egy ilyen általánosat… ki milyen külső cuccokat használ php alapú webfejlesztéshez? Nem projektspecifikus cuccokra gondolok (pl. free webgaléria, stb), hanem általánosan használható, beépíthető dolgokra (mint pl. adatbáziskezelő réteg, template rendszer).

Én elsősorban a bloggal szórakoztatom magam, és itt nem az a cél hogy gyorsan fejlődjenek a dolgok, hanem hogy magam fejlesszek ki mindent. Hobbiból. Ennek megfelelően eddig nem is nagyon vettem be külső fejlesztéseket a projektbe, egy éve bekerült egy Smarty (ami nem jött be végülis), és most nemrég a prototype.js, igaz ez nem php, hanem js/ajax. Na ilyesmikre gondoltam. Nyomassad, miket használsz, mire jó, stb.

Haszprus

Kereső revamp - user szerinti szűkítés

©   Haszprus   |   fejlesztés

Egyelőre csak a kommentekre műxik. Szintaxisa: a keresőmezőbe beírod a többi szó mellé azt, hogy user:x,y,z, ahol x,y,z azoknak a felhasználóknak a neve (vagy névrészlete), akiknek a kommentjeiben turkálni akarsz. Persze elég csak egyet is megadni.

Három példa

  1. welcome user:montana azokat a kommenteket keresi amiben szerepel a welcome szó, és montana írta.
  2. ajax user:adamo,tamás,boci azokat a kommenteket keresi, amiben szerepel az ajax szó, és a szerző adamo, vagy tamás, vagy boci. (igazából ha lenne olyan szerző is, hogy adamoooo, vagy aaaadamoooo, akkor is megtalálná, mert szótöredéket keres a névben)
  3. ajax user:am kommentek, amiben szerepel az ajax szó, a feladó nevében pedig az am szórész.

Update 09:38: nemcsak hozzászólásra működik már, hanem bejegyzésekre is, pár sort kellett átvariálni. iRock!

Update 17:16: linkbárra is.

Haszprus

Kereső revamp

©   Haszprus   |   ajax fejlesztés

Közeleg az utóbbi idők legnagyobb projektjének vége, hamarosan itt az új ajaxos kereső. (Egyelőre csak néhány kiválasztott látja. Te látod? Nem, de szeretnéd?) De nemcsak ajaxos, hanem egy csomó mindent tud is.

  • ajax
  • animált
  • nem tartalmazandó szavak listája (pl. keresőkifejezés: sony -alacsony)
  • pontos kifejezések (pl. sony, így azokat fogja megtalálni ahol a szó sonyval kezdődik, nem valahol a közepén van. de idézőjelek közt ha több szóra keresel, akkor azokat egy stringként fogja kezelni.)
  • linkbárban is keres
  • felhasználók közt is keres, mégpedig részleges névegyezésre is. a sortolás* pedig elég advanked, azok kerülnek előre akiket valszeg keresel illetve akik valamilyen értelemben fontosak…
  • a kedvencnek jelölt bejegyzéseket előre veszi a találati listában (Update nov. 09.)
  • szerző szerinti szűkítés (pl. sony user:mainframe) (Update nov. 10.)

* rendezés, nem pedig sorok tologatása!

Development tasks

  • High priority:
    • a replaceContent jegyezze meg az oldalon levő formok adatait, pl. írás alatt levő kommenteket
    • rövid leírás a kereső használatáról, szabályokról, and/or/user:, stb.
    • adjon visszajelzést a keresőkifejezés feldolgozásáról (hogy mik történnek a keresőszavakkal, pl. a user:... mit csinál, a szavak mindegyikét tartalmaznia kell a találatnak, stb.)
  • Low priority:
    • search history (ajax-szal szépen a menübe rakosgassa hogy mikre keresett a user)
    • kommenteknél is a keresőszavak kiemelése a találatokban
    • tanuljon abból hogy a userek melyik keresési eredmény felé mozdultak tovább
    • suggestions mint google-nél
    • lapozó?
Haszprus

Bejegyzések megjelölése

©   Haszprus   |   fejlesztés

Erről lassan már másfél hónapja akartam írni: lett egy ilyen a bejegyzések oldalán közvetlen a szövegek alatt, ha be vagytok jelentkezve, hogy Bejegyzés megjelölése. Ezzel fel lehet venni a blogon a saját kedvenceid közé az adott bejegyzést. Használatára egy példa lehet, ha olvasol egy filmértékelést nálunk, aminek hatására meg akarod nézni a filmet majd egyszer valamikor, és megjelölöd a bejegyzést, mintha egy webshopon betennéd a kosárba/kívánságlistába…

Haszprus

AJAX - második merülés

©   Haszprus   |   ajax fejlesztés

Lesz heavy ajax usage, betoltam a blog alá a prototype.js-t, atomjó. Elsőnek a privmsg live search valósult meg (tudom hogy eddig is volt valami experimentális próbálkozás de ez most jobb), mégpedig nem akárhogy, mert átraktam OO-ra a privmsg-eket is, javarészt. Bár pár function még árván maradt, de kapacitás függvényében meg lesz oldva.

Amit véghez szeretnék vinni a jövőben, az a blog alapos belső felfrissítése (full oo kód, következetesebb változónevek, megjelenítés minél alaposabb elválasztása, minél általánosabban használható osztályok stb.), és ajaxos feature-ök. A régi feature várólistát javarészt kidobtam a kukába. Most hogy fél mega fölött van a projekt php forráskódja, az elavult kódrészeket muszáj még jobban ráncba szedni, ami még nem oo, azt átrakni arra. Nem mintha így nem tudnék új designt felhúzni a blogra, csak úgy érzem, most ezzel tudok szintet ugrani.

Haszprus

Új RSS url-ek

©   Haszprus   |   barátok blog fejlesztés google rss

A site átstrukturálásának részeként új helyre kerültek az RSS feedek, tessék frissíteni az olvasókat. Ezen kívül ha valaki külön szerzőt figyelt meg, akkor nézze meg hogy nem módosult-e a kedvenc szerzőjének az id-je, ugyanis jópáran újat kaptak a felszabaduló alacsonyabb id-knek (és egyéb félautomata id-átrendezéseknek) köszönhetően (többek közt: Tamás: 7, Orca: 22, Montana: 27, The GuNN: 28).

Az RSS letöltéseket nem szoktam logolni mert túl nagy többletforgalom szerintem, és sok értelme nincs, most egy órája logolom, érdekes dolgok derülnek ki belőle. Ez alatt az egy óra alatt 26 egyedi ip-ről kapott a blog rss-letöltést, namost egyedi ip-nek számít például a google reader vagy a netvibes rss fetchere is. Szerencsére ezek user agentben megadják, hogy hány előfizető húzódik meg az egyetlen letöltésük mögött, google readerből 30-an olvassák a fő bejegyzésfeedet, netvibesról pedig 39-en (ezen őszintén meglepődtem). Ez legkevesebb 95 előfizetőt jelent, de ez csak egy egy egyórás megfigyelés (nyilván akik nem webes readert használnak, azok közül nem mindenki volt online az egy óra alatt és az se biztos hogy ha online volt is, futott az olvasója, vagy elég gyakran frissít, stb stb).

Vajon milyen metodikát használnak például a feedburnernél az előfizetők számának megállapítására? (Tekintve hogy egy új ip nem feltétlen jelent új előfizetőt, és azonos ip nem feltétlen jelent egyetlen előfizetőt, ld. lan).

Haszprus

Felhasználóbarátabb blogot

©   Haszprus   |   fejlesztés olvasói levelek

Kaptam visszajelzést egy kevésbé kocka ismerősömtől, hogy a blog egy kissé kaotikus.

Ennek megvan a maga oka, éspedig:

  1. Az alap: blogokat egy szűk kocka réteg olvas. A kockák kiigazodnak könnyen a felhasználói felületeken.
  2. Az én blogomat a szokásos blogolvasó kockáknál is kockábbak olvassák, a témákból és az ismerősi körömből adódóan (bme műinfó, fejlesztés)
  3. Aki blogot olvas, az általában többet is, ilyen módon a nálam látható oldalelrendezés, navigáció, funkcionalitás megszokott lehet, esetleg pár dolog máshol van, de ezeket könnyen felfedezi a gyakorlott felhasználó.
  4. Aki egy blogot olvas, az visszatérő látogató, és mint ilyen, van ideje megismerni a site-ot, ergo a site-on power userként lehet rá tekinteni, nem pedig newbie-ként. Ennek következménye, hogy bizonyos feature-öket eleve úgy tervezek meg, hogy az a power userek igényeihez igazodjon (pl. az archív oldalak gazdag szűkítési lehetőségeit).

Fentiekből következően a tipikus olvasónak a blog átlátása valószínűleg nem okoz különösebb problémát. (Bizonyára nem véletlenül kapok csupa pozitív visszajelzést.) De mi van, ha ki akarjuk szolgálni azokat a látogatóinkat is, akik esetleg most csöppennek a blogok világába, vagy pl. a google-ről kerülnek ide, és azt se tudják, mi az a blog?

A kérdés most hozzátok szól: mi az ami szerintetek az überblogon nem a legfelhasználóbarátabb? Elég ha csak rámutattok, de ha van ötletetek a jobbátételre, azt is érdeklődve hallgatom. Előre is köszönöm! (Ha valamiről úgy gondoljátok hogy az kiemelkedően jó úgy, ahogy van, az is jöhet.)

Végül pedig a legfrissebb feedback:

Ah, végre egy hely, ahol a régi kommentek is átíródnak erre a névre.
(Nálunk sincs így.)
Haszprus

People tagging

©   Haszprus   |   fejlesztés seo

Most, hogy szabad címkézés van a blogon, lehetne a bejegyzéseket tagelni aszerint hogy kiket érint… (Ilyesmi egyébként van pl. Boci naplójában) Mondjuk ebben annyi az apró bökkenő, hogy én legtöbbször még a bejegyzésekben sem említek neveket privacy okokból. Pedig nem lenne rossz, mert pár év távlatából már nem mindig tudom hogy pl. egy népgyülekezeten kik voltak ott (ez mondjuk félig-meddig megoldott mert az adminban lehet privát megjegyzést tenni minden bejegyzéshez), sőt, az kurvajó lenne ha tagek szerint megnézhetném hogy kivel milyen jelentősebb dolgokat csináltam az évek során.

Lehetne olyat, hogy ezeket a címkéket csak trusted userek lássák, vagy pl. nemtrusted userek számára valami kóddal helyettesítődnének az emberek, pl. a monogramjukkal, vagy egyszerűen sorszámokkal.

Nem, nem vagyok hülye, és ez tényleg jó lenne. Én a blogomat most már nagyon valószínűnek tartom hogy kibaszott hosszú ideig fogom még írni, legfeljebb megritkulnak a bejegyzések (ez egyébként nemcsak feltételezés, hanem cél is) és/vagy átmegy trustedbe az anyagok nagyrésze.

Amúgy az adminban át kéne alakítani valahogy a címkerendszert, mert ez a kilométeres legördülő menü kezd nem nyerő lenni, ugyanakkor a gépeléssel beírandó címkék se lennének jók. Az elején azt hittem, hogy csak 1-2 plusz címkét vezetek be, de később rájöttem hogy SEO szempontból marha jó a címkézés, hiszen létre tudnak jönni így olyan archív oldalak az adott kategóriák számára, ami valószínűleg az adott szóra keresve elég nagy értékkel bír a Google PageRankje szerint, főleg hogy csomó helyről vezet rá link (ugye az összes bejegyzésből amely az adott címke alá van besorolva). Címkefelhő kéne? Bizonyos mennyiség fölött az se jó, ráadásul abban nem lehet billentyűzettel adott prefixhez ugrani például. (Mondjuk felhő helyett egy szimpla lista is lehetne.)

Haszprus

Négy éves a blog

©   Haszprus   |   ajax blog design első fejlesztés javascript rss sql

Bezony.

Ezenkívül volt egy csomó olyan dolog, amiknek a felszínen nem sok látszata van, a háttérben viszont igencsak, ezért technikai/webdev érdeklődésűeknek javaslom a history felkeresését, mert ezekről csak ott ejtettem néhány szót.

Bár nem a bloghoz tartozik, de ezen időszak alatt megküldtem a Haszprus Private Galleryt egy igen durván cache-elő javascripttel és egyéb js-es feature-ökkel, úgy mint pl. onthefly szerző szerinti szűkítés, képek lapújratöltés nélküli megjelölése.

Végül pedig néhány screenshot a tervezett 3.0-s designról, amire nem tértünk át.

Haszprus

Olvasói levelek 2007.09.17.

©   Haszprus   |   barátok fejlesztés google idézet olvasói levelek

Három feedbacket kaptok a mai napra, két személytől.

hmm, ez tenyleg szepen van optimalizalva. [...] menj el website optimizernek

A fenti idézet a Private Gallery cache-elt lapozórendszerére vonatkozik, a második fele pedig az indafotó lassúságára tett kritikáim kapcsán született.

A schönherz spot archívum-ra kerestem Googlen, és baszki a te blogod jött be 6. találatnak Oldalak Google-re optimalizálásából kéne élned sztem

Ez ugye egy egész másfajta optimalizálás.

Baszkideqrvaszépképeidvannakbeszarás

Itt pedig ezekről a képekről van szó.

Na ennyit mára a feedbackekről, legközelebbi adásunk pontosan random időpontban várható.

Haszprus

draw_table_from_array()

©   Haszprus   |   css fejlesztés howto php sql

Gyakran előjövő probléma, hogy a látogatónak szeretnénk megadni a lehetőséget a táblázataink rendezhetőségére. Erre nyújt megoldást a draw_table_from_array függvényem, amelyet egy munkám során hoztam létre. Nemcsak egyforma (teljesen css-ből formázott) megjelenést nyújt a táblázatoknak, de erőfeszítés nélkül lehetővé teszi, hogy bármely oszlop szerint rendezzük őket. Egy-egy tábla előállításához a kód pusztán ennyi, az sql lekérdezéstől a felhasználó által rendezhető tábla megjelenítéséig:

Az eredmény:


A dolog működése élőben is kipróbálható [itt egy link volt, közben meghalt].

Haszprus

Archive menu revamp

©   Haszprus   |   css english fejlesztés

As you can see, it spares a lot of space and it doesn't screw up the page layout when opened. This menu structure has been achieved by using a two level unordered list (standard semantic blind friendly xhtml) and some pretty heavy css usage. The underlying php script needed only a tiny tweak, 'cause the month list was already generated by a generic function.

What you can't see on this image is that, in my opinion, it's really ergonomic. You can point to the month of your choice really fast (because the list is clean and short, there is absolutely no clutter), and the whole hide-and-show thing works just like someone would expect.

Sorry for my English, I'm just practising.

Haszprus

Thumbnailes képnézegető

©   Haszprus   |   css design fejlesztés javascript php

Az a blogra pakolt lightweight galéria még mindig lightweight de egyre durvább lesz… Most már tud onthefly, oldalújratöltés nélkül album nézetet is. Ilyet:

Nomeg billentyűzetről jobbra-balra lapozgatni, ha valaki nem lenne naprakész a kommentekből.

Az a helyzet hogy teljesen lightweight módon megoldottam egy atombrutál full-featured highly advanced client-side cached galériát, amihez se külön db nem kell, se adminfelület, se semmi, full automatikusan onthefly ráépül a bejegyzésekre. 37 sor php (!), 60 sor html, 121+64 sor javascript (és 139 sor css). Az egész cucc 10 KB. Csak viszonyítás képpen a Haszprus Private Gallery 110 KB, amiből az adminfelület 26 KB - ez utóbbi ugye itt nem is kell.

Ki lehet próbálni (akárhol az ablakban katt, előjön az album nézet), ráadásul egy olyan képgalérián, ami egy egyelőre nem is publikált bejegyzésből táplálkozik (így a bejegyzésre mutató link nem fog működni (számotokra)… ez nem bug).

Örülnék, ha adnátok valami feedbacket, hogy mégis milyen lett.

ie-ben az album nézet nem jelenik meg de pillanatnyilag lesz*rom. a jó hír hogy valszeg ez elég könnyen javítható, csak rá kéne nézni hogy pontosan mi a hézag.
Update szep. 03. 01:11: na megy.

Íme az überblog legújabb, highly advanced feature-e, a képlapozó.

Semmiféle adatbázis-módosítás nem kellett hozzá, egyszerűen kideríti hogy a képet melyik bejegyzésből linkelték (mégpedig erőforráskímélően, de még lehet rajta fejleszteni), megnézi hogy a bejegyzésben mely képek veszik körbe őt (azaz melyik kép van előtte és utána (ezen is lehet gyorsítani)), belinkeli azokat, sőt belinkeli magát a bejegyzést is, így megkönnyítvén a navigációt. Ha jók lesztek akkor előbb-utóbb talán megcsinálom javascriptesen széjjelcache-elve is, mint a private galleryt, 0 sec késleltetéssel, lapújratöltés nélkülire.

Ha az egeret az előző/következő link fölé viszed, kapsz egy kis thumbnailt is arról, hogy mégis milyen képre jutsz a linkre kattintva. Mindez nem feltétlen lóg rá egyébként a képre, alapvetően 1280*1024-re illetve afölé van kitalálva mindez, ahol rálógás nincs, sőt az egész kép kifér.

Azt kell mondjam, ez kurvajó lett. Elégedetten dőlök hátra. Vegyük észre hogy ez egy lightweight galleryt akaszt a blogra, amely így 2.9-es stádiumba léphet.

A dolog működését megtekintheted például itt, vagy nyilván bármelyik bejegyzésnél, ahol van mik között lapozgatni.

Update aug. 23. 18:18: lett 0 sec delayes lapozás, cache-eléssel, oldalújratöltés nélkül. Tudnivalók:

  • Első képletöltéskor nincs cache-elés, megelőzendő a fölösleges cache-elést. Ez leghasznosabb olyankor, amikor a júzer külön fülekre megnyitogatja a képeket egyesével, ilyenkor a cache-rendszer nem okoz fölösleges többletforgalmat.
  • Abba az irányba cache-el, amerre a néző lapoz.
Haszprus

Topicfigyelő rss

©   Haszprus   |   fejlesztés rss xml

[Olvasói kérésre] csináltam egy olyan RSS feedet, amelyik értesít, ha válasz érkezik egy hozzászólásodra. Igazából ez csak egy topicfigyelő. Kicsit konkrétabban, azokat a hozzászólásokat szedi be a feedbe, amelyek olyan bejegyzésekhez érkeznek, amikhez hozzászóltál.

Elérése: blog.haszprus.hu/rss/kommentek/?follow=x, ahol x a user id-d, az én esetemben pl. 1. A user id-det megtalálod az adatlapodon, de ez a link már kapásból elő van készítve az oldal rss-listájában is, amennyiben be vagy jelentkezve. (Firefoxnál a címsáv jobb szélén rss ikonra klikk…)

A címke ismérvei a web 2.0-ban a következők:

  1. egy objektumot többel is felruházhatunk (szemben a kategóriákkal)
  2. a felhasználó egyszerűen hozhat létre újat

Ebből kisül, hogy a blogon eddig is félig-meddig címkézés volt, mert bár én kategória szót használok (mert szvsz az értelmesebb), a bejegyzések mégis tartozhatnak több kategória alá.

Na mostantól viszont az adminfelületen egyszerűen lehet új kategóriákat (ha úgy tetszik címkéket) is létrehozni, amivel vélhetően élni is fogunk. Azonban ezek nem lesznek egyenértékűek a régi alapkategóriákkal, melyekből nagyjából 20 van. Azokból kötelező lesz választani legalább egyet minden bejegyzéshez, az újakból nem. Az archívum is a régiek alapján fog listázódni továbbra is. Az új címkéket elsősorban arra kívánom használni hogy a nagyon egybetartozó bejegyzéseket valamilyen módon összefogjam. Ez megtörténik egyrészt a bejegyzés címe alatti kategórialinkeléssel, másrészt a menüben található intelligens bejegyzésajánlóval (ami tovább okosodott az új feature-nek megfelelően).

Jah és most már nem muszáj évre sem szűkíteni az archívumot.

Ebben a szellemben az első néhány címkénk (vagy minikategóriánk): tűzijáték, skandinávia, hollandia, apple. Utóbbi csak a trend kedvéért. Majd lesz több is, de okosan, nem pedig hülyén. Ezzel elértük a blog 2.8-at.

Haszprus

Nagy Skandináv körutazás

©   Haszprus   |   fejlesztés fotózás külföld skandinávia

Szóval ezen vettem részt, jó volt, készült 1600 kép, és egyelőre még nem tudom, hogy miként publikáljak belőlük.

Technikai részletek: van nekem például egy Haszprus Private Gallery nevű site-om, amit félig-meddig átírtam úgy, hogy publikusan is tudjon üzemelni. Ez tud javascriptes képcache-elést meg minden jóságot, elég advanced cucc, cserébe nincs integrálva a bloggal, de tervbe van véve. Ezt akár gyorsan le is fejleszthetném. A harmadik lehetőség, hogy a szokásos módon felpakolászom a képeimet szimplán a blogra.

Ugyanakkor azt is el kéne döntenem, hogy csoportosítom-e valamilyen módon a képeket, és ha igen akkor hogyan, valamint fűzök-e hozzájuk szöveget.

Nyilván csoportosítás nélkül például elég necces lenne 200 képet felrakni, pedig szvsz biztos van ennyi, ami érdekesnek nevezhető.

Csoportosíthatnám helyszínek szerint, illetve aszerint is, hogy mik az ismeretterjesztő/beszámoló/turistafotó jellegű képek, és mik azok, ahol valami apró érdekességet ragadtam meg, ami igazából nem jellemzi a látottakat, pusztán maga a kép jó.

No amíg ezekről döntök és feldolgozom a raw képeket (brutál munka), pár link, hogy ne unatkozzatok, csak előbb lőjétek be a monitort úgy, hogy az alábbi szürkeskála valamennyi árnyalatát meg tudjátok különböztetni A-tól Z-ig:

Haszprus

HPG PE

©   Haszprus   |   fejlesztés fotózás

A képek ettől függetlenül nem biztos hogy ebbe, vagy csak ebbe fognak felkerülni, mint ahogy az is teljes homály hogy esetünkben a soon vajon mit jelent.

Haszprus

Spamfiltert csak jól

©   Haszprus   |   fejlesztés

IRCQuote fight! In the ring:

Haszprus
Ezt [a kommentet] rakd be plz. Spamnek hiszi a motorod.
(privacy power)betettem, thx. a ebony ele meg moge kerult egy-egy * a szolistaban, igy gond nelkul illeszkedett a lebonyolit szora
Haszprus
Nem ez a baj hanem hogy egyszerűen rossz a spamfiltered. Mert nem súlyozza a kommenteket, amennyire tudom. Egy spamszűrő mindig súlyozza a szövegeket, nem pedig egyetlen szempont alapján rögtönítélő bíróságot játszik.
Amint pontozni kezded a kommenteket, számos lehetőség tárul eléd. A legújabb újításom amilyen egyszerű olyan remek: magyar ékezetes betűt tartalmazó komment aligha lehet spam, nálam a $spamfactor-t csökkenti eggyel.

Amit mondani akarok, hogy több (2) blogon ütköztem bele az elmúlt időkben rosszul megvalósított spamszűrőkbe (nem mintha ennél több blogon kommentelnék rendszeresen). Egyetlen szempont alapján rögtönítélő spamszűrőt ne csináljatok sosem, mindig mérlegeljétek hogy az adott komment vajon spam vagy csak valaki leírja a hamis Rolexekről a véleményét. És ez igenis azt jelenti hogy kell valamilyen jóságot mérő eljárás is, azaz hiába szerepel a Rolex szó a kommentben, ha például olyan szavak vannak mellette, mint pl. hanem, ellenben, stb, akkor az valószínűleg egy magyar nyelvű ember véleménye lesz, ami nem spam.

Montana

Üdv! (Montana a fedélzeten)

©   Montana   |   fejlesztés hollandia life történelem

Sziasztok! Én lennék a legújabb társszerző. Először is szeretném megköszönni mindazoknak, akik bíztattak és támogattak , de főleg Haszprusnak, hogy ideenged. Egy pár szót magamról: BME műszaki infó, most éppen bizonytalan időre jegelve, Fernuni Hagen, infó félgőzzel. Fórum-, blog- és csokifüggő vagyok, szívesen főzőcskézek, szeretek kirándulni és utazni. Tőlem nem fogtok olyan szép fényképeket látni, mint a többiektől, legfeljebb szemléltetés céljából, ha nagyon muszáj. Nem fogtok szakmai témáról olvasni, hadd ne részletezzem, hogy miért. Filmekről se, hacsak nincs számottevő érdeklődés az Oroszlánkirály 5 vagy a Gagyi romantikus vígjáték 32 iránt. És hogy örüljetek, smink- és randitippek, horoszkóp és divat témákról se. Jó, de akkor miről?!

Mint az a kommentjeimből is kiderült, egy ideje Hollandiában élek, így adja magát, hogy az itteni dolgokról írjak időnként egy-egy posztot. Nem ígérem, hogy rendszeresen, azt se, hogy érdekesen, de azért igyekszem. Most jelzem, nem fogom minden alkalommal körülírni, hogy a legtöbb holland ilyen, persze akadnak kivételek, úgyhogy nem akarok általánosítani. De, általánosítok és kész, egyszerűen a hollandok. Szóval, mi jut eszedbe, ha Hollandiára gondolsz? Sajt, szélmalom, bicikli. (És persze fű ) Nagyjából ezek körül fognak forogni az írásaim.

Haszprus

Olvasóközönségek uniója

©   Haszprus   |   biznisz fejlesztés

Néha lehetne csinálni olyat, más oldalakkal kooperálva, hogy két blog is ír ugyanarról a témáról, de megállapodnak, és csak az egyiknél lehet hozzászólni, a másik pedig megkéri az olvasóit hogy a túloldalon kommentálják a témát. Költség: egy-egy bejegyzésnél a kommentek elvesztése. Ez gyakorlatilag zéró költség. Haszon: esetlegesen új olvasók szerzése.

Tulajdonképpen kívánatos lenne ezt igen gyakran több bloggal karöltve is előadni, a profit bizonyosan nem maradna el. (Vagy ki tudja, de szerintem érdemes lehet megpróbálni.)

Haszprus

Blogok ura - A király visszatér

©   Haszprus   |   fejlesztés

Ismét itt az Überblog. Főleg azoknak szól ez, akik rss-t is járatnak, a többiek valszeg enélkül is észlelnék a dolgot midőn ezt a lapot látják a dns error helyett.

Ja, költözött a szerverpark, azért nem voltunk elérhetőek csütörtök délutántól.

Haszprus

Adatbányászati alapok

©   Haszprus   |   adatbányászat fejlesztés php

Ki akarjuk bányászni egy időjárásjelentő oldalról hogy hány fok van, hány fok lesz, stb.

/**
 * $source szovegbol kibanyassza a 
 * $id id-ju div erteket es 
 * $type tipusra castolva visszaadja
 */
function get_value_by_div_id($source, $id, $type) {
   $matches = array();
   $regexp = "<div.*?id\=\"$id\".*?>(.*?)<\/div>";
   preg_match("/$regexp/s", $source, $matches);
   settype($matches[1], $type);
   return $matches[1];
}

Így pl.

$source = '... <div id="current_temps">26&amp;amp;deg;C</div>... <div id="current_rfval">28&amp;amp;deg;C</div>...'; $t = get_value_by_div_id($source, "current_temps", 'int'); $e = get_value_by_div_id($source, "current_rfval", 'int'); echo "Hőmérséklet $t fok (érzésre $e)";

A kimeneten:

Hőmérséklet: 26 fok (érzésre 28 fok).

Haszprus

Szenny, mocsár, fertő

©   Haszprus   |   fejlesztés

Szerintem szégyen egy blogra nézve ha a kommentjeit fellapozva rendszeres anyázást és személyeskedést tapasztalhat benne az ember (különösképpen ha más egyebet pedig nem), hiszen minősíti a látogatóközönséget (főképpen minősíti a gazdáját ha ebbe még be is száll, vagy csak szimplán megtűr egy ilyen szeméttelepet (azaz mindent a látogatottságért)). Persze szégyen a kommentek szerzőjére nézve is, de ez most kevésbé fontos. Ennek megfelelően az elmúlt napokban kemény moderációt alkalmaztunk (~20 törölt komment), és a továbbiakban sem szándékozom megtűrni az ilyesmit.

És noha privátban befutott olyan kérés hogy legyen userekre alkalmazható ignore list, ilyen nem lesz, éspedig többek közt azért, mert lehetetlenné tenné az érintett kommentfolyamok értelmezését.

Haszprus

Időzített tesztbejegyzés

©   Haszprus   |   fejlesztés

Most már ilyen is van. Ez elvileg kb. 16:55 körül jelenik meg. GUI egyelőre nincs hozzá, db-ben kell a b_pub-ot 2-re beállítani, és megadni b_datum b_ido-nek egy időpontot amikor a bejegyzés várólistába kerülhet. Onnantól a szokásos várólista-szabályok érvényesek rá (pl. éjjel nem jelenhet meg, stb).

Update aug. 29. 13:51: ez a bejegyzés mostantól publikus.

Haszprus

A Züberblog a mefiblogon

©   Haszprus   |   fejlesztés

Az überblog a sajtóban, konkrétan mefinél:

Igen, Haszprus blogjáról lesz most itten szó. Emlékszem, mikor először rátaláltam (ez nagyjából másfél éve lehetett, nem tudom pontosan), éppen valami vizsgaidőszak-in-progress üzenettel az egész blog le volt zárva a nem regisztrált felhasználóknak. Na mondhatom ez kellően fel is csapta a csőrömet, hát mi az, hogy valahonnan kizárják a nem regisztrált olvasót?!

Aztán megnyílt a blog, én meg regisztráltam. Később jött aztán a nagy kommentverseny. Mert ugye Haszprusnál van egy dumagépek funkció, valamint vannak ugye a hét dumagépei. Ez akkoriban még elég egyedinek számított, aztán jött az, hogy mindenki ilyet akart, bezony, még én is, bár nekem el van dugva (ide, ni).

Haszprus blogjában leginkább a technikát lehet szeretni, mert bejegyzés az elég ritkán van, és ha van, az sem mindig Haszprustól, és gyakran webfejlesztés, vagy hasonló technikai témában. Ráadásul, nincs olyan blogfunkció, ami az Überblogon ne lenne fellelhető.

Haszprus

Überblog sessionkezelés

©   Haszprus   |   fejlesztés

A kezdetek óta úgy kezeli az überblog a sessionöket, hogy ha valamely másik böngészőből vagy számítógépről lépsz be, akkor a korábbi bejelentkezéseid elvesznek. Azaz pl. ha otthonról szoktál bejelentkezni de bejelentkezel netcaféból is, akkor ez utóbbi kilöki az otthoni sessionödet, amikor pedig otthon és újra bejelentkezel, az kilöki a netcafés sessiont.

Ennek megvan az előnye, gondolom egyértelmű a fenti példából (nem maradsz hosszú ideig bejelentkezve a netcaféban). Ugyanakkor hátrány is lehet hogy a sessionök elvesznek. Ez mostantól ki van küszöbölve, cserébe viszont netcaféból távozáskor jelentkezzetek ki…

Ezzel kapcsolatban még finomítás várható.

Haszprus

iWIW biztonsági fejlesztések / auto login

©   Haszprus   |   fejlesztés hwsw iwiw
Május 16-tól számos, a rendszer biztonságát javító fejlesztést aktiválni fogunk.
1. megszűnik az automatikus bejelentkezés funkció
[...]

A legközelebbi biztonsági fejlesztés keretein belül meg az egész iwiw megszűnik gondolom.

De most ez mér jó baszki, aki nyilvánosan hozzáférhető számítógépen becsekkolja az automatikus bejelentkezést, az haljon meg, a többieknek viszont rém kellemetlen. Komolyan ez a legnagyobb rémálom amit el tudok képzelni, hogy egy oldalon állandóan be kell jelentkezni.

Update 13:36: megoldás a problémára: adriankoooo iwiw autologin scriptje (seo: iwiw automatikus bejelentkezés, iwiw auto login, iwiw autologin greasemonkey script)

Haszprus

CSS trükkök: attribútum selectorok

©   Haszprus   |   css fejlesztés

Nem igazán nevezném trükknek, de gyakorlatilag sehol sem láttam még alkalmazni, márpedig a Firefox 2 pl. már érti. A többit meg magasról. (Vigyázat: mindig az oldal gazdájának egyéni döntése, hogy a többi böngészőt magasról-e, e tekintetben legfeljebb irányelvek adhatók különféle indoklásokkal ellátva.)

Szóval pl. van egy pix_section classunk, amely a benne helyet foglaló képeknek 1 pixeles fekete keretet ad. Ok. Van emellett egy right classunk, amely bármely blokkszintű elemet jobbra floatol. Ok. Szeretnénk, ha a képeink jobb oldalon jelennének meg fekete kerettel. Nyilván:

<div class='pix_section right'>...</div>

Csak az a baj, hogy a baloldalon folyó szöveg hozzá fog érni a képeinkhez rossz esetben, hiszen paddinget senki se állított be. És nem akarunk se a righthoz, se a pix_sectionhöz paddinget. Hozzunk létre egy padding classt? Létrehozhatunk, de van másik megoldás is:

div[class='pix_section right'] { padding-left: 10px; }

Ez css selector azokat a diveket választja ki, amelyeknek class paramétere 'pix_section right'. Zsír. Megoldottuk a paddinget anélkül, hogy erre vonatkozó utalást kellett volna a html-be írnunk.

A témáról bővebben a W3C CSS dokumentációjában.

Ps. ígértem, hogy a sortörésre mutatok egy másik megoldást. Íme:

*[class~='keprendezo'] + * { clear: both }

A * bármely elemre illeszkedik, a [class~='keprendezo'] azokra, amelyeknek legalább egyik classuk keprendező. Az A+B szintaktika pedig egy olyan B elemre illeszkedik, amely előtt egy A áll, azaz jelen esetben minden elemre, amelyet egy képrendező előz meg.

Haszprus

Régi bejegyzések vs kommentek

©   Haszprus   |   fejlesztés

Wordpresshez van egy olyan plugin, ami letiltja a kommenteket x időnél régebbi bejegyzéshez, kommentspam csökkentési célzattal. Ez szerintem egy atombéna megoldás a problémára, de lehet hogy én más célból be fogom vetni.

Kevés téma van ugyanis, amihez mondjuk egy év elteltével még mindig érdekelne hogy ki milyen kommentet fűz hozzá.

… Na kész is. Az egyéves limit még változhat bármerre. Annyit még beletettem, hogy ha van friss komment amire lehet reagálni (azaz pl. a 365. napon vki hozzászól), akkor a legutolsó kommentre még egy hétig lehessen reagálni. (Szóval akár örökkön is nyitva lehet bármely topic, ha max egy hetente hozzászólnak.)

Haszprus

CSS trükkök: sortörés

©   Haszprus   |   css fejlesztés howto

Adott egy csomó float left-es elemünk, pl. thumbnailek egymás után. Szeretnénk, ha a float left ellenére az ezek után következő szöveg (vagy akármi) nem folyna rá a thumbnailjeinkre.

Többféle hagyományos megoldás létezik, ezek közül néhány:

<br clear='all' /> <br style='clear: both' /> <div style='clear: both'></div>

Fontos látni, hogy mindegyiknél arra van szükség, hogy a szöveg írásakor tudatában legyen az író, hogy az előtte levő izére rá fog folyni az ő szövege, és ezért beszúrja a fenti kódok vmelyikét. Ez elég szopó, hiszen a formázást minél inkább szeretnénk a tartalomtól elszeparálni.

Van egy másik megoldás is. Ha a float leftes elemeink pl. egy 'keprendezo' classú divben vannak, akkor a következő stílus segítségével a keprendezo után automatikusan sortörés lesz:

.keprendezo:after { display: block; clear: both; content: ''; }

Ekkor a képrendezőt követő paragrafusnak nem kell tudnia róla, hogy ráfolyna a képrendezőre, a képrendező ugyanis beszúr maga után egy sortörő blokkot. Is nice. I like.

Egy másik alternatív megoldás ugyanezen problémára CSS attribútum selectorok bejegyzésben.

Haszprus

Basic programming skills 1 - hét napjai közti különbség

©   Haszprus   |   fejlesztés howto labvez php

Adottak a hét napjai (H, K, Sze, Cs, P, Szo, V), valamint egy adattábla, benne minden rekordhoz két nap. Számítsuk ki, hogy a két nap között hány-hány nap van. (Pl. hétfőtől péntekig, majd péntektől hétfőig eltelő napok száma.)

A nem javasolt megoldás: veszünk egy külső switch case szerkezetet, amelynél az eseteket az első napok szerint alakítjuk. Hét eset. Majd ezek mindegyikében egy újabb switch case, aszerint, hogy a második nap mi. 72 = 49 eset.

switch ($elsonap) {
 case 'H': 
   switch ($masodiknap)
     case 'K':   echo '1 ill 6 nap van koztuk'; break;
     case 'Sze': echo '2 ill 5 nap van koztuk'; break;
     ...
 case 'K':
   switch ($masodiknap)
     case 'H':   echo '6 ill 1 nap van koztuk'; break;
     case 'Sze': echo '1 ill 6 nap van koztuk'; break;
     ...
 ...
}

Ez tényleg nem túl jó, egyrészt a 49 elágazás miatt, másrészt mert ha mondjuk angolul is ki akarjuk írni az eredményeket akkor már 2*49 elágazásunk lesz. Egy fokkal jobb megoldás, ha a napokhoz számokat társítunk, majd ezeket kivonogatjuk egymásból mod 7:

switch ($nap) {
 case 'H': $n = 1;
 case 'K': $n = 2;
 ...
}

Csakhogy ezt a társítást lehet switch case nélkül is, és ezúttal egy végleges, immáron meglehetősen rövid és komplett megoldás:

function eltelt_napok($napchar1, $napchar2) {
 $napok = array('H' => 1, 'K' => 2, 'Sze' => 3, ...);
 $nap1 = $napok[$napchar1];
 $nap2 = $napok[$napchar2];
 $diff1 = mod(max($nap1, $nap2) - min($nap1, $nap2), 7);
 $diff2 = mod(min($nap1, $nap2) - max($nap1, $nap2), 7);
 return array($diff1, $diff2);
}

A mod fv természetesen megvalósítandó vmi tetszőleges módon. Lehet hogy a php-ben van is rá vmi, én hirtelen nem találtam, úgyhogy:

function mod($n, $q) {
   $n %= $q;
   if ($n < 0)
      $n += $q;
   return $n;
}

Update 17:13: sőt a mod fv is elhagyható, ld. tbela kommentje.

Haszprus

style=3: teh preview

©   Haszprus   |   css fejlesztés

Rágjátok.

style=3

(A html ugyanaz, csak a css-t cseréltem le. Van benne 1-2 bug / dolog amit még nem oldottam meg, és az aloldalak nincsenek megformázva. Firefox 2.0-val megy Windowson 1280x1024-ben, ettől eltérő konfigurációk esetén passz. Ez egyáltalán nem végleges, csak gondoltam kirakom és begyűjtök pár véleményt.)

Haszprus

Korrekt subjecteket a népnek

©   Haszprus   |   bme fejlesztés howto hwsw

Mi lenne ha az info****@sch.bme.hu -ra csak korrektül kitöltött subjecttel lehetne levelet küldeni? Értem ez alatt a kötelező .*\[.*\].* (vagy ha úgy tetszik *[*]*) formázású subjecteket.

Nemkorrekt subjectű leveleket listatagok esetén visszapattintja, nemlistatagok (pl. tanárok) esetén pedig: mint eddig (azaz pl. küldi a listatulajnak, stb).

Alaptantárgyakra közismertek a rövidítések (ld. pl. wikin a tárgyak rövidítéseinek listája), egyéb levelekre meg lehetne pl. használni az [egyeb] subject-prefixet.

Ez egy ötlet, egy kidolgozatlan felvetés, ami sztem egyrészt működőképes lehetne, másrészt sokak életét könnyítené meg. (elsősorban a masszívan filterezőkét)

Már amennyiben technikailag egyáltalán megoldható.

Haszprus

Rekord

©   Haszprus   |   fejlesztés

Mint említettem, pénteken közelében voltunk a látogatottsági rekordnak. A rekord jan 4-én született, 739 visit, pénteken pedig 720 volt.

Tegnap (vasárnap) végül tényleg megdőlt, 755-ig kúszott fel.

Hogy ez minek köszönhető, az elég triviális (számomra). Szóval üdvözlök mindenkit a fedélzeten, ahol vélhetően tovább növekszik a bme-sek koncentrációja

Haszprus

Aggregált log

©   Haszprus   |   fejlesztés

Na, most már van nekünk szépséges aggregált logunk, mely az eddigi egy logtábla helyett kapásból négyben terjeszkedik, és a 33 megás tábla minden lényegi adatát tartalmazza 4 megában. De ez önmagában még semmi, az igazán szép az, hogy az eddigi logtábla a folyamatosan növekvő látogatottság függvényében egyre gyorsabban bővült új rekordokkal, az új logtáblák egyike pedig nagyjából független lesz a látogatottságtól (egy másik pedig teljesen, a harmadik és negyedik pedig csak ideiglenes adattárolásra szolgál a gyors adatrögzítés érdekében).

Haszprus

Mi a kulcs?

©   Haszprus   |   fejlesztés

(adatok: statgép)

Ha csak annyi, hogy ők szélesebb rétegeket érintő dolgokról írnak, akkor az nem érdekel, illetve ezzel tisztában vagyok, és ezen nem akarok változtatni. De van-e még más kulcs amitől jobbak a mutatóik?

Több komment más blogokon? Shamaltot asszem nem szoktam látni kommentelni másoknál, Mefit igen, de ez könnyen származhat abból hogy mi az olvasott blogjaink metszete. Tképpen én azt hiszem csak Mefinél meg Shamaltnál szoktam kommentelni, náluk sem túl sokat, egyéb blogokon meg még elenyészőbb mennyiségben. Az utóbbi időben b3cknél is, de ezzel kifújt a rendszeresen kommentált blogok listája asszem. (Hogy mi számít rendszeresnek abba ne menjünk bele, idetehetnék még egy-két blognevet akár, hiszen ha valahova néhány hetente bekommentelek, az is lehet 'rendszeres'… Most nem erről beszélünk.)

A respekt-lista? Na igen, más bloggerek sokkal könnyebben kommentálnak hozzánk, ha azt látják, hogy barátságosan közelítünk feléjük. Ezt magamon is megfigyeltem.

Shamalt statjában a szeptemberi kiugrást mi okozta. Volt egy Miss Blog(o)szféra verseny, nomeg azt megelőzően a fosblog - ezek nyilván sok új érdeklődőt hoztak a konyhára, és ha nem tévedek akkor jónéhányat sikerült is megtartani.

De Mefi látogatottsága az utóbbi hónapokban mitől ugrott ekkorát? És mi a módja a látogató-/komment-maximalizálásnak a tartalom megváltoztatása nélkül (ill. azon kívül)?

Haszprus

Mesterséges intelligencia - blog 2.7

©   Haszprus   |   blog fejlesztés version history

A Haszprus Überblogon a továbbiakban a kommentelők intelligensebbnek és igényesebbnek tűnnek, mint amilyenek valójában. Szavak helyesírását egyelőre nem javítjuk, de eltűnnek a félsornyi felkiáltójelek, a csupa kisbetűs szövegek mondatai nagy kezdőbetűt kapnak, az írásjelek után szóköz kerül, a tagmondatok közé megfelelően pozicionált vessző, meg még pár apróság.

Például:

Tesztalanyunk kommentjébe (v.ö.: állatorvosi ló) vesszők és szóközök kerültek, a felkiáltójelek pedig megritkultak.

Legyetek tehát bármilyen hülyék, az überblogon intelligensnek fogtok tűnni. Kommentre fel!

Ja és ez amúgy akkora feature hogy át is lépünk vele a 2.7-es verzióba, utoljára úgyis áprilisban váltottunk.

Tamás

Google Webmaster Tools

©   Tamás   |   fejlesztés hwsw

Most fedeztem fel a címben említett eszközt. Ez amolyan Google backstage a saját site-odra vonatkozóan, már ha hitelt érdemlően bizonyítani tudod, hogy a site hozzád tartozik. Ilyesféle információkat lehet kinyerni belőle:

  • Mikor indexelte utoljára a Googlebot az oldalakat
  • Hány oldalt, hány kilobyte-nyi adatot és mennyi idő alatt tölt le az oldaladról (maximum, átlag, minimum)
  • www-s vagy www nélküli címeket jelenítsen meg a találati listában (állítható is, hogy melyiket szeresse)
  • A domain alatt lévő oldalak PageRank-eloszlása, a legmagasabb PageRank-kel rendelkező oldal minden hónapban
  • Milyen keresőszavakra dobta ki az oldalad a találati listába, és átlagosan hányadik helyen
  • Milyen keresőszavak esetén kattintanak rá az oldaladra a találati listában
  • Leggyakrabban használt szavak a weboldalaidon és a rád linkelő weboldalakon a linkek szövegeiben
  • Talált-e a Googlebot elérhetetlen oldalakat, hibás linkeket a domain bejárása közben

Mindemellett állítható, hogy a Googlebot milyen sebességgel járja be a site-ot (ez a terhelés csökkentésénél lehet hasznos, csak nyilván ebben az esetben ritkábban is fog ránézni a site-ra). A szolgáltatás eléréséhez be kell írnod a weboldalad címét, majd igazolnod kell, hogy az oldal tényleg a tied. Ezt kétféleképpen teheted meg: vagy egy, a Google által megadott META tag-et kell elhelyezned valahova, vagy egy általuk megadott nevű fájlt kell feltöltened a weboldal gyökérkönyvtárába.

Haszprus

Private Gallery: javascript edition

©   Haszprus   |   fejlesztés

Bezony, áthelyeztem a private gallery képnézegetőjét javascript alapokra. Emeletes csúcskirály lett. Kár hogy nem széleskörűen publikus a cucc. Össze-vissza van cache-elve, de teljesen jól, megfelelő sorrendben, a cache nem megy az aktuális kép megjelenítési sebességének a rovására, nem villog, nem rázkódik össze-vissza az oldal az átméretezésektől, a felhasználónak kb. olyan mintha vinyóról olvasná a képeket, tehát zéró késleltetéssel lehet lapozni, sőt még crossbrozer is (legalábbis ffx2 & ie7 tekintetében). Atom. Elégedett vagyok.

Haszprus

Főoldal szűkítése szerzők szerint

©   Haszprus   |   12e barátok fejlesztés seo

Ha esetleg valakit nem érdekel minden szerző bejegyzése, akkor a főoldalt le tudja szűkíteni egy vagy több szerző bejegyzéseire.

A szűkített főoldal címe így néz ki: https://blog.haszprus.hu/&author=x, ahol x helyére a szerző id-je jön.

Az id-k pedig:
1 Haszprus (2024. feb. 25. 10:58 rám mostantól nem lehet szűkíteni seo megfontolásokból, duplicate content...)
42 Mainframe
7 Tamás
83 ScoobyZoli
28 The GuNN
17 WiZARD
22 Orca

Több id-re is szűkíthetsz, pl. az összes szerzőt kombináló url: https://blog.haszprus.hu/&author=1;42;7;83;28;17;22

Egy esetben azonban hibát dob a főoldal, éspedig ha több napnyi bejegyzést akarsz megjeleníteni, mint ahány napon az adott szerző publikált. Ezt a hibát egyelőre nem szándékozom megoldani. (Workaround: max annyi napot állítasz be, ahányon a szerző publikált.)

Ha a lapletöltési logban (vagy a kommentek közt) úgy látom, hogy van igény erre a feature-re, akkor lehet hogy ezt a hibát kijavítom. (Ez egy állandó többletterhelést róna a szerverre, alapból ezért nem teszem.) Ja és ha komoly igény mutatkozik akkor lehet hogy url helyett a beállításokba is beköltözik a dolog.

Update nov. 01. 08:03: a problémát javítottam valamikor a hetekben.

2024. feb. 25. 10:50 id-k helyett már nevek vannak

Haszprus

Botszűrés

©   Haszprus   |   fejlesztés

A sok lapot letöltő ip-ket naponta felülvizsgálja az új logmanager osztály, feljegyzi őket egy fájlba okosan, és a továbbiakban nem logolja őket. Így lesz mindig szép és tiszta logfájlunk függetlenül az oldalunkat pásztázó keresők számától. (Eddig is szűrtem őket de egyre másra jelennek meg az új ip-k én meg halálosan untam kézileg adogatni őket a listába.)

Ez csak az első fázis, a logmanager majd sokminden mást is csinál, mert pillanatnyilag kb. 50+30 MB-ot emészt fel a blogon az utóbbi 2 hónap spam ill. lapletöltési logja, ami azért ugye érezhetően nem állapot.

Haszprus

Mikor érdemes postolni?

©   Haszprus   |   fejlesztés

Azt mindenki tudja hogy éjjel kevesebb a látogató, a csúcsidőről már eltérő találgatások léteznek, egyesek szerint munkakezdéskor van, mások szerint este. Nos nálunk este van (bár nyáron déltől 22-ig nincs számottevő eltérés), mégpedig az alábbi eloszlás szerint:

A kérdés az, hogy ha már itt van nekünk egy ilyen bejegyzésidőzítő rendszer, vajon érdemes-e annak figyelembe vennie, hogy mikor van a legtöbb egyedi látogató a blogon? Érdemes lehet, hiszen ilyenkor a legnagyobb a valószínűsége, hogy a felhasználók interakcióba tudnak egymással kerülni, azaz ha 5-10 perc múlva visszanéz az adott bejegyzéshez, jóeséllyel már kap is egy választ a hozzászólására, például. Így pörgőbb eszmecserék alakulhatnak ki.

Kockázatok és mellékhatások

1.) Nem tartom elképzelhetetlennek, hogy az ilyen módon koncentrált aktivitás nem lesz-e negatív kihatással a nap egyéb részeire. Mert itt minden folyamat öngerjesztő: ha több a hozzászólás, akkor még többen szólnak hozzá, ha kevesebb, akkor pedig még kevesebben. Valószínűsíthető tehát, hogy a csúcsidőn kívüli időszakokban még lejjebb esne az aktivitás. Talán igen, talán nem, ezt így nehéz a székből ülve megjósolni.

2.) Ha időben egyszerre vannak jelen a userek, könnyebben létrejön az offtopikolás.

A magam részéről a fentiekből tanulva módosítottam néhány paramétert a várólista szabályain, reménykedjünk hogy pozitív hatásai lesznek.

Haszprus

JavaScript

©   Haszprus   |   ajax fejlesztés javascript

Érdekes módon nem nagyon alkalmazzák a weblapok a js nyújtotta előnyöket. És most egyáltalán nem az ajaxra gondolok, sőt, van hogy amit ajaxszal oldanak meg, azt egyszerű kliens oldali js-sel még gyorsabbá lehetne tenni, akar a halál kommunikálni a szerverrel, azok a fránya csomagok elég lassan terjednek.

Haszprus

Neptun lol

©   Haszprus   |   fejlesztés

Rendezem a vizsgán résztvevők névsorát jelentkezési időpont szerint. Hát a 10 órát nem előrébb rakja mint a 2-9 órát? Jaj de fáj ez nekem. Szerintem tutifrankón a neptunfejlesztőknek ez az első 'programming experience'-e vagy ilyesmi. Le se merem írni legszörnyűbb elképzelésemet, miszerint esetleg text típusú mezőben tárolják az időpontokat. Miféle sql szerver rakná előbbre a 10 órát a 2-9 óránál? Vajon komolyan textben vannak az időpontok?

Haszprus

Moderációs irányelvek

©   Haszprus   |   fejlesztés

Az überblogon a moderációs elvekbe ütközik egy komment, ha…

  1. …valamely szoftver, zene, film, stb. beszerzési lehetőségeit firtatja.
  2. …szalonképtelen fogalmazást tartalmaz.
  3. …meghívót kér valamilyen site-ra.
  4. …duplán lett beküldve.
  5. …fájdalmas butaságot tartalmaz.

Regisztrálatlan hozzászóló esetén több mint valószínű a fenti hibákba eső kommentek törlése. Regisztrált, törzsvendég, pláne trusted user esetén természetesen a fenti moderációs irányelvek alkalmazása visszafogottabb.

A moderációs elvektől bármikor eltérhetünk és bármikor megváltoztathatjuk őket anélkül hogy ebbe a listába felvezetnénk a változást. Az itt felsoroltak nem teszik ki a moderációs elvek teljes és/vagy pontos listáját. Az automata (szoftveres) moderáción kívül minden komment egyedi elbírálás alá esik. Regisztrált felhasználók privmsg-ben értesítést kapnak a kommentjük törléséről. A moderáció erősen szubjektív, a fenti lista tájékoztató jellegű.

Minden komment automata (szoftveres) moderáción esik át rögtön beküldéskor. Ez aszerint dönt a komment…

  1. …visszaállíthatatlan törléséről…
  2. …visszaállítható törléséről…
  3. …várólistába helyezéséről…
  4. …publikálásáról…

…hogy…

  1. …káromkodásokat tartalmaz-e
  2. …spamgyanús-e
  3. …káromkodások ellenére értelmes kommentnek tűnik-e (vannak szavak melyek érvelési folyamatra utalnak)
  4. …a feladója…
    1. …regisztrálatlan
    2. …regisztrált
    3. …megbízható (trusted=1)
    4. …megbízhatatlan (trusted=-1)

Úgy különösebben nincs ingerenciám évösszegzést készíteni, úgyhogy csak röviden kinézem a blog történelmi bejegyzéseiből, hogy mi volt 2006-ban…

  • Átjöttem állami finanszra a bme-n. Ez egyelőre nem tett jót a tanulmányaimnak, de jót tett minden másnak.
  • Változtattam az étrendemen (ami azóta lényegesen egészségtelenebb mint akkoriban, de még így is sokkal jobb mint korábban).
  • Eljártam úszni (amíg nem volt konkurenciája ).
  • Fogytam 13,6 kilót (75,5->61,9), majd pedig visszaszedtem egy kicsit, a végleges tömegem még nem alakult ki, de nagyjából ilyesmi szeretnék maradni (67).
  • Vettem egy bringát májusban, amit számomra is meghökkentő mértékben (és célokra - 1 2) kezdtem használni.
  • Kurvajól töltöttem a nyaramat.
  • Megismerkedtem új arcokkal, szerveztem pár eseményt, köztük pár rendhagyóbbat is (éjszakai gyalog- (1 2) és bringatúra) és megejtettem az első házi szervezésű külföldi utamat is. Na nem mintha túl messzire mentünk volna, de a külföld az külföld
  • Év vége felé elkezdtem (komolyabban) kondizni, amit legalább jövő májusig szándékozok folytatni. A későbbiekről nem gondolkodom.
  • Kaptam pár megbízást. Pl. felkértek bme-n számítógép labor 5-ből laborvezetőnek. Erről eddig nem írtam publikusan (meg a többiről sem), úgyhogy most megemlítem. Az nem biztos, hogy be tudom vállalni.

Ezek mellett még történtek dolgok amiket akár meg is említhetnék, mert nem csak ennyi volt idén, de nem teszem. Akit érdekel, egy részüket megtalálja az archívumban

Röviden és lényegretörően: ez egy kurvajó év volt.

Nektek pedig BÚÉK!

Haszprus

Brutálspam

©   Haszprus   |   fejlesztés

Nagyon durva spamterhelés éri a blogot néhány napja, szerencsére a szűrésem tökéletes. A refererspamet leszámítva persze, ami új jelenség volt. A dologról csak akkor értesültem amikor szokásos véletlenszerű spamlog-csekkolásomat végeztem.

Milyen terhelésről is beszélünk? November 15 óta mérem a spamterhelést, a napi spamlog (naponta egy xml fájl) átlagmérete 20 KB az azóta eltelt 25 napos intervallumban. Bezzeg tegnap és tegnapelőtt!

Tegnapelőtt 894, tegnap pedig 1164 KB spamlog termelődött! (vs 20 KB-os átlag!)

Naponta átlagosan 26 spamkomment érkezik, tegnapelőtt 208, tegnap 289 érkezett.

Ez a statisztikát is kicsit váratlanul érte, konkrétan szétcsúszott az oldal (Azóta fixáltam, de screenshoton megtekinthető a kissé váratlan statisztikai adatok eredménye)

Haszprus

AJAX - első merülés

©   Haszprus   |   ajax első fejlesztés

Majd egyszer lesz ajaxos live privmsg search. (Ez most teljesen alfa és csak ajax-próbálgatás végett készült, most nyúlok a technikához először.)

A msg-ek törzsében keres szótöredéket, illetve teljes névegyezés esetén ehhez egy feladóra/címzettre szűkített eredményhalmazt is hozzávesz.

Update 2006. dec. 11. 01:00: kicsit csiszolgattam rajta, én most már nem tapasztalok bugokat Firefox 2 alatt, illetve IE-kompatibilissé is tettem de ott nem teszteltem túl mélyrehatóan. Szóljatok ha ti még tapasztaltok hibákat.

IRCQuote fight! In the ring:

VDavid
Btw kérdés: akkor találtam ezt a cikket is amikor arról kerestem infót hogy hogy lehet egy oldalt Google-re optimalizálni. Neked elég jó találatokat szokott adni a Google (gépfüggőség stb), tudsz ajánlani vmi oldalt ahol faxán össze vannak gyűjtve erről infók?
Haszprus
nem, nem mondhatnám hogy én ebben a kérdésben művelődtem volna
1xűen csak zseni vagyok
VDavid
ja jó
Haszprus
alapként elmondható, hogy minél több link mutat egy oldalra, annál feljebb kerül a google-ben. és minél feljebb levő oldalak mutatnak rád, annál többet ér a linkjük is, még feljebb kerülsz. az én blogom belül kibaszottul kurvára tele van linkelve (a belső lapok egymásra, ld. menü) és rendszeresen frissül. feltehetően ez okozza a jó rankinget
VDavid
wow, ötletes De akkor nem értem h a porton miért nem, ott nyilvána látogatószám sokkal magasabb, és kb. minden linkel mindenre
Bár lehet h arányaiban több az oldal mint a látogató
Haszprus
ja igen van még olyan is hogy a ?id=... -s url-eket leszarja, nem indexeli
én ezért anno ?id helyett ?k -t kezdtem használni
aztán azt se szereti ha sok query string van az url-ben, a könyvtárstruktúra nyerőbb. ezért, meg a szépség miatt mostanra már elég kevés query stringes oldal van a blogon, inkább könyvtárszerkezetnek tűnik az egész.
aztán az is nagyon előnyös ha a kívánt keyword benne van a title-ben és az url-ben. az is, ha a link, ami rád mutat, az adott keywordöt tartalmazza.
tehát pl. ha azt akarod h te legyél a top csigás találat a google-ben, akkor ez egy gagyibb link: a csigák bővebben {a href=x"}itt{/a}"
ez egy jobb: a {a href=x"}csigák{/a} bővebben"
Haszprus
a látógatószám érdektelen
azt nem látja a google
Haszprus
azt tapasztalom hogy a blogomon is a havi archívum oldalakat dobja ki ha vmire rákeresek, nem az adott bejegyzést
ez is azért van mert a havi archívumra kibaszottul sok belső link mutat a blogomon, az adott bejegyzésre meg csak elenyésző számú
a portnál nem tudom vannak-e olyan oldalak amikre kibaszott sok link mutat
Haszprus
és a ?id mondom megöli a dolgot, nem indexeli
Haszprus
szerintem a portnál elég nehéz eljutni a belső oldalakra, nem igazán tallózás-jellegű a port.. inkább keresés jellegű, de a google nem fog nekiállni inputokat kitöltögetni filmcímekről meg színészekről
VDavid
Nincs olyan h ?id, csak ?perf_id meg ?channel_id meg ilyesmik
Haszprus
azt nem tudom vajon minek tekinti
Haszprus
meg kell nézni h indexeli-e azokat az oldalakat egyáltalán
VDavid
de, ha megnézed, minden filmoldalon minden személy neve link, szóval rendesen összevissza végig lehet járni
Haszprus
igen de pl. nálam az oldalon kb. akárhova eljutsz maximum (!) 2 kattintással
mert a főoldalról 1 klikk akármelyik havi archívum és onnan még1 klikk akármelyik bejegyzés
a porton meg? kurva mélyre kell ásni ahhoz h tényleg bejárd a site-ot
mert igaz h a egy színész->film->színész->film .. úton keresztül el lehet vergődni akárhova de ez mély
szerintem ez rosszul érinti a rankinget
szerintem
VDavid
És ilyen keywrodös baxakodás meg ilyesmik?
Haszprus
elképzelhető h direkt a google-nek érdemes lenne csinálnotok még néhány tallózó jellegű oldalt
Haszprus
nálam nincs keywords kitöltve, tudtommal az inkább a régi típusú keresőket érdekelte
Haszprus

Open Directory Project

©   Haszprus   |   fejlesztés

Egosearch közben a következő újításra lettem figyelmes:

Haszprus überblog
Egyetemista fiatalok naplója fotó galériával, filmajánlókkal és számítástechnikai eszmefuttatásokkal.

BTW az Open Directory Project a Top: World: Magyar: Személyes lapok: Weblogok: Többszerzős kategóriában három blogot ismer, a deadlime-ot, a Kispadot, és az Überblogot.

Überblog power.

Haszprus

Spamlog

©   Haszprus   |   fejlesztés php reklám

Spamlog

A cucc naponként egy text/xml adatbázist dolgoz fel, amiben el vannak mentve a spamküldés részletes körülményei. Ebből a logolásból egyébként sok érdekes tapasztalatra tehetünk szert, így pl. az alábbiakra:

  • A kommenteket (egy részüket legalábbis) egyértelműen valami spambot (szoftver) hagyja, mivel előfordulnak a kitöltött mezők között olyanok is, amik már rég más névre hallgatnak (így pl. az anon_nick neve régóta vendeg_nev, mégis jönnek spamek kitöltött anon_nick mezővel - érdemes hát betenni a szűrési feltételek közé azt, hogy amennyiben van anon_nick a $_REQUEST-ben, akkor nyilvánvalóan spammel van dolgunk).

  • Javascriptet a legritkább esetben futtatják le, ez egyrészt következik a fentiből, másrészt a logban látható, hogy a javascript által létrehozott mezők nincsenek kitöltve.
  • Értelmi képességekkel nem rendelkeznek, a noscript esetén megjelenő szorzást nem végzik el, az eredmény helyére gyakorta egyéb szöveget vagy reklámurl-t pakolnak.
  • Gyakran üres kommentet próbálnak meg beküldeni.
  • Vannak annyira primitív botok akik a pw nevű input mezőbe is url-t próbálnak beírni aztán csodálkoznak hogy nem jelenik meg a hozzászólásuk…
Haszprus

Többszintű névfelhő

©   Haszprus   |   fejlesztés

A Webisztánon olvastam nemrég egy írást a címkefelhő jövője címmel. A dolog röviden annyi, hogy az eddigi gyakoriságot jelző méret mellé befigyelhet egy olyan paraméter, mint a frissességet jelző színárnyalat. Úgyhogy némi érlelés után a Haszprus überblog bemutatja a kétszintű dumagépek névfelhőt.

Minél többet írt valaki, annál nagyobb a neve, ill. annál előrébb van a listában. Ám minél régebben járt errefelé, annál halványabb is. A dologhoz még hozzátartozik az, hogy a nagy nevek halványodása egy kicsit lassabb is, ezt nem biztos hogy így hagyom, bár valószínű.

Az opacity css paramétert sajnos az Internet Explorer 7-es verziója sem ismeri, úgyhogy IE6/7-userek ígyjártak, lehet váltani.

Haszprus

Kevés-e

©   Haszprus   |   fejlesztés

Téged, mint olvasót, zavar-e, hogy mostanság kevesebbet írok?

Ez lehetne ugyan szavazás is, de nem, mert így kicsit kifejthetitek a dolgot, amit támogatnék is. Válaszok adhatók egytől akárhány szóig, pl.

  • igen
  • igen, zavar, többet olvasnék
  • nem, nem zavar, a többiek írásai még jobbak is
  • észre se vettem hogy nem te írsz itt mindent
  • x témában kár, hogy kevesebb a bejegyzés, de y témát örülök hogy végre nem kell olvasnom
  • x témáért kezdtem ide járni és szomorúan látom hogy ebből egyre kevesebb post van
  • etc.

Namost mielőtt itt valaki beijedne, hogy jaj mi lesz, ha nem megfelelő választ ad, és esetleg inkább csöndben marad vagy kamuzik, tájékoztatom, hogy számomra a blogon pillanatnyilag egyre kevésbé prioritás a tartalomszolgáltatás (ellenben az overhead egyre több), de ha ez meg is változik, senkire nem tudok neheztelni azért, mert az ő optimális személyes étvágya heti 1, 7, netán 70 bejegyzés… Semmivel sem gázabb erre válaszolnod, mint azt megtudnom rólad, hogy hány naponta nézel ide a blogra. Márpedig ez utóbbit már tudom

Egyúttal azt a kérdést is felteszem, hogy vajon hülyén néznének-e ki a továbbiakban a személyes jellegű postjaim a tematikusabb postok között. Konkrétabban: társszerzőim igen ritkán írnak, de így megvan a lehetőségük, hogy csak igényes témákat vessenek fel. Én gyakrabban írok, de nyilván nem gondolkodhatok mindennap valami világmegváltó témáról (vagy pl. nem is tudok, meg mostanság nincs is kedvem, erőm, időm). A kérdés, hogy ennek ellenére írjak-e, vagy inkább befogjam a szám. Egyre inkább utóbbi felé hajlok, a statisztikát megnézve jelentős visszaesés következett be a postjaim számában a társszerzők megjelenésekor. Igaz, más dolgok is változtak akkortájt (bejegyzés-várólista, bringa, több filmnézés, fejlesztések leállása), tehát nem biztos, hogy ez a változás egyetlen oka. Bár manapság sokmindenről azért nem írok, mert túlzottan apróság lenne olyan postok között, mint pl. forradalom, iskolarendszer, óriáscsigák, ill. egyéb közéleti vagy nagy érdeklődést kiváltó témák.

A filmeken nem fogok változtatni, ott továbbra is minden megnézett filmemről írok egy-egy bejegyzést.

Üdv! Hosszú csend után újabb újoncként jelentkezem a fedélzeten! Külön bejegyzést nem terveztem írni beköszönés címszóval. Nem az az ember vagyok aki feleslegesen szaporítja a szót vagy aki a posztolási ranglistán fog az élre törni ettől függetlenül azért igyekszem egyszer-egyszer valami érdekesebbnek ítélt témával hozzájárulni a blog életéhez mondjuk fotózás, life, film, hwsw témákban (meg bármiben ami éppen jön ) Hát, akkor jöjjön is az első bejegyzésem ezekről a fantasztikus háziállatokról!

Gondolkoztam, hogy miként mutassam be az állatkákat.. de még most sem tudom pontosan úgyhogy kezdjük az elejéről, képekkel illusztrálva...

2005. május végén került hozzám négy borsónyi kis állatka, mert gondoltam, ha ilyen baromi picik és sérülékenyek(nek kinézők) akkor lehet nem mind éli túl a költözést. Ez (sajnos *) nem így lett, mind a négy elkezdett iszonyat tempóban nőni, zabálni a salit, uborkát és a szépiát amiből a házukat építgetik (a fehér cucc a képeken).

* mert azóta is négyen esznek ki minden vagyonomból és szaporodnak mint a nyulak.. ehh még ha csak úgy szaporodnának a nyulak elbújhatnak mögöttük de erről még késöbb írok

Alig egy hónap alatt már pár centisre gyúrták fel magukat és szorgosan pusztítottak el minden zöldet vagy kevésbé zöldet amit eléjük raktam. Tehát jól megvoltak, éldegéltek mint a befőtt. Útközben a kezdeti kis műanyag doboz helyett kaptak egy nagyobb üveg tálat is pár centi földdel amibe boldogan ásták be magukat. Sajnos ezek után sötétebb idők következtek, kicsit el lettek hanyagolva, én beköltöztem Budapestre ők maradtak otthon. Ezt annyira zokon vették, hogy jól le is hibernálták magukat és kb szeptember közepétől 8 hónapnyi alvás következett egészen 2006. májusig...

... amikor is hazaköltöztem és újra kezelésbe vettem őket. Mint mindent, a felkelést is baromi gyorsan csinálták. Már kezdtem azt hinni fél óra ébresztgetés után, hogy ezek beleszáradtak a házukba és buktam a csigákat.. de nem! alig fél/háromnegyed órával a melegvízbe mártogatásuk után kilökték és megették az ideiglenesen épített ajtót, sőt sajnos még a házukat is visszarágták 1-2 centit azt hiszem kicsit mész hiányosok voltak, de nem vagyok csigológus tehát nem tudom pontosan. (Mint utólag kiderült amúgy is szeretnek pár hetes/hónapos téli álmot aludni, mert itt kicsit hideg van nekik, hiszen Afrikában őshonosak. Kellő fűtéssel ugyan megakadályozható a bealvásuk de sokan jónak tartják, ha hagyjuk pihenni kicsit az állatkákat.)

A lényeg, hogy nagy nehezen felkeltek és birtokba vették az új, szép nagy terráriumukat fahánccsal, fűtőlappal, páratartalom mérővel, vízspriccelővel, esztétikus kék műanyag tányérral és minden földi jóval együtt. Tehát újra kezdődhettek az éjszakai zöldséghabzsolások (mert éjszakai állatok amúgy), földtúrkálás, lobogó szemmel rohangálás meg minden amit egy csiga csinálhat. Pár új tevékenységet is elkezdtek, ilyen például az üvegen házcsúsztatás aminek éjszaka elég rémisztő hangja tud lenni főleg amíg nem jön rá az ember, hogy mi a fene az

A másik új hobbijuk a roppant erotikus nász tánc lejtés lett aminek az eredményét is megtapasztalhatja a boldog csiga tartó úgy 2 havonta/"fő". Ez esetemben azt jelenti, hogy átlag kéthetente kapom az első képen látható kis csomagokat a föld alá ásva, majd pár héttel ezután jön a CSIGA ÖZÖN.. Nem kicsit, nagyon! Volt már olyan, hogy elajándékoztam ~180 pici csigát, de másnap úgy nézett ki a teró mintha egyetlen egy sem hiányozna. Azt hiszem ezek alapján megalapozott az előző kijelentésem miszerint a nyulak sehol nincsenek ezekhez képest...

Mostanában is jól elvannak.. bár annyira nem örülnek az új talajnak amit alájuk raktam.. de majd megszokják

Ha ezek után bárkit érdekel pár kis csiga keressen meg nyugodtan (Mainframe-et már megfertőzték )

Update 2006. nov. 02. 13:44: Még egy érdekes számolgatás eszembejutott a csiga özönnel kapcsolatban...
2 csigától 6,8 x 1036 utód 5 év alatt... a nyulak még mindig messze vannak..
Haszprus

Invited users

©   Haszprus   |   fejlesztés

Arra gondoltam, lehetnének olyan trusted bejegyzések, amikre 1-1 nemtrusted user is kapna olvasási/hozzászólási jogot.

(Erőforráskímélő megvalósítása: a bejegyzések megjelenítésében egyetlen helyen lenne változás, mégpedig ott, ahol egy visszautasítást kap a nemtrusted user amikor trusted bejegyzést próbál elolvasni. Ezen a ponton a visszautasítást megelőzné egy ellenőrzés arra vonatkozóan, hogy esetleg meg van-e hívva a júzer az adott bejegyzésre. Ennek a plusz ellenőrzésnek a végrehajtása rendkívül ritka lenne. Tehát az invited userek csak akkor láthatják az adott bejegyzést, ha beírják az url-t a böngészőbe, másképp nem. Szintén 0 erőforrásigénnyel készíthető egy oldal ahol a user áttekintheti hogy mely topicokba lett meghívva. Az invite-ok tárolására egy tábla szolgálna, pl. invite(user id, bejegyzés id) sémával.)

Haszprus

Igazgatótanács (magasabb létformák)

©   Haszprus   |   fejlesztés

Hajtsatok fejet a magasabb létformák előtt. (Avagy: kik írják a blogot?)

A betűméretek az adott témakörben felmutatott teljesítmény szerint alakulnak. Kétfajta rendezés lehetséges, egyik a bejegyzések mennyiségét, másik a rájuk kapott válaszokét veszi alapul. Elnézést amiért mostanáig tartott ezt elkészítenem

Update 2006. okt. 21. 19:00:: Magasabb létformák (SEO).

Update 2006. okt. 22. 00:12: további két rendezés, visszhangátlag és visszhangmax, ld. #26.

Haszprus

IMDB-s filmjellemzés

©   Haszprus   |   fejlesztés film

Régen, amikor még csak annyit írtam 1-1 filmről, hogy v. nemyo, idéztem mindig az imdb-ről adatokat, meg a plot outline-t, időnként a user commentet is, ha egyetértettem vele, vagy kellően tartalmasnak ítéltem.

Most, hogy a blogon egészen mások a filmajánlók, nevezetesen nem 1-2 szóra korlátozódnak hanem hosszú sorokat tesznek ki, szükség van-e még az imdb-ről copyzott angol összefoglalóra?

Az én privát véleményem az, hogy nincs, de nagyon érdekelne mások véleménye.

Haszprus

Intelligens bejegyzésajánló

©   Haszprus   |   fejlesztés

A bejegyzés minden kategóriájából ajánl további néhány bejegyzést.

Részletesebb működése: végigmegy az adott bejegyzés kategóriáin, és minden kategóriához megjelenít egy-egy ajánlódobozt a menüben. Hogy a menü ne nyúljon túl hosszúra, figyelembe veszi, hogy hány kategóriába tartozik a bejegyzés, ennek megfelelően limitálja az egyes kategóriánkénti ajánlatok számát (2-5 link/kategória tartományban). Ha a menüben galériaajánló is van, és a bejegyzés nemcsak fotós kategóriába tartozik, akkor a fotós kategóriából nem kerülnek elő ajánlatok.

Elképzelhetőnek tartok egy olyan fejlesztést ehelyett, vagy emellett, ahol egy doboz tartalma a bejegyzés kategóriái alapján a következőképp generálódik: veszi a bejegyzés kategóriáinak kételemű kombinációit. Ezeket a párokat and feltétellel kapcsolja belül, kívül pedig orral. Pl. egy bejegyzés kategóriái: barátok, sport, történelem. A doboz tartalma pedig: (barátok and sport) or (barátok and történelem) or (sport and történelem). Hátránya, hogy a kevés kategóriába tartozó postok még hátrányosabb megkülönböztetésben részesülnek, mint a mostani megoldás esetén. Ha van vmi véleményed, az érdekelne, akkor is ha te magad nem használnád ezt a feature-t.

Haszprus

Három éves a blog

©   Haszprus   |   fejlesztés

Gyerekek, itt a zavargások meg bringázások közepette megfeledkeztem arról, hogy szeptember 21-én három éves lett a blog.

Átnéztem a verzió históriát, és a következő változásokat emelném ki az elmúlt egy évből. Volt belőlük bőven, ez egy egészen szolíd kivonat a leglényegesebbekről, időrendben.

  • háromhasábos layout
  • kommentengedélyezés/-várakoztatás
  • dumagépek
  • trusted only bejegyzések
  • kommentek közti navigáció
  • objektumorientáltság
  • összetettebb sql lekérdezések
  • smarty
  • kommentkereső
  • szép url-ek
  • komment-beli url-konvertálás
  • lapozó (pageturner)
  • spamszűrés
  • gravatar támogatás cache-sel
  • újfajta idézetkezelés a kommentekben
  • társszerzők
  • bejegyzés várólista

Valamint thx 2:

Haszprus

Private Gallery

©   Haszprus   |   design fejlesztés

Valahogy be kéne integrálnom a Private Galleryt a blogba. Megjelölném, hogy mely képeket szánom onnan a nagyközönségnek, és csak azt tekinthetnétek meg. Ami jó benne, hogy ott lehet lapozni, kulturált a kinézete (igaz 1280-as felbontás kell hozzá), előre cache-eli a környező képeket, lehet szűrni szempontok szerint, keresgélni, stb. Ami rossz, hogy nem tudom pl. csoportokba bontani a képeket, és csoportokhoz írni kommentárokat. Valamint hogy akkor a blogból kivesznének a képek (nagyrészt), szóval az archívumban végiggörgetve egy hónapot nem lehetne látni képek formájában, hogy mik történtek akkortájt.

Viszont nekem elég nagy könnyebbség lenne, hogy csak egy helyre kéne publikálnom a képeimet.

mainframe

Hotdog blogok

©   mainframe   |   fejlesztés life

Nos, feleim, mint azt tudjátok, utolsó kis műblogger vagyok, és nincs is rendes blogom. A Hotdog.hu című, fiataloknak szánt, színes szagos interaktív portálon próbálok valami blognak látszót elkövetni, eleddig inkább kevesebb mint több sikerrel. Na de ma gondoltam merészet és nagyot, és megnéztem, kik is ott az ászok a blogscene-ben. Már csak azért is, mert az én blogomat a siralmas 600valahányadik helyre osztályozták. Nos, íme két kép. Ez a bloglista . Ha csökkenő sorrendben kérdeziktek le az eredményt, akkor jön a frankó, ami mindent elmond.

A legdurvább dolog, hogy 16 blogger 30 felett van a Top20-ban!! (2006.06.26. 2:14-es információ) Ha megnézitek a Hotdog imidzsét, és úgy alapvetően a tálalását (itt láttam viszont először az Apám Beájulna című remekmű szlengnek nevezett műszavait), ordít róla hogy 25 év felett ez már nem neked való. Komolyan. Ha 25 fölött még mindig a Hotdogon fogok browse-olni, lőjetek agyon. Elképzelem, milyenek ezek az emberek. Az a típus lehet, aki 40 évesen is az e-klubban nyomul, meg beleszuszakolja magát egy kivágott, feszülős rózsaszín topba, mert ha ilyen van rajta, majd biztos 20-nak nézik. Peeeersze. Nem akarom túlragozni a dolgot, szerintem értitek azt a benyomást, aminek nyomán ez a bejegyzés született...

És itt az első helyezett blog. A dizájn, és a tartalom is külön-külön büntet. Mondjuk az előbbi bocsánatos bűn, a Hotdog elég nehezen formázható. Most már sejtitek, honnan az én nagy meg-nem-értettség érzésem? Ha összehasonlítási alap kell (a Mire föl nagy a pofád?-kezdetű kérdéseket megelőzve, bár ez nem olyan platform... ) itt az én blogom

(A világ legügyetlenebb, bújtatott önreklámját olvashattátok...) Persze ez nem komoly. Tényleg ki vagyok akadva, és csak másodsorban fogjátok megnézni emiatt a blogomat.

Haszprus

Filmek közt 20 óra

©   Haszprus   |   fejlesztés

Ez a bejegyzés részben egy várólista-teszt - elvileg 07:46 körül jelenik meg. The GuNN filmes bejegyzése pedig 10:55 körül várható. Új várólista-szabály: két filmes bejegyzés között minimum 24 20 óra kell elteljen. Belül pedig sokat egyszerűsítettem a várólista kezelésén, és máshova kötöttem be a blogringet pingelő sort is. Oda, ahol valóban megfelelően látja el a feladatát.

Update 11:36: elvileg bugok javítva.

Tamás

Basecamp

©   Tamás   |   fejlesztés hwsw

Van ez a Basecamp nevű remek kis projektmenedzsment alkalmazás. Tényleg nagyon korrekt, AJAXos, webkettőpontnullás, van RSS támogatása is, meg minden olyan, ami trendi mostanában (talán csak tag-ek nincsenek benne). Egy ideje a free verzióját használom a saját todo-listáim, projektjeim, határidőim nyilvántartására, mert ismerem magamat annyira, hogy tudom, hogy egyébként mindent elfelejtenék. Egyedüli gond az vele, hogy a free verzió nem használható komolyabb feladatokra (mivel van benne egy olyan limit, hogy csak egy projektet hozhatsz létre, így hiába akarom, nem tudom a teendőimet projektek szerint szétválogatni). És itt jön a rejtély, amit egyszerűen nem értek: hogyhogy valaki nem másolta le még egy az egyben ezt az alkalmazást és nem adta ki nyílt forráskóddal? Nem hiszem, hogy olyan egetverően nagy meló lenne - maga a Basecamp tulajdonképpen nem más, mint egy többfelhasználós blog (ugyanúgy lehet kommentezni a taskokat, milestone-okat, mint egy rendes blog bejegyzéseit), csak hozzáraktak egy todo-lista modult, fájlfeltöltési lehetőséget, e-mailes figyelmeztetést, egy egyszerű jogosultságkezelő rendszert, és kész. Ruby on Rails alapokon nem hiszem, hogy két hónapnál tovább tartana megírni - főleg mivel az eredeti Basecamp is RoR alapokon készült. Sőt, igazából a Ruby on Rails keretrendszer pont a Basecamp fejlesztése során született meg, és a fejlesztők saját bevallása szerint sem tartott tovább két hónapnál, hogy a Basecamp első verzióját implementálják.

Könyörgök, nincs odakint valaki ráérő programozó, aki gyorsan lekoppintaná a Basecamp-et és kiadná a forrását? Nem kell nekem innováció meg semmi ilyesmi, csak szeretnék benne néhány idegesítő hülyeséget kijavítani, hogy nekem jobban kézre álljon, és kész. És nem, nem akarok havi 12 dollárt fizetni azért, hogy használjak egy olyan rendszert, ami már majdnem teljesen kézre áll, de mégse tökéletes. Long live open source, amit úgy tudok széjjelcsesztetni, ahogy csak akarom.

Ez az egyik. A másik meg, ha már így szóba került, egy körkérdés. Ti hogyan tartjátok rendben az életeteket, hogyan tartjátok fejben a határidőket, hogyan jegyzitek fel a kósza kis ötleteket valahova úgy, hogy ne vesszenek el? PDA? Notesz? Moleskine? Okostelefon? Csillivilli AJAXos webalkalmazás? Outlook? Hogy csinálja a világ azt, hogy soha senki nem felejt el semmit, csak mindig én?