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 - grep

#21
La interfaz con los caracteres Unicode es el problema cuando corres Python desde la consola de Windows.

Las versiones de Python anteriores a la 3.6 usan el console character encoding (chcp) de la consola de Windows (The codepage is often 8-bit encoding such as cp437 that can represent only ~0x100 characters from ~1M Unicode characters), sin embargo la consola si soporta los caracteres Unicode siempre y cuando una font adecuada sea configurada.

Puedes instalar el paquete win-unicode-console para que Python utilice la Unicode API de Windows:

Código: python

pip install win-unicode-console


Antes de utilizar win-unicode-console:

Código: python

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

from pytube import YouTube

# not necessary, just for demo purposes.
from pprint import pprint

yt = YouTube("https://www.youtube.com/watch?v=Qp2H-9iNTvE")
yt.get_videos()

print(yt.filename.encode('utf_8', 'replace'))
print(yt.filename)
print(yt.filename.decode('utf_8', 'replace'))

Código: text

RESULTADO=
Hardcore 2017 ΓÖª Dominator Festival 2017 ΓÖª Warm-Up Mix ΓÖª Festival Video ΓÖª Air Force Festival 2017
Traceback (most recent call last):
  File "prueba.py", line 14, in <module>
    print(yt.filename)
  File "C:\Python27\lib\encodings\cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2666' in position 14: character maps to <undefined>


Utilizando win-unicode-console:

Código: python

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

import win_unicode_console
win_unicode_console.enable()

from pytube import YouTube

# not necessary, just for demo purposes.
from pprint import pprint

yt = YouTube("https://www.youtube.com/watch?v=Qp2H-9iNTvE")
yt.get_videos()

print(yt.filename.encode('utf_8', 'replace'))
print(yt.filename)
print(yt.filename.decode('utf_8', 'replace'))

Código: text

RESULTADO=
Hardcore 2017 ♦ Dominator Festival 2017 ♦ Warm-Up Mix ♦ Festival Video ♦ Air Force Festival 2017
Hardcore 2017 ♦ Dominator Festival 2017 ♦ Warm-Up Mix ♦ Festival Video ♦ Air Force Festival 2017
Hardcore 2017 ♦ Dominator Festival 2017 ♦ Warm-Up Mix ♦ Festival Video ♦ Air Force Festival 2017


fuente:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos
#22
No veo más que ejecutables (ningún tutorial), cuidado con lo que abres.

Saludos
#23
Existen buenas respuestas en StackOverflow:
Código: text
https://stackoverflow.com/questions/14630288/unicodeencodeerror-charmap-codec-cant-encode-character-maps-to-undefined


Puedes manejar la excepción reemplazando los caracteres desconocidos por el codec (encoding error) con un caracter predeterminado como se documenta aquí:
Código: text
https://docs.python.org/3/library/stdtypes.html#bytes.decode
https://docs.python.org/3/library/codecs.html#codecs.register_error
https://docs.python.org/3/library/codecs.html#codecs.replace_errors
https://docs.python.org/3/howto/unicode.html#the-string-type


Código: python

cadena.decode("cp1252", "replace")


NOTA: pytube usa You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login para manejar los strings con contenido HTML y JSON.

Saludos
#24
Adjunto un pequeño resumen de la herramienta que se usa en el vídeo.

DiskPart es una herramienta para gestionar lo que en windows se conocen como objetos (discos, particiones, y volúmenes o letras) que se puede utilizar desde la línea de comandos mediante el scripts, el Recovery Console o de forma interactiva en el prompt.

En el vídeo se muestra lo siguiente:

* Listar objetos
* Limpiar o borrar una unidad
* Crear una partición
* Dar formato a las partición
* Asignar dicha partición como activa o booteable
* Asignar una letra a la partición para que sea visible en el Explorer y en otras herramientas de Windows.

Saludos
#25
Otros muy conocidos también son You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login y el material que libera el MIT en You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login. edX tiene la extensión You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.

También desde Argentina se ha iniciado con la plataforma You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.

