[OT] Pienso, luego… ¡luego Googgle! // Filosofía y expresión urbana en grafitis

Este post es una reproduccion “total” de un post de un gran amigo que no escribe en su blog desde hace exactamente un año. Le pedi que siguiera escribiendo como amigo y como lector de sus experiencias como profesor y algo que destacar era que en ese momento tenia una catedra de informática de una escuela bilingüe “Cacique Pelayo”, comunidad aborigen de la etnia qom (toba) del Barrio Cacique Pelayo (Fontana, Chaco. Argentina)
Tambien porque estos grafitis que comenta aqui estan a una cuadra de mi departamento que me mude hace un mes, por eso recorde su post…

Aqui quiero plasmar este post

A Descartes se le atribuye la célebre frase “Pienso, luego existo”. Mucho se reflexionó al respecto y no me voy a poner en el rol de filósofo de cabotaje/canotaje
Lo que hoy quiero comentar, tiene que ver con algo que vi a metros de una esquina de Resistencia (Arturo Illia y Arbo y Blanco más precisamente). Allí hay dos graffiti hechos con técnica de esténcil que me parecieron muy buenos. Ahí van:

Estas dos obras de arte urbano (de autor desconocido) me llamaron la atención por su contenido, o al menos el que yo leí en ellas.

Pienso luego Google

¿Cuántas veces googleamos sin una mirada crítica?


Usá el marote

(Marote: lunfardo argentino referido a la cabeza. Sinónimo de los términos, también del lunfardo, “sabiola”, “mate”, “marola”.)

 

SI yo tuviera que traducir a prosa estos graffitis, quitándoles la síntesis fabulosa que tienen, diría algo así:

 

¡Usá el Marote!

Internet es un recurso, no reemplaza tu cerebro, tu criterio, tusensibilidad tu identidad, tu ideología, tu ingenio, tu humor, tupicardía, tus etcéteras.
La Web en si misma es inútil. Son los millones de marotes los que cotidianamente resignifican Internet; y más aún cuando esos marotes pensantes están interconectados y socializando lo que tienen dentro.

Pensá, googleá, volvé a pensar y después compartí.


Ayer, el esténcil y la pintura de un anónimo comunicador urbano movilizaron los engranajecitos de mi marote para reflexionar y escribir esto.
Hoy lo comparto con ustedes en mi blog.
Mañana alguien googleará hasta aquí.

CONTINUARÁ (en el marote o quizás hasta en el blog de otro/a)

 

Enlaces Relacionados:

Publicado por el Profe Marcelo (post original aqui)

Pasar datos entre paginas web en ASP.NET

Aqui enumero los posibles metodos de pasaje de datos entre paginas ASP.NET ya sea en el cliente o en el mismo servidor.
Este post lo tenia en borrador y como justamente hoy preguntaron algo similar en los foros y grupos de noticias de ASP.NET lo dejo por aqui para referencia.

Pero espero que este breve resumen sea util (al igual que los enlaces)

  1. Pasaje con Querystring
  2. Buscando en la coleccion Request.Form
  3. Utilizando cookies
  4. Leer mediante JS en la ventanas popup
  5. Con una propiedad public dentro de la pagina de origen
  6. Buscando el control dentro de PreviousPage
  7. Utilizando las variables de session
  8. Utilizar Context

OPCION 1: Pasaje con Querystring

El mas famoso y antiguo metodo, aqui ya sabes como debe y donde debe ir las variables… en la URL
Aqui tambien se podria armar con JS (=javascript) lo que quieras con tal de enviar por la URL a la otra pagina, por ejemplo si tienes una pelicula flash que deba enviar por enlaces a otra pagina en la url o si tienes que armar un enlace para que en la llamada a su pagina de destino incluya las variables. Mas info sobre QueryString
Tiene un limite para escribir ya que algunos navegadores no permiten mas que una cierta extension de url (y hay que pensar para navegadores mas antiguos)
Tambien hay metodos para encriptar nuestro querystring, que lo puedes investigar, aqui unos enlaces

OPCION 2: Buscando en coleccion Request.Form

Aqui tambien es casi parecido a como creamos paginas anteriormente.
La idea leer las key de la coleccion  Request.Form, esto es conveniente cuando las paginas estan en aplicaciones web diferentes (sitios web separados)
Es un poco (solo un poco) mas seguro que enviar parametros por URL como el anterior metodo (Querystring) aqui las variables van en el encabezado HTTP, por consiguiente podremos enviar mas datos.
Mas info sobre Request.Form

 

OPCION 3: Utilizando cookies

Aqui podremos guardar pequeñas porciones (y muy pequeñas de informacion) de cadenas de texto, de echo ya lo venimos utilizando con la session de ASP.NET que se guarda por defecto en una cookie
hay que tener en cuenta que es un archivo en el cliente que lo guarda el navegador por un tiempo determinado y que es susceptible al borrado. Pero en algunas ocaciones es util
Mas info: Información general sobre las cookies en ASP.NET

 

