Archive for 'egyéb'

Most ez van.

Nyehh már megint VOLT fesztivál. Nem vagyok nagy fesztiválos, porban fetrengős, vizes sörtől hányós, de azért ha már minden évben kerül ide egy-egy gyermekkorom sztárjai küzül, egye-fene egy napra mindig kinézek. Idén utolsó nap, 5-én, konkrétan Offspring koncertre megyünk. Persze az MR2 Petőfi sztárjai, a VadFruttik, 30Y és Zságer Balázsék sem maradhatnak ki a programból. Az elmúlt két hónapban mind a három zenekar játszott Sopronban és én minden ott voltam, de jók voltak, érdemes őket megnézni még1x.

Meló: Ki sem látszok belőle. Érdekes, mert a korábbi nyarak általában nyugisak voltak. Júliusra több kisebb honlap, elmaradások pótlása, egy nagyobb ‘web 10.0 iszonyatinnovatív’ és egy-két saját projekt befejezése/megvalósítása jutott. Többnyire kódolásos melók, semmi izgalom.
Lassan pedig megszűnik a vargapeter.com és átalakul …..hu-vá, de erről majd még lesz egy másik blog bejegyzés valamikor.

Elkezdtem (volna) angolra járni (ha nem alszom el és késem le az első órát). Szeptemberben vizsga. ITK. Írásbeli, középfok. Szóbeli meg van 5 éve. Éppen itt lesz az ideje, a rézangyalát!

Újra rajzolgatok. Kb 2 éve letettem a ceruzát több dolog miatt is, de most megint megjött a kedvem.. és jó. Próbálok fejlődni. Múltkor voltunk Moholy kiállításon Pesten. Megfogott. De erről is lesz egy külön bejegyzés :)

Fixit optikailag tunningoltam, kapott egy új gumi szettet. Panaracer Stradius Sport piros köpenyeket. Jól néz ki szerintem. Sajna csak 23-as volt a boltban. Schwalbe két sávban pirost akartam, de abból meg csak 1 db volt. Kiváncsi vagyok mennyit fog bírni. Érdekes, hogy sokkal jobban tapad mint az előző, és bátrabban kanyarodok vele. Ennek egyetlen hátránya, hogy egyszer le fog érni a pedál. A skidelés furcsa volt az új gumikkal, de kezdem megszokni.

Asszem más nincs. Hétőn Kati elutazik Szesölszigetekre szüleivel :/ uh két hétig egyedül leszek. Közös nyaralás majd csak nyár végén. Lefoglaltunk egy hetet Ausztriában a Dachsteinen. Hegyi szálloda 1800-on, all inclusive, sok kirándulás, via ferratta, talán egy kis mászás is. Csak még Katit ki kell képeznem elölmászó biztosításra :)

Jaaah! Tudom mi maradt ki. Vizsgaidőszak. Lezárult. Két tantárgyat elszúrtam, a többi mind szépen sikerült. Az egyikből (teljesítményelemzés) CV lesz szeptemberben, a másik (statisztika) meg majd jövőre meg lesz. Úgy néz ki jövő ilyenkor már lesz egy diplomám. Lassan itt az ideje :)

Paul Van Dyk és a mac

Hát persze, hogy PVD is Apple-t használ! Tegnap a Gasometer nevezetű szórakozóhelyen voltunk Bécsben, Paul Van Dyk - In Between lemezbemutatóján. Születésnapi ajándékom volt egyébként Kedvesemtől aki fel is hívta már koncert elött a figyelmemet, hogy Paul Van Dyk is apple macintosh-t használ.. és tényleg! 2 DJ játszott a “mester” előtt, az ő közeledtét a fél2 magasságában kipakolt MacBook Pro 17″ jelezte.. :) Nagyon sokáig játszott, 5 körül jöttünk el és még nem volt vége, bár már a harmadik ráadás track szólt..

