Os 15 ataques mais comuns em 2009, segundo a Verizon

  1. Keylogging e spyware. Formas de malware que são escritas especificamente para, sub-repticiamente, recolher, observar e registar as acções das pessoas nos seus computadores;
  2. Backdoor ou command/control. Ferramentas que permitem acesso remoto e/ou controlo de computadores infectados, que são desenhadas para ‘correr’, também elas, sub-repticiamente;
  3. SQL injection. Uma técnica de ataque utilizada para explorar fragilidades na comunicação entre as páginas web, e as bases de dados que contêm a informação que suporta os sites;
  4. Abuso de autorizações de acesso/privilégios. Abuso deliberado e malicioso de recursos, acessos, ou privilégios, concedidos a um indivíduo por uma organização;
  5. Acesso não-autorizado através de credenciais predefinidas. Situações em que um atacante ganha acesso a um sistema (ou dispositivo) protegido por passwords standard, bem conhecidas, que são predefinidas por omissão;
  6. Violação de políticas de utilização aceitável, entre outras. Desrespeito e actuação, acidental ou propositada, em oposição a políticas de segurança estabelecidas;
  7. Acesso não-autorizado através de listas de controlo de acesso (ACLs) mal configuradas ou fracas. Quando as ACLs não são bem definidas, os atacantes podem ter acesso a recursos e praticar acções que não foram previstas nem autorizadas pelas suas vítimas;
  8. Packet sniffer. Observa e captura a informação em trânsito numa rede;
  9. Acesso não-autorizado através de credenciais capturadas. Situações em que um atacante ganha acesso a um sistema (ou dispositivo) protegido, utilizando credenciais válidas que foram obtidas de forma ilegítima;
  10. Engenharia social. Técnicas de manipulação através das quais um atacante cria um cenário para persuadir, manipular, e convencer uma vítima a realizar uma acção ou a divulgar informação;
  11. Transposição dos controlos de autenticação. Acesso não-autorizado a um sistema, transpondo os mecanismos normais de autenticação;
  12. Roubo. Roubo, no sentido físico, de um computador, disco, ou outro activo do sistema de informação;
  13. Ataque de ‘força bruta’. Um processo automatizado que visa testar múltiplas combinações (nome de utilizador, password) até acertar nas que são correctas;
  14. RAM scraper. Uma forma recente de malware desenhada para capturar dados na memória de um sistema; e
  15. Phishing et al. Uma forma de engenharia social em que um atacante utiliza comunicações fraudulentas (normalmente, correio electrónico), para manipular a sua vítima e convencê-la a divulgar informação (e.g. passwords).

in 2009 Supplemental Data Breach Investigations Report: An Anatomy of a Data Breach.

Fonte: Miguel Almeida

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

Ubuntu Instalar pacotes 32 Bits em sistemas 64 bits

Para forçar a instalação de um pacote 32 bits num ubuntu de 64 bits deve ser usado o seguinte comando

se a extensão do ficheiro for .bin

executar o ficheiro e ir a pasta /tmp/selfextract.xyx .

Copiar o ficheiro .deb para a pasta home e instalar da seguinte maneira

dpkg -i –force-all PacketTracer-5.2-u.i386.deb

Funciona na maioria dos casos para distribuições a 64 bits.

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

go – a nova linguagem de programação google

A Google anunciou o lançamento de uma nova linguagem de programação denominada de Go. Esta linguagem de programação está ainda em fase experimental e é open source.

A Go combina a performance e segurança de linguagens com o C ou C++ com a velocidade de desenvolvimento do Python, tornando esta linguagem de programação em algo rápido, seguro e versátil, segundo a Google. A linguagem de programação é orientada por objectos e tira partido dos vários cores dos processadores actuais. Para além disto, a empresa espera que a Go venha a substituir o Javascript nos web browsers de modo a que aplicações tais como o Gmail possam usufruir deste acrescento de velocidade na sua execução.

A equipa por detrás do desenvolvimento da Go conta com o “pedigree” de Ken Thompson (co-criador do Unix), Robert Griesemer (participou no desenvolvimento do motor de Javascript V8 do Chrome), entre outros.

