Introducing the free Microsoft R Client

Over the years, we've shared several posts on using the ScaleR package to import, process, visualize and analyze large data sets with R. Until now, you needed to have access to a Microsoft R Server license to take advantage of the package. Now, you can use all of the capabilities of ScaleR free of charge with Microsoft R Client for Windows, which is available for download now.

Microsoft R Client is a free, community-supported, data science tool for high performance analytics. R Client is built on top of Microsoft R Open so you can use any open source R packages to build your analytics. Additionally, R Client introduces the powerful ScaleR technology and its proprietary functions to benefit from parallelization and remote computing.

R Client allows you to work with production data locally using the full set of ScaleR functions, but there are some constraints. On its own, the data to be processed must fit in local memory, and processing is limited up to two threads for ScaleR functions. To benefit from disk scalability, performance and speed, you can push the compute context to a production instance of Microsoft R Server such as SQL Server R Services and R Server for Hadoop.

Here's a short video that explains the capabilities of Microsoft R Client for local data processing, and how you can push computations to a remote Microsoft R Server for even greater power.

 

If you're new to big-data functions in Microsoft R, a great place to start is the The RevoScaleR Getting Started Guide. If you want to dive deeper, the full documentation set is available on MSDN. To get started with Microsoft R Client, follow the instructions in the installation guide linked below.

MSDN: Install Microsoft R Client on Windows

Apollo 11: do they accept pull requests?

Apollo11

The system responsible for the first moon landing is now readily available online, after an enterprising former NASA intern uploaded the Apollo Guidance Computer code to Github this week.

Although the code for the MIT-designed system has long been available to interested researchers, it's never been quite this at hand. Quartz has an excellent, thorough breakdown, but the jokes and asides are a special point of interest.

Reddit has already taken a look under the hood, and uncovered some of the best tidbits. For one, you'll find "BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc" in there. In another spot, you can see a note about "TRASHY LITTLE SUBROUTINES."

One particularly poetic coder even included a bit of Shakespeare, although the reason for it is a little opaque now:

# THE FOLLOWING QUOTATION IS PROVIDED THROUGH THE COURTESY OF THE AUTHORS.

#

# "IT WILL BE PROVED TO THY FACE THAT THOU HAST MEN ABOUT THEE THAT

# USUALLY TALK OF A NOUN AND A VERB, AND SUCH ABOMINABLE WORDS AS NO

# CHRISTIAN EAR CAN ENDURE TO HEAR."

You can explore the code yourself here.

Continuous: C# and F# IDE for the iPad by Frank A. Krueger

continuous_app

Continuous gives you the power of a traditional desktop .NET IDE - full C# 6 and F# 4 language support with semantic highlighting and code completion - while also featuring live code execution so you don’t have to wait around for code to compile and run. Continuous works completely offline so you get super fast compiles and your code is secure.

Continuous gives you access to all of .NET’s standard library, F#’s core library, all of Xamarin’s iOS binding, and Xamarin.Forms. Access to all of these libraries means you won’t be constrained by Continuous - you can write code exactly as you’re used to.

Real Work, on the iPad

I love the iPad but was still stuck having to lug around my laptop if I ever wanted to do “real work”. Real work, in my world, means programming. There are indeed other IDEs for the iPad: there is the powerful Pythonista app and the brilliant Codea app. But neither of those apps was able to help me in my job: writing iOS apps in C# and F#. I couldn’t use my favorite languages on my favorite device and that unfortunately relegated my iPad to a play thing.

Well it took me a bit of time, but I finally have it: a .NET IDE on the iPad (and phone too!).

But it’s not “just an IDE”. I didn’t want it to simply be sufficient - I wanted it to be great. I also thought it was a nice time to push the state of the art in .NET IDEs a tad.

For ages compiled languages like C# and F# have forced a sequential development loop on programmers: the Code-Compile-Run-Test loop. We code something up, wait for it to compile, then wait for it to deploy and run, then we get to test it.

I hate waiting for compilation and deployment so I designed Continuous to minimize those steps. It does this by eagerly compiling your code - never waiting for you to tell it when to start. It runs your code as soon as those compiles complete successfully and displays the results of that execution right next to your code. Now you can focus on the code and the results of that code instead of being distracted by all the silly machinery of a compiler and IDE.