OPCION 4: Leer mediante JS en ventanas popup

Para la pagina previa (padre) o para la hija (el popup open)
Esta tecnica es puro JS, mediante el cual podemos leer controles html en el padre y colocarlas en la pagina hija como viceversa.

Ejemplo: Asignando un valor a un control en la pagina padre (esto es javascript)  

var miValor = window.opener.document.Form1.miTextbox.value;

//Otra forma
var miValor = window.opener.document.getByElementId(‘miTextbox’).value;

Ejemplo: Asignando un valor a un control a la pagina hija

//Abriendo  una ventana hija
var winHija; 
winHija = window.open(...); 

//Entonces 
var nombre = winHija.document.form1.txtNombre.value; 
//o 
var nombre = winHija.document.getElementById("txtNombre").value; 

OPCION 5: Con una propiedad public dentro de la pagina origen

Y tendrias algo asi en la pagina B:      

Label1.Text = PreviousPage.CurrentCity 

Aqui un articulo de Sergio Tarrilo

   – Pasando variables entre paginas web ASP.NET usando Cross Page Postback (por Sergio Tarrillo)

   – Pasando Valores entre Paginas (por Francisco Javier Carbajosa)

(mira el primer enlace mas abajo. Cómo: Pasar valores entre páginas Web ASP.NET)

OPCION 6: Buscando el control dentro de PreviousPage

Aqui la "magia" que hay detras de esto es el Viewstate, el gran contenedor de casi todo y alli es que "viaja" los controles y su estado.

Por eso funciona solo si esta habilitado el viewstate en los controles que necesites recuperar, y ademas que el traspaso de pagina y pagina sea a traves de elementos normales mmm por ejemplo con un popup en JS no sirve este metodo.

Esto de guardar el estado lo hace solo los webcontrol, pero igualmente podremos utilizar este “Repositorio” para guardar algo serializable, ya que se guarda una cadena. Mas info: Cómo: Guardar valores en el estado de vista

Mas info sobre ViewState:

 

OPCION 7: Utilizando las variables session

Es comun escuchar: "Pon dentro de una variable de session y luego lo recuperas"

Bueno … si no te queda otra hay que hacerlo (pero tampoco es colocar todos tus colecciones de objetos).. estas ocupando memoria del servidor. Mas info sobre Session

Ademas si es por cache hay metodos para realizarlo cache mas optimizados.

Lo malo: No tiene intellisense, ups! pero podrias encapsular, algo asi la idea:

Public Class MiSession
              Public Shared Function MiObjeto() as MiClase 
                      Dim obj as MiClase 
                      Try 
                          obj = Ctype(Session("miobj") , MiClase) 
                      Catch ex as Exepcion 
                      End Try 
                       If obj Is Nothing Then 
                                obj = new MiClase 
                                Session("miobj") = obj 
                       End if 
                       return obj 
              End Function 
     End Class 

OPCION 8: Utilizar Context

Aqui la pregunta es.. que es Context?

"(..)Almacena los valores específicos de solicitud de la aplicación para que se encuentre disponible desde cualquier parte del código que participa en el procesamiento de una solicitud(..)"

Al igual que el ViewState para guardar par de valores en una colecccion y recuperarlas mediante una clave (key) en cada peticion de la pagina este coleccion Context solo es valida para la solcitud (no perdura mas alla de esa peticion) , es decir no para uso exclusivo en el servidor, no va al cliente nada.

Un ejemplo:

Code Snippet

Dim Context As HttpContext 
Context = HttpContext.Current 
Context.Items.Add("miEjemplo", "UnEjemplo") 
Server.Transfer("Pagina2.aspx")

En la otra pagina = Pagina2.aspx

Code Snippet

Dim Context As HttpContext 
Context = HttpContext.Current 
If Context.Items.Contains("miEjemplo") Then 
    Me.lblTest.Text = CType(Context.Items("miEjemplo").ToString, String) 
    'o tambien: 
    'Me.lblTest.Text = Context.Items("miEjemplo").ToString() 
Else 
    Me.lblTest.Text = "No existe item myItem en el Contexto" 
End If

 

 

Enlaces

[OT] Select * From Google2001…. cuando no existia ni el iPhone


Si quieres buscar en el indice de Google del 2001, en honor a sus 10 años puedes jugar un poco…
Di con el enlace
http://www.google.com/search2001.html


Ejemplos:


buscando iPhone(resultados 28.600)
http://www.google.com/search2001/search?q=iphone 
(podran ver que el nombre lo tenia Cisco en un telefono)
…si buscamos hoy 375.000.000 resultados


buscando “Visual Studio .NET” (resultados 11.400)
http://www.google.com/search2001/search?q=”visual+studio+.net”&btnG=Buscar 
Aqui no recoerdaba NG (Next Generation)… 😉



Bueno, no sirve de mucho… pero es interesante para jugar unos 2 minutos 🙂