Phillip Trelford's Array

POKE 36879,255

Introducing FunSharp

FunSharp is a new cross-platform open source graphics library, based on Small Basic’s library, with a typed API crafted for the sharp languages, F# and C#.

Drawing graphics is quick and easy:

GraphicsWindow.FillEllipse(10,10,300,300)

And when you ask FunSharp to draw graphics it will just go and open a window to view it for you:

Purple_Circle

FunSharp provides similar functionality to Python’s PyGame, used for developing games, and Processing used for visual art.

You can call FunSharp immediately from the F# REPL or build full-blown applications using F# and C#.

It’s an ideal library for beginners or anyone who just wants  to get stuff on the screen quickly.

With this in mind FunSharp works seamlessly on Raspberry Pi, Linux and Windows.

Getting Started

If you haven’t already, you’ll need to install F# on your machine, follow these instructions:

  • Linux (for Raspbian follow the Debian instructions)
  • Windows (install Xamarin Studio or Visual Studio)

Get the FunSharp source from GitHub using Clone or Download Zip, then load the FunSharp solution into MonoDevelop or Visual Studio and starting playing with the samples.

Notes:

  • FunSharp is built on Mono’s cross platform graphics libraries Xwt and Gtk# libraries which must be referenced.
  • currently apps must run in 32-bit mode.

Turtles

FunSharp has a Turtle module, which can be used to make fun shapes:

Turtle.X <- 150.
Turtle.Y <- 150.
for i in 0..5..200 do
   Turtle.Move(i)
   Turtle.Turn(90)

Renders:

Turtle_Example

Games

FunSharp can be used to make games quickly and easily. I’ve ported several games written for Small Basic requiring only minor modifications:

Asteroids

Have fun!

Developer Conferences on a Shoestring

Over the years the number of developer conferences seems to have multiplied so much so that there seems to be one on every day of the week. But many of the big name developer conferences charge north of 1000GBP/EUR/USD to attend their spectacles. So why would you attend a developer conference and can it be done on a shoestring?

Why attend?

Recently Ryan Riley asked that very question on Twitter:


There were some great responses:





Seems like there some great reasons why you'd attend.

Where does your money go?

Most speakers don’t charge to talk at an event, although many events will cover their travel and accomodation. Costs wise this leaves hiring a venue, refreshments, organization and advertising.

Unfortunately the balance sheets of most big name events are less than transparent, although Greg Young may be about to change that:


Can I do it on a shoestring?

As well as charging for tickets, many conferences receive money from sponsorship. For some conferences this, along with the sterling efforts of volunteers, covers some or all of the cost. Others offer great early bird discounts for those who book well in advance, meaning you can go to a conference without breaking the bank.

Here’s a selection of keenly priced events I’ll be attending over the next half year or so:

Conference Location Date Cost
Functional Kats Dublin, Ireland 12 Sep 25EUR
DDD East Anglia Cambridge, UK 26 Sep FREE
Bristech Conference Bristol, UK 15 Oct 50GBP
CodeMesh London, UK 3-4 Nov 499GBP
Build Stuff Lithuania 18-22 Nov 420EUR
F# Tutorials London, UK 7-8 Dec 195GBP (early bird)
nor(DEV):con Norwich, UK 25-27 Feb ‘16 55GBP (early bird)

 

Do you have any reasonably priced conferences you’d like to share?

Flappy

This week I ran a half-day hands on games development session at the Progressive .Net Tutorials hosted by Skills Matter in London. I believe this was the last conference to be held in Goswell Road before the big move to an exciting new venue.

My session was on mobile games development with F# as the implementation language:


Here’s a quick peek inside the room:


The session tasks were around 2 themes:

  • implement a times table question and answer game (think Nintendo’s Brain Training game)
  • extended a simple Flappy Bird clone

Times table game

The motivation behind this example was to help people:

  • build a simple game loop
  • pick up some basic F# skills

The first tasks , like asking a multiplication question, could be built using F#’s REPL (F# Interactive) and later tasks that took user input required running as a console application.

Here’s some of the great solutions that were posted up to F# Snippets:

To run them, create a new F# Console Application project in Xamarin Studio or Visual Studio and paste in the code (use the Raw view in F# Snippets to copy the code).

Dominic Finn’s source code includes some fun ASCII art too:

// _____ _   _ _____ _____ _____  ______  _  _   _____  _____ _     
//|  __ \ | | |  ___/  ___/  ___| |  ___|| || |_|  _  ||  _  | |    
//| |  \/ | | | |__ \ `--.\ `--.  | |_ |_  __  _| | | || | | | |    
//| | __| | | |  __| `--. \`--. \ |  _| _| || |_| | | || | | | |    
//| |_\ \ |_| | |___/\__/ /\__/ / | |  |_  __  _\ \_/ /\ \_/ / |____
// \____/\___/\____/\____/\____/  \_|    |_||_|  \___/  \___/\_____/
//  

Flappy Bird clone

For this example I sketched out a flappy bird clone using Monogame (along with WinForms and WPF for comparison) with the idea that people could enhance and extend the game:

image

Monogame lets you target multiple platforms including iOS and Android along with Mac, Linux, Windows and even Rapsberry Pi!

The different flavours are available on F# Snippets, simply cut and paste them into an F# script file to run them:

All the samples and tasks are also available in a zip: http://trelford.com/ProgNet15.zip

Have fun!