Una lista de otras plataformas se puede encontrar en You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login y en You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos
#26
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
no sucede solo con la notebook obviamente, sino con el teléfono y la tablet.

Si el caso es este, entonces posiblemente el problema sea el router (o proxy de la red, o firewall de la red, si es que tiene). Echa un vistazo a la configuración del router porque existen routers con posibilidad de filtrar solo contenido HTTPS.


Por otro lado, en Windows, MS Edge y Chrome dependen de las configuraciones que se realicen con la herramienta del panel de control "Opciones de Internet" (inetcpl.cpl). Para este caso puedes probar con "Reestablecer todas las zonas al nivel predeterminado" en la pestaña Seguridad, quitar la opción "Usar scripts de configuración automática" y habilitar la opción "Detectar la configuración automáticamente" en la ventana Configuración de LAN que se abre desde la pestaña Conexiones.

Si quieres hacer lo anterior desde un script batch, debes modificar el registro de Windows:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

En firefox es recomendado que reutilices las configuraciones del sistema con la opción "Use system proxy settings" (Options->General->Network Proxy (Settings...)).

Otro posible causante del problema puede ser que el Firewall esté filtrando las conexiones para permitir solamente HTTPS.

Saludos
#27
Hacking / Re:Herramientas BlackHat 2017
Agosto 21, 2017, 04:10:12 PM
Gracias por la info,

el enlace del repositorio no es correcto (apunta a una imagen). El enlace es: You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos
#28
El título del hilo no tiene relación directa con tu duda. Al ver el título alguien puede intuir que necesitas alguna explicación técnica relacionada con el framework Django, pero tu duda no es de eso.

Para discriminar el contenido multimedia que suben los usuarios, lo único que necesitas es un ID (un valor que identifica algo de manera única). Este ID se puede asociar con cada contenido multimedia de diferentes maneras (puede haber otra tabla en donde se liste el nombre de archivo con el ID del usuario).

Facebook almacena, obtiene, y cachea el contenido multimedia de otros servidores con el objetivo de balancear la enorme transferencia que tiene en cada instante.

Listar el contenido de un directorio no es la manera más inteligente de hacer las cosas, para esto existen las bases de datos, los servicios cache y las arquitecturas de servicios escalables o microservicios.

Saludos
#29
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
...entonces debo sobreescribir el método para que tome la variable private de A, o en su defecto declarar "a" como protected y solo en la superclase, aunque esto debilitaria el encapsulamiento...

Ciertamente debilita el encapsulamiento. Una regla general en OOP (Object Oriented Programming) es hacer todo tan privado como sea posible. Vas a encontrar muy buenas respuestas en You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login pregunta hecha en StackOverflow.

La mejor alternativa es declarar la variable private int a; solamente en la superclase B y llamar al metodo setA() de la superclase B desde el metodo setA() de la subclase A.

Código: java

public class B{
    private int a;

    public B(int a){
        setA(a);
    }

    public int getA(){
        return a;
    }

    public void setA(int a){
        // this.a = 0;
        this.a = a;
    }
}


Código: java

public class A extends B{
    // private int a;

    public static void main(String[] args){
        A a  = new A(5);
        System.out.println(a.getA());
    }

    public A(int a){
        super(a);
    }

    @Override
    public void setA(int a){
        // this.a = 1;
        super.setA(1);
    }
}


Saludos
#30
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
...pero veo que está tomando la version de la superclase e inicializa el valor de "a" en 0, por lo que no se refleja lo que dice el libro...

Este resultado es correcto porque tienes dos private int a; diferentes (por ser privados, uno es solamente visible para la clase B y el otro es solamente visible para la clase A). Ya sea que llames a getA() desde una instancia de A o desde una instancia de B, getA() va a devolver el valor 0.

Dicho de otra forma:

Código: java

public class B{
...
public B(int a){
    setA(a);
}
...
}


efectivamente llama a:

Código: java
public class A extends B {
...
    @Override
    public void setA(int a){
        this.a = 1;
    }
...
}


