Spotify map compiles playlists from musical tastes around the world
If you’re curious what kind of music folks in other parts of the world are listening to, Spotify now offers a handy tool that compiles just that. The streaming service gathers info from popular tracks around the globe and compiles them into playlists. Rather than list them in a boring in-app search, it plots them out on an interactive map for quick visual reference. This means that when you click on Durham, North Carolina, for example, you’ll be greeted with a collection of tracks the folks there are listening to on the regular. Mandolin Orange and Future are quite popular in that part of NC, in case you were wondering. As you might expect, once you queue up a playlist in the app, you can add any notable findings to your personal collection for future use. Spotify says it updates the lists about twice a month, and each time it does, it sorts through 20 billion listener and song relationships.
Filed under: Internet, Software
Source: Spotify Insights
Writing your first Android game using the Corona SDK
The most popular category on the Google Play Store has always been Games. Although we all probably use key productivity apps like a web browser, an email client, and an instant messaging app, gaming still remains an important part of the mobile experience. So it is no surprise that many people who want to learn to develop for Android want to start by making a game. Also, let’s be honest, writing a game is a whole load more fun than developing a productivity app!
The official language of Android is Java and the official development environment is Android Studio. If you want to look into Java then I suggest our Java basics tutorial, and if you want to learn how to write an app using Android Studio then I suggest you check out our tutorial on writing your first Android app. However Java and Android studio aren’t the only ways to develop for Android. You can find an overview of the available languages and SDKs in our guide: I want to develop Android Apps – What languages should I learn?

One of the SDKs mentioned in the programming languages guide is Corona, a third party SDK designed primarily for writing games. Instead of Java, Corona uses Lua, a fast scripting language that is easy to learn yet powerful. However, Corona isn’t the only mobile gaming SDK that uses Lua, other well known examples include Cocos2d-X, Marmalade, and Gideros.
Download and install
To get started with Corona you are going to need to download and install the SDK. Go to the Corona website and hit the download button. You will need to create an account (which is free) before you can download the kit. If you want to build an actual .apk file rather than just running your program in the emulator, you will need to install Java 7, however you won’t need to install the Android SDK. To install the Java 7 Development Kit go to Oracle’s website, look for the section called “Java SE Development Kit 7u79″ and download the version for your PC.
Once you have installed Corona you need to activate it. This is a one-time process, which is free. Start the Corona Simulator and agree to the license. Enter in the email address and password which you used for the download, and click Login.
Starting the project
From within the Corona Simulator click on “New Project.” Enter a name for your app in the “Application Name:” field and leave the rest of the settings at their defaults. Click “OK.”

Three windows will now appear. The first two are the Corona Simulator and the Corona Simular Output. Corona will also open a file explorer window showing the files for your project.
The majority of the files (some 23 of them) in the project directory are for the application icon! The most important file for us right now is main.lua, as this is where we will write the code for our app.
Introduction to Lua
Before we get into writing the code, we need to make a whistle-stop tour of Lua. The Lua interpreter (remember this is a scripting language, not a compiled language) is available for Windows, OS X, and Linux. However it is built-in to Corona, so at this time you don’t need to install anything extra. The easiest way to play with Lua is to use the online live demo.
You can find lots of good tutorials about Lua online and you should take a look at the Lua Reference Manual, Programming in Lua, The.Lua.Tutorial, and The Tutorials Point Lua Tutorial.
Here is a small Lua program which will show you some of the key features of Lua:
local function doubleIt(x)
return x * 2
end
for i=1,10,1 do
x = doubleIt(i)
if(x == 10) then
print("ten")
else
print(doubleIt(i))
end
end
The code above shows three important Lua constructs: functions, loops, and if statements. The function doubleIt() is very simple, it just doubles the passed in parameter x.
The main code is a for loop from 1 to 10. It calls doubleIt() for each iteration. If the return value is 10 (i.e. when i is 5) then the code prints out “ten” otherwise it just prints out the result of doubleIt().

