Europe’s Court of Justice rules that hyperlinking can infringe on copyright

EuropeanCommissionEuropa

On Thursday, the Dutch publisher of Playboy won a major legal victory concerning photographs that had been uploaded to the internet without its permission on a file sharing site. The ruling handed down by the European Union Court of Justice could have enormous consequences for users across the internet.

The case stemmed from a complaint against a Dutch website called GeenStijl, which had posted links to leaked photos from Playboy in October 2011. The website had received a tip that the pictures had been uploaded to FileFactory. It posted a cutout of one of the images and linked to the rest. Sanoma Media, Playboy’s Dutch publisher, requested that content be removed, which GeenStijl refused to do. Sanoma then sued the GeenStijl and its parent company, GS Media, arguing that the hyperlink and part of one of the images infringed on its copyright. The case found itself before the EU court, which ruled that posting hyperlinks amounted to copyright infringement, because the website profited from the traffic that it generated.

The court noted in its ruling that the website’s editors knew that the works had yet to be published in the print magazine and that its distribution through FileFactory was unauthorized. "Whoever post[ed] those links knew or ought to have been aware of those facts and the fact that that rightholder did not consent to the publication of the works in question on that latter website."

They key point in this case comes down to the phrase "Communication to the public of their works" in Article 3(1) of Directive 2001/29, On the harmonisation of certain aspects of copyright and related rights in the information society:

Member States shall provide authors with the exclusive right to authorise or prohibit any communication to the public of their works, by wire or wireless means, including the making available to the public of their works in such a way that members of the public may access them from a place and at a time individually chosen by them.

The court noted that the directive does not define "communication to the public", but that EU laws do work to protect the rights of copyright owners. It also surmised that those seeking to communicate to the public must make a judgment call as to the ethical nature of what they’re doing: balancing legitimate news against copyright infringement.

Amazon Kindle Fire HD 8 Gets 50 Percent More RAM At A 40 Percent Price; Takes On iPad Mini 4 Head On

Amazon just announced the 2.0 version of last year's Fire HD 8. They claim that the brand new Fire HD 8 tablet comes with improved features. The Kindle Fire HD 8 still looks the same as the one released last year, so what's really new with it?

Amazon's Kindle Fire HD 8 Tablet Gets A New Assistant

NY Times reports, Amazon Echo's cloud-based intelligent digital personal assistant, Alexa, goes mobile as the newest update to come in the Kindle Fire HD 8 will include Alexa. With the Fire HD 8 being the first Amazon tablet to be integrated with Alexa, you can interact with your gadget and ask it to perform certain functions for you such as playing music, read audiobooks, search the web and a lot more.

Other Amazon Kindle Tablets don't have to worry because they are getting Alexa, too. The update will also come to the Amazon Fire, Fire HD 10, and the Fire HD 8 2015.

Bigger Memory And Faster Processor For The 2016 Kindle Fire HD 8

Amazon's Kindle Fire HD 8 Tablet 2016 is equipped with a quad-core MediaTek processor that allows it to perform faster than it used to with the Kindle Fire HD 8 2015. According to CNET, the Kindle Fire HD 8 2016 supports microSD cards up to 200 GB, but also offers more RAM and internal storage of either 16 GB and 32 GB.

New Features For Amazon's Kindle Fire HD 8 2016

The Fire HD 8 2016 runs on Fire OS 5 and now has a front-facing camera plus a primary camera with 2 megapixels. Sources suggest that Amazon's latest tablet has an 8-inch display, stereo speakers with Dolby Audio and a 4,750 mAh battery that can last up to 12 hours.  The Fire HD 8 2016 will come in four colors: black, tangerine, blue and magenta.

Is Kindle Fire HD 8 2016 Tablet Better Than The iPad Mini 4?

There have been rumors that Amazon's Kindle Fire HD 8 2016 is two times more durable than the iPad Mini 4 after enduring several tumble tests. It is a lot more affordable which ideal for practical reasons, but the Fire HD 8 is no match to Apple's iPad Mini 4 in terms of the device's premium build quality.


