Cuando Donald Trump se fue de putas en la cama de los Obama

Uníos ciudadanos y alzad vuestros corazones al ritmo del himno nacional para dar la bienvenida al presidente del mejor país del mundo. Donald Trump, presidente de Murica, magnate de los negocios, amante de políticas rancias, agárrame del coño y ayúdame a hacer America Great Again.

En fin… que ya tenemos a Donald Trump en la presidencia de uno de los países mas poderosos del planeta. Y parecía que estábamos teniendo un mal sueño, ¿que no?

Pues no es así chavalín. Desde el pasado día 20 de Enero se ha puesto a los mandos del país con mas poder de destrucción masiva el empresario mas puto loco de toda la Tierra.

¿Qué conseguirá hacer? ¿Acabará construyendo el firewall antimorenos en la frontera de México o por el contrario se aliará con Putin y le meterán un petardazo a todo aquel que no piense que la cocaína, las putas y el orgullo blanco son guays?

No lo sabemos, pero lo que está claro es que Donald Trump da y dará muchísimo sobre lo que hablar.

Ya llevamos un par de días con el menda lerenda al cargo y ya se han producido manifestaciones mundiales anti Donald Trump, toma ya, eso si que es llegar y besar el santo!

Pero no solo de declaraciones incendiarias y manifestaciones vive un lider. Como todo buen rockstar que se precie ha de forjarse a base de mitos y rumores para que su leyenda sea mas grande.

Y como no podía ser de otra manera Donald Trump también tiene sus rumores pero al igual que sus políticas rancias de derechas, sus rumores tienen un tufillo muy de pelo engominado, corbata y Toni 2.

Donald Trump agárrame del coño que yo ya te meo encima si eso…

Y esta es la base de uno de los, no sabría decir si mejores o peores, rumores contra el magnate. Sabiendo que Donald es un misógino reconocido, no podían faltar prostitutas en la historia.

Según varias fuentes y medios de comunicación, Donald Trump pasó una noche loca acompañado de prostitutas en un hotel de Moscú.

Tweet de Donald Trump desmintiendo toda esta película
Tweet de Donald Trump desmintiendo toda esta película

Vale a lo mejor esto no escandaliza demasiado, al final y al cabo parecer ser una costumbre de la derecha. Ya sabéis, por la mañana misa, gramito de coca y después putas.

Pero lo que hizo levantarse a los cimientos de las porterías fue el hecho de que esa noche loca se produjo en la habitación del hotel en el que descansaron el matrimonio Obama. Y para mas colmo realizaron lo que se conoce como lluvia dorada.

De haber sido verdad es demasiado poético por parte de Trump.

“Te quito el mando presidencial y me meo en el lugar en el que descansas morenito” debió de pensar Donald…

Por mucho que me gustaría que este rumor fuese verdad, tiene un origen y parece ser que ese origen todavía es mas turbio que la historia.

Ya están los de 4chan dando por culo otra vez

Pues así es. En esta historia están involucrados los trolls de este foro, la CIA, Donald Trump y el Kremlin Ruso. Personajes perfectos para un buen guión de Hollywood.

Y es que al parecer un usuario de 4chan, totalmente anónimo obviamente, reportó a la CIA un informe que consiguió del Kremlin ruso.

En dicho informe de 35 páginas aparecían cuatro puntos que podrían llegar a utilizarse como vulnerabilidades contra el nuevo amo del Mundo. Dichos puntos son:

  • Donald Trump no es tan rico como dice que es y por eso se siente incomodo haciendo pública su declaración de la renta. ¿Estamos detrás de un cuñado?
  • Se organizó con el gobierno ruso para ayudarse en la candidatura presidencial. Ya salieron hace un par de semanas los supuestos ataques informáticos el día de las votaciones americanas y que fueron presuntamente organizados por hackers rusos. ¿Irán por ahí los tiros?
  • Trump está metiendo mucha pasta en el suelo ruso. Al parecer no deja de comprar, vender y especular con terrenos rojos. ¿Se convertirá en el nuevo Pocero de los soviets?
  • El Kremlin tiene un vídeo sexual de él en el que se le ve siendo orinado por un grupo de prostitutas en la cama en la que durmieron los Obama. Dicho acto realizado para el excite de Donald Trump.

Como es normal, toda esta historia de 4chan, putas y Trump es demasiado jugosa para que la prensa no se hiciera eco. Al fin y al cabo viven de hacer clickbait aunque en el mundo periodístico se llama Titular Sensacionalista.

Podríamos entrar en un debate en el que discutir sobre el rigor periodístico y sobre cómo los medios se copian los unos de los otros sin contrastar las fuentes pero no era objeto de este artículo.

Me encantan las noticias que salen de foros y que son generadas por trolls de Internet. Recordaréis las bromas a la española gastadas por forocoches como por ejemplo cuando enviaron mariachis y pizzas a la sede del PSOE aunque ha habido muchísimas otras.

Por supuesto pienso que toda esta película montada simplemente para desprestigiar a un candidato no ha sido mas que eso una mentira bien orquestada con la intención de hacer mucha pupita pero ojo, no deja de ser una muy buena historia.

Si queréis leer un artículo con un aire mas periodístico daros una vuelta por este enlace, ahí podréis leer los detalles de todo esto y por supuesto también podéis ver la versión en vídeo de este post 😉

Y poquito mas chumachos, si queréis enviarme historias que consideréis que son un buen ejemplo de trolling ya sabéis como podéis hacerlo.

O me dejáis un comentario o me ponéis un tweet a través del siguiente banner y si la historia es lo suficientemente cojonuda prometo que haré un vídeo que lo petará y para los que les da pereza leer 😉

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

Hala a mamarla!

Clases anónimas en la programación orientada a objetos

En los artículos anteriores sobre programación orientada a objetos hemos visto cómo crear nuestras propias clases, con sus propiedades y métodos e instanciarlas. Pues hoy os vengo a contar cómo crear clases anónimas y que usos podemos hacer de ellas que sin duda son muchos, otro pasito mas hacia el dominio de la programación orientada a objetos. Así que vamos para allá…

¿Qué son las clases anónimas?

Las clases anónimas aunque ya existían en otros lenguajes desde hace tiempo, por ejemplo en Java se utiliza mucho, en PHP fueron introducidas en la versión 7. Decíamos que las clases “normales” son las plantillas predefinidas que después crearán objetos con ciertas características y acciones disponibles pues bien, las clases anónimas son un sistema para crear objetos on the fly, es decir objetos sencillos y únicos.

Es decir, si no necesitas tener una entidad o un objeto que persistir o una clase que sea fundamental para tu lógica de negocio, las clases anónimas te pueden servir para tratar algo por un breve periodo de tiempo como un evento por ejemplo. Es decir, utilizaremos clases anónimas cuando necesitemos que se definan y destruyan en tiempo de ejecución ahorrando así en memoria y mejorando el rendimiento de nuestra aplicación.

¿Creo que se entiende no?

Bueno pues las clases anónimas pueden hacer casi las mismas cosas que el resto de clases y esto es:

  • Pueden aceptar argumentos a través de sus constructores.
  • Pueden heredar de otras clases.
  • Pueden implementar interfaces.
  • Pueden utilizar traits.
  • No se define nombre para clase anónima.
  • Todos los objetos creados por una clase anónima son instancias de la misma clase.

