Protegendo sua privacidade no Facebook

Uma matéria no Fantástico (Rede Globo) mostrou que um falso vidente, conseguiu acertar detalhes da vida de algumas pessoas, como nome da mãe, dos filhos, férias e outros eventos cotidianos com dados obtidos através de redes sociais, como o Facebook.

 

Esta matéria deslanchou uma onda de lixo eletrônico na rede social com a seguinte mensagem “Bom gente, quem assistiu o Fantástico sabe da falta de proteção no Facebook. Com as mudanças do Face, agora todos ficam sabendo ..”
O fato é que esta operação não resolve a questão da privacidade na rede social, pois uma vez obtendo-se o nome da pessoa, pode-se procurar em mecanismos de busca (como o Google), entrar no perfil da pessoa e obter as informações da mesma maneira, veja:

 

 

* Experimente fazer esta operação com o seu nome verdadeiro.

 

O grande alvo dessa “mensagem a ser compartilhada” remete à “activity storie window”, uma janela no canto direito do Facebook, que mostra as atividades dos seus amigos, confundindo as informações mostradas na matéria do Fantástico e trazendo centenas de pessoas a compartilhar lixo social sem qualquer fundamentação ou solução para a causa.

 

 

Desabilitar ou habilitar qualquer opção como manda esta mensagem não protege, nem garante sua privacidade na rede social, para isto é importante que você entenda como funciona a rede social e como funciona o sistema de privacidade.

A “Activity Storie Window” é uma janela que mostra os eventos, ações e comentários recentes dos POSTS QUE VOCÊ TEM ACESSO, ou seja, é como se você estivesse em uma roda de amigos e estivesse olhando e ouvindo a “Fulana” comentar com o “Ciclano” sobre determinado assunto.

Tá, mas como eu protejo o conteúdo que crio e compartilho?

O Facebook é uma das redes sociais mais seguras do mundo, pois permite configurar a fundo quase todas opções de privacidade e segurança disponíveis, diferentemente das demais, também permite a configuração “por posts”, podendo criar posts privados (para determinados amigos, amigos ou até “amigos de amigos”) e posts públicos (em que TODOS PODEM VER), veja como funciona:

Controle de privacidade “por post”

Quando você posta algo no Facebook, um ícone do lado do botão “Publicar” é exibido, nele você pode escolher qual o nível de privacidade que deseja utilizar, podendo compartilhar coisas com:

 

 

  • Público:    mostra para todas pessoas o que você publicou.
  • Amigos:    mostra seu post para todos seus amigos conectados.
  • Amigos exceto conhecidos:   mostra seu post para todos seus amigos exceto para o grupo de “Conhecidos”.
  • Somente eu:  somente você poderá ver a publicação.
  • Personalizado: você pode personalizar para quem quer mostrar sua publicação, adicionando ou removendo amigos “um a um”.

Tá, mas dá muito trabalho trocar todas postagem, tem um jeito mais fácil?

Tem sim, o controle principal de privacidade do Facebook (clique aqui para acessar), permite que você controle por quem seus dados podem ser vistos:

 

 

 

Um outro item que merece destaque é quanto as marcações em fotos e posts de outras pessoas, que também podem ser controlados dentro da central de privacidade:

 

 


 

 

 

Explorando a central de privacidade e definindo suas configurações conforme seu gosto você poderá se manter seguro na internet, publicar e compartilhar momentos importantes com seus amigos e conhecidos sem ter medo destas informações cair em mãos erradas… até a próxima!!!

Espero que tenham gostado, foi tudo escrito meio “a galope”, dado a minha falta de tempo e a urgência no assunto, quem se interessar em receber outros artigos meus podem curtir minha página no Facebook lá.. http://facebook.com/thewebway

 

 

Resolvendo problemas de DNS com Proxy HTTP/ZENTYAL

No Zentyal 2 aparece um erro ao inicializar o módulo Proxy HTTP:

“fatal ipcache_init dns name lookup tests failed”

Trata-se que o squid não consegue resolver um dos servidores DNS cadastrados, embora eles estejam OK, para resolver edite o arquivo “/etc/init/ebox.squid.conf” adicionando a seguinte informação:

author<><——>”Chuck Short <zulcss@ubuntu.com>”
respawn

#RESOLVE PROBLEMAS DE DNS COM O SQUID
env SQUID_ARGS=”-D”

pre-start script

