Ir a la home
Invitado   
Recursos y discusiones sobre desarrollo web.
9/9/2010, 22:41:52



|< < | 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 | > >| [ 31 a 45 de 387 ]

21/02/2009 a las 13:31:27h.

Linux > Otros

Bajar revistas de Zinio gratis y pasarlas a PDF

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
He creado un script BASH que permite descargarse las revistas que hay disponibles para iPhone en la web Zinio a nuestro ordenador con Linux (cualquier Unix, MacOS X o Cygwin).

Lo divido en dos partes, según vuestro interés.

El script básico, con las intrucciones de uso y las descargas es éste:
#!/bin/bash

if [ "$2" = "" -o "$2" = "-c" ]; then
    echo "Usage: $0 [-c]"
    echo ""
    echo "    -c:  optional, performs temporary files."
    echo ""
    echo "    MAGAZINE_ID: Look for magazine id at:"
    echo "      http://imgs.zinio.com/iphone/
    echo "    whith iPhone User Agent active. You can emulate"
    echo "    it with Firefox and UserAgent extension:
    echo "      https://addons.mozilla.org/es-ES/firefox/addon/3863"
    echo "    User agent must be:";
    echo "      Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A102 Safari/419 (United States)"
    echo ""
    echo "    LIMIT: Maximun number of pages to download."
    echo "      Must be equal or superior to magazine's number of pages"
    echo ""
    exit
fi

# Download

for a in `seq 1 $2`; do
    wget --user-agent="Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML,like Gecko) Version/3.0 Mobile/4A102 Safari/419 (United States)" "http://imgs.zinio.com/iphone/issues/$1/images_pages//${1}_${a}.jpg"
done

Si, además, queremos pasar la revista a un PDF necesitaremos los programas imagemagick (suele estar instalado) y pdfjam.
Para ello basta con añadir al archivo anterior las siguientes líneas:
convert ${1}_?.jpg ${1}_1.pdf
convert ${1}_??.jpg ${1}_2.pdf
convert ${1}_???.jpg ${1}_3.pdf

mkdir ${1}
pdfjoin ${1}_1.pdf ${1}_2.pdf ${1}_3.pdf --outfile ${1}/${1}.pdf

if [ "$3" = "-c" ]; then
    # Clean
    rm ${1}_?.pdf
    rm ${1}_?.jpg
    rm ${1}_??.jpg
    rm ${1}_???.jpg
fi

Con ésto tendremos una carpeta con el código de la revista y dentro el PDF con ella.


lo guardáis con el nombre que queráis, le dáis permisos de ejecución y lo ejecutáis. Os saldrán las instrucciones:

naguissa@Turion64 ~/revistas $ nano -w bajar.sh 
naguissa@Turion64 ~/revistas $ ./bajar.sh
Usage: ./bajar.sh [-c]

    -c:  optional, performs temporary files.

    MAGAZINE_ID: Look for magazine id at:
      http://imgs.zinio.com/iphone/
    echo  whith iPhone User Agent active. You can emulate
    echo  it with Firefox and UserAgent extension:
      https://addons.mozilla.org/es-ES/firefox/addon/3863
    User agent must be:
      Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A102 Safari/419 (United States)

    LIMIT: Maximun number of pages to download.
      Must be equal or superior to magazine's number of pages

naguissa@Turion64 ~/revistas $



Podéis descargar el script de bajar y codificar revistas de Zinio completo desde mi espacio personal.


Idea sacada de: http://tuxtorpes.wordpress.com/

    Editado por Daniel el 21/02/2009 a las 13:34:10h.


    Editado por Daniel el 21/02/2009 a las 14:25:36h.


El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)
Veritis_Quo el 22/02/2009 a las 10:49:36h.:
Re: Bajar revistas de Zinio gratis y pasarlas a PDF





17/02/2009 a las 22:49:01h.

Noticias y páginas personales > Noticias generales

Trabajar en informática

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Editorial antiguo de Noticias3D. Sigue siendo plenamente vigente.


Ha pasado algo más de un año desde que escribí mi última editorial con lo que ya tenía ganas de escribir algo nuevo. En Noticias3D nos hemos abierto camino a la popularidad desde la nada porque la informática es nuestro hobby/trabajo y esto el lector lo siente. No somos el producto de ninguna inversión económica, más que de invertir gran parte de nuestro tiempo libre.

Esta editorial trata de lo que nos rodea en el sitio donde estudiamos, en la empresa donde trabajamos, que nos piden y que nos pretenden dar a cambio de nuestro trabajo, centrado todo ello en el sector de la informática. Incluiré el aspecto técnico en el tema puesto que es lo que en el fondo determina nuestra percepción de las cosas, porque nosotros somos técnicos. Prometo que la editorial será sabrosa.

Es un tópico cierto, que el mundo de la informática cambia a un ritmo tremendo tanto en el aspecto hardware como en el de software. Esto ha hecho de nosotros unas personas dinámicas, capaces de superar retos diariamente y aprender a gran velocidad. Hace algún tiempo encontré entre los comentarios de una noticia en BarraPunto.com una curiosa discusión sobre la situación laboral en el mundo TIC. Lo que más me llamó la atención fue que se citaba una oferta de trabajo real, aparecida en cierto periódico nacional o en alguna bolsa de trabajo como Infojobs.net:

Se pide experiencia de 2 años en:

  • Solaris, Aix, Windows NT y 2000. Administración
  • Oracle a fondo, Informix, SQL Server e IBM DB2, incluida administración
  • Lotus Notes, programación y administración
  • PHP y ASP
  • HTML, DHTML, Javascript y XML
  • Análisis y diseño orientado a objetos, modelado de bases de datos
  • C y C++
  • Java a fondo, con experiencia en J2EE
  • Oracle JDeveloper a fondo

Leed detenidamente los requisitos de nuevo! Si en algún momento se han preguntado sobre TODO lo que se le puede pedir a un informático, acaban de encontrar una lista bastante completita. Seguramente faltan 2 o 3 tecnologías como C#, VB.NET, Web Services con SOAP, firma electrónica, seguridad informática, networking para abarcar prácticamente todo el sector. Añadir o quitar las tecnologías que acabo de citar no cambia en absoluto la conclusión que se puede extraer de esta oferta.

¿Qué es lo primero que salta a la vista al leer dicha oferta de trabajo?