If you have any coding experience then the example code should be easy enough to follow. If you are looking to learn some basic programming then I suggest you use some of the resources linked above to hone you skills.
Writing the game
Writing basic programs in Corona is simple. You only need concern yourself with one file, main.lua, and let Corona do all the heavy lifting. The game we are going to write is a simple “tap” game. A balloon or a bomb will fail down the screen. If the player taps on the balloon they score a point, they tap on a bomb then the score will divided by 2, as a penalty. To write the code you need to edit main.lua. You can do this in any text editor.
The Corona SDK has a built-in 2D physics engine, which makes building games very easy. The first step in writing the game is to initialize the physics engine:
local physics = require( "physics" ) physics.start()
The code is fairly self-explanatory. The module physics is loaded and initialized, it is assigned to the variable physics. To enable the engine physics.start() is called.
Next we create some helpful variables which will be useful not only for this simple game, but also for more complex games. halfW and halfH hold the values for half of the screen width and half of the screen height:
halfW = display.contentWidth*0.5 halfH = display.contentHeight*0.5
The display object is a pre-defined object which Corona makes globally available.
Now comes the first step that actually makes something happen on screen:
local bkg = display.newImage( "night_sky.png", halfW, halfH )
As well as properties like contentHeight and contentWidth, the display object also has lots of useful functions. The newImage() function reads an image file (in this case a .png) and displays it on the screen. Display objects are rendered in layers, so since this is the first image we are putting on the screen then it will always be the background (unless the code explicitly does something to change that). The parameters halfW and halfH tell Corona to place the image in the middle.
At this point you can run the code in the emulator and see the background image. If you save the file then the emulator will notice that the file has changed and offer to relaunch. If that doesn’t happen then use File->Relaunch.
Since the user will score points for tapping on balloons, we need to initialize a score variable and display the score on the screen:
score = 0 scoreText = display.newText(score, halfW, 10)
The score will be kept in the imaginatively named variable score, and scoreText is the object which displays the score. Like newImage(), newText() put something on the screen, in this case text. Since scoreText is a global variable then we can change the text at any point. But we will get to that soon.
You can relaunch the emulator and see the score of 0 display towards the top of the screen.
Left: Just the background. Right: Background and score.
Now comes something a bit more tricky, but don’t worry I will explain it line by line:
local function balloonTouched(event)
if ( event.phase == "began" ) then
Runtime:removeEventListener( "enterFrame", event.self )
event.target:removeSelf()
score = score + 1
scoreText.text = score
end
end
The code above defines a function called balloonTouched() which will be called every time a balloon is tapped. We haven’t yet told Corona to call this function every time the balloon is tapped, that will come later, but when we do this is the function that gets called.
Tap or touch events have several stages, many to support dragging. The user puts their finger on an object, this is the “began” phase. If they slide their finger in any direction, that is the “moved” phase. When the user lifts their finger from the screen, that is the “ended” phase.
The first line of balloonTouched() checks we are in the “began” phase. We want to remove the balloon and increment the score as soon as posible. If the function is called again for other phases like “ended” then the function does nothing.
Inside the if statement are four lines of code. Let’s deal with the last two first, as they are simpler. score = score + 1 just increments the score by one and scoreText.text = score changes the score text on the screen to reflect the new score. Remember how I said that scoreText was global and could be accessed anywhere, well that is what we do here.
Now for the first two lines. Once a balloon or bomb falls of the bottom of the screen it still exists in the app’s memory, it is just that you can’t see it. As the game progresses the number of these off-screen objects will steadily increase. Therefore we need to have a mechanism which deletes objects once they are out of sight. We do that in a function called offscreen, which we haven’t written yet. That function will be called once per frame during the game. Once a balloon has been tapped then we need to delete it and remove the call that checks if the balloon has gone offscreen.
The line event.target:removeSelf() deletes the balloon. When a touch event occurs one of the parameters of the listener function is the event parameter. It tells the function about the event and what type of event it is, e.g. event.phase. It also tells us which balloon was tapped, event.target. The removeSelf() function does what it says it does, it deletes the object (in this case a balloon).
The line before that removes the “enterframe” listener, which is the function that is called every frame to see if the balloon has fallen off the bottom of the screen. We will look at that in more detail when we come to write the offscreen listener function.
So, to recap. balloonTouched() checks that this is the beginning of the touch sequence. It then removes the “enterframe” listener, which is the function that is called every frame to see if the balloon has fallen off the bottom of the screen. It then deletes the balloon, increments the score and displays the new score.
That was for balloons, now we need something similar for bombs:
local function bombTouched(event)
if ( event.phase == "began" ) then
Runtime:removeEventListener( "enterFrame", event.self )
event.target:removeSelf()
score = math.floor(score * 0.5)
scoreText.text = score
end
end
As you can see the code is very similar with the exception that rather than incrementing the score, the score is multiplied by 0.5 (i.e. divided by 2). The math.floor() function rounds down the score to the nearest integer. So if the player had a score of 3 and tapped a bomb then the new score would be 1, and not 1.5.
I mentioned the offscreen() function earlier. This function will be called every frame to check if an object has gone off screen. Here is the code:
local function offscreen(self, event) if(self.y == nil) then return end if(self.y > display.contentHeight + 50) then Runtime:removeEventListener( "enterFrame", self ) self:removeSelf() end end
In computing there is a situation known as a race condition. This is where two things are going to happen but one might happen first, or sometimes the other might happen first. It is a race. Some race conditions are unseen because one thing always seems to happen first, but they can cause interesting bugs in that one day, under the right conditions, the other thing happens first and then the system breaks!
There is a race condition in this simple game because two things can happen very close to each other: a balloon being tapped and the offscreen() function being called to see if the balloon has gone off the screen. The result is that the code to delete the balloon can be called and then the offscreen() function is called (which happens like 30 times per second). To get around this odd sequence of events the offscreen() function needs to check if the y value of the object is nil (null) or not. If it is nil then it means that the object has been deleted already, so move along, these aren’t the droids we are looking for.
If the object is still in play, then check its position, if it has gone 50 pixels off the screen then delete it and remove the listener so that the offscreen() function won’t be called again for this object. The code to make sure that offscreen() is called every frame is part of the next section of code.
The whole premise of this game is that new balloons or bombs will continue to drop down the screen. Therefore we need a function which will create either a new balloon or a new bomb:
local function addNewBalloonOrBomb() local startX = math.random(display.contentWidth*0.1,display.contentWidth*0.9) if(math.random(1,5)==1) then -- BOMB! local bomb = display.newImage( "bomb.png", startX, -300) physics.addBody( bomb ) bomb.enterFrame = offscreen Runtime:addEventListener( "enterFrame", bomb ) bomb:addEventListener( "touch", bombTouched ) else -- Balloon local balloon = display.newImage( "red_balloon.png", startX, -300) physics.addBody( balloon ) balloon.enterFrame = offscreen Runtime:addEventListener( "enterFrame", balloon ) balloon:addEventListener( "touch", balloonTouched ) end end
The first line of the function decides where the balloon will drop from on the x plane. If the balloon or bomb always dropped in the middle, that won’t be very interesting! So startX is a random number between 10 percent and 90 percent of the screen width.
Next a random number is picked between 1 and 5. If the number is 1 then a bomb will be dropped. If it 2, 3, 4 or 5 then a balloon will be dropped. This means that bombs will be dropped around 20 percent of the time.
The bomb and balloon code are quite similar. First the image (either a bomb or a balloon) is displayed using newImage(). Its x position is that of startX while its y position is set to -300, i.e. off the top of the screen. The reason for that is that we want the object to fall from outside the screen area into the visible area and then off the bottom. Since we are using the 2D physics engine it is good to give the object a bit of an initial distance to fall, so it can gain some speed.
The call to physics.addBody() takes the image loaded by newImage() and turns it into an object in the physics engine. This is very powerful. Any image file can be made into a body which responds to gravity and collisions just by calling physics.addBody().
The last three lines of the bomb or balloon code set up the listeners. Setting the enterFrame property tells Corona which function to call every frame and the call to Runtime:addEventListener() sets it up. Lastly the call to balloon:addEventListener() tells Corona which function to call if the bomb or balloon is touched.
And now the game is almost complete. We just need two more lines of code:
addNewBalloonOrBomb() timer.performWithDelay( 500, addNewBalloonOrBomb, 0 )
The first line makes the very first bomb or balloon fall by explicitly calling addNewBalloonOrBomb(). The second line sets up a timer which will call addNewBalloonOrBomb() every half a second (500 milliseconds). This means that a new balloon or bomb will fall every half a second.

