Mar 05 2010 Sometimes, when responding to a support request, it’s nice to see what your users see. At the same time, you don’t want to ask your users for their passwords, out of respect for their privacy. So what do you do? Well, *NIX systems have a program called su. Here’s what man su has to say: NAME su - run a shell with substitute user and group...
After my previous post got posted to reddit, there was a bunch of interesting discussion there about some details I’d handwaved over. This is a quick followup on some the investigation that various people carried out, and the conclusions they reached. In the reddit thread, lacos/lbzip2 objected that in his experiments, he didn’t see tar closing...
Majer and Peliš have proposed a relevant logic for epistemic agents, providing a novel extension of the relevant logic R with a distinctive epistemic modality K, which is at the one and the same time factive (Kφ → φ is a theorem) and an existential normal modal operator (K(φ ∨ ψ) → (Kφ ∨ Kψ) is also a theorem). The intended interpretation is that...
Mar 01 2010 I bet social psychologists are having a field day with the Internet. I know nothing about the field, so I don’t know if there are thousands of papers about it already written or not, but there should be. I can’t image that we’ve ever had a period in history when more communities are being formed; they’re also being formed out in the open. I’ve been involved in many different online communities over the years. I’ve already written before about the...
6.033, MIT’s class on computer systems, has as one of its catchphrases, “Complex systems fail for complex reasons”. As a class about designing and building complex systems, it’s a reminder that failure modes are subtle and often involve strange interactions between multiple parts of a system. In my own experience, I’ve concluded that they’re...
So, you may have noticed that I suddenly started updating this blog for the first time in a while. The reason is that I’ve recently started an ongoing event with a whole bunch of friends around here to encourage us to blog more. Like so many good ideas, it all started with a fundamentally simple premise. On December 21, I sent the following...
This paper shows that once we have propositional constants t (the conjunction of all truths) and u (the disjunction of all untruths), paradox ensues, provided you have a conditional in the language strong enough to give you modus ponens. This is an issue for views like those of Jc Beall, Ross Brady, Hartry Field and Graham Priest.
I’ve been looking for a good solution for versioning and synchronizing my dotfiles between machines for some time. I experimented with keeping all of ~ in subversion for a while, but it never worked out well for me. I’ve finally settled on a solution that I like using git, and so this is a writeup of my workflows for working with my dotfiles in...
I recently talked to a student in my neighborhood about his first programming experiences. They started learning Java at school, and it soon turned out to be horrible. A lot of us learned to code in languages like BASIC or Pascal. There was no object orientation, no sophisticated file I/O and almost no modularization... and it was great. In BASIC...
CVE-2007-4573 is two years old at this point, but it remains one of my favorite vulnerabilities. It was a local privilege-escalation vulnerability on all x86_64 kernels prior to v2.6.22.7. It’s very simple to understand with a little bit of background, and the exploit is super-simple, but it’s still more interesting than Yet Another NULL Pointer...
I took some time away from programming something I hope will become a really good shmup and read the source code of Doom for iPhone. I was very interested in finding out how a pixel oriented engine made the transition to openGL. Here are my notes, as usual I got a bit carried away with the drawings.
After my exams in December, I relaxed by writing a sort of space game using C++/SDL/OpenGL:I ripped the sprites from Space Invaders and Galaga/Galaxian, please forgive me. If whoever wants to play/hack, the source code can be found here:http://github.com/vegard/spaceinvThe video is a bit poor, mostly because the frame rate is supposed to be 60...
In my previous blog post, I discussed how git is distinctive among version control system in the way in which it makes the backend model that is being used to store data the most important element of the tool, and that experts use it by having the complete model in their head, and thinking in terms of operations on this object model, rather than...
I’ve been helping a number of people get started working with git over the last couple of weeks, as Ksplice has brought on some new interns, and we’ve had to get them up to speed on our internal git repositories. (As you might expect from a bunch of kernel hackers, we use git for absolutely everything). While that experience is what prompted this...
In this article, I praise Hartry Field’s fine book Saving Truth From Paradox (Oxford University Press, 2008). I also show that his account of properties is threatened by a paradox, and I explain how we can only avoid this paradox by coming to a clearer understanding the connections between accepting and rejecting (or assertion and denial) and the...
Before studying the iPhone version, it was important for me to understand how Doom engine WAS performing rendition back in 1993. After all the OpenGL port must reuse the same data from the WAD archive. Here are my notes about Doom 1993 renderer, maybe it will help someone to dive in.
Our SMIL implementation passed another little milestone yesterday when we landed syncbase timing. We’ve still got a long way to go but this was always going to be the hardest feature for the timing model.
(This is part three of a multi-part introduction to termios and terminal emulation on UNIX. Read part 1 or part 2 if you’re new here) For my final entry on termios, I will be looking at job control in the shell (i.e. backgrounding and foreground jobs) and the very closely related topic of signal generation by termios, in response to INTR and...
Text files are the single most important way we can communicate with computers. It's no coincidence that they are also the most vital way to interact with other human beings. What we can achieve with text files is invaluable: Write it once and refer to it whenever you want to get the message across in the future. Write a program (it's just text),...
I had to do some low level work with Mac OS X snow-leopard using my MacBookPro CoreDuo2. I learned plenty regarding GAS for i386 and x86_64 but I would not recommend this setup to learn assembly. I think Apple's specific would discourage a beginner and impair ability to use code samples found in most books. I would rather recommend a IBM T42 with...
This paper explores models for arithmetics in substructural logics. In the existing literature on substructural arithmetic, frame semantics for substructural logics are absent. We will start to fill in the picture in this paper by examining frame semantics for the substructural logics C (linear logic plus distribution), R (relevant logic) and CK...
Dec 31 2009 For those of you that don’t know, I’ve taken over a project by someone named _why. He dropped off of the face of the Internet back in March, and the community has picked up his works. Because I’ll be writing about the project in the future, and because I feel these words are still relevant, I’m reprinting the two of his essays that led up to the creation of the project, Hackety Hack, here on my blog. Here’s the second one. Enjoy.
(This is part two of a multi-part introduction to termios and terminal emulation on UNIX. Read part 1 if you’re new here) In this entry, we’ll look at the interfaces that are used to control the behavior of the “termios” box sitting between the master and slave pty. The behaviors I described last time are fine if you have a completely dumb...
Dec 28 2009 For those of you that don’t know, I’ve taken over a project by someone named _why. He dropped off of the face of the Internet back in March, and the community has picked up his works. Because I’ll be writing about the project in the future, and because I feel these words are still relevant, I’m reprinting the two of his essays that led up to the creation of the project, Hackety Hack, here on my blog. Enjoy. The...
If you’re a regular user of the terminal on a UNIX system, there are probably a large number of behaviors you take mostly for granted without really thinking about them. If you press ^C or ^Z it kills or stops the foreground program – unless it’s something like emacs or vim, in which case it gets handled like a normal keystroke. When you ssh to a...
Today I took a day off from work to attend the iPhone Apple Tech Talk 2009 in Toronto. I learned a few cool things and though I should share it with the two lost developers that may stumble on this page. I haven't had time to test and verify all of this so as usual: Do your own testing and trust nobody!.
Dec 02 2009 A short time ago, the G20 came right here to Pittsburgh. With an event of such worldwide importance happening in our backyards, several people decided to document it via social media. The Mattress Factory did a site called “MyG20” and it did pretty well. Some smaller groups did their own thing. But IndyMedia did one better: http://indypgh.org/g20/ The
This short article deals with a severe problem in software development: bit rot. When switching to a new platform (for instance from Windows XP to Windows Vista/7), the programmers need to make sure that old bits of code run flawlessly. There are several ways to achieve this goal that will be discussed in the next...
This note explains an error in Restall’s ‘Simplified Semantics for Relevant Logics (and some of their rivals)’ (Journal of Philosophical Logic 1993) concerning the modelling conditions for the axioms of assertion A → ((A → B) → B) and permutation (A → (B → C)) → (B → (A → C)). We show that the modelling conditions for assertion and permutation...
Time flies like an arrow. Fruit flies like a banana. If you’ve been following my twitter feed, you’d realise I’m still alive. You wouldn’t think that from the activity – or lack thereof – here. (Though a few papers have appeared – or changed their publication status – on my writing page.) Here’s where we are: It’s been a busy, eventful...
Pumped up by the tremendous success of Fluid (4,000,000+ downloads) and Fluid 2 (50,000+ downloads), I started two month ago to write a real game for iPhone: Here is a modest report of my experience in the process.
So I somewhat promised to say something more on my project for the Google Summer of Code.I participated for the first time, and it was really a great experience. This is the first time I've been paid to do what I would probably have done in either case (because I immensely enjoy it), namely to work on an interesting free software project. So this...
Here's the recipe for the Jato IRC logger. Nothing fancy, but works surprisingly well./home/vegard/jato-irc-logger/irssi-config:settings = { core = { real_name = "#jato IRC logger"; user_name = "vegard"; nick = "jato-irc-logger"; }; "fe-text" = { actlist_sort =...
Wow, it has been a long time since I've had anything to say on this particular blog. Another baby (we're at four now) will do that to a guy, I guess. I was going to do a little exploratory coding tonight, and so installed XCode, then MacPorts, then tried to install GHC. MacPorts tells me (after installing most of the components) that "ghc is not...
I just had my tonsils removed and whilst recovering at home I decided to try to figure out how I could use larger CF cards in my Becker Traffic Pro 7949 car audio and navigation system, a close relative to the Becker Cascade. The unit came with maps on a 2GB card which is barely big enough for the maps, leaving not much room for MP3 files. Later...
Philosophers love a priori knowledge: we delight in truths that can be known from the comfort of our armchairs, without the need to venture out in the world for cofirmation. This is due not to laziness, but to two different considerations. First, it seems that many philosophical issues aren’t settled by our experience of the world – the nature of...
Posting has been light, since I’ve been powering through work at the end of the semester, and getting ready for a quick trip west to Europe, for Non-Classical Mathematics 2009 and Logica 2009, preceded by a quick visit to Dresden to see Heinrich Wansing, and to break up the train trip from Frankfurt to Prague. So, posting here has paused for a...
First of all, I should say that on April 22, I went to Denmark to give a talk on kmemcheck. I was invited to DIKU (Datalogisk Institut på Københavns Universitet) by Julia Lawall, who held a workshop on Coccinelle (or, more generally, "finding bugs in operating system software"). It was really nice to be there, not (just) because I got a chance to...
Fluid 2 was released today with plenty of news features, check it out !
This is Part 2 of a series of comments on Ian Rumfitt’s paper “Knowledge by Deduction” (Grazer Philosophische Studien, vol. 77 (2008) pp. 61–84). In Part 1, I focussed on Rumfitt’s direct criticism of my approach in “Multiple Conclusions,” and I tried to show that his criticism missed the mark, and that it missed the mark in an important way....
Thanks to Ole Hjortland, I’ve been alerted to Ian Rumfitt’s paper “Knowledge by Deduction” (Grazer Philosophische Studien, vol. 77 (2008) pp. 61–84.). In it, he makes a number of critical comments on multiple conclusion accounts of logical consequence, and in particular, he makes some critical remarks on my paper “Multiple Conclusions.” Now,...
I’ve been thinking about generalisations of Russell’s paradox, cleaning things up so you can’t get around the problem by changing the logic of connectives. I don’t think that mucking around with negation or implication gets to the heart of the issue. (This view is shared by some very insightful people. I haven’t come to it alone.) Getting...
An evening spent with Unicode charts, HTML, CSS, and JavaScript resulted in this:The online Hiragana tutorIf you find any errors, please tell me.
Version 1.1 is a HUGE success, I've just posted revision 1.2 and started working on 1.3 and 2.0 ! Stay tuned !
For once, developers were able to read the source code of an id software product just a few days after its release. I spent a week in my spare time reading the internal of the Wolfenstein 3D for iPhone engine. It is by far the cleanest and easiest id source code release to date.
Fluid version 1.1 will be released next week. Zen music and changing background...
Earlier today I received the sad news that Bob Meyer, my former colleague at the ANU, and friend, two-time collaborator, died last night, after a long struggle with cancer. Bob will be sorely missed by many of us. His warmth and humour, his brilliance, and his willingness to talk logic (and much more) to anyone and everyone, will all be...
Hurrah for LADSPA.I started (yet another) project, this time it's a sort of audio synthesisizer and sequencer library. I've always been fascinated with digital audio, since there are so many cool things we can do with it! Like e.g. create and apply filters, warp the sound waves any way we want, add cool effects, and generally do things that I...
In this paper I present an account of truth values for classical logic, intuitionistic logic, and the modal logic S5, in which truth values are not a fundamental category from which the logic is defined, but rather, feature as an idealisation of more fundamental logical features arising out of the proof theory for each system. The result is not a...
Allen Hazen pointed me to this nice interview Julian Bagnini conducted with Ernie Lepore, on words. Lepore comes to the same sort of conclusion as Kaplan – that identity conditions for words are tricky. He’s right.
We explain how Eric Mazur’s technique of Peer Instruction may be used to teach philosophy, logic and critical thinking — to good effect.
I found two exploits of the Linux kernel back in January.The first one is a crash in inotify, where a locking imbalance would unlock the inotify mutex twice before returning to userspace. It happens only if the buffer passed to read() was an invalid userspace address. It's fixed in mainline and went into -stable last month (if I recall...
The quote from yesterday’s quiz was from the inimitable David Kaplan, in the article “Words” (Proceedings of the Aristotelian Society, Supplementary Volume, LXIV 1990). As Robbie mentioned in the comments “Words” is such a cool paper. I want to give an example of how cool it is. It’s tempting to think of words, repeatable things that the are,...
Whoever thought that teaching in three subjects, chairing one committee, participating in another one with a honking big project to keep on the rails for the next few months, supervising n research students (for a seriously large value of ‘n’) and trying to keep your research ticking over would keep you busy with work? I did think that. But now...
Here is today’s quiz question. Which master of exposition said this, and where? After arguing for years, unconvincingly, that semantic value (properly understood) is not affected by substitution, I hit upon a brilliant, new, and completely successful, strategy: argue, instead, that semantic value is affected by substitution. Here’s a hint: the...