Ubuntu 16.04 apt-get se bloquea

Ubuntu 16.04 apt-get se bloquea
Ubuntu Xenial Xerus

apt-get se bloquea

He detectado que alguna actualización de mi nuevo Ubuntu 16.04 ha dejado inutilizado APT-GET, quedándose este bloqueado y teniendo que salir con Ctrl+C. Así que apt-get se bloquea

Esto provoca que tengamos que eliminar los ficheros lock, pero una vez hecho esto hay procesos de apt que siguen ejecutándose.

Los he matado con kill -9, pero luego al volver a lanzar el comando se vuelve a bloquear.

Finalmente he encontrado este bug en el launchpad de ubuntu, donde explican como se puede solventar el problema con el apt y restaurarlo para que vuelva a funcionar.

El problema está con el fichero /usr/bin/appstreamcli, así que tendremos que bajar una versión parcheada de este paquete, hay muchas formas de hacer esto, pero lo mas fácil es bajar el fichero deb e instalarlo mediante dpkg.

En resument toca teclear esto en la consola:

cd /tmp && mkdir asfix
cd asfix
wget https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb
wget https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i libappstream3*.deb
sudo dpkg -i appstream*.deb

Error repositorio Google Chrome en Ubuntu

Google chrome logoSeguro que muchos de vosotros os habeis encontrado con un error al actualizar Ubuntu 15.10 en los últimos días. Ese error es un problema del repositorio de Google, concretamente Google Chrome.

El error que podeis ver es este:

Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release 
Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file) 
Some index files failed to download. They have been ignored, or old ones used instead.

Para solucionarlo tenemos que abrir una terminal y lanzar esas dos órdenes:

sudo sed -i -e 's/deb http/deb [arch=amd64] http/' "/etc/apt/sources.list.d/google-chrome.list"
sudo sed -i -e 's/deb http/deb [arch=amd64] http/' "/opt/google/chrome/cron/google-chrome"

 

NAT loopback DNS y Failover

DNS_Tree

Que es nat loopback dns y failover

Hoy voy a hablar de un problema común a la hora de configurar un servidor web, el nat loopback dns y failover, como todos sabeis un servidor web se trata de un ordenador, que generalmente lleva un programa (apache, nginx, microsoft, lighhttpd …), que sirve páginas web a los clientes.

Bien, aquí voy a suponer que el servidor web ya está configurado y que funciona correctamente, o almenos funciona desde dentro la LAN, es decir, desde la red interna.

Para que el servidor sea accesible desde el exterior, es muy probable que le haya que decir al router donde se encuentra el servidor. ¿Y eso porque? Pues vamos a detallar los pasos que siguen los clientes y como funciona el proceso:

Primero, los usuarios escriben en el buscador algun tipo de información, por ejemplo “problemas rotación galaxy s6 edge”.

Segundo, el buscador da unos resultados con varias entradas y cada una de ellas apunta a una web que está alojada en un servidor, ya sea de pago, gratis o en casa de alguien.

Tercero, los usuarios pulsan sobre el enlace, por ejemplo http://crashbit.homelinux.com.

Cuatro, en este momento los servidores DNS transfoman la URL (nombre de la web) a una dirección IP, por ejemplo 213.148.199.23

Quinto, si esta web está en tu casa, llega la petición al router.

Parémonos un momento en el router. Este aparato conocido por todos, pero que nadie sabe como funciona, hace muchas cosas, pero la mas importante quizas, es que dirige los paquetes de información hacia donde deben ir, pero no siempre sabe como hacerlo, como por ejemplo en el caso de tener servidores.
El router lo podemos dividir en dos partes, la parte que apunta hacia internet, con la dirección IP (Pública) que hemos dicho antes, 213.148.199.23 y una parte interna, con dirección IP por ejemplo 192.168.1.1.

Aquí hay mucho que decir, pero para resumir de forma muy matusera, diremos que la parte interna, se puede conectar con los equipos que están en la parte interna, por ejemplo el PC con IP 192.168.1.30 y el smartphone con IP 192.168.1.31, pero para que puedan pasar del interior al exterior o del exterior al interior, es necesario un router. Es decir, el router enlaza dos redes diferentes, una interna con direcciones IP por ejemplo 192.168.1.X y otra externa con miles de direcciones diferentes.
Así pues cuando llega un paquete que va a nuestro PC, se le tiene que decir al router cuál es la IP del PC, ya que si no, no sabría donde enviarlo, si al PC o al smartphone, teniendo que perder tiempo preguntando a cada uno.