You can now run the game in the emulator.
Here is the complete listing for main.lua, the full project source code for this game can be found here on GitHub.
-----------------------------------------------------------------------------------------
--
-- Falling balloon and bomb game
-- Written by Gary Sims for Android Authority
--
-----------------------------------------------------------------------------------------
-- Start the physics engine
local physics = require( "physics" )
physics.start()
-- Calculate half the screen width and height
halfW = display.contentWidth*0.5
halfH = display.contentHeight*0.5
-- Set the background
local bkg = display.newImage( "night_sky.png", halfW, halfH )
-- Score
score = 0
scoreText = display.newText(score, halfW, 10)
-- Called when the balloon is tapped by the player
-- Increase score by 1
local function balloonTouched(event)
if ( event.phase == "began" ) then
Runtime:removeEventListener( "enterFrame", event.self )
event.target:removeSelf()
score = score + 1
scoreText.text = score
end
end
-- Called when the bomb is tapped by the player
-- Half the score as a penalty
local function bombTouched(event)
if ( event.phase == "began" ) then
Runtime:removeEventListener( "enterFrame", event.self )
event.target:removeSelf()
score = math.floor(score * 0.5)
scoreText.text = score
end
end
-- Delete objects which has fallen off the bottom of the screen
local function offscreen(self, event)
if(self.y == nil) then
return
end
if(self.y > display.contentHeight + 50) then
Runtime:removeEventListener( "enterFrame", self )
self:removeSelf()
end
end
-- Add a new falling balloon or bomb
local function addNewBalloonOrBomb()
-- You can find red_ballon.png and bomb.png in the GitHub repo
local startX = math.random(display.contentWidth*0.1,display.contentWidth*0.9)
if(math.random(1,5)==1) then
-- BOMB!
local bomb = display.newImage( "bomb.png", startX, -300)
physics.addBody( bomb )
bomb.enterFrame = offscreen
Runtime:addEventListener( "enterFrame", bomb )
bomb:addEventListener( "touch", bombTouched )
else
-- Balloon
local balloon = display.newImage( "red_balloon.png", startX, -300)
physics.addBody( balloon )
balloon.enterFrame = offscreen
Runtime:addEventListener( "enterFrame", balloon )
balloon:addEventListener( "touch", balloonTouched )
end
end
-- Add a new balloon or bomb now
addNewBalloonOrBomb()
-- Keep adding a new balloon or bomb every 0.5 seconds
timer.performWithDelay( 500, addNewBalloonOrBomb, 0 )
Next steps
The next step is to play the game on a real Android device. To build an .apk file click on File->Build for Android… and fill out the fields. The result will be a .apk file which you can copy onto your device and then install. You will need to ensure that you have configured your device to allow installation of app from unknown sources. Amazon has some good documentation on this as you also need to set this to install the Amazon Appstore. Corona also has a guide on how to sign, build, and test your app on Android devices.

