Sunday, December 22, 2013

Working with files across the local PC and SkyDrive

Tablet devices, now omnipresent, have enabled new levels of mobility and content creation on the go. Today, consumers want more from their tablets: the ability to access files from any device, and the affordance to do so without running out of disk space on these low-storage devices. As a result, many consumers and developers have turned to cloud storage services to store files and deliver a continuous experience across devices.

With Windows 8.1, SkyDrive is built at the core of Windows, which gives both consumers and developers unprecedented flexibility for achieving these goals. Consumers can easily save and open files on SkyDrive directly from their apps, by using the file picker or adding content to their libraries. Libraries seamlessly aggregate files from the local PC and SkyDrive, which gives apps a common entry point to access all of the user’s content.

This post highlights key guidelines and best practices for apps to make the best use of SkyDrive files they interact with. A SkyDrive-aware app reacts to network connectivity changes and highlights files that are unavailable as it displays the contents of a library. It’s also optimized to be fast, even when it accesses files on the cloud, by taking advantage of file information cached locally. For instance, it leverages cached and streamed thumbnails that avoid large downloads when displaying pictures.

In this post, I’ll show how you can update your app to be SkyDrive-aware quickly, without adding complexity to your existing code. More specifically I’ll walk you through:

  1. Basics of interacting with the user’s files in Windows 8.1.
  2. Overview of SkyDrive integration into the OS and the WinRT data model.
  3. Making sure your app works great both online and offline.
  4. Using thumbnails when displaying images for best performance.

A few reminders

If you’ve read the post I wrote on Creating beautiful views for local files or made apps for Windows 8, you might already be familiar with the methods and guidelines for accessing your users’ files with WinRT APIs. As a brief reminder, there are two main paths to acquire these files within your app: capabilities and the file picker.

  • Library capabilities are used for apps whose core competency is file collections (for instance a photo gallery or music playback app).
  • The file picker (and to some extent the file activation extension) is used for point-in-time interactions with the user’s content.
    • Starting a file flow, like editing an existing file.
    • Exporting content created by your app into the user’s file space.
      • The file save picker can be used for a one-off save.
      • The folder picker can be used to streamline this process if exporting is a common action and you want to preserve access to a specific folder to programmatically export multiple files over time.

The Xbox Music app uses the Music Library capability

Figure 1: The Xbox Music app uses the Music Library capability

The Reader app uses the file picker to open or save files

Figure 2: The Reader app uses the file picker to open or save files

In Windows 8.1, apps that have a Library capability can extend the scope of content they have access to by using the StorageLibrary management APIs. These brokered APIs enable the same functionality as the Library properties dialog in the File Explorer, where users can add and remove folders from their libraries.

Library properties dialog where users can add and remove folders from their libraries

Figure 3: Library properties dialog

This new functionality enables users to point their media collection apps to the folders that contain their photos and music directly within the context of the app. A great example of how to use these APIs is shown in the Music app.

The Music app provides an entry point for users to add more music to their collection

Figure 4: The Music app provides an entry point for users to add more music to their collection

Clicking the "Add" button invokes the library location picker

Figure 5: Clicking the "Add" button invokes the library location picker

This experience is very simple to create using the RequestAddFolderAsync API. This API invokes a location picker in which the user can select a folder to add to the library. The location picker directly surfaces any errors, so your app only needs to handle cancellation. This can all be done with a few lines of JavaScript:

  // Displays the location picker to request the user select a folder to be
// added to the Music library.
function addFolder() {
Windows.Storage.StorageLibrary.getLibraryAsync(Windows.Storage.KnownLibraryId.music).then(function (library) {
return library.requestAddFolderAsync();
}).done(function (folderAdded) {
if (folderAdded !== null) {
// a folder was added to the Music library
} else {
// the operation was canceled
}
});
}