Sexto, ahora volvamos a nuestro paquete que llega al router, ahi le hemos configurado el NAT, que lo que hace es decir a que IP interna tiene que dirigirse el paquete que pregunta por un servidor. Como NAT le hemos dicho que todo lo que sea tráfico HTTP, es decir tráfico que usa el puerto 80, se enrute hacia la IP 192.168.1.30, así que como en esta IP está el servidor WEB apache, pues este responde a la petición y muestra nuestra página web, que podemos ver desde internet.

Bien, ya sabemos como funciona NAT, pero que es eso de NAT loopback? Pues bien, ahora imaginemos que estamos en casa y hacemos los mismos pasos que hemos explicado anteriormente.
Vayamos al paso cuarto y miremos que hace el router, nuestro navegador dice que quiere acceder a la dirección IP 213.148.199.23, así que pedimos al router esta dirección, el router la busca a los resulta que es su propia dirección, así que no llega a salir al exterior, y claro ahí el NAT no actua, así que el router lo interpreta como una petición de acceder al mismo router desde el interior, y muestra la web de configuración del router, es decir, no la redirige al PC 192.168.1.30 con el apache. Y ahí es donde vemos que algo no funciona … pero recordad, no funciona desde el interior de la LAN, pero si que funciona desde el exterior.

SOLUCIONES:

1) Usar nombres de host
Esta es una solución, en lugar de usar crashbit.homelinux.com, usamos el nombre de host interno que le hemos dado al servidor, por ejemplo earth, así ponemos por ejemplo en el navegador http://earth, y si en /etc/hosts existe el nombre earth, y este apunta a la IP interna del servidor (192.168.1.30) se nos mostrará la web.
PD: Tambien se puede usar directamente la IP interna en el navegador http://192.168.1.30.

Problemas: Pues básicamente nos puede dar problemas con gestores de contenido tipo wordpress, drupal o demás, ya que en la base de datos seguramente existan referencias a crashbit.homelinux.com y estás no podrán ser resueltas y además quizas no cargue nuestro CSS, entre otras cosas.

2) Crear un mini servidor DNS con dnsmasq
És una buena opción, se trata de crear un pequeño servidor dns muy simple pero efectivo, para que cuando estemos dentro de nuestra LAN (es decir en nuestra casa conectados via wifi), la dirección crashbit.homelinux.com no apunte a 213.148.199.23, si no que apunte a 192.168.1.30.

Uf! Direis que esto de montar un servidor DNS en nuestra casa es mucho curro, pero con dnsmasq hacemos que sea muy simple.

2.1) Instalamos dnsmasq si no lo está

crashbit@sun:~$ sudo apt-get install dnsmasq

2.2) Modificamos el fichero /etc/dnsmasq.conf para que quede algo parecido a esto:

server=8.8.8.8
server=8.8.4.4
listen-address=127.0.0.1,192.168.1.30
bind-interfaces
address=/crashbit.homelinux.com/192.168.1.30
  1. Server=8.8.8.8 y server 8.8.4.4 le decimos que si no encuentra en la caché DNS lo busque a las DNS de Google.
  2. listen-address=127.0.0.1,192.168.1.30 y bind-interfaces, le decimos que responda a peticiones DNS desde el mismo PC y desde la LAN.
  3. address=/crashbit.homelinux.com/192.168.1.30, con esto le decimos que no resuelva el nombre crashbit.homelinux.com en las DNS exteriores, si no que lo resuelva directamente como 192.168.1.30.

2.3) Falta un paso importantísimo, decirle al router que use como servidor DNS nuestro equipo, ya que si no, cuando nuestro cliente pregunte por crashbit.homelinux.com desde la LAN, el router usará los DNS externos y no resolverá a la IP interna, si no la externa. Este paso depende de cada router, pero es muy simple, basta con entrar en la configuración y poner como DNS primario la IP del PC que tiene el servidor dnsmasq, en nuestro ejemplo 192.168.1.30.

