jueves, 30 de enero de 2014

Todo tiene una vida util, los CD's también

Y es la ley de la vida, todo cumple un ciclo, de cual nada puede escapar de el. Todo lo que se crea o fabrica sufre el inevitable deterioro del uso y del tiempo hasta volverse inservible, a veces uno comete el error de no observar con atención hasta que se presenta el momento crítico donde es más necesario.

Y pasó el CD de Xubuntu dejó de ser útil, pasó de ser un medio de instalación a convertirse en un aburrido disco plástico con una capa donde se almacena información y datos ahora poco útiles, que aun en ausencia de rayas apreciables se han vuelto inaccesibles para cualquier lectora que ose explorarlas. bastantes fueron las instalaciones donde fue el medio primordial para realizarlas pero ya no está más, un clon vendrá a reemplazarlo...

Primer programa en Gambas 2, Agenda

Luego de estar bastante tiempo sin publicar nada vuelvo con un nuevo post básico de programación, en este caso vamos a hacer un pequeño calendario donde podremos guardar actividades organizadas por fecha y hora en una base de datos SQLite 3.


Vista del proyecto terminado
Bueno para empezar ejecutamos Gambas, Seleccionamos la opción de nuevo proyecto, Aplicación gráfica y luego tildamos la opción de Acceso a base de datos, continuamos con el asistente y al finalizar llegaremos a la siguiente pantalla donde vemos el formulario vació y las barras de herramientas. 

Ahora nos dirigiremos a la barra de proyecto (la que se encuentra a la izquierda de la pantalla y donde se puede ver la estructura de nuestro proyecto) y creamos dos módulos nuevos (eligiendo la correspondiente opción), uno llamado "Globales" donde definiremos las variables globales que se usarán dentro del programa y otro "BasedeDatos" donde estará el código que utilizaremos para realizar las operaciones de lectura y edición sobre la base de datos.

Módulo "Globales"


PUBLIC Conexion AS Connection 'Identificador de la conexión de base de datos
Donde definimos la variable conexión que servirá de identificador para utilizar la base de datos.

Módulo "BasedeDatos"


Luego necesitamos definir la estructura de almacenamiento de datos, para lo cual crearemos una tabla que llamaremos "Actividades" con los campos, id, fecha y actividad, para lo cual necesitaremos del siguiente código (que posteriormente lo escribiremos dentro del módulo "BasedeDatos"):

  DIM hTable AS Table
 
  hTable = hConn.Tables.Add("Actividades")
  WITH hTable
    .Fields.Add("id", db.Serial, 0)
    .Fields.Add("fecha", db.Date, 0)
    .Fields.Add("actividad", db.String, 0)

    .PrimaryKey = ["id"]
    .Update
  END WITH
Definimos el campo "id" como clave principal ya que podremos tener varias actividades situadas en la misma fecha y hora y a futuro nos simplificará el proceso de eliminación y edición de registros.

Ahora para guardar datos utilizamos el siguiente código:
'Procedimiento para agregar una nueva actividad
PUBLIC SUB AgregarActividad(Conexion AS Connection, Actividad AS String, Fecha AS Date)
 
  DIM Resultado AS Result
   
  Resultado = Conexion.Create("Actividades")
  Resultado["fecha"] = Fecha
  Resultado["actividad"] = Actividad
  Resultado.Update
  IF ERROR THEN
    Message("No se puede crear el registro", "Aceptar")
  ENDIF
 
END
Para eliminar los registros necesitamos del código:
PUBLIC SUB Borrar_seleccionado(Conexion AS Connection, id AS String)
  DIM Resultado AS Result
 
  Resultado = Conexion.edit("Actividades", "id=&1", id)
  TRY Resultado.Delete
  IF ERROR = FALSE THEN

    Message("Actividad eliminada",
"Aceptar")
  ELSE
    Message("No se pudo eliminar el registro", "Aceptar")
  ENDIF
 
END
Para poder cargar los registros en un control Tableview

