Showing posts with label for. Show all posts
Showing posts with label for. Show all posts

Marmalade SDK Exception cannot open file iwui style style group bin for serialising

| 0 comments |
I made a simple IW2D app with Marmalade SDK, it worked fine in the Windows emulator but when I deployed to Android I received this exception:

cannot open file iwui_style/style.group.bin for serialising (read), Did you include this file in your mkb assets block

The solution was  to add this block to my MKB file

assets
{
(data-ram/data-gles1)
ui.group.bin
(data-ram/data-gles1)
iwui_style/style.group.bin

}
Read More..

Lithium Sulfur battery cells the upcoming replacement for Lithium Ion

| 0 comments |

Lithium-ion batteries, the current battery technology used in smartphones, has a high specific energy (energy per weight) but has a few drawbacks. Lets take a closer look and compare both technologies.

The main issue with Li-ion is that is requires lithium dissolved in extremely volatile and flammable organic solvents; e.g. dimethoxyethane which has a low flash point -2 °C (28 °F), the temperature at which a volatile substance can evaporate and form an ignitable mixture in air. This makes them extremely dangerous when the charging circuits malfunction and fail to protect the battery from overcharging, and consequently overheating. We have seen some scary stories in the recent past with people waking up to their phone bursting into flames while they were charging overnight, and the battery fires in the new Boeing 787 Li-ion battery packs. So obviously there is need for development into a safer battery composition with similar or better energy capacities.

Recently I did some research into the developing Lithium-Sulfur battery, with extremely promising specifications at the present time better than Li-ion. Li-S is extremely light weight due to the use of sulfur instead of ionic liquids, additionally sulfur is much cheaper to produce than ionic liquids. Despite frequent headlines about new battery compositions with potentially high capacities, Li-S is actually in the production stages and no longer just a concept.  

The chemistry behind Li-S is essentially the lithium gets plated onto the anode when charging and poly-sulfides are reduced and coat the anode when discharging, compared to the use of intercalated anode and cathode plates in Li-ion. This is the main factor which gives Li-S potential to be a battery composition with an extremely high specific energy. The different chemistry also allows the use of much less volatile solvents such as polyethylene glycols (flash point up to 287 °C/548 °F).

The degradation of Li-S is different to Li-ion but is also susceptible to an increased rate of degradation at high temperatures. There are unwanted side reactions that can take place, but are reversible until they dissolve into the solvent. Luckily sulfide compounds are relatively insoluble in electrolyte solutions but any increase in temperature will increase their solubility, so batteries need to be well regulated to prevent rapid charging and discharging.

Manufacturers are beginning to pour money into research and development for Li-S as there are a lot of factors which can be significantly improved, from something as simple milling smaller sulfur and carbon particles to something more difficult like developing a better solvent to improve battery capacity and reduce degradation. (Carbon nanotubes/nanofibres are used as a conductor due to sulfur’s poor electroconductivity, and they are still quite expensive to produce.)

Ive put a graph at the top to compare rechargeable battery technology in the past with Li-S. Now, time to see which OEM will be implementing Li-S first.

TL;DR Lithium-Sulfur batteries are capable of having a higher wattage per weight than Lithium-ion whilst being both safer to the consumer and cheaper to manufacture.


Puncture test comparison


Short circuit test comparison

This article is also to be found on its authors personal blog.

Have any questions or comments? Feel free to share! Also, if you like this article, please use media sharing buttons (Twitter, G+, Facebook) below this post!
Read More..

3 ways academic institutions use Chromeboxes for digital signage

| 0 comments |


(Cross-posted on the Google for Education Blog.)

Editors note: Chromeboxes help businesses and schools update employees and students with timely information and create a sense of community. To learn more about using Chromebox for digital signage and how it can help your business or school work smarter, join Chrome Live on April 22.

Schools and universities across the country use digital signage to share announcements, news and schedules. Chromeboxes give students waiting in dorm lobbies for friends or standing in the cafeteria line for lunch the opportunity to learn about campus events on the go. And digital signage apps for Chrome built by Rise Vision, one of our content partners, power many of these digital experiences that go beyond traditional campus fliers.

Here are three ways academic institutions are using Chromeboxes for digital signage to better engage and inform students:

Personalizing content at Siena College

Siena College, a private liberal arts college in Loudonville, New York, prizes its close-knit community of 3,000 students. In this intimate class setting, individual departments manage their own content featured on Chromeboxes for display. IT and display managers don’t have to be involved in day-to-day content updates, and each department is nimble and flexible with their content. For example, the Student Senate features content from the athletics and academic departments on several of its screens and those departments directly update their content to ensure it’s relevant and timely.

Cutting IT costs and time at University of Toronto Mississauga

The University of Toronto Mississauga uses its 25 digital signage displays to profile professors, highlight research projects and market events to their more than 12,600 undergraduate students. Their previous display technology required extensive IT time to configure and update. Since Chromeboxes automatically update with new features and security fixes, IT can spend time on other tasks. Chromeboxes have also freed up the University’s budget, since they’re much more affordable than their previous display equipment, which cost $1,300.

Reducing power use at Manor Independent School District

The 20 digital signage displays in the Manor Independent School District notify the 8,000 K-12 students about announcements, lunchroom menus, upcoming events and recent posts from a live Twitter feed. Previously, the schools relied on netbooks to power their screens, which consumed a lot of power, were noisy and crashed often. Chromeboxes, which don’t have fans or spinning hard drives, were a natural fit as the district sought more eco-friendly display solutions.

As universities and school districts continue improving their digital display technology, they’re finding better ways to deliver informative and entertaining content to teachers and current and prospective students. Join Chrome Live to learn how to use Chromebox for digital signage at your school.
Read More..

DIY 3D Hologram Projector for smartphone

| 0 comments |







You can easy search "3D Hologram video" in Youtube:)

Next;
~ I try to simulate the 3D Hologram effect in Android App.

Read More..

Tips for High Performance Websites

| 0 comments |
Steve Souders in his website has given 15 tips - some very fundamental ones for creating high performance websites, along with demonstrations of what he says. Very Interesting and useful.

The list is here. Visit his
website to actually see the demos.

• Rule 1 - Make Fewer HTTP Requests

