Categories
Podcasts

Functional Geekery Episode 51 – Brian Lonsdorf

In this episode I talk with Brian Lonsdorf. We talk his intro to functional programming, introducing functional programming concepts using JavaScript, function composition, pure functions, and when he decides to choose between dynamic and static type systems.

Our Guest, Brian Lonsdorf

@drboolean on Twitter
drboolean on Github
Brian on YouTube

Announcements

PolyConf 2016 will be taking place on June 30th – July 2nd. Visit http://polyconf.com/ to keep updated with news as more details become available.

Curry On is taking place July 18th and 19th in Rome. Visit curry-on.org to find out more and to register.

Full Stack Fest will be hold in Barcelona on September 5-9th. You can check out 2016.fullstackfest.com/call-for-papers —to find out more and submit your paper too.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Brian
Hey Underscore, You’re Doing It Wrong! presentation
Professor Frisby’s Mostly Adequate Guide to Functional Programming
Professor Frisby videos
How Brian got into Functional Programming
LoopRecur
Domain Driven Design
How Brian defines Functional Programming
Sneaking in functional programming “envy” into work in object oriented paradigms
“But language X is not functional”
Feeling of first moving from functional programming from object oriented
Importance of mathematical abstractions and composition
Reasons for choosing JavaScript over other languages for the Mostly Adequate Guide
“this is the leakiest abstraction in the world”
Ramda
David Chambers talking Ramda on Episode 31
“Composability is my number one agenda in the world”
Data.Task
Lazy Streams
Data.Either
Folktale
React vs Elm vs PureScript as in intro to the functional style
RxJS
Thermite in PureScript
Halogen in PureScript
Using FreeMonads for npm build scripts and DevOps work
Salesforce
Transition from dynamic to static types
Theorems for Free! by Philip Wadler
Learn and work at understanding and resolving type signatures
Lessons learned between different languages
John DeGoes’ The Next Great Programming Language presentation
Benefits of Sum and Product Types
Thinking about how to be more inclusive
Tips for others to understand functional programming
Strange Loop’s scholarship program
Be humble and honest about your actual knowledge
Working on a series for egghead.io
“Mostly Adequate Guide is not dead”
RxJS, Highland Streams, Data.Task

As always, a giant Thank You goes to David Belcher for the logo design.

Categories
Podcasts

Functional Geekery Episode 50 – Bridget Hillyer

In this episode I talk with Bridget Hillyer. We talk her introduction to functional programming, ClojureBridge, StrangeLoop, community building, Onyx Platform, and more.

Our Guests, Bridget Hillyer

bridgethillyer on Github

Announcements

PolyConf 2016 will be taking place on June 30th – July 2nd. Visit http://polyconf.com/ to keep updated with news as more details become available.

Curry On is taking place July 18th and 19th in Rome. Visit curry-on.org to find out more and to register.

Full Stack Fest will be hold in Barcelona on September 5-9th. You can check out 2016.fullstackfest.com/call-for-papers —to find out more and submit your paper too.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Bridget
How Bridget was exposed to Clojure
Cognitect
ClojureConj
Why Clojure
“This [Lisp] is too simple”
Lessons applied to work in Java from learning Clojure
Value Objects
“Way more cognisant of state”
Like to see Java now with Java 8
Craig Andera on Episode 2
4Clojure
Clojure Bridge
Overview of what a Bridge is
Rails Bridge
Bridge Foundry
Difference in starting with beginners in programming vs beginners to Clojure
“For people who are new to programming […] it’s really easy to teach them functional programming principles”
Tips for getting started to exposing a Bridge to a new audience
Girl Develop It
Women Who Code
“Make sure to offer something and give something back”
Black Girls Code
National Society for Black Engineers
StrangeLoop
How Bridget got involved with the StrangeLoop conference
Sponsor people to go to conferences
Ruby Central
Hired Ashe Dryden to design scholarship program
Things that we might do that turns people off from the community
The “Smug LISP Weenie” problem
The “True Believer” club
Being introspective on how our reactions are perceived
“We are pushing people away”
Onyx
“It’s just data”
StrangeLoop 2016
StrangeLoop CFP is open through May 9th, 2016
Opportunity Grants are open through May 16th, 2016
Registration opens early June
What kind of talks fit for StrangeLoop
Carin Meier’s talk on Chemical Computing
Carin Meier on Functional Geekery talking about her StrangeLoop talk
Valerie Aurora
Frame Shift Consulting
“Take a few minutes to think about how to make your language community more inclusive”