PUBLIC SUB MostrarActividades(Conexion AS Connection, Tabla AS TableView, Fecha AS Date)
 
  DIM Resultado AS Result
  DIM Fecha_ing AS Date
 
  DIM Py AS Integer
  'Hacemos la consulta a la base de datos, seleccionamos todos los campos y los ordenamos por fecha de forma ascendente
  Resultado = Conexion.Exec("Select * from Actividades order by fecha ASC")
  'Definimos la tabla
  Tabla.Clear
  Tabla.Columns.Count = 4
  Tabla.Rows.Count = Resultado.Count
  Tabla.Columns[0].Text = "Hora"
  Tabla.Columns[0].Width = 100
  Tabla.Columns[1].Text = "Actividad"
  Tabla.Columns[1].Width = 250
  Tabla.Columns[2].Text = "Id"
  Tabla.Columns[2].Width = 50
 
  py = 0
  DO WHILE Resultado.Available
    'Cargamos los registros de la tabla actividades que coincidan con la fecha
    IF Date(Resultado["fecha"]) = Fecha THEN
      Tabla[py, 0].Text = Time(Hour(Resultado["fecha"]), Minute(Resultado["fecha"]), 0)
      Tabla[py, 1].Text = Resultado["actividad"]
      Tabla[py, 2].Text = Resultado["id"]
      'Coloreamos los registros
      IF py MOD 2 = 0 THEN
        Tabla[py, 0].BackColor = &FAFEFF&
        Tabla[py, 1].BackColor = &FAFEFF&
        Tabla[py, 2].BackColor = &FAFEFF&
      ELSE
        Tabla[py, 0].BackColor = &DEFFE4&
        Tabla[py, 1].BackColor = &DEFFE4&
        Tabla[py, 2].BackColor = &DEFFE4&
      ENDIF
      py = py + 1
    ENDIF
    Resultado.MoveNext()
  LOOP
 
END 
Para hacer la carga de base de datos:
'Procedimiento para abrir la base de datos o crearla en caso de que no exista
PUBLIC SUB InicializaBase()
  Globales.Conexion = NEW Connection
  Globales.Conexion.Type = "sqlite3"
  Globales.Conexion.Host = User.home
  Globales.Conexion.Name = ""
  TRY Globales.Conexion.Open()
  IF NOT Globales.Conexion.Databases.Exist("Calendario") THEN
    Message("La base de datos no existe, se creará una nueva", "Aceptar")
    Globales.Conexion.Databases.Add("Calendario")
    WAIT 0.5
  ENDIF
  Globales.Conexion.Close()
  Globales.Conexion.Host = User.home
  Globales.Conexion.Name = "Calendario"
  TRY Globales.Conexion.Open()
  IF ERROR THEN
    Message.Error("No se puede establecer conexión con la base de datos")
  ELSE
    IF NOT Globales.Conexion.Tables.Exist("Actividades") THEN
      CrearBase(Globales.Conexion)
    ENDIF  
  ENDIF
END

Por lo que el código entero del archivo nos quedará:
'Creamos la tabla de la base de datos
PUBLIC SUB CrearBase(hConn AS Connection)
   
  DIM hTable AS Table
 
  hTable = hConn.Tables.Add("Actividades")
  WITH hTable
    .Fields.Add("id", db.Serial, 0)
    .Fields.Add("fecha", db.Date, 0)
    .Fields.Add("actividad", db.String, 0)

    .PrimaryKey = ["id"]
    .Update
  END WITH
END

'Procedimiento para abrir la base de datos o crearla en caso de que no exista
PUBLIC SUB InicializaBase()
  Globales.Conexion = NEW Connection
  Globales.Conexion.Type = "sqlite3"
  Globales.Conexion.Host = User.home
  Globales.Conexion.Name = ""
  TRY Globales.Conexion.Open()
  IF NOT Globales.Conexion.Databases.Exist("Calendario") THEN
    Message("La base de datos no existe, se creará una nueva", "Aceptar")
    Globales.Conexion.Databases.Add("Calendario")
    WAIT 0.5
  ENDIF
  Globales.Conexion.Close()
  Globales.Conexion.Host = User.home
  Globales.Conexion.Name = "Calendario"
  TRY Globales.Conexion.Open()
  IF ERROR THEN
    Message.Error("No se puede establecer conexión con la base de datos")
  ELSE
    IF NOT Globales.Conexion.Tables.Exist("Actividades") THEN
      CrearBase(Globales.Conexion)
    ENDIF  
  ENDIF
END