• Rule 2 - Use a Content Delivery Network
• Rule 3 - Add an Expires Header
• Rule 4 - Gzip Components
• Rule 5 - Put Stylesheets at the Top
• Rule 6 - Put Scripts at the Bottom
• Rule 7 - Avoid CSS Expressions
• Rule 8 - Make JavaScript and CSS External
• Rule 9 - Reduce DNS Lookups
• Rule 10 - Minify JavaScript
• Rule 11 - Avoid Redirects
• Rule 12 - Remove Duplicate Scripts
• Rule 13 - Configure ETags
• Rule 14 - Make AJAX Cacheable
• Rule 15 - Use Iframes Wisely

He even talks about tools that he has used for some of these tasks, ex. JSmin to minify a script, Dojo compressor to obfuscate a script, etc.

Interestingly he also points that most of the optimization for better performing websites seems to be a front end problem more than a back end one. He has learnt this when he was the chief performance Yahoo! and has published a book "High Performance Web Sites: Essential Knowledge for Front-End Engineers " on the same.
Read More..

Quantifying the economic value of Chromebooks for schools

| 0 comments |


(Cross-posted on the Google for Education Blog.)

Many schools have told us that Chromebooks have helped them transform learning. Those in Texas and North Carolina have shared stories of students using Chromebooks to better connect with their teachers and peers and expand their learning opportunities (you’ll see more stories in the coming weeks from districts in New York, Florida and Michigan). But beyond opening new avenues for learning, Chromebooks are also helping schools save money, allowing them to meet tight budgets and provide computers to more students.

Plymouth-Canton Community Schools  one of the largest districts in Michigan  for example, told us that they’ve been able to save $200k in the 3rd grade alone, by purchasing Chromebooks over alternative devices. Theyve been able to leverage those savings to purchase charging carts, protective cases for the devices and additional power adaptors so that students can charge the Chromebooks at home and at school. The same has been true outside of the US. Earlier this year, Academies Enterprise Trust, a network of 76 schools across the United Kingdom, anticipated that they could save £7.7m in hardware and maintenance costs by using Google Apps for Education and Chromebooks.

To more fully understand the total cost of ownership and savings impact of Chromebooks, we commissioned IDC to conduct interviews with 10 schools using Chromebooks to support teaching and learning in 7 countries. The study comprised of 10 schools in 7 countries representing 294,620 students in all, across United States, Canada, United Kingdom, Sweden, Denmark, Australia and New Zealand. The interviews consisted of a variety of quantitative and qualitative questions designed to obtain information about the economics of deploying Chromebooks for these school systems as well as the impact of using Chromebooks on their students and faculty. Some of their key findings:
According to one school district in the study, Chromebook’s price point enabled the school system to reach a 1:1 user-device ratio, something it couldn’t have done before given the cost of their previous devices. They said, “We now have a 1:1 device solution with Chromebooks … Without Chromebooks, either we would have fewer devices or we would have had to spend four times as much to get to the same point.” For this district, being able to expand the number of students who have daily or consistent access to educational content on Chromebooks represents a substantial advantage and supports their core missions.

You can read the full whitepaper here, and calculate how much time and money Chromebooks can save for your school.
Read More..

The new Training Center professional development by and for educators

| 0 comments |


(Cross-posted on the Google for Education Blog.)

Editors note: Twenty thousand educators from around the world will share ideas, tips, and trends for the upcoming year when they gather at ISTE, one of the largest education technology conferences in the world. If you’ll be in Philadelphia, come visit us in the Expo Hall at #1808. You can learn more about the new Training Center and check out any of over 50 short sessions that will share more ways to engage and inspire students.

Technology can transform education, but only when it enables and supports amazing educators. Effective professional development is thus a crucial part of creating real positive change and preparing students for the future. For this reason, we’re proud to introduce the new Google for Education Training Center, a free, interactive, online platform that helps educators apply Google’s tools in the classroom and beyond.


Professional development has long been a challenge for educators and administrators. A 2015 survey by the American Federation of Teachers found that the "adoption of new initiatives without proper training or professional development" was the primary reason for workplace stress, with 71% of respondents citing it. This is why we worked closely alongside educators to design professional development tools that fit the needs of their peers.

“We didn’t need another help center with how-to articles; we needed to start where teachers start, with learning objectives, classroom tasks and teaching strategies,” said Jay Atwood, EdTech coordinator at Singapore American School and project lead for the Training Center’s lesson creation. “With the new Training Center, we do just that.”

The Training Center provides interactive lessons with a practical classroom focus, allowing educators and administrators to customize their learning paths by choosing fundamental or advanced courses. Each course is organized around three themes:


Educators can access different units and lessons in any order they prefer. After completing either the fundamentals or advanced course, educators can then distinguish themselves as Google Certified Educators, Level 1 or Level 2.

The lessons support different skill sets, grade levels, content specialties, capacities and interests. “I thought I was pretty knowledgeable about Google, but in each session I learned something new,” says Carla Jones, a teacher at Cook Elementary School in Chicago, IL who previewed the Training Center content. “I learned tips and strategies that I could immediately use in my classroom, and each session got me super excited about how to make my classroom more tech integrated.”

Chicago Public Schools (CPS), the third largest school district in the United States with more than 600 schools and 400,000 students, worked with Google for Education as a launch partner for the new Training Center. CPS will use the Training Center as an integral part of its technology professional development program, and teachers’ time spent on Training Center courses will count toward their professional development hours.

“The new Google for Education Training Center empowers teachers to drive their own learning and track their progress,” says Donna Román, EdTech instructional specialist at CPS. “It combines differentiated content, flexible pace and application with the collaborative magic of Google Apps for Education in a supportive learning environment.”

The Training Center reflects what we value most about education, focusing on the process of learning rather than the tools themselves. “The Training Center was carefully designed around good pedagogy and instructional practices,” explains Mark Hammons, EdTech coordinator at the Fresno County Office of Education and a contributor to the platform. “Not only will teachers learn how to use Google Apps, but they will also learn how to apply them meaningfully in the classroom.”

To learn more about the Training Center, visit g.co/edutrainingcenter and try out a lesson or two.
Read More..

Implement dummy Heart Rate Measurement profile using Arduino Due HM 10 for BluetoothLeGatt sample code

