Code

The Programmer Hierarchy

 

Programmer Hierarchy


.Net ou Java

A maior crítica da comunidade Java em relação ao .Net está no fato da linguagem ser focada na plataforma Microsoft. Ou seja, se você optar por trabalhar com .Net irá ter que se sujeitar a uma empresa, algo conhecido como “Vendor Lock-in” .

Bem, como programador .Net muitas vezes fui questionado sobre isto por programadores Java, mas nunca entendi, afinal até onde eu sei o Java pertencia a SUN, que não é uma ONG.

Não programo exclusivamente em .Net , trabalho com esta tecnologia porque a empresa onde estou optou por isto. Acredito que, se o objetivo é não depender de uma grande empresa o Java não é a opção mais lógica. Certo seria focar-se em uma linguagem como o C/C++, Python ou Perl.

Estou curioso para saber como a comunidade vai lidar com a venda da SUN para a Oracle que já esta dando o que falar. A Oracle já está processando o Google (http://www.infoq.com/news/2010/08/oracle_sues_google), e eu, se estivesse no lugar de um diretor de tecnologia de uma empresa baseada em Java estaria realmente preocupado.

Sabe o que é mais engraçado? O C# é uma linguagem, digamos, mais livre que o Java e hoje a comunidade OpenSource já desenvolve utilizando-a é só você procurar pelo MONO. Quem diria não?


10 Mandamentos do Arquiteto de Software

    1. Se não for simples, não vale a pena;
    2. Se não for estável, não vale a pena;
    3. Se não for suportável, não vale a pena;
    4. Jamais justifique a tecnologia pela tecnologia;
    5. Seja flexível;
    6. Questione tudo;
    7. Não culpe o fabricante da tecnologia pelos erros que você cometeu;
    8. O ótimo é inimigo do bom;
    9. Faça uma trégua com a equipe de infra-estrutura;
    10. Não reinvente a roda.

 

Infelizmente não tenho a fonte. Se alguém souber avise que eu coloco aqui.


Checkpoint no Windows Vista (VPN)

Fui contemplado com a magnífica possibilidade de trabalhar em casa (sic).

A empresa trabalha com tecnologia da Checkpoint para permitir o acesso remoto.

Chego em casa e vou testar meu brinquedo novo que, só para quebrar a rotina, não funciona no Vista. O que fazer? Depois de pesquisar um pouco e descobrir que o conselho padrão nos fóruns é: “Desinstala está porcaria de Vista e instala o XP”, resolvi perguntar ao Help Desk da empresa – devia ter sido minha primeira atitude eu sei.

A solução é trabalhosa, mas funciona. Siga os passos abaixo:

  1. Desative o Controle de Conta de Usuário (UAC – User Account Control) ;

    “Painel de Controle > Contas de Usuários > Ativar ou desativar o Controle de Conta de Usuário” – Desmarque a opção: “Utilizar o Controle de Conta de Usuário (UAC) para ajudar a proteger seu computador”.

  2. Clique em Ok;
  3. Incluir a url da VPN na lista de sites confiáveis do seu browser;

    “Tools > Internet Options > Security”

  4. Fechar o browser e abrir novamente;
  5. Digitar endereço da VPN;
  6. Quando solicitado, clicar em sim para instalação do plug in;
  7. Após a instalação, digitar suas credenciais de rede;
  8. Quando conectado, minimizar a página e chamar o executável “mstsc.exe” (Conexão de Área de Trabalho Remota);
  9. Digitar o endereço IP de seu equipamento na Empresa;
  10. Cuidado com softwares de terceiros anti-popup (devem ser removidos).

É possível que você tenha que adicionar uma rota para permitir o acesso a rede da empresa pela sua máquina.

route ADD xxx.xxx.xxx.xxx MASK xxx.xxx.xxx.xxx  xxx.xxx.xxx.xxx

Onde:

route ADD “rede” MASK “mascara”  “gateway “

No caso do uso do remote desktop o gateway é o IP da estação que você deseja acessar.

Referência:

Checkpoint – sk33261 – SecureClient install on Windows Vista fails (how to turn off UAC)


Problemas ao instalar o Visual Studio 2005 extensions (WCF & WPF)

Ao tentar instalar o Visual Studio 2005 extensions para o .Net Framework 3.0 o sistema me retornou o erro dizendo que eu não possuía o runtime do .Net Framework 3.0 instalado na máquina.

Setup has detected that a prerequisite is missing. To use Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF), November 2006 CTP you must have the .NET Framework 3.0 runtime installed. Please install the .NET Framework 3.0 runtime and restart setup