'Procedimiento para agregar una nueva actividad
PUBLIC SUB AgregarActividad(Conexion AS Connection, Actividad AS String, Fecha AS Date)
 
  DIM Resultado AS Result
   
  Resultado = Conexion.Create("Actividades")
  Resultado["fecha"] = Fecha
  Resultado["actividad"] = Actividad
  Resultado.Update
  IF ERROR THEN
    Message("No se puede crear el registro", "Aceptar")
  ENDIF
 
END

PUBLIC SUB Borrar_seleccionado(Conexion AS Connection, id AS String)
  DIM Resultado AS Result
 
  Resultado = Conexion.edit("Actividades", "id=&1", id)
  TRY Resultado.Delete
  IF ERROR = FALSE THEN

    Message("Actividad eliminada",
"Aceptar")
  ELSE
    Message("No se pudo eliminar el registro", "Aceptar")
  ENDIF
 
END


'Procedimiento para mostrar la lista de actividades
PUBLIC SUB MostrarActividades(Conexion AS Connection, Tabla AS TableView, Fecha AS Date)
 
  DIM Resultado AS Result
  DIM Fecha_ing AS Date
 
  DIM Py AS Integer
  'Hacemos la consulta a la base de datos, seleccionamos todos los campos y los ordenamos por fecha de forma ascendente
  Resultado = Conexion.Exec("Select * from Actividades order by fecha ASC")
  'Definimos la tabla
  Tabla.Clear
  Tabla.Columns.Count = 4
  Tabla.Rows.Count = Resultado.Count
  Tabla.Columns[0].Text = "Hora"
  Tabla.Columns[0].Width = 100
  Tabla.Columns[1].Text = "Actividad"
  Tabla.Columns[1].Width = 250
  Tabla.Columns[2].Text = "Id"
  Tabla.Columns[2].Width = 50
 
  py = 0
  DO WHILE Resultado.Available
    'Cargamos los registros de la tabla actividades que coincidan con la fecha
    IF Date(Resultado["fecha"]) = Fecha THEN
      Tabla[py, 0].Text = Time(Hour(Resultado["fecha"]), Minute(Resultado["fecha"]), 0)
      Tabla[py, 1].Text = Resultado["actividad"]
      Tabla[py, 2].Text = Resultado["id"]
      'Coloreamos los registros
      IF py MOD 2 = 0 THEN
        Tabla[py, 0].BackColor = &FAFEFF&
        Tabla[py, 1].BackColor = &FAFEFF&
        Tabla[py, 2].BackColor = &FAFEFF&
      ELSE
        Tabla[py, 0].BackColor = &DEFFE4&
        Tabla[py, 1].BackColor = &DEFFE4&
        Tabla[py, 2].BackColor = &DEFFE4&
      ENDIF
      py = py + 1
    ENDIF
    Resultado.MoveNext()
  LOOP
 
END 

Formulario principal

 Luego en el formulario principal agregamos el componente Datechooser, que nos servirá para elegir la fecha para ver las actividades que concuerdan con aquella que se haya seleccionado y al mismo tiempo disponer de un valor de fecha para crear un nuevo registro.

Una vez situado hacemos doble click sobre el lo que nos llevará a la ventana de edición de código del formulario situándonos en el evento de cambio de fecha. En dicho lugar escribimos el siguiente código:

DIM Dia, Mes, Anio AS Integer
 
  Dia = DateChooser1.Day
  Mes = DateChooser1.Month
  Anio = DateChooser1.Year
  'Mostramos las actividades del dia seleccionado
  BasedeDatos.MostrarActividades(Globales.Conexion, TableView1, Date(Anio, Mes, Dia, 0, 0, 0))
Donde definimos variables locales donde almacenamos los valores de los componentes de la fecha seleccionada para poder pasárselos como parámetro al procedimiento que muestra las actividades que concuerdan con día (procedimiento escrito anteriormente en el módulo "BasedeDatos").

Luego creamos un control Tableview1 donde más tarde mostraremos las actividades guardadas

Creamos controles
  • TextArea1: Para introducir la descripción de la actividad
  • Spinbox1: Para introducir el valor de la hora
  • Spinbox2: Para introducir el valor de los minutos
