lunes, 18 de marzo de 2013

Diseño Inteligente

¿Que pasaría si de los miles de avistamientos de Ovnis que ocurren cada año, una persona fuera a tener un encuentro real con el ocupante, el 'piloto' de uno de estos Ovnis? Y que sucedería si este ser del espacio fuera a entregar una información aesta persona que explicara la historia secreta de la vida en la Tierra y su futuro próximo? ¿Y si toda esta información hubiera sido publicada hace décadas y hubiera sido reconocida por miles de personas, incluyendo científicos e historiadores?

Descargar Libro

viernes, 18 de enero de 2013

Desmontando el mito del 1% Linux

portallinux.es


Al parecer casi todos los dias alguien de la prensa técnica, o comentando en algún foro, asegura que la adopción de Linux en el mercado de escritorio(incluyendo laptops) es insignificante. El número resultante está alrededor del 1%. Estas afirmaciones han sido repetidas por algunos que abogan por la adopción de Linux. Ambas ideas, que el mercado Linux es insignificante, y la del 1%, simplemente son falsas, y lo han sido por muchos años. La cuota de mercado de Linux no es diminuta. Linux y UNIX han tenido una parte mayoritaria del sector de servidores por más de una década. Linux es muy competitivo en dispositivos embebidos. También ha tenido grandes avances en el mercado de consumidores y empresas, incluyendo laptops, notebooks y netbooks.
Comencemos con las netbooks, el área donde Linux ha hecho las mayores entradas. De acuerdo con ABI Research, Linux acaparó el 32% del mercado netbook en el 2009, a pesar de ser casi imposible conseguirlo en tiendas de accesorios. Este número no incluye sistemas vendidos con dual boot, en los cuales Windows es considerado el sistema operativo por defecto.
Dell ha reportado que aproximadamente un tercio de sus ventas de netbooks en el 2009 fueron sistemas con Ubuntu preinstalado. Recientes reportes de que no había mas demanda de Linux en las netbooks, y que Dell había desestimado Linux, fueron probados como falsos. de hecho, en estos momentos Dell ofrece laptops y desktops con Ubuntu, en adición al Inspiron Mini 10n.
¿Qué significado tienen los números de netbooks en términos globales de ventas con relación a desktop y laptops? De acuerdo con Forrester Research, las netbooks fueron el 18% del total de ventas de desktop/laptops el pasado año. Si hacemos matemáticas, veremos que sólo por las netbooks, Linux capturó cerca del 6% del mercado en el 2009. Para alcanzar un número total, tendremos que agregar grandes laptops y desktops de compañías como Dell, HP(su línea de negocios), así como pequeños vendedores al detalle.
Confirmación adicional del crecimiento de Linux en el mercado, vino de una fuente inesperada: el CEO de Microsoft Steve Ballmer. Usando una diapositiva para mostrar el mercado de SO, Ballmer mostró la tajada de Linux ligeramente mayor que la de MacOS. Nadie considera a Apple insignificante, y tampoco lo es Linux. Aquí está, en parte, lo que el señor Ballmer tuvo que decir sobre Linux en el desktop y la competición para Windows:
“Linux y Apple, como podrán ver en la diapositiva, han incrementado ciertamente su parte.”
(…)
“Pienso que, dependiendo de como se mire,Apple probablemente ha incrementado su cuota de mercado el año pasado, por un punto o más. Un punto de cuota de mercado en un numero que está sobre los 300 millones, es interesante. Es una interesante cuota de mercado, aunque no sea tan dramática como la gente piensa, pero estamos muy enfocados en ambos, Apple y Linux, como competidores.”
¿Podría alguien creer que Microsoft vería a Linux como un competidor serio, si éste sólo alcanzara el 1% del mercado? No parece muy real, no creen? Todas las cifras que he mencionado hasta ahora representan ventas de sistemas preinstalados con un sistema dado, sea este Windows, Mac o Linux. No representan uso real. Si usted va a la tienda, compra un sistema con Windows, barre el disco duro e instala Linux, sigue contando como un sistema Windows, no como Linux, para las estadísticas.
¿De donde salió el 1% entonces? Existen dos fuentes,datos muy antiguos, y los contadores web. El problema con el uso de contadores web para probar y certificar la cuota de mercado consiste en que ellos generalmente solo incluyen sitios web que han pagado para ser contados. Eso garantiza que Windows va a ser sobrecontado. Ars technica recientemente ha demostrado cuan dramático es el error es posible en un artículo sobre cuotas de mercado de navegadores. Encontraron que IE tenia sobre el 60%,Firefox justo bajo el 23%, y Chrome sobre el 8%. Los porcentajes del sitio de Ars technica fueron completamente diferentes, con firefox en el 38%, Chrome en el 22%, e IE en un distante cuarto lugar con el 16.63%. La razón para esta discrepancia es obvia: Ars tecnica tiende a tener lectores mas técnicos, quienes están mas conscientes de los problemas de seguridad de IE, y tienden a usar Linux o MacOS. Similarmente, la mayoría de los sitios técnicos de Linux, no pagan para ser contabilizados por las compañías de web counters, lo que desbalancea los números en favor de Windows.
Entonces, ¿cuál es la real cuota de mercado de Linux en los desktops? El mejor estimado de ventas actuales está alrededor del 8%, lo cual pone a Linux justamente detrás, o empatado con MacOS. Este 8% se traduce a 24 millones de sistemas al año vendidos con Linux preinstalado. Windows representaal menos el 80% del mercado, y es un monopolio de facto. Como sea, ha habido una mantenida erosión de ese status de monopolio.
Si hablamos del uso real, no hay manera de tener una idea precisa.Un trabajo mesurado de adivinación probablemente ponga a Linux cerca de un 10%, igualado con MacOS. Es un salto lejano al 1%, y de ninguna manera insignificante.
Texto original en inglés: http://broadcast.oreilly.com/2010/09/debunking-the-1-myth.html
Fuente: http://portallinux.es/desmontando-el-mito-del-1/
http://www.rebelion.org/noticia.php?id=162436