Para os que estranharam o animal na imagem em cima, trata-se da mascote da Go, apelidado de Gordon, o roedor.

O site oficial da Go: http://golang.org

Fonte: webtuga

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

7 meses

windows_7

Faz hoje 7 meses que conheci uma pessoa especial que está ao meu lado, 7 meses passados com muita alegria e aventura:) espero que venham muitos mais como estes, que foram sem dúvida bem passados.

Um beijo especial para ti….

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

sapo sessions php

sapoPHP

Ontem fui a assistir a uma sessão de php

Aqui fica um pequeno resumo da sessão :

Optimização de código

Usar sempre que possivel require_once em vez de include.

Nas strings usar o explode em vez do preg_split.

Usar arrays o php trabalha bem com arrays.

Evitar gravar as sessões e cookies em ficheiros, pois o acesso ao filesystem é sempre mais lento, de preferência utilizar o memcached.

Reduzir ciclos, querys , stats, remote resquests.

Não misturar HTML no meio da lógica . HTML Deve ser HTML.

Evitar as mensagens de erro do php, warnings, notices pois se aparecem é má programação.

<– Apache –>

Directory index

Se o nosso ficheiro de index é index.php deve estar logo na 1ª linha do directory index.

A maior parte dos casos temos.. index.html,index.js, index.asp, index.htm e só no fim é que aparece o index.php

.htaccess

Se não estamos a utilizar ficheiros .htaccess desligar o mesmo do apache.

Evitar os symlinks.

Novidades do PHP 5

Namespace

Reflection

Late Static Binding

Interface

Final Class

anonymous function

clone

SPL – Standard PHP library

SOLR

DATETIME

definir um date_default (sempre que se trabalha com datas)

Timezone

Memcache(d)

PECL

SQL – PDO

DataBase access layer

Simple XML

Webservices

O auth

SOAP

Streams

- Stream filters

-Stream contexts

-Stream erros

Magic quotes

Filter sanitize

Special chars

SuhosinPATH

desactivar CURL

desactivar remote links

Mail

Banir Ficheiros / binary

Zend server

Zend platform

Zend guard

Zend studio edit (debug)

APC (op code cache)

Strace

XDebug

Webgriad

Boas Práticas

Utilizar ficheiros de config, classes, definir sempre o time zone, classe debug, classe procedure, classe log, fire php.

Smarty Templates

Quem usa ?

Zend , xcart, xoops, open

Objectivo

Separar a lógica da apresentação

Estrutura de pastas do smarty
libs
templates
templates_c
cache

As smarty templates atenuam o cross site (XSS – injecção e colocação de exploits)

Frameworks php

Log4PHP

Como usar o smarty ?

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

wallpapers de outono

Uma boa selecção de wallpapers de Outono

http://globpt.com/2009/10/17/40-wallpapers-de-outono/

Em uma Tarde de Outono

Outono. Em frente ao mar.

Escancaro as janelas
Sobre o jardim calado, e as águas miro, absorto.
Outono… Rodopiando, as folhas amarelas
Rolam, caem. Viuvez, velhice, desconforto…

Por que, belo navio, ao clarão das estrelas,
Visitaste este mar inabitado e morto,
Se logo, ao vir do vento, abriste ao vento as velas,
Se logo, ao vir da luz, abandonaste o porto?

A água cantou. Rodeava, aos beijos, os teus flancos
A espuma, desmanchada em riso e flocos brancos…
Mas chegaste com a noite, e fugiste com o sol!

E eu olho o céu deserto, e vejo o oceano triste,
E contemplo o lugar por onde te sumiste,
Banhado no clarão nascente do arrebol…

Olavo Bilac, in “Poesias”

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

tooltip

como agora os balões andam muito na moda, deixo aqui umas dicas :=)


qTip http://craigsworks.com/projects/qtip/demos/

JQuery

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

CSS Differences in Internet Explorer 6, 7 and 8

One of the most bizarre statistical facts in relation to browser use has to be the virtual widespread numbers that currently exist in the use of Internet Explorer versions 6, 7 and 8. As of this writing, Internet Explorer holds about a 65% market share combined across all their currently used browsers. In the web development community, this number is much lower, showing about a 40% share.