Desta forma desabilitamos os testes de DNS realizados na inicialização do squid, forçando ele a iniciar normalmente 😉

Windows Live Messenger – Não recebe convites (não aparece quem te adiciona no MSN)

A solução é simples, segue:

  • Abra o Windows Live Messenger
  • Clique em “Caixa de entrada” (Inbox)
  • No canto inferior esquerdo clique em “Contatos” (Contacts)
  • Clique em “Exibir convites” (View Invitations)
  • Clique em “Alterar configurações de convite” (Change your invitation settings)
  • Selecione “Limitado” (Limited)
  • Clique em “Salvar” (Save)
Espero ter ajudado.. a partir de agora você passará a receber os convites no Windows Live Messenger..

jQuery – Buscando um objeto IFRAME a partir de seu conteúdo

Crie uma iframe…

<iframe src="teste.php"></iframe>

No HTML da iframe crie um campo de ID único…

....
<body>
<input type="hidden" id="iframe_unid" value="<? echo md5(microtime()); ?>" />
....

Lá vai o script para capturar o objeto iframe

$(document).ready(function() {

//find this iframe object
window.parent.$("iframe").each(function() {
if ($(this).contents().find("#iframe_unid").val() == $("#iframe_unid").val()) {
alert("Hello from "+$(this).attr("src"));
}
});

});

Apple computers timeline

A Apple foi fundada em 1976 (2011 – 35 anos), produtos como o iPod, iPhone e o iPad transformaram na segunda empresa mais valorizada no mundo, agora vamos ver a evolução da Apple Computers em fotos…

1976 – Apple I

1977 – Apple II

1978 – Disk II

1979 – Apple II Plus

1980 – Apple III

1983 – Lisa

1983 – Apple Mouse

1984 – Apple IIC

1984 – Macintosh

1985 – Macintosh XL

1986 – Macintosh Plus

1987 – Macintosh SE

1987 – Apple Newton next to an iPhone

1988 – Apple IIc Plus

1988 – Macintosh IIx

1989 – Macintosh SE/30

1989 – Macintosh portable

1990 – Macintosh IIfx

1991 – Macintosh PowerBook 140

1993 – Macintosh LC 575

1995 – PowerBook 5300

1996 – Power Macintosh 7220

1997 – 20th Anniversary Macintosh

1998 – iMac G3

1999 – Power Macintosh G3

1999 – iBook

2000 – Power Mac 4G Cube

2001 – the first iPod

2001 – PowerBook G4

2002 – iMac G4

2003 – iBook G4

2003 – PowerMac G5

2004 – iMac G5

2004 – iPod mini

2005 – iPod nano

2005 – iPod shuffle

2005 – Mac Mini

2006 – MacBook Pro

2007 – the first iPhone

2007 – iMac

2007 – Apple TV

2007 – iPod Touch

2008 – MacBook Air

2010 – iPad

2010 – iPhone 4

Source

Buscando posts do Facebook

Desenvolvi este script para o site www.adcw.com.br, ele busca os posts na fan-page da agência no facebook e retorna em um ajax, aqui simplifiquei um pouco, utilizando “echo” mesmo…

 

<?

//@include("config.php");
define("CFG_FACEBOOK_FPID", "157126511023182");

//verifica o arquivo de cache
$CACHEFILE = "fbcache.tmp";
if ((!file_exists($CACHEFILE)) || ((time() - filemtime($CACHEFILE)) > 1800)) {

$targetdomain = 'www.facebook.com';
$hostIP = gethostbyname($targetdomain);
$fp = fsockopen($hostIP, 80, $errno, $errstr, 10);

$getString = "GET /feeds/page.php?id=".CFG_FACEBOOK_FPID."&amp;amp;amp;amp;    format=rss20 HTTP/1.1\r\nHost: $targetdomain\r\nConnection: close\r\n";
$getString .= "User-agent: Mozilla\r\nAccept: text/plain,text/html\r\n";
$getString .= "\r\n";

$feed_contents = "";
fputs($fp,$getString);
while ( (!feof($fp))  &&  ($line = fread( $fp, 8192 )) ) {
$feed_contents.=$line;
}

$fp = @fopen($CACHEFILE, 'w+');
fwrite($fp, $feed_contents);
fclose($fp);
$xml = $feed_contents;

}
else {
//se não puxou um novo arquivo do facebook faz a leitura da cache
$fp = fopen($CACHEFILE, 'r');
$xml = fread($fp, filesize($CACHEFILE));
fclose($fp);
}

