<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>NayosX Ness</title><description></description><managingEditor>noreply@blogger.com (NayosX)</managingEditor><pubDate>Wed, 18 Dec 2024 21:29:44 -0600</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">178</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://nayosx.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:category text="Education"><itunes:category text="Language Courses"/></itunes:category><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>How to get the path and name from git log</title><link>http://nayosx.blogspot.com/2022/12/how-to-get-path-and-name-from-git-log.html</link><category>console</category><category>develop</category><category>development</category><category>git</category><author>noreply@blogger.com (NayosX)</author><pubDate>Sat, 10 Dec 2022 10:36:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-4808151505406195529</guid><description>Hi people. The last day, I got a simple task, get all path and name from git log.

In this case It's only necessary a console and &lt;a class="_link" href="https://github.com/nayosx/Upload-Multipart-CSV-Android-Java" target="_blank"&gt;project whit some commits&lt;/a&gt;.&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The simplest command is there:&lt;pre&gt;git log --raw&lt;/pre&gt;&lt;div&gt;This command get the name of author, date, commit and file affected. Is simple but is not for me, because I need the path and name of the file affected. Not all these data&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2s8tJjcQZAF3mmrkZ5KU3yOTi3vrMlrzsX2UbhEM9vMpInApcd8DxBsuxUTyNtQzXiv4MSpUopU3sEPxOaDkPCKIgvX_dfBlQIdPcNF2ZSsS8YDGQi6M9PqEd89AO6WVSVOAS82ERL4FpR6HpwSwr3PYD_s_wx3y87StvZ4JgREArYHBPATEqi1NM/s913/gitlog_raw.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="560" data-original-width="913" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2s8tJjcQZAF3mmrkZ5KU3yOTi3vrMlrzsX2UbhEM9vMpInApcd8DxBsuxUTyNtQzXiv4MSpUopU3sEPxOaDkPCKIgvX_dfBlQIdPcNF2ZSsS8YDGQi6M9PqEd89AO6WVSVOAS82ERL4FpR6HpwSwr3PYD_s_wx3y87StvZ4JgREArYHBPATEqi1NM/s320/gitlog_raw.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The second command is here:&lt;/div&gt;&lt;pre&gt;git log --pretty=format: --name-only&lt;/pre&gt;
  The command getting only the path and name; is just I needed. Not showing extra data, but it's separate by newline (later is necessary to delete for create a report for my boos)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWz0FEaKoZKQJJ0TpE4FQyS3IzkgYP7O6d21JImqh56BiRYe8O1uuzGRu71gAuzl5XbVJIhWWoCp4zeTtA1GY8QGiKqGdqIGe-AcVzqKs1aVJYt96oHPAMSUPZJ2IQx31cS4O14w9vmEkQK57onSlynPxRx7lkl0e7TTzSrBSYWrpYx282rSzjPQt1/s756/git_pretty_one.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="544" data-original-width="756" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWz0FEaKoZKQJJ0TpE4FQyS3IzkgYP7O6d21JImqh56BiRYe8O1uuzGRu71gAuzl5XbVJIhWWoCp4zeTtA1GY8QGiKqGdqIGe-AcVzqKs1aVJYt96oHPAMSUPZJ2IQx31cS4O14w9vmEkQK57onSlynPxRx7lkl0e7TTzSrBSYWrpYx282rSzjPQt1/s320/git_pretty_one.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you need show the author and date, only add some parameters, for example&lt;/div&gt;&lt;br /&gt;
&lt;pre&gt;git log --pretty=format:"%an, %ar%n" --name-only
&lt;/pre&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS8s8PaGlJjAUTrIvSpLv04TdH8rOYBBuZrx8T7CqUEOCTmiQiaeOuRUe9b_CUiA9ZUDB9S4vH-phWuKGPohcGXv5kze58TLSqItnulEtSz_alBDOES-iLlaH3JBqmsg0r-f-gMOgOzXNncV-_sgJqF1tx6S0_QJI7bcB8GGgJ9wOaSdc9rOPBKLUJ/s792/git_pretty_one_newline.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="527" data-original-width="792" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS8s8PaGlJjAUTrIvSpLv04TdH8rOYBBuZrx8T7CqUEOCTmiQiaeOuRUe9b_CUiA9ZUDB9S4vH-phWuKGPohcGXv5kze58TLSqItnulEtSz_alBDOES-iLlaH3JBqmsg0r-f-gMOgOzXNncV-_sgJqF1tx6S0_QJI7bcB8GGgJ9wOaSdc9rOPBKLUJ/s320/git_pretty_one_newline.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Another way for get only paths and names is there, the problem with this command is getting all files. You think, my project contains 10k files affected, the time to get all data is slow. This command is not insert newline for separate the paths and names.&lt;/div&gt;&lt;div&gt;&lt;pre&gt;git log --pretty=format: --name-only --diff-filter=A | sort -u
&lt;/pre&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAku9XIKlEAf-LSkzvakGOOWENUcLgugpC_2nGZvZ_3EznO1w89xB26L7SrqjboCMLmJn5VxfgIsHqgs7J2zRsMoveO5x99Mh5FMkPihp1ooVqvwLT8H-oBXaQOv1R6bGFFYAd1KO90BQIxFNmBnfEoyKZNWZA529TUMsR9x0S7401ztlDRwpWnmSs/s929/git_all_paths.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="543" data-original-width="929" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAku9XIKlEAf-LSkzvakGOOWENUcLgugpC_2nGZvZ_3EznO1w89xB26L7SrqjboCMLmJn5VxfgIsHqgs7J2zRsMoveO5x99Mh5FMkPihp1ooVqvwLT8H-oBXaQOv1R6bGFFYAd1KO90BQIxFNmBnfEoyKZNWZA529TUMsR9x0S7401ztlDRwpWnmSs/s320/git_all_paths.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;

In my case I used the second command and added some parameters because I was filter by date, then I will write a report on excel, to remove duplicates files affected&lt;pre&gt;git log --pretty=format: --name-only --since "nov 22 2022" --until "dec 9 2022"
&lt;/pre&gt;

This command is very helpful&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2s8tJjcQZAF3mmrkZ5KU3yOTi3vrMlrzsX2UbhEM9vMpInApcd8DxBsuxUTyNtQzXiv4MSpUopU3sEPxOaDkPCKIgvX_dfBlQIdPcNF2ZSsS8YDGQi6M9PqEd89AO6WVSVOAS82ERL4FpR6HpwSwr3PYD_s_wx3y87StvZ4JgREArYHBPATEqi1NM/s72-c/gitlog_raw.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Limpieza preventiva RTX 3070 Aorus master</title><link>http://nayosx.blogspot.com/2022/12/limpieza-preventiva-rtx-3070-aorus.html</link><author>noreply@blogger.com (NayosX)</author><pubDate>Sun, 4 Dec 2022 15:52:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-6406588338327578654</guid><description>He subido un nuevo video en donde doy limpieza a mi vieja grafica

&lt;iframe width="480" height="270" src="https://youtube.com/embed/hp-cbI5xJeA" frameborder="0"&gt;&lt;/iframe&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://img.youtube.com/vi/hp-cbI5xJeA/default.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Install nvm on macbook m1 for work with node the best way</title><link>http://nayosx.blogspot.com/2021/12/install-nvm-on-macbook-m1-for-work-with.html</link><category>mac</category><category>node</category><category>nodejs</category><author>noreply@blogger.com (NayosX)</author><pubDate>Fri, 24 Dec 2021 00:37:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-7819165732456916241</guid><description>&lt;p&gt;&amp;nbsp;On this week I buyed a new macbook pro m1 (thank you BTC for the partner), is a great laptop but is necesary to configure all environment for work with node and is necesary the next:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Check the type of the bash&lt;/li&gt;&lt;li&gt;Download the file to configure the nvm&lt;/li&gt;&lt;li&gt;Check or create file to set environment vars in user folder&lt;/li&gt;&lt;li&gt;Check is nvm configure to actual user&lt;/li&gt;&lt;li&gt;Download the node&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEg8wxiioVbB8waFFme6m_RQEmV5q1s702giQD00h09JDEPjDzuZscW3HbFskDAAr1WvpK019K02GoBcAA6_JXIAjKfLPl3N7HDb9u-ZE_EvH93J6sprCVFlq5t2DdQiEUPfrVbYZ1MkApRo8tu5HwV9KMzV6XXKL13hojP5w8v9MpHYbODXl7TwfEbn=s4032" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="3024" data-original-width="4032" height="300" src="https://blogger.googleusercontent.com/img/a/AVvXsEg8wxiioVbB8waFFme6m_RQEmV5q1s702giQD00h09JDEPjDzuZscW3HbFskDAAr1WvpK019K02GoBcAA6_JXIAjKfLPl3N7HDb9u-ZE_EvH93J6sprCVFlq5t2DdQiEUPfrVbYZ1MkApRo8tu5HwV9KMzV6XXKL13hojP5w8v9MpHYbODXl7TwfEbn=w400-h300" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style="text-align: left;"&gt;&lt;b&gt;Check the type of the bash&lt;/b&gt;&lt;/h3&gt;&lt;p&gt;The macbook pro m1 is configure to zsh bash (under macOS Monterrey) , but is probable to show another bash, for check this is necesary execute the next command line in a terminal&lt;/p&gt;&lt;pre&gt;echo $SHELL&lt;/pre&gt;&lt;p&gt;If the exist is&lt;/p&gt;&lt;pre&gt;/bin/zsh&lt;/pre&gt;&lt;p&gt;This tutorial is for you, is you not show the text, dont worry, in the official documentation is the step by step to configure all environment for your bash and &lt;a href="https://github.com/nvm-sh/nvm#install--update-script" target="_blank"&gt;is here&lt;/a&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 style="text-align: left;"&gt;Download the file to configure the nvm&lt;/h3&gt;&lt;div&gt;For download the file config, open a terminal and execute the next command&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash&lt;/pre&gt;&lt;h3 style="text-align: left;"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 style="text-align: left;"&gt;Check or create file to set enviroment vars&amp;nbsp; in user folder&lt;/h3&gt;&lt;div&gt;In this step we open or create a file with nano (this file is only work with zsh bash)&lt;/div&gt;&lt;div&gt;&lt;pre class="p1"&gt;nano ~/.zshrc&lt;/pre&gt;&lt;p class="p1"&gt;and paste the next code (if the file containt a others vars, write this code to the end of file)&lt;/p&gt;
&lt;pre class="p1"&gt;export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] &amp;amp;&amp;amp; printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] &amp;amp;&amp;amp; \. "$NVM_DIR/nvm.sh" # This loads nvm&lt;/pre&gt;
  
