Outlook Tasks y Google Tasks ya se pueden sincronizar

Como dicen aquí todos los nuncas se llegan, a inicios de este año habla con un cliente de Tel Aviv, sobre la carencia de Sincronización entre Outlook Tasks y Google Tasks mediante la herramienta Google Apps Sync for Microsoft Outlook ®,  carencia que sugería la utilización de herramientas de terceros como: producteev, GogTasks entre otros,  y es que durante esos días no era posible realizar esta sincronizanción, sin embargo estas características estaban en top de Featured Requests de Google Tasks para el año 2011 . Por lo que este día Google ha anunciado que en su Version 3.0 de el Google Apps Sync for Microsoft Outlook® esta funcionalidad ya esta disponible.
Por lo tanto ahora usted ya puede sincronizar Outlook Tasks con Google Tasks, permite sincronizar lo siguiente:
- Tasks, Incluyendo fechas de vencimientos y recordatorios
- Task state (estado de completada o no)
- Top-level task folders, son sincronizados como una Lista de Tareas separadas en Google Apps.Por ahora esta funcionalidad solo esta disponible para las ediciones: Google Apps for Business, Government and Education
Que lo disfruten.
Darvin Avelar Otero
Google Apps Specialist
Aeegle.com

Microsoft Outlook Tasks and Google Tasks can be synchronized now.

At the beginning of the year I was speaking with a customer who made an extensive use of  MS Outlook Tasks to manage their employees about the lack of integration between MS Outlook Tasks and Google Tasks using Google Apps Sync for MicrosoftOutlook ®, which suggested  use another three party tools such as producteevGogTasks  among others, because during those days was impossible to make this sync, but these features were on top of Featured Requests for Google Tasks for the year 2011.
So today Jan 24, 2012  Google has announced that version 3.0 of the Google Apps Sync for Microsoft Outlook ® this functionality is now available.
So now you can sync Google Tasks with OutlookTasks, allows to you synchronize the following:
- Tasks, including due dates and reminders
- Task state (state of complete or not)
- Top-level task folders are synchronized as a separate Task List in Google Apps.
For now this functionality is only available for editions: GoogleApps for Business, Government and Education.Google Tasks:  https://www.youtube.com/watch?v=qrka_3jui8M

Enjoy it.

Postini ya no estara disponible para Google Apps

El pasado 17 de Enero Google anuncio que el Servicio de Google Message Security (GMS) ya no estará disponible para Google Apps, por lo tanto las empresas que lo estén usando deberán actualizar sus configuraciones de intercambio de correo (MX), para que todo se gestione utilizando el Panel de control nativo de Google Apps. Esto debido a una reciente actualización del panel de Control de Google Apps, mediante la cual todo el valor añadido que brindaba Postini estará disponibles desde dentro del panel de control de Google Apps, características como:

  • Content compliance (Creación de Reglas sobre contenido: Ejem Restringir Recepción/envío de emails fuera del dominio)
  • Objectionable content  (Palabras Objectable, Ejemplo: Sexo, Porn… )
  • Append footers (Gestion de pie corporativos)
  • Approved sender lists (Listas Blanca)
  • Blocked sender lists (Lista Negra)
  • Attachment compliance (Policas de Archivos Adjuntos: Ejem: restringir adjuntos por tipo o tamaño)
  • Restrict email delivery (Restricción en envio de emails)
Para poder implementar este tipo de reglas o políticas debes ir a:
Panel de Contro Google Apps -> Email Settings -> Filters

Guia de transición para Dominios que actualmente usan Postini:
http://support.google.com/a/bin/answer.py?hl=en&answer=2381789Anuncio
http://googleenterprise.blogspot.com/2012/01/adding-business-class-management.html

Darvin Avelar Otero
Google Apps Specialist
Aeegle.com

Configure SPF Record for your Google Apps domain

 

An SPF (Sender Policy Framework) record is a type of DNS record that identifies which mail servers are permitted to send email on behalf of your domain.  The purpose of an SPF record is to prevent spammers from sending messages with forged From addresses at your domain. Recipients can refer to the SPF record to determine whether a message purporting to be from your domain comes from an authorized mail server.

