domingo, marzo 19, 2017

Eliminar carpetas y archivos con rutas demasiado largas

Long Path Eraser Free es un software gratuito para Windows desarrollado por Enter Srl (www.entersrl.it), que se puede utilizar también para fines comerciales y de libre distribución. No se requiere ninguna instalación, solo un simple archivo ejecutable.



Descarga: Descargar Long Path Eraser Free

domingo, mayo 08, 2016

Buscador de codigo offline para Windows y otros

Conoces Dash en OS X, y buscas alternativas en Windows? Aqui les dejo dos enlaces de dos buscadores de códigos offline útiles para programadores. Se pueden integrar a los editores de códigos más comunes.


Zeal

An offline documentation browser inspired by Dash.
Available for Linux and Windows.
  • Save yourself from distractions, and keep all documentation you need instantly available.
  • Do not depend on your Internet connection or public Wi-Fi.
  • Keep your documentation fresh with the built-in docset update system.
  • Integrate Zeal with IDEA, Sublime Text, ViM, or your favourite IDE via variety of plugins.
  • Enjoy open source and free software! Zeal is available under the GPLv3. Don't forget to contribute!
https://zealdocs.org/


Velocity

A Huge Documentation Library

Over 150+ API documentation sets are available in Velocity covering some of the most popular languages and API frameworks that you use for everyday development. If you've every seen or used Dash on the Mac then you have a good idea of what Velocity is except for Windows. The very same docsets you use in Dash are available with Velocity too.

https://velocity.silverlakesoftware.com/

domingo, mayo 31, 2015

Error Laravel Composer Update: Illuminate\Foundation\Application::getCachedCompilePath()


Para arreglar el siguiente error despues de hacer Composer Update: "Call to undefined method Illuminate\Foundation\Application::getCachedCompilePath()", debes hacer lo siguiente.

Borra el archivo vendor/compiled.php

jueves, abril 16, 2015

Versión micro framework de Laravel - LUMEN


Lumen es un micro-framework para PHP y tiene varios de los componentes de su hermano Laravel.  Lumen es una versión liviana de Laravel y orientado a la creación de APIs y microservicios, aunque se puede usar para crear sitios web o lo que se nos ocurra.

Web Oficial: http://lumen.laravel.com/

lunes, marzo 09, 2015

Form class not found en Laravel 5


Laravel 5


Para solucionar el error:

Agregamos a composer.json:
    "illuminate/html": "5.*"

Ejecutamos en consola:
    composer update

Agregamos al archivo app.php providers array:
    'Illuminate\Html\HtmlServiceProvider',

Agregamos al archivo app.php aliases array:
    'Html'      => 'Illuminate\Html\HtmlFacade',
    'Form'      => 'Illuminate\Html\FormFacade',


Hacemos las pruebas:
    {!! Form::open([]) !!}

    {!! Form::text('nombre', @$name) !!}

    {!! Form::password('password') !!}

    {!! Form::submit('Enviar') !!}

    {!! Form::close() !!}
 
Listo esto es todo!

miércoles, diciembre 24, 2014

Permisos en Phonegap

 Por defecto, PhoneGap viene con todos los permisos Activados. Para evitar que cuando alguien descargue nuestra aplicación vea que necesitamos tantos permisos que la aplicación verdaderamente no necesita, debemos de agregar lo siguiente al config.xml.

<preference name="permissions" value="none" />

Luego agregamos los plugins que necesitamos, compilamos y listo PhoneGap Build agrega los permisos necesarios de manera automática.

Si no, lo podemos agregrar manual:

<feature name="http://api.phonegap.com/1.0/network" />
<feature name="http://api.phonegap.com/1.0/camera" />
<feature name="http://api.phonegap.com/1.0/notification" />
<feature name="http://api.phonegap.com/1.0/geolocation" />
<feature name="http://api.phonegap.com/1.0/media" />
<feature name="http://api.phonegap.com/1.0/contacts" />
<feature name="http://api.phonegap.com/1.0/file" />
<feature name="http://api.phonegap.com/1.0/battery" />
<feature name="http://api.phonegap.com/1.0/device" />

Ayudas:
http://docs.build.phonegap.com/en_US/2.9.0/configuring_features.md.html#Features
http://docs.build.phonegap.com/en_US/configuring_features.md.html#Features




domingo, diciembre 21, 2014