viernes, 7 de diciembre de 2012

Crear Store Procedures en Oracle

Store Procedures (Procedimientos Almacenados) en muchas ocasiones se usan para no incluir en nuestros fuentes de la aplicación las consultas que se realizan. La sintaxis que voy a describir es para oracle sin embargo tambien tienen cierta similitud en SQL Server y MySQL.

Por que es importante el uso de estos Procedimientos Almacenados?: aquí

/* Puede usar solo CREATE pero si llegan a hacer una modificación al procedimiento utilicen REPLACE. */

CREATE OR REPLACE PROCEDURE nombre_procedimiento
(
/* Es importante que todos los parametros que se creen les agreguen un sufijo para mantener un orden y estandar. Como consejo!! */
P_PARAM1 NUMBER,
P_PARAM2 VARCHAR,
P_PARAM3 BOOLEAN
)
IS

/******************************************************************************
Al crear un procedimiento podemos incluirle tantos parametros como necesitemos teniendo en cuenta el orden de estos para cuando se llame desde el código.
******************************************************************************/
BEGIN
      /* Podemos inicializar los parametros antes de comenzar con las consultas*/
     P_PARAM3 := true;
     /* En esta parte ya alojan todas consultas que deseen que corran en este procedimiento */ 
    INSERT INTO nombre_table VALUES(P_PARAM1, P_PARAM2, P_PARAM3);
    UPDATE nombre_table SET PARAM2 = P_PARAM2, PARAM3 = P_PARAM3 WHERE PARAM1 = P_PARAM1;
    DELETE FROM nombre_table WHERE PARAM1 = P_PARAM1;END nombre_procedimiento;
/

Con este corto ejemplo espero servir de ayuda para quienes comienzan a crear Store Procedures.


Por ultimo dejo una linea de código para ver como es la llamada del procedimiento.

Línea en C# VB:

DbCommand cmd = db.GetStoredProcCommand("nombre_procedimiento", 1, "dato", true);
n = db.ExecuteNonQuery(cmd);

miércoles, 7 de noviembre de 2012

Desarrollar para Window 8



Para la llegada de windows 8 con todos sus cambios, también trae un manual de las API WinRT para los desarrolladores, algo interesante y atractivo para realizar apps. Este manual fue escrito por Kraig Brockschmidt Programming Windows 8 Apps with HTML, CSS, and JavaScript.  go.microsoft.com/FWLink/?Linkid=270056 

Para más información:  blogs.msdn.com


Si saco tiempo voy a realizar un ejemplo de app para Window 8.


lunes, 6 de agosto de 2012

Calculadora Básica para Android (HTML5 y JqueryMobil)

Este post esta dedicado a las personas que buscan como hacer una aplicación para android usando html5. Sin embargo hay unos prerequisitos: saber de html(por ende html5), javascript y jquery.

Mi recomendación en el desarrollo de la aplicación web.