You can also do this in C#:
  private async void AddFolder() 
{
StorageLibrary picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Music);
StorageFolder folderAdded = await musicLibrary.RequestAddFolderAsync();
if (folderAdded != null)
{
// a folder was added to the Music library
}
else
{
// the operation was canceled
}
}
It’s also possible for your app to use files without interacting with the user’s own files and folders – for instance, if your app itself creates files to keep track of content created by the user within the app. These could be standard images, audio files or custom formats for project-like management (using XML for instance). For any such content that exists mostly in the context of your app and wouldn’t be useful to other apps, use the ApplicationData folders instead.

An example of this pattern is the Sound Recorder app. Because a user’s recordings make the most sense in context of the app that recorded them, the app keeps the files within the app data location. This provides a better experience than saving files to the Music library, which exposes them in apps like Xbox Music, where they wouldn’t be expected. However, users might want to share these files with teammates or edit these files in an audio editing app, which are more point-in-time interactions. For these scenarios, use the export mechanisms described above.

The Sound Recorder app keeps all recordings in ApplicationData

Figure 6: The Sound Recorder app keeps all recordings in ApplicationData.

File access and SkyDrive

A major addition to Windows 8.1 is the deep integration of SkyDrive directly in the OS. Users can now store files on SkyDrive just like in any file system folder, and manage their files regardless of network connectivity. The system takes care of syncing the files in the background and keeps the experience completely transparent to users.

SkyDrive is present throughout the system:

  • The SkyDrive app lets users browse and manage files both online and offline.
  • SkyDrive is now a built-in file picker scope so users can import SkyDrive files in your apps and export them back to SkyDrive.
  • File Explorer lets users interact with SkyDrive like any other folder.

    Managing files in the SkyDrive app

Figure 7: Managing files in the SkyDrive app.

SkyDrive in the file picker

Figure 8: SkyDrive in the file picker.

SkyDrive in File Explorer

Figure 9: SkyDrive in File Explorer.

As a developer, think of SkyDrive files as “just files” – they use the same StorageFile interface as every other file on the system and can be manipulated in much the same way. Under the hood, however, there can be some differences between local files and SkyDrive files. In Windows 8.1, we introduced the concept of smart files. A smart file is a file that appears on the system like a regular file but only contains metadata and thumbnails, not full file contents. The contents for the file are located on SkyDrive and can be downloaded as needed. Smart files help reduce the amount of storage needed to display files from SkyDrive on your device.

This might sound familiar if you’ve used the Windows 8 file picker contract. In this contract, users can open the file picker from App A and select a file from App B. App A receives a StorageFile, but under the cover, this file might be a stream-backed file whose contents are downloaded on the fly from the location where the actual file is stored. Smart files on SkyDrive function in a similar way, where their contents are downloaded transparently when a file is opened. What this means is that you won’t have different code paths for local files and SkyDrive files. However, some file operations such as editing metadata or copying might take a bit longer to perform because they require a download to occur rather than simply accessing bits on disk.

Tip: Desktop apps can also access smart files, as long as they use the APIs that support them. Smart files can be identified by the LocallyIncomplete attribute, which reflects that content is not all available locally. Desktop apps can detect this attribute and should use the IStream interface to manipulate these files. Because many Win32 apps use other APIs that don’t abstract the concept of smart file and risk encountering failures when using these files, the system marks them with the “system hidden” attribute to avoid accidental access.

How and how much to use SkyDrive is a choice that is left to the user’s discretion: in Windows 8.1, access to files on SkyDrive is brokered so that users are always in control. For this reason, there is no purely programmatic way to access to a user’s SkyDrive folder. Rather, your app will most often encounter SkyDrive files because the user selected a file from SkyDrive in the file picker to use in your app, or because a folder from SkyDrive was added to a library that your app can access.

Great experiences online and offline

We’ve seen that in most cases a file on SkyDrive behaves the same as a local file. There are some exceptions to that rule when the user has no internet connectivity. Specifically, when the user is offline, smart files cannot be downloaded on demand, and will exhibit limited functionality. An app that is SkyDrive-aware is able to recognize these scenarios and provide clear feedback to the user in its UI, and retain as much functionality as possible while offline.

The SkyDrive app differentiates offline items but lets users move or delete them

Figure 10: The SkyDrive app differentiates offline items but lets users move or delete them.