Como el tema en general ya es bastante abstracto creo que lo mejor que se puede hacer para entender el concepto de clase anónima es utilizar ejemplos así que…
https://gist.github.com/gorkamu/d8e34772b80210c1cae1069318b7a5f9.js

Como veis en el ejemplo, antes de PHP 7 necesitábamos tener definida una clase Logger ocupando espacio reservado en memoria. Pues bien, con las clases anónimas eso ya no es necesario, se crea la clase cuando es necesario y siempre en tiempo de ejecución.

¿Pero y qué pasa si queremos utilizar argumentos o heredar de una clase o implementar una interfaz como decíamos antes?
https://gist.github.com/gorkamu/8152132f616b3d913963bc8a960d7c8b.js

Un aspecto importante a tener en cuenta en relación con las clases anónimas es que si tenemos una clase “normal” y metemos (o anidamos) una clase anónima dentro de esta, no podremos utilizar los métodos ni propiedades de la clase “normal” dentro de la anónima pero por suerte existen mecanismos para hacerlo:

  • Si queremos utilizar los métodos y propiedades protegidos de la clase “normal” en la clase anónima tendremos que hacer que la clase anónima herede de la clase “normal”.
  • Si queremos utilizar las propiedades privadas de la clase “normal” dentro de la anónima, tendremos que pasárselos al constructor de la clase anónima.

Fíjate bien en el siguiente ejemplo:
https://gist.github.com/gorkamu/812c87a119c7649446f182f6832517ba.js

Por último decir que antes os contaba que una clase anónima no define ni tiene nombre, pues era un poquito mentira ya que aunque nosotros no definamos un nombre como tal, las clases anónimas se crean en tiempo de ejecución y es el motor de PHP (digamos compilador) el que se encarga de darle un nombre y una posición en memoria a la que acceder por lo que dónde antes teníamos esto:

echo get_class(new class {});

Internamente tendremos esto:

class@anonymous/in/oNi1A0x7f8636ad2021

Por cierto, no utilicéis este nombre para referenciar, simplemente es un nombre aleatorio basado en un hash que se utiliza internamente. Si tienes necesidad de llamar, referenciar, instanciar una clase anónima es mejor que sigas otra estrategia y te construyas una clase “normal”.

 

Bueno, como se que el tema es bastante jodido para alguien que está empezando a estudiar programación orientada a objetos, si tienes alguna pregunta o necesitas mas ejemplos puedes dejarme tus comentarios un poquito mas abajo o también puedes hacerme llegar tu feedback a través de Twitter mediante el siguiente banner y encantado que estaré de echaros una mano al cuello 😛

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

Hala a mamarla!

Un enlace EDU DOFOLLOW en Academia.edu

¿Qué pasa chumachos salvajes de los bosques indoeuropeos?

Hacia casi como un siglo que no escribía sobre linkbuilding, ultimamente he estado escribiendo mucho sobre desarrollo, de hecho he sacado un curso sobre programación orientada a objetos, hay un enlace en el menú para los interesados…
Pues bien, hoy eso va a cambiar porque os traigo un sitio bien berraco en el que dejar un enlace, un backlink EDU DOFOLLOW con una autoridad de dominio de 88, ninguna tontería vamos. Ya sabéis backlink o plomo!

Si queréis mas enlaces de este tipo podéis revisar el tag que tengo en el blog sobre linkbuilding desde aquí.

¿Nos apuntamos a una academia de seo? No, mejor dejamos un backlink!!

Lo siento, no lo he podido evitar, se que es un chiste de mierda pero es que el sitio en el que vamos a dejar nuestro bonito backling se llama así, academia.edu. Podéis entrar desde aquí. Se conoce que la página es una red social para investigadores y que sirve a los listos para compartir conocimientos y papers. Pero no solo sirve para investigadores porque también pueden registrarse estudiantes.

La iniciativa en si me parece cojonuda debido a que se necesita una mayor libertad y difusión de la ciencia, tecnología y conocimiento. Me gustan los proyectos de Open-Mind.

Existe un tercer grupo de potenciales usuarios que pueden dar uso de todas las ventajas de esta red social y se trata de los spammers. ¿Cómo nos vamos a cortar a la hora de registrarnos y dejar un enlace si nos lo ponen tan fácil con sus links dofollow y su autoridad de dominio de 88? Tal vez van buscando eso… ¿Inflar métricas? No sé…

Bueno pues lo primeros que tenemos que hacer si queremos conseguir ese bonito backlink es registrarnos, obviamente. Os he dejado el enlace un par de párrafos mas arriba…

Registrándonos en academia.edu
Registrándonos en academia.edu

Cuando entremos en la web veremos que al lado del logo del sitio hay un botón con la palabra “Log In”. Pues es ahí donde tendremos que pulsar para que se nos muestre el formulario de acceso o de registro.

Bien, tenemos varias formas de completar el registro. Podemos hacerlo a través de las redes sociales o usando el email. Personalmente registrarme en servicios, aunque sea con emails de mierda, a través de redes sociales no me gusta nada. Tengo la sensación de que con las redes sociales pueden trazar tu perfil virtual mas facilmente que con un email aunque esto de igual, al gran hermano para conocernos le da igual que métodos usemos…

¿Pastilla roja o pastilla azul?
¿Pastilla roja o pastilla azul?

Rellena el formulario, o no, y lo próximo que te aparecerá serán un par de botones para que describas cual es tu puesto actual. Y con puesto actual me refiero a que tienes que indicar si eres un profesor, un alumno, un estudiante u otra cosa. ¿Un spammer tal vez? Jejeje

Elige lo que quieras, no parece ser relevante para nuestros malvados planes 😛

¿Spammer no entra en categoría?
¿Spammer no entra en categoría?

Okey, lo siguiente que te va a aparecer es un formulario en el que tendrás que dar mas datos… Espero que después ellos segmenten estos datos y den información relevante a los usuarios que de verdad les interesa academia.edu porque el proceso resulta un coñazo.

Vas a tener que indicar la universidad a la que perteneces (ejem….jeje) el departamento y el cargo.

Me desorino, soy un estudiante de filología italiana de la complutense xD
Me desorino, soy un estudiante de filología italiana de la complutense xD

Bueno pues después de que rellenes este formulario ya va a aparecer lo que es el feeds de noticias de academia.edu y el resto de opciones. Por fín podemos empezar a utilizar la red social. Si te fijas, en la barra superior aparecen cuatro botones. Uno para subir un documento, otro para leer los Incoming Messages, para ver las alertas y para acceder a tu perfil.

Pues es en este último en el que haremos click para entrar en las opciones de configuración.

Cuando os aparezca la vista previa de vuestro perfil tendréis que buscar el botón de Edit y allí elegir el submenú de Social Profiles. Al hacer click en este elemento se os desplegará una ventana modal como la que sigue:

Ventana modal de academia.edu
Ventana modal de academia.edu

Aquí es donde dejaremos nuestro backlink. Podéis elegir un huevo de diferentes tipos de links, desde enlaces a una página de Facebook, a un perfil de Twitter, a una Homepage u otros, no sé muchos, pero el tipo de enlace que tendréis que elegir es el de Other que es el único que nos permite escoger un anchor text.