| 0 comments |
Previous post "Connect HM-10 (BLE Module) to Android device, with BluetoothLeGatt sample project" show step-by-step to modify Android BluetoothLeGatt sample program, by-pass Heart Rate Measurement profile handling to show function of HM-10.

Here we will send dummy data of Heart Rate Measurement profile by  Arduino Due + HM-10.


First of all, edit BluetoothLeService.java to resume original handling for Heart Rate Measurement profile:
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.example.android.bluetoothlegatt;

import android.app.Service;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattDescriptor;
import android.bluetooth.BluetoothGattService;
import android.bluetooth.BluetoothManager;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;

import java.util.List;
import java.util.UUID;

/**
* Service for managing connection and data communication with a GATT server hosted on a
* given Bluetooth LE device.
*/
public class BluetoothLeService extends Service {
private final static String TAG = BluetoothLeService.class.getSimpleName();

private BluetoothManager mBluetoothManager;
private BluetoothAdapter mBluetoothAdapter;
private String mBluetoothDeviceAddress;
private BluetoothGatt mBluetoothGatt;
private int mConnectionState = STATE_DISCONNECTED;

private static final int STATE_DISCONNECTED = 0;
private static final int STATE_CONNECTING = 1;
private static final int STATE_CONNECTED = 2;

public final static String ACTION_GATT_CONNECTED =
"com.example.bluetooth.le.ACTION_GATT_CONNECTED";
public final static String ACTION_GATT_DISCONNECTED =
"com.example.bluetooth.le.ACTION_GATT_DISCONNECTED";
public final static String ACTION_GATT_SERVICES_DISCOVERED =
"com.example.bluetooth.le.ACTION_GATT_SERVICES_DISCOVERED";
public final static String ACTION_DATA_AVAILABLE =
"com.example.bluetooth.le.ACTION_DATA_AVAILABLE";
public final static String EXTRA_DATA =
"com.example.bluetooth.le.EXTRA_DATA";

public final static UUID UUID_HEART_RATE_MEASUREMENT =
UUID.fromString(SampleGattAttributes.HM_10);

// Implements callback methods for GATT events that the app cares about. For example,
// connection change and services discovered.
private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
String intentAction;
if (newState == BluetoothProfile.STATE_CONNECTED) {
intentAction = ACTION_GATT_CONNECTED;
mConnectionState = STATE_CONNECTED;
broadcastUpdate(intentAction);
Log.i(TAG, "Connected to GATT server.");
// Attempts to discover services after successful connection.
Log.i(TAG, "Attempting to start service discovery:" +
mBluetoothGatt.discoverServices());

} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
intentAction = ACTION_GATT_DISCONNECTED;
mConnectionState = STATE_DISCONNECTED;
Log.i(TAG, "Disconnected from GATT server.");
broadcastUpdate(intentAction);
}
}

@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
broadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED);
} else {
Log.w(TAG, "onServicesDiscovered received: " + status);
}
}

@Override
public void onCharacteristicRead(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
}
}

@Override
public void onCharacteristicChanged(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic) {
broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
}
};

private void broadcastUpdate(final String action) {
final Intent intent = new Intent(action);
sendBroadcast(intent);
}

private void broadcastUpdate(final String action,
final BluetoothGattCharacteristic characteristic) {
final Intent intent = new Intent(action);

// This is special handling for the Heart Rate Measurement profile. Data parsing is
// carried out as per profile specifications:
// http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml
if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
int flag = characteristic.getProperties();
int format = -1;
if ((flag & 0x01) != 0) {
format = BluetoothGattCharacteristic.FORMAT_UINT16;
Log.d(TAG, "Heart rate format UINT16.");
} else {
format = BluetoothGattCharacteristic.FORMAT_UINT8;
Log.d(TAG, "Heart rate format UINT8.");
}
final int heartRate = characteristic.getIntValue(format, 1);
Log.d(TAG, String.format("Received heart rate: %d", heartRate));
intent.putExtra(EXTRA_DATA, String.valueOf(heartRate));
} else {
// For all other profiles, writes the data formatted in HEX.
final byte[] data = characteristic.getValue();
if (data != null && data.length > 0) {
final StringBuilder stringBuilder = new StringBuilder(data.length);
for(byte byteChar : data)
stringBuilder.append(String.format("%02X ", byteChar));
intent.putExtra(EXTRA_DATA, new String(data) + " " + stringBuilder.toString());
}
}


/*
Log.v("AndroidLE", "broadcastUpdate()");

final byte[] data = characteristic.getValue();

Log.v("AndroidLE", "data.length: " + data.length);

if (data != null && data.length > 0) {
final StringBuilder stringBuilder = new StringBuilder(data.length);
for(byte byteChar : data) {
stringBuilder.append(String.format("%02X ", byteChar));

Log.v("AndroidLE", String.format("%02X ", byteChar));
}
intent.putExtra(EXTRA_DATA, new String(data) + " " + stringBuilder.toString());
}
*/


sendBroadcast(intent);
}

public class LocalBinder extends Binder {
BluetoothLeService getService() {
return BluetoothLeService.this;
}
}

@Override
public IBinder onBind(Intent intent) {
return mBinder;
}

@Override
public boolean onUnbind(Intent intent) {
// After using a given device, you should make sure that BluetoothGatt.close() is called
// such that resources are cleaned up properly. In this particular example, close() is
// invoked when the UI is disconnected from the Service.
close();
return super.onUnbind(intent);
}

private final IBinder mBinder = new LocalBinder();

/**
* Initializes a reference to the local Bluetooth adapter.
*
* @return Return true if the initialization is successful.
*/
public boolean initialize() {
// For API level 18 and above, get a reference to BluetoothAdapter through
// BluetoothManager.
if (mBluetoothManager == null) {
mBluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
if (mBluetoothManager == null) {
Log.e(TAG, "Unable to initialize BluetoothManager.");
return false;
}
}

mBluetoothAdapter = mBluetoothManager.getAdapter();
if (mBluetoothAdapter == null) {
Log.e(TAG, "Unable to obtain a BluetoothAdapter.");
return false;
}

return true;
}