The benefits of making compilation and execution fast have surprised me. My iPad has become my favorite place to write apps now.

  • The UI is visualized right next to the code that is building it.
  • I am no longer constrained by designers with their static view of the world - the UI objects in Continuous are live and interactive.
  • I can use real code files but still visualize objects out of them as if they were scripts.
  • I can focus on building one screen of my app at a time and see the results without having to navigate from the first screen to see the screen I’m working on over and over.

I could argue that I’m a more efficient programmer thanks to these changes. Perhaps I am more productive. But the truth is, I’m just happier using Continuous. I play with GUIs more now, trying new ideas and tweaking things left and right. It’s quite liberating and plain old fun to get nearly instant feedback on your work.

I hope you find these features as exciting as I do. Please visit the website if you want more details on them, or throw caution to the wind and buy Continuous on the App Store now to see them first-hand.

Standing on the shoulders of giants

Continuous wouldn’t be possible if it wasn’t for .NET’s great open source ecosystem. Continuous uses Roslyn for compiling C# and FSharp.Compiler.Service for compiling F#. Continuous also relies heavily on Cecil (what problem can’t be solved with Cecil?) Also, Xamarin.Forms could only be included thanks to Xamarin open sourcing it.

And of course, none of this would be possible without mono and Xamarin.

Colophon

I wrote Continuous in F# using Xamarin Studio. The code is more functional than object oriented and uses a redux style architecture. I don’t think I could have built such a large app with its sophisticated requirements without F# at my side. Three years ago I wasn’t sure how to write GUI apps in a functional language, now I question why I haven’t always done things this way.

Internet Access Is Now A Basic Human Right

iot-internet-human-right

People may joke that others spend too much time on the internet, but this intricate series of tubes has become an important part of everyday life—so much so that it’s become a human rights violation to take it away.

That’s according to the United Nations Human Rights Council, which passed a non-binding resolution in June that condemns countries that intentionally take away or disrupt its citizens’ internet access.

The resolution was passed last Friday, but was opposed by countries including Russia, China, Saudi Arabia, South Africa, and India. The issue was with the passage that “condemns unequivocally measures to intentionally prevent or disrupt access to our dissemination of information online.”More than 70 states supported the resolutions, according to a statement released by Article 19, a British organization that works to promote freedom of expression and information. Thomas Hughes, the executive director of Article 19, wrote:

“We are disappointed that democracies like South Africa, Indonesia, and India voted in favour of these hostile amendments to weaken protections for freedom of expression online...A human rights based approach to providing and expanding Internet access, based on states’ existing international human rights obligations, is essential to achieving the Agenda 2030 for Sustainable Development, and no state should be seeking to slow this down.”

The resolution notes what many of us already know: It’s important to increase access to the internet, as it “facilitates vast opportunities for affordable and inclusive education globally,” or provides other resources for education, especially across the digital divide. In accordance with the 2030 Agenda for Sustainable Development, the organization also recognized that the spread of technology has the “great potential to accelerate human progress.”

It’s all here: your news organizations, your job-hunting resources, and your credit card statements. It’s become impossible to live without basic internet access.

Other countries have already stressed the importance of open access, including President Barack Obama, who in 2015 said that “today, high speed broadband is not a luxury, it’s a necessity.”

The resolution also highlights a number of issues that need to be addressed, including that the issue of freedom of expression on the internet. Also among the points presented were statements:

  • Calling upon all states to address security concerns in “a way that ensures freedom and security on the Internet,”
  • Ensuring accountability for all human rights violations and abuses committed against persons for exercising their human rights,
  • Recognizing that privacy online is important,
  • Stressing the importance of education for women and girls in relevant technology fields.

The UN can’t enforce resolutions legally. Rather, they’re issued to provide guidelines for participating nations and to put pressure on any that may have dissenting views. These are just general statements on how governments should shape laws when it comes to the internet. It’s nice to see, even if it does little beyond filling a few pieces of digital paper.

The next step is for those countries to start actively addressing problems, including laws pertaining to freedom of expression and how those rights can be abused to spread violence, terrorist ideals, and harassment. The more we discuss the problems that come along with the free reign of the internet, the closer we’ll get to Valhalla (or so I’ve heard).

How to update the data in listview in Xamarin.Forms?

First you add a new class as a ViewModel like:

public class RoomViewModel : BaseViewModel
{
   [here following code]
}

If you don't have BaseViewModel try to download from nuget Refractored.MvvmHelpers. Then in your class define an observable collection like

  public ObservableCollection<RoomRecommandation> _roomSuggestionList = 
               new ObservableCollection<RoomRecommandation>();
  
  public ObservableCollection<RoomRecommandation> Recommendations
  {
     get { return _roomSuggestionList; }
  }

In your ContentPage add a listview like:

<ListView ItemsSource="{Binding Recommendations}">
 <ListView.ItemTemplate>
   <DataTemplate>
     <ViewCell>
       <Grid Padding="10" RowSpacing="10" ColumnSpacing="10">
         <Grid.RowDefinitions>
           <RowDefinition Height="" />
         </Grid.RowDefinitions>
         <Grid.ColumnDefinitions>
           <ColumnDefinition Width="Auto" />
           <ColumnDefinition Width="" />
           <ColumnDefinition Width="Auto" />
         </Grid.ColumnDefinitions>
         <controls:CircleImage Grid.Column="0" BorderColor="#DDD3CB" 
                               BorderThickness="3" WidthRequest="66"
                               HorizontalOptions="CenterAndExpand" 
                               VerticalOptions="CenterAndExpand" 
                               Aspect="AspectFill" 
                               Source="{Binding Image}" />
         <Label Grid.Column="1" Text="{Binding Description}" 
                               VerticalOptions="Start" />
         <Label Grid.Column="2" Text="{Binding Price, StringFormat='£{0}'"
                               FontSize="Small" VerticalOptions="Start" />
        </Grid>
      </ViewCell>
    </DataTemplate>
  </ListView.ItemTemplate>
 </ListView>

Then in your ContentPage code:

  RoomViewModel vm = null;
  public RoomPage ()
  {
      InitializeComponent ();
      LoadData();
  }

  public void LoadData()
  {
      if (vm == null)
      {
          vm = new RoomViewModel();
          BindingContext = vm;
      }
  }

Happy coding!

Microsoft CEO and UWM grad Nadella on Brexit vote: 'We're going to continue to invest'

nadella-satya

Despite international fears about the impact on technology companies of the United Kingdom’s decision to exit the European Union, Microsoft Corp. CEO Satya Nadella this week said the vote will not impact the Redmond, Wash.-based company’s investments – or jobs – in the country.

“When it comes to the U.K., we’ve been there for 30 years and we’re going to continue to invest because it’s a huge market and a place which is pretty core to us,” Nadella said on CNBC. “We’re a global company – 55 percent of our revenues are global – so what happens in Britain and (around) the globe matters a lot to us.”

Microsoft (Nasdaq: MSFT) has more than 3,000 employees in six U.K. offices, according to the company’s website. The country accounts for 7 to 8 percent of Microsoft’s revenue, said Nadella, who's a graduate of the University of Wisconsin-Milwaukee. The company, he said, won’t let the Brexit vote impact investments in the U.K. and won’t remove jobs from the country.

Earlier this year, the company's U.K. chief released a statement, writing a vote to exit the EU could risk investments from Microsoft and other technology companies.

“Our view is that the U.K. should remain in the EU,” Microsoft’s U.K. chief executive Michel Van der Bel wrote. “The U.K. remaining in the EU supports important criteria for continued and future investment by Microsoft and others.”

Seattle-area financial experts said last week it will take years to realize the full effect of the Brexit vote for U.S. companies. Many expect a negative impact on technology companies.

Microsoft says Windows 10 Anniversary Update is coming August 2nd

microsoft-build-2016Windows 10's first big update will arrive August 2nd — or, at least, that's what it sounds like. Microsoft published a blog post earlier today that included only a headline, "Microsoft announces Windows 10 Anniversary Update available Aug. 2," and then pulled the story moments later. It's possible that Microsoft just got the date wrong, but, more likely than not, Microsoft seems to have just clicked the publish button earlier than it meant to. Presumably, a formal announcement will come soon.

Microsoft announced Windows 10's Anniversary Update back in March, during its Build conference. The update puts a major focus on Windows Ink, building out its feature set to make stylus use far more powerful. It also brings extensions to Edge, as well as smaller improvements to Hello and Cortana, along with some minor interface tweaks.