Egyébként éppen most jelent meg az Apple Mac Pro oldalon róla egy terjedelmes cikk Paul van Dyk: Digital Spin címmel, hogy hogyan és mire használja a Mac-et, hogyan effektel és zenél élőben a Logic Studio, Ableton Live és mindenféle MIDI mixerekkel.. érdemes beleolvasni!

Saját egérmutató (CSS)

Ajaxos alkalmazásoknál gyakran használok más egérmutatókat, mert sokszor egyértelműsítik mit lehet egy objektummal csinálni. Például drag n’ drop-olható elemeknél ezt a kurzort használom: cursor-openhand.png

CSS-ben ilyet elvileg nagyon egyszerűen definiálhatunk:

body{
cursor: move;
}

Firefox alatt szépen meg is jelenik a kezecske, de az Internet Explorer 6,7 és a Safari is egy nyilaskeresztet ;) produkál helyette.. Ez nem ébreszti fel usereinkben a “dragndrop” ösztönt (izraelita usereink pedig ijedtükben kikapcsolják a böngészőt :D ). A célunk az, hogy minden böngésző alatt a kezecske jelenjen meg.

Szükségünk lesz a megfelelő cursor bitmapre: openhand.cur

Másoljuk a css-el egyező mappába és írjuk át a css kódot:

body{
url(openhand.cur),move;
}

Lám, lám Safari barátunk szépen működik, a jó öreg IE pedig még mindig nem boldogul vele.. Hogy miért nem? Mert egy nagy rakás sz*r és nem képes követni a W3C szabványokat.. A trükk a következő:

Adjuk meg az abszolút hivatkozást is:

body{
url(openhand.cur),url(layout/openhand.cur),move;
}

Papaam és már megy is Firefox, Safari, Internet Explorer 6 és 7 alatt is!

Sopron & GoogleMaps

Évek óta reménykedek, hogy végre egyszer.. de nem, nem még mindig nem jött el az ideje, hogy Gennyesrendes szintjére emelkedjen városunk és végre én is megnézhessem milyen a hátsókertünk az űrből.. A legutolsó koszfészekről is vannak már képek, ha szerencséjük van, de úgy látszik felettünk nem járnak műholdak..
Read more

Új NEPTUN az NYME-n!

November 5-én a Nyugat Magyarországi Egyetemen is megáll az élet, nem lehet ugyan is használni a NEPTUNt, az egyetemisták legősibb és legtöbb fejfájást okozó ellenségét. A régi Neptun R2-t most lecserélik a Neptun.Net-re. Ha jól tudom a BME-n már rég óta ezt használják.. A kettő közti óriási különbség, hogy a korábbi verzó egy Remote terminál jellegű megoldást használt egy Windows szerverre, ezáltal meg voltak a maga korlátai.. főleg az aktív userek maximális számát illetően :/ A .NET-es verzó ezzel szemben egy vékonykliens megoldás, nem kell hozzá Remote Desktop (Távoli asztal) szoftver, hanem egyszerűen egy böngészőből kezelhető.. Tulajonképp egy weboldal :)
Az átállás időtartama azért engem egy kicsit megbotránkoztatott.. Azért egy ilyen szolgáltatás esetén elvárnánk, hogy max. 1 nap legyen a tényleges kimaradás, és a telepíéseket, konfigurálást, üzembe helyezést, tesztelést (!) ne úgy végezzék el, hogy a régi rendszer közben áll.. Nem, ez nem lehetetlen! Képzeljük csak el, ha mondjuk egy gyárban vállalatirányítási rendszert cserélnek.. két hétre nem állhat meg az élet, csak azért mert nem működik egy program.. A pontos számokat nem ismerem, de biztos vagyok benne, hogy ez sem egy olcsó mulattság az Egyetemnek/Államnak, elvárható lenne egy “finom átmenet”.. nem pedig KÉT HETES átállási idő..
Persze az egész azért bosszant a legjobban, mert November 1-e van és a szeptemberi ösztöndíjam és három havi HÖKös fizum még mindig nem érkezett meg egyéb okok miatt és emiatt még 2 hetet csúszik. Mivel közben dolgozom és itthon lakok, éhen nem halok, de aki pl koleszos/albiban lakik, gyakorlatilag önfentartó, annak baromi nagy bosszúságot jelent az ilyesmi..