Sencillamente, no creo que nadie en este mundo cumpla con los requisitos expuestos, por lo menos no con la profundidad deseada. Si os soy sincero, al terminar de leer la oferta de trabajo no me sorprendí tanto puesto que si uno ha estado buscando trabajo en este sector, estará habituado a que se busque a auténticos genios.

Vamos a desglosar un poco los requisitos y ver que cosas llaman la atención.

Según la primera línea de la oferta, se busca una persona que domine"Solaris, Aix, Windows NT y 2000. Administración".Por tanto, parece que se pide una persona para trabajar en el departamento de sistemas informáticos de una empresa. Se pide conocer tanto el mundo Unix, cuyos representantes citados aquí son los sistemas operativos Solaris de Sun, y AIX de IBM como el mundo de administración en Windows cuyo más firme representante actual es Windows 2003 Server que está sustituyendo muy lentamente a Windows 2000 Server.

Personalmente he tenido contacto con diferentes Unix propietarios: Digital Unix, HP-UX y AIX que aunque no conozca en profundidad, encuentro entre ellos muchas similitudes, y también existen muchas diferencias. Por tanto, el conocer dos Unix distintos puede que no sea para tanto dependiendo de lo que se pida. Por eso, yo soy más partidario de seguir la tradición y llamar a HP-UX, Digital Unix, AIX, Solaris, Irix, etc. "Unix" en general. De entre todos ellos, Solaris es el más popular seguido por HP-UX y después AIX que IBM deja cada vez más de lado a favor de Linux.

Hasta hace poco administraba con ayuda de gente, el cluster de una caja de ahorros nacional que tenía un balanceador de carga (Linux) del que colgaban dos Digital AlphaServer Series 1000 con OSF1 que actuaban de frontal Web corriendo Apache. Después de los Apaches, había un cluster de Vaxes que ejecutaban el COBOL en el backend. El shell de OpenVMS que llegué a ver a la persona que administraba los Vaxes me encantó. Para los que nunca han oído hablar de VAX y OpenVMS diré que VAX es la arquitectura hardware y VMS (posteriormente rebautizado a OpenVMS) el sistema operativo. Vax y OpenVMS eran propiedad de Digital Alpha que comprada por Compaq casi entera salvo el núcleo ARM de Digital que compró Intel y que tras varios rediseños se llama Xscale. Por otra parte la última generación de CPU de Alpha, el 21264, cuyo diseño lideró Dirk Meyer en Digital y que posteriormente se fue a trabajar a Amd guarda un carácter de primos – hermanos con el Athlon y por tanto obviamente con el Athlon 64. Ya para terminar y que quedé rotundamente claro la calidad técnica de Digital, sólo basta añadir que el núcleo de 32 bits de Windows, es decir, Windows NT4/2000/XP/2003 tiene mucho que ver con Dave Cutler, otro hombre ex-Digital.

Compaq no supo que hacer con la arquitectura hardware Alpha de Digital y menos con sus sistemas operativos: OSF1 y OpenVMS. Posteriormente, HP compró Compaq y ya ha quedado patente que ellos saben aún menos que hacer con los anteriores. Básicamente han matado, la arquitectura hardware Alpha (x86, es decir, Intel y Amd son mucho más baratos) y nunca apoyaron lo suficiente los sistemas operativos que al no tener hardware nuevo tampoco futuro. HP se había comprometido a portar OpenVMS a Itanium pero hace mucho tiempo que no oigo nada de ello.

Como ilusión no viable, me gustaría ver OpenVMS sobre x86-64. En un principio HP lo estaba portando a Itanium y incluso se rumoreo que se portaría a x86, pero yo no veo progresos reales ni ganas de comercializarlo. OpenVMS, el sistema operativos de los míticos VAX, es un sistema operativo muy estable que fue utilizado (creo que se sigue usando) por muchos ejércitos, entre ellos es de USA y España. Es un sistema, que introdujo importantes innovaciones tecnológicas como, por ejemplo, sistema de archivos con journaling hace más de dos décadas !!! (Una de las novedades del futuro LongHorn).

Bien, entonces siguiendo con el tema que nos ocupa, yo personalmente, sólo haría distinción entre Unix, Windows y OpenVMS. Eso sí, me gusta separar Linux del pack Unix a modo de premio por ser software libre y por otras muchas cosas que son tema de otra discusión.

Volviendo a la oferta de trabajo, puestos a pedir, me llama la atención el hecho de que no se mencione Linux, sobre todo teniendo en cuenta sus excelentes capacidades de servidor y su popularidad en este tipo de área de redes/servidores a nivel empresarial. Además hay que hacer notar que Linux está sustituyendo de manera firme a los Unix propietarios. Esto se debe al importante apoyo a Linux de los propios desarrolladores de los citados Unix propietarios de IBM, HP, SGI (Irix ya está prácticamente muerto) e incluso SUN. Otro factor de esta migración es que los administradores Unix con experiencia encuentran menos dificultades a migrar a Linux que a Windows, simplemente porque, Linux es muchos mas parecido a Unix y les da mayor confianza.

Posiblemente, la compañía de la oferta de trabajo, tenga una mezcla de servidores Unix/Windows con Unix dedicado a cosas críticas como servidores de bases de datos, clusters para la aplicación X, etc. y Windows actuando de controlador de dominio, servidor de correo Exchange, etc.

Por tanto, la primera conclusión que sacamos es que se pide Administrador de sistemas polifacético con experiencia Unix (Solaris y Aix) y Windows Server. La segunda línea es otra perla en sí misma, "Oracle a fondo, Informix, SQL Server e IBM DB2, incluida administración". De aquí deducimos que se busca una persona con muy buen conocimiento en el área de bases de datos. Se pide conocer Oracle, una de las bases de datos más extendidas. Yo incluso diría que líder a nivel de lo que los yankees llaman "mindshare". Como en la línea anterior, también se pide conocer la tecnología respectiva de Microsoft en este terreno, SQL Server. En cuanto a Informix y DB2, ambos productos pertenecen a IBM, DB2 está en pleno resurgimiento tras la calidad de sus ultimas versiones: 7 y 8 e Informix en clara muerte.

Oracle que va por la versión 10, es una base de datos espectacular en mi opinión: tanto por su solidez, características y rendimiento como por precio, espectacularmente alto. Personalmente, creo que las diferentes versiones de la base de datos Oracle se han caracterizado por su sofisticación tecnológica, enormes posibilidades de configuración de casi cualquier detalle y liderazgo en rendimiento. Hay que destacar que a su vez Oracle ha sido tradicionalmente el producto más caro y que requería un mayor nivel de conocimientos de administración de bases de datos. Oracle es el preferido por bancos, organizaciones gubernamentales, grandes empresas, etc. Por tanto, se puede decir que Oracle ha atacado el mercado desde el high-end.