The Euro: And its Threat to the Future of Europe

From Nobel Prize-winning economist and best-selling author Joseph Sitglitz, author of Globalization and Its Discontents, this is the essential, must-read guide to the future of Europe.

Solidarity and prosperity fostered by economic integration: this principle has underpinned the European project from the start, and the establishment of a common currency was supposed to be its most audacious and tangible achievement. Since 2008, however, the European Union has ricocheted between stagnation and crisis. The inability of the eurozone to match the recovery in the USA and UK has exposed its governing structures, institutions and policies as dysfunctional and called into question the viability of a common currency shared by such different economies as Germany and Greece.

Designed to bring the European Union closer together, the euro has actually done the opposite: after nearly a decade without growth, unity has been replaced with dissent and enlargements with prospective exits. Joseph Stiglitz argues that Europe's stagnation and bleak outlook are a direct result of the fundamental flaws inherent in the euro project - economic integration outpacing political integration with a structure that promotes divergence rather than convergence. Money relentlessly leaves the weaker member states and goes to the strong, with debt accumulating in a few ill-favoured countries. The question then is: Can the euro be saved?

Laying bare the European Central Bank's misguided inflation-only mandate and explaining why austerity has condemned Europe to unending stagnation, Stiglitz outlines the fundamental reforms necessary to the structure of the eurozone and the policies imposed on the member countries suffering the most. But the same lack of sufficient political solidarity that led to the creation of a flawed euro twenty years ago suggests that these reforms are unlikely to be adopted. Hoping to avoid the huge costs associated with current policies, Stiglitz proposes two other alternatives: a well-managed end to the common currency; or a bold, new system dubbed 'the flexible euro.' This important book, by one of the world's leading economists, addresses the euro-crisis on a bigger intellectual scale than any predecessor.

Mobile apps are now bigger than the web — a trend that threatens to eat Google's core business

Apps are eating the web.

Over the past decade, there has been an inexorable movement from the open internet to the walled gardens of apps — and this trend just hit a major milestone.

According to new data from ComScore, more than half of all time Americans spend online is spent in apps — up from around 41% two years ago.

It's a stat that will be discomfiting to advocates of the open web, as well as companies whose core business is built around it — notably Google.

As content that was once freely available and indexable on websites becomes silo-ed away in closed-off apps, it makes it harder to search and link to content. This is, of course, the cornerstone of Google's original business. Google is fighting back, by making the internal contents of apps searchable. But it is not clear that Google will come to dominate app search the same way it did web search.

Below is the data from ComScore, showing how mobile dominates when it comes to platforms people use to get online — and on mobile, apps are the most popular way of accessing information.

adamblog2_reference

And here's how the amount of time spent in apps has rocketed over the last few years.

adamblog1_reference

Amazon regala Kindle e promuove la lettura nei Paesi in via di sviluppo

Amazon regala Kindle, gli e-reader più in voga tra coloro che amano leggere in digitale. Solo pochi giorni fa, il 24 agosto, la nota azienda statunitense ha annunciato il suo nuovissimo progetto chiamato Kindle Reading Fund. Nasce con lo scopo di promuovere la lettura e, contemporaneamente, rendere quella digitale più accessibile a livello mondiale. L’intenzione è quella di donare un gran numero di Kindle, tablet Fire e milioni di e-book ai paesi in via di sviluppo in collaborazione con varie organizzazioni, tra cui Worldwidereader, con la quale ha già collaborato in passato.

Recentemente, quest’ultima ha infatti lavorato con Amazon al progetto LEAP 2.0, grazie al quale ben 61 biblioteche del Kenya e circa 500.000 dei suoi abitanti hanno potuto beneficiare degli e-book. La Worldwidereader, inoltre, può vantare di aver fatto in modo che, negli scorsi 6 anni, una gran quantità di libri abbia raggiunto oltre 4 milioni di persone. Si tratta di numeri impressionanti, considerato che in alcuni paesi la cultura non viene purtroppo promossa e i giovani di oggi si interessano sempre meno alla lettura. Basti pensare alle decine di librerie che chiudono ogni anno.

