377 stories
·
4 followers

hobbes, Morgan Stanley OSS

1 Comment and 2 Shares

For the last few years, we at Morgan Stanley have been developing hobbes -- a programming language, JIT compiler, and database system. It has developed into a critical piece of infrastructure in our low-latency, high-volume trading applications, and we have decided to release the source code to the public on github (currently can be built for recent Linux and macOS platforms):

github.com/Morgan-Stanley/hobbes

The database system is a lightweight (self-contained, header-only) library used by applications to efficiently log structured (binary) data over shared memory to minimize application latency and reflect application type structure as accurately as possible in log files. We use this to record a very detailed image of application state over time, which we analyze/query out of band.

The JIT compiler can be used embedded in another application (e.g. to "hot patch" an application with very efficient, precisely typed intercepts) or as a standalone interactive interpreter (e.g.: to monitor and query application log data).

The programming language is a variant of Haskell (HM type inference, algebraic data types, qualified types / type classes) with some adjustments to help reduce boilerplate and derive very efficient machine code. For example, we use "structural" record, variant, and (iso-)recursive types to represent data as it's naturally represented in applications and can be deconstructed generically at compile time (e.g. a record can be printed if its first field can be printed and its rest can be printed, a variant can be printed if its first case can be printed and its rest cases can be printed, a recursive type can be printed if its one-step unrolling can be printed, etc).

We are actively using this on major projects, we will continue to develop this github project as we need new features, and we are interested in engaging others outside of the firm for their thoughts, feedback, and hopefully pull requests. :)

Read the whole story
sness
4 days ago
reply
very cool
Share this story
Delete

Simple Voltage Sequencer for Moog Mother-32

1 Share


A simple voltage sequence for Moog Mother-32 and other devices. The cost is very low, and the concept is somewhat expandable. No additional power supply is used. Instead, the VC Mix Output is used to power the sequencing circuit, consisting of a 40106 oscillator, a 4040 counter and a 4051 multiplexer.







Read the whole story
sness
12 days ago
reply
Share this story
Delete

True Calling

1 Share

True Calling

It’s Jenkins the Office Cat!

Read the whole story
sness
33 days ago
reply
Share this story
Delete

Saturday Morning Breakfast Cereal - Virginity

6 Shares


Click here to go see the bonus panel!

Hovertext:
The real trick is demanding diamonds in order to avoid things you already thought were gross.

New comic!
Today's News:

Have I mentioned lately that me and Kelly wrote a book about future science and technology that's LOADED with brand new comics? It's called SOONISH, and jeez, we'd appreciate if you'd grab a copy.

 

Read the whole story
sness
76 days ago
reply
Share this story
Delete

Borrow Your Laptop

3 Comments and 10 Shares
If used with software that could keep up, a scroll wheel mapped to send a stream of 'undo' and 'redo' events could be kind of cool.
Read the whole story
sness
135 days ago
reply
xbai
122 days ago
Lol, exactly
Share this story
Delete
3 public comments
Covarr
140 days ago
reply
You have to hold down the fn key to type letters, otherwise it treats them as though you are holding down alt.
Moses Lake, WA
Lythimus
140 days ago
reply
Ha, I have a very sensitive mouse, an ergonomic keyboard, and type in dvorak. I'm not proud of it, but at least no one will use my computer.
zippy72
140 days ago
I've been considering disembowelling one of my keyboards to make it an HCESAR layout...
matthiasgoergens
139 days ago
Ditch the mouse and go with a trackball---for extra nerd cred.
Lythimus
139 days ago
@matthiasgoergens I've only tried Microsoft's D67-00001, but I loved it. I'm using a Mionix Avior 7000 which is more suited for small hands with long fingers and am digging it.
alt_text_bot
141 days ago
reply
If used with software that could keep up, a scroll wheel mapped to send a stream of 'undo' and 'redo' events could be kind of cool.
Fidtz
141 days ago
You can try this in any app if your mouse allows full re-mapping. Gaming mice (e.g. Razer) allow this. I don't recommend it tho.
jepler
140 days ago
yeah you'd have to make sure this was meta-bucky-mousewheel, not just plain mousewheel. all you emacs users out there know what I mean. On the other hand, I'm not sure what you do with software like vim that has a redo-forest instead of one and only one redo.
kbenson
140 days ago
Crap. Now I need to look up vim redo. To be clear, this is only a bad thing because I have a feeling I'll soon be kicking myself for shortsightedness that persisted for well over a decade.
infini
140 days ago
I have a Finnish language keyboard set to international keyboard which i'm able to use because I'm a touch typist. Today's cartoon speaks to me :D

SIM Card Cutter

1 Share

Did you know you can cut a regular size phone SIM card to a micro or nano size SIM card and it will still work? This tool will help you do it. Just stick a SIM card in it press it down like a stapler. It will punch out a perfectly shaped micro or nano SIM. I’ve used it many times when swapping SIMs from one phone to another.

This inexpensive kit also comes with adapters that convert a nano SIM into a micro SIM or a regular SIM, or a micro SIM into a regular SIM. In short, all your SIM needs are taken care of. It even comes with a tool to remove a SIM from your phone. (You could use a paperclip if you don’t have a tool like this, but this is stiffer and easier to use).

-- Mark Frauenfelder

Sim Card Cutter with Nano-Micro, Nano-Standard, Micro-Standard Sim Adapters ($8)

International Amazon link

Available from Amazon

Read the whole story
sness
135 days ago
reply
Share this story
Delete
Next Page of Stories