La estrategía de Microsoft con SQL Server ha sido radicalmente opuesta. SQL Server rompió el mercado con su facilidad de instalación y configuración. Se puede decir que la filosofía de configuración de Windows ha sido extendida a un producto de base de datos y por tanto a la gente desde el principio, SQL Server le parece familiar. La solidez de SQL Server es excelente y este producto suele liderar las estadísticas de precio/rendimiento. Por todo ello, SQL Server se ha ido expandiendo muy rápidamente en el mercado. Además fue de los primeros en incorporar paquete OLAP para Data Mining (estadísticas complejas a partir de los datos de las tablas). Por tanto, en mi opinión SQL Server es un producto que ha atacado el mercado desde el low-end.

En cuanto a IBM DB2, esta base de datos ha superado recientemente un periodo de mediocridad. La versión 8.1 actual, es un producto excelente, que esta cosechando numerosos premios. Su rendimiento es digno de todo elogió tanto en Windows como en Linux. (Para todo lo relativo a rendimiento consultar entre otroswww.tpc.org)Puestos a pedir --->Me llama la atención que no mencionen MySQL, la base de datos Open Source de mayor popularidad y que ha proporcionado a las masas un producto de excelentes prestaciones (el más rápido en consultas SELECT sencillas), solidez y todo ello gratis. Personalmente me gusta mucho este producto. Lo que también es cierto es que MySQL ha ido incorporando algunas características con las que contaban todos sus competidores desde siempre, de manera muy lenta. Algunas de estas funcionalidades, si bien no son necesarias para albergar un foro, una página web, etc sí que son deseables para una aplicación empresarial. Estoy hablando de nada más ni menos de cosas como con capacidades OLAP, XML, procedimientos almacenados, triggers, vistas, etc.

Según Gartner la ocupación del mercado de estos productos es la siguiente:

Empresa 2003 Cuota Mercado (%) 2002 Cuota Mercado (%)
IBM 35.7 35.7
Oracle 32.6 33.4
Microsoft 18.7 17.7
NCR Teradata 2.8 2.7
Otros (MySQL, SyBase...) 10.3 10.4

Tabla 4.25. Distribución de mercado de bases de datos

Para más información:www4.gartner.com/.../asset_86529_11.jsp

Por tanto, de esta segunda línea de requisitos, sacamos la conclusión de que se requiere un Administrador de base de datos (DBA) con experiencia y conocedor productos tan diferentes como Oracle, SQL Server, DB2 e Informix, casi nada.

Relacionando lo que sabemos hasta ahora, la empresa que hace la oferta de trabajo parece disponer de diferentes bases de datos sobre diferentes sistemas operativos: Oracle sobre Solaris, DB2 sobre AIX y SQL Server sobre Windows Server.

Pasamos a la tercera línea "Lotus Notes, programación y administración." La verdad es que no conozco Lotus Notes, pero parece ser un sistema de gestión documental para facilitar el trabajo en grupo. Todos los documentos se almacenan en una base de datos y se tienen una serie de plantillas para inserción, modificación de contenidos, etc.

Vamos a ver los siguientes dos requisitos conjuntamente: "HTML, DHTML, Javascript, XML, PHP y ASP". Como se puede ver, ahora parece que el perfil buscado es de Webmaster que domine lo típico de HTML + Javascript. Además se piden dos tecnologías de generación de páginas web dinámicas: PHP y ASP, ésta última de Microsoft. Aquí ya estamos identificando una tendencia del posible empleador, siempre que le interesa una tecnología, está interesado en algunas implementaciones populares además de la propia de Microsoft.

Posiblemente, el website corporativo de la empresa está construido con alguna de estas tecnologías dinámicas y además se dispone de una Intranet basada en PHP (PHPNuke, PostNuke, etc.) o ASP (Microsoft SharePoint Server). Aquí me planteo, si Lotus Notes, no es precisamente un competidor de SharePoint. Otra posibilidad es que parte de los productos de la empresa empleadora sea la creación de páginas web.

Entonces según este último requisito, el perfil buscado es deWebmaster.

Seguimos mirando los requisitos. Las tres líneas siguientes también se pueden agrupar con claridad"Análisis y diseño orientado a objetos, modelado de bases de datos. C y C++. Java a fondo, con experiencia en J2EE".

Está claro, que ahora se busca Analista-Programador.

C/C++ es, sin lugar a dudas, los más popular en cuanto a desarrollo de aplicaciones se refiere. En mi opinión personal lo más productivo es combinar un lenguaje fuertemente tipado como C++, Java o C# con un lenguaje de scripting como Perl, Python o Shell scripting. (Perdon, si a algún lector lo que acabo de decir les parece una herejía).

Generalizando, creo que hoy en día, C/C++ es líder indiscutible en cuanto a su uso en aplicaciones, salvo algunas excepciones concretas como pueden ser el entorno web donde predominan HTML, PHP/ASP o en aplicaciones empresariales B2C (Business to customer) y B2B (Business to business) con fuerte procesado en el back-end donde predomina Java y está empezando a aparecer la plataforma .NET.

Cada vez es más habitual usar IDEs (Entornos de desarrollo integrados) como Visual Studio, Delphi, NetBeans, Eclipse, etc para el desarrollo de aplicaciones. Creo que se debería dar mucho énfasis a la optimización de compiladores de estas herramientas porque al final esto sí que puede marcar una diferencia en cuanto a rendimiento.

El paso de C a C++ con todas las ventajas que este conlleva por ser OOP como reutilización de código, escalabilidad, productividad y gestión me parece fundamental. Y más si la pérdida de rendimiento es tan sólo de 10 - 15 % en la mayoría de casos.

En realidad esta perdida de rendimiento es siempre mayor puesto que el paso no es simplemente de C a C++ sino que se incorporan un montón de funcionalidades adicionales como modelo de eventos, modelos de comunicación de objetos (Corba, OLE, etc), múltiples capas (patrones MVC), comunicación entre capas (A veces ineficiente), generación de interfaces gráficos, gestión de excepciones, creación de trazas para gestión de errores y seguimiento y un largo etc. Estoy hablando de programar un entorno gráfico, sea Windows o Linux.

