Nube
sábado, 28 de junio de 2008
viernes, 27 de junio de 2008
Avísame!!
He integrado un avísame en la web para los interesados olvidadizos que deseen que les avise en la próxima apertura, el día 15 de Julio. La cuenta atrás ha comenzado.
Errores insalvables en Ícaro
La semana ha sido bastante movidita y más si nos centramos en ayer.
Ícaro sufrió un error crítico y tras día y medio de intentar restaurar el el servidor/mundo Ícaro he tenido que desistir. Es imposible restaurar algo cuando las copias de seguridad se han ido a tomar por c*** junto con las originales.
En fin, resignación, ya he tomado cartas en el asunto y como de los errores se aprende esto ya no va a volver a ocurrirme en la vida. (Al menos eso espero)
De ahora en adelante pondré en marcha un nuevo sistema multicopia de diferentes ubicaciones para evitar que vuelva a pasarme.
Entradas relacionadas:
Finaliza el mundo Evoba
Cerca de 200 especies se han registrado en la primera pre-alpha de Evoba, cosa nada desdeñable para un novato como yo. Mucho ha llovido desde entonces y grato ha resultado empaparme del conocimiento adquirido.
¡¡Un placer haber jugado con vosotros!!
¡¡Y sobre todo gracias por hacerme saber sus sugerencias!!
TABANO
Victoria por Dominación
TABANO
Entradas relacionadas:
Nuevo diseño Evobas
Hoy he "terminado" el boceto sobre el que se basa la web principal de Evobas.
Me hacía falta una web para englobar al resto de mundos y aunque en la actualidad no exista ninguno operativo para un futuro será imprescindible organizar todo desde la página principal
Así que he decidido que el tutorial del juego así como el foro, el acerca de, contactar y más adelante el visitador/selector de mundos se encontrarán únicamente en la principal.
Al ser muchísimos los cambios entre versiones he tenido que dejar el tutorial en construcción...
jueves, 26 de junio de 2008
Crear una tarea programa en el cron de sistemas UNIX
En sistemas tipo UNIX, como Linux, FreeBSD o Darwin (Mac OS X), es posible utilizar tareas cron para realizar tareas periódicas. Pasar el antivirus, realizar copias de seguridad, optimizar bases de datos ... etc ... etc ...
Qué hacer
Nota: La sintaxis puede diferir según la versión de cron en su sistema.
- Inicie una sesión shell como root y escriba el siguiente comando para iniciar un editor tipo VI:
crontab -u root -e
- Pulse '
i
' para insertar texto.- Una tarea cron requiere cinco entradas indicando la fecha y hora, y el nombre y ruta del programa a ejecutar. Utilice un espacio o una tabulación entre cada entrada:
minuto(0-59) hora(0-23) día_del_mes(1-31) mes(1-12) día_de_la_semana (0-7) (parámetro opcional que indica la ruta del interprete del script a ejecutar) /ruta/elscript.loquesea
Puede utilizar el asterisco "*
" como carácter comodín. Así "" equivale a "
0 10 * * * /ruta/script.sh ". En este caso, el script se ejecutará a las diez de la mañana todos los días.
0 10 1-31 1-12 0-7 /ruta/script.sh
Por ejemplo, para realizar un escaneado con SophosAnti-Virus en el que se borren los elementos infectados de forma automática a las 8 de la noche en Linux (en Darwin no es necesario indicar la ruta a sweep), utilice:
0 20 * * * /usr/local/bin/sweep /directorio/subdirectorio -remove
Es posible utilizar nombres, en inglés, para indicar el mes o el día de la semana. Para el domingo puede utilizar Sunday, 0 ó 7.- Una vez especificada la tarea, pulse 'Esc' para dejar el modo de inserción.
- Pulse '
ZZ
' ('z' mayúsculas dos veces). Se mostrará un mensaje del tipo:/crontab.zUcAAFwPVp: 1 lines, 24 characters
crontab: installing new crontabLa tarea ya se ha guardado y se enviará un mensaje de confirmación a root.
Para más información sobre cron o crontab, lea las páginas man correspondientes. Por ejemplo, para ver las páginas man de crontab:
man crontab
Fuente: www.esp.shopos.com
Realizar copia de seguridad de archivos web
Para realizar copias de seguridad, en linux, de nuestros archivos web cada cierto tiempo, deberemos de crear una tarea en el cron. Si no sabes como crearla pásate por aquí.
Yo suelo utilizar php para realizar dichas tareas:
- //ruta archivo de salida
- $C_FILE_ARCHIVO = "/ruta/backups/file_backup_".date("y_m_d_H_i_s").".tar.bz2";
- //archivo o directorio a comprimir
- $C_FILE_COMPRIME="eldirectoriodemiweb.com/";
- //instrucción de guardado
- system('tar -c "'.$C_FILE_COMPRIME.'" | bzip2 > "'.$C_FILE_ARCHIVO.'"');
//ruta archivo de salida
$C_FILE_ARCHIVO = "/ruta/backups/file_backup_".date("y_m_d_H_i_s").".tar.bz2";
//archivo o directorio a comprimir
$C_FILE_COMPRIME="eldirectoriodemiweb.com/";
//instrucción de guardado
system('tar -c "'.$C_FILE_COMPRIME.'" | bzip2 > "'.$C_FILE_ARCHIVO.'"');
Cualquier duda preguntarla.
martes, 24 de junio de 2008
Pincelando Evobas
Visto que no he logrado encontrar un colaborador grafista para Evobas, he decidido encarar al toro por los cuernos.
Si partimos de que mi talento para el dibujo se encuentra muy verde, cualquier cosa es posible.
Día a día voy aprendiendo e intento defenderme con los diseños que no es poco.
El estilo que voy a seguir todavía no lo tengo muy claro.
Lo mejor será mostrar un pequeño collage de bocetos.
Crear un archivo .htaccess o .loquesea en windows
Bueno, hace tiempo me ví en la tesitura de crear un archivo .htaccess en un entorno windows y encontré dos posibles soluciones:
1º- Descargarme un archivo que ya contenga el punto delante .htaccess y renombrarlo. Descargar .htaccess
2º- Renombrar un archivo mediante la consola de windows.
Pasito a pasito:
2.1- Crea un archivo en blanco .txt y llévalo a c:/ (llámalo mismamente nuevo.txt)
2.2-Ve a Inicio (abajo a la izquierda en XP) luego clicka en Ejecutar... , escribe cmd y se abrirá la consola de windows.
2.3- Para asegurarnos que estamos en c:/ escribimos en la consola cd c:\ (si no lo estamos nos llevará)
2.4- Renombramos el archivo escribiendo rename nuevo.txt .htaccess
Eureka!!
lunes, 23 de junio de 2008
Detector de "LadyBoys"
¿Qué tal funciona tu detector de maromos?
80%
Created by Bangkok Diaries - a Bangkok blog
Fiu he acertado el 80% confundiéndome solamente en dos mujeres por maromos.
Más vale prevenir que curar :X
Tutorial para dibujar un dragón con cuernos
Marchando otro tutorial de como dibujar dragones, en este caso de un dragón cornudo.
Paso 1
Vamos a construir la cabeza del dragón con 4 partes básicas, la mejilla o mandíbula, la cuenca del ojo, el hocico y el cuello. Dibujamos estas formas básicas en un "burbujeo" para tener un punto de vista general del dibujo.
Paso 2
Paso 3
Dibujamos el cuello del dragón, definimos el rostro aportándole detalle, añadimos pliegues a la piel y "hundimos" los ojos en el cráneo.
Paso 4
Por último añadimos los detalles que hacen único al dragón. En esta ocasión vamos a dibujarle cuernos de carnero, dos orejas y escamas desde la cresta al vientre.
Respeta el C@pyright
Os recuerdo que ya he subido otros tutoriales anteriormente :
- Plantilla para dibujar un lobo
- Plantilla para dibujar un lobo 2
- Plantilla para dibujar un dragón
- Plantilla para dibujar un dragón II
viernes, 20 de junio de 2008
Kil Gun - shake
La verdad es que no entiendo porque estas canciones no se convierten en hits en España.
domingo, 8 de junio de 2008
jueves, 5 de junio de 2008
Crear DSN desde vb 6.0 en tiempo de ejecución
Largo ha sido el camino transitado hasta encontrar la solución a uno de mis grandes dilemas.
Ahora que ya he conseguido hacerlo, lo comparto con el mundo.
El crear DSN's de forma dinámica en tiempo de ejecución nos permite configurar y utilizar las conexiones de los controles y data reports sin miedo a futuros cambios.
El código lo he organizado en un módulo.
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''' Autor: Roberto Herrero '''''''''''''''''''''''''''''''
- ''' Fecha: 05/Junio/2008 '''''''''''''''''''''''''''''''
- ''' http://blog-indomita.blogspot.com/ '''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''' Origen : Brian Plano Abad '''''''''''''''''''''''''''''''
- ''' Fecha: 20/Dic/2006 (18 Diciembre 2006) '''''''''''''''''''''''''''''''
- ''' bplano@ solingest.com '''''''''''''''''''''''''''''''
- ''' http://www.elguille.info/colabora/vb2006/jesus_Ejemplo_Report_Manager2.htm
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- Option Explicit
- 'Constantes
- Private Const ODBC_ADD_DSN = 1 ' Nuevo DSN
- Private Const ODBC_CONFIG_DSN = 2 ' Modificar DSN
- Private Const ODBC_REMOVE_DSN = 3 ' Eliminar DSN
- Private Const ODBC_ADD_SYS_DSN = 4 ' Nuevo DSN de sistema
- Private Const ODBC_CONFIG_SYS_DSN = 5 ' Modificar DSN de sistema
- Private Const ODBC_REMOVE_SYS_DSN = 6 ' Eliminar DSN de sistema
- Private Const vbAPINull As Long = 0 ' Null Pointer
- Private Const SQL_SUCCESS As Long = 0
- Private Const SQL_FETCH_NEXT As Long = 1
- 'Declaración de funciones de API
- Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent As Long, ByVal fRequest As Long, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
- Private Declare Function SQLDataSources Lib "ODBC32.DLL" (ByVal henv As Long, ByVal fDirection As Integer, ByVal szDSN As String, ByVal cbDSNMax As Integer, pcbDSN As Integer, ByVal szDescription As String, ByVal cbDescriptionMax As Integer, pcbDescription As Integer) As Integer
- Private Declare Function SQLAllocEnv Lib "ODBC32.DLL" (Env As Long) As Integer
- 'Constantes
- 'ruta hasta el servidor (ip/nombre/ruta)
- Private Const C_Server = "localhost"
- 'usuario
- Private Const C_User = "usuario"
- 'contraseña
- Private Const C_Pass = "contraseña"
- 'base de datos
- Private Const C_BD = "nombre base de datos"
- 'puerto
- Private Const C_Port = 3306
- 'Nombre ODBC de MySql
- '(si no tienes ninguno instalado http://dev.mysql.com/downloads/connector/odbc/5.1.html)
- Public Const C_MYSQL_ODBC = "MySQL ODBC 5.1 Driver"
- '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- '''' FUNCIONES
- '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- 'Crea el DSN para las conexiones
- '(utiliza las constantes por defecto para conectarse a un servidor MySql)
- 'Si deseas personalizarlo o dinamizarlo deberás utilizar el resto de funciones
- Public Function IniciaDSN(sDSNname As String) As Boolean
- 'Comprobamos si existe
- If ExisteDSN(sDSNname) = True Then
- 'Si existe lo eliminamos previamente.
- If BorrarDSN(sDSNname, C_MYSQL_ODBC) = False Then
- IniciaDSN = False
- Exit Function
- End If
- End If
- 'Creamos el nuevo DSN.
- IniciaDSN = MySQLCrearDSN(sDSNname)
- End Function
- 'Crea un DSN del sistema.
- Public Function CrearDSN(sDSN As String, sDriver As String, sAtributos As String, Optional sHwnd As Long = vbAPINull) As Boolean
- 'Creamos el DSN (En vez de vbAPINull, empleamos el hwnd del formulario)
- CrearDSN = CBool(SQLConfigDataSource(sHwnd, ODBC_ADD_SYS_DSN, sDriver, sAtributos))
- End Function
- 'Crea un DSN MySQL con los atributos bien seteados.
- Public Function MySQLCrearDSN(sDSN As String, _
- Optional sServer As String = C_Server, Optional sBD As String = C_BD, _
- Optional sUser As String = C_User, Optional sPass As String = C_Pass, _
- Optional sPort As Integer = C_Port) As Boolean
- Dim sDriver As String
- Dim sAtributos As String
- sDriver = C_MYSQL_ODBC
- sAtributos = "DSN=" & sDSN & Chr(0)
- sAtributos = sAtributos & "SERVER=" & sServer & Chr(0)
- sAtributos = sAtributos & "PORT=" & sPort & Chr(0)
- sAtributos = sAtributos & "DATABASE=" & sBD & Chr(0)
- sAtributos = sAtributos & "USER=" & sUser & Chr(0)
- sAtributos = sAtributos & "PASSWORD=" & sPass & Chr(0)
- sAtributos = sAtributos & "OPTION=3" & Chr(0)
- 'Si queremos resetear la conexión de datos, debemos borrarlo antes
- If ExisteDSN(sDSN) Then
- Call BorrarDSN(sDSN, sDriver)
- End If
- MySQLCrearDSN = CrearDSN(sDSN, sDriver, sAtributos)
- End Function
- 'Elimina un DSN del sistema.
- Public Function BorrarDSN(sDSN As String, sDriver As String, Optional sHwnd As Long = vbAPINull) As Boolean
- Dim sAtributos As String
- ' Borramos el DSN (En vez de vbAPINull, empleamos el hwnd del formulario)
- If ExisteDSN(sDSN) Then
- sAtributos = "DSN=" & sDSN & Chr(0)
- BorrarDSN = CBool(SQLConfigDataSource(sHwnd, ODBC_REMOVE_SYS_DSN, sDriver, sAtributos))
- Else
- MsgBox ExIdioma("ModDSN_Contr1")
- BorrarDSN = False
- End If
- End Function
- 'Comprueba si existe un DSN en el sistema.
- Public Function ExisteDSN(sDSN As String) As Boolean
- Dim I As Integer, j As Integer
- Dim sDSNItem As String * 1024
- Dim sDRVItem As String * 1024
- Dim sDSNActual As String
- Dim sDRV As String
- Dim iDSNLen As Integer
- Dim iDRVLen As Integer
- Dim lHenv As Long 'controlador del entorno
- Dim DSNLISTA(100)
- ExisteDSN = False
- For j = 1 To 52
- DSNLISTA(j) = ""
- Next j
- j = 1
- If SQLAllocEnv(lHenv) <> -1 Then
- Do Until I <> SQL_SUCCESS
- sDSNItem = Space(1024)
- sDRVItem = Space(1024)
- I = SQLDataSources(lHenv, SQL_FETCH_NEXT, sDSNItem, 1024, iDSNLen, sDRVItem, 1024, iDRVLen)
- sDSNActual = VBA.Left(sDSNItem, iDSNLen)
- sDRV = VBA.Left(sDRVItem, iDRVLen)
- If sDSN <> Space(iDSNLen) Then
- DSNLISTA(j) = sDSN
- If UCase(sDSN) = UCase(sDSNActual) Then
- ExisteDSN = True
- Exit Do
- End If
- End If
- Loop
- End If
- End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''' Autor: Roberto Herrero '''''''''''''''''''''''''''''''
''' Fecha: 05/Junio/2008 '''''''''''''''''''''''''''''''
''' http://blog-indomita.blogspot.com/ '''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''' Origen : Brian Plano Abad '''''''''''''''''''''''''''''''
''' Fecha: 20/Dic/2006 (18 Diciembre 2006) '''''''''''''''''''''''''''''''
''' bplano@ solingest.com '''''''''''''''''''''''''''''''
''' http://www.elguille.info/colabora/vb2006/jesus_Ejemplo_Report_Manager2.htm
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
'Constantes
Private Const ODBC_ADD_DSN = 1 ' Nuevo DSN
Private Const ODBC_CONFIG_DSN = 2 ' Modificar DSN
Private Const ODBC_REMOVE_DSN = 3 ' Eliminar DSN
Private Const ODBC_ADD_SYS_DSN = 4 ' Nuevo DSN de sistema
Private Const ODBC_CONFIG_SYS_DSN = 5 ' Modificar DSN de sistema
Private Const ODBC_REMOVE_SYS_DSN = 6 ' Eliminar DSN de sistema
Private Const vbAPINull As Long = 0 ' Null Pointer
Private Const SQL_SUCCESS As Long = 0
Private Const SQL_FETCH_NEXT As Long = 1
'Declaración de funciones de API
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" (ByVal hwndParent As Long, ByVal fRequest As Long, ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
Private Declare Function SQLDataSources Lib "ODBC32.DLL" (ByVal henv As Long, ByVal fDirection As Integer, ByVal szDSN As String, ByVal cbDSNMax As Integer, pcbDSN As Integer, ByVal szDescription As String, ByVal cbDescriptionMax As Integer, pcbDescription As Integer) As Integer
Private Declare Function SQLAllocEnv Lib "ODBC32.DLL" (Env As Long) As Integer
'Constantes
'ruta hasta el servidor (ip/nombre/ruta)
Private Const C_Server = "localhost"
'usuario
Private Const C_User = "usuario"
'contraseña
Private Const C_Pass = "contraseña"
'base de datos
Private Const C_BD = "nombre base de datos"
'puerto
Private Const C_Port = 3306
'Nombre ODBC de MySql
'(si no tienes ninguno instalado http://dev.mysql.com/downloads/connector/odbc/5.1.html)
Public Const C_MYSQL_ODBC = "MySQL ODBC 5.1 Driver"
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''' FUNCIONES
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Crea el DSN para las conexiones
'(utiliza las constantes por defecto para conectarse a un servidor MySql)
'Si deseas personalizarlo o dinamizarlo deberás utilizar el resto de funciones
Public Function IniciaDSN(sDSNname As String) As Boolean
'Comprobamos si existe
If ExisteDSN(sDSNname) = True Then
'Si existe lo eliminamos previamente.
If BorrarDSN(sDSNname, C_MYSQL_ODBC) = False Then
IniciaDSN = False
Exit Function
End If
End If
'Creamos el nuevo DSN.
IniciaDSN = MySQLCrearDSN(sDSNname)
End Function
'Crea un DSN del sistema.
Public Function CrearDSN(sDSN As String, sDriver As String, sAtributos As String, Optional sHwnd As Long = vbAPINull) As Boolean
'Creamos el DSN (En vez de vbAPINull, empleamos el hwnd del formulario)
CrearDSN = CBool(SQLConfigDataSource(sHwnd, ODBC_ADD_SYS_DSN, sDriver, sAtributos))
End Function
'Crea un DSN MySQL con los atributos bien seteados.
Public Function MySQLCrearDSN(sDSN As String, _
Optional sServer As String = C_Server, Optional sBD As String = C_BD, _
Optional sUser As String = C_User, Optional sPass As String = C_Pass, _
Optional sPort As Integer = C_Port) As Boolean
Dim sDriver As String
Dim sAtributos As String
sDriver = C_MYSQL_ODBC
sAtributos = "DSN=" & sDSN & Chr(0)
sAtributos = sAtributos & "SERVER=" & sServer & Chr(0)
sAtributos = sAtributos & "PORT=" & sPort & Chr(0)
sAtributos = sAtributos & "DATABASE=" & sBD & Chr(0)
sAtributos = sAtributos & "USER=" & sUser & Chr(0)
sAtributos = sAtributos & "PASSWORD=" & sPass & Chr(0)
sAtributos = sAtributos & "OPTION=3" & Chr(0)
'Si queremos resetear la conexión de datos, debemos borrarlo antes
If ExisteDSN(sDSN) Then
Call BorrarDSN(sDSN, sDriver)
End If
MySQLCrearDSN = CrearDSN(sDSN, sDriver, sAtributos)
End Function
'Elimina un DSN del sistema.
Public Function BorrarDSN(sDSN As String, sDriver As String, Optional sHwnd As Long = vbAPINull) As Boolean
Dim sAtributos As String
' Borramos el DSN (En vez de vbAPINull, empleamos el hwnd del formulario)
If ExisteDSN(sDSN) Then
sAtributos = "DSN=" & sDSN & Chr(0)
BorrarDSN = CBool(SQLConfigDataSource(sHwnd, ODBC_REMOVE_SYS_DSN, sDriver, sAtributos))
Else
MsgBox ExIdioma("ModDSN_Contr1")
BorrarDSN = False
End If
End Function
'Comprueba si existe un DSN en el sistema.
Public Function ExisteDSN(sDSN As String) As Boolean
Dim I As Integer, j As Integer
Dim sDSNItem As String * 1024
Dim sDRVItem As String * 1024
Dim sDSNActual As String
Dim sDRV As String
Dim iDSNLen As Integer
Dim iDRVLen As Integer
Dim lHenv As Long 'controlador del entorno
Dim DSNLISTA(100)
ExisteDSN = False
For j = 1 To 52
DSNLISTA(j) = ""
Next j
j = 1
If SQLAllocEnv(lHenv) <> -1 Then
Do Until I <> SQL_SUCCESS
sDSNItem = Space(1024)
sDRVItem = Space(1024)
I = SQLDataSources(lHenv, SQL_FETCH_NEXT, sDSNItem, 1024, iDSNLen, sDRVItem, 1024, iDRVLen)
sDSNActual = VBA.Left(sDSNItem, iDSNLen)
sDRV = VBA.Left(sDRVItem, iDRVLen)
If sDSN <> Space(iDSNLen) Then
DSNLISTA(j) = sDSN
If UCase(sDSN) = UCase(sDSNActual) Then
ExisteDSN = True
Exit Do
End If
End If
Loop
End If
End Function
martes, 3 de junio de 2008
El lado oscuro del deseo
Película india ... llena de topicazos y cancioncillas. Demasiado tarde para mi.
Puntos a favor
- Las escenas torridas se encuentran trabajadas.
Puntos en contra
- Diálogos penosos.
- Traducción penosa.
- Topicazo tras topicazo típico de esas películas que emiten por las tardes en la tele.
Batalla en el Cielo
Película, al parecer, de bajo presupuesto bastante subidita de tono con desnudos explícitos.
Es mexicana.
Puntos a favor
- Las escenas son bastante "crudas", muy "naturales".
- Se pasan el día dándole.
Puntos en contra
- Diálogos en mexicano, cuesta entender tanta palabrería barriobajera.
- La trama no tiene mucho misterio.
- No entiendo porque tienen que enfocarle toda la "almeja" a la co-protagonista cuando alcanza el climax la película, con lo bien que estaba quedando la escena.
Isi Disi 2 Alto Voltaje
Parida tras parida y lo peor de todo es que el 95% carece de sentido
Puntos a favor
- Sale Kira Miró.
Puntos en contra
- Creo que es la única película en la que Kira Miró no se desnuda.
- Penosa y cutre hasta la médula.
No es país para viejos
En fin, perro ladrador poco mordedor.
Puntos a favor
- Algunas escenas se encuentran muy elaboradas.
- Algunos diálogos son pasables.
Hoy voy a destripar la película con los puntos en contra así que si te hace ilusión verla no sigas leyendo.
Puntos en contra
- Los personajes tan pronto son muy listos como tan pronto soy idiotas.
- Te pasas la película esperando a que el policía haga algo, cuando termina te preguntas que cojones pintaba.
- La película carece de sentido total, el argumento es una mera distracción para pegar tiros y matar gente sin ton ni son, de hecho se cargan al "protagonista" simplemente para que el asesino mate a su mujer.