¿Qué distribución es para tí?

•May 8, 2009 • Deja un comentario

Bueno, esta dirección de internet pretende orientarnos en la elección de nustra primera distribución Linux. Es evidente que, llevados unos años utilizando Linux, cada usuario sepa qué pros y contras  tiene cada distribución con respecto al trabajo que lleve a cabo. Así es que, para aquellos que comiencen o quieran comenzar a utilizar Linux y no sepan qué distribución instalar: Haced el test!

Centrar imágenes en CSS

•abril 17, 2009 • Deja un comentario

Uno de los problemas que he encontrado a la hora de diseñar con CSS, es centrar las imágenes. Así es, tan simple como eso, lo que se solucionaba con un simple <center></center> en HTML, usando css no parece tan sencillo. Soluciones?

Pues existen dos soluciones posibles (a lo mejor hay más pero son las únicas que he probado)

1- Asignamos a la etiqueta img la propiedad de “elemento de bloque” y al “margin” el valor “auto”, de esta manera el navegador asignará margenes proporcionales al espacio donde está contenida la imagen.

img { display: block; margin: auto; }

Lamentablemente esta solución no es viable en Internet Explorer (para variar), lo cual nos fuerza a buscar otra manera de hacerlo.

2- Esta es la manera como vengo haciéndolo, no es la más elegante pero funciona, para eso le daremos la propiedad text:align-center al cuadro contenedor de nuestra imagen, por ejemplo:

<div style="text-align:center"><img src="http://direccion/de/la/imagen.jpg"/></div>

Con lo cual habremos centrado la imagen.

Fuente: http://blog.almadark.com

Diseñar en CSS para Firefox, IE6, IE7,…

•abril 16, 2009 • 1 comentario

En el proceso de diseño de nuestras páginas web nos hemos encontrado con un problema, que imagino han tenido alguna vez  todos los diseñadores: las páginas y estilos CSS no se muestran de igual forma en Firefox, Internet Explorer 6, Internet Explorer 7, u otros navegadores no tan populares. Lo que en Firefox se vicualiza como nosotros hemos planeado suele aparecer bastante descolocado en cualquier versión de Internet Explorer existentes hasta el momento.

Las causas de estas diferencias son muchas y muy variadas, pero saber cuales son no es el objetivo de este post (aunque éste es un tema importante), sino más bien, cómo poder resolverlas de una forma más que eficiente. Así que para ello serán indicados una serie de hacks (trucos) o formas de implementar nuestro código CSS de forma correcta.

1- En el código HTML deberemos incluir las siguientes entencias, entre las etiquetas <head></head>, evidentemente:

<!--[if lt IE 6]-->
<link rel="stylesheet" type="text/css" src="css_ie6.css">
<![endif]-->
<!--[if IE 7]-->
<link rel="stylesheet" type="text/css" src="css_ie7.css">
<![endif]-->

De esta forma, Firefox y todos los demás navegadores excepto Internet Explorer leerían la hoja de estilos general. Mientras que El IE se comportaría con las hojas de estilo que hemos creado aposta para él.

2- Escribiendo # delante de la propiedad css , solo se aplicará a a Internet Explorer, y si escribimos un _ antes de a propiedad, solo se aplicará a Internet Explorer 6.

.miClase{
    width: 15px; /* Para todos los navegadores */
    #width: 20px; /* Para IE */
    _width: 25px; /* Para IE 6 */
}

3- Finalmente, también podemos utilizar formas válidas de definir los elementos del CSS pero que solo entienden algunos navegadores. De esta forma podemos añadir pequeños arreglos en un mismo archivo css sin que por ello nuestro código deje de validar.

#miDiv { Código para todos los navegadores }
* html #miDiv { Código para IE 6 }
*:first-child+#miDiv { Código para IE 7 }
#miDiv { Código para IE 8\9 } -- #miDiv { float: right\9; }
html>body #miDiv { Código para FF }

4- Y un resumen de más cosillas (otros navegadores incluídos) entremezcladas para acabar de liarla más aún.

