Mover Ficheiros De Um Repositório Para Outro com Subversion.

Ontem, num curta sessão de manutenção dos meus repositórios de Subversion, senti necessidade de reorganizar algumas, como creio ser “normal” ao fim de algum tempo. Tendo a organizar o meu SVN como múltiplos repositórios, um por projecto. Dentro de cada repositório tenho os diversos projectos de classes, sites ou aplicações associados. Tenho assim vários repositórios contextualizados e mais pequenos, em vez de um repositório geral com diversos projectos. A única dificuldade que apresenta é o backup / dump que obriga a manter um script com a lista de comandos de “svnadmin dump” para cada repositorio individual.

Continue reading

Less.js – Less em javascript!

O Less é um framework de escrita de css que permite utilizar variáveis, herança e outros coisas giras. Mencionei-o há uns posts atrás, linkando as versões de ruby e .net. As versões que mencionei são construídos server-side. Actualemnte, o Less está a ser portado para javascript, permitindo a mesma funcioanlidade mas processado do lado do cliente. Este post refere essa evolução:

http://fadeyev.net/2010/06/19/lessjs-will-obsolete-css/

Outro framework do género a ver: Sass http://sass-lang.com/

Livros para trocas

Tenho por aqui alguns livros que ou já li, ou que ainda não li mas também já não tenho grande interesse em manter por não ter perspectivas de ler. Na verdade, tenho acumulado alguns livros nas prateleiras que num momento ou noutro tinham interesse, mas neste momento não estou focados neles. Alguns nem comecei a ler (infelizmente). Uma questão de prioridades…

O que procuro é orientar outros livros que me possam interessar, seja para referencia, seja para explorar novos temas. Não estou muito preocupado com o estado impecável dos livros, se bem que quanto melhor, melhor. Procuro mais livros sobre algoritmia, padrões de código, e arquitectura, como também algumas tecnologias / linguagens como o Ruby, Processing, OpenFrameworks, ASP.NET MVC, Javascript, AJAX, Programação por objectos, Mecurial, Git, temas avançados de Web Services / WCF / SOA e C# e Asp.NET, DSLs, NHibernate, Code Generation, Silverlight, WPF, aspectos de engenharia de software, desenvolvimento de aplicações (processo e gestão) e até o “business side” das coisas…

