33bits
[Hilo Oficial] Esto también es otro arte...el ARTE de programar - Versión para impresión

+- 33bits (https://33bits.net/foro)
+-- Foro: Temas de debate (https://33bits.net/foro/Foro-Temas-de-debate)
+--- Foro: Off Topic (https://33bits.net/foro/Foro-Off-Topic)
+--- Tema: [Hilo Oficial] Esto también es otro arte...el ARTE de programar (/Tema-Hilo-Oficial-Esto-tambi%C3%A9n-es-otro-arte-el-ARTE-de-programar)

Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33


Re:Esto también es otro arte...el ARTE de programar - EADS - 07-11-2012

BIBAH! un hilo de programación =D

Me voy a estrener en el mismo (sin querer interrumpir el ejercicio que parece que lleváis a cabo Smile ), compartiendo una de las mejores chorradas que te hacen reír a más no poder.

De la famosa página stakoverflow hubo hace tiempo un hilo mostrando los comentarios en código mas chorras que jamás se ha encontrado nadie en el trabajo.

http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered/482129

Hay alguna que otra perla xD

A disfrutarlo ^_^


Re:Esto también es otro arte...el ARTE de programar - Margaruga - 07-11-2012

Cita://When I wrote this, only God and I understood what I was doing
//Now, God only knows


Que panzada de reir  adorar:


Re:Esto también es otro arte...el ARTE de programar - thewazaa - 07-11-2012

Po si. mucha risa. Smile


Re:Esto también es otro arte...el ARTE de programar - thewazaa - 08-11-2012

Para no crear otro tema. Mini debate respecto codificaciones de carácteres.

Si habeis trabajado en el entorno web sabreis que uno de los problemas más o menos básicos es la codificación del espacio. Dependiendo del lenguaje de programación te lo codifica como "+" o "%20". Es un problema peliagudo, porque el simbolo + es un +...dificulta el reconocimiento de espacios y del caracter +, entre diferentes servidores y diferentes reglas en cuanto la codificación.

Google por ejemplo prefiere convertir los espacios en + supongo que porque hace urls mas cortas.

Vamos, que te puedes encontrar:

" " -> +
"+" ->%2B

o

" " -> %20
"+"-> +

Este es un problema más o menos común... el no tan común es el siguiente:

El carácter "/".

El carácter / es un caracter valido en las urls. Lo que no queda claro, dentro de la desastrosa documentación de w3c, es si es un carácter valido en la zona de parámetros, de una url.

Nos encontramos, pués, que dependiendo del lenguaje y plataforma... se codifica o no. Google prefiere codificarlo, c# prefiere codificarlo. PHP prefiere no codificarlo.

El gran problema viene cuando c#, python, y demases, al hacer cosas por su cuenta, deciden arreglar los errores de codificación en la variable donde sacar el stringarro de parametros... Provocando diferencias sobre la verdadera enrtada cuando haces log de estos parametros.

A partir de aquí, propongo el siguiente problema. No es un caso que se me haya dado, aún, pero he tenido algunos de parecidos. Por tanto es una situación práctica.

Tienes dos hojas de logs. Una del cliente, con las urls que ha atacado, con parametros codificados no sabeis como... y otra del servidor, con los parametros codificados (es el log de una url, no necesita más) según le ha dado a "la inteligencia" del lenguaje en cuestión. Las dos entradas tienen la fecha. En el formato que querais, no os complicaré la existencia con ello.

Por temas de timeout que teneis que estudiar, quereis hacer un estudio respecto las fechas que salen en su log y las que salen en la vuestro. Sacando la media de desviación y las entradas que se desvien mucho. Tened en cuenta que las entradas en los dos logs tienen diferencias por... las diferencias de los parámetros ya explicadas.

También recordadq que esto es internet y la linealidad de las entradas no tiene porque existir. Es un estudio por tanto el uso injustificado de recursos en memoria... poca importancia tiene. Podeis ser bestias. Prima la velocidad: hay muchas entradas.

Smile

No se si me he pasado, pero ya me direis que haceis.

A parte de cagaros en los del consorcio w3c


Re:Esto también es otro arte...el ARTE de programar - Margaruga - 08-11-2012

Nunca me he visto en una situación similar, de hecho lo poco que conozco de web es sobre la parte del diseño.

Hablo desde la más absoluta ignorancia pero ahí va mi propuesta. Quiero pensar que todos los lenguajes que codifican '/' lo harán igual, o sea que tenemos dos opciones que esté tal cuál o codificado...

O sea que recorrería el log del cliente extrayendo la parte de datos de la url y si encuentro el carácter codificado lo decodifico y si está tal cual no le hago nada y lo mismo con el log del servidor. Luego habría que buscar la equivalencia de URLs entre los dos archivos que deberían tener el mismo formato y comparar las fechas.

Aunque haya abierto yo el post, la informática a veces me deprime...son millones de┬á cabezazo:




Re:Esto también es otro arte...el ARTE de programar - thewazaa - 09-11-2012

(08-11-2012 20:55)Margaruga link Nunca me he visto en una situación similar, de hecho lo poco que conozco de web es sobre la parte del diseño.

Hablo desde la más absoluta ignorancia pero ahí va mi propuesta. Quiero pensar que todos los lenguajes que codifican '/' lo harán igual, o sea que tenemos dos opciones que esté tal cuál o codificado...

O sea que recorrería el log del cliente extrayendo la parte de datos de la url y si encuentro el carácter codificado lo decodifico y si está tal cual no le hago nada y lo mismo con el log del servidor. Luego habría que buscar la equivalencia de URLs entre los dos archivos que deberían tener el mismo formato y comparar las fechas.

Aunque haya abierto yo el post, la informática a veces me deprime...son millones de┬á cabezazo:
Lo que dices más o menos está bien, pero te pierdes en lo que crea el lio... te lo haré facil, porque de hecho es asi: este codificado de una u otra forma, la codificación de las dos variantes, es igual. Los diferentes lenguajes descodifican diferente. Pero codificar, lo saben codificar todo bien. Es en temas "secundarios" donde la codificación te la lía.

Y si, la programación web suele ser bastante deprimente. El mayor problema es el consorcio w3c, que genera toneladas de documentación con más de una interpretación o contradicciones en ella misma. Luego los navegadores... diablos. Si es increible que esto funcione y todo...


Re:Esto también es otro arte...el ARTE de programar - Margaruga - 09-11-2012

Vale, ahora entiendo mejor el tema, no podía ser tan simple.

Uf, pues si los que establecen las bases de la web se contradicen sí que es un milagro que esto funcione┬á Facepalm:


Re:Esto también es otro arte...el ARTE de programar - Led Zeppelin - 10-11-2012

Hola.

He estado repasando las colecciones de Java ya que quiero intentar de nuevo los arboles ... pero al mirar por ahí ejemplos de BitSet, me he encontrado con uno peliagudo, o al menos para mí:

Código:
import java.util.*;

public class java414{
public static void main(Strin args[]){

Random aleat = new Random();
byte bt = (Byte)aleat.nextInt();
BitSet bbyte = new BitSet();

for(int i=7; i >= 0; i--){
if(((1 << i) & bt) != 0)
bbyte.set(i);
else
bbyte.clear(i);
}System.out.println("Valor byte: "+bt);
printBitSet(bbyte);

short st = (short)aleat.nextInt();
BitSet bshort = new BitSet();
for(int i=15: i >=0; i--){
if(((1 << i) & st) != 0)
bshort.set(i);
else
bshort.clear(i);
}
System.out.println("Valor short: "+st);
printBitSet(bshort);

int it = aleat.nextInt();
BitSet bint = new BitSet();
for(int i=31; i>= 0; i--){
if(((1 << i) & it) != 0)
bint.set(i);
else
bint.clear(i);
}
System.out.println("Valor int: "+it);
printBitSet(bint);


BitSet b1 = new BitSet();
b1.set(127);
System.out.println("Fija el bit 127: "+b1);


BitSet b2 = new BitSet(65);
b2.set(255);
System.out.println("Fija el bit 255: "+b2);


BitSet b3 = new BitSet(512);
b2.set(1023);
System.out.println("Fija el bit 1023: "+b3);
}

static void printBitSet(BitSet b){
System.out.println("Bits: "+b);

String bbits = new String();
for(int j=0; j < b.size(); j++)
bbits += (b.get(j) ? "1" : "0");
System.out.println("Patron de bits: "+bbits);
}
}
}

Como podéis ver se trata de crear tres random, primero un byte, luego un short y por último un int. Lo que hace es recorrer sus bytes con el bucle, es decir, los 8 del byte, los 16 del short y los 32 del entero.

Lo que no entiendo muy bien, es exactamente lo que hace dentro del if, pero sé que al compilarlo, en la llamada al método printBitSet, muestra los bytes en forma binaria, y luego te dice las posiciones de los "1", eliminando los "0".

Por cosas así me planteo dejar la programación, ya que las matemáticas nunca se me han dado bien, y son muy importantes para sacar este tipo de cosas.

Un saludo.


Re:Esto también es otro arte...el ARTE de programar - Margaruga - 10-11-2012

No he mirado de cerca lo que hace pero por si acaso apuntar que en if(((1 << i) & bt) != 0), tanto el operador '<<' como el '&' son a nivel de bit es decir (1 << i) desplaza los bits de 1 (31 0's y un 1) i veces a la izquierda y el '&' hace una operación and a nivel de bit también, y dependiendo de lo que dé pone esa posición del set de bits a cero o a uno. No sé exactamente porque lo hace así, imagino que es una forma de buscar la máxima aleatoriedad posible.


Re:Esto también es otro arte...el ARTE de programar - thewazaa - 10-11-2012

Mu facil.

Imaginaros el numero 4

El 4 en binario es 100

I=0

1<<0 es 1 el and binario es 0

I=1

1<<1 es 10. El and binario es 0

I=2

I<<2 es 100. El and binario con el 4 es 1

Lo unico que hace ese trozo de codigo, es convertir la variable bt a bitset... Sea lo que sea eso.

Sea como sea esto solo es un poco de base 2. La informatica trabaja en base 2. 0 y 1.

Desplazar bots a pa izquierda es elevar al cuadrado. Desplazar a la derecha es hacer la raiz cuadrada.

Por este ejercicio no dejes la informatica, porque es un truco que... Cin un poco de practica dominareis.
luego os explico una cosa llamada flags que es muy practica en programacion. Java los usa a puntapala y se basan en la base 2


Re:Esto también es otro arte...el ARTE de programar - Margaruga - 10-11-2012

Yo por flags entiendo una típica variable de control para determinar un evento o señalar algo para la lógica del programa pero creo que no van por ahí los tiros┬á roto2:


Re:Esto también es otro arte...el ARTE de programar - thewazaa - 10-11-2012

Si, son variables de control... Basadas en la base 2. Vas bien.