Un botón agregar donde  hacemos doble click para acceder al evento button_click y escribir el siguiente código:
DIM Dia, Mes, Anio AS Integer
 
  'Validamos que se completen los campos nesesarios
  IF TextArea1.Text <> "" THEN
    Dia = DateChooser1.Day
    Mes = DateChooser1.Month
    Anio = DateChooser1.Year
    'Guardamos la actividad ingresada en la tabla "Actividades" llamando al procedimiento AgregarActividad del modulo BasdeDatos
    BasedeDatos.AgregarActividad(Globales.Conexion, TextArea1.Text, Date(Anio, Mes, Dia, SpinBox1.Value, SpinBox2.Value, 0))
    'Borramos el campo de actividad
    TextArea1.Text = ""
    'Actualizamos la lista de actividades
    BasedeDatos.MostrarActividades(Globales.Conexion, TableView1, Date(Anio, Mes, Dia, 0, 0, 0))
  ELSE
    Message("Se debe completar el campo actividad", "Aceptar")
  ENDIF
Y un botón para eliminar las actividades que se muestren en el control TableView1 (es importante definir la propiedad Mode = Single del TableView para poder elegir los registros), dentro del evento Button_click de dicho control escribimos el siguiente código:
DIM Dia, Mes, Anio AS Integer
 
  Dia = DateChooser1.Day
  Mes = DateChooser1.Month
  Anio = DateChooser1.Year
  'Borramos el registro
  BasedeDatos.Borrar_seleccionado(Globales.Conexion, TableView1[TableView1.Row, 2].Text)
  'Actualizamos la lista de actividades
  BasedeDatos.MostrarActividades(Globales.Conexion, TableView1, Date(Anio, Mes, Dia, 0, 0, 0))
En este ejemplo no cambiamos los nombres predeterminados de los controles, pero se puede hacer editando la propiedad "name" de los mismos, lo que en programas más grandes será de utilidad evitado posibles confusiones al momento de programar

El código del formulario principal nos debe quedar así
PUBLIC SUB Form_Open()

  BasedeDatos.InicializaBase

END

PUBLIC SUB DateChooser1_Change()
  DIM Dia, Mes, Anio AS Integer
 
  Dia = DateChooser1.Day
  Mes = DateChooser1.Month
  Anio = DateChooser1.Year
  'Mostramos las actividades del dia seleccionado
  BasedeDatos.MostrarActividades(Globales.Conexion, TableView1, Date(Anio, Mes, Dia, 0, 0, 0))

END

PUBLIC SUB Button1_Click()
  DIM Dia, Mes, Anio AS Integer
 
  'Validamos que se completen los campos nesesarios
  IF TextArea1.Text <> "" THEN
    Dia = DateChooser1.Day
    Mes = DateChooser1.Month
    Anio = DateChooser1.Year
    'Guardamos la actividad ingresada en la tabla "Actividades" llamando al procedimiento AgregarActividad del modulo BasdeDatos
    BasedeDatos.AgregarActividad(Globales.Conexion, TextArea1.Text, Date(Anio, Mes, Dia, SpinBox1.Value, SpinBox2.Value, 0))
    'Borramos el campo de actividad
    TextArea1.Text = ""
    'Actualizamos la lista de actividades
    BasedeDatos.MostrarActividades(Globales.Conexion, TableView1, Date(Anio, Mes, Dia, 0, 0, 0))
  ELSE
    Message("Se debe completar el campo actividad", "Aceptar")
  ENDIF

END

PUBLIC SUB Button2_Click()
  DIM Dia, Mes, Anio AS Integer
 
  Dia = DateChooser1.Day
  Mes = DateChooser1.Month
  Anio = DateChooser1.Year
  'Borramos el registro
  BasedeDatos.Borrar_seleccionado(Globales.Conexion, TableView1[TableView1.Row, 2].Text)
  'Actualizamos la lista de actividades
  BasedeDatos.MostrarActividades(Globales.Conexion, TableView1, Date(Anio, Mes, Dia, 0, 0, 0))

END
Y aquí ya tenemos la primera versión del programa finalizada, luego continuaremos agregándole prestaciones y afinando el código.

También podremos generar un paquete instalable para las distribuciones de linux más conocidas.

Enlace de descarga del proyecto

miércoles, 22 de enero de 2014

Y la historia de la fotocopiadora continua

Como no podía ser de otra manera la historia anterior no encontró su desenlace, esta vez se sucedió un nuevo episodio, esta vez más corto y contado con menos dramatismo que la vuelta pasada.