Rellenad el formulario y dadle al botón verde con el tick para guardar. Aparentemente no existen limitaciones y podréis crear tantos enlaces como os apetezca pero tened mesura y no os vengáis arriba cabrones.

Y esto es todo, rápido, fácil e indoloro pero, por si acaso no me creéis en que sea un enlace dofollow os voy a dejar el último pantallazo de la tarde con la imagen del código fuente para que lo comprobéis vosotros mismos.

Código fuente de academia.edu
Código fuente de academia.edu

Pues nada chavales, cierro al salir. Si tenéis dudas hacédmelas saber en los comentarios que para eso estan o enviadme un tweet a través del siguiente banner e intentaré responder lo antes posible.

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

Hala a mamarla!

Interfaces en la programación orientada a objetos

Pues hoy vamos a hablar de las interfaces en la programación orientada objetos. Si estas siguiendo la serie de artículos dedicados a aprender sobre programación POO ya habrás visto como crear objetos, clases, clases abstractas y habrás aprendido sobre métodos, propiedades y su visibilidad, en fin… un conjunto de conceptos teóricos que te estarán dando una nueva perspectiva sobre la tecnología, o eso espero vamos…

Y hoy precisamente toca eso, ver las interfaces y cómo y cuando podemos implementarlas así que…vamos a ello!

¿Qué son las interfaces?

Las interfaces vienen a ser como una declaración de funcionalidades obligatorias que tienen que realizar aquellas clases que implementen la interface. A diferencia de como vimos con las clases abstractas, las interfaces no declaran sus métodos nunca, tan solo definen los métodos. Esto es, en una interface aparecerá pues el nombre del método junto con su visibilidad y la definición de argumentos para jamás pueden describir código, entonces sería una clase abstracta.

Otra diferencia respecto al uso entre interfaces y clases abstractas es que una clase cualquiera puede implementar tantas interfaces como le de la gana pero únicamente puede heredar de una clase, ya sea abstracta o no, al menos en PHP y esto es lo que se conoce como herencia simple.

Cuando veamos el artículo de herencia de objetos veremos las diferencias entre herencia múltiple y herencia simple.

Volviendo al tema de las interfaces tenemos que saber que en el sentido estricto de la definición, una interface es como si fuera una hoja de ordenes diciéndonos qué es lo que hay que hacer pero no como. Una interface estará formada pues únicamente por constantes y la definición de sus métodos, que jamás serán abstractos (sino hablaríamos de clase abstracta)

Una interface es el claro ejemplo de la abstracción.

https://gist.github.com/gorkamu/7fb35daa09e7562ed31e39c8b1d7968a.js

Al implementar una interface en una clase se nos está obligando a implementar siempre todos los métodos que defina, nos guste o no, aunque existe una excepción que no se suele utilizar y es que si una clase abstracta implementa una interface, esta no esta obligada a implementar los métodos de la interface.

Para hacer uso de una interface tendremos que hacerlo mediante el operador implements junto al nombre de la clase, tal y como hemos visto cuando heredamos (o extendemos) de otra clase. Pero que esto no te despiste porque no es exclusivo que las interfaces solo se utilicen con implements y las clases con extends ya que las interfaces también pueden heredar de otras interfaces.

Hemos dicho que una interface está formada por la definición de sus métodos y por constantes, pues bien estas constantes funcional igual que si fueran constantes de clases pero se diferencian en que estas no puede ser sobrescritas por la clase/interface que la herede o de lo contrario nos dará un error.

Las interfaces suponen junto con la determinación de tipos de una buena forma de asegurarse de que un determinado objeto contiene ciertos métodos y para ello el operador instanceof() juega un papel muy importante. Checkea el enlace anda 😉

Pues nada amigüitos, se que el tema es complejo debido a que estamos tocando temas bastante abstractos así que si tienes alguna pregunta no dudes en dejármela en los comentarios o en twitter a través del siguiente banner.

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

Hala a mamarla!

El día que forocoches troleó a un gran partido político

Qué pasa chumachos!

A lo largo de la historia de Internet se han producido muchísimas bromas y muchísimas troleadas. Ya son viejas conocidas las cámaras ocultas de Remi Gaillard. Una de las mas conocidas es cuando se mete en un ascensor e instala una bola de luces y música disco y espera que lleguen vecinos a coger el ascensor.
Pues bien, en el post de hoy no quiero hablar ni de Remi Gaillard ni de la historia de las bromas en Internet sino de una de las mayores troleadas que realizó forocoches.

Para el que no lo sepa, aunque lo dudo… Forocoches es el mayor foro de habla hispana de Internet. Allí puedes encontrar un montón de información útil, historias acojonantes, hilos de fotografía, de bromas, de música pero, si por algo destaca forocoches es por las troleadas que suele realizar.

Ha habido muchísimas troleadas desde que se abrió el foro pero sin duda una de las mas graciosas, por lo menos bajo mi punto de vista es cuando se la colaron doblada al Partido Socialista Obrero Español.

Cuando forocoches le marcó un gol de Señor al PSOE

Pero antes de hablar de la troleada nos tenemos que situar en un contexto histórico y social. El año 2016 fue para España un torbellino en lo referente a asuntos políticos. Hubo varias votaciones y un gobierno en funciones que nadie quería. La alternativa a ese gobierno, el PSOE, se llevó una hostia tremenda cuando en los resultados Podemos consiguió arañarle varios escaños. Fue el peor resultado histórico para el partido.

Toda esta situación estuvo encabezada por Pedro Sánchez que por diferentes presiones se negaba a hablar y negociar con otros partidos, se había enroscado en su idea y parecía que no quería salir del espejo.

Obviamente muchos españoles teníamos la sensación de que Pedro Sánchez era mas un candidato de plástico orientado a atraer al votante joven y a las señoras que un político de verdad. En su partido había sectores a los que tampoco les gustaba.

En un momento dado y después de los resultados electorales Pedro Sánchez decidió dar un paso atrás y retirar su candidatura como secretario general del PSOE, la decisión llegó algo tarde pero por lo menos llegó.

La noche del anuncio se reunió la cúpula del partido en su sede general de la calle Ferraz pues para debatir el futuro del partido. Tenían que decidir qué es lo que acabaría pasando. Se especuló muchísimo sobre si era el fin del partido, sobre si nacería una nueva agrupación de los restos del PSOE o sobre quién sería el próximo secretario general.

Todo este proceso interno estuvo manchado por votaciones secretas detrás de una pantalla y otras comunicaciones poco transparentes por lo que dieron una imagen pública de mierda.

A todo esto, un usuario de forocoches abrió un hilo diciendo que había encargado una pizza de jalapeños y haría que se la llevasen a la sede general del PSOE para que, ya que parecía que iban a estar tanto tiempo encerrados, cenasen algo los pobres…

Empieza el troleo en forocoches
Empieza el troleo en forocoches

Ese hecho pudo haberse quedado ahí como un acto de simpatía y ya está pero como en forocoches hay mas hijosdeputa por metro cuadrado que en el peor de los orfanatos pues obviamente los trolls se hicieron notar y a medida que el hilo iba creciendo en visitas mas y mas usuarios compraban pizzas y las enviaban a la calle Ferraz.

Iban adjuntando fotos del pedido realizado y había pizzas para todos los gustos, incluso llegaron a comprar una vegana. Tal vez iba dirigida para Susana Díaz… no sé…

Lo cojonudo del asunto es que en un programa de debate político estaban hablando y haciendo un análisis sobre el proceso interno por el que estaba pasando el Partido Socialista cuando en mitad de la intervención de Miguel Ángel Revilla tuvieron que cortarle (y mira que es difícil cortar a ese hombre…) porque las pizzas estaban llegando a la sede.

Todo esto se emitió en directo y se pudo apreciar como una fila de repartidores entraban sin parar a la sede del PSOE. Obviamente tanto el presentador del debate como el público empezaron a partirse el culo. Hay que recordar que hasta ese punto todavía no se sabía que la gesta provenía de forocoches, tan solo lo sabían los usuarios del foro claro, pero ningún medio se había hecho eco del hilo por lo cual se quedaron alucinados.

Al emitirse en directo mogollón de medios siguieron engordando la bola de nieve y tanto forocoches como twitter no dejaban de arder.

Pizzas de jalapeños, tequila y rancheras

Pero esto no fue todo y debido al éxito de la troleada los usuarios de forocoches se plantearon por cuál podría ser el siguiente regalo a enviar a Ferraz. Si seguís el hilo podréis ver todo tipo de ideas, desde contratar a la tuna, mandarles un ramo de rosas (viva la simbología del partido) hasta hacer que el grupo de mariachis que están en Sol fueran a cantarles unas rancheras.

Ramo de rosas y mensajes desde forocoches en Ferraz
Ramo de rosas y mensajes desde forocoches en Ferraz

Pues esto último fue lo que acabó ocurriendo. Se realizó una conjunta en el foro en el que los usuarios iban aportando diferentes cantidades de dinero y compusieron una letra personalizada que enviaron a los mariachis.

Horas después, y con la valla de la sede ya cerrada, los mariachis se presentaron en Ferraz y dieron todo el espectáculo. Ya no quedaba casi ningún medio cubriendo la noticia pero sin duda este acto fue la guinda del pastel. Una parte de la letra decía tal que así:

De la calle Ferraz, Kensito lindo viene llorando.

Un par de pizzas de jalapeños vienen bajando.

De la calle Ferraz, Kensito lindo viene llorando.

Un par de pizzas de jalapeños vienen bajando.

Ay ay ay Pedro no llores.

Porque cantando se alegran cielito lindo los corazones.

De elección en elección,

Pedrito lindo vuelve a caer.

De elección en elección,

Pedrito mio vuelve a perder.

En fin, como veis, los usuarios del foro y los españoles en general somos muy de tocar los cojones cuando nos lo proponemos. Obviamente este gesto al partido no le hizo gracias, de hecho no recuerdo si llegaron a pronunciarse al respecto. Pero lo que esta claro es que para la gente que lo vivió en directo fue una de las mejores bromas que pudo ver jamás.

Posiblemente el hecho no es tan grande como nos lo parece pero si que está dotado de una repercusión social magnifica y es que simplemente el hecho de hacernos notar (la ciudadanía y los usuarios de forocoches) y meterle el dedo en el ojo a un partido político que nos da por culo es brillante.

En fin, diversos actos se realizaron después del envío de pizzas y de los mariachis pero no llegaron a tener tanta repercusión como estos dos…

Y es que el poder de forocoches cuando tiene ganas de tocar las pelotas es inmenso, Ilitri debería sentirse orgulloso…

Si quieres leer el hilo en el que se cocinó toda esta broma puedes hacerlo siguiendo este enlace 😉

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

Hala a mamarla!

Clases abstractas en la programación orientada a objetos

Echa la vista atrás y mira cuantas cosas has tenido que aprender si has seguido esta serie de artículos. Si te has leído cada uno ya serás capaz de crear clases y objetos, inicializar y destruir valores con sus constructores y destructores respectivamente, habrás aprendido los diferentes tipos de datos que tenemos y su visibilidad entre otras cosas. Pues bien, en esta entrada vamos a ver qué son las clases abstractas en la programación orientada a objetos.

¿Qué son las clases abstractas?

Una clase abstracta es aquella que no se puede instancias. Si una clase posee un método abstracto por narices ha de ser abstracta también. Por lo general utilizamos las clases abstractas para definir comportamientos comunes o generales pero sin especificar como lo hacen. Es habitual que los métodos de estas clases abstractas no tengan cuerpo de declaración, es decir, solo tienen la definición del método, el nombre y la visibilidad vaya.

¿Pero esto como puede ser? Pues muy sencillo, imagínate a las clases abstractas como simples guiones o conjunto de TODOs para otras clases. En ellas se indican que tareas hay que hacer pero no cómo hacerlas y serán las clases hijas que hereden de las clases abstractas las que decidan cómo hacer esas tareas.

Por ejemplo, mi padre decide que su coche esta muy sucio y me ordena que debo lavarlo, pero no me indica como. Puedo llevarlo a un túnel de lavado, puedo darle con la manguera o puedo coger un barreño de agua, jabón y un cepillo y limpiarlo a mano, uuuff… que pereza…

Pues en este ejemplo mi padre sería la clase abstracta y sus ordenes los métodos abstractos. Cómo decida implementar yo sus ordenes (soy la clase hija) es problema mio.

Pero no solo sirven para definir comportamientos comunes, también sirven para asignar diferentes características y propiedades comunes a las clases hijas.

Vuelve a pensar en mi padre, una característica que heredaré por ser su hijo es su apellido y su tendencia a ser morenos de pelo, aquí ya entramos en genética, pero tal vez lo que no herede son sus gustos musicales, mientras que él escucha a Sabina yo puedo deleitarme con ACDC, por ejemplo…

Tan solo aquellas características y propiedades comunes que definen a un conjunto de clases jerárquicas deberán de ser heredadas, no así las propiedades exclusivas de una única clase. ¿Se entiende no?

Pues bien, con este tipo de clases hay ciertas reglas, características o normas que tenemos que tener en cuenta:

  • Si se definen métodos abstractos en una clase abstracta, todas las clases que hereden de ella han de implementar todos esos métodos.
  • Las clases abstractas si que pueden heredar de otras clases y no tienen porque ser estas abstractas también.
  • El número y tipo de datos de los argumentos de una clase abstracta han de respetarse siempre en las clases hijas.
  • Si una clases esta formada solo por métodos abstractos y constantes entonces es una interface.

En otros lenguajes de programación y no solo en PHP, las clases abstractas están muy relacionadas con el polimorfismo, pero vamos a ver qué es el polimorfismo porque tiene un nombre muy chulo pero puede liar un poquillo…

Cómo utilizar las clases abstractas con el polimorfismo

Agárrate bien los machos porque el polimorfismo junto con la encapsulación y la herencia son las tres patas fundamentales de la programación orientada a objetos, bueno y los objetos claro.

Tal y como sugiere su nombre, el polimorfismo indica muchas formas y en programación esto se puede referir a diferentes comportamientos en función del contexto en el que se este ejecutando la clase.