* html #uno { color: red } /* IE 6 y anteriores */
*:first-child+html #dos { color: red } /* IE 7 y anteriores */
html>body #tres { color: red } /* IE 7 y navegadores modernos */
html>/**/body #cuatro { color: red } /* Navegadores modernos (IE 7 no) */
html:first-child #cinco { color: red } /* Opera 9.27 y anteriores */
html[xmlns*=""] body:last-child #seis { color: red } /* Safari */
body:nth-of-type(1) #siete { color: red } /*safari 3+, chrome 1+, opera9+, ff 3.5+ */
body:first-of-type #ocho { color: red } /* safari 3+, chrome 1+, opera9+, ff 3.5+ */
@media screen and (-webkit-min-device-pixel-ratio:0) {
#diez { background: #FFDECE; border: 2px solid #ff0000 } /* saf3, chrome1+ */
}

Interfaces gráficas de usuario: Java Swing

•noviembre 9, 2008 • 3 comentarios

Cuando se creo swing se hizo con el objetivo de evitar tener que usar los componentes gráficos nativos de cada sistema operativo, y crear una interfaz que fuera la misma en cualquier sistema operativo. Además el tener que usar los componentes nativos generaba problemas ya que no se sabe como se comporta la aplicación según el sistema operativo en el que fuese lanzado, al estar swing enteramente desarrollado en Java aumenta su portabilidad asegurando un comportamiento idéntico en diferentes plataformas.

Para crear una interfaz gráfica con swing se siguen los siguientes pasos:
1. Declarar los componentes que usaremos y crearlas.
2. Añadirlas al contenedor o al componente correspondiente.
3. Registrar los eventos que puedan ocurrir ( lo explicare en otro post ).

Primero hay que crearse una ventana pero la diferencia es que para poder añadir los componentes hace falta crearse un contenedor con la clase Container que almacene los componentes. Para crear un contenedor se pone:
Container contenedor=ventana.getContentPane();

En swing también existen los paneles de awt pero se llaman JPanel y tiene la misma funciones que los Panel .
JPanel panel=new JPanel();
En swing hay mas tipos de paneles como JScrollPane ( muestra barras de desplazamiento ), JRootPane , etc. Son paneles para mejorar un poco los componentes que se le añaden o para dar alguna función extra.

A continuación tenéis un ejemplo de interfaz gráfica con swing:

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import javax.swing.event.*;
  5. class MiListasFrames {
  6. //declareamos
  7. private Container contenedor;
  8. //Ventana
  9. private JFrame ventana;
  10. //etiqueta
  11. private JLabel etiqueta;
  12. //campo texto
  13. private JTextField texto;
  14. //eleccion
  15. private JComboBox marcas;
  16. //lista
  17. private JList lista;
  18. String complementos[]={ «ABS»,«Aire-Acod»,«Air-Bag»,«Direc-Asis»,«EE»,«Pintura met.»,«Radio» };
  19. boolean marcaEligida=false;
  20. public MiListasFrames() {
  21. //crear ventana
  22. ventana=new JFrame();
  23. ventana.setSize(330,194);
  24. ventana.setTitle(«Concesionario»);
  25. contenedor=ventana.getContentPane();
  26. //crear etiqueta
  27. etiqueta=new JLabel(«Selecciona marca y equipamiento»);
  28. //crear campo texto
  29. texto=new JTextField();
  30. texto.setEnabled(false);
  31. //crear eleccion
  32. marcas=new JComboBox();
  33. marcas.setFont(new Font(«Arial»,Font.PLAIN,10));
  34. marcas.addItem(«Citroen»);
  35. marcas.addItem(«Fiat»);
  36. marcas.addItem(«Ford»);
  37. marcas.addItem(«Opel»);
  38. marcas.addItem(«Peugeot»);
  39. marcas.addItem(«Renault»);
  40. marcas.addItem(«Seat»);
  41. //crear Lista
  42. lista =new JList(complementos);
  43. //añadimos a ventana
  44. contenedor.add(«North»,etiqueta);
  45. contenedor.add(«South»,texto);
  46. contenedor.add(«West»,marcas);
  47. contenedor.add(«East»,lista);
  48. //registramos eventos
  49. lista.addListSelectionListener(new ManejadorListSelectionListener());
  50. marcas.addItemListener(new ManejadorItems());
  51. //Registramos el evento de cerrar la ventana
  52. ventana.addWindowListener(new CerrarVentana());
  53. ventana.setVisible(true);
  54. }
  55. class ManejadorItems implements ItemListener {
  56. public void itemStateChanged(ItemEvent i) {
  57. texto.setText(«»);
  58. lista.clearSelection();
  59. marcaEligida=true;
  60. }
  61. }
  62. class ManejadorListSelectionListener implements ListSelectionListener {
  63. public void valueChanged(ListSelectionEvent l) {
  64. String acum=«Marca:»+marcas.getSelectedItem()+«#»;
  65. if(marcaEligida) {
  66. Object seleccionados[]=lista.getSelectedValues();
  67. for(int index=0;index<seleccionados.length;index++)
  68. acum+=seleccionados[index]+«*»;
  69. texto.setText(acum);
  70. }
  71. else
  72. texto.setText(«Debe seleccionar una marca primero»);
  73. }
  74. }
  75. public static void main(String args[]) {
  76. new MiListasFrames();
  77. }
  78. }

