2009
11.12

Ora aqui está uma oferta de emprego bem gira:

Empresa do camandro, empresa da área de novas tecnologias, está expandir a sua equipa e procura alguém para o cargo de: WEBDESIGNER / FLASH DEVELOPER

Como tal procuramos neste momento 1 candidato com as seguintes características:
-Ambição;
- Capacidade de liderança;
- Espírito de equipa;
- Mente criativa.

Requisitos obrigatórios:
- Recém-licenciado em Web Design e/ou Multimédia
- Domínio das ferramentas Photoshop, Dreamweaver, Flash e Illustrator;
- Domínio em ActionScript 2.0/3.0
- Noções de HTML e CSS;
- Apetência para o Web-design (essencial!);
- Residência na área do Grande Porto;
-Portfolio em Webdesign/Flash.

Oferecemos:
- Integração em equipa jovem;
- Horário de trabalho flexível;
- Carreira progressiva.

Recapitulando…

Recém-licenciado em Web Design ou Multimédia…e depois domínio de 4 softwares ( os de design ainda acredito que num curso superior os usem, mas o Dreamweaver e Flash? )

E ainda tem que saber programar em AS 2.0 e 3.0…

Enfim…

Um bem haja a todos e bom código..

2009
11.10

Bookmarks..

Uma colega minha lá do trabalho despediu-se..

Então decidiu rifar alguma das coisas que tinha para lá na secretária..

A mim calharam-me os bookmarks..

Ficam aqui com a lista ( são muitos mas mesmo muitos.. )

Alguns funcionam… outros nem por isso..

Bem.. have fun..

LEaRN SOMETHING EVERYDaY
Hoje
PUBLICO.PT
Rádio Radar
YouTube – Broadcast Yourself.
Pasta das Ideias
Getty Images – Home
iMac G5 Review
Typetease
antoine+Manuel graphistes à Paris
the best brands of the world – vector logo, logotype, logos and logotypes
YouWorkForThem
news@piggee
:
MOGOLLON New York
Die Gestalten – Home
DzarkDesignbureau™006/07
Newstoday® – For a better tomorrow
.:. FaD .:.
Cartlidge Levene
anthony Sheret at Lunch!
http://www.sonami.cl/exposiciones/rrhh/presentacion_ralph_chelotti.pdf#search=%22factor%20h%20é%20o%20factor%20humano%22
Marloes de Laat en Roel Vaessen > Grafisch Ontwerp
Stock Images – Royalty-Free Stock Photography Images and Photos at Jupiterimages
Stock Photography, Royalty Free Images, Film Footage and More.

design

