Amor cibernético

mari

En épocas en que todos estamos hiperconectados, tenemos a Mariflorcita que no nos da su correo electrónico ni su número de teléfono.

Talento puro..

Posted in Varios | Tagged , , , | Leave a comment

Code Jam 2014

Uno de los primeros posteos de este blog fué sobre el Code Jam 2013, y este año volvemos sobre los mismo. En menos de 24 horas estaremos nuevamente combatiendo contra los problemas que la gente de Google nos esté enviando. Hay que lograr 25 puntos para pasar a la segunda ronda y hay 27 horas para resolver los problemas.

En mi caso no voy a tener realmente ese tiempo ya que el sábado voy a tener muchísimas obligaciones (casamiento de un amigo incluido), por lo que voy a tener que resolverlos en una noche. Complicado? Si. Imposible? No (supongo).

Para que practiquen, Google deja cosas como esta:

Tic-Tac-Toe-Tomek is a game played on a 4 x 4 square board. The board starts empty, except that a single ‘T’ symbol may appear in one of the 16 squares. There are two players: X and O. They take turns to make moves, with X starting. In each move a player puts her symbol in one of the empty squares. Player X’s symbol is ‘X’, and player O’s symbol is ‘O’.

After a player’s move, if there is a row, column or a diagonal containing 4 of that player’s symbols, or containing 3 of her symbols and the ‘T’ symbol, she wins and the game ends. Otherwise the game continues with the other player’s move. If all of the fields are filled with symbols and nobody won, the game ends in a draw. See the sample input for examples of various winning positions.

Given a 4 x 4 board description containing ‘X’, ‘O’, ‘T’ and ‘.’ characters (where ‘.’ represents an empty square), describing the current state of a game, determine the status of the Tic-Tac-Toe-Tomek game going on. The statuses to choose from are:

  • “X won” (the game is over, and X won)
  • “O won” (the game is over, and O won)
  • “Draw” (the game is over, and it ended in a draw)
  • “Game has not completed” (the game is not over yet)

If there are empty cells, and the game is not over, you should output “Game has not completed”, even if the outcome of the game is inevitable.

 

Input

The first line of the input gives the number of test cases, TT test cases follow. Each test case consists of 4 lines with 4 characters each, with each character being ‘X’, ‘O’, ‘.’ or ‘T’ (quotes for clarity only). Each test case is followed by an empty line.

Output

For each test case, output one line containing “Case #x: y”, where x is the case number (starting from 1) and y is one of the statuses given above. Make sure to get the statuses exactly right. When you run your code on the sample input, it should create the sample output exactly, including the “Case #1: “, the capital letter “O” rather than the number “0″, and so on.

Limits

The game board provided will represent a valid state that was reached through play of the game Tic-Tac-Toe-Tomek as described above.

Small dataset

1 ≤ T ≤ 10.

Large dataset

1 ≤ T ≤ 1000.

Sample

Input Output
6
XXXT
....
OO..
....

XOXT
XXOO
OXOX
XXOO

XOX.
OX..
....
....

OOXX
OXXX
OX.T
O..O

XXXO
..O.
.O..
T...

OXXX
XO..
..O.
...O

Case #1: X won
Case #2: Draw
Case #3: Game has not completed
Case #4: O won
Case #5: O won
Case #6: O won

Les quiero desear mucha suerte a todos y ojalá nuevamente veamos los maravillosos desafíos de la segunda ronda.

Posted in Programación | Tagged , , , , , , | Leave a comment

Veganos y exageraciones

A veces me pregunto adonde quedó este asunto de “vivir y dejar vivir” y en este caso me refiero a cierto grupo de veganos que salieron de su rol de “me gusta alimentarme de tal o cual manera”, para querer imponerle a los demás como carajo deben vivir. Desde el concepto para mi errado del “especismo” hasta cierto activismo del peor creo que varias personas están mostrando la idea desde el ángulo equivocado.