/**
* Connects to the GATT server hosted on the Bluetooth LE device.
*
* @param address The device address of the destination device.
*
* @return Return true if the connection is initiated successfully. The connection result
* is reported asynchronously through the
* {@code BluetoothGattCallback#onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int)}
* callback.
*/
public boolean connect(final String address) {
if (mBluetoothAdapter == null || address == null) {
Log.w(TAG, "BluetoothAdapter not initialized or unspecified address.");
return false;
}

// Previously connected device. Try to reconnect.
if (mBluetoothDeviceAddress != null && address.equals(mBluetoothDeviceAddress)
&& mBluetoothGatt != null) {
Log.d(TAG, "Trying to use an existing mBluetoothGatt for connection.");
if (mBluetoothGatt.connect()) {
mConnectionState = STATE_CONNECTING;
return true;
} else {
return false;
}
}

final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
if (device == null) {
Log.w(TAG, "Device not found. Unable to connect.");
return false;
}
// We want to directly connect to the device, so we are setting the autoConnect
// parameter to false.
mBluetoothGatt = device.connectGatt(this, false, mGattCallback);
Log.d(TAG, "Trying to create a new connection.");
mBluetoothDeviceAddress = address;
mConnectionState = STATE_CONNECTING;
return true;
}

/**
* Disconnects an existing connection or cancel a pending connection. The disconnection result
* is reported asynchronously through the
* {@code BluetoothGattCallback#onConnectionStateChange(android.bluetooth.BluetoothGatt, int, int)}
* callback.
*/
public void disconnect() {
if (mBluetoothAdapter == null || mBluetoothGatt == null) {
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}
mBluetoothGatt.disconnect();
}

/**
* After using a given BLE device, the app must call this method to ensure resources are
* released properly.
*/
public void close() {
if (mBluetoothGatt == null) {
return;
}
mBluetoothGatt.close();
mBluetoothGatt = null;
}

/**
* Request a read on a given {@code BluetoothGattCharacteristic}. The read result is reported
* asynchronously through the {@code BluetoothGattCallback#onCharacteristicRead(android.bluetooth.BluetoothGatt, android.bluetooth.BluetoothGattCharacteristic, int)}
* callback.
*
* @param characteristic The characteristic to read from.
*/
public void readCharacteristic(BluetoothGattCharacteristic characteristic) {
if (mBluetoothAdapter == null || mBluetoothGatt == null) {
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}
mBluetoothGatt.readCharacteristic(characteristic);
}

/**
* Enables or disables notification on a give characteristic.
*
* @param characteristic Characteristic to act on.
* @param enabled If true, enable notification. False otherwise.
*/
public void setCharacteristicNotification(BluetoothGattCharacteristic characteristic,
boolean enabled) {
if (mBluetoothAdapter == null || mBluetoothGatt == null) {
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}
mBluetoothGatt.setCharacteristicNotification(characteristic, enabled);

// This is specific to Heart Rate Measurement.
if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
BluetoothGattDescriptor descriptor = characteristic.getDescriptor(
UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG));
descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
mBluetoothGatt.writeDescriptor(descriptor);
}
}

/**
* Retrieves a list of supported GATT services on the connected device. This should be
* invoked only after {@code BluetoothGatt#discoverServices()} completes successfully.
*
* @return A {@code List} of supported services.
*/
public List<BluetoothGattService> getSupportedGattServices() {
if (mBluetoothGatt == null) return null;

return mBluetoothGatt.getServices();
}
}


Connect Arduino Due and HM-10:
HM-10 VCC - Arduino Due 3.3V
HM-10 GND - Arduino Due GND
HM-10 Tx - Arduino Due Rx
HM-10 Rx - Arduino Due Tx


Program on Arduino Due, DueSimHeartRate.ino. It only send dummy heart rate data to serial port.
int LED = 13;
boolean LEDst = false;

byte c;

void setup() {
Serial3.begin(9600);
pinMode(LED, OUTPUT);
digitalWrite(LED, LEDst);
}

void loop() {
delay(1000);
c = (byte)0x00;
Serial3.write(c);
c = (byte)80;
Serial3.write(c);

delay(1000);
c = (byte)0x00;
Serial3.write(c);
c = (byte)81;
Serial3.write(c);

delay(10);
c = (byte)0x00;
Serial3.write(c);
c = (byte)82;
Serial3.write(c);

ToggleLED();
}

void ToggleLED(){
digitalWrite(LED, LEDst = !LEDst);
}


Read More..

Xero keeps global offices connected and nimble using Chromebox for meetings

| 0 comments |


Editors note: It’s been just over a year since we launched Chromebox for meetings, and to celebrate the milestone we’re sharing stories about our customers and their approaches to business, culture and productivity that are bringing them success. In today’s post, online accounting software provider Xero tells how it manages to keep its startup-like efficiency, innovation and feel while expanding globally. To learn more about Chromebox for meetings, join us online at Chrome Live on April 22 and see how companies scale face-to-face meetings across the globe.


Xero was started by several developers nine years ago in an apartment above a coffee shop in Wellington, New Zealand. Today, we have more than 1,000 employees in 15 cities across the U.S., U.K., Australia and New Zealand and provide online accounting software to more than 400,000 global customers. With more than 200 percent five-year average sales growth as of June 2014, our biggest challenge now is managing the fast-paced growth while maintaining our nimble, tech-forward startup culture.

We like to keep work in small groups and move quickly. Our teams work closely on projects even when they’re located in different offices around the world. And since we like to stay on the cutting edge of technology, we’re using Google Apps, which allows us to stay coordinated and productive.

Our pain point in IT was finding a way for teams in different cities and offices to meet and collaborate at the same time. We used a variety of video conferencing technologies, including PCs, HDMI/VGA and projectors. They were difficult to set up, meetings were delayed and productivity suffered. As we continued to grow, this struggle intensified, and we realized that we needed to find a solution fast. We needed to streamline our meeting room setups and get the most out of Hangouts. When we heard about Chromebox for meetings, we jumped at the chance to try it out.

We started with six Chromebox for meetings units. Today, we have nearly a hundred. They’re in every meeting room. We use them for room-to-room conferencing and all hands meetings. The global team uses them to connect every two weeks and the CEO addresses the entire company via Hangout on Air.

Chromebox for meetings allow us to keep things simple. There’s very little infrastructure or wireless connections needed on our side, so no cables necessary. Setup is fast and the integration with Gmail makes joining Hangouts as easy as clicking a button. It’s easy to share documents and work on them together. Then there’s the cost savings. Instead of spending between $40,000 and $60,000 on a video conferencing system, we spent one-tenth of that on a Chromebox and a display.

