viernes, 31 de agosto de 2018

Facebook Evolución o retroceso social

Antes que nada me siento en el hecho de informar que me encuentro un poco fuera de forma para poder escribir durante un gran rato esto debido en su mayoria a que no había ya pensado en este formato que es el blog

que como todos sabemos es el padre de todas las redes sociales que conocemos actualmente , y vamos aquellos que seamos de la vieja escuela , recordaremos como entrábamos a los blogs con la intención de aprender o leer algo nuevo de tecnología , en este caso de mi blog , o en el caso de otros simplemente para aprender como cocinar algo nuevo en ese dia.

ahora si , retomando el tema porque la idea no es salirse de esa perspectiva que pienso y que pasa con facebook? , en verdad la gente cree que estar en Facebook puede cambiarte la vida? , en verdad la gente cree que si ven la vida de otros de forma intensa a esas personas les pasará algo con la envidia que derraman?

creo que la respuesta a todo eso es un no rotundo , y si eres de esos que al leer el párrafo anterior ha contestado no yo no entro con ese fin a Facebook , yo solo entro para saber de la familia , saber como están mis amigos , y sobre todo para aprender algo nuevo en este día , déjame decirte que estoy casi seguro que un 60% de las personas que tienes en Facebook , no son ni tus amigos y mucho menos los has conocido a gran parte de ellos en persona , talvez los viste de forma ocasional y lo agregaste a esta red social.

así es amigo , si estás leyendo esto es porque por alguna razón , estás buscando unas respuestas a porque usas de forma frenética Facebook , y te diré que de las primeras cosas que nos encontraremos es el hecho de que eres un envidioso , si así como lo has leído y se que ha esto saldrán mil haters diciendo que sufro mucho por esto , pero no en verdad no me alegra saber que hay envidia en lo que uno hace y eso es bueno de verdad! , porque la envidia es un medidor que nos dice que tan bien estamos en esta vida a diferencia de otros.

ahora te has preguntado porque al despertar , al abrir esos ojos después de que vez la hora abres tu Facebook y vez que noticias nuevas hay? , es por envidia , proque quieres saber quien de tus amigos salió a la calle y se tomó unas grandes selfies mientras estaba de fiesta, o quieres saber cual de ellos está de vacaciones y está disfrutando de su tiempo , o cuál de todos ellos le va mal , claro! porque no todo en la vida puede ser felicidad para todos, también hay que tener ese granito el cual dice hay que ser buen samaritano con el que va y se toma una selfie con la persona que esta en la cama de un hospital , porque aunque tu no lo sabes cada like que le des a esa foto ayuda a su henkidama y le dará fuerza para su recuperación.

creo que ante todo debemos de separar a los usuarios de Facebook porque son muy divertidos y graciosos de verdad! , empecemos de la siguiente forma ;

LOS BUSCA LIKE ; Si empecemos con este espécimen raro el cual sube algo con la intensión fiel de saber a cuantos esta impactando con noticias verdaderamente importantes y no sólo esta tratando de llenar ese vacío que tiene en su vida real, de igual forma no está tratando de esconder que su vida es una mierda y que necesita que la gente crea una mentira completamente, no claro que no! , estamos hablando de esa persona que cuando sube una foto siempre busca el perfil adecuado , en el cual o aparece de fiesta , porque es el chico(a) que necesitas tener en tu fiesta si es que quieres que se llame fiesta , o es el que va a la sala de un hospital y busca al que esté más herido para tomarse la selfie tomando su mano , porque sabemos que el ser buen samaritano en Facebook es bien visto, y además de todo genera like! , qe es lo que estamos buscando.

y porque no!  también esta el que en sus vacaciones , siempre le coloca , "aquí sufriendo porque no hay más en esta vida " esperando que haya muchos like y comentarios , en los cuales les digan que se la está pasando genial , que no hay nada mejor que lo que está haciendo , entre otras tantas cosas , claro! , la mayoría de los que han hecho comentarios son personas que ni conocen a la persona y que solo están de paso , pero esa es otra especia que analizaremos más adelante.

VOYERISTAS; Si aunque suene feo , no estamos hablando de lo que te paso en la mente si no estamos hablando del tipico Facebookero que tiene su cuenta y entra únicamente con el fin de ver que hacen todos sin dar like , sin publicar nada , únicamente para saber que hacen todos en todo momento , tiene más amigos que el mismo Bill Gates , y esta en tantos grupos le es posible.

como lo identificamos? , es muy fácil , es esa persona que vez que cuando esta en la silla del autobús está viendo rápidamente que pasa en Facebook y dice mentalmente , este cabron ya se fue a la playa pero no le daré like para que no sepa que lo ando espiando.