Yo puedo respetar que alguien que trata a los animales sin importar la especie e igualándola al ser humano. Cada quién puede creer lo que quiera aunque no esté de acuerdo. Lo que me molesta es esa campaña casi fanática contra quienes si queremos comer carne, tomar leche, etc.

Este post nació una mañana que estaba escuchando en la radio del auto el programa de Lanata mientras iba a trabajar y sucedió que Lanata quería bajar una vaca para mostrar como se ordeña, pero un grupo de “activistas veganos” impidió que esto sucediera. Muchos diarios levantaron la noticia, para mencionar un ejemplo les paso el link de lo que puso Perfil. Obvio vi que hay mucho “Vegano militante” y eso quizá tenga algo que ver, quizá no, no sabría decirlo pero no vi a los muchachos en los zoo protestando (y ahí tendría mucho más sentido).

Ahora bien, cual es mi problema con todo esto?  Obviamente no que un vegano o quien fuere coma lo que le plazca. Si quiere vivir a plantas que lo haga. Ahora que quiera venir a decirme o imponer que los seres omnívoros (al parecer los veganos no lo serían) comamos carne, huevos, leche o lo que fuere me parece cuanto menos poco acertado. Hacer propaganda mostrando animales reventados es menos acertado aún y querer convencer a la gente con teorías pseudocientíficas ya es más triste aún.

 

Pero bueno, les dejo una joyita del veganismo. Que hacer con los mosquitos (gracias a la gente de Proyecto Sandía):

mosquitos

 

Espero que no les agarre piojos porque curarse les va a sonar a genocidio…

Posted in Varios | Tagged , , | Leave a comment

PHP: Verificando la existencia de archivos en URL

Estos días de mucho trabajo me encuentro con cosas que nunca había hecho pero que no parecen ser taaaaan complicadas (en este caso pasar XML a MySQL). Pero me encontré con algo más que interesante.

Resulta que el archivo XML no lo tenía localmente sino que era parte de un sitio de internet, o sea que solo lo veía a través de una URL. Entonces como primer paso para armar mi programa busqué ver que me diga si el archivo existe o no.

Mi primer intento fue hacer algo como esto:

 