Docker opens up Docker for Windows beta to everyone

DockerHomePage

Programmers and developers have been anxiously waiting for an invite into the Docker application beta since earlier this year. During their announcement video, Docker shared that they had over 30,000 interested parties sign up within hours of the initial announcement. A grand total of 70,000 were able to join the beta to provide feedback and get a hands-on experience with the application. But for those that haven’t gotten in, today they can do so with the open beta announced for Docker on Mac and Windows.

The Docker platform is one of the most versatile means for developers and IT to create and test their application software through multiple devices. Docker boasts that the Windows application will provide better performance and reliability as well as advanced options to change CPU, Memory Usage, and many more tweaks to improve development.

With Docker on Windows, users can expect the same experience they’ve had before with enhancements, including deeper integration of running Docker and native virtualization for the Windows platform. The in-container development makes it possible to auto-update the software within the platform–just a save and refresh after, and the application reflects changes made to the coding without any hassle.

The polyglot environment is a major feature for teams, developers, and organizations that use multiple coding on their projects. Mounted volumes will notify the document when it’s changed. Developers are now able to build applications on a Windows machine without the need to add more frameworks. For example, when a developer writes in Java coding, the application will recognize it as Java coding. The same will occur with other supported languages.

The Docker application for Windows will provide better networking than before with built-in DNS servers and easy use over VPN. It will run with Native Hypervisor Support meaning that minimum specifications require a Windows 10 Pro machine with the latest Hyper-V updates. So what are you waiting for? The Docker public beta can be downloaded from their official website.

Xamarin Forms MasterDetail Page Navigation Recipe

In this recipe I will show you how to add a hamburger menu to your Xamarin Forms application using the MasterDetailPage class. The Xamarin.Forms MasterDetail Page consists of one page for the master and one or more pages for the detail.

When used for the main navigation, as in this recipe, we will have a single master page and 4 detail pages. The code for this recipe comes from the Xamarin Forms CRM sample. I have simplified and streamlined the code, and a full Xamarin Studio solution is included at the bottom of this post.

Xamarin.Forms MasterDetail

Think of the MasterDetailPage as the traffic cop of your application navigation. When a user clicks on the hamburger menu, Xamarin.Forms MasterDetail pushes the menu onto the screen. Then when the user taps on a menu item, MasterDetail creates the target page and pushes it onto the stack. Besides those two things, and some styling, MasterDetail doesn’t do much. Have a look at the code.

public class RootPage : MasterDetailPage
{
	public RootPage ()
	{
		var menuPage = new MenuPage ();
		menuPage.Menu.ItemSelected += (sender, e) => 
                             NavigateTo (e.SelectedItem as MenuItem);
		Master = menuPage;
		Detail = new NavigationPage (new ContractsPage ());
	}

	void NavigateTo (MenuItem menu)
	{
		Page displayPage = (Page)Activator.CreateInstance (menu.TargetType);
		Detail = new NavigationPage (displayPage);
		IsPresented = false;
	}
}

Pretty simple right? The only complicated bit is with the (Page)Activator.CreateInstance (menu.TargetType) part, but if you have been doing C# on .Net for a while, you probably have seen it before. All it is, is another way of creating objects.

MasterBehavior

In Xamarin.Forms 1.3, the Xamarin.Forms MasterDetail MasterDetail Page received a new property called MasterBehavior. This property controls how the menu will react when activated. The enumeration MasterBehavior has a few options and they are:

public enum MasterBehavior
{
    Default,
    Popover,
    Split,
    SplitOnLandscape,
    SplitOnPortrait
}

The normal behavior of the MasterDetailPage in landscape mode is “SplitOnLandscape”. I think splitting is normal when using the MasterDetailPage for detail drill in type navigation but not when using it as a hamburger menu or your apps main navigation. When using the MasterDetailPage for app navigation, I set the behavior to popover.

The Menu Page

The menu page is just what the name implies, it’s the Xamarin Forms page that will be shown when the user clicks the menu button. This is the master part of the Xamarin.Forms MasterDetail Page. Our MenuPage is a simple content page with a StackLayout containing a label and a ListView of our menu items.

Please note the public property Menu. This property allows our MasterDetail page access to the ItemSelected event. When the event is fired, the item selected will be sent to the NavigateTo method on the master detail object.

