OAUTH sistema abierto de autenticación

En oauth.net se define OAUTH como un protocolo abierto para permitir autorización segura de API’s con un método estándar y sencillo tanto para aplicaciones web omo para aplicaciones de escritorio.

OAUTH a  sido creado para permitir acceso delegado, provee un método para permitir el acceso a datos protegidos para parte de un tercero sin compartir con este nuestras claves de acceso a dichos datos.

Ejemplo: Un usuario (dueño del recurso/Resource owner) puede permitir el acceso a un servicio de impresion online (Cliente/Client) a sus fotos privadas alacenadas en portal de fotografias como Flickr (Server) sin compartir su usuario ni su contraseña con el portal de impresión de fotos.

(continue reading…)


VI como entorno de desarrollo integrado para PHP

Configuración de autocomplete en Ubuntu 10.04
=============================================

Lo primero que hay que hacer es verificar que tengamos instalada la versión 7 o superior de vim, para ello basta con ejecutar

$ vim

desde la linea de comando, la versión se imprimira en el mensaje de bienvenida.

Luego verificamos que que tengamos los archivos de autocomplete, para ello hacemos la siguiente búsqueda

$ sudo find / -name *complete.vim

deberíamos obtener un resultado como el siguiente:

/usr/share/vim/vim72/autoload/ccomplete.vim
/usr/share/vim/vim72/autoload/javascriptcomplete.vim
/usr/share/vim/vim72/autoload/rubycomplete.vim
/usr/share/vim/vim72/autoload/pythoncomplete.vim
/usr/share/vim/vim72/autoload/htmlcomplete.vim
/usr/share/vim/vim72/autoload/syntaxcomplete.vim
/usr/share/vim/vim72/autoload/sqlcomplete.vim
/usr/share/vim/vim72/autoload/adacomplete.vim
/usr/share/vim/vim72/autoload/phpcomplete.vim
/usr/share/vim/vim72/autoload/xmlcomplete.vim
/usr/share/vim/vim72/autoload/csscomplete.vim

Añadamos ahora la configuración necesearia para activar autocomplete para PHP, en $HOME/.vimrc añadimos las siguientes líneas

autocmd FileType php set omnifunc=phpcomplete#CompletePHP

probamos ahora que se haya activado el autocomplete para PHP:
$ vi prueba.php

en la primera línea del archivo colocamos el tag de apertura de php
<?php

luego, escribimos

mysql

a continuación presionamos CRTL-X CTRL-O (deberia desplegarse un listado con las funciones de php que empiezan por “mysql”)

TABS para gestion multiarchivo dentro de la misma sesion
========================================================

:tabnew [nombre_archivo]
:tabprev
:tabnext
:tabclose

SPLIT de pantalla
=================
Sin importar si estamos trababjando en tabs o en pantalla simple es posible dividir la pantalla para abrir un segundo archivo o el mismo si no se proporcionar un nombre de archivo

:split .
(abre un split en la parte superior mostrando el listado del directorio actual)

:vsplit
(si, justo eso que te estas imaginando, un split vertical)

:split [nombre_archivo]
(abre nombre_archivo en un nuevo split

Para navegar entre splits ^w^w

—————————————————

vim tips for php programmers

This post assumes you’re a php developer and you’re at least vaguely familiar with the VIM text-editor. For those who aren’t here’s a quick run-down:

VIM is a powerful command-line text editor usually a default package in the majority of *nix distros (that includes Mac’s OS X). I believe there are ports available for other OSes, even winblows.

Firstly, vim is a man’s editor. Whiners and GUI lovers can stop reading now. Although, VIM offer GUI ports such as MacVim. Men with thick beards, please stay tuned.
The lightweight text-editor VS bloated IDE debate

It’s a matter of preference really. Some like to use IDEs such as Zend Studio for Eclipse, Eclipse PDT, phpeclipse, Komodo ActiveState, Dreamweaver (*oh dear*) etc. And some prefer lightweight editors such as Coda, Textmate, Notepad++, Textpad, GNU Nano, Emacs, Vi, VIM etc.

I use both Eclipse PDT (just installed version 2.0) and VIM 7.x. Lightweight editors and IDEs are powerful in their own right. I’m not going to argue that you should use one over the other. Use whatever works for you. This is not an evangelism post.
Some say the following about VIM

“vim is for people who like pain – I’ll know what to order at your bachelor’s party” – @donaldza

“#vim is great for scripts, configs etc but let’s be honest, this is the 21st century ;) I still use it for merging/diff” – @donaldza

Okay, maybe just @donaldza has an issue :-) the rest of us continuing reading
What VIM offers programmers (sysadmins too) in general