The WinRT API provides all the tools for apps to create experiences that are as seamless as possible regardless of network connectivity. A key rule of thumb when dealing with SkyDrive is that you should only have to code one time for all kinds of files, rather than have to differentiate local files and files on SkyDrive. A typical example is file availability: all files on the system expose the IsAvailable property, which lets you know if the file contents can be accessed at the point where the file is retrieved.

Values of the IsAvailable property for different scenarios

Table 1: Values of the IsAvailable property for different scenarios.

The metered connection setting is taken into account by the API

Figure 11: The metered connection setting is taken into account by the API.

Some operations, like those listed next, can be performed for all files regardless of network connectivity. In this case, you don’t have to check the IsAvailable property before performing them:

Other operations fail if the file isn’t available. Before allowing any of these operations to be performed in your app, check the value of IsAvailable, and disable the command for any file that isn’t available. Users get a better experience if your app anticipates issues and provides early indications of that state, and prevents any action that would result in an error. Operations that require a file to be available include:

  • Opening file contents.
  • Editing a file.
  • Copying a file or moving it outside of SkyDrive.

The IsAvailable property does all the legwork of checking if a file is cached locally, if the user is connected and if the network is metered or not, so that you don’t have to worry about any of these factors when you write your code. While this is very convenient, it doesn’t mean that you should stop handling errors! IsAvailable is optimized to always be fast to retrieve rather than always up to date, which means that it’s not a 100% guarantee that a file will be available when you try to access it (for instance, if the user goes offline shortly after you check the property). For this scenario, the ERROR_NO_NETWORK error was added to the WinRT API so your app can tell if a file operation failed for a reason related to connectivity.

You can use IsAvailable as a cue to visually differentiate items that aren’t available in your UI. Use ghosting (such as the 40% opacity filter shown in the SkyDrive app screenshot above) and typography (like a “Currently unavailable” string on the file) to make items stand out. Additionally, any actions that can’t be performed on the file while offline should be shown disabled in the app bar or context menu.

When using file queries, any changes to the IsAvailable property fires the contentschanged event, which gives you an opportunity to refresh your UI with the up-to-date state of each item. Here’s how to do this in JavaScript:

  picker.pickSingleFolderAsync().done(function (folder) {
if (folder) {
// Query the folder.
var query = folder.createFileQuery();
// Make sure to refresh the view when the contentschanged event is fired
var listener = function () {
displayItems(query);
};
query.addEventListener("contentschanged", listener);
// Make sure to unregister the listener when the user is no longer viewing this page
WinJS.Navigation.addEventListener("navigated", function () {
query.removeEventListener("contentschanged", listener);
});
// Display the initial view
displayItems(query);
}
});

function displayItems(query) {
query.getFilesAsync().done(function (files) {
// Display file list with availability.
files.forEach(function (file) {
// Create an entry in the list for the item.
var list = document.getElementById("itemsList");
var listItemElement = document.createElement("li");
listItemElement.textContent = file.name + " (";

// Show if the item is available (SkyDrive items are available when
// online or when they are marked for "always available offline").
if (!file.isAvailable) {
listItemElement.textContent += "not ";
}
listItemElement.textContent += "available)";

list.appendChild(listItemElement);
});
});
}
A similar implementation in C#:
  StorageFile folder = await filePicker.PickSingleFileAsync();
if (folder != null)
{
// Query the folder.
auto query = folder.CreateFileQuery();

// Make sure to refresh the view when the contentschanged event is fired
var eventHandler = new TypedEventHandler<IStorageQueryResultBase, object>( (IStorageQueryResultBase sender, object args) =>
{
Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
displayItems();
});
});
query.ContentsChanged += eventHandler;

// Make sure to unregister the listener when the user is no longer viewing this page
thisPage.OnNavigatedFrom += () =>
{
query.ContentsChanged -= eventHandler;
}

// Display the initial view
displayItems();
}