Screenshot

The interesting part of those statistics is that the numbers across IE6, IE7, and IE8 are very close, preventing a single Microsoft browser from dominating browser stats — contrary to what has been the trend in the past. Due to these unfortunate statistics, it is imperative that developers do thorough testing in all currently-used Internet Explorer browsers when working on websites for clients, and on personal projects that target a broader audience.

Thanks to the many available JavaScript libraries, JavaScript testing across different browsers has become as close to perfect as the current situation will allow. But this is not true in CSS development, particularly in relation to the three currently used versions of Internet Explorer.

This article will attempt to provide an exhaustive, easy-to-use reference for developers desiring to know the differences in CSS support for IE6, IE7 and IE8. This reference contains brief descriptions and compatibility for:

  • Any item that is supported by one of the three browser versions, but not the other two
  • Any item that is supported by two of the three browser versions, but not the other one

This article does not discuss:

  • Any item that is not supported by any of the three browser versions
  • Proprietary or vendor-specific CSS

Therefore, the focus is on differences in the three, not necessarily lack of support. The list is divided into five sections:

Selectors & Inheritance

Child Selectors

Example
body>p {
	color: #fff;
}
Description

The child selector selects all elements that are immediate children of a specified parent element. In the example above, body is the parent, and p is the child.

Support
IE6
No
IE7
Yes
IE8
Yes
Bugs

In IE7, the child selector will not work if there is an HTML comment between the parent item and the child.

Chained Classes

Example
.class1.class2.class3 {
	background: #fff;
}
Description

Chained classes are used when the same HTML element has multiple classes declared, like this:

<div>
<p>Content here.</p>
</div>
Support
IE6
No
IE7
Yes
IE8
Yes
Bugs

IE6 appears to support this property, because it matches the last class in the chain to an element having that class, however, it does not restrict the class to an element that has all the classes in the chain, like it should.

Attribute Selectors

Example
a[href] {
	color: #0f0;
}
Description

This selector allows an element to be targeted only if it has the specified attribute. In the example above, all anchor tags that have href attributes would qualify, but not anchor tags that did not have href attributes.

Support
IE6
No
IE7
Yes
IE8
Yes

Adjacent Sibling Selectors

Example
h1+p {
	color: #f00;
}
Description

This selector targets siblings that are adjacent to the specified element. The example above would target all paragraph tags that are siblings of, and come directly after, primary heading tags. For example:

<h1>heading</h1>
<p>Content here.</p>
<p>Content here.</p>

In the code above, the CSS styles specified would target only the first paragraph, because it is a sibling to the <h1> tag and is adjacent. The second paragraph is a sibling, but is not adjacent.

Support
IE6
No
IE7
Yes
IE8
Yes
Bugs

In IE7, the adjacent sibling selector will not work if there is an HTML comment between the siblings.

General Sibling Selectors

Example
h1~p {
	color: #f00;
}
Description

This selector targets all siblings that appear after a specified element. Applying this selector to the HTML example given in the previous section will select both paragraph tags, however, if one of the paragraphs appeared before the heading, that paragraph would not be targeted.

Support
IE6
No
IE7
Yes
IE8
Yes

Pseudo-Classes and Pseudo-Elements

Descendant Selector After :hover Pseudo-Class

Example
a:hover span {
	color: #0f0;
}
Description

An element can be targeted with a selector after a :hover pseudo class, similar to how any descendant selector works. The above example would change the font color inside all <span> elements inside of anchor elements while the anchor is hovered over.

Support
IE6
No
IE7
Yes
IE8
Yes

Chained Pseudo-Classes

Example
a:first-child:hover {
	color: #0f0;
}
Description

Pseudo-classes can be chained to narrow element selection. The above example would target every anchor tag that is the first child of its parent and apply a hover class to it.

Support
IE6
No
IE7
Yes
IE8
Yes

:hover on Non-Anchor Elements

Example
div:hover {
	color: #f00;
}
Description

The :hover pseudo-class can apply a hover, or rollover state, to any element, not just anchor tags.

Support
IE6
No
IE7
Yes
IE8
Yes

:first-child Pseudo-Class

Example
div li:first-child {
	background: blue;
}
Description