With the game successfully installed on your device the next thing to do is improve the game. For example, why not try adding a “pop” or “bang” sound everything a balloon or bomb is tapped. Corona has an API for that: media.playEventSound().
Or why not trying adding a third type of object, say a super boost which doubles the current score, or how about some background music?
Wrap-up
Writing games with Corona is quite straight forward because the SDK handles things like OpenGL and it includes a built-in 2D physics engine. Also Lua is easy to learn and shouldn’t be hard for anyone with even the minimum of programming experience. The Coronalabs website has lots of documentation including lots of guides and tutorials.
In less than 100 lines of code we have a working game. OK, it isn’t going to win any prizes, however it shows the power and flexibility of the Corona SDK.
Walmart CEO has a problem with Amazon’s ‘Prime Day’ sale, and that’s good news for shoppers
To celebrate its 20th birthday, Amazon is hosting a gigantic ‘Prime Day’ sale on Wednesday, July 15th that will offer Prime customers Black Friday-like savings for just 24 hours. While this may be an enticing promotion for current Prime customers, folks who don’t subscribe to Amazon’s premium shopping service will need to pay a $99 fee in order to become a member and take advantage of the savings.
If you’re not interested in the Prime Day sale or aren’t a member of the shopping service, that’s okay, because there might be another way to save big on some quality electronics over the next week or so. President and CEO of Walmart.com Fernando Madeira voiced his opinion earlier this morning regarding Amazon’s sale, claiming that there is “no rhyme or reason for paying a premium to save.” The opinionated blog post didn’t call out Amazon specifically, but it’s clear that Madeira was taking a clear shot at the online retailer.
From the blog post:
If you’ve shopped Walmart.com, you’ll know that every day is a special day where everyone has access to the same low prices we offer. We mean everyone: you, your neighbor, your boss, your best friend … all of whom are looking for the best price on the things they want and need. We’ve heard some retailers are charging $100 to get access to a sale. But the idea of asking customers to pay extra in order to save money just doesn’t add up for us.
This bickering isn’t just fun to watch unfold, it’s also great news if you’re looking to score some great deals over the next few days. Beginning this week, Walmart customers will see thousands of discounts throughout the site along with “some special atomic deals.” The company is also decreasing its free shipping threshold on its website from $50 to $35, which is the same as the free shipping rate for Amazon’s non-Prime customers.
We don’t have a ton of details concerning Walmart’s sale, so we’re not entirely sure how long shoppers will be able to save. We’ll let you know when more details roll in.
Remember, Prime Day begins this Wednesday, and Walmart’s savings are going on right now. If you’re interested in checking out the retailer’s Dare to Compare promotion, head to this link for more information.
Samsung’s Galaxy Note 5 is rumored to sport 4GB of RAM, according to a new report
The rumored Galaxy Note 5 is said to feature 4GB of LP-DDR4 RAM, according to sources close to SamMobile. An earlier report claimed that the Note 5 will feature an Exynos 7422 CPU, Samsung’s first all-in-one (ePoP) solution.
While Samsung may include 4GB of RAM in the Galaxy Note 5, it won’t help the performance issues Samsung’s devices are known to have, thanks to poor optimization of the TouchWiz UI. The device may look bigger and badder on the outside, but there are some serious software tweaks that need to happen to see the true affects of including 4GB of RAM.
Perhaps the most interesting thing about the Galaxy Note 5 is the this single-chip (ePoP) solution, said to combine a 64-bit Octa-core CPU, GPU, RAM, internal storage, and the Shannon 333 LTE modem all under a single package,
Keep in mind that these are all rumors and nothing has been confirmed by Samsung itself yet. We’ll certainly hear something more official as we get closer to the Galaxy Note 5’s release window, but for now, it’s best to take information with a grain of salt.
source: SamMobile
Come comment on this article: Samsung’s Galaxy Note 5 is rumored to sport 4GB of RAM, according to a new report
AT&T is pushing a 146MB update to the Samsung Galaxy S6 Active
The AT&T Samsung Galaxy S6 Active is getting its first update since it launched last month. The update is 146MB in size, and will be coming to S6 Active owners over-the-air over the next couple of days.
This update doesn’t bring Android 5.1 to the device. In fact, after installing, the Android version stays at 5.0.2, but you will see new baseband version G890AUCU2AOF3 and build number LRX22G.G890AUCU2AOF3.
AT&T hasn’t included a change log, so we’re not sure what is exactly included in this update. To manually check for the new firmware, head into Settings > About Device > Software Updates > Check For Updates.
Has anyone received the new update yet?
source: AT&T
via: Android Central
Come comment on this article: AT&T is pushing a 146MB update to the Samsung Galaxy S6 Active
European right to be forgotten forces Google to remove over a million links
Since the passage of the controversial European “right to be forgotten” law, Google has received a whopping 281,000 requests to stop 1.1 million web links from appearing in its search records. And the search engine giant has already granted 602,000 of the deletion request.
What makes it alarming is that some of these requests come from killers, rapists, terrorists and former outlaws, who want to portray a clean image on the internet. However, most requests come from people who want to hide personal embarrassing records such as goofy social networking site details and dating site profiles.
If we look at the deletion records granted by Google, most people wanted to remove links redirecting to their Facebook profiles. Profile Engine is another networking website, that seems to carry embarrassing detail about people, and then there is Google’s own, YouTube, from which people want to remove some links.
If we look at the statistics nationwide, Google received requests to remove over 197,000 links from French nationals, while Britons requested around 138,576 links to be taken down. Google agreed to remove 63 percent links requested by the UK citizen in comparison to 52 percent of those requested by the French.
When Google removes a link, the content doesn’t get removed from the internet, but it becomes extremely difficult for users in Europe to find that article.
Last month, a French privacy watchdog, the CNIL, had given an ultimatum to Google to extend the right to be forgotten regulations worldwide or be ready to face sanctions.
If Google complies to that, it will be almost impossible to find articles or content related to those search results.
Source: Mail Online
Come comment on this article: European right to be forgotten forces Google to remove over a million links
Best O2 Android Phones (UK)

