Mudanças previstas no Ubuntu 12.04

Posted in Linux, Tecnologia with tags on 8 de novembro de 2011 by fchevitarese

Opa!

Segue um breve post mostrando algumas mudanças para a versão nova do Ubuntu 😉

http://www.tiagohillebrandt.eti.br/blog/2011/11/mudancas-previstas-para-o-ubuntu-12-04-precise-pangolin

Abraços!

Montagem automática via fstab

Posted in Dicas, Linux, Tecnologia with tags on 21 de outubro de 2011 by fchevitarese

Opa!

Blog às moscas… Muito tempo sem postar… Mas como eu não sei tudo de cor no linux ( xD ), sempre que eu preciso de alguma coisa, recorro ao nosso querido amigo Google 😉

Eis que eu tava precisando montar uma hd (leia – partição) automáticamente, via fstab. Isto lógico, não tem segredo algum, é mto fácil… Trivial 😉

Mas, eu encontrei uma “dica” muito bacana de como fazer…

Segue o link abaixo 😉

http://www.bunkerhollow.com/blogs/matt/archive/2010/07/17/ubuntu-10-04-automatically-mount-drives-on-boot-with-fstab.aspx

 

 

 

 

 

 

 

Adobe Flash Player 64-bits disponibilizado no Ubuntu

Posted in Linux, Tecnologia with tags , on 11 de outubro de 2011 by fchevitarese

Hoje a Canonical efetuou a inclusão do Adobe Flash Player 64-bits em seu repositório partner. Sendo assim, o aplicativo está disponível para download na Central de Programas do Ubuntu de quem tem o repositório habilitado, nas versões 11.04 e 11.10 do sistema operacional.

Isso põe fim a um dos maiores inconvenientes para os usuários da versão 64 bits do sistema operacional: a execução do Flash 32 bits através do “plugin wrapper“, que até então era responsável por torná-lo compatível com a versão amd64.

Instalação

Para efetuar a instalação do aplicativo, na Central de Programas do Ubuntu acesse o menu Editar > Canais de software. Na janela que abrir, clique na aba Outro software e marque o repositórioParceiros da Canonical.

Agora, basta buscar na Central de Programas por flashplugin. Instale o pacote Plug-in do Adobe Flash.

Referências

http://www.omgubuntu.co.uk/2011/10/flash-ubuntu-64-install-easily-1110/

 

Fonte: http://www.tiagohillebrandt.eti.br/blog/2011/10/adobe-flash-64-bits-disponibilizado-no-ubuntu/

Bakcup e restauração de banco de dados Postgres

Posted in Dicas, Tecnologia with tags on 31 de agosto de 2011 by fchevitarese

Opa!

Achei um link bacana com os comandinhos para fazer o backup e restauração de banco de dados postgres.

Se googlar, acha um zilhão de links é lógico, mas esse eu achei bem organizadinho 😛

Fica a dica 😉

http://www.thegeekstuff.com/2009/01/how-to-backup-and-restore-postgres-database-using-pg_dump-and-psql/

 

Abraços

 

 

 

 

Screenshots do Ubuntu 11.10

Posted in Inutilidades, Linux with tags on 30 de agosto de 2011 by fchevitarese

Opa!!
O Blog está às moscas… Não tenho tido muito tempo e nem mesmo muita inspiração para postar, apesar de estar trabalhando com algumas coisas bem legais que dariam vários e vários posts…

Seguem mais uma “inutilidade”…

Screenshots do Ubuntu 11.10 😉

http://www.jonobacon.org/2011/08/26/ubuntu-11-10-so-far-screenshot-tour/

Abraços!

Extendendo User do Django

Posted in Django, Programação, Python, Tecnologia with tags , on 28 de junho de 2011 by fchevitarese

Opa!!!

Bom, resolvi criar o artigo ou post (sei lá) pois tenho acompanhado na lista diversas dúvidas à este respeito.
O cabra quer criar usuários utilizando o User que o próprio Django oferece, mas com alguns campos que são pertinentes a aplicação dele.

