Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - deni_celine

#1
Tiene buena pinta este tutorial c: estare pendiente de la segunda entrega.. Gracias por la iniciativa Sniffer  ;)
#2
La vdd el tema no va x la experiemcia xk un lenguaje nuevo se aprrende ademas eatamos en proceso de reclutar nvos desarrolladores para el proyecto , la pregunta iba mas x q lenguaje funcionaria mejor en temas de rendimiento y en general. Gracias de tpdas formas (:
#3
Hola, quería pedirles ayuda para tomar la mejor decisión para montar un sitio. Lo que necesito saber es que lenguaje me convendría utilizar en back end para montar una api restfull, yo en lo personal había pensado en trabajar con node por que lo conozco y puedo montarlo en heroku, pero me han recomendado usar rails, no sé, que opinan ustedes sería lo mejor para un sitio escalable y que permita alta demanda,
PD: el front end está desarrollado con angular :D
#4
Hola,

os queria preguntar si tienen una idea para poder obtener el contenido de unas páginas web de manera automática, más rápidamente..
corrí mi código y al verlo al día se quedo pegado luego de visitar 9000 páginas aprox... El problema es que tengo que obtener el resultado de un par de  millones de sitios
Estoy usando la librería openurl , dentro de un for.... dejo la parte del código ojalá me puedan ayudar :')

Código: python

candidate_proxies = [#un array de proxys]

fichero = open(archivo_resultado,"a")
for i in range(2000000):
website = "http://asfsagasf.pe?id="+i
print " > Procesando ["+i+"]"

for proxy in candidate_proxies:
print "Trying HTTP proxy %s" % proxy
try:
f = urlopen(website,proxies={'http': proxy}).read()
break
except:
print "Trying next proxy ..."

try:
datos = re.search( "<meta name=\"Keywords\".*?content=\"([^\"]*)\"", f ).group(1)
except:
print " > Error intentando leer de la pagina "+i
datos = "Error en "+i
#continue


try:
fichero.write(datos+"\n")
except:
print " > Error intentando escribir el archivo ["+i+"]"
#continue


#5
Python / Re:Archivos sin uso en un proyecto
Marzo 06, 2014, 11:24:23 PM
las observaciones o criticas constructivas son uno de los motivos por los que público xd así aprendo ;) asi que gracias brotha por tus consejos, y lo del punto 3 oh yesus! tienes razón, bueno estaba en un server windows asi que paso desapercibido xd  Saludos :D

edit: modifique el código con tus consejos, solo me quedo la duda del "with" , no sé bien para que sirve , le preguntare a google xD
#6
Python / Archivos sin uso en un proyecto
Marzo 06, 2014, 05:36:07 PM
Suponiendo que estamos en un proyecto web, y ahi muchso archivos que no utilizamos (imagenes, flash, etc) .. y nos da "flojera" ir haciendo una busqueda una por una para ver si se esta utilizando en alguna parte o no, puedes hacer un script que te simplifique la vida, o simplemente pq quieres hacer un script xD solo genere un listado para ver cuales son los archivos que no estaban mencionados en los fuentes, pero tomando esta idea podrías borrarlas o mejor aún moverlas a otro directorio de respaldo
aqui os dejo por si a alguien le sirve o quiere aportar  ;)

Código: python

import os,datetime,shutil
dir_explorar = "/var/www/mysitio"
#Crea lista de imagenes
print "Creando listado de imagenes..."
img = []
p_img = []
for root, dirs, files in os.walk(dir_explorar):
for f in files:
ext = f.split(".")[-1]
if  ext in ("jpg","gif","png","swf","jpeg","pdf"):
img.append(f)
p_img.append(os.path.join(root,f))

#Recorrer directorio para buscar las imagenes
print "Buscando en los archivos..."
en_uso = []

for root, dirs, files in os.walk(dir_explorar):
for f in files:
f = os.path.join(root,f)
ext = f.split(".")[-1]
if  ext in ("php","tpl","js","css"):
#print "-buscando en",f
with open(f,"r") as file:
texto2 = file.read()
cont = 0
for i in img:
if (texto2.find(i) > 0):
en_uso.append(p_img[cont])
cont = cont+1