el problema es que this.a = 1; asigna el valor a la variable privada de A, no a la variable privada de B.

Para que el prorgama funcione como esperas debes utilizar el keyword protected y declarar la variable solamente en la superclase.

CODIGO CORREGIDO:
Código: java

public class B{
    // private int a;
    protected int a;

    public B(int a){
        setA(a);
    }

    public int getA(){
        return a;
    }

    public void setA(int a){
        this.a = 0;
    }
}

Código: java

public class A extends B{
    // private int a;

    public static void main(String[] args){
        A a  = new A(5);
        System.out.println(a.getA());
    }

    public A(int a){
        super(a);
    }

    @Override
    public void setA(int a){
        this.a = 1;
    }
}

Saludos
#31
Para que funcione como debe es necesario que se deshabilite la funcionalidad UAC (User Account Control).

Si esto no se hace el usuario va a ser notificado por cada vez que intente ejecutarse el script Ejecutar.bat (porque intenta ejecutar Esperar.bat en modo privilegiado) y por cada vez que intente ejecutarse Esperar.bat (porque el comando diskpart es una aplicacion que puede hacer cambios en el equipo y porque Payload.bat posiblemente necesite los privilegios de administrador).

Saludos
#32
No hay problema con la fecha, los fundamentos siguen siendo los mismos desde los principios de cada paradigma de programación.

Por otro lado, para la programación a bajo nivel, te recomiendo que además leas sobre Arquitectura de Computadoras, Organización de Computadoras, y Sistemas Operativos.

Saludos.
#33
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
1. ¿Obligatoriamente tengo que aprender a manejar JavaScript? Es que me lo han venido diciendo que aunque yo me dedique únicamente al desarrollo backend tengo que saber manejar este lenguaje frontend.

Esto suele ser necesario cuando trabajas en un proyecto con arquitectura MVC y otros con arquitecturas menos modulables, en donde a veces necesitas integrar tu trabajo con la parte front-end para poder dar por finalizada una tarea.

Actualmente, con la popularidad que han ganado los Web services y las arquitecturas del tipo microservice, no es correcta esa afirmación. Sin embargo, cuando te encuentras desarrollando y necesitas realizar pruebas o integraciones para verificar que tu servicio funciona en el lado del navegador, en algún momento puede que sea necesario algunos conocimientos básicos de javascript para realizar consultas al servidor y obtener el resultado deseado.


You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
2. Estoy montando un proyecto en mi empresa y me han sugerido hacer una página web en el framework ruby on rails (como lenguaje backend), algunos apuestan por php y su framework laravel, y otros me refieren a usar nodejs, ¿cuál es la ventaja de cada uno de ellos? ¿no quiero un lenguaje que sea fácil de aprender, quiero un lenguaje bueno y sólido con el que se haga una página de calidad, tarde lo que se tarde? He oído algunos lenguajes que también se pueden trabajar en páginas web, como Java y Go, pero ni idea, que me recomiendan ustedes, me podrían dar algunos conceptos de lo que se podría hacer con cada uno de ellos y sus ventajas o desventajas, o en que sería bueno utilizar tal lenguaje y qué no.

Todas las opciones que nombras son buenas si tu objetivo es brindar un servicio del lado del servidor. Compara la sintaxis, la complejidad que veas en cada uno, la documentación disponible, las librerías o dependencias de las que dispone, la comunidad de desarrolladores que tiene, y si es necesario la performance de cada uno.

Saludos
#34
Dudas y pedidos generales / Re:Open cv python duda
Febrero 09, 2017, 10:19:13 AM
Código: python

    if cv2.waitKey(1) & 0xFF ==ord('s'):
        break


Se asegura que se dejará de mostrar los frames capturados (se saldrá del while infinito) al presionar la tecla s minúscula.

waitKey(1) mostrará la imagen del frame por, al menos, 1ms. En este momento en que se muestra la imagen, waitKey puede cerrar la ventana de forma automática después de pasado 1ms o cuando el usuario presione una tecla. Si la ventana se cierra de forma automática waitKey retorna -1, pero si el usuario ha presionado una tecla , entonces waitKey cierra la ventana y retorna el código de la tecla presionada.