Pero esto es bastante abstracto, mejor si lo vemos con un ejemplo y para ello vamos a hacer una jerarquía de clases.
https://gist.github.com/gorkamu/d312262a1d38caf4b0da251a31ec19cf.js
Tal y como ves en el ejemplo, he creado cuatro clases:

  • Una clase abstracta que representa el concepto de animal con el método moverse().
  • Una clase Gorrino que hereda de la clase Animal y que implementa el método moverse().
  • Una clase Pajarico que hereda de la clase Animal y que implementa el método moverse().
  • Una clase Acción que tiene un método andar() al que se le pasa un objeto del tipo Animal y ejecuta el método moverse().

Pues bien, hemos metido un animal de cada clase en un array y lo recorremos. Cada uno de los animales se lo pasamos a la acción para que se mueva y sus resultados son los siguientes:

// El gorrino corre
// El pajarico vuela

Vale y a lo mejor te estés preguntando por el polimorfismo y dónde se encuentra en este script. Pues se encuentra en nada mas y nada menos que en la definición del método anda() de la clase Accion. Hemos dicho que espera que le pasemos un argumento del tipo Animal y el método únicamente comprobará que lo que le pasemos herede de esa clase y le dará igual si se trata de un Gorrino o de un Pajarico.

Pues eso es el polimorfismo y ese es el uso que podemos hacer de las clases abstractas. Bueno no es el unico obviamente pero si el mas fácil de ver y explicar 😛

Si después de esto y a medida que programes eres capaz de abstraer tus programas significará que has entendido a la perfección el problema que estas tratando de resolver por lo que enhorabuena aunque no te agobies que se necesita practica y a veces es mejor dar una solución concreta que lucirte haciendo un programa to guapo pero alargando los tiempos de entrega 😉

Se que el tema es bastante difícil de ver y entender si es la primera vez que te encuentras con ello así que si necesitas mas explicaciones o ejemplos por favor pídemelos en los comentarios o en twitter a través del siguiente banner.

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

Hala a mamarla!

Objetos en la programación orientada a objetos

Ya hemos visto en artículos anteriores que son los objetos en la programación orientada a objetos pero en este artículo quiero entrar en detalle con una definición bastante aproximada de qué es un objeto y ver diferentes acciones que podemos hacer con ellos como la clonación o la comparación entre ellos, así que… vamos allá.

¿Qué son los objetos en la programación orientada a objetos?

Pues bueno, si eres nuevo y llegas a este tipo de programación lo primero que pensarás es que deben de ser algo importante dentro de este paradigma y así es ya que dentro de la POO son el pilar fundamental y los utilizamos para representar objetos cotidianos de la vida real. Pero antes de entrar mas en el barro vamos a ver qué es lo que dice la wikipedia

En el paradigma de programación orientada a objetos (POO, o bien OOP en inglés), un objeto es una unidad dentro de un programa de computadora que consta de un estado y de un comportamiento, que a su vez constan respectivamente de datos almacenados y de tareas realizables durante el tiempo de ejecución. Un objeto puede ser creado instanciando una clase, como ocurre en la programación orientada a objetos, o mediante escritura directa de código y la replicación otros objetos, como ocurre en la programación basada en prototipos.

Así es, imagínate a un objeto como una estructura no como un valor. Una estructura como un conjunto de valores y de posibles acciones que puede realizar encapsuladas en una única unidad. Para que lo visualices piensa en el número 5. Imagínate que por el hecho de ser un número contiene por si mismo su símbolo, positivo en este caso, y puede sumarse una unidad y restarse una unidad.

Por lo cual el objeto del número que hemos descrito sería tal que así:
https://gist.github.com/gorkamu/970503dd8b0398a5a016d1005501c9b6.js

Lo interesante de los objetos es que cuando los utilizamos en funciones y los pasamos como argumento, no estamos pasando su valor como si se tratase de un tipo de dato como un integer por ejemplo. Un objeto no es un valor. Al pasarlos a una función como argumento estamos pasando su referencia.

Si recuerdas post anteriores, pasar un argumento por referencia significa que lo que modifiquemos dentro de la función se verá afectado fuera de la función también y esto es así porque la referencia es el identificador que indica donde se encuentra ese valor u objeto en memoria. No se hace una copia vaya…

Con los objetos todos son referencias, cuando los pasamos a una función o los devolvemos o se asigna a otra variable, todas las distintas variables guardan una copia de ese identificador que apunta al mismo objeto.

Pero… ¿y qué cosas podemos hacer con los objetos?

Comparación de objetos

Si tenemos dos objetos, podemos evaluar que estos sean iguales o no. Cuando comparamos dos instancias, se realiza una comparación de bajo nivel mirando que todos los valores y atributos sean iguales y que pertenezcan a la misma clase. Podemos realizar dos tipos de comparaciones utilizando diferentes operadores:

  • Operador de comparación: se comparan de forma sencilla las variables y que ambas instancias pertenezca a la misma clase. Para ello utilizamos el operador doble igual (==)
  • Operador de identidad: dos objetos son iguales si sus variables son idénticas sí y sólo sí hacen referencia a la misma instancia de la misma clase. . Para ello utilizamos el operador triple igual (===)
Offtopic:

En Java tenemos los métodos mágicos __equals(),__compareTo() y __compare() para comparar objetos. Aquí mas información

https://gist.github.com/gorkamu/a8615b0270aa92ebe67e3c85a3d9b098.js
Clonación de objetos

Otra acción que podemos hacer con ellos es clonarlos. A veces no nos interesa hacer una copia de un objeto realizando una replicación completa de sus propiedades sino que nos interesa hacer una replica que genere una nueva instancia de ese primer objeto y aquí es donde entra la clonación.

Si queremos hacerlo tenemos que utilizar la palabra reservada clone que internamente hace una llamada al método mágico __clone() del objeto. Si en lugar de utilizar la palabra reservada intentas hacer una llamada al método mágico no te va a dejar realizarlo.
https://gist.github.com/gorkamu/bc27596742d258345e5a37ada0a64a40.js

Serialización de objetos

Te estarás preguntando que qué coño es la serialización ¿no? Pues no es otra cosa que el proceso de representar mediante un string, texto vamos, un objeto. Cuando serializamos uno de ellos lo que pasa es que obtenemos en formato texto el nombre de la clase junto con los valores de ese objeto.

Podemos llevarlo a cabo mediante la función serialize() que tal y como indica su documentación genera una representación almacenable de un valor que no pierde ni su tipo ni su estructura.

Por otro lado, si ya tenemos en un string la representación de un objeto y queremos volver a convertir esa representación a objeto podemos hacerlo mediante la función unserialize() que realiza el proceso contrario a serialize()

Todo este proceso de serializar y deserializar un objeto forma parte del sistema de sesiones de php. Cuando registramos un objeto en la sesión este se serializa automáticamente y automáticamente también se deserializa para cada petición.
https://gist.github.com/gorkamu/ff9fe51208d71a9da53eff56b41703ce.js

Iteración de objetos

La iteración de objetos es el proceso que permite recorrer e iterar cada una de las propiedades de un objeto. Imagina que tienes el objeto de una clase y quieres saber que valores tienen sus propiedades, podrías hacerlo con la función serialize() claro pero no sería una buena practica, lo haríamos a través de un bucle foreach, aunque únicamente devolverá todas las propiedades public si no lo implementamos en una función dentro de la clase.

Ejemplo:
https://gist.github.com/gorkamu/430cc2f1f23246dd146a707dd92628e5.js