* powerful linguistic interface (ie. command-driven so your fingers never need to leave the keyboard)
* syntax highlighting
* so lightweight you can edit files over SSH connections on a distant remote server
* available on just about any *nix
* blah blah yada yada

Straight into the good stuff: Tips for PHP programmers

Assuming you’re already familiar with the basic editing features of such as copying, pasting, yanking, deleting and so forth. If not, try “vimtutor” from your *nix command-line.

This is a copy-paste of my .vimrc file. You can find yours in $HOME/.vimrc. If VIM is already open you can use the “:edit $MYVIMRC” command. I wouldn’t mess with the system-wide default (usually /etc/vimrc/vimrc). Other vim users on your server might not appreciate your preferences
Syntax highlighting. You gotta switch it on like this:

syntax on

Usually triggered by the file extensions you’re using. This list of extensions is configurable so you can highlight your .inc’s too. That’s an old habit you should toss btw. You might wanna change your terminal colour theme. White background works best with syntax highlighting. Then again you could also change VIMs colour theme.
Search highlighting.

set hlsearch

Includes simple and regex searches within VIM
Tabs as spaces.

Often you want X spaces instead of a real tab

set tabstop=4

Starting to get cool…

set autoindent

Autoindent remembers the indentation of the previous line and so your next line starts directly beneath. Python okes should appreciate this one
In the middle of a series of keystrokes?

set showcmd

Often vim has double-barreled commands that require a sequence of more than one keystroke. Showcmd displays on the footer of your screen informing you which command you have initiated
Search and show matches as you type

set incsearch

In the middle of issuing your full search phrase incsearch will highlight matched words. Useful when constructing a long-ish regex
PHP-specific highlighting

The general syntax highlighting offers some php syntax but not everything

” highlights interpolated variables in sql strings and does sql-syntax highlighting. yay

autocmd FileType php let php_sql_query=1

” does exactly that. highlights html inside of php strings

autocmd FileType php let php_htmlInStrings=1

” discourages use oh short tags. c’mon its deprecated remember

autocmd FileType php let php_noShortTags=1

” automagically folds functions & methods. this is getting IDE-like isn’t it?

autocmd FileType php let php_folding=1

Note: This is just the beginning of code-folding. A number keystroke combinations exist to expand, contract foldings within the opened file
Syntax checking within VIM (sort of)

” set “make” command when editing php files

set makeprg=php\ -l\ %

set errorformat=%m\ in\ %f\ on\ line\ %l

To use, simply issue “:make %” command inside of VIM to check the syntax of your php against the interpreter. Syntax highlighting can only do so much
Highlighting matching brackets/parentheses

” set auto-highlighting of matching brackets for php only

autocmd FileType php DoMatchParen

autocmd FileType php hi MatchParen ctermbg=blue guibg=lightblue

This automatically highlights brackets and parentheses as the cursor passes over them. Colours configurable
Auto-completion of functions and constants

” autocomplete funcs and identifiers for languages

autocmd FileType python set omnifunc=pythoncomplete#Complete

autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS

autocmd FileType html set omnifunc=htmlcomplete#CompleteTags

autocmd FileType css set omnifunc=csscomplete#CompleteCSS

autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags

autocmd FileType php set omnifunc=phpcomplete#CompletePHP

autocmd FileType c set omnifunc=ccomplete#Complete

The above is really auto-completion for more than just PHP as you can tell. Auto-complete is triggered in the middle of typing the identifier

