segunda-feira, outubro 15, 2012

Java + Hibernate (Java Persistence API)

Java Persistence API, chamada apenas de JPA, é uma API padrão do java para persistência que deve ser implementada por frameworks que queiram seguir o padrão. A JPA define um meio de mapeamento objeto-relacional para objetos Java simples e comuns (POJOs), denominados beans de entidade.


HIBERNATE com JAVA

No eclipse efectuar actualização com hibernate:
Eclipse JBoss - http://download.jboss.org/jbosstools/updates/stable/helios

Eclipse -> Open Perspective -> Hibernate

Instalação do driver microsoft:
Download do jdbc para microsoft em http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx

Colocação do buildpath para apontar para jar externo;

Ficheiro cfg deverá ficar:

             "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
             "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >

   
        com.microsoft.sqlserver.jdbc.SQLServerDriver
        jdbc:sqlserver://servidor\instancia;DatabaseName=basededados
        user</ property>
      password
     
        org.hibernate.dialect.SQLServerDialect
   

Novo certificado exchange

Podemos primeiro ver os certificados actuais instalados:
Get-ExchangeCertificate | List


















O certificado anterior mostra que está preste a ficar expirado. Algumas propriedades que deveremos ter em conta são:

NotAfter - Mostra a data de expiração do certificado
Services - Mostra que o certificado é aplicado a IMAP, POP, IIS e SMTP
Thumbprint - Usaremos isto para identificar e efectuar alterações a este certificado.

Para criar um novo certificado fazemos:
New-ExchangeCertificate
Isto irá avisar sobre se queremos efectuar o overwrite sobre o anterior:









Se efectuarmos o Get-ExchangeCertificate agora podemos verificar que o serviço IIS ainda usa o certificado antigo. Necessitamos para isso de mover o serviço IIS usando Enable-ExchangeCertificate. O comando a usar seria:
Enable-ExchangeCertificate -Thumbprint -Service IIS

Com o novo certificado no lugar podemos remover o antigo:
Remove-ExchangeCertificate -Thumbprint

domingo, julho 01, 2012

Outlook Anywhere - Problema com pedido de password recorrente

Existe um serviço que pode estar desactivo.
Testar com url: http://domain.fqdn/rpc. Se der 503, então application pool IIS da pasta pode estar desactivada.
Os certificados também deverão ter o mesmo nome: Set-OutlookProvider EXPR -Server $null -CertPrincipalName msstd:*.domain.com. Set-OutlookProvider WEB -Server $null -CertPrincipalName msstd:*.domain.com. Outra questão pode ter a ver com o facto de a pasta OAB não ter permissões de READ para authenticated Users. Nesse caso poderemos correr a ferramenta ExBPA e verificar os erros de configuração.

quinta-feira, março 22, 2012

Reset a password de um linux Guest no XenServer

Do Xencenter seleccionamos a máquina virtual que queremos efectuar o boot em single user mode.

Desligar a máquina virtual usando os controlos do Xencenter.

Right click nas opções de Boot da nossa máquina virtual e seleccionar opções.

Alterar os parametros de Boot para

rw init=/bin/bash

NOTA: Devermos colocar os parâmetros por defeito após efectuar o reset à password.

Guardamos e arrancamos com a nossa máquina virtual.

O sistema agora irá efetuar o boot em single user mode.

machinename# passwd root

Escrevemos a nova password.
Desligar a máquina virtual.
machinename# shutdown -h now

Ir ao Xencenter  e voltar a colocar as opções de startup.

domingo, janeiro 15, 2012

Email forward para pasta pública

Quando tentamos efectuar o forward de email inbound de um recipiente para uma pasta pública do exchange usando a consola (Recipient ->Properties | Mail Flow Settings | Delivery Options |Forward to:) o GUI não mostra as pastas públicas mail enabled.

Isto pode ser efectuado recorrendo à shell:
Set-Mailbox "Foo" -ForwardingAddress "TestPF@mydomain.com"

O comando em cima efectua o forward do email para uma pasta pública sem enviar uma cópia para o destinatário original. Para que uma cópia seja enviada para o destinatário original deveremos colocar a seguinte propriedade, DeliverToMailboxAndForward,  como verdadeira.

Set-Mailbox "Foo" -ForwardingAddress "TestPF@mydomain.com" -DeliverToMailboxAndForward $true

quinta-feira, dezembro 22, 2011

Jogo Flash ActionScript 3.0

No âmbito de um trabalho para uma disciplina do meu mestrado, propus a elaboração de um jogo em ActionScript 3.0.
O jogo é para 2 jogadores. Ainda não está completamente acabado, pois faltam algumas funcionalidades em opções e alguns botões, mas dá para dar uma amostra.


quarta-feira, dezembro 21, 2011

Traffic Shaping

Traffic Shaping é uma técnica de gestão de tráfego de rede que atrasa a transferência de alguns pacotes de determinado protocolos de transferência de dados (tais como o FTP). Isto é efectuado por vários operadores ISP a nível mundial, pois todos sabemos que a capacidade da rede está dividida entre vários destinatários da largura de banda, e os ISPs para garantirem a velocidade contratada, usam diversas técnicas. Esta é uma técnica proibida.