Aparte del hola mundo para comenzar en algún lenguaje el mejor para mi es hacer una Calculadora.

Mi script para las operaciones de la calculadora.

        var operador = "";
        var num_cache = "";
        var num_act = "";
        var resul = "";
        var cache = false;
             
        function initNumAct(){
            num_act = $("#display_text").attr("value");
        }
        function sum(){
            
            if(!cache && operador != "+"){
                operacion(operador);
                operador = "+";
            } else if(operador == "+"){
                resul = parseFloat(num_cache) + parseFloat(num_act);
            } else if(cache && operador != "+"){
                operador = "+";
            }  
            
            cache = true;
        }
        function div(){
            
            if(!cache && operador != "/"){
                operacion(operador);
                operador = "/";
            } else if(operador == "/"){
                resul = parseFloat(num_cache) / parseFloat(num_act);
            } else if(cache && operador != "/"){
                operador = "/";
            }
            cache = true;
            
        }
        function mul(){
            
            if(!cache && operador != "*"){
                operacion(operador);
                operador = "*";
            } else if(operador == "*"){
                resul = parseFloat(num_cache) * parseFloat(num_act);
            } else if(cache && operador != "*"){
                operador = "*";
            }
            cache = true;
            
        }
        function res(){
            
            if(!cache && operador != "-"){
                operacion(operador);
                operador = "-";
            } else if(operador == "-"){
                resul = parseFloat(num_cache) - parseFloat(num_act);
            } else if(cache && operador != "-"){
                operador = "-";
            }
            cache = true;
            
        }
        
        function clear(){
            operador = "";
            num_cache = "";
            num_act = "";
            resul = "";
            cache = false;
            $("#display_text").attr("value", "");
        }
        
        function clearDisplay(){
            num_act = "";
            resul = "";
            $("#display_text").attr("value", "");
        }
        
        function removeDigi(){
            
            var text = $("#display_text").attr("value");
            var aux="";
            var i = 0;
            
            for (i=0;i<(text.length)-1;i++){
                aux = aux + text.charAt(i);
            }
            num_act = aux;
            resul = aux;
        }
        
        function contarPunto(text){
            var aux=0;
            var i = 0;
            for (i=0;i=0 && v <= 9) || v == "."){
                addDigi(v)
            } else {

                if(v == "="){
                    v = operador;
                    cache = false;
                }
                operacion(v);
            }

            showDisplay();
        }
        $(document).ready(function() {
            
            $(".bd").click(function(){
                
                var v = $(this).attr("value");
                init(v);
               
            })
        });


Hay unos pequeños inconveniente pero si los quieren arreglar no hay problema y aunque sé cuales son los voy a dejar así.


Body del Html


Este es el resultado de nuestra calculadora básica.



Los archivos de script y tema desde esta página: http://jquerymobile.com/

Ahora si eclipse y android.

Los pasos de instalación de estos dos acá: http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=536


Ya lo tienen instalado y configurado?

Ok, en el proyecto que crearon dentro de la carpeta assets van a crear una como www y dentro de esta dejan todos los archivos de la aplicación en este caso la calculadora. (index.html, scripts, temas e imagenes)

Abrir el archivo que esta en directorio res/layout/ *.xml y agregar WebView que esta en la pestaña Composite y ampliarlo al tamaño del mobil demo.



Ahora abrir el archivo que está en la carpeta src (.java) y dentro de este hacer algo como estó:


package com.example.calcbasico;

import android.os.Bundle;
import android.app.Activity;
import android.webkit.*;

public class MainActivity extends Activity {
 WebView cwv;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        setContentView(R.layout.activity_main);
        
        cwv = (WebView) findViewById(R.id.webView1);
        cwv.getSettings().setJavaScriptEnabled(true);
        cwv.loadUrl("file:///android_asset/www/index.html");


    }

}

Encontre muchas cosas en la web de como llamar el archivo pero en todos los que encontre eran el mismo. Todos con el mismo problema. Si ya han buscado veran la pequeña diferencia.

La ruta del archivo comienza desde android_asset.

Ahora abrir el archivo .xml que esta en la raiz del proyecto: en mi caso se llama AndroidMainfest.xml y agregan estos permisos.




Después de eso compilan y ven su resultado:


Por ultimo hay dos formas de tener el paquete .apk para instalar en nuestro android.

    1. click derecho a la carpeta: android tools / export unsigned application package
    2. Buscar en el directorio bin de la carpeta raiz del proyecto el archivo .apk
Nos vemos.