Mostrando entradas con la etiqueta Tutoriales. Mostrar todas las entradas
Mostrando entradas con la etiqueta Tutoriales. Mostrar todas las entradas

domingo, 11 de marzo de 2012

Como hacer transparente el panel de Ubuntu

Muchas personas se quejan de que la interfaz de Unity no es tan personalizable como lo es Gnome 2.X, pero ya en articulos anteriores les he explicado algunas formas de personalizar Ubuntu completamente,  recuerden que Unity tiene relativamente poco tiempo de ser una interfaz usada por Ubuntu, y cada vez existen más herramientas que nos hacen la vida más fácil, es sólo cuestión de tiempo.


Hoy les explicaré como hacer transparente el panel superior de Ubuntu 11.10 y 12.04, bien comenzemos:


  • Primero necesitas tener instalado el Administrador de Opciones CompizConfig, que lo encuentras en el centro de software Ubuntu.

  • Una vez instalado abrelo y encontraras el icono de Unity Plugin, ahi encontrarás otras y variadas  opciones para configurar Unity como es cambiar el tamaño de los iconos del lanzador, el comportamiento etc.


  • Para hacer el panel transparente ve a la pestaña Experimental, y encontraras la opción "Panel opacity", ahí tienes que cambiar los valores entre 0 y 1 de acuerdo al grado de opacidad que quieres que tenga el panel, 0= transparente y 1= Opaco, en mi caso yo lo tengo en 0.500 y se ve muy bien.

En la Alpha de Ubuntu 12.04 ya se podía ver en las opciones de Apariencia el hacer transparente el panel, y en la beta lo quitaron, esperemos que este dentro de las características para la versión final. Mientras tanto en las opciones de apariencia también podemos encontrar el cambiar el tamaño de los iconos del lanzador y su comportamiento.

miércoles, 22 de febrero de 2012

Nuevas Versiones VLC 2.0 y LibreOffice 3.5

VLC llega a su versión 2.0
VLC ya no necesita presentación, se ha ganado su lugar como una de las mejores alternativas entre los reproductores de video, y ahora ha llegado a su versión 2.0 que trae muchos cambios que no son perceptibles a simple vista, por que están más enfocados al core del reproductor, como es el caso de la aceleración por hardware que aunque ya se contaba en versiones anteriores, ahora es considerada como estable. Si deseas más información acerca de las mejoras, las puedes consultar en la página de VLC.
 
Si deseas instalarlo en Precise Pangolin 12.04 ya está disponible en el centro de software, y si tienes Oneric Ocelot 11.10 necesitas agregar el repositorio:

sudo add-apt-repository ppa:n-muench/vlc 
sudo apt-get update && sudo apt-get install vlc 

También disponible para otras distros, Windows y MacOSX
Visto en: Usemos Linux

LibreOffice libera la versión 3.5
Todas las novedades y nuevas características puedes consultarlas en las notas de la versión. 



Para instalarlo primero tienes que desinstalar cualquier versión anterior que tengas con:
  
sudo apt-get remove libreoffice-core

Después tienes que bajarlo de la página de descargas de LibreOffice, lo descomprimes, buscas los directorios "DEBS" y "Desktop Integration" desde la terminal (con cd /la ruta del archivo) y ejecutas para ambos directorios el comando:

sudo dpkg -i *.deb
 
También disponible para otras distros, Windows y MacOSX 
Visto en: Ubuntu Life

Que disfrutes las nuevas versiones, y recuerda que puedes consultar el calendario de las nuevas versiones y otras cosas en el panel lateral derecho.

lunes, 14 de noviembre de 2011

Configurar Impresoras HP con HPLIP en cualquier Distribución

En Linux la mayoría de las impresoras están disponibles desde el momento en que la conectas. Pero, ¿Que pasa si deseas hacer tareas más específicas como alinear los cartuchos o ver los niveles de tinta?. Tu solución es  HP Linux Imaging Printing.

HPLIP es todo lo que necesitas.

