July archive
Software proprietaros em linguagem Open Source
July 23, 2010
Não sei bem por onde começar escrever este post, mas vamos lá.Hoje achei na internet um software proprietario que usava quando tinha empresa de webhost com o source aberto, bom sou programador e logo baixei para ver o source. Graças a Deus não uso ele ainda, me deu muito medo de olhar a estrutura do software e codigo, à lembrando que esta em php 3 (lol).
Se você tem software Open Source ou principalmente proprietario tem que fornecer uma estrutura robusta para o seu software sejá ele trabalho colaborativo ou corporativo.
Open source você ganha em promoção pessoal e na própria venda de serviços a quem confiou em você porque mostrou que tem capacidade de fazer algo que sirva.
Projeto proprietário precisa de investimento inicial às vezes alto e para dar retorno precisa ser vendido. Isto geralmente é difícil porque quase sempre tem um similar free e Open Source.
Estude os modelos disponíveis por aí e discuta com a equipe como pretendem ganhar dinheiro.
Bom é isso ai, espero ajuda você empresa ou profissional rever alguns conceitos
TDA Fila com Python
July 23, 2010
O foco este post é levar você aprender computação com Python. O TDA Fila é definido pelas seguintes operações: __init__ Inicializar uma nova fila vazia. insert Adicionar um novo item à fila. remove Remover e retornar um item da fila. O item retornado é o que foi adicionado primeiro. isEmpty Checar se a fila está vazia. Segue abaixo um source para explica melhor a implementação "TAD Fila".class Queue:
def __init__(self):
self.length = 0
self.head = None
def isEmpty(self):
return (self.length == 0)
def insert(self, cargo):
node = Node(cargo)
node.next = None
if self.head == None:
# if list is empty the new node goes first
self.head = node
else:
# find the last node in the list
last = self.head
while last.next: last = last.next
# append the new node
last.next = node
self.length = self.length + 1
def remove(self):
cargo = self.head.cargo
self.head = self.head.next
self.length = self.length - 1
return cargo
Existem duas invariantes para um objeto Fila bem formado: o atributo length deve ser o número de nós na fila.
>>> from Queue import * >>> start = new Queue() >>> start.insert(50) >>> start.insert(99) >>> start.insert(10) >>> while not start.isEmpty(): print start.remove() 50 99 10
Pilhas com listas de Python
July 23, 2010
Pilhas com listas de Python
O foco este post é levar você aprender computação com Python. As listas de Python são bem parecida com às operações que define uma pilha.
Segue abaixo um source para explica melhor a implementação "TAD Pilha"
class Stack :
def __init__(self) :
self.items = []
def push(self, item) :
self.items.apend(item)
def pop(self) :
return self.items.pop()
def isEmpty(self) :
return (self.items == [])
Uma pilha é uma estrutura de dados genérica, o que significa que podemos adicionar qualquer tipo de ítem a ela.
Usando:
>>> from Stack import *
>>> start = Stack()
>>> start.push(50)
>>> start.push(23)
>>> start.push("+")
>>> while not start.isEmpty() :
... priint start.pop()
Python é uma otima linguagem para ser academica.
Fail no Sonora - terra.com.br
July 16, 2010
![]() |
| Estagiário que escreve o software do terra.com.br |
Trabalhando com Location em php para Android
July 15, 2010
Veja como trabalhar com PHP + Android + Locationinclude("Android.php");
$droid = new Android();
$droid->dialogCreateAlert();
$result = array();
$latitude = $droid->getInput("Location", "Latitude: ");
$longitude= $droid->getInput("Location", "Longitude: ");
$locations = $droid->geocode($latitude['result'], $longitude['result']);
foreach ($locations['result'] as $location)
{
$location = get_object_vars($location);
foreach ($location as $key => $value)
{
$result[] = ucfirst(str_replace('_', ' ', $key)).': '.$value;
}
}
$droid->dialogSetItems($result);
//displays the box
$droid->dialogShow();
by Anton
Teste e qualidade de software (TDD)
July 15, 2010
Quando falamos em "Teste e qualidade de software" nós programadores já devemos ter em mente uma técnica chamada Test Driven Development (TDD) em português Desenvolvimento dirigido por testes é uma técnica de desenvolvimento que gera em torno de um ciclo repetições:- Desenvolvedor escreve um caso de teste automatizado que define uma melhoria desejada ou uma nova funcionalidade.
- É produzido código que possa ser validado pelo teste para posteriormente o código ser refatorado para um código sob padrões aceitáveis.
Um pouco mais sobre Google Friend Connect
July 7, 2010
Novos icones dos Serviço Google
July 7, 2010
CurtiBadge button do iGrape Framework
July 6, 2010
Para os amantes de Python, vem ai o novo framework iGrape Python
July 4, 2010
Bom é com grande prazer anunciar a version 0.1 do iGrape Python esta disponivel para todos contribuir para uma grande saga de CODES para o mesmo. A version 0.1 do iGrape Python esta utilizando o mod_python para fazer a renderização HTML Github TwitterORM Python para MongoDB - MongoEngine
July 3, 2010
O MongoEngine é um ORM para MongoDB escrito em Python, o developer team do MongoEngine busca trabalhar exatamente igual ao ORM do Django.
Uso o MongoEngine em muitos projetos e ele é o ORM MongoDB oficial do iGrape Python (Ainda não esta disponivel on-line, estamos terminando os teste para depois disponibilizar.
O MongoEngine trabalha com o pyMongo, então antes de instalar o MongoEngine instale o pyMongo.
Chega de blablabla, vamos ao exemplo:
class BlogPost(Document):
title = StringField(required=True, max_length=200)
posted = DateTimeField(default=datetime.datetime.now)
tags = ListField(StringField(max_length=50))
class TextPost(BlogPost):
content = StringField(required=True)
class LinkPost(BlogPost):
url = StringField(required=True)
# Create a text-based post
>>> post1 = TextPost(title='Using MongoEngine', content='See the tutorial')
>>> post1.tags = ['mongodb', 'mongoengine']
>>> post1.save()
# Create a link-based post
>>> post2 = LinkPost(title='MongoEngine Docs', url='hmarr.com/mongoengine')
>>> post2.tags = ['mongoengine', 'documentation']
>>> post2.save()
# Iterate over all posts using the BlogPost superclass
>>> for post in BlogPost.objects:
... print '===', post.title, '==='
... if isinstance(post, TextPost):
... print post.content
... elif isinstance(post, LinkPost):
... print 'Link:', post.url
... print
...
=== Using MongoEngine === See the tutorial
=== MongoEngine Docs === Link: hmarr.com/mongoengine
>>> len(BlogPost.objects)
2
>>> len(HtmlPost.objects)
1
>>> len(LinkPost.objects)
1
# Find tagged posts
>>> len(BlogPost.objects(tags='mongoengine'))
2
>>> len(BlogPost.objects(tags='mongodb'))
1
Simples de trabalhar assim né, agora mão na massa vamos migrar nosso sistema que usa MongoDB para MongoEngine





