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

martes, 8 de noviembre de 2016

Corregir error "eacces" al crear usuario en CouchDB

Cuando intenté crear mi primer usuario administrador en CouchDB tuve un problema:

Al realizar la petición usando curl, para crear un usuario "admin" con password 123 me arrojaba el siguiente error:



Esto ocurre porque el directorio de CouchDB no tiene los permisos bien configurados. Para arreglarlo basta con ejecutar lo siguiente

chown -R couchdb:couchdb /usr/local/{lib,etc}/couchdb /usr/local/var/{lib,log,run}/couchdb

Luego reinicias couch

service couchdb restart

y ahora si podrás crear el nuevo usuario


lunes, 31 de octubre de 2016

Crear pendrive booteable de GParted desde linux (Fedora)

Pasos para crear un pendrive booteable de GParted desde Fedora

Primero descargamos los paquetes de tuxboot
Para x86_64
Para x86

Lo instalas: dnf install ./tuxboot*


Buscas y seleccionas el iso 


y le das aceptar y esperas a que termine

domingo, 25 de septiembre de 2016

Crear banner para canal de Youtube

Intentando cuadrar el banner para un canal de Youtube me encontré con el problema de que la imagen se mostraba incompleta como se muestra en la siguiente imagen


Para solucionarlo te puedes guiar de los "Channel Art Template" que proporciona youtube y te lo puedes descargar por aquí



Colocando tu logo en el área donde indica "TEXT AND LOGO SAFE AREA" lograrás que este se vea en todos los distintos dispositivos.

Yo tengo mi propio template que consiste en un rectángulo rojo donde voy a pegar el logo. Luego que inserto el logo cambio color rojo del cuadrado a alpha y listo.



Lo puedes descargar de aqui


Como resultado final se puede ver que el logo queda bien posicionado


jueves, 8 de septiembre de 2016

Crear Plugins para Android Studio

Existen funcionalidades que Android Studio no cumple, para ello existen los plugins, estos cubren los vacíos y atienden requerimientos específicos.

En este tutorial desarrollaremos un Plugin que permita añadir dependencias de forma automática a nuestros proyectos. Le llamaremos Snorlax (Obvia alusión a la pereza que da añadir requerimientos de forma manual).

Android Studio no es más que IntelliJ IDEA con el plugin para Android más otras configuraciones y modificaciones. Por lo que desarrollar un plugin para Android Studio es, en esencia, casi igual que hacerlo para IntelliJ IDEA.



android studio architecture intellij plugin


Parte 1: Preparando el ambiente
Ambiente

Para poder compilar en el ambiente de google debe usar Linux o Mac OS o Windows. Google recomienda usar la última versión LTS de Ubuntu para trabajar en su ambiente.
Debes tener la última versión de Android Studio instalada.

Debe instalar el JDK (Recomiendo usar el de Oracle). La gente de Jetbrains y Google recomiendan usar el JDK 1.6, pero en este tutorial usaré el 1.8 rev 93 puesto no me ha presentado ningún problema hasta el momento. El SO que usaré es Fedora 23 x86_64 con kernel 4.4.6-300.


Descargando e instalando IDEA Community

Android Studio no ofrece la utilidad de crear plugins para el. Por ello debemos usar IntelliJ IDEA  para crear el plugin. Para este efecto debemos usar la versión Community que es gratuita. Incluso si tiene la versión Ultimate debe descargar e instalar la versión Community. Esto porque la versión Ultimate es de código cerrado y para crear el Plugin necesitaremos leer mucho código fuente del IDE cuando hagamos debug.

Puede descargarla desde aqui: https://www.jetbrains.com/idea/#chooseYourEdition

Yo la he descomprimido en /opt
Luego debes entrar en el directorio bin y ejecutar idea.sh como usuario regular



Descargando los sources de Android Studio


Google creó una herramienta llamada "repo" para facilitar el trabajo con Git en el contexto de Android. Para instalarla debes ejecutar lo siguiente:

# curl https://storage.googleapis.com/git-repo-downloads/repo > /bin/repo
# chmod a+x /bin/repo

Una vez instalada la herramienta repo podemos bajar los sources de Android Studio ejecutando desde la terminal lo siguiente :

$ mkdir studio-master-dev
$ cd studio-master-dev
$ repo init -u https://android.googlesource.com/platform/manifest -b studio-master-dev
$ repo sync

El código anterior bajará la main branch del repositorio de Android Studio (en mi caso la 1.4 rev 3 al 07-09-16).


En total pesa 9.4 GB por lo que este proceso demorará bastante incluso si vives en Seul :)



Parte 2: Creando el proyecto del plugin

Abrimos IDEA y creamos un nuevo proyecto


Va a seleccionar IntelliJ Platmorm Plugin y luego dará click en Next.
Inmediamente saldrá un diálogo indicando lo siguiente:

"Do you want to create a project with no SDK assigned?
An SDK is required for compiling, debugging and running applications,
as well as for the standard SDK classes resolution."

Debe dar click a "Yes"


Luego coloca el nombre al nuevo proyecto y luego en Finish



Cuando el proyecto termine de cargar entra en File -> Project Structure

