Entradas

Mostrando entradas de 2012

Feliz y prospero año nuevo =D

Imagen
Saludos a todos los seguidores y nuevos usuarios del blog, esta noche un año 2012 cargado de experiencias e ilusiones se va para dejar paso a un 2013 aun más suculento. Espero de corazón que todos vuestros objetivos se cumplan, y estos den lugar a nuevas metas que cumplir y superar.


Ánimo para seguir haciendo lo que os gusta y apasiona, por que solo así podréis llegar a lo más alto, sin olvidar lo más importante, las personas que tenéis a vuestro lado, y siempre estarán ahí.

Feliz y próspero año 2013.

Ejecutar HTML desde Sublime Text

Imagen
Si tienen alguna duda de como crear un nuevo Build System, echadle un vistazo a esta entrada donde está todo explicado al detalleCompilar y ejecutar JAVA desde Sublime Text. Una vez lo tengáis todo claro, aquí está el código JSON que contendrá nuestro nuevo Build System.


//Codigo para Windows { "cmd": ["start", "$file_name", "&&", "exit"], "shell": true } //Codigo para Linux { "cmd": ["python -c 'import webbrowser; webbrowser.open(\"$file_name\")'"], "shell": true }

Compilar y ejecutar C# desde Sublime Text

Imagen
Todo lo referente a la creación de un nuevo Build System en Sublime Text está explicado detalladamente en la entredaCompilar y ejecutar JAVA desde Sublime Text, así que si tienes alguna duda, pásate por esta entrada ya que la única diferencia entre la presente y la realizada para Java es el contenido del archivo .sublime-build que simplemente es copiar y pegar.


De este modo el contenido del archivo .sublime-build que debemos crear será el siguiente:
//Codigo para Windows { "cmd": ["%WINDIR%\\Microsoft.NET\\Framework\\v4.0.30319\\csc.exe /utf8output /nologo", "$file_name", "&&", "$file_base_name.exe"], "shell": true } //Codigo para Linux (compilador mono-mcs) { "cmd": ["mcs -out:${file_base_name} ${file_name} && chmod 764 ${file_base_name} && ./${file_base_name}"], "shell": true }

Ejecutar en cmd.exe desde Sublime Text

Imagen
Uno de los pocos puntos negativos de este excelente editor de código es que si compilamos y ejecutamos nuestros programas en Java, C++, etcétera con algún Build Sytem, nuestro programa se compilará y ejecutará mostrando el resultado satisfactoriamente si este NO requiere interacción con el usuario. En cambio, si nuestro programa debe leer algún dato, como por ejemplo (std::cin >> entrada;) en el caso de C++, nuestro programa no se ejecutará como es debido y la ejecución terminará con fallos.


Para solventar esto, y después de múltiples intentos de solucionarlo mediante Build System, es necesario modificar un archivo de configuración de Sublime Text llamado exec.py, para conseguir que al ejecutar nuestroBuild System, la ejecución de nuestro programa se haga en el cmd.exe, donde no tendremos ningún problema en introducir datos para nuestros programas.

Java vs C++ (algoritmo numeros primos)

Imagen
A continuación podréis ver una comparación entre Java y C++ donde se medirá el tiempo que toman ambos en contar la cantidad de números primos que hay desde 0 hasta 10.000, 100.000 y 1.000.000 respectivamente.
Comenzamos mostrando el código de ambos programas, este será el mismo en las tres pruebas exceptuando el cambio en el límite del primer bucle for para las siguientes pruebas.

Código JAVA:
public class Main { public static void main(String[] args) { int nPrimos = 0; boolean isPrimo; for(int i = 2;i < 10000; i++) { isPrimo = true; for(int j = 2; isPrimo && j <= Math.sqrt((double)i); j++) { if(i % j == 0) { isPrimo = false; } } if(isPrimo) { nPrimos++; } } System.out.println(nPrimos + " encontrados."); } }

Compilar y ejecutar C++ desde Sublime Text

Imagen
Como todo el proceso de creación de un nuevo Build System ya lo expliqué en la anterior entradaCompilar y ejecutar JAVA desde Sublime Text, solo colocaré el código JSON que deberá contener este nuevo Build System que se encargará de compilar y ejecutar nuestro programa en C++. //Codigo para Windows { "cmd": ["g++ -Wall ${file_name} -o ${file_base_name} && ${file_base_name}.exe"], "working_dir": "${file_path}", "shell": true } //Codigo para Linux { "cmd": ["g++ -Wall ${file_name} -o ${file_base_name} && ./${file_base_name}"], "working_dir": "${file_path}", "shell": true } Si tienes dudas sobre qué hacer con el código anterior, haz click sobre el enlace anterior donde está todo explicado paso por paso.

Numeros aleatorios en intervalos con JAVA

Lo primero que necesitamos saber es cómo generar un numero aleatorio en java, para ello tenemos el método random() de la clase Math. Dicho método tiene las siguientes particularidades:
Es un método static o perteneciente a la clase.Devuelve un número de tipo double.El número devuelto es positivo, mayor o igual que 0.0 y menor que 1.0. Siguiendo estas tres reglas, podemos crear un número aleatorio de la siguiente manera: double nAleatorio = Math.random(); Ahora bien, si lo que necesitamos es generar un número aleatorio que esté dentro de un intervalo, por ejemplo entre 1 y 100  haremos lo siguiente:

Calculadora para linea de comandos en JAVA

Para realizar esta sencilla calculadora, haremos uso del método split(String regex) que aplicado sobre un String, troceará dicho String según el patrón pasado en el argumento, devolviendo un array de String con todos los trozos.