private async void displayItems()
{
IReadOnlyList<StorageFile> files = await query.GetFilesAsync();
// Display file list with availability
foreach (StorageFile file in files)
{
string text = "File name: " + file.Name + " (";

// Show if the item is available (SkyDrive items are available when
// online or when they are marked for "always available offline")
if (!file.IsAvailable)
{
text += "not ";
}

text += "available)";

print(text);
}
}
Tip: When using a ListView with data binding to a file query, use IsAvailable in your item renderer or template to customize the appearance of offline items. You can see an example of this with the HiloJS app on CodePlex.

There are a few additional things you can do to provide the best experience in your app, regardless of where the files you handle are located:

  • When opening a file, show indeterminate progress in your UI until the operation completes.
    • This indicates that your app is still responsive, even if the file needs to be downloaded over a slow network.
  • Allow users to cancel file operations.
    • Cancellation is useful for operations like opening or copying a file on SkyDrive, in case network connectivity is slow and users change their minds. The WinRT async APIs for file access all support cancellation.

Finally, while we’ve seen earlier that it’s not generally necessary for your app to differentiate SkyDrive files and local files, there may be cases where it’s relevant for your app to differentiate files based on their origin. For instance, you might want to show a user’s cloud items separately from their local items to show that they roam, whereas local items don’t. In this case, you can use the ID of the new Provider property to identify the source of a file or folder. In Windows 8.1, this ID can take one of four values:

  • computer (files on the local PC or connected hardware like USB drives)
  • SkyDrive (files on SkyDrive)
  • network (files on the local network)
  • app (for files picked via the file picker contract)

Tip: A StorageProvider has a fixed ID and a localized DisplayName. Make sure to use the ID for programmatic operations like comparison (ordinal-based and case-insensitive) or filtering, and the DisplayName for UI. In general, also avoid hard-coding IDs because new IDs might become available in the future.

This is how to use this API in JavaScript:

  picker.pickSingleFolderAsync().done(function (folder) {
if (folder) {
// Query the folder.
var query = folder.createFileQuery();
query.getFilesAsync().done(function (files) {
// Display file list with provider.
files.forEach(function (file) {
// Create an entry in the list for the item.
var list = document.getElementById("itemsList");
var listItemElement = document.createElement("li");
listItemElement.textContent = file.name;

// Show the item's provider.
listItemElement.textContent += ": On " + file.provider.displayName;
});
});
}
});
And in C#:
  StorageFolder folder = await picker.PickSingleFolderAsync(); 
if (folder != null)
{
// Query the folder.
auto query = folder.CreateFileQuery();
IReadOnlyList<StorageFile> fileList = await query.GetFilesAsync();

// Display file list with storage provider and availability.
foreach (StorageFile file in fileList)
{
// Create an entry in the list for the item.
string line = file.Name;

// Show the item's provider (This PC, SkyDrive, Network, or Application Content).
line += ": On " + file.Provider.DisplayName;

OutputPanel.Children.Add(CreateLineItemTextBlock(line));
}
}

A new way to display images

Displaying images from the user’s content is a common way for an app to personalize an experience and provide a richer UI. In most cases, apps simply acquire a file and set it as the source of an image element on their canvas. However, this approach can prove inefficient if you only want to display the image, and your app doesn’t modify the file at all. While editing requires all the file’s data to be available, displaying usually only requires a smaller version of the image to represent on screen.

Many cameras now take photos that are much higher resolution than PC displays, so your app could pay the cost of loading several MB of data unnecessarily. These effects are compounded when accessing files over a network, and can have further negative impact on users if the network is metered. Finally, using this approach with smart files could introduce a new level of complexity in your code around when a file can or cannot be displayed.

To simplify this flow, apps should use thumbnails to display images instead of relying on the full file. Windows maintains an extensive cache of file thumbnails at multiple sizes, and has special thumbnails for smart files, including medium thumbnails that are always available and large thumbnails streamed from the cloud. This means that using a thumbnail to represent an image is a sure way to get the best and fastest available image representation of a file regardless of network connectivity.

In Windows 8.1, the maximum thumbnail size supported by the system locally and from the cloud was increased to 1600px, which is enough for a full-screen preview on many form factors. Additionally, a new API was created to return scaled images at any size, so you can use it as a one-stop-shop regardless of the size you want to display. The API leverages all available thumbnails, and falls back to the actual image if thumbnails cannot satisfy the requested size (or the largest thumbnail found if the file is not available). The returned StorageItemThumbnail object allows you to easily determine if any of these fallbacks were used.