Configure a SPF Record for your domain  

  1. Read the Creating SPF Record help article
  2. Log into the DNS registrar for your domain.
  3. Create a TXT record for your primary domain with the following value:  v=spf1 include:_spf.google.com ~all
  4. Optionally, create a TXT record for your domain alias with the same value:  v=spf1 include:_spf.google.com ~all
    Note: The TXT record entries will look similar to the following:


    • Select Quick Add to enter a new TXT entry.
      Suggestion: Do not use the SPF Record wizard. It is easier to copy & paste the TXT value yourself.
    • Select Save Zone File to save the entry.
    • Note: It can take several hours for the TXT records to propagate.
Hope this helps

Google Spreadsheet + JSON + Solve360 CRM

Here a sample code to get a JSON response using Google Apps Script from Solve360 CRM

Based on change some lines of code into the Solve360 Service library for Google Apps Scripts


/**
* Request to the Solve360 API server
* data should be an Array in Short Hand notation
*/
request : function(uri, restVerb, data) {
if (this._credentials == null) {
throw new Error(‘Solve360 credentials are not set’);
}
if (typeof(data) != ‘undefined’) {
data.unshift(‘request’);
data = Xml.parseJS(data).toXmlString();
} else {
data = ‘’;
}
var headers = {
“Authorization” : “Basic “ + this._credentials,
“Accept” : “application/json”,
};
var options = {
“contentType” : “application/xml”,
“method” : restVerb.toLowerCase(),
“payload” : data,
“headers” : headers
};
return UrlFetchApp.fetch(this._url + uri, options).getContentText(); //Xml.parse(UrlFetchApp.fetch(this._url + uri, options).getContentText()).getElement();
}

Making the calling from your own code


