Coding Samples

Otro blog sobre programación

Libro Numerical Recipes

La Universidad de Cambridge ha dado permiso para distribuir de forma gratuita los libros de la colección de análisis numérico «Numerical Recipes» en los lenguajes C y Fortran. Están disponibles para descarga en este enlace en formatos PDF y PostScript. En su interior se pueden encontrar numerosos algoritmos de análisis numérico en los lenguajes de programación anteriormente mencionados.

abril 10, 2007 Posted by | Análisis numérico, C, Fortran, Libros | 6 comentarios

mygnet.com: comunidad de programación

www.mygnet.com es una comunidad online en castellano dedicada a programadores, desarrolladores, diseñadores y administradores. Entre los recursos de la web se pueden encontrar artículos, código fuente, foros, manuales, etc. Por lo que he visto hasta ahora, parece que hay movimiento lo que se traducirá a medio plazo en recursos que pueda utilizar todo el mundo. En definitiva, otra interesante comunidad para añadir a nuestros favoritos.

abril 9, 2007 Posted by | Comunidades | 3 comentarios

Nuevas características de VCL desde Delphi 7

El tercer y último artículo (en inglés) de esta entrega habla sobre las novedades de VCL. Escribo a continuación el tradicional resumen en castellano:

  • Todas las nuevas aplicaciones, por defecto, soportan temas.
  • TForm dispone de una propiedad que permite controlar el efecto «glassing» de Vista Aero.
  • Componente TTaskDialog para reproducir el diálogo de tareas de Vista.
  • Componente TFileOpenDialog para acceder al diálogo de abrir archivo de Vista.
  • Componente TFileSaveDialog similar al anterior.
  • Nuevos paneles TFlowPanel y TGridPanel.
  • El control TCategoryButtons permite al desarrollador crear un conjunto de botones como los existentes en la nueva paleta de Delphi.
  • Nuevo componente TDockTabSet.
  • TTrayIcon para colocar un icono en la barra de tareas.
  • Soporte de Intellimouse.
  • Se han añadido numerosos elementos de los desarrolladores de FastCode.
  • Todos los controles disponen de las propiedades Padding y Margin.
  • Posibilidad de alinear un componente teniendo en cuenta sus márgenes.

abril 4, 2007 Posted by | Delphi, IDE | Deja un comentario

Nuevas características del lenguaje desde Delphi 7

Desde la aparición de la versión 7 de este lenguaje, numerosas son las características que se han añadido al lenguaje. Así lo explican en este artículo (en inglés) que os resumo a continuación:

  • Los métodos pueden marcarse como inline.
  • Ciertas funciones u operadores pueden ser sobrecargados.
  • Class Helpers: son clases que asociadas con otras clases, introducen métodos y propiedades adicionales que pueden ser utilizadas en el contexto de las clases asociadas o sus descendientes.
  • private crea una relación friend entre las clases de la misma unidad.
  • protected crea un miembro visible únicamente en la clase donde se declara y sus descendientes.
  • Los registros pueden tener propiedades y métodos.
  • Las clases pueden ser declaradas abstractas.
  • Una clase puede marcarse como sealed y no podrá ser derivada.
  • Las clases pueden tener constantes de clase: un valor constante asociado con la clase en sí y no con una instancia de la clase.
  • Una clase puede contener una declaración de tipo que se podrá utilizar únicamente dentro de esa clase.
  • Una clase puede tener variables de clase aplicable únicamente a la clase y no a una instancia.
  • La declaración de un tipo puede contener la declaración de una clase.
  • Un método virtual sobreescrito puede marcarse como final impidiendo así que sea sobrecargado en las clases derivadas.
  • Las clases pueden tener métodos estáticos de clase.
  • Soporte de iteración sobre contenedores, como por ejemplo: for Element in ArrayExpr do Stmt;

abril 3, 2007 Posted by | Delphi, IDE | 11 comentarios

Nuevas características del IDE desde Delphi 7