&lt;div style="text-align: left;" class="alert warning"&gt;Reboot your Mac or logout&lt;/div&gt;&lt;h3 style="text-align: left;"&gt;Check is nvm configure to actual user&lt;/h3&gt;&lt;p class="p1"&gt;Now in a terminal execute:&lt;/p&gt;&lt;pre class="p1"&gt;nvm -v&lt;/pre&gt;&lt;p class="p1"&gt;If you show the version of nvm, congratulations&lt;/p&gt;&lt;p class="p1"&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style="text-align: left;"&gt;Download the node&lt;/h3&gt;&lt;p class="p1"&gt;With nvm you have many options to downloads diferents version of node, if you simple execute in a terminal&lt;/p&gt;&lt;pre class="p1"&gt;nvm install node&lt;/pre&gt;&lt;p class="p1"&gt;The nvm install the last version of node, for install a specific version show the documentation, but is very easy to install. You can set the default version of node to work in your macbook, but for default, nvm set the laster version&lt;/p&gt;&lt;p class="p1"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="p1"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="p1"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEg8wxiioVbB8waFFme6m_RQEmV5q1s702giQD00h09JDEPjDzuZscW3HbFskDAAr1WvpK019K02GoBcAA6_JXIAjKfLPl3N7HDb9u-ZE_EvH93J6sprCVFlq5t2DdQiEUPfrVbYZ1MkApRo8tu5HwV9KMzV6XXKL13hojP5w8v9MpHYbODXl7TwfEbn=s72-w400-h300-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to mirror Android device from USB</title><link>http://nayosx.blogspot.com/2021/10/how-to-mirror-android-device-from-usb.html</link><category>adb</category><category>android</category><category>androidapps</category><category>androidits</category><author>noreply@blogger.com (NayosX)</author><pubDate>Fri, 8 Oct 2021 09:33:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-2963862312143771915</guid><description>&lt;p&gt;Are you thinking of using your Android device on your laptop or PC via USB to work?&lt;/p&gt;&lt;p&gt;Are you thinking of copying and pasting the content easily to your device to perform more agile tests?&lt;/p&gt;&lt;p&gt;Well, this is your post!!!&lt;/p&gt;&lt;p&gt;&lt;a href="https://github.com/Genymobile/scrcpy" target="_blank"&gt;&lt;b&gt;Scrcpy&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://raw.githubusercontent.com/Genymobile/scrcpy/master/assets/screenshot-debian-600.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="600" data-original-width="427" height="400" src="https://raw.githubusercontent.com/Genymobile/scrcpy/master/assets/screenshot-debian-600.jpg" width="285" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This is a open source project, is amazing for mirror your android device via USB (work via WiFi but I not use this function). Actuality is in version 1.18&lt;/p&gt;&lt;p&gt;&lt;b&gt;Requirement&lt;/b&gt;:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Android device requires at least API 21 (Android 5.0)&lt;/li&gt;&lt;li&gt;SO: Windows, Linux or MacOS&lt;/li&gt;&lt;li&gt;Android mode developer activate&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;In my test is working when I activate the "transfer file" but in other devices is work in mode USB "transfer photos" and "none". You have to test in which way your device work. The copy and paste is work to the phone for files and text. But only working from device to PC/Laptop with text plain.&lt;/p&gt;&lt;p&gt;Is perfect to streaming the screen of your device, check the next video:&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to upload File from form data POST in Android with Retrofit 2</title><link>http://nayosx.blogspot.com/2021/08/how-to-upload-file-from-form-data-post.html</link><category>android</category><category>androidapps</category><category>node</category><category>nodejs</category><author>noreply@blogger.com (NayosX)</author><pubDate>Fri, 20 Aug 2021 10:19:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-6155506466028113793</guid><description>&lt;p&gt;&amp;nbsp;The last day I explain &lt;a href="https://nayosx.blogspot.com/2021/08/how-to-upload-csv-with-node-and.html" target="_blank"&gt;how to upload a simple CSV file using node&lt;/a&gt;. And now I teach how to upload from android device.&lt;/p&gt;
&lt;div class="alert info"&gt;Get source code here:&amp;nbsp; &lt;a class="_link" href="https://github.com/nayosx/Upload-Multipart-CSV-Android-Java" target="_blank"&gt;GitHub&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaz5h276G4p3AXcoqFWTNAmiP4QU5sBa-ho9QP-y2c4nvclZ71Z53ZqixGGOIlpSy8GjbRhKny9slvz6EbskFp_3xZ7J6jdW19KmSUdi5njRsng7guh6zinmb03gtdjp2qOzWFA1C1Hz0/s768/Screenshot+2021-08-20+093946.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="432" data-original-width="768" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaz5h276G4p3AXcoqFWTNAmiP4QU5sBa-ho9QP-y2c4nvclZ71Z53ZqixGGOIlpSy8GjbRhKny9slvz6EbskFp_3xZ7J6jdW19KmSUdi5njRsng7guh6zinmb03gtdjp2qOzWFA1C1Hz0/w640-h360/Screenshot+2021-08-20+093946.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;This article is write in java... later I'll add the method for kotlin. The logic is not changed, only the format code.&lt;/p&gt;&lt;p&gt;1) Is necessary add the dependencies in gradle: module&lt;/p&gt;&lt;pre&gt;implementation 'com.google.code.gson:gson:2.8.6'
// RETROFIT //
implementation 'com.squareup.retrofit2:retrofit:2.6.2'
implementation 'com.squareup.retrofit2:converter-gson:2.6.2'
implementation 'com.squareup.retrofit2:converter-scalars:2.5.0'
&lt;/pre&gt;&lt;p&gt;2) Add permissions in AndroidManifest.xml and modified the application for &lt;a href="https://parzibyte.me/blog/2019/08/05/solucion-android-java-cleartext-communication-network-security-policy/" target="_blank"&gt;work with&amp;nbsp;network security policy&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&amp;lt;uses-permission android:name="android.permission.INTERNET" /&amp;gt;
&amp;lt;uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /&amp;gt;
&amp;lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&amp;gt;


in applitacion add this for work with HTTP
android:usesCleartextTraffic="true"
&lt;/pre&gt;
&lt;p&gt;3) Add all code necessary for request any permission for write or read the memory card (you can use the traditional system for request permission &lt;a href="https://developer.android.com/training/permissions/requesting" target="_blank"&gt;or use contract)&lt;/a&gt;. I worked directly in MainActivity and added a button to test my app&lt;/p&gt;
&lt;pre&gt;private final int PERMISSION = 100;
private final String[] permissions = {
	Manifest.permission.WRITE_EXTERNAL_STORAGE,
	Manifest.permission.READ_EXTERNAL_STORAGE
};
private Button btn;
private ProgressBar progressBar;

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	btn = (Button) findViewById(R.id.button);
	progressBar = (ProgressBar) findViewById(R.id.progressBar);
	progressBar.setVisibility(View.GONE);
	verificPermission();
}

public void send(View v) {
	btn.setEnabled(false);
	progressBar.setVisibility(View.VISIBLE);
	initialize(); // in this point, this method is not exist
}

private void verificPermission() {
	if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED) {
		showPermissionRequest();
	}
}

private void showPermissionRequest() {
	AlertDialog.Builder builder = new AlertDialog.Builder(this);
	builder.setTitle("Information");
	builder.setMessage("Next, a dialog box will be shown where you will be asked to authorize the media handling permissions, please accept them so that the application can continue working properly ...");
	builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
		@Override
		public void onClick(DialogInterface dialog, int which) {
			getPermissions();
		}
	});
	builder.setCancelable(false);
	builder.show();
}

private void getPermissions() {
	ActivityCompat.requestPermissions(this, permissions, PERMISSION);
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
	super.onRequestPermissionsResult(requestCode, permissions, grantResults);
	if(requestCode == PERMISSION) {
		showMessage("permissions granted");
	}
}