esa persona es una persona de la cual debemos de tener cuidado ya que es de las primeras que encuentras en la calle y te dice que tal como has estado , aun cuando se dedica a ver todo por medio del ojo del augurio , esa persona es la que más envidia y odio en silencio tiene.

y a la primera oportunidad que tiene tratara de hacer un poco de lo que ve en la red social ,  wow tengamos miedo de todo eso que le pasa en la mente , en verdad jamás le des alcohol porque empezara a hablar de todo lo que ha visto con odio.

EL COMUNICADOR ; así es amigos es esa persona que tenemos todos siempre cerca que es el tipo de persona que cuando esta a tu lado , se la pasa pegada al celular y comienza a decirte todos los chismes los cuales no lees, y sobre todo se la pasa en una cena en el teléfono publicando que esta cenando con la familia , el amigo o el novio.

es la persona que vez en el cine , que cuando está la película en su mejor momento saca el teléfono y publica un spoiler porque hace falta saber que pasa en el Facebook y la gente quiere saber de ellos porque son unos superstar los cuales tienen su club de fans

pero no nos olvidemos de ese comunicador que hace sus lives y que espera tener 1 millón de seguidores viendo y solo logra que uno se conecte a su live, y eso estamos hablando de que ya con 1 siente que le está salvando la vida porque si no saben amigos la vida depende de a cuantos logres conectar en ese momento.

Y no quiero que la persepcion de esto es este cabron odia a las redes sociales, y si has llegado hasta este momento quiere decir que he logrado decir cosas con las cuales te has identificado , y sobre todo estas buscando encontrar en estas líneas algo que te ayude.

Pero es que de verdad yo creo que hay mejores maneras de hacer las cosas que estar pasando todo el día en las redes sociales, si las redes sociales son buenas , pero si estas en un carro de viaje con un amigo , con tu pareja , con tu familia , no tengas el teléfono en la mano , de verdad no pasara nada que te salve la vida en Facebook

si quieres tener una red social en la cual ver memes y listo! , usa Twitter , si esa noble red en la cual , si mientas la madre, nadie te va a decir que tienes amigo?, estás bien? , como te ayudo?, acaso te paso algo? , no!!! en esa red social tan amistosa nadie te leerá nadie te dirá nada , solo está ahí  y si es que alguien se anima a hacerlo solo obtendrás un ; chinga a tu madre tu también , y listo!

si te sientes el fotógrafo de la familia, te invito a tener una cámara fotográfica en la cual puedas tomar unas buenas fotos y que una vez que ya estés en casa descansando tomes tu tablet , tu computadora, lo que gustes y las veas y las que te gusten lo suficiente las publiques en Instagram , porque en Instagram , sensillo porque el tipo de persona que ve las fotos en Instagram solo verá la belleza de la foto y si la merece tendrá un like , no obtendrás un millón de like pero si por lo menos lograrás tener los likes que merece esa foto.

y te invito a que hagas las cosas no por quedar bien en la red social si no que lo hagas solo por el gusto de hacerlas y de que te llenen a ti , y si tus fotos no tienen like adelante , no hay problema algún día tendrás una foto sea un hit en Instagram y digas wow , lo logre ahora soy mejor , no tengas a esas personas falsas que solo te engrandecen a lo menso , mejor ten personas que valen la pena.

y si alguien te invita a salir , por respeto platica con el , tomate el tiempo de no tener el teléfono en la mano mandando mensajes, escribiendo en Facebook , si sientes la necesidad de escribir algo que pueda llegar a muchas personas , te invito a abrirte un blog en esta plataforma y lo hagas cuando tengas tiempo , con un café en mano , que te fumes tu cigarrito y digas ahora escribiré algo que llegue a muchos.

no tomes el tiempo de otras personas y lo ocupes para no hacer nada porque el tiempo de otros al igual que el tuyo es muy valioso y no va a regresar , si crees que la mejor manera de llegar a alguien es por medio de una red social , ahora te digo que existe el correo electrónico y es más bonito recibir un buen correo electrónico que el publicar algo en una red social y esperar a que lo lea esa persona , entiende no todos están obsesionados por ver que publican otros.

toma tu vida y dale un sentido pero que ese sentido no sea el tener una red social actualizada , vive tu vida , y para todo eso que haces en esa red social que te está alejando de la vida , te digo que hay un equivalente que antes hacía feliz a muchos .

si vas a usar el teléfono pide una disculpa y di tengo que llamar es urgente , si vas a revisar un mensaje de texto , toma la delicadeza de decirle es que esta pasando algo que es importante y necesito saber si necesito retirarme .