Para se saber se o ISP está a efectuar Traffic Shaping, poderemos analisar recorrendo a esta ferramenta:

http://broadband.mpi-sws.org/transparency/bttest.php

quarta-feira, agosto 10, 2011

Passagem de dados entre winforms em aplicações Windows

Por vezes existem cenários onde temos necessidade de passar dados entre formulários. Neste caso, existem vários métodos para passar dados entre formulários no desenvolvimento de uma aplicação Windows:


  • Using constructor
  • Using objects
  • Using properties
  • Using delegates
A aplicação destes métodos é explicada em :


domingo, dezembro 12, 2010

XNA - Primeira experiência

Resolvi propor o desenvolvimento de uma Slot Machine no âmbito de um projecto de trabalho para uma disciplina do meu Mestrado.
Não o queria fazer usando labels e picture boxes e uma função randomica que me retornasse uma figura. Queria fazer algo mais real, com recursos gráficos e por isso resolvi experimentar a plataforma XNA que me dá isso tudo (DirectX inclusive).

De facto com esta plataforma tudo se torna mais fácil.
Baseado na leitura que efectuei em http://felipearon.net/curso-online-xna/aula-01-o-que-e-xna, resolvi meter mãos á obra.

Criei uma Sprite de frutos, uma classe roda e o resto já funciona. Agora falta acrescentar algumas funcionalidades e melhorar bastante as imagens. O motor está quase pronto.
Assim que estiver finalizada irei colocar o código da classe roda aqui. Até porque não consegui encontrar nada do género feito em XNA na Internet.

terça-feira, outubro 26, 2010

Photoshop change color of line

Start a new layer over the line-art layer

Fill the layer with the desired color.

Dois cliques na layer e definir blending options
In the Layers Palette Blending modes pull-down, select:
* Lighten
* Screen
* Linear Dodge

and the image will take on that color.

quarta-feira, outubro 13, 2010

Aplicação web tenta usar Exchange 2007 para envio de mensagens

A aplicação web tenta usar as credenciais do servidor exchange 2007 para enviar notificações mas recebe 5.7.1 unable to relay.

Para colmatar este problema, deve-se criar um SMTP receive connector para os IPs em questão "Receber emails de servidores remotos". De seguida providenciar relay com o tipo de autenticação Anonymous e escrever na linha de comandos "Shell" o seguinte:

Get-ReceiveConnector "Intranet" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"

domingo, setembro 19, 2010

Criar default values no XSD gerado

Verificar defaults da tabela para cria-los no dataset XSD

SELECT c.COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.COLUMN_DEFAULT IS NOT NULL
and c.TABLE_NAME = ''
AND C.COLUMN_NAME = ''

Another Way
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q318048

domingo, setembro 12, 2010

Carregar User Controls em runtime

É possível carregar Usercontrols em runtime usando o método Loadcontrol. É ainda possível definir valores para propriedades que tenhamos criado para os mesmos.

Para podermos carregar os Usercontrol, temos de dizer onde queremos que eles apareçam na nossa página e para isso usamos por exemplo o objecto PlaceHolder:

 Control FeaturedProductUserControl = LoadControl(Request.ApplicationPath + "/UserControls/UCfeeds.ascx");
  
           FeaturedProductUserControl.ID = "UsercontrolID" + counter.ToString();
  
           Type typ = FeaturedProductUserControl.GetType();
  
           //Procurar propriedade definida no objecto Usercontrol
  
           System.Reflection.PropertyInfo pi = typ.GetProperty("nome");
  
           pi.SetValue(FeaturedProductUserControl, "nome", null);
  
           plh1.Controls.Add(FeaturedProductUserControl);  

sexta-feira, setembro 10, 2010

Criar menu com subitems especificados em control menu

Este código permite criar um menu apenas com os subitems de um item especificado.

1:  <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1">
  
2:      <DataBindings>
  
3:        <asp:MenuItemBinding DataMember="SiteMapNode" />
  
4:      </DataBindings>
  
5:    </asp:Menu>
  
6:    <div id="recibo" runat="server">
  
7:      <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false"
  
8:        StartingNodeUrl="~/Users/default.aspx?i=1" />  

Criar combobox com ultimos 12 meses

Com este código pretende-se criar uma combobox carregada com os ultimos 12 meses:

1:  DateTime month = Convert.ToDateTime(DateTime.Now.ToString()).AddMonths(-12);
  
2:        for (int i = 0; i < 12; i++)
  
3:        {
  
4:          DateTime NextMont = month.AddMonths(i);
  
5:          ListItem list = new ListItem();
  
6:          list.Text = NextMont.ToString("yyyy") + "-" + NextMont.ToString("MMMM").PadRight(15);
  
7:          list.Value = NextMont.Month.ToString();
  
8:          ddlmeses.Items.Add(list);
  
9:        }
  
10:        if (SetCurruntMonth == true)
  
11:        {
  
12:          MyddlMonthList.Items.FindByValue(DateTime.Now.Month.ToString()).Selected = true;
  
13:        }  