Os que já não preciso:

  • Expert C# 2008 Business Objects

    Este livro é acerca da framework CLSA.NET – uma framework muito completa para desenvolvimento de aplicações, escrito pelo autor do projecto. Comprei na altura para puxar algumas ideias para a minha própria framework.Tirei algumas ideias que me interessavam na altura.

  • Interface-Oriented Design

    Sou fã dos livros da Pragmatic Bookshelf. Tenho alguns lidos e por ler, quer físicos quer ebooks. Este é interessante e discute abordagens de design de código recorrendo a interfaces.

  • The Object Oriented Thought Process

    Este foi lido com alguma rapidez e está interessante. Comprei este livro com o intuíto de ajudar aqui o pessoal a readquirir alguns dos conceitos de programação por objectos. A descrição podia ser melhor, especialmente nas questões básicas, Ainda assim, aborda com exemplos e algumas figuras a POO.

  • Visual Studio Tools for Office

    Num projecto, estava planeado desenvolver uns componentes para integrar com o Outlook, e na altura.. siga livros para estudar. Felizmente não foi necessário. De qualquer forma, neste caso, tinha acertado na versão errada do livro – Office 2003 – e portanto pode não servir para todos. De qualquer forma pode ser útil para alguém em termos e sistemas legados?

  • Outlook 2007 Programming

    idêntico ao anterior em termos de objectivo, mas este livro estava orientado À versão correcta. Tal como o anterior, estão novíssimos.

  • Iron Python In Action

    Este comprei no sentido de aprender uma nova linguagem. Preferencialmente uma dinâmica, para captar novos modos e abordagens a resolução de problemas e algoritmos, e o Python parecia-me bom candidato. Tinha na altura visto vídeos acerca do Iron Python em Silverlight e isso despertou-me. Infelizmente as prioridades impediram-me de ver este livro. Hoje preferia Iron Ruby, já que temos alguns projectos com o Ruby (normal) a decorrer. Mais um novíssimo…

  • SQL Server 2008 Administration in Action

    Mais uma associado a um caminho provável de um projecto que teria de estudar. Ja tinha conhecimentos com o 2005, mas ainda não conhecia as novidades do 2008, muito menos as ferramentas de gestão das mesmas. Está novíssimo, pois não foi necessário ver, e as prioridades, como sempre, fizeram-me escolher outros primeiro.

  • Quem tiver interesse num destes títulos, digam qualquer coisa. Ou se tiverem títulos interessantes, listam-nos cá nos comentários! 😀

    Ruby Warrior

    Acabei há instantes o nível intermédio (o segundo dos dois níveis) do Ruby-Warrior, um jogo criado para ensinar inteligência artificial com base em Ruby. O jogo é muito simples e muito divertido, especialmente para quem é geek (lol) e gosta de programar. Aqui no escritório temos o desafio interno de terminar o jogo sem recorrer a ajudas externas. Felizmente consegui sem externas e quase sem usar as pistas que o jogo nos dá quando morremos.

    O jogo é muito simples – visualmente é texto na linha de comandos – e temos de mover a nossa personagem pelos diversos níveis da torre, para chegar ao topo e salvar a princesa. Pelo meio vamos encontrando diversos inimigos e pessoal que precisa de ser salvo. No jogo, programamos a nossa personagem de modo a tomar as decisões correctas para ultrapassar os inimigos e chegar à escadaria de cada nível.

    O modo iniciante é jogado apenas a uma dimensão (um eixo apenas) enquanto o segundo modo (intermédio) já decorre a duas dimensões tornando necessário implementar decisões de prioridade relativo a direcções em que devemos actuar. Assim, somos obrigados a analisar o meio envolvente e prioritizar as acções.

    O jogo é muito giro, e permite ensinar bastante acerca do Ruby, especialmente a definição de métodos e mecanismos de controlo (if /elsif /else e array e for). Também ajuda a descubrir formas de criar decisões em código.

    Recomendo vivamente experimentarem – o código pode ser puxado do GitHub do Ryan Bate. Tinha pensado colocar aqui o meu código, mas achei melhor não.. é melhor experimentar e descobrir. Se bem que posso partilhar a minha solução com quem quiser ver 😀

    .Less (Dot Less) -> “CSS on Steroids”

    Ainda no outro dia, falava com os meus colegas de como seria muito bom que o CSS tivesse estruturas de herança incorporados e variáveis.. especialmente variáveis, para não ter de definir constantemente as mesmas coisas.

    E hoje enquanto lia o blog do Spaanjaars, descubir o .Less, uma biblioteca dedicada a extender o CSS, introduzindo variáveis e esquemas de herança. Soa bem? Se soa!! 😀

    Com o .Less, podemos escrever codigo com variáveis:

    @brand_color: #4D926F;
    
    #header {
      color: @brand_color;
    }
    
    h2 {
      color: @brand_color;
    }
    

    Ou nestings de selectores:

    #header {
        color: red;
        a {
           font-weight: bold;
           text-decoration: none;
        }
    }
    

    Ou misturas de elementos:

    .rounded_corners(@radius: 5px) {
      -moz-border-radius: @radius;
      -webkit-border-radius: @radius;
      border-radius: @radius;
    }
    
    #header {
      .rounded_corners;
    }
    
    #footer {
      .rounded_corners(10px);
    }
    

    Lindo, né? Originalmente, o Less foi construído para o Ruby (é um gem para o Ruby), mas um grupo converteu-o para .Net, criando o .Less. E ainda bem! No .Net, funciona como um HTTPHandler. Os ficheiros de CSS são ficheiros .less que são transformados aquando do pedido da página. É também possível usar templates T4 para criar versões estáticas do CSS.

    A experimentar!