Sun ha librerado OpenPortal, el cual deriva de Sun Java System Portal Server 7, siguiendo asà con su polÃtica de convertir todo su software en open source.
El objetivo principal de OpenPortal es la creación de una comunidad que participe en el desarrollo de componentes útiles para otras aplicaciones de tipo portal, y colaborar con otros proyectos open source para obtener beneficios mutuos.
Las caracterÃsticas que nos ofrece OpenPortal son las siguientes: Portlet container, creación y utilización de web services, framework de administración, acceso a dispositivos móviles, integración con JavaServer Faces y mucho más. OpenPortal
VÃa / CNET News.com
Alguna vez es necesario realizar acciones en paralelo en nuestras aplicaciones. En PHP no es tan sencillo y a veces implica algunas complicaciones. Para aquellos que necesitan realizar estas tareas puede venir muy bien esta librería que nos facilita enormemente estas funciones.
Permite ejecutar funciones síncronas y asíncronas, control de las salidas, pasarle argumentos a los scripts y obtener la salida en HTML y PHP.
Interesante API de Google para simular un teclado mediante Javascript, sobre todo es útil para evitar keyloggers y la captura de contraseñas. Introducing the Virtual Keyboard API
Los Adobe Labs han liberado la nueva tecnologÃa que ayuda a los desarrolladores. Los Adobe Labs han liberado el “Flex Stress Testing Framework” esta nueva tecnologÃa ayuda a los desarrolladores usando “Flex Data Services” para realizar la prueba de carg
Alex King, hace unas semanas preguntaba si los enlaces a marcadores sociales necesitaban un icono, al igual que lo están usando ahora los Feeds… para ello ha prupuesto un Icono (en verde) para ilustrar esta idea.
I think it’s time to inform you about a small project I worked on together with Chris Messina from Factorycity. As Microformats have gained much popularity over the last year we thought it was time to standardize the way they are represented on a websit
Como se puede ver, existen dos scripts dentro de npm: build que compila el js y extrae los CSS, y dev, que arranca el servidor de webpack habilitando HMR (🎶 ¡ya no puedo vivir sin él! 🎶).
Ambas configuraciones de webpack usan un script en común (webpack.config.common.js):
const webpack = require( 'webpack' );
const path = require( 'path' );
// Carga los ficheros .vueconst VueLoaderPlugin = require( 'vue-loader/lib/plugin' );
// Configura stylelintconst StyleLintPlugin = require( 'stylelint-webpack-plugin' );
// Para obtener un path para los aliasfunctionresolve( dir ) {
return path.join( __dirname, '.', dir );
}
module.exports = {
mode: 'production',
// Fichero inicial del proyecto
entry: './js/main.js',
// Fichero final para incluir
output: {
filename: 'js/main.js',
publicPath: '/dist/',
},
module: {
// Reglas para los ficheros
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
{
test: /\.vue$/,
loader: 'vue-loader',
},
{
test: /\.css$/,
use: [
'css-loader',
'sass-loader',
],
},
],
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new VueLoaderPlugin(),
new StyleLintPlugin( {
files: [ '**/*.{vue,htm,html,css,sss,less,scss,sass}' ],
} ),
],
resolve: {
extensions: [ '.js', '.vue', '.json' ],
alias: {
'@': resolve( '' ),
},
},
};
El frontend se gestiona desde el fichero main.js, que inicializará Vue y añadirá el componente principal:
import Vue from 'vue';
import Buefy from 'buefy';
import'buefy/dist/buefy.css';
import App from './components/App.vue';
import'@/assets/scss/main.scss';
Vue.use( Buefy );
new Vue( {
el: '#app',
components: {
App,
},
render: ( c ) => c( 'app' ),
} );
// accept replacement modulesif ( module.hot ) {
module.hot.accept();
}
Y ya por último el componente App.vue, que muestra simplemente un poco de HTML