CANTV Debian logos

CANTV Debian repositorio.

CANTV  Debian repositorio.


 

CANTV Debian repositorio. En mi inquietud de implementar repositorios para Linux en territorio venezolano a fin de ahorrar tiempo y hasta divisas (usar menos los cables submarinos que nos conectan a otros países) me ha llevado hasta consultar «tuiteros» con experiencia en ésa área. Para ello el sr. Juan Carlos Monsalve me ha indicado de un repositorio para Debian alojado en los servidores de datos de CANTV «a dos saltos de distancia» y es por ello que me propongo probarlos en una máquina virtual con Debian 8 Jessie.



  Me dirijo hasta la dirección suministrada, donde muestran la siguiente información para ser introducida en nuestro archivo sources.lst (Debian, y su derivado Ubuntu utilizan «Advance Packaging Tool» para los repositorios de software).


 

# REPOSITORIOS “MAS VELOCES”, ESTABLES Y VENEZOLANOS (CANTV)
# A solo dos saltos de cualquier usuario ABA

## Debian – stable
deb http://mirror-01.cantv.net/debian/ stable main contrib non-free
deb-src http://mirror-01.cantv.net/debian/ stable main contrib non-free
deb http://mirror-01.cantv.net/debian-security squeeze/updates main contrib

## Actualizaciones de seguridad
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free

## Backports
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free

 


Un repositorio, de software en este caso, es simplemente una colección de programas informáticos catalogados y almacenados de manera normalizada (o normada, que sigue las normas) a fin de poderlos descargar para cada ordenador que lo necesite (nuevo o que esté reinstalando su sistema operativo).   He aquí el meollo del asunto: un grupo de servidores no podrá encargarse de entregar para el mundo entero, no resistiría la carga. Es por ello que se implementaron servidores «espejos» -«mirrors» en inglés- que copian la información de, en teoría, los servidores centrales, pero esto no es necesariamente así. Ya que los datos digitales se pueden copiar exactamente como fueron creados y disponemos de algoritmos aplicados para certificar que dichas copias sean exactas al original pues podemos montar servidores espejos desde el que tengamos más cercanos, físicamente hablando.   Acá en Venezuela ese lugar es precisamente Caracas, nuestra ciudad capital. Mi idea es montarlos en las otras ciudades principales de Venezuela, por ejemplo Maracaibo, Valencia o Ciudad Bolívar. Para ello hemos solicitado al Ciudadano Presidente de la República Nicolás Maduro un plan especial de dirección IP fija (aprovechando que las direcciones versión 6 están bien encaminadas a ser implementadas) y el cambio de tecnología ADLS a DSL. Acá publico el video donde el Presidente recibe nuestra solicitud:



Ya colocando manos a la obra publico el video donde muestro cómo modificar el archivo (con derechos de root) y mido la velocida de descarga tanto de las cabeceras como de las mismas actualizaciones en sí:



Para lo que yo llamo «catálogo» de aplicaciones descargó 19,6 MB en 36 segundos (velocidad de 541 kB/s) y en este punto he de confesarles que tengo varios equipos conectados en la misma red de área local y al mismo modem CANTV, y uno de ellos trabaja las 24 horas compartiendo las ISO Debian por Torrent (entre otros trabajos que necesito, no viene al caso mencionarlos aquí 😎 ). Es por ello que PUEDE SER que se conecte a mayor velocidad, mi plan es de 10 mbps «de bajada» y 1 mbps «de subida» (¿ya vieron por qué necesito una conexión SIMÉTRICA?).   Ahora bien, hago una pequeña prueba instalando un programa, para la prueba Filezilla el cual utilizo en demasía, y descargó 9004 kB en 15 segundos (velocidad 592 kB/s) tras lo cual quedó satisfactoriamente instalado (de hecho duró más tiempo instalando -26 segundos- que descargando -15 segundos-). Hago notar que POR SUPUESTO mientras más lejos uno esté de Caracas, pues más tardará en descargar, son más los «saltos» a dar dentro de la misma red de CANTV (de allí mi idea de distribuir repositorios por toda Venezuela con el plan sugerido a CANTV).   Poco después el sistema operativo automática detectó las actualizaciones necesarias (éste Debian es el 8.0 y ya salió el 8.2 por lo que son sustanciosos los cambios necesarios).


 