This pseudo-class targets each specified element that is the first child of its parent.

Support
IE6
No
IE7
Yes
IE8
Yes
Bugs

In IE7, the first-child pseudo-class will not work if an HTML comment appears before the targeted first child element.

:focus Pseudo-Class

Example
a:focus {
	border: solid 1px red;
}
Description

This pseudo-class targets any element that has keyboard focus.

Support
IE6
No
IE7
No
IE8
Yes

:before and :after Pseudo-Elements

Example
#box:before {
	content: "This text is before the box";
}

#box:after {
	content: "This text is after the box";
}
Description

This pseudo-element places generated content before or after the specified element, used in conjunction with the content property.

Support
IE6
No
IE7
No
IE8
Yes

Property Support

Virtual Dimensions Determined by Position

Example
#box {
	position: absolute;
	top: 0;
	right: 100px;
	left: 0;
	bottom: 200px;
	background: blue;
}
Description

Specifying top, right, bottom, and left values for an absolutely positioned element will give the element “virtual” dimensions (width and height), even if width and height are not specified.

Support
IE6
No
IE7
Yes
IE8
Yes

Min-Height & Min-Width

Example
#box {
	min-height: 500px;
	min-width: 300px;
}
Description

These properties specify minimum values for either height or width, allowing a box to be larger, but not smaller, than the specified minimum values. They can be used together or individually.

Support
IE6
No
IE7
Yes
IE8
Yes

Max-Height & Max-Width

Example
#box {
	max-height: 500px;
	max-width: 300px;
}
Description

These properties specify maximum values for either height or width, allowing a box to be smaller, but not larger, than the specified minimum values. They can be used together or individually.

Support
IE6
No
IE7
Yes
IE8
Yes

Transparent Border Color

Example
#box {
	border: solid 1px transparent;
}
Description

A transparent border color allows a border to occupy the same space as would be occupied if the border was visible, or opaque.

Support
IE6
No
IE7
Yes
IE8
Yes

Fixed-Position Elements

Example
#box {
	position: fixed;
}
Description

This value for the position property allows an element to be positioned absolutely relative to the viewport.

Support
IE6
No
IE7
Yes
IE8
Yes

Fixed-Position Background Relative to Viewport

Example
#box {
	background-image: url(images/bg.jpg);
	background-position: 0 0;
	background-attachment: fixed;
}
Description

A fixed value for the background-attachment property allows a background image to be positioned absolutely relative to the viewport.

Support
IE6
No
IE7
Yes
IE8
Yes
Bugs

IE6 incorrectly fixes the background image in relation to the containing parent of the element that has the background set, therefore this value only works in IE6 when its used on the root element.

Property Value “inherit”

Example
#box {
	display: inherit;
}
Description

Applying the value inherit to a property allows an element to inherit the computed value for that property from its containing element.

Support
IE6
No
IE7
No
IE8
Yes
Bugs

IE6 and IE7 do not support the value inherit except when applied to the direction and visibility properties.

Border Spacing on Table Cells

Example
table td {
	border-spacing: 3px;
}
Description

This property sets the spacing between the borders of adjacent table cells.

Support
IE6
No
IE7
No
IE8
Yes

Rendering of Empty Cells in Tables

Example
table {
	empty-cells: show;
}
Description

This property, which only applies to elements that have their display property set to table-cell, allows empty cells to be rendered with their borders and backgrounds, or else hidden.

Support
IE6
No
IE7
No
IE8
Yes

Vertical Position of a Table Caption

Example
table {
	caption-side: bottom;
}
Description

This property allows a table caption to appear at the bottom of a table, instead at the top, which is the default.

Support
IE6
No
IE7
No
IE8
Yes

Clipping Regions

Example
#box {
	rect(20px, 300px, 200px, 100px)
}
Description

This property specifies an area of a box that is visible, making the rest “clipped”, or invisible.

Support
IE6
No
IE7
No
IE8
Yes
Bugs

Interestingly, this property works in IE6 and IE7 if the deprecated comma-less syntax is used (i.e. whitespace between the clipping values instead of commas)

Orphaned and Widowed Text in Printed Pages

Example
p {
	orphans: 4;
}

