Aug 31

Desde o dia 16 de Agosto que a Vodafone introduziu uma nova taxa de 5€ para quem quiser trocar o tarifário do seu cartão e que já o tivesse feito pelo menos uma vez. Quer isto dizer que se já trocaram de tarifário no vosso cartão, ainda que há muito tempo (no meu caso tinha trocado há dois anos e meio), então são abrangidos por esta taxa.

Segundo a explicação que me deram numa loja Vodafone, isto serve para impedir que as pessoas utilizem o tarifário extreme/extravaganza, e que após acumularem algum crédito, que troquem para os tarifários livres até esgotarem os fundos, e repitam novamente o processo. Escusado será dizer que pelo meio muitas pessoas como eu são apanhadas sem terem culpa disto. Neste aspecto Optimus está de parabéns, porque não embarcou na mesma cantiga.

O segredo passa por ligar para o centro de apoio a clientes e explicarem precisamente isso, que querem trocar de tarifário, e que não é justo que vos obriguem a pagar por um comportamento de terceiros. Et voila! Acabam de poupar 5€.

Tagged with:
Aug 19

A resposta é simples: Não utilizem esse plugin.

Desde o inicio do meu blog que utilizava esse plugin, mas tendo em conta que sei que é perfeitamente possível enviar tweets sem recorrer a APIs xpto (tenho um script simples feito em PHP para enviar os alertas do Nagios para o twitter e que continua a funcionar) achei por bem procurar alternativas. E nem foi preciso procurar muito. O Simple Tweet funcionou na perfeição sem a treta do Oauth.

Mais informação sobre o plugin aqui.

EDIT: A partir do inicio deste mês, o serviço deixou efectivamente de funcionar. Contudo os acessos directos continuam a funcionar (é particularmente útil para quem queira desenvolver aplicações de interacção com o twitter sem ter de recorrer ao oAuth). Como exemplo disso tenho o meu script de actualização do nagios ainda a funcionar (podem sacar do phpclasses.org).

Tagged with:
Aug 07

Descobri por acaso um artigo que continha informação que era útil para um projecto meu.
Como o meu projecto utiliza a tecnologia .Net, aproveitei para rescrever a função que aqui disponibilizo para o caso de ser útil para alguém.

Public Class dlink
    Private mac_ As String
    Public Sub New(ByVal mac As String)
        mac_ = mac
    End Sub
 
    Public Function generate() As String
        Dim password(20) As String
        For i = 0 To mac_.Length - 1
            Select Case i
                Case 0
                    password(1) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 1
                    password(3) = dictionary(mac_.Substring(i, 1))
                    password(12) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 2
                    password(5) = dictionary(mac_.Substring(i, 1))
                    password(17) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 3
                    password(7) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 4
                    password(9) = dictionary(mac_.Substring(i, 1))
                    password(18) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 5
                    password(11) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 6
                    password(10) = dictionary(mac_.Substring(i, 1))
                    password(13) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 7
                    password(8) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 8
                    password(6) = dictionary(mac_.Substring(i, 1))
                    password(14) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 9
                    password(15) = dictionary(mac_.Substring(i, 1))
                    password(4) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 10
                    password(2) = dictionary(mac_.Substring(i, 1))
                    password(19) = dictionary(mac_.Substring(i, 1))
                    Exit Select
                Case 11
                    password(0) = dictionary(mac_.Substring(i, 1))
                    password(16) = dictionary(mac_.Substring(i, 1))
                    Exit Select
            End Select
        Next
        Return Join(password, "")
    End Function
 
    Private Function dictionary(ByVal letter As Char) As Char
        Select Case letter.ToString.ToUpper
            Case "1"
                Return "r"
                Exit Select
            Case "2"
                Return "q"
                Exit Select
            Case "3"
                Return "a"
                Exit Select
            Case "4"
                Return "H"
                Exit Select
            Case "5"
                Return "N"
                Exit Select
            Case "6"
                Return "p"
                Exit Select
            Case "7"
                Return "d"
                Exit Select
            Case "8"
                Return "S"
                Exit Select
            Case "9"
                Return "Y"
                Exit Select
            Case "0"
                Return "X"
                Exit Select
            Case "A"
                Return "w"
                Exit Select
            Case "B"
                Return "8"
                Exit Select
            Case "C"
                Return "6"
                Exit Select
            Case "D"
                Return "2"
                Exit Select
            Case "E"
                Return "1"
                Exit Select
            Case "F"
                Return "5"
                Exit Select
            Case Else
                Return " "
        End Select
 
    End Function
End Class

A classe é muito simples de usar:

dim myDlink as new dlink("aabbccddee")
myDlink.generate()

Não se esqueçam que aceder a redes sem a devida permissão é crime punível por lei!

Tagged with:
preload preload preload