Unidades de medida en LaTeX

•octubre 3, 2008 • 1 comentario

Bueno, la información listada en este post aparece en el libro «The LaTeX Companion» (página 855) e indica las diferentes unidades de medida disponibles en LaTeX.

sp Scaled point Es la unidad más pequeña de TeX (65536 sp = 1 pt)
pt Punto Equivale a 0.351 mm o 1/(72.27) pulgadas
bp Punto grande Equivale a 0.353 mm o 1/72 pulgadas (se le conoce como Punto Postscript)
dd Punto Didôt Equivale a 0.376 mm o 1/72 de la pulgada francesa
mm Milimetro Equivale a 2.845 puntos
pc Pica Equivale a 4.218 mm o 12 puntos
cc Cicero Equivale a 4.531 mm o 12 puntos Didôt
cm Centímetro Equivale a 10 mm o 2.371 picas
in Pulgada Equivale a 25.4 mm o 72.27 puntos o 6.022 picas

ex Equis Altura de la letra «x» del tipo en uso
em Eme Ancho de la letra «M» del tipo en uso
mu Unidad matemática 18 mu equivalen a 1 em

Algo muy a tener en cuenta si ya queremos pulir, más si cabe, el documento que estemos creando con un diseño estético más avanzado.

Bibliografías en LaTeX

•julio 24, 2008 • 7 comentarios

Como en todo, no hay una única manera de hacerlo. Normalmente si se trata de una bibliografía corta y no estamos interesados en reutilizar los datos bibliográficos la elección habitual es escribirla “a mano” mediante el comando \thebibliography. Para utilizar datos bibliográficos reutilizables, largos o complejos es preferible emplear la utilidad BibTeX.

El manejo de la bibliografía es semejante al de las referencias, de lo cual ya hemos hablado. En ambos casos, cada registro bibliográfico tiene una etiqueta. Cuando, en una determinada posición del texto, queremos hacer referencia a un registro, hacemos uso del comando \cite{etiqueta}. LaTeX ya se encarga de colocar el número o referencia que corresponde a esa entrada y, en el apartado de bibliografía, coloca los datos de la entrada. En caso de que queramos escribir los datos pero no queremos poner una referencia en el texto, utilizamos \nocite{etiqueta}.

El entorno \thebibliography

\begin{thebibliography}{n}
\bibitem{etiqueta}datos

\end{thebibliography}

donde etiqueta es la etiqueta que identifica la entrada y datos son los datos de la entrada. Por ejemplo:

\begin{thebibliography}{9}
\bibitem{Knuth}D. E. Knuth, “The TeXbook”, Addison–Wesley, 1984
\end{thebibliography}

BibTeX