As always, a giant Thank You goes to David Belcher for the logo design.

Categories
Podcasts

Functional Geekery Episode 49 – Steve Vinoski and Francesco Cesarini

In this episode I talk with Steve Vinoski and Francesco Cesarini. We talk their introduction to Erlang, and designing scalable, reliable systems with Erlang We talk their introduction to Erlang, and designing scalable, reliable systems with Erlang.

Our Guests, Steve Vinoski and Francesco Cesarini

@stevevinoski on Twitter
@FrancescoC on Twitter

Announcements

On May 2nd and 3rd flatMap(Oslo) is taking place in Oslo, Norway. flatMap(Oslo) is a conference about functional programming, mainly on the JVM. The call for speakers is now open. To find out more visit http://2016.flatmap.no for more information, and make sure to use code GEEKERY when registering to find out more.

PolyConf 2016 will be taking place on June 30th – July 2nd. Visit http://polyconf.com/ to keep updated with news as more details become available.

Curry On is taking place July 18th and 19th in Rome. Visit curry-on.org to find out more and to register.

Full Stack Fest will be hold in Barcelona on September 5-9th. You can check out 2016.fullstackfest.com/call-for-papers —to find out more and submit your paper too.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Steve
About Francesco
Erlang Solutions
How Francesco got attracted to Erlang
How Steve got into Erlang
Yaws
“Erlang is actually three things”
Erlang the language
Erlang the virtual machine (The BEAM)
The programming model (OTP)
Akka
Thinking about the system
“Let it crash” mentality
Let It Crash… Except When You Shouldn’t
Designing for failure in your system
Designing for Scalability with Erlang and OTP
Why you need OTP
Fundamentals of Distributed Systems
Fault Tolerance
Two computers for reliability
“What kind of patterns are used in these systems”
How the behaviors work
“You have to know what the system is doing if you are going to scale and be reliable”
Distributed, fault-tolerant, scalable and reliable
Dirty Scheduler in Erlang
Rickard Green’s presentation at Erlang Factory San Francisco 2011
Jesper Louis Anderson’s post on Dirty Scheduler
AUTHD discount for the book on O’Reilly

As always, a giant Thank You goes to David Belcher for the logo design.

Categories
Podcasts

Functional Geekery Episode 48 – Matthias Felleisen

In this episode I talk with Matthias Felleisen. We talk his history with Schemes from The Little Lisper, How to Design Programs, to Typed Racket. We also cover teaching math to middle schoolers with Bootstrap, and using programming to teach problem solving and more.

Our Guest, Matthias Felleisen

Matthias Felleisen’s home page

Announcements

On May 2nd and 3rd flatMap(Oslo) is taking place in Oslo, Norway. flatMap(Oslo) is a conference about functional programming, mainly on the JVM. The call for speakers is now open. To find out more visit http://2016.flatmap.no for more information, and make sure to use code GEEKERY when registering to find out more.

PolyConf 2016 will be taking place on June 30th – July 2nd. The Call For Proposals is now open, and will be taking submissions through the 13th of March. Visit http://polyconf.com/ to keep updated with news as more details become available, and http://eventil.com/events/polyconf-16 to submit your talk proposal.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Matthias
Realm of Racket
Racket
William Byrd episode of Functional Geekery
Matthew Flatt episode of Functional Geekery
How Matthias fell in love with parenthesis
How a Ph.D. works and how Dan Friedman led him through his Ph.D.
Essentials of Programming Languages
Research into continuations
The Little Schemer
How to improve teaching The Little Lisper
Structure and Interpretation of Computer Programs
The Seasoned Schemer
The approach of the Socratic manner in The Little Lisper
The Reasoned Schemer
How to Design Programs
“Students didn’t actually get how to write programs well”
Tinkering vs repeatable design process
Teaching programming to teach mathematics
Using programming to teach problem solving
Bootstrap to teach programming
Learning path from middle school through graduating college
“How ‘Hello, World!’ allows them to view problem solving as a very systematic process”
Relationship of How to Design Programs and PLT Scheme/Racket
“Aiming for a programming language in which it was easy to make little languages”
DrRacket
“Domain Specific Languages […] is the ultimate abstraction”
Types as a tool to express what was in one’s mind when designing software
Typed Racket
How Typed Racket came into being in Racket
Interaction between typed and untyped modules
Importance of new, fresh eyes to explore, stretch, and break Typed Racket
RacketCon
StrangeLoop

