LP: GNU/Linux
Geany IDE
El IDE que desde un principio pensaba recomendar, y que es una alternativa muy buena para los que tienen este problema, es GEANY, pues además de soportar muchos lenguages como Python, HTML, PHP, Java, etc., es increiblemente simple, intuitivo y eficaz.
La interfaz de este ide es muy parecida a la de Anjuta y a la de DevCpp de Windows, pero además tiene una serie de complementos que lo convierten en una herramienta super cómoda para programar.
Todo lo que hay que hacer para conseguirlo es:
sudo apt-get install build-essential geany libsdl1.2-dev
Para windows debes descargarlo de: http://www.geany.org
Java
Oracle
Como ya sabrán, Java de Oracle, ya no esta en los repositorios oficiales, pero eso no quiere decir que no sea posible instalarlo, para hacerlo, solo sigue los siguientes pasos, y como es costumbre, necesitaras una terminal.
REPOSITORIOS:
Gracias a la comunidad, se ha creado un repositorio el cual nos facilitara aun mas la vida para instalar Oracle JDK8:
Si teníamos una versión anterior de JDK9 hay que desintalarla:
sudo apt-get remove oracle-jdk9-installer
Instalamos los repositorios:
Ubuntu/Mint
sudo add-apt-repository ppa:webupd8team/java
Debian
sudo echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list
sudo echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
Luego Instalamos los paquetes
sudo apt-get update
sudo mkdir -p /usr/lib/mozilla/plugins
sudo apt-get install oracle-jdk9-installer oracle-java9-set-default
Para comprobar que todo esta correcto, solo deben hacer en la terminal los siguientes comandos.
java -version
javac -version
Esto, deberia responder algo como java version "1.9.0_45" y javac 1.9.0
Con esto ya esta todo listo.
Espero les sea útil.
Open Java
sudo apt install default-jre default-jdk
Prolog
Instalar el compilador en Ubuntu es muy sencillo, tan solo tecleas:
sudo apt install gprolog swi-prolog
Para Ejecutar Prolog el comando es:
prolog
una vez creado el codigo "*.pl" la forma de compilarlo es la siguiente:
consult('ruta')
si retorna true es que fue compilado correctamente.
Compilador C/C++
Desde una terminal debes teclear lo siguiente para poder compilar en C o C++:
sudo apt-get -y install make build-essential
Para compilar en C:
$ gcc fuente.c -o ejecutable
./ejecutable
Para compilar en C++:
$ g++ fuente.cpp -o ejecutable
./ejecutable
UML
Existen una gran Variedad de programas para Gnu/Linux para realizar representaciones aqui enlisto las que mas conozco:
UML (wikipedia)
DIA
es una aplicación gráfica de propósito general para la creación de diagramas, desarrollada como parte del proyecto GNOME. Está concebido de forma modular, con diferentes paquetes de formas para diferentes necesidades.
Dia está diseñado como un sustituto de la aplicación comercial Visio de Microsoft. Se puede utilizar para dibujar diferentes tipos de diagramas. Actualmente se incluyen diagramas entidad-relación, diagramas UML, diagramas de flujo, diagramas de redes, diagramas de circuitos eléctricos, etc. Nuevas formas pueden ser fácilmente agregadas, dibujándolas con un subconjunto de SVG e incluyéndolas en un archivo XML.
El formato para leer y almacenar gráficos es XML (comprimido con gzip, para ahorrar espacio). Puede producir salida en los formatos EPS, SVG y PNG.
También conviene recordar que Dia, gracias al paquete dia2code, puede generar el esqueleto del código a escribir, si utilizáramos con tal fin un UML.
sudo apt-get install dia
UMBRELLO
Umbrello es una herramienta libre para crear y editar diagramas UML, que ayuda en el proceso del desarrollo de software. Fue desarrollada por Paul Hensgen, y está diseñado principalmente para KDE, aunque funciona en otros entornos de escritorio.
Umbrello maneja gran parte de los diagramas estándar UML pudiendo crearlos, además de manualmente, importándolos a partir de código en C++, Java, Python, IDL, Pascal/Delphi, Ada, o también Perl (haciendo uso de una aplicación externa). Así mismo, permite crear un diagrama y generar el código automáticamente en los lenguajes antes citados, entre otros. El formato de fichero que utiliza está basado en XMI.
También permite la distribución de los modelos exportándolos en los formatos DocBook y XHTML, lo que facilita los proyectos colaborativos donde los desarrolladores no tienen acceso directo a Umbrello o donde los modelos van a ser publicados vía web.
Umbrello se distribuye en el módulo kdesdk de KDE.
Diagramas soportados
En la actualidad, Umbrello permite la creación de los siguientes tipos de diagramas:
Organización de diagramas
Si el usuario lo desea, puede agrupar varios diagramas relacionados en un solo fichero XMI. Estos esta
rán organizados en diferentes vistas (lógica, de casos de uso, de componentes, etc.), que a su vez pueden contener diagramas o carpetas con las que clasificar aún más estos.
La creación de un tipo de diagrama está restringida a un tipo de vista determinado, por ejemplo, un diagrama de clases podría aparecer en la vista lógica pero no en la de despliegue. Dentro de una vista, los diagramas pueden ser movidos entre carpetas libremente.
Lenguaje con exportación soportada
sudo apt-get install umbrello
KIVIO
Es una aplicación informática para generar diagramas y organigramas, incluida dentro de la suite ofimática para KDE KOffice. Tiene un interfaz de usuario similar a Microsoft Visio y está completamente integrada a KOffice, pudiéndose por ejemplo utilizarse embebida en KWord.
sudo apt-get install kivio
Como crear un Script
Un bash script es un pequeño programa escrito en el lenguaje de nuestra consola bash. Es una herramienta muy potente y util que sirve principalmente para automatizar tareas comunes que hacemos de forma manual.
¿Cómo se hacen los bash script?
Lo primero es indicar el lugar donde se encuentra nuestra bash, por defecto se esta en /bin/bash. Esto lo hacemos del siguiente modo #! /bin/bash .#! -> con ésto le decimos a nuestra consola donde se encuentra un determinado programa, en este caso, nuestra propia shell. Tras ésto empezamos con las sentencias.
Podemos usar estructura de control (if, else, while, until ...) y variables al igual que en la mayoria de los lenguajes de programación. Las variables son fuertemente tipadas (una vez definido su tipo no podra cambiarse) y no hay que especificar su tipo (la shell es la encargada de esa labor).
Las instrucciones que podemos emplear son las mismas que empeariamos en nuestra consola, pongo un ejemplo de un script sencillito que nos actualiza el sistema:
#! /bin/bash
sudo aptitude update & sudo aptitude upgrade & sudo aptitude dist-upgrade
Abrimos nuestro editor de texto preferido (por ejemplo gedit) y copiamos ese script, lo guardamos por ejemplo con el nombre de Actualizar.sh
Para ejecutarlo podemos hacer lo siguiente, desde la consola nos situamos en el directorio donde guardamos el script y tecleando sh Actualizar.sh lo ejecutamos. Es posible que no tengamos permisos de ejecucion para ese script y lo solucionamos tecleando en consola:
$ chmod +x Actualiza.sh
Si integrar nuestro script en el sistema de forma que podamos llamarle desde cualquier lugar y poniendo solo su nombre, lo movemos a la carpeta /bin
Hecho eso, bastara con poner Actualiza.sh desde cualquier lugar para que se ejecute.
Al igual que en la consola podemos usar tuberias, esto es pasarle la salida de un comando a otro. Para ello usamos este simbolo | un ejemplo:
ls -F | grep "/"
Este comando mostrara en pantalla sólo directorios. ls -F muestra todos los archivos añadiendo al final de cada directorio el caracter espaciador (/). grep toma la salida de ls -F y filtra todos los archivos que contengan el carácter /
Podemos mostrar la salida de un programa por otro medio que no sea el estándar (pantalla) por ejemplo a un archivo. Para ello usamos el caracter > . Por ejemplo:
ls --all > archivoss.txt
Esto creara un archivo llamado archivos.txt conteniendo el resultado de ls --all
Del mismo modo con el caracter Esta es la estructura de control mas basica. Evalúa una condición y ejecuta un código dependiendo de si la condición es verdadera o falsa. La sitaxis es la siguiente:
if [ condición booleana]; then
sentencias
fi
Adicionalmente podemos usar la sentencia else que ejecuta codigo en caso de que la condicion no se cumpla:
if [condicion booleana]; then
sentencias
else
sentencias
fi
Podemos anidar varios else, del siguiente modo:
if [condicion booleana]; then
sentencias
elif [condicion booleana]; then
sentencias
else
sentencias
fi
Un ejemplo que ilustra el uso de este tipo de estructuras de control:
#!/bin/bash
A="hola"
B="buenas"
if [ "$A" = "$B" ]; then
echo Ambos son iguales
elif [ "$A" = "Buenos dias"] then
echo -e "$A vale buenos dias"
else
echo Ambos son distintos
fi
Otro tipo de estructura de control es el while. Este bucle se ejecuta indefinidamente mientras la condicion sea cierta. Esta es la sintaxis:
while [condicion booleana]; do
sentencias
done
Ejemplos:
#!/bin/bash
CONTADOR=0
while [ $CONTADOR -lt 10 ]; do
echo El contador es $CONTADOR
let CONTADOR=CONTADOR+1
done
Para que veais lo sencillo que resulta hacer un script os voy a dejar uno que pide una fecha y muestra un calendario de la fecha:
#!/bin/bash
var1="Introduzca un anio"
var2=$(zenity --entry --text "$var1")
var3=$(zenity --entry --text "Introduzca un mes")
var4=$(zenity --entry --text "Introduzca un dia")
zenity --calendar --year "$var2" --day "$var4" --month "$var3"
HolaMundo.sh
#! /bin/bash
clear
echo “Hola mundo ,este es mi primer script!!!!”
ScriptUno.sh
#! /bin/bash
clear
nombre=”Manolo el del”
apellidos=”Bombo”
echo “Te llamas $nombre $apellidos”
Fecha.sh
#! /bin/bash
clear
fecha=`date | cut -d ” ” -f 1,2,3`
hora=`date | cut -d ” ” -f 4`
echo “Hoy es $fecha y son las $hora”
OtroScript.sh
#! /bin/bash
clear
# IFS es una variable de entorno que determina el delimitador de campos
# (que por defecto vale ” “),en este script queremos
# cambiarlo a “,” para escribir por teclado nombre,apellidos
IFS=”,”
read -p “Introduce el nombre,apellidos : ” nombre apellidos
echo “El nombre es $nombre y los apellidos son $apellidos”
Apple Swift en Debian
Primero aclarar que lo he hecho con la versión estable de Swift la cual se puede descargar en https://swift.org/download/ ya que la versión inestable o beta no se por que no funcionaba, aunque puede que en el momento de que leas esto ya funcione sin problemas.
Primero abrir una terminal como root
# cd /opt
# mkdir -p /opt/swift/build
# cd /opt/swift/build
Ahora descargamos y descomprimimos los paquetes para programar en Swift, el cual no hay que compilar ya que vienen listos para ejecutar (recuerda cambiar el nombre del paquete por el que descargues).
# wget https://swift.org/builds/swift-2.2-release/ubuntu1404/swift-2.2-RELEASE/swift-2.2-RELEASE-ubuntu14.04.tar.gz
# tar zxvf swift-2.2-RELEASE-ubuntu14.04.tar.gz
# mv swift-2.2-RELEASE-ubuntu14.04 /usr /opt/swift/
Ahora verificamos que en /opt/swift/ este el directorio usr
$ ls /opt/swift
Una vez que confirmamos que este dentro, añadiremos el siguiente parámetros, para que cuando escribamos swift en la terminal, se abra el editor (hacer esto como usuario).
$ export PATH=/opt/swift/usr/bin:"${PATH}"
Ahora actualizamos los repositorios e instalamos las dependencias necesarias.
# apt-get update
# apt-get install curl gcc sqlite3 git-core libffi-dev python-setuptools python-dev python-pip
Listo, ahora solo queda ejecutar swift para que se abra el editor y podamos comenzar a ejecutar código o compilar algún archivo .swift.
$ swift
Welcome to Swift version 2.2 (swift-2.2-RELEASE). Type :help for assistance.
1> 1 + 1
$R0: Int = 2
Visual Studio Code
Instalación
Desde terminal se instala con:
sudo apt install code
Si en algún caso no esta disponible se puede instalar con:
sudo snap install --classic code
Como otra opción es directamente desde el archivo deb de la pagina oficial
sudo dpkg -i code_*.deb
Usando Pi-apps en el caso de raspberry
Una vez instalado podemos instalar las extensiones:
Extensiones
Instalación Automática:
Ambos deben estar en la misma carpeta.
Abrir la terminal y dirigirnos al directorio.
Cambiamos los permisos (esto es opcional):
chmod 754 code_extensiones.sh
Ejecutar el script desde terminal y esperar.
./code_extensiones.sh
Comenzara a salir algo como lo siguiente hasta finalizar:
Installing extension 'zainchen.json'...
Extension 'zainchen.json' v2.0.2 was successfully installed.
Installing extensions...
Installing extension 'zhiyuan-lin.simple-perl'...
Extension 'zhiyuan-lin.simple-perl' v0.0.4 was successfully installed.
Installing extensions...
Extension 'zignd.html-css-class-completion' is already installed.
Instalación Manual terminal
code --install-extension NOMBRE_EXTENSION
Instalación Manual (grafica)
Abrir VS Code Quick Open (Ctrl+P)
ext install aaron-bond.better-comments
ext install abdoseadaa.node-js-snippet
ext install adpyke.codesnap
ext install AhadCove.js-quick-console
ext install ailisp.commonlisp-vscode
ext install AlanizPalomeraMiguelAngel.prolog
ext install alexcvzz.vscode-sqlite
ext install amirmarmul.laravel-blade-vscode
ext install Angular.ng-template
ext install AntonyDalmiere.android-support
ext install apommel.matlab-interactive-terminal
ext install aslamanver.node-js-dependency-manager
ext install bagonaut.mongogo
ext install batisteo.vscode-django
ext install bmewburn.vscode-intelephense-client
ext install bradymholt.pgformatter
ext install casian.plsql
ext install cfgweb.vscode-perl
ext install christian-kohler.npm-intellisense
ext install chrmarti.regex
ext install ckolkman.vscode-postgres
ext install cstrap.flask-snippets
ext install cweijan.vscode-mysql-client2
ext install cweijan.vscode-ssh
ext install danielpinto8zz6.c-cpp-compile-run
ext install Dart-Code.dart-code
ext install Dart-Code.flutter
ext install dbaeumer.vscode-eslint
ext install DotJoshJohnson.xml
ext install doublefint.pgsql
ext install dstang2000.py2flowchart
ext install dunstontc.vscode-docker-syntax
ext install dzhavat.css-flexbox-cheatsheet
ext install eamodio.gitlens
ext install ecmel.vscode-html-css
ext install efoerster.texlab
ext install esbenp.prettier-vscode
ext install fenkinet.swiftui
ext install formulahendry.auto-rename-tag
ext install formulahendry.code-runner
ext install formulahendry.code-runner
ext install formulahendry.terminal
ext install franneck94.c-cpp-runner
ext install george3447.docker-run
ext install Gimly81.matlab
ext install GitHub.copilot
ext install golang.Go
ext install gornivv.vscode-flutter-files
ext install hars.CppSnippets
ext install jakethashi.vscode-angular2-emmet
ext install James-Yu.latex-workshop
ext install jchannon.csharpextensions
ext install JoeyYiZhao.mongo-runner
ext install junstyle.vscode-django-support
ext install loiane.frontend-extension-pack
ext install MarioSchwalbe.gnuplot
ext install mathematic.vscode-latex
ext install MathWorks.language-matlab
ext install mattn.Lisp
ext install Meezilla.json
ext install MelvinGuerrero.latino-vscode
ext install mitaki28.vscode-clang
ext install mongodb.mongodb-vscode
ext install moozzyk.Arduino
ext install ms-azuretools.vscode-cosmosdb
ext install ms-azuretools.vscode-docker
ext install ms-dotnettools.csharp
ext install ms-mssql.mssql
ext install ms-ossdata.vscode-postgresql
ext install ms-python.debugpy
ext install ms-python.python
ext install ms-python.vscode-pylance
ext install ms-toolsai.jupyter
ext install ms-vscode.cpptools
ext install ms-vscode.cpptools-extension-pack
ext install ms-vscode.cpptools-themes
ext install ms-vscode.makefile-tools
ext install ms-vscode.PowerShell
ext install ms-vscode.vscode-node-azure-pack
ext install ms-vscode.vscode-typescript-next
ext install MS-vsliveshare.vsliveshare
ext install mtxr.sqltools
ext install mtxr.sqltools-driver-sqlite
ext install nespinozacr.mysql-autocomplete
ext install nickfode.latex-formatter
ext install ohansemmanuel.css-grid-snippets
ext install Oracle.mysql-shell-for-vs-code
ext install Oracle.oracle-java
ext install Oracle.sql-developer
ext install pranaygp.vscode-css-peek
ext install qwtel.sqlite-viewer
ext install rebornix.prolog
ext install rebornix.Ruby
ext install redhat.vscode-xml
ext install redhat.vscode-yaml
ext install REditorSupport.r
ext install rifi2k.format-html-in-php
ext install ritwickdey.LiveServer
ext install roerohan.mongo-snippets-for-node-js
ext install sdras.night-owl
ext install seanwu.vscode-qt-for-python
ext install shigma.vscode-wl
ext install Shopify.ruby-extensions-pack
ext install SimonSiefke.svg-preview
ext install sswg.swift-lang
ext install svipas.code-autocomplete
ext install TabNine.tabnine-vscode
ext install tecosaur.latex-utilities
ext install toasty-technologies.octave
ext install torn4dom4n.latex-support
ext install twxs.cmake
ext install VisualStudioExptTeam.vscodeintellicode
ext install vscjava.vscode-java-pack
ext install vscode-icons-team.vscode-icons
ext install WallabyJs.quokka-vscode
ext install wix.vscode-import-cost
ext install WolframResearch.wolfram
ext install xabikos.JavaScriptSnippets
ext install yjt.maple
ext install yy0931.vscode-sqlite3-editor
ext install yzhang.markdown-all-in-one
ext install ZainChen.json
ext install zhiyuan-lin.simple-perl
ext install Zignd.html-css-class-completion
Actualizar Extensiones
code --update-extensions