y pues si esto es lo que quería transmitir un sentir de que cada vez la gente está más alejada, aun cuando hay más comunicación la gente ahora ya no llama , a ese amigo por hrs para ponerse al día , ya no manda correos electrónicos , ya no hace nada por tener un contacto uno a uno , únicamente llevan la vida como creen que es mejor y eso logrará solo la destrucción de la misma.

se feliz y disfruta de tu vida.

domingo, 31 de mayo de 2015

Impresión desde Android vía Bluetooth

Hace ya un par de días me fue encargada la actividad de realizar lo que era la impresión de cualquier tipo de texto a una impresora térmica bluetooth , lo cual si lo vemos desde un punto de vista de realización es algo sencillo pero si lo vemos desde el punto de vista de información , es algo realmente difícil , esto ya que no se encuentra información necesaria para realizar esta actividad de manera rápida y sencilla como debería de ser, así que después de una larga investigación en Internet logre tener lo que seria una clase en java la cual permite la realización de esta tarea, claro el ejemplo que pongo a continuación es muy sencillo y ya le deberían de realizar las adecuaciones pertinentes para que realice lo que ustedes requieran hacer.

Lo primero que se realiza es la importación de las librerías necesarias para que trabaje bien la aplicación  y esas son las siguientes.

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Set;
import java.util.UUID;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.Toast;

Después necesitamos declarar lo que seria el formato de la fuente , ya que esta se realiza por medio de secuencias de escape en ASCII , las cuales son en formato PLC y podría decir que es esto es de lo mas difícil de encontrar ya que estas secuencias de escape son únicas para dar el formato a el tipo de letra sin utilizar alguna librería propia de la impresora que usen , en este caso las he probado con lo que es APEX2  y EXTECH , asi que no se como respondan en algunas otras impresoras.

        public static byte[] INIT = { 27, 64 };
public static byte[] RESET = { 24 };
public static final byte[] AUTO_POWER_OFF = { 27, 77, 55, 54, 53, 52, 48,
13 };
public static byte[] SELECT_FONT_A = { 27, 33, 0 };
public static byte[] SELECT_FONT_12 = { 27, 75, 49, 13 };
public static byte[] SELECT_FONT_25 = { 27, 75, 49, 49, 13 };
public static byte[] FONT_BOLD_ON = { 27, 85, 49 };
public static byte[] FONT_BOLD_OFF = { 27, 85, 48 };
public static byte[] FONT_UNDERLINE_ON = { 27, 85, 85 };
public static byte[] FONT_UNDERLINE_OFF = { 27, 85, 117 };
public static byte[] FONT_HI_ON = { 28 };
public static byte[] FONT_HI_OFF = { 29 };
public static byte[] FONT_WIDE_ON = { 14 };
public static byte[] FONT_WIDE_OFF = { 15 };
public static byte[] CHAR_SET = { 27, 70, 49 };
public static byte[] PRINT_LEFT = { 27, 70, 76 };
public static byte[] PRINT_RIGHT = { 27, 70, 86 };
public static byte[] SET_BAR_CODE_HEIGHT = { 29, 104, 100 };
public static byte[] PRINT_BAR_CODE_1 = { 29, 107, 2 };
public static byte[] SEND_NULL_BYTE = { 0x00 };
public static byte[] SELECT_PRINT_SHEET = { 0x1B, 0x63, 0x30, 0x02 };
public static byte[] FEED_PAPER_AND_CUT = { 0x1D, 0x56, 66, 0x00 };
public static byte[] SELECT_CYRILLIC_CHARACTER_CODE_TABLE = { 0x1B, 0x74, 0x11 };

Ahora esta aquí parte de lo que es importante lo que es la identificación de el equipo y la conexión , las cuales están divididas en dos funciones .

primero lo que es la identificación del equipo.

void findBT(Context context) {
try {
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

if (mBluetoothAdapter == null) {
Toast.makeText(context, "No bluetooth adapter available",
Toast.LENGTH_LONG).show();
}

if (!mBluetoothAdapter.isEnabled()) {
Intent enableBluetooth = new Intent(
BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBluetooth, 0);
}

Set pairedDevices = mBluetoothAdapter
.getBondedDevices();
if (pairedDevices.size() > 0) {
for (BluetoothDevice device : pairedDevices) {
String PrinterName = "D-O Printer";
if (device.getName().equals(PrinterName)) {
mmDevice = device;
break;
}
}
}
Toast.makeText(context, "Bluetooth Device Found", Toast.LENGTH_LONG)
.show();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

Después de haber identificado lo que es el equipo donde vamos a imprimir es necesario abrir una conexión.

void openBT(Context context) throws IOException {
try {
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);
mmSocket.connect();
mmOutputStream = mmSocket.getOutputStream();
mmInputStream = mmSocket.getInputStream();

beginListenForData();

Toast.makeText(context, "Bluetooth Opened", Toast.LENGTH_LONG)
.show();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

pero para esto también es necesario tener un listener para poder estar mandando la información .

void beginListenForData() {
try {
final Handler handler = new Handler();
final byte delimiter = 10;

stopWorker = false;
readBufferPosition = 0;
readBuffer = new byte[1024];

workerThread = new Thread(new Runnable() {
public void run() {
while (!Thread.currentThread().isInterrupted()
&& !stopWorker) {

try {

int bytesAvailable = mmInputStream.available();
if (bytesAvailable > 0) {
byte[] packetBytes = new byte[bytesAvailable];
mmInputStream.read(packetBytes);
for (int i = 0; i < bytesAvailable; i++) {
byte b = packetBytes[i];
if (b == delimiter) {
byte[] encodedBytes = new byte[readBufferPosition];
System.arraycopy(readBuffer, 0,
encodedBytes, 0,
encodedBytes.length);
final String data = new String(
encodedBytes, "US-ASCII");
readBufferPosition = 0;

handler.post(new Runnable() {
public void run() {
Log.i("Runnable", data);
}
});
} else {
readBuffer[readBufferPosition++] = b;
}
}
}

} catch (IOException ex) {
stopWorker = true;
}

}
}
});

workerThread.start();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}


Ahora ya podemos mandar la información que necesitamos a la impresora , por medio de esta función.

void ImprimeMensaje(Context context) throws IOException {
try {
mmOutputStream.write(RESET);
mmOutputStream.write(INIT);
mmOutputStream.flush();
mmOutputStream.write(SELECT_FONT_12);
mmOutputStream.write(FONT_BOLD_ON);

mmOutputStream.write(FONT_HI_ON);
String msg = "\n   Hola Mundo \n";
mmOutputStream.write(RESET);
mmOutputStream.write(FONT_BOLD_OFF);

mmOutputStream.write(FONT_HI_OFF);
mmOutputStream.write(msg.getBytes());
mmOutputStream.flush();

Toast.makeText(context, "Data Sent", Toast.LENGTH_LONG).show();

} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

Lo ultimo que se necesita es cerrar la conexión con nuestra impresora y para eso utilizaremos lo que es la siguiente función .

void closeBT(Context context) throws IOException {
try {
stopWorker = true;
mmOutputStream.close();
mmInputStream.close();
mmSocket.close();
Toast.makeText(context, "Bluetooth Closed", Toast.LENGTH_LONG)
.show();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

y pues para darle forma a todo esto yo hice una función que llama a todas estas en orden para realizar la impresión de un "Hola Mundo"

public void imprime(Context context) {
try {

try {
findBT(context);
openBT(context);
} catch (IOException ex) {
}

try {
ImprimeMensaje(context);
} catch (IOException ex) {
}

try {
closeBT(context);
} catch (IOException ex) {
}

} catch (NullPointerException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

Ahora  si analizamos el código nos faltan variables declaradas para poder trabajar mas que nada el tipo de dato para poder hacer las conexiones.

        BluetoothAdapter mBluetoothAdapter;
BluetoothSocket mmSocket;
BluetoothDevice mmDevice;

OutputStream mmOutputStream;
InputStream mmInputStream;
Thread workerThread;

byte[] readBuffer;
int readBufferPosition;
int counter;
volatile boolean stopWorker;

Ahora para todos aquellos que son nuevos programando y ven que tengo una variable tipo context en las funciones es porque como les dije en un inicio es una clase la cual no puede mandar a la actividad que la manda a llamar los Toast a menos de que se les mande el conext en el cual fue llamado. esto lo realizamos de la siguiente forma .

      Printer PT = new Printer();
      PT.imprime(getBaseConext());

Bueno despues de varios meses sin publicar nada bueno aqui les dejo algo que creo puede llegar a ser de mucha utilidad.

Si quieren que suba lo que es la apk imprimiendo solo me dicen y se las publico . Saludos!


jueves, 21 de agosto de 2014

Error com.google.android.gms.version



Hace un par de días estaba desarrollando un aplicación en android cuando de repente me di cuenta que no me dejaba utilizar el gps del teléfono y de verdad que fue un dolor de cabeza más que nada porque es un error que al parecer aparece, aparece al actualizar el SDK de android y la librería de Google play, y esto hace que el servicio onResume con el mlocationClient.connect no mande las coordenadas y es mas de error al utilizarlo.
La solucion la encontré después de varias horas buscando en internet y es tan sencillo como colocar en el manifest

<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_playa_services_version" />

Esto dentro del application  de esta forma se podra utilizar el GPS .