Antes de continuar te voy a dar una pequeña descripción de HP Linux Imaging Printing. HPLIP es una aplicación Open Source por parte de HP, para dar soporte a las impresoras HP en las diferentes distribuciones Linux. Actualmente el Kernel de Linux ya contiene todos los controladores de HPLIP, es por ello que sólo basta con conectarla, esperar a que la reconozca y mandar a imprimir todo lo que deseas.

Ahora bien, si deseas realizar tareas como alinear los cartuchos, ver niveles de tinta, imprimir página de prueba o limpiar los cartuchos, lo único que tienes que hacer es instalar la interfaz gráfica para poder acceder a todas estas características.
Para instalarlo lo encuentras en el Centro de Software Ubuntu como : Herramientas HPLIP
Por Terminal instalas la interfaz gráfica con:
sudo aptitude install hplip-gui 

Si deseas descargar el archivo para una computadora sin conexión a internet lo puedes descargar desde:
Y aquí las instrucciones para instalarlo:
 sudo sh hplip-3.11.10.run

Fuente:

sábado, 5 de noviembre de 2011

Como leer particiones Ext2/Ext3/Ext4 desde Windows

En ocasiones es necesario visualizar archivos que has dejado en tu partición de Linux, y es aquí donde entra en acción Ext2Read, un explorador de archivos que te permite realizar operaciones como visualizar y copiar desde los formatos más populares en el mundo Linux: Ext2, Ext3, Ext4 y LVM2.

Para abrirlo, tienes que ejecutarlo como administrador y listo.



Descarga
Ext2Read

jueves, 13 de octubre de 2011

Guía Rápida: ¿Como crear una USB Booteable?

Primero necesitas:
  • La imagen ISO de la versión que hayas elegido
  • Una USB Limpia (Ya que en el proceso es necesario formatearla)
  • Una computadora con Windows o Ubuntu
Crear una USB booteable desde Ubuntu:
  • En las aplicaciones busca la de "Creador de discos de arranque"
  • Especifica la imagen ISO que vas a ocupar
  • Selecciona la USB a utilizar
  • Click en borrar disco (Recomendado)
  • Click en crear disco de Arranque
  • Tarda un poco en copiar los archivos, después te pedirá tu contraseña para instalar el cargador de inicio y listo
Fácil y Rápido!

Crear una USB booteable desde Windows
  • Bajate la aplicación Unetbootin de aquí
  • Ejecuta el archivo que bajaste
  • Selecciona la Distribución Ubuntu
  • Activa la opción Diskimage e ISO y busca tu ISO.
  • Selecciona la unidad que es tu memoria USB. Ten cuidado en fijarte bien que letra es.
  • Y click en OK. 
Imagen tomada de una USB con Linux Mint

Para bootear reinicia tu computadora con la USB conectada y asegurate de tener habilitado el booteo desde USB. Todas las computadoras son diferentes, así que ponte pendiente de ver con que tecla puedes seleccionar de donde se va a bootear, puede ser F10, F12, F2 etc.

Espero te sirva, y ya sabes si tienes alguna duda puedes preguntar.


Enlaces:
Descarga UNetbootin



Ubuntu 11.10 Enlaces oficiales disponibles, y lo que tienes que saber para instalarlo

Si aún no has instalado Ubuntu 11.10 ¿Qué esperas? ya están aquí los enlaces oficiales para descargarlo.
Descarga: Ubuntu 11.10

Por ahora la mejor opción es descargarlo vía Torrent por que problablemente esten saturados los servidores de Canonical y algunos mirrors.


¿No sabes que versión descargar?
Para los que no sepan, la versión de 64 bits es para conputadoras con procesador de dos núcleos o más y para aprovechar aquellas que tengan más de 3 GB de RAM, los demás descarguen la versión de x86 Intel.

¿Alternate CD o Desktop CD?

El Desktop CD es el que viene con las funciones para el modo Live y puedas probar ubuntu sin necesidad de instalarlo, el alternate CD es para una instalación más rápida ya que no carga el sistema en modo live, y se aprovechan los recursos para la instalación del sistema.

¿Instalar desde CD o USB?

Va en gustos, pero por ejemplo si vas a instalar Ubuntu 11.10 en una netbook obviamente lo tienes que hacer mediante una USB booteable.

¿No sabes como crear una USB booteable? click aquí