Resultados: Aquí veremos a los resultados de nuestro servidor dnsmasq

[crashbit@venus ~]$ dig crashbit.homelinux.com

; <<>> DiG 9.9.2-P2 <<>> crashbit.homelinux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59195
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;crashbit.homelinux.com.		IN	A

;; ANSWER SECTION:
crashbit.homelinux.com.	    0	     IN	    A	      192.168.1.30

;; Query time: 1 msec
;; SERVER: 192.168.1.30#53(192.168.1.30)
;; WHEN: Sat Jun  6 17:24:40 2015
;; MSG SIZE  rcvd: 56

Podemos ver que resuelve a nuestra IP interna, así pues va a funcionar siempre. Y aunque nuestro gestor de contenidos busque en crashbit.homelinux.com en lugar de 192.168.1.30 no tendremos problemas.

Problemas:
Existen algunos problemas, como por ejemplo que no tendremos mucho mas control sobre los dominios y que los hosts no se definen de igual forma. Y lo mas importante, que si tenemos equipos con cache DNS activada, podríamos tener problemas, ya que la propagación no siempre es instantanea y podría provocar que algunos intentos no se resuelvan desde la LAN. Para ver si tenemos este problema podemos lanzar un ping a la dirección crashbit.homelinux.com y y quizas veremos como las primeras peticiones no se resuelven, pero al rato, se resuelven todas.

UPDATE: Algunas veces desde un laptop con Ubuntu parece que ignora la configuración del router, que le dice que use como servidor DNS el 192.168.1.30. Esto es debido a que NetworkManager hace uso de dnsmasq en el mismo Ubuntu, y algunas veces puede ignorar nuestros DNS. Para solucionar esto debemos editar el siguiente fichero:

/etc/NetworkManager/NetworkManager.conf y dejarlo así

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

[ifupdown]
managed=false

Añadiendo un #, es decir, comentando, la línea donde pone dns=dnsmasq, luego reiniciamos el servicio con

sudo service network-manager restart

3) Instalamos un servidor DNS completo:
{Pendiente}

FAILOVER DNS:

De acuerdo, ya tenemos nuestro servidor corriendo perfectamente, pero que pasa cuando se estropea el Servidor o bien cuendo se cae la linea? Pues la respuesta es clara, que el cliente obtiene un precioso error de tiempo de conexión esgotado, es decir, que nuestra web no funciona y los clientes quizas ya no vuelvan a entrar a ella nunca mas, y además, por si fuera poco, los buscadores (google) nos bajan el pagerank, lo que provoca que nuestra web pierda puestos a la hora de ser mostrada en los resultados de búsqueda.

Así pues, vamos a dar valor al título de esta entrada NAT loopback DNS y failover, pero además añadiremos backup a la entrada, con lo que haremos un sistema de copia de seguridad y resistencia a fallos.

Para crear este sistema partimos de este esquema:

( Continuará … )

[jetpack_top_posts_widget]

Marshmallow en Galaxy S6 Edge

Marshmallow
Marshmallow

Por fin Marshmallow para tu S6 Edge si sigues este tutorial

Quieres Marshmallow Android 6.0.1 para tu galaxy S6 Edge? Estás harto de esperar que Samsung actualice a Android 6.0?

Aquí tienes un link para descargar Android 6.0.1 Marshmallow para tu SM-G925F

 