Como se ve en el script, el bucle que se encuentra fuera de la clase únicamente tendrá acceso a las propiedades públicas y sin embargo mediante la función iterar() podemos acceder a todas las propiedades, públicas, protegidas y privadas.

También podemos hacer uso de interfaces para realizar este propósito e implementar la interfaz Iterator. Esta interfaz nos da la herramientas para poder decidir y definir como ha de iterarse un objeto y que valores serán utilizados.
https://gist.github.com/gorkamu/40c297d225121156ee65b9c4afc7a843.js

Pues nada chachos, con este post hemos definido qué son los objetos en la programación orientada a objetos y qué acciones podemos hacer con y sobre ellos. Se que el tema es duro y espesito así que si tienes alguna pregunta no dudes en hacérmela a través de los comentarios o poniéndome un tweet mediante el siguiente banner y te prometo que te responderé lo antes posible.

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

 

Hala a mamarla!

Que no que detecten tus enlaces entrantes!!

Que pasa chumachos!

Los que llevéis ya un tiempo leyendo el blog sabréis que de vez en cuando publico aunlgún artículo en el que os enseño sitios en los que podéis dejar enlaces para vuestra campaña de linkbuilding. La mayoría de estos sitios suelen permitir los enlaces dofollow, aunque de vez en cuando hay otros sitios que no lo permiten. En cualquier caso, esto también viene bien ya que cuando creamos enlaces entrantes hacia nuestra web tenemos que hacerlo lo mas natural posible y aquí entra tener un buen porcentaje tanto de enlaces dofollow como de enlaces nofollow.

Cierto es que llevo un par de semanas que solo publico temas sobre desarrollo por eso hoy vengo con un artículo sobre “magia negra SEO” o lo que es lo mismo un truquito Black Hat que podéis aplicar en todas vuestas webs y que automáticamente impedirá que otros puedan saber los enlaces entrantes que apuntan a vuestras páginas y por ende descubrir cuál es la estrategia de linkbuilding que estáis siguiendo. 😛

Pero antes de entrar en materia y por si eres nuevo en este blog vamos a ver qué son los enlaces entrantes. Si ya sabes de qué va puedes saltarte un par de párrafos.

¿Qué son los enlaces entrantes?

También conocidos como Inbound Links son uno de los pilares fundamentales del posicionamiento y del SEO. Los enlaces entrantes son aquellos enlaces que apuntan a tu página desde otra página externa y que implícitamente le esta diciendo a los motores de búsqueda que tu página es buena y relevante para una búsqueda en concreto.

Esto es de sentido común. Si tienes una página que ofrece contenido de calidad y resulta interesante para los lectores otras web del mismo sector te recomendarán y ¿cómo pueden recomendarte? Pues creando un enlace que te apunte, obviamente.

Así pues, que tengas varios enlaces entrantes desde diferentes webs significa que “eres bueno” en lo tuyo y que otras paginas te reconocen.

Esto es lo bonito, es la versión Disney. Crear contenido taaan bueno que automáticamente hará que recibas enlaces sin tener que hacer nada pero por desgracia esto no funciona así. O por lo menos no a corto plazo que es lo que nos interesa a nosotros.

Como en este artículo estoy hablando de Black Hat SEO doy por hecho de que tienes creada ya tu propia campaña de linkbuilding para posicionar con diferentes cuentas y/o correos electrónicos, con diferentes calendarios de publicación y con tus propias herramientas de scrapping y de publicación automática de comentarios… no?

Pues bien, imagina la frustración que te entra cuando encuentras un sitio potente con buenas métricas, dejas un enlace entrante a tu sitio y llega el listo de turno y te levanta el “secreto” utilizando herramientas como Ahrefs o como Majestic.

Herramientas como estas lo que hacen es utilizar robots para analizar tu web para ver que enlaces entrantes tienes, entre otros datos, para ofrecerte un detallado informe sobre el estado de la página web. La “putada” y lo entrecomillo porque también puede ser una ventaja, es que cualquiera puede adivinar en qué sitios estas dejando enlaces para posicionar y clonarte así tu estrategia de linkbuilding.

Pues bien, todo este tochazo ha sido para introducir el plugin para wordpress que os quiero enseñar hoy. Se trata de LinkPrivacy y sirve para hacer lo que hemos estado comentando, es decir, con el plugin vas a poder “ocultar” tus enlaces entrantes a la mirada de curiosos….

Jugando a bloquear robots

Este plugin es gratuito y aunque existen otros de pago que tal vez puedan funcionar mejor pero para nuestros propósitos nos va a servir perfectamente.

Internamente el plugin funciona bloqueando el acceso a los robots que comentábamos antes.

Para empezar a utilizar el plugin vas a tener que dirigirte a esta página y descargártelo. Es posible que depende de cómo lo vayáis a descargar os salte un proceso de compra o no. Si os salta no os preocupéis porque el producto cuesta 0 dolares.

Tan solo hay que rellenar el formulario con los datos de “cliente”, no llega a pedirnos la tarjeta de crédito así que guay y darle al botón de Check Out para completar el proceso de “compra”.

Una vez descargado hay que subirlo por FTP a nuestro WordPress y activarlo. Su configuración por defecto nos será mas que suficiente para comenzar a bloquear robots y así ocultar nuestros enlaces entrantes.

Ocultando nuestros enlaces entrantes a toooodos estos robots y mas
Ocultando nuestros enlaces entrantes a toooodos estos robots y mas

Cuando accedamos a su panel de control veremos los diferentes robots que trae por defecto bloqueados. Si con esto no tenemos suficiente, el plugin nos permite bloquear aquellos robots que mas nos interese a nosotros.

Tendremos que tener especial cuidado de no bloquear el robot de los diferentes motores de búsqueda si queremos que nuestra página sea indexada…

Para el caso de Google, el robot se llama googlebot y para el caso de Bing, su robot es BingBot.

Al ocultar los enlaces entrantes a los diferentes robots vamos a tener tres opciones:

  • Deny: esta opción impide completamente el acceso al robot. Si la marcamos, la arañita no podrá entrar a nuestro sitio y rastrear. Corremos el riesgo de que no indexar las diferentes páginas que forman nuestra web.
  • Cloack Empty Page: esta opción le mostrará una página vacía al robot cuando trate de analizarla. Es que te pidan una cosa y darle otra, hacerle la 1314 vamos…
  • Add to Robots.txt: esta opción añade el nombre de la arañita a este fichero para bloquear su acceso desde un primer momento. Este fichero es el primero que van a mirar los robots para saber si pueden analizar una web o no. En teoría es el primer paso que deberían hacer los robots para saber si pueden acceder a una web o no y digo en teoría porque es bien sabido que muchas veces se lo pasan por el arco del triunfo

Una de las ventajas principales que tiene este plugin a parte de ocultar tus enlaces entrantes es que no deja pistas sobre la instalación en WordPress, es decir, ni Google ni ningún competidor va a saber que estas utilizándolo,  así que no te preocupes por eso 😉

Actualmente el plugin se encuentra en la versión 1.2.5.3 y ya te puedes ir olvidando de actualizarlo mediante el sistema tradicional de actualizaciones de WordPress. Si quieres, y debes, tener la última versión en todo momento tendrás que instalar el plugin Github Updater que se encarga de ir mirando periódicamente la rama master del repositorio en Github de LinkPrivacy.