lunes, 12 de septiembre de 2011

Mi primera aplicación en Python: Calculadora de Ingeniería Económica

Desde hace tiempo había leído de este maravilloso lenguaje, sus ventajas sobre los demás como su facilidad, que es libre y sobre todas las cosas que es multiplataforma. Sin duda es el ideal para comenzar a programar, he aquí un ejemplo.

Investigando un poco y con ayuda de algunos tutoriales pude hacer mi primera aplicación gráfica en python. Por el momento no es la gran cosa, pero espero tener tiempo y sobre todo paciencia para terminar un proyecto personal, me gustaría hacer algo así como una suite para Ingenieros multiplataf, para los que conozcan WinQSB sería algo paracido, con herramientas para diferentes áreas como Investigación de Operaciones e Ingeniería Económica por mencionar sólo algunos.

Algunos botones aún no funcionan, pero ya resuelve operaciones como en el ejemplo.

El código fue escrito con ayuda de wxGlade y SPE Stani's Python Editor que puedes encontrar en el Centro de Software Ubuntu, el libro Python para todos, un tutorial de Ubuntu Life, y una calculadora básica en Python.
Para resolver un problema de este tipo por ejemplo en Excel o alguna calculadora científica se necesita teclear algo como esto :
VA= 1500*((.14*(1+.14)^5)/(((1+.14)^5)-1) 
Hay muchas más posibilidades de equivocarse, algo que no te puede pasar por ejemplo en un examen final...

Aquí el código:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# generated by wxGlade 0.6.3 on Tue Aug 16 18:36:57 2011


import wx


# begin wxGlade: extracode
# end wxGlade


class Ventana_calculadora(wx.Frame):
    def __init__(self, *args, **kwds):
        # begin wxGlade: Ventana_calculadora.__init__
        kwds["style"] = wx.DEFAULT_FRAME_STYLE
        wx.Frame.__init__(self, *args, **kwds)
        
        # Menu Bar
        self.Calculadora_menubar = wx.MenuBar()
        wxglade_tmp_menu = wx.Menu()
        wxglade_tmp_menu.Append(11, "Borrar", "", wx.ITEM_NORMAL)
        wxglade_tmp_menu.AppendSeparator()
        wxglade_tmp_menu.Append(22, "Salir", "", wx.ITEM_NORMAL)
        self.Calculadora_menubar.Append(wxglade_tmp_menu, "Archivo")
        wxglade_tmp_menu = wx.Menu()
        wxglade_tmp_menu.Append(55, "Acerca de", "", wx.ITEM_NORMAL)
        self.Calculadora_menubar.Append(wxglade_tmp_menu, "Ayuda")
        self.SetMenuBar(self.Calculadora_menubar)
        # Menu Bar end
        self.entrada_datos = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE and wx.ALIGN_RIGHT)
        self.entrada_datos.SetFocus()
        self.lblEjemplo = wx.StaticText(self, -1, "Ejemplo de Entrada: 1200(VP/VF,15%,6)", style=wx.ALIGN_CENTRE)
        self.btnVPVF = wx.Button(self, -1, "VP/VF")
        self.btnVFVP = wx.Button(self, -1, "VF/VP")
        self.btnVAVF = wx.Button(self, -1, "VA/VF")
        self.btnIRetroceso = wx.BitmapButton(self, -1, wx.Bitmap("/dos/Documentos/Programacion en Phyton/Proyecto Personal/btnretroceso2.png", wx.BITMAP_TYPE_ANY), style=wx.BU_AUTODRAW)
        self.btnVPVA = wx.Button(self, -1, "VP/VA")
        self.btnVFVA = wx.Button(self, -1, "VF/VA")
        self.btnVAVP = wx.Button(self, -1, "VA/VP")
        self.btnIgual = wx.Button(self, -1, "=")
        self.btn7 = wx.Button(self, -1, "7")
        self.btn8 = wx.Button(self, -1, "8")
        self.btn9 = wx.Button(self, -1, "9")
        self.btnMas = wx.Button(self, -1, "+")
        self.btn4 = wx.Button(self, -1, "4")
        self.btn5 = wx.Button(self, -1, "5")
        self.btn6 = wx.Button(self, -1, "6")
        self.btnMenos = wx.Button(self, -1, "-")
        self.btn1 = wx.Button(self, -1, "1")
        self.btn2 = wx.Button(self, -1, "2")
        self.btn3 = wx.Button(self, -1, "3")
        self.bx = wx.Button(self, -1, "x")
        self.btnPunto = wx.Button(self, -1, ".")
        self.btn0 = wx.Button(self, -1, "0")
        self.btnComa = wx.Button(self, -1, ",")
        self.btnDivision = wx.Button(self, -1, "/")
        self.btnRaiz = wx.Button(self, -1, "Raiz")
        self.btnPotencia = wx.Button(self, -1, "Potencia")
        self.btnParentesis1 = wx.Button(self, -1, "(")
        self.btnParentesis2 = wx.Button(self, -1, ")")
        self.panel_1 = wx.Panel(self, -1)
        self.btnBorrar = wx.Button(self, -1, "Borrar")
        self.btnSalir = wx.Button(self, -1, "Salir")
        self.static_line_1 = wx.StaticLine(self, -1)
        
        #Se ponen los metodos que activa el evento de cada boton
        self.btnIgual.Bind (wx.EVT_BUTTON,self.Resolver)
        self.btn1.Bind(wx.EVT_BUTTON,self.Uno)
        self.btn2.Bind(wx.EVT_BUTTON,self.Dos)
        self.btn3.Bind(wx.EVT_BUTTON,self.Tres)
        self.btn4.Bind(wx.EVT_BUTTON,self.Cuatro)
        self.btn5.Bind(wx.EVT_BUTTON,self.Cinco)
        self.btn6.Bind(wx.EVT_BUTTON,self.Seis)
        self.btn7.Bind(wx.EVT_BUTTON,self.Siete)
        self.btn8.Bind(wx.EVT_BUTTON,self.Ocho)
        self.btn9.Bind(wx.EVT_BUTTON,self.Nueve)
        self.btn0.Bind(wx.EVT_BUTTON,self.Cero)
        self.btnIRetroceso.Bind(wx.EVT_BUTTON,self.Retroceso)
        
        self.btnVPVF.Bind(wx.EVT_BUTTON,self.VPVF)
        self.btnVPVA.Bind(wx.EVT_BUTTON,self.VPVA)
        self.btnVFVP.Bind(wx.EVT_BUTTON,self.VFVP)
        self.btnVFVA.Bind(wx.EVT_BUTTON,self.VFVA)
        self.btnVAVP.Bind(wx.EVT_BUTTON,self.VAVP)
        self.btnVAVF.Bind(wx.EVT_BUTTON,self.VAVF)
        self.btnParentesis1.Bind(wx.EVT_BUTTON,self.Parentesis1)
        self.btnParentesis2.Bind(wx.EVT_BUTTON,self.Parentesis2)
        self.btnPunto.Bind(wx.EVT_BUTTON,self.Punto)
        self.btnComa.Bind(wx.EVT_BUTTON,self.Coma)


        
        self.__set_properties()
        self.__do_layout()
        # end wxGlade
        
    def Resolver(self, evento=None):
        strCadenaEntrada=self.entrada_datos.GetValue()
        print strCadenaEntrada
        lstValores = strCadenaEntrada.split(",")
        numValor = lstValores[0].split("(")
        lstValores[0]=float(numValor[0])
        numNPeriodos=lstValores[2].split(")")
        lstValores.append(int(numNPeriodos[0]))
        print lstValores[3]
        lstValores[2]= float(lstValores[1])
        lstValores[1]=numValor[1]
        # lstValores contiene los valores por separado de la cadena de entrada
        # van en orden, ejemplo lstValores[2] es la tasa i, y lstValores[3]Periodos
        if lstValores[1]== "VF/VP" or lstValores[1]=="F/P":
            resultado=float(lstValores[0]*((1+lstValores[2])**lstValores[3]))
            self.entrada_datos.SetValue(str(resultado))
        elif lstValores[1]== "VF/VA" or lstValores[1]=="F/A":
            resultado=float(lstValores[0]*((((1+lstValores[2])**lstValores[3])-1)/lstValores[2]))
            self.entrada_datos.SetValue(str(resultado))
        elif lstValores[1]== "VP/VF" or lstValores[1]=="P/F":
            resultado=float(lstValores[0]*(1/((1+lstValores[2])**lstValores[3])))
            self.entrada_datos.SetValue(str(resultado))
        elif lstValores[1]== "VA/VF" or lstValores[1]=="A/F":
            resultado=float(lstValores[0]*(lstValores[2]/(((1+lstValores[2])**lstValores[3])-1)))
            self.entrada_datos.SetValue(str(resultado))
        
            
    def Uno (self,evento=None):
        self.entrada_datos.AppendText('1')
    def Dos (self,evento=None):
        self.entrada_datos.AppendText('2')
    def Tres (self,evento=None):
        self.entrada_datos.AppendText('3')    
    def Cuatro (self,evento=None):
        self.entrada_datos.AppendText('4')
    def Cinco (self,evento=None):
        self.entrada_datos.AppendText('5')  
    def Seis (self,evento=None):
        self.entrada_datos.AppendText('6')
    def Siete (self,evento=None):
        self.entrada_datos.AppendText('7')
    def Ocho (self,evento=None):
        self.entrada_datos.AppendText('8')
    def Nueve (self,evento=None):
        self.entrada_datos.AppendText('9')
    def Cero (self,evento=None):
        self.entrada_datos.AppendText('0')
    def VFVP (self,evento=None):
        self.entrada_datos.AppendText("VF/VP")
    def VAVP (self,evento=None):
        self.entrada_datos.AppendText("VA/VP")
    def VPVF (self,evento=None):
        self.entrada_datos.AppendText("VP/VF")
    def VPVA (self,evento=None):
        self.entrada_datos.AppendText("VP/VA")
    def VAVF (self,evento=None):
        self.entrada_datos.AppendText("VA/VF")
    def VFVA (self,evento=None):
        self.entrada_datos.AppendText("VF/VA")
    def Parentesis1 (self,evento=None):
        self.entrada_datos.AppendText("(")
    def Parentesis2 (self,evento=None):
        self.entrada_datos.AppendText(")")   
    def Punto (self,evento=None):
        self.entrada_datos.AppendText(".")
    def Coma (self,evento=None):
        self.entrada_datos.AppendText(",")
    def Retroceso (self,evento=None):
        strCadenaEntrada=self.entrada_datos.GetValue()
        self.entrada_datos.SetValue(strCadenaEntrada[:-1])
        
    def __set_properties(self):
        # begin wxGlade: Ventana_calculadora.__set_properties
        self.SetTitle("Calculadora")
        self.entrada_datos.SetFont(wx.Font(20,wx.DEFAULT, wx.NORMAL, wx.LIGHT, 0, "Purisa"))
        self.btnVPVF.SetBackgroundColour(wx.Colour(252, 255, 223))
        self.btnVFVP.SetBackgroundColour(wx.Colour(252, 255, 223))
        self.btnVAVF.SetBackgroundColour(wx.Colour(254, 255, 244))
        self.btnIRetroceso.SetBackgroundColour(wx.Colour(255, 233, 237))
        self.btnIRetroceso.SetSize(self.btnIRetroceso.GetBestSize())
        self.btnVPVA.SetBackgroundColour(wx.Colour(252, 255, 223))
        self.btnVFVA.SetBackgroundColour(wx.Colour(252, 255, 223))
        self.btnVAVP.SetBackgroundColour(wx.Colour(252, 255, 223))
        self.btnIgual.SetBackgroundColour(wx.Colour(185, 255, 196))
        self.btnMas.SetBackgroundColour(wx.Colour(228, 235, 255))
        self.btnMenos.SetBackgroundColour(wx.Colour(228, 235, 255))
        self.bx.SetBackgroundColour(wx.Colour(228, 235, 255))
        self.btnPunto.SetBackgroundColour(wx.Colour(228, 235, 255))
        self.btnComa.SetBackgroundColour(wx.Colour(228, 235, 255))
        self.btnDivision.SetBackgroundColour(wx.Colour(228, 235, 255))
        self.btnRaiz.SetBackgroundColour(wx.Colour(228, 235, 255))
        self.btnPotencia.SetBackgroundColour(wx.Colour(228, 235, 255))
        self.btnParentesis1.SetBackgroundColour(wx.Colour(228, 235, 255))
        self.btnParentesis2.SetBackgroundColour(wx.Colour(228, 235, 255))
        # end wxGlade


    def __do_layout(self):
        # begin wxGlade: Ventana_calculadora.__do_layout
        sizer_1 = wx.BoxSizer(wx.VERTICAL)
        grid_sizer_2 = wx.GridSizer(2, 4, 0, 0)
        grid_sizer_1 = wx.GridSizer(8, 4, 0, 0)
        sizer_1.Add(self.entrada_datos, 0, wx.ALL|wx.EXPAND, 10)
        sizer_1.Add(self.lblEjemplo, 0, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 0)
        grid_sizer_1.Add(self.btnVPVF, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnVFVP, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnVAVF, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnIRetroceso, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnVPVA, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnVFVA, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnVAVP, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnIgual, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn7, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn8, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn9, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnMas, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn4, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn5, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn6, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnMenos, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn1, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn2, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn3, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.bx, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnPunto, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btn0, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnComa, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnDivision, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnRaiz, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnPotencia, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnParentesis1, 0, wx.EXPAND, 0)
        grid_sizer_1.Add(self.btnParentesis2, 0, wx.EXPAND, 0)
        sizer_1.Add(grid_sizer_1, 6, wx.ALL|wx.EXPAND, 0)
        grid_sizer_2.Add(self.panel_1, 1, wx.EXPAND, 0)
        grid_sizer_2.Add(self.btnBorrar, 0, wx.EXPAND, 0)
        grid_sizer_2.Add(self.btnSalir, 0, wx.EXPAND, 0)
        sizer_1.Add(grid_sizer_2, 0, wx.EXPAND, 2)
        sizer_1.Add(self.static_line_1, 0, wx.EXPAND, 0)
        self.SetSizer(sizer_1)
        sizer_1.Fit(self)
        self.Layout()
        # end wxGlade
        
