Mac Quirks I shan’t miss

In no particular order

  • “Put-back” from Trash is not available >50% of the time
  • Cut-paste does not exist - moving files is painful; drag-drop is no solution, since the windows dance around uncontrollably.
  • Needing to buy software, find hacks, or create hacks to fix these things which should work properly out-of-the-box
  • No Winamp alternative (cmus via homebrew comes closest)
  • region locked dvd player
  • no mode configuration for wireless adapter
  • unofficial package managers, and outdated versions of gcc & other essential tools

Though on the other hand I will miss:

  • killer apps, such as the Omni products, Smartr, .. actually I’ve been weening myself off mac apps lately so I’m not too worried about this
  • it-just-works drag-and-drop support. It’s hard to explain this to non-mac users. Basically when you drag-and-drop an application (unless badly written, e.g. Mendeley desktop client) will do what you want it to do, rather than something stupid
  • it-just-works in general, when it does
  • Keyboard shortcuts. I’ve been using Windows through VMware Fusion, and text editing in MS Word HURTS. I need to find a fix for that fast, though will mostly be working in Linux where it should be fine.
  • the cosmetics (fonts, desktop wallpapers, etc)

It’s going to be interesting switching back.

0 notes

Breadth-first search

“Practice writing every day”. Sure, why not; though I think now-and-then is more achievable. I certainly need to practice.

I don’t think I will get chance to see my supervisor before heading back to the UK on Tuesday night, but was pleasantly surprised to see his name crop up in the minutes of the recent Barrelfish workshop in Cambridge. I hadn’t realised he was so involved, thinking he was more interested because of the Haskell connection. That he’s doing both is great.

As far as the work goes, I’m waiting on my new laptop to build Barrelfish, but have started looking into GHC, the main Haskell compiler / interpreter distribution. There have been a few projects on parallelism, concurrency and asynchrony for GHC; for now I have names and pages, but haven’t looked into them extensively (will involve paper reading, code assessment, and deciding whether their infrastructure fits with what I’m trying to achieve).

Communicating Haskell Processes (CHP) is a CSP inspired concurrency library. It’s likely synchronous to some extent (as is CSP), but given that Barrelfish operates in a synchronous environment that’s ok. It still seems to tick the no-shared-state box, concentrating on encapsulated processes and communication. Barriers rather than message-passing though. More reading needed.

Glasgow Distributed Haskell (GdH) don’t know much about this yet, high-level seems to resemble combining OpenMP with MPI. From what I’ve read elsewhere I don’t think Haskell’s parallelism is inherently so different from OpenMP, aside from “sparks” being very lightweight relative to omp’s threads?

And here’s the important one: Notes on Porting GHC to Barrelfish - it’s apparently out-of-date, but people on the mailing list suggested it as a good way to start, and that I might be able to get in touch with the author. Will try this out first, and see how it goes. If GHC won’t build all of the spinoff projects become somewhat moot.

There’s also the various concurrency and parallelism libraries to think about too; Haskell has Software Transactional Memory, actor model, and a few other bits and pieces, for which Simon Marlow’s papers are the go-to reference.

Book wise, currently poking through something on operating systems, something recent on optimising multicore processors (to get a better grasp of why Barrelfish’s message passing strategy for caches is worthwhile), and a survey book on transactional memories since the original project proposal at ETH is getting STM working. Will be bringing a lot from home too, including a new Murakami, unless I finish it before coming back. A little fiction here and there soothes the soul. I also think it’s good for the writing. One should strive to be less like Kuhn, and more like Hemingway, if one wishes to be understood. Perhaps that can curtail the seemingly inevitable shift towards academic style that will be brought on by all these academic papers and books.

Back to the thesis though: many questions remain, but it’s a start.

p.s. Somehow totally forgot to weave this in: PhD applications! So far my first one has gone out to Universidad Politécnica de Madrid for a program researching practical applications of CSP, and soon my EMJD-DC application will be sent - I’m currently agonising over the motivation & covering letter, what order to put the 3 elected topics in, and hoping I don’t need to trim things further.

0 notes

Thesis post #1

