Rankin de lenguajes de programación

Conoce cuál es el lenguaje de programación que ocupa el primer lugar.

Estrategias para ser un mejor profeional

Métodos que puedes practicar para establecer bien tus relaciones y lograr el éxito.

Lista de mejores practicas en PHP

Cómo podemos desarrollar mejor nuestro código PHP.

Cómo ser confiables al 100%

Secretos del buen freelance que debes de conocer .

Metodologia de trabajo MVC

Porqué utilizarla y con que herramientas desarrollarlas.

jueves, 16 de mayo de 2013

Ejemplos de presupuestos por módulos de programación




Mòdulo de administraciòn

Si tenemos que programar cualquier módulo con base de datos, lo más probable es que también tengamos que hacer un área de administración, a la que sólo pueda acceder el cliente introduciendo un usuario y contraseña. Nuestras habilidades para hacer un módulo de estas características (lo seguro y fiable que lo podamos hacer) deben ser determinantes para fijar un precio. Por este concepto solía presupuestar en torno a los 150 ó 200 dòlares. Aunque el nivel de seguridad que podría implementar en una zona de administración pueda valer mucho más dinero, no suelo cobrar mucho más, porque en este caso la reutilización del código es muy sencilla y realmente tardo muy poco tiempo en implementarla en un nuevo sitio.

Mòdulo de noticias

Sería realizar una página que mostrase titulares de las noticias con sus entradillas, ordenados por fecha. Luego habría que hacer una página que muestre cualquier noticia. Esto puede valorarse por 280 ó 300 dòlares. Como en todos los módulos, incluye el desarrollo de una herramienta para gestionar noticias. Podemos separar los conceptos en el presupuesto o ponerlos juntos. Separándolo podríamos fijar 150 por la visualización de noticias y 200 por la administración. También puede ser necesario mostrar una lista de las últimas noticias en portada. Esto puede incrementar un poco el precio, si se desea.


Mòdulo de registro de usuario

En este caso nos referimos a que los visitantes se puedan registrar en la página, enviando su información personal. Sería sólo el área de registro, pues si hay que hacer servicios especiales para los usuarios registrados, como un área de descargas, los presupuestaría aparte. El registro de usuarios y la inserción en la base de datos puede presupuestarse por 300 dólares (junto con la gestión de usuarios, en el área de administración de la página). No obstante, muchas veces será necesario que estos puedan editar su información y que puedan darse de baja por si mismos. En ese caso, podríamos presupuestar hasta los 500 dòlares. Ahora bien, también podemos necesitar realizar algunas utilidades para facilitar la gestión de usuarios, como podrían ser un paginador, un buscador, ordenación de las búsquedas de usuarios por diferentes campos. Todo esto podría subir el precio hasta los 700 dólares.



Catàlogo de productos

Otra posibilidad que nos pueden encargar es el desarrollo de un catálogo de productos. Esto incluye, como mínimo, crear una tabla donde incluir productos y posiblemente otra para sus categorías. Depende de lo que se desee complicar el precio será mayor o menor. Si tenemos que gestionar una única tabla de productos, podríamos poner un precio en torno a los 400 euros. Si tenemos que gestionar una tabla de categorías y otras tablas relacionadas con las de productos, lógicamente, el precio aumentaría. Otras necesidades que aumentarían el precio son posibilidad de ofertas y características especiales que modifiquen el precio de un producto, productos destacados, productos relacionados con otro producto. El límite es la propia complejidad del catálogo y en este caso las posibilidades son infinitas. Puede llegar perfectamente a presupuestarse por 800 dólares.

Carrito de compras

