L

LShift Blog

lshift.net · Company blog · on HN since 2008

LShift, a software consultancy, blogged about programming topics including Python memory leaks, Erlang, Git submodules, and Forth ports.

What HN saysHN commenters link it for its programming language design principles, Python memory leak tracing, a JonesForth port, and a write-up on running scientific code.
41HN people shared it
17linked it in comments
48stories submitted
415story points
10 years agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Tracing Python memory leaks
    3 people · 4 points · first shared 2008 · discussion on HN
  2. 2
    Python quirks
    2 people · 120 points · first shared 2009 · 56 comments on HN
  3. 3
    Memory (speed) matters - even in Erlang
    2 people · 7 points · first shared 2010 · discussion on HN
  4. 4
    LShift: What has happened to the segment registers?
    2 people · 6 points · first shared 2010 · discussion on HN
  5. 5
    Streamlining HTTP
    2 people · 3 points · first shared 2009 · discussion on HN
  6. 6
  7. 7
    Recruitment
    2 people · first shared 2009
  8. 8
    Live updates to meteor from postgres
    2 people · first shared 2013
  9. 9
  10. 10
    Memory matters, even in Erlang (2010)
    1 people · 63 points · first shared 2015 · 70 comments on HN
  11. 11
    Lunchtime hack: My cycling routes
    1 people · 16 points · first shared 2014 · 1 comments on HN
  12. 12
    Toy ray tracer in Python
    1 people · 15 points · first shared 2009 · discussion on HN
  13. 13
    LShift is terrified by asynchronous libraries performance
    1 people · 14 points · first shared 2008 · 9 comments on HN
  14. 14
  15. 15
    Is Twitter search really real time full-text search?
    1 people · 9 points · first shared 2009 · 1 comments on HN

What HN people wrote when they linked it