Amazon promuove la lettura e, proprio come per la Worldwidereader, non è la prima volta e non sarà l’ultima. L’azienda ha infatti donato, e continua a donare, migliaia di e-book di ogni genere a studenti e insegnanti. In collaborazione con la National PTA, inoltre, sta lavorando ad un progetto che vede il coinvolgimento dei genitori in un programma di lettura chiamato Family Reading Experience. Il supporto della famiglia è molto importante nella formazione dei bambini, quindi la speranza è che anche quest’iniziativa riscuota un grande successo. I più piccoli sono il futuro e, fortunatamente, Amazon lo sa bene e porta un aiuto non indifferente.

Se ciò non fosse abbastanza, è sufficiente citare alcuni degli altri enti a cui Amazon regala i Kindle. Ci sono il Seattle Children’s Hospital, Mary’s Place, Rainier Scholars e tantissimi altri ospedali, case famiglia e associazioni no-profit. Amazon promuove la lettura e, secondo un suo portavoce, il sogno dell’azienda è fare in modo che i libri e i benefici che portano arrivino a più persone possibili, comprese quelle dei paesi in via di sviluppo. Per informazioni più dettagliate, si può consultare il sito ufficiale.

How to Get Access to WindowsApps Folder in Windows 10

Just like almost all the programs, Windows App installation files are also stored in the Program Files folder in your C drive.

windowsapps-folder-programfiles

However, the folder is hidden from plain sight. To see the folder, head over to the Program Files folder, click on the “View” tab and then select the “Hidden Items” checkbox.

windowsapps-folder-check-hidden-files

This action will show you all the hidden folders including the “WindowsApps” folder.

windowsapps-folder-windowsapps

Though you can see the folder, you cannot open the folder to see the files in it. If you try to open it, your access will be denied even if you are the administrator.

windowsapps-folder-access-denied

To get access to the WindowsApps folder, right-click on the folder and then select the “Properties” option from the list of context menu options.

windowsapps-folder-select-properties

The above action will open the Properties window. Here, navigate to the Security tab and click on the “Advanced” button appearing at the bottom of the Window.

windowsapps-folder-select-advanced

Once the Advanced Security Settings window has been opened, click on the “Change” link. You will receive a UAC (User Access Control) prompt. Simply click on the button “Yes” to continue.

windowsapps-folder-click-change

Now the window will show you all the permissions of the WindowsApps folder. As you can see, this folder belongs to the system, thus you are not able to access it. To change it, click on the “Change” link appearing next to “TustedInstaller.”

windowsapps-folder-click-change-again

The above action will open the “Select User or Group” window. Here enter your administrator username and click on the button “Check Names.’ This action will automatically fill in the object name. Now, click on the “Ok” button to continue.

windowsapps-folder-enter-username

Here in the main window you can see the that the owner of the folder has been changed to your specified administrator account. Before applying the change, make sure that the “Replace owner on sub containers and objects” checkbox is selected. Otherwise you won’t be able to interact with other files and folders inside the WindowsApps folder.

After you’ve done everything, click on “Ok” button to save the changes.

windowsapps-folder-apply-permission-changes

As soon as you click on the Ok button, Windows starts to change the file and folder permissions. This process may take some time, so sit back and wait until the process is completed.

WIndows_Security

Once the file and folder permissions have been changed, you can easily access it like any other folder in the Program Files folder as long as you are an administrator or have administrator rights.

windowsapps-folder

Do comment below sharing your thoughts and experiences about using the above method to get access to WindowsApps folder in Windows 10.

Custom editor render for Xamarin on iOS

In Xamairin the Editor component doesn’t have a border on iOS. If you want to add one in the iOS project just added the following code.

