Lista de IDEs para programar en C#
XDevelop
http://freecode.com/projects/xdevelop
Un IDE para programar en C# y Java. Al parecer esta descontinuado.
QuickSharp
http://quicksharp.sourceforge.net/
Un IDE para programar aplicaciones Microsoft .Net (C#). No tan robusto como Microsoft Visual Studio.
Xacc IDE
http://xacc.wordpress.com/
Un IDE para programar en varios lenguajes, entre ellos C#.
SharpDevelop
http://www.icsharpcode.net/opensource/sd/
Un IDE bastante completo para programar en C#, VB .Net y Boo.
MonoDevelop
http://monodevelop.com/
Es un IDE que permite crear aplicaciones .Net (ASP .Net), una alternativa a Visual Studio .Net.
Emonic (plugin para Eclipse)
http://emonic.sourceforge.net/
Es un plugin que se agrega Eclipse para poder crear aplicaciones C#.
Xamarin Studio
http://xamarin.com/studio
Este IDE muy completo, con integración a Visual Studio.
viernes, 30 de mayo de 2014
domingo, 25 de mayo de 2014
Programando en Java ... no. 7
En está ocasión conoceremos algunos términos de la JEE (Java Enterprise Edition) como lo es: Enterprise JavaBeans y Java Persistence API.
Enterprise JavaBeans
Básicamente son clases mucho más complejas que un simple POJO o un JavaBean. Deben ser contenidas y desplegadas dentro de un contenedor de EJBs, y esperan a que un "cliente" las invoque. No se pueden acceder de una manera directa desde un programa obviamente.
En la imagen se puede apreciar las funciones de cada capa del Modelo-Vista-Controlador.
JPA... ¿Para qué sirve?
Se trata de una herramienta de mapeo objeto-relacional que nos ayuda crear una relación entre objetos y entidades de una base de datos. Forman parte del estándar EJB.
@Entity
@Table(name="blog")
public class Blog implements java.io.Serializable{
@Id
private Long clave;
...
...
}
EJB (Sessions beans) + JPA (Entity classes)
Al crearse las entidades se encuentran en modo desconectado, es necesario hacer uso de las Sessions beans, las cuales se encargan de hacer las operaciones (con ayuda de de la EntityManager) de consulta, actualización y borrado.
public class BlogController{
@PersistContext
EntityManager em;
...
...
}
Las entidades JPA y los componentes EJB se configuran mediante anotaciones, y vaya que son muchas y con propósitos bien definidos.
Java Persistence Query Language
Se trata de un subconjunto de Hibernate Query Language, opera directamente sobre los objetos para operaciones INSERT, UPDATE, y DELETE.
SELECT b FROM Blog b
UPDATE Blog b SET b.autor='Adriana' WHERE a.titulo='Uso de Websphere en Eclipse'
DELETE FROM Blog b WHERE b.id=1022
Métodos para ejecutar sentencias JPQL
En conclusión, hablar de EJB y JPA abarcaría mucho tiempo.Falta tratar el tema de las anotaciones, configuración de los componentes, contenedores, etc.
Espero que la imagen del Modelo-Vista-Controlador ayude un poco a entender de que tratan los EJBs.
Links
http://www.objectdb.com/
http://stackoverflow.com/questions/6033905/create-the-perfect-jpa-entity
Enterprise JavaBeans
Básicamente son clases mucho más complejas que un simple POJO o un JavaBean. Deben ser contenidas y desplegadas dentro de un contenedor de EJBs, y esperan a que un "cliente" las invoque. No se pueden acceder de una manera directa desde un programa obviamente.
En la imagen se puede apreciar las funciones de cada capa del Modelo-Vista-Controlador.
- Dentro del modelo tendremos las Entity classes y las Sessions beans
- El controlador se encargara de recibir peticiones de un cliente, y si encuentra el recurso, enviar respuestas a esas peticiones
- La vista son las páginas que el usuario verá en su monitor
JPA... ¿Para qué sirve?
Se trata de una herramienta de mapeo objeto-relacional que nos ayuda crear una relación entre objetos y entidades de una base de datos. Forman parte del estándar EJB.
@Entity
@Table(name="blog")
public class Blog implements java.io.Serializable{
@Id
private Long clave;
...
...
}
EJB (Sessions beans) + JPA (Entity classes)
Al crearse las entidades se encuentran en modo desconectado, es necesario hacer uso de las Sessions beans, las cuales se encargan de hacer las operaciones (con ayuda de de la EntityManager) de consulta, actualización y borrado.
public class BlogController{
@PersistContext
EntityManager em;
...
...
}
Las entidades JPA y los componentes EJB se configuran mediante anotaciones, y vaya que son muchas y con propósitos bien definidos.
Java Persistence Query Language
Se trata de un subconjunto de Hibernate Query Language, opera directamente sobre los objetos para operaciones INSERT, UPDATE, y DELETE.
SELECT b FROM Blog b
UPDATE Blog b SET b.autor='Adriana' WHERE a.titulo='Uso de Websphere en Eclipse'
DELETE FROM Blog b WHERE b.id=1022
Métodos para ejecutar sentencias JPQL
- createQuery(String jpql)
- createNamedQuery(String nombre)
- createNativeQuery(String sql)
En conclusión, hablar de EJB y JPA abarcaría mucho tiempo.Falta tratar el tema de las anotaciones, configuración de los componentes, contenedores, etc.
Espero que la imagen del Modelo-Vista-Controlador ayude un poco a entender de que tratan los EJBs.
Links
http://www.objectdb.com/
http://stackoverflow.com/questions/6033905/create-the-perfect-jpa-entity
sábado, 3 de mayo de 2014
Groovy ... en ejemplos no. 2
Groovy ... el Python de Java
1. En este ejemplo vamos a conectarnos a una base de datos (en este caso MySQL), para esto defino los siguientes pasos:
El código 'conecta.groovy'
@Grab('mysql:mysql-connector-java:5.1.25')
@GrabConfig(systemClassLoader = true)
import groovy.sql.Sql
static main(args) {
def sql = Sql.newInstance('jdbc:mysql://localhost:3306/test','root','5432', 'com.mysql.jdbc.Driver')
def consultaSQL="select * from blog"
sql.eachRow(consultaSQL){ fila ->
println "titulo: "+fila.titulo + " , autor: "+ fila.autor+" , descripcion: "+fila.descripcion
}
}
Compilamos: groovyc conecta.groovy
Listamos dependencias: grape list
Ejecutamos: groovy conecta.groovy
2. El siguiente ejemplo es sobre la interoperabilidad entre códigoJava y Groovy.
public class Saludo{
public Saludo(){}
//método
public static void saludo(){
javax.swing.JOptionPane.showMessageDialog(null,"Hola desde una clase Java");
}
}
prueba.groovy
static main(args) {
def saludo=new Saludo()
saludo.saludo()
}
Resultado:
A programar ...
1. En este ejemplo vamos a conectarnos a una base de datos (en este caso MySQL), para esto defino los siguientes pasos:
- Crear la tabla blog e insertar algunos valores
- Crearun archivo llamado conecta.groovy
- Definir las librerías necesarias (y driver)
- Escribir la consulta SQL
El código 'conecta.groovy'
@Grab('mysql:mysql-connector-java:5.1.25')
@GrabConfig(systemClassLoader = true)
import groovy.sql.Sql
static main(args) {
def sql = Sql.newInstance('jdbc:mysql://localhost:3306/test','root','5432', 'com.mysql.jdbc.Driver')
def consultaSQL="select * from blog"
sql.eachRow(consultaSQL){ fila ->
println "titulo: "+fila.titulo + " , autor: "+ fila.autor+" , descripcion: "+fila.descripcion
}
}
Compilamos: groovyc conecta.groovy
Listamos dependencias: grape list
Ejecutamos: groovy conecta.groovy
2. El siguiente ejemplo es sobre la interoperabilidad entre códigoJava y Groovy.
- Creamos y compilamos una clase Java llamada Saludo.java
- Creamos, compilamos y ejecutamos un archivo Groovy llamado prueba.groovy
public class Saludo{
public Saludo(){}
//método
public static void saludo(){
javax.swing.JOptionPane.showMessageDialog(null,"Hola desde una clase Java");
}
}
prueba.groovy
static main(args) {
def saludo=new Saludo()
saludo.saludo()
}
Resultado:
sábado, 26 de abril de 2014
Aprender Scala ... o no hacerlo
1. Clases, setters y getters
En Java:
public class Javesco{
private String nombre="";
public Javesco(){}
public Javesco(String nombre){
this.nombre=nombre;
}
//setter y getter
public void setNombre(){ this.nombre=nombre; }
public String getNombre(){ return nombre; }
}
En Scala:
class Simple(){
var nombre:String=""
}
Obviamente escribimos menos código, sin embargo esto también puede parecernos confuso (al menos al principio),¿donde queda el private, protected o el public?. La razón es que Scala es un lenguaje más flexible, nos permite hacer muchas cosas, cambiar la manera en que planteas las soluciones.
Creando una clase "compleja":
class Compleja(val _nombrex:String=null){
private var _nombre:String=_nombrex
//setter y getter
def nombre=_nombre
def nombre_=(value:String):Unit=_nombre=value
}
Este código es más parecido a la clase hecha en Java.En esta definimos los setters y getters. Aunque la de arriba es más legible y sencilla de entender(Simple).
Ahora creamos un archivo llamado Codemonkey.scala y escribimos:
object Codemonkey{
def main(args: Array[String]): Unit = {
val simple=new Simple
simple.nombre="Scala Johansson"
Console.println("Hola "+simple.nombre)
val compleja=new Compleja("Jonh Worth")
Console.println("Hola "+compleja.nombre)
simple.nombre="Maria Java"
compleja.nombre="Tom Groovy"
Console.println("Hola "+simple.nombre)
Console.println("Hola "+compleja.nombre)
}
}
Sigue siendo un código legible, no cambia mucho. Scala nos permite hacer las cosas de diferentes maneras.
2. Los import
En Java es necesario definir las clases y/o librerías externas desde la cabecera del código.
import javax.swing.JOptionPane;
public class Codemonkey{
public static void main(String ... args){
JOptionPane.showMessageDialog(null,"Hola desde codemonkey");
}
}
Con Scala no es necesario, podemos definir los import desde cualquier parte del código.
object Codemonkey{
def main(args: Array[String]): Unit = {
import javax.swing.JOptionPane
JOptionPane.showMessageDialog(null,"Hola desde codemonkey")
}
}
3. Conservar los proyectos ya hechos.
Scala al ser dependiende de la JVM permite interoperabilidad con proyectos Java.
Creamos una clase Java llamada Prueba.java y la compilamos, nos generará un *.class
public class Prueba{
public void verMensaje(){
System.out.println("Hola Scala soy un método creado desde una clase Java");
}
}
Ahora creamos el código en Scala, instanciamos la clase Prueba
object Codemonkey{
def main(args: Array[String]): Unit = {
val prueba=new Prueba
prueba.verMensaje
}
}
Java sigue siendo un buen lenguaje y bastante usado, aunque la verdad al crecer tanto la complejidad para aprenderlo también lo hizo.
¿Qué más tiene Scala?
Concurrencia, pattern matching,traits, etc. Un mundo de posiblidades se presenta, tal vez en próximos post ponga más ejemplos.
Por lo pronto no sé si convenga aprender Scala (algunos les parecerá perdida de tiempo, a otros no tanto), pero vaya que si es interesante.
jueves, 17 de abril de 2014
Programando en C# no. 2 (Visual C#)
1. En esta ocasión vamos a ver como introducir y mostrar datos desde una ventana.
Creamos un proyecto en Microsoft Visual C#. Colocamos dos botones: Activar y Quitar.
Colocamos el siguiente código en el primer form:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form2 form2 = new Form2();
public Caja caja = new Caja(0,0);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
try {
int alto = int.Parse(Microsoft.VisualBasic.Interaction.InputBox("Alto:"));
int ancho = int.Parse(Microsoft.VisualBasic.Interaction.InputBox("Ancho:"));
caja.Alto = alto;
caja.Ancho = ancho;
form2.mensaje = "Esto lo envio el form1";
form2.miCaja.Alto = caja.Alto;
form2.miCaja.Ancho = caja.Ancho;
form2.Show();
}
catch (Exception ex) {
MessageBox.Show("error: "+ex.Message);
}
}
private void button2_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
}
}
Y el siguiente en el segundo form:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public string mensaje;
public Caja miCaja = new Caja();
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
label1.Text = mensaje;
label4.Text=miCaja.Ancho.ToString();
label5.Text=miCaja.Alto.ToString();
}
}
}
Código de la clase Caja.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
public class Caja
{
private int ancho;
private int alto;
public Caja() { }
public Caja(int ancho,int alto) {
this.ancho = ancho;
this.alto = alto;
}
public int Ancho{
get { return this.ancho; }
set { this.ancho = value; }
}
public int Alto{
get { return this.alto; }
set { this.alto = value; }
}
}
}
En los setters y getters también puede ser así:
public int Ancho{
get ;
set ;
}
public int Alto{
get;
set;
}
Resultado:
Creamos un proyecto en Microsoft Visual C#. Colocamos dos botones: Activar y Quitar.
Dentro del botón Quitar colocamos:
Environment.Exit(0);
Dentro del botón Activar:
string nombre = Microsoft.VisualBasic.Interaction.InputBox("Introduce tu nombre:");
string edad = Microsoft.VisualBasic.Interaction.InputBox("Introduce tu edad:");
MessageBox.Show("Hola " + nombre.ToUpper() +", tienes "+edad +" de edad");
Resultado:
Nota: Para hacer uso del componente InputBox, se requiere agregar la referencia. Dentro del explorador de soluciones da clic derecho sobre References, busca (en la pestaña de .Net) Microsoft Visual Basic y acepta.
2. En este vamos a pasar datos de un formulario a otro.
- Creamos otro formulario.
- Colocamos 5 labels
- Creamos una clase
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form2 form2 = new Form2();
public Caja caja = new Caja(0,0);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
try {
int alto = int.Parse(Microsoft.VisualBasic.Interaction.InputBox("Alto:"));
int ancho = int.Parse(Microsoft.VisualBasic.Interaction.InputBox("Ancho:"));
caja.Alto = alto;
caja.Ancho = ancho;
form2.mensaje = "Esto lo envio el form1";
form2.miCaja.Alto = caja.Alto;
form2.miCaja.Ancho = caja.Ancho;
form2.Show();
}
catch (Exception ex) {
MessageBox.Show("error: "+ex.Message);
}
}
private void button2_Click(object sender, EventArgs e)
{
Environment.Exit(0);
}
}
}
Y el siguiente en el segundo form:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
public string mensaje;
public Caja miCaja = new Caja();
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
label1.Text = mensaje;
label4.Text=miCaja.Ancho.ToString();
label5.Text=miCaja.Alto.ToString();
}
}
}
Código de la clase Caja.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
public class Caja
{
private int ancho;
private int alto;
public Caja() { }
public Caja(int ancho,int alto) {
this.ancho = ancho;
this.alto = alto;
}
public int Ancho{
get { return this.ancho; }
set { this.ancho = value; }
}
public int Alto{
get { return this.alto; }
set { this.alto = value; }
}
}
}
En los setters y getters también puede ser así:
public int Ancho{
get ;
set ;
}
public int Alto{
get;
set;
}
Resultado:
lunes, 14 de abril de 2014
Programando en Ceylon no. 2
¿Por qué aprender Ceylon?
No hay demanda de programadores que sepan ese lenguaje, nadie lo usa. Lo mismo dijeron de Java , de C#, etc. en su momento, sin embargo, paso el tiempo y las empresas cambiaron de opinión y solicitaban personal que tuviera conocimientos en estos lenguajes.
Los que sabían C aprendieron Java, los que odiaban Java aprendieron C#, etc.
Parece que todo depende de la necesidad,no del gusto del programador, en mi opinión nunca me gustó VB, pero en la escuela se decía que si querías trabajar como programador debías aprenderlo. Otros más decían que C era el único lenguaje a usar (curiosamente Javascript nunca lo tomaban en cuenta ahora es el más usado), para qué aprender otro lenguaje.
HTML5 supuestamente se usaría a finales de 2016 incluso se decía que no iba funcionar.
Cierto,nadie va dejar sus proyectos por un nuevo lenguaje, pero si existe una alternativa para hacer el trabajo más sencillo (sin dejar el trabajo ya hecho) seguro la tomaran en cuenta.
Algún día tendremos que voltear a ver otros lenguajes como Scala, Groovy y/o Ceylon aunque sea por pura necesidad.
En este ejemplo vamos hacer un menú, con tres opciones:
void run(){
print("Version de Ceylon[ ``language.version`` ]\n");
String menu="\t[Menu]\n1. Ver nombre y version del sistema operativo\n2. Calcular no.de pulsaciones de una persona\n3. Salir\nElije opcion:";
while(true){
print(menu);
String opc=process.readLine();
switch(opc)
case ("1"){
print("Nombre y version del SO");
infoSistema();
}
case ("2"){
print("No. de pulsaciones");
print("Introduce edad:");
String edadStr=process.readLine();
Integer? _edad=parseInteger(edadStr);
if(exists _edad){
Integer edad=_edad;
print("no. pulsaciones: ``pulsaciones(edad)`` ");
}
}
case ("3"){
print("Salida");
process.exit(0);
}
else {
print("Opcion no valida");
}
}//fin for
}
shared Float pulsaciones(Integer edad){
return (220-edad)/15.0;
}
shared void infoSistema(){
print("sistema: ``operatingSystem.name`` ");
print("version del sistema: ``operatingSystem.version`` ");
}
Aquí el resultado:
No hay demanda de programadores que sepan ese lenguaje, nadie lo usa. Lo mismo dijeron de Java , de C#, etc. en su momento, sin embargo, paso el tiempo y las empresas cambiaron de opinión y solicitaban personal que tuviera conocimientos en estos lenguajes.
Los que sabían C aprendieron Java, los que odiaban Java aprendieron C#, etc.
Parece que todo depende de la necesidad,no del gusto del programador, en mi opinión nunca me gustó VB, pero en la escuela se decía que si querías trabajar como programador debías aprenderlo. Otros más decían que C era el único lenguaje a usar (curiosamente Javascript nunca lo tomaban en cuenta ahora es el más usado), para qué aprender otro lenguaje.
HTML5 supuestamente se usaría a finales de 2016 incluso se decía que no iba funcionar.
Cierto,nadie va dejar sus proyectos por un nuevo lenguaje, pero si existe una alternativa para hacer el trabajo más sencillo (sin dejar el trabajo ya hecho) seguro la tomaran en cuenta.
Algún día tendremos que voltear a ver otros lenguajes como Scala, Groovy y/o Ceylon aunque sea por pura necesidad.
En este ejemplo vamos hacer un menú, con tres opciones:
- Ver nombre y versión del sistema operativo
- Calcular número de pulsaciones de una persona y
- Salir del programa
void run(){
print("Version de Ceylon[ ``language.version`` ]\n");
String menu="\t[Menu]\n1. Ver nombre y version del sistema operativo\n2. Calcular no.de pulsaciones de una persona\n3. Salir\nElije opcion:";
while(true){
print(menu);
String opc=process.readLine();
switch(opc)
case ("1"){
print("Nombre y version del SO");
infoSistema();
}
case ("2"){
print("No. de pulsaciones");
print("Introduce edad:");
String edadStr=process.readLine();
Integer? _edad=parseInteger(edadStr);
if(exists _edad){
Integer edad=_edad;
print("no. pulsaciones: ``pulsaciones(edad)`` ");
}
}
case ("3"){
print("Salida");
process.exit(0);
}
else {
print("Opcion no valida");
}
}//fin for
}
shared Float pulsaciones(Integer edad){
return (220-edad)/15.0;
}
shared void infoSistema(){
print("sistema: ``operatingSystem.name`` ");
print("version del sistema: ``operatingSystem.version`` ");
}
Aquí el resultado:
domingo, 6 de abril de 2014
Aprender Scala ...
He aquí algunos recursos en línea para aprender Scala.
REPL Scala
http://www.tryscala.com/
Ver grupos de programadores Scala
http://www.scala-tribes.org/
Tutorial básico de Scala
http://www.tutorialspoint.com/scala/index.htm
Tour Scala
http://scalatutorials.com/
Scala para programadores Java
http://docs.scala-lang.org/es/tutorials/scala-for-java-programmers.html
Stack overflow Scala tutorial
http://stackoverflow.com/tags/scala/info
Scala IDE
http://scala-ide.org/
REPL Scala
http://www.tryscala.com/
Ver grupos de programadores Scala
http://www.scala-tribes.org/
Tutorial básico de Scala
http://www.tutorialspoint.com/scala/index.htm
Tour Scala
http://scalatutorials.com/
Scala para programadores Java
http://docs.scala-lang.org/es/tutorials/scala-for-java-programmers.html
Stack overflow Scala tutorial
http://stackoverflow.com/tags/scala/info
Scala IDE
http://scala-ide.org/
Suscribirse a:
Entradas (Atom)
Jai un lenguaje de programación inspirado en C++
Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...
-
Progress ABL es un lenguaje de programación vinculado al entorno Progress OpenEdge , su base de datos y las utilidades que lo rodean. Es s...
-
Claude Code es una herramienta de inteligencia artificial creada por Anthropic que funciona directamente en la terminal. Sirve para acele...
-
Ionic es un framework que permite crear aplicaciones móviles híbridas. Éstas aplicaciones son las que emplean tecnologías como HTML, CSS ...
Etiquetas
- .NET
- 100
- 2026
- abl
- abstract
- abstractas
- activemq
- ada
- agente
- agile
- akka
- algoritmos
- almacenados
- alternativa
- android
- angular
- angularjs
- apache
- apache-camel
- apache-mesos
- apache-poi
- apex
- api
- appserv
- aprender
- aprender java
- aprender jsf
- aprender python
- aprendizaje
- area
- args
- aserciones
- asm
- asp
- assembly
- assert
- automatización
- awk
- aws
- ayuda
- azure
- backend
- ballerina
- base de datos
- bases de datos
- bash
- bat
- bd
- beam
- beef
- bigquery
- biotipo
- bitacora
- bitcoin
- bleam
- blockchain
- blog
- bq
- bucket
- bundle
- c
- c#
- c++
- c3
- calculadora
- calculo
- camel
- case
- cassandra
- celsius
- ceylon
- cgi
- charp
- charts
- chatgpt
- cherrypy
- chino
- cibersecurity
- clang
- clases
- claude code
- cli
- cliente
- clojure
- closures
- cloud
- cmd
- cmd.bat
- coalesce
- cobol
- codeblocks
- codeigniter
- codes
- código
- códigos
- comando
- comandos
- commit
- comparativa
- compartir
- compilador
- compile
- composer
- comprobación
- computación
- computing
- conceptos
- concurnas
- concurrente
- condicionales
- conectividad
- configuration
- consejos
- const
- constantes
- consultas
- contenedores
- contenedores web
- control de versiones
- conversion
- conversor
- convertidor
- copilot
- core
- corsera
- couchdb
- cpan
- cplus
- cpp
- cpp-httplib
- crear
- cripto
- criptomoneda
- crow
- CrowdStrike
- crystal
- csharp
- cshtml
- css
- css3
- csv
- cte
- curso
- d
- dancer2
- dapper
- datastage
- datos
- deepseek
- delphi
- deploy
- desarrollo
- determinar
- dev c++
- developer
- devops
- días
- directivas
- disparejo
- distribuido
- django
- dlang
- doc
- docker
- docker-swarm
- dockerfile
- document
- documentación
- documental
- dotnet
- driver
- dsl
- dylan
- easyphp
- eclipse
- eclipse foundation
- eclipse y scala
- economica
- editor
- eip
- ejb
- ejecutar
- ejemplos
- ejemplos cpp
- ejemplos de csharp
- ejemplos de scala
- ejemplos java
- ejemplos python
- ejmeplo
- elixir
- elixir.
- en línea
- encapsulación
- ensamblador
- entityframework
- enum
- erlang
- error
- errores
- es6
- escribir
- esproc
- esprocsqpl
- estructuras
- ethereum
- euler
- excel
- excepciones
- expando
- export
- express
- externa
- f#
- faces
- fahrenheit
- feliz año
- fetch
- filosofía
- firebase
- flask
- foreach
- framework
- fsharp
- funcional
- funciones
- functions
- futuro
- gcc
- gcp
- geany
- gem
- gemfile
- generador de proyectos
- genie
- gestor de proyectos
- github
- glassfish
- gleam
- gnu
- go
- golang
- google web toolkit
- gosu
- graalvm
- gradle
- grain
- grapes
- graphql
- graven
- grok
- grooscript
- groovy
- groovyeConsole
- grpc
- gson
- gui
- gwt
- gwtext
- hashicorp
- hashmap
- haskell
- haxe
- headers
- helidon
- helm
- herencia
- hibernate
- hola
- hola en ceylon
- horoscopo
- HTA
- html
- html5
- http
- http-server
- http/2
- ia
- iaas
- iac
- ibm
- IDE
- ide scala
- if
- ifnull
- imagen
- imc
- import
- importar
- ingeniería
- iniciar glassfish
- iniciar tomcat
- inicio
- inicio en ceylon
- IntelliJ IDEA pycharm
- interface
- interfaces
- interfaz
- interna
- interoperabilidad
- interprete
- interview
- inversión de control
- inyección de dependencias
- ionic
- ios
- jabaco
- jai
- jakartaee
- java
- java swing
- java y ceylon
- JAVA_HOME
- javadoc
- javaee
- javascript
- javaserver
- jax-rs
- jaxb
- jdbc
- jdbi
- jdk
- jdk8
- jee
- jpa
- jpql
- jquery
- jre
- jruby
- jscript
- jsf
- jsni
- json
- juego
- julia
- jvm
- jvm y ceylon
- jython
- k8s
- kafka
- kanban
- katas
- kate
- koltin
- kotlin
- ktor
- kubectl
- kubernetes
- la path
- langchain
- langchain4j
- laravel
- learn
- lectura
- lenguaje
- lenguaje scala
- lenguajes
- let
- leyes
- librería
- libro
- linq
- linux
- list
- lista
- listas
- livescript
- llm
- llvm
- logger
- lua
- macro
- major
- mapas
- mariadb
- maven
- maven y eclipse
- mensajería
- mensajes
- menú
- mercurial
- messagebox
- metaClass
- micronaut
- microsoft
- minilux
- minimal api
- mix
- mobile
- modularidad
- módulo
- mojo
- mojolicious
- mongo
- mongodb
- mono
- monodevelop
- moonbit
- ms-dos
- mu
- mulesoft
- mvc
- mybatis
- mysql
- n8n
- native images
- neo4j
- netbeans
- nexus
- ng
- nicon notify
- nimrod
- nlog
- node
- nodejs
- nomad
- nosql
- notificaciones
- npm
- nube
- nuevo
- nuget
- nullable
- nullif
- numericas
- ocaml
- okhttp3
- ollama
- online
- openai
- openclaw
- opencode
- opendylan
- openedge
- operaciones
- oracel
- oracle
- orientación a objetos
- orm
- otp
- owasp
- paas
- paas iaas
- package
- packages
- padrino
- paradigma
- pascal
- path groovy
- path java
- patrones de coincidencia
- patrones de diseño
- pattern matching
- pdf-parser
- perl
- phoenix
- php
- pl/1
- plot
- plsql
- pom.xml.build.gradle
- poo
- powershell
- pregunta
- problema
- problemas al ejecutar programa en ceylon
- procedimientos
- procedures
- programa
- programacion
- programación
- programador
- programadores
- programar
- programas
- programas java
- programming
- progress
- prompt engineering
- proto
- protobuff
- protocolos
- proyectos maven
- prueba
- pseint
- pubsub
- pulsaciones
- pyramid
- python
- pyzenity
- quarkus
- questions
- r
- rabbitmq
- reactiva
- rebar3
- record
- recursos
- regex
- regiones
- remix
- repl
- replace
- repositorios
- REST
- RESTEasy
- reverse
- romanos
- ruby
- run
- rust
- ruta
- saas
- sanic
- sap
- sas
- sbt
- scala
- scottplot
- scripting
- scripts
- scrum
- sdkman
- security
- seguridad
- semántica
- sentencias
- serilog
- servidor
- shell
- show
- simplej
- sinatra
- singleton
- sintaxis
- sitios
- slim
- sms
- smslib
- soap
- socket.io
- solidity
- solución
- spark
- spl
- spring
- spring framework
- spring-boot
- spyder
- sql
- standard
- storage
- stored
- strawberry
- struts
- style
- svn
- swagger
- swift
- symfony
- system
- tapestry
- tarot
- tdd
- técnicas
- terminal
- terraform
- the maven integration requires that eclipse be running in a jdk
- tiempo
- tips
- tomcat
- top-down
- tornadoweb
- trailer
- tratamiento xml
- triggers
- turbogears
- tutoriales
- type
- typescript
- udemy
- udf
- unitarias
- unsupported
- usar jdk
- uso
- uwamp
- variables
- vba
- vbscript
- ventanas
- verificar
- version
- version_52.0
- versiones
- vertx
- vibecoding
- videojuegos
- vistazo
- visual code
- visual csharp
- visual studio
- vite
- vscode
- vulnerabilidades
- wampserver
- wasm
- web
- web2pybottle
- webapi
- webassembly
- webhooks
- websharper
- websocket
- wildfly
- window
- windows
- windows-services
- wisp
- work-services
- wsl
- WSO2
- xampp
- xml
- xunit
- yaml
- youtube
- zenity
Archivo del blog
-
►
2025
(83)
- ► septiembre (7)
-
►
2024
(58)
- ► septiembre (1)
-
►
2023
(12)
- ► septiembre (1)
-
►
2022
(10)
- ► septiembre (1)
-
►
2021
(26)
- ► septiembre (1)
-
►
2020
(9)
- ► septiembre (2)
-
►
2019
(26)
- ► septiembre (3)
-
►
2015
(24)
- ► septiembre (4)
-
►
2014
(36)
- ► septiembre (1)
-
►
2013
(40)
- ► septiembre (5)
-
►
2012
(46)
- ► septiembre (3)