As always, a giant Thank You goes to David Belcher for the logo design.

Categories
Podcasts

Functional Geekery Episode 47 – John A. De Goes

In this episode I talk with John De Goes. We cover his introduction to functional programming, reasons for starting a functional programming conference, evolution of LambdaConf, what to look forward to at LambdaConf 2016, the choice to pick PureScript at SlamData, and more.

Our Guest, John De Goes

@jdegoes on Twitter
http://degoes.net/
John on LinkedIn
LambdaConf

Announcements

On May 2nd and 3rd flatMap(Oslo) is taking place in Oslo, Norway. flatMap(Oslo) is a conference about functional programming, mainly on the JVM. The call for speakers is now open. To find out more visit http://2016.flatmap.no for more information, and make sure to use code GEEKERY when registering to find out more.

LambdaConf will be taking place May 26th – 29th in Boulder, Colorado. Keep an eye on lambdaconf.us to find out more and to register, and make sure to use code 10Geekery for 10% off the Standard Self-pay registration..

PolyConf 2016 will be taking place on June 30th – July 2nd. The Call For Proposals is now open, and will be taking submissions through the 13th of March. Visit http://polyconf.com/ to keep updated with news as more details become available, and http://eventil.com/events/polyconf-16 to submit your talk proposal.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About John
SlamData
LambdaConf 2015 episodes, Part 1 and Part 2
How John got into Functional Programming
Mathematica
Haskell
Immutable data structures and recursion instead of loops
Scala
PureScript
“Breaking things down into smaller things we can think about”
Organizing LambdaConf 2014
“A desire to promote functional programming”
Growth of LambdaConf from 2014 to 2015
Being forced to answer “When are we going to be able to register for LambdaConf 2015?”
“We were able to help a lot of people find jobs from LambdaConf 2015”
Zeeshan Lakhani on Lisp Flavoured Erlang at LambdaConf 2015
Emily presentation at LambdaConf 2015
Benefit of cross pollination of ideas across functional programming languages
Feel of Lambda 2016
Beginning Haskell and Intermediate Haskell workshop from Chris Allen and Julie Moronuki
http://haskellbook.com/
Mini Conferences the day before
Workshops
Breaking the tracks into beginner, intermediate, and advanced
Unconference the day after
Why PureScript at SlamData
Haxe
PureScript IRC room
Difference of the semantics between Haskell on GHC and Haskell on JavaScript
Elm
The ability to hire people writing PureScript
“If you pick PureScript, you will have more people apply than you could hire”
“Trying to forever change the way people write frontend software”
“If a big company says ‘Hey, we going to do PureScript’, there’s now risk there”
Discount code for LambdaConf is `10Geekery`
“You really can make a difference”
Importance of sharing knowledge at every level of skill
“I will connect with any software developer on LinkedIn”

As always, a giant Thank You goes to David Belcher for the logo design.

Categories
Podcasts

Functional Geekery Episode 46 – Kurt Schrader

In this episode I talk with Kurt Schrader. We talk about his introduction to Clojure, deciding to build a company on Clojure and Datomic, how Datomic changes your thinking about databases and more.

Our Guest, Kurt Schrader

@kurt on Twitter
Clubhouse

Announcements

On May 2nd and 3rd flatMap(Oslo) is taking place in Oslo, Norway. flatMap(Oslo) is a conference about functional programming, mainly on the JVM. The call for speakers is now open. To find out more visit http://2016.flatmap.no for more information, and make sure to use code GEEKERY when registering to find out more.