” Basically, while in insert mode, you can type <C-x> <C-o> to have vim attempt to autocomplete the current keyword. If more than one possibility exists, it shows a dropdown, and you can use your arrow keys to highlight the keyword that you wish to use.

But it gets better! Not only does it do this kind of autocompletion, but it also opens a small ‘scratch preview’ pane showing the function/method signature — i.e., the expected arguments and return value! ” – Matthew Weier O’ Phinney
Auto change to to editing file’s cwd

” auto switch to folder where editing file

autocmd BufEnter * cd %:p:h

Often one would open a file for editing in VIM from a different working directory eg. vim ~/somewhere_else/myfile.php. This command automagically changes vim’s current working directory to that of the file you’ve opened making it easy to open other files which are close by on the filesystem
Split-panes

Often you want to edit more than one file inside of VIM without having to open and close between them. Using “:split otherfile.php” and “:vsplit otherfile2.php” you can create horizontal and vertical split-panes respectively. You can of course split the same file across two-panes simultaneously using “:split %”

You can split splitted panes to infinity but…
Tabbed-panes are better

With the “:tabnew filename.php” or just “:tabnew” commands you have tabbed panes. voila! “:tabclose”, “:tabprev”, “:tabnext” does exactly what one would expect

You can also use keystrokes such as “gt” to jump between tabs quickly. Of course there are dozens more in-editor commands and keystrokes associated with the above tips/preferences. This post was merely meant to open your eyes to a whole new world of powerful lightweight text-editing. You can find a whole lot more in the resource links that follow and vim help! (“:help”)
More cool vim stuff

* http://linuxhelp.blogspot.com/2006/09/visual-walk-through-of-couple-of-new.html
* http://www.scribd.com/doc/263139/VIM-for-PHP-Programmers
* http://weierophinney.net/matthew/archives/123-Vim-7-code-completion.html

Soporte Autocomplete para PHP en vim
Editar el archivo $HOME/.vimrc y añadir las siguientes líneas

syntax on
set tabstop=4
set autoindent
set incsearch

autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete

Hecho esto cuando estemos editando un archivo en PHP veremos como si al escribir un comando presionamos [CTRL-X][CTRL-O] se depliega una lista con las funciones disponibles en PHP y su sintaxis asociada.

VI como IDE en general

:split Para dividir la ventana


6 Cosas que debes saber sobre posicionamiento web

Consejos para posicionamiento webEl posicionamiento en buscadores se ha convertido en los últimos tiempos en una de las herramientas más cotizadas por los propietarios de webs. Aparecer en las primeras posiciones en Google es algo fundamental si deseamos generar visitas en nuestra página, más aún si tenemos en cuenta que Google es utilizado por aproximadamente el 80% o 90% de los internautas.

Este pequeño tutorial que te ayudará a comprender  un conjunto de conceptos generales que forman la base de un buen posicionamiento web. (continue reading…)


Los libros de texto en los tiempos que corren

Los que como yo son padres de niños en edad de ir al cole mas de una vez habrán visto como sus hijos llevan una mochila llena de libros que a veces pesa más que ellos mismos, ¿Y todo por qué? porque a los señores que venden los libros nos les da la gana de poner una solución a esto. Hace unos días mi hijo y yo veiamos el iPad y a él se le ocurria que “los de los libros ahora es tonteria” ¿Por qué tengo que llevar todo el libro si no abrimos más que lo que toca? me decia. A eso debo añadir que llevan el libro completo año redondo aunque el 95% del peso que llevan es peso muerto. En la última reunión de padres del colegio al que va mi hijo a alguien se le ocurrio mencionar el problema y una vez más su sugerencia cayo en el olvido, pero creo hay solución… (continue reading…)


PHP Grid