#Obtneer img en deshuso desde las img en uso e_e
print "Generando listado de archivos en deshuso..."
sin_uso = [a for a in p_img if a not in en_uso]
"""
file=open('resultado.log','a')
file.write('Resultado\n')
file.write('------------\n')
file.write('\n'.join(sin_uso))
file.close()
print "Busqueda Finalizada, se ha generado resultado.log"
"""
ruta = "respaldo_"+datetime.datetime.now().strftime("%Y%m%d_%p%I%M")
print "Moviendo los archivos en deshuso..."
if not os.path.isdir(ruta):
os.mkdir(ruta)
for arc in sin_uso:
shutil.move(arc, os.path.join(ruta,arc.split(os.sep)[-1]))
print "Buscada Finalizada, archivos movidos a", ruta
#7
C / C++ / Re:Playfair
Marzo 05, 2014, 01:43:33 AM
esta tomando una clave por default que es 'playfair example' , si descomentas la linea 25 y comentas la 26 podrás cambiar la clave , y si tienes razón se cierra sin mostrar el resultado es que lo estaba ejecutando de la consola xd , si estas en windows ponele SYSTEM("PAUSE"); al final, onda línea 39
#8
C / C++ / Re:Playfair
Marzo 04, 2014, 05:08:58 PM
Tienes razón faltaba un poquito explicar que hacía jejje, pero en la Wiki esta bien explicado el cifrado en si, si tienes alguna duda respecto al programa me preguntas, antes programaba en otros lenguajes pero en c++ tb soy noob :D, aunque la mayoría de los lenguajes se parecen de alguna u otra forma
#9
C / C++ / Playfair
Marzo 04, 2014, 08:34:13 AM
Estaba en esto de querer aprender c plus plus y alguien me recomendo que hiciera este cifrado como ejercicio, dejo el código por si a alguien le sirve o mejor aún si a alguien se le ocurre una forma mejor

El cifrado playfair es ... bueno, es complicado de explicar, ya que va sustituyendo de a pares, usando una matriz de 5 x 5 que es generada por una clave y que contiene las letras del abecedario, salvo una , ya que son 26 letras y 5 x5 = 25, y despues aplica al mensaje un par de reglas para hacer la sustitución... mucho mejor les dejo el link a la wikipedia :D No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y en esta página puedes verlo en funcionamiento No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Código: cpp

#include <iostream>
#include <string>
#include <cstring>

using namespace std;

class PlayFair{
  private:
    char matriz[5][5];
  public:
    string cifrado(string, int);
    string descifrar(string);
    int inMatriz(char);
    void limpiaMatriz();
    void setMatriz(string);
    void showMatriz();
};

int main(){
  string clave,msj;
  PlayFair pf;

  cout << "Cifrado PlayFair"<<endl<<endl;
  cout << "introduce la clave > ";
  //getline(cin,clave);
  clave = "playfairexample";
  cout <<endl;

  pf.setMatriz(clave);
  pf.showMatriz();

  cout << endl;
  cout << "introduce el mensaje a cifrar > ";
  getline(cin,msj);

  string cifrado = pf.cifrado(msj,1);
  cout << "Mensaje cifrado : " << cifrado << endl;
  cout << "Msj. descifrado : " << pf.cifrado(cifrado,2) << endl;

}


int PlayFair::inMatriz(char valor){
    for(int i=0;i<5;i++){
      for(int j=0;j<5;j++){
        if(matriz[i][j] == valor){
          return 1;
        }
      }
    }
    return 0;
}

void PlayFair::limpiaMatriz(){
  for(int i=0;i<5;i++){
    for(int j=0;j<5;j++){
      matriz[i][j] = ' ';
    }
  }
}

