lunes, 8 de octubre de 2012

«Update-Manager»


Ayer cuando intentaba instalar K3B para crear un dvd de vídeo me encontré con la sorpresa que no podía instalar nada ni actualizar mi sistema, el centro de software de Ubuntu me arrojaba el siguiente error y se cerraba solo... Pensé que era el fin del mundo con este error que me arrojaba:

No se ha podido inicializar la información de los paquetes
Ha ocurrido un problema imposible de corregir cuando se inicializaba la información de los paquetes.
Por favor, informe de ésto como un fallo en el paquete «update-manager» e incluya el siguiente mensaje de error:
'E:Encountered a section with no Package: header, E:Problem with MergeList /var/lib/apt/lists/cl.archive.ubuntu.com_ubuntu_dists_jaunty-updates_restricted_binary-amd64_Packages, E:No se pudieron analizar o abrir las listas de paquetes o el archivo de estado.'

La solución es bastante sencilla, solo basta con abrir una terminal y escribir el siguiente comando:

~$ sudo rm /var/lib/apt/lists/* -vf

Reparará automáticamente las secciones sin cabeceras y remueve todos los archivos corruptos.

martes, 25 de septiembre de 2012

lunes, 24 de septiembre de 2012

Mi escritorio de Septiembre

Gears of Warr III

Como validar el RUT en Libre Office - Chile


Que es...?

El Rol Único Tributario, conocido también por el acrónimo RUT, es un número único chileno, que fue establecido como identificación tributaria por el Decreto con Fuerza de Ley N° 3 del 29 de enero de 1969. La identificación tributaria anterior era el Rol General de Contribuyentes (1959-1969).
La asignación del Rol respectivo está a cargo de dos organismos estatales, según la naturaleza del asignatario:
  • Todas las personas naturales, nacionales o extranjeras, reciben un Rol Único Nacional (RUN) otorgado por el Servicio de Registro Civil e Identificación, este mismo número también servirá de identificador ante el Servicio de Impuestos Internos y ante todo otro organismo del Estado;
  • Las personas jurídicas, en cambio, deben efectuar el trámite de Inicio de Actividades ante el Servicio de Impuestos Internos, mediante el cual éste asignará un RUT, este mismo número servirá como identificador de la entidad ante todos los organismos del Estado.
El formato del RUT es igual al del RUN, por lo tanto, obedece a la forma XX.XXX.XXX - Y.
Tanto el RUT como el RUN son personalísimos e intransferibles, por lo tanto:
  • Un mismo Rol solamente será asignado a una persona determinada, sea natural o jurídica;
  • Un titular de RUN o RUT mantendrá el mismo Rol durante toda su existencia legal,
  • Terminada la existencia legal del titular de RUN o RUT, nunca es vuelto a asignar.

Al Grano:
1. Lo primero es abrir nuestro LibreOffice Calc e ir a Herramientas -> Organizar Macros -> LibreOffice Basic.


2. Seleccionamos Macros de LibreOffice y posteriormente el nombre de nuestro documento y agregamos uno nuevo y le ponemos un nombre para identificar la macros.


3. Ahora en la ventana que nos aparece pegamos el siguiente código:

Public Function dvrut(rut)
' Por Jose Ossa Monge 2006'
 rut = Replace("0000" & rut, ".", "", 1)
 If InStr(1, rut, "-") > 0 Then rut = Left(rut, InStr(1, rut, "-") - 1)
 rut = Right(rut, 8)
 suma = 0
 For i = 1 To 8
 suma = suma + Val(Mid(rut, i, 1)) * Val(Mid("32765432", i, 1))
 Next i
 dv = 11 - (suma Mod 11)
 If dv = 10 Then dv = "k"
 If dv = 11 Then dv = 0
 dvrut = dv
 End Function

4. Cerramos y queda guardada la Función

5. Descarga el Ejemplo desde acá:
https://docs.google.com/file/d/0B3VJeanW10_vNmZveThha09PR28/edit

Ethernet Centos 6.3 y RedHat


Hoy luego de instalar Server CENTOS 6,3 me di cuenta que no viene por defecto la red Ethernet configurada. La solución es bastante simple:

A partir de CentOS 5 y Red Hat™ Enterprise Linux 5, se incluye NetworkManager como una implementación alternativa para la gestión de parámetros de red desde la interfaz de usuario. En éstos, NetworkManager viene desactivado de modo predeterminado.
En CentOS 6 y Red Hat™ Enterprise Linux 6, NetworkManager viene activo de modo predeterminado, salvo que se haga la instalación mínima o la instalación básica de servidor.
Si se desea impedir que NetworkManager gestione algún dispositivo de red en particular y que éste sea gestionado por el servicio network, edite el archivo de configuración correspondiente al dispositivo a utilizar. Asumiendo que se trata del dispositivo eth0, ejecute:
$vi /etc/sysconfig/network-scripts/ifcfg-eth0

Y modificar lo siguiente para que que de esta manera:

DEVICE=”eth0”
ONBOOT=”yes”
BOOTPROTO=”dhcp”
NM_CONTROLLED=”no”

y para que funcione aplicamos:
$service network restart


martes, 3 de julio de 2012

Función para convertir de número a letras en LibreOffice Calc con Macros

Hoy me encontré con un problema... Necesitaba pasar números a palabras, luego de indagar un poco encontré una función en Macros bastante sencilla de implementar. 

1. Lo primero es Abrir nuestro LibreOffice Calc e ir a Herramientas -> Organizar Macros -> LibreOffice Basic...


2. Seleccionamos Macros de LibreOffice y posteriormente el nombre de nuestro documento y agregamos uno nuevo y le ponemos un nombre para identificar la macros.


3. Ahora en la ventana que nos aparece pegamos el siguiente código:

Option Explicit
Function Numeros_Letras(ByVal Numero As Double, _
                    ByVal Moneda As String, _
                    ByVal Fraccion_Letras As Boolean , _
                    ByVal Fraccion As String, _
                    ByVal Texto_Inicial As String, _
                    ByVal Texto_Final As String, _
                    ByVal Estilo As Integer) As String
Dim strLetras As String
Dim NumTmp As String
Dim intFraccion As Integer
  strLetras = Texto_Inicial
  'Convertimos a positivo si es negativo
  Numero = Abs(Numero)
  NumTmp = Format(Numero, "000000000000000.00")
  If Numero < 1 Then
    strLetras = strLetras & "cero " & Plural(Moneda) & " "
  Else
    strLetras = strLetras & NumLet(Val(Left(NumTmp, 15)))
    If Val(NumTmp) = 1 Or Val(NumTmp) < 2 Then
      strLetras = strLetras & Moneda & " "
    ElseIf Val(Mid(NumTmp, 4, 12)) = 0 Or Val(Mid(NumTmp, 10, 6)) = 0 Then
      strLetras = strLetras & "de " & Plural(Moneda) & " "
    Else
      strLetras = strLetras & Plural(Moneda) & " "
    End If
  End If
  If Fraccion_Letras Then
    intFraccion = Val(Right(NumTmp, 2))
    Select Case intFraccion
      Case 0
        strLetras = strLetras & "con cero " & Plural(Fraccion)
      Case 1
        strLetras = strLetras & "con un " & Fraccion
      Case Else
        strLetras = strLetras & "con " & NumLet(Val(Right(NumTmp, 2))) & Plural(Fraccion)
    End Select
  Else
    strLetras = strLetras & Right(NumTmp, 2)
  End If
  strLetras = strLetras & Texto_Final
  Select Case Estilo
    Case 1
      strLetras = UCase(strLetras)
    Case 2
      strLetras = LCase(strLetras)
    Case 3
      strLetras = strLetras          'StrConv(strLetras, vbProperCase)
  End Select
  Numeros_Letras = strLetras
End Function
Function NumLet(ByVal Numero As Double) As String
  Dim NumTmp As String
  Dim co1 As Integer
  Dim co2 As Integer
  Dim pos As Integer
  Dim dig As Integer
  Dim cen As Integer
  Dim dec As Integer
  Dim uni As Integer
  Dim letra1 As String
  Dim letra2 As String
  Dim letra3 As String
  Dim Leyenda As String
  Dim TFNumero As String
  NumTmp = Format(Numero, "000000000000000")        'Le da un formato fijo
  co1 = 1
  pos = 1
  TFNumero = ""
  'Para extraer tres digitos cada vez
  Do While co1 <= 5
    co2 = 1
    Do While co2 <= 3
      'Extrae un digito cada vez de izquierda a derecha
      dig = Val(Mid(NumTmp, pos, 1))
      Select Case co2
        Case 1: cen = dig
        Case 2: dec = dig
        Case 3: uni = dig
      End Select
      co2 = co2 + 1
      pos = pos + 1
    Loop
    letra3 = Centena(uni, dec, cen)
    letra2 = Decena(uni, dec)
    letra1 = Unidad(uni, dec)
    Select Case co1
      Case 1
        If cen + dec + uni = 1 Then
          Leyenda = "BILLON "
        ElseIf cen + dec + uni > 1 Then
          Leyenda = "BILLONES "
        End If
      Case 2
        If cen + dec + uni >= 1 And Val(Mid(NumTmp, 7, 3)) = 0 Then
          Leyenda = "MIL MILLONES "
        ElseIf cen + dec + uni >= 1 Then
          Leyenda = "MIL "
        End If
      Case 3
        If cen + dec = 0 And uni = 1 Then
          Leyenda = "MILLON "
        ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
          Leyenda = "MILLONES "
        End If
      Case 4
        If cen + dec + uni >= 1 Then
          Leyenda = "MIL "
        End If
      Case 5
        If cen + dec + uni >= 1 Then
          Leyenda = ""
        End If
      End Select
      co1 = co1 + 1
      TFNumero = TFNumero + letra3 + letra2 + letra1 + Leyenda
      Leyenda = ""
      letra1 = ""
      letra2 = ""
      letra3 = ""
  Loop
  NumLet = TFNumero
End Function
unction Centena(ByVal uni As Integer, ByVal dec As Integer, _
                         ByVal cen As Integer) As String
Dim cTexto As String
  Select Case cen
    Case 1
      If dec + uni = 0 Then
        cTexto = "CIEN "
      Else
        cTexto = "CIENTO "
      End If
    Case 2: cTexto = "DOSCIENTOS "
    Case 3: cTexto = "TRESCIENTOS "
    Case 4: cTexto = "CUATROCIENTOS "
    Case 5: cTexto = "QUINIENTOS "
    Case 6: cTexto = "SEISCIENTOS "
    Case 7: cTexto = "SETECIENTOS "
    Case 8: cTexto = "OCHOCIENTOS "
    Case 9: cTexto = "NOVECIENTOS "
    Case Else: cTexto = ""
  End Select
  Centena = cTexto
End Function
Function Decena(ByVal uni As Integer, ByVal dec As Integer) As String
Dim cTexto As String
  Select Case dec
    Case 1:
      Select Case uni
        Case 0: cTexto = "DIEZ "
        Case 1: cTexto = "ONCE "
        Case 2: cTexto = "DOCE "
        Case 3: cTexto = "TRECE "
        Case 4: cTexto = "CATORCE "
        Case 5: cTexto = "QUINCE "
        Case 6 To 9: cTexto = "DIECI"
      End Select
    Case 2:
      If uni = 0 Then
        cTexto = "VEINTE "
      ElseIf uni > 0 Then
        cTexto = "VEINTI"
      End If
    Case 3: cTexto = "TREINTA "
    Case 4: cTexto = "CUARENTA "
    Case 5: cTexto = "CINCUENTA "
    Case 6: cTexto = "SESENTA "
    Case 7: cTexto = "SETENTA "
    Case 8: cTexto = "OCHENTA "
    Case 9: cTexto = "NOVENTA "
    Case Else: cTexto = ""
  End Select
  If uni > 0 And dec > 2 Then cTexto = cTexto + "Y "
  Decena = cTexto
End Function
Function Unidad(ByVal uni As Integer, ByVal dec As Integer) As String
Dim cTexto As String
  If dec <> 1 Then
    Select Case uni
      Case 1: cTexto = "UN "
      Case 2: cTexto = "DOS "
      Case 3: cTexto = "TRES "
      Case 4: cTexto = "CUATRO "
      Case 5: cTexto = "CINCO "
    End Select
  End If
  Select Case uni
    Case 6: cTexto = "SEIS "
    Case 7: cTexto = "SIETE "
    Case 8: cTexto = "OCHO "
    Case 9: cTexto = "NUEVE "
  End Select
  Unidad = cTexto
End Function
'Funcion que convierte al plural el argumento pasado
Private Function Plural(ByVal Palabra As String) As String
Dim pos As Integer
Dim strPal As String
  If Len(Trim(Palabra)) > 0 Then
    pos = InStr(1, "aeiou", Right(Palabra, 1), 1)
    If pos > 0 Then
      strPal = Palabra & "S"
    Else
      strPal = Palabra & "ES"
    End If
  End If
  Plural = strPal
End Function


4. Cerramos y queda guardada la función

5. Ahora para aplicar el valor a una celda solo debemos llamar a la función de la siguiente forma: =NumLet(celda)


6. Posible mente aparezca algún tipo de error, generalmente es por seguridad. Para solucionarlo vamos al menú Herramientas -> Opciones y el la ventana que aparece nos vamos al nivel de seguridad y presionamos en Seguridad de macros.


7. Ahora nos fijamos que esté en el nivel bajo y aceptamos.



Eso sería la forma ideal de poder transformar cualquier numero a letras en una planilla de calculo LibreOffice, con respecto a Ecxel no se si lo pasos son los mismos.

Editor:
Christian Muñoz



lunes, 25 de junio de 2012

Mi escritorio de Junio

Acá una captura de mi pantalla:

Ubuntu 12,04 + Gnome 3



Validar Windows XP Profesional y Home

El típico mensaje molestoso: Podría ser victima de una falsificación de Software. Esta copia de Windows no a superado el proceso de validación de Windows Original.

La solución es bastante sencilla, abren el blog de notas y copian lo siguiente:



taskkill /im wgatray.exe

Del c:\Windows\System32\WgaTray.exe
Del c:\Windows\System32\dllcache\WgaTray.exe
echo Windows Registry Editor Version 5.00 >%temp%\WGANFIX.REG
echo. >>%temp%\WGANFIX.REG
echo [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\WgaLogon] >>%temp%\WGANFIX.REG
regedit /s %temp%\WGANFIX.REG
del %temp%\WGANFIX.REG
del c:windows\system32\wgalogon.dll
del c:windows\system32\dllcache\wgalogon.dll


Lo guardas con el nombre validar.bat (importantísimo que sea .bat). Después lo ejecutas y walá... Windows validado.



martes, 19 de junio de 2012

Licencias Microsoft SQL Server 2012

Luego de tanto Create, drop, alter, truncate, insert, update, delete, etcétera y mas etcéteras que me e pegado con el Lenguaje de definición de datos (DLL Data Definition Language) y por instrucciones explicitas de la malla de mi prestigiosa institución académica de impartir conocimientos con Software Privativo (Un grave error para la educación) me decidí a indagar en cuanto me costaría una licencia de Microsoft SQL Server 2012.

Licenciamiento por número de cores.

Dentro del modelo de licenciamiento por número de cores, cada servidor en el cual se ejecuta el software SQL Server 2012 o cualquiera de sus componentes (por ejemplo Reporting Services o Integration Services) debe tener asignado el número de licencias de core de SQL Server 2012 adecuado. El número de licencias de core necesarias dependerá de si los clientes están licenciando el servidor físico o entornos individuales de Sistema Operativo virtualizado (OSE, Operating System Environments). A diferencia del modelo de licencia de Servidor+CAL, el modelo por número de cores permite el acceso a un número ilimitado de usuarios o dispositivos, que pueden conectarse desde dentro o desde fuera de los límites de la red corporativa. Con el modelo Por Core, los clientes no necesitan adquirir licencias adicionales de acceso de cliente (CALs) para acceder al software de SQL Server.
Un servidor físico con dos procesadores físicos, cada uno con seis cores físicos

Modelo de licenciamiento + CAL

Cuando se licencia el software SQL Server bajo el modelo de Servidor+CAL, los clientes adquieren una licencia de servidor para cada servidor y una licencia de acceso de cliente (CAL) para cada dispositivo (CAL de Dispositivo) o para cada usuario (CAL de Usuario) que accede a SQL Server o a cualquiera de sus componentes. Una CAL no es un programa de software, sino una licencia que permite a usuarios y/o dispositivos acceder al software de SQL Server.

Tipos de licencia utilizados con el modelo de servidor + CAL

Cómo se licencia SQL Server 2012 bajo el modelo de Servidor+CAL
En el modelo de licencia de Servidor+CAL, cada Entorno de Sistema Operativo (OSE) que ejecuta el software de SQL Server 2012 o cualquiera de sus componentes ha de tener asignada una licencia de servidor SQL Server 2012 para el sistema físico que alberga el OSE. Cada licencia de servidor permite al cliente ejecutar un número ilimitado de instancias de SQL Server en dicho OSE, ya sea físico o virtual.
Para poder acceder a un SQL Server licenciado, cada usuario o dispositivo debe tener una CAL de SQL Server que sea de la misma versión o posterior que la versión de software de SQL Server al cual acceden. Por ejemplo, para acceder a un servidor SQL Server 2012, un usuario necesitará una CAL de SQL Server 2012.

Las CALs de SQL Server son para una versión concreta del producto. Cada CAL de SQL Server 2012 permite el acceso a cualquier número de instancias de SQL Server con licencia, tanto SQL Server 2012 como de versiones anteriores, dentro de la organización del cliente, siendo indiferente la plataforma (32 o 64 bits, o IA64), o la edición del producto, incluyendo también a las ediciones Workgroup y SQL Server for Small Business.

Licenciamiento de SQL Server 2012 en entornos virtuales
Cada vez es más frecuente que se despliegue Microsoft SQL Server en entornos virtualizados, lo que permiteejecutar instancias de SQL Server de forma concurrente en Entornos de Sistema Operativo (OSEs) o máquinas virtuales (VMs) independientes.


Licenciamiento de Máquinas Virtuales individuales
Conforme los clientes van agrupando y consolidando sus entornos de TI y renuevan la plataforma de hardware, pueden encontrarse con que sus instancias de SQL Server consumen solo una pequeña parte de la potencia de computación que ofrece el hardware. Cuando se despliegan bases de datos en entornos virtuales que solamente consumen una parte de la capacidad del servidor físico, el licenciamiento de VMs a nivel individual puede suponer un ahorro económico considerable.

Cómo se licencian Máquinas Virtuales individuales con el modelo de Servidor+CAL
Para licenciar VMs individuales con el modelo de Servidor+CAL el cliente solo tiene que comprar una licencia de servidor para cada VM en la cual se ejecuta el software de SQL Server, con independencia del número de procesadores virtuales asignados a dicha VM.

- Licenciar cada maquina virtual con una licencia de servidor.
- Licenciar cada usuario o dispositivo con una CAL.

Requisitos de licencia para tres máquinas virtuales distintas utilizando el modelo de licencia Por Core

Ediciones SQL Server 2012

SQL Server 2012 está disponible en tres ediciones principales para adaptarse a las condiciones concretas yespecíficas de funcionalidad, requisitos y precio de cada organización e individuo. Son las siguientes:
Edición Enterprise: para aplicaciones de misión crítica y data warehouse a gran escala.
Edición Business Intelligence: una nueva edición que ofrece funcionalidades de BI Premium para las empresas en modo autoservicio.
Edición Standard: con capacidades básicas de gestión de datos, informes y análisis. 

Las nuevas ediciones se ofrecen bajo un modelo optimizado, organizado en niveles, que aporta una mayor consistencia entre las distintas ediciones del producto, sus funcionalidades y su modelo de licencia. La Edición Enterprise incluye todas las funcionalidades disponibles en SQL Server 2012. La Edición Business Intelligence incluye todas las capacidades de la Edición Standard y le añade las de Business Intelligence que también aparecen en la Edición Enterprise.
Comparación de las distintas funcionalidades incluidas en cada una de las principales ediciones de SQL Server 2012


Valores de Microsof SQL Server 2012 según microsoft

Como pueden ver es una fortuna lo que hay que invertir en licencias, imaginen tener un servidor de 2 núcleos cada uno con 4 Cores debiésemos gastar casi 54 mil dolares casi 30 millones de pesos chilenos.

En conclusión el estudio que realicé sobre las costosas licencias de Microsof fue a nivel académico, y me pregunto: Mi prestigiosa institución académica poseerá la licencia adecuada para todos sus laboratorios, entonces como las leyes gurbenamentales de educación que existen actualmente pretenden que estudiantes instalen software privativo en sus computadores para especializarse cuando por detrás existen miles de leyes sobre la piratería y derechos de autor? 
Se los dejo a criterio...!

Christian Muñoz
Editor

lunes, 18 de junio de 2012

Hola Mundo

Señores, señoras, caballeros y afines aficionados a la programación y la informática en general, soy editor del blog de SSI-CHILE, un blog que desde hace meses ya no tiene entradas nuevas. El motivo de este blog es acercar a la gente a lo que es Open Source, Linux, Programación en General, Software y Hardware. Sin mas preámbulos vamos al grano.

Christian Muñoz
Editor