LambdaConf will be taking place May 26th – 29th in Boulder, Colorado. Keep an eye on lambdaconf.us to find out more.

PolyConf 2016 will be taking place on June 30th – July 2nd. The Call For Proposals is now open, and will be taking submissions through the 13th of March. Visit http://polyconf.com/ to keep updated with news as more details become available, and http://eventil.com/events/polyconf-16 to submit your talk proposal.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Kurt
How Kurt got into Clojure
Datomic
Being different enough from Java to force people to think differently
“We can always fall back to a Java library”
Cascalog
“This is just math”
Selling Clojure across the company
Deciding to build a company and start with Clojure
“There was that question of would we be able to hire people”
“You use Clojure? I want to do that”
The Python Paradox
Cursive
Using Datomic for historical view of data
“There is a self selecting group of people who want to use Datomic”
What is Datomic and what it gets you
Queries go through memory on a local box
Transition in thinking when using Datomic
You stop over thinking queries
Datalog
“You start to ask yourself ‘Why did I do thinks the old way?'”
Thinking about how to take advantage of availability of historical data
Get out into meetups and grow the community

As always, a giant Thank You goes to David Belcher for the logo design.

Categories
Podcasts

Functional Geekery Episode 45 – Brooklyn Zelenka

In this episode I talk with Brooklyn Zelenka. We talk her introduction to functional programming, various user groups she has started, her consultancy Robot Overlord, and her Monad Nomad tour.

Our Guest, Brooklyn Zelenka

@expede on Twitter
expede on Github
@hailrobo on Twitter
robot-overlord on Github
Vancouver FP
Vancouver Erlang & Elixir
Code & Coffee – Vancouver

Announcements

Erlang Factory San Francisco will be taking place on the 10th and 11th of March, with training on the 7th through the 9th of March and the 14th through the 16th of March. Listeners get 10% off registration when using code FunctionalGeekery10.

On May 2nd and 3rd flatMap(Oslo) is taking place in Oslo, Norway. flatMap(Oslo) is a conference about functional programming, mainly on the JVM. The call for speakers is now open. To find out more visit http://2016.flatmap.no for more information, and make sure to use code GEEKERY when registering to find out more.

LambdaConf will be taking place May 26th – 29th in Boulder, Colorado. Keep an eye on lambdaconf.us to find out more.

PolyConf 2016 will be taking place on June 30th – July 2nd. The Call For Proposals is now open, and will be taking submissions through the 13th of March. Visit http://polyconf.com/ to keep updated with news as more details become available, and http://eventil.com/events/polyconf-16 to submit your talk proposal.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Brooklyn
What Brooklyn has been up to since her previous appearance on Functional Geekery
Interest in Elixir for pulling in Rubyist to functional programming.
Generalized Algebraic Data Types
Idris
Brooklyn’s journey into functional programming
Music Theory and programming
Common Lisp
Haskell
Clojure
First exposure to Common Lisp from JavaScript
The Little Schemer – 4th Edition
Transition from Common Lisp exposure to Haskell
“I was told ‘This is notoriously difficult’, so I had to learn it”
Starting the Vancouver Functional Programming User Group
Doing Monads in Ruby
Popularity of functional programming in companies in Vancouver
Strategies for learning new languages
Safari Books Online
exercism.io
“Learning how to do things idiomatically in that language”
Witchcraft monad library for Elixir
Impact on functional programming experience on JavaScript programming
React
Redux
Using React as a stepping stone to introduce functional style in JavaScript
lodash
Immutable.js
reagent
Om
Kicking off her Monad Nomad tour
The Monad Nomad on medium.com
LambdaConf 2016
Robot Overlord
Robot Overlord on medium.com
[email protected]
Build a community around functional programming

As always, a giant Thank You goes to David Belcher for the logo design.

Categories
Podcasts

Functional Geekery Episode 44 – Michael Craig

In this episode I talk with Michael Craig. We talk his introduction to Haskell, doing Haskell on the side and it’s impact on his Ruby and Java, using Haskell in production, getting new people up to speed with Haskell, and more.

Our Guest, Michael Craig

@mkscrg on Twitter
Wagon
Wagon blog

Announcements