Otro ejemplo de cotización, en este caso para incluir un carrito de la compra en una web (posiblemente a una web que tenga un catálogo de productos). El carrito de la compra se podría facturar aparte. Es decir, yo presupuestaría por un lado el posible catálogo de productos y por otro el carrito, que es simplemente un sistema para que el cliente pueda ir seleccionando productos y que la página memorice qué productos se han seleccionado, las unidades de cada uno y el precio que tienen. Este tipo de módulo podría presupuestarlo por 450 dólares,  aunque depende de la complejidad del carrito a desarrollar. También es sencillo reutilizar código, así que podría bajar esta cotización si lo deseara, para ampliar las posibilidades de que contraten con nosotros el proyecto. El carrito no requiere, en principio, ningún área de administración. Lo que sí que debería incluir es el formulario del pedido, donde se deberían indicar los distintos productos seleccionados y realizar la toma de datos del cliente, para contacto y pago.


NOTA:
Para mayor información pónganse en contacto nelsonbrianhg@hotmail.com



Presupuesto de una Web presencial

Presupuesto página web presencial
                                   

Contrucción de Página web “GuiaDigital”
Objetivo principal

Desarrollo de una página web para mostrar información de la empresa "GuiaDigital", sus productos, comercialización y aplicaciones, además de una página de contacto para que los visitantes del web puedan enviar sus notificaciones, pedidos, preguntas, etc.

La colocación en Internet en un servidor, el registro de la dirección de la web en Internet y la promoción del sitio web a través de los buscadores, para que sea accesible por todos los internautas.


Según mi parecer, recomendaría algunas tareas para que el desarrollo de la página del "GuiaDigital" mejore, en la medida de lo posible, la página de "la competencia", sin que por ello deba aumentar el presupuesto que podría estimarse para una página de este calibre.

-           Hacer los diseños más modernos y suavizarlos. Pues los que se encuentran en las páginas anteriores, en mi opinión, son un poco rudos y demasiado clásicos.
-           A ser posible, estructurar mejor el árbol de contenidos. Pienso que se mejoraría si la página de productos albergara también los contenidos de las páginas de comercialización y aplicaciones, que son muy relacionados. Además, de esta manera parece menos que nos hemos inspirado en la página anterior.
-           Colocar una página como índice. La página anterior no tenía.
-           Ampliar el dinamismo de la página. Obligado contar con una barra de navegación que cambie al pasar el ratón.








El árbol de contenidos propuesto

A continuación se puede observar el árbol de contenidos propuesto para la página web.


Portada
 
 
 















Descripción de las páginas

Las páginas tendrán más o menos los mismos contenidos que los descritos en la página de "la competencia", los que siguen:


Portada (Home)
Con algunas fotografías de la empresa, una descripción muy general, como la que se puede leer en las tarjetas "texto de la tarjeta...". Además, dará acceso a las distintas secciones de la página web.

Tutoriales
Con una descripción de la empresa y fotografías.

Portafolio
Una breve descripción y enlaces a sus páginas interiores, donde se muestran:

-           Tipos de trabajos: Con fotos de cada tipo de trabajo en tamaño pequeño que, al pulsarlas, se pueden ver a tamaño grande.
-           Software: Información sobre la calidad del servicio, así como los productos y los diferentes formatos de venta con que se presentan.
-           Aplicaciones: De los productos de la empresa.


Contacto
Página con un formulario para que los visitantes puedan mandar sus comunicaciones, con preguntas, pedidos, etc. Al pulsar el botón de envío del formulario se comprobará que se han introducido los datos más importantes y si es así, los enviará. Una vez enviados el visitante obtendrá un mensaje agradeciéndole su comunicación.

Propuesta de línea de diseño

A continuación puede encontrar unas pruebas de diseño propuesto para la construcción de la página web.

-No mostramos las pruebas de diseño para guardar la confidencialidad-

Este ejemplo puede modificarse en el momento de la realización definitiva del sitio y mejorar un poco todavía. Sirva para que el cliente confirme si es esta, o no, la imagen que desea ofrecer en su página web. Si no lo fuere, se puede realizar otra prueba siguiendo las directrices marcadas por el cliente.


Nota: Los datos de la pantalla de prueba, como el texto y las imágenes, son solamente provisionales. No tienen porque corresponder con los datos reales. Cuando se realice la página se utilizarán los datos definitivos.

