martes, 27 de septiembre de 2011

Microsoft desarrolló un software para teletrabajo



Microsoft desarrolló un software para teletrabajo

La empresa se unió con Jobing y Datco para realizar las aplicación especialmente diseñada para esta práctica laboral. Se puede acceder a la plataforma desde PC, tablet y teléfonos, y está basada en las herramientas Sharepoint y Lync.



[ 1 ]
Jobing un software exclusivo para teletrabajo.
El programa se llama Jobing y permitirá a los empleados cumplir sus funciones desde cualquier lugar y acceder desde dispositivos como unaPC, notebooks, tablets o smartphone a las aplicaciones corporativasen forma segura.

Con esta alianza, Microsoft buscó fortalecer sus conocimientos en el sector y así desarrollar la aplicación especialmente diseñada para empresas que aplican el trabajo a distancia. Actualmente con más de 700 compañías están considerando la posibilidad de implementarlo en el país, mientras que el 15 por ciento ya está transitando un proceso de implementación concreto.

El software permitirá que el teletrabajador y su jefe estén comunicados utilizando todos los medios existentes: teléfono, mail, video conferencia, Chat, blog o muro, para realizar su tarea de manera segura y productiva.

Además, permite que navegue por toda la información que necesita, comparta documentos en línea, realice búsquedas y trabaje en equipo. Otra ventaja es que el empleado pueda recibir asistencia permanente y cuenta con todos los recursos que necesita.

Fabio Boggino, director de Jobing, explicó que está unión permite a las organizaciones contar con la herramienta indispensable para que los teletrabajadores y telesupervisores puedan realizar sus tareas desde cualquier lugar sin necesidad de concurrir a los edificios laborales, “mejorando su calidad de vida y productividad”, dijo.

"Una vez que una empresa decide aplicar teletrabajo con sus trabajadores, el software se instala en los servidores de la organización para que los empleados accedan luego de manera remota", agregó Boggino.

Por su parte, Fernando Jaime, gerente de servicios profesionales de Datco, sostuvo que no se trata sólo de tecnología sino de una solución que permite acceder al ambiente de trabajo tal como en la oficina. “La solución se basa en herramientas de productividad de Microsoft como Sharepoint y Lync”, remarcó.

En tanto, Agustina Seiguer, directora de Negocios de la división de productividad de Microsoft Argentina y Uruguay, consignó que “Lync unifica todas las formas de comunicación empresarial para brindar a los usuarios una experiencia mucho más conectada, facilitando el teletrabajo, a través del uso de la PC, la Web y el celular”.

El software fue diseñado por tres expertos en la materia: Jobing se ocupó del asesoramiento relacionado con el trabajo a distancia, Microsoft aportó las herramientas de desarrollo, mientras que Datco diseñó la solución y será la encargada de comercializarlo e implementarlo.

Microsoft desarrolló un software para teletrabajo - CanalAR

viernes, 16 de septiembre de 2011

AnythingSlider | CSS-Tricks

Anything Slider is a jQuery plugin which allows you to show any website or HTML code as slider.... Trully fantastic and easy to use. Good work they've done.

Download latest: http://github.com/ProLoser/AnythingSlider/downloads

AnythingSlider | CSS-Tricks:

jueves, 15 de septiembre de 2011

PHP - Getting coordinates based on address


I have attached here the class and a test file so you can see how it works.
I plan to develop this class in the future that’s why it requires a Google Maps API key.
Here is the test file for it, just to make an impression on how it looks like :
  1. <?php
  2.  
  3. //include our class
  4. require_once(dirname(__FILE__) . ‘/class.googleHelper.php’);
  5.  
  6. //your Google Maps API key (you can get one for free from http://code.google.com/apis/maps/signup.html)
  7. $apiKey = ‘API_KEY_HERE’;
  8.  
  9. //init our object
  10. $obj = new googleHelper($apiKey);
  11.  
  12. //get coordinates and print the debug info
  13. $address = ‘Danmark, Sjælland, Hørve, Dragsholm Alle 4534′;
  14. print ‘For our "’ . $address . ‘" we have these data : ‘;
  15. print ‘<pre>’;
  16. print_r($obj->getCoordinates($address ));
  17.  
  18. ?>