using UIKit;
using WordBankEasy.iOS.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly: ExportRenderer(typeof(Editor), typeof(CustomEditorRenderer))]
namespace PSC.iOS.Renderers
{
    public class CustomEditorRenderer : EditorRenderer
    {
        protected override void OnElementChanged(
			    ElementChangedEventArgs<Editor> e)
        {
            base.OnElementChanged(e);

            if(Control != null)
            {
                Control.Layer.BorderColor = 
                              UIColor.FromRGB(204, 204, 204).CGColor;
                Control.Layer.BorderWidth = 0.5f;
                Control.Layer.CornerRadius = 3f;
            }
        }
    }
}

Happy coding!

Preserve data when deploying Xamarin.Android app

By default all your data from your previous runs is deleted when you’re deploying an Xamarin.Android app. In many cases you don’t want the data to be deleted.

Visual Studio


To preserve data go to Tools -> Options -> Xamarin -> Android Settings and check “Preserve application data/cache on device between deploys”.

Preserve_data_visualstudio

Xamarin Studio


To preserve data go to Tools -> Options -> Android and check “Preserve data/cache between application deploys”.

Preserve_data_xamarinstudio

Happy coding!

“System.IO.FileNotFoundException” using controls from another assembly in Xamarin Forms on iOS.

I was building a Xamarin solution with my components like that:

ProjectList

All my components (PSC.Xamarin.Controls.*) are working fine in other solutions.Always fine for Windows or UWP solutions. A problem was born when I started to deployed my solutions on iOS. When on the app I opened a page with my controls I always received an error like:

FileNotFoundException

System.IO.FileNotFoundException: Could not load file or assembly 'PSC.Xamarin.Controls.BindablePicker' or one of its dependencies. The system cannot find the file specified.

I can check my references and deployment settings in all ways, it turns out there’s probably a bug in Xamarin Forms’ iOS implementation. If you use controls and only controls from a PCL or dll that does not contain other code that is called from the app, apparently Xamarin on iOS ‘forgets’ to load/deploy the assembly (or something like that). But there is a work around.

The work around is as simple as it is weird. You go the iOS app’s AppDelegate class, and you add a reference to your class(es). If this is not enough, in the FinishedLaunching function you have to add a new instance to your control as in the following example:

using System;
using System.Collections.Generic;
using System.Linq;
using PSC.Xamarin.Controls.BindablePicker;

using Foundation;
using UIKit;

namespace myInventories.iOS {
    [Register("AppDelegate")]
    public partial class AppDelegate : 
        global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate {
        public override bool FinishedLaunching(UIApplication app, 
            NSDictionary options) {
            global::Xamarin.Forms.Forms.Init();

            // initialize my components
            // this is a work around only for iOS. 
            // If you don't do that, you received an error like 
            // System.IO.FileNotFoundException
            BindablePicker temporary = new BindablePicker();

            Xamarin.FormsMaps.Init();
            LoadApplication(new App());

            return base.FinishedLaunching(app, options);
        }
    }
}

Happy coding!

Xamarin Forms and Google Mobile Ads for iOS

If you have a new Xamarin Project and you want to add an advertising, the simple way it is to use Google Admob. This implementation is only for Android and iOS.

One of the first things people think about when developing for a new platform / using a new technology is monetization; and in my case the question is: how easy is it to integrate AdMob? For Xamarin Forms the answer would be: “It depends” – it depends on luck & on the complexity of what you want to achieve; but I will detail this as we move along.

The first thing you need to do is add the required components to your projects. For this walktrough I will be using Visual Studio but it should be relatively the same when using Xamarin Studio. Here, things go separate ways for each of the platforms:

  • for Android – add the Google Play Services component
  • for iOS – add the AdMob component
  • for Windows Phone – download the SDK from here and add it as a reference

By now, you Android project should no longer be building & you should be receiving a COMPILETODALVIK : UNEXPECTED TOP-LEVEL error. To fix that, go into your Droid project properties, select the Android Options tab and then under Advanced modify the value for the Java Max Heap Size to 1G. Your project should now build without any errors.