ElixirDaze will be taking place March 4th in St. Augustine, Florida. ElixirDaze is a one day conference with a nearly full day of talks and a Helping Hack session to close it out. Visit elixirdaze.com to find out more.

Erlang Factory San Fransisco will be taking place on the 10th and 11th of March, with training on the 7th through the 9th of March and the 14th through the 16th of March. The Call for Talks is now open through December 15th, and the Very Early Bird registration is open as well.

LambdaConf will be taking place May 26th – 29th in Boulder, Colorado. Keep an eye on lambdaconf.us to find out more.

PolyConf 2016 will be taking place on June 30th – July 2nd. The Call For Proposals is now open, and will be taking submissions through the 13th of March. Visit http://polyconf.com/ to keep updated with news as more details become available, and http://eventil.com/events/polyconf-16 to submit your talk proposal.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Michael
Wagon
Michael’s introduction to Haskell
Michael’s introduction to functional programming in Lisp before Haskell
“Functional programming in the small”
Balance between working in Haskell vs Ruby or Java
Trade-off between working in dynamic and static languages
How Haskell influenced daily work in Java and Ruby
Working on Wagon in Haskell
30,000 foot view of server and client
How Wagon’s Haskell web app is structured
Warp
WAI
Handler Monad using a monad transformer to structure a web app
“Real world Haskell”
Deploying an application in Haskell
Amazon’s Elastic Beanstalk
Docker
Electron
Atom
Chromium
Node.js
Squirrel
Wagon’s functional style of JavaScript
Ramda
Underscore and Lodash
Flow
React and Redux
Limiting side effects in JavaScript
Bringing people up to speed in Haskell
Learn You a Haskell for Great Good
What I Wish I knew When Learning Haskell by Stephen Diehl
Running client side Haskell and cross-platform support
Stack
Cabal
Structuring Haskell and JavaScript in an Electron app
Wagon blog
Jobs at Wagon in San Fransisco
Bay Area Haskell Users Group
Reexamine you assumption about Haskell not being useful for real world apps

As always, a giant Thank You goes to David Belcher for the logo design.

Categories
Podcasts

Functional Geekery Episode 43 – Brujo Benavides

In this episode I talk with Brujo Benavides. We talk his history with Erlang, work with Inaka, community growth of Erlang, Erlang tooling, and importance of running Dialyzer on your codebase, and more.

Our Guest, Brujo Benavides

@elbrujohalcon on Twitter
elbrujohalcon on GitHub
elbrujohalcon on About Me
Inaka
@inaka on Twitter
Inaka on GitHub
Erlang Solutions

Announcements

Compose :: Conference will be taking place Thursday, Feb. 4th and Friday, Feb. 5 of 2016 in New York City. Compose is a conference for typed functional programmers, focused specifically on Haskell, OCaml, F#, SML, and related technologies. To find out more and to register, visit http://www.composeconference.org/

LambdaDays 2016 will be taking place on the 18th and 19th of February in Kraków, Poland. The CFP and registration has opened, so make sure to visit lambdadays.org to find out more. And make sure to use code FunkyGeekz4dWin to get 10% off registration.

:clojureD 2016 will be taking place on the 20th of February in Berlin, Germany. The CFP has opened, so make sure to visit www.clojured.de/ to find out more.

ElixirDaze will be taking place March 4th in St. Augustine, Florida. ElixirDaze is a one day conference with a nearly full day of talks and a Helping Hack session to close it out. Visit elixirdaze.com to find out more.

Erlang Factory San Fransisco will be taking place on the 10th and 11th of March, with training on the 7th through the 9th of March and the 14th through the 16th of March. The Call for Talks is now open through December 15th, and the Very Early Bird registration is open as well.

LambdaConf will be taking place May 26th – 29th in Boulder, Colorado. Keep an eye on lambdaconf.us to find out more.