Crear Tablas temporales con MySQL

Es un recurso muy útil en algunas situaciones en las que requerimos procesar información de las tablas y poderlas modificar sin necesidad de alterar la original (claro siempre podemos adoptar otras técnicas), y con la principal característica de que solo están disponibles mientras dure abierta la conexión, ya que se eliminan inmediatamente cuando cerramos la conexión. Las tablas temporales pueden eliminarse de forma explicita ( utilizando el comando DELETE) pero la idea implicita es que no si nos “olvidamos” de hacerlo MySQL lo hace por nosotros.
Se puede crear una tabla temporal de varias maneras:

  • Definiendo de forma explicita sus columnas

CREATE TEMPORARY TABLE nombreTablaTemporal (...definicion de columnas...);

  • Partiendo de una existente (clonación)

CREATE TEMPORARY TABLE nombreTablaTemporal LIKE  tablaOriginal;

  • En “vuelo” a partir de un ResultSet
1
CREATE TEMPORARY TABLE nombreTablaTemporal SELECT ... ;

Las tablas temporales están enlazadas con una conexión especifica, por lo que varios clientes pueden crear tablas temporales con el mismo nombre sin que se interfieran unas con otras. Otra propiedad de estas tablas es que pueden tener el nombre de una tabla permanente, en este caso la tabla temporal “esconde” la permanente mientras la primera exista, facilitando el uso de copias de tablas permanentes sin afectar a la original, si llegásemos a eliminar la tabla temporal de forma explicita (sentencia DROP Table) y esta “esconde” a la permentente, aún conservariamos la permanente.

A tener en cuenta

  • Si quieres reutilizar una tabla temporal que previamente has creado, debes eliminarla explicitamente primero, ya que si intentas crear dicha tabla temporal se generará un error.
  • Debes tener cuidado cuando trabajas con tablas temporales que “esconden” a tablas permanentes, ya que una mala gestión de errores de desconexión acarreará la posibilidad de perder la tabla  temporal y seguir trabajando con la permanente.

Tomado de:  http://www.elclubdelprogramador.com

sábado, noviembre 15, 2014

Android Asset Studio: Generador de Iconos online Android




Bueno aquí les dejo un link para las personas que necesiten adaptar o redimensionar sus iconos para aplicaciones Android a diferentes resoluciones o tamaños de pantalla de manera rápida y online.

Recurso:
http://romannurik.github.io/AndroidAssetStudio/index.html

Sublime Text y Emmet - Abreviando código HTML5




Hoy publico un video de como aprender algo de sublime text, el cual es un excelente editor de código con muchísimas características.



En este video de DevCode-la nos enseña a usar Sublime Text y Emmet de una manera práctica en 20 minutos.

Recursos

Sublime Text: http://www.sublimetext.com/
Emmet: http://emmet.io/




lunes, noviembre 10, 2014

Integrando Brackets and Phone Gap Build - Mac






Este es un video de Adobe por Christian Cantrell Engineering Manager and Evangelist.

El video muestra como cargar una aplicación desde Brackets al PhoneGap Build, asi como integrar un proyecto ya existente. (Video en Ingles)

Brackets una alternativa distinta a Dreamweaver y opensource.

sábado, octubre 25, 2014

Solución Error [Android SDK Home] Titanium Appcelerator

Error: 

[Android SDK Home] No Android SDKs were found under the specified SDK location.

Hola aqui les dejo la solución al error que aparece en Titanium Appcelerator que no reconoce las SDK de Android en Windows.

Lo que hay que hacer es eliminar el fichero "genymotion.js" del directorio "C:\Users\TuUsuario\AppData\Roaming\Titanium\mobilesdk\win32\3.4.0.GA\node_modules\titanium-sdk\lib\emulators".
De esta manera reconoce las las SDK de Android Titanium 3.4.0. 
Otros comentarios proponen borrar el archivo C:/Users/<MyName>/.titanium/config.json pero a mi no me funcionó.
Link del Artículo original:

lunes, mayo 19, 2014

Libreria Google Chart API para Codeigniter gCharts




Aqui les dejo una libreria que amplía la flexibilidad y el poder de gráficos de Google en CodeIgniter usando PHP5.

Enlace de descarga:
  • https://github.com/kevinkhill/Codeigniter-gCharts
Enlace de configuración:
  • http://kevinkhill.github.io/Codeigniter-gCharts/