We may be a larger company now, but we still want to move and act quickly. No matter how large we become, our values align with those of fresh innovative companies that respond rapidly to market demand, customer needs and competition. Thanks to Chromebox for meetings, we can keep the startup feel and agility while growing at breakneck speed.
Read More..

Schools share their tips for success with Chromebooks

| 0 comments |


(Cross-posted on the Google for Education Blog.)

Editors note: As educators in North America begin to prepare for the 2015/16 school year, we thought this would be a good time to pull together the best tips we shared in the last year from schools using Chromebooks. If you’ll be at ISTE 2015 next week in Philly, come see us in the Expo Hall at space #1808. We’ll have a range of Chromebooks to demo and over 50 sessions in our teaching theater. If you won’t be there, you can follow along at #ISTE2015 and @GoogleforEdu for the highlights and news.

Schools across North America are choosing Chromebooks as devices to support teaching and learning. Districts continue to invest in Chromebooks, purchasing more devices as they continue to see success. A few examples: Charlotte-Mecklenburg Schools in North Carolina now use 83,000 devices, Milwaukee Public Schools now use 38,000 and we’re happy to announce that Arlington Independent School District in Texas recently purchased 17,000 Chromebooks. We gathered tips from experienced districts like these to help school leaders prepare for success in the upcoming school year.

1. Understand teachers’ needs
Success begins with asking teachers what they need and truly listening to their answers. New York City Chief Information Officer Hal Friedlander shared the importance of listening to and understanding the needs of teachers. “We treat schools as customers and engage them as advocates of the technology,” Friedlander says. “The educators who live in the community and teach students every day have the best ideas about what they need in technology, not a guy like me who works at the 30,000-foot view.” It’s a logical place to start, but too often people rush this step.

2. Equip staff with advanced training
Fulfilling teachers’ needs also involves training — preparing them with the tools they need to use technology effectively. Back in November, in the midst of dispatching 32,000 Chromebooks, Chesterfield Public Schools Executive Director of Technology Adam Sedlow shared tips for a successful Chromebook deployment, emphasizing the importance of professional development. Interestingly, the district didn’t require every teacher to attend training — instead they created an optional two-day experience called Camp Chromebook. Because the training was crafted to be fun and engaging, the 300 spots filled up in minutes. Once school started, the trained teachers helped their colleagues who couldn’t attend Camp Chromebook.

3. Plan a phased rollout
Over the past year, school leaders have taught us that planning counts. During a panel at Education on Air, three leaders shared what they’ve learned about successful IT rollouts. A common theme: be thoughtful about planning each phase. Hillsborough Public Schools Director of Technology Joel Handler shared that for his New Jersey district, this meant organizing a pilot phase with outstanding teachers who were respected by their peers as instructional leaders. Valerie Truesdale, Chief of Technology, Personalization & Engagement at Charlotte-Mecklenburg Schools, shared that her district used Chromebooks in middle school because data showed them this age group was the place with most need.

4. Encourage risk-taking and innovation
Throughout the year, leaders echoed the importance of encouraging staff to take risks. Joel Handler put it well “if you aren’t failing, then you aren’t taking enough risks.” Outside experts agree. Laszlo Bock, Google’s head of HR, cited the need for risk-taking and failure as one of his four “work rules for school”  lessons included in his recent book "Work Rules." Laszlo shared that “failure actually isn’t failure, it’s the single best learning opportunity we have." Changing culture isn’t always easy, but many educators are doing it well. Ryan Bretag, Chief Innovation Officer at Glenbrook High School District 225 in Illinois, shared a few practical tips on how to create the conditions for change in schools.

What tips did we miss? Share your tips for success with Chromebooks by using #GoogleEdu. If you’re looking for support in preparing to deploy Chromebooks, check out our Google for Education trainer directory. Although Chromebooks are easy to set up and use, we know that many people like to engage a trainer to get started. On our site, you’ll find a range of organizations that make it their full-time job to support schools with edtech.
Read More..

Quota for Calendar API v3 now 10 times higher

| 0 comments |

Posted by Lucia Fedorova, Tech Lead, Google Calendar API

At Google we like to make 10x rather than 10% improvements. In this spirit, we are increasing the default quota for the Calendar API v3 by a factor of ten, to 1 million requests per day. That means your application can support ten times as many users without any need to apply for more quota.

And if you need even more free quota, you can apply for it in the developer console under APIs -> Calendar API -> Quota -> “Apply for higher quota.” We have also streamlined the process of quota handling to make sure you receive your quota as quickly as possible.

A few tips to work efficiently with your quota:

  • Use push notifications instead of polling.
  • If you cannot avoid polling, make sure you only poll when necessary (for example poll very seldomly at night).
  • Use incremental synchronization with sync tokens for all collections instead of repeatedly retrieving all the entries.
  • Increase page size to retrieve more data at once by using the maxResults parameter.
  • Update events when they change, avoid re-creating all the events on every sync.
  • Use exponential backoff for error retries.
Read More..

Reminder ClientLogin Shutdown scheduled for April 20 2015

| 0 comments |

Posted by Ryan Troll, Technical Lead, Identity and Authentication

As mentioned in our earlier post reminding users to migrate to newer Google Data APIs, we would like to once again share that the ClientLogin shutdown date is fast approaching, and applications which rely on it will stop working when it shuts down. We encourage you to minimize user disruption by switching to OAuth 2.0.

Our top priority is to safeguard users’ data, and at Google we use risk based analysis to block the vast majority of account hijacking attempts. Our risk analysis systems take into account many signals in addition to passwords to ensure that user data is protected. Password-only authentication has several well known shortcomings and we are actively working to move away from it. Moving to OAuth 2.0 ensures that advances we make in secure authentication are passed on to users signing in to Google services from your applications.

In our efforts to eliminate password-only authentication, we took the first step by announcing a deprecation date of April 20, 2015 for ClientLogin three years ago. At the same time, we recommended OAuth 2.0 as the standard authentication mechanism for our APIs. Applications using OAuth 2.0 never ask users for passwords, and users have tighter control over which data client applications can access. You can use OAuth 2.0 to build clients and websites that securely access account data and work with our advanced security features like 2-step verification.