Ocurre que uno a veces tiene cosas por imprimir y anda por el centro, tal vez alguien necesitara imprimir un documento con cierta urgencia o cualquier archivo, se dirige al negocio de impresiones y fotocopiados al que se acostumbra ir siempre, es atendido, se le entrega el pendrive a la chica que atiende... y...

- Disculpe, pero no me toma el pendriver...
- Espere ahí apareció pero está vació.

Bué, son cosas que pasan yo sabía bien que tenía un montón de cosas incluyendo el documento que debía imprimir.

Me dirijo a un centro de fotocopiado cercano y me encuentro que solo tenía accesos directos a mis archivos y carpetas, evidentemente algo extraño andaba pasando.

Pero no es de extrañarse que los famosos viejos virus de siempre todavía nos continúen afectando hasta estos tiempos, más cuando aún se utiliza windows en aquellas computadoras donde se conectan todo tipo de dispositivos de almacenamiento.

Finalmente y sin resignarme, fui a un ciber donde podía examinar el caso y recuperar los archivos y carpetas aparentemente extraviadas encontrándome con que todo seguía allí, pero oculto, con engañosos accesos directos que de ser ejecutados infectarían también la pc que me encontraba usando.

Recuperé todo, solucioné el problema y ya feliz y contento pude volver a continuar con mis tareas como de costumbre. ufff!

viernes, 17 de enero de 2014

Empezando a usar inkscape Parte 2, Dibujando algo sencillo

Bueno, este el segundo post de la serie, la idea es hacer un pequeño y simple dibujo, en este caso dibujaré una casa.

Google-ando un rato me encontré con una imagen de una casa de campo que me parecía bastante bonita por lo que decidí hacer un diseño parecido al de la foto, como la voy a necesitar de forma temporal para trabajar la agrego al documento a través de la opción importar del menú Archivo seleccionándola en la carpeta donde la tengo guardada.


Comenzaremos la actividad con la herramienta de "Dibujar curvas y líneas rectas"

Con la que recorreremos todo el contorno de la figura, comenzando por el perímetro general para así tener una silueta del objeto sobre la cual ir acomodando las otras partes.

Una vez finalizado el paso anterior, se selecciona el color apretando en alguno de los cuadros coloreados de la sección inferior y se corre a un costado para continuar con el contorno de los siguientes elementos como el techo, las ventanas, etc.


Continuamos con un trabajo similar al del paso anterior para todas las partes de la casa.
Los colores de las formas creadas por ahora no tienen importancia, ya que se definirán más adelante.



Se llegó al punto donde se definieron las formas básicas de la casa.


Ahora con la herramienta de editar nodos podremos corregir cualquier irregularidad seleccionando alguna de las formas, tras lo que aparecerán puntos en cada uno de los vértices, que al seleccionarlos y arrastrarlos con el mouse se podrá cambiar su posición.


Vista del dibujo con algunas correcciones efectuadas.

Ahora podremos agregarle el humo que podria salir de la chimenea, para lo cual usaremos la herramienta de creación de círculos y posteriormente modificaremos la propiedad de desenfoque de cada uno de ellos

 Bien ahora ya finalizamos con el humo

Ahora continuamos definiendo los colores de las partes que componen el dibujo, para lo cual podemos apliacar tanto colores sólidos como degradados




Luego de algunos retoques llegamos al final del trabajo que si bien es muy simple, es una muestra de la facilidad de uso del programa y de los buenos resultados que se pueden lograr con poca inversión de tiempo.

martes, 14 de enero de 2014

La PC infectada de la fotocopiadora

Hay situaciones con equipos informáticos que pueden acabar con la paciencia de hasta la de un hipotético gurú del yoga y la meditación, o al menos fastidiar al personal que se encuentra a cargo del manejo de la fotocopiadora.

El problema no es con la máquina en si, la cual funciona perfectamente, la situación transcurre al intentar utilizar la computadora para imprimir documentos presentes en Pendrivers u otros dispositivos de almacenamiento en cualquier tipo de formato, sucede que la PC sufre de repentinos reinicios, lentitud desesperante y otros efectos misteriosos atribuidos a los famosos virus informáticos.