ATENCIÓN: Fail hidden.img with Odin, Fail Sammobile hidden.img con Odin
ATENCIÓN!!! Para no hacer un soft-brick al teléfono seguir las instrucciones siguientes:

  • Descargar este toolkit.
  • Una vez instalado el toolkit seguir los pasos siguientes
    • Descomprimimos el fichero de Android 6.0.1 que nos hemos descargado, pero lo hacemos dos veces, primero el fichro comprimido y luego la imagen que contiene ese fichero comprimido, que es una imagen .tar.
    • Para descomprimir la imágen tar lo hacemos con 7-zip.
    • Ponemos todos los ficheros que descomprimimos en la carpeta INPUT del toolkit (c:\carpetatoolkit\INPUT)
    • Borramos el fichero hidden.img (Este fichero bloquea la instalacion y hace un soft-brick)
    • Ahora iniciamos el toolkit
    • Opción 27 para el Galaxy S6 Edge (Si es nuestro caso)
    • Pulsa cualquier tecla para continuar (Changelog)
    • Opción 01 para la variante G925F internacional, del teléfono
    • Opción 11 para Android 5.0.2 (Es para poder acceder a la opción que realmente interesa)
    • Opción 18
    • Opción 2
    • Ahora nos advierte de los ficheros con los que generará de nuevo el fichero TAR que quemaremos con ODIN en nuestro smartphone. RECORDAD que la imágen nueva sin hidden.img se ha generado en la carpeta OUTPUT de la aplicación.
  • Y listo, con el Odin ya podemos quemar nuestro Android 6.0.1 a nuestro S6 Edge.

Si tienes cualquier problema para quemar el firmware no dudes en ponerte en contacto conmigo y veremos que podemos hacer, aun así, quiero recordar que quemar un firmware no es una tarea para cualquiera y que las consecuencias pueden ser graves.

Tengo que decir que la imágen española y la imágen del Reino Unido son exactamente la misma, tal y como se puede ver ahí.

Actualización 03/02/16: Parece que hay una nueva imágen para España, esta imágen también me ha fallado al instalarla, ya que bloquea la instalación el fichero hidden.img.
Algunos os preguntareis si es seguro eliminar dicho fichero, pues es una buena práctica, ya que en él hay aplicaciones que las compañías instalan en los terminales, así que borrándolo salimos ganando.

crashbit@crashbit-Dell-System-XPS-L321X:~/Fitxers$ md5sum G925FXXU3DPB8_G925FVFG3DPB8_VOD.zip 
c49086bee16a42c268646494db93d992  G925FXXU3DPB8_G925FVFG3DPB8_VOD.zip
crashbit@crashbit-Dell-System-XPS-L321X:~/Fitxers$ md5sum G925FXXU3DPB8_G925FVFG3DPB8_ATL.zip 
c49086bee16a42c268646494db93d992  G925FXXU3DPB8_G925FVFG3DPB8_ATL.zip
crashbit@crashbit-Dell-System-XPS-L321X:~/Fitxers$ 

Android 6 Samsung y Sony …

Smartphones y Marshmallow

Saludos! Y hablemos de Android 6 Marshmallow.

Una cosa que muchos usuarios están esperando es que las compañías actualizen sus dispositivos a la última versión de Android, concretamente Android 6 Marshmallow

En foros de internet se pueden leer a miles de usuarios preguntando y las compañías nunca dan respuestas claras, que si a principios de año, que si en el primer trimestre …

Pues hoy aquí me voy a arriesgar y voy a poner fecha a las actualizaciones para el Samsung Galaxy S6 edge y para la gama Sony Xperia, concretamente el Z5 compact.

Creo que seran actualizados durante el CES2016, entre el 6 y el 10 de enero…

ACTUALIAZACIÓN: Gracias a HDBlog conocemos que Samsung Corea ha anunciado finalmente la fecha del lanzamiento de Android 6.0.1 Marshmallow para los Samsung Galaxy S6 y Galaxy S6 edge, que tendrá lugar en enero del año que viene. En concreto la fecha de liberación será el 18 de enero de 2016. En principio se actualizarán los dispositivo coreanos y después se extenderá al resto de mercados durante las siguientes semanas.

Parece que finalmente, pero solo para algunas variantes, han actualizado por el MWC de Barcelona 2016

¿Y tu que opinas?

 

Android Pay España

Android_PaySaludos!

En esta entrada voy a hablar sobre android pay en España. No voy a hablar sobre la app, ya que hay miles de páginas que ya lo hacen.

Todos sabeis que android pay es una app para hace pagos con nuestros smartphones que usan el Sistema Operativo Android.

