Social Icons

sábado, 21 de enero de 2012

Como instalar PHP, Mysql y Apache en Ubuntu usando el paquete lamp-server^

Hace tiempo escribimos una entrada sobre como instalar php de una manera manual, pero esta vez les vamos a mostrar como hacerlo a través de un paquete llamado "lamp-server^".

Lo primero que haremos será ir a la terminal [Ctrl + Alt + t] y escribir lo siguiente:

$ sudo apt-get install lamp-server^


No crean que el símbolo "^" en la orden anterior es un error; resulta imprescindible. No entendemos como un paquete puede llevar un tal símbolo en el nombre, pero así es.

A lo largo de la instalación, les pedirá generar una contraseña para MySql.

Una vez hecho lo anterior, abriremos el navegador web favorito y pondremos en la barra de direcciones:


Si todo ha ido bien, debe aparecer el mensaje:

It works!

Una vez hecho esto, podemos instalar también phpMyAdmin.  Lo haremos con la orden:


$ sudo apt-get install phpmyadmin



podremos en Para generar la contraseña de administración, escribir en la barra del navegador:

http://localhost/phpmyadmin

y hacer lo que se le pida en la ventana que aparece. Si se apareciera, como sugieren el algunos lugares, el mensaje de error:

"The requested URL /phpMyAdmin/ was not found on this server."


Pueden intentar solucionarlo editando el archivo "apache2.conf" por ejemplo así:

$ sudo nano /etc/apache2/apache2.conf


agregando esta línea al final del archivo: 

Include /etc/phpmyadmin/apache.conf

Hecho esto, reiniciaremos el servicio de apache:

$ sudo /etc/init.d/apache2 restart

o bien, si estamos en una distribución basada en Debian, como nuestro Ubuntu, basta con hacer en su lugar:

$ sudo service apache2 restart

y ahora podremos entrar phpMyAdmin y generar la contraseña escribiendo en la barra de navegación del navegador:

http://localhost/phpmyadmin

Y ... esto es todo por hoy.

miércoles, 11 de enero de 2012

Recodificar un fichero .tex a utf-8 en Linux y Mac OS X

Introducción

Este post es heredero de éste otro  ---convendría consultarlo ahora para situarse--- y particulariza la información dada allí a la problemática específica de LaTeX.

La cuestión es que muy frecuentemente echamos mano a unos viejos apuntes escritos de acuerdo con el convenio iso-8899-1, también conocido como "latin1", y encontramos que ahora nos conviene mejor tenerlo bajo el convenio utf-8. O sencillamente, podemos haber recibido un "fichero.tex" escrito en ambiente Windows por alguien, que queremos compilarlo en nuestro Ubuntu y que no podemos por la codificación de los acentos, según indica el mensaje de error.  ¿Cómo recodificamos el fichero para su compilación?

Supondremos, una vez más, que usamos emacs para escribir nuestros ficheros .tex en nuestro sistema Ubuntu, aunque por supuesto esta restricción es sólo por fijar ideas. Lo que se dice para emacs vale para nuestro editor preferido.

Procedimiento en Linux

Supongamos que tenemos un "fichero .tex" codificado en iso-8859-1 y que queremos recodificarlo a utf-8 y producir un fichero "fichero_utf8.tex". Si la codificación del inicial no fuera iso-8859-1, indagaríamos cuál es dicha codificación con la orden:

  $ file -i fichero.tex 

y procederíamos en analogía. La denominación de las diferentes codificaciones las conocemos mediante la orden

  $ iconv -l

En el caso que nos ocupa, actuaremos como sigue:

1) Recodificación del fichero 

$ iconv -f ISO_8859-1 -t UTF-8 -o fichero_utf8.tex fichero.tex

2) Abrimos "fichero_utf8.tex" con emacs y sustituimos, si la hubiera, la línea:
   
    \usepackage[latin1]{inputenc}

   por la línea:

    \usepackage[utf8]{inputenc}

Este tipo de información no suele faltar en los ficheros .tex pues está prescrito indicar en la cabecera del documento qué codificación estamos usando para que no sea tomada la de defecto, que eventualmente no será la nuestra. No obstante, hay ficheros .tex que no llevan esa información y entonces no sería necesario el paso 2 ni el 3 ni el 4.

3) Guardamos los cambios del paso anterior en la línea mencionada y procedemos a cerrar el fichero "fichero_utf8.tex" saliendo de emacs.

4) Abrimos nuevamente el "fichero_utf8.tex" y ya deben ser visibles correctamente los acentos en él y ser compilable.

Procedimiento en Mac OS X

En Mac OS X el procedimiento es análogo. Para encontrar la codificación del fichero ejecutaríamos en terminal:

file -I file.tex

Para encontrar la lista de codificaciones usamos la misma orden que en Ubuntu:

iconv -l

y para cambiar la codificación del fichero (por ejemplo de iso_8859-1 a utf-8) ejecutaremos:

iconv -f iso-8859-1 -t utf-8 file.tex > newfile.tex

lo cual modificará el fichero, por lo que habríamos de tener copia aparte, si queremos conservar el original. Es posible que tengamos que editar el fichero y operar dentro cambiando los acentos.

Y ... esto es todo por hoy.

domingo, 1 de enero de 2012

Mi primera clase de C y C++

Introducción

C, diseñado en 1972 por Dennis M. Ritchie en los Laboratorios Bell, es la evolución de B. Tanto uno como otro fueron diseñados para servir como base en la implementación de sistemas operativos, concretamente Unix.

C es un lenguaje de nivel medio con muchas características de los lenguajes de bajo nivel, si bien cuenta con las estructuras típicas de los lenguajes de alto nivel. Genera código muy eficiente, por lo que es muy apreciado en el diseño de software de sistemas.

C++ fue creado a mediado de los 80 del siglo 20 por Bjarne Stroustrup. Se planteó como una extensión de C para poder manejar objetos.  Se admite que C++ es un lenguaje multiparadigma.

Instalación

En Mac OS X tendremos el compilador de C y C++  tras instalar Xcode en la versión que nos sirva el App Store o que traiga nuestro dispositivo de instalación. Si se quiere instalar Xcode del App Store, lo cual recomendamos dado que entonces estará actualizado en todo momento, es preciso saber que Apple lo sirve "gratis".

En Ubuntu C viene instalados por defecto, por lo que no tendremos que hacer nada especial antes de comenzar a compilar. Si no se tuviera instalado C++, se haría con

$ sudo apt-get install g++

El editor

Para editar código de C y C++ usaremos, una vez más, como mejor prueba de lo que venimos sosteniendo, nuestro Emacs en el caso de Linux o Windows  o bien nuestro Aquamacs si usamos Mac OS X. Ni uno ni otro necesitan adecuaciones a los lenguajes C y C++, pues Emacs y Aquamacs vienen por defecto adaptados, al ser tan conocidos los lenguajes y ser Emacs tan usado como editor por los grandes equipos de programación.

En definitiva, como no podía ser menos, recomendamos Emacs como editor de C y C++.

El caso de C

Los ficheros que contienen programas en C deben tener la extensión ".c". Como primer ejemplo de programación en C presentamos el famoso holaMundo.c cuyo código y contenido es:


#include <stdio.h>
int main()
{
printf("Hola mundo");
printf("\n");
return 0;
}

Para compilar el fichero, debemos abrir la terminal e ir hasta el lugar donde tenemos el fichero. Una vez allí, la compilación se lleva a cabo con la orden:

$ gcc holaMundo.c -o holaMundo

y la ejecución del programa se realiza mediante:

$ ./holaMundo

Otro ejemplo en código C podría ser suma.c con el siguiente código:

#include <stdio.h>
int x,y,z;
int main(){
printf("Dame el primer numero: ");
scanf("%d",&x);
printf("\n");
printf("Dame el segundo numero: ");
scanf("%d",&y);
z=x+y;
printf("\n\n El resultado de la suma es :%d\n",z);
return 0;

que compilamos con:

$ gcc suma.c -o suma

y ejecutamos con:

$ ./suma

El caso de C++

Los ficheros que contienen programas en C++ deben tener la extensión ".cpp". Como primer ejemplo de programación en C++ presentamos de nuevo el famoso holaMundo.cpp cuyo código y contenido es:

#include <iostream>
using namespace std;

int main()
 {
  cout << "\nHola mundo\n";
  return 0;
 }

Para compilar el fichero, debemos abrir la terminal e ir hasta el lugar donde tenemos el fichero. Una vez allí, la compilación se lleva a cabo con la orden:

$ g++ holaMundo.cpp -o holaMundo

y la ejecución del programa se realiza mediante:

$ ./holaMundo

El programa de la suma en C++, que llamaremos suma_c++.cpp podría tener el siguiente código:

#include <iostream>
using namespace std;


int main()
{
  int x,y,z;
  cout << "Introducir el primer entero: ";
  cin >> x;
  cout << "Introducir el segundo entero: ";
  cin >> y;
  z = x + y;
  cout << "La suma de ambos enteros es: " << z << endl;
  return 0; 


La compilación del fichero suma_c++.cpp se lleva a cabo con la orden:

$ g++ suma_c++.cpp -o suma_c++

y la ejecución del programa se realiza mediante:

$ ./suma_c++


Y ... esto es todo por hoy.