Nah, jót mérgelődtem, de a lényeg, hogy két hét  múlva megváltozik minden, szebb lesz, jobb lesz és állítólag pénzt is kapunk.. Khm :) Úgy legyen!

Music Television Hungary

MTV LOGOAztamindenségit! Hétfőtől magyarországról, magyar nyelven élvezhetjük az MTV adását..

Mikor meghallottam a hírt, annyira nem nyűgözött le, hiszen most is van egy zenecsatornánk, ami külföldi tulajdonú és ha bekapcsolom, dől a szar a nappalinkba.. DE! Én pl. a VH1-t szeretem, sok jó zene megy rajta, és ha a híresztelések igazak, akkor az MTV Hungary is hasonló szűrővel lesz felszerelve, csak kapunk még 1 rakat magyart is. Azt beszélik hasonó felhozatalra számíthatunk majd mint a Petőfi rádió esetében, és a magyar zenék közül is inkább a réteg/underground és egyéb kis hazánkban elnyomott stílusok képviselői kerülnek előtérbe. Az adás 2007. október 1-én hétfőn reggel 6-kor kezdődik, és ha minden igaz a UPC kábel hálózatán is fogható. Mivel nagyon keveset nézek TV-t, eddig nem különösebben zavart, hogy az MTV kezdett nézhetetlenné vállni a sok kötsög feka rappertől. Magyarországon azt hiszem ez a veszély nem áll fenn.. Roma együttes kevés van, rappelni meg kevesen tudnak kis hazánkban olyan szinten, hogy az TVben sugározható legyen :)  Az est.hu szerint Gwen Stefani új dalával kezdődik az adás, aztán Ákos - Minden most kezdődik el c. számát izgul6juk végig. Lesz néhány átvett műsor, pl. Pimp My Ride, South Park ésatöbbi, de már a kezdetektől sugároznak saját gyártású műsorokat is.
Kiváncsian várom, várjátok Ti is!

Pay Pal(i) 1. rész

Nah végre kipróbáltam ezt is. Mindenkinek csak ajánlani tudom.. Nagyon klassz kis fizetési rendszer és tényleg müxik most már Magyarországra is. Hamarosan indítok egy weboldalt amin majd ezzel gyüjtök “adományokat”. Semmi másra nincs szükség, mint egy bankkártyára és egy email címre, meg némi angol tudásra (mert az adminisztrációs felület angolul van). paypal website A regisztrációs folyamat kb 10 perc volt (a fontos infok elolvasása és a kell ez nekem vagy haggggyam a rákba gondolkodással együtt). Megadtam a visa electronom adatait és már jött is az sms h 1 Ft-ot levontak. Ezzel visszaigazoltam, hogy működik a kari. Elvileg a számlaértesítőben is lesz majd egy visszaigazolási szám és akkor lesz fullos a regisztráció. Jah, meg volt egy sima email visszaigazolás is. A három féle számlatípus közül a personalt választottam, mert bőven elég az is egyenlőre. Aztán majd meglátjuk mi lesz ha beindul a biznisz :) Rengeteg lehetőség van, de eddig csak a Donate- témát feszegettem. Egy egyszerű kis formot ágyazunk a weboldalunkba, ami gyakorlatilag 1 gomb/link a paypal biztonságos fizetési felületéhez, ahol paypal accountal és 4 féle hitelkártyával lehet kifizetni az admin felületen generált gombhoz beállított összeget. Hamarosan indul egy webshop is, amit én fejlesztgetek már időtln idők óta.. valószínűleg abban is lesz majd paypalos fizetési lehetőség, és akkor majd leírom a webcart-os szolgáltatások tapasztalatait is. Mi kell még? Folyt.köv.

Ajax vs SEO - 1. rész