En cuanto a Java y C# me parecen pasos en la dirección correcta frente a C++ por muchas cosas como: el recolector de basura, eliminación de punteros, y sobre todo la altísima productividad que poseen gracias a su sencillez. No obstante, la velocidad es un tema a solucionar sobre todo en algunos casos: arranque de maquina virtual, apertura de múltiples máquinas virtuales (Sun tiene muchas ideas sobre esto), recolección de basura, etc. Java además tiene un problema con los GUI desde mi punto de vista por ser difíciles de diseñar y demasiado lentos sobre todo frente a las competidores de Microsoft.

Volviendo al requisito de conocer J2EE de la oferta de trabajo, hoy en día, es muy común que el back-end de una aplicación empresarial se haga siguiendo el estándar J2EE de Java. Esto tiene sus razones. Java proporciona una API versátil, amplía, bien documentada y con excelente integración entre los diferentes componentes que la conforman. A continuación se listan algunas de las tecnologías que incorpora J2EE:

  • Java API for XML-Based RPC (JAX-RPC) para Web Services
  • JavaServer Pages (JSP)
  • Java Faces
  • Java Servlets
  • Enterprise JavaBeans components (EJB)
  • J2EE Connector Architecture
  • J2EE Management Model
  • J2EE Deployment API
  • Java Management Extensions (JMX)
  • J2EE Authorization Contract for Containers
  • Java API for XML Registries (JAXR)
  • Java Message Service (JMS)
  • Java Naming y Directory Interface (JNDI)
  • Java Transaction API (JTA)
  • JDBC API para acceder a bases de datos

La potencia y rapidez de desarrollo de aplicaciones basadas en J2EE es, desde mi punto de vista muy buena. Si queremos construir una aplicación distribuida de alta escalabidad, J2EE nos ayuda proporcionando los EJBs. Además nuestra aplicación podrá acceder sin esfuerzo a la práctica totalidad de de bases de datos gracias a JDBC. Además podremos incorporar un sistema sofisticado de gestión gracias a JMX. La cara de nuestra aplicación hacia el exterior podrá ser un Web Service basado en Soap, una página JSP o un fundido XML/XSL con un Servlet detrás que además podrá capturar la sesión y el request del cliente Web y trabajar con ellos.

Pero esto no es todo, una vez desarrollada la aplicación, su desplegado en un servidor de aplicaciones compatible con J2EE será inmediato. Además como Java es multiplataforma (esto no es inmediato, hay que programar con vistas a ello), podremos desarrollar aplicaciones en Windows o Linux, que luego se despliegan con elegancia en plataformas como HP-UX, Solaris, AIX, Windows Server, Linux Enterprise Server, FreeBSD, etc.

Obviamente, cualquiera de estas tecnologías está presente para otros lenguajes. Lo bueno en el caso de J2EE es que al formar todas ellas parte de la misma API, la forma de usarlas, su documentación tiene similitudes. También la integración y comunicación entre ellas es buena.

Posiblemente, la empresa empleadora cuenta con una serie de aplicaciones on-line con arquitectura empresarial Java o las crea para sus clientes y por eso insiste en el estándar J2EE.

La verdad es que la salida al mundo laboral ha cambiado enormemente mi percepción del mundo de la programación.

En mi anterior trabajo, era en una empresa (PYME) dedicada a diseñar software que contaba con unos 100 ingenieros. En un principio se hacían aplicaciones en COBOL, después en C/C++, después en Java y ahora en una mezcla de Java/.NET. Los clientes de estas aplicaciones son fundamentalmente administraciones regionales y bancas o cajas de ahorros. Estas aplicaciones acceden a Oracle, SQL Server y MySQL (este último no es demasiado popular entre sus clientes, cabe destacar). La verdad es que esta empresa ha colaborado con diferentes empresas grandes en muchos proyectos. Mi función allí consistía en programación transaccional JDBC contra Oracle y SQL Server, programación de aplicaciones de comunicación MIME entre un cliente Java y un servidor Web, creación de librerías puente, DLL para Windows y también para Linux, para comunicación entre Java y C++ , etc.

Antes de trabajar, yo veía a la programación como un arte, como algo sofisticado. Mi punto de vista personal del diseño de software es que hoy en día en la mayoría de casos el 100% del código es picado por gente inexperta con menos de 5 años de experiencia en programación. Simplemente no suele salir rentable lo contrario.

Mi sensación es que cada vez más se impone la idea equipos de programación con un jefe de proyecto para planificar, gestionar, organizar y marcar unas directrices al equipo de programación Después un par de analistas-programadores que realizan el análisis de la aplicación generando diagramas UML que se entregaban a grupos formados por programadores que son novatos. Estos programadores pican el código siguiendo los diagramas UML, exactamente igual que los trabajadores de una cadena ensamblan un frigorífico o un coche. Con los diagramas UML, los trabajadores de la cadena son los programadores. Si el análisis está mal hecho todo va mal.

Al final el problema del diseño del software es que, casi siempre resulta una actividad poco rentable. Esto se debe a que es muy difícil estimar la duración y los recursos necesarios para la realización un proyecto software, y casi siempre este sale mucho más caro al final. Además la competencia es enorme y se intenta ajustar mucho en precio para que el proyecto no se lo lleve la empresa de al lado. Por ello, los programadores están cada vez menos cualificados y tienen menos experiencia, de allí es donde se ahorra, curiosamente los gerentes cobran mucho en todas partes.

Lo que realmente ocurre con los programadores que llegan a ser experimentados es:

  • Algunos abandonan el sector por ser muy exigente y muy mal pagado
  • Otros son elevados a programadores senior, analistas de sistemas o analistas-programadores donde su labor consiste en analizar proyectos generando diagramas UML de diseño para los de abajo, montar circuitos de test de las aplicaciones, asistir a reuniones con los clientes, etc y donde al final cada vez programan menos. Muchas veces se dice que cuando una persona es ascendida y sus funciones cambian, hay posibilidades de que no lo haga muy bien porque fue precisamente ascendida por lo bien que se desempeñaba en su anterior puesto.

Para terminar con los requisitos de la oferta de trabajo, la última línea nos dice "Oracle JDeveloper a fondo."