Luego debes configurar el JDK:


Cuando cargue selecciona el Project language level en 6



Luego debe ir a Platform Settings -> SDKs y darle click al botón y seleccionar "IntelliJ Platform Plugin SDK". 



Luego debe crear el "Platform Plugin SDK". Debe hacer referencia al directorio de instalación de Android Studio (En mi caso está instalado en /opt/android-studio2/android-studio



Va a preguntar que JDK va a usar. Debe seleccionar la versión 1.8


El JDK va a quedar algo así:


Luego entre en la pestaña Sourcepath -> + para agregar el path donde descomprimió los sources de Android Studio. 


Saldrá este diálogo y debes darle click en "OK"


Quedaría algo así:

Presione OK e indicará lo siguiente: (debe darle click a Attach Annotations)




NOTA: ¿Puedo usar las fuentes de IDEA en vez las de Android Studio?

Si, si puedes. Pero solo aplica cuando no quieras hacer algo realmente avanzado que use el plugin de Android Support (como SQLScout). Los sources de Android Studio pesan 9.4 GB y son 160 mil ficheros, por lo que a veces por razones de arranque del proyecto o velocidad de internet imposibilita utilizarlos.
Si tu plugin solo modificará ficheros, crear directorios u otra cosa como esta, basta con los sources de IDEA. En esta entrada explico como descargarlos: 


Parte 3: Creando un Plugin de prueba

En esta parte hacemos que el plugin abra un diálogo cuando se de click en Tools -> Snorlax


Crea un nuevo paquete y llamalo "snorlax". Dentro de el irán nuestras clases



Saldrá un dialogo para crear el nuevo action.
Debes llenar los campos de la siguiente forma:
  • Action ID: Es el identificador único del action. Se recomienda colocar el nombre de sus paquetes contenedores concatenado al nombre de la clase.
  • Class Name: Nombre de la clase del nuevo action
  • Name: Nombre que mostrará en la UI
  • Description: Texto de ayuda que se mostrará en un tooltip o en la statusbar cuando se seleccione la UI del action.
En la siguiente imagen se visualiza mejor cada uno de los campos




La acción anterior crea nuestro action




El fichero plugin.xml

En el fichero plugin.xml ubicado en el directorio META-INF podremos editar la configuración de nuestro plugin

En la sección <actions> podremos añadir nuevos actions. Por ejemplo para añadir una nueva entrada al MenuBar podemos escribir lo siguiente

<group id="com.instant.snorlax.Menu.SnorlaxMenu" text="Snorlax" description="Snorlax actions">  <add-to-group group-id="MainMenu" anchor="last"  />
  <action id="com.instant.snorlax.depmanager.view.actions.LibrariesManagerAction"          class="com.instant.snorlax.depmanager.view.actions.LibrariesManagerAction" text="Project Libraries manager"          description="Add libraries to your project using a GUI">    <add-to-group group-id="ToolsMenu" anchor="first"/>    <keyboard-shortcut keymap="$default" first-keystroke="altGraph L"/>  </action>
</group>

y el resultado será el siguiente:


Parte 4: Corriendo nuestro proyecto

Para correr nuestro proyecto presionamos mayus + F10. Debe abrir una instancia de Android Studio con nuestro plugin instalado.




Lo que sigue es que continues leyendo la documentación oficial de JetBrains


otros links de interés:



sábado, 20 de agosto de 2016

Crear una Libreria para Android (Guia rápida)

Esta guia también pudiera titularse convertir un proyecto de android studio a un proyecto de libreria.

Primero debemos crear un proyecto en Android Studio (File -> New -> New Project )

Primero debemos cambiar el nombre de nuestro módulo del proyecto (por defecto es app). Para ello damos botón secundario sobre el nombre del módulo y luego en Refactor -> Rename


Luego de eso colocamos el nombre, en mi caso "safisapi"





 Abrir el fichero build.gradle del módulo y sustituir
apply plugin: 'com.android.application'
por
apply plugin: 'com.android.library'

eliminar la linea que dice applicationId



Con esto ya tienes tu librería creada.









Para importarla en un proyecto debes seguir los siguientes pasos:

Abrir la opción para agregar un nuevo módulo 


Luego en el botón "+" y luego en Import Gradle Project



Luego seleccionamos la ruta


Por último,ara poder referenciar el código de la librería debe agregar la siguiente línea al fichero build.gradle (Module: app)

compile project(path: ':safisapi')


Sincronizas y compilas y listo.


sábado, 21 de mayo de 2016

Crear pendrive usb booteable de Windows 10 desde Linux (Fedora)

Para poder crear una imagen booteable de W10 desde Linux debemos seguir los siguientes pasos:

1- Formatear el pendrive como fat32 (para poder ""engañar"" a UNetbooting)
2- Abrir UNetbooting y seleccionar la iso y la ruta del pendrive
3- Formatear el pendrive como NTFS
4- Montar el pendrive
4- Abrir la ventana de UNetbooting del paso 2 y darle al boton aceptar



Explicación paso a paso:

Primero abrimos GParted y seleccionamos el dispositivo (en este caso un pendrive de 8 Gb) y lo formateamos como fat32



Luego de formatear debería tener la etiqueta boot (NO CERRAR GParted!)


Luego abrimos UNetbootin , chequeamos la opción DiscoImagen y buscamos la imagen .iso de W10



No presionemos aceptar ni calcelar!

Abrimos GParted y formateamos el pendrive como NTFS



Luego abrimos una terminal como root y escribimos: 

mount /dev/sdX1 /mnt

NOTA: en mi caso el pendrive está mapeado como /dev/sdc debes substituir según el caso

Luego volvemos a abrir y le damos aceptar



Se va a empezar a crear la unidad. Cuando termine el proceso estará lista



La prueba se hizo en Fedora 23 x86_64

sábado, 9 de abril de 2016

Crear un USB Live Booteable de Xiaopan

Primero te bajas Xiaopan. Si la pag oficial va muy lenta aquí tengo un link de mega:

http://wannabe-programmer.blogspot.com/2016/04/descargar-xiaopan-mega-1-link.html

Luego instalas UNetBootin

Desde Fedora lo puedes hacen con

dnf install unetbootin




Seleccionas la unidad USB y le das aceptar.


Esperas a que cargue y LISTO


Recordatorio: 

No crees la unidad USB con el comando dd porque no funciona con esta distro

miércoles, 2 de enero de 2013

Crear estructuras en Okteta

Síntesis rápida
Necesita crear dos ficheros en el directorio /home/NOMBREDEUSUARIO/.kde/share/apps/okteta/structures/NOMBRE_X

- Un NOMBRE_X.osd donde guardará toda la información de la estructura
- Un NOMBRE_X.desktop para la presentación visual (No es tan importante).
(NOMBRE_X Es cualquier nombre que usted le quiera dar)
Ejemplo de como puede ser la estructura del fichero NOMBRE_X.osd: 

<?xml version="1.0" encoding="UTF-8"?>
<data>
     <struct name="NombreDeLaEstructura">
<primitive name="UnChar" type="Char"/>
<primitive name="UnEntero" type="Int32"/>
      </struct>
</data>

La anterior es una estructura que tiene dos campos primitivos: un carácter y un entero, que en C/C++ equivaldría a algo así:

struct NombreDeLaEstructura{
   char UnChar;
   int UnEntero;
}

El fichero NOMBRE_X.desktop puede ser algo así:

[Desktop Entry]
Encoding=UTF-8
Icon=code-context
Type=Service
ServiceTypes=KPluginInfo

Name[es]=Prueba

X-KDE-PluginInfo-Author=Hector Oliveros
X-KDE-PluginInfo-Email=hector.oliveros.leon@gmail.com
X-KDE-PluginInfo-Name=Prueba
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-Website=http://www.plugin.org/
X-KDE-PluginInfo-Category=structure
X-KDE-PluginInfo-License=LGPL
X-KDE-PluginInfo-EnabledByDefault=true


Luego lo guarda y ya puede agregar la estructura 


Ejemplo:

Imaginemos que queremos analizar un fichero binario que contenga, internamente, varias de estas estructuras

struct BCP{ 
  int idControl;
  int pid;  
  pid_t ppid;  
  int gradoDePrioridad;  
  int consumoAcumuladoDeCPU;  
  int rafagasDeEjecucion[20]; 
 
  struct Bloqueo{    
    int idControlProceso;     
    uint tiempoDeBloqueo;    
    int idRecurso;    
  } bloqueos[20];    
  
  int instanteDeLlegada;

  enum TipoDeProceso{
    BATCH  = 0,
    TIEMPO_REAL  = 1,
    INTERACTIVOS = 2
  } tipoDeProceso;  
};


En este caso el fichero .osd sería algo así:


<?xml version="1.0" encoding="UTF-8" ?>
<data>  
  <enumDef name="Tipo_De_Proceso" type="Int32">
      <entry name="BATCH"        value="0" />
      <entry name="TIEMPO_REAL"  value="1" />
      <entry name="INTERACTIVOS" value="2" />      
   </enumDef>        
  <struct name="BCP">
    <primitive name="IDControl" type="Int32" />    
    <primitive name="PID" type="Int32" />    
    <primitive name="PPID" type="Int32" />        
    <primitive name="GradoDePrioridad" type="Int32" />    
    <primitive name="ConsumoAcumuladoDeCpu" type="Int32" />    
    <array name="RafagasDeEjecucion" length="20">
      <primitive type="Int32" />
    </array>    
    <array name="Bloqueos" length="20">
      <struct name="Bloqueo">
 <primitive name="IDControl" type="Int32" />
 <primitive name="TiempodeBloqueo" type="Int32" />
 <primitive name="IDRecurso" type="Int32" />
      </struct> 
    </array>    
    <primitive name="InstanteDeLlegada" type="Int32" />     
    <enum name="TipoDeProceso" enum="Tipo_De_Proceso" type="Int32" />    
  </struct> 
</data>



Aquí puede descargar este ejemplo completo

Solo debe pegarlo en la ruta: 
/home/NOMBREDEUSUARIO/.kde/share/apps/okteta/structures/