PHP Examples: Calculate distance between 2 sets of longitude / latitude coordinates.

= 46.2341938036161;
$lon1 = -63.124778021257015;

$lat2 = 46.4141938036161;
$lon2 = -63.118571124705284;

$distance = (3958*3.1415926*sqrt(($lat2-$lat1)*($lat2-$lat1) + cos($lat2/57.29578)*cos($lat1/57.29578)*($lon2-$lon1)*($lon2-$lon1))/180);

print(
$distance);

?>

PHP Examples: Calculate distance between 2 sets of longitude / latitude coordinates.:

miércoles, 14 de septiembre de 2011

Sin GPS, No hay problema, Google nos dice donde estamos | Ecuador Blackberry

Sin GPS, No hay problema, Google nos dice donde estamos

Algunos modelos de BlackBerry desgraciadamente no disponen de GPS. Peor aun, con GPS, igual podemos estar bajo techo o en un lugar sin disponibilidad del servicio. Cada dia que pasa las aplicaciones y servicios basados en localizacion se hacen cada vez mas universales y necesarias.

Algunas apps requieren de un valor mas exacto de nuestra ubicacion, otras no tanto. Para esas aplicaciones que solo requieren aproximar en el rango de un kilometro nuestra ubicacion podemos utilizar un servicio de localizacion de Google, el cual mediante la informacion de la red celular y nivel de sennal nos dice donde estamos, o al menos una aproximacion.

La API de Google se puede encontrar en la URL http://www.google.com/loc/json y como pueden suponer utiliza el formato JSON para recibir la peticion y enviar la respuesta.

gloc = new Thread() {
public void run() {
try {
JSONObject jsonString = new JSONObject();
jsonString.put("version", "1.1.0");
jsonString.put("host", "maps.google.com");
int x = RadioInfo.getMCC(RadioInfo.getCurrentNetworkIndex());
jsonString.put("home_mobile_country_code", ((Helper.DEBUG)?Helper.GPS_TEST_HMCC:x));
jsonString.put("home_mobile_network_code", ((Helper.DEBUG)?Helper.GPS_TEST_HMNC:RadioInfo.getMNC(RadioInfo.getCurrentNetworkIndex())));

jsonString.put("radio_type","gsm");
jsonString.put("carrier", ((Helper.DEBUG)?Helper.GPS_TEST_CARRIER:RadioInfo.getCurrentNetworkName()));
jsonString.put("request_address", true);
jsonString.put("address_language", "en_GB");

CellTower cellInfo = new CellTower(x, GPRSInfo.getCellInfo().getLAC(),GPRSInfo.getCellInfo().getRSSI(), GPRSInfo.getCellInfo().getCellId(),0,RadioInfo.getMNC(RadioInfo.getCurrentNetworkIndex()));
JSONObject map = new JSONObject();
map.put("mobile_country_code", ((Helper.DEBUG)?Helper.GPS_TEST_HMCC:cellInfo.mobileCountryCode));
map.put("location_area_code", ((Helper.DEBUG)?Helper.GPS_TEST_LAC:cellInfo.locationAreaCode));
map.put("signal_strength", new Integer(cellInfo.signalStrength));
map.put("cell_id", ((Helper.DEBUG)?Helper.GPS_TEST_CELLID:cellInfo.cellID));
map.put("age", 0);
map.put("mobile_network_code", ((Helper.DEBUG)?Helper.GPS_TEST_HMNC:cellInfo.mobileNetworkCode));

JSONArray array = new JSONArray();
array.put(0,map);

jsonString.put("cell_towers",array);

// Enviar por HTTP POST
HttpConnection con = (HttpConnection)Connector.open(Helper.url("http://www.google.com/loc/json"));
con.setRequestMethod(HttpConnection.POST);
OutputStream dos = con.openOutputStream();
dos.write(jsonString.toString().getBytes());
dos.close();

if (con.getResponseCode()==HttpConnection.HTTP_OK) {
InputStream is = con.openInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[8192];
int leido = is.read(buffer);
while (leido>0) {
baos.write(buffer,0,leido);
leido = is.read(buffer);
}
is.close();
con.close();
try {
JSONObject jsonResponse = new JSONObject(baos.toString());
JSONObject location = jsonResponse.getJSONObject("location");
GPSFixInfo info = new GPSFixInfo();
info.fromGPS = false;
info.latitude = Double.parseDouble(location.get("latitude").toString());
info.longitude = Double.parseDouble(location.get("longitude").toString());
double accuracy = Double.parseDouble(location.get("accuracy").toString());
info.horAccuracy = (float)(accuracy/2);
info.verAccuracy = (float)(accuracy/2);
storage.addElement(info);
if (events!=null) {
locationObtained(info);
}
} catch (Exception e) {
googleLocationResponseError();
}
} else {
con.close();
googleLocationError(con.getResponseMessage());
}
} catch (Exception e) {
events.googleLocationError(e.getMessage());
}
finishedLocationByGoogle();
}
};
gloc.start();