Oracle JDeveloper es un IDE para desarrollo rápido de aplicaciones que se conectan a Oracle. Básicamente, genera un interfaz gráfico fácil y cómodo de usar desde el que podemos manejar los datos de la base de datos. Además permite la creación de informes, consultas según diferentes criterios. La aplicación creada está destinada para ser usada por usuarios inexpertos que entiendan de los datos que se manejan, no de la parte informática. En definitva, se crean interfaces gráficos para mostrar los datos de la base de datos según una serie de criterios a elegir y permitir manipular los datos escondiendo la complejidad asociada.

Otra aplicación de este estilo es SyBase PowerBuilder. Se trata de entornos de desarrollo de muy alta productividad para crear aplicaciones que exploten bases de datos.

De este requisito se desprende que la persona buscada debe ser un programador con buenos conocimientos de bases de datos.

Ya hemos analizado totalmente la oferta de trabajo. Ya queda claro que la empresa busca un TODO EN UNO con 2 años de experiencia que trabaje de:

  • Administrador de sistemas Windows/Unix (Solaris, AIX y Windows NT/2000).
  • Administrador de bases de datos (DBA) de Oracle, SQL Server, DB2 e Informix.
  • Especialista en Lotus Notes.
  • Webmaster con conocimientos HTML, PHP/ASP, JavaScript.
  • Programador en OOP, concretamente C/C++ y Java con J2EE.
  • Programador en buenos conocimientos de bases de datos (Oracle JDeveloper).

En este momento no sé si reír, llorar, o que hacer. Sencillamente creo que es muy difícil sino imposible, encontrar a una persona que reúna todos los requisitos o por lo menos a un nivel aceptable.

Además normalmente la gente de administración de sistemas no suele saber mucho de programación y la gente de programación no suele saber mucho de sistemas (aunque créanme, todos los programadores creen saber mucho de sistemas y todos las personas de sistemas creen saber mucho de programación). Normalmente uno es administrador de sistemas o programador, y si hace ambas cosas, no puede abarcar tanto como lo pedido en los requisitos.

Sería interesante saber cuanto dinero ofrecían, posiblemente mucho menos de 1200 euros/mes.

Para mi la cosa tiene la siguiente interpretación posible: la persona de recursos humanos hizo un buen trabajo reuniendo una gran parte de las tecnologías en informática importantes de hoy en día y confeccionó una oferta de trabajo basada en esa lista. Para reunir la lista posiblemente recurrió a los propios técnicos de la empresa o se informó concienzudamente sobre el tema en Internet. De esta manera reunió un perfil un tanto extraño, una rara criatura entre programador y administrador de sistemas, bases de datos y webmaster.

Creo profundamente que si una empresa de verdad necesita profesionales expertos en todos estos temas, por su bien le merece más la pena coger por una parte un administrador de sistemas/webmaster, un programador o un administrador de base de datos. Otra asunto es que siempre hay que ahorrar costes y al final se coge a alguien que sabe un poco de todo y mucho de nada.

Esta oferta de trabajo no es un hecho aislado. No sé porque en informática si tiene la costumbre de publicar ofertas de trabajo como esta, ridícula en si misma. Cuando estoy en una entrevista de trabajo yo veo el proceso de la siguiente manera: ellos me entrevistan a mi y yo les entrevisto a ellos aunque parezca lo contrario. Hay que tener muy claro donde se mete uno cuando acepta una oferta de trabajo. No digo que haya mucha elección, pero de la poca que hay pues mejor elegir un sitio donde por lo menos se pueda aprender algo, ¿no?

A modo de conclusión decir, que no hay que asustarse de estas ofertas de trabajo tan extravagantes. En general, creo que es emocionante trabajar en informática, pero a la vez muy mal pagado.

Todo lo dicho es tan sólo mi opinión personal, no creo que mi opinión sea más válida que la de otros, ni me considero más sabio que otros. Sólo soy una persona que intenta aprender algo todos los días. Mi única motivación para escribir esta editorial es mi pasión por el hardware/software en general.


El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




17/02/2009 a las 22:38:51h.

Humor y ocio > Presentaciones

Un poquito de por favor.... (coincidencias de la vida)

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1

    Editado por Daniel el 17/02/2009 a las 22:40:21h.


El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




17/02/2009 a las 22:23:10h.

Humor y ocio > Chistes

¿CUAL DE ESTAS PALABRAS ES REALMENTE DEL GÉNERO FEMENINO Y POR QUE?

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1

(...) BANDERA
(...) GALLINA
(...)ASOCIACIÓN
(...) FURGONETA
(...) MATEMÁTICA


    LA RESPUESTA ESTÁ MÁS ABAJO... PERO PIENSA PRIMERO.
    PIENSA... SÉ LÓGICO,

    ¡NO TE RINDAS!








    más abajo













    más abajo









    ÚLTIMA OPORTUNIDAD...




BUENO, AHÍ VA LA RESPUESTA...






.... BANDERA NO ES FEMENINA PORQUE TIENE PALO.

.... GALLINA NO ES FEMENINA PORQUE TIENE HUEVOS.

.... ASOCIACIÓN NO ES FEMENINA PORQUE TIENE MIEMBROS.

....FURGONETA NO ES FEMENINA PORQUE LLEVA PAQUETES.

....MATEMÁTICA ES LA ÚNICA FEMENINA... ¿Y POR QUÉ?

    ¡¡PORQUE TIENE REGLAS, DEMASIADOS PROBLEMAS Y POCOS LA ENTIENDEN!!

El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




17/02/2009 a las 12:40:01h.

Programación y Desarrollo web > (X)HTML

Etiquetas ICRA (Internet Content Rating Association) en tu web (labels.rdf)

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Existen varias maneras de clasificar los sitios de Internet, una de ellas es según su contenido por edades.

La Internet Content Rating Association (ICRA) propone unas etiquetas meta y unos archivos de web semántica, RDF, con los que se pueden describir nuestras webs. Además, en su web incluyen una herramienta para generar el archivo automáticamente, y es muy fácil de hacer.

Para ello basta con acercarse a su web y pinchar donde dice "webmaster". Siguiendo el asistente paso a paso acabaremos recibiendo un mail con el archivo generado y el código XHTML a incluir en el "head".

Esta web ya está clasificada, podéis verlo en el código fuente si lo deseáis.

El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




13/02/2009 a las 15:53:43h.

Programación y Desarrollo web > PHP

Detectar el idioma para una web multilingüe en PHP

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Si queremos hacer una web multilingüe uno de los problemas que encontramos es el de decidir cuál será el idioma de la portada. Podemos hacer una portada bilingüe, pero quedará enmarañado, feo.