Baby – Design and art Direction – 020 7740 8759
SEa
Team Science Fiction
http://blog.pentagram.com/archives/Calendar_2007.php
12 sided calendar
Tomato
Welcome to the MudCorp® Corporate Website
SERIF » Blog archive » Sagmeister film
Baron & Baron, Inc.
Stockholm Design Lab
UMa CaSa PORTUGUESa [V.2.0]
GRaNDPEOPLE
halvor bodin
H O R T
Value and Service
Serial Cut™ – art direction + Graphic Design +Illustration
Saville associates
anothercompany – Joachim Baan
MadeThought
form.de » Magazine » Back issue » form 191
Studio Dumbar
Sara De Bondt
aNTHONY BURRILL
Nana’ Women – Footwear – Ballet flats Nana’ on YOOX
Paper Jam Design // multi-discipline graphic design and advertising agency based in Belfast, Northern Ireland
Studio8 Design +44 (0)20 7251 6430
Big Fish® – branding, design, marketing & advertising
BaseWEBSITE 2.2
LogoPond – Identity Inspiration
Inkblot Robot Blog: design news and point of views
Proud Creative – Multidisciplinary Design Studio
BB/Saunders
KaSHIWa SaTO
Graphic Design : GOOD Inc.
LogoLounge.Com
WELCOME TO aTYPYK
Build – Showcase
MaKE
Santos&Karlovich
homework
GUERRILLa INNOVaTION: graphic archives
PEEPSHOW COLLECTIVE
Download :: indexhibit
Design*Sponge
The Curiosity Shoppe :: New
M a blog / Tyler askew [New York]
CREaTIVE REVIEW | THE BEST IN VISUaL COMMUNICaTION
TED | Talks | John Maeda: Simplicity patterns (video)
It’s Nice That
Flights
NOTCOT: Holiday Gift Guide 2007
d*
Felix de Pass
Form® – Design/art Direction
Introduction :: indexhibit
Un.titled / Design & art Direction
Frost* Design – Vince Frost
D.I.Y. Design It Yourself | CD and DVD packaging
bbh.co.uk
ilovedust
wrongnet
us
Profile : andrew Townsend
Vintage Logos – a photoset on Flickr
Business Cards – a photoset on Flickr
Marian Bantjes
Studio Output™
- NEWWORK MaGaZINE -
Facing Sideways: Interview With James Victore
Studio Laucke
RGB©
home : HELMO
Build – Showcase
If You Could : Print Series : July 2008
Bonjour : Designlab
Tom Crabtree
FaRROW
round
HUGO & MaRIE – Creative Direction & artist Management
The Luxury of Protest
Fabrik Project
Li, Inc. art Direction and Design
BVD
Brand Design Consultancy, New Brand Creation, LONDON, UK – ZIGGURaT BRaNDS
dixonbaxi
missbeck
The Organic Food & Wine Deli Identity and Packaging – PLaTFORM5 DESIGN STUDIO
Hampus Jageland
Because Studio. Graphic Design & art Direction
Emma Smart Portfolio hello@smartemma.co.uk +44(0)7765404 347
magma books
Company – The architects
FFFFOUND!
Mytton Williams Design Consultancy +44 (0)1225 476 476
By Default Dot Org
pgerossi.co.uk
http://www.thisispacifica.com/assets/pdf/FITEIPGlobal08.pdf
♥ ♥ ♥ T H E R a I N B O W M O N K E Y ♥ ♥ ♥
/ M / a / S / H /
think simple act simple (dot) com
— Gridmaker v2 —
mainstudio
Selected Work of Magdalena Czarnecki
Hello Monday
This is Real art
OK Great
/ M / a / S / H / – Energy architecture
Remake
office
Xavier Encinas – Graphic Design Studio – Vancouver
Things That We Learn
iconwerk, custom icon & pictogram design.
THIS IS Studio
Graphic-ExchanGE – a selection of graphic projects
Learning To Love You More
That’s DaNCEMaDE™ — Portfolio of graphic designer Jens Nilsson — www.dancemade.com
COLLIDER design.film

PUB

:::::::::: Sra. Rushmore ::::::::::
L G & F
aNTHONY BURRILL
the cool hunter – Sorry, page not found!
Crispin Porter + Bogusky
::::::PSYOP::::::persuade::change::influence::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
http://fashion.psfk.com/advertising/index.html
ag_407
bbh.co.uk
I Believe in advertising | advertising Blog & Community
I Believe in advertising | advertising Blog & Community
The Creative Corporation : London : 0207 704 9234
advertising Commercials and Campaigns by Brent Terrazas – Brentter.com

package

aruliden
Pentawards 2008: Official Blog by The Dieline
Progress Packaging – laser cut carrier bag
TheDieline.com: The Leading Package Design Website
Lovely Package® . The leading source for the very best that package design has to offer.
Hemsidan Stories
JKR | Jones Knowles Ritchie | +44 (0)20 7428 8000
Neumeister | Neumeister – Strategic Branding & Design Consultancy
BVD Packaging design askul
TheDieline.com

tipografia

village /// vllg.com
Underware
Optimo
Gotham | Hoefler & Frere-Jones
DSTYPE FOUNDRY
FontStruct | Build, Share, Download Fonts
Typography. Typography News. Dedicated to Typography, Lettering, Fonts and Typefaces. TypeNeu.

fotografia

The Photographers’ Gallery | Exhibitions | Bert Teunissen: Domestic Landscapes
day19.com | jeremy and claire weiss photography
Miles aldridge
Gemma Booth Photography
Flickr: lenaah’s Photostream
andrew Pearce – Krop Creative Database
Rengim Mutevellioglu – Krop Creative Database
Tim Barber Photography

flickr

Flickr: insect54′s Photostream

fashion