//interpreta o XML
$i=0;
$items=array();

$xml = explode("\n",$xml);
for ($x=0; $x <= count($xml); $x++) {
$line = trim($xml&#91;$x&#93;);
if ($line == "<item>") { $i++; }
if ($i > 0) {
if (substr($line,0,7) == "<title>") { $items[$i]["title"] = htmlentities(trim(strip_tags($line)),  ENT_QUOTES|ENT_IGNORE,"UTF-8"); }
if (substr($line,0,6) == "<link>") { $items[$i]["link"] = htmlentities(trim(strip_tags($line)), ENT_QUOTES|ENT_IGNORE,"UTF-8"); }
if (substr($line,0,8) == "<author>") { $items[$i]["author"] = htmlentities(trim(strip_tags($line)), ENT_QUOTES|ENT_IGNORE,"UTF-8"); }

//-------------------------------
// pubDate
//-------------------------------

if (substr($line,0,9) == "<pubDate>") {
//formata a data para o formato da ADCW (Original: Wed, 06 Jul 2011 17:14:41)
//Thu, 14 Jul 2011 20:45:19 +0100
$data = htmlentities(strip_tags($line), ENT_QUOTES|ENT_IGNORE,"UTF-8");

$data = explode(" ",$data);
$items[$i]["pubDate"] = $data[1]." ".strtoupper($data[2])."<br>".$data[3];
}

//-------------------------------
// Links
//-------------------------------
$items[$i]["link"] = str_replace("&amp;amp;amp;amp;amp;","&amp;amp;amp;amp;",$items[$i]["link"]);

//-------------------------------
// description
//-------------------------------
if (substr($line,0,13) == "<description>") {

$data = htmlentities(trim(strip_tags(html_entity_decode($line),"<br>")),ENT_QUOTES|ENT_IGNORE,"UTF-8");

//titulo
if (substr($data,0,strlen($items[$i]["title"])) == $items[$i]["title"]) {
$data = trim(substr($data,strlen($items[$i]["title"])));
}
//autor
if (trim(substr($data,0,strlen($items[$i]["author"]))) == $items[$i]["author"]) {
$data = trim(substr($data,strlen($items[$i]["author"])));
}
//vimeo (retira url do inicio)
if (trim(substr($data,0,18)) == "vimeo.comvimeo.com") {
$data = trim(substr($data,18,(strlen($data)-18)));
}
//youtube (retira url do inicio)
if (trim(substr($data,0,30)) == "www.youtube.comwww.youtube.com") {
$data = trim(substr($data,30,(strlen($data)-30)));
}

//tira as quebras de linha do inicio do texto
if (substr($data,0,12) == "&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt;") { $data = trim(substr($data,12)); }
if (substr($data,0,12) == "&amp;amp;amp;amp;lt;br /&amp;amp;amp;amp;gt;") { $data = trim(substr($data,12)); }
//tira a mensagem FOTOS DO MURAL
if (substr($data,-14) == "Fotos do mural") {
$data = substr($data,0,(strlen($data)-14));
}
//--
$items[$i]["description"] = $data;
}

//-------------------------------
// image -> este campo ?xtraido do rss/description do fb
//-------------------------------
if (substr($line,0,13) == "<description>") {

$data = trim(strip_tags(html_entity_decode($line),"<img>"));
$data = explode(chr(34),$data);
for ($y=0; $y <= count($data); $y++) {
if ((substr($data&#91;$y&#93;,0,7) == "http://") &amp;amp;amp;amp;&amp;amp;amp;amp; (substr($data&#91;$y&#93;,-4) == ".jpg")) {
$data&#91;$y&#93; = str_replace("_s.jpg","_n.jpg",$data&#91;$y&#93;); //troca imagem pequena do RSS pela imagem tamanho normal
$items&#91;$i&#93;&#91;"image"&#93; = $data&#91;$y&#93;;
}
}
}
//-------------------------------

//-------------------------------
// video(vimeo) -> este campo extraido do rss/description do fb
//-------------------------------
if (substr($line,0,13) == "<description>") {
$data = trim(strip_tags(html_entity_decode($line),"<a>"));
$data = explode(chr(34),$data);
for ($y=0; $y <= count($data); $y++) {
if (substr($data&#91;$y&#93;,0,17) == "http://vimeo.com/") {
$items&#91;$i&#93;&#91;"video"&#93; = $data&#91;$y&#93;;
}
}
}
//-------------------------------

//-------------------------------
// video(youtube) -> este campo extraido do rss/description do fb
//-------------------------------
if (substr($line,0,13) == "<description>") {
$data = trim(strip_tags(html_entity_decode($line),"<a>"));
$data = explode(chr(34),$data);
for ($y=0; $y <= count($data); $y++) {
if (substr($data&#91;$y&#93;,0,31) == "http://www.youtube.com/watch?v=") {
$items&#91;$i&#93;&#91;"video"&#93; = $data&#91;$y&#93;;
}
}
}
//-------------------------------

}
}

//injeta o item mais recente no site usando jquery e eval
if (count($items) > 0) {

//echo $items[1]["description"];

echo "<h2>".$items[1]["pubDate"]."</h2>\n";
echo "<h1><a href=\"".$items&#91;1&#93;&#91;"link"&#93;."\">".$items[1]["title"]."</a></h1>\n";

if ($items[1]["video"] != "") {
if (substr($items[1]["video"],0,17) == "http://vimeo.com/") {
echo "<iframe id=\"facebook_image\" src=\"http://player.vimeo.com/video/".substr($items&#91;1&#93;&#91;"video"&#93;,17,(strlen($items&#91;1&#93;&#91;"video"&#93;)-17))."\" width=\"530\" height=\"310\" frameborder=\"0\" allowfullscreen></iframe>";
}
elseif (substr($items[1]["video"],0,31) == "http://www.youtube.com/watch?v=") {
echo "<iframe id=\"facebook_image\" width=\"530\" height=\"310\" src=\"http://www.youtube.com/embed/".substr($items&#91;1&#93;&#91;"video"&#93;,31,(strlen($items&#91;1&#93;&#91;"video"&#93;)-31))."\" frameborder=\"0\" allowfullscreen></iframe>";
}
else {
echo "<img id=\"facebook_image\" src=\"".$items&#91;1&#93;&#91;"image"&#93;."\" />\n";
}
}
else {
echo "<img id=\"facebook_image\" src=\"".$items&#91;1&#93;&#91;"image"&#93;."\" />\n";
}

}
else {
echo "Não foi possível buscar os dados...\n";
}

?>

Cola do Google +

Para quem anda meio perdido no Google+, Simon Laustsen criou esta cola, que auxilia-nos a entender melhor esta rede social..

Copiei e colei da Danuta Ferreira 😉

Exportando e importando dados no MySQL

Existem muitas formas de exportar/importar dados em um servidor MySQL (remoto ou local), para bancos de dados de pequeno porte até mesmo pela web pode-se realizar esta operação (uma vez que ferramentas como o PHPMyAdmin permitem o download e upload de arquivos SQL compactados), já para bancos de dados de maior porte é necessário uma ferramenta local para enviar os dados, nesta dica mostrarei como exportar e importar dados utilizando o client nativo do MySQL.

Exportando dados

<br />
mysqldump -h <endereco ip ou host do servidor> -u <usuario> --password=<senha> <nome do banco> > <caminho do arquivo a ser gerado><br />
Exemplo:<br />
mysqldump -h 127.0.0.1 -u workuser --password=secretpw workdb > C:\exportacao_wdb.sql<br />

Importando dados

<br />
mysql -h <endereco ip ou host do servidor> -u <usuario> --password=<senha> <nome do banco> < <caminho do arquivo sql><br />
Exemplo:<br />
mysql -h db.hostremoto.com -u workuser --password=secretpw workdb < C:\exportacao_wdb.sql<br />

Ferramentas

Existem algumas ferramentas de gerenciamento que auxiliam (e muito) o desenvolvedor, vou dar a dica de algumas que utilizo aqui…

Plataforma: WEB
Ferramenta: PHPMyAdmin
Site:  www.phpmyadmin.net

Plataforma: MacOsX
Ferramenta: Sequel PRO
Site:  www.sequelpro.com

Plataforma: Windows
Ferramenta: MySQL Front
Site: www.mysqlfront.de

 

Qualquer dúvida utilize os comentários, valeu e até mais!!!

 

 

Instalar APACHE + PHP + MySQL no Windows 7

– Atualizado em 07/05/2014

 

 

 

Apache

Instalação

  • Baixe o APACHE Http Server, na versão Win32 Binary without crypto (no mod_ssl) (MSI Installer) no site http://httpd.apache.org/download.cgi
  • Inicie a instalação
  • Na tela Server Information, digite as informações conforme abaixo, substituindo o Administrator’s email por seu email

  • Em Server Type, selecione Custom
  • Na tela Custom Setup, selecione as opções como abaixo, clique em Change para mudar o diretório para: C:\apache\

  • Na última tela de instalação, clique em Install

Configuração

  • Edite o arquivo C:\apache\conf\httpd.conf
  • Descomente a linha
    LoadModule rewrite_module modules/mod_rewrite.so
  • Adicione dentro de dir_moduleindex.php index.phtml”
     DirectoryIndex index.html index.php
  • Dentro de “Directory C:/apache/htdocs“, modifique a chave AllowOverride para All
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    
  • Role até o fim do arquivo e adicione as seguintes linhas
    PHPIniDir "C:\\apache\\php"
    LoadModule php5_module "C:\\apache\\php\\php5apache2_2.dll"
    <IfModule mod_mime.c>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    </IfModule>
    

PHP

Instalação

Configuração

  • Renomeie o arquivo “C:\apache\php\php.ini-recommended” para “php.ini
  • Edite o arquivo php.ini e modifique as seguintes chaves
    short_open_tag = On
    ...
    error_reporting = E_ALL & ~E_NOTICE
    ...
    display_errors = On
    display_startup_errors = On
    ...
    extension_dir = "./ext"
    ...
    upload_max_filesize = 50M
    ...
    extension=php_gd2.dll
    extension=php_gettext.dll
    extension=php_mbstring.dll
    extension=php_mcrypt.dll
    extension=php_mysql.dll
    extension=php_mysqli.dll
    extension=php_pdo.dll
    extension=php_sockets.dll
    extension=php_sqlite.dll
    ...
    date.timezone = America/Sao_Paulo
    
  • Edite a variável PATH nas variáveis do sistema (Painel de controle -> Sistema -> Configurações avançadas do sistema -> Avançado -> Variáveis de ambiente), adicione o caminho do php “C:\apache\php“, conforme abaixo

  • Reinicie o computador
  • Abra o bloco de notas, cole o seguinte código
    <? phpinfo(); ?>
    
  • Salve o arquivo em C:\apache\htdocs\info.php
  • Abra o navegador e direcione até http://localhost/info.php, se tudo estiver normal uma página de informações do PHP será mostrada

MySQL

Instalação

  • Em Custom Setup, clique em Browse, e indique o caminho “C:\apache\mysql” para o instalador

  • Clique em Next e depois em Install para concluir a instalação
  • No final da instalação, mantenha marcada a opção “Launch the MySQL Instance Configuration Wizard

Configuração

  • No MySQL Instance Configuration, selecione “Detailed Configuration

  • Na próxima tela, de perfil de instalação selecione “Developer Machine
  • Em “database usage“, selecione “Multifunctional Database

  • Em “InnoDB Tablespace Settings“, clique em “Next
  • Na configuração do número de conexões, selecione “Manual Setting” e configure para 20 o número máximo de conexões

  • Em “network options”, marque a opção “Add firewall exception for this port
  • Na próxima tela, “default charset set“, selecione “Manual Selected Default Charset Set / Collation” e digite ou selecione “latin1

  • Em “Windows options“, deixe marcado “Install as Windows Service” e “Start MySQL Server automatically“, clique em Next
  • Marque “Modify Security Settings“, digite uma nova senha para o root, re-digite no campo abaixo, se você deseja habilitar o acesso root remoto, marque “Enable root access from remote machines

  • Por fim, clique em “Execute” para salvar as configurações selecionadas

  • Vá no executar do windows e digite “services.msc” para abrir a tela de serviços, procure pelo serviço MySQL, clique em “Parar serviço

  • Edite o arquivo C:\apache\mysql\my.cnf, e altere a seguinte chave:
datadir="C:/apache/mysql/data"
  • Volte ao executar do Windows e digite
%programdata%\MySQL\MySQL Server 5.5\data
  • Recorte todos arquivos e cole em “C:\apache\mysql\data\“, sobre-escrevendo os arquivos antigos
  • Retorne a tela dos serviços (services.msc) e inicie o serviço MySQL

Final de partida, em caso de dúvidas utilize os comentários.. abraço!