p {
	widows: 4;
}
Description

The orphans property specifies the minimum number of lines to display at the bottom of a printed page. The widows property specifies the minimum number of lines to display at the top of a printed page.

Support
IE6
No
IE7
No
IE8
Yes

Page Breaks Inside Boxes

Example
#box {
	page-break-inside: avoid;
}
Description

This property specifies whether a page break should occur inside of a specified element or not.

Support
IE6
No
IE7
No
IE8
Yes

Outline Properties

Example
#box {
	outline: solid 1px red;
}
Description

outline is the shorthand property that encompasses outline-style, outline-width, and outline-color. This property is preferable to the border property since it does not affect document flow, thus better aiding debugging of layout issues.

Support
IE6
No
IE7
No
IE8
Yes

Alternative Values for the Display Property

Example
#box {
	display: inline-block;
}
Description

The display property is usually set to block, inline, or none. Alternative values include:

  • inline-block
  • inline-table
  • list-item
  • run-in
  • table
  • table-caption
  • table-cell
  • table-column
  • table-column-group
  • table-footer-group
  • table-header-group
  • table-row
  • table-row-group
Support
IE6
No
IE7
No
IE8
Yes

Handling of Collapsible Whitespace

Example
p {
	white-space: pre-line;
}

div {
	white-space: pre-wrap;
}
Description

The pre-line value for the white-space property specifies that multiple whitespace elements collapse into a single space, while allowing explicitly set line breaks. The pre-wrap value for the white-space property specifies that multiple whitespace elements do not collapse into a single space, while allowing explicitly set line breaks.

Support
IE6
No
IE7
No
IE8
Yes

Other Miscellaneous Techniques

Media Types for @import

Example
@import url("styles.css") screen;
Description

A media type for an imported style sheet is declared after the location of the style sheet, as in the example above. In this example, the media type is “screen”.

Support
IE6
No
IE7
No
IE8
Yes
Bugs

Although IE6 and IE7 support @import, they fail when a media type is specified, causing the entire @import rule to be ignored.

Incrementing of Counter Values

Example
h2 {
	counter-increment: headers;
}

h2:before {
	content: counter(headers) ". ";
}
Description

This CSS technique allows auto-incrementing numbers to appear before specified elements, and is used in conjunction with the before pseudo-element.

Support
IE6
No
IE7
No
IE8
Yes

Quote Characters for Generated Content

Example
q {
	quotes: "'" "'";
}

q:before {
	content: open-quote;
}

q:after {
	content: close-quote;
}
Description

Specifies the quote characters to use for generated content applied to the q (quotation) tag.

Support
IE6
No
IE7
No
IE8
Yes

Significant Bugs and Incompatibilities

Following is a brief description of various bugs that occur in IE6 and IE7 that are not described or alluded to above. This list does not include items that lack support in all three browsers.

IE6 Bugs

  • Doesn’t support styling of the <abbr> element
  • Doesn’t support classes and IDs that begin with a hyphen or underscore
  • <select> elements always appear at the top of the stack, unaffected by z-index values
  • :hover pseudo-class values are ignored if anchor pseudo-classes are not in the correct order (:link, :visited, :hover)
  • An !important declaration on a property is overridden by a 2nd declaration of the same property in the same rule set that doesn’t use !important
  • height behaves like min-height
  • width behaves like min-width
  • Left and right margins are doubled on floated elements that touch their parents’ side edges
  • Dotted borders appear identical to dashed borders
  • line-through value for text-decoration property appears higher on the text than on other browsers
  • List items for an ordered list that have a layout will not increment their numbers, leaving all list items preceded by the number “1″
  • List items don’t support all possible values for list-style-type
  • List items with a specified list-style-image will not display the image if they are floated
  • Offers only partial support for @font-face
  • Some selectors will wrongly match comments and the doctype declaration
  • If an ID selector combined with a class selector is unmatched, the same ID selector combined with different class selectors will also be treated as unmatched

IE7 Bugs

  • List items for an ordered list that have a layout will not increment their numbers, leaving all list items preceded by the number “1″
  • List items don’t support all possible values for list-style-type
  • List items with a specified list-style-image will not display the image if they are floated
  • Offers only partial support for @font-face
  • Some selectors will wrongly match comments and the doctype declaration

