Understand Android security up to 2015 by going to essential.com/about#team and then clicking on "Security".

At OSHUG 58 with to get started with NetBSD on embedded platforms - going to try and run it on a Raspberry Pi 2

oshug.org/event/58

Thinking of trying out a BSD, as a change from Linux. But which is the easiest to transition to? I don't have any "weird" hardware like an Nvidia GPU or anything that isn't well-supported on Linux, just Intel CPU and chipset.

Every time you see a sinusoid, imagine that you are looking at a three-dimensional helix from the side. Those zero-crossings are illusory. The "amplitude envelope" is really just the distance to the time axis of the helix at any point.

A pure cosine becomes a perfect helix. If you change your view so that you are looking down the time axis, the helix looks like a circle. It is a point rotating about the origin over time. This is the fundamental figure of periodicity.

Absolutely fantastic subtitle to the talk "Splitting Polyhedra to Generate More Efficient Code" at IMPACT '17:

"Efficient Code Generation in the Polyhedral Model is Harder Than We Thought"

impact.gforge.inria.fr/impact2

I just went around and did some basic nmap-ing on the most popular Mastodon instances, and there's some seriously sketchy stuff in there. Publicly reachable Postgres servers, tons of open internal HTTP ports, SSH with password login, multiple Mastodon instances that seem to be running on mail server VMs, …

I guess if you're just running a single-user instance for yourself, sure, but those are all 2000+ user instances.

Getting it to actually run some jitted code in upstream Numba should not be too difficult - I left it out of the last PR to break the work up into manageable chunks.

After that, it will be relatively easy to get 90% of tests passing. The next 10% will be the long tail of weird, individual issues :-)

Further from that, I'd then like to make sure it works on Windows and OS X - only been focusing on Linux for now, just to keep the workload manageable.

Show thread

I've recently been making a little progress on upstreaming support for PyPy into Numba and llvmlite.

Initial hacks to get it to work: embecosm.com/2017/01/19/runnin

PR for llvmlite, all tests pass on PyPy! - github.com/numba/llvmlite/pull

PR to get Numba to compile on PyPy: github.com/numba/numba/pull/23

Once these are merged, I'll focus on getting "import numba" to not die on PyPy :-)

@gmarkall also, strong symbols can still override weak ones (w/ --whole-archive) as well as with shared objects.

@gmarkall GNU ld does not care about weak/strong symbols by default in archives, unless --whole-archive is specified.

A strong symbol in an archive will not override an already-encountered weak symbol of the same name when linking.

Why is this? Probably because for efficiency reasons, a strong symbol in a shared library will not override a weak symbol already encountered. So, the static linking behaviour mirrors the dynamic linking behaviour, because it would be weird otherwise.

(probably the answer? I'm open to alternative views)

reading a bunch of comments about Mastodon on tech news sites about how it "will never succeed" or will go extinct. Problem is, that defines Mastodon's success in the metrics of Silicon Valley VC. The point of Mastodon does not appear to be a growth -> exit -> brand vehicle strategy that Twitter has been struggling with.

I'm having a good time here. Isn't that success enough?

Oh, I forgot about llvmlite: llvmlite.readthedocs.io/en/lat - python interface to llvm, very easy to experiment with code generation.

The LLVM Kaleidoscope tutorial implented in Python with llvmlite: github.com/eliben/pykaleidosco

Embecosm application notes: embecosm.com/resources/appnote - in particular EAN 8 on DejaGNU, EAN 10 on implementing LLVM Integrated assembler (note/disclaimer: I work for Embecosm)

... err, that's the ones I can think of off the top of my head. More later if they come to mind.

Show thread

The GCC Internals guide: gcc.gnu.org/onlinedocs/gccint/ - very useful reference for looking up, but not a good tutorial starting point

Essential abstractions in GCC course slides, exercises, notes: cse.iitb.ac.in/grc/gcc-worksho - a little dated now but still excellent starting point for understanding GCC

RISC-V LLVM patches: github.com/lowRISC/riscv-llvm - nice series of patches for understanding how to add a backend to LLVM

Show thread

Some compiler/toolchain readings / resources:

The GCC Python Plugin: gcc-python-plugin.readthedocs. - useful tool for exploring GCC without spending too much time in C! :-)

20-part series on Linkers by Ian Lance Taylor: lwn.net/Articles/276782/ - covers many aspects of static and dynamic linking, is quite brief on many topics

GCC for new contributors: dmalcolm.fedorapeople.org/gcc/ -practical advice for working on GCC

Mastodon

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!