Still fishing around for a solid topic at the moment; waiting on mail back from supervisor and a response on the barrelfish mailing list about one of their topic’s availability. So it should be Haskell and Barrelfish or one or the other, but remains to be seen exactly what. Yesterday’s talk with my examiner about structure, procedure etc went well. I’m confident that whatever happens with this stuff I will come away with something to show for it, and that I’m not going to be left in the lurch if the topic doesn’t work out. That said, time is a bald miser.

I had a first look through the OS source code today: it’s C alright. It’s nice to see literate Haskell used in some of the tools files, but it’s only a few bits here and there, not the body of work. In case you’re not familiar with it, literate programming is the notion of reversing the purpose of comment markers: instead of commenting out your comments, you comment out your program. Wrapping code in LaTeX section tags gives new life to the report-driven-development idea.

The best place to start looking through the Barrelfish code is usr/examples, where there’s a few small applications including a very ordinary looking hello-world and accompanying build files. Once you have an application to run the main way to run it is hard-wire it into the bootloader instructions, e.g. the menu.lst given to grub. I believe there’s an interactive shell (fish) to investigate, but it’s not being touted as the regular way to launch things so I’m not rushing to look at it.

All this is a little moot at the moment, as I can’t yet build and run the OS. My Mac’s gcc version is too old, and it seems the supported build platform is Debian/Ubuntu. Fortunately that’s what I’ll be adding to my new laptop next week.

I won’t be sad to see the back of build issues on Mac OS. I will be sad to lose some of the applications though. Today I tried out handwritten notes in Curio, wondering about looking at yet another of the Omni suite of applications. It didn’t really work out; my tablet is too small to be comfortable to write with, and though the quality was ok and would have improved with practice, it’s just too slow. I’m trying out org mode for emacs for a while. It seems promising, though moving to something so spartan from mac/android guis will be a puzzle for a while.

Distractions are a fun part of any big project. My current ones are attempting to finish the Stanford Machine Learning class, before my trip to the UK, and the occasional bout of fragging in QuakeLive. I’m surprised by how well that resurrection is doing. It’s essentially the same 10 year old game, and people are still hooked on it. Nothing has or will replace it, sadly; that style of gameplay has been replaced by the spawn of counterstrike, the slower paced and more “realistic” fare. Which I’ll be able to run on my new laptop. Ho hum.

Then there’s the PhD applications due in a few days. Busy busy.

1 note

"I stopped to take a last look at my scrap heap of an apartment. Once again, life had a lesson to teach me: It takes years to build up, it takes moments to destoy. Sure, I’d gotten tired of this tiny space, but I’d had a good home here. In the time it takes to swill two cans of beer, all had sublimed like morning mist."

Murakami, “Hard-boiled Wonderland and the End of the World”

1 note

Good news!

Today I finally met the guy who will be (fingers crossed) supervising me next semester for my masters thesis at SICS. Now to chat with my course supervisor about finding an examiner (or him doing it, as it’s in his interests), then find the relevant papers and start reverse-engineering reams and reams of C code in Barrelfish and GHC. Cool huh? Well I’m excited about it.

2 notes

hazal:

Tengo

Because no CS / SE blog can be complete without cat-pictures or related work on social media/networks. I find the latter tedious, so here’s a friend’s cat.

hazal:

Tengo

Because no CS / SE blog can be complete without cat-pictures or related work on social media/networks. I find the latter tedious, so here’s a friend’s cat.

23 notes

"First, understanding of information hygiene is crucial. When you choose a password on a site, you give that password to the site’s administrator. People, not machines, stand behind every website. If you have used that password somewhere else, the administrator can now impersonate you there."

http://falkvinge.net/2011/10/26/omgwtf-passwords-of-93000-politicians-reporters-bloggers-leaked/

15 notes

"Truths are illusions which one has forgotten are illusions, worn-out metaphors which have become powerless to affect the sense, coins which have their obverse effaced and are now no longer of account as coins but merely as metal."

Friedrich Nietzsche

11 notes

Academic writing for academics. (Taken with picplz.)

Academic writing for academics. (Taken with picplz.)

1 note

An insightful GoogleTechTalks presentation on the use of erasure coding, by Wuala, which I’ve mentioned previously. It also discusses some basic p2p concepts such as resource lookup (“where is my file”) and storage redundancy (“what happens when the guy with my file crashes or deletes my file”).

2 notes