Hecho esto, solo nos queda comprobar con un switch cual ha sido el operador utilizado, y según este, mostramos el resultado.
//Ejemplo de entrada: 4 * 5 ó 5.7 + 2.2 import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; public class Calculadora { public static void main(String[] args) { String[] op = leer().split(" "); switch (op[1].charAt(0)) { case '+': System.out.println(Double.valueOf(op[0])+Double.valueOf(op[2])); break; case '-': System.out.println(Double.valueOf(op[0])-Double.valueOf(op[2])); break; case '*': System.out.println(Double.valueOf(op[0])*…

Ordenar cualquier array con SORT en JAVA

En entradas anteriores ya aprendimos a ordenar un array numérico con la ordenación de burbuja (Bubble sort). En este caso facilitaremos mucho las cosas ya que en la API estándar de JAVA podemos encontrar el método sort de la clase Arrays, que está en el paquete java.util que se encargará de ordenar cualquier tipo de array que le pasemos como argumento.

Su uso se verá mejor con el siguiente ejemplo:
import java.util.Arrays; public class Main { public static void main(String[] args) { //Array de String String[] nombres = {"Pepe", "Juan", "Alex", "Julian", "Francisco", "Luis"}; //Ordena el array Arrays.sort(nombres); //Mostramos el array ya ordenado for (String i : nombres) { System.out.print(i + ", "); } } }

Leer y guardar un archivo de texto en JAVA

Imagen
La siguiente función devolverá un objeto del tipo StringBuilder con el contenido del archivo que le pasemos como parámetro.

Es importante el uso de la clase StringBuilderen este caso para almacenar gran cantidad de información en una variable de manera recursiva o con muchas concatenaciones ya que con la clase String, cada vez que añadamos una linea nueva a nuestra variable, se creará un nuevo objeto de tipo String con el contenido anterios más el contenido que hallamos añadido.

Compilar y ejecutar JAVA desde Sublime Text

En esta entrada veremos como configurar un llamado Build System de Sublime Text para que al presionar ctrl + b se compile y ejecute nuestra aplicación en JAVA.

Lo primero que debemos hacer es iniciar Sublime Text, una vez lo hallamos hecho, vamos a Tools -> Build System -> New Build System... Esto abrirá un pequeño archivo con unas lineas escritas en JSON, de modo que debemos copiar el siguiente código y pegarlo en este archivo.
//Codigo valido para Windows y Linux { "cmd": ["javac ${file_name} && java ${file_base_name}"], "shell": true } Cuando lo hallamos hecho, guardamos dicho archivo en la carpeta donde nos sugiere Sublime Text, y le ponemos un nombre descriptivo como por ejemplo ejecutarJava.sublime-build, ten cuidado que la extensión del archivo sea .sublime-build.

Y con eso ya hemos terminado, para compilar y ejecutar nuestros programas en JAVA tan solo debes ir a Tools -> Build System y elegir el nombre del archivo que h…

Redondear bordes facilmente con Photoshop

Imagen
El uso de imágenes con bordes redondeados es algo que queda muy bien en nuestras páginas web, para ellos se puede simular pintando pixel a pixel las esquinas de nuestra imagen del mismo color que el fondo donde estará la imagen, algo fácil pero un tanto chapucero.


Para redondear correctamente los bordes de una imagen, utilizaremos Adobe Photoshop CS5 y una imagen cualquiera, nosotros utilizaremos esta:

Ordenar cualquier array de numeros en JAVA

Con esta código podremos ordenar cualquier array de números ya sean de tipo int, como en el ejemplo o de cualquier otro tipo como byte, short, long, float o double.
public static int[] ordenarArray(int[] n) { int aux; for (int i = 0; i < n.length - 1; i++) { for (int x = i + 1; x < n.length; x++) { if (n[x] < n[i]) { aux = n[i]; n[i] = n[x]; n[x] = aux; } } } return n; } Para ordenar un array un tipo diferente al del ejemplo, tan solo debemos cambiar los tipos de retorno, el del parámetro de entrada y el tipo de la variable aux presente en la función por el tipo del array a ordenar.

Tipos de datos referencia y ejemplos en JAVA

Imagen
En java existen dos grandes grupos de tipos de datos, los tipos de datos primitivos explicados en la entrada anterior y los tipos de datos referencia, que son los que explicaremos en esta entrada.


Los tipos de datos referencia, indican que vamos a trabajar con instancias de clases, no con tipos primitivos. De esta manera, una variable de tipo referencia establece una conexión hacia un objeto, y a través de esta conexión podemos acceder a sus métodos y atributos.

Invertir cualquier array en JAVA

El código invierte un array de tipo entero o int, para invertir otro tipo de array, solo debemos cambiar el tipo de retorno, el tipo del parámetro que recibe, y el tipo de la variable aux presente en la funcion.
public static int[] invArray(int[] n) { int aux; for (int i = 0; i < n.length / 2; i++) { aux = n[i]; n[i] = n[n.length - 1 - i]; n[n.length - 1 - i] = aux; } return n; }

Sobrecarga de metodos y constructores JAVA

Imagen
En java, una clase puede contener dos métodos con el mismo nombre si:
Tienen diferente número de argumentosSi el tipo de los argumentos es distinto, aunque tenga el mismo número de ellos. Para entender esta sencilla propiedad de java, lo mejor es contemplar el siguiente ejemplo de dos métodos sobrecargados.
public void unMetodo(int numeroEntero) { //Codigo del metodo } public void unMetodo(float numeroReal) { //Codigo del metodo } Como vemos, ambos métodos tienen el mismo nombre y el mismo número de argumentos, en cambio el argumento que reciben es de distinto tipo de modo que cuando se llame al método unMetodo(15), se ejecutará el primero, y cuando se llame de esta manera unMetodo(15.5f), se ejecutará el segundo.

Kim Dotcom podrá acceder a los archivos de espionaje en NZ

Imagen
El creador de Megaupload podrá acceder a los archivos e informes sobre el espionaje al que fue sometido justo antes de su detención. El permiso lo ha dado el gobierno de Nueva Zelanda que ha admitido que sometió a una vigilancia ilegal a Kim, y que este podrá pedir una indemnización por ello.

Esto se debe a que según las leyes de Nueva Zelanda, está prohibido totalmente el espionaje de ciudadanos y residentes Neozelandeses. Ley que se saltó el gobierno en el momento de la detención de Kim, y que ha hecho que altos cargos de Nueva Zelanda hayan expresado su desacuerdo con esta medida declarando "Es responsabilidad de la oficina de seguridad actuar dentro de la ley, y es muy decepcionante que en este caso sus acciones cayeran fuera de la ley".

Top lenguajes de programacion Diciembre 2012

Imagen
Sin excesivos cambios con respecto a Noviembre, Objective-C sigue ganando popularidad afianzándose en el 3º puesto, también cabe destacar el incremento de popularidad y uso del lenguaje C con respecto al año anterior aumentando progresivamente su ventaja con Java.

Sin más, os dejamos con la lista completa de los 20 lenguajes de programación más utilizados en Diciembre de 2012:

Invertir numero entero en JAVA

Esta función sirve para invertir un número entero en JAVA, se invertirá la posición que ocupan los números y no el valor.
public static int invNum(int n) { int nDigitos = Integer.toString(n).length(); int nInv = 0; if (nDigitos == 1) { return n; } else { for (int i = 0; i < nDigitos; i++) { if (i == 0) { nInv += (n % 10) * Math.round(Math.pow(10, (nDigitos - 1))); } else if (i == nDigitos - 1) { nInv += n / Math.round(Math.pow(10, (nDigitos - 1))); } else { nInv += (n / Math.round(Math.pow(10, i))) % 10 * Math.round(Math.pow(10, (nDigitos - 1 - i))); } } } if (nInv < 0) { return nInv / 10; } else { return nInv; } }

Sucesion de Fibonacci en JAVA

Ejercicio muy utilizado cuando empezamos a programar, esta sucesión empieza en 0 y 1, y a partir de estos, los siguientes números son la suma de los dos anteriores.
//Nombre del archivo: Fibonacci.java public class Fibonacci { public static void main(String[] args) { int n1 = 0; int n2 = 1; int aux; int limite = 1000; System.out.println(n1); System.out.println(n2); while (n2 + n1 <= limite) { aux = n1; n1 = n2; n2 = aux + n1; System.out.println(n2); } } }

Los numeros Primos en JAVA

Los números primos son números naturales mayores que 1 que solo tienen dos divisores distintos: él mismo y el 1.
//Nombre del archivo: Primos.java public class Primos { public static void main(String[] args) { int desde = 2; int hasta = 1000; boolean esPrimo; for (int i = desde; i <= hasta; i++) { esPrimo = true; for (int j = 2; j <= Math.sqrt(i) && esPrimo; j++) { if (i % j == 0) { esPrimo = false; } } if (esPrimo) { System.out.println(i); } } } }

Autocompletado para WebGL

Imagen
Al no ser aun un estándar, webgl cuenta con poca compatibilidad con los IDEs de desarrollo, provocando que nuestro querido efecto de autocompletado de funciones y atributos no esté presente en ninguno de ellos.

Para solventar esto, se me ocurrió trastear con el autocompletado de Netbeans, para conseguir que este ayudara a completar el nombre de las funciones y atributos de la biblioteca de gráficos WebGL, que como ya sabréis, suelen ser nombres muy largos y en inglés, además son como uno 150 entre funciones y atributos, así que sería muy difícil aprenderlos todos de memoria.


Lo primero que debemos saber es que esto funciona en Netbeans 7.2 y posteriores, puede que en anteriores versiones también, pero no lo he probado. Una vez tengamos nuestro IDE instalado, cosa que aconsejo ya que es verdaderamente bueno para desarrollo web, necesitamos descargar un archivo javascript llamado webglMin.js (Está al final de la entrada), en cual debemos añadir a nuestra página .html como vemos a contin…

Tipos de datos primitivos y ejemplos en JAVA

Imagen
Los tipos de datos primitivos nos sirven para representar tipos de datos como números enteros, caracteres, números reales, booleanos, etcétera. Una variable de tipo primitivo nos permite almacenar en ella un tipo primitivo como por ejemplo un valor numérico.

A continuación están representados todos los tipos de datos primitivos presentes en java:

TipoTamaño (bits)Valor por defectoValores posiblesbyte80Mínimo: -128, Máximo: 127short160Mínimo: -32,768, Máximo: 32,767int320Mínimo: -2,147,483,648, Máximo: 2,147,483,647long640LMínimo: -9,223,372,036,854,775,808, Máximo: 9,223,372,036,854,775,807float320.0fEspecificado en la sección Floating-Point Types, Formats, and Values de la especificación original de JAVAdouble640.0dEspecificado en la sección Floating-Point Types, Formats, and Values de la especificación original de JAVAboolean1falseSolo tiene dos posibles valores: true y falsechar16'\u0000'Mínimo: '\u0000' (0), Máximo: '\uffff' (65535)

Introduccion a las clases en JAVA

Imagen
Introducción
Las clases son una parte muy importante de los lenguaje de programación orientado a objetos (POO), estas estructuras nos sirven para crear plantillas de elementos del mundo real, que utilizaremos posteriormente al crear ejemplares a partir de esta plantilla. Por ejemplo, el elemento del mundo real "Persona" podría ser una clase para una aplicación que gestione clientes.


Java es un lenguaje orientado a objetos, así que exceptuando los tipos de datos básicos para el manejo de números enteros, caracteres, etcétera, todo en java es un objeto. De esta manera en java existen dos grandes tipos de datos: tipos de datos primitivos (int, char, float), y tipos de datos referencia.

El metodo main en JAVA

Imagen
Toda aplicación informática consta de una serie de instrucciones que se van ejecutando, desde el principio hasta el final. Según el lenguaje de programación que estemos utilizando, la forma en la que dicho programa empieza, acaba o se va ejecutando puede variar mucho, esto depende en gran medida del paradigma que utilice dicho lenguaje.


Java es un lenguaje orientado a objetos (POO) y como tal hace uso de unas estructuras llamadas clases, que a nuestra manera de ver, no es más que un almacén de datos y procedimientos que dicha clase es capaz de hacer. Entonces, si en JAVA todo el código debe ir en una clase, exceptuando algunas sentencias como los includes o los packages, ¿Cómo sabe nuestra nuestro ordenador, por donde empieza nuestra aplicación?

Compilar y ejecutar JAVA desde Notepad++

Imagen
Compilar y ejecutar nuestros programas con solo presionar un botón es algo muy cómodo que casi todos los IDEs de programación tienen. Por desgracia Notepad++, un editor de código ligero y potente que tiene soporte para un gran número de lenguajes, no trae consigo la posibilidad de compilar y ejecutar nuestro archivo .java con tan solo pulsar un botón, pero en cambio nos da herramientas para poder hacerlo nosotros mismos.

Lo que debemos hacer es entrar en nuestro querido editor Notepad++, en la barra de opciones de la parte superior, deberemos hacer click en Ejecutar y seguidamente en Ejecutar..., la primera opción de la lista de opciones que aparecerá.


Compilar y ejecutar JAVA en CMD (Windows 7)

Imagen
Para aquellos que habéis utilizado algún IDE de desarrollo para JAVA, sabréis que este simplifica mucho el proceso de compilación y ejecución de nuestros programas, tan solo presionando un botón ya se crean nuestros archivos de Bytecode .class y .jar, y directamente se ejecutan en la consola del IDE.

Yo empecé con JAVA de esta manera, con el IDE Netbeans y pasado un tiempo, decidí pasarme a programar con Notepad++ para no tener las cosas tan fáciles y aprenderme de memoria por lo menos las clases más importantes.


Sea como fuere, tuve que empezar a compilar y ejecutar mis programas en la consola CMD de Windows, algo muy sencillo, pero que me acostó aprender ya que no encontraba información por ningún lado de cómo hacerlo. Lo primero que debemos hacer es compilar nuestro archivo .java, para convertirlo en código reconocible por la máquina virtual de JAVA, para ello utilizaremos el comando javac.

Top lenguajes de programacion Noviembre 2012

Imagen
Un mes más, Objective-C sigue ascendiendo a un ritmo impresionante, y se ha convertido por méritos propios en el lenguaje de programación con mayor ascenso de la lista con respecto a Noviembre del año anterior. Lenguajes como C y C++ también han sufrido un considerable incremento con un +1.90% y un +1.61% respectivamente, por contrapartida, JAVA sigue con un muy leve descenso que empezó hace ya bastantes meses, aunque por supuesto, su 2º puesto no corre peligro, de momento.

A continuación podréis ver la tabla completa con los 20 lenguajes de programación más utilizados hasta Noviembre de 2012.

Leccion 2: Introduccion a los shaders en WebGL

Imagen
Los shaders son a grandes rasgos, pequeños programas que se ejecutan en la tarjeta gráfica para representar todos y cada uno de los píxeles que compondrán la escena final en 3D. En concreto tenemos dos tipos de shaders:

Vertex shader (VS): Se trata de una función de procesamiento gráfico, que se encarga de manipular y representar los vertex (vértices) en un plano 3D, se encarga por ejemplo de calcular el color, la textura o la posición en la escena de ese punto.Fragment shader (FS) o Pixel shader (PS): De forma parecida al VS, estos son funciones o pequeños programitas que manipulan los fragments (algo así como píxeles con datos adicionales como color, iluminacion, etc).

El proximo Megaupload sera a prueba de "bombas"

Imagen
Kim Dotcom, el creador de Megaupload aseguró hace unos días que están trabajando junto a un gran grupo de abogados para que el nuevo Megaupload sea totalmente legal basándose en las leyes actuales. Kim asegura que la nueva web de descarga de archivos y visionado de vídeos en streaming será a prueba de demandas para que no vuelva a ocurrir lo mismo que con su antigua y difunta web.


Funciones de string (2 de 2) PHP 5

Imagen
Selección de subcadenas
La función substr() nos permite seleccionar un conjunto de caracteres de una cadena, esta función no altera el string original. Puede tomar varios parámetros de entrada:

substr( cadena, índice): Cadena es el conjunto de caracteres que vamos a cortar, e índice es la posición desde la cual se cortará nuestra cadena hasta el final.substr( cadena, índice, número): Utilizando este tercer parámetro conseguimos cortar la cadena desde la posición indicada por índice, tantos caracteres como indique número. Por ejemplo: <?php $cadena = "Esto es una cadena muy extensa en PHP"; //Devuelve la cadena completa echo substr($cadena, 0) . "<br>"; //Desde el caracter 12 hasta el final echo substr($cadena, 12) . "<br>"; //Desde el caracter 12 empezando desde la derecha hasta el final echo substr($cadena, -12) . "<br>"; //7 caracteres desde el caracter 14 echo substr($cadena, 14, 7) . "<br>"; //7 c…

Leccion 1: Primeros pasos con WebGL (con ejemplos)

Imagen
En esta entrada aprenderemos los primeros pasos que debemos dar antes de poder dibujar algo en el canvas utilizando WebGL. De esta manera y sin más dilación, si ya leíste la entrada anterior ¿Que es WebGL? y tienes una idea más o menos clara de lo que es WebGL y las tecnologías que utilizaremos, empezamos.

Lo primero que necesitamos para empezar con WebGL es iniciar nuestro archivo HTML el cual nos servirá para prácticamente todas las lecciones que hagamos.

<!DOCTYPE html> <html> <head> <title>Guia WebGL</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> //Codigo javascript </script> </head> <body> <canvas id="canvas"></canvas> </body> </html>

Top lenguajes de programacion Agosto 2012

Imagen
Con el mes de agosto recién acabado, es la hora de mirar hacia atrás y ver como el uso de los lenguajes de programación esta cambiando. Esta vez sin grandes cambios con respecto al mes anterior. C# continua un mes más a la baja, con el que ya suman 8 consecutivos, Objective-C sigue en la 3º posición, con C++ pisándole los talones y por la parte baja de la lista Visual Basic .NET y Ruby en menor medida, están ganando popularidad a buen ritmo.

¿Que es WebGL?

Imagen
WebGL es una API multiplataforma destinada a crear gráficos 3D en un navegador web. Esta herramienta está basada en la conocida biblioteca de gráficos OpenGL ES 2.0, además utiliza su mismo lenguaje de sombreado o "shading", GLSL. La API WebGL ha sido desarrollada siguiendo el estándar OpenGL, es decir, si conoces OpenGL, te será muy sencillo adaptarte a esta nueva API para navegadores web.

Esta nueva tecnología se ejecuta en el elemento Canvas de HTML5, además tiene una completa integración con todas las interfaces DOM (Document Object Model). Al ser una API DOM, podemos utilizar cualquier lenguaje de programación compatible con DOM como javascript o java.

Kim Dotcom pide ayuda a Obama para la reapertura de Megaupload

Imagen
Kim Dotcom, el creador de Megaupload utilizó hace escasas horas su cuenta de Twitter para pedir ayuda al presidente de los Estados Unidos Barack Obama y al candidato Mitt Romney con el fin de volver a lanzar su web Megaupload.


Desde la clausura por parte del FBI del sitio web, Kim Dotcom empezó a utilizar Twitter para informar a los seguidores de dicha web de las últimas noticias al respecto. La mejor noticia que se podía esperar llegó hace un mes cuando Kim comentó que la vuelta de Megaupload es inminente, y que la web será más rápida, más grande y gratuita para todos.

El video original con la detencion de Kim dotcom fundador de Megaupload

Imagen
Hace escasas horas apareció en el portal de vídeos YouTube, el vídeo original con la detención de Kim Dotcom, el fundador de Megaupload.

Según Dotcom, la policía lo trató como un autentico delincuente armado y peligroso, en la operación la policía utilizó un helicóptero desde el cual se grabaron las imágenes, miembros de las fuerzas especiales armados con rifles de asalto y hasta perros entrenados, todo ello para capturar a una persona que no tenía antecedentes penales, y lo único que hizo fue sentarse en su ordenador, y escribir código.

Kim Dotcom en apuros con Twitter

Imagen
El siempre polémico y carismático creador de Megaupload se encuentra en apuros nuevamente, sin embargo esta vez no es tan grave como sus múltiples denuncias que se le imputan por infringir derechos de copyright por su conocida y difunta web Megaupload.

Top lenguajes de programacion julio 2012

Imagen
¡Objective-C supera a C++! Así es queridos lectores, esto no es una broma ni un espejismo, el que fue el claro perdedor sobre el año 1983, cuando ambos lenguajes aparecieron, ha vuelto, después de 31 años, Objective-C se impone al todopoderoso C++ colocándose así en 3º posición.


Los tiempos cambian y la gran popularidad de los terminales móviles y sus aplicaciones, en este caso los terminales de Apple, han hecho incrementar increíblemente la popularidad de este lenguaje de programación. Esto no quiere decir que C++ valla a quedar obsoleto, ya que son lenguajes totalmente diferentes, y C++ a mi parecer es un lenguaje totalmente imprescindible a la hora de realizar aplicaciones donde la optimización y el rendimiento sea esencial, como por ejemplo en videojuegos.

Vuelta al trabajo

Imagen
Saludos, escribo después de tanto tiempo para comentaros a todos vosotros, los lectores de mi blog, que volveré a escribir entradas, seguiré con mi manual de PHP 5, que se quedó a medias, noticias de vez en cuando referentes a la informática y comentaré en qué he estado trabajando hasta ahora.


Cuando termine mi manual de PHP 5, comenzaré con entradas sobre WebGL, la implementación de OpenGL para navegadores que permiten generar alucinantes gráficos en 3d, y quizás escriba algo sobre c++ y OpenGL, con el cual estoy empezando ahora mismo, y estoy dando mis primeros pasos =D.

Doodle de Google dedicado a Robert Moog

Imagen
Así es, una vez más Google nos sorprende con sus Doodles conmemorativos, este está dedicado al inventor estadounidense Robert Moog. Creador, junto con otras personas del sintetizador, instrumento muy utilizado en la música electrónica con el cual se puede realizar casi cualquier sonido.


Anonymous ataco las paginas de la CIA y de la Interpool

Imagen
Este fue el último ataque del grupo de activistas Anonymous, con el cual consiguieron dejar fuera de servicio las páginas web de la CIA y de la Interpool, los servicios de inteligencia de EEUU e Inglaterra respectivamente.

Top lenguajes de programacion abril 2012

Con el mes de mayo recién empezado, es momento de mirar atrás y hacer un listado de los lenguajes de programación más utilizados durante el mes de abril.

Como podemos ver en la tabla de abajo, hay varios cambios a destacar con respecto a meses anteriores, y es que el lenguaje de programación C, ha desbancado a JAVA como lenguaje más utilizado, teniendo que remontarnos a mediados de 2005, cuando dichos lenguajes de programación se acercaron el uno del otro.
Otro dato importante, es que un mes más, OBJECTIVE-C sigue escalando puestos, desbancando a lenguajes tan importantes como PHP o C#, y afianzándose en la 4º posición, algo que cabría esperar hace unos meses, dado el auge en el que se encuentran los sistemas iOS de Apple.

La ley SOPA con nuevo nombre, CISPA

Imagen
Imaginen números de cuenta, correos electrónicos, preferencias sexuales, religiosas y personajes, experiencias, mensajes intercambiados con amigos, familiares, etcétera, en manos del gobierno, todo lo que hayamos visto, escrito y "clickado", en inmensas bases de datos, ordenado y etiquetado por orden alfabético a merced de unos pocos, eso es lo que propone la novísima ley CISPA.

Cuando aún nos estamos recuperando de la "casi" aparición de la ley SOPA, el gobierno no desiste en sus intentos de monitorizar y controlar a todos y cada uno de los usuarios de internet.

Esta última ley, denominada CISPA (Cyber Intelligence Sharing and Protection Act), intenta recoger la batuta de la ya desaparecida ley SOPA, e incluso llevarlo todo un poco más lejos, y al extremo si cabe.



Anonymos arremete contra el Vaticano y Panda Security

Imagen
Hace escasas horas, Anonymos ha realizado dos nuevos ataques informáticos, uno contra el Vaticano denunciando su corrupción y el "interés de lucro" de la iglesia católica, y el otro contra la empresa española de seguridad informática Panda Security.


Anonymous retoca la constitucion de Hungria

Imagen
Según all Hungary, un grupo de medios local de Hungría, el grupo de activistas Anonymous, modificó el texto de la constitución en la web de la corte constitucional de Hungría. Entre los cambios realizados, se encuentra un nuevo artículo por el cual los empleados de la esfera IT podrían jubilarse a los 32 años, siendo su pensión equivalente al 150% de su salario en período de empleo.


El video que hace cuestionarse muchas cosas...

Imagen
Desde luego, este vídeo me ha hecho pensar sobre el tema, no quiere decir que la realidad sea o no sea así, pero con la información del vídeo, encajan muchas cosas... Sin más, os dejo con él, escucharlo detenidamente, y pensad en qué mundo podríamos esta viviendo en caso de que tenga razón.

Nuevo golpe de Anonymous al FBI

Imagen
Anonymous, el ya conocido grupo de activistas de internet a vuelto a poner en "jaque" al FBI de nuevo, esta vez, lo ha hecho publicando una conversación entre estos, y las fuerzas de seguridad británicas. En la conversación, se habla sobre el supuesto rastreo de hackers culpables de los últimos ataques informáticos.

La hazaña lograda por el grupo de activistas, fue colgada en YouTube, junto con un correo electrónico enviado por el FBI a agencias de seguridad de varios países dando detalles de como pueden cooperar con ellos para intentar capturar a Anonymous.


Anonymous cataloga el supuesto ataque a Facebook como fake

Imagen
El grupo de activistas ha desmentido el ataque a Facebook que se comenta en un vídeo subido a Youtube ayer en su nombre. Anonymous ha publicado varios comentarios en su cuenta de Twitter @anonops, negando cualquier ataque a la red social Facebook con tweets como: anonops -> AGAIN: "Anonymous Threatens Facebook Shutdown Jan" IS A FAKE. RT PLEASE.

La idea de un ataque a la red social de Zuckerberg en este momento sería un tanto confusa, pues el grupo de activistas está ahora mismo centrando su atención en el gobierno de EEUU y las empresas a favor de las leyes antipiratería que podrían cerrar cientos de páginas como ya lo hicieron con Megaupload. Además, Mark Zuckerberg se había posicionado en contra de dichas leyes.


Anonymous propone un "marzo negro"

Imagen
El grupo de activistas ha hecho una llamada a la población para que durante el próximo mes de marzo, no se compre nada de la industria del entretenimiento como por ejemplo libros, música, películas, ir al cine, etcétera. Todo ello con el fin de debilitar esta industria y que sus ingresos mermen.

Esta iniciativa se ha creado a partir de un vídeo que ha subido Anonymous a YouTube y que encontraremos al final de esta noticia. Todo ello para protestar por el cierre de la web Megaupload y por las leyes que quiere implementar EEUU como "SOPA" o "PIPA" con las cuales solo conseguirán censurar a quienes están en la web, es decir, a nosotros.

Anonymous gana con la operacion Megaupload

Imagen
En las últimas 24 horas, Anonymous ha realizado el mayor y más efectivo ataque de denegación de servicio (DOS) de la historia. Como ya sabemos de las entradas de este mismo blog, El FBI cierra Megaupload y Anonymous responde y Anonymous publica datos personales del director del FBI, durante el día de ayer, el grupo de activistas Anonymous manifestó su descontento hacia el cierre de la web Megaupload, y en parte también hacia la ley SOPA,ley que sobre la segunda parte del día de ayer se canceló.


Anonymous publica datos personales del director del FBI

Imagen
El grupo de activistas Anonymous, sigue con sus represalias por el cierre de Megaupload hacia los organismos responsables, esta vez, han publicado por diversas redes sociales datos personales del director del FBI, Robert Muller.

Entre los datos privados publicados, se encuentran direcciones donde reside el director del FBI, así como de su esposa e hijas, también se han publicado direcciones de correo electrónico de su familia y los números de teléfono.


El FBI cierra Megaupload y Anonymous responde

Imagen
Los departamentos de seguridad de EEUU y otras autoridades internacionales han llevado a cabo una operación contra la conocida página web de intercambio de archivos Megaupload, provocando el cierre de la web, y la acusación de los creadores a graves delitos de violación de derechos de autos que podrían tener condenas de hasta 50 años de prisión.

El departamento de justicia acusa a los propietarios de la web de crimen organizado asegurando que son responsables de piratería masiva en todo el mundo de diferentes tipos de obras protegidas por derechos de autor. También aseguran que la empresa se ha generado 175 millones de dólares en actividades delictivas y han causado un daño de 500.000 millones de dólares a los propietarios de las obras protegidas.


Top lenguajes de programacion enero 2012

Un dato importante si miramos las primeras posiciones es la 3º posición que ocupa C# que ha desbancado a C++. Otro dato importante es que continúa el ascenso del lenguaje Objective-C debido en gran parte, a su utilización por parte de apple en su sistema operativo y aplicaciones.

Sin más os dejo con la tabla completa, que podréis comparar con la entrada publicada el mes pasado sobre los lenguajes de programación mas utilizados en diciembre 2011, al final está el link.

Tuenti a la vanguardia en seguridad

Imagen
Tuenti, una de las redes sociales más seguras y que más protege la privacidad de sus usuarios, a dado un gran paso adelante implementando en su plataforma un mecanismo de verificación de la identidad de sus usuarios a través de DNI electrónico.

De este modo, la red social líder en España aprovecha las posibilidades que permiten los sistemas de acreditación electrónica para garantizar la veracidad de la identidad de los usuarios, estando así a la vanguardia en la utilización de estas técnicas.


Facebook a medio año de los 1.000 millones de usuarios

Imagen
Así es, el todopoderoso Facebook sigue creciendo a un ritmo frenético. Las últimas novedades incorporadas por la red social han hecho que aumente más aun su ritmo de crecimiento, de seguir a este ritmo, sobre agosto podría llegar a los 1.000 millones de usuarios.

Este hito se alcanzaría gracias a la expansión de la red social en nuevos mercados emergentes como por ejemplo Brasil o India, ya que la red social solamente está presente en un 3% de la población total de la india, y un 16% de la población de Brasil. Estos datos comparados con los obtenidos en países como Inglaterra donde el uso de Facebook se sitúa en torno al 50%, nos da mucho margen de mejora.


Funciones de string (1 de 2) PHP 5

Si ya conoce el lenguaje C, verá que las funciones de manejo de caracteres son muy parecidas en nombre y uso. En caso contrario, verá que son funciones de los más fáciles de utilizar, tan solo hace falta tener memoria y aprenderse el nombre y los argumentos que necesitan, ya que el manejo de cadenas es necesario en casi cualquier proyecto web, dicho esto, comenzamos.

Tamaño de la cadena
La función strlen( ) devuelve como resultado el tamaño en caracteres de la cadena que le pasamos como parámetro. Esta cadena puede asignarse a una variable como vemos en el ejemplo:
<?php $cadena = "Alejandro Santiago"; $caracteresCadena = strlen($cadena); echo "\$cadena tiene $caracteresCadena caracteres"; ?> La salida que devuelve el ejemplo es "$cadena tiene 18 caracteres".

Holanda bloquea The Pirate Bay

Imagen
Holanda, último país en sumarse a la lista de los países que "pasan" de los derechos de sus ciudadanos. Esto se debe a la orden de bloqueo por parte del tribunal de justicia holandés en contra de la página de descargas "The Pirate Bay", de origen sueco.

Suecia ya intentó cerrar la página en 2010 con una condena a los responsables, sin embargo de poco sirvió esta medida ya que el portal de descargas, que es uno de los mayores de Europa, siguió operativa.


Lo nuevo de Google

Imagen
Así es, Google a comunicado que a lo largo de los próximos días y de forma progresiva, irá implementando una nueva herramienta para su motor de búsquedas. Esta consistirá en añadir a los resultados de las consultas realizadas por los usuarios, información personal de los usuarios de su propia red social, Google+.

Esta herramienta estará disponible en breve para internautas con cuenta Google, y realicen búsquedas en inglés. Será totalmente opcional su uso, ya que podremos deshabilitarlo en cualquier momento en un icono situado en la esquina derecha de la pantalla.


Cadenas de caracteres o string PHP 5

Imagen
Las cadenas o string son secuencias de caracteres que pueden ser tratadas como una unidad, asignadas como variables, pasadas como parámetros a funciones o enviadas como salida al navegador, este tipo de datos, se diferencia de otros tipos por que va encerrado entre comillas dobles ( " " ) o comillas simples ( ' ' ).
<?php $cadena1 = "String con comillas dobles"; $cadena2 = 'String con comillas simples'; ?> Aunque la salida del ejemplo anterior sea la misma, PHP interpreta de distinta forma las cadenas que van entre comillas dobles y las que van entre comillas simples. Los string entre comillas dobles pueden sustituir ciertos símbolos por acciones, mientras que las comillas simples se limitan a mostrar todo el contenido sin atender a caracteres especiales, como podemos ver en el siguiente ejemplo.
<?php $nombre = "Alejandro"; $fraseDobles = "$nombre tiene 19 anios"; $fraseSimples = '$nombre tiene 19 anios'; …

Facebook busca 'hacker'

Imagen
El plazo para inscribirse en la "hacker cup" ha dado comienzo, la competición en la que se busca al mejor "hacker" del mundo, en la cual tanto ingenieros como aficionados se enfrentarán para demostrar quien es el mejor.

El evento, está estructurado en una seria de pruebas en la que se valorarán cualidades como la velocidad y la pericia de los programadores para resolver problemas algorítmicos y así avanzar a lo largo de las cinco rondas con las que cuenta la prueba.
Los programadores irán eliminándose ronda por ronda hasta llegar a la última ronda, en la cual solamente quedarán 25 participantes, que tendrán que realizar la última prueba en la sede de Facebook, en California.


Twitter tambien falla....

Imagen
Seguimos con nuestro maratón de fallos y ataques contra el objetivo mas tentador con el que contamos hoy en día, las redes sociales. El último a sido Twitter, el cual ha fallado con el control de falsas identidades, permitiendo así a un usuario británico suplantar la identidad de la esposa de Rupert Murdoch. Dicha cuenta a estado habilitada unas 48 horas, antes de que Twitter se percatara del problema y deshabilitara la cuenta, ademas de pedir disculpas.

El abogado de ePivacidad Samuel Parra a comentado que no hay una legislación específica para estos casos, pero que se puede recurrir a las leyes generales para buscar protección en caso de suplantación de identidad. Algo bastante importante ya que la agencia de protección de datos española ha comentado que en los últimos años se ha registrado un incremento en las reclamaciones vinculadas a la difusión de datos personales sin consentimiento de los titulares por internet, principalmente en redes sociales y portales de vídeo.


Extraer datos de ficheros RPM

Habrá ocasiones en las que se desee extraer dados de los RPM sin instalar el paquete. Por ejemplo, esto puede sernos útil cuando se quiere obtener la fuente original de un RPM fuente para compilar el software sin las ayudas de herramientas RPM.

Los ficheros RPM, son en realidad, ficheros cpio modificados por lo que convertir RPM en cpio nos resultará relativamente fácil. Para ello, necesitamos el programa rpm2cpio que viene con la mayoría de distribuciones linux. Este programa recibe como único argumento el archivo RPM y genera como salida el archivo cpio por la salida estándar.

Para hacer esto, podemos utilizar los operadores de redirección " > ", si queremos hacer la operación en dos pasos, o también, podemos utilizar el operador pipe " | ", ahorrándonos así la necesidad de crear el archivo cpio intermedio.

Facebook cae ante un virus

Imagen
Facebook vuelve a ser víctima de otro ataque, esta vez el producido por el virus Ramnit, conocido hace 2 años. Este virus denominado como un gusano de internet, a conseguido sustraer de la red social 45.000 contraseñas de usuarios, mayoritariamente de Francia e Inglaterra.

El ataque a priori no puede parecer muy dañino ya que la red social cuenta con alrededor de 800.000.000 usuarios, pero esto no es así, ya que según la compañía de seguridad McAfee, este virus es capaz de infectar ejecutables de Windows, Microsoft Office y hasta archivos HTML.


Google castiga a Google Chrome

Imagen
De todos es sabido que Chrome, el famoso navegador web de Google, está en su momento álgido ya que hace poco tiempo desbancó a Firefox como el segundo navegador web mas utilizado a nivel mundial.

Hasta ahora para Chrome eran todo buenas noticias, y digo hasta ahora por que ha salido a la luz la noticia de que la compañía que se encarga de la publicidad del navegador había pagado a varios blog para que en algunas de sus entradas pusieran enlaces directos a la descarga de Google Chrome. El problema está en que estos blog no utilizaron ninguna etiqueta para señalar que estos enlaces son publicidad, por lo que el buscador de Google, toma estos enlaces como simples referencias, beneficiando al posicionamiento SEO de la página de descarga de Chrome.


Internet Explorer 6 se queda K.O.

Imagen
Si bien, hace unas semanas publiqué una entrada sobre las medidas que tomaría Microsoft para intentar hacer que los usuarios que aún lo utilizaban, se actualizaran a Internet Explorer 8 o 9, como podemos ver aquí, esta entrada trae consigo más buenas noticias al respecto.

Tal y como dice el título, la acción que llevó acabo Microsoft para hacer desaparecer IE6, está dando sus frutos antes incluso de lo previsto, ya que Microsoft a anunciado en su blog, que el uso de IE6 a decaído hasta contar con una cuota del 1% en Estados Unidos.

Funciones (3 de 3) PHP 5

Funciones con número de argumentos variables
Es normal que dependiendo de la situación en la que nos encontramos, variemos el número de parámetros con los cuales llamamos a una función. Hay tres formas de hacer esto en PHP:
Definiendo la función con argumentos por defecto. Este método permite hacer llamadas con menos parámetros sin que aparezca un error.Utilizando un array para pasar las variables.Usando las funciones de argumento variable func_num_args( ), func_get_arg( ) y func_get_args( ), ya utilizadas en PHP 4.Argumentos por defecto
Para definir parámetro de este tipo, se sustituyen las variables por expresiones de asignación. El formato es el siguiente. <?php function nombreFuncion ($argumento1 = valor1, $argumento2 = valor2) { } ?>

Facebook se despide de IE7

Facebook, la colosal red social de Mark Zuckerberg, a decidido dejar de dar soporte al navegador de Microsoft Internet Explorer 7.

Es la primera noticia del año de parte de la red social, con la cual pretende que sus usuarios se actualicen hacia IE8 en caso de usuarios de Windows XP, IE9 para usuarios de Vista y 7, o simplemente que cambien de producto.

Según Facebook, esto se hará de manera gradual para sus usuarios, el primer paso, ha sido que los usuarios que accedan desde IE7, no podrán utilizar la nueva herramienta de la red social, el TimeLine. Con el tiempo, la pérdida de soporte irá aumentando, a medida que Facebook se valla actualizando.