ajaxKedves gyerekek! Ma arrol fogok mesélni nektek, hogy hogyan lehet a HTML király legkisebb fiát, AJAXocskát végre férfivá nevelni, hogy megküzdhessen a nagy Google sárkánnyal. Jól van, jól van.. tudom, idióta képzavarok sokasága az előző mondat. De kellett valami bevezető és ma ilyen elborult napom van. A továbbiakban megpróbálok tárgyilagos lenni.. Előre bocsátom, hogy nem fogok ide kódrészeteket másolgatni, csak leírok egy ötletet! Legyen mindenki kreatív ;)

Adva van:
1 db. .htaccess amivel rewriteolunk
1 db. index.php amin az ajax-os tartalom megjelenik
1 db. ajax.php ami felfolgozza az adatokat
1 db. mysql adatbázis sok sok adattal
1 db. ajax.js ami az ajax kommunikációt biztosítja
1 db. sportszelet amit miközben írom a cikket megeszek

Probléma:
Gugli barátunk mint olyan nem ismeri a javascriptet. Nem kicsit, nagyon! (Hál’ Istennek!) Mivel a guglirobot ami végigkarmolja oldalunkat, nem futtaja le a scriptecskénket ami az ajax response tartalmát kihánnya az index.php valamely div-jébe. Magyarán szólva a Gugli semmit nem fog föl abból, amit mi ajaxal tárunk a világ elé.

Ötlet!
Csináljunk úgy, mintha az ajaxos tartalom egy különálló oldal lenne.

Hogyan?
Induljunk ki abból, hogy a Google hogyan karmolássza az oldalainkat.. Tudja valaki a kulcsszót? Nos? Igen, igen ott a hátsó sorban! Az az! Igen, pontosan! Linkek a helyes válasz! De mi a fenét kezdjünk mi egy linkkel. Egy “virtuális hidat” fogunk képezni az ajaxos és a normál tartalmunk közt. egyetlen linkre van szükségünk az oldalon, ami elvezeti Gugli bácsit a mi ajaxos kis motyónkhoz. Tehát írunk valami ilyesmit:

xhref="http://www.enoldalam.com/ajaxos_motyo/" mce_href="http://www.enoldalam.com/ajaxos_motyo/"

De mi van az ajaxos_motyo mappában, kérdezi az avatatlan webprogrammer. Nos semmi, ugyanis nincs ilyen mappa..
Itt lép be a képbe a mi jó öreg mod_rewrite barátunk!. Hogy hogy is működik mindez, arról itt! (nem olvashatsz :D )! Hogy tiszta legyen a kép, meg lehetne oldani mod rewrite nélkül is a dolgot, de ha már SEO akkor legyen SEO, nem igaz?

http://www.enoldalam.com/ajaxos_motyo/hulyesegek/a_legnagyobb_huyleseg.html
http://www.enoldalam.com/ajaxos_motyo/okossagok/a_legbolcsebb_dolog.html

Próbáljuk ilyen vagy ehez hasonló formába rendezni a mysql-ből kinyert adatainkat.. Így jóval nagyobb lesz majd a találati arány..
De most akkor pontosan mivé is rivrájtoljuk ezeket a kéréseket? A site bonyolultságától függően lehet például az index.php vagy az ajax.php egy html, body head ésatöbbivel tunningolt változata is! A lényeg, hogy a kérésekre egy szabványos html oldal érkezzen a mi kis googlink számára, és onnét minél több linken keresztül tudjon tovább karmolászni a siteunk tartalmában, természetesen úgy, hogy az ajaxos_motyo tartomáynban maradjon.

Aztán persze meg kell oldani, hogy a szörfölők, akik a google találati oldalról jönnek, ne az ajaxos motyót nézegessék, hanem az igazi oldalt.. Erről a következő részben fogok csak szót ejteni, mert elfogyott a sportszelet..

Qashqai: Hoax-e vagy?

