Showing posts with label Software News. Show all posts

Internet access is a vital healthcare tool


When Mark Zuckerbergannounced a new private sector initiative last month to make affordable internet access available to people in developing countries, he breathed new life into a long-simmering debate within the global development community - what is the value of technology in societies suffering from urgent social, economic and humanitarian challenges? Familiar voices of criticism have been heard, pointing out that in communities lacking food, clean water and medicine, getting people online is hardly a priority.

Some of these critics are trusted friends and colleagues within the healthcare and humanitarian sector. But as someone with over thirty years of field experience in developing countries, I humbly disagree with them. Achieving greater internet access in developing countries can save lives, transform communities and revolutionize the quality and provision of healthcare for hundreds of millions of people today. Not only should connectivity be part of the global development agenda, it must be recognized as a vital enabler of the entire agenda.

There are several important reasons for this.

First, better tools for diagnosis and communications can lead to differences in health outcomes. One group of students at Stanford, through our Liberation Technology course, recently produced a mobile app to improve clean water delivery in a large slum in Kenya, allowing users of the app to locate the cheapest prices for water in their community, comment on quality and identify sources of water that make people ill. Another app for community workers targets cholera treatment in areas without any physicians. While many of us in the developed world use our mobile phones for triviality, in developing countries they can be the first line of defense in a public health emergency. This isn't about cat pictures or Angry Birds - mobile phones can be the difference between life and death.

Second, the internet has a vital role to play in supporting the broader socioeconomic changes in developing countries necessary to improve quality of life. Disease, malnutrition and poor health are products of poverty, and countries that struggle with these challenges need jobs and growth as much as they need the right drugs and treatments. According to McKinsey, the internet accounted for around 21 percent of GDP growth in developed countries over the past five years, and in countries in economic transition the internet already accounts for an average of 1.9 percent of GDP. But according to the International Telecommunication Union, only around 16 percent of people in Africa are online today. To unlock the full economic potential of the web, Africa must be fully connected.

Third, the internet provides an amazing opportunity today to spread greater knowledge that can help save lives and transform approaches to global health. On the simplest level, the internet can be used by local physicians, community workers and ill patients in developing countries to find information and resources cheaper and faster. Recipes downloaded online for homemade oral rehydration salts that prevent dehydration and death from diarrhea can be just as effective as more expensive imported vaccines. More complex education projects have huge potential for transforming the quality of health infrastructure in developing countries. The Fogarty International Center at the National Institutes for Health is running one initiative that develops electronic training for researchers in poorer communities, demonstrating protocols for conditions such as diabetes, HIV and malaria.

Achieving access to clean water, food and healthcare are essential priorities for developing countries. Connectivity isn't a substitute for these things. But no one suggested it should be. All the evidence today suggests that connectivity is an enabler of the broader development agenda. Today, the internet can not only help mean the difference between eating and starving, sickness and health, or life and death, but can help defend human rights, improve governance, empower the poor and promote economic development.

As we work to continue advancing global health and humanitarian initiatives, let's move beyond the false notion that we must face a choice between "serious" development goals and connecting the world. Getting the world online is a serious development objective. 
Sunday, September 15, 2013
Posted by Unknown

Meet Oyster: The Netflix For Ebooks


Netflix has undoubtably changed the landscape of TV and movie watching. Established in 1997, the company started out delivering DVDs, and now, as we all know very well, many a TV show/movie buff cannot imagine having a life without streaming media from Netflix. While its services are not available in every single country in the world, it has subscribers in hordes where it’s available. Hence, to be compared to Netflix is, well, kind of a big deal.
And that’s what the new iOS app Oyster is being compared to.

Oyster is making waves in the ebook scene, what with its current offer of more than 100,000 ebooks being made available to members for a really reasonable price of $9.95 a month.

If you’re an avid book reader like I am, then you probably headed over to Oyster’s web site as soon as you read that previous statement. I wouldn’t blame you! If you did, you also probably know now that the system is currently in private beta, and you can only request inclusion at the moment.

While that is a bummer, to be sure, the mere idea of being able to read as many books as you want in a month for that fee is too enticing to pass up on. Oh, did I already say that they have a collection of more than 100,000? And, for sure, that is only set to expand as time goes by. No wonder Oyster is already being compared to Netflix!

With the way technology is being used in daily life today, it is only to be expected that the ebook service has more than its massive collection to offer. It also has its own recommendation engine, which takes a look at your reading habits and preferences to suggest books that you may want to read. There is also, naturally, the social aspect, which connects you and your friends. And, for those who have privacy concerns, there is an option to go anonymous.

Oyster is still in its very early stages, but I suspect we’ll all be using it when it opens to the public.
Posted by Unknown

Developers Get Early Access To Windows 8.1


Microsoft have given in to developers and allowed them to have early access of Windows 8.1. The company had announced that they would receive the new release at the same time as everyone else but programmers raised an outry, as normally certified developers get early access to new versions.

However, Microsoft has now allowed developers to start testing and developing with the new version. This will allow them to make sure their own applications work with the updated Windows 8.1.

