Estuve un par de dias tratando de solucionar este problema, y por fin encontre un fix. Ya que hay poca info en la vuelta, decidi tirar un post aca, capaz que alguien tiene el mismo drama y le ahorro unas horas de googleo.
El asunto es asi, al intentar conectarme por ssh al iphone se me cerraba la conexion tirandome un mensaje del estilo:
mstekl@cassandrita:~$ ssh root@192.168.1.100 -vvv
OpenSSH_5.3p1 Debian-3ubuntu4, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.100 [192.168.1.100] port 22.
debug1: Connection established.
debug1: identity file /home/mstekl/.ssh/identity type -1
debug1: identity file /home/mstekl/.ssh/id_rsa type -1
debug1: identity file /home/mstekl/.ssh/id_dsa type -1
ssh_exchange_identification: Connection closed by remote host
La solucion es tan simple como borrar los siguientes archivos: /System/Library/LaunchDaemons/com.ikey.bbot.plist y /Bin/poc-bbot
Luego hay que reinstalar el openSSH
Ah, para borrar los archivos utilice iFile, pero supongo que tambien se puede hacer a traves de la terminal.
Con eso salio funcionando sin problemas.
La explicacion? Aparentemente hay un gusano llamado Worm:iPhoneOS/Ikee.C que usa el password por defecto de root para distribuirse entre los iphones con Jailbreak.
Estoy trabajando en un proyecto donde utilizo la clásica Thickbox. Y por vez número mil tuve que averiguar como manejar las ventanitas desde javascript (vaya a saber uno por qué, en la web del plugin no hay ninguna documentación sobre esto). Así que para evitarme esta tarea en el futuro, decidí tirar un minipost y luego venir a buscar la info acá.
Es simplemente utilizar la función:
tb_show(caption, url, imageGroup)
El tercer parametro es opcional, y es basicamente un array de imagenes para mostrar un slideshow.
En la url se pueden pasar los parametros para customizar la venta (height, width, TB_iframe, etc);
A pedido de varios lectores, hice una pequeña modificación sobre el plugin de jquery que habia posteado anteriormente. Con esta versión se pueden combinar los filtros de varias columnas, tal como se hace en excel.
En pocos dias pondre online un sitio donde podran encontrar autos a la venta en automotoras de Montevideo: http://www.miautomotora.com.uy/
Espero que sea de utilidad para aquellos que estan buscando cambiar o comprar un auto nuevo o usado.
Mas noticias en pocos dias
Actualmente estoy desarrollando un sitio no muy grande, donde tengo varias funcionalidades del estilo listado de articulos, buscador, pagina de detalles de un articulo determinado, etc. Lo interesante es que también necesito tener un mini-cms, donde el cliente edite el contenido de una determinada página y la misma quede pública para los visitantes del sitio. El asunto es que las urls que utilizamos para ZF son del estilo sitio.com/modulo/controller/action. En mi caso, si el visitante quisiera acceder a la clásica página “Sobre Nosotros” deberia ir a una url del estilo: www.sitio.com/cms/ver/sobre-nosotros. Pero el cliente me pidió que la url sea algo asi: www.sitio.com/sobre-nosotros, lo cual obviamente iba un poco en contra del routeo estandar de ZF.
Me puse a googlear, e investigando un poco llegué a la siguiente solucion (no investigué mucho, por lo que calculo que capaz que hay alguna solución un poco mejor).
Básicamente lo que hice es extender el Zend_Controller_Router_Rewrite y fijarme si se puede dispatchear la url usando el esquema predefinido de ZF, si no se puede dispatchear seteo un controller y un action por defecto que se va a encargar de procesar el contenido del mini-cms. O sea, si me llega www.sitio.com/sobre-nosotros directamente voy a llamar al action ver del controller cms.
El código del router personalizado sería el siguiente:
class Stekl_Controller_Router_MiRouter extends Zend_Controller_Router_Rewrite
{
public function route(Zend_Controller_Request_Abstract $request)
No tiene nada complejo el router, simplemente lo que hago es obtener el request, luego el dispatcher y finalmente fijarme si se puede dispatchear. Si no se puede, creo un parámetro “pagina” con el valor que vino en lugar del nombre del controller. Finalmente seteo el controller y el action donde va a ocurrir la magia de interpretar el “sobre-nosotros” que me vino.
No termine aún, todavía falta decirle al Front Controller que use el router que acabo de escribir en lugar del que viene por defecto con ZF. Para ello en el bootstrap escribo lo siguiente:
Dando vueltas por la web encontre una genial recopilacion de tutoriales de Zend Framework. Tiene algunos para quiens recien comienzan a usar ZF y tiene otros que no son tan basicos. Espero que sirvan para algo:
Mi amigo Sebastián (smart) me pidió que le dé una manito con un pequeño javascript para realizar filtros sobre las filas de una tabla, al estilo excel. Así que desempolve mis viejos conocimientos sobre jquery y arme un plugin que agarra una tabla y le agrega selects en cada columna y los llena con los valores diferentes de las filas.
Hace tiempo tengo ganas de empezar a escribir pequeños tutoriales sobre cosas entretenidas. Y una de las cosas mas entretenidas que descubrí en el ultimo año es la posibilidad de crear aplicaciones 3D en Flash. He visto sitios en 3d interactivos que me han dejado con la boca abierta. Hay un blog que se dedica a buscar y postear diariamente sitios en 3D buenos : Daily Papervision3D
Existen varios motores 3D que podemos utilizar: Away3D, Sandy, Five3D, Papervision3D, entre otros… En mi caso elegi papervision3D, ya que durante el año pasado estuve trabajando con él. Bueno, arranquemos con el breve tutorial…
En este caso nuestro document class esta extendiendo a BasicView. Por que? Bueno, cuando creamos algo en PV3d debemos encargarnos de crear y manejar diferentes objetos necesarios para redenderear el mundo 3d, ellos son: la escena, el viewport y la camara. Bueno, la gracia es que toda eso ya esta hecho dentro del BasicView, por lo cual al principio no debemos preocuparnos por esto. En este blog se puede leer un poco mas sobre el BasicView.
Luego, dentro de nuestro constructor tenemos:
var materiales:MaterialsList = new MaterialsList();
materiales.addMaterial(new WireframeMaterial(), "all");
cubo = new Cube(materiales);
scene.addChild(cubo);
Aqui estamos creando un cubo con determinado material (el wireframe es tan solo uno de los diferentes materiales que le podemos asignar a los objetos en pv3d, recomiendo mirar la documentacion para conocer mas sobre el tema materiales). Luego de creado el cubo lo debemos agregar como child de la escena que vamos a renderear. Si quieres que se muestren los objetos en pv3d, debes agregarlos a la escena. Tal cual lo haces usualmente con los sprites.
Bueno, el cubo ya esta en la escena. Lo que hacemos ahora es subir la camara al y=500, y luego la hacemos mirar al cubo que creamos anteriormente. Con esto logramos un angulo para apreciar mejor el efecto 3D. Ya tenemos todo listo, ahora empezamos a renderear. El startRendering agrega un eventListener al enter frame y llama a onRenderStick.
Para lograr la rotacion del cubo, lo que hacemos es girarlo 1 grado en cada frame con el yaw(1). Y luego rendereamos la escena usando la camara y el vierport del BasicView. En lugar de este ultima linea tambien podriamos usar super.onRenderStick(event).
Bueno, con esto tendriamos nuestro primer ejemplo de papervision funcionando. Para ver mas tutoriales de papervision recomiendo pegarse una vuelta por pv3d.org.
A través de alt1040 llegué a esta seleccíon de aplicaciones web útiles al momento de pensar algún diseño. La recopilación fué hecha por Six Revisions, un sitio que vale la pena revisar, pues tiene muchos recursos interesantes para el armado de sitios web.