Benki → Bookmarks

⇠ previous page next page ⇢

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

“The KR library is for working with knowledge representations and knowledge bases. Currently it facilitates use of RDF-based representations backed by triple-/quad- stores. It provides a consistent clojure based way of interacting with its backing implementations, which currently include the Jena and Sesame APIs.”

“This simple little tweak lets you create functions which show nice representations when printed rather than just their compiled class.

“Which is nicer, be honest:”

;; raw Clojure behaviour
user> (fn [x] (inc (inc x)))
#<user$eval__1750$fn__1751 user$eval__1750$fn__1751@927e4be>

;; with serializable-fn
user> (require '[serializable.fn :as s])

user> (def dinc (s/fn [x] (inc (inc x))))
(fn [x] (inc (inc x)))

“I’ve already expressed some disappointment in the default multi-monitor behavior in GNOME 3 on the dev’s blog (read: I posted an angry rant in the comments).

“Basically, in GNOME 3, for some reason, they decided the typical use case was for the secondary monitor to stay fixed when switching workspaces, which is the complete wrong setup for someone using dual monitors.

“Luckily, as Pascal points out in the blog’s comments, there’s a setting for this, and the other (ie correct) behavior is actually mutter’s default.

“Luckily, the fix is pretty simple, and will allow workspaces to switch on multiple monitors again!

  1. Download gconf-editor – this is probably available in your distribution’s package manager.
  2. Start gconf-editor – the “Run Command” menu is still available in GNOME 3 by pressing Alt-F2.
  3. In the tree on the left, navigate to /desktop/gnome/shell/windows
  4. UNCHECK the box next to workspaces_only_on_primary”

A webID identity provider implementation written in PHP.

“MyProfile intends to provide a solution for managing the numerous accounts and profiles that users have on the Internet. Its main purpose is to provide a unified user account, or simply ‘user profile’, which as opposed to current ‘silo’ profiles, would really be under the user’s control, on a device controlled by the user.”

“Disper is an on-the-fly display switch utility. It is intended to be used just before giving a presentation with a laptop, when all one wants is that the beamer, which has just been connected, is able to show whatever you prepared.

“Disper gives you the option to either clone all detected displays, or extend the desktop to them. Resolutions are automatically detected. For cloning, the highest common resolution supported by all displays is chosen; for extending every display device gets its highest supported resolution. For special setups requiring more detailed control, one can still use the standard display configuration utilites.

“At the moment nVidia cards are supported, and a basic XRandR backend is in place. The latter is not fully complete and untested since I don’t have the hardware.

“Generally, one would bind disper -c to a shortcut key (or if you rather like to extend your desktop, use disper -e). Without an external display or beamer connected, you’ll get your laptop’s full resolution; when an external display is present, it switches to clone mode after the keypress (or extend, if you configured it that way).”

“Clojure wrapper for the encog (v3) machine-learning framework.

“…

“Encog has been around for almost 5 years, and so can be considered fairly mature and optimised. Apart from neural-nets, version 3 introduced SVM and Bayesian classification. With this library, which is a thin wrapper around encog, you can construct and train many types of neural nets in less than 10 lines of pure Clojure code. The whole idea, from the start, was to expose the user as little as possible to the Java side of things, thus eliminating any potential sharp edges of a rather big librabry like encog.”

“Encog is an advanced neural network and machine learning framework. Encog contains classes to create a wide variety of networks, as well as support classes to normalize and process data for these neural networks. Encog trains using multithreaded resilient propagation. Encog can also make use of a GPU to further speed processing time. A GUI based workbench is also provided to help model and train neural networks. Encog has been in active development since 2008.

“Encog is available for Java, .Net and C/C++.”

“Tiggit is an open source game launcher and installer.

“Our mission: to help you find all the awesome indie games that exist ‘hidden’ around the internet.

“Tiggit is a desktop app that installs and launches games with one click. It is sort of like an open source Steam clone, but much simpler and currently with only freeware games and demos.

“Features:

  • Contains over 300 freeware games (and a few demos)
  • New games added continuously
  • No account or registration required”

“HostBluff was founded on April first of 2012 in order to provide non-existent hosting solutions to our customers. We quickly established ourselves as one of the best known web hosting scams on the internet. While some people call us a scam, others call us an eye opener to expose common hosting scams. We hope you enjoy your stay with HostBluff and ask that you inform other uneducated people about our services.”

⇠ previous page next page ⇢