function getReport() {
// Loading Solve360Service library
// write here ..
var user = UserProperties.getProperty(USERPROPERTY_USER);
var token = UserProperties.getProperty(USERPROPERTY_TOKEN);
if (user == null || user.length == 0 || token == null || token.length == 0) {
throw new Error(‘Use Solve360 spreadsheet menu to set email and token first’);
}
// Configure service gateway object
Solve360Service.setCredentials(user, token);
var myContacts = Solve360Service.searchContacts([]);//getContactsCategories();
var myContactsJson = Utilities.jsonParse(myContacts);

….

Links

http://code.google.com/googleapps/appsscript/

http://norada.com/

http://static.solve360.com/gadgets/resources/js/Solve360Service.js

regards

Openbravo POS Cierre de Caja detallado por Categorias

 

Desarrollamos este requerimiento para un cliente y aqui lo comparto con ustedes, el codigo y el manual para su aplicación en tu instalación local.

1. Download the source code
https://docs.google.com/leaf?id=0B2UfTTLsYcx0MDk2MTMxNGMtOTg1ZS00N2FiLThlMTYtNDE1NTM2MTY4N2Rm&hl=en&authkey=CIGTsuYG

1.1 Apply diff files to your code

2. In Administration menu, Maintenance -> Resources
Update the Printer.PartialCash and Printer.CloseCash scripts using the next content:

<?xml version=”1.0″ encoding=”UTF-8″?>
<!–
Openbravo POS is a point of sales application designed for touch screens.
Copyright (C) 2007-2009 Openbravo, S.L.

http://sourceforge.net/projects/openbravopos

This file is part of Openbravo POS.
Openbravo POS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Openbravo POS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Openbravo POS.  If not, see <http://www.gnu.org/licenses/&gt;.
–>

<output>
<ticket>
<image>Printer.Ticket.Logo</image>
<line></line>
<line size=”1″>
<text align =”center” length=”42″ bold=”true”>Close cash report</text>
</line>
<line></line>
<line>
<text bold=”true”>Payments report</text>
</line>
<line>
<text align =”right” length=”42″>Total</text>
</line>
<line>
<text>——————————————</text>
</line>
#foreach ($line in $payments.getPaymentLines())
<line>
<text align =”left” length=”32″>${line.printType()}</text>
<text align =”right” length=”10″>${line.printValue()}</text>
</line>
#end
<line>
<text>——————————————</text>
</line>
<line>
<text align =”left” length=”32″>Payments:</text>
<text align =”right” length=”10″>${payments.printPayments()}</text>
</line>
<line></line>
<line size=”1″>
<text align =”left” length=”32″ bold=”true”>Total</text>
<text align =”right” length=”10″ bold=”true”>${payments.printPaymentsTotal()}</text>
</line>
<line></line>
<line>
<text bold=”true”>Taxes report</text>
</line>
<line>
<text align =”right” length=”42″>Total</text>
</line>
<line>
<text>——————————————</text>
</line>
#foreach ($line in $payments.getSaleLines())
<line>
<text align =”left” length=”32″>${line.printTaxName()}</text>
<text align =”right” length=”10″>${line.printTaxes()}</text>
</line>
#end
<line>
<text>——————————————</text>
</line>
<line>
<text align =”left” length=”32″>Receipts:</text>
<text align =”right” length=”10″>${payments.printSales()}</text>
</line>
<line></line>
<line size=”1″>
<text align =”left” length=”32″ bold=”true”>Subtotal</text>
<text align =”right” length=”10″ bold=”true”>${payments.printSalesBase()}</text>
</line>
<line size=”1″>
<text align =”left” length=”22″ bold=”true”>Total</text>
<text align =”right” length=”10″ bold=”true”>${payments.printSalesTaxes()}</text>
<text align =”right” length=”10″ bold=”true”>${payments.printSalesTotal()}</text>
</line>
<line></line>

<line>
<text bold=”true”>Sales By Category</text>
</line>
<line>
<text align =”right” length=”32″>Qty</text>
<text align =”right” length=”10″>Total</text>
</line>
<line>
<text>——————————————</text>
</line>
#foreach ($line in $payments.geCategoriesLines())
<line>
<text align =”left” length=”16″>${line.CategorieName()}</text>
<text align =”right” length=”16″>${line.getCategorieUnits()}</text>
<text align =”right” length=”10″>${line.getCategoriePrice()}</text>
</line>
#end
<line></line>
<line size=”1″>
<text align =”left” length=”32″ bold=”true”>Total</text>
<text align =”right” length=”10″ bold=”true”>${payments.printPaymentsTotal()}</text>
</line>
<line></line>

<line>
<text length=”18″>Machine:</text>
<text>${payments.printHost()}</text>
</line>
<line>
<text length=”18″>Sequence:</text>
<text length=”24″ align=”right”>${payments.printSequence()}</text>
</line>
<line>
<text length=”18″>Start date:</text>
<text length=”24″ align=”right”>${payments.printDateStart()}</text>
</line>
<line>
<text length=”18″>End date:</text>
<text length=”24″ align=”right”>${payments.printDateEnd()}</text>
</line>
</ticket>
</output>

Manual

https://docs.google.com/document/d/1ZOWgLvQLz40lC8q6qt_B86cRzPegsXPmTFZcw8ErhtQ/edit?hl=en&authkey=CLKazaQM

 

www.aesist.com/openbravopos

Espero les sea de utilidad

Nexus One oficialmente el teléfono móvil de Google

En el siguiente vídeo muestra  el nuevo ‘Nexus One’, el teléfono móvil oficial de Google.

Después de muchos rumores , el teléfono móvil de Google ya está aquí y con el las pretensiones de la compañía de no dejar de perder el control sobre la manera en la que los usuarios acceden a la información.

El teléfono móvil de Google se llama ‘Nexus One’, es la firma taiwanesa HTC la que lo fabrica, y se ha habilitado el sitio web ‘google.com/phone‘ para comercializarlo desde los propios servidores de Google, aunque por el momento solamente disponible en EEUU. Se adelanta que en unos meses podrá Leer más de este artículo

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.