Estimación del tiempo necesario

Para realizar la página web se utilizará un tiempo de un mes a partir de la aceptación de este presupuesto, ó dependiendo de la urgencia del cliente.

Aunque la página no esté acabada, se puede registrar su dirección en un par de días, de manera que se puedan ir encargando las tarjetas de visita u otros materiales donde figure la dirección definitiva de la web y los correos electrónicos.

Cualquier retraso significativo en la entrega de documentación por parte del cliente podría acarrear un retraso en la realización de la página, con la consiguiente modificación de tiempo necesario para la entrega final de la página.


Estimación económica

Inversión para la creación y puesta en marcha del sitio.


Planificación y diseño
80
Programación dinámica en los menús
50
Creación de las distintas paginas adicionales 
420
Puesta en marcha
30
Posicionamiento en buscadores SEO
80



    TOTAL                                                                      660.00

*IVA no incluido


Para más información envíanos un mail con tu interés nelsonbrianhg@hotmail.com

Presupuesto de una web sencilla para colegio



Creación de una página básica para el colegio Ana Villamil Icaza


nota: esta web no fue alojada solo se quedo en forma local por decisión del cliente

El presupuesto era para una web estática y estrictamente presencial, aunque el cliente requería cierto dinamismo. Nosotros presentamos este presupuesto en junio de 2010.

Presupuesto para la creación de la página web de El cliente “Ana Villamil Icaza”


Página web:

El proyecto consistirá en plasmar en página web el catálogo del que actualmente disponen.

Consistirá en

- 1 página principal en la que aparecerán:         
                                           
 un banner flash + animación
 60
 un slide de imágenes
 50
 menú sencillo
 40
 diseño e planificación de la página
 95
 Páginas adicionales 13 (13*5)
 65
TOTAL                                                                                                310.00

Web hecha con javascript, html, jquery

Forma de Pago:

Página Web: 50% al comenzar el proyecto, 50% restante un mes después de la publicación de la página.

Estos precios no incluyen I.V.A.

Plazo de Entrega:

Un mes después de la aprobación del presupuesto. Este plazo de entrega se retrasará en caso de que el cliente demore la presentación de la documentación.


viernes, 10 de mayo de 2013

Introduccion a JQuery Mobile







$.mobile y los métodos y eventos soportados


El objeto JavaScript jQuery la mayoría de veces es referido con el signo del dólar ($). jQuery Mobile framework extiende el core de jQuery con plugins móviles, que incluyen el mobile o $.mobile, los cuales definen varios eventos y métodos. Algunos de los métodos expuestos por $.mobile están descritos en la siguiente tabla.


Método
$.mobile.changePage

Uso
                Para cambiar la programación de una página a otra. Por ejemplo, para ir a una página weblog.php usando un slide de transición, usamos $.mobile.changePage(“weblog.php”, “slide”).
$.mobile. pageLoading      Para mostrar u ocultar el mensaje “Esta página se esta cargando”. Por ejemplo, para ocultar el mensaje, usamos $.mobile.pageLoading(true).
$.mobile.silentScroll           Para hacer scroll a una posición Y en particular, sin realizar el evento scroll. Por ejemplo, para hacer scroll a la posición Y=50, usamos $.mobile.silentScroll(100).
$.mobile.addResolutionBreakpoints             jQuery Mobile define algunos breakpoints para un mínimo/máximo de clases. Hay que llamar a este método para añadir breakpoints. Por ejemplo, para añadir una clase min/max de 800 pixeles de ancho, usamos $.mobile.addResolutionBreakpoints(800).
$.mobile.activePage           Refiere a la página activa actual.


También hay varios eventos que se pueden usar con los métodos bind() o live(), como la inicialización de jQuery Mobile, eventos de toque, cambios de orientación, eventos de scroll, eventos de mostrar/ocultar página, eventos de inicialización de página y eventos de animación.