O2 has undergone the largest array of changes in the UK carrier market and is set to be purchased by its rival Three. Although there may be big changes ahead, the company has built a reputation for itself with reward and loyalty schemes for its customers, ranging from free Wi-Fi hotspot access to priority tickets to events around the country.
Following our best phone reviews of EE, Vodafone and Three, it is time to take a look that the best O2 Android phones on the market right now.
#1 – Samsung Galaxy S6
The Galaxy S6 seems to have been coming down in price in the UK recently and O2 has one of the best deals going right now, with the 32GB model starting at just £33.50 per month with £0 down.
That will net you a cutting edge octa-core processor, 3GB of RAM, a 16 megapixel camera, and a cutting edge QHD AMOLED display. Certainly some of the best smartphone technology around right now.
O2 also all the Galaxy S6 Edge variants in stock too, but with a more expensive £46.00 with £0 down, reaching £64 per month with £19.99 up front for the 128GB model.
Specs
- 5.1-inch Super AMOLED display with 1440×2560 resolution
- 2.1GHz Samsung Exynos 7420 SoC
- 3GB of RAM
- 32/64/128GB internal storage
- 16MP rear camera, 5MP front camera
- Non-removable 2,550mAh battery
- 143.4 x 70.5 x 6.8 mm, 138g
- Black Sapphire, Gold Platinum or White Pearl colours
- Android 5.1 Lollipop
Read more
#2 – LG G4
O2 also has the LG G4 stocked at an equally reasonable price as the S6. As an added bonus, the G4 is one of the few flagship smartphones to retain both a microSD card slot for additional storage space and a replaceable battery.
Packing LG’ latest top of the line curved QHD LCD display and cutting edge camera technology, which features a f/1.8 aperture and laser auto focus technology, the G4 is a flagship smartphone right at the top of the market.
The LG G4 is only stocked with 32GB of memory and will cost £33.50 per month with £0 up front.
Specs
- 5.5-inch LCD display with 1440×2560 resolution
- 1.8GHz Qualcomm Snapdragon 808 SoC
- 3GB of RAM
- 32GB internal storage with support for 128GB microSD card
- 16MP rear camera, 8MP front camera
- Removable 3,000mAh battery
- 149.1 x 75.3 x 8.9 mm, 154g
- Metallic Grey, Red Leather
- Android 5.1 Lollipop
Read more
#3 – Samsung Galaxy Note 4
Although more expensive than the S6, the Note 4 offers a little more screen real estate and S Pen features for those who use their smartphones as a productivity tool.
The Note 4 features compelling high-end specifications, including a 5.7-inch QHD AMOLED display, 3GB of RAM, a 16 megapixel camera and a microSD card slot. Certainly still a match for the selection of 2015 flagship smartphones.
O2 is offering the Note 4 for £42.50 per month with £0 up front, which comes with 32GB of internal memory.
Specs
- 5.7-inch Super AMOLED display with 1440×2560 resolution
- 2.7GHz Qualcomm Snapdragon 805 SoC
- 3GB of RAM
- 32GB internal storage with 128GB microSD card support
- 16MP rear camera and 3.7MP front camera
- Removable 3,220mAh battery
- 153.5 x 78.6 x 8.5 mm, 176g
- Black or White colours
- Android 5.0 Lollipop
Read More
#4 – Sony Xperia Z3 Compact
If all of these overly large smartphones aren’t quite your style, Sony’s Xperia Z3 Compact comes in a smaller form factor but won’t let you down when it comes in hardware specifications.
Although it comes with a slightly lower 720p resolution in the 4.6-inch display, the Z3 Compact retains a high-end Snapdragon 801 processor, 2GB of RAM, a 20.7 megapixel rear camera and an IP68 rating for water and dust resistance.
Price wise, the Z3 Compact comes in at a more modest £28.50 per month with £0 up front. Sony is also throwing its free Hi-Res audio package when you buy a new smartphone.
Specs
- 4.6-inch IPS LCD display with 720×1280 resolution
- 2.5GHz Qualcomm Snapdragon 801 SoC
- 2GB of RAM
- 16GB internal storage with 128GB microSD card support
- 20.7MP rear camera, 2.2MP front camera
- Non-removable 2,600mAh battery
- 127.3 x 64.9 x 8.6 mm, 129g
- Black, White or Orange
- Android 4.4 KitKat (Android 5.1 Lollipop update)
Read More
#5 – Samsung Galaxy A3
Rounding off our list of the best O2 Android phones is the more moderately priced Samsung Galaxy A3.
Unlike your typical mid-range smartphone, the Galaxy A3 features a stylish metal build, rather than a basic plastic case. The phone also sports a 4.5-inch display, Snapdragon 410 processor, 1.5GB of RAM and an 8MP rear camera. There’s also a microSD card slot if you want to expand on the 16GB of internal storage.
The Galaxy A3’s price tag begins at £20.50 per month with £0 up front, making it a more affordable option than the larger flagships in O2’s range.
Specs
- 4.5-inch Super AMLOED display with 540×960 resolution
- 1.2GHz Qualcomm Snapdragon 410 SoC
- 1.5GB of RAM
- 16GB of internal storage with up to 64GB via microSD
- 8MP rear camera, 5MP front camera
- Non-removable 1,900mAh battery
- 130.1 x 65.5 x 6.9 mm, 110g
- Black, White or Silver
- Android 4.4.4 KitKat, upgradable to Android 5.0.2
Read More
Comcast unveils Stream, a new internet TV service for $15 per month