void PlayFair::setMatriz(string clave){
  PlayFair::limpiaMatriz();
  int i=0;
  int j=0;
  //coloca la clave en la matriz
  for(int a=0;a<clave.size();a++){
    if(PlayFair::inMatriz(clave[a]) == 0)
      matriz[i][j++] = tolower(clave[a]);
    if (j==5){
      j = 0;
      i++;
    }
  }
  char abc[26]={'a','b','c','d','e','f','g','h','i','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
  //termina llenar la matriz con el abecedario
  for(int a=0;a<26;a++){
    if(PlayFair::inMatriz(abc[a]) == 0)
      matriz[i][j++] = abc[a];
    if (j==5){
      j = 0;
      if(i==5){
        continue;
      }
      i++;
    }
  }
}

/*
Metodo cifrado -> tipo 1: cifrar, tipo 2: desifrar
*/
string PlayFair::cifrado(string msj, int tipo=1){
  string result,msj2;

  //Verifica que el mensaje este en la matriz, si 2 caracteres se repiten pone una 'x' en medio, y pasa a minusculas.
  char ant;
  for(int i=0;i<msj.size();i++){
      for(int x=0;x<5;x++){
        for(int y=0;y<5;y++){
          if(matriz[x][y]==tolower(msj[i])){
            if(msj[i]==ant){
                msj2 += "x";
            }
            msj2 += tolower(msj[i]);
            ant = tolower(msj[i]);
          }
        }
      }
  }
  msj = msj2;
  //Si el largo del mensaje es impar, agrega una 'x' al final.
  if ((msj.size()%2)!=0){
    msj += "x";
  }

  //Recorre el msj
  for(int i=0;i<msj.size();i++){
    int j= i+1;
    int pos_x1 = 0;
    int pos_y1 = 0;
    int pos_x2 = 0;
    int pos_y2 = 0;
    int flag = 0;
    int in_fila = 0;

    // verifica caracteres en horizontal
    for(int x=0;x<5;x++){
      for(int y=0;y<5;y++){
        if(matriz[x][y]== msj[i]){
          pos_x1 = x;
          if(tipo ==1){
              if(y<4){
                pos_y1 = y+1;
              }
              else{
                pos_y1 = 0;
              }
          }
          else{
              if(y>0){
                pos_y1 = y-1;
              }
              else{
                pos_y1 = 4;
              }
          }
          in_fila++;
        }
        if(matriz[x][y]== msj[j]){
          pos_x2 = x;
          if(tipo ==1){
              if(y<4){
                pos_y2 = y+1;
              }
              else{
                pos_y2 = 0;
              }
          }
          else{
              if(y>0){
                pos_y2 = y-1;
              }
              else{
                pos_y2 = 4;
              }
          }
          in_fila++;
        }
      }
      if (in_fila == 2){
        flag = 1;
      }
      in_fila = 0;
    }

    // verifica caracteres en vertical
    if (flag==0){
        for(int y=0;y<5;y++){
          for(int x=0;x<5;x++){
            if(matriz[x][y]== msj[i]){
              pos_y1 = y;
              if(tipo==1){
                if(x<4){
                    pos_x1 = x+1;
                }
                else{
                    pos_x1 = 0;
                }
              }
              else{
                  if(x>0){
                    pos_x1 = x-1;
                  }
                  else{
                    pos_x1 = 4;
                  }
              }
              in_fila++;
            }
            if(matriz[x][y]== msj[j]){
              pos_y2 = y;
              if(tipo==1){
                if(x<4){
                    pos_x2 = x+1;
                }
                else{
                    pos_x2 = 0;
                }
              }
              else{
                  if(x>0){
                    pos_x2 = x-1;
                  }
                  else{
                    pos_x2 = 4;
                  }
              }
              in_fila++;
            }
          }
          if (in_fila == 2){
            flag = 1;
          }
          in_fila = 0;
        }
    }

    //verifica rectangulos
    if (flag==0){
      for(int x=0;x<5;x++){
        for(int y=0;y<5;y++){
          if(matriz[x][y]== msj[i]){
            pos_x1 = x;
            pos_y2 = y;
          }
          if(matriz[x][y]== msj[j]){
            pos_x2 = x;
            pos_y1 = y;
          }
        }
      }

    }

    result += toupper(matriz[pos_x1][pos_y1]);
    result += toupper(matriz[pos_x2][pos_y2]);
    result += " ";

    i++;
  }
  return result;
}


void PlayFair::showMatriz(){
  //muestra la matriz
  for(int i=0;i<5;i++){
    for(int j=0;j<5;j++){
      cout << PlayFair::matriz[i][j];
    }
    cout << endl;
  }
}

#10
Python / Re:[TPC-C] #2 Cifrado de Vigenère
Febrero 24, 2014, 09:20:11 PM
q mal q nadie gano :c , para la otra! el code publicado tampoco descifra bien y no esta contemplando la "a" ni la "z" , dijo el picado xD
#11
Dudas y pedidos generales / Re:ayuda
Febrero 22, 2014, 04:55:59 PM
un raw_input en una lista por comprensión? no lo habia pensado, interesante :D
#12
Hola! , intentaste modificar la libreria para reemplazar md5?, al parecer en python 2.6.6 no esta incluido el modulo, pero si estos 2...
Código: python

import _md5
import hashlib

a1 = _md5.new("hola")
a2 = hashlib.md5("hola");

print a1,a2


al parecer hashlib.md5() retorna lo mismo que No tienes permitido ver los links. Registrarse o Entrar a mi cuenta() en python 2.7
#13
te sirve una libreria externa? No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
si usas linux la puedes bajar con apt-get install libcln-dev
y luego sería algo asi como
Código: cpp

cl_I funcion(long f, int y, int z){
   cl_I x = f;
   while(y <= z){
      x = x * y;
      y = y + 1;
   }
   return x;
}

#14
Python / Re:Detectar Unidades (HDD o FlashDrives)
Febrero 20, 2014, 04:50:39 PM
los resultados que obtiene la función son, en mi caso...

59322604 = 11100010010011000011101100
29661302 = 1110001001001100001110110
14830651 = 111000100100110000111011
7415325   = 1110001001001100001110

por eso digo que se va moviendo un bit, a la izquierda .... es una explicación un tanto rara, pero con el ejemplo se entiende.... como dije estoy aprendiendo y aún entiendo menos de la mitad de lo que dijiste xd , de todas formas es interesante
#15
Python / Re:Detectar Unidades (HDD o FlashDrives)
Febrero 20, 2014, 03:21:22 PM
& es un AND a nivel de bits y va preguntando bit by bit si es verdadero , la siguiente instrucción es para moverse al siguiente bit
Código: python

drive_bitmask >>= 1


y Si como dice Sanko se obtendría el mismo resultado con

Código: python

    if drive_bitmask:#True


pero mejor validado xd

Y se hace esto debido a que en el resultado de la función GetLogicalDrives el primer bit corresponde a la unidad A, el siguiente B, el tercero a C y asi sucesivamente.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Bueno eso es lo que entendí  yo .... que solo estoy aprendiendo xd
#16
Python / Re:Detectar Unidades (HDD o FlashDrives)
Febrero 20, 2014, 01:08:10 PM
Basandome en tu code y en lo comentado por Sanko se me ocurre algo asi para detectar cuando algn conecta un pendrive

Código: python

import ctypes
import time
print "is running.."
while(1):
    drive_bitmask = ctypes.windll.kernel32.GetLogicalDrives()
    for letter in range(65,91):
        if drive_bitmask & 1:
            unidad = chr(letter)+ u":\\"
            if (ctypes.windll.kernel32.GetDriveTypeW(unidad)==2) :
                print "se ha insertado",unidad
                #hace algo
                time.sleep(3600) #duerme un ratito
        drive_bitmask >>= 1
#17
Python / Re:Detectar Unidades (HDD o FlashDrives)
Febrero 20, 2014, 11:49:00 AM
interesante! hace poco estaba pensando en como detectar cuando se conecta un pendrive....
#18
Python / Re:[TPC-C] #2 Cifrado de Vigenère
Febrero 17, 2014, 05:57:24 PM
ahora lo entiendo todo xd ya envíe mi code!
#19
Python / Re:[TPC-C] #2 Cifrado de Vigenère
Febrero 17, 2014, 04:01:29 PM
Holaaaa , tengo una duda respecto a este reto, o mejor dicho respecto a los criterios de evaluación :3
uno de los puntos dice : "Número de librerías utilizadas: será mejor la calificación mientras menos librerías se requieran para cumplir el o los objetivos."
Pero en enlaces de ayuda hacen mensión a Itertools , que es mejor evaluado, hacer uso de la libreria o no hacerlo ?

Saludos :P
#20
Python / Re:The Python Challenges
Febrero 15, 2014, 09:55:49 PM
y de que va el nuevo reto ?