# end of class Ventana_calculadora
    
if __name__ == "__main__":
    app = wx.PySimpleApp(0)
    wx.InitAllImageHandlers()
    Calculadora = Ventana_calculadora(None, -1, "")
    app.SetTopWindow(Calculadora)
    Calculadora.Show()
    app.MainLoop()




Cabe mencionar que el código aún no es perfecto, pero si deseas hacer algún comentario, modificación, o tienes duda de alguna parte del código, puedes hacerlo en los comentarios, o por medio de un correo electrónico a ubuntu.latino@gmail.com

miércoles, 7 de septiembre de 2011

Como cambiar las dependencias de un paquete .deb

Después del Centro de Software Ubuntu, los paquetes .deb son la forma más fácil de instalar programas, pero en ocasiones los paquetes .deb no se pueden instalar por que no se satisfacen las dependencias, esto es por que algunas veces los instaladores .deb hacen referencia a paquetes obsoletos, más recientes, etc.

Esto fue precisamente lo que me ocurrió cuando quise instalar Boxee desde un paquete .deb que baje de la página oficial de Boxee, en este caso la dependencia que no se satisfacía era con el paquete libxmlrpc-c3, que en Natty Narwhal cambió por libxmlrpc-c3-0.

Voy a utilizar el ejemplo del paquete deb de Boxee para explicar como cambiar las dependencias, para ello abre una terminal y ocupa los siguientes comandos:

  1. dpkg-deb -x Boxee.deb tmpdir
  2. dpkg-deb --control Boxee.deb tmpdir/DEBIAN
  3. nano tmpdir/DEBIAN/control
  4. Se te abren en la terminal las dependencias, sólo tienes que modificar las dependencias que necesites, en mi caso modifique libxmlrpc-c3 por libxmlrpc-c3-0. Guardas con Ctrl+O y cierras con Ctrl +X.
  5. dpkg -b tmpdir Boxee_modificado.deb
