Benki → Bookmarks

⇠ previous page next page ⇢

“OpenGL ES is a reduced version of the OpenGL graphics standard, suitable for use on small devices like mobile phones. My OCaml interface is provided as a set of patches to LablGL, an OCaml OpenGL interface by Jacques Garrigue and others.

“You can use LablGLES to build OpenGL applications in OCaml for the iPhone and other iOS devices using OCamlXARM, a cross compiler for iOS. You can also use LablGLES to build OpenGL applications for the iOS Simulator using OcamlXSim.

“As of LablGLES 1.1.4, there is also support for compiling and linking under Android. (Android patches were contributed by Paul Snively, psnively@mac.com.)”

“Joose is a complete modern object system for JavaScript based on concepts from many programming languages such as Ruby, Smalltalk, Perl and, well, JavaScript. It provides “keywords” or “syntactic sugar” for class declaration, object construction, inheritance and more. These keywords feel like they become a part of the language and you don’t have to care about the implementation details of all these concepts.

“With Joose, you can concentrate on the logical structure of your code, focusing on “what” rather than “how”. A class definition with Joose reads like a list of very concise English sentences.

“Joose provides complete introspection for all Joose-using classes. This means you can ask classes about their attributes, parents, children, methods, etc., all using a well-defined API.

“Joose is based in large part on the Moose system, which in turn borrows a lot of from Perl 6 object system, as well as drawing on the best ideas from CLOS, Smalltalk, and many other languages.”

“Dj takes the cacaphony of java, git, clojure, clojurescript and build tools and mixes it into something harmonious; a clojure distribution. Clojure is a dynamic language: shouldn’t managing our projects be too? Dj supports the goal of never having to close your REPL.”

“TypeScript is a language for application-scale JavaScript development. TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source.”

“Avian is a lightweight virtual machine and class library designed to provide a useful subset of Java’s features, suitable for building self-contained applications.”

“Drip is a launcher for the Java Virtual Machine that provides much faster startup times than the java command. The drip script is intended to be a drop-in replacement for the java command, only faster.

“Drip is a single bash script and a little bit of C and Java code. It is intended to work with any JVM-based language and anywhere bash is available.”

“Trackpad++ is the world’s first and only alternate Windows 7 / 8 driver for an Apple Multitouch Trackpad (for the pointing device of the Apple Macbook Pro/Air notebooks).”

“Thinking Forth is a book about the philosophy of problem solving and programming style, applied to the unique programming language Forth. Published first in 1984, it could be among the timeless classics of computer books, such as Fred Brooks’ The Mythical Man-Month and Donald Knuth’s The Art of Computer Programming.

“Many software engineering principles discussed here have been rediscovered in eXtreme Programming, including (re)factoring, modularity, bottom-up and incremental design. Here you’ll find all of those and more - such as the value of analysis and design - described in Leo Brodie’s down-to-earth, humorous style, with illustrations, code examples, practical real life applications, illustrative cartoons, and interviews with Forth’s inventor, Charles H. Moore as well as other Forth thinkers.

“If you program in Forth, this is a must-read book. If you don’t, the fundamental concepts are universal: Thinking Forth is meant for anyone interested in writing software to solve problems. The concepts go beyond Forth, but the simple beauty of Forth throws those concepts into stark relief.

“So flip open the book, and read all about the philosophy of Forth, analysis, decomposition, problem solving, style and conventions, factoring, handling data, and minimizing control structures. But be prepared: you may not be able to put it down.

“This book has been scanned, OCR’d, typeset in LaTeX, and brought back to print (and your monitor) by a collaborative effort under a Creative Commons license.”

“cola (aka Idst, Jolt, the SODA languages, &c.) is an ongoing project to create a springboard for investigating new computing paradigms. Everything in it is late-bound, the intention being that any paradigm (existing or yet to be invented, formal complexity notwithstanding) be easily and efficiently mapped to it and made available to the user. It is a small part (the implementation vehicle) of the reinventing computing project.