Next, inside your shared / PCL project add a new Content View and call it AdMobView. Remove the code generated inside it’s constructor & it should look like this:

public class AdMobView : ContentView
{
    public AdMobView() { }
}

Add this new view to your page. In XAML you can do it like this:

<controls:AdMobView WidthRequest="320" HeightRequest="50" />

Make sure NOTHING interferes with the control. By nothing I mean – overlapping controls, page padding, control margins / spacing, etc. If you have something overlapping the ad control, ads will not display & you won’t receive an error, so be careful.

Android

Add a new class called AdMobRenderer with the code below. Make sure to keep the ExportRenderer attribute above the namespace, otherwise the magic won’t happen.

using WordBankEasy.Droid.Renderers;
using WordBankEasy.Views.AdMob;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;

[assembly: ExportRenderer(typeof(AdMobView), typeof(AdMobRenderer))]

namespace WordBankEasy.Droid.Renderers {
    public class AdMobRenderer : ViewRenderer<AdMobView, Android.Gms.Ads.AdView> {
        protected override void OnElementChanged(ElementChangedEventArgs<AdMobView> e) {
            base.OnElementChanged(e);

            if (Control == null) {
                var ad = new Android.Gms.Ads.AdView(Forms.Context);
                ad.AdSize = Android.Gms.Ads.AdSize.Banner;
                ad.AdUnitId = "ca-app-pub-4381168884554284/2250461656";

                var requestbuilder = new Android.Gms.Ads.AdRequest.Builder();
                ad.LoadAd(requestbuilder.Build());

                SetNativeControl(ad);
            }
        }
    }
}

Next, you need to modify your AndroidManifest.xml file to add the AdActivity & required permissions for displaying ads: ACCESS_NETWORK_STATE, INTERNET; just like in the example below (see also http://puresourcecode.com/dotnet/post/Android-required-permissions).

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-sdk android:minSdkVersion="15" />
    <application>
    <activity android:name="com.google.android.gms.ads.AdActivity" 
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" />
    </application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

That’s it. Your Android build should now display ads inside the AdMobView content view.

iOS

This, I haven’t got the chance to test yet as I don’t have a Mac around but people say it works, so I’ve added it for reference. Same as before, just add a new class called AdMobRenderer and copy-paste the code below but before you have to add a component.

In your iOS project click on “Components” (as in the picture)

Components

and click on “Get More Components…”. Then search admob and install it.

Google-Admob-Xamarin

using Xamarin.Forms;
using CoreGraphics;
using Xamarin.Forms.Platform.iOS;
using UIKit;
using WordBankEasy.Views.AdMob;
using WordBankEasy.iOS.Renderers;
using Google.MobileAds;

[assembly: ExportRenderer(typeof(AdMobView), typeof(AdMobRenderer))]
namespace WordBankEasy.iOS.Renderers {
    public class AdMobRenderer : ViewRenderer {
        const string AdmobID = "ca-app-pub-4381168884554284/5843056458";

        BannerView adView;
        bool viewOnScreen;

        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.View> e) {
            base.OnElementChanged(e);

            if (e.NewElement == null)
                return;

            if (e.OldElement == null) {
                adView = new BannerView(size: AdSizeCons.Banner, origin: new CGPoint(-10, 0)) {
                    AdUnitID = AdmobID,
                    RootViewController = UIApplication.SharedApplication.Windows[0].RootViewController
                };

                adView.AdReceived += (sender, args) => {
                    if (!viewOnScreen) this.AddSubview(adView);
                    viewOnScreen = true;
                };

                adView.LoadRequest(Request.GetDefaultRequest());
                base.SetNativeControl(adView);
            }
        }
    }
}

Here you can receive an strange error like:

Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInvalidArgumentException Reason: -[AppDelegate window]: unrecognized selector sent to instance 0x7ffee9cdd4d0

Native stack trace:

0 CoreFoundation 0x000000010a12ed85 __exceptionPreprocess + 165

1 libobjc.A.dylib 0x000000010a5e3deb objc_exception_throw + 48

2 CoreFoundation 0x000000010a137d3d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205

3 CoreFoundation 0x000000010a07db17 forwarding + 487

4 CoreFoundation 0x000000010a07d8a8 _CF_forwarding_prep_0 + 120

5 WordBankEasyiOS 0x0000000100bc65e4 GADiTunesMetadataForFileAtPath + 4181

6 WordBankEasyiOS 0x0000000100c2d484 hasRequiredParams + 10260

7 WordBankEasyiOS 0x0000000100bc5f06 GADiTunesMetadataForFileAtPath + 2423

8 WordBankEasyiOS 0x0000000100bc1c35 GADCategories_NSURL_GADNSURLUtilities + 4438

9 WordBankEasyiOS 0x0000000100c00fde GADDispatchAsyncSafeMainQueue + 45

10 libobjc.A.dylib 0x000000010a5e4bff _class_initialize + 679

11 libobjc.A.dylib 0x000000010a5eacc5 lookUpImpOrForward + 176

12 libobjc.A.dylib 0x000000010a5f98bb objc_msgSend + 187

13 WordBankEasyiOS 0x0000000100bbe0ff GADCategories_DFPBannerView_CustomRenderedAd + 18074

14 WordBankEasyiOS 0x0000000100bbe382 GADCategories_DFPBannerView_CustomRenderedAd + 18717

15 WordBankEasyiOS 0x0000000100bbe527 GADCategories_DFPBannerView_CustomRenderedAd + 19138

16 ??? 0x000000011d368a0e 0x0 + 4785080846

17 ??? 0x000000011d36843b 0x0 + 4785079355

18 ??? 0x000000011d364d88 0x0 + 4785065352

19 ??? 0x000000011c51bbd6 0x0 + 4770085846

20 ??? 0x000000011c51b138 0x0 + 4770083128

21 ??? 0x000000011c51b138 0x0 + 4770083128

22 ??? 0x000000011c51b138 0x0 + 4770083128

Don't worry! I received the same error and I spend a lot of time to understand and fix it. There is a workaround that seems working fine.

In your iOS project, open AppDelegate.cs and add this code:

/// <summary>
/// Gets the window.
/// </summary>
/// <returns>UIWindow.</returns>
[Export("window")]
public UIWindow GetWindow() {
   return UIApplication.SharedApplication.Windows[0];
}

A complete example of this class is:

using System;
using System.Collections.Generic;
using System.Linq;

using Foundation;
using ImageCircle.Forms.Plugin.iOS;
using UIKit;

namespace WordBankEasy.iOS {
    // The UIApplicationDelegate for the application. This class is responsible for launching the 
    // User Interface of the application, as well as listening (and optionally responding) to 
    // application events from iOS.
    [Register("AppDelegate")]
    public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate {
        //
        // This method is invoked when the application has loaded and is ready to run. In this 
        // method you should instantiate the window, load the UI into it and then make the window
        // visible.
        //
        // You have 17 seconds to return from this method, or iOS will terminate your application.
        //
        public override bool FinishedLaunching(UIApplication app, NSDictionary options) {
            global::Xamarin.Forms.Forms.Init();

            ImageCircleRenderer.Init();

            LoadApplication(new App());

            return base.FinishedLaunching(app, options);
        }

        /// <summary>
        /// Gets the window.
        /// </summary>
        /// <returns>UIWindow.</returns>
        [Export("window")]
        public UIWindow GetWindow() {
            return UIApplication.SharedApplication.Windows[0];
        }
    }
}

After that you can start you app and see you advertising without problem. For now :)

Happy coding!

Advertsing

125X125_06

Planet Xamarin

Planet Xamarin

Calendar

<<  September 2017  >>
MonTueWedThuFriSatSun
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

View posts in large calendar

Month List