No meu caso o problema é que a máquina já possuía a versão 3.5 do .Net Framework que foi instalado junto com o Visual Studio 2008. A instalação do VS2008 atualiza a instalação do Framework 3.0 para 3.0 sp1 isto faz com que o Visual Studio 2005 extensions (WCF & WPF) acredite que o Framework 3.0 não exista.

Existem duas formas de resolver o problema.

Primeira solução:

1. Remover o Framework 3.5

2. Remover o Framework 3.0 sp1

3. Instalar o Framework 3.0 (sem o sp1)

4. Instalar o Visual Studio 2005 extension

5. Instalar o Framework 3.5

Segunda solução:

Sinceramente a primeira solução da muito trabalho, o mais fácil é enganar o instalador passando a instrução para ele ignorar a verificação da instalação do Framework 3.0.

Isto funciona porque apesar do instalador não achar o framework ele está lá com outro nome. Para enganá-lo basta executar o instalador passando a instrução WRC_INSTALLED_OVERRIDE=1.

Simples assim:

msiexec /i vsextwfx.msi WRC_INSTALLED_OVERRIDE=1

Referências:

The Visual Studio 2005 extensions for.NET Framework 3.0 (WCF & WPF), November 2006 CTP 3 (CNET)

Microsoft .NET Framework 3.0 Redistributable Package

Microsoft .NET Framework 3.5


MySql Membership Provider

Depois de muito choro e ranger de dentes consegui fazer o Mysql funcionar como provider para a autenticação aspnet na locaweb.

Alguns dos erros com os quais tive de lidar:

“Unable to initialize provider. Missing or incorrect schema”

“Column count doesn’t match value count at row 1″

“Unknown column ‘r.name’ in ‘field list’ at…”