Por suerte, la mayoría de navegadores envían una cabecera con información sobre las preferéncias de idioma de los usuarios. Podemos hacer uso de esas cabeceras en PHP y así servirles la página que mas se aadecúe. En este caso solo necesitaremos escoger un idioma para el raro caso que el navegador no soporte esta característica.

El código PHP para hacerlo sería el siguiente (faltan las etiquetas de apertura y cierre):

$idioma = "en";
if ($_SERVER['HTTP_ACCEPT_LANGUAGE'] != '') {
    $idiomas = explode(",", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    foreach ($idiomas as $i){
        if (strtolower( substr( $i, 0, 2) ) == "es"){
            $idioma = "es";
            break;
            }
        if (strtolower( substr($i, 0, 2) ) == "en") break;
        }
    }
header ('HTTP/1.1 300 Multiple choices');
header("Location: ".$idioma."/index.php");
exit;

La 1a asignación de la variable "$idioma" es la opción por defecto.

En este código se dá por entendido que los contenidos están en las carpetas "es/index.php" y "en/index.php". Camibad las asignaciones a "$idioma" y el último header para adaptarlo a vuestra web y ya tenéis la detección de idioma lista.

    Editado por Daniel el 13/02/2009 a las 15:54:47h.


El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




12/02/2009 a las 11:34:20h.

Linux > Configuraciones Linux

Solución al problema de que Audacious no reproduce nada.

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Hace poco, al actualizar Audacious, me ha pasado que al abrir cualquier archivo de sonido no lo reproducía.

Por el foro de Gentoo encontré una solición que funcionó para un usuario, jugar con las opciones de detección de audio y carga de datos. Se trata de jugar con las opciones de la figura y probar si con alguna combinación funciona:

Opciones a cambiar de Audacious



Pero este sistema no me funcionó en uno de los usuarios, con lo que opté por la solución bruta, borrar la configuración del programa:

rm -Rf ~/.config/audacious

Y, ¡mano de santo! Elimina las preferencias de skins y de todo, pero al menos podemos volver a usar nuestro reproductor favorito.

El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




12/02/2009 a las 05:42:51h.

Linux > Configuraciones Linux

Teclas de cursores y similares en VMWare Server en Linux con el nuevo Xorg y edev

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Si usáus VMWare en Linux y actualizáis el sistema es posible que las teclas de cursores y otras similares, como el Inicio/Fin, os dejen de funcionar. Esto es debido al nuevo sistema de teclado que se está instalando en las X.org, que hace que VMWare y otros emuladores (como OpenBox, qemu, etc) no traduzcan bien los códigos, debido a que han cambiado.

Rebuscando por Internet he encontrado diversas soluciones, pero ninguna me funionaba hasta que encontré cómo remapear todas las teclas en el mismo sitio de VMWare. Para ello debemos editar el archivo /etc/vmware/config y añadir, al inicio:

xkeymap.noKeycodeMap = "TRUE"

Después, al final del mismo archivo o en ~/.vmware/config añadimos los mappings de las teclas:

xkeymap.keycode.93 = 0x076
xkeymap.keycode.97 = 0x073
xkeymap.keycode.98 = 0x078
xkeymap.keycode.99 = 0x077
xkeymap.keycode.100 = 0x079
xkeymap.keycode.101 = 0x070
xkeymap.keycode.102 = 0x07b
xkeymap.keycode.103 = 0x05c
xkeymap.keycode.104 = 0x11c
xkeymap.keycode.105 = 0x11d
xkeymap.keycode.106 = 0x135
xkeymap.keycode.107 = 0x137
xkeymap.keycode.108 = 0x138
xkeymap.keycode.109 = 0x000
xkeymap.keycode.110 = 0x147
xkeymap.keycode.111 = 0x148
xkeymap.keycode.112 = 0x149
xkeymap.keycode.113 = 0x14b
xkeymap.keycode.114 = 0x14d
xkeymap.keycode.115 = 0x14f
xkeymap.keycode.116 = 0x150
xkeymap.keycode.117 = 0x151
xkeymap.keycode.118 = 0x152
xkeymap.keycode.119 = 0x153
xkeymap.keycode.120 = 0x16f
xkeymap.keycode.121 = 0x120
xkeymap.keycode.122 = 0x12e
xkeymap.keycode.123 = 0x130
xkeymap.keycode.124 = 0x15e
xkeymap.keycode.125 = 0x059
xkeymap.keycode.126 = 0x14e
xkeymap.keycode.127 = 0x100
xkeymap.keycode.128 = 0x000
xkeymap.keycode.129 = 0x07e
xkeymap.keycode.130 = 0x000
xkeymap.keycode.131 = 0x000
xkeymap.keycode.132 = 0x07d
xkeymap.keycode.133 = 0x15b
xkeymap.keycode.134 = 0x15c
xkeymap.keycode.135 = 0x15d
xkeymap.keycode.136 = 0x168
xkeymap.keycode.146 = 0x131
xkeymap.keycode.148 = 0x121
xkeymap.keycode.150 = 0x15f
xkeymap.keycode.151 = 0x163
xkeymap.keycode.160 = 0x10a
xkeymap.keycode.163 = 0x16c
xkeymap.keycode.164 = 0x166
xkeymap.keycode.165 = 0x16b
xkeymap.keycode.166 = 0x16a
xkeymap.keycode.167 = 0x169
xkeymap.keycode.171 = 0x119
xkeymap.keycode.172 = 0x122
xkeymap.keycode.173 = 0x110
xkeymap.keycode.174 = 0x124
xkeymap.keycode.180 = 0x132
xkeymap.keycode.181 = 0x167
xkeymap.keycode.191 = 0x05d
xkeymap.keycode.192 = 0x05e
xkeymap.keycode.193 = 0x05f
xkeymap.keycode.199 = 0x133
xkeymap.keycode.220 = 0x10b
xkeymap.keycode.225 = 0x165
xkeymap.keycode.234 = 0x16d
xkeymap.keycode.244 = 0x109
xkeymap.keycode.246 = 0x157

Y con esto tendremos nuestro VMWare funcionando in problemas.



El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)
Invitado el 19/09/2009 a las 15:24:57h.:
Re: Teclas de cursores y similares en VMWare Server en Linux con el nuevo Xorg y edev





05/02/2009 a las 22:20:45h.