La computadora entonces se transforma en un obstáculo incómodo de superar entre el archivo y el equipo de impresión y fotocopiado. Al parecer la solución no se hace constante y el remedio con el tiempo se hace peor que la enfermedad, antivirus que se morfan los recursos presentes de un ordenador no muy nuevo que digamos, numerosos programas situados en el inicio de windows, los virus de los que antes hablamos, el engorde característico de la mayoría de las versiones de windows (en este caso un Win XP) y quien sabe que otras porquerías.

Al parecer la máquina se somete a periódicos controles técnicos pero siempre desembocan en la solución temporal, tal vez la computadora sea alérgica a alguna distribución de linux, por que la persona que se ocupa de su mantenimiento (situándose casi en el rol de médico) no lo tomó en cuenta al parecer.

Esperemos que a la PC pueda encontrar alguna cura de su enfermedad, ya que el windows no es fácilmente combatible, se posesiona de todas las defensas posibles y se hace difícil de combatir no por la pc en si, ya que con un rato en el consultorio se libraría de la peste, sino de los factores externos con los cuales corre serio riesgo de contagio o reincidencia.

El problema es que muchos usuarios la mayoría de las veces no conocen el antídoto que le devuelve la vitalidad a la PC, le ahorra en consultas al servicio técnico y más que seguro que quien se relacione con dicho equipo no sufra consecuencias tales como dolores de cabeza recurrentes, frustración al ver que la computadora no cumple como debería entre otros síntomas de lidiar con windows.

Pero bueno, no hace falta explicar por que el doctor no cura a su paciente, debe ser por que las repetidas visitas le dejan más plata y por que tal vez pueda lucrar con el reemplazo del equipo.

Bien, ya me dejo de delirar por que lo más probable es que no me llamen para solucionar los problemas presentes al parecer ya hay alguien que los soluciona...

lunes, 13 de enero de 2014

Empezando a usar el Inkscape parte I, Edición de textos

El Inkscape es un programa de dibujo vectorial al igual que Corel, su alternativa "privativa".

Una de sus principales ventajas es la liviandad, el poco consumo de recursos del sistema, la facilidad de uso y su libre disponibilidad de descarga de forma gratuita.

Es una herramienta profesional de "Software Libre", (Que no se debe confundir con el free ware o software gratuito) ampliamente utilizable para todo tipo de aplicaciones donde se requieren imágenes vectoriales, tanto en áreas de publicidad como en diferentes tipos de presentaciones.

Bien, al iniciar nos encontramos con una pantalla como la siguiente:

En la que se pueden identificar las barras de herramientas, la barra de menú, la de selección rápida de colores y la hoja de fondo que será nuestro espacio de dibujo. Esta hoja más que nada cumple el objetivo de servir como referencia del tamaña real que ocupa el papel donde podríamos imprimir nuestro diseño.

Ahora comenzaremos a hacer algo que aproveche varias de sus características. Tengo poco conocimiento/habilidad en diseño gráfico por lo que este post es más bien demostrativo.

Empezaremos utilizando la herramienta de creación de textos
Presionamos en algún sector de la hoja, manteniendo el botón izquierdo del mouse apretado arrastramos haciendo un rectángulo en el cual luego escribimos el texto. Al terminar podremos modificar sus propiedades como fuente, tamaño de fuente, color, opacidad, ancho, alto, ángulo entre otras características.
Ahora, podemos cambiar las propiedades básicas del texto a través de la barra de herramientas
En este caso cambiamos el tipo de fuente y el tamaño
Bien, ahora con las flechas que se ven a los costados podemos modificar el alto y ancho, apretando nuevamente con la herramienta de selección podemos cambiar al modo de rotación, modo el el cual aparece en el centro una cruz que estable el centro de rotación que uno puede mover a libertad hasta poder situarlo fuera de la caja de texto.
 También podremos cambiar el color de fondo, pudiendo elegir entre degradados con diferentes gamas de colores, la transparencia del texto, el color del borde y sus posibles degradados, ademas que se puede definir el grado de desenfoque, todo ello posible desde la correspondiente herramienta.
Luego de unos retoques alterando varias de sus propiedades, el texto nos queda así.

Ahora podremos des-enfocarlo con el correspondiente control quedando
También podemos seleccionar el texto y usar la función des-agrupar para modificar las características de las letras de forma independiente.
Hasta aquí llegó el primero de nuestra serie de posts