There are dozens of viable television streaming services out there, all of which offer something a little different to its users. Whether you choose popular options such as Netflix or Hulu, or if you decide to go with a more recent service like Dish Network’s Sling TV, odds are you’ll find something that interests you. Comcast, the largest cable provider in the United States, today hopes to break in to the internet TV market with the launch of its new service called Stream.
Stream will be available to all Xfinity Internet customers for $15 per month and will feature about a dozen major broadcast networks as well as HBO. Notably absent in Stream’s lineup are ‘premium’ networks such as ESPN and AMC. Stream customers will be able to watch their favorite shows on broadcast networks like ABC, CBS, Fox, NBC and PBS, but as The New York Times notes, these channels are generally available for free with a one-time purchase of an antenna that costs about $25.
It should also be noted that Stream will only be available through mobile and web applications at launch, which means customers won’t be able to watch with the new service on their televisions or through set-top boxes of any kind.
The new streaming service will launch in Boston at the end of the summer, later rolling out to Chicago and Seattle. The company plans to bring Stream to everyone by early 2016, so be sure to look out for that if you don’t live in one of the aforementioned cities.
Deal: Grab the REMXD On-Ear Bluetooth Headphones for just $36, Air-Fi Metro2 Earbuds for $48

Are you a music lover that’s in the market for a new pair of Bluetooth headphones? Whether you’re going for a run, commuting to work or just taking a stroll down the street, the last thing you want is the get tangled up in troublesome headphone cables. To help you out with that little problem, we’d suggest heading over to the AA Deals Store where you can find some great deals on two quality pairs of wireless headphones.
If you’re looking for a high-quality pair of on-ear headphones for cheap, look no further than the REMXD On-Ear Bluetooth Headphones. Offering 33 expansive feet of Bluetooth connectivity, these high-quality, well-designed headphones support hands-free calls and up to 15 hours of music playback on a single charge. They’re comfortable, affordable and offer great clarity… what more could you want? Right now, you can pick up your very own pair from the Android Authority Deals Store for just $35.99, which is a massive 28% savings.
If you’re in the market for something a little more compact, try out the Air-Fi Metro2 Stereo Bluetooth Headphones. They’re engineered with aptX technology, and that’s a quality not often found in wireless headphones. These Bluetooth earbuds feature 5+ hour battery life, an incredibly comfortable fit, and crystal clear sound with punchy highs and prominent lows. These earbuds are being offered in the AA Deals Store for just $48.
Interested? Be sure to check out the links below for more information.
Man 3D prints dart gun to protest weapon blueprint law
In the wake of recent shootings, many Americans think the US needs at least slightly stricter gun laws. However, when it comes to 3D-printed weapons, one maker begs to differ. Peter Alaric built a 3D-printed dart gun to make a point about proposed State Department laws banning weapon blueprints on the internet. Calling President Obama “our Fuehrer,” he said “this gesture of protest further proves the obvious futility of attempting to regulate speech and ban simple mechanical objects.” His creation fires 40mm blowgun darts via a piston and rubber bands, and can even hold accessories like laser sights.
He claims that thanks to an air-gun exemption, his weapon is legal, though it’s hardly as dangerous as a real 3D-printed gun (especially to the user). Nevertheless, it could still be lethal, so it seems that Alaric’s point is that the rules will arbitrarily ban certain weapon designs and not others. He believes that gun designs are a form of speech protected by the constitution, a similar argument made by infamous 3D pistol creator Cody Wilson. However, opponents of weapon blueprints believe they’re “functional things,” not speech, and therefore subject to regulation.
As it happens, US judges and lawmakers could soon decide who’s right. The State Department recently said that it plans to require prior approval for internet publication of any “technical data” that could help someone build a weapon, 3D-printed or otherwise. It said that such documents constitute, in effect, the illegal export of weapons, and not free speech. Because of that stance, Wilson’s company Defense Distributed recently filed a lawsuit against the State Department. The judge’s decision in that case could give us the constitutional status of 3D-printed weapon designs, once and for all.
Filed under: Peripherals
Via: TechCrunch
Source: Peter Alaric (YouTube)