BibTeX es un entorno más complejo para tratar bibliografía, pero es extremadamente útil y fácil de usar. Además, permite reutilizar los ficheros de bibliografía que escribamos para otros
proyectos.

En primer lugar, generamos un fichero al que pondremos un nombre con extensión .bib; por ejemplo mibiblio.bib. En nuestro caso podría contener lo siguiente:
@book{Knuth,
author=”Donald E. Knuth”,
title=”The {T}e{X}book”,
publisher=”Addison–Wesley”,
year=1984,
}

El campo @book nos indica qué tipo de registro es. Hay muchos: para libros, artículos, tesis, manuales, etc. Consulta la documentación de BibTeX para conocerlos. Knuth es la etiqueta que identifica el registro que luego citaremos con \cite. El resto del archivo está claro qué es. Puede sorprender el uso de {} en el título. Esto se debe a que BibTeX maneja automáticamente las mayúsculas y minúsculas: el la forma de indicarle que no debe modificar lo que va dentro, pues de lo contrario lo pondrá en letras minúsculas..

En el documento en el que queremos poner la bibliografía debemos incluir las siguientes líneas:
\bibliographystyle{estilo}
\bibliography{mibiblio.bib}


Donde estilo es el tipo de estilo que queremos para nuestra bibliografía. Hay varios estilos predefinidos (consulta el manual) y puedes crear los tuyos propios. Yo suelo utilizar el estilo plain que ordena las entradas alfabéticamente y las referencias son numéricas. en cuanto al comando \bibliography{mibiblio.bib} debemos colocarlo allí donde queramos insertar la bibliografía.

Vale ¿y ahora? Pues hay que compilar el documento: latex documento. Pero no sale la bibliografía. ¿Por qué? Porque en esta primera pasada LaTeX ha ido recogiendo las citas bibliográficas (los \cite y \nocite que has puesto) y los ha puesto en un fichero auxiliar. Ahora debes ejecutar bibtex documento (¡ojo! no bibtex mibiblio). Ahora BibTeX lee el fichero auxiliar y coge las entradas del fichero bibliográfico y genera ya el índice bibliográfico con las entradas utilizadas. Si ahora ejecutas de nuevo latex documento LaTeX se encontrará el índice bibligráfico ya generado y lo inserta donde toca. Esta secuencia de comandos solo debe ser repetida cada vez que cambies la bibliografía.

Fuente: SalvaDigital.

Windows 7, para Enero del 2010

•julio 23, 2008 • Deja un comentario

El vicepresidente de Microsoft, Bill Veghte, ha confirmado en una carta enviada a socios y clientes empresariales que el próximo sistema operativo de escritorio de la compañía será comercializado en enero de 2010.

En la nota titulada “Actualización del roadmap de Windows”, Veghte indicó que los planes de Microsoft era entregar Windows 7 tres años después de la fecha de lanzamiento de Vista”.

El vicepresidente de Microsoft explicó que la comunicación de la fecha oficial venía motivada por la petición de sus clientes de conocer un calendario concreto para la liberación del próximo Windows, más con la retirada de las ventas de XP el 30 de junio.

Veghte, como no podía ser de otra forma, aprovechó para alabar las virtudes de Vista, aunque otras partes de su nota indiquen claramente que Microsoft no está satisfecho con la implantación de Vista.

Veghte abordó una de las principales críticas del cliente empresarial (al que iba dirigida la carta) como la falta de compatibilidad de las aplicaciones cuando fue lanzado Vista, pidiendo que fueran comunicadas a la compañía. “Nuestra meta es garantizar que el proceso de migración de Windows Vista a Windows 7 sea sencillo”.

Fuente: The Inquirer

25 razones de peso para migrar a GNU/Linux

