# La isla del faro > Bienvenido a nuestra página de programación donde resolveremos retos de hackathon, hablaremos de noticias, compartiremos momentos y experiencias. ¡Únete a nosotros para una aventura en el mundo del código! Aumenta tus habilidades y comunícate con individuos como tú. -------------------------------------------------------------------------------- title: "IBM 1401 a User's Manual" date: "2026-01-23" -------------------------------------------------------------------------------- # ¿Conoces la fusión entre la música y la historia de la computación? Johan Johannsson, compositor de bandas sonoras como la de la película "La teoría del todo", tiene un disco titulado "IBM 1401, a User's Manual". Cada pista representa un capítulo de ese antiguo manual de IBM y está inspirada en la grabación del propio padre del "mainframe" de los años 60. El disco mezcla sonidos electrónicos con grabaciones de voz y ruidos mecánicos del ordenador, creando una atmósfera única que evoca la era temprana de la computación. Si te han entrado ganas de escuchar la obra, te hago una propuesta rápida: prepárate una bebida, relájate y accede al enlace de youtube: {{< youtube "NCyGrcPqB2M?si=5uhB9_EZZRfzeOeT" >}} -------------------------------------------------------------------------------- title: "Resolviendo la edición Tuenti Challenge 10 con Python: Reto 5" date: "2020-06-12" -------------------------------------------------------------------------------- Si aún no has empezado con el Tuenti Challenge o te perdiste el de la semana anterior, entonces te recomiendo pasarte por los enlaces que dejaré a continuación antes de empezar con este reto 5: - [Empezando el Tuenti Challenge 10 Reto 1.](../tuenti-challenge-10-reto-1/) - [El reto anterior del Tuenti Challenge 10, el reto 4.](../tuenti-challenge-10-reto-4/) Si aún sigues por aquí entiendo entiendo que ya has conseguido completar los anteriores 4 retos, incluso mi talón de Aquiles como mencionaba en el reto de la semana pasada. La verdad es que el reto anterior era refrescante, ya que era totalmente distinto a los anteriores. De hecho, no era necesario ni programar. Hoy sí que volvemos a retomar la programación, y además con uno de esos retos fáciles que si los analizas un poco antes de empezar a programar harás que la solución sea muchísimo más sencilla. Pasemos pues a ver que dice el challenge 5 del Tuenti Challenge 10 : ## **Reto 5** - Tuentistic Numbers A Tuentistic number is any number that, when written in English, contains the word “twenty” (for example, 20, 21 or 120000). Since at Tuenti we love Tuentistic numbers, we like to represent any non-Tuentistic number as a sum of positive Tuentistic numbers in order to increase their Tuentisticness (this is called a Tuentistic sum). For example, the non-Tuentistic number 50 can be represented as the Tuentistic sum 25 + 25. The Tuentistic numbers thenselves count as Tuentistic sums too. Given a positive number, we want to know the maximum number of elements of its Tuentistic sums. ### Input The first line contains the number of cases **C**. Then, C lines follow, each with a number **N**. ### Output For each case, output 'Case #X: M', where X is the case number (the first case has number 1) and M is the maximum number of elements in a Tuentistic sum of N. If it is not possible to represent N as any Tuentistic sum, write 'Case #X: IMPOSSIBLE' instead. ### Limits - 1 ≤ **C** ≤ 500 - 1 ≤ **N** ≤ 262 ### Sample Input ``` 3 20 80 35 ``` ### Sample Output ``` Case #1: 1 Case #2: 4 Case #3: IMPOSSIBLE ``` In the first case, the number 20 has only one Tuentistic sum which contains itself, so the answer is 1. In the second case, 80 can be represented as a sum of 4 Tuentistic numbers (20+20+20+20). In the third case, it's impossible to sum 35 with only Tuentistic numbers. ## Explicación. En este caso el reto 5 creo que está bastante claro. En el input obtendremos el número de casos **C**, los datos que recibamos obviamente serán numéricos **N** y con estos datos deberemos de comprobar si un número es tuentistic (se pronuncia como twenty en inglés, si se puede obtener a base de sumas de tuentistics o si por el contrario es imposible que sea tuentistic). Nuestra salida será el número máximo de suma de tuentistics que se pueden usar para formar ese número o deberemos de poner que el caso es IMPOSSIBLE en caso de no poder obtenerse a base de tuentistics. **Una vez creáis tener la solución del reto 5 no olvidéis visitar el enlace al Challenge correspondiente en Tuenti que pongo al comienzo de cada entrada, ya que allí podréis descargaros los inputs y subir vuestros outputs para comprobar si vuestro programa pasa la prueba.** ## Resolución. La primera idea que se me vino a la cabeza al leer el programa es que debía de analizar cuando un número se pronunciaba como twenty en inglés y me di cuenta que eran los números 20-29 y luego deberemos irlo multiplicando de mil en mil para sacar el resto, es decir 20, 20.000, 20.000.000... Y no solo esos, también 120.000 se pronunciaría como twenty, así que debía de hacer algo que comprobase las posiciones de los doses. Además por otro lado tenía el tema de las sumas, que permitían hacer nuevos tuentistics. Para eso tenía la idea clara. Debía de dividir el número que me dieran entre 20 y ver cuántas veces se podía descomponer en este número, ya que era el más pequeño. Aunque me quedaba un detalle por perfeccionar, que era el control de los restos. Sabía que debía ser 20 porque andábamos buscando el máximo número de sumas, y necesitábamos los números tuentistics más pequeños posibles. Y prácticamente fue entonces cuando me di cuenta de una cosa: la mayoría de números de los ejemplos que daban y en los ejemplos que me ponía mentalmente eran tuentistics, lo cual me hizo darle la vuelta al asunto, y pensar en qué números no lo eran. Y ahí esta la clave. ### Números no tuentistics. El total de números no tuentistics es el siguiente: - Los números del 0 al 19. Estos son menores que 20, luego nunca podrán estar compuestos por ellos. - Los que se encuentran entre el 30 y el 39. Aquí el problema es que son mayores que 29, pero menores que 20 + 20 (40), que es el menor número que se puede conseguir con la combinación de dos tuentistics. - El 59. Si sumas 29 + 29 tienes 58, y si sumas 20 + 20 + 20 (lo siguiente más cercano a dos 29s) da 60, luego este número es imposible de conseguir. Aquí es donde empieza la magia. 20 + 20 + 20 = 60. 29 +29 + 29 = 87. Pero 87 también puede estar formado de la siguiente forma: 87 = 20 + 20 + 20 + 27 (y el resto de combinaciones). A partir de aquí se produce esta amalgama de combinaciones. Por ello, ya no va a haber números que no se puedan conseguir de al menos una forma. ### Solución final. {{< gist jotagarciaz 07f878d6461db642cb93a6fd09436546 >}} Por lo tanto, mi solución para este reto fue la siguiente: Y ahora para despedirme me gustaría saber: ¿A qué solución llegaste tú? -------------------------------------------------------------------------------- title: "Resolviendo la edición Tuenti Challenge 10 con Python: Reto 4" date: "2020-06-05" -------------------------------------------------------------------------------- ¡Ya hemos superado 3 retos! Vamos a por el reto 4. ¿!QUÉ!? ¿Que aún no has empezado o te perdiste el reto de la semana anterior? Entonces te recomiendo pasarte por los enlaces que dejaré a continuación antes de empezar con este: - [Empezando el Tuenti Challenge 10 Reto 1.](../tuenti-challenge-10-reto-1/) - [El reto anterior del Tuenti Challenge 10, el reto 3.](../tuenti-challenge-10-reto-3/) Si aún sigues por aquí entiendo que ya has conseguido completar los anteriores 3 retos, así que mi enhorabuena, porque el anterior fue un reto de superación para muchos concursantes. Hoy vamos a por el que para mí fue mi primer talón de Aquiles, y no por la complejidad. Al contrario, este reto se tarda minutos en resolver, siempre y cuando des con la tecla adecuada. A mí me dejo sin sueño y sin pensamientos más que qué podría estar haciendo mal. Incluso @Clare y su padre se estuvieron escudriñando los sesos para ayudarme. Pasemos pues a ver que dice el challenge 4 del Tuenti Challenge 10: ## **Reto 4** - My Favorite Video Game You\'re looking at your favorite video game website and you see some news that stops your heart. The video game platform steam-origin is releasing \'Cat Fight\' next week. This has been your favorite game since childhood. You\'ve got to have it. You continue reading the article and you see that there will be a free limited edition for the first hundred users who request the key. Oops, this is a big problem. You don\'t have a high-speed internet connection so there\'s no way you can be one of the first hundred users. You\'re sad and you decide it\'s time to have dinner. You\'ll never be able to play \'Cat Fight\'. You turn on the TV and... What? Does Steam-Origin have security problems? This is your chance. You\'re sure you can find a bug and get a key ahead of time. It\'s time to investigate. First of all, check the domain of the steam-origin API: ``` steam-origin.contest.tuenti.net:9876 ``` The next step is to get the key for a free to play game and then try to get the key for \'Cat Fight\'. On the browser console debugger you can see the rest API is: ``` [GET] /games//get_key ``` The videogame_id is always the video game name with underscores instead of white space. We\'ll create a proof of concept using a video game where we know we can get the key - \'Free Shoot\' - and then we\'ll try with \'Cat Fight\': ``` ``` $ curl steam-origin.contest.tuenti.net:9876/games/free_shoot/get_key { game: Free Shoot, key: 9999-9999-9999 } $ curl steam-origin.contest.tuenti.net:9876/games/cat_fight/get_key { error: Not available yet } ``` Wow... You\'re almost there. You keep looking around steam-origin engineering systems and you found gold. {{< prezi "https://prezi.com/embed/vyi9c9pbl_42/?bgcolor=ffffff&lock_to_path=1&autoplay=0&autohide_ctrls=0&landing_data=bHVZZmNaNDBIWnNjdEVENDRhZDFNZGNIUE43MHdLNWpsdFJLb2ZHanI0Mjc5OE5vdEVyallRNWt4b1U1bDdxa0FnPT0&landing_sign=4Ys7hewGoXq3Vie_LJZ3THH5v4-cD0BVD-tssFVai3A" >}} ### Server response: The server response will be 200 HTTP response with a valid JSON. Example: ``` { game: Cat fight, key: XXXX-XXXX-XXXX } ``` ### Result: - Upload only the video game key. - Don\'t upload the JSON response. - The key is like _XXXX-XXXX-XXXX_ where _X_ is a digit That\'s all folks. ## Explicación. Esta vez tengo poca información que comentar con respecto al reto. Comentaré, eso sí, algunas cosillas que respondieron por [Twitter en la cuenta de @TuentiEng](https://twitter.com/TuentiEng) o que yo creo que son necesarias para no morir de asco resolviéndolo. Las primeras dos consultas que se mencionan no las realices, ya que además de no aportar nada, te crearan confusión por que a ti no te aparecerán así. Pasa directamente a las consultas de Curl. En la presentación de Prezi, la API: pre.steam-origin.contest.tuenti.net:9876 no puede ser consultada con peticiones. Si lo haces solo recibirás respuestas de error. **Una vez creáis tener la solución de este reto 4 no olvidéis visitar el enlace al Challenge correspondiente en Tuenti que pongo al comienzo de cada entrada, ya que allí podréis descargaros los inputs y subir vuestros outputs para comprobar si vuestro programa pasa la prueba.** ## Resolución. Mi primera idea tras analizar el esquema de cómo iba la app era cargar el Load Balancer a base de peticiones, de forma que alguna de ellas respondiese desde pre.steam-origin.contest.tuenti.net:9876. Tras ver que esto no funcionaba y meditar en cómo podía funcionar, terminé en Twitter preguntando si era esto lo que había que hacer, a lo que me respondieron que no. Descartada está idea me decanté entonces a probar por hacer peticiones de distintos tipos al servidor a ver si alguna me daba más información, y esto tampoco resultó funcionar. Entonces me dio por pensar en que quizá había que editar las cabeceras, para poner la fecha un mes mas tarde, igual así el servidor se pensaría que ya había pasado la fecha de publicación y me mandaba la key. Esto tampoco tuvo éxito. Estuve mirando qué más cabeceras podría cambiar, pero no me daba cuenta de que la solución la tenía antes mis ojos: Tan solo debía cambiar la cabecera host de la petición y al hacerlo producía que la petición Get te respondiese con el resultado correcto. Espero que no te hayas quedado tan trabado como hice yo intentando resolver este reto tan sencillo. No vemos la semana que viene con el reto 5 ;) -------------------------------------------------------------------------------- title: "Resolviendo la edición Tuenti Challenge 10 con Python: Reto 3" date: "2020-05-22" -------------------------------------------------------------------------------- Toda la información de este reto fue borrada, ya que la página de Tuenti ha echado el cierre. ## **Reto 3** - Fortunata y Jacinta El nivel consistía en un homenaje al novelista Pérez Galdós. Para ello, nos daban una versión en .txt de su novela "Fortunata y Jacinta" y debíamos convertir todo el texto a minúsculas, además de identificar como palabras cada conjunto de tres o más letras con símbolos del alfabeto español. Por último, debíamos ordenarlas por frecuencia, siguiendo el orden unicode en caso de llegar a empate. Por tanto, es una prueba muy relacionada con el uso de regex, y mi propuesta de resolución fue la siguiente: {{< gist jotagarciaz 50a7f7e92b020105579b2d8e8f22f532 >}} -------------------------------------------------------------------------------- title: "Resolviendo la edición Tuenti Challenge 10 con Python: Reto 2" date: "2020-05-22" -------------------------------------------------------------------------------- Para los que no sabéis de que va el tema, aquí tenéis un enlace al [primer reto](../tuenti-challenge-10-reto-1/), donde explico un poco de qué va esto. Para los que ya habéis leído el anterior o directamente sabéis de que va el tema, en esta segunda entrada del Tuenti Challenge 10 vamos a proceder a resolver el 2º reto de este challenge. El reto 2 dice así: ## **Reto 2** - The Lucky One We really enjoy ping-pong in our office. We enjoy tournaments too. Everyone thinks she\'s the best, but that\'s far from the truth. Everyone has an inner skill si. If players i and j play a game of ping-pong, player i wins if si is greater than sj, but otherwise they lose. No two players have the same skill level. We have a ping-pong tournament coming up. Help me predict the winner! I have a list of matches and their outcome. Can you tell me who the strongest player in our office is? A unique solution is guaranteed to exist. ### Input The first line has an integer **C**, which is the number of cases for the problem. Each case starts with a line with one integer, **N**, which is the number of matches. The following **N** lines contain three integers: **A**, the number of the first player, **B**, the number of the second player, and **R**, which is 1 if A won, and 0 otherwise. Players are numbered from 1 to P, with P being the total number of players. ### Output For each case, output a line starting with Case #x: followed by the number of the strongest player. Every line should end with a new line character. ### Limits - 1 ≤ **C** ≤ 10 - 1 ≤ **N** ≤ 1000000 ### Sample Input ``` 1 3 3 2 1 1 3 0 3 2 1 ``` ### Sample Output ``` Case #1: 3 ``` Como podemos leer, en este caso nos está comentando que se está organizando un torneo de ping-pong en la oficina y queremos predecir quien lo ganará en base a partidas anteriores. Nos aseguran que solo hay un resultado y que no hay empates: o gana un jugador o gana el otro. Además, nos describen el input diciendo que recibiremos un entero **C** con el número de casos del problema. Luego para cada caso habrá un entero **N** con el número de partidos que tiene el caso. Incluso nos dice que cada partido está representado por una línea con un número para el jugador A, otro para el jugador B y el resultado que será 1 si gana A y 0 si gana B. Ojo, porque puede que te resulte confuso que 1 sea para el jugador A y 0 para el jugador B, y que al implementar el código les des la vuelta fácilmente. Por último, nos dicen que el output tendrá la forma: ``` Case #número del jugador ganador. ``` **Una vez creáis tener la solución no olvidéis visitar el enlace al Challenge correspondiente en Tuenti que pongo al comienzo de cada entrada, ya que allí podréis descargaros los inputs y subir vuestros outputs para comprobar si vuestro programa pasa la prueba.** Sabiendo esto podemos pasar a la resolución del challenge. ## **Resolución.** Al igual que para el reto anterior, te recomiendo recurrir a este apartado después de haberlo intentado. Al igual que en el reto 1, este reto 2 tiene muchas formas de resolverse, algunas más eficientes que otras. Por ejemplo, viendo que los jugadores son identificados por número, podríamos crear un array o una lista con los números de todos los posibles jugadores, de forma que cuando un jugador gana aumentamos en el indice de este un contador. Algo de este estilo: ``` jugador[id] += 1 ``` Y, por último, buscamos entre todos ellos el que tenga el indice más grande. Esta sería una buena opción ya que es fácil de implementar. Pero tenemos un problema. No sabemos cuántos jugadores hay y viendo que hay muchos partidos, podríamos fácilmente pensar que hay muchísimos jugadores. Además no sabemos si los números son consecutivos, o si vamos a malgastar mucho espacio en nuestro array en ids que no serán usados. Por lo tanto en este caso la mejor opción sería utilizar un diccionario o un set donde podamos guardar los ids que vamos leyendo y actualizar el contador. Además idealmente sería preferible que fuese ordenado por el contador, para no tener que ordenar luego este, buscando el que mayor número de partidas ha ganado. En mi caso implementé un diccionario y lo ordené a posteriori, buscando un término intermedio entre rapidez de resolución y eficiencia. Este reto 2 me resultó casi más fácil que el anterior, y mi solución final fue la siguiente: Espero que os haya gustado y que os paséis a ver el reto 3, la semana que viene. Además recordad que podéis dejarme comentarios preguntando cualquier cosa al respecto o incluso dándome nuevos puntos de vista para afrontar este reto ;) {{< gist jotagarciaz 5ea02d6db6ccb0951cf39616c8803514 >}} -------------------------------------------------------------------------------- title: "Resolviendo la edición Tuenti Challenge 10 con Python: Reto 1" date: "2020-05-15" -------------------------------------------------------------------------------- Hola. ¿Qué tal? Hoy vamos a hablar del Tuenti Challenge 10: Reto 1. A principios de mayo he podido ser partícipe de este evento de retos informáticos que realiza Tuenti todos los años. Los retos están en inglés y habrá problemas de todo tipo de dificultad, pudiéndote saltar hasta 3 retos de un total de 20 que componen el challenge. Si bien es cierto que los primeros años apenas conseguía resolver algún reto, ya llevo 2 ediciones en las que consigo avanzar un poco más. Muchos de los retos que se proponen en este concurso son retos muy sencillos en los que tienes que: 1. Sacar una posible forma de resolver el problema. 2. Plantearte si esa es la mejor opción. 3. Intentar obtener una mejor opción que te hará pasar al siguiente reto cuanto antes. Este año, además, he decidido ir publicando sus retos semanalmente con mis soluciones a ello, de forma que quien quiera practicar tenga un reto cada semana y si os quedáis atascado tengáis una solución, y que además podáis compaginarlos con el resto de tareas cotidianas. Esto también será un reto para mí, puesto que solo llegué al reto 6 y me gustaría ver como era el resto. Comenzamos así a resolver el primer reto del Tuenti Challenge 10 en el que usaré python como lenguaje de programación. El reto 1 dice lo siguiente: ## **Reto 1** - Rock, Paper, Scissors Rock, paper, scissors is an extremely fun game played all around the world. Tuenti employees even play it with their children after work. Have you ever played? Let\'s play now! ### Input The first line will contain an integer **N**, which is the number of cases for the problem. Each case is a game between two people. It’s represented by two letters separated by a space. Each letter is the chosen shape by each player. The possible values are: **R** for rock, **P** for paper and **S** for scissors ### Output For each case, there should be a line starting with Case #x: followed by the winning shape, or \'-\' when the result is a draw. ### Sample Input ``` 8 R S R P P P S P R R P R P P S R ``` ### Sample Output ``` Case #1: R Case #2: P Case #3: - Case #4: S Case #5: - Case #6: P Case #7: - Case #8: R ``` Vale. Como podemos observar, el primer reto es un problema clásico en programación. En él, tendremos que resolver quién gana en el clásico juego del piedra, papel o tijeras. Además vemos que nos darán un archivo de texto como input que contiene el número partidas que se disputarán y a continuación cada una de las partidas, con los materiales sacados por cada jugador. Nosotros como Output, deberemos sacar qué elemento gana la ronda y el número correspondiente a la ronda. En caso de que la ronda acabe en empate deberemos mostrar un \'-\' en la ronda. Este problema tiene diversas formas de resolverse correctamente, pero hay ideas que te permitirán resolverlo más rápido y eficazmente, lo que le ahorrara a tu ordenador sufrir intentando resolver este reto. \*\*Una vez creáis tener la solución no olvidéis visitar el enlace al Challenge correspondiente en Tuenti que pongo al comienzo de cada entrada, ya que allí podréis descargaros los inputs y subir vuestros outputs para comprobar si vuestro programa pasa la prueba. ## **Resolución.** Te recomiendo que antes de mirar este apartado lo resuelvas por tu cuenta, ya que es la forma óptima de aprendizaje. Por lo que he podido preguntar, la solución al reto 1 de la mayoría de la gente consiste en hacer una tabla de jugadas de 3x3 donde se apunta en cada jugada quién gana y quién pierde. Cuando se ponen a describirla algunos se dan cuenta de que podrían optimizarla, ya que hay jugadas que dan el mismo resultado, siendo estas las jugadas inversas, por ejemplo si el jugador 1 saca piedra y el jugador 2 saca papel, el resultado será que papel gana la partida, que es el mismo resultado que si el que hubiera sacado el papel fuese el jugador 1 y el jugador 2 hubiese sacado la piedra. Darte cuenta de eso ya hace que tu solución se reduzca drásticamente. Si antes teníamos que mirar en una tabla 3x3 (9 posibles situaciones) ahora tendremos una 3x2 (6 soluciones). ### Aún más eficiente: Además en este juego sabemos que los empates siempre se producen cuando ambos jugadores sacan el mismo material. Por lo que tampoco sería necesario meter en la tabla estos resultados, reduciéndose la tabla hasta covertirse en un 3x1, es decir que solo vamos a almacenar quién gana. Luego por cada ronda miramos a ver si la jugada que ha sacado en el jugador 1 gana al jugador 2 correspondiéndose con alguna de la tabla. Si es así ya sabemos cuál es el resultado del material ganador. Si no es así procederemos a revisar si ambos jugadores han sacado lo mismo, y si tampoco tenemos suerte entonces sabremos que tendremos que coger el elemento del jugador 2 como resultado. Para facilitarme aún más las cosas, en vez de usar una tabla de jugadas ganadoras, usé un dicionario, donde la clave era el material del jugador 1 y el valor el material que debería de haber sacado el jugador 2 para que el jugador 1 ganase. {{< gist jotagarciaz 92982cd28fd6b37cbca439c294407767 >}} Espero que os haya gustado este reto 1 y que os paséis a ver el reto 2 la semana que viene. Además recordad que podéis dejarme comentarios preguntando cualquier cosa al respecto o incluso dándome nuevos puntos de vista para afrontar este reto ;) -------------------------------------------------------------------------------- title: "Desbloquear Mac con Apple Watch no funciona (Solución)" date: "2019-09-07" -------------------------------------------------------------------------------- Tras actualizar mi Apple Watch series 3 a WatchOS 7, el reloj dejó de darme el servicio de poder desbloquear el Mac con él. Al intentar activar la opción me salía un mensaje de error. Decía que por favor mantuviera el iPhone y el Apple Watch desbloqueados mientras se enlazaban. La opción de desbloqueo me es muy util en el día a día. Por ello, me interesaba bastante encontrar una solución. Así que este sábado me puse manos a la obra. Y, aunque no ha sido fácil, por fin he dado con la solución. Escribo esta entrada al blog tras escuchar en el[ podcast 214 de Asilohacemos](http://asilohacemos.com/214-asi-potenciamos-un-servicio/) en el que Àlex comenta que le está pasando lo mismo. Como, tras mirar los comentarios encontré que a otro oyente también le pasa, me he animado. Para todos los que nos ha pasado, hay varios motivos por los que puede estar pasando. Y también varias pruebas que pueden ayudar a encontrar el fallo. Sin embargo, parece que la solución definitiva en este caso es la siguiente. ### Cómo desbloquear el Mac con el Apple Watch: 1. En el Mac accede al programa de _Keychain Access_ o _Acceso a Llaveros_ (es fácil de buscar con spotlight, no obstante te dejo [la guía de Apple](https://support.apple.com/es-es/guide/mac-help/mchlf375f392/mac)). 2. Una vez dentro en la barra superior deberemos de seleccionar la opción _Visualización_ y dentro de este _Mostrar ítems invisibles._ 3. Ya realizado este paso, debemos usar el buscador de la aplicación para buscar lo siguiente Auto Unlock. 4. A continuación debemos usar el buscador de Acceso a llaveros de nuevo, pero esta vez buscaremos AutoUnlock sin espacios, nos mostrará cuatro items **tlk**, **tlk-nonsync**, **class A** y **class B**. 5. Ahora debes de seleccionar todos los resultados y eliminarlos. No te preocupes que no vas a cargarte nada. 6. Ahora abre el Finder y pulsa las teclas (**⇧⌘G**) del teclado o si lo prefieres en el menú selecciona la opción **Ir > Ir a la carpeta...** y en el cuadro de texto introduce esto sin las comillas ~/Biblioteca/Sharing/AutoUnlock. 7. En Finder te saldrán ahora varios archivos, debemos de seleccionarlos y eliminarlos. 8. Reinicia el ordenador. 9. Nos vamos a: **Preferencias del sistema > Seguridad y privacidad > General > Usar el Apple Watch** para desbloquear apps y el Mac. Y mientras se esta activando mantén el Apple Watch y el iPhone desbloqueados. ### Vídeo explicativo: {{< youtube "fYoPOsGDNt0?si=YLE4VF-jy7tYoAYF" >}} En un principio con esta solución debería de empezar a funcionarnos a la mayoría. Si te sirve la solución te invito a que le compartas la publicación con más afectados. Parece que de momento Apple no ha tomado medidas para solucionar el problema y podría ser útil. Un saludo de paso a toda la comunidad Asiler y en especial a Joan y Àlex. -------------------------------------------------------------------------------- title: "¿Es posible vivir sin Google? El servicio de Google DNS" date: "2019-07-16" -------------------------------------------------------------------------------- Aquí esta la tercera parte sobre [si es posible vivir sin Google y cómo le rehuimos](../posible-vivir-sin-google-chrome/), esta vez sobre Google DNS. En la entrada anterior hablábamos sobre el navegador, ese famoso "devorador de RAM". A Chrome lo tratábamos de evitar proponiendo algunas alternativas, como las que uso actualmente: Safari o Firefox. [![monster](./iu-2.webp)(./iu-2.webp) Fuente: [Fciencas](https://www.fciencias.com/2016/10/10/google-chrome-vai-deixar-um-comilao-ram/)] Esta tercera entrega también será más corta que la primera ya que no hay mucho que contar sobre el tema. Así que nuevamente nos podremos centrar en las distintas alternativas y en las ventajas y desventajas de estas. ## ¿Qué es el Google DNS? Antes de empezar con las alternativas, debemos hablar un poco sobre el DNS de Google. Lo primero es entender [qué es un DNS y para qué sirve](../dns/). Una vez entendido el funcionamiento de este, nos es fácil comprender por qué Google está interesada en que uses su servicio de DNS. En este caso, Google usa sus DNS 8.8.8.8 y 8.8.4.4 para recabar información sobre las direcciones web que visitas. Además, se lo pones en bandeja, ya que cuando tú pones una URL, o pinchas en una, ellos se encargan en enviarle a tu ordenador la información que realmente necesita para poder entrar en la web que quieres. De esta forma, Google tiene permiso para aprender sobre las paginas web que visitas, cuándo las visitas y un largo etc. de información. ¿Cómo podemos evitar, por lo tanto, el uso de la DNS de Google? ## Alternativas a Google DNS. Lo primero que debemos realizar es una búsqueda sobre qué opción nos interesa más para sustituir el DNS de Google. Hay un montón de alternativas, todas con ventajas y desventajas. Por ello te recomiendo pasarte por páginas como esta de [Lifewire](https://www.lifewire.com/free-and-public-dns-servers-2626062). En ella hay listados con un montón de alternativas. Yo, para explicar el procedimiento, usaré [FreeDNS](https://freedns.zone/en/), cuyas direcciones para España son: - DNS primario: 172.104.237.57. - DNS secundario: 172.104.49.100. Una vez tengamos elegido nuestro DNS con sus cualidades, debemos pasar a usarlo. Pero, ¿cómo? ## Configurar DNS: La configuración de DNS la podemos realizar tanto en los dispositivos como en el router. La primera opción nos obligará a configurar los DNS de cada dispositivo que tengamos. Esto puede ser un jaleo. Aunque también te permite ajustar en cada uno el DNS que más te guste. Puedes tener, por ejemplo, un DNS rápido para un dispositivo multimedia, un DNS seguro para el dispositivo con tus cuentas bancarias y un dispositivo con otro DNS para navegar por internet. La otra opción es cambiar el DNS del router. Implica algo más de complicación normalmente que la opción anterior (aunque configurar el DNS en móviles y tablets puede llegar a resultar más difícil). La configuración del DNS del dispositivo normalmente se podrá hacer desde ajustes. Incluso algunas aplicaciones permiten tener su propia configuración de DNS, que puede ser muy interesante para terminar de ajustar nuestro dispositivo a medida. Para configurar el DNS del router necesitamos acceder a la interfaz de configuración de este. Para los que no han entrado nunca en la interfaz de configuración del router, os recomiendo buscar el router y vuestra compañía en internet. Así podréis ver cuáles son el usuario y claves por defecto. Además, encontraréis posiblemente manuales y rutas para encontrar la configuración. ## Una curiosidad. Extraer información sobre las búsquedas que hacemos a través del DNS es muy común por parte de empresas proveedoras de servicios. Tanto que Google, y sobre todo Firefox, están investigando este hecho y sacando soluciones como DNS over HTTPS, que encripta la comunicación entre puntos, de forma que se complique la extracción de información por parte de otras empresas ajenas al cometido. De hecho, Firefox ya está sacando resultados de estudios de esta funcionalidad: «DoH» o «DNS over HTTPS». Os dejo este link por si queréis [saber más acerca de DoH o DNS over HTTPS](https://blog.nightly.mozilla.org/2018/08/28/firefox-nightly-secure-dns-experimental-results/). Además, DoH, aparte de brindarnos un sistema cifrado entre el servidor DNS y el cliente, en algunos casos hará que la búsqueda sea más rápida. Todo esto ha producido también el enfado de ciertas empresas e incluso países por el uso de esta tecnología. [Como el caso de Reino Unido y sus proveedores de servicio.](https://www.zdnet.com/article/uk-isp-group-names-mozilla-internet-villain-for-supporting-dns-over-https/) Creo que con esto podemos dar por concluido el post de hoy. Pero si quieres más información sobre alguno de los puntos o que te ayude con algo, puedes dejar un comentario por aquí y intentaré echarte un cable cuando lo lea. Un saludo y nos vemos en el próximo post. -------------------------------------------------------------------------------- title: "Error en estructuras de control PHP por la sintaxis alternativa" date: "2019-07-10" -------------------------------------------------------------------------------- ## El error en las estructuras de control. Acabo de encontrarme con un problema al intentar configurar una página en Plesk para su funcionamiento en este panel de control.El problema es que la página contenía [sintaxis alternativas (alternative syntax)](https://secure.php.net/manual/en/control-structures.alternative-syntax.php) para el tratamiento de algunas estructuras de control (bucles y condicionales) con sintaxis como la siguiente: ``` A is equal to 5 ``` Primero, al buscar cómo podía configurar el servidor para su correcto funcionamiento, no me he encontrado con la solución que arreglaba este fallo. Por ello, he indagado por las configuraciones de Plesk, y allí he dado con la clave. ## La solución. Para hacerlo funcionar lo único que tuve que hacer es: 1. En el menú lateral seleccionar la pestaña de _Sitios web y dominios._ 2. A continuación, bajo el dominio en el que queremos permitir la sintaxis alternativa, seleccionamos _Configuración de PHP._ 3. Activamos `short_open_tag`. 4. Aplicamos los cambios y tras el autoreinicio del servidor debería de empezar a funcionar. Espero que si estás leyendo esto porque tienes este problema, se te solucione. -------------------------------------------------------------------------------- title: "Transferir archivos con SCP usando SSH" date: "2019-06-12" -------------------------------------------------------------------------------- Hoy vamos a enseñaros a transferir archivos con SCP usando SSH. ¿Para qué sirve esto?, os preguntaréis. Pues bien simple. ¿Alguna vez habéis querido pasar archivos a la [Raspberry](../raspberry-pi-primeros-pasos/), o a cualquier ordenador, pero no teníais instalado un servidor FTP o solo podías conectarte con SSH a la terminal? Para eso es para lo que sirve este comando. Es sorprendentemente útil, sobre todo con la Raspberry, por lo menos para nosotros. ## Los pasos del comando SCP para enviar archivos o descargarlos. Lo primero que necesitaremos es nuestra cuenta de acceso por SSH. Tiene que estar configurada en el ordenador de destino. Lo siguiente que debemos hacer es ejecutar este comando en nuestra terminal: ``` scp /ruta-al-archivo-a-enviar/archivo-a-enviar usuario@IP-de-Destino:ruta-en-el-destino-deseada ``` Si queremos subir un directorio, entonces debemos de añadir _-r_. De esta manera: ``` scp -r /ruta-al-archivo-a-enviar/archivo-a-enviar usuario@IP-de-Destino:ruta-en-el-destino-deseada ``` Para descargar un archivo desde el destino remoto a nuestro ordenador local basta con invertir el comando. Es decir: ``` scp  usuario@IP-de-Destino:ruta-en-el-destino-del-archivo /ruta-a-la-que-deseemos-recibir-el-fichero ``` Y el mismo proceso si queremos descargar un directorio. En ese caso debemos de añadir -r al comando anterior: ``` scp -r  usuario@IP-de-Destino:ruta-en-el-destino-del-archivo /ruta-a-la-que-deseemos-recibir-el-fichero ``` Y eso sería todo. La verdad es que es un comando bastante sencillo, pero creo que muy útil. Espero que os haya resultado de ayuda este breve tutorial. Nosotros lo utilizamos de vez en cuando. Sobre todo, cuando estamos trabajando con la Raspberry, donde arrancar FileZilla o conectarse al Samba, la mayoría de las veces, implica más tiempo que ejecutar este sencillo comando en la terminal. ¿Ya conocíais este comando? Los que sí, ¿lo soléis usar con frecuencia o preferís otras alternativas? Echaremos un vistazo a todas las alternativas que nos dejéis en los comentarios, como siempre. Y, si nos gustan más que esta, quizás hablemos de ellas en un futuro post. Un saludo y nos vemos en el próximo post :) -------------------------------------------------------------------------------- title: "Algunos trucos para la terminal del Mac." date: "2019-04-26" -------------------------------------------------------------------------------- Para esta serie de comandos voy a suponer que ya tienes algo de conocimiento con la Terminal y sus comandos básicos. - Comprimir un archivo con contraseña. Para ello iniciamos la terminal usamos `zip -e nombre-del-archivo-comprimido.zip /directorio-del-archivo` a comprimir. El comando también se puede usar para comprimir carpetas por lo que puede resultar muy útil por ejemplo para encriptar las copias de seguridad de tus BBDD. - Desactivar el Dashboard y ahorrar algo de recursos `defaults write com.apple.dashboard mcx-disabled -boolean TRUE; killall Dock` - Desactivar el delay al salir del Dock. `defaults write com.apple.dock autohide-delay -float 0; killall Dock` - Desactivar la animación del Dock. `defaults write com.apple.dock autohide-time-modifier -float 0; killall Dock` - Desactivar la sombra de ventanas a la hora de hacer una captura de pantalla `defaults write com.apple.screencapture disable-shadow -bool TRUE; killall SystemUIServer` - Mantener el mac despierto, para que no pierda por ejemplo la conexión a internet, o los procesos que estabas realizando. `cafeinate` Fuente: [https://www.youtube.com/watch?v=BxePMaHH878](https://www.youtube.com/watch?v=BxePMaHH878) -------------------------------------------------------------------------------- title: "Raspberry Pi Configuración Sin Perifericos" date: "2019-04-24" -------------------------------------------------------------------------------- Hola ;) El otro día, Clare me comentó que tenía que hacer un tutorial de cómo configurar la Raspberry Pi sin periféricos. Es decir, sin monitor, ni teclado, ni ratón. Solamente con el Wi-Fi o el cable de Internet. Así que a ello voy. Podréis encontrar más información al respecto si buscáis conexión headless de la Raspberry. Como ya os habrá contado ella, vamos a [utilizar una tarjeta micro SD que hará las veces de Disco Duro](../raspberry-pi-primeros-pasos/). Dentro de esta tarjeta tendréis que tener el Sistema Operativo que hayáis escogido. Una vez seguido el proceso que explica Clare aquí, deberemos hacer lo siguiente. ## Antes de meter la micro SD en la Raspberry. Lo primero es crear un archivo llamado **ssh**, pero sin ninguna extensión. Este archivo tenemos que crearlo en la raíz del SO, que normalmente coincide con la raíz de la partición boot de la micro SD. Además, si la vais a conectar por Wi-Fi, deberemos crear otro archivo. En este caso, con extensión, llamado **wpa-supplicant.conf**. Sin embargo, yo os recomendaría que el arranque inicial fuese siempre por cable, por los problemas que el Wi-Fi puede ocasionar. ## Para crear algunos archivos sin periféricos. Lo primero es crear un archivo llamado **ssh**, pero sin ninguna extensión en la raíz del S.O. que lo normal es que coincida con la raíz de la Micro SD de la partición boot. Además si la vais a conectar por Wi-Fi (para el arranque inicial siempre recomiendo por cable, por los problemas que puede ocasionar el Wi-FI) deberemos de crear otro archivo pero esta vez con extensión llamado **wpa-supplicant.conf**. ### Para editar esos archivos. Una vez creado el **wpa-supplicant.conf** deberéis abrirlo con un editor, como Notepad++ o VSCode, y añadir lo siguiente. ``` ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid=home scan_ssid=1 psk=very secret passphrase key_mgmt=WPA-PSK } ``` En este caso, home sería el nombre del router. El nombre del router, para quien no lo sepa, es el que te aparece al intentar conectarte al Wi-Fi. Y very secret passphrase será tu contraseña del Wi-Fi. Recuerda dejar estos datos entre las dobles comillas, o te dará error. Por último, guardáis el archivo y voilà. Ya debería estar todo suficientemente configurado como para poder arrancar y poder acceder a ella mediante SSH en tu ordenador. Para saber la IP de la RaspBerry, como os indica Clare que necesitáis, cada uno deberá buscarse un método. El que yo encuentro más sencillo es conectarse al router y ver la tabla de IP, para encontrar cuál ha sido asignada a tu RPi. -------------------------------------------------------------------------------- title: "¿Es posible vivir sin Google? Google chrome" date: "2019-03-20" -------------------------------------------------------------------------------- Aquí esta la segunda parte sobre [si es posible vivir sin Google o si moriríamos en el intento](../vivir-sin-google-buscador-web/). En la entrada anterior hablábamos sobre el buscador, cómo JotaGarciaz hacía años que no lo utilizaba y el motivo. En esta segunda parte trataremos sobre Google Chrome o, como por versiones anteriores se le conocía, El devorador de RAM.Esta segunda parte será mas corta puesto que seguro que ya conoces otras alternativas, por lo que no es necesario explicar el uso de otros navegadores. Centrémonos por lo tanto en listar sus competidores. ## Los competidores de Google Chrome. ### Mozilla Firefox. Sin duda uno de los más adecuados si decides proteger tu privacidad contra el gigante de Google. Actualmente es capaz de competir en velocidad contra Chrome. Puede que su interfaz sea un poco menos bonita, pero te terminas haciendo rápido a ella. Tiene muchísimos complementos que pueden resultarte útiles, como en Chrome. De hecho, muchos de ellos son comunes. Para el desarrollo web es prácticamente igual de útil en cuanto a herramientas que el de Google. Puede que para ciertas cosas incluso me parezca mejor. La compatibilidad con páginas web es bastante buena, por lo que rara es la página que funcione en Chrome pero no funcione en Firefox. Además, también ofrece versión para el móvil, aunque sinceramente cuando tenía mi antiguo BQ X5 con Android el navegador no iba muy bien, y muchas veces no era capaz ni de buscar. Espero que estos problemas hayan pasado y ya tengan un navegador móvil con el que competir contra el navegador de la casa del androide verde. ### Microsoft Edge. De los mejores navegadores que he tenido en mi BQ X5. Curiosamente el navegador es rápido y desde que salió la beta el diseño ha sido fantástico, llegando a ser por una temporada el diseño mucho más \_lean\* que el de Chrome para Android. Este navegador es el que sigo teniendo a día de hoy en el BQ X5 y siempre que lo cojo funciona perfectamente. Como contrapartida, su versión para el ordenador, como ya sabéis, es horrible. ### Opera. Opera es otra solución para evitar al navegador de Google. Hace una tiempo era el navegador por excelencia para móviles, e incluso su versión de escritorio llegó a hacerse un hueco en el mercado. Sin embargo, a día de hoy, al menos para mi gusto y los que me rodean, este navegador se ha quedado algo atrás. ### Chromium. El icono de este os sonará puesto que es el padre de Chrome. En teoría no debería de tener relación con Google y además es Open Source por lo que tú mismo puedes participar y mejorar todo lo que se te antoje y puedas. El aspecto y funcionalidad es igual que la de Chrome, como cabría esperar, por lo que tampoco vas a tener problema. Hay una versión para Android, pero no la he probado. ### Safari. Si tienes un dispositivo iOS o con MacOS estarás acostumbrado a usar este navegador. El navegador está bien y este año se han puesto las pilas en cuanto a la privacidad que este ofrece. Sin embargo, tengo varias quejas acerca de él. El navegador no sirve para cualquier página, por lo que para ciertas cosas al igual que Edge te verás obligado a cambiar a otro navegador. Las herramientas para desarrolladores son bastante pesadas de usar en este navegador, por lo que si eres desarrollador web, lo más probable es que al menos cuentes con otro navegador para trabajar. Por ultimo esto es una relación amor-odio: cuando estás usando la navegación privada, si inicias sesión en alguna web o haces una acción y luego intentas abrir una segunda pestaña de esa página, vas a tener que iniciar sesión de nuevo, ya que las cookies solo se guardan en la pestaña en la que estás usándolas. Esto puede llegar a resultarte pesado si quieres abrir unas cuantas pestañas de una web. Por otro lado, te da una mayor sensación de privacidad, que nunca está mal. ### Otros navegadores. Otros navegadores como [Vivaldi](https://vivaldi.com/) suelen luchar por llevarse a la gente que le gusta tunear todo a su manera. Vivaldi en concreto me gusta mucho por cómo se ve. Aunque, la verdad, creo que nunca le he dado la oportunidad para ver cómo funciona. ## Conclusión. Actualmente yo uso principalmente Firefox y Safari. Chrome intento no usarlo, aunque también lo tengo instalado en el Mac por si acaso. Hace un par de años sí que usaba bastante más Chrome, ya que por velocidad muchas veces machacaba a Firefox. Pero hoy en día creo que están a la par. Y cuando Edge pase a estar basado en Chromium quizás este sea una opción muy tentadora. Sobre todo para usuarios con Android y ordenadores Windows. Me gustaría saber qué navegador usáis normalmente y cuál es el motivo. Así que os invito a participar y así puedo aprender algo nuevo acerca de navegadores. Si os ha gustado el post, decídmelo para que siga haciendo nuevos posts sobre cómo evitar a Google. Un saludo y nos vemos en el próximo post. -------------------------------------------------------------------------------- title: "Nuestra Experiencia en Volvo" date: "2019-02-20" -------------------------------------------------------------------------------- Los pasados meses de Noviembre, Diciembre y Enero hemos estado trabajando en un proyecto para la Universidad, en relación con Volvo Construction Equipment. JotaGarciaz y yo, junto con otros cuatro compañeros de la carrera, teníamos que crear una aplicación Android para que nuestro cliente, Volvo CE, pudiera controlar sus máquinas autónomas desde el móvil. ![Logo de la app](logo-app.webp) Desde el primer día, nuestro contacto en la empresa fue amable y cercano con nosotros. Nos asignaron la empresa un lunes por la tarde. Como en el reparto me tocó ser el contacto con el cliente, le envié un email presentándome y pidiéndole una reunión para comentar el proyecto. Rápidamente me contestó para ofrecernos ir a la empresa al día siguiente, con un tour por ella y comida y todo. ## La toma de contacto con Volvo CE. Fuimos hasta Eskilstuna, la ciudad en la que se encuentra la sede de Volvo CE en Suecia. Fue aproximadamente una hora de viaje en autobús, que está ofrecido gratuitamente por la universidad. Llegamos a la empresa y nos apuntamos como visitantes. Nuestro contacto bajó a recibirnos y luego nos enseñó brevemente dónde trabajaba, y dónde podíamos dejar nuestras cosas. Según el horario sueco, lo primero era comer, ya que eran cerca de las 12. Después de la comida, en la que pudimos conocernos un poco mejor, procedimos a conocer todas las instalaciones. Fue un tour rápido, pero muy completo, y la verdad es que aprendimos mucho de cómo se trabajaba en la empresa y cómo querían que nosotros nos acoplásemos un poco desde fuera. Por último, tocaba la reunión que habíamos establecido para apuntar los requerimientos. Nuestro cliente nos había preparado un dossier en el que hablaba de la aplicación que quería y las máquinas autónomas en las que planeaban utilizarla. Ellos habían pensado en un plan con tres pasos: 1. Desarrollar un prototipo de la aplicación para ver si la idea era plausible. 2. Conectar el prototipo con el CoPilot, una tablet que está instalada en la cabina de control de las máquinas. 3. Conectar la aplicación con las máquinas autónomas y probarla. Aunque al principio se habló de desarrollar todos los pasos nosotros, pronto nos dimos cuenta de que el tiempo que teníamos no iba a llegar para todo. Decidimos centrarnos únicamente en el primer paso, y dejar al equipo de Volvo CE encargarse de los dos restantes cuando se nos acabara el plazo. ## El desarrollo de la aplicación. Empezamos desarrollando la documentación que teníamos que entregar en la Universidad a la par con la aplicación. Cada documento tenía sus fechas límite, y estaban bastante ajustadas, así que fuimos trabajando rápido para no dejarnos nada en el tintero. Cada semana teníamos una reunión con los profesores, en la que les enseñábamos las horas que habíamos trabajado desde la última vez que nos vimos y nuestro progreso. También cada semana teníamos una reunión virtual con el cliente. Utilizamos Skype For Business, y le enseñábamos nuestros progresos gracias a la función de presentar pantalla. De esta forma, podíamos conseguir críticas para mejorar antes de que fuese demasiado tarde. Diseñamos el Plan del Proyecto, en el que hablábamos de cómo íbamos a organizar el trabajo y las fases que tendríamos, y creábamos unos cuantos diagramas que nos pedían en clase. Luego comenzamos con el proyecto. Utilizamos Android Studio para crear el código fuente de la aplicación, y GitHub para el control de versiones. Creamos un _branch_ para cada programador, en el que íbamos subiendo nuestros cambios, y un _branch_ en el que íbamos uniendo los cambios de todos. También utilizamos GitHub como control de tareas, con su herramienta: GitHub Projects. Funciona de manera similar a Trello. Puedes crear distintos proyectos, y tareas dentro de ellos, que se pueden asignar a los programadores y a fechas de entrega. De esta forma, teníamos más controlado qué tenía que hacer cada programador. ## La entrega. Al final conseguimos hacer una aplicación que reunía la mayoría de las características que nuestro cliente buscaba. Y lo hicimos en el tiempo estipulado por la Universidad, es decir, dos meses. Concertamos con nuestro contacto en la empresa una reunión para realizar el Test de Aceptación. Teníamos que dejarle probar la aplicación en persona, y que decidiera si aquel producto era lo que él quería. Fuimos de nuevo a Eskilstuna al Test, al que nuestro contacto había invitado a otros 12 trabajadores de Volvo CE. Sin embargo, por otros compromisos, solo asistieron dos trabajadores más. Expusimos brevemente nuestro trabajo a los nuevos clientes, y luego arrancamos la aplicación en un par de dispositivos móviles para que la probaran. Nos dieron algunas críticas de cosas que podrían mejorarse, pero en su mayor parte estaban muy contentos con el trabajo que habíamos realizado. Esa noche, antes de la presentación en la Universidad, aún pudimos añadir algunas cosas de las que nos habían sugerido. ## El vídeo. En la presentación en la Universidad creamos un vídeo para que pudieran ver cómo funcionaba, que subimos a nuestro canal de YouTube. Aquí podéis verlo. [![Volvo CE CoPilot demo app](https://img.youtube.com/vi/27wzuZg3A7I/0.jpg)](https://youtu.be/27wzuZg3A7I "Volvo CE CoPilot demo app") Y nada más que añadir. Espero que os haya gustado conocer nuestra experiencia. ¡Nos vemos la semana que viene con un nuevo post! -------------------------------------------------------------------------------- title: "¿Es posible vivir sin Google? El buscador web." date: "2019-02-20" -------------------------------------------------------------------------------- ¿Es posible vivir sin Google y todos sus servicios? Muchos piensan que la pregunta es una tontería: claro que se puede. Lo único malo es que entonces vives sin poder usar Internet. Bueno, pues hoy quiero traer este debate de nuevo y ver si podemos hacer algo para vivir sin Google. Antes de empezar tengo que decir que yo llevo años intentándolo y aún no lo he conseguido. Pasemos a ver por qué, a través de algunos de sus servicios. Como este tema da para varios post, he decidido dividirlo por servicios que ofrece la compañía. De esta forma me puedo extender como es debido en este tipo de debates. Hoy empezaremos con su producto estrella: el buscador web. ## El buscador web de Google**.** Es el rey de los buscadores ¿no? Nos tiene muy bien acostumbrados a buscar algo y que sea lo que estás buscando. O quizás no es lo que estas buscando y ni siquiera te das cuenta. Por ejemplo, para los que os gusta hacer búsquedas en inglés: ¿Nunca os habéis preguntado si hay un más allá a lo que os busca Google en Google España? La respuesta es que sí, hay un más allá uno mucho más grande, pero el buscador ha decidido que, por el hecho de estar en España o tener una configuración en español, esas páginas ya no os interesan. Y los enlaces publicitarios que se colocan en primeras posiciones, ¿no te parece que sobran? bueno pues yo eso hace muchos años que ya no lo sufro, ya que uso [DuckDuckGo](https://duckduckgo.com/). Cuando estás acostumbrado a la comodidad de Google, salirte de este te cuesta. Pero si le das un tiempo de uso a DuckDuckGo, descubrirías que en realidad este buscador le da mil vueltas a Google. Es tan simple y sencillo como que sus filtros de búsqueda son mucho mejores, y que gracias a sus _shortcuts_, puedes alcanzar una velocidad en la búsqueda infinitamente mayor que con Google. Este navegador daría para un curso entero, ya que tiene muchísimas características, pero algunas de las más importantes serían las que ya he mencionado: ### Los shortcuts de DuckDuckGo. Imagina que estás intentando buscar algo, pero los resultados que aparecen en la primera página de DuckDuckGo no te convencen por lo que sea. En vez de tener que buscar en la segunda página, si piensas que Google te lo iba a encontrar antes, puedes añadir delante de la búsqueda un **!g** y al buscar pasarás a hacerlo en Google directamente. Pero no solo eso, sino que puedes hacer búsquedas en Google más rápidas y privadas que con este. Imagina por ejemplo que ahora quieres visitar Google Australia, bueno pues tan solo tienes que poner **!ga**. **!ge** es Google encrypted. Como veis, DuckDuckGo siempre será mil veces mejor que Google por el hecho que con una simple exclamación y un par de letras estás haciendo búsquedas en el propio Google, que desde Google posiblemente te costaría un par de búsquedas y clicks. Además tiene muchos shortcuts incluso más útiles que este. - Para los programadores **!gh** y buscas en GitHub. - Para los cinéfilos y seriéfilos si buscas con **!nf** estarás realizando la búsqueda en Netflix. - ¿Quieres traducir algo al inglés? **!gten**. - ¿Que te encuentras un Pokémon y necesitas sus stats? **!pokedex** y el nombre del Pokémon. Estos son solo 4 de los 11,837 shortcuts que tienen actualmente, y que puedes encontrar usando escribiendo **!** y como creas que se puede llamar el shortcut o puedes buscarlo en [https://duckduckgo.com/bang](https://duckduckgo.com/bang) o escribiendo **!bang** ;) ### Los filtros de búsqueda. Lo primero es que los más importantes aparecen en la propia búsqueda. No como Google que cada año esconde más y más sus filtros del buscador para que evites usarlos. Los tres filtros principales de DuckDuckGo son: - La búsqueda por país. Puedes seleccionar si quieres buscar por algún país en concreto (como te obliga a hacer Google), o bien enfrentarte tu mismo a un mundo de información con tan solo desactivar el toggle de este filtro. - La búsqueda segura. Como ya sabemos gracias a la [Regla 34](https://es.wikipedia.org/wiki/Regla_34) es que «Si existe, ya hay o habrá en un futuro porno de ello. Sin excepciones». Con este filtro podrás evitarlo; es muy útil para limpiar mucho contenido, sobre todo en imágenes. - Ordenar por tiempo. Esta me parece un poco menos útil, ya que muchas veces los blogs o noticias que estamos buscando no tiene la fecha correctamente configurada para ser encontrado por este navegador. Pero sin lugar a dudas es otro filtro que te ayuda a limpiar rápidamente la cantidad de información a procesar. ### La publicidad. Además, como muchos sabréis, si hay algo que me incordie más que una canción de reguetón a altas horas de la noche o en el altavoz de alguien en el transporte público, es la publicidad. No la aguanto y menos cuando por su culpa mi privacidad se ve expuesta. Gracias al buscador DuckDuckGo y otros elementos, mis búsquedas no deberían ser fuente de información para campañas publicitarias. Mis opiniones y gustos no se tienen en cuenta a la hora de buscar, por lo que las búsquedas son más imparciales. Me permiten formarme mi propia opinión sobre el contenido. Te libra de ver solo los productos de Google. Te sales de su Ecosistema y eso es un verdadero lujo. Nunca deberías depender de una única compañía para todo, y menos cuando esa compañía saca tanta información de los clientes. Usarlo en el móvil es la mejor opción que puedes optar. ¿Nunca habéis hecho una búsqueda con un dispositivo móvil y la primera página de Google era entera información de una sola compañía? Pues lo más probable es que si realizas esa búsqueda con DuckDuckGo eso no sea así. ## En resumen. Como estoy llegando a las mil palabras y no os tengo acostumbrado a tanto, voy a ir finalizando el post. No sin antes pediros dos cosas antes de marcharme: 1. Si podéis, dadnos un feedback acerca del post. ¿Os ha gustado el tema? ¿Creéis que la longitud es la adecuada? Decidnos si os gustaría que hiciese un tutorial sobre los temas que voy a ir tratando en esta serie de posts sobre cómo evitar a Google. Os estaría totalmente agradecido. 2. Además, si pudierais darle una oportunidad a DuckDuckGo usándolo por ejemplo 2 meses y luego si quieres volver a Google, agradecería que lo hicieras. Y si además nos cuentas tu experiencia tras esos meses, si le cogéis el gusto no y por qué, mejor. Os espero en la siguiente entrada y os recuerdo que ya podéis suscribiros en nuestra web para recibir todas las entradas. **¡Actualización!** Ya podéis disfrutar de la segunda parte de esta entrada: [Es posible vivir sin Google Chrome](../posible-vivir-sin-google-chrome/) -------------------------------------------------------------------------------- title: "Deshacer Particion Sd Etcher Io" date: "2019-01-30" -------------------------------------------------------------------------------- He intentado cambiar de S.O. mi raspberry pi y me he encontrado con que mi tarjeta SD estaba ya particionada, así que aquí os explico cómo solucionarlo con Etcher.io. ## Etcher.io. Mi tarjeta SD estaba particionada, y tuvimos que arreglarlo. Primero intentamos hacerlo con la Utilidad de Discos de Mac, probando a borrar las particiones. También tratamos de cambiarles el formato, y montarlas y desmontarlas. Pero nada dio resultado. Como la Utilidad de Discos de mi MacBook se nos quedaba pequeña para lo que queríamos hacer, instalé Etcher.io. ![Etcher.io](etcher-io-1.webp) Etcher.io es una aplicación que te permite particionar e instalar un nuevo Sistema Operativo desde una imagen y desde distintas unidades. En las siguientes fotos voy a enseñaros cómo usar la aplicación fácilmente. ![Etcher.io](etcher-io-2.webp) En este paso tenéis que seleccionar la imagen. Para eso, seleccionad la .img que os aparezca. ![Etcher.io](etcher-io-3.webp) Una vez que habéis seleccionado la imagen, pasáis a seleccionar el disco. ![Etcher.io](etcher-io-4.webp) ![Etcher.io](etcher-io-5.webp) En mi caso, seleccioné ese, porque es el que quería unificar: la tarjeta SD. No va a poner el nombre que le hayáis dado a la tarjeta, si no la ranura del ordenador en la que esté introducida, como podéis ver en las fotos. ![Etcher.io](etcher-io-6.webp) Y, a continuación, clicáis en FLASH! para que comience la operación. ![Etcher.io](etcher-io-7.webp) Os pedirá la contraseña del usuario para permitir la operación. La introducís, y la operación comenzará. ![Etcher.io](etcher-io-8.webp) ![Etcher.io](etcher-io-9.webp) Como veis, la barra se va llenando lentamente y cambiando de color según la tarea que esté llevando a cabo. ![Etcher.io](etcher-io-10.webp) Y, por último, habréis terminado. ## Más entradas sobre Raspberry Pi. Este artículo es sencillo porque es un añadido a la serie de entradas sobre la Raspberry Pi que estoy haciendo. Quería explicar en detalle cómo solucionar este problema por si a alguno de vosotros os ha ocurrido como a mí sin abusar del post principal, que está enlazado arriba. Si queréis saber más sobre mi proceso de introducción en este mundillo, buscad el resto de entradas para haceros una idea. ¡Nos vemos! -------------------------------------------------------------------------------- title: "Pages: cambiar inicio de los números de página." date: "2018-12-19" -------------------------------------------------------------------------------- Hoy he conseguido encontrar cómo podemos ocultar los números de la primera página en Pages. Sí, esa página que solemos usar como portada. Sabemos que a nadie le gusta que esté enumerada. Para ello podemos seguir este vídeo de La Isla del Faro en YouTube: [![Como quitar los números en la primera página en Pages](https://img.youtube.com/vi/MnYqiR55Wis/0.jpg)](https://www.youtube.com/watch?v=MnYqiR55Wis "Como quitar los números en la primera página en Pages") La verdad es que, acostumbrado a Microsoft Word, me ha costado bastante dar con ello. Además, es difícil encontrar una página web decente que lo resuelva. Así que, tras investigar un rato, he descubierto que lo más fácil para mí es seguir el vídeo que hemos creado para vosotros: ``` 1. Seleccionamos arriba a la derecha Documento. 2. A continuación, en las opciones que nos aparecerán, hacemos click en Ocultar en la 1ª página de la sección. ``` Y en un principio eso sería todo para ocultar el pie de página con el primer número de la portada. Fácil, ¿verdad? ## Cómo resetear la cuenta tras la portada en Pages. Ahora que tenemos esto, ¿cómo reseteamos la cuenta para que la segunda página sea nuestra página número uno? Para eso también os hemos preparado un vídeo tutorial: [![Como elegir donde comienzan los números en Pages](https://img.youtube.com/vi/1NsPGKZ7Drk/0.jpg)](https://www.youtube.com/watch?v=1NsPGKZ7Drk "Como elegir donde comienzan los números en Pages") En este caso el proceso es algo más complicado. En el vídeo, volvemos a repetir el proceso anterior, para dejarlo claro, y a continuación pasamos a reiniciar la cuenta. Para ello hacemos lo siguiente: 1. Nos vamos a la página en la que queremos empezar la cuenta y seleccionamos cualquier cosa en ella. 2. En el apartado Documento, subapartado Sección, seleccionamos Crear una nueva sección. 3. Continuando con la página en la que queremos empezar la cuenta, desmarcamos Ocultar en la 1 página de la sección. 4. Por último, marcamos la opción de empezar en 1. Por el momento esta es la única forma que he encontrado para conseguir solucionar esto. La verdad es que me parece un tanto complejo, sobre todo siendo algo tan básico. No sé si hay una forma mejor de conseguir este cometido. Si la conoces y quieres contárnosla somos todo oídos. Y si no conoces nada mejor de mientras puedes seguir con este tutorial, que actualizaré si descubro algo mejor. La verdad es que nosotros ahora usamos mucho Pages porque desde High Sierra y Mojave, esta aplicación tiene opción para colaborar entre varios usuarios en el mismo documento. Lo usamos para nuestros Apuntes y nos viene de perlas para usarlos desde el Mac, desde el iPhone... En general, estamos muy contentos. Sobre todo Clare, que ha visto que aumenta su productividad y los documentos quedan mejor estéticamente también. Un saludo y hasta la próxima :) -------------------------------------------------------------------------------- title: "Raspberry Pi Primeros Pasos" date: "2018-12-04" -------------------------------------------------------------------------------- Hace unos meses, decidí comprarme una Raspberry Pi y empezar a aprender cómo funciona y todas las cosas que se pueden hacer con ella. He decidido hacer unos cuantos posts en los que iré explicando todo lo que he aprendido sobre ella con JotaGarciaz, que ya tenía una. Este será el primero, y en él hablaré de todo lo que tengo nuevo. ## ¿Qué necesitas? ![Raspberry](raspy.webp)Lo primero: una **Raspberry**. La mía es la Raspberry Pi 3B+. Sin embargo, si tenéis una anterior también vale. ![Cable](hdmi.webp)Un cable **HDMI** para poder conectar la Raspberry a cualquier pantalla. En concreto, yo la conecto a la televisión, pero cualquier pantalla, como la de un ordenador de sobremesa, valdría. ![Carcasa](carcasa.webp)Una **carcasa** para la Raspberry. Esto es opcional, aunque a mí me ha parecido muy útil a la hora de conservar mejor todas las conexiones que tiene la RPi al aire. Cualquier carcasa vale, mientras esté pensada para tu modelo de Raspberry en específico, e incluso a veces puedes comprar la RPi ya con una carcasa. ![Sandisk](sd.webp)Una **tarjeta SD**. Esta tarjeta, que yo tengo de SanDisk de 32GB, y como mínimo debería ser de 16GB (más de 8), sirve como la memoria de la RPi. Así que es muy importante. Es también importante que sea de clase 10, para que sea rápida. Os dejo un enlace para nuestra tarjeta, porque realmente creo que es de las mejores. Perfecta para la Raspberry, desde luego. Podéis comprarla [aquí](https://www.amazon.es/Tarjeta-SanDisk-microSDHC-adaptador-velocidad/dp/B073JWXGNT). ![Cargador](cargador.webp)Y, por último, un **cargador**. La Raspberry necesita estar conectada a la corriente para poder funcionar. Es por esto que necesitas un cable que se conecte a la corriente. El mío tiene un interruptor para apagar la Raspberry sin desconectarla de la corriente, pero no es necesario. De hecho, es mejor que no tenga el interruptor porque es un punto en el que falla. Además, otra cosa que es importante es que el cargador recomendado para la 3b es uno de 3a. Y también se puede decir que no es necesario el interruptor porque la Raspberry consume tan poco que, dado el uso que suele tener, está destinada a estar siempre encendida. ## Algunos consejos. Tanto la pantalla, como un ratón y/o un teclado, son solamente necesarios al principio, cuando tienes que configurar la Raspberry por primera vez. El resto de veces que la utilices podrás hacerlo desde tu propio ordenador portátil, que es como yo lo hago, y como lo considero más cómodo. JotaGarciaz siempre dice que es opcional, pero si quieres usarla como un ordenador normal también puedes. También puedes hacerlo sin ratón ni teclado, pero es algo más complicado. Seguro que JotaGarciaz puede ponerse a preparar un tutorial de cómo hacerlo para vosotros. Lo traeremos también. De hecho, si optáis por este método el HDMI sería opcional también. ## Siguientes posts sobre la Raspberry. Dentro de poco iré haciendo más artículos en los que hable de todo lo que JotaGarciaz me ha enseñado sobre mi nueva RPi. Así que, si queréis aprender, estad atentos. El siguiente post es [RPi: Sistemas Operativos](../raspberry-pi-configuracion-sin-perifericos). -------------------------------------------------------------------------------- title: "El cuento de la lechera." date: "2018-11-28" -------------------------------------------------------------------------------- Hoy he decidido analizar un cuento español. En concreto, [El cuento de la lechera](http://www.materialesdelengua.org/LITERATURA/TEXTOS_LITERARIOS/CUENTOS/contar/lechera.htm), muy conocido, sobre todo en el mundo del Marketing. Empecemos con la historia para quien no la conozca. ## El cuento ![dibujo](http://laisladelfaro.local/wp-content/uploads/2018/03/dibujo_cuento_de_la_lechera1-294x300.jpg) Fuente: [Huelva Sur Libre](http://huelvasurlibre.blogspot.com.es/2011/10/felix-maria-de-samaniego.html) | Blog. _Una lechera llevaba en la cabeza un cubo de leche recién ordeñada, y caminaba hacia su casa soñando despierta. Como esta leche es muy buena, se decía, dará mucha nata. Batiré muy bien la nata hasta que se convierta en una mantequilla blanca y sabrosa, que me pagarán muy bien en el mercado. Con el dinero, me compraré un canasto de huevos y, en cuatro días, tendré la granja llena de pollitos, que se pasarán el verano piando en el corral. Cuando empiecen a crecer, los venderé a buen precio, y con el dinero que saque me compraré un vestido nuevo de color verde, con tiras bordadas y un gran lazo en la cintura. Cuando lo vean, todas las chicas del pueblo se morirán de envidia. Me lo pondré el día de la fiesta mayor, y seguro que el hijo del molinero querrá bailar conmigo al verme tan guapa. Pero no voy a decirle que sí de buenas a primeras. Esperaré a que me lo pida varias veces y, al principio, le diré que no con la cabeza. Eso es, le diré que no: ¡así!_ _La lechera comenzó a menear la cabeza para decir que no, y entonces el cubo de leche cayó al suelo, y la tierra se tiñó de blanco. Así que la lechera se quedó sin nada: sin vestido, sin pollitos, sin huevos, sin mantequilla, sin nata y, sobre todo, sin leche: sin la blanca leche que le había incitado a soñar._ ## Comentario. Si lo analizáis un poco, os daréis cuenta de que la moraleja del cuento es muy sencilla. > No sueñes con lo que podrías conseguir en el futuro. Confórmate con lo que tienes hoy y no hagas nada por mejorar; no vaya a ser que empeores. Al escucharlo por primera vez, puede parecer una tontería. ¿Qué clase de moraleja es esa? Pero, si lo relacionamos con la cultura española, vemos en él reflejado su miedo a emprender. Esta y muchas otras referencias culturales han provocado que a los españoles nos dé miedo soñar con lo que podríamos mejorar si arriesgamos nuestro tiempo y un poco de nuestro dinero. Además, tenemos miedo de ser considerados como fracasados, si nuestro proyecto no acaba bien. Para un americano, por ejemplo, a este cuento le faltaría el final. ¿Por qué? Porque, aunque la lechera hubiera roto el cántaro, eso no tendría que ser un fracaso. La lechera podría haber adquirido cierta experiencia que le hubiera hecho mejorar su negocio. Por ejemplo, buscar un medio más estable que el cántaro para el transporte. Puede que su primer modelo de negocio fallase, pero no por ello ha fracasado. Tiene la oportunidad de pivotar y mejorar, para conseguir el éxito. Por estos motivos, creo que a veces hasta los cuentos tradicionales son importantes. Pueden afectar a la economía de un país, incluso. Si los españoles cambiásemos nuestra forma de pensar quizás tendríamos negocios mucho más interesantes. O, a lo mejor, incluso muchas más empresas multinacionales, y de prestigio mundial. ## Relación con el blog. Puede que penséis que este post no tiene mucho que ver con La Isla del Faro, o con nosotros. Sin embargo, una de mis pasiones es el emprendimiento. Y me gustaría motivaros a que intentéis cambiar ese chip del conformismo español y buscar la felicidad, que te va a dar el trabajo de tus sueños. Además, si tienes algún proyecto de empresa relacionado con tecnología, o si dependéis de ella para avanzar, recordad que estoy aquí. Podéis contactar conmigo si necesitáis ayuda, colaboración o daros a conocer. Un saludo y hasta otro post ;) -------------------------------------------------------------------------------- title: "Feed RSS" date: "2018-11-14" -------------------------------------------------------------------------------- ¿Cómo os apañáis vosotros para estar al tanto de nuevos artículos de vuestros blogs favoritos? Sé que mucha gente utiliza las redes sociales, como Twitter o Facebook. De esta forma, si el escritor anuncia un nuevo artículo con un Tweet, están enterados. Sin embargo, a mí no me gusta estar pendiente de las redes sociales para esto. Así que he decidido dar lo que muchos considerarían un paso atrás a nivel tecnológico. Voy a volver a usar los famosos feed RSS. Y la verdad es que, a día de hoy, me siguen pareciendo la mejor opción para estar al tanto. ## ¿Qué es un feed RSS? Los feed RSS son archivos que mandan algunas webs. Estos archivos contienen ítems, que a su vez suelen contener el título, IRL y alguna información más de las entradas del blog. También pueden ser noticias de un portal de noticias, artículos de revistas, etc. ## ¿Para qué se utilizan estos feed RSS? Con ellos podemos utilizar aplicaciones o webs, que comprueban su hay artículos nuevos en las webs que tengan activo el servicio de RSS. En mi caso, por ejemplo, he decidido empezar a utilizar [RSS Bot para Mac](https://itunes.apple.com/es/app/rss-bot-news-notifier/id605732865?mt=12). Esta app coloca un icono en la barra de herramientas de nuestro Mac, que cambiará de color cuando haya nuevos artículos para leer de los blogs que sigas. - ![RSS](rss.webp) Así es como se ve cuando no hay artículos nuevos para leer. - ![RSS](rss-active.webp) Y así es como se ve cuando sí hay notificaciones nuevas sobre artículos por leer. A mí me está funcionando muy bien, así que si alguien se anima a utilizar RSS os la recomiendo. Una vez instalada la app, deberemos empezar a añadir los RSS de las páginas que queremos seguir. Hoy en día, esto se ha complicado bastante. Hace un tiempo, era muy popular añadir un icono de RSS en las páginas, así que era muy fácil encontrarlos, sin embargo, en la actualidad tendremos que buscarnos la vida para encontrarlos. La mayoría de los blogs usan WordPress, así que si es el caso podrás probar a introducir la URL de la página y añadir /feed al final. Por ejemplo: - [acabadoene.es/feed](http://acabadoene.es/feed) - [minimalismo.com/feed](https://minimalismo.com/feed) Otros blogs son más complicados de conseguir. De los que yo sigo, por ejemplo, el de Microsoft Azure. Tuve que indagar bastante por la web, pero aquí lo tenéis: [azurecomcdn.azureedge.net/es-es/blog/feed/](https://azurecomcdn.azureedge.net/es-es/blog/feed/) Es por esto que, si quieres seguir muchas webs, al principio vas a tener que investigar bastante. Pero creo que en poco tiempo compensa el esfuerzo inicial con creces, por lo que te animo a hacerlo. Y por último, como un añadido, os dejo la RSS del blog que tienen montado los de Tuenti: [tuenti.socialmood.com/feed](http://tuenti.socialmood.com/feed) -------------------------------------------------------------------------------- title: "Slides Carnival" date: "2018-10-17" -------------------------------------------------------------------------------- [Slides Carnival](http://www.slidescarnival.com/es/) es una solución cómoda y rápida a mantener un estilo coherente y visualmente sencillo en presentaciones de PowerPoint. Esto se hace ofreciendo plantillas ya diseñadas. Si preferís, también tenemos un vídeo resumen de este artículo: https://youtu.be/gTNfzRHYIhE ## Tipos de plantillas y cuándo utilizarlas para presentaciones. Entre los tipos de plantilla encontraremos las siguientes: #### Formales. Las plantillas formales están basadas en un color principal y líneas rectas que aportan seriedad al diseño. En función del ámbito de trabajo para el que se está desarrollando la presentación se pueden escoger colores más atrevidos, o más sobrios. Por ejemplo, para una presentación de negocios utilizaría plantillas como la [Laertes](http://www.slidescarnival.com/es/plantilla-para-presentacion-gratis-laertes/2044), la [Mowbay](http://www.slidescarnival.com/es/plantilla-de-presentacion-gratis-mowbray/1945) o la [Vicentio](http://www.slidescarnival.com/es/plantilla-para-presentacion-gratis-vicentio/1013). Cada una de ellas tiene un ámbito de destino en mente; la Mowbay es un poco más tecnológica, y la Vicentio más dedicada al derecho, pero pueden ser ambiguas con un poco de cuidado. #### Que inspiran. Sirven para charlas motivacionales o para hablar de una biografía o algún aspecto artístico. Se basan en textos grandes, imágenes de fondo y colores llamativos y acuarelados. Para hablar de un tema artístico ambiguo se puede utilizar la [Eglamour](http://www.slidescarnival.com/es/plantilla-de-presentacion-gratis-eglamour/1947); para escritura o editoriales la [Quintus](http://www.slidescarnival.com/es/plantilla-para-presentacion-gratis-quintus/1415), y para presentaciones basadas en la fotografía, la [Katharine](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-katharine/472). #### Creativas. Se repiten algunas de las anteriores, sobre todo de la categoría de Slides Que inspiran. Sin embargo, hay algunas propias, como la [Dolabella](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-dolabella/844), muy útil para hablar de historia, o la [Snug](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-snug/700), que se basa en los colores amarillo y negro para dar un contraste y jugar con la intensidad de los colores en presentaciones de proyectos innovadores y con muchas imágenes de colores saturados. #### Sencillas. Las sencillas basan su diseño en darle importancia al contenido, manteniendo las características en colores de fondo y pequeños matices como alguna palabra subrayada o líneas gruesas para poder transmitir información importante sin que la presentación quede infravalorada por un fondo blanco y llano que denote falta de dedicación al estilo. En este ámbito las que más recomiendo son la [Arvirargus](http://www.slidescarnival.com/es/plantilla-para-presentacion-gratis-arvirargus/1105), para trabajos o proyectos empresariales; [Viola](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-viola/571), para una presentación comercial o informativa; y [Desdemona](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-desdemona/515), para clases o público jóven. #### Startups. Son las plantillas más alegres y entretenidas, con formas, iconos y colores brillantes, llenas de fotos y fondos difuminados, para que la empresa que estás creando pueda venderse de manera fácil y divertida. De este estilo puedo destacar cuatro: la [Kent](http://www.slidescarnival.com/es/plantilla-de-presentacion-gratis-kent/1897), la [Ganymede](http://www.slidescarnival.com/es/plantilla-para-presentacion-gratis-ganymede/1008), la [Nathaniel](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-nathaniel/542), y la [Hamlet](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-hamlet/503). Depende del estilo de startup, unas irán mejor que otras. #### Elegantes. Aquí ya depende del concepto que cada uno tenga de elegante. Yo he seleccionado algunas que permiten hablar sobre ocio y belleza, con algún toque divertido para no resultar demasiado sobrias. Por ejemplo, la [Helicanus](http://www.slidescarnival.com/es/plantilla-de-presentacion-helicanus/1995), la [Yorick](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-yorick/1353) o la [Ophelia](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-ophelia/553). #### Divertidas. Plantillas creadas para una temporada en especial, como Halloween o Navidad. En este contexto podemos encontrar la [Halloween 2017](http://www.slidescarnival.com/es/plantilla-para-presentacion-gratis-halloween-2017/2078), o la[ Navidades 2015](http://www.slidescarnival.com/es/plantilla-gratis-para-presentacion-navidades-2015/995). #### Negocios. Es la categoría en las que se reúnen todas las que pueden enfocarse a una presentación de negocios, es decir, elegantes y con algún toque especial. De estas podemos poner como ejemplo la [Salerio](http://www.slidescarnival.com/es/plantilla-para-presentacion-gratis-salerio/1878), la [Ulysses](http://www.slidescarnival.com/es/plantilla-de-presentacion-gratis-ulysses/1798), o la [Gremio](http://www.slidescarnival.com/es/plantilla-para-presentacion-gratis-gremio/1606), enfocada en mensajes corporativos. Me parece una herramienta cómoda y útil para poder hacer presentaciones rápido sin que parezca que le has puesto muy poco empeño al diseño de la presentación, y estoy segura de que voy a utilizarlo mucho de ahora en adelante. -------------------------------------------------------------------------------- title: "La importancia de las URL en el SEO" date: "2017-11-13" -------------------------------------------------------------------------------- Hoy en día todo el mundo habla de posicionarse en Google. Hay un montón de estudios de buena praxis, e incluso Google tiene su propia [guía para principiantes de Google](https://static.googleusercontent.com/media/www.google.es/es/es/webmasters/docs/guia_optimizacion_motores_busqueda.pdf), que te inicia en el SEO. Te recomiendo que le eches un ojo, porque quién va a explicarte mejor qué debes hacer para indexarte en Google que ellos mismos. Las URL, aunque parezca mentira, también juegan un factor importantisimo a la hora de indexarte en Google. Por ello, mi recomendación personal es que programéis vuestra web con URL amigables o \'_pretty URL_\'. ## URL amigables para el SEO. ![Ejemplo URL amigable](image.webp) Ejemplo de URL amigable: [laisladelfaro.com/about-jgarcia/](http://laisladelfaro.com/about-jgarcia/) Las URL amigables, a diferencia de las convencionales, son URL que son perfectamente entendibles por un usuario de la página. Es decir, este sabe lo que está pasando al entrar en esa dirección. Por ejemplo, una URL amigable puede ser medida.com/volumen/metro-cubico. Esta URL, que me acabo de inventar sobre la marcha para medida.com, ayudará al usuario a identificar que dentro de medida se encuentra en el apartado de medidas de volumen, dando a intuir que puede haber otros apartados como el apartado distancia, y a su vez está informándose sobre metro cúbico. Como podrás ver he puesto metro-cubico sin acentos y con un guion en medio separando las palabras. Esto es así porque con un - en medio en la mayoría de casos en informática y en concreto en Google se identifica que son dos palabras distintas. En cambio, si pones guion bajo u otras alternativas que se te puedan ocurrir, le dificultarás el trabajo a Google. Por otro lado, muchos ya sabréis también que las tildes no son muy amigas de la informática y que muchas veces no se interpretan como deben. Por esto, es importante evitarlas. Como verás, esa URL se interpreta mucho mejor que una URL convencional (como podría ser medida.com?p=12), donde no sabríamos que está pasando. ![Ejemplo URL no amigable](image2.webp) Ejemplo de URL no amigable. ## Agrupaciones. Gracias a las agrupaciones, como en el caso de la pretty URL con /volumen/, Google va entender que eso puede ser una categoría. Esto hará que, posiblemente, al cabo del tiempo tu página se muestre en Google con enlaces a las categorías. Esto hará que tu página ocupe más en los resultados de Google y, por lo tanto, llame más la atención. Por si tienes dudas a la hora de planificar tus URL, Google da más importancia a lo que aparece más a la izquierda. Así, por ejemplo, en medida.com daría más importancia a medida.com. Luego, con algo menos de importancia, estaría volumen y, por último, metro-cubico. Por lo tanto, en un principio será más fácil que nos encuentren si buscan medida o buscan volumen que si buscan metro-cubico. -------------------------------------------------------------------------------- title: "DNS" date: "2017-11-03" -------------------------------------------------------------------------------- Hola de nuevo. En mi afán por que todo el mundo monte su propia página web, aunque solo sea por experimentar, he decidido escribir este pequeño artículo sobre DNS. Creo que es bastante importante si ya habéis comprado un nombre de dominio. También si ya tenéis la web alojada en algún sitio. Es importante porque con él podrás hacer la interconexión entre ambos. ![Google DNS](https://cloud.google.com/images/products/dns/global-dns-network.png?hl=es) ## ¿Qué es el DNS? Muchos conoceréis que los dispositivos, cuando se conectan a internet, pasan a estar identificados por un número largo llamado IP. Un ejemplo de IP sería **192.168.1.1**. Es decir, a groso modo, cualquier dispositivo tiene una IP en internet. Esto también involucra a los servidores de paginas web, y gracias a ello nosotros podemos entrar en ellas. Así pues, por ejemplo el que os he puesto no llega realmente a salir a internet, es una IP local. Por ello, si intentas meter esa IP en la barra de direcciones de tu navegador, como mucho entrarás a la configuración de tu router. En cambio, si escribes **216.58.210.131 o 74.125.29.101**, verás como entras a Google. Así es como navegamos realmente por internet, aunque nosotros no lo sepamos. Y no lo sabemos por culpa del DNS. El DNS es el **D**omain **N**ame **S**ystem o, en castellano, Sistema de Nombres de Dominio. Nos permite decorar nuestra IP de forma que cuando alguien pregunte por una dirección por ejemplo **http://google.es** esta dirección se interprete como **216.58.210.131.** Podemos imaginarnos los DNS como una gran tabla en la que hay nombres de webs y su correspondencia de IP, para que cuando queramos buscar una página mediante su nombre podamos acudir a él, ver cuál es su IP y entonces entrar con ella. Todo esto es invisible para el usuario final, pero útil de saber para el encargado de la web. ## ¿Por qué los dominios tienen dos DNS? Muchas veces nos encontraremos con dominios que tienen dos DNS. Esto se hace así por precaución ya que, como todo en informática, puede fallar. En ese caso, podría ser que se cayese algún DNS. Así que, para que la gente pueda seguir conectándose mientras el DNS falla, hay un DNS secundario al que se le podría consultar por la IP del dominio. ## Configuración de DNS. Si tienes comprado un dominio, podrás buscar en el sitio en el que lo compraste hasta encontrar una sección que te permita configurarlo. Estos son algunos de los ajustes que puedes hacer: #### DNS Tipo A En este apartado tendremos que poner la IP de nuestro servidor, VPS y el hosting en el que tengamos almacenado nuestra web. De esta forma, cuando se pregunte por el nombre de dominio, este devolverá la IP de nuestro servidor, y por lo tanto la web si lo tenemos bien configurado. #### DNS Tipo AAAA Este apartado sirve para las IPv6, que son más largas que las IPs antiguas, llamadas IPv4. Estas IPv4 son como los ejemplo de IPs anteriores. Un ejemplo de IPv6 sería 2001:0db8:85a3:08d3:1319:8a2e:0370:7334. Las IPv6 se sacaron principalmente para ser utilizadas cuando se agotasen las IPv4. La configuración sirve para lo mismo que las anteriores. El único cambio es que introducimos la IPv6 de nuestro servidor en caso de tenerla. #### DNS Tipo MX Si tenemos un servidor de correo y queremos mandar correos con nuestro nombre de dominio en este apartado deberíamos colocar la IP de nuestro servidor de correos. Con esto me refiero a crear direcciones de correo, por ejemplo, como podría ser la de [La isla del faro](https://www.laisladelfaro.com): noreply@laisladelfaro.com #### DNS CName Para enmascarar otra web a la que te dirijas. Por ejemplo: www.laisladelfaro.com podría pasar a ser la laisladelfaro.com Para el caso que he puesto como ejemplo, bastaría con poner en este apartado _laisladelfaro.com_ y listo. #### DNS TXT Para añadir texto con un identificador. Así por ejemplo, en vez de subir un archivo de verificación que te pide Google al inscribir tu sitio en Google webmasters, puedes poner el valor en este DNS y Google te lo validará como si hubieras subido el archivo. ## Si mi proveedor de dominios no tiene la configuración de DNS, ¿qué hago? Podremos usar Dynahosting, aunque la configuración es complicada y no conozco ningún tutorial bueno para facilitar el link. Si conseguís alguno bueno, por favor hacédmelo llegar, para que cuelgue el link aquí. Y, en un principio, esto sería todo lo que considero necesario conocer si uno se plantea configurar un dominio para que apunte a su página web. Si queréis seguir trabajando en ello, lo siguiente que os recomendaría hacer para vuestra web es [instalar un certificado SSL](http://laisladelfaro.local/https-certificado-ssl/). -------------------------------------------------------------------------------- title: "Personalizar la barra del navegador (Theme-color)" date: "2017-10-13" -------------------------------------------------------------------------------- Desde hace ya un tiempo, navegadores como Chrome (creo que solo en su versión Android), Vivaldi y otros adaptan el color del navegador (theme-color) según la página a la que entres. Así, por ejemplo, Facebook pasa a ser azul, y laisladelfaro.com se ve así: ![example theme color](themecolor.webp) La zona de la barra de búsquedas es de un color naranja, semejante al theme-color (color clave) del esquema de la página. Esto es algo que, en mi opinión, armoniza el aspecto de la página en el buscador, y me sorprende que la mayoría de las páginas web hayan mantenido el theme-color que viene por defecto. Sobre todo si este color no encaja con su diseño. Me sorprende, no solo porque da un aspecto visual diferente y llamativo, sino porque Google premia este elemento mejorando el valor de la web en el posicionamiento. ## **Cómo se hace:** Realmente es muy sencillo. Para que nuestra página web cuente con ello basta con añadir lo siguiente al `` del código: `` ## **En cuanto al theme-color.** Cada página debería tener un esquema de colores principal, que contenga dos colores base y al menos un color de contraste. Por ejemplo, los colores base de laisladelfaro.com son el blanco y el naranja, y el color contraste es el rojo. Así, podéis escoger entre uno de vuestros colores complementarios o de contraste para la barra de menú. Depende de la claridad de vuestros colores complementarios, a lo mejor contrastar puede darle un toque divertido, y viceversa. Por ejemplo. Si la paleta de colores de vuestra web es neutra (basada en blancos, cremas y beiges), tenéis dos opciones: - Darle un toque tranquilo, con una barra de menú en color crema. - Darle un toque divertido, con una barra llamativa, en vuestro color de contraste. ![](themecolor1.webp) Si vuestra paleta es pastel, podéis hacer la barra en un color más oscuro dentro de la misma gama, como por ejemplo azul eléctrico en una página azul pastel, etc. ![](themecolor2.webp) Y, en cambio, si tenéis una paleta de colores agresiva, con colores azules oscuros, como Facebook, yo os recomendaría utilizar un color que ya hayáis empleado en el fondo, en el logo, o el otro lugar. ![](themecolor3.webp) A continuación os dejo un enlace donde explican los diferentes colores de contraste y complementariedad para el diseño: [Rueda cromática](https://color.adobe.com/es/) Así que si tienes una página web y te parece un tema interesante, prueba a añadir la etiqueta. O, si conoces a alguien que tiene una, comparte este artículo con ellos para que lo hagan.Si necesitáis ayuda podéis contactar conmigo, porque creo que es un elemento que merece la pena tener. -------------------------------------------------------------------------------- title: "HTTPS y Certificado SSL" date: "2017-01-08" -------------------------------------------------------------------------------- # **Hypertext Transfer Protocol Secure** (_Protocolo seguro de transferencia de hipertexto_) El HTTPS es un modo de navegación web seguro, presente en muchísimas páginas web en la actualidad. Este modo es muy reconocido por estar representado con un candado verde. Se puede conseguir instalando un certificado SSL en nuestro servidor o hosting (si necesitáis ayuda con la configuración dejad un comentario o escribirme un email y estaré encantado de crear un tutorial para ello). ## **Certificado SSL** Este certificado sirve para brindar seguridad a visitantes de su página web. Es una manera de decirles a sus clientes que el sitio es auténtico, real y confiable para ingresar datos personales. El certificado SSL es un protocolo de seguridad que hace que sus datos viajen de manera íntegra y segura. Es decir, la transmisión de los datos entre un servidor y usuario web, se encriptan de manera que los usuarios mediante una clave pueden recibir los datos del servidor y descifrarlos y al revés. Así los datos sólo pueden ser interpretados por los clientes y el servidor, ya que los datos viajarán cifrados. Evitando así que si alguien capta los datos por el camino (Man-in-the-middle) pueda leerlos. ## **¿Cómo conseguir nuestro certificado SSL?** Tenemos dos posibilidades para generar un certificado SSL para nuestra web:- - #### **Autogenerado:** Tú puedes crear tus propios certificados SSL, si alguien tiene interés en autogenerarse un certificado que me pregunte por ello y crearé un tutorial. Esta solución suele ser poco útil en web porque los certificados autogenerados no suelen estar reconocidos por los navegadores web, así que si estamos usando Chrome por ejemplo e intentamos entrar a una web con un certificado autogenerado lo más probable es que nos encontremos con esto.Evidentemente este mensaje puede provocar que muchos usuarios potenciales terminen marchándose por su seguridad. Por tanto autogenerarse un certificado no suele ser muy recomendado, sobre todo si la principal fuente de ingresos de la empresa será su web.![Google](peligroso.png) - #### **Entidades certificadoras:** Esta es la segunda opción que tenemos para conseguir nuestro certificado. Consiste en encargarle a una empresa externa que certifique nuestra web. La ventaja de esta segunda opción es que la mayoría de las Entidades Certificadoras sí están reconocidas por nuestro navegador (que en el caso de las imagenes expuestas es Chrome). Por lo que al entrar en la web nos encontraremos con una de estas alternativas:![Google](no-es-seguro.png)![Google](seguro.png)Estas alternativas parecen mejores que la anterior, por lo que ya habremos optimizado la web en ese aspecto. La diferencia entre “Seguro” e “información o no seguro” reside en que a la segunda le faltan que ciertas peticiones de la web sean administradas por HTTPS. Por ello bastaría con solucionar el problema de estas peticiones para que se nos ponga “el candado verde”.Como contrapartida a conseguir el certificado por una entidad certificadora es que estas empresas suelen cobrar bastante dinero por generarlo. Dependiendo de la empresa y del tipo de certificado SSL que te vendan, podemos estar hablando desde los 60€ hasta cientos de € al año. Por lo que para pequeñas empresas puede suponer un gran sacrificio.Lo bueno es que hoy en día contamos con alguna entidad certificadora que te los hace gratis como por ejemplo [Certbot](https://certbot.eff.org/), y gracias a este tipo de certificadoras gratuitas, las grandes empresas certificadoras están abaratando mucho sus precios y permiten que todas las web se puedan permitir tener una página segura.Si necesitáis ayuda para generar certificaciones con Certbot, podeis contactar conmigo sin ningún problema.