Se te abren en la terminal las dependencias, sólo tienes que modificar las dependencias que necesites, en mi caso modifique libxmlrpc-c3 por libxmlrpc-c3-0. 


Nota: Ten cuidado con lo que modificas, y que puedes desestabilizar tu sistema, lo más recomendable es que si vas a cambiar una dependencia, sea por un paquete más reciente para evitar errores.

Existe un script que si haces muchos cambios en las dependencias te puede servir, pero si sólo lo vas a hacer una vez, quizá no sea muy práctico, pero les dejo el enlace por si desean probar ésta segunda opción.

Enlace: Script para cambiar dependencias de paquetes .deb


Si te sirvió regalame un +1, RT, o un Me gusta aquí abajo :)

domingo, 5 de junio de 2011

Como resolver problemas con Conky

Conky es un bonito gadget para el escritorio, pero he leído que hay muchos a quienes se les han presentado errores como que no funciona el wifi, o conky se queda encima de las ventanas etc. Para solucionar estos problemas basta con realizar un script en bash que retarda la carga de conky para que no afecte la carga de los demás procesos.


1.- Abre una terminal y escribe:

$ nano .conky_start.sh

*Se crea un archivo con nombre .conky_start.sh

2.-Escribe dentro:

#!/bin/bash
sleep 15
conky 

