Para ver las variables de ambiente utiliza el comando env. Para ver el valor de una variable de ambiente en específico puedes utilizar el comando echo $VARIABLE.

Para modificar el valor de una variable de ambiente, por ejemplo el PATH, necesitas editar el archivo ~/.bash_profile. Para ello puedes utilizar cualquier editor de archivos (vi, vim, nano, pico, TextEdit, TextMate, sublime, etc).

En lo personal, prefiero utilizar un editor simple como TextEdit, para ello puedes ejecutar el siguiente comando en la terminal

open -e ~/.bash_profile

Ten en cuenta que si vas a utilizar las comillas dobles para establecer el valor del PATH, por ejemplo

export PATH="$HOME/Applications/sdk/android/tools:$HOME/Applications/sdk/android/platform-tools:$PATH"

Necesitas modificar las preferencias del teclado para que no sustituya las comillas simples por caracteres no ASCII. Para ello ve a las preferencias del teclado y en la sección “Text” desactiva la opción “use smart quotes and dashes”.

Fuentes:
http://stackoverflow.com/questions/7501678/set-environment-variables-on-mac-os-x-lion
http://apple.stackexchange.com/questions/11745/reset-your-path-variable
http://apple.stackexchange.com/questions/120486/quotes-problem-in-mavericks-or-textedit

Anuncios

Desarrollé un servicio web que regresa una respuesta al estilo de SmartGWT

{
"response": {
"status": 0,
"startRow": 0,
"endRow": 76,
"totalRows": 546,
"data": [
{"field1": "value", "field2": "value"},
{"field1": "value", "field2": "value"},
… 76 total records …
]
}
}

Queremos utilizar estos datos en nuestra plantilla

distritos.html

...
<label class="item item-input item-select">
                <div class="input-label">
                    Distrito
                </div>
                <select>
                    <option ng-repeat="distrito in distritos">
                        {{ distrito.descripcion }}
                    </option>
                </select>
            </label>
...

Hay dos formas para poder consumir esta respuesta en nuestra plantilla -a través de un servicio de AngularJS-

Una es utilizar una función transformResponse en la configuración del servicio de la siguiente manera

services.js

'use strict'
angular.module('Equinox.services', ['ngResource'])

    .factory('Distritos', ['$resource', function ($resource) {
        return $resource('http://localhost:8080/equinox/catalogos/distritos', {}, {
            'query': {method: 'GET', isArray: true, transformResponse: function(data){
                return angular.fromJson(data).response.data
            }}
        })
    }])

controllers.js

angular.module('Equinox.controllers', [])

    .controller('DistritosCtrl', ['$scope', 'Distritos', function ($scope, Distritos) {
        $scope.distritos = Distritos.query()

    }])

y la segunda forma es utilizar la respuesta tal y como viene del servidor

services.js

'use strict'
angular.module('Equinox.services', ['ngResource'])

    .factory('Distritos', ['$resource', function ($resource) {
        return $resource('http://localhost:8080/equinox/catalogos/distritos', {}, {
            'query': {method: 'GET', isArray: false}
        })
    }])

controllers.js

angular.module('Equinox.controllers', [])

    .controller('DistritosCtrl', ['$scope', 'Distritos', function ($scope, Distritos) {
        Distritos.query().$promise.then(function(data){
            $scope.distritos = data.response.data
        })
    }])

Fuentes:

Para modificar la consulta de un DataSet puedes utilizar la sección “Property Binding”

en mi caso necesitaba reemplazar en la conulta el valor de un parámetro.

Para reemplazar una cadena con otra lo puedes hacer en el “Expression Builder” de la siguiente manera



var q=new Packages.java.lang.String("SELECT COUNT(*) AS TOTAL \
FROM @OFICINA.EMPLEADOS A, @OFICINA.PUESTOS R, \
@OFICINA.SALARIOS D, @OFICINA.DEPTOS O \
WHERE A.NID_ACO_EXP= R.NID_ACO \
R.NID_DMD=D.NID_DMD AND R.NORDEN=O.NID_ORDEN \
AND TRUNC(R.FECHA) BETWEEN :INICIO AND :FIN");
q.replaceAll("@OFICINA",params["OFICINA"].value);

el código es javascript, pero podemos utilizar clases Java también. En este caso utilizamos la clase String de Java en vez de Javascript, porque el método de javascript no reemplaza todas las coincidencias.

Fuentes:
birt exchange

Si necesitas modificar el query de un dataset, en tiempo de ejecución, por cualquier motivo. Puedes utilizar la sección “Property Binding” en el editor o modificar la consulta en el evento “beforeOpen” del DataSet. Recuerda que el código que utilices en BIRT es javascript.

Por ejemplo, podemos utilizar un esquema dinámico de la siguiente forma


var query="SELECT FRECEPCION  FROM @ESQUEMA.DOCUMENTOS WHERE ID = ?";

query.replace(/@ESQUEMA/g,params["Esquema"].value);

El esquema lo recibimos como parámetro. En la función “replace” utilizamos la forma global para que reemplace todas las ocurrencias de “@ESQUEMA”, de lo contrario sólo sustituiría la primera.

Fuentes:
http://vhspiceros.blogspot.mx/2008/12/replace-all-en-javascript.html
http://www.w3schools.com/jsref/jsref_replace.asp

Necesitaba agregar un encabezado a un servicio REST de acuerdo a un parámetro. Para poder hacer esto, necesitas tener acceso a un objeto javax.ws.rs.core.Response de la siguiente manera

    @GET
    @Path("descarga")
    public Response getContenidoDocumento(@QueryParam("documento")String idDocumento,@QueryParam("formato")String formato){
        try {
            if (formato == null)
                formato = "pdf";
            Documento documento = Documento.getDocumento(idDocumento);
                if (formato.equals("pdf")) {
                        return Response.ok(documento.getPDF(),"application/pdf").header("Content-Disposition",
                                "attachment;filename=documento.pdf").build();
                } else if (formato.equals("rtf")) {
                        return Response.ok(documento.getRTF(),"application/rtf").header("Content-Disposition",
                                "attachment;filename=documentos.rtf").build();
                }
                return Response.status(Status.BAD_REQUEST).build();
        } catch (Exception exc) {
            throw new WebApplicationException(exc, Status.INTERNAL_SERVER_ERROR);
        }
    }

Para renombrar archivos en git lo puedes hacer con el comando

git mv original nuevo

Si ya renombraste un archivo desde el explorador de archivos, no importa, git se dará cuenta del cambio que hiciste cuando hagas un commit. No importa que el comando git status muestre que se eliminó un archivo (original) y que hay otro pendiente de rastrear (nuevo). Para que te muestre correctamente que el archivo ha sido renombrado, intenta el siguiente comando

git commit –dry-run -a

Fuentes:
http://stackoverflow.com/questions/2641146/handling-file-renames-in-git 

Para renombrar, primero cierra el proyecto en Qt Creator. Abre una terminal y ve al directorio donde esta el archivo con extensión ‘.pro’ y renombralo.

mv miproyecto.pro elproyecto.pro

Vuelve a abrirlo en Qt Creator y ya debería aparecerte con el nuevo nombre 😀

Fuentes:
http://www.qtcentre.org/threads/26845-Copy-Rename-project