Luego descargó 269,1 MB en 17 minutos a una veolocidad aproximada de 270 kB/s, el verdadero promedio que deseaba obtener con una descarga de tamaño moderado. De nuevo duró más tiempo instalando las actualizaciones (253 minutos) que descargando (17 minutos). Saquen ustedes mismos sus conclusiones, comparando con las descargas que realizen ustedes en sus casas y/o lugares de trabajo.

<Eso es todo, por ahora>.

Joseph Raphson signature

GoLang Newton Raphson.

GoLang Newton Raphson.

GoLang es un «nuevo» lenguaje de programación en el cual estoy interesado ya que el programa de repositorios llamado Aptly está escrito en ese «idioma de computación» (gracias a Andrey Smirnov @smira). Ustedes pueden obtener información más precisa sobre este lenguaje de programación en este enlace que obtuve via Twitter:

Por ello lo estoy aprendiendo por medio de un tutorial y allí me encuentro con un método para calcular raíces cuadradas por aproximación según Isaac Newton el cual yo no conocía.

Introducción.

Como yo estudié ingeniería y las matemáticas me traen gratos recuerdos me puse a analizar la fórmula que proponen los desenfadados programadores y desenfadadas programadoras de Google (la tuve que nombrar ya que ésta empresa es la que lo patrocina) y definitivamente que no me gustó la fórmula que presentan y el método de programación para calcularla.

Mucha gente ha escrito sobre el tema, incuyendo Wikipedia, por supuesto, pero me pareció un método muy enrevesado, para mi gusto (la historia allí descrita me hace saber que en realidad lo inventó primero el matemático Joseph Raphson pero Newton llegó a la misma conclusión si saber nada del trabajo del otro matemático).

Me encanta ser práctico, ver ejemplos y lo que muestran en este enlace me pareció pulcro y limpio y a pesar que llevo AÑOS sin calcular derivadas y series se llega rápidamente a una solución en el ejemplo 2 (pero yo realmente me deleité con el ejemplo 1) .

Propuesta.

Basado en lo que me explican me propongo programar para calcular CUALQUIER raíz cuadrada de un número natural mayor a 1 y de una manera recursiva (a diferencia de como lo piden en el tutorial con 10 iteraciones) más sin embargo no he podido resolver el detalle de convertir dicha función en un objeto que sólo tengamos que pasarle el número a calcular su raíz cuadrada, la precisión en decimales, sin más desde afuera, como lo planteo siempre hay que modificarle adentro en la función.

Si más preámbulos (que no, que no vamos a estudiar en este post «Análisis Matemático I», II ni III, ni «Ecuaciones Diferenciales» ni «Matemáticas Aplicadas») le presento mi solución, con comentarios en castellano:

package main

import (
    "fmt"
    "math"
)

func NewtonRaphson(x float64, comienzo int, margen float64) float64 {
  var resp float64 = 0
  var z    float64
  var dif  float64
  //Cambiar z al entero cuadrado inferior a x para calcular
  //otras raices
  if comienzo == 1 { z = 1   }
  //fin semilla
  if comienzo == 0 { z = x }
  
  //Para calcular otra raíz cambiar el primer 2 por
  //el numero cuya raiz cuadrada se desea calcular    
  z = ( z + 2 / z) / 2
  dif = x - z
  
  
  if dif > margen {
    resp = NewtonRaphson( z , 0, margen)
  } else {
    resp = z
  }
  return resp
}

