Category: Programação

  • Diferenças entre objetos

    Essa função retorna quais atributos são diferentes entre dois objetos, e opcionalmente você pode especificar apenas para verificar alguns desses atributos. function diff($objeto_antes, $objeto_depois, $atributos_especificos = array()) { $diff = array(); foreach ($objeto_antes as $atributo => $valor) { if (isset($objeto_depois->$atributo)) { // foram especificados atributos para comparar? … if (sizeof($atributos_especificos) > 0) { // ……

  • RuntimeError: dictionary changed size during iteration

    Em Python, o erro do título desse post acontece quando você percorre um dicionário e ele é mudado durante o laço. Isso pode acontecer quando fazemos: >>> dicionario = {‘nome’: ‘Julio’, ‘sobrenome’: ‘Nobrega’} >>> for k, v in dicionario.iteritems(): … print v … del dicionario[k] … Nobrega Traceback (most recent call last): File “”, line…

  • IFrame em CSS

    Barra de rolagem em uma caixa, com CSS. Parece IFrame mas não é 🙂 Basta usar o estilo: #id{ height:50px; width: 200px; overflow:auto; Por exemplo: Ipsem Lorem, com texto aleatório. Ipsem Lorem, com texto aleatório. Ipsem Lorem, com texto aleatório. Ipsem Lorem, com texto aleatório. Ipsem Lorem, com texto aleatório. Ipsem Lorem, com texto aleatório.…

  • Thread em Python

    Comecei a fazer uma GUI usando o wxPython para tocar um arquivo de música com o código de ontem. Implementei o botão de seleção do arquivo, que até filtra os arquivos a serem mostrados de acordo com as extensões especificadas. No meu caso, *.mp3 e *.ogg. Só que selecionado o arquivo, a interface travava. Pesquisando…

  • MP3 com Python

    Sem bibliotecas adicionais como libmpg123 ou gstreamer ou qualquer outra. Puro Python. Bem, quase, já que o PyMedia é escrito em sua maioria em C, mas depois de instalado você pode usar o import para trazê-lo. import pymedia.audio.sound as sound import pymedia.audio.acodec as acodec def playFile(file_name): file_extension = file_name.split(‘.’ )[ -1 ].lower() parms = {‘id’:…

  • Use RELAX NG ao invés de DTD ou XML Schema

    Continuando minhas aventuras por XML de ontem, eu estava fazendo um DTD para o arquivo e arranjei um validador em Python chamado PyXML. A vida estava ótima quando eu senti uma necessidade maior de especificar quais os tipos de dados poderiam entrar em cada elemento do xml.

  • Cordilheira Bar e o conflito XML Namespace com Schemas

    Hoje eu fui nesse bar beber com amigos Não sei fazer rima nem poesia Mas é assim que bebemos todas Foi três e dois fora Mas meu… me diverti pacas. Põe o click no site deles e faz uma carteirinha, que demora um dia pra ser feita, porque quem recebe o email é diferente da…

  • Select dinâmico

    No dia 03/09/2005, publiquei uma introdução ao Ajax. Como dei uma rápida passada nos assuntos principais, como DOM e o XMLHttpRequest, resolvi que era a hora de mostrar mais exemplos práticos, de situações corriqueiras ou interessantes, onde você pode usar Ajax e a biblioteca CPAINT. Então, vou ensinar como mudar os valores de um <select>,…

  • Navegando com Mechanoid

    Existe um programa chamado Mechanoid feito em Python, uma colagem dos programas que compõem o Mechanize, só que voltado à execução de determinadas tarefas específicas, como entrar no Sourceforge ou conferir o Yahoo Mail. Basicamente ele emula um navegador, abrindo páginas, clicando em links, preenchendo formulários. É tão fácil que dói os olhos…

  • SLOC em Python

    Um pequeno script em Python para contar o número de linhas de todos os arquivos em um diretório (e sub-diretórios). Apenas edite a variável diretorio. import os.path diretorio = “/var/www/html/site/” def visit(arg, dirname, names): for arquivo in names: arquivo_caminho = os.path.join(dirname, arquivo) if os.path.isfile(arquivo_caminho): f = open(arquivo_caminho) lines = len(f.readlines()) arquivos.append(lines) arquivos = [] os.path.walk(diretorio,…