public class MenuPage : ContentPage
{
	public ListView Menu { get; set; }

	public MenuPage ()
	{
		Icon = "settings.png";
		Title = "menu"; // The Title property must be set.
		BackgroundColor = Color.FromHex ("333333");

		Menu = new MenuListView ();

		var menuLabel = new ContentView {
			Padding = new Thickness (10, 36, 0, 5),
			Content = new Label {
				TextColor = Color.FromHex ("AAAAAA"),
				Text = "MENU", 
			}
		};

		var layout = new StackLayout { 
			Spacing = 0, 
			VerticalOptions = LayoutOptions.FillAndExpand
		};
		layout.Children.Add (menuLabel);
		layout.Children.Add (Menu);

		Content = layout;
	}
}

Menu Item

Menu Item is a simple type that holds our menu data and the most important data is the Target type. When a user clicks on a menu item, the NavigateTo method will create a new page from the TargetType, and push that page onto the stack.

public class MenuItem
{
	public string Title { get; set; }
	public string IconSource { get; set; }
	public Type TargetType { get; set; }
}

Menu List View

The menu list view couldn’t be simpler; we use the built in ImageCell for the rows and set the bindings to the properties on the MenuItem type. We set the first item as the selected item and also used it when constructing the MasterDetail Page initial detail class.

public class MenuListView : ListView
{
	public MenuListView ()
	{
		List data = new MenuListData ();

		ItemsSource = data;
		VerticalOptions = LayoutOptions.FillAndExpand;
		BackgroundColor = Color.Transparent;

		var cell = new DataTemplate (typeof(ImageCell));
		cell.SetBinding (TextCell.TextProperty, "Title");
		cell.SetBinding (ImageCell.ImageSourceProperty, "IconSource");

		ItemTemplate = cell;
	}
}

Menu List Data

The MenuListData class is a data structure holding our applications navigation. In your app you could get this data from the database or configuration file. The menu structure of my application doesn’t change much, so I just use code.

public class MenuListData : List
{
	public MenuListData ()
	{
		this.Add (new MenuItem () { 
			Title = "Contracts", 
			IconSource = "contracts.png", 
			TargetType = typeof(ContractsPage)
		});

		this.Add (new MenuItem () { 
			Title = "Leads", 
			IconSource = "Lead.png", 
			TargetType = typeof(LeadsPage)
		});

		this.Add (new MenuItem () { 
			Title = "Accounts", 
			IconSource = "Accounts.png", 
			TargetType = typeof(AccountsPage)
		});

		this.Add (new MenuItem () {
			Title = "Opportunities",
			IconSource = "Opportunity.png",
			TargetType = typeof(OpportunitiesPage)
		});
	}
}

The Content Pages

These pages are what is created when a user clicks on our menu items.

public class ContractsPage : ContentPage
{
	public ContractsPage (){}
}

public class LeadsPage : ContentPage
{
	public LeadsPage (){}
}

public class AccountsPage : ContentPage
{
	public AccountsPage (){}
}

public class OpportunitiesPage : ContentPage
{
	public OpportunitiesPage (){}
}

Download the source code PSC-MasterDetail.zip (79.74 kb)

Happy coding!

Xamarin Studio: complete uninstall on Mac

Remove these directories:

/Applications/Xamarin Studio.app
/Developer/MonoTouch
/Developer/MonoAndroid
/Library/Frameworks/Mono.framework
/Library/Frameworks/Xamarin.Mac.framework
/Library/Frameworks/Xamarin.Android.framework

Locations in your user directory:

~/Library/Caches/Xamarin
~/Library/Caches/XamarinStudio-4.0
~/Library/Developer/Xamarin
~/Library/Developer/XamarinStudio
~/Library/Logs/Xamarin
~/Library/Logs/XamarinStudio-4.0
~/Library/Preferences/Xamarin
~/Library/Preferences/XamarinStudio-4.0
~/Library/Xamarin
~/Library/Xamarin.Mac
~/Library/MonoTouch
~/Library/MonoAndroid
~/Library/XamarinStudio-4.0

That's all there is afaik.

Advertsing

125X125_06

Planet Xamarin

Planet Xamarin

Calendar

<<  July 2017  >>
MonTueWedThuFriSatSun
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

View posts in large calendar

Month List