func main() {
    fmt.Println(NewtonRaphson(2, 1, 0.0000001))
    fmt.Println(math.Sqrt(2))
}

Obteniendo los siguientes resultados, los cuales se aproximan bastante, como ven:

1.414213562373095
1.4142135623730951

Program exited.

Si quisiéramos calcular la raíz cuadrada de 50 debemos hacer dos cambios en el programa (atención: si copian y pegan el código para probar, respeten el indentado):

package main

import (
"fmt"
"math"
)

func NewtonRaphson(x float64, comienzo int, margen float64) float64 {
 var resp float64 = 0
 var z    float64
 var dif  float64
 //Siete elevado al cuadrado es el primer inferior a 50
 if comienzo == 1 { z = 7   }
 //fin semilla
 if comienzo == 0 { z = x }

 //El primer número 2 lo cambiamos por 50
 z = ( z + 50 / z) / 2
 dif = x - z

 //Verifica el margen de error para finalizar el cálculo
 //y devolver el resultado
 if dif > margen {
  resp = NewtonRaphson( z , 0, margen)
 } else {
  resp = z
 }
 return resp
}

func main() {
 fmt.Println(NewtonRaphson(50, 1, 0.0000001))
 fmt.Println(math.Sqrt(50))
}

Y esto es lo que arroja el servidor remoto que ejecuta código:

GoLang cálculo raíz cuadrada de 50 por método Newton Raphson.
GoLang cálculo raíz cuadrada de 50 por método Newton Raphson.

AHORA BIEN ésta es mi primera impresión de este lenguaje (puede ser que esté equivocado), se parece bastante a Python, pero bueno, vamos a «seguirle dando a los hierros» y veremos en que consiste este lenguaje, prometo próximas entradas en este blog acerca del tema.

<Eso es todo, por ahora>.

Ubuntu 6 32 bits 27 junio 2007

Ubuntu 6.10 32 bits.

Ubuntu 6.10 32 bits.

Ubuntu 6.10 32 bits (año 2007 y reinstalado en 2015 por medio de una máquina VirtualBox): un CD que recuperé del baúl de los recuerdos el cual le hice una imagen ISO con Brasero (recuperado en un 99,9% a pesar de haber estado más de 48 horas leyendo y releyendo) y la utilidad de disco confirma los defectos en la imagen grabada. También tiene utilidad de comprobación de memoria RAM, la ejecuté también, todo está en el video.

Por allá en el 2004 tenía una computadora que compré ya armada y me vendieron una marca infame de tarjeta madre (yo recomiendo las marcas Foxconn, Asus y Gigabyte con los ojos cerrados) y dicha tarjeta madre dejó de reconocer disco duro alguno en el 2007, pero al menos si arrancaba desde CD (en aquella época era una novedad en Venezuela el DVD interno para computadora, el cual era el primero de mi propiedad y de paso era quemador también). Así que para no darle más vueltas a ese asunto descargué el Ubuntu y usaba el live CD y guardaba en memoria USB (pendrive). Esa computadora a la final la desarmé y vendí por partes pero como no hay mal que por bien no venga me introdujo a mi primera experiencia real con el Software Libre, submundo Linux.

<Eso es todo, por ahora>.

Ubuntu Server 15.04, primeras pruebas.

Ubuntu Server 15.04 de 64 bits.

Para probar la imagen ISO de Ubuntu Server que descargué por medio de Bittorrent desde la web oficial y con ayuda de VirtualBox y asignándole 512 megabytes de RAM y 2 procesadores procedo a probar esta opción del software libre.

Ubuntu logo
Powered by
GNU/ Linux
Ubuntu.