Pues nada majos, otro truquito mas que tal vez no conocíais y que realmente os servirá en vuestras campañas de linkbuilding sobre todo para que no venga el listo de turno y os robe los enlaces entrantes que tanto os ha costado conseguir.

Si tenéis algún tipo de duda podéis dejarme un comentario preguntando o hacerlo en twitter a través del siguiente banner.

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

Hala a cascarla!

Conseguir fans en Facebook a lo cara perro #blackhat

Jojojo pues si, has leído bien macho. En este post te voy a enseñar a conseguir fans en facebook tal y como lo haría un perro. No voy a contarte pseudo-técnicas de “gurú” que parecen que dicen mucho pero en el fondo no dicen nada, no. Todos conocemos publicaciones así. En este artículo te voy a enseñar a conseguir fans en tu página de facebook de una forma real y rápida.

Las cosas claras. ¿Quieres mas likes en tu página de facebook? Si es así sigue leyendo…

Los que me leéis sabéis que no me gustan nada los artículos refritos, todos los hemos hecho pero justo sobre de lo que quiero hablar hoy aquí estos artículos refritos con los que me he ido encontrando me han puesto de los nervios. Y es que lo que me jode de este tipo de publicaciones es que no ayudan en nada a alguien que quiere conseguir fans en su página de facebook de una forma real. Y me explico.

"Consguir fans en facebook" según Google...
“Cómo consguir fans en facebook” según Google…

Por ejemplo una de estas webs da información sobre 13 formas diferentes para conseguir fans y seguidores en Facebook.

Wow, ya solo el nombre da un poco de tufillo en la nariz, por lo general los títulos sensacionalistas están vacíos de calidad en el contenido, parece un clickbait como los de la guerra de youtubers pero bueno vamos a echarle un vistazo…

El artículo esta lleno de consejos para aumentar tu número de fans en Facebook, concretamente 13, que una vez has terminado de leer te quedas igual que cuando lo empezabas. Si estoy empezando una fanpage en Facebook de nada me sirve poner “imágenes que emocionen” o hacer estrategias para “conseguir fans offline” si no se configurar un anuncio, por ejemplo.

Si el artículo se mantiene con una tónica que recuerda al couching mas casposo de la empresa no me sirve de nada. Dame soluciones leñe.

 

Cómo conseguir fans en facebook rápidamente pero de una forma muy cerda

dramatic

Pues si, tal vez lo de la “forma cerda” de conseguir fans en Facebook te ha tirado un poco para atrás pero piensa que en otras ocasiones ya te he contado otras formas un tanto sucias de aumentar tus seguidores en redes sociales y no ha pasado nada así que no me vengas con remilgos.

La técnica de hoy se basa en el clickjack. Para el que no sepa qué es el clickjack la Wikipedia dice lo siguiente:

El clickjacking, o secuestro de clic, es una técnica maliciosa para engañar a usuarios de Internet con el fin de que revelen información confidencial o tomar control de su computadora cuando hacen clic en páginas web aparentemente inocentes . En uno de los muchos navegadores o plataformas con alguna vulnerabilidad, un ataque de clickjacking puede tomar la forma de código embebido o script que se ejecuta sin el conocimiento del usuario; por ejemplo, aparentando ser un botón para realizar otra función.

Ahí, en la parte negrita de realizar otra función es de lo que nos vamos a aprovechar precisamente y dónde reside lo guarro de este método.

Cuando un usuario entre en nuestra página y haga un click sobre cualquier elemento, ya sea un enlace o un botón para ir a otra parte de la web o simplemente en el fondo para hacer scroll y seguir leyendo, lo que vamos a hacer es que haga click en nuestra página de Facebook pero todo de una forma transparente para el usuario, no se va a enterar de nada.

¿Veis? Tal y como digo, esta técnica es como que te den un cheque en blanco para gastar en una ferretería y vas y te dedicas a sacar el cobre de la pared, es muy guarra, pero funciona y se consiguen fans en Facebook super rápido.

Pero claro, no te creas que todo en este método es mágico. No te van a llover los fans del cielo así porque si, todo depende del volumen de tráfico que tenga tu web y de lo hábil que seas para promover el click en tu sitio. Pero imagina por un momento tener una web con estas métricas:

Analítica web
Analítica web

En ese periodo ha habido 6413 visitantes en la web de los cuales el 87.34% de ellos se han ido de la página según el porcentaje de rebote (deducimos que no han hecho click) por lo que nos quedan 811 usuarios de los que han tenido que hacer click por necesidad. Si hay click hay like. Así que imagínate que crecimiento mas orgánico en los seguidores de tu página de Facebook.

Pero para que no te creas que vengo con el cuento de la lechera vamos ya a ver el código.

Cómo instalar el script para conseguir fans en facebook

Lo primero que tienes que hacer es descargarte este fichero js.

[sociallocker id=446]

https://mega.nz/#!NEATxDyC!lIGymKb-cpz_eozTyakibrynihiGigyLBJJx4LRevGk

[/sociallocker]

Lo guay precisamente de este script es que se trata de un clickjack desde el cliente. Muchos de los clickjacks típicos son generados desde el servidor, directamente con PHP en su mayoría, pero en este caso se hace desde el dispositivo del usuario, viene perfecto en webs que quieras que carguen rápido aunque no es algo excluyente.

Para instalarlo en tu web tendrás que hacerlo en el HTML de la misma. Asegúrate de que tienes jQuery incluido y con una versión mínima de 1.11. Si no es así introduce las dos siguientes líneas en el código fuente.

Instalando el script para conseguir fans en facebook
Instalando el script para conseguir fans en facebook

Después lo único que tienes que hacer es configurar tres parámetros dentro del fichero clickjack.js, nada mas. Estos parámetros son los siguientes:

Parámetros necesarios para hacer funcionar el script
Parámetros necesarios para hacer funcionar el script
  • El parámetro page_ hace referencia a la página de Facebook en la que quieres conseguir seguidores.
  • El parámetro Opacity establece el grado de opacidad que tendrá el microframe a la página de Facebook. Para las pruebas viene bien que se lo pongáis entre 50 y 100 para cercioraos de que está funcionando pero no se te olvide después ponerlo a cero cuando lo pongas en la versión definitiva.
  • El parámetro use_pointer indica si se debe usar el puntero o un cursor cuando el ratón esté encima de la caja de Facebook, es decir siempre.

Como veis en la siguiente imagen, se ve el mini iframe con el ratón apuntando directamente a la cajita de facebook. En la prueba se ve así porque su opacidad esta puesta a 50.

El iframe de la discordia
El iframe de la discordia

Y ya está, con este script te estarás garantizando un ritmo constante de fans en tus páginas de Facebook o como diría un tal Tojo “es como lluvia dorada en tu cara“.

No hace falta decir que estas técnicas pueden llegar a infringir las TOS de Facebook y/o incluso de Google y ello puede llegar a suponer un baneo temporal en el mejor de los casos así que tened cuidado al utilizar este script.

¿Y los likes? ¿Serán de calidad?