Here’s how you can use this API in JavaScript:

  file.getScaledImageAsThumbnailAsync(thumbnailMode, requestedSize, thumbnailOptions).done(function (thumbnail) {
if (thumbnail) {
// An image was returned.
if (thumbnail.returnedSmallerCachedSize) {
// The system was unable to obtain an image at the requested
// size, and returned the largest available thumbnail.
}
// You can easily insert it in an img element.
var image = document.getElementById("myImage");
var url = URL.createObjectUrl(thumbnail, { oneTimeOnly: true });
image.src = url;
}
}, function (error) {
// There was an error returning the thumbnail
});

Similarly in C#:

  using (StorageItemThumbnail thumbnail = await file.GetScaledImageAsThumbnailAsync(thumbnailMode, size, thumbnailOptions)) 
{
if (thumbnail != null)
{
// An image was returned.
if (thumbnail.ReturnedSmallerCachedSize) {
// The system was unable to obtain an image at the requested
// size, and returned the largest available thumbnail.
}
// You can easily insert it in an image element.
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(thumbnail);
image.Source = bitmapImage;
}
}
With this API, you now only have to access the original file for editing, which makes sure that your app is as fast as possible and behaves well both online and offline.

Wrapping up

You’ve seen in this post how deeply SkyDrive is integrated in Windows 8.1, and how it blends with the Windows 8 file access model for Windows Store apps. A few new properties make it really easy for your app to become SkyDrive-aware by discovering file availability and origin. Using thumbnails as a proxy for images can also make your app more resilient to changes in connectivity, and enable you to display images faster. Most apps accessing user files can be updated with just a few lines of code, without creating new code paths for files on SkyDrive.

--Marc Wautier, Program Manager, Windows User Experience



via The Windows Blog http://blogs.windows.com/b/

Gospel Topics for Personal and Family Study

The Church is upgrading the Gospel Topics section of LDS.org (topics.lds.org) to provide an enriched experience for personal and family gospel study. In addition to a new landing page, the site has upgraded search capabilities, which now include distinct sites like the Joseph Smith Papers. Individual topic pages are also being upgraded one-by-one as part of a long-term effort […]

via LDS Media Talk http://ldsmediatalk.com

3 Tips to Simplify & Savor the Holiday Season

Here are 3 tips to simplify and savor the holiday season.

via LDS Media Talk http://ldsmediatalk.com

2-year-old LDS Boy is Basketball Star

An LDS boy, 2-year-old “Trick-Shot-Titus,” has become a basketball sensation. Back in February, his dad posted this video on YouTube, and it has been watched nearly 13 million times. When the video went viral, and Titus showed his skills on the Today Show and the Deseret News published this story: “Mormon 2-year-old basketball star becomes famous for […]

via LDS Media Talk http://ldsmediatalk.com

Saturday, November 30, 2013

Creating a Virtual Machine with Hyper-V in Windows 8

Ever wish you had a dedicated machine you could use for testing software or had the ability to run dedicated tasks such as maybe a backup server or media server?  Then creating a Virtual Machine with Hyper-V might be worth a look.  There are many reasons you may want to run VM’s but one of the most […]

The post Creating a Virtual Machine with Hyper-V in Windows 8 appeared first on The Doc's World.



via The Doc's World http://thedocsworld.net

Friday, November 29, 2013

Faulty connectors push Retron 5 game console into early 2014 launch

Everyone who wants to snag Hyperkin's Retron 5 this holiday season may want to look elsewhere for now, because the retro gaming console won't arrive in time for Santa's visit. Unfortunately, Hyperkin scrubbed the (already delayed) December 10th launch date after discovering faulty cartridge connectors in units already packed for shipping. The Retron 5, which we took for a spin at E3 this year, magically combines compatibility with several ancient gaming system cartridges, including those for the NES, SNES, Sega Genesis (plus Master System with a converter) and Game Boy Advance. While we bet this news breaks a lot of retro gamers' hearts, we hope they don't throw out those vintage games just yet. Sure, it'll take time to ensure all units are in working order, but the firm aims to ship out the first consoles within the first quarter of 2014.