Libreria o paquete Laravel LavaCharts - Google Chart API para PHP5.3+


Crea gráficas con Google Chart  fácil con Laravel, con ayuda de la librería LavaCharts.

Aquí dejo enlace para descargar y Configurar:
  • https://github.com/kevinkhill/LavaCharts
Algunos ejemplos:
  • http://kevinkhill.github.io/LavaCharts/examples.html

lunes, abril 28, 2014

Mysql - Ignorar - Actualizar - Remplazar Valores Duplicados


Casi siempre al intentar ingresar registros duplicados, tenemos problemas con los diferentes errores que nos arroja el sistema por razones obvias y nos detiene todo el proceso de inserción de datos.
Para prevenir esto podemos utilizar lo siguiente, de acuerdo a cada situación:

IGNORE: Ignora el registro a insertar si ya existe.

INSERT IGNORE
  INTO tabla
    (id, valor, ...)
  VALUES
    (25, 'valor, ...) 

REPLACE: "funciona exactamente como INSERT, excepto que si un valor de la tabla tiene el mismo valor que un nuevo registro para un índice PRIMARY KEY o UNIQUE , el antiguo registro se borra antes de insertar el nuevo.
Tenga en cuenta que a menos que la tabla tenga un índice PRIMARY KEY, o UNIQUE usar un comando REPLACE no tiene sentido. Es equivalente a INSERT, ya que no hay índice para determinar si un nuevo registro duplica otro".  

Ejemplo:
REPLACE INTO table_name(column_name1,column_name2,…)
VALUES(value1,value2,…)

En este caso en la base de datos en la tabla offices este ejemplo insertará el registro como nuevo:

REPLACE INTO offices(officecode,city)
VALUES(8,'San Jose')

Si volvemos a utilizar replace, en la tabla offices como el ejemplo siguiente, San José será reemplazado por San Mateo

REPLACE INTO offices(officecode,city)
VALUES(8,'San Mateo')
 
DUPLICATE KEY UPDATE: Actualiza la fila existente por la nueva a insertar, aunque tenga llaves.

Supongamos que insertamos el siguiente dato:

INSERT INTO
`library_lending`
(`user_name`, `date`, `book_name`)
VALUES ('buddy', '2013-12-05', 'The-Hound-of-the-Baskervilles');

Ahora dos dias despues intentamos:

INSERT INTO
`library_lending`
(`user_name`,`date`,`book_name`)
VALUES
('buddy','2013-12-05','A-Study-in-Scarlet');

Y nos aparece el error:
Error Code: 1062. Duplicate entry 'buddy-2013-12-05' for key 'user_date'

Aqui en esta ocación colocamos en acción el query: 

INSERT INTO
`library_lending`
(`user_name`,`date`,`book_name`)
VALUES
('buddy','2013-12-05','A-Study-in-Scarlet')
ON DUPLICATE KEY UPDATE `book_name` = 'A-Study-in-Scarlet';

Ya solo quedas que crees tu script en el lenguaje de tu preferencia para automatizar los procesos.

Webs Consultadas: 
http://www.mysqltutorial.org/mysql-replace.aspx
http://techdo.me/today-i-learned-insert-and-update-rows-with-mysql-on-duplicate-key-update/
https://dev.mysql.com/doc/refman/5.0/es/replace.html




sábado, abril 19, 2014

Laravel: Error Class 'Monolog\Logger' not found



Para solucionar este error hacemos lo siguiente:
  1. Cambiar en composer.json (directorio del proyecto) la linea"minimum-stability": "dev" por "minimum-stability": "stable".
  2. Ejecutar composer self-update.
  3. Ejecutar nuevamente composer update.
Eso es todo.

miércoles, febrero 05, 2014

Permitir acceso remoto root MySQL (Ubuntu )

Accedemos al archivo my.cnf:

sudo nano /etc/mysql/my.cnf

Comentar la linea donde dice:
#bind­address = 127.0.0.1

O podemos agregar:

bind­address = 0.0.0.0

Luego acceder a Mysql, escribir desde consola:

mysql ­u root ­p

Desde dentro de mySQL ejecutar:

GRANT ALL ON *.* TO root@numero_ip_remota IDENTIFIED BY 'password_del_usuario';

Salir de mysql.

Reiniciar el server mySQL:

sudo /etc/init.d/mysql restart

Recuperar contraseña root Mysql (Ubuntu server)

Para Recuperar la contraseña, debemos seguir los siguientes pasos:

1. Detener el servicio de mysql.
sudo service mysql stop

2. Iniciar mysql en modo seguro

sudo mysqld —skip-grant-tables (no cerrar la ventana)

Iniciar mysql

3. Abrir una ventana nueva y entrar a mysql

mysql

4. Cambiar a la base de datos mysql

use mysql;

5. Actualizar la contraseña del usuario.

UPDATE user SET Password=PASSWORD(‘contraseña’) WHERE user = ‘root’;

6. Reiniciar permisos en la base de datos

FLUSH PRIVILEGES;

7. Reiniciar el servicio y comprobar que funciona

(Fuente: forosdelweb.com)

jueves, enero 23, 2014

Ignorar Valores duplicados en MySql - (php)


Algunas veces necesitamos insertar valores a una base de datos y estos pueden estar duplicados. Al estar duplicados nuestro script puede detenerse y apara evitar esto podemos usar IGNORE para ignorar el insert que no se pudo insertar:

INSERT IGNORE 
  INTO tabla 
    (id, valor, ...) 
  VALUES 
    (25, 'valor, ...) 
Espero sea de utilidad.

miércoles, enero 22, 2014

Tareas automaticas con Crontab (Cron Jobs) por Consola.


Bueno para crear Tareas Automaticas:

Editando el archivo crontab


Primero, para editar crontab, en el terminal escribes:

sudo crontab -e

Como puedes ver, la entrada típica de crontab cumple con el formato:

[m] [h] [dom] [mon] [dow] [command]

Ahora miramos que significa cada parámetro:

Parámetro  Significado                     Rango

m          minute (minuto)                 0-59
h          hour (hora)                     0-23
dom        day of month (día del mes)      1-31
mon        month (mes)                     1-12
dow        day of week (día de la semana)  0-6 (0=Domingo)
command    command (comando)

Si miramos el archivo que se nos abre al ejecutar sudo crontab -e, veremos que nos indica que hay que escribir y en que orden.

Ahora vamos al grano con ejemplos:

Supongamos que queremos ejecutar un script el primero de cada mes, a las 4 de la tarde:

* 16 1 * * /home/usuario/Script/amarok/miscript

Ejecutar un archivo php para correr un envio de correos el primero de cada mes, además de todos los lunes,  a las 4 de la tarde por ejemplo:

* 16 1 * 1 php /home/username/public_html/miphp.php

o Importar una base de datos:

* 16 1 * 1 mysql -u mysql_user -ppassword database_name < backup.sql

Otra manera PHP

* 16 1 * 1 /usr/local/php5/bin/php5 /home/username/public_html/cron.php

SSH

* 16 1 * 1 /bin/sh /home/username/public_html/file.sh

Supongamos que deseas que el script se ejecute cada tres horas el primero de cada mes a partir de las 4 de la tarde:

* "16-23/3" 1 * * php /home/username/public_html/miphp.php

Tambien podemos especificar dos o mas variables separadas por comas (,).

Ejemplos:

Ejecutar un archivo todos los lunes cada media hora

0,30 * * * 1 php /home/username/public_html/miphp.php

O cada 15 minutos sería:

0,15,30,45 * * * * php /home/username/public_html/miphp.php

ó de la manera pasada:

*/15 * * * * php /home/username/public_html/miphp.php

Ahora vemos como pasarle mas de un comando al Cron:

30 21 * * * cd /media/sda7/user/distributions/isos;wget http://mipagina/archivo.zip

Vemos que los parametros estan separados por punto y coma (;).

Para Ver la lista de tareas que hemos programado escribimos:

crontab -l

Para borrar nuestro crontab:

crontab -r

lunes, enero 20, 2014

Configurar Netbeans como IDE de CodeIgniter

Aqui les dejo 3 páginas de cómo configurar Netbeans como IDE de CodeIgniter:

  1. http://www.walterdevos.be/codeigniter-and-netbeans-7-3-autocomplete
  2. http://www.qualityinfosolutions.com/configurar-netbeans-como-ide-de-codeigniter/
  3. https://kenai.com/projects/nbphpci/pages/NBInstall

https://kenai.com/projects/nbphpci/pages/NBInstallero que sea de gran ayuda para aquellos que manejan CodeIgniter.