Pues depende, si tienes un buen número de visitantes accediendo a tu web desde búsquedas orgánicas significa que estas bien posicionado y que el visitante esta interesado, en principio, con tu contenido por lo que será fácil sacarle un click y con ello un like. Lo mejor es que lo pruebes tu mismo y con el paso del tiempo midas tus nuevas interacciones a ver si son público objetivo o no.

Y sino, siempre habrás aumentado en unos miles tus fans en tu página de facebook… y eso siempre gusta 😉

Si tienes dudas puedes dejarlas a través de los comentarios o utiliar el siguiente banner de Twitter…

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

Hala a mamarla!

 

 

Tipos de datos y argumentos en la programación orientada a objetos

Si estás siguiendo esta serie de artículos relacionados con la programación orientada a objetos ya tendrás unos datos mínimos necesarios para empezar a crear tus pequeños scripts. Pues bien, hoy vamos a explicar qué tipos de datos podemos utilizar en nuestros programas y cómo pasárselos a nuestras funciones o métodos, lo que se conoce como paso de argumentos vaya…

¿Qué son y cuántos tipos de datos existen?

Gran pregunta. Ya sabes lo que es una variable, pero si por un casual has caído en el post sin haber leído los artículos anteriores (te recomiendo que te los leas) imagina que una variable es como una caja vacía. En función del tamaño de la caja vas a poder guardar diferentes cosas en ella, desde un boli, a una pelota, una televisión o un conjunto de otras cajas mas pequeñitas.

Pues una variable es eso, una caja en la que guardar datos y los objetos que he dicho antes son los diferentes tipos de datos. Si por ejemplo intentas guardar una televisión en una caja que está pensada para guardar bolígrafos vas a comprobar que es imposible. Pues eso también pasa en la programación.

Internamente las variables son espacios de memoria reservada y para optimizar la memoria siempre se reserva el espacio que necesita el tipo de dato que contendrá la variable, es decir, si quiero guardar la tele en mi armario voy a reservar una caja que tenga el tamaño de la televisión que me interesa almacenar.

En los lenguajes de programación fuertemente tipados esto se respeta to the limit, con ellos no puedes guardar un tipo de dato diferente al tipo de dato con el que has declarado la variable. C y C++ es un lenguaje de programación con un tipado fuerte y me gusta especialmente ya que aunque el ritmo de programación sea mas lento que en comparación con otros lenguajes te aseguras que tu programa es robusto ya que por ejemplo te quitas la preocupación de que se pueda guardar una televisión en una cajita de bolígrafos.

Sin embargo también existen los lenguajes con un tipado débil, como PHP hasta su versión 7 y… y… Estos lenguajes son mas laxos a la hora de permitir guardar datos diferentes en las variables, de hecho esto puede ser una ventaja a la hora de programar pero también te exige estar mas atento a medida que escribes para no cagarla.

Pues bien, en PHP tenemos los siguientes tipos de datos:

Tipo de dato Descripción Valores Ejemplo
Boolean Es el tipo mas simple de todos y su valor representa una verdad. true/false $var = true;
Integer Es un número entero y puede especificarse con notación decimal (base 10), hexadecimal (base 16), octal (base 8) o binaria (base 2), opcionalmente precedidos por un signo (- o +). Números enteros $var = 1;
Floats Es un número decimal o número de punto flotante. Números decimales $a = 1.234;
$b = 1.2e3;
$c = 7E-10;
Strings Texto o cadena de caracteres. Texto $var = ‘Gorkamu’;
Arrays Estructura que puede guardar un conjunto de otros datos. En realidad es un mapa ordenado en el existen nodos con una clave y un valor. Conjunto de valores $var = [1 => ‘Hola’, 2 => ‘Gorka’];
Object Un objeto de una clase que se crea con la palabra reservada new Objeto $var = new Gorkamu();
NULL Sin valor null $var = null;
Atención

Los arrays son complejos, por favor revisa este documento para saber mas de ellos.

Mantén esta tablita a mano que a medida que aprendes y vas adquiriendo soltura con los tipos de datos te será muy útil.

Ya has aprendido a crear variables con diferentes tipos de datos, ahora toca pasarle esos valores a las funciones y métodos que programes.

Pasando argumentos a funciones y métodos

Bien, en este artículo anterior habrás aprendido que son los métodos y/o funciones, en el fondo es lo mismo y lo mas importante, habrás aprendido a crearlos. Pues ahora vamos a ver cómo pasarle datos a esas funciones.

Si te cuesta un poco visualizarlo imagínate una cadena humana en la que el primero de la fila tiene un bol lleno de palomitas y tiene que pasárselo al último que le ha pedido unas pocas. Siguiendo la cadena, el bol de palomitas ira pasando de persona en persona hasta llegar al último. Pues cada persona es una función o método que recibe algo (el bol de palomitas) y devuelve algo (el bol de palomitas)

Es posible que algún miembro de la fila manipule el bol de palomitas, tal vez alguno se lo pasará al siguiente sin hacerle nada, otro cojera un puñado, otro le echará un poquito mas de sal y si por desgracia en la cadena humana tenemos a un gordo fanegas es muy posible que se coma el bol de palomitas y no llegue nada.

¿Ha quedado claro no? xD

Pues eso, en PHP podemos pasar tantos valores, de ahora en adelante argumentos, como nos de la gana. Tendremos que separarlos por comas y existen tres formas diferentes de pasar los argumentos a las funciones.

Paso de argumentos por valor

Es el paso de argumentos por defecto. Cuando pasas un argumento a la función y el valor de este argumento cambia dentro de la función, su valor original, el de fuera de la función no se verá afectado.
https://gist.github.com/gorkamu/ff4a0be97e0c2f654d1eaf4d3a765c52.js

Paso de argumentos por referencia

Cuando pasas un argumento por referencia, si cambias o modificas su valor dentro de la función su valor original, fuera de la función, también se verá afectado. Para indicar que un argumento se pasa por valor lo tenemos que hacer indicándolo con el ampersand (&)
https://gist.github.com/gorkamu/ab2daeca875374646377f0283e52852c.js

Puede ser útil para modificar valores en funciones sin tener que indicar un return.

Paso de argumentos predeterminados

Si definimos una función que acepte argumentos es posible que nos interese que alguno de ellos tenga un valor por defecto. Si a la hora de llamar a esa función no le pasamos valor para ese argumento, el argumento tomará el valor por defecto dentro la función. Por el contrario, si a la función le indicamos un valor para argumento, ese argumento tomará dentro de la función el valor que hemos pasado.
https://gist.github.com/gorkamu/5b460caf1c7e957d98ca70de8df1d0d1.js
Otra cosa interesante que podemos hacer respecto a los argumentos de una función es definir una lista de longitud variable, esto es, en la declaración de la función no tenemos porque indicar uno por uno los argumentos que vamos a pasar. Si utilizamos el token “…” antes del argumento, PHP ya sabrá que se trata de una lista variable aunque eso si, todos los argumentos pasados han de ser del mismo tipo.
https://gist.github.com/gorkamu/2686a295c7209d525843af22e1740bfa.js
Pues nada chavales, a practicar y a realizar un huevo de ejercicios para que estos son conceptos se posen en tu cabecita y ya sabes, si tienes dudas dejame un comentario y te la resolveré o ponme un tweet a través del siguiente banner 😉

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

Hala a mamarla!