| 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 ]
#!/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
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
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 $
Editado por Daniel el 21/02/2009 a las 13:34:10h.
Editado por Daniel el 21/02/2009 a las 14:25:36h.
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:
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:
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:
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:
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.
$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;
Editado por Daniel el 13/02/2009 a las 15:54:47h.

rm -Rf ~/.config/audacious
xkeymap.noKeycodeMap = "TRUE"
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
// 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.
}
}
Editado por Daniel el 05/02/2009 a las 22:21:26h.
Host * ProxyCommand corkscrew IP_PROXY PUERTO_PROXY %h %p
Host SERVIDOR_A_CONECTAR ProxyCommand corkscrew IP_PROXY PUERTO_PROXY %h %p
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
ServerAliveInterval 60
USUARIO:CONTRASEÑAAdemás, editaremos el archivo de configuración:
~/.ssh/proxyauth
Host * ProxyCommand corkscrew IP_PROXY PUERTO_PROXY %h %p ~/.ssh/proxyauth
USUARIO:CONTRASEÑA
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
Editado por Daniel el 04/02/2009 a las 05:55:19h.
Header("HTTP/1.1 301 Moved Permanently");
Header("Location: http://NUEVA_URL");
exit;
Header("HTTP/1.1 302 Moved temporally");
Header("Location: http://NUEVA_URL");
exit;
Editado por Daniel el 26/01/2009 a las 08:52:08h.
Editado por Daniel el 13/01/2009 a las 11:45:59h.
| 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 ]