Generalmente uso ese protocolo (Bittorrent) para descargar a la velocidad máxima que me permite mi proveedor de internet (ISP) y luego compartir y ayudar a los demás también a descongestionar los servidores oficiales; ahora que lo pienso debería existir un protocolo parecido para los repositorios, sería cuestión de sentarse a programar sobre las normas ya establecidas y juntarlas para ampliarlas. Investigando un poco por Google he descubierto que existe «BitTorrentSync» un proyecto llevado a cabo por Leo Moll @tuxpoldo que permite crear archivos .torrent de manera dinámica (o al menos eso entiendo) sobre cualquiera de nuestros archivos almacenados, de manera tal que si los actualizamos automáticamente se compartirán las nuevas versiones sin necesidad de descargar archivos .torrent adicionales -según traduzco yo de esta página web-.

Mi idea sería que nosotros mismos tengamos varios servidores de repositorios esparcidos geográficamente de manera esclava conectados a un servidor maestro que a su vez sea espejo de uno (o varios) repositorios oficiales. Plantearlo suena fácil pero por las peripecias que cuentan otros usuarios, tiene su trabajo configurar rsync el cual se utilizaría para configurar nuestro repositorio maestro.

¿Le estoy buscando 5 patas al gato, pudiendo usar rsync para todo? Pues mi idea es traer el (los) repositorio(s) que necesitemos a territorio venezolano y al tenerlo actualizado compartirlo rápidamente con nuestros propios repositorios que montemos (esparcidos) y luego invitar a quien quiera a compartir sin mayor compromiso y/o carga de trabajo a nuestro repositorio espejo maestro.


 <Eso es todo, por ahora>.

Instalando GNU Linux Canaima virtual en 4 minutos

GNU Linux Canaima.

canaimaEtiqueta-CD
Etiqueta CD Canaima

Casi olvido publicar este vídeo, tuve acceso a un computador tipo servidor de VIT con GNU Linux Canaima 32 bits (desperdiciando procesador de 64 bits) corriendo VirtualBox y fue asombroso que lo pudo hacer en menos de cuatro minutos, eso es lo que me llama la atención. 😯

Uno pudiera hacer más en menos tiempo con hardware poderoso, estaré al pendiente de cuando VIT C.A. tenga disponible para el público en general estos magníficos servidores de datos.

Actualizado el viernes 24 de julio de 2015:

A raíz de un excelente reportaje sobre Ensambladora VIT, empresa del Estado Venezolano, y transmitida por Venezolana de Televisión publico una foto referencial del servidor que utilicé para instalar GNU/Linux Canaima y algunos trinos informativos:

servidor vit

<Eso es todo, por ahora>.

Año 1995: «blast from the past» ATX POWER SUPPLY.

[ratings]

Actualizado el domingo 3 de mayo de 2020

Lo que me sucedió en julio de 2015 ya lo había vivido en el año 1995, pero con una pequeña diferencia que les contaré luego. Aunque trabajo con computadoras desde el año 1989 sólo fue hasta 1993 que pude reunir para comprarme una usada. Era una DTK (acá pueden ver una sucesora 386) XT8080 de segunda mano -hecha en Miami, cuando los gringos producían algo más que invasiones y guerras-  tipo «baby», DE HIERRO Y ACERO (el aluminio brillaba por su ausencia y el plástico era poco) sin disco duro, con dos floppy de 5 1/4″ y un monitor monocromático Samsung con un horrible color ámbar. Para entonces una computadora nueva costaba Bs. 80 mil, equivalentes a unos 870 US$ (dólar a Bs 92, en ese momento) y que para el día de hoy (teniendo en cuenta que el $ ha perdido un 35% de su valor desde 2002) unos 1.200 US$ actuales -julio 2015-. NO HABÍA DE OTRA comprar una nueva me era imposible así que como dicen que «no hay mal que por bien no venga» pues halá, a trabajar los hierros -literalmente-.

baby xt with monochrome monitor
baby xt with monochrome monitor

Seguir leyendo →

Cambiar refresco de pantalla en Debian.