domingo, 12 de enero de 2014

Problemas comunes con la PC, parte I

Problema 1 - Se debe configurar la fecha y hora en cada encendido de la computadora, en la mayoría de los casos puede pasar que el sistema se queda bloqueado esperando a que se presione alguna tecla como "F1" para luego continuar con el inicio.

Este problema se debe a que las configuraciones básicas del sistema al igual que el reloj del sistema se encuentran en un chip en la placa madre, que debe recibir alimentación constante.

Cuando la computadora se apaga o se desconecta de la red eléctrica, ese chip solo se puede mantener en funcionamiento gracias a una pequeña batería de 3V que se encuentra dentro del gabinete.
Sucede que pasada cierta cantidad de tiempo la batería se descarga y el problema se soluciona solo con cambiar la batería.


jueves, 9 de enero de 2014

Hoy fue un día tranquilo

En si no habría mucho para contar, fue un día tranquilo y por ahora no se me ocurre mucho sobre que escribir en este blog pero algo tenía ganas de publicar ya que hace un tiempito que no creo ningún post.

A la tarde instalé el antivirus Nod 32 en una computadora con windows xp, ya que el que estaba instalado había caducado hace tiempo.

Se realizó un análisis general, donde por suerte no fue detectada ninguna amenaza, salvo recordarme que estaban instaladas las típicas barras de herramientas con funcionalidad escasa, como las de "Babilon" y otras que solo sirven para ocupar espacio en la ventana del navegador y que a veces uno termina instalando por error (si me pasó cantidad de veces) al bajar un programa a través de un gestor de descargas.

Luego se desactivaron algunos programas de inicio automático, de aquellos que se ejecutan en segundo plano. Generalmente varios de estos son herramientas de comprobación de actualizaciones que no hacen más que ocupar recursos del sistema.

Y tareas programadas de servicios de google y facebook, entre otras, que al iniciarse pueden provocar "micro lags".

Y el trabajo finalizó al no encontrar otro problema que solucionar y me volví para casa.

lunes, 6 de enero de 2014

La tendencia a trabajar en la nube

Cada vez se escucha más eso de "trabajar en la nube" o "cloud computing", ¿pero que significa? esta modalidad de trabajo hace referencia a la ubicación de los archivos y documentos sobre los que se desarrolla alguna actividad, situando los mismos en internet.

Como ventajas conllevaría no ocupar espacio en medios de almacenamiento local, fácil y rápido acceso a los archivos desde cualquier computadora que se pueda conectar a la red y mayor protección a posibles ataques informáticos (posible por las altas medidas de seguridad presentes en los servidores) y perdida de información. Aparte permitiría mejorar la integración de los dispositivos móviles en las actividades llevadas a cabo en la pc.

Pero, nadie puede asegurar la ubicación física de los archivos, pueden estar en una o varias computadoras alrededor del mundo, no es un detalle importante sabiendo de que siempre podremos descargarlo desde cualquier lugar en cualquier momento.

Pero se genera gran dependencia de la conexión a internet, sin la misma no se puede acceder a la información y la calidad del vinculo que nos permite trabajar depende mucho de la velocidad de la conexión que en determinadas circunstancias pueden llegar a incomodar tanto el trabajo hasta llegar impedir cualquier actividad.

Pero no solo es eso, los archivos estando en computadoras ajenas se encuentran a disposición de cualquier persona que tenga acceso a las mismas suponiendo un problema de privacidad, no tanto por los trabajadores que operan el servicio, sino mas que nada por existir la posibilidad de que algún tercero pueda negociar el acceso a los datos, de todas formas suponiendo esta preocupación fruto de cierta paranoia, se pueden utilizar diferentes métodos de cifrado de la información.

El almacenamiento de información en internet debería aplicarse más que nada para aquellos archivos de poca relevancia o que no se trastorne el trabajo en caso de no poder acceder a los mismos.

Un sistema informático debe ser sólido y lo más independiente posible de falla por factores externos, el trabajo en la nube aporta más que nada dependencia de la conexión a internet, del estado de la empresa que ofrece los servicios, de la congestión presente en los servidores y de cualquier ataque informático exitoso que afecte la información contenida en las computadoras afectadas, cambios repentinos en los servicios ofrecidos, entre otras cosas no tenidas en cuenta.