•May 19, 2008 • Deja un comentario
Navegando por internet hemos encontrado un artículo que nos indica 25 razones para migrar (o comenzar a utilizar, vamos…) GNU/Linux. Aunque no sea una «biblia» que seguir al pie de la letra, es una lista de razones muy clara. En los comentarios, además de hecharse alguna cosilla en cara algunos usuarios a los otros, también son enumeradas unas cuantas razones para utilizar Windows. De todas formas y Sin más rodeos, el artículo es el siguiente:
Las empresas, centros educativos, organismos gubernamentales y otras organizaciones por todo el mundo están migrando sus equipos a GNU/Linux dejando a un lado las soluciones de Microsoft a un ritmo cada vez mayor. Como consecuencia de ello, las aplicaciones bajo licencias privativas están siendo desechadas y cambiadas por software libre. En el articulo visto en Digg tratan de explicarnos con 25 razones de peso el «porqué» de tanto GNU/Linux y tanta migración en masa…
Si aún no estas completamente convencido de usar GNU/Linux debes leer la lista que hemos traducido a continuación. Si ya usas GNU/Linux estas 25 razones de peso te vendrán muy bien para hacer memoria de porqué usas GNU/Linux. Si eres Richard Stallman posiblemente podrás escribir otras 25 diferentes…
1 – Debido a que está licenciado bajo licencia GPL, GNU/Linux (así como todo el software libre) está disponible sin ningún coste. Puede ser descargado de Internet de forma gratuita, y puede ser adquirido en formato CD o DVD con un coste muy trivial. Una copia puede ser utilizada en tantos ordenadores como queramos sin restricciones. Si comparamos con Microsoft Windows, solo el sistema operativo nos costará por lo menos 100 € por ordenador.
2 – Debido a que es software libre, GNU/Linux también es gratuito en el sentido de que cualquiera está autorizado a modificar, incluso su código fuente, de cualquier forma deseada. Si las versiones modificadas no son re-distribuidas, los cambios pueden mantenerse en secreto. Esto también choca bastante con Microsoft Windows, ya que las modificaciones no están permitidas. El código fuente es la versión original de un programa tal y como lo haya escrito un programador usando un lenguaje de programación y antes de ser compilado de forma que sus instrucciones puedan ser entendidas directamente por un ordenador. Por lo tanto, es necesario tener el código fuente con el fin de poder realizar cambios en un determinado programa. Esta capacidad de experimentar con el código fuente, y hacerlo sin necesidad de dar a conocer las modificaciones a terceros ha sido muy importante para un gran numero de organizaciones.
3 – GNU/Linux cuenta con un soporte de alta calidad disponible de forma gratuita a través de Internet, en grupos de noticias y foros. Algunas personas afirman que este soporte es al menos tan bueno como en el software privativo, que además funciona, evidentemente, pagando. GNU/Linux puede adquirirse si se desea de forma comercial. Existen empresas que basan su negocio del software libre en negocio de servicios. Dan soporte de instalación de aplicaciones, parches para hacer frente a nuevas amenazas de seguridad y parches para arreglar bugs descubiertos recientemente. En GNU/Linux estos 2 últimos son relativamente infrecuentes…
4 – Hay muy pocas posibilidades de que el soporte técnico para algún sistema GNU/Linux se elimine porque el software haya quedado obsoleto o por cualquier otro motivo. Esto se debe a que el código fuente estará siempre disponible para cualquier persona que lo desee, incluidas aquellas personas que prestan dicho soporte de forma gratuita en Internet y también para aquellas empresas que basan su negocio en los servicios. Por el contrario Microsoft Windows, y otros programas privativos cuyo código fuente es mantenido en secreto, la obtención de soporte técnico se complica si la compañía que lo vende decide retirar el software con el fin de tratar de obligar al usuario a pagar por la nueva versión, por ejemplo.
5 – No existe ningún temor a que las aplicaciones se queden obsoletas con GNU/Linux. Esto se debe a que la arquitectura UNIX en la que se basan ha sido exhaustivamente probada y refinada durante más de 35 años y ha demostrado ser extremadamente eficaz, robusta y segura. Las mejoras se realizan a un ritmo rápido, pero las nuevas versiones siguen siendo compatibles con la arquitectura UNIX subyacente.
6 – No hay actualizaciones obligatorias para los usuarios de GNU/Linux. Esto se debe a que las versiones antiguas siguen siendo soportadas (por ejemplo, con el desarrollo de nuevos parches de seguridad y controladores de dispositivo) y porque las nuevas versiones, si así lo desean, están disponibles de forma gratuita y suelen ser compatibles con versiones anteriores. Los desarrolladores de software propietario, sin embargo, tienen fuertes incentivos financieros para planificar el que una determinada versión quede obsoleta. Su objetivo será inducir a los usuarios de versiones anteriores a gastar dinero para comprar o actualizar a las nuevas versiones.
7 – En caso de que un usuario decida actualizar a una versión más reciente de GNU/Linux, no hay derechos de licencia de software u otros gastos si el usuario selecciona una distribución libre. Por otra parte, la formación, modificaciones, adquisición de hardware y otros costos relacionados con una actualización a una nueva versión son también relativamente bajos debido a la compatibilidad con versiones anteriores.
8 – GNU/Linux no tiene complicados requisitos para hacer cumplir las licencias. En una empresa con cientos o miles de ordenadores, será necesario tener a un gran numero de personal solo para asegurarnos de que todos los ordenadores están cumpliendo con las complejas condiciones de autorización de uso (EULAs) para Microsoft Windows, Microsoft Office y otras aplicaciones propietarias. Con GNU/Linux no hay temor a auditorías sorpresa con posibles sanciones por violación de licencias.
9 – GNU/Linux es mucho más seguro con una muy baja tasa de infección por virus, troyanos, gusanos, software espía y otros códigos maliciosos. Esto se debe a que UNIX y todos sus descendientes (incluyendo GNU/Linux) fueron diseñados desde un principio con la seguridad en mente, en lugar de tratar de parchear graves fallos de seguridad cuando ys es demasiado tarde. Por ejemplo, los usuarios no habitúan a usar el sistema con permisos de administración, a fin de proteger los principales archivos del sistema. Incluso en el caso que la existencia de un código malicioso, este no poseería permisos suficientes para hacer mucho daño. Además un sólido firewall se incluye en las principales distribuciones y es activado por defecto. Otro factor a tener en cuenta es la libre disponibilidad del código fuente, lo que permite a miles de personas de todo el mundo poder buscar vulnerabilidades de seguridad.
10 – GNU/Linux es altamente resistente a los fallos de sistema y raramente necesita reiniciar. Esto puede ser muy importante para las grandes organizaciones para las que unos minutos de tiempo de inactividad puede suponer un coste sustancial. La razón es que GNU/Linux ha sido diseñado desde cero para ser un sistema operativo estable y robusto, incorporando todo lo aprendido en 35 años de historia de UNIX.
11 – Aunque el número y la variedad de programas para GNU/Linux aún no es tan grande como para el sistema operativo de Microsoft, ya existe una extensa selección y aumenta continuamente y cada vez más rápido a medida que más y más desarrolladores empiezan a crear programas para GNU/Linux. La mayoría de programas para GNU/Linux también son software libre y muchos de ellos tienen las mismas características y rinden igual o mejor que las ya existentes para Microsoft Windows. De hecho, los usuarios se encuentran a menudo con que todas las aplicaciones que necesitan están disponibles gratuitamente en Internet y que ya no necesitan comprar ningún software comercial.
12 – Existe una numerosa variedad de distribuciones GNU/Linux (varios cientos), cada una con su propio conjunto único de características, pero básicamente todas compatibles entre sí. Esto permite a los usuarios seleccionar las versiones que mejor respondan a sus necesidades específicas. También significa que si un distribuidor de GNU/Linux dejará de operar, todavía habría muchos otros para elegir. Por otra parte, fomenta una sana competencia entre ellas, contribuyendo así a la mejora continuada de la calidad y el rendimiento de GNU/Linux. La elección parece abrumadora pero por lo general es difícil cometer un error seleccionando una de las más populares, como Red Hat, Susu o Ubuntu.
13 – GNU/Linux cuenta con un alto grado de flexibilidad de configuración. Se puede lograr una alta personalización muy fácilmente y sin tener que modificar el código fuente. Es muy sencillo configurar GNU/Linux durante la instalación y optimizarlo para su uso como estación de trabajo, ordenador de escritorio, ordenador portátil, servidor web, servidor de base de datos, etc. Del mismo modo el aspecto y el comportamiento del escritorio, incluyendo iconos y menús puede ser configurado con un numero casi infinito de posibilidades y formas. Incluso puede hacerse parecido a Windows… Si esto no fuera suficiente, la capacidad de libre acceso al código fuente permite un grado de personalización «ilimitado».
14 – GNU/Linux utiliza formatos abiertos y estándares. Estos son aquellos que se ajustan a las normas de la industria y que pueden ser utilizados por cualquier desarrollador de software para crear programas compatibles. Es el caso de los formatos para el procesamiento de textos, hojas de calculo y otros tipos de archivos. En comparación con los formatos privativos (véase el formato DOC), el uso de estándares elimina el problema del apego a las normas privadas, con la consecuente dificultad y coste a la hora de cambiar a otro software en un futuro. El uso de formatos abiertos permite al usuario tener el control total de sus datos, en particular en el caso de que el vendedor de software decida dar por obsoleta la versión del programa, obligando al usuario a migrar todos sus datos a la nueva versión, previo pago, por supuesto…
15 – GNU/Linux es generalmente más rápido para un determinado conjunto de especificaciones de hardware. Esto es debido a una mayor optimización del código fuente.
16 – GNU/Linux cuenta con un alto grado de compatibilidad con otros sistemas operativos. Por ejemplo, se puede escribir, leer, copiar, borrar y manipular los datos existentes en una partición para Microsoft Windows, actuar como servidor para una red que contenga clientes en Windows, formatear discos duros para el uso con Windows, e incluso ejecutar los programas de Windows directamente si fuera necesario. En comparación, los sistemas operativos de Microsoft no pueden acceder a particiones de disco que contengan otros sistemas, no pueden formatear discos duros para otros sistemas, etc, etc…
17 – La ética y la moral se mantienen muy altas en el mundo GNU/Linux y en el resto del software libre debido a la gran apertura de su proceso de desarrollo y a la libre disponibilidad del código fuente. GNU/Linux nunca ha sido condenado en un tribunal por violación de leyes antimonopolio u otros delitos, ni ha tenido que pagar sanciones por la copia no autorizada de tecnología desarrollada por otras empresas. Las políticas gubernamentales antimonopolio regulan o rompen monopolios con el fin de promover la libre competencia. Los beneficios por alcanzar dicha competencia afectan a la economía y a la sociedad en su conjunto.
18 – GNU/Linux reduce la necesidad de actualizar o sustituir hardware cuando se actualiza a una nueva versión. Esto se debe a que su código fuente es muy eficiente y compacto, lo que permite que funcione en computadoras antiguas que no son adecuadas para las versiones más recientes de Microsft Windows.
19 – GNU/Linux es capaz de operar en una amplia variedad de plataformas y no solo se limita a equipos con procesadores Intel o AMD. Funciona perfectamente en una basta variedad de equipos que van desde los superordenadores a los robots industriales, equipos médicos, teléfonos móviles (puede ejecutarse incluso en un reloj de pulsera)
20 – GNU/Linux es una mejor elección para su uso en las instituciones académicas por una serie de razones. Entre ellas se encuentra el hecho de que no hay secretos (en marcado contraste con el software privativo), con lo que los estudiantes tendrán la oportunidad de estudiar como funcionan realmente los ordenadores en lugar de simplemente aprender a usarlos. Muchos profesores están convencidos de que es mucho más importante aprender los fundamentos prácticos de la informática que aprender el uso de aplicaciones especificas (como Microsoft Word o Power Point). Una de las razones es que los fundamentos prácticos de la informática seguirán siendo validos después de muchos años, mientras que las aplicaciones (especialmente las propietarias) están en constante cambio y los conocimientos adquiridos quedarán obsoletos en pocos tiempo.
21 – Para los organismos gubernamentales, GNU/Linux permite la transparencia de los datos, ya que los almacena en formatos compatibles con toda la industria. Todo lo contrario al software comercial. Esta transparencia es importante para mantener una democracia efectiva. Esto permite a cualquier usuario acceder a los datos sin tener que comprar caros programas privativos. Por otra parte, mantenerlos en formatos estándar es mucho más seguro que hacerlo usando formatos propietarios.
22 – En GNU/Linux hay muy pocas razones para temer la existencia de puertas traseras, en parte porque todo el código fuente está disponible para su inspección. Una puerta trasera es un método secreto para obtener acceso remoto a un ordenador. Existe una (muy justificada) preocupación por parte de los gobiernos y las corporaciones de que dichas puertas traseras se han insertado de forma encubierta en el software propietario, permitiendo a los desarrolladores y a otros gobiernos a acceder a sus datos confidenciales.
23 – El uso y la promoción de GNU/Linux ayuda a fomentar una sana diversidad y aumento de competencia en toda la industria del software. Esa competencia puede promover el avance tecnológico, mejorar el rendimiento y disminuir los costes del software libre y del software propietario por igual. Tanto la teoría económica como los cientos de años de real experiencia en el mundo demuestran claramente que los monopolios no necesitan innovar, tienden a producir productos de mala calidad, inflan los precios y tienden a corromper el sistema político.
24 – GNU/Linux y el software libre no solo han alcanzado, o en algunos casos superado al software privativo, sino que también desarrollan más rápido. Esta tendencia irá a más, dado que la demanda para este tipo de software sigue creciendo y cada vez más personas y organizaciones participan activamente en su desarrollo.
25 – GNU/Linux ofrece la oportunidad de que los usuarios puedan contribuir al avance de la tecnología del software, debido a que el código fuente está disponible gratuitamente para ser estudiado, mejorado, ampliado y redistribuido. Un notable ejemplo de ello a nivel empresa ha sido IBM.