A solução abaixo funcionou para mim, espero que ajude:

  1. Baixe a versão 5.2.5 ou superior do MySql Connector;
  2. Salve os arquivos Mysql.Data.dll e MySql.Web.dll na pasta bin do seu site;
  3. Execute o código abaixo no seu banco de dados:
    1. DROP TABLE IF EXISTS `db_name`.`my_aspnet_Applications`;
      CREATE TABLE  `db_name`.`my_aspnet_Applications` (
      `id` int(11) NOT NULL auto_increment,
      `name` varchar(256) default NULL,
      `description` varchar(256) default NULL,
      PRIMARY KEY  (`id`)
      ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

      DROP TABLE IF EXISTS `db_name`.`my_aspnet_Membership`;
      CREATE TABLE  `db_name`.`my_aspnet_Membership` (
      `userId` int(11) NOT NULL default ’0′,
      `email` varchar(128) default NULL,
      `Comment` varchar(255) default NULL,
      `Password` varchar(128) NOT NULL,
      `PasswordKey` char(32) default NULL,
      `PasswordFormat` tinyint(4) default NULL,
      `PasswordQuestion` varchar(255) default NULL,
      `PasswordAnswer` varchar(255) default NULL,
      `IsApproved` tinyint(1) default NULL,
      `LastActivityDate` datetime default NULL,
      `LastLoginDate` datetime default NULL,
      `LastPasswordChangedDate` datetime default NULL,
      `CreationDate` datetime default NULL,
      `IsLockedOut` tinyint(1) default NULL,
      `LastLockedOutDate` datetime default NULL,
      `FailedPasswordAttemptCount` int(10) unsigned default NULL,
      `FailedPasswordAttemptWindowStart` datetime default NULL,
      `FailedPasswordAnswerAttemptCount` int(10) unsigned default NULL,
      `FailedPasswordAnswerAttemptWindowStart` datetime default NULL,
      PRIMARY KEY  (`userId`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=’3′;

      DROP TABLE IF EXISTS `db_name`.`my_aspnet_Profiles`;
      CREATE TABLE  `db_name`.`my_aspnet_Profiles` (
      `userId` int(11) NOT NULL,
      `valueindex` longtext,
      `stringdata` longtext,
      `binarydata` longblob,
      `lastUpdatedDate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
      PRIMARY KEY  (`userId`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

      DROP TABLE IF EXISTS `db_name`.`my_aspnet_Roles`;
      CREATE TABLE  `db_name`.`my_aspnet_Roles` (
      `id` int(11) NOT NULL auto_increment,
      `applicationId` int(11) default NULL,
      `name` varchar(255) NOT NULL,
      PRIMARY KEY  (`id`)
      ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;

      DROP TABLE IF EXISTS `db_name`.`my_aspnet_SchemaVersion`;
      CREATE TABLE  `db_name`.`my_aspnet_SchemaVersion` (
      `version` int(11) default NULL
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

      DROP TABLE IF EXISTS `db_name`.`my_aspnet_Users`;
      CREATE TABLE  `db_name`.`my_aspnet_Users` (
      `id` int(11) NOT NULL auto_increment,
      `applicationId` int(11) default NULL,
      `name` varchar(256) default NULL,
      `isAnonymous` tinyint(1) default NULL,
      `lastActivityDate` datetime default NULL,
      PRIMARY KEY  (`id`)
      ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

      DROP TABLE IF EXISTS `db_name`.`my_aspnet_UsersInRoles`;
      CREATE TABLE  `db_name`.`my_aspnet_UsersInRoles` (
      `userId` int(11) NOT NULL default ’0′,
      `roleId` int(11) NOT NULL default ’0′,
      PRIMARY KEY  (`userId`,`roleId`)
      ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;

    2. INSERT INTO my_aspnet_Applications VALUES   (1,’appName’,'MySQL Profile provider’);
  4. Configure seu web.config:
    1. session connectionStrings
        <remove name=”localCn”/>
        <add name=”localCn” connectionString=”Database={db_name};Data Source=’{db host}’;User Id={usuario};Password={senha}; pooling=false” providerName=”MySql.Data.SqlClient”/>
    2. session system.data
        <DbProviderFactories>
        <remove invariant=”MySql.Data.MySqlClient”/>
        <add name=”MySQL Data Provider” invariant=”MySql.Data.MySqlClient” description=”.Net Framework Data Provider for MySQL” type=”MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data, Version=5.2.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”/>
        </DbProviderFactories>
    3. session system.web
        <roleManager enabled=”true” defaultProvider=”MySQLRoleProvider”>
        <providers>
        <remove name=”MySQLRoleProvider”/>
        <add connectionStringName=”localCn”
        applicationName=”{/appName}”
        name=”MySQLRoleProvider”
        type=”MySql.Web.Security.MySQLRoleProvider,MySql.Web, Version=5.2.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”/>
        </providers>
        </roleManager>
        <membership defaultProvider=”MySQLMembershipProvider”>
        <providers>
        <remove name=”MySQLMembershipProvider”/>
        <add connectionStringName=”localCn”
        enablePasswordRetrieval=”true”
        enablePasswordReset=”true”
        requiresQuestionAndAnswer=”true”
        applicationName=”{/appName}”
        requiresUniqueEmail=”false”
        passwordFormat=”Clear”
        maxInvalidPasswordAttempts=”5″
        minRequiredPasswordLength=”6″
        minRequiredNonalphanumericCharacters=”1″
        passwordAttemptWindow=”10″
        passwordStrengthRegularExpression=”"
        name=”MySQLMembershipProvider”
        type=”MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=5.2.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”/>
        </providers>
        </membership>
        <profile enabled=”true” defaultProvider=”MySQLProfileProvider” automaticSaveEnabled=”false”>
        <providers>
        <remove name=”MySQLProfileProvider”/>
        <add name=”MySQLProfileProvider”
        type=”MySql.Web.Profile.MySQLProfileProvider,MySql.Web, Version=5.2.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”
        connectionStringName=”localCN”
        applicationName=”{/appName}”/>
        </providers>
        </profile>
        <compilation debug=”false”>
        <assemblies>
        <add assembly=”MySql.Web, Version=5.2.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”/>
        <add assembly=”MySql.Data, Version=5.2.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”/>
        </assemblies>
        </compilation>

Ps0a

(continue reading…)


Copyright © 1996-2010 PSOA. All rights reserved.
Jarrah theme by Templates Next | Powered by WordPress