Another Word For It Patrick Durusau on Topic Maps and Semantic Diversity

December 24, 2013

How to Host Your Clojure App on OpenShift

Filed under: Clojure,OpenShift — Patrick Durusau @ 5:16 pm

How to Host Your Clojure App on OpenShift by Marek Jelen.

From the post:

Today we shall explore deploying a Clojure application on top of OpenShift. We will use Leiningen to manage the applications. This is not the only way to deploy Clojure applications so I will explore more options in following parts of this (mini)series.

Very much a “hello world” type introduction but it is motivation to sign up for an OpenShift account. (Online accounts are free.)

In fact, to complete the demo you will need an OpenShift account.

After signing up, you can deploy other Clojure apps from the books you got as presents!

Enjoy!

December 22, 2013

Spectrograms with Overtone

Filed under: Clojure,Music — Patrick Durusau @ 8:55 pm

Spectrograms with Overtone by mikera7.

From the post:

spectrograms are fascinating: the ability to visualise sound in terms of its constituent frequencies. I’ve been playing with Overtone lately, so decided to create a mini-library to produce spectrograms from Overtone buffers.

spectrogram

This particular image is a visualisation of part of a trumpet fanfare. I like it because you can clearly see the punctuation of the different notes, and the range of strong harmonics above the base note. Read on for some more details on how this works.

Spectrograms (Wikipedia), Reading Spectrograms, and Spek – Acoustic Spectrum Analyser, are just a few of the online resources on spectograms.

Here’s your chance to experiment with a widely used technique (spectrograms) and practice with Clojure as well.

A win-win situation!

Clojure Cookbook – Update

Filed under: Clojure,Functional Programming,Programming — Patrick Durusau @ 3:52 pm

Clojure Cookbook: Recipes for Functional Programming by Luke vanderHart and Ryan Neufeld.

clojurecookbook

In June of 2013 I pointed you to: GitHub clojure-cookbook for the project developing this book.

O’reilly has announced that the early release version is now available and the projected print version is due out in March of 2014 (est.).

If you have comments on the text, best get them in sooner rather than later!

December 15, 2013

Clojure from the ground up

Filed under: Clojure,Programming — Patrick Durusau @ 8:21 pm

Clojure from the ground up by Kyle Kingsbury.

From the post:

This guide aims to introduce newcomers and experienced programmers alike to the beauty of functional programming, starting with the simplest building blocks of software. You’ll need a computer, basic proficiency in the command line, a text editor, and an internet connection. By the end of this series, you’ll have a thorough command of the Clojure programming language.

The current posts look good and I am looking forward to further posts in this series.

December 5, 2013

SICP in Clojure – Update

Filed under: Clojure — Patrick Durusau @ 5:25 pm

In my post, SICP in Clojure, I incorrectly identified Steve Deobald as the maintainer of this project.

The original maintainer of the project placed a link on the site saying that Steve is the maintainer.

That is not correct.

Apologies to Steve and apologies to my readers who were hopeful this project would be going forward.

Any thoughts on moving this project forward?

I think the idea is a very sound one.

PS: Unlike many media outlets, I think corrections should be as prominent as the original mistakes.

December 1, 2013

SICP in Clojure

Filed under: Clojure,Programming,Scheme — Patrick Durusau @ 5:44 pm

SICP in Clojure by For reasons unknown, the maintainer posted a link to Steve Deobald as the maintainer. Sorry Steve!

From the webpage:

This site exists to make it easier to use Clojure rather than Scheme while working through SICP. The folks behind SICP were kind enough to release it under a Creative Commons Attribution-Noncommercial 3.0 Unported License, which will allow me to annotate the text and adapt its source code and exercises to fit the Clojure language.

Structure and Interpretation of Computer Programs, or SICP, is widely considered one of the most influential texts in computer science education. If you believe Peter Norvig, it will change your life. MIT Scheme, a minimalist dialect of Lisp, is used for all code examples and exercises.

Clojure is a “modern” Lisp that runs on the Java Virtual Machine. Its speed, easy access to Java libraries, and focus on concurrency make it an appealing language for many applications.

This site exists to make it easier to use Clojure while working through SICP. The folks behind SICP were kind enough to release it under a Creative Commons Attribution-Noncommercial 3.0 Unported License, which will allow me to annotate the text and adapt its source code and exercises to fit the Clojure language.

All credit, of course, belongs to the authors: Harold Abelson and Gerald Jay Sussman, with Julie Sussman.

As you will find at the status page, there is much work left to be done on this remarkable project.

Any thoughts on how to move this project forward? Such as having the real maintainer stand up?

November 29, 2013

Overtone 0.9.0

Filed under: Clojure,Functional Programming,Mathematics,Music,Music Retrieval — Patrick Durusau @ 9:24 pm

Overtone 0.9.0

From the webpage:

Overtone is an Open Source toolkit for designing synthesizers and collaborating with music. It provides:

  • A Clojure API to the SuperCollider synthesis engine
  • A growing library of musical functions (scales, chords, rhythms, arpeggiators, etc.)
  • Metronome and timing system to support live-programming and sequencing
  • Plug and play MIDI device I/O
  • A full Open Sound Control (OSC) client and server implementation.
  • Pre-cache – a system for locally caching external assets such as .wav files
  • An API for querying and fetching sounds from http://freesound.org
  • A global concurrent event stream

When I saw the announcement for Overtone 0.9.0 I was reminded it was almost a year ago that I posted: Functional Composition [Overtone/Clojure].

Hard to say if Overtone will be of more interest to musicians who want to learn functional programming or functional programmers who want a deeper understanding of music or people for who the usual baseball, book publishing, web pages, etc., examples just don’t cut it. 😉

While looking for holiday music for Overtone, I did stumble across:

Music: a Mathematical Offering by Dave Benson.

At over 500 pages, this living text is also for sale in hard copy by Cambridge University Press. Do us all a favor and if the electronic version proves useful to you, ask your library to order a hard copy. And/or recommend it to others. That will encourage presses to continue to allow electronic versions of hard copy materials to circulate freely.

If you are interested in the mathematics that underlie music or need to know more for use in music retrieval, this is a good place to start.

I struck out on finding Christmas music written with Overtone.

I did find this video:

I would deeply appreciate a pointer to Christmas music with or for Overtone.

Thanks!


Update: @Overtone tweeted this link for Christmas music: …/overtone/examples/compositions/bells.clj.

Others?

November 13, 2013

Exploring football …[with]… Clojure and friends

Filed under: Clojure,Graphs,Neo4j — Patrick Durusau @ 5:44 pm

Exploring football data & ranking teams using Clojure and friends by Mark Needham.

U.S. readers be forewarned that Mark doesn’t use the term “football” as you might expect. Think soccer.

A slide deck on transforming sports data with Clojure and using Neo4j (graph database) for storage and queries.

Sports are popular topic so the results could ease others into Clojure and Neo4j.

November 10, 2013

Erik Meijer and Rich Hickey – Clojure and Datomic

Filed under: Clojure,Datomic,Programming — Patrick Durusau @ 2:12 pm

Expert to Expert: Erik Meijer and Rich Hickey – Clojure and Datomic

From the description:

At GOTO Chicago Functional Programming Night, Erik Meijer and Rich Hickey sat down for a chat about the latest in Rich’s programming language, Clojure, and also a had short discussion about one of Rich’s latest projects, Datomic, a database written in Clojure. Always a pleasure to get a few titans together for a random discussion. Thank you Erik and Rich!

A bit dated (2012) but very enjoyable!

November 3, 2013

Learn X in Y minutes Where X=clojure

Filed under: Clojure,Programming — Patrick Durusau @ 5:11 pm

Learn X in Y minutes Where X=clojure

From the post:

Get the code: learnclojure.clj

Clojure is a Lisp family language developed for the Java Virtual Machine. It has a much stronger emphasis on pure functional programming than Common Lisp, but includes several STM utilities to handle state as it comes up.

This combination allows it to handle concurrent processing very simply, and often automatically.

The post concedes this is just enough to get you started but also has good references to more materials.

Useful for the holidays. Like playing chess without a board, you can imagine coding without a computer. Could improve your memory. 😉

October 16, 2013

Titanium

Filed under: Clojure,Graphs,Titan — Patrick Durusau @ 4:24 pm

Titanium

From the homepage:

Clojure library for using the Titan graph database, built on top of Archimedes and Ogre.

The Get Started! page is slightly more verbose:

This guide is meant to provide a quick taste of Titanium and all the power it provides. It should take about 10 minutes to read and study the provided code examples. The contents include:

  • What Titanium is
  • What Titanium is not
  • Clojure and Titan version requirements
  • How to include Titanium in your project
  • A very brief introduction to graph databases
  • How to create vertices and edges
  • How to find vertices again
  • How to execute simple queries
  • How to remove objects
  • Graph theory for smug lisp weenies

You may also like:

Read doc guides

Join the Mailing List (Google group)

October 15, 2013

Diving into Clojure

Filed under: Clojure,Lisp,Programming — Patrick Durusau @ 7:44 pm

Diving into Clojure

A collection of Clojure resources focused on “people who want to start learning Clojure.”

There are a number of such collections on the Net.

It occurs to me that it would be interesting to mine a data set like Common Crawl for Clojure resources.

Deduping the results but retaining the number of references to each resource for ranking purposes.

That could be a useful resource.

Particularly if all the cited resources were retrieved, indexed, mapped and burned to a DVD as conference swag.

September 29, 2013

JavaZone 2013

Filed under: Clojure,Java,Scala — Patrick Durusau @ 4:35 pm

JavaZone 2013 (videos)

The JavaZone tweet I saw earlier today said five (5) lost videos had been found so all one hundred and forty-nine (149) videos are up for viewing!

I should have saved this one for the holidays but at one or two a day, you may be done by the holidays! 😉

September 3, 2013

Elastisch 1.3.0-beta2 Is Released

Filed under: Clojure,ElasticSearch — Patrick Durusau @ 6:47 pm

Elastisch 1.3.0-beta2 Is Released

From the post:

Elastisch is a battle tested, small but feature rich and well documented Clojure client for ElasticSearch. It supports virtually every Elastic Search feature and has solid documentation.

Solid documentation. Well, the guides page says “10 minutes” to study Getting Started. And, Getting Started says it will take about “15 minutes to read and study the provided code examples.” No estimate on reading the prose. 😉

Just teasing.

If you are developing or maintaining your Clojure skills, this is a good opportunity to add a popular search engine to your skill set.

August 28, 2013

Functional Composition [Coding and Music]

Filed under: Clojure,Functional Programming,Music — Patrick Durusau @ 4:12 pm

Functional Composition by Chris Ford.

From the summary:

Chris Ford shows how to make music starting with the basic building block of sound, the sine wave, and gradually accumulating abstractions culminating in a canon by Johann Sebastian Bach.

You can grab the source on Github.

Truly a performance presentation!

Literally.

Chris not only plays music with an instrument, he also writes code to alter music as it is being played on a loop.

Steady hands if nothing else in front of a live audience!

Perhaps a great way to interest people in functional programming.

Certainly a great way to encode historical music that is hard to find performed.

Casting SPELs In LISP

Filed under: Clojure,Lisp — Patrick Durusau @ 2:40 pm

Casting SPELs In LISP by Conrad Barski, M.D.

From the homepage:

Anyone who has ever learned to program in Lisp will tell you it is very different from any other programming language. It is different in lots of surprising ways- This comic book will let you find out how Lisp’s unique design makes it so powerful!

There are other language versions, Emacs Lisp, Clojure Lisp and Turkish.

Understand I am just taking Dr. Barski’s word for the Turkish version being the same as the original text. I don’t read Turkish.

If you prefer playful ways to learn a computer language, this should a winner for you!

August 26, 2013

Video lectures & presentations about Clojure

Filed under: Clojure,Programming — Patrick Durusau @ 8:00 pm

Video lectures & presentations about Clojure by Alex Ott.

From the webpage:

On this page I tried to collect links to all existing video materials about Clojure — video-lectures & tutorials, presentations at conferences, etc. if you have more links to video materials, please leave them in comments to this page!

You will find the following types of content:

  • Lectures, Tutorials and Screencasts
  • Videos from Clojure user groups
  • ClojureScript
  • Clojure-related
  • Datomic

Bookmark this one!

August 6, 2013

PLOP – Place Oriented Programming

Filed under: Clojure,Functional Programming — Patrick Durusau @ 5:57 pm

The Value of Values by Rich Hickey.

Description:

Rich Hickey compares value-oriented programming with place-oriented programming concluding that the time of imperative languages has passed and it is the time of functional programming.

A deeply entertaining keynote by Rich Hickey on value based programming.

I do have a couple of quibbles, probably mostly terminology, with his presentation.

My first quibble is that Rich says that values are “semantically transparent.”

There are circumstances where that’s true but I would hesitate to make that claim for all values.

Remember that Egyptian hieroglyphs were “translated” centuries before the Rosetta Stone was found.

We don’t credit those earlier translations now but I don’t sense that a value can be “semantically transparent” (when written) and then become “semantically opaque” at some point and then return to “semantic transparency” at some future point.

How would we judge the “semantic transparency” of any value, simply upon receipt of the value?

If the Egyptian example seems a bit far fetched, what about the number 42?

In one context it meant: Year of the Consulship of Caesar and Piso.

In another context, it was the answer to the Ultimate Question of Life, the Universe, and Everything.

In another context, it was Jackie Robinson‘s number.

In yet another context, it is the natural number immediately following 41 and directly preceding 43 (Now there’s a useful definition.).

So I would say that values are not semantically transparent.

You?

My second quibble is with Rich’s definition of a fact to be: “an event or thing known to have happened or existed”

That is a very impoverished notion of what qualifies as a fact.

Like the topic map definition of a subject, I think a fact is anything a user chooses to record.

If on no other basis than some particular user claimed the existence of such a “fact.”

Rich closes with a quote from Aldous Huxley: “Facts do not cease to exist because they are ignored.”

I would paraphrase that to read: Facts do not cease to exist because of narrow definitions of “fact.”

Yes?

July 22, 2013

Clojure Documentation

Filed under: Clojure,Functional Programming — Patrick Durusau @ 3:56 pm

Clojure Documentation

From the webpage:

Welcome to the community-driven documentation site for the Clojure programming language.

Read, use, contribute. What more could you want?

July 15, 2013

Purely Functional Data Structures in Clojure: Red-Black Trees

Filed under: Clojure,Functional Programming,Haskell — Patrick Durusau @ 3:34 pm

Purely Functional Data Structures in Clojure: Red-Black Trees by Leonardo Borges.

From the post:

Recently I had some free time to come back to Purely Functional Data Structures and implement a new data structure: Red-black trees.

Leonard continues his work on Chris Okasaki’s Purely Functional Data Structures.

Is a functional approach required for topic maps to move beyond being static digital artifacts?

June 13, 2013

Clojure Cookbook

Filed under: Clojure,Programming — Patrick Durusau @ 9:39 am

Clojure Cookbook

From the webpage:

Clojure Cookbook is coming

And we need your help.

We want this O’Reilly cookbook to be a comprehensive resource containing the collective wisdom of Clojurists from every domain. That’s why we want to write it together, as a community.

Share some code. Explain it. Be a part of Clojure history.

Clojure Cookbook

Cool!

GitHub clojure-cookbook.

April 11, 2013

Clojure Data Analysis Cookbook

Filed under: Clojure,Data Analysis — Patrick Durusau @ 6:01 am

Clojure Data Analysis Cookbook by Eric Rochester.

I don’t have a copy of Clojure Data Analysis Cookbook but strongly suggest that you read the sample chapter before deciding to buy it.

You will find that two chapters, Chapter 6, Working with Incanter Datasets and Chapter 7, Preparing for and Performing Statistical Data Analysis with Incanter out of eleven are focused on Incanter.

The Incanter site, incanter.org, bills itself as “Incanter Data Sorcery.”

If you go to the blog tab, you will find the most recent entry is December 29, 2010.

Twitter tab shows the most recent tweet as July 21, 2012.

The discussion tab does point to recent discussions but since the first of the year (2013) it has been lite.

I am concerned that a March, 2013 title would have two chapters on what appears to not be a very active project.

Particularly in a rapidly moving area like data analysis.

March 20, 2013

“Functional Programming for…Big Data”

Filed under: BigData,Cascading,Cascalog,Clojure,Functional Programming,Scala,Scalding — Patrick Durusau @ 3:27 pm

“Functional Programming for optimization problems in Big Data” by Paco Nathan.

Interesting slide deck, even if it doesn’t start with high drama. 😉

Covers:

  1. Data Science
  2. Functional Programming
  3. Workflow Abstraction
  4. Typical Use Cases
  5. Open Data Example

The reading list mentioned in these slides makes a nice self-review course in data science.

The Open Data Example is for Palo Alto but you can substitute a city with open data closer to home.

February 24, 2013

Purely Functional Data Structures in Clojure: Leftist Heaps

Filed under: Clojure,Functional Programming,Haskell — Patrick Durusau @ 6:01 pm

Purely Functional Data Structures in Clojure: Leftist Heaps by Leonardo Borges.

From the post:

Last year I started reading a book called Purely Functional Data Structures. It’s a fascinating book and if you’ve ever wondered how Clojure’s persistent data structures work, it’s mandatory reading.

However, all code samples in the book are written in ML – with Haskell versions in the end of the book. This means I got stuck in Chapter 3, where the ML snippets start.

I had no clue about Haskell’s – much less ML’s! – syntax and I was finding it very difficult to follow along. What I did notice is that their syntaxes are not so different from each other.

So I put the book down and read Learn You a Haskell For Great Good! with the hopes that learning more about haskell’s syntax – in particular, learning how to read its type signatures – would help me get going with Puretly Functional Data Structures.

Luckily, I was right – and I recommend you do the same if you’re not familiar with either of those languages. Learn You a Haskell For Great Good! is a great book and I got a lot out of it. My series on Monads is a product of reading it.

Enough background though.

The purpose of this post is two-fold: One is to share the github repository I created and that will contain the Clojure versions of the data structures in the book as well as most solutions to the exercises – or at least as many as my time-poor life allows me to implement.

The other is to walk you through some of the code and get a discussion going. Hopefully we will all learn something – as I certainly have when implementing these. Today, we’ll start with Leftist Heaps.

This sounds like a wonderful resource in the making!

I first saw this at Christophe Lalanne’s A bag of tweets / February 2013.

February 13, 2013

Streaming Histograms for Clojure and Java

Filed under: Clojure,Graphics,Java,Visualization — Patrick Durusau @ 2:36 pm

Streaming Histograms for Clojure and Java

From the post:

We’re happy to announce that we’ve open-sourced our “fancy” streaming histograms. We’ve talked about them before, but now the project has been tidied up and is ready to share.

PDF & CDF for a 32-bin histogram approximating a multimodal distribution.

The histograms are a handy way to compress streams of numeric data. When you want to summarize a stream using limited memory there are two general options. You can either store a sample of data in hopes that it is representative of the whole (such as a reservoir sample) or you can construct some summary statistics, updating as data arrives. The histogram library provides a tool for the latter approach.

The project is a Clojure/Java library. Since we use a lot of Clojure at BigML, the readme’s examples are all Clojure oriented. However, Java developers can still find documentation for the histogram’s public methods.

A tool for visualizing/exploring large amounts of numeric data.

January 28, 2013

Building a grammar for statistical graphics in Clojure

Filed under: Clojure,Graphics — Patrick Durusau @ 1:19 pm

Building a grammar for statistical graphics in Clojure by Kevin Lynagh.

From the description:

Our data is typically optimized for use by computers; what would it be like if we optimized for humans? This talk introduces a grammar of graphics for concisely expressing rich data visualizations. The grammar, implemented in Clojure, consists of simple data structures and can be used across the JVM and via JSON. This talk will cover principles of effective data visualization and the benefits of using data structures as an “API”. There will be lots of pictures and a touch of code.

Fear not! It isn’t dull at all.

Part 1 starts with a quick overview of visualization followed by aesthetic rules for graphics and short discussion of D3 and solutions.

Part 2 is starts with mentions of: The Grammar of Graphics by Leland Wilkinson and Ggplot2 : elegant graphics for data analysis by Hadley Wickham. Kein doesn’t like the R logo (I don’t guess you can please everyone) and R in general.

Suggests that a more modern language, Clojure, which is based on Lisp (another modern language?) ;-), is easier to use. I leave religious debates about languages to others.

I do think he has a good point about decomplecting functions.

More materials:

Handout for the presentation. Useful additional references.

Slides for the presentation.

C2PO (in private alpha). The Clojure library demonstrated in the presentation.

December 4, 2012

Functional Composition [Overtone/Clojure]

Filed under: Clojure,Functional Programming,Music — Patrick Durusau @ 6:06 am

Functional Composition by Chris Ford.

From the webpage:

A live-coding presentation on music theory and Bach’s “Canone alla Quarta” by @ctford.

Based on Overtone:

Overtone is an open source audio environment being created to explore musical ideas from synthesis and sampling to instrument building, live-coding and collaborative jamming. We use the SuperCollider synth server as the audio engine, with Clojure being used to develop the APIs and the application. Synthesizers, effects, analyzers and musical generators can be programmed in Clojure.

Come and join the Overtone Google Group if you want to get involved in the project or have any questions about how you can use Overtone to make cool sounds and music.

An inducement to learn Clojure and to better understand the influence of music on the second edition of HyTime.

I first saw this in Christophe Lalanne’s A bag of tweets / November 2012.

November 10, 2012

Behind the Mirror

Filed under: Clojure,Editor — Patrick Durusau @ 4:39 pm

Behind the Mirror by Chris Granger.

Summary:

Chris Granger discusses the need for enhancing the learning tools starting from his own experience watching through a mirror people trying to solve problems at Microsoft.

A compelling presentation about principles for IDEs via TECO, through Visual Studio and ending up with Clojure.

Chris argues we should be able to hide, foreground and manipulate abstractions as part of an IDE.

I see potential for interactive topic map authoring where the state of the map only a round trip to the server behind the user.

October 5, 2012

Memobot

Filed under: Clojure,Data Structures,Redis — Patrick Durusau @ 2:53 pm

Memobot

From the webpage:

Memobot is a data structure server written in clojure. It speaks Redis protocol, so any standard redis client can work with it.

For interests in data structures, Clojure or both.

October 1, 2012

Clojure Koans

Filed under: Clojure — Patrick Durusau @ 4:39 pm

Clojure Koans

You may find this useful.

Note that you get a direct link to the site. I don’t try to trap you in a frame for my site.

I first saw this at DZone.

« Newer PostsOlder Posts »

Powered by WordPress