::: Triinu Pungits :::
[aem'kei]
Interview Magazine

ilustração

Pray for a Glorious land / Théo gennitsakis / Paris athens
David Despau

video

._ sixteentwenty.tv _.
PLUSetPLUS
The Embassy Visual Effects
Pleix films

vintage

Modern Mechanix » Covers

interiores

:::国際見本市インテリア ライフスタイル 公式サイト:::

untitled folder

|| Dummy Text Generator | Lorem ipsum for webdesigners ||
Férias de baixo custo. Viaje sem gastar muito dinheiro

WEB

33 artistic Sites
The FWa: Favourite Website awards – Web awards at the cutting edge

magazines online

Interview Magazine
The Latest Music News, Reviews, Videos, Downloads, Gig Tickets, Fashion and Features | Clash Music

good stuff

TRIaNGLE TRIaNGLE
17 creative websites to bookmark (unless you are dumb)! – BOOOOOOOM! – CREaTE * INSPIRE * COMMUNITY * aRT * DESIGN * MUSIC * FILM * PHOTO * PROJECTS
my love for you is a stampede of horses.
The Strange attractor
Graphic Design and typography – Swiss Legacy

BRINDES

Publibranco – Marketing & Publicidade, lda. DESDE 1995 – Vários
| 4GIFT |
.:: ENERRE ::.
Proglobal – Pesquisa
NoBrinde – Brindes Promocionais, Merchandising, Roupa Institucional e Publicidade – Pesquisa

bancos imagem

BLUE VERTIGO | Web Design Resources Links | Last update JUN.02.2009
Stock Images – Royalty-Free Stock Photography Images and Photos at Jupiterimages
Stock photography, Editorial Photos, Iconic Images, Motion: Corbis
stock.xchng – the leading free stock photography site
Stock Photography: Search Royalty Free Images & Photos
Stock Photos | Shutterstock: Royalty-Free Subscription Stock Photography & Vector art
Stock Images – Royalty-Free Stock Photography Images and Photos at Jupiterimages

Um bem haja a todos e bom código..

PS: Sim era designer…

2009
11.05

No outro dia recebi o seguinte email:

PARA GANHAR DINHEIRO – LER URGENTE! NAO DEITAR FORA

Olá a todos

Sou advogada, Susana Cruz, e conheço a lei. Não menosprezem a validade desta informação, isto é real.’

A AOL e a INTEL cumprirão a sua promessa pois têm medo de serem processados e pagar posteriormente indemnizações multimilionárias como no recente caso da PEPSI COLA contra a GENERAL ELECTRIC.
Aparentemente, Bill Gates está a partilhar uma porção da sua fortuna.
O MS WINDOWS continua a ser o sistema operativo mais utilizado, e isto não é mais do que um teste para a Microsoft e a AOL avaliarem isso pelo nº de envios/reenvios deste mail.

Quando reencaminhar este mail, no caso de ser um utilizador de MS Windows, a Microsoft fará um seguimento dos reenvios durante 2 semanas.
Quer isto dizer, que por cada pessoa que reenviar este mail, a Microsoft pagar-vos-á 245EUR independentemente do emissor; mais, por cada pessoa que reencaminhe o mail após vocês lho terem enviado, a Microsoft pagar-vos-á 243EUR. Após a 3ª pessoa que receber o mail, a Microsoft pagar-vos-á 241EUR.
Em duas semanas, a Microsoft entrará em contacto convosco para confirmação de endereço postal e envio do cheque.’

Ela ainda acrescenta: (LEIAM!)

Eu julgava que isto era uma burla, mas duas semanas após ter recebido e reencaminhado este mail, fui contactada pela Microsoft para dar o meu endereço. Recebi um cheque no montante de 24800EUR.’ (?!!)

Deve responder antes que este teste termine, pois se alguém se pode permitir isto é bem o Bill Gates. Para ele, trata-se de uma despesa de comercialização/marketing.

Provavelmente, não cooperaríamos com eles se não houvesse qualquer compensação…

Ela conta ainda que a namorada do irmão recebeu um cheque de 4324,44EUR;

A tia de uns amigos que trabalha na Intel recebeu mais ou menos o mesmo 4543,23EUR.

Diz ainda: Como vos disse, conheço bem a lei e isto é real. A INTEL e a AOL estão a negociar uma fusão para tornarem-se na companhia mais abrangente do mundo e certificarem-se da continuidade como o sistema operativo mais utilizado.

Este teste é uma experiência da INTEL e da AOL.’

Susana Cruz
Departamento de Operações
ESAF – Espírito Santo Activos Financeiros
Av. Álvares Cabral, 41
1250 – 015 Lisboa – Portugal

O que eu acho incrível é que foi uma licenciada em Eng. Electrotécnica que me mandou isto…. e já estão a ver como é que vem um email destes, as duas primeiras páginas do email, tinha toda a gente para quem isto foi enviado… se ainda se venderem emails para spam, se calhar até ganhava alguma coisa com isto…

Quem criou este email também não foi muito inteligente… ora vejamos… a tipa que supostamente enviou este email é advogada.. e está sempre a dizer:

…conheço bem a lei e isto é real…

Ó santa pachorra, mas o que é que isto tem a ver? Se em vez disso, disse-se que era Engenheira Informática se calhar as coisas corriam bem melhor…

O que é estranho, é que há montes de gente que ainda acredita nestas bodegas.. quando é que raio é que o Português burro, vai aprender que ninguém dá nada a ninguém? Principalmente a Microsoft…

Um bem haja a todos e bom código..

2009
10.28

Para os mais distraídos, e para os que não sabem, eu sou o orgulhoso autor ( ou não ) de três blogs ( ordenados cronologicamente ):

  1. http://www.mundodotio.com
  2. http://diariodevoo.mundodotio.com
  3. http://programming.mundodotio.com

Até aqui tudo bem, mas o motor ( à falta de melhor palavra ) de blogs que uso é o WordPress, que está alojado num ISP, numa conta gerida por mim.

Até aqui continua tudo bem, o problema ( que é só do meu lado ), é que o WordPress é actualizado regularmente, como acho muito bem ( quem me dera a mim que todo o software tivesse tantas actualizações ao longo do ano ).

Mas tenho 3 instalações de WordPress distintas, e isto porque o WordPress original não permite vários blogs.

Antes de ter criado o “Diário de Voo“, ainda andei a ver se me safava com as categorias do WordPress e usava só o “Mundo do Tio“, ou seja pensei em algo do género, na homepage tinha todos os posts ao molho, e depois teria no menu, vários links que iam dar às várias categorias, “Diário de Voo“, “Programming @ Mundo do Tio“, etc etc…

Só que não gostei nada dessa maneira de trabalhar, então decidi criar sub-domínios, e em cada um deles criava uma instância do WordPress.

O problema começou a surgir, quando começaram a sair actualizações para o WordPress, e como já eram dois blogues, ó paciência para estar a fazer update aos dois blogues. Imaginem agora com três. Ora eu como bom programador ( ou assim gosto de me ver ), o que chateia mais é perder tempo em tarefas repetitivas ( é fazer backup dos ficheiros dos três blogues, depois fazer backup da base de dados de cada blog, depois fazer o update, ver se está tudo a trabalhar, e pronto )… não se perde muito tempo é verdade, mas porquê estar a perder tempo com isto, era bem melhor se só tivesse que actualizar um sítio e pronto não era?

Entretanto a semana passada andei à procura de uma solução para isto, uma maneira de ter três blogues numa só instância do WordPress. E apareceu-me o WordPress MU.

Fiquei todo feliz e contente, porque isto faz exactamente o que eu pretendo. Lá saquei a última versão e toca de testar aqui no servidor de casa a ver como é que isto é.. lá fiz dois ou três testes ( coisa pouca ), e vi que até não era mau de todo…deu uns quantos erros ( porque não tenho nenhum domínio registado a apontar cá para casa )…

Mas antes de me atirar de cabeça, e começar a fazer backups de tudo e deitar abaixo os três blogues, pondo uma bela de uma mira técnica, decidi investigar mais um pouco..

E resultados perguntam vocês, primeiro ninguém sabe qual é o futuro do WordPress MU, uns dizem que vai se fundir com o WordPress normal ( ou seja o WordPress normal vai herdar funcionalidade do WordPress MU ), outros dizem que vai ser descontinuado, e parece que bastantes “plugins“, não trabalham correctamente com o WordPress MU devido às tabelas que são criadas… é uma salganhada onde ninguém se entende… mas que as funcionalidades das novas versões do WordPress vão sendo incorporadas no WordPress MU, lá isso são..

Explicando o modo de funcionamento do WordPress MU muito sucintamente, o que ele faz para gerir vários blogs é basicamente criar tabelas diferentes para cada blog. Ou seja em vez de termos uma única tabela na base de dados com o nome “wp_posts”, temos várias tabelas do tipo: “wp_posts_1″, “wp_posts_2″, etc etc.. Ora se um dos “plugins” usa a tabela “wp_posts“, temos pena, vai deixar de trabalhar imediatamente, porque não a encontra. Imaginem um “plugin“, que vê quais são os posts mais populares contando o número de comentários de cada um, também deixa de trabalhar porque não encontra a tabela dos comentários..e por aí adiante…

Outra das limitações que descobri, embora não tenha a certeza que ela exista ou não, é que acho que não dá para ter um blog no domínio principal, ou seja no meu caso, quando alguém digitasse o caminho para o Mundo do Tio, o WordPress MU, teria que mostrar logo este blog tal e qual como ele é… o que acho que não é possível, mas falta-me testar para ter a certeza..

Ou seja, por enquanto desisti de instalar o WordPress MU em produção, por enquanto vai-se manter em stand-by, mas mais tarde ou mais cedo hei-de pegar nele, a ver se o consigo tornar em algo fazível, que isto de andar a fazer actualizações ao WordPress é chato como tudo.

Um bem haja a todos e bom código…

2009
10.16

Eu sou um programador!

O meu talento, é programar, bater linhas de código, arranjar soluções para um problema.

Não é, e repito, não é, fazer manuais com toda a sua parafernália de “printscreens” e companhias.

É um desperdício de recursos, eu estar a fazer “printscreens” com setinhas.

É um desperdício de tempo, estar a fazer “printscreens” do Google Analytics em Português e em Inglês. Basta ser apenas uma língua. O cliente sabe falar inglês.

Eu sou um programador! Não posso desperdiçar o meu valioso tempo com isto.

Eu sou um programador!

2009
09.27

Na 5º feira estive a falar com um amigo meu, que também é freelancer no mundo da programação..

Então contou-me que foi apresentar um orçamento a um cliente, e que este lhe tinha dado uma tareia das antigas, porque os orçamentos que ele estava a dar eram completamente irreais e muito acima dos valores que pretendiam..

Ora então lá começou o cliente a explicar porquê… é que pelos vistos existe uma empresa em PT que faz sites por cerca de 300€ mais IVA, com gestor de conteúdos!

Sites por 300€, deve estar tudo doido.. só pode..como é que eles pagam aos programadores que lá têm? Até que fui ver mais informações sobre esta empresa ( da qual eu não vou dizer o nome por diversas razões.. )

Então um dos planos que eles lá têm é 295€ ( + IVA ) pela configuração do site e por adaptarem o layout existente ao logotipo do cliente, e anualmente ainda têm que pagar no mínimo 194€ ( + IVA ), estes 194€ ( + IVA ) é o alojamento e sabe-se lá mais o quê…

E o que é que isto dá direito? Dá direito a 15 páginas, a estatísticas ( que só diz quantas visitas é que a página teve ) e também a um CMS…

Ora se aquilo é um CMS eu sou o pai natal! ( verdade seja dita que só me falta as barbas brancas e treinar o Ho! Ho! Ho! )

O gestor de CMS é composto, apenas pelo KtmlEditor, que é um produto da Adobe que já foi descontinuado sabe lá Deus quando.. e por mais nada! E depois cobram valores absurdos por pequenas coisas, um banner em Flash é 150€ ( + IVA )… repararam que o CMS é apenas um editor do tipo WYSIWYG… em que terra é que isto é um CMS?

Mas realmente o que interessa é que os gajos se andam a safar… têm uma solução mais que simples que serve a muita a gente..

Mas para mim cada cliente é um cliente, e não pode ser tudo corrido pela mesma moeda que é o que eles fazem… mas também há que ver que o que eu faço é mais consultadoria do que outra coisa.. eu arranjo soluções para aquilo que os clientes pedem..

Um bem haja a todos e bom código..

PS: Tenho de pensar numa solução destas, só que ainda mais barata, sei lá 150€ + IVA…que tal uma empresa ter um site na net, por apenas 150€…parece-me bastante bem…

2009
09.08

Não, não foi um erro ao escrever o título ( não vá vocês pensarem que estava a falar do filme “48 horas”..

Estas 38 horas, foi o número de horas que tive acordado desde domingo até ontem ( segunda-feira ), sim fiz directa de domingo para segunda…

Isto devido ao trabalho que estava uma loucura, e era preciso acabar esta fase até ontem…então foi quase toda a gente trabalhar..

Então tivémos no escritório no sábado das 11 até às 5 da manhã ( mais coisa menos coisa ), e no domingo a malta foi toda para lá às 11 da manhã, e eu apareci lá eram 8 da noite ( tive almoçarada com a famelga cá em casa… )

Nunca tinha feito uma directa a trabalhar.. já tinha ficado até às 3 ou 4 da manhã.. mas nunca tinho sido de um dia a outro..

O que foi interessante no mínimo..

Quando cheguei lá, estava completamente a morrer, ainda estava de barriga cheia do almoço, e como tinha dormido pouco de sábado para domingo ( cerca de 5 horas )..

Chega às 3/ 4 da manhã, e começo a beber café…bebi para aí 4 cafés em 4 hora… eram 6 da matina estava cá com uma pica que até metia medo… tudo cheio da sono, e eu a bombar em T-SQL como se não houvesse dia seguinte.. ( eu há 2 anos que não bebo café regularmente, só quando saio para os copos ou coisa parecida… )…

Durante o dia de segunda-feira, tive algumas quebras, principalmente quando estava parado, como se costuma dizer, “parar é morrer”.. mas sempre que estava a bater código ou outra coisa qualquer..estava-se bastante bem… acabei por sair de lá ontem eram 23 e 30 ( mais ou menos ), foi chegar a casa, comer, fumar um cigarrito e ir dormir..com isto tudo era 1 da manhã..

E hoje acordei eram 13 horas e estive bem pior hoje o dia todo que ontem… até agora estou completamente a morrer…e não tarda nada vou é roncar..

Um bem haja a todos e bom código..

2009
09.04

Cheguei há cerca de 1 hora a casa, depois de mais um dia de trabalho de 12 horas… ( estas últimas 3 semanas têm sido uma constante… )

Entretanto recebi um mail da Net empregos, e decidi ir ver o que havia para aí no mercado.. só mesmo naquela para andar informado..

Houve um anúncio que me chamou à atenção:

Empresa em vias de expansão no mercado internacional procura:

Perfil do candidato:
Boa cultura visual
Experiência em PHP / MySQL / xHTML / CSS / AJAX / XML
Experiência em e-commerce, bases de dados, backoffice, etc…
Disponibilidade imediata para trabalho em full-time durante 2 meses com possibilidade de continuação
Espírito inovador e pró-activo

Preferência aos candidatos:
Zona de Lisboa e arredores

Oferecemos:
Integração em equipa dinâmica
Bom ambiente de trabalho
800-1000 euros líquidos

Local de Trabalho: Home sweet Home

Ou seja, tem de ter experiência, e para saber aquilo tudo não chega só um ano ( porque um gajo não nasce ensinado )….e depois oferecem um excelente ordenado..entre os 800€ e os 1000€ líquidos…é que está aqui um ordenado que é um espectáculo, para além disso, só temos a garantia de 2 meses de trabalho, depois logo se verá.. se eu andasse à procura nem desperdiçava o meu tempo com esta gente..

No entanto há alguns anúncios que são simplesmente lindos, ora vejam este:

Grupo de Webgeeks procura Geek para adoptar, no Porto

És um geek? Não podes viver sem a net? Os teus melhores amigos vivem do outro lado do mundo e só os conheces pelo nick dos fóruns?

PHP é o teu nome do meio? Comes bases de dados com milhões de registos ao pequeno almoço?

Se tens mais de 18 anos e correspondes a este perfil candidata-te. Se não correspondes ao perfil, o melhor é procurares um emprego. Este lugar não é para ti.

Simples, conciso, eficiente… nada daquelas tangas de “Renumeração equivalente com a experiência mostrada”, nem nada do género… só pelo anúncio gostava de ir trabalhar para lá…

O que é giro é que praticamente todos os anúncios que se vêm têm sempre o tradicional: “Capacidade de trabalhar em equipa”, “Excelente capacidade de comunicação” etc etc etc… esta gente não sabe variar..

Um bem haja a todos e bom código…

2009
09.03

A Microsoft lançou uma campanha que dá comida a 8 sem abrigo, quando uma pessoa faz download do IE8…

Isto no mínimo é bastante rebuscado… e porquê 8? Porque não 10? Mas se com esta campanha, eles conseguirem que uns quantos milhões de pessoas façam upgrade para o IE8, já fico super contente..

Podem ver o site aqui: Browser for the better..

Browser for the better

Uma dica, carreguem no lado direito onde diz “Better Browser”, para verem uns vídeos que é só rir..

Ora aí está uma boa campanha…quase que me convenciam a usar apenas o IE8 como browser.. ou não… estou simplesmente fascinado com o Google Chrome.. mas faltam-lhe os plugins que uso no Firefox…só depois de os ter é que me mudo para o Chrome..

E uma coisa interessante, se abrirem o site no Chrome, primeiro vêem logo que o fundo não se adapta ao ecrã totalmente… e começa a tocar uma música que ou será irritante ou de partir o coco a rir…brincadeira da Microsoft em relação ao Chrome?

Edit: Afinal é um bug, ou no código deles ou no Chrome, porque a música é de um vídeo que está no site, que no Firefox só começa a tocar quando se carrega no link apropriado, mas no Chrome arranca logo a tocar.. ups..

Ficam aqui com um dos vídeos que não consegui ver no site deles:

Um bem haja a todos e bom código..

2009
09.03

Para aqueles que não conhecem o Kentico CMS, aconselho a darem uma olhadela à homepage deles, considero-o um bom CMS ( tendo em conta aquilo com que já trabalhei, Joomla e Mambo, que para mim são péssimos… )…

Têm várias versões de licenciamento do software, mas a meu ver são bastante irreais para o mercado português, então para a comunidade freelancer ainda pior, no entanto têm uma versão free, mas que têm uma condição.. da qual eu não gosto nada, para podermos usar a versão free temos de por o “branding” deles em todas as páginas que são geridas pelo CMS, não acredito que seja fácil vender isto a um cliente…

Mas no final, considero que é um excelente CMS, e na última versão que testei ( versão 4.0 ), está mesmo muito bom… já saiu a versão 4.1 ( no mês passado senão estou em erro )…

Mas voltando ao que me fez criar um post..

Ontem e hoje, estive à luta com um CMS:Repeater ( controlo do Kentico, basicamente fizeram um “extend” ao Repeater do .Net ) e com o CMS:TemplateDataPager…

Já tinha usado esta combinação 2 dias antes, e não tive problemas, só que tinha usado através de webpart’s clonadas ( clonei a webpart do Kentico CMS:Repeater ), desliguei o DataBindingByDefault e o EnablePagging do CMS:Repeater e problema resolvido, foi só afectar o TemplateDataPager com o DataSource do CMS:Repeater e problema resolvido…

Vendo o exemplo deles, é bastante fácil de o fazer:

Página:

<table style="border: solid 1px #CCCCCC; margin-left: auto; margin-right: auto;">
    <tr>
        <td style="border-bottom: solid 1px #CCCCCC; padding: 10px; text-align: center;">
            <cc1:cmsrepeater id="CMSRepeater1" runat="server" path="/%" classnames="CMS.Product"
                transformationname="CMS.Product.preview">
            </cc1:cmsrepeater>
        </td>
    </tr>
    <tr>
        <td style="padding: 10px; background-color: #D9D9D9;">
            <cc1:templatedatapager id="TemplateDataPager1" runat="server">
                <NumberTemplate>
                    <a href="?Page=<%# Eval("PageNumber")  %>"><%# Eval("PageNumber")  %></a>
                </NumberTemplate>
                <SelectedNumberTemplate>
                    <b><%# Eval("PageNumber")  %></b>
                </SelectedNumberTemplate>
                <SeparatorTemplate>
                    -
                </SeparatorTemplate>
                <FirstItemTemplate>
                    <a href="?Page=1">First</a>&nbsp;|&nbsp;
                </FirstItemTemplate>
                <LastItemTemplate>
                    &nbsp;|&nbsp;<a href="?Page=<%# pageCount %>">Last</a>
                </LastItemTemplate>
                <PreviousItemTemplate>
                    <a href="?Page=<%# previousPage %>">Previous</a> &nbsp;|&nbsp;
                </PreviousItemTemplate>
                <NextItemTemplate>
                    &nbsp;|&nbsp; <a href="?Page=<%# nextPage %>">Next</a>
                </NextItemTemplate>
            </cc1:templatedatapager>
        </td>
    </tr>
</table>

Code behind:

using CMS.GlobalHelper;
public partial class CMSControlsExamples_TemplatedDataPager : ControlsExamplesPage
{
    public string pageCount = "1";
    public string previousPage = "1";
    public string nextPage = "";

    ///
    /// OnInit override
    ///
    ///
    protected override void OnInit(EventArgs e)
    {
        // Disable repeater pager and databindbydefault
        CMSRepeater1.EnablePaging = false;
        CMSRepeater1.DataBindByDefault = false;
        base.OnInit(e);
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        // Get repeater datasource
        TemplateDataPager1.DataSource = CMSRepeater1.DataSource;
        // Set page size
        TemplateDataPager1.PageSize = 1;
        // Set current page from query string
        TemplateDataPager1.CurrentPage = ValidationHelper.GetInteger(Request.QueryString["Page"], 1);
        // Get page number for last link
        pageCount = ((int)(TemplateDataPager1.PageCount - 1)).ToString();
        // Set default next page link
        nextPage = pageCount;
        // Set previous link
        if ((TemplateDataPager1.CurrentPage - 1) >= 1)
        {
            previousPage = ((int)(TemplateDataPager1.CurrentPage - 1)).ToString();
        }
        // Set next link
        if ((TemplateDataPager1.CurrentPage + 1) <= (TemplateDataPager1.PageCount - 1))
        {
            nextPage = ((int)(TemplateDataPager1.CurrentPage + 1)).ToString();
        }
        // Set paged datasource to the repeater and databind it
        CMSRepeater1.DataSource = TemplateDataPager1.PagedData;
        if (!DataHelper.DataSourceIsEmpty(CMSRepeater1.DataSource))
        {
            CMSRepeater1.DataBind();
        }
    }
}

Até aqui sem problemas, consegui-o usar sem acontecer nada, o problema surgiu foi quando tentei afectar o CMS:Repeater com um DataSource vindo de uma query, tentei de várias maneiras afectar o DataSource do CMS:TemplateDataPager, que o DataSource ficava sempre a vazio, apesar de a query estar a retornar 38000 resultados.

Estava a usar mais ou menos este código ( na realidade tenho as chamadas à base de dados encapsuladas com tratamento de excepções):

protected void Page_Load(object sender, EventArgs e)
{
    GeneralConnection cn = new GeneralConnection();
    DataSet ds = null;
    object[,] parameters = new object[1, 3];
    parameters[0, 0] = "@UserName";
    parameters[0, 1] = "johns";
    CMSRepeater1.DataSource = cn.ExecuteQuery("cms.user.selectbyname", parameters).Tables[0];
    // Get repeater datasource
    TemplateDataPager1.DataSource = CMSRepeater1.DataSource;
    // Set page size
    TemplateDataPager1.PageSize = 1;
    // Set current page from query string
    TemplateDataPager1.CurrentPage = ValidationHelper.GetInteger(Request.QueryString["Page"], 1);
    // Get page number for last link
    pageCount = ((int)(TemplateDataPager1.PageCount - 1)).ToString();
    // Set default next page link
    nextPage = pageCount;
    // Set previous link
    if ((TemplateDataPager1.CurrentPage - 1) >= 1)
    {
        previousPage = ((int)(TemplateDataPager1.CurrentPage - 1)).ToString();
    }
    // Set next link
    if ((TemplateDataPager1.CurrentPage + 1) <= (TemplateDataPager1.PageCount - 1))
    {
        nextPage = ((int)(TemplateDataPager1.CurrentPage + 1)).ToString();
    }
    // Set paged datasource to the repeater and databind it
    CMSRepeater1.DataSource = TemplateDataPager1.PagedData;
    if (!DataHelper.DataSourceIsEmpty(CMSRepeater1.DataSource))
    {
        CMSRepeater1.DataBind();
    }
}

Este código não faz absolutamente nada, ou melhor até faz, a query à base de dados é efectuada correctamente, retorna resultados, só que quando se afecta a DataSource do TemplateDataPager, esta ficava sempre a null…

E qual era o problema, é que pelos vistos quando afectava a DataSource do CMS:Repeater, a DataSource ficava com o tipo DataTable, até aqui tudo bem, se eu comentasse o CMS:TemplateDataPager, o CMS:Repeater era preenchido, o transform efectuado e tudo aparecia às mil maravilhas..

O que acontece é que o DataSource do CMS:TemplateDataPager tem de ser um DataView, em vez do DataTable..coisa simples não é?

Clonando a webpart deles, nunca afectamos directamente o DataSource do CMS:Repeater, este é afectado por eles, e o DataSource fica sempre com DataView, quer seja um CMS:Queryrepeater, quer seja um CMS:Repeater… por isso é que o erro não foi detectado nas webpart’s que tinha clonado anteriormente…

Após ter alterado o código para:

protected void Page_Load(object sender, EventArgs e)
{
    GeneralConnection cn = new GeneralConnection();
    DataSet ds = null;
    object[,] parameters = new object[1, 3];
    parameters[0, 0] = "@UserName";
    parameters[0, 1] = "johns";
    CMSRepeater1.DataSource = cn.ExecuteQuery("cms.user.selectbyname", parameters).Tables[0].DefaultView;
    // Get repeater datasource
    TemplateDataPager1.DataSource = CMSRepeater1.DataSource;
    // Set page size
    TemplateDataPager1.PageSize = 1;
    // Set current page from query string
    TemplateDataPager1.CurrentPage = ValidationHelper.GetInteger(Request.QueryString["Page"], 1);
    // Get page number for last link
    pageCount = ((int)(TemplateDataPager1.PageCount - 1)).ToString();
    // Set default next page link
    nextPage = pageCount;
    // Set previous link
    if ((TemplateDataPager1.CurrentPage - 1) >= 1)
    {
        previousPage = ((int)(TemplateDataPager1.CurrentPage - 1)).ToString();
    }
    // Set next link
    if ((TemplateDataPager1.CurrentPage + 1) <= (TemplateDataPager1.PageCount - 1))
    {
        nextPage = ((int)(TemplateDataPager1.CurrentPage + 1)).ToString();
    }
    // Set paged datasource to the repeater and databind it
    CMSRepeater1.DataSource = TemplateDataPager1.PagedData;
    if (!DataHelper.DataSourceIsEmpty(CMSRepeater1.DataSource))
    {
        CMSRepeater1.DataBind();
    }
}

Ficou tudo a funcionar às mil maravilhas..

Nem imaginam as voltas que dei para encontrar esta solução, estava difícil mas consegui..

Um bem haja a todos e bom código..