We’ve taken steps to provide alternatives to password authentication in other protocols as well. CalDAV API V2 only supports OAuth 2.0, and we’ve added OAuth 2.0 support to IMAP, SMTP, and XMPP. While a deprecation timeline for password authentication in these protocols hasn’t been announced yet, developers are strongly encouraged to move to OAuth 2.0.

Read More..

Basic steps for upgrading source code from SDK 1 5 to 2 1 using Eclipse IDE

| 0 comments |
This is a step by step guide to upgrade one’s source code that was developed for an earlier version of android SDK, as is to work on a new version of SDK installed on your development environment



Pre-requisites:
1. You are using Eclipse IDE - Ganymede
2. You have installed SDK 2.1 on your machine
3. You have upgraded ADT to 0.96 on Eclipse IDE
4. You have pointed the Eclipse IDE to the new SDK 2.1
5. You have changed the default JDK compiler version on Eclipse to 1.6
6. You have created an Android Virtual Device (AVD) that uses the SDK 2.1 / Google API


NOTE: Upgrading SDK and Eclipse installations itself is provided in detail at http://developer.android.com/sdk/index.html & http://developer.android.com/sdk/installing.html


For each project that you have in your eclipse workspace that was written for the earlier version of SDK, you need to do the following for basic upgrade (this does not include the upgrade of APIs that have be deprecated):

Step-by-step guide
1. Right click the project and go to Project Properties -> Android
2. You wil see tha right pane showing the ‘Project Build Target’
3. In this pane you will see either or both: ‘Android 2.1’ & ‘Google APIs’ depending on what you chose to install when upgrading your ADT to 0.96
4. Select Google ‘Android 2.1’ or ‘Google API” whichever is required by your earlier project (note you might have used only Android 1.5 for most projects. You would need Google API only for those projects that use google maps)
5. Then, go to the ‘Project’ menu and click on ‘clean’. Note, this is an optional step. You may have to do this if you get the error ‘Conversion to Dalvik format failed with error 1’.
6. Then, build the project by going to ‘Project’ -> ‘build’
7. You are done. You can now run the earlier Android application using the new SDK 2.1


Read More..

Wyoming strengthens top down communication using Chromebox for meetings

| 0 comments |


Editors note: Today’s guest blogger is Flint Waters, CIO of the State of Wyoming. Since outfitting its conference rooms with Chromebox for meetings, the state spends far less on video conferencing and has transformed how teams communicate and connect with each other and the citizens they serve. See how Wyoming and many other institutions and organizations are using Chromebox for meetings to create a culture of collaboration that translates to greater productivity and better service. 

When I came to work for the State of Wyoming four years ago, five people reported to a contract CIO and operations happened at government speed. The department drew in 300 people from other agencies, and IT teams were assigned to different opportunities. I wanted consolidated IT rather than siloed and needed a culture of urgency and innovation for the state, so we began looking at tools to help us do that. Building on the efforts of the previous administration, the Governor moved all state employees to Google Apps for Work. Today, Chromebox for meetings improves transparency and brings public servants, citizens and elected officials closer together.

Before moving to Chromebox for meetings, we spent $1.5 million a year on a legacy video conferencing system. I felt we weren’t getting enough capability with the technology for the amount of money we were spending. So we phased out all the Tandberg systems and got 178 Chromebox for meetings licenses using a small fraction of our budget.

The cost savings is tremendous, but we’re even more thrilled with the way Chromebox for meetings transforms how we do our jobs and think about public service. Specifically, this technology cuts down on bureaucratic processes and hierarchical protocol. Everyone from the Governor and executives to agency directors use Chromebox for team, cabinet-level and all-hands meetings. Participants can comment and ask questions regardless of their location. We’re also introducing Chromebox for meetings throughout the school system to improve communication between teachers, administrators and students.

With Chromebox for meetings, we’re opening up meetings and making them less formal. We have Chromeboxes in our halls, allowing people to gather around and have impromptu meetings that anybody can join — the closest thing to a watercooler conversation you can get over the Internet. It’s also easier to work together on documents that are viewable on monitors at the stations, making meetings even more interactive and productive.

This technology has also reduced people’s travel time and increased productivity. Wyoming is a large state with a small population and a lot of open road between cities — you can drive for miles on the highway without seeing another car. Chromebox for meetings shortens the distance between offices by allowing people to have a face-to-face interaction without getting in their cars.

I get most excited about the fact that we can be collaborative with Chromebox for meetings. In the future, I’d like to set up an online help desk via live Hangout that’s accessible through the state’s website, so that when web visitors need help, we’d be there to help them right away. We’re connecting people at all levels of government to each other and to the public. With Google tools we can move as fast as our ideas can take us, which is just what we need to bring startup innovation and agility into the halls of government.
Read More..

Get Ready for the Chrome Dev Summit 2015

| 0 comments |

Posted by Paul Kinlan, Chrome Developer Relations

The Chrome Dev Summit is almost here! We’ll kick off live from Mountain View, California at 9:00AM PT this coming Tuesday, November 17th. To get the most out of the event, make sure to check out the speaker list and talk schedule on our site.

Can’t join us in person? Don’t worry, we’ve got you covered! You can tune into the summit live on developer.chrome.com/devsummit. We will stream the keynote and all sessions over the course of the event. If you want us to send you a reminder to tune into the livestream, sign up here. We’ll also be publishing all of the talks as videos on the Chrome Developers YouTube Channel.

We’re looking forward to seeing you in person or remotely on Tuesday. Don’t forget to join the social conversations at #ChromeDevSummit!

Read More..

Get ISO country code for the given latitude longitude using GeoNames Java Client

| 0 comments |
Last example show "Get ISO country code for the given latitude/longitude, using GeoNames Web Service, using HttpURLConnection". GeoNames provide Java Client for GeoNames Webservices to help developers to easily access the geonames web services with java. This post show how to use it in Android.

To use Java Client for GeoNames Webservices in you Android Studio project, you have to download both geonames-1.1.13.jar and jdom-1.0.jar to your local machine. Visit http://www.geonames.org/source-code/ to download.

Then you have to add the JAR modules in your Android Studio Project, refer to the video.


dependencies of :geonames-1.1.13 and :jdom-1.0 will be added in your build.gradle.

Example to get ISO country code for the given latitude/longitude, using GeoNames Java Client:


MainActivity.java
package com.blogspot.android_er.androidgeonames;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import org.geonames.GeoNamesException;
import org.geonames.WebService;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {

EditText latText;
EditText lonText;
Button btnFind;
TextView textResult;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
latText = (EditText)findViewById(R.id.latText);
lonText = (EditText)findViewById(R.id.lonText);
btnFind = (Button)findViewById(R.id.find);
textResult = (TextView)findViewById(R.id.result);

btnFind.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String strLat = latText.getText().toString();
String strLon = lonText.getText().toString();

boolean parsable = true;
Double lat = null, lon = null;

try{
lat = Double.parseDouble(strLat);
}catch (NumberFormatException ex){
parsable = false;
Toast.makeText(MainActivity.this,
"Latitude does not contain a parsable double",
Toast.LENGTH_LONG).show();
}

try{
lon = Double.parseDouble(strLon);
}catch (NumberFormatException ex){
parsable = false;
Toast.makeText(MainActivity.this,
"Longitude does not contain a parsable double",
Toast.LENGTH_LONG).show();
}

if(parsable){
new GeoNamesTask(textResult).execute(lat, lon);
}

}
});
}

private class GeoNamesTask extends AsyncTask<Double, Void, String> {
TextView tResult;

public GeoNamesTask(TextView vResult){
tResult = vResult;
tResult.setText("");
}

@Override
protected String doInBackground(Double... params) {
return queryGeoNames_countryCode(params[0], params[1]);
}

@Override
protected void onPostExecute(String s) {
tResult.setText(s);
}

private String queryGeoNames_countryCode(double latitude, double longitude){
String queryResult = "";

/*
Do not use the demo account for your app or your tests.
It is only meant for the sample links on the documentation pages.
Create your own account instead.
*/
WebService.setUserName("demo");

try {
queryResult = "CountryCode: " + WebService.countryCode(latitude, longitude);
} catch (IOException e) {
e.printStackTrace();
queryResult = e.getMessage();
} catch (GeoNamesException e) {
e.printStackTrace();
queryResult = e.getMessage();
}

return queryResult;
}
}
}


layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout


android_layout_width="match_parent"
android_layout_height="match_parent"
android_padding="16dp"
android_orientation="vertical"
tools_context=".MainActivity">

<TextView
android_layout_width="wrap_content"
android_layout_height="wrap_content"
android_layout_gravity="center_horizontal"
android_autoLink="web"
android_text="http://android-er.blogspot.com/"
android_textStyle="bold" />

<EditText
android_id="@+id/latText"
android_layout_width="match_parent"
android_layout_height="wrap_content"
android_inputType="numberSigned|numberDecimal"
android_hint="Latitude"
android_text="47.03"/>

<EditText
android_id="@+id/lonText"
android_layout_width="match_parent"
android_layout_height="wrap_content"
android_inputType="numberSigned|numberDecimal"
android_hint="Longitude"
android_text="10.2"/>

<Button
android_id="@+id/find"
android_layout_width="match_parent"
android_layout_height="wrap_content"
android_text="find"/>

<TextView
android_id="@+id/result"
android_layout_width="match_parent"
android_layout_height="wrap_content"
android_textSize="28dp"
android_textStyle="bold"/>
</LinearLayout>


Permission of "android.permission.INTERNET" is needed in AndroidManifest.xml
 <uses-permission android_name="android.permission.INTERNET"/>




Read More..

Geometry Math Library for C Game Developers MathFu

| 0 comments |
Today were announcing the 1.0 release of MathFu, a cross-platform geometry math library for C++ game developers. MathFu is a C++ math library developed primarily for games focused on simplicity and efficiency.

It provides a suite of vector, matrix and quaternion classes to perform basic geometry suitable for game developers. This functionality can be used to construct geometry for graphics libraries like OpenGL or perform calculations for animation or physics systems.

The library is written in portable C++ with SIMD compiler intrinsics and has been tested on Android, Linux, OS X and Windows.

You can download the latest open source release from our GitHub page. We invite you to contribute to the project and join our discussion list!

By Stewart Miles, Fun Propulsion Labs at Google*

*Fun Propulsion Labs is a team within Google thats dedicated to advancing gaming on Android and other platforms.
Read More..

Get ISO country code for the given latitude longitude using GeoNames Web Service using HttpURLConnection

| 0 comments |
The GeoNames geographical database covers all countries and contains over eight million placenames that are available for download free of charge. We can get the iso country code for any given latitude/longitude, using GeoNames webservices; api.geonames.org/countryCode?



CountryCode / reverse geocoding

The iso country code of any given point.
Webservice Type : REST 
Url : api.geonames.org/countryCode?
Parameters : lat,lng, type, lang, radius (buffer in km for closest country in coastal areas, a positive buffer expands the positiv area whereas a negative buffer reduces it);
Result : returns the iso country code for the given latitude/longitude
With the parameter type=xml this service returns an xml document with iso country code and country name. The optional parameter lang can be used to specify the language the country name should be in. JSON output is produced with type=JSON
Example http://api.geonames.org/countryCode?lat=47.03&lng=10.2&username=demo 

Important:

  • Do not use the demo account for your app or your tests. It is only meant for the sample links on the documentation pages. Create your own account instead.
  • The parameter username needs to be passed with each request. The username for your application can be registered here. You will then receive an email with a confirmation link and after you have confirmed the email you can enable your account for the webservice on your account page
  • Dont forget to url encode string parameters containing special characters or spaces. (Faq entry on url encoding)
  • ...
read details: http://www.geonames.org/export/web-services.html


Its a example to get the ISO country code of user entered latitude/longitude.


MainActivity.java
package com.blogspot.android_er.androidgeonames;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

EditText latText;
EditText lonText;
Button btnFind;
TextView textResult;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
latText = (EditText)findViewById(R.id.latText);
lonText = (EditText)findViewById(R.id.lonText);
btnFind = (Button)findViewById(R.id.find);
textResult = (TextView)findViewById(R.id.result);

btnFind.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
String strLat = latText.getText().toString();
String strLon = lonText.getText().toString();

new GeoNamesTask(textResult).execute(strLat, strLon);
}
});
}