cv2.waitKey(1) & 0xFF trunca el valor numérico devuelto por waitKey (retorna los 8 bits menos significativos) si este no puede ser representable en 8-bit. Si el valor devuelto por waitKey es representable en 8-bit, entonces esta operación devuelve el mismo valor.

ord('s') retorna 115, el código ASCII en decimal de la letra s minúscula, un valor representable en 8-bit como todo código de la tabla ASCII.

Fuente:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos
#35
Gracias @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, algunos enlaces no los conocía

Saludos
#36
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
SQLITE_ERROR] SQL error or missing database (near "@s": syntax error)

trato de llamar un dato, por ejemplo

hola@mundo... pero no me deja

¿Alguien sabe la manera correcta de usar "WHERE hola@mundo" en SQL?

¿hola@mundo es el nombre de la columna o es el valor contenido en un registro?

WHERE hola@mundo es un error en la sintaxis de SQLite.

Si hola@mundo es el valor de un registro, entonces una posible consulta sería:

Código: text
SELECT * FROM MyTable WHERE ColumnName = 'hola@mundo';


o

Código: text
SELECT * FROM MyTable WHERE ColumnName LIKE 'hola@mundo';


Por otro lado, si hola@mundo es el nombre de la columna, entonces debes colocar este nombre entre comillas dobles, corchetes o acentos graves.

Cuando el nombre de una tabla o columna tiene únicamente caracteres estándar (esto es, cualquier combinación de caracteres alfanuméricos incluyento el guion bajo "_") y su primer caracter no es un dígito, entonces puedes utilizar ese nombre sin problemas (recordar además que no se permite que una tabla, índice, vista o trigger tenga la palabra "sqlite_" al principio de su nombre ya que SQLite utiliza este patrón para todo internal schema object).
Si una tabla o una columna (estos se conocen genéricamente como Identifiers) contiene espacios, otros caracteres no estándar, o utiliza el nombre de una palabra reservada (keyword), entonces debes colocar este nombre entre comillas dobles (" "), corchetes ([ ]) o acentos graves (ASCII code 96) (` `).

* El mecanismo de quoting con comillas dobles (" ") es el estándar del lenguaje SQL.

* El mecanismo de quoting con corchetes ([ ]) es el que utiliza MS Access y SQL Server.

* El mecanismo de quoting con acentos graves (` `) es el que utiliza MySQL.


Entonces una consulta con la cláusula WHERE y un identificador con carácteres no estándar podría ser:

Código: text

SELECT * FROM MyTable WHERE "hola@mundo" = 'MyValue';


o

Código: text

SELECT * FROM MyTable WHERE "hola@mundo" LIKE 'MyValue';


fuente:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos
#37
Esto se debe a una política de nombres para las interfaces de red utilizada por systemd/udev a partir de la versión v197. Información sobre esto la encuentras bajo títulos como "systemd/udev Predictable network interface device names" o "systemd/udev Predictable Network Interface Names".

Este nuevo esquema de política de nombres para interfaces de red se basa en el mecanismo de nombres brindado por el esquema "biosdevname" (el cual se obtenía con una tool para udev, del mismo nombre, creada por Dell). A diferencia de "biosdevname", este esquema es más genérico y se parece también a los esquemas que usa el kernel internamente para identificar a los dispositivos.

Si bien puedes desactivar esta funcionalidad y volver a utilizar el esquema tradicional "wlanX", eso sería solo un capricho ya que este nuevo esquema brinda nombres predecibles y estables para todas las interfaces locales de tipo Ethernet, WLAN y WWAN.

La siquiente descripción especifica que para tu adaptador de red se ha dado un nombre "wlx00c0ca7620ad" en donde:

* "wl" nos dice que es una interfaz wlan
* "x" nos dice que la descripción siguiente es una MAC Address
* "00c0ca7620ad" es la MAC Address de tu adaptador

Citar
/*
* Predictable network interface device names based on:
*  - firmware/bios-provided index numbers for on-board devices
*  - firmware-provided pci-express hotplug slot index number
*  - physical/geographical location of the hardware
*  - the interface's MAC address
*
* You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
*
* Two character prefixes based on the type of interface:
*   en — Ethernet
*   sl — serial line IP (slip)
*   wl — wlan
*   ww — wwan
*
* Type of names:
*   b<number>                             — BCMA bus core number
*   c<bus_id>                             — CCW bus group name, without leading zeros [s390]
*   o<index>[n<phys_port_name>|d<dev_port>]
*                                         — on-board device index number
*   s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
*                                         — hotplug slot index number
*   x<MAC>                                — MAC address
*   [P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
*                                         — PCI geographical location
*   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>]
*                                         — USB port number chain
*
* All multi-function PCI devices will carry the [f<function>] number in the
* device name, including the function 0 device.
*
* When using PCI geography, The PCI domain is only prepended when it is not 0.
*
* For USB devices the full chain of port numbers of hubs is composed. If the
* name gets longer than the maximum number of 15 characters, the name is not
* exported.
* The usual USB configuration == 1 and interface == 0 values are suppressed.
*
* PCI Ethernet card with firmware index "1":
*   ID_NET_NAME_ONBOARD=eno1
*   ID_NET_NAME_ONBOARD_LABEL=Ethernet Port 1
*
* PCI Ethernet card in hotplug slot with firmware index number:
*   /sys/devices/pci0000:00/0000:00:1c.3/0000:05:00.0/net/ens1
*   ID_NET_NAME_MAC=enx000000000466
*   ID_NET_NAME_PATH=enp5s0
*   ID_NET_NAME_SLOT=ens1
*
* PCI Ethernet multi-function card with 2 ports:
*   /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/net/enp2s0f0
*   ID_NET_NAME_MAC=enx78e7d1ea46da
*   ID_NET_NAME_PATH=enp2s0f0
*   /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/net/enp2s0f1
*   ID_NET_NAME_MAC=enx78e7d1ea46dc
*   ID_NET_NAME_PATH=enp2s0f1
*
* PCI wlan card:
*   /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlp3s0
*   ID_NET_NAME_MAC=wlx0024d7e31130
*   ID_NET_NAME_PATH=wlp3s0
*
* USB built-in 3G modem:
*   /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4:1.6/net/wwp0s29u1u4i6
*   ID_NET_NAME_MAC=wwx028037ec0200
*   ID_NET_NAME_PATH=wwp0s29u1u4i6
*
* USB Android phone:
*   /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/net/enp0s29u1u2
*   ID_NET_NAME_MAC=enxd626b3450fb5
*   ID_NET_NAME_PATH=enp0s29u1u2
*/

Si quieres saber todos los beneficios de este nuevo mecanismo de nombres para interfaces de red, puedes leer los enlaces que dejo como fuentes.

fuente:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Saludos
#38
Dudas y pedidos generales / Re:Microsoft Office
Enero 11, 2017, 12:46:18 PM
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
No puedo abrir archivo pptx debido a el siguiente mensaje: Erros detectadospara mí.

Seguro que ese es el error que obtienes?

Si no puedes solucionar el problema con el procedimiento que se te ha brindado arriba te pediría un poco más de información.

Saludos
#39
Delphi 7 ha sido la versión más popular. A partir de esta versión en adelante no hay tantos cambios para alguien que desea comenzar.

Diferencias entre versiones:
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Si quieres saber las diferencias que tienes entre la edición Starter y las demás, que son pagas, entonces mira este enlace:

You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

En mi opinión puedes empezar por utilizar Delphi 10.1 Berlin Starter sin problemas.

Saludos
#40
O casualidad! estaba buscando este efecto, muchas gracias @You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Este efecto también se conoce como "Particles", "Connected Nodes" o "Nodes" o "Plasma"

Saludos