Que diferencia android pay, de otras aplicaciones como BBVA Wallet o Caixabank Pay? Pues simple, Android Pay es la aplicación nativa de Android, así que la integración seguramente será muy buena y la seguridad también. Porque digo eso? Pues porque tras Android Pay está Google (Alphabet) y tras las otras está una entidad bancaria, así que mi decisión es simple, para una app de pagos quien prefiero que la haga, unos especialistas en bancos … o unos especialistas en informática? Pero bueno, tu decides … es lo bueno de Android.

Sobre cuando estará disponible en España? Pues no creo que tarden mucho, ya que hay bastantes alternativas en España y no creo que google se deje perder un mercado potencial tan amplio como el Español.

De momento, los que tengais Google Wallet, habreis visto que esta app se ha actualizado y os ha instalado Android Pay, dejando tambien instalada la nueva Google Wallet, que creo que va a quedar en desuso proximamente.

Así pues, los que no tenias google wallet instalado no busqueis Android Pay en la Play Store, aun no está en España. Pero los que teniais Wallet y se os ha instalado Android Pay, tampoco podreis usar esta aplicación.

Los que usais Samsung S6 o parecidos, posiblemente cuando intenteis añadir una tarjeta de crédito os va a lanzar un error de Google Services, esto es porque aun no disponeis de la versión actualizada de los servicios de Google.

Así que de momento toca esperar…

PD: Si habeis sustituido ya la app elegida para pagos por android pay, podeis volver a seleccionar la antigua desde los ajustes, NFC, Tap and pay.

Debian jessie y systemd

Saludos!debsystemd

Como muchos ya sabreis, se ha lanzado la última versión de Debian, la versión 8 con nombre en clave Debian Jessie. Son muchas las actualizaciones que hay, la mayoría previsibles, como la versión de apache, que pasa de la 2.2 a la 2.4, la versión de mysql, de bind9 y muchas mas.

Pero hay un cambio que ha marcado mas a los usuarios y es el cambio del clásico SysV por systemd. Systemd es el equivalente a SysV, que son demonios de administración del sistema que generalmente se usan durante el arranque del mismo y de procesos que hay que cargar.

Por ejemplo, hace tiempo en debian para reiniciar un demonio se usaba el ya obsoleto comando

/etc/init.d/apache restart

que luego pasó a usarse el

service apache restart

Pero ahora es el turno de systemd, que se lanzaría con:

systemctl restart apache2.service

Pero este no es el motivo del artículo, el motivo es la documentación de debian, que deja a entender que antes el PID 1 de un sistema era /sbin/init, mientras que ahora debería ser /sbin/systemd. Incluso hay un apartado que habla de modificar el grub para que cargue systemd al inicio y así probar al vuelo el nuevo demonio.

Esto da a entender que si usamos systemd deberíamos ver con el PID 1 un /sbin/systemd, pero muchos usuarios, vemos que como PID 1 hay un /sbin/init. Esto me hizo investigar, hasta que vi que /sbin/init, era un enlace simbólico a systemd.

Así pues, si usais debian jessie y veis un /sbin/init como PID 1, comprobar si se trata de un enlace simbólico que apunte a systemd, de ser así, pues ya estais usando systemd. No olvideis instalar el paquete systemd-sysv antes.

Así pues, este es mi artículo sobre Debian jessie y systemd

Atentamente,
Crashbit

Samsung Galaxy S6 edge problemas de rotación de pantalla

SM-G925FZKFPHE-30-0Saludos!

Voy a hablar sobre un problema de los nuevos Samsung Galaxy S6, concretamente la versión EDGE.

Parece que al cabo de pocos días de uso, pierden la capacidad de auto rotar la pantalla.

Es decir, que el samsung galaxy s6 edge podría tener problemas de rotación de pantalla y que se mantuviera en vertical cuando debe ponerse en horizontal.

El problema se especula que podría ser producido por la función de carga rápida de la batería y algún acelerómetro que dejase de funcionar por calentarse demasiado.

También se especula que pueda tratarse de un problema de software o una partida de acelerómetros defectuosos, pero si al final se trata de un problema de hardware y que este no pueda parchearse mediante una actualización de firmware, se trataría de un grave problema para el gigante SAMSUNG.