Pár hete terjednek a neten a Nissan új reklámkampányának videói, melyeken több mint 1 tonnás autók ugrabugrálnak 10m magasra, akár csak a jó öreg Toni Hók Pro Szkéter. Naneee.. Persze csináltak egy (gyanúsan fix tartalmú és poénokkal telerakott “ flash fan siteot” is, melyeken magunk is meggyőződhetünk, hogy ez az új sport az egész világon jelen van Tokiótól Londonig.. Vannak persze akik találgatják, tényleg igazi-e.. Nos, 1. ők nem jártak fizika órára 2. szánalmasan naívak 3. miért kizárólag a nissan tud repülni?!.. abból is 1 városi (egyébként nagyon tetszetős) modell. Na meg biztosan nem hallgattak egy fél évig marketinget és nem ismerik a szakma alattomos trükkjeit :) Nos, az eszközt vírus-marketingnek hívják. A dolog lényege, hogy minimális befektetéssel bedobnak egy olyan (általában kamu) hírt a köztudatba amelyet azután mindenki tovább küld/elmesél a barátainak és így 1-2 hét, max 1 hónap alatt elterjed a világon, mert mindenki azt találgatja, igaz-e vagy sem. Sikeres kampány esetén a cég irdatlan pénzeket spórol meg, melyet hagyományos marketing eszközökbe fektetne, és persze ennek köszönhetően óriási előnyt szerez a vetélytársakkal szemben. Persze az már megint egy más kérdés, hogy ez etikus-e vagy sem.. Érdemes elgondolkodni, hogy hová vezetnek az ilyen reklámfogások.. A politikusoknak és az ügyvédeknek már rég nem hiszünk.. a reklámoknak is egyre kevésbé. Ezek után pedig majd azoktól veszünk autót, akik nagyobbat hazudnak :S

Minden esetre a videók tényleg látványosra sikeredtek.. Itt van egy tőlem, nektek, csak hogy én is hozzájáruljak a kampány sikeréhez:

Ja igen! Nissanék természetesen tagadják, hogy hamisak lennének a felvételek. :D

Regexp e-mail & társai

Mikor már a regexpel való szívás 3. órájában jártam a mai napon, rábukkantam erre a kis e-mail ellenőrző regular expressionre :D Viccet félretéve ez az 1982-ben lefektetett RFC 822-es szabvány reguláris kifejezése.. Ami erre illeszkedik, az tutira valid email, domain név, ip cím stb.. Használni már nem olyan egyszerű :P
Lehet, hogy postolni fogom az e szám első 1000000000 tizedesjegyét.. de még számolom.. addig is jó szórakozást ehez:

(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:
(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.
|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=
[\["()<>@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(
?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \
x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\
[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])
*(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[
\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
))*|(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(
?=[\["()<>@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*
“(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\”.
\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?
[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\
Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1F
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]
\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()
<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@
,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?
:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\
n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.|(?:(?
:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[
^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()
<>@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\
r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x
1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[
\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^
()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<
>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(
?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r
\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.|(?:(
?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:
(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\
["()<>@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:
(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \
x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|”
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*))*@(?:
(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?
[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(
?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x
00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[
([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\]
\x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))
|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*)*\<(
?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\”.\[\] \x00-\x1F]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*
\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\
[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]
]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)
?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|
\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?
[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1F]
+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\
r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^(
)<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>
@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\
n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x
1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|”(?:[^\
"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\
n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])
+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n
)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1
F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\
]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)(?:,\s
*(?:(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(
?=[\["()<>@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*
“(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[
\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]
))|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*))*
@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r
\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\]
(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\
] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]])
)|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".
\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\
]]))|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*)
*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\”.\[\] \x00-\x1F]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\
\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\
\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".
\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\
r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t
])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\
x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\
[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?
:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["
()<>@,;:\\".\[\]]))|”(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?
:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x0
0-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|”(?
:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*”(?:(?:\r\n)?[ \t])*))*@(?:(?
:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00-\x1F]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \x00
-\x1F]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([
^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*))*
)?;\s*)