private void showMessage(String message) {
	message = (message.isEmpty()) ? "There is no message to show" : message;
	Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
&lt;/pre&gt;
&lt;p&gt;4) Create a class singlenton for retrofit Instance&lt;/p&gt;
&lt;pre&gt;public class RetrofitInstance {
    private static Retrofit retrofit;
    private static final String BASE_URL = "http://192.168.0.160:3000"; // this IP is changed for your IP

    public static Retrofit getInstance() {
        final OkHttpClient okHttpClient = new OkHttpClient.Builder()
                .connectTimeout(1, TimeUnit.MINUTES)
                .writeTimeout(1,TimeUnit.MINUTES)
                .readTimeout(1,TimeUnit.MINUTES)
                .build();
        if (retrofit==null) {
            retrofit = new Retrofit.Builder()
                .client(okHttpClient)
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        }
        return retrofit;
    }
}
&lt;/pre&gt;
&lt;p&gt;5) Create a interface for upload the file from form data (multipart) POST&lt;/p&gt;
&lt;pre&gt;public interface RetrofitServices {

    @Multipart
    @POST("upload/")
    Call&amp;lt;CSVUploadResponse&amp;gt; uploadAttachment(@Part MultipartBody.Part filePart);

}
&lt;/pre&gt;
&lt;p&gt;6) Create a simple class for read the response message (change this class is not using my project node for upload file&lt;/p&gt;
&lt;pre&gt;public class CSVUploadResponse {

    @SerializedName("message")
    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
&lt;/pre&gt;
&lt;p&gt;7) Implements these method in MainActivity, I created a ExportCSVFaker for generate a simple file for upload (this code is in GitHub)&lt;/p&gt;
&lt;pre&gt;private void initialize() {
	ExportCSVFaker exportCSVFaker = new ExportCSVFaker(this);
	if(exportCSVFaker.isCSVExist()) {
		sendCSVToServer(exportCSVFaker.getCsv());
	} else {
		showMessage("The file was not generated");
	}
}

private void sendCSVToServer(File csv) {
	MultipartBody.Part filePart = MultipartBody.Part.createFormData(
			"uploadFile",
			csv.getName(),
			RequestBody.create(MediaType.parse("text/plain" + "; charset=utf-8"), csv)
	);
	RetrofitServices retroServices = RetrofitInstance.getInstance().create(RetrofitServices.class);
	Call&amp;lt;CSVUploadResponse&amp;gt; responseCall = retroServices.uploadAttachment(filePart);

	responseCall.enqueue(new Callback&amp;lt;CSVUploadResponse&amp;gt;() {
		@Override
		public void onResponse(Call&amp;lt;CSVUploadResponse&amp;gt; call, Response&amp;lt;CSVUploadResponse&amp;gt; response) {
			showMessage(response.message());
			setVisibilityElements();
		}

		@Override
		public void onFailure(Call&amp;lt;CSVUploadResponse&amp;gt; call, Throwable t) {
			t.printStackTrace();
			showMessage("The upload is failed");
			setVisibilityElements();
		}
	});
}

private void setVisibilityElements() {
	btn.setEnabled(true);
	progressBar.setVisibility(View.GONE);
}
&lt;/pre&gt;
&lt;p&gt;The magic is in the method "sendCSVToServer" and the parameter of type File for send to server using the class "MultipartBody.Part" for add to "responseCall"&lt;/p&gt;&lt;p&gt;The result is the next&lt;/p&gt;
&lt;div style="text-align: center;"&gt;&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/iCHmwV_TyEo" title="YouTube video player" width="560"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;That's folks &lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaz5h276G4p3AXcoqFWTNAmiP4QU5sBa-ho9QP-y2c4nvclZ71Z53ZqixGGOIlpSy8GjbRhKny9slvz6EbskFp_3xZ7J6jdW19KmSUdi5njRsng7guh6zinmb03gtdjp2qOzWFA1C1Hz0/s72-w640-h360-c/Screenshot+2021-08-20+093946.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to upload File with node and form data POST</title><link>http://nayosx.blogspot.com/2021/08/how-to-upload-csv-with-node-and.html</link><category>javascript</category><category>node</category><category>nodejs</category><author>noreply@blogger.com (NayosX)</author><pubDate>Wed, 18 Aug 2021 10:43:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-7087615936355191688</guid><description>&lt;p&gt;&amp;nbsp;Hello, this is a simple project for testing my app in Android, but is very useful for work in other app. &lt;b&gt;In this case is using for upload a CSV file, &lt;/b&gt;but is very simple change the type of file&lt;/p&gt;&lt;div class="alert info"&gt;This code is available on &lt;a class="_link" href="https://github.com/nayosx/SimpleCSVUpload" target="_blank"&gt;GitHub&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Requirement:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Node JS &amp;gt;= 12&amp;nbsp;&lt;/li&gt;&lt;li&gt;Nodemon&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;First the node app is created:&lt;/div&gt;&lt;pre&gt;npm init (Change the main to app.js)&lt;/pre&gt;&lt;div&gt;Second, install dependencie:&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;npm i ---save express
npm i ---save multer
npm i ---save cors
&lt;/pre&gt;&lt;div&gt;The magic or helper is &lt;a href="https://www.npmjs.com/package/multer" target="_blank"&gt;multer&lt;/a&gt;, with this library we can upload different files. Express is a simple web server and the cors is to avoid problems.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Initialize all const for work&lt;/div&gt;&lt;pre&gt;const multer = require('multer');
const express = require('express');
const cors = require('cors');
const path = require('path');
const fs = require('fs');
const app = express();
const port = 3000;&lt;/pre&gt;&lt;div&gt;Now is necessary to create a folder for upload all CSV, in this case is called "uploads"&lt;/div&gt;&lt;pre&gt;let uploads = __dirname + '/uploads';
if (!fs.existsSync(uploads)) {
    console.log('trying for create the directory "upload"');
    fs.mkdirSync(uploads);
}&lt;/pre&gt;&lt;div&gt;The nextstep is create the function for storage, filter and initialize the multer:&lt;/div&gt;&lt;pre&gt;global.__basedir = __dirname;

const storage = multer.diskStorage({
    destination: (req, file, callback) =&amp;gt; {
        callback(null, __basedir + '/uploads/');
    },
    filename: (req, file, callback) =&amp;gt; {
        callback(null, file.fieldname + "-" + Date.now() + "-" + file.originalname);
    }
});

const filterCSV = (req, file, callback) =&amp;gt; {
    let ext = path.extname(file.originalname);
    if(ext === '.csv') {
        callback(null, true);
    } else {
        callback('File format is not a CSV', false);
    }
}

const upload = multer({
    storage: storage,
    fileFilter: filterCSV
});
&lt;/pre&gt;&lt;div&gt;For work with other type of file is necesary change the value on:&lt;/div&gt;&lt;pre&gt;const filterCSV = (req, file, callback) =&amp;gt; {
    let ext = path.extname(file.originalname);
    if(ext === '.csv') {
        callback(null, true);
    } else {
        callback('File format is not a CSV', false);
    }
}&lt;/pre&gt;&lt;div&gt;for example, is necessary to evaluate ext == '.pdf' or another extension for work with your code. Rename the function to make it look better.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then we all declare all function for work with express:&lt;/div&gt;&lt;pre&gt;app.use(cors())

app.post('/upload/', upload.single('uploadFile'), (req, res) =&amp;gt; {
    try{
        if(req.file == undefined) {
            res.status(400).send({
                message: "Please upload a CSV file: "
            });
        } else {
            res.status(200).send({
                message: "File Upload: "
            });
        }
    } catch(error) {
        res.status(500).send({
            message: "Could not upload the file: " + req.file.originalname
        });
    }
});

app.get('/upload/', (req, res) =&amp;gt; {
    res.send("Hello from Node") ;
});


app.listen(port, '0.0.0.0', () =&amp;gt; {
    console.log(`App listening port ${port}`);
});
&lt;/pre&gt;&lt;div&gt;On the line in the method POST is declare an argument for the callback "upload.single('uploadFile')", the "uploadFile" is the name of the input file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Testing:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For run the app&lt;/div&gt;&lt;div&gt;nodemon dev or node app (for this case, if the app is crashed, is necessary back to run the app)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijSd-RxuS1Pf6YUdoaxLnHtFlzrFYGi-cdxf7SGXeh3Rt28vZrTIO4eCis9t2GJjnFIMnaWPFeO8eAjlJk0n3UmhKDlVsLYKfKUCeSWuePDQnnKqMxG1tsImfRS_NCFGiYwQ_kp84zFYk/s1358/Screenshot+2021-08-18+104016.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="765" data-original-width="1358" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijSd-RxuS1Pf6YUdoaxLnHtFlzrFYGi-cdxf7SGXeh3Rt28vZrTIO4eCis9t2GJjnFIMnaWPFeO8eAjlJk0n3UmhKDlVsLYKfKUCeSWuePDQnnKqMxG1tsImfRS_NCFGiYwQ_kp84zFYk/w640-h360/Screenshot+2021-08-18+104016.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;That's all folks&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijSd-RxuS1Pf6YUdoaxLnHtFlzrFYGi-cdxf7SGXeh3Rt28vZrTIO4eCis9t2GJjnFIMnaWPFeO8eAjlJk0n3UmhKDlVsLYKfKUCeSWuePDQnnKqMxG1tsImfRS_NCFGiYwQ_kp84zFYk/s72-w640-h360-c/Screenshot+2021-08-18+104016.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Como encriptar  AES con Node JS</title><link>http://nayosx.blogspot.com/2021/08/como-encriptar-aes-con-node-js.html</link><category>javascript</category><category>node</category><category>nodejs</category><author>noreply@blogger.com (NayosX)</author><pubDate>Sun, 8 Aug 2021 17:55:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-4175217471386125624</guid><description>&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBvCCF3qUMQbsRL8_4hl7zWAHEZN6NYFngLMtq1lcDzkezGvcDM_warJzVfMOVyw0kW0Jc1pccS6X2-3X-TH6DRs1zlTBZJeA64AFA5YwP5k-KOWXtXEcbcoaxDTFyS5TCz4pGMbqkRlE/s4032/PXL_20210808_234931274.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="2268" data-original-width="4032" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBvCCF3qUMQbsRL8_4hl7zWAHEZN6NYFngLMtq1lcDzkezGvcDM_warJzVfMOVyw0kW0Jc1pccS6X2-3X-TH6DRs1zlTBZJeA64AFA5YwP5k-KOWXtXEcbcoaxDTFyS5TCz4pGMbqkRlE/w640-h360/PXL_20210808_234931274.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;
&lt;div class="alert info"&gt;Puedes descargar el proyecto desde &lt;a class="_link" href="https://github.com/nayosx/Simple-Cypher-Node" target="_blank"&gt;este enlace&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;El otro día surgió una necesidad para encriptar contenido bajo el algoritmo AES y es la que te vengo a mostrar a continuación en la cual use Node para solventar mi necesidad. Pude haber usando cualquier lenguaje que me viniera en gana pero no quería instalar nada mas.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Dependencias:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;NodeJS &amp;gt;= 12&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.npmjs.com/package/crypto-js" target="_blank"&gt;Crypto-JS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Aplicaciones recomendadas:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Git bash&lt;/li&gt;&lt;li&gt;Visual Studio Code&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;Lo primero que necesitamos es tener una clave única (KEY) y &lt;a href="https://es.wikipedia.org/wiki/Vector_de_inicializaci%C3%B3n" target="_blank"&gt;un vector de inicialización&lt;/a&gt; (IV). Este ultimo no es necesario pero agrega un extra de seguridad a nuestro contenido. Para lo cual usaremos el bash de git para utilizar openssl&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;KEY&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;openssl rand -base64 24&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;IV&lt;/div&gt;&lt;pre&gt;openssl rand -base64 12&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;Ahora que ya tenemos estas 2 cadenas únicas. Podemos proceder a escribir nuestro código.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;npm init -y&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Luego hacemos una modificación en el package.json para que admita módulos&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;"type": "module",&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Instalamos la dependencia de Crypto-JS&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;npm i crypto-js --save&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Ahora importamos los objetos necesarios para interactuar en nuestro archivo por defecto (en mi caso he creado a app.js)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;import pkg from 'crypto-js';
const { enc, AES, mode: _mode, pad } = pkg;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Creamos las constantes de KEY e IV y les asignamos los valores que nos dio el bash de Git&lt;/p&gt;&lt;pre&gt;const KEY = enc.Utf8.parse('cTY/OJukmaVM4w4UxiUI4cTYq2QGDB8c');
const IV = enc.Utf8.parse('gqeSw9OvjqA3kmGP');&lt;/pre&gt;Ahora crearemos las 2 funciones necesarias para trabajar con el encrypt y el decrypt de los datos&lt;div&gt;&lt;pre&gt;function encrypt(data) {
    const encrypted = AES.encrypt(data ? data : '', KEY, {
        iv: IV,
        mode: _mode.CBC,
        padding: pad.Pkcs7
    });
    return encrypted.toString();
}

function decrypt(data) {
    const encrypted = AES.decrypt(data ? data : '', KEY, {
            iv: IV,
            mode: _mode.CBC,
            padding: pad.Pkcs7
        });
    return encrypted.toString(enc.Utf8);
}&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Y listo ya esta la base de nuestro aplicativo, ahora ya podemos utilizarlas dentro de un log para probar&lt;/div&gt;&lt;div&gt;&lt;pre&gt;console.log(encrypt("Hola Mundo"));&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Y similar para el decrypt del contenido&lt;/div&gt;&lt;div&gt;&lt;pre&gt;console.log(decrypt("11qK1NkKJpOR0DG6BOjIvA=="));&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Espero te haya gustado el ejemplo, su utilidad puede ser tan compleja como te imagines, desde el simple texto mostrado en este ejemplo o como la creación de archivos encriptados&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBvCCF3qUMQbsRL8_4hl7zWAHEZN6NYFngLMtq1lcDzkezGvcDM_warJzVfMOVyw0kW0Jc1pccS6X2-3X-TH6DRs1zlTBZJeA64AFA5YwP5k-KOWXtXEcbcoaxDTFyS5TCz4pGMbqkRlE/s72-w640-h360-c/PXL_20210808_234931274.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Como desactivar el spellchek de los comentarios de android studio</title><link>http://nayosx.blogspot.com/2021/06/como-desactivar-el-spellchek-de-los.html</link><category>android</category><category>androidits</category><author>noreply@blogger.com (NayosX)</author><pubDate>Sun, 13 Jun 2021 18:29:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-2452243153853775177</guid><description>&lt;p&gt;El spellcheck es una herramienta útil de android studio, pero es algo que quita un poco de rendimiento en tu equipo y mas si es de baja gama. A continuación te muestro como desactivarlo y eso hara que tú ordenador vaya un poco mas deprisa al momento de abrir un nuevo proyecto.&lt;/p&gt;&lt;p&gt;Simplemente ve a file/settings y en el buscador escribe "spell" en donde te aparecerá una pantalla como la siguiente, selecciona Inspections/Proofreading/Typo, quita el cheque y dale click en apply, luego en aceptar y listo. Ahora tu equipo ira un poco mas deprisa al momento de cargar&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiviF_2_Ap9QUInWzafuhZmMAQl15OeoBaw5GGYj7LDJvFNA4vPHy3hYTaCmSMChYmvJ4BSUvCJBjnSAtkBOmgyvOBrQthRKFD56T2gTcSwW0St6lH3mAjXxdyZ3QivhLagDj_r0U1mu6M/s841/Screenshot+2021-06-13+182359.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="563" data-original-width="841" height="429" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiviF_2_Ap9QUInWzafuhZmMAQl15OeoBaw5GGYj7LDJvFNA4vPHy3hYTaCmSMChYmvJ4BSUvCJBjnSAtkBOmgyvOBrQthRKFD56T2gTcSwW0St6lH3mAjXxdyZ3QivhLagDj_r0U1mu6M/w640-h429/Screenshot+2021-06-13+182359.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Si crees que lo necesitas para trabajar, el revertirlo es hacer lo mismo pero ahora asegurándote que tienes seleccionado el Typo. Espero esta entrada te haya servido&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiviF_2_Ap9QUInWzafuhZmMAQl15OeoBaw5GGYj7LDJvFNA4vPHy3hYTaCmSMChYmvJ4BSUvCJBjnSAtkBOmgyvOBrQthRKFD56T2gTcSwW0St6lH3mAjXxdyZ3QivhLagDj_r0U1mu6M/s72-w640-h429-c/Screenshot+2021-06-13+182359.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Subir imagenes base64 con node</title><link>http://nayosx.blogspot.com/2021/03/subir-imagenes-base64-con-node.html</link><category>base64</category><category>javascript</category><category>nodejs</category><category>upload</category><author>noreply@blogger.com (NayosX)</author><pubDate>Sun, 7 Mar 2021 15:19:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-8672366437604093498</guid><description>El otro día de la nada surgió la necesidad de un service que leyera un objeto JSON, en donde uno de los campos era una imagen en base64, la idea era super simple y el resultado es el siguiente&lt;div&gt;&amp;nbsp;


&lt;div class="alert info"&gt;Puedes descargar el proyecto desde &lt;a class="_link" href="https://github.com/nayosx/ImageUploadOnNode" target="_blank"&gt;este enlace&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD7369lWqhrVmrkR9XOUppykOgTfsLhvVKTCXMXvoHKswRQRR3QFPrWqsyxuiKwR73YWFx4O9OolN7LaKZ30nW4IgqF8QkTFv-aV2Wke_rrQvLSW-N2XmqUnyhsfxApqmw_IRrQ13ed2k/s1280/imagetobase64.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="720" data-original-width="1280" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD7369lWqhrVmrkR9XOUppykOgTfsLhvVKTCXMXvoHKswRQRR3QFPrWqsyxuiKwR73YWFx4O9OolN7LaKZ30nW4IgqF8QkTFv-aV2Wke_rrQvLSW-N2XmqUnyhsfxApqmw_IRrQ13ed2k/w400-h225/imagetobase64.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;


Primero creamos un proyecto simple con el comando 

&lt;pre&gt;npm init
&lt;/pre&gt;

Finalizamos el wizard que nos da este comando y comenzamos a installar la paqueteria necesaria

&lt;pre&gt;npm install cors --save
npm install express --save
npm install -g nodemon
&lt;/pre&gt;
&lt;div class="alert warning"&gt;Se advierte que nodemon se instalara de manera global&lt;/div&gt;
Nuestro package.json tiene que verse como el siguiente: 
&lt;pre&gt;{
  "name": "fakernode",
  "version": "1.0.0",
  "description": "simple projecto for testing",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" &amp;amp;&amp;amp; exit 1",
    "dev": "nodemon app.js",
    "start": "node app.js"
  },
  "keywords": [
    "node",
    "image",
    "http"
  ],
  "author": "Adonai",
  "license": "ISC",
  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.17.1"
  },
  "devDependencies": {
    "nodemon": "^2.0.7"
  }
}
&lt;/pre&gt;