Some IE bugs not mentioned here occur only under particular circumstances, and are not specific to one particular CSS property or value. See the references below for some of those additional issues.

Further Resources

About the Author

Louis Lazaris is a writer and freelance Web Developer based in Toronto, Canada. He has 9 years of experience in the web development industry and posts web design articles and tutorials on his blog, Impressive Webs. You can follow Louis on Twitter or contact him using this form.

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

Freelancer

warehouse

Lately, I’ve been exploring various “commodity” freelance job boards where one bids for projects. In perusing a number of sites where only experienced web developers and graphic designers are competing against each other, one thing stands out vividly: every buyer/job source has set their price not only low, but outrageously out in left field low.

Another stark fact is that the relationship between client and designer is flipped: the client dictates a cost and the designer does the work for that price (or lower).

Yet, there are always bidders. Lots of bidders with low-ball ($90 for a Joomla! site done in one week) impossible bids. And I sit scratching my head trying to figure out how this commoditization of a skill set and art form has happened.

There seems to be a basic disconnect between what is needed to earn a living as a freelancer and what clients seem to want (at least on these outsourcing sites) to pay. The disconnect goes even deeper. Suddenly a client can define all aspects of a job from price to design, causing the designer’s role to change from that of a professional to that of a technician. It is unnerving.

Pay Surveys & Freelancing

According to FreelanceSwitch’s excellent survey, The Freelance Statistics Report sold by Rockable Press, the average hourly rate for a freelance web designer is $46 (and if you are a programmer, that hourly average rate can jump to $49). Several articles in the blog confirm that the best way to price a job is to consider the hours it takes to do it, plus a percentage added for overhead as well as the complexity of the job and whether it is intriguing; and then figure out if you want to do it fixed fee (my preferred pricing structure) or by the hour.

But each of these articles and the survey assume that we are using word of mouth and our own networks to find our next gig and nobody is dictating the parameters of a proposal’s price (although as we question potential clients we do get a strong sense of what they are willing to pay).

Here’s a site that clearly describes the different levels of skill sets and how the “real world” prices a web site based on who is performing the work. You can read the article at How Much Does A Website Cost? (and do realize that this was posted in 2006 and the economy is a different place now). Again, these hourly rates are totally in line with everything else I’ve read and do not answer the question about where buyers are getting their pricing information when advertising a job on job listing boards as well as how anybody bidding on these budgeted projects can set their fees so low and survive.

A basic guide for about 10 hours of work is:

  • Student: $100 – $200 ($10-$20/hour)
  • Freelancer: $200 – $1000 ($20-$100/hour)
  • Expert Consultant: $500 – $2000 ($50-$200/hour)
  • Company: $700 – $2500 ($70-$250/hour)

Recommended project budget:

Logo Design: $150 – $750
T-shirt design: $101 – $500
3-fold Brochure: $501 – $1000
Simple Website: $501 – $2,500
Complex Website: $1,501 – $25,000
MySpace-like site: $5,001 – $30,000
Custom Applications: $10,001 – $100,000

Common hourly rates:

Student/Offshore: $10-$30/hour
Freelancer: $35-$100/hour
Expert Consultant: $50-$200/hour
Company: $75-$150/hour

Commodity Budgets Abound

And for the most part, each one of these articles, calculators, surveys, and lists are completely on target with my own experience. And because there is a logic and seeming standard to how jobs are priced and budgeted, I’ve found that it is best to work through your information network to gain new projects.

But when the networks dry up should you consider jumping into the fray and joining the global competition for web design jobs? Should you sign on to any one of the large number of job listing sites where bidding is the norm and low bids often get the gig?

What holds me back is a huge question I can’t find a good answer to: why are the budgeted amounts for work so out of sync with what all our careful calculations of pricing say should be the going rate for a web site or graphic design?