Programación y Desarrollo web > JavaScript

Saber la URL de la página Google Sites donde estamos desde un Gadget tipo url

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Si estáis desarrollando Gadgets para Google y en algún momento usáis uno de tipo url, externo, quizá hayáis necesitado acceder en algún momento a la URL del documento base (blogger, google sites....). Para ello Google proporciona una variable por GET llamada parent, pero por alguna razón esto no es válido en el caso de Google Sites. Además de proporcionarla vacía, Google bloquea cualquier acceso al location.href de su ventana, tanto por top como por parent o por cualquier método.

Observando con el inspector DOM del FireBug en FireFox he descubierto que el iframe que crea tiene varias variables definidas. En concreto, una llamada "f", que se define tras cargarse el documento y que contiene la URL del parent codificada.

Así pues, he escrito un pequeño código JavaScript que recoge

// Manejador de eventos
function _addEvent(obj,type,fn) {
obj = self.getElementById( obj );
if( !obj || typeof obj != 'object' || !type || typeof type != 'string' || !fn || typeof fn != 'function' || !obj ) return false;
if (typeof obj.addEventListener != 'undefined' ) return obj.addEventListener( type, fn, false );
else if ( typeof obj.attachEvent != 'undefined' ) return obj.attachEvent( "on"+type, fn );
else return false;
}

// Extrae parametros de la URL
function _urlParams( u, n ){
var regex = new RegExp( "[\\?&]"+n+"=([^&#]*)" );
var results = regex.exec( u );
if( results == null ) return "";
else return results[1];
}

var dir = _urlParams( location.href, "parent" );
if( dir == "" ) {
var dir = "DESCONOCIDO";
try { dir = parent.location.href; } catch (e){
_addEvent(window,"load",function() {
if( typeof f == 'string' && (f.substring(0, 9) == "http%3A//" || f.substring(0, 10) == "https%3A//") ) try {
var tmp = f.split('/');
if( tmp[2] == "sites.google.com" || tmp[2] == "www.sites.google.com" ) dir = unescape(f);
} catch (e){ }
} ); // _addEvent END.
}
}

El inconveniente es que la variable dir no estará disponible hasta que se haya cargado la ventana, lo que quiere decir que no podremos usarla para hacer decisiones durante la carga de la página.

Este código está extraído del que se usa en los TagBoards de la web.


Edit: tema del post....

    Editado por Daniel el 05/02/2009 a las 22:21:26h.


El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




03/02/2009 a las 09:23:44h.

Linux > Otros

Usar un proxy HTTP para conectar por SSH usando un túnel

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1

Introducción

Muchas veces, desde universidades, trabajos, bibliotecas, etc. nos encontramos con que las redes tienen abierto sólo el puerto 80 (web). Esto es especialmente molesto si desde el trabajo hemos de administrar una máquina externa por SSH y no nos deja conectar.

Bien, pues existe una solución: meter las conexiones SSH por un túnel HTTP usando un proxy externo.

Esta solución es específica de UNIX / Linux, pero funciona en Cygwin y es posible que haya algo parecido para Windows.

Podemos usar una herramienta realmente pequeña llamada corkscrew (realmente no me gusta nada el nombre...) para meter las conexiones por un túnel. Esta herramienta está para descargar en su web, funciona en casi cualquier UNIX y en cygwin y está en el portage de Gentoo, marcada como testing (net-misc/corkscrew-2.0: ~amd64 ~ppc ~sparc ~x86).

Una vez instalada deberemos configurar SSH para que use el proxy. Tenemos dos alternativas y podemos combinalas:
  • PROXY para TODAS las conexiones.
  • PROXY para cada host de destino.
  • PROXY genérico con excepciones


PROXY para TODAS las conexiones.

Deberemos editar el archivo:
~/.ssh/config

y poner la siguiente línea:

Host * ProxyCommand corkscrew IP_PROXY PUERTO_PROXY %h %p

PROXY para cada host de destino.


Deberemos editar el archivo:
~/.ssh/config

y poner la siguiente línea:

Host SERVIDOR_A_CONECTAR ProxyCommand corkscrew IP_PROXY PUERTO_PROXY %h %p


PROXY genérico con excepciones


Deberemos editar el archivo:
~/.ssh/config

y poner las siguientes líneas:

Host SERVIDOR_A_CONECTAR_ESPECIAL ProxyCommand corkscrew IP_PROXY_ESPECIAL PUERTO_PROXY_ESPECIAL %h %p
Host * ProxyCommand corkscrew IP_PROXY PUERTO_PROXY_DEFECTO %h %p

Podemos repetir la 1a línea tantas veces como necesitemos.





Listado de servidores PROXY

Hay varias páginas con listados de PROXYs. A mí me ha ido bien éste listado de PROXYs. Tenéis que escoger uno que funcione en el puerto 80 y sea anónimo, para no complicarnos mas la vida. Cuidado que en la parte de abajo de la página hay un CAPCHA, si no lo rellenáis no sale el listado.


Conectando a SSH a través del proxy

Ahora sólo necesitamos lanazar el SSH habitual para que podamos conectar. Así de sencillo.


CONSEJO: Excesivos cortes de conexión:

Si la conexión se os corta demasiado a menudo podéis intentar mantenerla mas estable usando un KeepAlive. Basta con añadir al archivo:
~/.ssh/config

La siguiente línea al princicio del todo:
ServerAliveInterval 60



Extra: Proxy con autentificación


Podemos usar PROXYs con autentificación. Para ello, basta con crear un archivo de usuario:contraseña, por ejemplo:
~/.ssh/proxyauth

y poner usuario y contraseña con el formato:
USUARIO:CONTRASEÑA
Además, editaremos el archivo de configuración:
~/.ssh/config

y, al final de cada línea de configuración de servidores añadiremos la ruta al archivo de autentificación:

~/.ssh/proxyauth

Por ejemplo, para un PROXY para todas las conexiones:
Host * ProxyCommand corkscrew IP_PROXY PUERTO_PROXY %h %p ~/.ssh/proxyauth



FINAL: Ejemplo completo

Un ejemplo de configuración completo, con un PROXY por defecto y dos  especiales, además de KeepAlive y un servidor con autentificación:

~/.ssh/proxyauth
USUARIO:CONTRASEÑA