Na própria documentação do Django, tem uma explicação bacana de como se fazer:
http://docs.djangobrasil.org/topics/auth.html#armazenando-informa-es-adicionais-sobre-usu-rios

Outro artigo muito bom (inglês) é este aqui.
http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance

Eu implementei utilizando o artigo acima, só que ele apresenta um “problema”. Não sei se realmente é um bug do Django ou o que pode ser.
O fato é que mesmo ao se extender o Users do Django, quando você cria o novo usuário, a senha não é encriptada.
Perguntei na lista e fui aconselhado a sobrescrever o método save do User.
Não achei que fosse a melhor solução, mas no fim das contas, foi o que tive que fazer.

Como eu só utilizava a rotina de adição de usuários através do admin, ficou muito fácil de sobrescrever o método.
Eu criei uma classe padrão para o Admin dos meus usuários e todas as outras classes referentes extendiam dela 😉

Ficou assim:

class defaultAdminModel(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.set_password(obj.password)
        obj.save()

As outras classes ficaram assim:

class AdminLocaisAtendimento(defaultAdminModel):

Enfim, é isto 😛

Abraços!

Django Admin – Filtro com ForeignKey

Posted in Django, Programação, Python, Tecnologia with tags , on 22 de junho de 2011 by fchevitarese

Opa!

Não sei se o título foi claro, mas vou explicar o “problema” que tive e colocar o link da solução que eu encontrei no fantástico DjangoSnippets ^^
2 models relacionados e eu precisava filtrar no admin por um campo do model “pai” que não seu id ou instância.
( Acho que é isto xD )
Vamos exemplificar com códigos para ficar mais explicado ^^.

Model A:


class modelA(models.Model):
    descricao = models.CharField(max_length = 30)
    versao_dados = models.IntegerField(unique = True)
    arquivo = models.FileField(upload_to='tempfolder')

class modelB(models.Model):
    papai = models.ForeignKey(modelA) #Papai! kkkkk
    codigo = models.IntegerField()
    descricao = models.CharField(max_length = 100)
    class Meta:
        unique_together = (('rol', 'codigo'),)

Como você pode ver, se eu tentar cadastrar um modelA com a mesma versão já existente, o Django não deixará porque ele é único 😉

Já no modelB é um pouco diferente. Estou utilizando o unique_together, onde ele verificará como um registro único a união de papai e código, ou seja, eu poderei ter vários códigos repetidos, desde que cada um pertença a um papai diferente! xD ( Eu me acho engraçado às vezes kkk )
Este é o comportamento que eu preciso na minha aplicação 😉

Já no admin, eu precisava de um list_filter para o modelB que pudesse me mostrar a lista de versões cadastradas no modelA, e filtrar os dados do modelB de acordo com o que eu selecionar.
Ah tá!! Mas o Django não faz isto 😦 –> (Damn it!)  Bom, pelo menos não achei nada parecido 🙂

Então achei um snippet que faz workar! ^^

Aqui está o link da criança!
http://djangosnippets.org/snippets/2194/

No meu caso, eu coloquei o código dentro de uma pasta chamada utils, onde eu coloco algumas coisas que são peculiares a cada app.

O modelA ficou do mesmo jeito, já o modelB ficou assim:


class modelB(models.Model):
    papai = models.ForeignKey(modelA) #Papai! kkkkk
    papai.fk_filterspec = {'fk_field': 'versao_dados', }
    codigo = models.IntegerField()
    descricao = models.CharField(max_length = 100)
    class Meta:
        unique_together = (('rol', 'codigo'),)

Lembrando que é necessário importar o primeiro trecho que no meu caso, eu coloquei dentro de um arquivo que chamei de filterSpects, dentro da pasta utils da minha app.
Então ficou assim:

 from app.utils.filterSpecs import FkFilterSpec
 FkFilterSpec.register_filterspec()

Já no admin, ficou assim:

 list_filter = ('papai__versao_dados',)

Enfim, ficou bão !  ^^

Espero que seja útil pra mais alguém!!!

Abraços.objects.all()