En el siguiente ejemplo realizamos un evento específico cuando jQuery Mobile empieza a ejecutarse:

$(document).bind("mobileinit", function(){ //apply overrides here });
El evento de anterior nos permite reemplazar los valores por defecto cuando se inicia jQuery Mobile. Varias opciones pueden ser sobrescritas, por ejemplo:

LoadingMessage – Define el texto por defecto que aparece cuando una página se carga.
defaultTransition – Define la transición por defecto para los cambios de una página que usa Ajax.
Hay más parámetros de configuración que podemos sobreescribir si lo necesitamos. Podemos ver la documentación de jQuery Mobile o el código fuente del ejemplo, para más detalles.

También podemos enlazar otros eventos que nos permiten crear aplicaciones dinámicas basadas en los eventos “touch” y “page”.


Los atributos data-* de HTML5

jQuery Mobile se basa en los atributos data-* de HTML5 para soportar varios elementos de UI, transiciones y estructura de la página. Sin embargo, estos son descartados silenciosamente por los navegadores que no los soportan.

La siguiente tabla muestra como usar los atributos de data-* para crear componentes de UI.

Componente        Atributo data-* de HTML5
Barras de herramientas de Footer y Header
<div data-role="header">
<div data-role="footer">

Cuerpo del contenido        <div data-role="content">
Botones
<a href="index.html" data-role="button"
data-icon="info">Botón</a>

Botones agrupados           
<div data-role="controlgroup">
<a href="index.html" data-role="button">Si</a>
<a href="index.html" data-role="button">No</a>
<a href="index.html" data-role="button">Muy bien</a>
</div>

Botones en línea
<div data-inline="true">
<a href="index.html" data-role="button">Foo</a>
<a href="index.html" data-role="button" data-theme="b">Bar</a>
</div>

Elemento del formulario (Menú select)        
<div data-role="fieldcontain">
<label for="select-options" class="select">Escoge una opción:</label>
<select name="select-options" id="select-options">
<option value="option1">Opción 1</option>
<option value="option2">Opción 2</option>
<option value="option2">Opción 3</option>
</select>
</div>

Vistas de Lista Básica      
<ul data-role="listview">
<li><a href="index.html">Uno</a></li>
<li><a href="index.html">Dos</a></li>
<li><a href="index.html">Tres</a></li>
</ul>

Diálogos               
<a href="foo.html" data-rel="dialog">Abrir diálogo</a>
<a href="dialog.html" data-role="button" data-inline="true"
data-rel="dialog" data-transition="pop">Abrir diálogo</a>

Transiciones         <a href="index.html" data-transition="pop" data-back="true">
La documentación de jQuery Mobile tiene una lista completa de la sintaxis de data-* soportada.
























Estructura de una página jQuery Mobile

En esta sección dareamos una mirada rápida a la estructura de una página con jQuery Mobile. jQuery Mobile cuenta con unas directrices sobre la estructura de las páginas en si mismas. En general, una estructura de página debe tener las siguientes secciones:

Barra de encabezado (Header Bar)

Normalmente contiene el título de la página y el botón Atrás.

Contenido (Content section)

El contenido de nuestra aplicación.

Barra de pié (Footer Bar)

Normalmente contiene los elementos de navegación, la información de copyright o la información que necesitemos añadir en el footer.


La definición de una página HTML ensimisma es !DOCTYPE html>, la cual define un tipo de documento HTML5.

La sección head del HTML carga tres componentes importantes de jQuery Mobile:

La librería Core de jQuery
La librería de jQuery Mobile: La parte específica para móviles del framework de jQuery.
jQuery Mobile CSS – El CSS que define los elementos UI del core de JQuery Mobile. Esto define las transiciones y distintos widgets UI, como los sliders y botones, y hace un uso intensivo de animaciones y transformaciones con Webkit.


Tomar de ejemplo la explicación con la multipage-template


jueves, 2 de mayo de 2013

Instalación de CakePHP





es un framework para programar aplicaciones Web que sigue la arquitectura MVC (Modelo Vista
Controlador: http://es.wikipedia.org/wiki/MVC). Para su funcionamiento requiere un servidor
Web Apache, con PHP (versión 4 o 5) y un servidor de base de datos MySQL (aunque también trabaja con ‘PostgreSQL’, ‘SQLite’ o ‘ADODB’).
Existen herramientas, como XAMPP  (http://www.apachefriends.org/en/xampp.html),  que
Integran ambos servicios en una única instalación. Otra opción es WAMP


Requerimientos

Pasos para la instalación

1.- instalamos wamp

2.- descargamos el framework de la página oficial http://cakephp.org/ o del repositorio gith https://github.com/cakephp

3.- luego en la carpeta www creamos una carpeta con nombre cp(cakePHP)

4.-luego  de haber instalado correctamente wamp nos dirigmos a esta dirección de nuestro directorio
C:\wamp\bin\apache\Apache2.2.21\conf
5.- abrimos el archivo httpd.conf y buscamos la línea que dice rewrite module quitamos el comentario es decir # ese símbolo en dicha línea por ejemplo:


Así es como nos aparece
#LoadModule rewrite_module modules/mod_rewrite.so

Así tiene que quedarnos quitándole el símbolo numeral
LoadModule rewrite_module modules/mod_rewrite.so

más abajo activamos AllowOverride como esta en la imagen


Le damos clic en la opción guradar (archvivo-guardar)

Luego más abajo hay una línea llamada DocumentRoot
Hay es donde pondremos la dirección de nuestro archivo que contiene el framework en mi caso quedaría así.

localhost/framework/cp/


por ultimo configuramos Alloverride none a Alloverride All esto lo podemos encontrar más debajo de la línea anterior que configuramos.


Finalmente reiniciamos los servicios wamp 
Para ser más breves  parar los servicios por unos segundos y luego reiniciamos
Nota: en el caso nuestro trabajamos con el paquete wamp



lunes, 29 de abril de 2013

Monto a pagar por una llamada telèfonica



Escriba un programa que determina el monto a pagar por una llamada telèfonica, teniendo en cuenta lo siguiente: toda llamada que dure hasta 5 minutos tiene un costo $4. Por cada minuto adicional se observarà $0.50. Se debe ingresar el tiempo de llamada.

Module MontoTelèfinico

    Sub Main()
        Dim m As Integer
        Console.WriteLine("Ingrese los minutos realizados")
        m = Console.ReadLine()
        If m <= 5 Then
            Console.WriteLine("su total a pagar es {0}", 4)
        Else
            m = m - 5
            Console.WriteLine("su total a pagar es de {0}", 4 + (m * 0.5))

        End If
        Console.ReadLine()

    End Sub

End Module

Numeros primos



Desarrollo de un Windows form donde calculamos los números primos.
Controles a usar:

Controles
Nombre de los controles
2 labels

Lbl1, lbl2
1 TextBox

txtnro
2 buttons
Btncal, btn2



  
El programa fncionaria  asì:

Ingresamos cualquier numero que queramos en el textbox, le damos clic en calcular  y en la parte de abajo nos a parece si es primo o no, podemos cerrar el programa con el btn cerrar.




Còdigo fuente del programa
Private Sub btncal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncal.Click
        Dim cont, interruptor, nro As Integer
        nro = txtnro.Text
        cont = 2
        Do While cont <= nro / 2
            If nro Mod cont = 0 Then
                interruptor = 1
            End If
            cont = cont + 1

        Loop
        If interruptor = 1 Then

            Me.lbl2.Text = "-- El " & nro & " : No es Primo"
        Else
            Me.lbl2.Text = "--El numero" & nro & " : es primo"

        End If

        Me.txtnro.Text = "" : Me.txtnro.Focus()

    End Sub

    Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click
        End

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.btncal.Focus()

    End Sub
End Class



 
contador de visitas