if(is_file(http://wwww.xxxxxxxxxxxx.com/xxxxxxxx.xml)){
   echo "Archivo existente";
}else{
   echo "Archivo inexistente";
}

Lamentablemente la cosa no funcionó, el archivo existía y me daba como resultado “Archivo inexistente”.

Ok, busquemos, San Google lo sabe seguro.

Recemos:

Google nuestro que estás en la red,
multi-enlazado sea tu nombre,
venga a nosotros tu PageRank,
hágase tu voluntad tanto en Blogger como en WordPress.
Danos hoy nuestras visitas de cada día,
perdona nuestro spam,
así como nosotros perdonamos a los que nos spammean,
no nos dejes caer de tu indexación,
y libranos de todo ban.

Luego del rezo obtuvimos esto:

$filename= 'http://xxx.xxxxxxx.com/xxxxxx.xml';
$file_headers = @get_headers($filename);

if($file_headers[0] == 'HTTP/1.0 404 Not Found'){
      echo "El archivo $filename no existe";
} else if ($file_headers[0] == 'HTTP/1.0 302 Found' && $file_headers[7] == 'HTTP/1.0 404 Not Found'){
    echo "El archivo $filename no existe y fui redirigido a un 404";
} else {
    echo "El archivo $filename existe";
}

Espero que les sirva.

Saludos!

Posted in Programación | Tagged , , | Leave a comment

Cosas del Freelancing

Bueno, como les comenté me estoy dedicando a trabajar un poco como freelancer (mientras mantengo mi trabajo aburrido diario, del cual les hablaré en el futuro próximo). En el poco tiempo que tengo en esto puedo contarles muchísimas experiencias buenas la mayoría, malas otras, pero todas cosas que me hacen crecer día a día y conseguir un montón de conocimiento tanto técnico como “empresarial”.

Lo que les voy a contar ahora es algo que acabo de leer y que entiendo que sucede mucho, solo que parece que esta gente siempre gana. Lo que leí en un mail que me vino de uno de los sitios de freelancing (Workana en este caso particular) me dejó pensando en que cree la gente que somos, les dejo el texto:

Que trabaje con HTML5 y php con jquery
Conocimientos en diseño de páginas
Con conocimientos de bases de datos MySQL y FireBird.
Capacidad para trabajar bajo presión.
Tacto para capacitar personal.

que es lo que buscaba? Un PROGRAMADOR JR. En serio, este cliente requiere que un programador jr. labure con HTML5, PHP, JQuery, diseño, bases de datos varias, labure bajo presión y encima le capacite gente. No será mucho para un junior? Requerirá realmente un junior? Les voy a contar algo.

Hace unos años, yo ya QA Sr. fui a una entrevista laboral a una empresa argentina que en esa época era medianamente grande y que ahora es un pulpo enorme que engulle empresa tras empresa (seguro saben cual). Luego de toda la entrevista y de mostrarle lo que sabía hacer (ya tenía unos cuantos años haciendo QA  todo lo que hice en la entrevista “técnica” era correcto), me dicen que yo solo daba para ser ssr y que mi sueldo iba a ser X (yo ganaba en esa época X+500) y cuando les dije que no me interesaba me quisieron convencer con todas las pavadas del mundo, que la play, que te lavamos la ropa, que el ping pong y no se cuantas cosas que no me interesaban en lo más mínimo.

También me pasó en otra ocasión en una entrevista para otra empresa que creo no está más en el país (y que la compró el pulpo anterior) que me hacen tener una entrevista con alguien que supuestamente estaba en EEUU (incomprobable pero bueno, demosle el beneficio de la duda). Las preguntas iban en este tono: “Que pasa si te tenés que quedar después de hora?” “Podés trabajar fines de semana?” y todas preguntas tendientes a decirme que iba a tener que trabajar 24×7. Cuando le puse precio a eso (y juro que no dije ninguna cosa muy elevada ya que me interesaban ciertos beneficios como pago de cursos, la carrera que en ese entonces cursaba, etc) me dijeron “noooo, es muy alto lo que pedís”. Muchas gracias, hasta pronto!

Ven, leo un anuncio y me recuerda tantas cosas… Será que siempre van a haber estas cosas? Espero que no, y espero que la gente salvo que uno esté desesperado por comer le de la espalda a este tipo de “ofertas”.

Posted in La Web | Tagged , , | 2 Comments

En que anda Dracux?

Tanto tiempo amigos, tengo entendido que muchos piensan que este blog se murió o algo así. También muchos piensan que me pasó esto:

Si, es cierto, eso sucedió, pero no es exactamente lo que estuve haciendo todos estos días. Resulta que me estuve dedicando a hacer trabajos freelancers, programando para un par de clientes que me pude hacer, generando contactos, aprendiendo el negocio, etc.

La verdad, para quienes no saben si dar el paso o no, les cuento un poquito de mi experiencia con esto:

  • Sigo teniendo mi empleo 9-18 (que nunca fue tan 9 ni tan 18) por lo que el trabajo extra lo hago fuera de horario del fijo, en los almuerzos, etc.
  • Aparte tengo una vida, tengo una familia, hija, hobbies como salir a correr, etc. (a veces la gente piensa que uno por ser empleado no tiene vida).
  • Muchas veces me he quedado programando hasta horas que no me quedaba desde mi adolescencia, como las 4 o 4:30 am (obvio teniendo que levantarme 8 am al otro día).
  • El panorama que les pinto es bastante negro, peeeeeeeero, la satisfacción de hacer algo que a uno le gusta y encima recibir dinero por ello es increible.
  • Ok, pero vos no sos programador Dracux? Si, pero en mi trabajo fijo programo pocas cosas y soy más que nada QA. La diferencia más significativa es que estos trabajos son míos, sin depender de jefes, de gente que no está para más que cajero de Burguer (con todo mi respeto y admiración para ellos)  pero que da órdenes como si entendieran, de metodologías y formas de hacer las cosas que no me gustan, etc.
  • Aparte es mi trabajo, dependo de mi, aprendo a funcionar a muy pequeña escala como “empresario” y estoy en la etapa en la que está bueno hasta equivocarse como aprendizaje.
  • Es duro? Lo es. Vale la pena? A mi si me vale, supongo que no es lo mismo para todos.

En fin, esperemos que todo vuelva a la normalidad en estos días y que el blog vuelva a ser lo que era.

Posted in Uncategorized | Tagged , , , | Leave a comment

Camus, el hacker de los famosos

Una de las cosas que pasa desde que la internet se volvió “veloz” es que se viven publicando fotos y videos de famosos en situaciones “íntimas”. Nunca uno termina de saber si alguien les “hackea” este material o se hacen los robados y suben el material para promocionarse.

En estos días el mundo de la farándula se revolucionó por la aparición de un hacker que obtiene cantidades enormes de “material” y mucho que dice guardarse por ser con gente muy “pesada”. Su nombre es “Camus” y se está haciendo realmente famoso en Twitter. Su usuario es @CamusHackers y está obteniendo miles de seguidores por horas.
No se si es un hacker que de algo a la sociedad, pero si al menos la está entreteniendo y mucho. Fotos de mucha gente famosa como Sofía Clerici (??????), Maravilla Martinez, Noelia Marzol, Analissa Santi, Andrea Rincón, Diego Korol y más están apareciendo a raudales en su cuenta y promete más aún.

Ahora lo estaba escuchando en la radio, me parece un personaje bastante copado, tiene bastante de los viejos heroes del hacking pero con la tecnología moderna.

El tiempo dirá si le espera un lugar junto a leyendas como Lex Luthor, Kevin Mitnik o Emmanuel Goldstein. O al menos junto a las leyendas patrias como el Chacal o El Gritón. Esperemos estar frente a la resurrección de las leyendas del hacking.

Ampliaremos mientas se suceden los hechos.

Posted in La Web | Tagged , , , , , | Leave a comment

Tutorial de JavaScript Capítulo 2

Continuamos con nuestro tutorial de JavaScript y en esta ocasión vemos como llamar a una función, pasarle parámetros y que nos retorne lo que queremos:

 

 

Espero que les guste, y como siemrpe, para lo que necesiten, dejen comentarios!

Posted in Programación | Tagged , , , , , , , | Leave a comment

Dune II, ahora online!

DuneII

Hace muchos años, cuando era más, joven me había fanatizado con un juego que sería como el primero (creo) de estrategia en tiempo real: Dune II. El tiempo pasó, uno se olvida de esas cosas hasta que consigue bajar Dune para leer en el Kindle. Entonces empecé a buscar info sobre este librazo y me encontré con mis recuerdos de adolescente. Lo mejor es que ahora uno puede jugar al Dune II on line!

Les dejo el enlace desde donde pueden jugarlo.

 

Chau, me fui a viciar!

Posted in Videojuegos | Tagged , , , , , | Leave a comment

Capítulo XVII del tutorial de QBasic: Dibujando círculos

En esta ocasión vamos a ver como crear círculos de diversos tamaños y colores usando QBasic:

Hay ya un pequeño “ejercicio” en el video 18 que pronto también pondré en el sitio, y a partir de ahí comenzaré a resolverles dudas sobre programación.

 

Algo más que quería preguntarles: Tienen alguna idea de algún proyecto que podamos ir haciendo y manteniendo via videos?

 

Posted in Programación | Tagged , , , , , , | Leave a comment