Si no te funciona puedes probar con valores mayores a 15 por ejemplo sleep 30 para darle mayor tiempo de retardo.
Guardas con Ctrl+O.

3.- Le das permisos de ejecución con:

$ sudo chmod a+x /home/nombre_usuario/.conky_start.sh

O también puedes darle clic secundario al archivo, Propiedades y seleccionas la casilla de Permitir ejecutar como un archivo de programa

4.- Ahora ve a Aplicaciones al inicio, y donde dice comando escribe:
/home/tu_usuario/conky_start.sh


Escritorio con Conky Lua

Con esto se te deben de resolver los problemas antes mencionados.

sábado, 5 de febrero de 2011

Comando de Consola: Apagar, Reiniciar, Programar apagado

Cuando tu PC se pone un poco rebelde y no se quiere apagar por los métodos tradicionales, te sugiero unos comandos de consola que que te pueden ayudar, evitando así apagar tu ordenador a la fuerza bruta manteniendo presionado el botón de encendido por unos 5 segundos.


APAGAR

Conozco dos formas de apagar por medio de la terminal.

Shutdown, te permite apagar tu ordenador de forma segura, avisando a los usuarios loggueados que se apagará el sistema. La palabra now, indica que apague el sistema ahora, es decir que no espera algún tiempo.

sudo shutdown now
Poweroff, simplemente apaga el ordenador, 

sudo poweroff

FORZAR APAGADO
Solo tienes que anteponer -f para forzar un apagado, -f también es utilizado como opción en otros comandos para indicar el force de una indicación. Lo que hace es que no manda a llamar el apagado seguro (safe mode).

sudo -f poweroff 

PROGRAMAR APAGADO
El siguiente comando te sirve para decirle, cuantos minutos tiene que esperar, antes de apagar la máquina:

sudo shutdown +m

O si lo prefieres fijar una hora de apagado en formato de 24 horas:

sudo shutdown hh:mm

Pero en Mi Ubuntu Latino ya te había platicado de una pequeña aplicación gráfica para programar el apagado.

REINICIAR

Quieres reiniciar tu sistema:
sudo reboot

Si deseas más información acerca de estos comandos, y otras de sus opciones, escribe info o help, seguido del comando. Ejemplo:
info shutdown

viernes, 29 de octubre de 2010

Como dejar Mozilla Firefox al 100% en unos clics


Sinceramente me parece que Firefox que viene por defecto en Ubuntu 10.10 es muy feo, pero con unos clics podemos dejarlo así:


1.- Dejar al estilo Chrome, con esto podrás dejar la parte superior del navegador limpia por así decirlo. Ve al menú Ver – Barras de herramientas – y sólo dejar activada la opción de barra de navegación.

2.- Ocultar el menú, está es una opción que se puede hacer también desde el menú Ver – Barras de herramientas en la versión para Windows, pero en Ubuntu aún no se puede, así que les recomiendo instalen Hiden Menubar, solo abre el enlace y clic en Añadir a Firefox, reiniciamos el navegador y listo.