“The system is slowly evolving towards version 1.0 which

  • is completely self-describing (from the metal, or even FPGA gates, up) exposing all aspects of its implementation for inspection and incremental modification;
  • treats state and behaviour as orthogonal but mutually-completing descriptions of computation;
  • treats static and dynamic compilation as two extremes of a continuum;
  • treats static and dynamic typing as two extremes of a continuum; and
  • late-binds absolutely everything: programming (parsing through codegen to runtime and ABI), applications (libraries, communications facilities), interaction (graphics frameworks, rendering algorithms), and so on.”

“We speak with John Perkins, a former respected member of the international banking community. In his book Confessions of an Economic Hit Man he describes how as a highly paid professional, he helped the U.S. cheat poor countries around the globe out of trillions of dollars by lending them more money than they could possibly repay and then take over their economies. [includes rush transcript]”

“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.”

PostgreSQL is a DBMS that supports many advanced features such as table inheritance. However, the native table inheritance implementation poses several problems when it comes to using it in some real-world projects.

We will describe the problems encountered when using PostgreSQL’s inheritance implementation, then propose a solution to these problems using a set of functions and triggers.

Back in January, I wrote three posts outlinining some ideas I had about a straight-forward, sane way of managing SQL change managment. The idea revolved around specifying scripts to deploy and revert in a plan file, and generating that plan file from VCS history. I still feel pretty good about the ideas there, and work has agreed to let me write it and open-source it. Here is the first step making it happen. I call it “Sqitch.”

Why “Sqitch”? Think of it as SQL changes with Git stuck in the middle. Of course I expect to support VCSs other than Git (probably Subversion and Mercurial, though I am not sure yet), but since Git is what I now have the most familiarity with, I thought it kind of fun to kind of reference a VCS in the name, if only obliquely.

“The Google Authenticator project includes implementations of one-time passcode generators for several mobile platforms, as well as a pluggable authentication module (PAM). One-time passcodes are generated using open standards developed by the Initiative for Open Authentication (OATH) (which is unrelated to OAuth).

“These implementations support the HMAC-Based One-time Password (HOTP) algorithm specified in RFC 4226 and the Time-based One-time Password (TOTP) algorithm specified in RFC 6238.”

currj is an experiment in currying and partial evaluation in Clojure. It currently attempts to support function calls, if, and let. It’s not very well tested, so if you want to use it for something serious you should probably check the output manually.

currj has been pronounced “Courage”. Goals

  • Support for all pure functions.
  • Emit code that is no less efficient than a hand-curried function.
  • Support ClojureScript

An example web site for BrowserID/Mozilla Persona.

“123done.org is a very simple to-do list application. Simply enter your to-do list item above and add it to your tasks. Click the tasks to mark them as done. Clicking an already finished task will remove it from the list.

“Your task list is stored on the computer for you to use. If you want to sync 123done across devices, log in with Mozilla Persona.”

“Immutable vectors are a convenient data structure for functional programming and part of the standard library of modern languages like Clojure and Scala. The common implementation is based on wide trees with a fixed number of children per node, which allows fast indexed lookup and update operations. In this paper we ex- tend the vector data type with a new underlying data structure, Re- laxed Radix Balanced Trees (RRB-Trees), and show how this struc- ture allows immutable vector concatenation, insert-at and splits in O(logN ) time while maintaining the index, update and iteration speeds of the original vector data structure.”

“In my pursuit to understand Git, it’s been helpful for me to understand it from the bottom up — rather than look at it only in terms of its high-level commands. And since Git is so beautifully simple when viewed this way, I thought others might be interested to read what I’ve found, and perhaps avoid the pain I went through finding it.”

“The C++ interactive interpreter cling is based on LLVM and its C++ frontend clang. It will replaces ROOT’s current C++ interpreter CINT. The advantages over CINT are:

  • Production-grade parser.
  • Just-in-time compiler (JIT), allowing e.g. calls into libraries without wrappers. This reduces the dictionary size dramatically.
  • Modular C++ API from the ground up; simplified maintenance.
  • Separate parser and execution engine.
  • C++ 11 support through clang.

“We have announced cling to the public in 2011. cling is in a very usable state; bugs should be reported to the ROOT project here. We are currently working on the integration of cling into ROOT, i.e. replacing CINT. This work is expected to be released as ROOT 6 end of 2012.

”We have installation instructions, both for a stand-alone version of cling and for cling as part of ROOT. There is a list of work items for cling integration into ROOT.”

⇠ previous page next page ⇢