terça-feira, setembro 07, 2010

Profile asp.net

 A classe ProfileCommon não é gerada quando asp.net Application project. Para isso teremos de utilizar o WebProfileGenerator em:
  
 http://webprofile.codeplex.com/Thread/View.aspx?ThreadId=20291
  
 Para o utilizar com o Visual Studio 2010 temos de colocar uma pasta chamada AddIns e dentro colocar o ficheiro .dll.
  
 Teremos ainda de alterar o ficheiro (WebProfileGenerator.AddIn) de forma a contemplar o seguinte:
  
 (...)
  
 <code>
  
  <HostApplication>
  
   <Name>Microsoft Visual Studio</Name>
  
   <Version>10.0</Version>
  
  </HostApplication>
  
 </code>
  
 (...)
  
 De seguida surge dentro do Visual Studio uma opção (clique lado direito do botão do rato) para gerar a classe profile.
  
 Após classe gerada, podemos por exemplo adicionar uma opção de perfil a um determinado utilizador:
  
 <code>
  
  //Criar o profile para colocar a informacao adicional
  
       WebProfile webProfile = new WebProfile();
  
       WebProfile pro = webProfile.GetProfile(username.Text);
  
       pro.GenericField= ddlphc.SelectedItem.Value;
  
       pro.Save();
  
 </code>
  
 Não esquecer de definir o web.config:
  
 (...)
  
 <code>
  
 <profile defaultProvider="MyProfileProvider" enabled="true">
  
    <providers>
  
     <add name="MyProfileProvider" connectionStringName="intraweb.Properties.Settings.ConnString" applicationName="intraweb" type="System.Web.Profile.SqlProfileProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxx"/>
  
    </providers>
  
    <properties>
  
     <add name="GenericField" type="String" />
  
    </properties>
  
   </profile>
  
 </code>
  
 (...)  

Verificar também Custom Membership, Role Providers, Website administration tool, and Role based access to individual files:

http://beta.codeproject.com/KB/aspnet/innovative_rolebased_WAT.aspx?msg=3228998

sábado, setembro 04, 2010

JQuery para Date Picker

Primeiro efectuar download de Jquery:
http://jqueryui.com/download/

De seguida integra-lo no VS na solução. Copy paste dos scripts.

Colocar o seguinte código nos header das páginas.


<!-- Jquery para datepicker -->

        "<link href="../js/jquery-ui-1.8.4.custom/css/ui-lightness/jquery-ui-1.8.4.custom.css" rel="stylesheet" type="text/css" />

        <script type="text/javascript" src="../js/jquery-ui-1.8.4.custom/development-bundle/jquery-1.4.2.js"></script>

        <script type="text/javascript" src="../js/jquery-ui-1.8.4.custom/development-bundle/ui/jquery-ui-1.8.4.custom.js"></script>

        <script type="text/javascript" src="../js/jquery-ui-1.8.4.custom/development-bundle/ui/jquery.effects.core.js"></script>

        <script type="text/javascript" src="../js/jquery-ui-1.8.4.custom/development-bundle/ui/jquery.ui.datepicker.js"></script>

        <script type="text/javascript" src="../js/jquery-ui-1.8.4.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js"></script>

        <script type="text/javascript" >

            $(document).ready(function () {

                $.datepicker.setDefaults($.datepicker.regional['']);

                $("input[name*='dtactivodeTextBox']").datepicker($.datepicker.regional['pt-BR']);

                $("input[name*='dtactivodeTextBox']").datepicker();

                $("input[name*='dtactivoateTextBox']").datepicker($.datepicker.regional['pt-BR']);

                $("input[name*='dtactivoateTextBox']").datepicker();

                

            });

        </script>"

        <!-- Fim jquery datepicker -->

Multiselect Gridview

Adicionar propriedade de multiselect com inheritance.

http://www.mostlydevelopers.com/mostlydevelopers/blog/post/2008/09/17/MultiSelect-GridView-Control.aspx

sexta-feira, setembro 03, 2010

Formatar datas em datalist ou Gridview

De forma a aparecer o ShortDate deveremos colocar no itemtemplate o seguinte:

Eval(´date´, ´{0:d}´ )

http://forums.asp.net/t/1230232.aspx

Trocar acentos por aspas.

Plataforma de desenvolvimento: Windows + Visual Studio 2010
Linguagem de programação: .NET 4.0

quinta-feira, setembro 02, 2010

Problema .NET framework 4 com SeparatorImageUrl em MENU (ASP:NET)

O til (~) não é resolvido com Page.resolveclienteUrl.
O workaround para master pages é colocar no page.load:

//Necessário incluir este snipet para resolver questao do resoveclienturl dos separator menus
foreach (MenuItem binding in Menu1.Items)
{
binding.SeparatorImageUrl = ResolveClientUrl(binding.SeparatorImageUrl);
}

http://connect.microsoft.com/VisualStudio/feedback/details/537674/tilde-in-separatorimageurl-of-menuitem-control

Plataforma de desenvolvimento: Windows + Visual Studio 2010
Linguagem de programação: .NET 4.0