26 – Existen en realidad más de 25 razones por las que organizaciones de todo el mundo están migrando a GNU/Linux. Un vigésimo sexto motivo es que con GNU/Linux no hay necesidad de desfragmentar los discos duros a diferencia de Windows. La fragmentación, que es la difusión de datos en lugares no contiguos puede reducir la eficacia del almacenamiento de datos y ralentizar el funcionamiento de la máquina. Desfragmentar no es difícil, pero puede ser una molestia tener que hacerlo periódicamente, y no es necesario si tienes un sistema operativo bien diseñado.

Conocer las características de nuestra CPU

•abril 30, 2008 • 6 comentarios

Para conocer las características de la CPU (procesador) sobre el que estamos trabajando sólo tenemos que visualizar el fichero «cpuinfo» de la siguiente forma:

cat /proc/cpuinfo

De esta forma obtendremos en la consola algo como:

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : Intel(R) Pentium(R) M processor 1.73GHz
stepping : 8
cpu MHz : 1729.000
cache size : 2048 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe up bts est tm2
bogomips : 3461.81
clflush size : 64

Así de simple y fácil.

Mantener datos al enviarlos a través de un formulario

•abril 9, 2008 • 9 comentarios

¿Has visto alguna vez formularios que al enviar los datos te devuelven un mensaje indicando que te hace falta llenar uno de sus campos? Seguramente, sí. Y ¿has visto que existen formularios que al indicar que te hace falta llenar uno de sus campos vacíos, te devuelven en blanco los otros campos que habías llenado?

Vamos a ver cómo implemetar de una forma sencilla -en PHP y XHTML- para evitar que hagamos perder tiempo a la gente y si le vamos a pedir que llene los campos que tú necesitas, pues al menos le hagamos el favor de conservar la información que ya se mandó.

Básicamente, el truco está en el value, donde lo que debemos hacer es:

input type="text" name="nombre_campo" value="< ?php if (isset($_POST['nombre_campo'])) echo $_POST['nombre_campo']; ?/>"

Lo que hace ese PHP es revisar que si la variable se ha enviado por el método post y ya tiene un valor asignado, la imprime.