El "cloud computing" no solo se limita al almacenamiento de datos, pretende ser una plataforma completa de trabajo con aplicaciones especializadas para funcionar en red. El software normalmente es considerado como un producto, en este caso supondría un servicio donde el proveedor autoriza tu acceso.

Permite ahorrar en equipamiento y uno estaría siempre actualizado. También supone un nuevo campo de negocios para las grandes empresas que tendrían un mayor control sobre las actividades, trabajos y preferencias en el uso de la computadora, aparte de que supone otros espacios donde mostrar anuncios publicitarios y nuevas fuentes de ingresos como el cobro por servicios diferenciados..

Personalmente me resulta inquietante la enorme dependencia que supone con los proveedores del servicio que restringe las libertades de los usuarios, al no poder elegir donde y como disponer de la información, que software utilizar, entre otras cosas.

Esta solo es un opinión, como verán no veo con tan buenos ojos la tendencia hacia las soluciones informáticas que utilizan internet como plataforma.

viernes, 3 de enero de 2014

Las maquinas se hacen viejas, noo!!

En el mundo de la informática se puede ver con gran énfasis los efectos de la llamada obsolescencia programada, equipos que a muy poco tiempo de ser fabricados y lanzados al mercado ya se vuelven "viejos", ya nadie los quiere y hasta pareciera que no sirvieran para nada. Cosa curiosa que no le ocurre a otro tipo de productos o por lo menos transcurre con mayor lentitud. Autos motos vehículos en general pueden pasar algunas décadas que aun siguen vigentes y funcionales, los abandonados se les saca el oxido se le cambian un par de cosas y vuelven a las calles, en cambio una computadora que pudiera llegar a cumplir sus 10 años de vida, aun pudiendo encender, se asemeja a una antigüedad/curiosidad de tiempos inmemoriales, objeto de investigación de historiadores y arqueólogos (exagerando un poco).

¿Pero que es lo que pierde la computadora con el paso del tiempo?
¿Se hace más lenta?¿pierde funcionalidades?, ¡¡No!!! nada de eso!, la máquina permanece inmutable a través del tiempo, si se puede llenar de tierra, los plásticos tornarse amarillentos, tal vez encontrar en el interior telarañas y bichos muertos, en caso de que estos osaran entrometerse por las hendiduras del gabinete, pero el aparato en si funciona de la misma forma que al principio, tal vez puede que haya perdido un poco de su velocidad inicial, algo totalmente superable con algunas tareas de mantenimiento.

La computación avanza tan rápido que un equipo que salió actualmente en cuestión de meses ya es superado por otro con mejores características, pero la historia no se termina ahí, por que sino no habría muchos motivos para verse motivado a tener un equipo más nuevo teniendo en cuenta que el mismo se puede seguir utilizando para las tareas habituales, tiene que surgir la necesidad de tener algo más potente para poder usar por ejemplo los juegos más nuevos de gran calidad gráfica que requieren de grandes requerimientos de hardware o los últimos sistemas operativos y programas de oficina.


Las maquinas "viejas" todavía tienen vida para rato
De todas maneras considerando lo anteriormente dicho una PC vieja todavía se puede seguir aprovechando por ejemplo para actividades multimedia como la reproducción de películas y música, la navegación por internet, el uso de herramientas de oficina, pasar momentos de ocio jugando, entre otras actividades que se pueden hacer con cualquier equipo, no necesariamente hay que quedarse en el tiempo, y linux ayuda mucho en la posibilidad de sacarle el jugo a estos equipos al poderse adaptar a computadoras de bajos recursos al mismo tiempo que se puede mantener el sistema con las últimas actualizaciones de software y disfrutar de un buen entorno de escritorio.

También podría continuar usando windows, obedece más bien a una cuestión de gustos, pero está bueno expandir los horizontes y acercarse a nuevos sistemas operativos, que en si tienen pocas diferencias en cuanto a su uso y muchas ventajas por descubrir.

No hay que resignarse a quedar atrasado, tampoco dejarse vencer por la necesidad impuesta de comprar algo nuevo teniendo algo que aun se puede seguir usando.


Nosotros podemos asesorarte en caso de que tenga un equipo antiguo trabajando en aquello que sea necesario para poder aprovechar dicha computadora, No la tires! Usala!!! todavía tiene una vida por delante.