Filed under:

Comments

Hyperkin

via Engadget RSS Feed http://www.engadget.com

Engadget's Black Friday 2013 roundup

Black Friday

Don't think that the Black Friday shopping rush this year is all about the PlayStation 4 and Xbox One. We've rounded up a smorgasbord of Thanksgiving week deals that should appeal to tech-savvy shoppers of all stripes, whether they're looking for entry-level smartphones or giant 4K TVs. Hop past the break and you'll find bargains that could please the gadget lovers in your life -- and just might spare you from battling the crowds at the mall.

[Image credit: AP]

Filed under: , , , , , , , , ,

Comments



via Engadget RSS Feed http://www.engadget.com

CyanogenMod Installer pulled from Google Play, lives on via sideloading

The CyanogenMod team made switching from your phone's original Android setup to its own flavor of the OS much easier with paired mobile and desktop installer apps, but now there's one extra step. In a blog post, CyanogenMod states the Google Play Support team contacted it and claims the installer app is in violation of their TOS. This, despite CyanogenMod's insistence that the app's only purpose is to enable ADB on the device, then guide users through connecting it to the desktop app. Despite "hundreds of thousands" of installs for its alternative Android experience, the mobile app is still usable via sideloading, and its installation guide walks users through the necessary steps. Going forward, the CyanogenMod team is submitting its app to Samsung and Amazon's alternative app stores, but interested Android users can download it right now.

Filed under: , , ,

Comments

CyanogenMod Blog

via Engadget RSS Feed http://www.engadget.com

Wacom Cintiq Companion Hybrid review: a pen display that doubles as an Android tablet

Wacom Cintiq Companion Hybrid review: a pen display that doubles as an Android tablet

After months of rumblings about a standalone slate, Wacom finally unveiled not one, but two tablets back in September. On paper, the Cintiq Companion may be the more compelling mobile workstation, just because it runs Windows, but first, we're taking a long, hard look at the Cintiq Companion Hybrid. Whereas the other runs Windows, this one is powered by Android and packs a top-of-the-line Tegra 4 chip to help you get work done on the go. Of course, when tethered to a laptop or desktop machine back in the studio, the unit also serves as a traditional pen display like the Cintiq 13HD -- but with multitouch gestures.

Creative types are already familiar with Wacom's prices, but the real question is whether the ability to use it as a mobile device is worth an even higher premium. With a stablemate that's capable of running a full version of Photoshop, is the Hybrid worth the added investment over the similarly sized 13HD pen tablet? Or are you better off paying more for the Cintiq Companion with Windows instead? %Gallery-slideshow122586%

Filed under:

Comments



via Engadget RSS Feed http://www.engadget.com

Paper airplanes finally get the smartphone remote control they deserve

Thank you, PowerUp. Apparently the last time we had the opportunity to write about paper airplanes was back in 2011, when a Seattle doctor built a tiny one using a da Vinci surgical robot. This time out, it's a Kickstarter project that brings smartphone control to the notoriously staid word of paper airplanes. The gadget's setup is pretty simple, all said. At the front is a Bluetooth module and battery, while the back contains the propeller and rudder. Build a paper airplane, attach the PowerUp up and boom, you've got RC aircraft you can control with your smartphone. Creator Shai Goitein has taken the project to Kickstarter in an attempt to score $50,000 in funding. A pledge of $30 will get one of these little fliers in your hands, come May of next year. That's plenty of time to practice your folding skills.

Filed under:

Comments

Source: Kickstarter



via Engadget RSS Feed http://www.engadget.com

Vizio rounds out its soundbar line with a 54-inch model, teases a new 55-inch TV

Vizio rounds out its soundbar line with a 54-inch model, teases a new 55-inch TV