ljw1001 · 2016-02-07
Here's a few things I found myself, if anyone is interested: Book: MacLellan's Principles of Programming Languages. The principles are listed here: http://www.lshift.net/blog/2006/06/24/bruce-j-maclennans-programming-l… Book: Masterminds of Programming. Interviews with the designers of many languages. Not all equally good. Papers and Media: History of Programming Languages, proceedings 1-3. The third one includes video. (Paywalled -need an ACM subscription) Many classic articles including Kay on Smalltalk, Richie on C, McCarthy on Lisp. Iverson on APL. More recent languages include Haskell, Self, Lua. Many obscure but interesting languages like ZPL, Beta, Modula, etc.
eatmyshorts · 2014-12-23
Remember that Meteor only just reached v1.0. There still is much to come from the platform. Redis support is being implemented currently, and shows great promise: https://groups.google.com/forum/m/#!topic/meteor-core/Jl5Jt739wdA Several people are working to integrate standard SQL support, too: https://github.com/numtel/meteor-mysql http://www.lshift.net/blog/2013/02/25/live-updates-to-meteor-from-post… It was a big concern at first for me, too. But the platform is so much fun to develop with I decided to start developing with it anyways. Seeing the pace at which things are developing with the platform, and knowing about these non-Mongo data store efforts, I am certain that this won't be a drawback for the platform for very long.
amix · 2009-08-31
If you do WSGI web-applications then I can recommend following for debugging memory leaks: * Finding and fixing memory leaks in Python's WSGI applications: http://amix.dk/blog/viewEntry/19420 This is a more general technique on debugging memory leaks using objgraph.py (that can be used in non-WSGI applications): * Tracing Python memory leaks: http://www.lshift.net/blog/2008/11/14/tracing-python-memory-leaks
jbu · 2016-03-31
Here's some documentation of me getting one running. http://www.lshift.net/blog/2015/03/31/lets-run-science-part-iota/ In short, yes they're open, but they tend to be what I call the 'science' coding style.
rwmj · 2015-09-08
Kind of a bunch of work, but at the same time it'd be an interesting learning exercise. There have been ports to quite different architectures, such as PPC and ARM, and one you can run on baremetal RPi: http://www.lshift.net/blog/2007/10/04/jonesforth-ported-to-powerpc-and… https://github.com/M2IHP13-admin/JonesForth-arm https://github.com/phf/forth https://github.com/organix/pijFORTHos
nkurz · 2013-12-16
Jarek (the author) fixed the link and his (very clean) code is available again at: http://www.lshift.net/wp-content/uploads/2013/10/ve.c
yaliceme · 2013-04-22
For non-Mongo DBs: - Dror Matalon figured out how to use MySQL with Meteor. Blog http://www.fastcolabs.com/3007015/how-use-mysql-meteor Github https://github.com/drorm/meteor-sql & Talk http://www.youtube.com/watch?v=dToSn_FOISI&utm_source=buffer&b… - LShift wrote a blog post on how to achieve live updates to Meteor from Postgres http://www.lshift.net/blog/2013/02/25/live-updates-to-meteor-from-post…
masklinn · 2012-08-31
You can use it for unconventional control flows if you wish to. For instance, see [0] which implements dynamically scoped variables on top of conditions. I'm not sure that's overly common, but I'm a smalltalk dilettante [0] http://www.lshift.net/blog/2012/06/27/resumable-exceptions-can-macro-e…
majke · 2012-03-23
If you think NaCL is bloated, Russ Cox's vx32 may be a lightweight answer: http://pdos.csail.mit.edu/~baford/vm/ Some of my experiments: http://www.lshift.net/blog/2010/03/31/what-has-happened-to-the-segment… https://github.com/majek/vx32example
singular · 2011-05-02
rant warning... I tried racket but just could not get namespaces to work, and the tool I was using, ometa for scheme[1] did not want to work properly without them. I spent hours, asked on the chat, read the documentation, etc. but just could not get it working. It felt like a bad omen, and ever since I've unfortunately been put off the language. The whole response I got/the documentation treated the whole thing as 'well it's obvious - foobar the fargle', where 'foobar the fargle' just made no sense to me. Maybe just not clever enough for racket... /rant [1]:http://www.lshift.net/blog/2008/07/01/ometa-for-scheme
timclark · 2010-05-16
Sorry we aren't in Berlin - but LShift are looking for developers in London. http://www.lshift.net/recruitment.html Interesting work done by interesting people.
skorgu · 2009-06-13
Plus it has the added benefit that if you design your architecture with queues as your distribution primitive you can scale across multiple machines pretty easily. There's a mostly drop-in interface [1] to AMQP that mimics the native Python Queue interface. [1] http://www.lshift.net/blog/2009/06/11/python-queue-interface-for-amqp
tonyg · 2009-03-10
"This is largely for people that want to use HTTP as a message-passing protocol, but use it in a bi-directional manner between possibly NAT'd hosts." That is exactly it. You've got it. HTTP makes an almost ideal message passing protocol: it has a rich and battle-tested addressing model; it is asymmetric in a helpful way (really! the response codes are similar to ICMP messages, where the requests are similar to IP datagrams); it is widely supported and deployed; it is content neutral. It doesn't even have to be inefficient ;-) (http://www.lshift.net/blog/2009/02/27/streamlining-http)
hassy · 2009-02-10
1. OO has no precise and universally accepted definition. http://www.paulgraham.com/reesoo.html 2. Parameterized modules in Erlang can be seen as a form of lightweight functional OOP. http://www.lshift.net/blog/2008/05/18/late-binding-with-erlang http://www.erlang.se/workshop/2003/paper/p29-carlsson.pdf
MaulingMonkey · 2016-08-07
I mostly just vacuum up a huge amount of material from as many sources as I can. My focus on game development might help here. A lot of it flows from understanding CPUs from a low level hardware perspective - you might be able to reverse engineer this kind of knowledge from the wikipedia articles, although I haven't tried doing so myself. E.g. the page for "CPU cache" references: - CPUs read/write by cacheline - Caches need to coordinate to avoid stale data through "cache coherence protocols" (which have a cost as mentioned on their own wiki page) "False sharing" is just the interplay of those two mechanisms in worst case scenarios and such corner cases. About the only time I've used this knowledge of false sharing has been when implementing a work-stealing task queue system. And I suppose the few times I've written a parallel for loop of some description. Trying to think of similar performance issues to guide you towards, a few come to mind: 1) CPU caches are basically implemented as fixed sized hashmaps with a really poor hash - the address modulo some power of two, with a fixed limit of collisions supported. http://www.lshift.net/blog/2013/10/08/cpu-cache-collisions-in-the-cont… I've never actually used this knowledge, although I could see it coming up if I were working on the design of a database's in-memory storage or something. 2) Reading "write combined" memory is really bad, including implicitly reading by failing to write entire…
aconbere · 2008-07-31
I'm not sure this is an either or proposition. I haven't seen many message queue protocols with tools for identity, user authentication, federation, etc. I'm also pretty sure that xmpp doesn't even begin to replace message queuing on the backend, but when you look at what folks like EngineYard are doing with it (basically distributing messages), it seems like the value for them was more along the lines of 1) easy ui integration, 2) well understood problems and tools by developers, 3) well understood servers by admins. More on the proposal of mixing the two, the rabbitMQ folks have done some interesting work integrating with xmpp. (See their xmpp transport (http://www.lshift.net/blog/2008/07/01/rabbitmq-xmpp-gateway-released), and rabbiter (http://github.com/tonyg/rabbiter/tree/master). So there we have an interesting mixture of the two technologies, you get the insanely fast message routing and throughput of RabbitMQ while leveraging the tools that xmpp brings with it (users, federation, etc.)

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close