PolyConf 2016 will be taking place on June 30th – July 2nd. The Call For Proposals is now open, and will be taking submissions through the 13th of March. Visit http://polyconf.com/ to keep updated with news as more details become available, and http://eventil.com/events/polyconf-16 to submit your talk proposal.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Brujo
Coming from Visual Basic and .NET into Functional Programming
Inaka
How Brujo got into first Haskell and then Erlang
Getting into the mindset of processes and concurrency
Fortune of first working in Erlang for a Voice Over IP telephony app
Being the sole Erlang developer at Inaka
Chad DePue and Erlang Inside
Benefit of enhancing a existing codebase and having something to compare against
Whisper
MochiWeb
Cowboy
How Inaka ramps up a new Erlang developer
sumo_db
Erlang Solutions
What the adoption of Erlang from clients looks like
Getting developers at clients up to speed in Erlang
Robert Virding
View of community growth of Erlang over past five years
Brujo and Inaka’s work on tooling
Hound CI for Ruby
Elvis
Elvis Rules
Style Guides for Erlang
xref
Dialyzer
Gadget
xref_runner
erl_tidy
Swagger
cowboy-trails
sumo_rest
hex.pm
Hackage in Haskell
erlang.mk
Rebar 3
hexer
Reconciling usage of build tools for Erlang
Importance of using Dialyzer on Erlang projects
Getting started with Dialyzer
erlang-kantana
Erlang Factory San Fransisco
Importance of understandable clear code for your projects
elbrujohalcon everywhere
Erlang Solutions new website

As always, a giant Thank You goes to David Belcher for the logo design.

Categories
Podcasts

Functional Geekery Episode 42 – Claudia Doppioslash

In this episode I talk with Claudia Doppioslash. We talk about how she first got into functional programming; her experience with Clojure, Haskell, Idris, Erlang, Elixir, LFE, and Elm; Static vs Dynamic Types; and her goal of showing Functional Reactive Programming as a good way to do game development.

Our Guest, Claudia Doppioslash

@doppioslash on Twitter
http://blog.doppioslash.com/
@lambda_cat on Twitter
http://www.lambdacat.com/

Announcements

Compose :: Conference will be taking place Thursday, Feb. 4th and Friday, Feb. 5 of 2016 in New York City. Compose is a conference for typed functional programmers, focused specifically on Haskell, OCaml, F#, SML, and related technologies. To find out more and to register, visit http://www.composeconference.org/

LambdaDays 2016 will be taking place on the 18th and 19th of February in Kraków, Poland. The CFP and registration has opened, so make sure to visit lambdadays.org to find out more. And make sure to use code FunkyGeekz4dWin to get 10% off registration.

:clojureD 2016 will be taking place on the 20th of February in Berlin, Germany. The CFP has opened, so make sure to visit www.clojured.de/ to find out more.

ElixirDaze will be taking place March 4th in St. Augustine, Florida. ElixirDaze is a one day conference with a nearly full day of talks and a Helping Hack session to close it out. Visit elixirdaze.com to find out more.

Erlang Factory San Fransisco will be taking place on the 10th and 11th of March, with training on the 7th through the 9th of March and the 14th through the 16th of March. The Call for Talks is now open through December 15th, and the Very Early Bird registration is open as well.

LambdaConf will be taking place May 26th – 29th in Boulder, Colorado. The CFP is currently open, and keep an eye on lambdaconf.us to find out more.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Topics

About Claudia
How Claudia got into functional programming
The Boo programming language
idris-cil
Experience first getting into Clojure
Liverpool Clojure Dojo
Clojure on Android
FunctionalKats
Advantage of having REPL for development workflow
Arcadia (on gitter)
Emacs+Clojure REPL on Oculus Rift
What about Lisps attracted her to them
Haskell
Idris and dependent types
Haskell Programming by Chris Allen and Julie Moronuki
Julie Moronuki and Chris Allen on Episode 19
Progressive Typing
Claudia’s Dynamic Typing vs Static Typing experience
Change of mindset between Clojure vs Haskell vs Erlang
Thinking of failure upfront
Elixir
Good job that Elixir has done with the learning materials
Lisp Flavoured Erlang
Leiningen
Structure and Interpretation of Computer Programs in LFE
Elm
Functional Reactive Programming
Gradual learning curve for ease of adoption and productivity
Goal of games being written in functional programming languages
Elise Huard’s Game Programming in Haskell
Cambridge DDD Nights
Claudia’s video on Elm’s Time Travelling Debugger

As always, a giant Thank You goes to David Belcher for the logo design.