Ahora creamos una carpeta para almacenar las imagenes, la cual simplemente nombraremos &lt;i&gt;"images"&lt;/i&gt;, luego de ello creamos un archivo &lt;i&gt;"app.js"&lt;/i&gt; en donde crearemos todo nuestro código
Antes de continuar, verifica que tienes una estructura como la siguiente:
&lt;pre&gt;images/
node_modules/
app.js
package-lock.json
package.json&lt;/pre&gt;

Ahora agregamos el siguiente código: 

&lt;pre&gt;const express = require('express');
const app = express();
const port = 3000;
const cors = require('cors');
const fs = require("fs");

app.use(cors())
app.use(express.json({limit: '100mb'}));
app.use(express.urlencoded({ limit: '100mb', extended: true }));

const uploadImage = async (req, res, next) =&amp;gt; {
    
    let response = {"error": true, "message": "No Data match", "image": ""}
    
    try {
        let path = './images/'+Date.now()+'.jpg'
        let imageData = req.body.imageBase64;
        let base64Data = imageData.replace(/^data:([A-Za-z-+/]+);base64,/, '');
        fs.writeFileSync(path, base64Data,  {encoding: 'base64'});
        response = {"error": false, "message": "Save image", "image": path}
        res.send(response);
    } catch (e) {
        next(e);
        res.send(response) ;
    }  
}

app.post('/', uploadImage);

app.get('/', (req, res) =&amp;gt; {
    res.send("Hello from Node") ;
});

// Listen server on http://{your ip}:3000
app.listen(port, '0.0.0.0', () =&amp;gt; {
    console.log(`App listening port ${port}`);
});
&lt;/pre&gt;

Ahora para ejecutar usamos el siguiente comando
&lt;pre&gt;npm dev run
&lt;/pre&gt;

Esto nos permitirá enviar request a http://{your ip}:3000 aunque también trabajaría perfectamente en http://localhost:3000&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;Necesitas enviar un body de tipo JSON como el siguiente: 
&lt;pre&gt;{
	"imageBase64": "your base64 here"
}
&lt;/pre&gt;

Espero te haya servido este pequeño short code
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD7369lWqhrVmrkR9XOUppykOgTfsLhvVKTCXMXvoHKswRQRR3QFPrWqsyxuiKwR73YWFx4O9OolN7LaKZ30nW4IgqF8QkTFv-aV2Wke_rrQvLSW-N2XmqUnyhsfxApqmw_IRrQ13ed2k/s72-w400-h225-c/imagetobase64.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Cambiar Bing por Google en el navegador Edge</title><link>http://nayosx.blogspot.com/2020/07/cambiar-bing-por-google-en-el-buscador.html</link><author>noreply@blogger.com (NayosX)</author><pubDate>Wed, 29 Jul 2020 00:34:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-8804912200122643174</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
En un par de segundos te explico como cambiar el buscador por defecto del Edge&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/BrnOSBYmPg8" width="480"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://img.youtube.com/vi/BrnOSBYmPg8/default.jpg" width="72"/></item><item><title>Instalar Android Studio en Ubuntu</title><link>http://nayosx.blogspot.com/2019/05/instalar-android-studio-en-ubuntu.html</link><category>adb</category><category>android</category><category>Linux</category><category>Ubuntu</category><author>noreply@blogger.com (NayosX)</author><pubDate>Wed, 1 May 2019 13:41:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-5996638745274890955</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Se que hay muchas entradas respecto a este tema, pero este día me toco que hacer una instalación en limpio en mi nuevo equipo y quería aprovechar para crear un pequeño tutorial en todo caso.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgghG3fw6zZ3Esj7m-nrDlUsvg8fMjSuDqfjoKfKIW0QQEv3IQg4sB18sjwL9BMTHQSMxAewOUjlFjudCSpW9wm97UsHaEJlHD97tQX1VfKSWMzNUMks4B8cSUoRL0BhHBhhfQ6OD9ps9g/s1600/Como+instalar+Android+Studio+en+Ubuntu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="700" data-original-width="868" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgghG3fw6zZ3Esj7m-nrDlUsvg8fMjSuDqfjoKfKIW0QQEv3IQg4sB18sjwL9BMTHQSMxAewOUjlFjudCSpW9wm97UsHaEJlHD97tQX1VfKSWMzNUMks4B8cSUoRL0BhHBhhfQ6OD9ps9g/s320/Como+instalar+Android+Studio+en+Ubuntu.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Los requisitos de Android Studio son los siguientes:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;3Gb de RAM&lt;/li&gt;
&lt;li&gt;Procesador de 64bits&lt;/li&gt;
&lt;li&gt;Gnome o KDE&lt;/li&gt;
&lt;li&gt;JDK 1.8 min&lt;/li&gt;
&lt;li style="box-sizing: inherit; margin: 8px 0px; padding: 0px;"&gt;GNU C Library (glibc) 2.19 or later&lt;/li&gt;
&lt;li&gt;KVM&lt;/li&gt;
&lt;li&gt;lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
En mi caso estoy trabajando con un PC de las siguientes características:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;AMD Ryzen 5 2600&lt;/li&gt;
&lt;li&gt;16Gb de RAM&lt;/li&gt;
&lt;li&gt;Gnome bajo Ubuntu 18.04&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Es un PC que arme para jugar (si se lo preguntan, tengo una RTX 2060) y me a tocado trabajar remoto pero no traje mi equipo de la empresa y a tocado improvisar. Use un disco viejo de 160Gb para hacerme una partición.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Lo primero que haremos es instalar java y el método mas simple que existía era vía PPA de webupd8 y a dejado de funcionar por las nuevas políticas de Oracle. Así que dejo un video de como se hace de manera manual.&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/Whmm4E8sSlA" width="560"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
Luego necesitamos instalar unas librerias que utiliza el Android Studio, para ello usamos el siguiente comando en la terminal:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="linux-code" style="background-attachment: scroll; background-color: white; background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1iYyEc4fGbSuOOcPgjYgPY4UpaG1zLhAWUm1NhPfpeYoY9brVYigcED71V-gGaALTfC5NEqgPXDTOptIvGbladb8cPh_kF0dGSShd502VdWLVJkxy-aWyKGCup0OeRhLb0Hn15oWm5vQ/s550/lcode.gif); background-position: 0px 0px; background-repeat: no-repeat no-repeat; border-color: rgb(73, 73, 73); border-style: solid; border-width: 1px 1px 1px 20px; margin-bottom: 10px; margin-left: 10px; margin-top: 10px; max-height: 500px; min-height: 16px; overflow: auto; padding: 28px 10px 10px; width: 522px; z-index: 10000;"&gt;sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386&lt;/pre&gt;
&lt;br /&gt;
El emulador de Android bajo linux usa KVM para ejecutarse a diferencia de Windows que usa el HyperV. Por ello le es indiferente si es un AMD o un Intel bajo Linux. Asi que procedemos a instalar la paqueteria necesaria de KVM:&lt;br /&gt;
&lt;br /&gt;
Puede que nos salte un mensaje en donde nos pregunte si queremos configurar Postfix, simplemente le damos a que no lo queremos hacer y listo.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="linux-code" style="background-attachment: scroll; background-color: white; background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1iYyEc4fGbSuOOcPgjYgPY4UpaG1zLhAWUm1NhPfpeYoY9brVYigcED71V-gGaALTfC5NEqgPXDTOptIvGbladb8cPh_kF0dGSShd502VdWLVJkxy-aWyKGCup0OeRhLb0Hn15oWm5vQ/s550/lcode.gif); background-position: 0px 0px; background-repeat: no-repeat no-repeat; border-color: rgb(73, 73, 73); border-style: solid; border-width: 1px 1px 1px 20px; margin-bottom: 10px; margin-left: 10px; margin-top: 10px; max-height: 500px; min-height: 16px; overflow: auto; padding: 28px 10px 10px; width: 522px; z-index: 10000;"&gt;sudo apt-get install qemu-kvm
sudo apt-get install libvirt-bin
sudo apt-get install ubuntu-vm-builder
sudo apt install libvirt-clients libvirt-daemon-system bridge-utils virt-manager
sudo apt-get install bridge-utils&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Nos hace falta darle permiso a nuestro usuario para que pueda trabajar con tranquilidad:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="linux-code" style="background-attachment: scroll; background-color: white; background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1iYyEc4fGbSuOOcPgjYgPY4UpaG1zLhAWUm1NhPfpeYoY9brVYigcED71V-gGaALTfC5NEqgPXDTOptIvGbladb8cPh_kF0dGSShd502VdWLVJkxy-aWyKGCup0OeRhLb0Hn15oWm5vQ/s550/lcode.gif); background-position: 0px 0px; background-repeat: no-repeat no-repeat; border-color: rgb(73, 73, 73); border-style: solid; border-width: 1px 1px 1px 20px; margin-bottom: 10px; margin-left: 10px; margin-top: 10px; max-height: 500px; min-height: 16px; overflow: auto; padding: 28px 10px 10px; width: 522px; z-index: 10000;"&gt;sudo adduser $USER kvm
sudo adduser $USER libvirt&lt;/pre&gt;
&lt;br /&gt;
Y nos hace falta cambiar de permiso un directorio para no tener problemas al momento de crear nuestros AVD:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="linux-code" style="background-attachment: scroll; background-color: white; background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1iYyEc4fGbSuOOcPgjYgPY4UpaG1zLhAWUm1NhPfpeYoY9brVYigcED71V-gGaALTfC5NEqgPXDTOptIvGbladb8cPh_kF0dGSShd502VdWLVJkxy-aWyKGCup0OeRhLb0Hn15oWm5vQ/s550/lcode.gif); background-position: 0px 0px; background-repeat: no-repeat no-repeat; border-color: rgb(73, 73, 73); border-style: solid; border-width: 1px 1px 1px 20px; margin-bottom: 10px; margin-left: 10px; margin-top: 10px; max-height: 500px; min-height: 16px; overflow: auto; padding: 28px 10px 10px; width: 522px; z-index: 10000;"&gt;sudo chown $USER /dev/kvm&lt;/pre&gt;
&lt;br /&gt;
Cerramos sesión o reiniciamos nuestro equipo para que estos cambios sean validos.&lt;br /&gt;
&lt;br /&gt;
Ahora procedemos a instalar el Android Studio, la forma mas rapida es ir al centro de aplicaicones de Ubuntu, buscarla y darle al boton de instalar.&lt;br /&gt;
&lt;br /&gt;
Otra via que tenemos es bajar el snap desde&amp;nbsp;&lt;a href="https://snapcraft.io/android-studio" target="_blank"&gt;https://snapcraft.io/android-studio&lt;/a&gt;, copiamos el comando y lo instalamos desde una terminal y listo.&lt;br /&gt;
&lt;br /&gt;
La otra via es descargarlo desde la propia pagina&amp;nbsp;&lt;a href="https://developer.android.com/studio?hl=es"&gt;https://developer.android.com/studio?hl=es&lt;/a&gt;. En la pagina encontraremos un video de como ejecutarlo&lt;br /&gt;
&lt;br /&gt;
Y listo, ya tenemos un ambiente de desarrollo que trabaja con Android bajo Ubuntu.&lt;br /&gt;
&lt;br /&gt;
Fuentes:&lt;br /&gt;
&lt;a href="https://github.com/Ajuajmal/Install-Config/wiki/Installation-Of-Android-Studio-In-Ubuntu-18.04#install-intels-kvm-for-better-avd-performance"&gt;https://github.com/Ajuajmal/Install-Config/wiki/Installation-Of-Android-Studio-In-Ubuntu-18.04#install-intels-kvm-for-better-avd-performance&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="https://stackoverflow.com/questions/37300811/android-studio-dev-kvm-device-permission-denied"&gt;https://stackoverflow.com/questions/37300811/android-studio-dev-kvm-device-permission-denied&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgghG3fw6zZ3Esj7m-nrDlUsvg8fMjSuDqfjoKfKIW0QQEv3IQg4sB18sjwL9BMTHQSMxAewOUjlFjudCSpW9wm97UsHaEJlHD97tQX1VfKSWMzNUMks4B8cSUoRL0BhHBhhfQ6OD9ps9g/s72-c/Como+instalar+Android+Studio+en+Ubuntu.png" width="72"/></item><item><title>Virtual machine monitor failed en Ubuntu 18.04</title><link>http://nayosx.blogspot.com/2018/10/virtual-machine-monitor-failed-en.html</link><category>Linux</category><category>Ubuntu</category><category>vmware</category><author>noreply@blogger.com (NayosX)</author><pubDate>Thu, 11 Oct 2018 10:48:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-765708519575851659</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
El día de ayer me encontraba necesitado de usar Office y no me gusta usar wine para tales casos asi que decidi instalar vmware workstation y me vi con el error del titulo.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Primer error&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
El primer problema que me sucedio fue el "&lt;i&gt;/dev/vmmon&lt;/i&gt;" y comence a buscar del tema y en la mayoria de foros hablaban de usar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;sudo vmware-modconfig --console --install-all&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;Segundo Error&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Luego de ejecutarlo y de mostarme una serie de comandos en la terminal, me termino dando la siguiente información&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;Starting VMware services:

Virtual machine monitor                                            failed

Virtual machine communication interface                             done

VM communication interface socket family                            done

Blocking file system                                                done

Virtual ethernet                                                   failed

VMware Authentication Daemon                                        done
&lt;/pre&gt;
&lt;br /&gt;
Pase revisando foros durante unas 3 horas seguidas hasta que alguien menciono que tenia que ver con el tema de UEFI en la configuración de la BIOS, al principio me resultaba un poco tonto este tema, pero luego de no poder dar con la solución decidí probarlo. Fui a la BIOS y le dije que solo iniciara en modo Legacy como principal y esto soluciono mi problema con el "&lt;i&gt;Virtual machine monitor failed&amp;nbsp;&lt;/i&gt;" y el tema de las redes virtuales.&lt;br /&gt;
&lt;br /&gt;
Asi que si tienes un tema similar ya sabes por donde ir probando.&lt;br /&gt;
&lt;br /&gt;
Refenrecia:&lt;br /&gt;
&lt;a href="https://communities.vmware.com/thread/540891"&gt;https://communities.vmware.com/thread/540891&lt;/a&gt;&lt;/div&gt;
</description></item><item><title>Instalar Docker via SNAP</title><link>http://nayosx.blogspot.com/2018/10/instalar-docker-via-snap.html</link><category>docker</category><category>Linux</category><category>linux mint</category><category>snap</category><author>noreply@blogger.com (NayosX)</author><pubDate>Mon, 8 Oct 2018 16:15:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-7443301377850024373</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Les a pasado que a veces necesitan herramientas o aplicaciones y quizas solo sea momentaneamente... Bueno a sido mi caso, necesitaba un PostgresSQL para iniciar una demostración y tenia algunas opciones.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc3XQXupKqc7lKzOAM9zJjVLreaYzRUUZdR2SMcWbOO4ZID-ZK8oF3Y9CFiPogo9GYWzOPpV8N8hXb9UoEce43GDCnXre1dvTkTfdU583_pnORkDBgAbJRFWf5DkNn6D97vaeM2qhYxkQ/s1600/docker.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="256" data-original-width="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc3XQXupKqc7lKzOAM9zJjVLreaYzRUUZdR2SMcWbOO4ZID-ZK8oF3Y9CFiPogo9GYWzOPpV8N8hXb9UoEce43GDCnXre1dvTkTfdU583_pnORkDBgAbJRFWf5DkNn6D97vaeM2qhYxkQ/s1600/docker.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ol style="text-align: left;"&gt;
&lt;li&gt;&lt;a href="https://linuxconfig.org/install-postgresql-on-ubuntu-18-04-bionic-beaver" target="_blank"&gt;Instalarlo como la gente normalmenta hace&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/commandprompt/postgresql-snap" target="_blank"&gt;Instalarlo via SNAP (solo si usas alguna distro basada en Ubuntu)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.docker.com/engine/examples/postgresql_service/#install-postgresql-on-docker" target="_blank"&gt;Instalarlo via Docker&amp;nbsp;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Pude irme por la segunda opción y trabajar comodamente o hacerlo a la viaja unsansa pero no me interesa tenerlo todo el tiempo en ejecución, asi que la mejor manera se me hizo via Docker.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Primero nos aseguramos de que tenemos instalado SNAP en nuestra distro (en mi caso Linux Mint) para lo cual usamos el siguiente comando en donde nos apareceran todas las aplicaciones que hemos instalado via SNAP:&lt;/div&gt;
&lt;pre&gt;snap list&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Si&lt;b&gt;&amp;nbsp;no lo tenemos instalado,&lt;/b&gt;&amp;nbsp;simplemente ejecutamos el siguiente comando:&lt;/div&gt;
&lt;pre&gt;sudo apt install snapd&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;
Ya verificado o recien instalado procedemos a instalar Docker, lo cual es muy simple:&lt;br /&gt;
&lt;pre&gt;sudo snap install docker
sudo addgroup --system docker
sudo adduser $USER docker
newgrp docker
docker -v
&lt;/pre&gt;
Paso a explicar que acabamos de hacer.&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Iniciamos instalando docker&lt;/li&gt;
&lt;li&gt;Agregamos al grupo de sistema al grupo docker&lt;/li&gt;
&lt;li&gt;Pasamos a agregar al usuario actual a el grupo docker&lt;/li&gt;
&lt;li&gt;Y terminamos cambiando del grupo al usuario&lt;/li&gt;
&lt;li&gt;Por ultimo vemos la versión del docker que hemos instalado&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="alert info"&gt;
Se necesita cerrar sesión para que tome los cambios y de preferencia sugiero reiniciar el sistema.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bueno eso a sido todo en cuanto instalar docker via snap. Espero a mas de alguno le sirva&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc3XQXupKqc7lKzOAM9zJjVLreaYzRUUZdR2SMcWbOO4ZID-ZK8oF3Y9CFiPogo9GYWzOPpV8N8hXb9UoEce43GDCnXre1dvTkTfdU583_pnORkDBgAbJRFWf5DkNn6D97vaeM2qhYxkQ/s72-c/docker.png" width="72"/></item><item><title>Shotcut</title><link>http://nayosx.blogspot.com/2018/10/shotcut.html</link><category>Editor de video</category><category>Linux</category><author>noreply@blogger.com (NayosX)</author><pubDate>Wed, 3 Oct 2018 08:30:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-6706152879438997755</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
A veces me planto hacer tutoriales, ya no lo hago como antaños pero cuando eso pasa necesito herramientas para editar los vídeos y como estoy a favor del open source me decanto por un editor liviano, mas o menos estable y que soporte mp4.&lt;br /&gt;
&lt;br /&gt;
&lt;a class="_link" href="https://www.shotcut.org/" target="_blank"&gt;Shotcut&lt;/a&gt; es un editor de video como ningun que lo he corrido practicamente en una tostadora y me a ido de maravillas. Practicamente en un core2duo y 2Gb de RAM, un PC de finales de 2006, pero aun asi trabajando sin flanquear como otras aplicaciones que probé en ese entonces.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsS96mRkjvIxwc_H1QgNd6ui0AH9jDzGY8fG-oGkktgSLclpqB1rBp4cx4gYLJNUkbqBHODwbT5siLGrbLYqyQ0owoqUoxVQJuCM3vWARdw49iBMrfDlEAzGS1EPHv_Se6OnElX9tlQew/s1600/shotcut-logo-256x256_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="256" data-original-width="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsS96mRkjvIxwc_H1QgNd6ui0AH9jDzGY8fG-oGkktgSLclpqB1rBp4cx4gYLJNUkbqBHODwbT5siLGrbLYqyQ0owoqUoxVQJuCM3vWARdw49iBMrfDlEAzGS1EPHv_Se6OnElX9tlQew/s1600/shotcut-logo-256x256_1.png" /&gt;&lt;/a&gt;&lt;/div&gt;
Es multiplataforma, pero solo lo he probado en Linux y Windows, en el mac nunca lo pobre para saber como iba su estabilidad, asi que no se como se comporta en este ultimo. Viene con varios lenguajes, entre ellos el español aunque yo lo prefiero usar en gringo. El sitio del proyecto nos ofrece tutoriales para saber como se utiliza. Podemos agregar filtros tanto a vídeos como a audio y puedes ver muchos mas &lt;a class="_link" href="https://www.shotcut.org/features/" target="_blank"&gt;features dando click aqui&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Para instalarlo podemos descargar un exe, un dmg, archivos portables para Linux y mi favorita, vía SNAP y te dejo el comando a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;snap install shotcut --classic&lt;/pre&gt;
&lt;br /&gt;
Con ello ya lo tenemos listo en nuestro PC con Linux (obviamente tiene que ser una versión que tenga SNAP instalado).&lt;br /&gt;
&lt;br /&gt;
Solo me queda decir algo respecto al programa... Luego de Linux, luego de GIMP, luego de VLC este es otro de mis proyectos favoritos. Pruebalo y no te arrepentirás&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsS96mRkjvIxwc_H1QgNd6ui0AH9jDzGY8fG-oGkktgSLclpqB1rBp4cx4gYLJNUkbqBHODwbT5siLGrbLYqyQ0owoqUoxVQJuCM3vWARdw49iBMrfDlEAzGS1EPHv_Se6OnElX9tlQew/s72-c/shotcut-logo-256x256_1.png" width="72"/></item><item><title>Error al abrir Gitkraken en Ubuntu/Linux Mint</title><link>http://nayosx.blogspot.com/2018/09/error-al-abrir-gitkraken-en-ubuntulinux.html</link><category>git</category><category>Linux</category><author>noreply@blogger.com (NayosX)</author><pubDate>Sat, 29 Sep 2018 08:11:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-4888012735041855149</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Hola a todos, como sabran a mi me gustan los SO basados en Debian y ultimadamente he estado usando mucho un PC que tiene LinuxMint y estaba testeando una herramienta parecida a &lt;a class="_link" href="https://www.sourcetreeapp.com/" target="_blank"&gt;SourceTree&lt;/a&gt; pero multiplataforma, hablo de &lt;a class="_link" href="https://www.gitkraken.com/" target="_blank"&gt;GitKraken&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8P8xVC1VHarftTLMQXL2mNkahewGkTDstnYHvequ2c8M32qecg6ftuM3SyGXaJZrSHyIxMpcTsqtbp-TlWNNwfUeevbunNwc3lFbJcX3pGL8StW_rWAvFqou1xcwCrT2XxNy42r5hoBU/s1600/gitkraken-logo-dark-hz.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="256" data-original-width="1027" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8P8xVC1VHarftTLMQXL2mNkahewGkTDstnYHvequ2c8M32qecg6ftuM3SyGXaJZrSHyIxMpcTsqtbp-TlWNNwfUeevbunNwc3lFbJcX3pGL8StW_rWAvFqou1xcwCrT2XxNy42r5hoBU/s400/gitkraken-logo-dark-hz.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
Aunque mi punto no es la publicidad, sino ayudarte a ejecutar esta herramienta en Linux en el caso que te llegue a dar error al momento de ejecutarla.&lt;br /&gt;
&lt;br /&gt;
A mi me paso que no tenia una libreria que el usa y es la siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;sudo apt install libgnome-keyring0&lt;/pre&gt;
&lt;br /&gt;
Bueno, eso es todo en esta entrada, puedes escribirme por si necesitas ayuda&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8P8xVC1VHarftTLMQXL2mNkahewGkTDstnYHvequ2c8M32qecg6ftuM3SyGXaJZrSHyIxMpcTsqtbp-TlWNNwfUeevbunNwc3lFbJcX3pGL8StW_rWAvFqou1xcwCrT2XxNy42r5hoBU/s72-c/gitkraken-logo-dark-hz.png" width="72"/></item><item><title>Videos lento en Google Chrome con Ubuntu 18.04</title><link>http://nayosx.blogspot.com/2018/05/videos-lento-en-google-chrome-con.html</link><category>tips</category><category>Ubuntu</category><author>noreply@blogger.com (NayosX)</author><pubDate>Wed, 16 May 2018 16:42:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-8673983689503293035</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Bueno resulta que el esperado Ubuntu 18.04 LTS al fin a salido al mercado y casualmente dio con la fecha de finalización de proyecto en donde trabajo, así que me decidí a instalar una partición con dicho SO&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVnSuDA7wiU9ibMJQ2iWSTbOap7QkAuY4RgFNocfYQQu4px6y0SIJm1GJlE4q9xjw_lVV3YZLDDKC15n1_cRcHBA77VnNCW-l722rHnLiC1MRiWs7l8ATMdibJ7C6lrYFlM8OI-o1txQc/s1600/chrome.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="256" data-original-width="256" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVnSuDA7wiU9ibMJQ2iWSTbOap7QkAuY4RgFNocfYQQu4px6y0SIJm1GJlE4q9xjw_lVV3YZLDDKC15n1_cRcHBA77VnNCW-l722rHnLiC1MRiWs7l8ATMdibJ7C6lrYFlM8OI-o1txQc/s200/chrome.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
El problema vino con los videos de YouTube y otras paginas similares en donde el navegador Google Chrome no los reproducía con fluidez o a veces se quedaba con la imagen congelada.&lt;br /&gt;
&lt;br /&gt;
Si este es tu caso creo que te puedo ayudar a dar con una solución. Lo primero que haremos es usar el siguiente comando:&lt;br /&gt;
&lt;br /&gt;
google-chrome --disable-gpu&lt;br /&gt;
&lt;br /&gt;
Esto te abrirá el navegador y tienes que dirigirte al lugar donde te da el problema de reproducción de video y si la reproducción mejora notablemente es porque tienes que inhabilitar la navegación con aceleración gráfica desde la configuración del propio Google Chrome y para ello hacemos los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol style="text-align: left;"&gt;
&lt;li&gt;Vamos a settings y hacemos click&lt;/li&gt;
&lt;li&gt;Estando ahí buscamos "use hardware acceleration when available"&lt;/li&gt;
&lt;li&gt;Inhabilitamos dicha opción&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Y listo, ya con ello nuestro navegador debería de andar correctamente&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Fuentes:&lt;br /&gt;
https://askubuntu.com/questions/765974/chrome-freeze-very-frequently-with-ubuntu-16-04?utm_medium=organic&amp;amp;utm_source=google_rich_qa&amp;amp;utm_campaign=google_rich_qa&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVnSuDA7wiU9ibMJQ2iWSTbOap7QkAuY4RgFNocfYQQu4px6y0SIJm1GJlE4q9xjw_lVV3YZLDDKC15n1_cRcHBA77VnNCW-l722rHnLiC1MRiWs7l8ATMdibJ7C6lrYFlM8OI-o1txQc/s72-c/chrome.png" width="72"/></item><item><title>Acceso remoto en MySQL 5.7 bajo Ubuntu 16.04</title><link>http://nayosx.blogspot.com/2018/04/acceso-remoto-en-mysql-57-bajo-ubuntu.html</link><category>mysql</category><category>Ubuntu</category><author>noreply@blogger.com (NayosX)</author><pubDate>Wed, 11 Apr 2018 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-2119687896307112358</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
En mi entrada anterior les hable de &lt;a class="_link" href="https://nayosx.blogspot.com/2018/04/crear-usuario-en-mysql-57.html" target="_blank"&gt;como crear un usuario&lt;/a&gt; y darle permiso para administrar una base de datos de MySQL y ahora les muestro como permitir el acceso remoto a dicho usuario para poder trabajar cómodamente desde nuestro Manager preferido con una base de datos dada.&lt;br /&gt;
&lt;br /&gt;
Iniciamos editando un archivo de configuración en donde haremos unos cambios a una variable. Lo puedes hacer desde nano o puedes usar tu editor de texto favorito. En este caso todo sera desde terminal&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4YFiCU0MdfhXZB2Brt3KSc1QAc_Arigllhh1arsEPgEw8ujzYHB_wvHNh7MEcCOSKV_5-I0asfaCgGZQ0vDf4GTV8bI95rH-JB-uBQOeR47cObElnS_bUtcJ94w_QqE71j7gq8698Ewk/s1600/MySQL.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="828" data-original-width="1600" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4YFiCU0MdfhXZB2Brt3KSc1QAc_Arigllhh1arsEPgEw8ujzYHB_wvHNh7MEcCOSKV_5-I0asfaCgGZQ0vDf4GTV8bI95rH-JB-uBQOeR47cObElnS_bUtcJ94w_QqE71j7gq8698Ewk/s320/MySQL.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="alert warning"&gt;
Nota:&lt;br /&gt;
Esta configuración anteriormente estaba ubicado en "/etc/mysql/my.cnf" y en Ubuntu 16.04 fue cambiado. Dicho archivo sigue existiendo pero no se usara para nada.&lt;/div&gt;
&lt;br /&gt;
Lo primero que hacemos es abrir el siguiente archivo&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=""&gt;sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf&lt;/pre&gt;
&lt;br /&gt;
Dentro de el buscamos la linea&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;bind-address = 127.0.0.1&lt;/pre&gt;
&lt;br /&gt;
Y cambiamos la dirección IP que hace referencia a localhost y colocamos la IP a la que queremos dar acceso. De no conocerse la dejamos como 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;bind-address = 0.0.0.0&lt;/pre&gt;
&lt;br /&gt;
Luego reiniciamos el servicio de MySQL&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;systemctl restart mysql.service&lt;/pre&gt;
&lt;br /&gt;
Como segundo paso entramos a MySQL y comenzamos a darle permisos al usuario. Para ello tenemos que hacerlo como root&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;mysql -u root -p&lt;/pre&gt;
&lt;br /&gt;
Damos un enter e ingresamos nuestra contraseño de root. Luego damos permiso se acceso por medio de cualquier medio a nuestro usuario y lo hacemos de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;GRANT ALL ON andy.* TO 'noesroot'@'%' IDENTIFIED BY 'myPassAca' WITH GRANT OPTION;&lt;/pre&gt;
&lt;br /&gt;
Este comando puede cambiar un poco y lo podemos dejar de la siguiente manera por si no les es util.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;GRANT ALL ON *.* TO 'noesroot'@'%' IDENTIFIED BY 'myPassAca' WITH GRANT OPTION;&lt;/pre&gt;
&lt;br /&gt;
La explicación sigue siendo la misma, el primer * para la base de datos y el segundo * para las tablas a las cuales uno puede tener permiso o no.&lt;br /&gt;
&lt;br /&gt;
Ya solo nos falta conectarnos por medio de un manager y para ello podemos usar la siguiente configuración:&lt;br /&gt;
&lt;pre&gt;host: IP DEL SERVER
port: 3306 (el puerto por defecto de MySQL)
user: noesroot
pass: myPassAca
&lt;/pre&gt;
&lt;br /&gt;
Bueno espero te haya sido de ayuda esta entrada. Para mi a sido un gusto escribirla&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4YFiCU0MdfhXZB2Brt3KSc1QAc_Arigllhh1arsEPgEw8ujzYHB_wvHNh7MEcCOSKV_5-I0asfaCgGZQ0vDf4GTV8bI95rH-JB-uBQOeR47cObElnS_bUtcJ94w_QqE71j7gq8698Ewk/s72-c/MySQL.png" width="72"/></item><item><title>Crear usuario en MySQL  5.7</title><link>http://nayosx.blogspot.com/2018/04/crear-usuario-en-mysql-57.html</link><category>mysql</category><category>notas</category><author>noreply@blogger.com (NayosX)</author><pubDate>Sat, 7 Apr 2018 21:40:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-3631657827169182911</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Hola a todos ya tenia un poco de no publicar nada en mi blog así que decidí hacer esta entrada porque luego olvido como va la cosa y mejor mantener una nota al alcance de un click.&lt;br /&gt;
&lt;br /&gt;
Como ustedes sabrán yo me dedico al desarrollo mas que a lo administrativo y justo hace poco configure un servidor con todas las buenas practicas existentes Y una de ellas es tener a los usuarios adecuados para el manejo de la base de datos así que les mostrare como crearlo en MySQL via consola/terminal.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeeVdBrNgSvwkBHA5_YiEva2hnwym9pqenFw7f_ajhBcPmLPoWd60JWkXxek0W8dcNdQK83Kk84ptVAr2ySwxvpJBUU1wYWzVA-MVvXjzc6sExO5bJB8F6sQWgiup_hBy6bgos5mdnHy0/s1600/MySQL.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="828" data-original-width="1600" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeeVdBrNgSvwkBHA5_YiEva2hnwym9pqenFw7f_ajhBcPmLPoWd60JWkXxek0W8dcNdQK83Kk84ptVAr2ySwxvpJBUU1wYWzVA-MVvXjzc6sExO5bJB8F6sQWgiup_hBy6bgos5mdnHy0/s320/MySQL.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso en particular se creara una nueva base de datos y se asignara el usuario que creemos a esa base de datos, sino es tu caso tranquilo que de igual manera te explico como asignar un usuario a una base de datos ya creada&lt;br /&gt;
&lt;br /&gt;
Lo primero que necesitamos es una consola/terminal e ingresamos como root:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;mysql -u root -p&lt;/pre&gt;
&lt;br /&gt;
Presionamos enter y nos solicitara nuestra contraseña del usuario root&lt;br /&gt;
&lt;br /&gt;
Ahora procedemos a crear una base de datos de la siguiente manera&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;CREATE DATABASE andy DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;&lt;/pre&gt;
&lt;br /&gt;
Y procedemos a crear el usuario que usaremos con ella para lo cual usamos el siguiente comando&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;CREATE USER 'noesroot'@'localhost' IDENTIFIED BY 'miPassAca';&lt;/pre&gt;
&lt;br /&gt;
Y luego pasamos a darle permisos a la base de datos con nuestro usuario&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;GRANT ALL PRIVILEGES ON andy.* TO 'noesroot'@'localhost';&lt;/pre&gt;
&lt;br /&gt;
Para los usuarios que ya tiene base de datos creadas con anterioridad les dejo la explicación, solo tomemos como ejemplo el siguiente fragmento de script&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;GRANT ALL PRIVILEGES ON *.* TO 'tuUsuario'@'localhost';&lt;/pre&gt;
&lt;br /&gt;
Luego de la palabra reservada ON tenemos *.* en el cual el primer asterisco hace referencia a la base de datos y el segundo hace referencia a las tablas que podrá administrar el usuario. Solo nos hace falta guardar los cambios para lo cual usamos el siguiente comando.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class="brush:sql"&gt;FLUSH PRIVILEGES;&lt;/pre&gt;
&lt;br /&gt;
Ya con eso tenemos creado un usuario y asignado a una base de datos, si queremos que dicho usuario tenga permisos a todas las bases de datos basta con dejar los privilegios como *.*&lt;br /&gt;
&lt;br /&gt;
Espero te haya servido&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeeVdBrNgSvwkBHA5_YiEva2hnwym9pqenFw7f_ajhBcPmLPoWd60JWkXxek0W8dcNdQK83Kk84ptVAr2ySwxvpJBUU1wYWzVA-MVvXjzc6sExO5bJB8F6sQWgiup_hBy6bgos5mdnHy0/s72-c/MySQL.png" width="72"/></item><item><title>Acceder desde la LAN usando Laragon mint</title><link>http://nayosx.blogspot.com/2018/02/acceder-desde-la-lan-usando-laragon-mint.html</link><category>fix</category><category>hack</category><category>laragon</category><author>noreply@blogger.com (NayosX)</author><pubDate>Tue, 6 Feb 2018 09:42:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-3699625672609230099</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7c7Rzy2Q1tjy0DamhdA-unFa5vDDjU8ru-fRUKwsi3WigGQaoxeYAFfa9A1xEpHJpAkyGOFQXpglcelbVs0IW8AqclGVvIO7VwC__rN_SAFHmdiV8VOZaY7RjnHT1eWlyAZA3wnJHIBc/s1600/4Ajs6W6V.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="240" data-original-width="240" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7c7Rzy2Q1tjy0DamhdA-unFa5vDDjU8ru-fRUKwsi3WigGQaoxeYAFfa9A1xEpHJpAkyGOFQXpglcelbVs0IW8AqclGVvIO7VwC__rN_SAFHmdiV8VOZaY7RjnHT1eWlyAZA3wnJHIBc/s200/4Ajs6W6V.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Uso Laragon mint desde hace un tiempo y no recuerdo como fue o en que pagina lei sobre él y hasta el momento no había tenido la necesidad de acceder desde mi LAN o WAN para ver como se comportaba lo que hacia desde un celular o una tableta pero llego ese momento.&lt;br /&gt;
&lt;br /&gt;
Laragon mint como su nombre lo dice es una version mega reducida y básicamente es un nginx y mysql. que te crea host virtuales de manera automática y es de esta característica de la cual nos vamos a aprovechar.&lt;br /&gt;
&lt;br /&gt;
Lo de hacer que Laragon mint en LAN/WAN no es nada complicado y lo explico en la siguiente linea:&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Bandeja del sistema&lt;/li&gt;
&lt;li&gt;Click derecho/nginx/nginx.conf&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;server_name tuProyectoWeb.dev *.tuProyectoName.dev AQUI_TU_IP;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
En donde la IP que se ve (192.168.1.2) es la IP de tu equipo.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Y eso es prácticamente todo.&lt;br /&gt;
&lt;br /&gt;
En el remoto caso que no te aparezca esa información en este archivo solamente haz lo siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Bandeja del sistema&lt;/li&gt;
&lt;li&gt;Click derecho/nginx/site-enabled/auto.nombre_proyecto.dev.conf&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;server_name nombre_proyecto.dev * .nombre_proyecto.dev AQUI_TU_IP;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Referencias:&lt;/div&gt;
&lt;div&gt;
&lt;a class="link-text" href="https://forum.laragon.org/topic/36/how-can-access-laragon-from-lan/7" target="_blank"&gt;https://forum.laragon.org/topic/36/how-can-access-laragon-from-lan/7&amp;nbsp;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7c7Rzy2Q1tjy0DamhdA-unFa5vDDjU8ru-fRUKwsi3WigGQaoxeYAFfa9A1xEpHJpAkyGOFQXpglcelbVs0IW8AqclGVvIO7VwC__rN_SAFHmdiV8VOZaY7RjnHT1eWlyAZA3wnJHIBc/s72-c/4Ajs6W6V.jpg" width="72"/></item><item><title>Bye bye XAMPP y bienvenido Laragon</title><link>http://nayosx.blogspot.com/2018/01/bye-bye-xampp-y-bienvenido-laragon.html</link><category>apahce</category><category>app</category><category>mysql</category><category>php</category><category>programacion</category><author>noreply@blogger.com (NayosX)</author><pubDate>Sat, 27 Jan 2018 20:48:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-9019376054169206556</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;XAMPP me a acompañado a lo largo de varios años, mas o menos unos 7 años como mínimo y en aquellas primeras versiones recuerdo que tardaba un mundo en instalar, bueno tampoco es que en ese entonces tuviera un equipo decente y no digamos un enlace a internet del cual sentirme orgulloso ya que eran unos miseros 256kbps así que se pueden imaginar todo lo que tomaba descargar esos &amp;gt;= 100Mb.&lt;br /&gt;
&lt;br /&gt;
Lo he querido y lo he odiado pero en el universo nada es estático, en mi MacMini no uso otra cosa que no sea&amp;nbsp; MAMPRO y en Linux uso lo que es una LAMP por lo practico que resulta instalar pero windows siempre he tenido que buscar cual se ajusta y me he encontrado con &lt;a href="https://laragon.org/" target="_blank" class="link-text"&gt;Laragon&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN-CQ-hXKxj6SyKM2gmdiW7bqNACd_JqjBjyD28myvZ9erjMtn0ni6Y8hEo9DT0w78-8WFjpPbNFiTFa-Fwd84GG7gWF7bojEbSrjM6rnfyBknHRbVn78WBy4-ZI9kzpYJSNY8ekHRWPo/s1600/4Ajs6W6V.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="240" data-original-width="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN-CQ-hXKxj6SyKM2gmdiW7bqNACd_JqjBjyD28myvZ9erjMtn0ni6Y8hEo9DT0w78-8WFjpPbNFiTFa-Fwd84GG7gWF7bojEbSrjM6rnfyBknHRbVn78WBy4-ZI9kzpYJSNY8ekHRWPo/s1600/4Ajs6W6V.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Laragon en su version mas minimalista pesa a duras penas &amp;gt;= 12Mb y tienes lo justo, un servidor web y un servidor de base de datos (nginx y mysql) y si necesitas mas en la pagina puedes encontrar muchas variantes que se ajustan a diferentes gustos. Desde servidores web con NodeJS hasta servidores listos para trabajar con SpringBoot o GoLang.&lt;br /&gt;
&lt;br /&gt;
Tiene muchos pros como el hecho de ser liviano como ningun otro, ser sofware libre y contar con una comunidad pequeña pero activa.&lt;br /&gt;
&lt;br /&gt;
No es que mi equipo actual no sea decente, es un equipo que bien me da para unos 2 años de trabajo pero si una aplicación me da lo justo, yo con eso soy feliz y Laragon lo a logrado.&lt;br /&gt;
&lt;br /&gt;
Link de descarga :&amp;nbsp;&lt;a href="https://laragon.org/" target="_blink" class="link-text"&gt;https://laragon.org/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN-CQ-hXKxj6SyKM2gmdiW7bqNACd_JqjBjyD28myvZ9erjMtn0ni6Y8hEo9DT0w78-8WFjpPbNFiTFa-Fwd84GG7gWF7bojEbSrjM6rnfyBknHRbVn78WBy4-ZI9kzpYJSNY8ekHRWPo/s72-c/4Ajs6W6V.jpg" width="72"/></item><item><title>Como obtener los nombres de las propiedades de un objeto js</title><link>http://nayosx.blogspot.com/2017/11/como-obtener-los-nombres-de-las.html</link><category>javascript</category><category>js</category><category>programacion</category><author>noreply@blogger.com (NayosX)</author><pubDate>Wed, 29 Nov 2017 15:49:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-6579683200947995895</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Tenemos el siguiente escenario:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;var personas = [
    {
        name: "Adonai",
        age: 28
    },
    {
        name: "Barbara",
        age: 13
    },
    {
       name: "Andrea",
       age: 4
    }
];
&lt;/pre&gt;&lt;br /&gt;
&lt;div&gt;Luego pasamos dicho Array a un lazo, para extraer cada uno de sus elementos como se logra apreciar a continuación&lt;/div&gt;&lt;br /&gt;
&lt;pre&gt;personas.forEach(function(persona){
    console.log(persona);
});
&lt;/pre&gt;&lt;br /&gt;
&lt;div&gt;Y por algún azar del destino necesitamos los nombre de las propiedades para procesarlas de alguna manera y nos comenzamos a preguntar de como hacerlo, lo cual es muy simple. Solo debemos usar el método "&lt;a class="link-text" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys"&gt;keys&lt;/a&gt;" del objeto constructor "&lt;a class="link-text" href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object"&gt;Object&lt;/a&gt;", dejemos de palabras y veamos que se hace&lt;/div&gt;&lt;br /&gt;
&lt;pre&gt;personas.forEach(function(persona){
    var keys = Object.keys(persona);
    console.log(keys);
});
&lt;/pre&gt;&lt;br /&gt;
&lt;div&gt;Con ello estamos almacenando un segundo Array indexado en la variable keys que podemos operar de distintas maneras&lt;br /&gt;
&lt;br /&gt;
&lt;ul style="text-align: left;"&gt;&lt;li&gt;Accediendo directamente a los elementos por medio de un indice&lt;/li&gt;
&lt;li&gt;Utilizando otro foreach para buscar la clave en si&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;Pero en este caso en particular se decidio imprimir la variable dentro del mismo foreach y el resultado se debería de ver como el siguiente:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-poHAjosKz6lIvc0pN9Np7YHF33W1iE8jM62Yo2AqQcY74iQZOEAHGQ5vfGF5kqnDEQDc6NgMVTuMwUv6Qvpvun1DG35W-AFu1diay8XSfXfY4kJoEICqz1-M-tgzCEVpwEuK-H8Hxo4/s1600/chrome_2017-11-29_15-44-37.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="81" data-original-width="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-poHAjosKz6lIvc0pN9Np7YHF33W1iE8jM62Yo2AqQcY74iQZOEAHGQ5vfGF5kqnDEQDc6NgMVTuMwUv6Qvpvun1DG35W-AFu1diay8XSfXfY4kJoEICqz1-M-tgzCEVpwEuK-H8Hxo4/s1600/chrome_2017-11-29_15-44-37.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Bueno espero te haya gustado esta pequeña entrada&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Refenecias:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys" target="_blank"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-poHAjosKz6lIvc0pN9Np7YHF33W1iE8jM62Yo2AqQcY74iQZOEAHGQ5vfGF5kqnDEQDc6NgMVTuMwUv6Qvpvun1DG35W-AFu1diay8XSfXfY4kJoEICqz1-M-tgzCEVpwEuK-H8Hxo4/s72-c/chrome_2017-11-29_15-44-37.png" width="72"/></item><item><title>Samba GUI en ubuntu 16.04 reparar error de arranque</title><link>http://nayosx.blogspot.com/2017/09/samba-gui-en-ubuntu-1604-reparar-error.html</link><category>fix</category><category>Linux</category><author>noreply@blogger.com (NayosX)</author><pubDate>Sat, 9 Sep 2017 23:29:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-3575712298807103580</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxw_ps2nCsCKmCTI-2lhhv8JZrnyT_hduF3gHIXrls7J1x9Ft6AxC1hFIyUebCIGYojSt02SMUG63D96N3oDK1Vf9hrtRINYO1XYCRoiJlxPnqvW8lwpYJCmV9J_ZE3L00Kmg-pUlpLIo/s1600/Screenshot+from+2017-09-09+23-19-16" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="287" data-original-width="444" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxw_ps2nCsCKmCTI-2lhhv8JZrnyT_hduF3gHIXrls7J1x9Ft6AxC1hFIyUebCIGYojSt02SMUG63D96N3oDK1Vf9hrtRINYO1XYCRoiJlxPnqvW8lwpYJCmV9J_ZE3L00Kmg-pUlpLIo/s320/Screenshot+from+2017-09-09+23-19-16" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Algunas veces sucede que las aplicaciones que instalamos no se comportan como queremos y este es el caso de samba o mejor dicho la parte administrativa con interface gráfica y lo digo de esa manera porque podemos hacer todo sin ella via &lt;a class="link-text" href="https://www.howtoforge.com/tutorial/samba-server-ubuntu-16-04/" target="_blank"&gt;terminal de comandos&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="alert alert-info info"&gt;Nota: por si quieres instalar el servicio y la GUI te dejo el comando acá abajo&lt;/div&gt;&lt;br /&gt;
&lt;pre&gt;sudo apt-get install -y samba samba-common python-glade2 system-config-samba&lt;/pre&gt;&lt;br /&gt;
Sucede que si lo queremos desde el lanzador de aplicaciones no lo hace y si obtines un mensaje como el siguiente:&lt;br /&gt;
&lt;pre&gt;self.basic_preferences_win = basicPreferencesWin.BasicPreferencesWin(self, self.xml, self.samba_data, self.samba_backend, self.main_window)
File "/usr/share/system-config-samba/basicPreferencesWin.py", line 97, in __init__
self.admin = libuser.admin()
SystemError: could not open configuration file `/etc/libuser.conf': No such file or directory&lt;/pre&gt;&lt;br /&gt;
&lt;div&gt;Con este comando lo podemos reparar fácilmente:&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;pre&gt;sudo touch /etc/libuser.conf&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;
Prácticamente lo que hacemos es crear un archivo necesario para el arranque de la GUI y listo asunto arreglado&lt;br /&gt;
&lt;br /&gt;
Fuentes:&lt;br /&gt;
&lt;a class="link-text" href="https://askubuntu.com/questions/785877/where-is-the-samba-configuration-gui-in-ubuntu-16-04" target="_blank"&gt;https://askubuntu.com/questions/785877/where-is-the-samba-configuration-gui-in-ubuntu-16-04&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a class="link-text" href="https://ubuntuforums.org/showthread.php?t=2250379" target="_blank"&gt;https://ubuntuforums.org/showthread.php?t=2250379&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxw_ps2nCsCKmCTI-2lhhv8JZrnyT_hduF3gHIXrls7J1x9Ft6AxC1hFIyUebCIGYojSt02SMUG63D96N3oDK1Vf9hrtRINYO1XYCRoiJlxPnqvW8lwpYJCmV9J_ZE3L00Kmg-pUlpLIo/s72-c/Screenshot+from+2017-09-09+23-19-16" width="72"/></item><item><title>No abre gparted, system monitor, vmware en ubuntu</title><link>http://nayosx.blogspot.com/2017/09/no-abre-gparted-system-monitor-vmware.html</link><category>fix</category><category>Linux</category><author>noreply@blogger.com (NayosX)</author><pubDate>Fri, 8 Sep 2017 20:12:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-4809571188348752917</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Bueno esta es una solución a algo que me paso este día. Resulta que luego de re-instalar mi sistema (un flamante Ubuntu Gnome 16.04) tuve problemas para abrir vmware player, pero hasta ahí todo bien hasta que se me ocurrió actualizar nautilus, luego de hacerlo no pude abrir muchas aplicaciones como las mencionadas.&lt;br /&gt;
&lt;br /&gt;
Este era el error que me mostraba:&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;pre&gt;/usr/sbin/gpartedbin: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgiomm-2.4.so.1: undefined symbol: _ZN4Glib11VariantTypeD1Ev

gnome-system-monitor: symbol lookup error: /usr/lib/x86_64-linux-gnu/libgiomm-2.4.so.1: undefined symbol: _ZN4Glib11VariantTypeD1Ev
&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Para que esto funcione como se debe, sobra y basta con eliminar el archivo "LD_LIBRARY_PATH.conf" que esta alojado en:&lt;br /&gt;
&lt;pre&gt;sudo rm /etc/ld.so.conf.d/LD_LIBRARY_PATH.conf
&lt;/pre&gt;&lt;div&gt;Y luego con utilizamos el comando "ldconfig" para que obtener una nueva configuración&lt;/div&gt;&lt;pre&gt;sudo ldconfig&lt;/pre&gt;&lt;div&gt;Referencias : &lt;a class="link-text" href="https://forums.linuxmint.com/viewtopic.php?t=212143"&gt;click aquí para ver discusión en un foro&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Natural Scrolling on Linux Mint 18 whit cinnamon</title><link>http://nayosx.blogspot.com/2017/07/natural-scrolling-on-linux-mint-18-whit.html</link><category>cinnamon</category><category>Linux</category><category>linux mint</category><category>notas</category><author>noreply@blogger.com (NayosX)</author><pubDate>Tue, 4 Jul 2017 22:26:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-4063617541287564505</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="alert warning"&gt;This article is in english &lt;a href="http://blog.billsdon.com/2011/12/adjust-linux-mint-mouse-scroll-normalreverse/" target="_blank"class="link-text"&gt;here&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="alert info"&gt;Esto funciona bien en la mayoria de aplicaciones, todas aquellas que son parte de cinnamon seguiran igual y por el momento no hay nada que hacer&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLwPx6s5sYlxZis1NwtXbBg1Uvvc9Iq5031SzEi7A4bZU10X-4bDmUBDZN4yvwykiKJCr6qButxHEnzoizjCM2FUXRL2asiJrP13wBXVZNZy_-PA5NoOpEUDRgDRxaUQz96oAhphZlE1g/s1600/Screenshot+from+2017-07-04+22-11-07" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="654" data-original-width="807" height="323" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLwPx6s5sYlxZis1NwtXbBg1Uvvc9Iq5031SzEi7A4bZU10X-4bDmUBDZN4yvwykiKJCr6qButxHEnzoizjCM2FUXRL2asiJrP13wBXVZNZy_-PA5NoOpEUDRgDRxaUQz96oAhphZlE1g/s400/Screenshot+from+2017-07-04+22-11-07" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Bueno, es obvio que esta nota la saque de otro lado, pero como esta en ingles, decidí hacer mi versión en español y aportar mi granito de arena a la comunidad.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Resulta que ultimadamente uso mucho el mac y ahí el mouse y el touchpad están pre-configurados de manera natural y cuando me muevo a mi vieja maquina o la maquina del trabajo se me hace engorroso el scroll y es por ello que me di a la tarea de buscar la causa y motivo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;En Xfce no existe problema alguno, 2 click y tienes la configuración del scroll natural, pero en cinnamon es otro caso ya que solo existe para el touchpad pero no para el mouse. Y luego de visitar muchas paginas me tope con &lt;a class="link-text"  href="http://blog.billsdon.com/2011/12/adjust-linux-mint-mouse-scroll-normalreverse/" target="_blank"&gt;este enlace&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;En donde practicamente nos dice que tenemos que tocar el archivo&amp;nbsp;Xmodmap y de no estar presente no queda mas que crearlo. En caso de existir dicho archivo encontraremos algo como lo siguiente&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;pre&gt;pointer = 1 2 3 4 &amp;nbsp;5 &amp;nbsp;6 7 8 9 10 11 12&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Los numeros importantes aca son el "4 5" ya que son los le dan el sentido al scroll, basta con invertirlos a "5 4" para que el scroll se vuelva natural. Asi que tendriamos lo sieguiente:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Configuracion por defecto:&lt;/div&gt;&lt;div&gt;&lt;pre&gt;echo "pointer = 1 2 3 4 5 6 7 8 9 10 11 12" &amp;gt; ~/.Xmodmap &amp;amp;&amp;amp; xmodmap .Xmodmap&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Configuracion con scroll natural&lt;/div&gt;&lt;div&gt;&lt;pre&gt;echo "pointer = 1 2 3 5 4 6 7 8 9 10 11 12" &amp;gt; ~/.Xmodmap &amp;amp;&amp;amp; xmodmap .Xmodmap&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Y listo, con eso tendremos lo que estabamos buscando, espero le sirva a mas de alguno&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLwPx6s5sYlxZis1NwtXbBg1Uvvc9Iq5031SzEi7A4bZU10X-4bDmUBDZN4yvwykiKJCr6qButxHEnzoizjCM2FUXRL2asiJrP13wBXVZNZy_-PA5NoOpEUDRgDRxaUQz96oAhphZlE1g/s72-c/Screenshot+from+2017-07-04+22-11-07" width="72"/></item><item><title>Uninstall vmware player or workstation on linux</title><link>http://nayosx.blogspot.com/2017/06/uninstall-vmware-player-or-workstation.html</link><category>Linux</category><category>tips</category><author>noreply@blogger.com (NayosX)</author><pubDate>Sun, 18 Jun 2017 19:28:00 -0600</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4722099160835422478.post-7734702443502741355</guid><description>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibaqp3PEsLRS5zDVL62dl_d78bnBXXUIWID6gVgBgUxtpr6VI4d7PdJs60pCv7ZsxSRSvc4fSUYAVfYmocdM1fR1gny6L0JKwKLIlkA_N-aCimckzGYhEvljIAnUblud3pNa45bu1uCYQ/s1600/images.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="103" data-original-width="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibaqp3PEsLRS5zDVL62dl_d78bnBXXUIWID6gVgBgUxtpr6VI4d7PdJs60pCv7ZsxSRSvc4fSUYAVfYmocdM1fR1gny6L0JKwKLIlkA_N-aCimckzGYhEvljIAnUblud3pNa45bu1uCYQ/s1600/images.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
Lamento el titulo, pero de seguro buscaste esta info en ingles y es algo muy facil de hacer, solo usemos uno de los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
Para el caso de Worstations&lt;br /&gt;
&lt;pre&gt;sudo  vmware-installer -u vmware-workstation&lt;/pre&gt;
Para el caso de Player&lt;/div&gt;
&lt;pre&gt;sudo vmware-installer -u vmware-player&lt;/pre&gt;
Como puedes ver solo tienes que asegurarte de tener permisos de root&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibaqp3PEsLRS5zDVL62dl_d78bnBXXUIWID6gVgBgUxtpr6VI4d7PdJs60pCv7ZsxSRSvc4fSUYAVfYmocdM1fR1gny6L0JKwKLIlkA_N-aCimckzGYhEvljIAnUblud3pNa45bu1uCYQ/s72-c/images.jpg" width="72"/></item></channel></rss>