The developer community’s mood surrounding Microsoft’s change in how it released Windows 8.1 was an unhappy one  due to the fact that changes had been made to the appearance and the way programs can work with it.

One of the main changes in Windows 8.1 will be the partial reinstallation of the start button. Windows 8 was originally designed with touchscreen devices in mind so the start button was less prominent. In the new version, the user will be able to decide whether to stick to the touchscreen display or use the more familiar desktop control system, with a start button of course.

Whether these changes will change the mood surrounding Windows 8, we will have to wait and see.  It is due for release to the public on October 18.

Posted by Unknown

Groupon Acquires Blink App


We all love a great deal, don’t we? And online deals just seem better (maybe that’s psychological?).  Whether it’s eating out, buying furniture or even travel, there are bargains galore to be had out there and according to their website, Groupon is such a bargain store.

They describe themselves as a city guide with a twist! Since the company was founded in 2009, their team has taken pride in handpicking deals to direct people to the best things to do, see, eat and buy at spots near where you reside as well as “unearthed gems” further afield. The company wants you think of them as a tool of discovery, they say: “like a compass with impeccable taste”.

So a new buyout of a great travel app seems like a good idea for all would be jetsetters.  The money saving/discount company Groupon has acquired Blink Booking, the Madrid-based startup behind last-minute hotel booking app Blink.  The deals service announced the acquisition on Monday. Unfortunately we do not have any further insight into the deal as the terms of the business venture were not immediately disclosed.

Blink was founded back in 2011, and raised $2.5 million in funding only last year, which it then used to expand the company’s operations. The app currently offers services for last-minute bookings for hotels in only 184 cities across eight countries, according to the company’s website. The app, which has been downloaded more than 600,000 times to date, may give Groupon more of a foothold in the European sector.  Aaron Cooper, senior vice-president of Groupon Getaways, said in a statement “The combination of a fantastic mobile app, same-day inventory management for properties and a team that is obsessed with mobile and last-minute travel will help us further expand our travel business as the go-to destination for great deals on great places to stay”. The Blink app will currently continue to operate separately, but will be renamed “Blink by Groupon.”  The app is available on both iOS and Android OS.

Posted by Unknown

C/C++ pitfalls for Java developers

Java and C/C++ have concepts that are similar enough to get an inexperienced Java developer confused. 

Type conversion rules


A well known and often used pattern is simultaneous assignment of an expression to a variable and its comparison with another value.
1
2
3
if((a = b) != c) {
  // do something
}
In both Java and C would this code would have the same behaviour. The problem arises when a parenthesis is misplaced, resulting in an assignment of a boolean expression to a:
1
2
3
if((a = b != c)) {
  // do something
}
Since a boolean expression can be converted to an integer and the assignment expression is contained in a parenthesis, the compiler may even not ensue a warning. For Java this code isn’t legal anymore while perfectly fine in C. The error strikes most hard when the result of the comparison, namely 0 or 1, is a valid value. A good example is a call to socket(), that may return 0 as a file descriptor for stdin. The probably simplest solution to this problem is separating the assignment from comparison – even at the cost of a temporary variable.

Memory management


The behaviour of standard containers is sometimes combined with incomplete/misunderstood behaviour of pointers. An example:
1
2
3
4
5
6
7
8
9
10
11
12
class A {}
class B
{
  public:
  void foo()
  {
    std::vector<A*> theContainer;
    for(int i = 0; i < 100; i++) {
      theContainer.push_back(new A());
    }
  }
}
Every call to foo() would result in a memory leak due to not deleted A’s. When the vector is destructed, a destructor of each contained item is called. For pointers and other scalar types this is a no-op, resulting in missing call to the destructor of pointed to class. A solution to this problem could be the use of smart pointers wrapping the actual pointers or an explicit destruction of pointed to objects before the vector goes out of scope.

Deterministic destruction


Coming from language with automatic memory management there is some uncertainty when it comes to the order of destruction when multiple objects leave the scope. Consider this example:
1
2
3
4
5
6
7
8
9
void foo()
{
  std::lock_guard<std::mutex> lock(mutex);
  std::ifstream input ....
 
  //some operations
 
  //??
}
In this case the stream is destructed before the lock, guaranteeing that the stream is destructed before the execution reaches the destructor of the lock. This pattern is exploited by the RAII.

Exception handling


This is my personal favourite. Here is a little quiz: what is printed to the screen?
1
2
3
4
5
6
7
try {
  throw new SomeException();
} catch (SomeException& e) {
  std::cout << "first" << std::endl;
} catch (...) {
  std::cout << "second" << std::endl;
}
As some may already have guessed from the question: the answer is “second”. To make the code work, the reference in the catch block has to be replaced by the pointer. Another, and probably better alternative is to create the exception on the stack. The reason behind this mistake is that in java any thrown object is constructed with new. Explicit hints or experience are required to avoid such flawed exception handling.

Saturday, September 14, 2013
Posted by Unknown

Popular Post

Total Pageviews

Powered by Blogger.