¿Te has preguntado qué pasaría si alguien obtuviera acceso a una cuenta de tus redes sociales y te dejara afuera? ¿o si un día a Instagram se le ocurriera cerrar tu cuenta? Si te aterra pensar todo lo que perderías, quizás sea hora de que, además de respaldar tu disco duro, empieces a respaldar también los datos de tus redes sociales.
Todos los días generamos enormes cantidades de información en las redes sociales y es posible que ni siquiera estemos plenamente conscientes: tweets, estados de Facebook, fotografías, check-ins, un registro detallado de nuestras vidas que se encuentra a disposición de todos en Internet y sobre el cual, sin embargo, no tenemos completo control. No es frecuente que nos tomemos la molestia de respaldar los datos de nuestras redes sociales, y es posible que ni siquiera nos hayamos dado cuenta de que existe la opción de hacerlo.
Facebook
Facebook permite respaldar tu cuenta de manera nativa. Estando dentro de tu cuenta de Facebook, haz clic en el icono de flecha (el triángulo invertido) situado en la esquina superior derecha, y luego en Configuración. En esa sección, abajo, te aparecerá un enlace denominado “Descarga una copia de tu información”. Esta opción te llevará a una página donde deberás solicitar tu archivo (toda la información que has compartido en tu muro, incluyendo publicaciones privadas, fotos e información del perfil). Luego de hacer clic, iniciará la descarga de un archivo .zip, que puede ser bastante pesado dependiendo de qué tanta información contenga tu cuenta de Facebook (el mío pesaba sobre 30 Mb y yo prácticamente no uso Facebook).
Twitter
Twitter también contiene una opción nativa que permite descargar todo tu historial de tweets. Para encontrarla, deberás ir a la opción “Configuración”, de allí a “Cuenta”, y en esa página al final encontrarás el enlace llamado “Solicita tu archivo”. Una vez que hagas clic ahí, deberás esperar a que Twitter te envíe un correo electrónico indicándote que tu archivo se encuentra disponible para descargar. Este archivo puede tardarse un poco en llegar, y contendrá todos tus tweets en formato HTML. Precaución al revisarlo: leer tus primeros tweets y las cosas que has dicho a lo largo de los años puede ser sumamente vergonzoso.
Google Plus
Desde tu cuenta de Google, debes ir a Configuración de cuenta, y de allí a Herramientas de datos. Donde dice “Seleccionar los datos para descargar”, ese enlace te llevará a Google Takeout. Takeout es un servicio compatible con 21 productos de Google, desde Drive hasta YouTube y Blogger, que sirve para exportar todos tus datos desde cualquiera de esas cuentas, así que ahí puedes seleccionar qué datos quieres descargar y Takeout creará el archivo personalizado. Ojo con las cuentas que seleccionas, pues por ejemplo, descargar toda tu cuenta de Gmail puede ser un compromiso bastante extenso, y si seleccionas todas tus cuentas vinculadas con Google, es posible que la mera creación del archivo se tome días enteros.
Instagram
A diferencia de los anteriores, Instagram no ofrece un mecanismo propio para descargar tus fotos, de modo que existen servicios de terceros, como Instaport, que sirven para lo mismo. Instaport requiere tener acceso a tu cuenta para generar un archivo descargable, es gratuito y funciona bastante bien.
Respaldar redes sociales con IFTTT
Personalmente no soy demasiado fan de darle acceso a mis cuentas a aplicaciones externas fantasmas, y también creo que es útil tener en marcha herramientas que hagan respaldo sobre la marcha, así que recomiendo usar IFTTT para hacer -por ejemplo- respaldo automático de tus fotos de Instagram a medida que las vas subiendo. Con IFTTT puedes respaldar tus fotos en Dropbox, en Google Drive, en Evernote, en OneDrive, en Flickr, Picasa o en tu correo electrónico. Igualmente, en IFTTT puedes preparar recetas para generar respaldos sobre la marcha de un montón de otros servicios, sólo tienes que explorar lo suficiente.
Sea cual sea la elección que tomes, mi recomendación es que no esperes al World Backup Day para tomar acciones con respecto a la información de tus redes sociales: podría ser demasiado tarde.
Bienvenidos! En mi blog comparto mis experiencias y conocimientos relacionados con las TIC's, lenguajes de programación, bases de datos...
2014/06/29
2014/06/12
Tablas y su numero de filas en SQL Server
El siguiente script permite ver el nombre de las tablas y su numero de filas en una base de datos.
SELECT sysobjects.Name AS NombreTabla, sysindexes.Rows AS TotalFilas FROM sysobjects INNER JOIN sysindexes ON sysobjects.id = sysindexes.id WHERE TYPE = 'U' AND sysindexes.IndId < 2 ORDER BY sysobjects.NameUna vez ejecutada la consulta.
2014/06/09
Eliminar todas las conexiones activas en una base de datos
Permite cerrar las conexiones abiertas de una base de datos en SQL Server, cuando quieres alterar y/o eliminar una tabla o base de datos y no se puedes porque existen conexiones activas que lo impiden, solo debes de ejecutar el siguiente script.
CREATE PROCEDURE dbo.KillConexiones @dbName SYSNAME AS BEGIN SET NOCOUNT ON DECLARE @spid INT, @cnt INT, @sql VARCHAR(255) SELECT @spid = MIN(spid), @cnt = COUNT(*) FROM MASTER..sysprocesses WHERE dbid = DB_ID(@dbname) AND spid != @@SPID PRINT 'Eliminando ' + RTRIM(@cnt) + ' procesos.' WHILE @spid IS NOT NULL BEGIN PRINT 'Eliminando Proceso ' + RTRIM(@spid) SET @sql = 'KILL ' + RTRIM(@spid) EXEC (@sql) SELECT @spid = MIN(spid), @cnt = COUNT(*) FROM MASTER..sysprocesses WHERE dbid = DB_ID(@dbname) AND spid != @@SPID PRINT RTRIM(@cnt) + ' Procesos por eliminar.' END END GO
Encontrar los queries que consumen mas recursos
Los DMVs (Dynamic Management Views) son una magnifica forma de encontrar información de performance a partir de SQL Server 2005 en adelante (2008/2008R2/2012).
En este query de Pinal Dave se utilizan DMVs para encontrar los queries que mas consumen en un server SQL Server 2005/2008 (recordar que este script funciona solo en bases compatibles 2005/2008).
No está de más destacar un conjunto de queries, los DMVs AllStars, que se puede descargar aquí y que es una interesante herramienta para todo DBA en busca de detectar problemas de performance.
En este query de Pinal Dave se utilizan DMVs para encontrar los queries que mas consumen en un server SQL Server 2005/2008 (recordar que este script funciona solo en bases compatibles 2005/2008).
SELECT TOP 10 SUBSTRING( qt.TEXT, (qs.statement_start_offset / 2) + 1, ( ( CASE qs.statement_end_offset WHEN -1 THEN DATALENGTH(qt.TEXT) ELSE qs.statement_end_offset END - qs.statement_start_offset ) / 2 ) + 1 ), qs.execution_count, qs.total_logical_reads, qs.last_logical_reads, qs.total_logical_writes, qs.last_logical_writes, qs.total_worker_time, qs.last_worker_time, qs.total_elapsed_time / 1000000 total_elapsed_time_in_S, qs.last_elapsed_time / 1000000 last_elapsed_time_in_S, qs.last_execution_time, qp.query_plan FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp ORDER BY qs.total_logical_reads DESC -- logical reads -- ORDER BY qs.total_logical_writes DESC -- logical writes -- ORDER BY qs.total_worker_time DESC -- CPU timeObviamente se puede cambiar el ordenamiento del script para destacar otro criterio de busqueda.
No está de más destacar un conjunto de queries, los DMVs AllStars, que se puede descargar aquí y que es una interesante herramienta para todo DBA en busca de detectar problemas de performance.
2014/06/02
Convertir números a letras en SQL Server
Función para poder convertir un monto numérico en un monto en letras, muy útil si se quiere hacer una descripción de un monto para alguna factura o boleta. Primero crearemos la función llamada "fn_ConvertirNumeroLetras" que recibe 2 parámetros, uno es el numero que deseamos convertir a letras y el otro el nombre de la moneda que deseamos concatenarlo al monto.
/********************************************************************************* NOMBRE: fn_ConvertirNumeroLetra PROPOSITO: CONVERTIR NUMEROS A LETRAS. VERSIONES: Ver Fecha Autor Descripción (inc. Req/inc) ------ ---------- --------------- ------------------------------------ 1.0 01/06/2014 EDGAR CALZADA CREACION *********************************************************************************/ CREATE FUNCTION fn_ConvertirNumeroLetra ( @Numero NUMERIC(18, 2), @Moneda VARCHAR(100) ) RETURNS VARCHAR(512) AS BEGIN DECLARE @lnEntero INT, @lcRetorno VARCHAR(512), @lnTerna INT, @lcMiles VARCHAR(512), @lcCadena VARCHAR(512), @lnUnidades INT, @lnDecenas INT, @lnCentenas INT, @lnFraccion INT, @resultado AS VARCHAR(512) SELECT @lnEntero = CAST(@Numero AS INT), @lnFraccion = (@Numero - @lnEntero) * 100, @lcRetorno = '', @lnTerna = 1 WHILE @lnEntero > 0 BEGIN /* WHILE */ -- Recorro terna por terna SELECT @lcCadena = '' SELECT @lnUnidades = @lnEntero % 10 SELECT @lnEntero = CAST(@lnEntero / 10 AS INT) SELECT @lnDecenas = @lnEntero % 10 SELECT @lnEntero = CAST(@lnEntero / 10 AS INT) SELECT @lnCentenas = @lnEntero % 10 SELECT @lnEntero = CAST(@lnEntero / 10 AS INT) -- Analizo las unidades SELECT @lcCadena = CASE /* UNIDADES */ WHEN @lnUnidades = 1 AND @lnTerna = 1 THEN 'UNO ' + @lcCadena WHEN @lnUnidades = 1 AND @lnTerna <> 1 THEN 'UN ' + @lcCadena WHEN @lnUnidades = 2 THEN 'DOS ' + @lcCadena WHEN @lnUnidades = 3 THEN 'TRES ' + @lcCadena WHEN @lnUnidades = 4 THEN 'CUATRO ' + @lcCadena WHEN @lnUnidades = 5 THEN 'CINCO ' + @lcCadena WHEN @lnUnidades = 6 THEN 'SEIS ' + @lcCadena WHEN @lnUnidades = 7 THEN 'SIETE ' + @lcCadena WHEN @lnUnidades = 8 THEN 'OCHO ' + @lcCadena WHEN @lnUnidades = 9 THEN 'NUEVE ' + @lcCadena ELSE @lcCadena END /* UNIDADES */ -- Analizo las decenas SELECT @lcCadena = CASE /* DECENAS */ WHEN @lnDecenas = 1 THEN CASE @lnUnidades WHEN 0 THEN 'DIEZ ' WHEN 1 THEN 'ONCE ' WHEN 2 THEN 'DOCE ' WHEN 3 THEN 'TRECE ' WHEN 4 THEN 'CATORCE ' WHEN 5 THEN 'QUINCE ' ELSE 'DIECI' + @lcCadena END WHEN @lnDecenas = 2 AND @lnUnidades = 0 THEN 'VEINTE ' + @lcCadena WHEN @lnDecenas = 2 AND @lnUnidades <> 0 THEN 'VEINTI' + @lcCadena WHEN @lnDecenas = 3 AND @lnUnidades = 0 THEN 'TREINTA ' + @lcCadena WHEN @lnDecenas = 3 AND @lnUnidades <> 0 THEN 'TREINTA Y ' + @lcCadena WHEN @lnDecenas = 4 AND @lnUnidades = 0 THEN 'CUARENTA ' + @lcCadena WHEN @lnDecenas = 4 AND @lnUnidades <> 0 THEN 'CUARENTA Y ' + @lcCadena WHEN @lnDecenas = 5 AND @lnUnidades = 0 THEN 'CINCUENTA ' + @lcCadena WHEN @lnDecenas = 5 AND @lnUnidades <> 0 THEN 'CINCUENTA Y ' + @lcCadena WHEN @lnDecenas = 6 AND @lnUnidades = 0 THEN 'SESENTA ' + @lcCadena WHEN @lnDecenas = 6 AND @lnUnidades <> 0 THEN 'SESENTA Y ' + @lcCadena WHEN @lnDecenas = 7 AND @lnUnidades = 0 THEN 'SETENTA ' + @lcCadena WHEN @lnDecenas = 7 AND @lnUnidades <> 0 THEN 'SETENTA Y ' + @lcCadena WHEN @lnDecenas = 8 AND @lnUnidades = 0 THEN 'OCHENTA ' + @lcCadena WHEN @lnDecenas = 8 AND @lnUnidades <> 0 THEN 'OCHENTA Y ' + @lcCadena WHEN @lnDecenas = 9 AND @lnUnidades = 0 THEN 'NOVENTA ' + @lcCadena WHEN @lnDecenas = 9 AND @lnUnidades <> 0 THEN 'NOVENTA Y ' + @lcCadena ELSE @lcCadena END /* DECENAS */ -- Analizo las centenas SELECT @lcCadena = CASE /* CENTENAS */ WHEN @lnCentenas = 1 AND @lnUnidades = 0 AND @lnDecenas = 0 THEN 'CIEN ' + @lcCadena WHEN @lnCentenas = 1 AND NOT(@lnUnidades = 0 AND @lnDecenas = 0) THEN 'CIENTO ' + @lcCadena WHEN @lnCentenas = 2 THEN 'DOSCIENTOS ' + @lcCadena WHEN @lnCentenas = 3 THEN 'TRESCIENTOS ' + @lcCadena WHEN @lnCentenas = 4 THEN 'CUATROCIENTOS ' + @lcCadena WHEN @lnCentenas = 5 THEN 'QUINIENTOS ' + @lcCadena WHEN @lnCentenas = 6 THEN 'SEISCIENTOS ' + @lcCadena WHEN @lnCentenas = 7 THEN 'SETECIENTOS ' + @lcCadena WHEN @lnCentenas = 8 THEN 'OCHOCIENTOS ' + @lcCadena WHEN @lnCentenas = 9 THEN 'NOVECIENTOS ' + @lcCadena ELSE @lcCadena END /* CENTENAS */ -- Analizo la terna SELECT @lcCadena = CASE /* TERNA */ WHEN @lnTerna = 1 THEN @lcCadena WHEN @lnTerna = 2 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) THEN @lcCadena + ' MIL ' WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) AND @lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0 THEN @lcCadena + 'MILLON ' WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) AND NOT (@lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0) THEN @lcCadena + ' MILLONES ' WHEN @lnTerna = 4 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) THEN @lcCadena + ' MIL MILLONES ' ELSE '' END /* TERNA */ -- Armo el retorno terna a terna SELECT @lcRetorno = @lcCadena + @lcRetorno SELECT @lnTerna = @lnTerna + 1 END /* WHILE */ IF @lnTerna = 1 SELECT @lcRetorno = 'CERO' SELECT @resultado = RTRIM(@lcRetorno) + ' CON ' + LTRIM(STR(@lnFraccion, 2)) + '/100 ' + @Moneda RETURN @resultado END GO -- Para ejecutarlo solo nos bastara con llamar a la función y pasarle los 2 parámetros mencionados. SELECT [dbo].fn_ConvertirNumeroLetra(125.50, 'Nuevos Soles') -- Esto nos dará como resultado lo siguiente. -- CIENTO VEINTICINCO CON 50/100 Nuevos Soles
Suscribirse a:
Entradas (Atom)