private class GeoNamesTask extends AsyncTask<String, Void, String> {
TextView tResult;

public GeoNamesTask(TextView vResult){
tResult = vResult;
tResult.setText("");
}

@Override
protected String doInBackground(String... params) {

/*
Do not use the demo account for your app or your tests.
It is only meant for the sample links on the documentation pages.
Create your own account instead.
*/
String queryString =
"http://api.geonames.org/countryCode?lat=" + params[0]
+ "&lng=" + params[1] + "&username=demo";

String s = "";
try {
s = sendQuery(queryString);
} catch (IOException e) {
e.printStackTrace();
s = e.getMessage();
}
return s;
}

@Override
protected void onPostExecute(String s) {
tResult.setText(s);
}


private String sendQuery(String query) throws IOException {
String result = "";

URL searchURL = new URL(query);

HttpURLConnection httpURLConnection = (HttpURLConnection)searchURL.openConnection();
if(httpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK){
InputStreamReader inputStreamReader = new InputStreamReader(httpURLConnection.getInputStream());
BufferedReader bufferedReader = new BufferedReader(
inputStreamReader,
8192);

String line = null;
while((line = bufferedReader.readLine()) != null){
result += line;
}

bufferedReader.close();
}

return result;
}
}
}


layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout


android_layout_width="match_parent"
android_layout_height="match_parent"
android_padding="16dp"
android_orientation="vertical"
tools_context=".MainActivity">

<TextView
android_layout_width="wrap_content"
android_layout_height="wrap_content"
android_layout_gravity="center_horizontal"
android_autoLink="web"
android_text="http://android-er.blogspot.com/"
android_textStyle="bold" />

<EditText
android_id="@+id/latText"
android_layout_width="match_parent"
android_layout_height="wrap_content"
android_inputType="numberSigned|numberDecimal"
android_hint="Latitude"
android_text="47.03"/>

<EditText
android_id="@+id/lonText"
android_layout_width="match_parent"
android_layout_height="wrap_content"
android_inputType="numberSigned|numberDecimal"
android_hint="Longitude"
android_text="10.2"/>

<Button
android_id="@+id/find"
android_layout_width="match_parent"
android_layout_height="wrap_content"
android_text="find"/>

<TextView
android_id="@+id/result"
android_layout_width="match_parent"
android_layout_height="wrap_content" />
</LinearLayout>


Permission of "android.permission.INTERNET" is needed in AndroidManifest.xml
 <uses-permission android_name="android.permission.INTERNET"/>

Next:
GeoNames also provide Java Client for GeoNames Webservices to help developers to easily access the geonames web services with java. Next post "Get ISO country code for the given latitude/longitude, using GeoNames Java Client" show how to use it in Android Studio project.

Related:
- Find addresses of given latitude and longitude using android.location.Geocoder

Read More..

Join us for Education On Air

| 0 comments |


(Cross-posted on the Google for Education Blog.)

Editors note: Educators, read on to learn how you can access new work tools at our free online conference, Education on Air.

When I was a teacher 15 years ago, I loved my students, teammates and the work, but I wished I could work more closely with other teachers and observe their classrooms. Luckily, technology helps us connect more easily, and educators don’t have to feel isolated. We have tools, many of them free, that allow us to share with each other.

We’ll put these tools to work on May 8-9, when we host Education On Air, a free online conference about leading for the future and shaping the classroom today. All you need is a web browser and an Internet connection to join from the best seat in the house — your own. Whether you’re a school leader, teacher, administrator, parent, student or just someone who cares about education, we hope you can join us.
Here’s what we have planned:

Day 1: Leading the future
On Friday, May 8 from 10am-3pm EST, hear from educators, students and business leaders on the topic of leadership in education. Short keynotes and panels will help answer the question “how do we prepare our students for a future that is ever-changing?” Topics will include creating student ownership, leading change and fostering innovation in schools.

Day 2: Shaping the classroom today
On Saturday, May 9, join any of the 90+ sessions, run by educators for educators and held throughout the day across time zones. These sessions are designed to help you immediately in your school. We’ll have tracks for four groups: teachers, leaders, IT and general interest. Topics will include supporting literacy in early learners, successful device deployment and empowering digital citizens.

Even if you can’t attend on the scheduled dates, do register to stay informed. We’ll share the conference schedule and list of speakers in April. We’ll also be recording the sessions, so you can check out anything you missed.

In the meantime, tell us what sessions you want to see by responding to this Tweet or this Google+ post using #GoogleEduOnAir.
Read More..

The skills agenda Preparing students for the future

| 0 comments |
Posted by Zoe Tabary, Editor-Thought Leadership, Economist Intelligence Unit

(Cross-posted on the Google for Education Blog.)

Editors note: During Education on Air, Google’s free online conference May 8-9, well be discussing how we can help prepare our students for their future. To investigate this issue in more depth, we commissioned The Economist Intelligence Unit to conduct global surveys of senior business executives, teachers, and students, ages 11-17 and 18-25. Editor Zoe Tabary will share the findings during the kickoff session for Education on Air, but here’s a preview.

As technology becomes more pervasive, traditional trades disappear and the world of work becomes more globalised, the skills considered to be valuable for the future are shifting.

Problem solving, team working, and communication (a trifecta commonly known as “21st century skills”) are the most-needed skills in the workplace, according to our recent surveys of business executives, students and teachers. Digital literacy and creativity— and the latter’s close relative, entrepreneurship—are expected to grow more important in the next three years.

Business survey: Which of the following would you say are the most critical skills for employees in your organisation to possess today? Select up to three.
Source: Economist Intelligence Unit
Incorporating these skills in existing education systems, however, is far from straightforward. Teachers report that lack of time in a strictly regulated curriculum is the biggest barrier to teaching 21st century skills, while digital literacy is one of the areas where they would most like further training (31%).

Meanwhile, the young have become more comfortable learning on their own, especially on topics of interest: 62% of teachers report that students are becoming more independent and able to gather information themselves. As one expert interviewed for the report puts it, “young people have an innate affinity with technology, and it would be a shame not to utilise that effectively”.

Countries all over the world are devising new innovative approaches to teaching and learning based on these changing trends. For example Singapore’s ‘Teach less, learn more’ initiative aims to help schools and teachers to engage more effectively with students, so that they connect with what they are they are learning and how and why they are learning it.

To hear more about the full research findings, register for the free online conference.
Read More..