Fuentes:
http://forums.androidcentral.com/samsung-galaxy-s6-edge/513575-s6-edge-screen-rotation-does-not-work-properly.html
http://www.cnet.com/es/noticias/samsung-galaxy-s6-edge-presenta-problema-rotacion-algunos-usuarios/
http://www.droid-life.com/2015/04/15/galaxy-s6-edge-units-are-having-all-sorts-of-auto-rotate-issues/
https://community.verizonwireless.com/thread/857316?start=0&tstart=0
http://forum.xda-developers.com/galaxy-s6-edge/help/screen-rotation-issue-t3076690

Mantendré esta entrada actualizada … (Samsung Galaxy S6 edge problemas de rotación de pantalla)

23/04/2015 UPDATE: Samsung ha admitido que existe un problema en algunos Galaxy S6 edge, concretamente el portavoz de SAMSUNG ha dicho:

“Samsung is aware of an issue affecting screen rotation on a very limited number of Galaxy S6 Edge devices and a solution is already available. Owners who believe their device may be affected should call 1-800-SAMSUNG for support.”

Tendremos que leer con lupa las palabras de los técnicos de SAMSUNG, ya que apuntan que puede deberse a aplicaciones de terceros, cosa que no concuerda mucho con lo que algunos usuarios han posteado en forums.

29/04/2015 El acelerómetro: Dejadme que os explique muy a groso modo como funciona un acelerómetro en un smartphone y porque puede fallar.

Primero de todo decir que un acelerómetro no es mas que un sensor de los muchos que dispone nuestro smartphone y que un sensor es un dispositivo capaz de dar un respuesta eléctrica a un estímulo externo.
Es decir, que en el caso de un acelerómetro nos va a transformar el cambio de velocidad de nuestro smartphone en una señal eléctrica, que gracias a un registro va a ejecutar una acción.

Los acelerómetros normalmente están compuestos por dos láminas finas muy juntas y separadas por un material dieléctrico que según la distáncia entre ellas un condensador nos dará mas o menos carga eléctrica.

Por ejemplo si nuestro acelerómetro es 3d, algo muy probable en equipos de gama media, va a detectar la posición del smartphone y cambiar la pantalla a modo horizontal si así está orientado el teléfono.

Los equipos de gama media, ya incorporan la mayoría un giroscopio, que es otro sensor, que junto al acelerómetro, nos permite calcular la posición del smartphone en 6 ejes diferentes. Así pues, si algun eje del acelerómetro fallara, junto con el giroscópio se podría detectar si el terminal está en posición horizontal.

Esto nos deja entrever, que si el acelerómetro se ha roto, debido a una carga rápida, es posible hacer lo que se llama un work-around y seguir detectando cuando el teléfono está en posición horizontal, algo que mucho me temo, es lo que samsung hace en sus S6 edge que han frito el acelerómetro con la carga rápida.

Porque puede estropearse el acelerómetro con una carga rápida? Pues por el exceso de calor, al ser un elemento tan dedicado, hace que el calor pueda dilatar los componentes y provocar fallos.

Así que tendreis un teléfono con un sensor estropeado pero no lo detectareis si no mirais los registros del acelerómetro. Esto para un terminal de 50€ quizas tendría sentido, per por un de 800€ es en toda regla un robo y una estafa a los usuarios, así que si Samsung no se pone manos a la obra, las siguientes son mis conclusiones

29/04/2015 UPDATE: He econtrado esta entrada en el foro xda que un usuario dice que Samsung ha admitido que se trata de un error de hardware y le enviarán un repuesto.

CONCLUSIONES: Mi primera conclusión a día 29 de abril, es muy clara, de momento no compreis ningún Samsung S6 edge y si ya lo teneis, no useis la carga rápida, ya que puede freir el acelerómetro del terminal.

 

 

Guía League of legends como pasar de Bronce a Diamante

League of legends logo

Para todos los adictos al juego League of Legends, aquí les dejo un enlace para descargar una guía maravillosa y además escrita en español. Ahí os dejo un enlace a esta maravillosa guía, que os podreis descargar en formato pdf.

La guía se llama League of Legends, como subir de bronce a diamante y según entendidos en este juego, es una de las mejores guías, por no decir la mejor escrita en lengua española.

Descargar guía League of Legends

Advertisment ad adsense adlogger