~/.ssh/config
ServerAliveInterval 60
Host HOST1 ProxyCommand corkscrew PROXY_1_AUTH PUERTO_1 %h %p ~/.ssh/proxyauth
Host HOST2 ProxyCommand corkscrew PROXY_2 PUERTO_2 %h %p
Host * ProxyCommand corkscrew PROXY_3 PUERTO_3 %h %p




Edit: proxyauth en carpeta .ssh


    Editado por Daniel el 04/02/2009 a las 05:55:19h.


El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




27/01/2009 a las 12:47:19h.

Programación y Desarrollo web > Utilidades web

Anatomía de una web // Web site anathomy

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Huesos:    HTML
Piel:         CSS
Músculos: JavaScript
Cerebro:   PHP;

Bones:  HTML
Skin:     CSS
Muscle: JavaScript
Brains:  PHP;

El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




26/01/2009 a las 11:02:55h.

Humor y ocio > Chistes

Linux distro lifecycle

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Every day a new distro comes to birth. Every day a distro "eats" another.
If you're born distro, no matter what, start to run.

El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




22/01/2009 a las 16:21:25h.

Programación y Desarrollo web > PHP

Redirecciones y movimientos correctos para navegadores y buscadores en PHP.

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Hay veces que hemos de indicar al navegador que cargue otra página. Esto puede ser porque hemos movido el contenido o porque hemos hecho una acción y queremos redirigir a otra página. Para esto se usan algunos códigos 300 del estándard HTTP:

300 multiple choices (ejemplo: multiples lenguajes)
301 moved permanently
302 found (ejemplo: temporary redirect)
303 (HTTP 1.1) see other (ejemplo: resultados de CGIs)
307 (HTTP 1.1) temporary redirect



Casos que hemos movido un contenido


En estos casos hemos de indicar al navegador y a los buscadores que el contenido es el mismo, pero está movido para siempre. En el caso de los navegadores da igual, puesto que cualquier motivo que le demos hará lo mismo, cambiará a la nueva dirección. Pero en el caso de los buscadores es recomendable indicar correctamente el motivo para que actualicen el índice y nos mantengan la valoración de la página. En caso de un movimiento, en PHP se haría de la siguiente manera:

Header("HTTP/1.1 301 Moved Permanently");
Header("Location: http://NUEVA_URL");
exit;

Esto se ha de hacer lo mas pronto posible, y siempre sin haber enviado ningún contenido previo. Con el comando exit nos aseguramos que se envíen las cabeceras. Se puede enviar algún mensaje, por si acaso el navegador no acepta redirecciones (raro), justo antes del comando exit.



Casos que redireccionamos tras una acción


En estos casos hemos de indicar al navegador y a los buscadores que nos movemos a otra página donde estará el resultado, pero no que el contenido ha cambiado permanentemente. Si queremos repetir la acción será necesario volver a la página, no basta con ir a la de resultados. En caso de un resultado, en PHP se haría de la siguiente manera:

Header("HTTP/1.1 302 Moved temporally");
Header("Location: http://NUEVA_URL");
exit;

Esto se ha de hacer lo mas pronto posible, y siempre sin haber enviado ningún contenido previo. Con el comando exit nos aseguramos que se envíen las cabeceras. Se puede enviar algún mensaje, por si acaso el navegador no acepta redirecciones (raro), justo antes del comando exit.

Se deberían usar los comandos "303 (HTTP 1.1) see other" y "307 (HTTP 1.1) temporary redirect", pero por compatibilidad se usa habitualmente el 302, que es genérico.




Con esto tendremos nuestras redirecciones hechas de forma automática y sin problemas en navegadores ni buscadores.



Mas información y técnicas en la wikipedia.



Edit: La mierda del editor se come el inicio de PHP.... Pues lo igualo y lo dejo sin el final...



    Editado por Daniel el 26/01/2009 a las 08:52:08h.


El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




12/01/2009 a las 13:12:48h.

Programación y Desarrollo web > Posicionamiento y SEO. Google, etc.

Diectórios gratuitos y sin necesidad de recíproco.

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Aquí mantendré un listado de directorios gratuitos en los que nos podemos registrar para obtener enlaces:

www.2k2.es - Directorio web - enlace válido - recíproco opcional (pero no funciona al activarlo)
directorio-de-enlaces-gratis.com - Marketing online - enlace válido - recíproco a otro site opcional
www.directoriosenlacesweb.com - Directorio de enlaces web seo - enlace válido - recíproco opcional, obligatorio en el futuro.
www.bloogsy.com - Directorio web - página intermedia - recíproco opcional
www.grandirectorio.com - Gran Directorio Web - página intermedia - recíproco opcional
VenderMiWeb.com - VenderMiWeb.com - PageRank 0 - recíproco opcional



    Editado por Daniel el 13/01/2009 a las 11:45:59h.


El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




26/12/2008 a las 13:02:14h.

Humor y ocio > Chistes

Medicina española

 Daniel

avatar
Tipo: Administrador total
Grupo: Administrador
Posts: 642
Unido: 03/10/2006
#miembro: 1
Un médico Israelita comenta:
'La medicina en Israel está tan avanzada que nosotros le quitamos los testículos a una persona, se los ponemos a otra y en seis semanas ya está buscando trabajo'.

Un médico alemán comenta:
'Eso no es nada, en Alemania Le sacamos parte del cerebro a una persona, la ponemos en otra, y en cuatro semanas ya está buscando trabajo'.

Un médico ruso comenta:
'Eso tampoco es nada, en Rusia la medicina esta tan avanzada que le sacamos la mitad del corazón a una persona se la ponemos a otra y en dos semanas, ambas están buscando trabajo'.

A lo que el médico ESPAÑOL responde:
'Nada que ver, todos ustedes están muy atrasados!!, fíjense que nosotros en ESPAÑA, agarramos a una persona sin cerebro, sin corazón y sin huevos, lo pusimos de PRESIDENTE y ahora todo el país está buscando trabajo!!!

llorando de risa

El increíble botón que no hace nada...
¡No pulsar!
(emerge rulz)




|< < | 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 | > >| [ 31 a 45 de 387 ]






Hay 1 visitantes activos (0 registrados y 1 invitados):
Invitado
Visitantes hasta hoy.



Enviar a Del.icio.us Enviar a Digg Enviar a Fresqui Enviar a Meneame Enviar a Webeame Recomendar Añadir a Google Añadir a Mi Yahoo Añadir a BlogLines Añadir a Technorati RSS feedValid CSS! Valid XHTML 1.0 Transitional


Visitantes hasta hoy.