En este ejemplo podemos ver varios elementos adicionales que iremos incluyendo:

Clase Helper
Esta es una clase estatica con variables y metodos usados en todo el proyecto. En este caso define algunas variables de localizacion para el simulador. Ya que este metodo de localizacion no funciona en el simulador porque la informacion de antenas simuladas no es real, con estas variables simulamos directamente que nos encontramos en una posicion al norte de la ciudad (de Guayaquil).

public class Helper {

public static final boolean DEBUG = DeviceInfo.isSimulator();
public static final String GPS_TEST_CARRIER = "movistar";
public static final int GPS_TEST_HMCC = 1856; // Ecuador
public static final int GPS_TEST_HMNC = 0; // Movistar
public static final int GPS_TEST_LAC = 51301; // Location Area Code
public static final int GPS_TEST_CELLID = 52817; // Cell ID

public static String url(String string) {
TransportDetective td = new TransportDetective();
URLFactory urlFac = new URLFactory(string);
if (td.isCoverageAvailable(TransportDetective.TRANSPORT_TCP_WIFI)) {
return urlFac.getHttpTcpWiFiUrl();
} else if (td.isCoverageAvailable(TransportDetective.TRANSPORT_BIS_B)) {
return urlFac.getHttpBisUrl();
} else if (td.isCoverageAvailable(TransportDetective.TRANSPORT_WAP2)) {
ServiceRecord sr = getWAP2ServiceRecord();
if (sr!=null) {
return urlFac.getHttpWap2Url(sr);
}
}
return urlFac.getHttpDefaultUrl();
}

private static ServiceRecord getWAP2ServiceRecord() {
ServiceRecord[] records = ServiceBook.getSB().getRecords();
int currentRecord;

for(currentRecord = 0; currentRecord < records.length; currentRecord++) {
if(records[currentRecord].getCid().toLowerCase().equals("wptcp")) {
if(records[currentRecord].getName().toLowerCase().indexOf("wap2") >= 0) {
return records[currentRecord];
}
}
}
return null;
}
}

Clase GPSFixInfo
Esta clase solo es una agregacion de las coordenadas y datos adicionales de GPS

public class GPSFixInfo {
public double latitude;
public double longitude;
public boolean fromGPS;
public float horAccuracy;
public float verAccuracy;

public GPSFixInfo() {

}
}

Adicionalmente necesitaran la API de JSON Mobile Edition que pueden encontrar en otro articulo del blog, asi como TransportDetective y URLFactory, tambien en el blog.

En las pruebas que he realizado me ha logrado ubicar con bastante presicion de hasta 1km el lugar donde me encuentro. Mientras mas cerca este de la torre celular mejor exactitud me da.


Sin GPS, No hay problema, Google nos dice donde estamos | Ecuador Blackberry: