Weekly links for 12/04/03

www.macledkeyboard.com
The Luxeed LED Keyboard has 430 color LEDs beneath the keycaps. The color of each key can be individually configured to match your application or mood
Daphne Koller – Technology as a Passport to Personalized Education – NYTimes.com
As a society, we can and should invest more money in education. But that is only part of the solution. We need to significantly reduce those costs while at the same time improving quality.

Weekly links for 12/03/11

Graphical Models and Inference  MT11
These are the contents of 16 lectures in MT11.
fseye – Ending the era of printf REPL debugging for F# Interactive
FsEye is a visual object tree inspector for the F# Interactive. Taking advantage of the built-in WinForms event loop, it listens for additions and updates to variables within FSI sessions, allowing you to reflectively examine properties of captured values through a visual interface. It also allows you to programmatically add and update eye watches, effectively ending the era of printf REPL debugging.

The Excel Type Provider

There is theory, and then there is practice. Yesterday was theory, today is practice.

Everyone and its dog has to manipulate Excel files. They often contain typed data, in tables. So why not write, in the footsteps of the distinguished, a Type Provider for it ?

So here is a type provider to consume those data from within absolutely any langage supporting Type Providers. Which means F#.

You can specify the workbook name, and then a named range or a sheet (data starts at A1 then), and if the underlying Excel type should be considered or if it should just be seen as a bunch of strings.

The Excel Type Provider : please fork it, improve it, for the greater good.

Type Providers

If you wanted to have access to all the “objects” defined in wikipedia directly from within your programming environment, how would you do it?

Type Providers, a new and promising feature of F#, act like an augmentation of your compiler and IDE, and allow you to import such objects, the ones present now, but also the new one that might be published tomorrow.

They make your IDE/compiler aware of such new types, just like when you add a good old dll to it, except those type are generated “on the fly”, dynamically (from the point of view of the Type Providers that makes this connection and produces the types), but,  from the point of view of your compiler, they are “static”,  just like any other types.

Indeed, the dichotomy between “static” and “dynamic” lays in the eye of the beholder. Even a regular static type from a DLL has to be ‘produced’ in some way, so the “static” only relates to which stages the type is at, and from where you look at it.

This opens a more profound door, which is particularly well placed to become the ‘next thing’ on the internet in my view, and that is ‘execution level’. If it sounds as barbaric as peeer to peer was before people knew what p2p is, it is normal, it is not a coincidence. In order to understand the importance of this idea, we need to step back a bit, understand what happens with types, and then see where we can extend the mechanism.

When we describe actions, we do so using structures that are adressable and recognized as part of the vocabulary of our programming environment.

“Type providers” are mechanism to enrich the vocabulary of this environnement based on a source that we specify in that same environment. the source itself can evolve in time, and the vocabulary added in our environnement will itself evolve in time.

But “type providers” are themselves programs. so we are lead to imagine that there is our direct environment, which we will call the ground 0 level, which is fed vocabulary by an deeper world, level -1.

In order to our program at ground 0 to tun, it needs to make sense from a vocabulary point of view. In order to makes sense, ground -1 has to actually run to provide the types, or vocabulary.  And this idea is naturally extensible to some leve -1, -2, -3 etc..

This is where the peer to peer idea comes into play. If anything the internet is good at dealing with decentralisation. this mostly applied to data. peer2peer showed us that you can really leverage decentralisation to insure that all connection run at their maximum nominal speed. git, and its web counterpart Github nailed it when it comes to decentralized history production. Type Providers, despite their strength, are just a small scale, non recursive, non decentralized, static window into the next big battle, which is “Type production”.

Practically, the centralized nature of programming at binary level is a very concrete and major problem for code production of every nature, as the complexity of modeling a domain grows exponentially with the complexity of the domain itself.

So, watch out, you ain’t seen nothing yet, and the battle has just officially begun.

 

A concrete exemple start at 18′ (wait a few sec after clicking to read)

Weekly links for 12/02/12

Hacker School
Hacker School is a three-month, immersive school for becoming a better programmer. It’s like a writers retreat for hackers. We (Nick, Dave and Sonali) run the program every four months in New York and meet Mondays, Tuesdays, Fridays and Saturdays from 11am to 7pm. We provide space, time to focus, and a friendly community dedicated to self-improvement
Exo7 : Exercices de mathématique
Le projet Exo7 propose aux étudiants des fiches d’exercices de mathématique avec indications et corrections de niveau L1/Math Sup, L2/Math Spé, L3/Licence. Ces fiches sont élaborées, corrigées et validées par des enseignants du supérieur.

Vous trouverez plein d’autres exercices dans Exo7 pour les profs, mais ils ne sont pas tous corrigés.

Nihongo o Narau – Learn Japanese
Welcome to Nihongo o Narau. This site is dedicated to teaching Japanese to speakers of English.
CVXGEN: Code Generation for Convex Optimization
CVXGEN: Code Generation for Convex Optimization
Example: Portfolio optimization
This example, from finance, is a basic portfolio optimization problem. For some more details, see Boyd and Vandenberghe, 4.6.3.
faculty.washington.edu/mfazel/portfolio-final.pdf
Portfolio optimization with linear and fixed
transaction costs
Miguel Sousa Lobo · Maryam Fazel · Stephen Boyd
Biostatistics Ryan Gosling !!!
Biostatistics Ryan Gosling !!!

Weekly links for 11/12/05

Stories In Flight | HTML5/CSS3 Cheatsheet
Here are some simple cut-and-paste examples of HTML5/CSS3 features that are currently (early 2011) usable across a number of web browsers
Courses
Courses. Taught by Hadley Wickham.
Ruby Graph Library
Ruby Graph Library (RGL)

RGL is a framework for graph data structures and algorithms.
The design of the library is much influenced by the Boost Graph Library (BGL) which is written in C++ heavily using its template mechanism. Refer to www.boost.org/libs/graph/doc for further links and documentation on graph data structures and algorithms and the design rationales of BGL.
A comprehensive summary of graph terminology can be found in the the graph section of the Dictionary of Algorithms and Data Structures at www.nist.gov/dads/HTML/graph.html.

Weekly links for 11/11/23

LiteratePrograms:Welcome – LiteratePrograms
LiteratePrograms is a unique wiki where every article is simultaneously a document and a piece of code that you can view, download, compile, and run
Thiel Fellowship
Thiel Fellows are given a no-strings-attached grant of $100,000 to skip college and focus on their work, their research, and their self-education
30 Days to Learn HTML & CSS – Free Tuts+ Premium Course
We created 30 Days to Learn HTML & CSS because we believe everyone has the right to learn how to build wonderful things on the web.
people.rit.edu/jcdicsa/courses/SML/
Statistical Machine Learning // The main materials for the course will be lecture notes, along with supplementary readings from The Elements of Statistical Learning and Convex Optimization
Data mining, forecasting and bioinformatics competitions on Kaggle
Kaggle is a platform for data prediction competitions that allows organizations to post their data and have it scrutinized by the world’s best data scientists. In exchange for a prize, winning competitors provide the algorithms that beat all other methods of solving a data crunching problem.
RSpec Documentation – Relish
This is the official documentation site for RSpec-2. Much of the documentation you see here is written with Cucumber, which, like RSpec, provides executable documentation. The Cucumber features you see here have all been run against RSpec’s codebase, serving as specification, documentation and regression tests of the behavior
Learn Ruby with the EdgeCase Ruby Koans
The Koans walk you along the path to enlightenment in order to learn Ruby. The goal is to learn the Ruby language, syntax, structure, and some common functions and libraries.
#183 Gemcutter & Jeweler – RailsCasts
Gemcutter is a new service for hosting RubyGems, and Jeweler provides an automated way to release versions of a gem.

Weekly links for 11/11/05

Sirupsen and his codeabouts
I’ve always run Ruby, and I’ve always used RVM. But it’s not until recently when I attended Aarhusrb and @chopmo gave a talk on RVM, that I realized how wrong I was using RVM. Basically, I’m somewhat always using system Ruby, installing all gems with sudo
http://puzzlenode.com/
PuzzleNode is a site for coders who enjoy to work on challenging problems, and is inspired by similar efforts such as Project Euler and the Internet Problem Solving Contest . It also serves as an entrance exam of sorts for folks looking to join Mendicant University.
www.math.wustl.edu/~sawyer/hmhandouts/Wishart.pdf
The Jacobian of the Inverse of a Matrix is..

Google Reader wtf ?

The presentation for google reader, using the new style with lots of space is a plain obvious and complete misfit for Google Reader.

Are they trying to kill Reader so that we move on to the half backed Google Plus ??

 

A simple rebase git command to rewrite history

I have a repository in github where I plan to push the work for the exercises of ml-class.org

Having completed the exercises 1 and 2 onto my master branch, here is what my git history looked like :

 (master) $ git lg
* fe0fea7 - (HEAD, master) 0-plot data (Nicolas Rolland 7 days ago)
* da30d65 - 5-6-costfunctionreg et gradient (Nicolas Rolland 7 days ago)
* 6c1f4a3 - 4-predict (Nicolas Rolland 7 days ago)
* 22f6d98 - 2- cost function (Nicolas Rolland 7 days ago)
* c1e50ce - 1-sigmoid (Nicolas Rolland 7 days ago)
* 76c8b48 - 2nd exercize (Nicolas Rolland 7 days ago)
* bf9f683 - normal eqtn price estimation (Nicolas Rolland 8 days ago)
* 5cd7d0b - normal eqtn (Nicolas Rolland 8 days ago)
* 1eefdd5 - estimate house price (Nicolas Rolland 8 days ago)
* b2aca44 - rate learing plot (Nicolas Rolland 8 days ago)
* 617423e - gradientdescentMulti (Nicolas Rolland 8 days ago)
* 1b2d951 - computecostMulti (Nicolas Rolland 8 days ago)
* bba2916 - featurenormalize (Nicolas Rolland 8 days ago)
* fe7ba87 - gradientdescent (Nicolas Rolland 8 days ago)
* 637efdd - computecost (Nicolas Rolland 8 days ago)
* 1d0d2e2 - plotData (Nicolas Rolland 8 days ago)
* dc297c9 - warmup (Nicolas Rolland 8 days ago)
* fd7b7fa - first exercize (Nicolas Rolland 8 days ago)
* 355e42a - first commit (Nicolas Rolland 8 days ago)

That is, a nice sequential history. I decided, for reasons that are still behind my full conscious knowledge at this time, in order to push each exercise independently on github, to create a topic branch for each exercise. Therefore I added some branch, by simply typing

(master) $ git co bf9f
(master) $ git branch exo1
(master) $ git co master
(master) $ git branch exo2

That sets the branch name all right, but my branch exo2 contains the history of exo1.

It turns out it is quite easy to selectively apply only the change from exo1 to exo2 to a certain starting point, in my case, the first commit 355e42 :

 (master) $ git rebase --onto 355e42 exo1 exo2
First, rewinding head to replay your work on top of it...
Applying: 2nd exercize
Applying: 1-sigmoid
Applying: 2- cost function
Applying: 4-predict
Applying: 5-6-costfunctionreg et gradient
Applying: 0-plot data

And voila.
If I check my log I can see :

(exo2) $ git lg
* e3ee4ea - (HEAD, exo2) 0-plot data (Nicolas Rolland 6 seconds ago)
* 3d58766 - 5-6-costfunctionreg et gradient (Nicolas Rolland 6 seconds ago)
* 8743366 - 4-predict (Nicolas Rolland 6 seconds ago)
* 6c327e9 - 2- cost function (Nicolas Rolland 6 seconds ago)
* ac916d3 - 1-sigmoid (Nicolas Rolland 6 seconds ago)
* f3db3f1 - 2nd exercize (Nicolas Rolland 6 seconds ago)
* 355e42a - first commit (Nicolas Rolland 8 days ago)

So my exo2 branch has no knowledge of the modifications from exo1.
I came from a single linear history and split that into 2 different branches independent of each other.