Weekly links for 2015-08-02

the-art-of-command-line/README.md at master · jlevy/the-art-of-command-line
Fluency on the command line is a skill often neglected or considered arcane, but it improves your flexibility and productivity as an engineer in both obvious and subtle ways. This is a selection of notes and tips on using the command-line that I've found useful when working on Linux.
FizzBuzz - EnterpriseEdition
Enterprise software marks a special high-grade class of software that makes careful use of relevant software architecture design principles to build particularly customizable and extensible solutions to real problems. This project is an example of how the popular FizzBuzz game might be built were it subject to the high quality standards of enterprise software.
Laverna/laverna · GitHub
Laverna is a JavaScript note taking application with Markdown editor and encryption support. Consider it like open source alternative to Evernote. https://laverna.cc/index.html
showterm
gfredericks/test.chuck
string-from-regex is a suspiciously robust generator that will generate strings matching a regular expression

Weekly links for 2015-06-21

Haskell for all: Scrap your type classes
we as Haskell programmers have been conditioned to believe that it is correct and normal to have operators change behavior silently when passed different arguments, which completely subverts type-safety.
GNUemacs: beyond the tutorial
The Emacs tutorial introduces a few tens of commands; this document introduces around a hundred more that I have found useful (in over 25 years of using Emacs).
Unison: Why are we still "compiling" and "building" code?
Compilation, linking, the whole notion of “building” programs being a phase separate from the act of editing them is a relic from the punchcard era
the-art-of-command-line/README.md at master · jlevy/the-art-of-command-line
Fluency on the command line is a skill often neglected or considered arcane, but it improves your flexibility and productivity as an engineer in both obvious and subtle ways. This is a selection of notes and tips on using the command-line that I've found useful when working on Linux.
FizzBuzz - EnterpriseEdition
Enterprise software marks a special high-grade class of software that makes careful use of relevant software architecture design principles to build particularly customizable and extensible solutions to real problems. This project is an example of how the popular FizzBuzz game might be built were it subject to the high quality standards of enterprise software.

Weekly links for 2015-05-12

rudolfochrist/interleave
this Emacs mode .. presents your PDF side by side to an Org Mode buffer with you notes.
abo-abo/hydra
Finally deal with shortcuts in Emacs : a package for GNU Emacs that can be used to tie related commands into a family of short bindings with a common prefix - a Hydra.
Haskell for all: Scrap your type classes
we as Haskell programmers have been conditioned to believe that it is correct and normal to have operators change behavior silently when passed different arguments, which completely subverts type-safety.
KaTeX – The fastest math typesetting library for the web
KATEX The fastest math typesetting library for the web
The Agda Challenge
Agda Challenge This is a proof server. You can enjoy theorem proving here in Agda

Weekly links for 2015-05-04

36-402, Undergraduate Advanced Data Analysis (2013)
The goal of this class is to train you in using statistical models to analyze data — as data summaries, as predictive instruments, and as tools for scientific inference. We will build on the theory and applications of the linear model, introduced in 36-401, extending it to more general functional forms, and more general kinds of data, emphasizing the computation-intensive methods introduced since the 1980s. After taking the class, when you're faced with a new data-analysis problem, you should be able to (1) select appropriate methods, (2) use statistical software to implement them, (3) critically evaluate the resulting statistical models, and (4) communicate the results of their analyses to collaborators and to non-statisticians.
gitignore.io
Create .gitignore files for your project
Firepad - An open source collaborative code and text editor
Real-time collaboration with no server code.
Cookbook - HaskellWiki
Haskell Cookbook
Python to OCaml: retrospective - Thomas Leonard's blog

こにちわ 東京 - Types, universals and existentials

Slides

These are the slides of the presentation I gave at the Tokyo F# meetup.

It was really good to see so many interested people and a real pleasure to connect with the technical crowd of Tokyo, which I never had the occasion before. As usual, Japan was top quality for the people, just like the rest !

Hopefully the event was useful to connect among the functional programmers of the industry and beyond.

Why functional ?

Thinking functionally is useful even for imperative programmer : Just like @Bleis -san mentioned during the event, learning F# is an excellent way to take your C# to the next level.

It is also clear across the board that functional programming is a common theme among the next generation languages. The good news is that the ideas are universal and stand the trial of time, it never gets outdated by a new technology : the ideas you learn in one language are often true in another.

Of course FP can also be appreciated for its own beauty, as it is also a mathematical science which deals with universal truth.

So wether it is for real application or oxygen for the mind, practice your ラジオ体操 [Taiso, a popular morning exercise] for the mind, and collect the stamps, they will stay forever with you and help many around you.

Projection, QR, etc..

A little note about projections using F# to illustrate QR

Covariance and all that

A very little note that can help remembering what Contravariance and Covariance is about.

Huffman coding

In its course on functional programming principles in Scala, Martin Odersky talks about Huffman coding, which showcase a common recursion strategy in FP.

The succinct and nice syntax of F# make it quite simple to write, and we’ll use this as a preparation step to a future illustration of Shannon source coding theorem.

Heaps

Commented F# code for the heap data structure, starting with the leftist tree heap, which exploits a clever recursive scheme.

Reactive programming and iPhone 5S

The new iPhone is a good illustration of why Reactive Programming, meaning having a first class notion of stream, is important. Indeed, the new M7 is really doing just that :

It starts from multiple streams of data, namely acceleration, spatial orientation, and combines them into a higher level representation, to derive streams of activity, say walking, running, driving etc.. The key concept here is the combination, which is really what functional programming and reactive programming stands for.

Another important aspect is that those operations are not happening on a universal microprocessor, but are compiled down to hardware. This view of hardware as being a compiled down version of a function application is a very rich one.

One can indeed come with very precise equivalency rules to transform (in both ways) the functions performed by those reactive programs into a physical layout. cf Gérard Berry in his College de France lecture on Time and Computing for a no-nonsense lesson on this nice perspective (I recommend the french version for francophone..)

One can even express tradeoff between the size of the circuit and how long it will take to compute, and prove functional equivalency between those layouts. Far from being a just a fancy observation, this proves essential when it comes to putting a computer in command of your airplane or nuclear central, where proving the lack of bug is of definite value !

And here is also the key of the M7 chip : by having a hardware specific translation, one can lower the energy consumption of those operations to a minimum, which opens new applications… like a (ultra low power) wearable device !

Weekly links for 2013-09-16

Data Structures and Functional Programming CS312 Home
A course from Computer Science Department- Cornell University
Mathematics for Computer Science - Eric Lehman and Tom Leighton MIT
25 lessons. 1 a day keeps bug away.
The Internet Wishlist
The Internet Wishlist is a collection of ideas for apps and websites people are wishing for. Think of it like a suggestion box for the future of technology. Ideas range from web to mobile, realistic to imaginary, and helpful to humorous. In a world of me-too startups, we hope this project inspires entrepreneurs, developers and designers to innovate and build the products and features that people want. To contribute, post an idea on Twitter and include #theiwl in your tweet
Vagrant
Create and configure lightweight, reproducible, and portable development environments
Statistical Proof-Patterns in Coq/SSReflect
In this paper, we are making the rst steps towards automated detection of signi cant proof patterns in Coq/SSReflect

Weekly links for 2013-06-05

Hamming, "You and Your Research" (June 6, 1995) - YouTube
The Art of Doing Science and Engineering: Learning to Learn" was the capstone course by Dr. Richard W. Hamming (1915-1998) for graduate students at the Naval Postgraduate School (NPS) in Monterey California.
Lecture Notes
Following "introduction to Algorithm" of Cormen in a detailed way
CS281: Advanced Machine Learning
Harvard University, Fall 2011
Computability, inference and modeling in probabilistic programming
Phd thesis by Daniel M. Roy. The basic measure part is an excellent revision !
Formalization of Shannon's Theorems in SSReflect-Coq
Our first contribution is to provide a library of formal de finitions and lemmas for information theory...

Weekly links for 2013-05-05

Coq for POPL Folk
A streamlined interactive tutorial on fundamentals of Coq, focusing on a minimal set of features needed for developing programming language metatheory.
gmarik/vundle
About Vundle is short for Vimb**undle** and is a Vim plugin manager.
Basic Concepts of Flow-Based programming (FBP)
business applications are usually designed starting with data and viewing process as secondary - processes are just the way data is created, manipulated and destroyed
RequestBin — Collect and inspect HTTP requests, debug webhooks
RequestBin lets you create a URL that will collect requests made to it, then let you inspect them in a human-friendly way. Use RequestBin to see what your HTTP client is sending or to look at webhook requests.
Sketchometry
geometry by sketches : intuitive mathematics software for tablets, desktop computers, and whiteboards.

Weekly links for 2013-04-29

Effective Scala
Scala is one of the main application programming languages used at Twitter. Much of our infrastructure is written in Scala and we have several large libraries supporting our use. While highly effective, Scala is also a large language, and our experiences have taught us to practice great care in its application.
submodularity.org: Tutorials, References, Activities and Tools for Submodular Optimization
Similarly to convexity, submodularity allows one to efficiently find provably (near-)optimal solutions
CSCI-6962 Advanced Computer Graphics
CSCI-6962 Advanced Computer Graphics
Edo Liberty's homepage
It turns out the a rather small set of tools gives us many and wonderful abilities. Most of these are randomized in nature
Algorithms and Data Structures
Robert Sedgewick and Kevin Wayne

Weekly links for 2013-04-27

Vundle vs Pathogen - Just lepture
Most people just want an answer. Yes, vundle is better
zaiste/vimified
"Kick-ass Vim configuration framework, built on top of awesome Vundle"
Nanex - Ongoing Research - Market Events and Phenomena.
Ongoing Research - Market Events and Phenomena Our business is supplying a real-time data service comprising trade and quote data for all US equity, option, and futures exchanges. We have archived this data since 2004 and have created and used numerous tools to help us sift through the enormous dataset: approximately 4 trillion quotes and trades as of July 2011. May 6th, had approximately 7.6 billion trade, quote, and depth records.
GeekDesk® Adjustable Height Desks - Why GeekDesk
Give your back a rest, and your body some variety, with our GeekDesk® electric quick-adjustable desk
ETFs: What Does Your Swap Cost? - Seeking Alpha
ETFs: What Does Your Swap Cost? Insightful comments on the inner workings of synth etfs