CodeGear publica un artículo (en inglés) donde se enumeran las características que se le han añadido al IDE desde la versión Delphi 7. A continuación enumero los principales puntos de forma resumida:

  • El IDE utiliza MSBuild como motor de generación. Permite establecer configuraciones de generación, y eventos anteriores y posteriores a la generación.
  • Dispone de un explorador de archivos.
  • Las «Live templates» aceleran la escritura proporcionando código basado en las plantillas (por ejemplo, para un bucle for).
  • Completa los bloques de código asegurando que siempre están cerrados correctamente.
  • Histórico que registra distintas versiones de los archivos cada vez que uno se guarda. Funciona, por tanto, como un pequeño sistema de control de versiones.
  • Mejoradas numerosas funciones del depurador.
  • Se permite contraer/expandir cualquier fragmento de código.
  • La función «SyncEdit» permite modificar simultáneamente todos los identificadores referentes a una variable. Es decir, modificamos el nombre de la variable en su declaración, por ejemplo, y el IDE modifica a su vez el nombre en todos los lugares donde aparezca esa variable.
  • Las herramientas de diseño se pueden filtrar ¡y buscar!.
  • Líneas de código numeradas.
  • Indicadores de cambios en las líneas.
  • Técnica «Refactoring».
  • Unidad de pruebas integrada. Permite la creación de pruebas para las clases y métodos de la aplicación.
  • Posibilidad de diseñar UML y modelado de clases dentro del IDE.

Enlace al artículo original: New IDE features since Delphi 7

abril 2, 2007 Posted by | Delphi, IDE | 1 comentario

Libro: «C#. Manual de referencia»

No es el primer libro que leo de este autor puesto que ha escrito para una infinidad de lenguajes de programación distintos y, en general, tengo muy buena opinión de todos ellos. Los datos específicos de este libro son los siguientes:

  • Título: C#. Manual de referencia.
  • Autor: Herbert Schildt.
  • ISBN: 0-07-213485-2
  • Editorial: McGraw Hill.

El libro está destinado a todos los niveles ya que abarca desde los temas introductorios más elementales hasta algunos más avanzados como la programación multiproceso y la programación de red. Los contenidos teóricos se ajustan, por tanto, a todos los niveles y la traducción que se ha realizado me parece bastante correcta. Por poner alguna pega, se podrían haber tratado varios temas que no aparecen, como pueden ser: interoperatividad con otros lenguajes (Common Language Specification, CLS), sistema de tipos común (Common Type System, CTS) y los metadatos.

Los contenidos prácticos son bastante correctos y adecuados para los conceptos que se están estudiando en cada momento. Además dispone de varios ejemplos avanzados más extensos.

En general, se trata de un libro de bastante calidad recomendable tanto para quienes desean introducirse en este lenguaje, como para aquellos que quieran tener a mano una buena referencia del lenguaje.

marzo 29, 2007 Posted by | C Sharp, Libros | 6 comentarios

Jolt Awards

Hace unos días se entregaron los premios Jolt Awards que vienen a ser para los informáticos algo así como los oscars para los actores. Básicamente se supone que los ganadores son los productos de software, libros y sitios de internet que cualquier desarrollador debería estar usando actualmente.

Esta es la lista de ganadores:

1. Books General

Jolt Winner:

Agile Software Development by Alistair Cockburn (Addison-Wesley Professional)

Productivity Winners:

Catastrophe Disentanglement by E. M. Bennatan (Addison-Wesley Professional)
Practices of an Agile Developer by V. Subramaniam and A. Hunt (Pragmatic Bookshelf)
Software Estimation Demystifying the Black Art by Steve McConnell (Microsoft Press)

2. Books Technical

Jolt Winner:

Head First Object-Oriented Analysis & Design by B. McLaughlin, G. Pollice, and D. West (O’Reilly Media)

Productivity Winners:

Code Quality by Diomidis Spinellis (Addison-Wesley Professional)
Refactoring Databases by Scott W. Ambler and P. J. Sadalage (Addison-Wesley Professional)
CSS: The Missing Manual by David Sawyer McFarland (O’Reilly Media)

3. Change and Configuration Management

Jolt Winner:

AccuRev 4.5 with AccuWorkflow (AccuRev)

Productivity Winners:

AnthillPro3 (Urbancode)
Perforce SCM (Perforce)
Team Foundation Server (Microsoft)

4. Collaboration Tools

Jolt Winner:

Confluence (Atlassian Software Systems)

Productivity Winners:

Adobe Acrobat Connect Professional (Adobe Systems)
NetBeans IDE (Sun Microsystems)
TeamCity (JetBrains)

5. Database Engines and Data Tools

Jolt Winner:

Visual Studio 2005 Team Edition for Database Professionals (Microsoft)

Productivity Winners:

Coral8 Engine (Coral8)
Dbdeploy (ThoughtWorks)
SQL Refactor (Red Gate Software)

6. Design and Modeling Tools

Jolt Winner:

stpBA Storyboarding (stpsoft)

Productivity Winners:

Corticon Business Rules Modeling Studio (Corticon)
MagicDraw UML (No Magic)
Stylus Studio 2007 XML Enterprise Suite (DataDirect Technologies)

7. Development Environments

Jolt Winner:

NetBeans IDE (Sun Microsystems)

Productivity Winners:

IntelliJ IDEA (JetBrains)
IronPython (Microsoft)
Wolfram Workbench (Wolfram Research)

8. Enterprise Tools

Jolt Winner:

Cape Clear ESB Platform (Cape Clear Software)

Productivity Winners:

Liferay Portal (Liferay
Appistry EAF (Appistry)
Pentaho Open BI Suite (Pentaho)

9. Libraries, Frameworks and Components

Jolt Winner:

NetAdvantage for .NET (Infragistics)

Productivity Winners:

JViews (ILOG)
.NET Framework 3.0 (Microsoft)
Intel Threading Building Blocks (Intel)

10. Mobile Development Tools

Jolt Winner:

Carbide .c++ Professional Edition (Nokia)

Productivity Winners:

Crossfire (AppForge)
NetBeans Mobility Pack and Sun Java Wireless Tookit (Sun Microsystems)
Qtopia (Trolltech)

11. Project Management

Jolt Winner:

Rally Enterprise (Rally Software)

Productivity Winners:

6th Sense Analytics (6th Sense Analytics)
Teamwork (Open Lab)
V1: Agile Enterprise (VersionOne)

12. Security

Jolt Winner:

AppScan (Watchfire)

Productivity Winners:

DevInspect (SPI Dynamics)
Fortify Source Code Analysis (Fortify)
Metasploit Framework (Metasploit)

13. Testing

Jolt Winner:

AgitarOne (Agitar Software)

Productivity Winners:

Mindreef SOAPscope (Mindreef)
Parasoft SOAtest (Parasoft)
TestComplete (AutomatedQA)

14. Bug and Defect Tracking

Jolt Winner:

TestTrack Studio (Seapine Software)

Productivity Winners:

JIRA (Atlassian Software Systems)
OnTime 2007 (Axosoft)
Software Planner Professional (Pragmatic Software)

15. Utilities

Jolt Winner:

VMware Lab Manager (VMware)

Productivity Winners:

Adobe Captivate 2 (Adobe)
ElectricCommander (Electric Cloud)
Textmate (MacroMates)

16. Web Development

Jolt Winner:

Adobe Flex 2 (Adobe Systems)

Productivity Winners:

IntelliJ IDEA (JetBrains)
Mindreef SOAPscope Server (Mindreef)
NetBeans Visual Web Pack 5.5 (Sun Microsystems)

17. Websites and Developer Networks

Jolt Winner:

Sun Developer Network (Sun Microsystems)

Productivity Winners:

CM Crossroads (CMC Media)
Koders.com (Koders)
Krugle (Krugle)

HALL OF FAME

IBM developerWorks (IBM)

Saquen sus propias conclusiones. Personalmente me gusta que se reconozca el trabajo de Sun Microsystems con los premios a NetBeans IDE en la categoría de entornos de desarrollo y a Sun Developer Network en la categoría de sitios de internet para desarrolladores.

marzo 28, 2007 Posted by | General | 3 comentarios

Libro: «Cómo dominar C# desde el principio»

Hace algún tiempo llegó a mis manos un ejemplar de este libro. En este post os cuento mis impresiones acerca de esta obra. Los datos específicos del libro son:

  • Título: Cómo dominar C# desde el principio.
  • Autor: Eric Gunnerson.
  • ISBN: 1-893115-62-3.
  • Editorial: Inforbooks S. L.

Según la contraportada, el nivel del libro es «Intermedio – avanzado». Bajo mi punto de vista, este es el primer error que comete la editorial, puesto que el nivel es muy básico en la primera mitad del libro. Ni mucho menos estamos ante un libro que llegue al nivel avanzado, sino que como mucho podría tratarse de un nivel medio. Basta decir que el primer capítulo se titula ¿Qué es un objeto?. Ignoro los motivos de la elección de este nivel, pero para mí es claramente erróneo.

Respecto a los contenidos teóricos, puedo decir que los considero adecuados para desarrolladores que desconozcan el lenguaje. Cubre todos los aspectos introductorios necesarios para adentrarse en un nuevo lenguaje. Sin embargo, la traducción la considero muy deficiente. Por poner un ejemplo, a las instrucciones de control o condicionales, las llama sentencias de selección.

Los contenidos prácticos son, a mi juicio, bastante pobres. Cubren lo justo para el concepto teórico que se está estudiando sin profundizar más. Únicamente dispone de un ejemplo de cierta envergadura en sus casi quinientas cincuenta páginas.

Por último, comentar que hay ciertos aspectos que creo que cualquier libro sobre C# y el entorno .NET debería tratar, y que en esta obra no se han cuidado demasiado. Windows Forms no recibe el tratamiento que se merece como principal librería de diseño de interfaces en este lenguaje, apenas toca el tema de los ensamblados y le falta tratar el CTS (sistema de tipos común). Tampoco me gusta el tratamiento que hace del tema de las colecciones y no habla para nada de los metadatos.

Con todo lo expuesto hasta aquí, solo queda concluir que la calificación global del libro es bastante pobre y que merece la pena invertir algún dinero más y obtener una obra de mayor calidad. Próximamente os hablaré de otro libro que tengo de C# y del que sí tengo mejor opinión.

marzo 28, 2007 Posted by | C Sharp, Libros | Deja un comentario

Menú circular en CSS

En este enlace el autor muestra cómo crear un menú circular usando única y exclusivamente CSS. Me parece un menú con una apariencia que se sale de lo habitual y que puede proporcionar buenos resultados en algunas páginas. Sin duda, otro interesante recurso para anotar en la sección de CSS.

marzo 27, 2007 Posted by | CSS | Deja un comentario

Tutorial Ajax

Harry Maugans nos vuelve a obsequiar con un tutorial, en este caso de Ajax. En él explica cómo añadir funcionalidad AJAX a un sitio web en tres sencillos pasos. El ejemplo concreto con el que ilustra esta pequeña introducción es una calculadora muy simple que realiza operaciones de suma, resta, multiplicación y división.

El tutorial nos ilustra en la creación de la inteligencia, la creación del formulario para la interacción con el usuario y la conexión del motor (o inteligencia) con el frontend (o interfaz de usuario). Es un buen punto de partida para desarrolladores que estén empezando a utilizar esta tecnología. Esperemos que H. Maugans siga deleitándonos con sus buenos tutoriales ya que constituyen una forma fácil de introducirnos en las tecnologías que tratan.

marzo 26, 2007 Posted by | Ajax | 2 comentarios