Con el paso de los años mi visión se ha debilitado. Por eso decidí desempolvar mi viejo monitor Samsung LCD 740n que tiene una estupenda tasa de refrescamiento vertical de 75 Hertz, es decir, «dibuja» el monitor 75 veces por segundo lo cual hace más placentero ver un monitor durante horas y horas todos los días. Yo sabía que por defecto viene fijado en 60 Hertz aunque no sabía el por qué, investigando un poco encontré este artículo donde dan una explicación histórica, dos grandes verdades que en mi mente no las había unificado hasta ahora. Las razones del por qué cansa menos la vista mientras mayor sea la tasa de refrescamiento por segundo siempre lo he tenido presente pero en este otro artículo está pero que muy bien explicado.

Finalizado el preámbulo vamos al grano, cambiar el refresco de pantalla (y resolución) en Debian (e incluso otras distribuciones Linux pero aún no lo he probado ya que las máquinas virtuales con las que practico pues… ¡usan el mismo monitor todas!). Esto quiere decir que este tema es con HARDWARE REAL pero primero he de hacerles una advertencia, no vayan a decir que no se los advertí:

Establecer una tasa de refrescamiento a un monitor para la que NO ESTÁ DISEÑADO, PUEDE DAÑAR SU MONITOR.

De hecho lo dañará si aún tiene un monitor de rayos catódicos (CRT, del inglés Cathode Ray Tube), en el caso de los monitores LCD y LED pues simplemente se niegan a trabajar y como no confirmamos al sistema operativo el ajuste, pasado cierto tiempo lo devolverá a su estado anterior. Si dudan de mi palabra lean la advertencia de Microsoft y otros foros importantes sobre tarjetas de video.

Actualmente esto no es problema para los monitores «en tercera dimensión 3D» ya que refrescan mínimo a 120 Hertz (60 para cada ojo) y así se produce la ilusión de profundidad, con dos imágenes tomadas desde dos puntos separados por cierta distancia, tal como vería nuestros ojos humanos (suena sencillo ¿verdad?).

www.ks7000.net.ve expresado en QR.

Generando códigos QR con Python.

Publicado el sábado 13 de junio de 2015.

Actualizado el sábado 16 de noviembre de 2019.

Introducción.

En el día de hoy aprendimos que se pueden generar «QR codes» (la cual es la abreviatura, en inglés, de «Quick Response Code«) con un paquete para el lenguaje Python. Fueron creados en Japón para el manejo de piezas y manufactura de vehículos de la marca Toyota, a fin de agilizar grandemente los inventarios. Explicar cómo funcionan merece su entrada completa y aparte, aquí vamos a explicar brevemente cómo instalarlo y usarlo con Python.

Agradecimiento.

Agradecemos de antemano a los programadores de software libre de «Industrias Diana» cuya exposición fue brillante en el «Décimo Primer Congreso de Software Libre». Dicha exposición abarcó varios temas acerca del proceso y manejo de la información, entre otros la comunicación con impresoras fiscales y la generación de códigos QR, caso que nos ocupa hoy. Muchas gracias por compartir el conocimiento, cumplimos con seguir difundiendolo.

Seguir leyendo →

Congreso Nacional de Software Libre, viernes 12 de junio de 2015.

Libertad no es poder escoger quién será tu amo, ¡LIBERTAD ES NO TENER AMO!

Richard Matthew Stallman.

Evento realizado en el INCES Av. Lara de Valencia, estado Carabobo, y organizado por:

Puede revisar el cronograma de actividades en este enlace.

Apertura del evento.

 

 

Ponencia: «Conciencia irreverente para un pais consciente».

 

Ponencia: «Robótica divertida».

CNSL2015-01 CNSL2015-02 CNSL2015-03 CNSL2015-04 CNSL2015-05 CNSL2015-06

Ponencia: «Licencia Venezolana de Software Libre».

CNSL2015-07 CNSL2015-08

Ponencia: «Academia de Software Libre Carabobo».

<Eso es todo, por ahora>.