Vizio already has soundbars designed for smaller TVs (and medium-sized ones too), and now it's back with a flagship model built for bigger screens. This new 54-inch model, available today, brings 103-decibel sound, complete with three channels and a 4-inch deep bass module. Like the smaller models, it also features Bluetooth streaming, and uses DTS audio processing to level out the volume so that you're not jolted off the couch when shows cut to a loud commercial break. It's available today for $300 on Vizio's website, though if you wait a few weeks, you should see it popping up in retail stores, likely with some lower prices in tow.

Additionally, the company is teasing a 55-inch entry-level E-series TV with full-array LED backlighting and local dimming technology, which should allow for both deeper blacks as well as easier viewing in darkened rooms. As it happens, this technology isn't new and in fact, Vizio already sells some entry-level models with full-array backlighting and local dimming. In this case, though, Vizio is touting more dimming zones, as well as newer, more effective version of the dimming technology. Unfortunately, though, the company isn't doing demos right now, so we can't really speak to the difference in quality. What's more, Vizio also hasn't mentioned pricing or availability. So, we'll have to leave this as a tease for now, but we'll follow up when we eventually learn more.%Gallery-slideshow123186%

Filed under: ,

Comments



via Engadget RSS Feed http://www.engadget.com

Rocki turns your old sound system into WiFi-enabled speakers

The Rocki concept has been floating around for a bit, but now the company's ready for the hardware startup rite of passage that is the Kickstarter campaign. The idea's a pretty straightforward one: a module that plugs into the back of an existing sound system via audio jack or RCA, essentially turning it into a wireless speaker system. The little hexagonal Play device streams music over your home network via 802.11b/g/n, which has some notable fidelity and range advantages over Bluetooth. Assuming you've already got some speakers lying around, it's also a fair bit cheaper than investing in a new Bluetooth or WiFi versions. The company is developing an Android app for the Rocki, letting you stream your music to multiple devices (assuming, of course, that you've got multiple Play modules throughout your home), with iOS and HTML5 versions on the horizon. Get in early, and you can snag one for a $45 pledge.

Filed under: ,

Comments

Source: Kickstarter



via Engadget RSS Feed http://www.engadget.com

3D Systems Sense review: a 3D scanner for the masses (almost)

3D Systems Sense review: a 3D scanner for the masses (almost)

If we've crossed paths in the past week, there's a pretty good chance I've scanned you. This extends well beyond the human race, into the realms of animal, vegetable, plush toy and fruit bowl. Some subjects were too small to be scanned, some too fidgety and, in the case of my attempted 3D selfie, not nearly flexible enough. Such issues were mere roadblocks in my strange one-man journey to 3D-scan the world. I may have a problem. I admit it. For starters, I'm not completely sure what I plan on doing with all these scans, but while such questions are entirely logical, they've yet to curb my enthusiasm for the device. Sense is one of those propositions that seems too good to be true: a user-friendly, (relatively) portable 3D scanner capable of capturing objects up to 10 feet by 10 feet, and at a fraction of the price of the competition.

If the product is indeed what 3D Systems claims, it could fill a major hole in the consumer 3D-printing market. In recent years, 3D-printing companies have largely focused on the printers themselves, which have gotten cheaper and easier to use. At the same time, the race to dominate the category has often caused companies to ignore the question of how those without extensive CAD experience can create 3D files in the first place. MakerBot unveiled its solution back at SXSW: the $1,400 Digitizer, a rotating, desktop scanning bed capable of capturing objects up to eight inches by eight inches. 3D Systems' Sense takes a wholly different approach: This is a $400 handheld scanner that can digitize an entire human being.%Gallery-slideshow123207%

Filed under:

Comments



via Engadget RSS Feed http://www.engadget.com

Ars Technica System Guide: November 2013

After a major GPU release (thanks AMD!) and price war, time to update our DIY guide.
    








via Ars Technica http://arstechnica.com

Dealmaster Black Friday blowout continues, with updated deals!

It's Friday, Friday, gonna have deals on Friday!
    








via Ars Technica http://arstechnica.com

First third-party “Steam Machine” could already be a console-beater

iBuyPower’s $499 prototype has a nice GPU, but there’s a lot we don’t know.
    








via Ars Technica http://arstechnica.com