Here are some facts I’ve come up with:

  1. Our typical clients are those we are able to “talk” to via phone, in person, or over the Internet. This communication is crucial to build trust between freelancer and client.
  2. Unlike job boards where the buyer posts their requirements in sometimes vague and database-driven terms and our bids are not customized but must fit in 160 characters or less, we are able to collect many more facts about a client’s needs, budget, and corporate culture (what makes them comfortable) when we deal with a network-based client
  3. If the client’s budget is not at a level where we can afford to take the work, but who’s project is intriguing, we can educate potential clients about why we are charging the rates we propose and especially about the value of what we offer (be it years of experience, the importance of adherence to web standards, the flexibility of using vector-based design tools to create a unique and elegant corporate branding solution; and on and on) and for the most part this negotiation phase of the proposal process is very rewarding.

The end result is that we either are awarded a contract with a win-win scenario, or we can walk away from those clients where we fail in our approach or with whom we can’t communicate. This is a professional relationship.

Is there a professional relationship with its give and take available on job listing boards? I don’t believe so for these reasons:

  1. The only access you have to the buyer is via internal PM which the buyer may or may not answer.
  2. The job requirements are one-sided since there is no way to add your design and/or development expertise to possibly assist the buyer in making an even better result since what you are typically given to work with to create a bid is the budget, a website to look at or a document stating the requirements. One developer is like another in this scenario.
  3. Budgets for jobs seem to be based on the client completing a form and setting the price by checking off a range that has very little to do with the amount of work involved or any negotiations. Web design becomes a commodity and site projects are no longer unique.

On a deeper level, the entire culture of buyers who use job sites versus those who identify candidates for freelance work via word of mouth and references is completely different. Job listing boards contain hundreds of small businesses and entrepreneurs who are used to low-balling their sub-contractors and suppliers and see a web site as a marketing tool and overhead (which it is), and set the price accordingly.

But there is no negotiating when someone is willing to bid the low price and promises to deliver. In addition, sadly, from the way a lot of the job descriptions are worded on sites like JoomLancer.com, Get A Freelancer, OutLancer, and so forth, prior designers, developers, and programmers have not fulfilled their promises and these guys feel burned and wary.

Statements like: “Have been through numerous unorganized programmers who disappear way too often, private and social life takes priority over their work. We are searching for mature, dedicated people like ourselves, who take their jobs seriously and are married to their work and value their clients. We are not interested in working with anyone outside of the U.S” tell me that buyers are trying to protect themselves from deceptive bidding.

More Questions Than Answers

So, my question remains: Where do all these guys who list jobs on freelance job boards get their budgets from and do these projects ever actually get off the ground and produce high-quality results? Is this the wave of the future? If so, how can we learn to live in such a world?

Fonte:freelanceswitch.com

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

Firefox accelerometer

Paul Rouget shows off some cool new demos that are baking on the trunk of Firefox currently.

First are some nifty new events that get fired if your computer has an accelerometer:

JAVASCRIPT:

  1. window.addEventListener(“MozOrientation”, function(e) {
  2. /* 3 values: e.x, e.y, e.y */
  3. }, true)

It works with MacBooks and on Windows and Linux with Thinkpads.

Check out this cool screencast of the orientation event in action:

orientation_demo

They also have WebGL and CSS Transitions going in Firefox trunk now as well! There are some demos in the original blog post of WebGL + CSS3 + SVG as well as CSS Transitions + the HTML5 Video tag that are very cool (require Firefox Nightly).

Here’s an example code snippet showing how you can use CSS Transitions to change the background color of a DIV over time as well as changing the width and height of an HTML5 Video at the same time:

CSS:

  1. div {
  2. -moz-transition-property: background-color, height, width, font-size;
  3. -moz-transition-duration: 2s, 1s, 2s, 1s;
  4. -webkit-transition-property: background-color, height, width, font-size;
  5. -webkit-transition-duration: 2s, 1s, 2s, 1s;
  6. }
  7. div video {
  8. -moz-transition-property: width, height;
  9. -moz-transition-duration: 2s, 2s;
  10. -webkit-transition-property: width, height;
  11. -webkit-transition-duration: 2s, 2s;
  12. }

Someone’s also put together a cool demo that puts the new accelerometer support with some SVG to create a Super Mario Kart clone:

mario_orientation

Fonte:Ajaxian

Share and enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • PDF
  • RSS
  • Slashdot
  • StumbleUpon
  • Twitter

WordPress Themes