La capacidad de interacción de las aplicaciones web a velocidades iguales o por lo menos parecidas a las de una aplicación de escritorio, especialmente en las aplicaciones de gestión de datos es uno de los problemas con los que tropezamos a diario los que nos dedicamos a este tipo de desarrollos. Para resolver el problema hay diferentes enfoques y todos ellos, al menos hasta donde tengo noticia, se apoyan en AJAX. Creo que este enfoque de la solución es correcto e implementarlo en PHP es una de las bases para la creación de software de gestión de datos en Bytebox. Como desarrolladores de software web este ha sido un problema recurrente que hemos resuelto con diferentes niveles de éxito en los distintos proyectos en los que hemos trabajado en los último años. La primera implementación de este tipo la realizamos para el proyecto de Back-Office de Zara.com en Inditex, en esa ocasión implementamos una interfaz de datos ajax basada en la versión 1.2 de jquery y con bastante codificación de configuración para obtener el comportamiento necesario.

(continue reading…)


Windows 7 ¿Es realmente mejor?

Después de haber usado XP por más de 5 años y de haber visto como el Vista no conseguía reemplazarlo, parece que finalmente esta vez Microsoft ha conseguido desarrollar un sistema operativo sólido y funcional. Es cierto que Windows7 se parece mucho a Vista por lo que, al menos desde mi punto de vista, W7 es una mejora realizada sobre las experiencias y fallos de Vista. Tal es así que muchos drivers de vista funcionan perfectamente en W7.

Sobre el desempeño poco se puede decir en contra, carga más de prisa que XP, no tiene problemas con las aplicaciones y en general ofrece una experiencia  mucho más ágil.

Si algo se le puede echar en falta es un cliente de correo que funcione con la agilidad de Outlook, pero aún así Live Mail cumple perfectamente con su proposito si solo necesitamos una cuenta de correo personal.

La nuevas versiones de utilidades como Paint han evolucionado ligeramente y ofrecen una interfaz más completa y mejores opciones.

Como sistema operativo debo decir que deja muy buena impresión y que hasta ahora no he tenido problemas de incompatibilidades con ningún equipo, en definitiva, si estás pensando en cambiar a Windows 7, puedes hacerlo sin problemas


Desarrollar para iPhone

Desde hace algunos años el desarrollo para equipos creados por Apple ha cambiado la forma en la que el software se comercializa, la AppStore con sus precios bajos (en ocasiones extremadamente bajos) y la posibilidad de vender a un publico potencial de más de 80 millones de usuarios hace que esta plataforma se convierta en un nicho de negocio para muchas empresas, entre ellas Bytebox.

Desarrollar para iPhone no tiene mucho misterio, se puede bajar el SDK del sitio de Apple y previo pago de 99$us empezar a subir aplicaciones en la appStore (contando con que antes de empezar todo el proceso hemos adquirido un mac), siempre y cuando aprueben la aplicación y la publiquen.

(continue reading…)


Hemos arrancado el proyecto Deza

El mes pasado firmamos el proyecto de diseño e implementación de la nueva tienda online de Zapaterías Deza. La semana pasada hemos arracando las primeras fases del proyecto. El prototipo esta previsto para la segunda semana de mayo, estará basado en el diseño aprobado por el cliente en su momento y si todo sale bien incluiremos tambien el soporte multilenguaje y multimoneda.

Este proyecto cuenta con un servidor dedicado y se perfila como uno de los proyectos más importantes de nuestra empresa este año.


El proyecto Lledó a punto de entrar en producción

En las dos últimas semanas hemos estado trabajando arduamente para terminar de ajustar los últimos detalles del sistema, entre otras, algunas de las características que se han añadido a la web son:

  • Enlaces en todos los títulos de las subsecciones
  • Sincronización de items en los menus de proyecto y soluciones
  • Enlaces rápidos en las cabeceras de las noticias

Merece una especial mención la creación de un módulo completo dedicado a la generación de fichas técnicas en formato PDF. Con esta herramienta la web es ahora capaz de generar documentación que puede ser impresa y que refleja fielmente el contenido online de todo el catálogo de productos de la compañía.

Quedan pendientes las últimas revisiones de parte del cliente y el sistema estará listo para entrar en etapa de producción.


Bytebox es propiedad de KGS Consultores S.L.
iDream theme by Templates Next | Powered by WordPress