3.- Instalar el tema: Ve a la página oficial de Mozilla Firefox http://www.getpersonas.com/es/ solo basta con pasar el puntero por el tema que más te guste, verás que se aplica una vista previa, y si te gusta da clic en usar.

Con estos simples pasos ya tienes un Firefox personalizado, espero les guste, y recomienden algún tema o agregado para este magnífico navegador.


Agregados recomendados:
Video Download Helper: Que te sirve para descargar videos y música de diferentes páginas incluido Youtube.

miércoles, 5 de mayo de 2010

Descarga Fondos de Iron Man 2 como Diapositivas

En las recientes versiones de Ubuntu ha traído consigo fondos del espacio que van cambiando como si se tratara de diapositivas . He creado un pack siguiendo un tutorial que va cambiando cada 60 segundos los 6 fondos de Iron Man 2 que están disponibles en la web oficial de la película.


Para descargar el pack haz clic aquí

1.-Como blogger no de deja subir archivos .zip, le cambie la extensión a .jpg, así que vuelve a cambiarlo a .zip, y descomprime la carpeta en /home/Tu usuario/Imágenes/

2.-Abre el archivo IronMan2.xml con el editor de Texto y cambia los directorios por el tuyo, ejemplo:
/home/panchito/Imágenes/IronMan2/im2_wp1_1920.jpg
Como al descomprimirse se queda en la carpeta Imágenes, sólo tienes que cambiar la parte de "panchito" por tu usuario en cada uno de los argumentos que se encuentran dentro de los etiquetas file, from y to.

3.-Ya sólo selecciona el archivo IronMan2.xml y desde el cambiador de fondos de escritorio y es todo.

Puedes personalizar otros aspectos como cambiar el tiempo que tarda cada imagen, o el tiempo de la transición, así como agregar más fondos.

Espero les guste y  suerte a todos.

sábado, 6 de marzo de 2010

Como programar un Brazo Robot

Aquí les dejo un video de lo que he estado aprendiendo estás últimas dos semanas en la universidad donde estudio, el Instituto Tecnológico de Pachuca:




Es un brazo modelo Catalyst 5 con 5 grados de libertad, y soporta un peso máximo de 1kg.

Yo imaginaba que la programación era muy compleja, y la verdad se me hizo muy parecida a programar con lenguaje C
Les dejo un ejemplo de un programa:

main ;; Igual que en C pero sin parentesis (Se ocupa ;; para los comentarios)
teachable ploc [10]a ;; Aquí se declara un arreglo llamado a con 10 elementos
teachable ploc [10]b

int x ;; Se declara una variable tipo entero llamada "x"

loop ;; Iniciamos un ciclo indefinido (Que haga un ciclo infinito)
for x=20 to 100 step 20 ;; Gracias a este for, la velocidad va incrementando de 20% en 20%
speed (x) ;; Definimos una velocidad x
move (a[1]) ;; Ordenamos al brazo que se dirija al punto a[1]
finish();; Antes de hacer el siguiente movimiento, primero debe terminar el anterior
grip_open() ;; Instrucción para abrir mordazas
grip_close() ;; Instrucción para cerrar mordazas
move(b[0]) ;; Mueve el brazo al punto b[0]
finish()
move b[1]
finish()
move(b[2])
finish()
grip_open()
end for ;; Cierre del ciclo for
end loop ;; Cierre del ciclo Loop
end main ;; Cierre del programa


Para la programación ocupamos un programa llamado RobComm3, y los puntos a[1...10] y b [1...10] se deben de grabar o dar las coordenadas después de cargado el programa en el robot para que los ubique.

El Brazo se puede comunicar con otros aparatos por medio de señales, en este caso está conectado en un circuito donde primero está un Robot Almacén, una banda transportadora, y una Fresadora que se ve en el fondo del video.

Ya terminamos la capacitación, tanto de las máquinas de control númerico, y mientras siga haciendo las prácticas con estos juguetitos voy a seguir subiendo videos y algunos ejemplos de programas para que los conozcan.