Recent blog entries

26 May 2016 olea   » (Master)

Algunos recursos de investigación sobre calidad del software aplicada a proyectos de software libre

Con la excusa de responder a una solicitud de información sobre este tema he preparado un repaso, informal e incompleto, OjO, de recursos relacionados que tenía en mente. Y ya puestos lo cuelgo en el blog. Aquí está.

Syndicated 2016-05-12 14:54:00 from Ismael Olea

25 May 2016 gary   » (Master)

Here I am casually using GDB with Infinity

screenshot

Syndicated 2016-05-25 15:56:04 from gbenson.net

25 May 2016 sye   » (Journeyer)

From
https://en.wikipedia.org/wiki/Walter_Savage_Landor

to translate:

However he was leading an active social life. Tennyson met him in 1850 and recorded how while another guest fell downstairs and broke his arm, "Old Landor went on eloquently discoursing of Catullus and other Latin poets as if nothing had happened".[14] Thomas Carlyle visited him and wrote "He was really stirring company: a proud irascible, trenchant, yet generous, veracious, and very dignified old man".[14] In 1851 Landor expressed interest in Church reform with a pamphlet "Popery, British and Foreign", and Letters to Cardinal Wiseman. He published various other articles in The Examiner, Fraser's Magazine and other journals. During the year he learnt of the death of his beloved Ianthe and wrote in tribute to her.

Sophia! whom I seldom call'd by name,
And trembled when I wrote it; O my friend
Severed so long from me! one morn I dreamt
That we were walking hand in hand thro' paths
Slippery with sunshine: after many years
Had flown away, and seas and realms been crost,
And much (alas how much!) by both endured
We joined our hands together and told our tale.
And now thy hand hath slipt away from mine,
And the cold marble cramps it; I dream one,
Dost thou dream too? and are our dreams the same?


In 1853 he published the collected "Imaginary Conversations of the Greeks and Romans" which he dedicated to Dickens. Dickens in this year published "Bleak House" which contained the amazingly realistic characterisation of Landor as Boythorn. He also published "The Last Fruit off an Old Tree", containing fresh conversations, critical and controversial essays, miscellaneous epigrams, lyrics and occasional poems of various kind and merit, closing with Five Scenes on the martyrdom of Beatrice Cenci. Swinburne described these as "unsurpassed even by their author himself for noble and heroic pathos, for subtle and genial, tragic and profound, ardent and compassionate insight into character, with consummate mastery of dramatic and spiritual truth."[15] At this time Landor was interesting himself in foreign affairs, in particular Czarist oppression as he saw it and Louis Napoleon. At the end of 1854 his beloved sister Elizabeth died and he wrote a touching memorial.

"Sharp crocus wakes the froward year;
In their old haunts birds reappear;
From yonder elm, yet black with rain,
The cushat looks deep down for grain
Thrown on the gravel-walk; here comes
The redbreast to the sill for crumbs.
Fly off! fly off! I can not wait
To welcome ye, as she of late.
The earliest of my friends is gone.
Alas! almost my only one!
The few as dear, long wafted o'er,
Await me on a sunnier shore."


In 1856 at the age of 81 he published Antony and Octavius: Scenes for the Study, twelve consecutive poems in dialogue, and "Letter to Emerson", as well as continuing Imaginary Conversations.

怀念默默奉献的女雕塑家杨淑卿
美术家·杨淑卿[1934—2006] 女, 台湾人。1954年毕业于中央美术学院雕塑系,1956年毕业于中央美术学院雕塑系研究生班,后在中央美院雕塑艺术创作研究所从事创作工作。生前为该创作研究所研究员、中国美术家协会会员。主要作品有《姐妹》、《春》、《泼水节》、《蓓蕾》、《生命之树》、《舞影婆娑》、《延河情》等,其中《姐妹》、《春》为中国美术馆收藏。
著名女雕塑家杨淑卿老师走了。她和病魔抗争了一年多,于2006年12月9日默默地逝去。当我听到这个不幸的消息时心里沉重而难过,我和杨老师的交往并不很多,但是仅有的一些合作,都给我留下了非常深刻的印象,使我从内心有着难以忘却的怀念。
1993年杨淑卿陪着一位台湾中国时报文艺副刊的记者兼副主任李梅龄小姐来到中国美术馆,提出一个使我既高兴又为难的合作项目。她们说:为了纪念1937年在北京逝世的台湾籍油画家王悦之诞辰100周年,想借展有关他的藏品到台北展出,而且整个纪念活动与中国美术馆合作,经费由中国时报基金会支付。对此我当然高兴,这是一次开展两岸交流的好机会,能够对尘封了近半个世纪的油画前辈艺术家王悦之进行一次有规模的宣传,实在是求之不得的事情。为难的是珍藏在家人手中几十年的王悦之油画,自进馆之日,就损伤残破得比较严重。我向杨淑卿、李梅龄两位客人介绍了这一批油画的捐赠者刘艺先生和他母亲历经20世纪40年代的战乱、50年代的艰难困苦,在当年极其恶劣的条件下,费尽心机地把作品保存下来,然后又无条件地捐献给国家,这些作品是中国美术史的珍宝,也是中国美术馆的珍宝。遗憾的是国内缺乏修复油画的高手,同时也缺乏经费。我到美术馆任职之后,认为对这一批油画的修复没有地道的专家,一般的油画家是胜任不了的,拿出去展览甚有风险。平常都不敢轻易搬动,更不要说出境了。她们二位听到我的讲述,同时也观摩了几幅作品,甚为动容,更感到王悦之遗作能留下已是不易,更觉得其价值可贵。在他诞辰100周年之际,两岸联手纪念他就更有意义。我便试探性地提出:不知台湾能否解决修复问题。李梅龄小姐在暗暗地下着决心,很痛快地表示愿意回到台北再仔细筹划。我也希望杨淑卿老师能够从中多多斡旋,力求这一事项能够促成。
后来她们二位都给我回复,同意把作品提前运到台北修复,经费也由中国时报基金会支付。恰逢台湾省立美术馆邀请我赴台参加“两岸水墨画交流展”及学术研讨会,我随身携带一幅受损最严重的油画——《镜台》亲手前往台湾。但见画面亚麻布因湿潮原因已腐化成半透明状,油彩也剥落了很多。我想先把它交给李梅龄小姐,由她请修复师修好后,送回北京看看效果,然后再确定其他十几幅作品的修复。说实在的,我对台湾的油画修复水平和能力丝毫不了解,同时也因为对这一批藏品的价值看得很重,如果修复失误,还不如旧样保存,深感此举责任重大,千万不能有丝毫闪失,所以先修一幅,作个试验比较稳妥。
李梅龄小姐在机场迎接我和油画《镜台》。她十分理解我的心情,也赞同我的做法。她和我直接乘车到达修复师李福长先生的家里,借机我也参观了他的修复室。仔细观摩了几件他正在修复的油画,以及室内外的安全措施,使我心里有了点底,这样《镜台》就暂时客居在台北。过了半月余,李福长先生亲自把修好的油画《镜台》拿到中国美术馆。我立即请靳尚谊、詹建俊等几位油画家鉴定,结果大家满意。纱窗般的透明感消失,整幅画面加固得很坚实,油画的笔触保留,人物形象没有丝毫损伤,这样的效果给大家增加了十分的信心。于是我们与中国时报基金会正式签订借展协议,由李福长先生亲自负责,将馆藏王悦之的油画、水彩画一并运往台湾修复包装,于1994年8月在台北市立美术馆顺利展出。当高玮副馆长和刘艺先生以及我馆收藏部主任郑作良同志出席开幕式时,和台湾同胞共同为王悦之先生的艺术所折服,展出效果获得了强烈的反响。半年之后,全部修复包装整修一新的王悦之遗作回到中国美术馆陈列,并且召开了座谈会。对此我们全馆同志都非常兴奋,特别是王悦之的儿子著名书法家刘艺先生及其他亲属,其满意的心情难以言表。一些老同志都为两岸此次纪念王悦之的活动热烈地祝贺,对台湾中国时报基金会以及李梅龄小姐由衷地感谢。我尤其对杨淑卿老师积极努力从中斡旋的无私援助表示深深的敬意。她对维护民族文化遗产的责任心和对两岸交流的热忱,值得我们美术馆人学习。然而杨淑卿老师却平心静气地说:这没什么,算不了什么,不应该感谢我,我只是尽了一点点自己的力量。我们做任何事情,都会有困难,我不主张多说,像有些人怪怪地总是说。我想能办点实事最好··当时她的情深义重的神态,为国家美术馆办了好事,丝毫没有邀功的意思,使与会者深受感动,赢得了会场上一片掌声。
杨淑卿老师在20世纪50年代考进中央美术学院学习雕塑专业,可谓新中国第一代女雕塑家,几十年来潜心创作。1979年她的大理石雕刻《姐妹》,被中国美术馆收藏,90年代一直陈列在东南角厅外檐廊下,和钱绍武的花岗岩石雕《江丰像》、付天仇的石雕《徐悲鸿像》等藏品陈列在一起。洁白无瑕的两姐妹头像,以其温情细腻的造型美丽感人,和其他作品的粗放风格对比尤有特色。原来她是在台湾长大,因而经常惦记着生活在台湾的妹妹,因此她在这件作品中充满了真实的姐妹亲情和发自内心的期盼团聚之热望,期盼祖国统一的理想,表达了她的爱国情怀。站在她洁白的石雕前所体悟到的激情,就可以理解她对两岸文化交流促进台湾回归的极大热忱的根由。她和李梅龄小姐的合作亦如姐妹一样亲密无隔阂。为此她不仅仅为王悦之的纪念活动付出辛劳,在两岸交流的其他方面她也默默地做了许多有益的工作。
十数年过去了,每当我看到王悦之的油画及水彩画陈列在美术馆时,我就立马想起了杨淑卿老师和李梅龄小姐。 2006年11月美术馆圆厅里又展出了王悦之遗作,此刻杨淑卿已在病危之中,我真没有想到这么快她就会离去。回想往事,我在怆然中想起毛主席曾经号召大家学习白求恩毫无自私自利之心的精神时说:“一个人能力有大小,只要有这点精神,就是一个高尚的人,一个纯粹的人,一个有道德的人。”杨淑卿老师为国家美术馆所作的事情,为祖国统一大业所作的事情,看起来并不是什么壮举,然而却是一件件实事,而且毫无自私目的的实事。其实美术馆的发展和所有的历史文化积淀都是一点一滴的累积,能够做出一点奉献就很可贵。
杨淑卿老师作为一位著名的女雕塑家、中国美术馆的朋友所做出的默默奉献,我们美术馆人会长久地铭记。她走了,她高尚的品德永远留在我们的记忆之中。仅作此短文以表我心中的哀思。
http://www.namoc.org/cbjy/cbw/qks/qk2007_2544/qk200702/201303/t20130319_177367.htm
source:

25 May 2016 dmarti   » (Master)

QoTD: Walt Mossberg

But we were seated next to the head of this advertising company, who said to me something like, 'Well, I really always liked AllThingsD and in your first week I think Recode's produced some really interesting stuff.' And I said, 'Great, so you're going to advertise there, right? Or place ads there.' And he said, 'Well, let me just tell you the truth. We're going to place ads there for a little bit, we're going to drop cookies, we're going to figure out who your readers are, we're going to find out what other websites they go to that are way cheaper than your website and then we're gonna pull our ads from your website and move them there.'

Walt Mossberg

Related: Service journalism and the web advertising problem

Syndicated 2016-05-22 17:22:15 from Don Marti

24 May 2016 chalst   » (Master)

Lua and J

I have an idea for integrating the J dictionary into Lua, based on using multiple return values to handle arrays. It turns out that Lua's handling of mutliple return values, while not comparable, to, say, that of Forth, is not inefficient.

23 May 2016 benad   » (Apprentice)

Flattening Circular Buffers

A few weeks ago I discovered TPCircularBuffer, a circular buffer implementation for Darwin operating system implementations, including Mac OS X and iOS. Now, I’ve implemented circular buffers before, so I though there wasn’t much need for yet another circular buffer implementation (let alone one specific to iOS), until I noticed something very interesting in the code.

A trick TPCircularBuffer uses is to map two adjacent memory blocks to the same buffer. The buffer holds the actual data, and the virtual memory manager ensures that both maps contain the exact same data, since effectively both virtual memory blocks remaps to the same memory. This makes things a lot easier than my naive implementations: Rather than dealing with convoluted pointer arithmetics each time the producer or consumer reads or writes a sequence of values that cross the end of the buffer, a simple linear read or write works. In fact, the pointers from that doubly-mapped memory can be safely given to any normal function that accepts a pointer, removing the need to make memory copies before each use of the buffer by an external function.

In fact, this optimization is so common that a previous version of the Wikipedia page for circular buffers had some sample code using common POSIX functions. There’s even a 10-year-old VRB - Virtual Ring Buffer library for Linux systems. As for Windows, I’ve yet to seen some good sample code, but you can do the equivalent with CreateFileMapping and MapViewOfFile.

Both Wikipedia’s and VRB’s implementations can be misleading, and not very portable though. On Darwin, and I suspect BSD and many other systems, the mapped memory must be fully aligned to the size of a memory page (”allocation granularity” in Windows terms). On POSIX, that means using the value of sysconf(_SC_PAGESIZE). Since most of the times the page size is a power of 2, that could explain the otherwise strange buffer->count_bytes = 1UL << order from Wikipedia’s sample code.

By the way, I’d like to reiterate how poor the built-in Mac OS X documentation is for POSIX and UNIX-like functions. Though it does warn pretty well about page size alignment and the risks involved with MAP_FIXED of mmap, the rest of the documentation fails to mention how to set permissions of the memory map. Thankfully, the latest Linux man pages for the same functions are far better documented.

Syndicated 2016-05-23 18:01:52 from Benad's Blog

23 May 2016 mikal   » (Journeyer)

Potato Point

I went to Potato Point with the Scouts for a weekend wide game. Very nice location, apart from the ticks!

                                       

See more thumbnails

Tags for this post: blog pictures 20160523 photo coast scouts bushwalk
Related posts: Exploring the Jagungal; Scout activity: orienteering at Mount Stranger

Comment

Syndicated 2016-05-22 18:21:00 from stillhq.com : Mikal, a geek from Canberra living in Silicon Valley (no blather posts)

21 May 2016 marnanel   » (Journeyer)

like a night in the forest

When John Denver says "you fill up my senses like a night in the forest", is that supposed to be a compliment? Because I don't get it.

Forest floors are full of stones and roots, and dead needles if it's a pine forest, and you can't get comfortable. There are mosquitos hanging around, as well as other nasties that want to bite you. It pours with rain, and then the trees carry on dripping on you for hours.

It gets really really dark, with weird rustling noises, which is terrifying if you can't find your way out of the forest. And if you CAN find your way out of the forest, why the hell are you still in the forest?

I'd assume forests are different where John Denver comes from, except I know they're even worse because there are venomous snakes and poison ivy.

So if someone said I filled up their senses like a night in the forest, I'd think they meant I look pretty good from a distance, but when you get up close you'll wish you hadn't. IDK, maybe that's what John Denver meant too.

This entry was originally posted at http://marnanel.dreamwidth.org/368835.html. Please comment there using OpenID.

Syndicated 2016-05-21 22:27:18 from Monument

21 May 2016 elwell   » (Journeyer)

All around the water tank, waiting for the rain...

Having the luxury of mains water means that I don't really care in fanatical detail about the state of the dam water levels for Perth (except that "it's lower than it should really be"). However with our new place being entirely dependant on rainwater collection off the roof into storage tanks, I'd like to know the levels of the various tanks (and therefore the volume remaining).

So, what's available - simplest is knocking on the side of the tank and guessing from the sound how full. Not terribly reliable or hi-tech, but is cheap. Dipstick also cheap, but requires removing filter cover. Next up are external gauges - Our tank supplier stocks the Yaktek Levetator, but that's not really any good when I'm not on site. Hence, it's time to investigate the electronic options:

This thread on whirlpool mentions the Electrosense Aquagauge, but at $265 each plus telemetry thats not cheap. The Jaycar ultrasonic one may be OK, but as it doesn't have a serial / usb  output from the display, I'd need to hack up something to parse the RF (as others have done). So datasheet hunting time:

The MaxBotix series looks like it's pretty much ideal - 1mm resolution, 5m max range, weather resistant. Annoyingly I can't see it cheaper than the ~100 USD on the manufacturer site (sparkfun et al. only have the MB7360 not the MB7369), but at least there's a local supplier.  A slightly different model (MB7060) is being used by the flood network.

Next up is trying to work out how to connect them - My options are:

  • Wired - Etherten or possibly something as simple as serial-ethernet adaptor
  • Wireless - wemos / ESP8266 for wifi (power hungry?)
  • Wireless - rfm type TX/RX setup to basestation
  • lora - nice but possibly expensive as I'd need a gateway.
I suspect this particular blog entry will get updated as things progress..

Syndicated 2016-05-21 16:53:00 (Updated 2016-05-21 16:53:25) from Andrew Elwell

20 May 2016 mjg59   » (Master)

Your project's RCS history affects ease of contribution (or: don't squash PRs)

Github recently introduced the option to squash commits on merge, and even before then several projects requested that contributors squash their commits after review but before merge. This is a terrible idea that makes it more difficult for people to contribute to projects.

I'm spending today working on reworking some code to integrate with a new feature that was just integrated into Kubernetes. The PR in question was absolutely fine, but just before it was merged the entire commit history was squashed down to a single commit at the request of the reviewer. This single commit contains type declarations, the functionality itself, the integration of that functionality into the scheduler, the client code and a large pile of autogenerated code.

I've got some familiarity with Kubernetes, but even then this commit is difficult for me to read. It doesn't tell a story. I can't see its growth. Looking at a single hunk of this diff doesn't tell me whether it's infrastructural or part of the integration. Given time I can (and have) figured it out, but it's an unnecessary waste of effort that could have gone towards something else. For someone who's less used to working on large projects, it'd be even worse. I'm paid to deal with this. For someone who isn't, the probability that they'll give up and do something else entirely is even greater.

I don't want to pick on Kubernetes here - the fact that this Github feature exists makes it clear that a lot of people feel that this kind of merge is a good idea. And there are certainly cases where squashing commits makes sense. Commits that add broken code and which are immediately followed by a series of "Make this work" commits also impair readability and distract from the narrative that your RCS history should present, and Github present this feature as a way to get rid of them. But that ends up being a false dichotomy. A history that looks like "Commit", "Revert Commit", "Revert Revert Commit", "Fix broken revert", "Revert fix broken revert" is a bad history, as is a history that looks like "Add 20,000 line feature A", "Add 20,000 line feature B".

When you're crafting commits for merge, think about your commit history as a textbook. Start with the building blocks of your feature and make them one commit. Build your functionality on top of them in another. Tie that functionality into the core project and make another commit. Add client support. Add docs. Include your tests. Allow someone to follow the growth of your feature over time, with each commit being a chapter of that story. And never, ever, put autogenerated code in the same commit as an actual functional change.

People can't contribute to your project unless they can understand your code. Writing clear, well commented code is a big part of that. But so is showing the evolution of your features in an understandable way. Make sure your RCS history shows that, otherwise people will go and find another project that doesn't make them feel frustrated.

(Edit to add: Sarah Sharp wrote on the same topic a couple of years ago)

comment count unavailable comments

Syndicated 2016-05-19 23:52:33 from Matthew Garrett

18 May 2016 gary   » (Master)

Full-system Infinity preview coming up

I’ve released bits and pieces of Infinity over the past year, but nothing that really brings everything together. Right now I’m working on an initial full-system release of everything to do with Infinity so far. It’s codenamed “First Flight”, and you’ll be able to actually use it, see how everything hangs together, and generally get a better idea of what the point of it all is.

First Flight will be just enough for GDB to attach to a live process or start with a core file. “info threads” should work, “print errno” will not. First Flight will comprise:

  • A new release of the note compiler I8C.
  • A glibc you can git clone and build to get a libpthread.so with Infinity notes for map_lwp2thr, thr_get_info and thr_iter.
  • A new release of the client library libi8x that can execute those notes.
  • A libthread_db.so shim into libi8x.

The libthread_db.so shim won’t be used in future releases—they’ll have support for Infinity built into GDB—but it’ll likely remain as a nice example of how to use libi8x.

I’m targeting June 23 as the release date for First Flight. You can follow how I’m doing on the Infinity Roadmap (thank you Sergio!)

Syndicated 2016-05-18 13:22:37 from gbenson.net

17 May 2016 aicra   » (Journeyer)

I was so freaked out when I saw advogato was not loading today!

Have I ever mentioned I had to work with open source people recently who didn't want to keep the source open. This basically pissed off me and pissed off another member of the team. The team member told me his story and I told him mine. Apparently, we did not realize we had the same run in... individually with the project manager and developer.

Wow.

So, basically, here I was - free software, working with open source. I thought it might be ok. I mean, they didn't have the same ethics but in the end... ultimately, they wanted to keep the source closed (albeit the source was GPL and distributed app) and the one developer didn't want to release the version as his "Ughbuntu" side was not done. Well, obviously, Debian waits for no Ubuntu...

hahahaha

Yes, I made the executive decision to release the Debian Version.
Then, I ported it to Mint. That was kind of like Ughbuntu...

Anyway, I managed to piss off Ubuntu people. Nothing new today!

16 May 2016 marnanel   » (Journeyer)

koans

The koan thing has always messed with my head. I once had a coworker who converted to Buddhism and got very excited about koans, and for the first few months we had conversations like this:

Me: I can't decide how best to fake up the credit card handling on the staging server. Any thoughts?
Him: Does a man who owns a forest buy his own axe?
Me: I don't know.
Me: ....
Him: ....
Me: Hey, I have a friend who owns some woodland. I could phone him and ask?

It might not have been that particular sentence, I forget now, but I could never make anything of things he said like that. He stopped doing it after a while.

Someone explained the "one hand clapping" one to me once so I get that.

This entry was originally posted at http://marnanel.dreamwidth.org/367924.html. Please comment there using OpenID.

Syndicated 2016-05-16 20:19:54 from Monument

16 May 2016 broonie   » (Journeyer)

OpenTAC sprint

This weekend Toby Churchill kindly hosted a hacking weekend for OpenTAC – myself, Michael Grzeschik, Steve McIntyre and Andy Simpkins got together to bring up the remaining bits of the hardware on the current board revision and get some of the low level tooling like production flashing for the FTDI serial ports on the board up and running. It was a very productive weekend, we verified that everything was working with only few small mods needed for the board . Personally the main thing I worked on was getting most of an initial driver for the EMC1701 written. That was the one component without Linux support and allowed us to verify that the power switching and measurement for the systems under test was working well.

There’s still at least one more board revision and quite a bit of software work to do (I’m hoping to get the EMC1701 upstream for v4.8) but it was great to finally see all the physical components of the system working well and see it managing a system under test, this board revision should support all the software development that’s going to be needed for the final board.

Thanks to all who attended, Pengutronix for sponsoring Michael’s attendance and Toby Churchill for hosting!

IMG_2194
IMG_20160515_192336628

Syndicated 2016-05-16 13:20:01 from Technicalities

12 May 2016 philiph   » (Journeyer)

12 May 2016 mjg59   » (Master)

Convenience, security and freedom - can we pick all three?

Moxie, the lead developer of the Signal secure communication application, recently blogged on the tradeoffs between providing a supportable federated service and providing a compelling application that gains significant adoption. There's a set of perfectly reasonable arguments around that that I don't want to rehash - regardless of feelings on the benefits of federation in general, there's certainly an increase in engineering cost in providing a stable intra-server protocol that still allows for addition of new features, and the person leading a project gets to make the decision about whether that's a valid tradeoff.

One voiced complaint about Signal on Android is the fact that it depends on the Google Play Services. These are a collection of proprietary functions for integrating with Google-provided services, and Signal depends on them to provide a good out of band notification protocol to allow Signal to be notified when new messages arrive, even if the phone is otherwise in a power saving state. At the time this decision was made, there were no terribly good alternatives for Android. Even now, nobody's really demonstrated a free implementation that supports several million clients and has no negative impact on battery life, so if your aim is to write a secure messaging client that will be adopted by as many people is possible, keeping this dependency is entirely rational.

On the other hand, there are users for whom the decision not to install a Google root of trust on their phone is also entirely rational. I have no especially good reason to believe that Google will ever want to do something inappropriate with my phone or data, but it's certainly possible that they'll be compelled to do so against their will. The set of people who will ever actually face this problem is probably small, but it's probably also the set of people who benefit most from Signal in the first place.

(Even ignoring the dependency on Play Services, people may not find the official client sufficient - it's very difficult to write a single piece of software that satisfies all users, whether that be down to accessibility requirements, OS support or whatever. Slack may be great, but there's still people who choose to use Hipchat)

This shouldn't be a problem. Signal is free software and anybody is free to modify it in any way they want to fit their needs, and as long as they don't break the protocol code in the process it'll carry on working with the existing Signal servers and allow communication with people who run the official client. Unfortunately, Moxie has indicated that he is not happy with forked versions of Signal using the official servers. Since Signal doesn't support federation, that means that users of forked versions will be unable to communicate with users of the official client.

This is awkward. Signal is deservedly popular. It provides strong security without being significantly more complicated than a traditional SMS client. In my social circle there's massively more users of Signal than any other security app. If I transition to a fork of Signal, I'm no longer able to securely communicate with them unless they also install the fork. If the aim is to make secure communication ubiquitous, that's kind of a problem.

Right now the choices I have for communicating with people I know are either convenient and secure but require non-free code (Signal), convenient and free but insecure (SMS) or secure and free but horribly inconvenient (gpg). Is there really no way for us to work as a community to develop something that's all three?

comment count unavailable comments

Syndicated 2016-05-12 14:40:00 from Matthew Garrett

12 May 2016 philiph   » (Journeyer)

10 May 2016 mones   » (Journeyer)

Another target reached

Just sent v0.95 of my project for review. Was nothing previously set, I simply continued writing, expanding and fixing things, with the hope of completing something… it's not fully completed, but sending it for review reduces some pressure at least.

And after tagging it then noticed:

$ git rev-list --all --count
600

So, yeah, that's 600 commits since the beginning in all branches.

If I had planned it I would have failed miserably to get such exact count ;-)

Syndicated 2016-05-09 23:32:18 from Ricardo Mones

7 May 2016 crhodes   » (Master)

not going to els2016

I’m not going to the European Lisp Symposium this year.

It’s a shame, because this is the first one I’ve missed; even in the height of the confusion of having two jobs, I managed to make it to Hamburg and Zadar. But organizing ELS2015 took a lot out of me, and it feels like it’s been relentless ever since; while it would be lovely to spend two days in Krakow to recharge my batteries and just listen to the good stuff that is going on, I can’t quite spare the time or manage the complexity.

Some of the recent complexity: following one of those “two jobs” link might give a slightly surprising result. Yes, Teclo Networks AG was acquired by Sandvine, Inc. This involved some fairly intricate and delicate negotiations, sucking up time and energy; some minor residual issues aside, I think things are done and dusted, and it’s as positive an outcome for all as could be expected.

There have also been a number of sadder outcomes recently; others have written about David MacKay’s recent death; I had the privilege to be in his lecture course while he was writing Information Theory, Inference, and Learning Algorithms, and I can trace the influence of both the course material and the lecturing style on my thought and practice. I (along with many others) admire his book about energy and humanity; it is beautifully clear, and starts from the facts and argues from those. “Please don’t get me wrong: I’m not trying to be pro-nuclear. I’m just pro-arithmetic.” – a rallying cry for advocates of rationality. I will also remember David cheefully agreeing to play the viola for the Jesus College Music Society when some preposterous number of independent viola parts were needed (my fallible memory says “Brandenburg 3”). David’s last interview is available to view; iPlayer-enabled listeners can hear Alan Blackwell’s (computer scientist and double-bassist) tribute on BBC Radio 4’s Last Word.

So with regret, I’m not travelling to Krakow this year; I will do my best to make the 10th European Lisp Symposium (how could I miss a nice round-numbered edition?), and in the meantime I’ll raise a glass of Croatian Maraschino, courtesy of my time in Zadar, to the success of ELS 2016.

Syndicated 2016-05-07 20:30:37 from notes

5 May 2016 marnanel   » (Journeyer)

the liberal wing of Ukip

#voted.
Outside:
"Hello, I'm the Ukip candidate."
"Not at all my thing, I'm afraid."
"Oh, don't worry, I'm on the liberal wing of Ukip."
"The...?"
"Everyone says we're about racism! It's not about racism! It's about space! Like, I proposed at national conference to send a cruise ship to the Med to pick up the migrants and check their papers. Better than letting them drown!"
"Well, yes, better than letting them drown."
"But let me tell about healthcare tourism! People from all over the world come here and get treated free."
"It's not that common for..."
"Pshaw! Have you been to Salford Royal recently?"
"Then why did I need to get health insurance when I lived in the US and came back to the UK?"
"That's what I mean! Foreigners shoulf have health insurance!"
"We have to go now."
"Thanks for talking to me! So many people don't."

This entry was originally posted at http://marnanel.dreamwidth.org/367195.html. Please comment there using OpenID.

Syndicated 2016-05-05 16:45:33 from Monument

3 May 2016 sye   » (Journeyer)

1st final Draft
This poem is dedicated to Hopewell Sports and Family Medicine Dr. James Vandenburg, Kenneth Daniels, O.D and Dr. Darma Ie with Delaware Valley Retina Associates. I am forever grateful for their prognosis and subsequent surgical and other continued professional care to restore vision loss due to Macula Off Retinal Detachment in mad march of 2016. I am also encouraged by the liking of it from a good friend of mine, Prof. Mark Burgess from Oslo, himself a great scientific writer and practitioner of his unique 'promise' theory. For all the promise-enabling of neuro-scientific discovery, I can't shake off this view of despair at my own loss of vision, mostly on political front, in place of theological one.

I am a long time resident in West Trenton, New Jersey, with my husband Eric and our two sons. We attend St. Andrew's Episcopal Church in Yardley, Pennsylvania.

Eye Witness

Fortnights ago, my right eye turned evil.
It splits the world in half:
one side clear, the other misguided.

Naturally, i was puzzled but went on, as if
my world is unchanged.
Then my educated mind caught up,
'one must check with professionals, for
such radical change on point of view'

It was exactly 7 days
before Good Friday,
my right eye was put on trial.

Three doctors examined it
with great interests and gladness.
Each one alerted the next
to engage in its urgent care.

Monday came and the vitrectomy was delivered
to posterio chamber where macular must suffer
a total change of its atomsphere

So that the heart of matter
shall remain rightfully restored
and reflected in my due time.

After the execution with laser sharpness,
three nights and three days,
my head is ordered to be
in a certain spot for the promise
of good vision to return to me.

On the Good Friday, as if
unplanned and perchance,
I stumbled on some words divine
by a newly acquintainted poet
Theodore Roethke to my trouble at hand.

'Night Crow'
When I saw that clumsy crow
flap from a wasted tree,
a shape in the mind rose up:
over gulfs of dream
flew a tremendous bird
Further and further away
Into a moonless black
deep in the brain, far back.

Back to my troubled common sense
Watch out people, I've got an evil eye now
for better or for worse

Of future tense in all words, still
alive in the blind spot of eye witness
from another time or another place.

At wit's end, a world of blind faces
staring into bone cold abyss
as legend has it.

That beside the envy of night crow
a song bird rises, out of white ashes
Fear not, the end of all creations.




Tension in contextualized translation...from English to Chinese, wor(l)ds apart... ? - ResearchGate. Available from: https://www.researchgate.net/post/Tension_in_contextualized_translationfrom_English_to_Chinese_worlds_apart [accessed May 3, 2016].

3 May 2016 glyph   » (Master)

Letters To The Editor: Re: Email

Since I removed comments from this blog, I’ve been asking y’all to email me when you have feedback, with the promise that I’d publish the good bits. Today I’m making good on that for the first time, with this lovely missive from Adam Doherty:


I just wanted to say thank you. As someone who is never able to say no, your article on email struck a chord with me. I have had Gmail since the beginning, since the days of hoping for an invitation. And the day I received my invitation was the the last day my inbox was ever empty.

Prior to reading your article I had over 40,000 unread messages. It used to be a sort of running joke; I never delete anything. Realistically though was I ever going to do anything with them?

With 40,000 unread messages in your inbox, you start to miss messages that are actually important. Messages that must become tasks, tasks that must be completed.

Last night I took your advice; and that is saying something - most of the things I read via HN are just noise. This however spoke to me directly.

I archived everything older than two weeks, was down to 477 messages and kept pruning. So much of the email we get on a daily basis is also noise. Those messages took me half a second to hit archive and move on.

I went to bed with zero messages in my inbox, woke up with 21, archived 19, actioned 2 and then archived those.

Seriously, thank you so very much. I am unburdened.


First, I’d like to thank Adam for writing in. I really do appreciate the feedback.

Second, I wanted to post this here not in service of showcasing my awesomeness1, but rather to demonstrate that getting to the bottom of your email can have a profound effect on your state of mind. Even if it’s a running joke, even if you don’t think it’s stressing you out, there’s a good chance that, somewhere in the back of your mind, it is. After all, if you really don’t care, what’s stopping you from hitting select all / archive right now?

At the very least, if you did that, your mail app would load faster.


  1. although, let there be no doubt, I am awesome 

Syndicated 2016-05-03 06:06:00 from Deciphering Glyph

3 May 2016 marnanel   » (Journeyer)

Alexander and the wise, resourceful, no-fool philosophers

[Alexander the Great is questioning some Indian philosophers, and has threatened to execute anyone who gives a wrong answer]

• The first one... being asked which, in his opinion, were more numerous, the living or the dead, said that the living were, since the dead no longer existed.
• The second, being asked whether the earth or the sea produced larger animals, said the earth did, since the sea was but a part of the earth.
• The third, being asked what animal was the most cunning, said: "That which up to this time man has not discovered."
• The fourth, when asked why he had induced Sabbas to revolt, replied: "Because I wished him either to live nobly or to die nobly."
• The fifth, being asked which, in his opinion, was older, day or night, replied: "Day, by one day"; and he added, upon the king expressing amazement, that hard questions must have hard answers.
• Passing on, then, to the sixth, Alexander asked how a man could be most loved; "If," said the philosopher, "he is most powerful, and yet does not inspire fear."
• Of the three remaining, he who was asked how one might become a god instead of man, replied: "By doing something which a man cannot do";
• the one who was asked which was the stronger, life or death, answered: "Life, since it supports so many ills."
• and the last, asked how long it were well for a man to live, answered: "Until he does not regard death as better than life."

-- Plutarch, "Lives", late 1st century

This entry was originally posted at http://marnanel.dreamwidth.org/367027.html. Please comment there using OpenID.

Syndicated 2016-05-02 23:21:15 from Monument

1 May 2016 dmarti   » (Master)

George F. Will

I think I understand what George F. Will is going through right now.

I wish I didn't.

Once, I thought I was writing for an audience of people with a principled committment to a free economy and an aversion to centrally planned decision making..

I thought I was writing for readers who wanted to restore civilized norms.

I didn't think they just wanted an oversized angry personality who would violate those norms, but take on the establishment.

I didn't think that the readers would want to go for easy answers and bling over hard work and building a movement.

I was wrong.

The desktop Linux audience, which I thought was out there, went the same way as George F. Will's principled conservative audience.

I want the desktop Linux users back, and I want George F. Will to get his principled conservatives back. But maybe people were never who we thought they were to begin with.

Syndicated 2016-05-01 12:51:53 from Don Marti

27 Apr 2016 philiph   » (Journeyer)

27 Apr 2016 benad   » (Apprentice)

The Static Blog

A quick note to mention that I added The Static Blog to my main web site, discussing the relocation of the blog you’re reading right now to this site.

Syndicated 2016-04-27 01:11:57 from Benad's Blog

26 Apr 2016 MichaelCrawford   » (Master)

Madness

In December I realized that I was badly depressed, so I asked my psychiatrist to prescribe imipramine. As a very old antidepressant, it is not commonly used anymore, but my experience is that it works well for me.

I haven't been able to find work so what little money I get, I earn by singing on the street for tips. I had a setback when I got bronchitis, and could not raise the money for bus fare to get to my pharmacy. That led to my getting depressed again.

I went to the emergency room, they set me up with one dose and a bus ticket. Now I'm back on track. For quite a long time, I would get into these really foul states of mind. Now it has been two or three weeks since the last time that happened.

I can tell that I'm still somewhat depressed but in general life is a lot better. Antidepressants are always slow to take effect. One has to establish new patterns in one's life.

25 Apr 2016 wainstead   » (Master)

"Going forward, the only languages projected to see more use among front-end, back-end and IoT developers are JavaScript, naturally, followed by Go, Python and C++, which will see the most future use among IoT developers."

Node.js Survey: Enterprise Inroads, New Meaning for 'Full Stack' Developers

25 Apr 2016 mones   » (Journeyer)

Maximum number of clients reached Error: Can't open display: :0

Today it happened again: you try to open some program and nothing happens. Go to an open terminal, try again and it answers with the above message. Other days I used to reboot the session, but that's something I don't really think should be necessary.

First thought about X gone mad, but this one seems pretty well behaved:

$ lsof -p `pidof Xorg` | wc -l
5

Then noticed I had a long running chromium process (a jQuery page monitoring a remote service) so tried this one as well:

$ for a in `pidof chromium`; do echo "$a "`lsof -p $a | wc -l`; done
27914 5
26462 5
25350 5
24693 5
23378 5
22723 5
22165 5
21476 222
21474 1176
21443 5
21441 204
21435 546
11644 5
11626 5
11587 5
11461 5
11361 5
9833 5
9726 5

Wow, I'd bet you can guess next command ;-)

$ kill -9 21435 21441 21474 21476

This of course wiped out all chromium processes, but also fixed the problem. Suggestions for selective chromium killing welcome! But I'd better like to know why those files are not properly closed. Just relaunching chromium to write this post yields:

$ for a in `pidof chromium`; do echo "$a "`lsof -p $a | wc -l`; done
11919 5
11848 222
11841 432
11815 5
11813 204
11807 398

Which looks a bit exaggerated to me :-(

Syndicated 2016-04-25 08:20:38 from Ricardo Mones

25 Apr 2016 glyph   » (Master)

Email Isn’t The Thing You’re Bad At

I’ve been using the Internet for a good 25 years now, and I’ve been lucky enough to have some perspective dating back farther than that. The common refrain for my entire tenure here:

We all get too much email.

A New, New, New, New Hope

Luckily, something is always on the cusp of replacing email. AOL instant messenger will totally replace it. Then it was blogging. RSS. MySpace. Then it was FriendFeed. Then Twitter. Then Facebook.

Today, it’s in vogue to talk about how Slack is going to replace email. As someone who has seen this play out a dozen times now, let me give you a little spoiler:

Slack is not going to replace email.

But Slack isn’t the problem here, either. It’s just another communication tool.

The problem of email overload is both ancient and persistent. If the problem were really with “email”, then, presumably, one of the nine million email apps that dot the app-stores like mushrooms sprouting from a globe-spanning mycelium would have just solved it by now, and we could all move on with our lives. Instead, it is permanently in vogue1 to talk about how overloaded we all are.

If not email, then what?

If you have twenty-four thousand unread emails in your Inbox, like some kind of goddamn animal, what you’re bad at is not email, it’s transactional interactions.

Different communication media have different characteristics, but the defining characteristic of email is that it is the primary mode of communication that we use, both professionally and personally, when we are asking someone else to perform a task.

Of course you might use any form of communication to communicate tasks to another person. But other forms - especially the currently popular real-time methods - appear as a bi-directional communication, and are largely immutable. Email’s distinguishing characteristic is that it is discrete; each message is its own entity with its own ID. Emails may also be annotated, whether with flags, replied-to markers, labels, placement in folders, archiving, or deleting. Contrast this with a group chat in IRC, iMessage, or Slack, where the log is mostly2 unchangeable, and the only available annotation is “did your scrollbar ever move down past this point”; each individual message has only one bit of associated information. Unless you have catlike reflexes and an unbelievably obsessive-compulsive personality, it is highly unlikely that you will carefully set the “read” flag on each and every message in an extended conversation.

All this makes email much more suitable for communicating a task, because the recipient can file it according to their system for tracking tasks, come back to it later, and generally treat the message itself as an artifact. By contrast if I were to just walk up to you on the street and say “hey can you do this for me”, you will almost certainly just forget.

The word “task” might seem heavy-weight for some of the things that email is used for, but tasks come in all sizes. One task might be “click this link to confirm your sign-up on this website”. Another might be “choose a time to get together for coffee”. Or “please pass along my resume to your hiring department”. Yet another might be “send me the final draft of the Henderson report”.

Email is also used for conveying information: here are the minutes from that meeting we were just in. Here is transcription of the whiteboard from that design session. Here are some photos from our family vacation. But even in these cases, a task is implied: read these minutes and see if they’re accurate; inspect this diagram and use it to inform your design; look at these photos and just enjoy them.

So here’s the thing that you’re bad at, which is why none of the fifty different email apps you’ve bought for your phone have fixed the problem: when you get these messages, you aren’t making a conscious decision about:

  1. how important the message is to you
  2. whether you want to act on them at all
  3. when you want to act on them
  4. what exact action you want to take
  5. what the consequences of taking or not taking that action will be

This means that when someone asks you to do a thing, you probably aren’t going to do it. You’re going to pretend to commit to it, and then you’re going to flake out when push comes to shove. You’re going to keep context-switching until all the deadlines have passed.

In other words:

The thing you are bad at is saying ‘no’ to people.

Sometimes it’s not obvious that what you’re doing is saying ‘no’. For many of us — and I certainly fall into this category — a lot of the messages we get are vaguely informational. They’re from random project mailing lists, perhaps they’re discussions between other people, and it’s unclear what we should do about them (or if we should do anything at all). We hang on to them (piling up in our Inboxes) because they might be relevant in the future. I am not advocating that you have to reply to every dumb mailing list email with a 5-part action plan and a Scrum meeting invite: that would be a disaster. You don’t have time for that. You really shouldn’t have time for that.

The trick about getting to Inbox Zero3 is not in somehow becoming an email-reading machine, but in realizing that most email is worthless, and that’s OK. If you’re not going to do anything with it, just archive it and forget about it. If you’re subscribed to a mailing list where only 1 out of 1000 messages actually represents something you should do about it, archive all the rest after only answering the question “is this the one I should do something about?”. You can answer that question after just glancing at the subject; there are times when checking my email I will be hitting “archive” with a 1-second frequency. If you are on a list where zero messages are ever interesting enough to read in their entirety or do anything about, then of course you should unsubscribe.

Once you’ve dug yourself into a hole with thousands of “I don’t know what I should do with this” messages, it’s time to declare email bankruptcy. If you have 24,000 messages in your Inbox, let me be real with you: you are never, ever going to answer all those messages. You do not need a smartwatch to tell you exactly how many messages you are never going to reply to.

We’re In This Together, Me Especially

A lot of guidance about what to do with your email addresses email overload as a personal problem. Over the years of developing my tips and tricks for dealing with it, I certainly saw it that way. But lately, I’m starting to see that it has pernicious social effects.

If you have 24,000 messages in your Inbox, that means you aren’t keeping track or setting priorities on which tasks you want to complete. But just because you’re not setting those priorities, that doesn’t mean nobody is. It means you are letting availability heuristic - whatever is “latest and loudest” - govern access to your attention, and therefore your time. By doing this, you are rewarding people (or #brands) who contact you repeatedly, over inappropriate channels, and generally try to flood your attention with their priorities instead of your own. This, in turn, creates a culture where it is considered reasonable and appropriate to assume that you need to do that in order to get someone’s attention.

Since we live in the era of subtext and implication, I should explicitly say that I’m not describing any specific work environment or community. I used to have an email startup, and so I thought about this stuff very heavily for almost a decade. I have seen email habits at dozens of companies, and I help people in the open source community with their email on a regular basis. So I’m not throwing shade: almost everybody is terrible at this.

And that is the one way that email, in the sense of the tools and programs we use to process it, is at fault: technology has made it easier and easier to ask people to do more and more things, without giving us better tools or training to deal with the increasingly huge array of demands on our time. It’s easier than ever to say “hey could you do this for me” and harder than ever to just say “no, too busy”.

Mostly, though, I want you to know that this isn’t just about you any more. It’s about someone much more important than you: me. I’m tired of sending reply after reply to people asking to “just circle back” or asking if I’ve seen their email. Yes, I’ve seen your email. I have a long backlog of tasks, and, like anyone, I have trouble managing them and getting them all done4, and I frequently have to decide that certain things are just not important enough to do. Sometimes it takes me a couple of weeks to get to a message. Sometimes I never do. But, it’s impossible to be mad at somebody for “just checking in” for the fourth time when this is probably the only possible way they ever manage to get anyone else to do anything.

I don’t want to end on a downer here, though. And I don’t have a book to sell you which will solve all your productivity problems. I know that if I lay out some incredibly elaborate system all at once, it’ll seem overwhelming. I know that if I point you at some amazing gadget that helps you keep track of what you want to do, you’ll either balk at the price or get lost fiddling with all its knobs and buttons and not getting a lot of benefit out of it. So if I’m describing a problem that you have here, here’s what I want you to do.

Step zero is setting aside some time. This will probably take you a few hours, but trust me; they will be well-spent.

Email Bankruptcy

First, you need to declare email bankruptcy. Select every message in your Inbox older than 2 weeks. Archive them all, right now. In the past, you might have to worry about deleting those messages, but modern email systems pretty much universally have more storage than you’ll ever need. So rest assured that if you actually need to do anything with these messages, they’ll all be in your archive. But anything in your Inbox right now older than a couple of weeks is just never going to get dealt with, and it’s time to accept that fact. Again, this part of the process is not about making a decision yet, it’s just about accepting a reality.

Mailbox Three

One extra tweak I would suggest here is to get rid of all of your email folders and filters. It seems like many folks with big email problems have tried to address this by ever-finer-grained classification of messages, ever more byzantine email rules. At least, it’s common for me, when looking over someone’s shoulder to see 24,000 messages, it’s common to also see 50 folders. Probably these aren’t helping you very much.

In older email systems, it was necessary to construct elaborate header-based filtering systems so that you can later identify those messages in certain specific ways, like “message X went to this mailing list”. However, this was an incomplete hack, a workaround for a missing feature. Almost all modern email clients (and if yours doesn’t do this, switch) allow you to locate messages like this via search.

Your mail system ought to have 3 folders:

  1. Inbox, which you process to discover tasks,
  2. Drafts, which you use to save progress on replies, and
  3. Archive, the folder which you access only by searching for information you need when performing a task.

Getting rid of unnecessary folders and queries and filter rules will remove things that you can fiddle with.

Moving individual units of trash between different heaps of trash is not being productive, and by removing all the different folders you can shuffle your messages into before actually acting upon them you will make better use of your time spent looking at your email client.

There’s one exception to this rule, which is filters that do nothing but cause a message to skip your Inbox and go straight to the archive. The reason that this type of filter is different is that there are certain sources or patterns of message which are not actionable, but rather, a useful source of reference material that is only available as a stream of emails. Messages like that should, indeed, not show up in your Inbox. But, there’s no reason to file them into a specific folder or set of folders; you can always find them with a search.

Make A Place For Tasks

Next, you need to get a task list. Your email is not a task list; tasks are things that you decided you’re going to do, not things that other people have asked you to do5. Critically, you are going to need to parse e-mails into tasks. To explain why, let’s have a little arithmetic aside.

Let’s say it only takes you 45 seconds to go from reading a message to deciding what it really means you should do; so, it only takes 20 seconds to go from looking at the message to remembering what you need to do about it. This means that by the time you get to 180 un-processed messages that you need to do something about in your Inbox, you’ll be spending an hour a day doing nothing but remembering what those messages mean, before you do anything related to actually living your life, even including checking for new messages.

What should you use for the task list? On some level, this doesn’t really matter. It only needs one really important property: you need to trust that if you put something onto it, you’ll see it at the appropriate time. How exactly that works depends heavily on your own personal relationship with your computers and devices; it might just be a physical piece of paper. But for most of us living in a multi-device world, something that synchronizes to some kind of cloud service is important, so Wunderlist or Remember the Milk are good places to start, with free accounts.

Turn Messages Into Tasks

The next step - and this is really the first day of the rest of your life - start at the oldest message in your Inbox, and work forward in time. Look at only one message at a time. Decide whether this message is a meaningful task that you should accomplish.

If you decide a message represents a task, then make a new task on your task list. Decide what the task actually is, and describe it in words; don’t create tasks like “answer this message”. Why do you need to answer it? Do you need to gather any information first?

If you need to access information from the message in order to accomplish the task, then be sure to note in your task how to get back to the email. Depending on what your mail client is, it may be easier or harder to do this6, but in the worst case, following the guidelines above about eliminating unnecessary folders and filing in your email client, just put a hint into your task list about how to search for the message in question unambiguously.

Once you’ve done that:

Archive the message immediately.

The record that you need to do something about the message now lives in your task list, not your email client. You’ve processed it, and so it should no longer remain in your inbox.

If you decide a message doesn’t represent a task, then:

Archive the message immediately.

Do not move on to the next message until you have archived this message. Do not look ahead7. The presence of a message in your Inbox means you need to make a decision about it. Follow the touch-move rule with your email. If you skip over messages habitually and decide you’ll “just get back to it in a minute”, that minute will turn into 4 months and you’ll be right back where you were before.

Circling back to the subject of this post; once again, this isn’t really specific to email. You should follow roughly the same workflow when someone asks you to do a task in a meeting, or in Slack, or on your Discourse board, or wherever, if you think that the task is actually important enough to do. Note the slack timestamp and a snippet of the message so you can search for it again, if there is a relevant attachment. The thing that makes email different is really just the presence of an email box.

Banish The Blue Dot

Almost all email clients have a way of tracking “unread” messages; they cheerfully display counters of them. Ignore this information; it is useless. Messages have two states: in your inbox (unprocessed) and in your archive (processed). “Read” vs. “Unread” can be, at best, of minimal utility when resuming an interrupted scanning session. But, you are always only ever looking at the oldest message first, right? So none of the messages below it should be unread anyway...

Be Ruthless

As you try to start translating your flood of inbound communications into an actionable set of tasks you can actually accomplish, you are going to notice that your task list is going to grow and grow just as your Inbox was before. This is the hardest step:

Decide you are not going to do those tasks, and simply delete them. Sometimes, a task’s entire life-cycle is to be created from an email, exist for ten minutes, and then have you come back to look at it and then delete it. This might feel pointless, but in going through that process, you are learning something extremely valuable: you are learning what sorts of things are not actually important enough to do you do.

If every single message you get from some automated system provokes this kind of reaction, that will give you a clue that said system is wasting your time, and just making you feel anxious about work you’re never really going to get to, which can then lead to you un-subscribing or filtering messages from that system.

Tasks Before Messages

To thine own self, not thy Inbox, be true.

Try to start your day by looking at the things you’ve consciously decided to do. Don’t look at your email, don’t look at Slack; look at your calendar, and look at your task list.

One of those tasks, probably, is a daily reminder to “check your email”, but that reminder is there more to remind you to only do it once than to prevent you from forgetting.

I say “try” because this part is always going to be a challenge; while I mentioned earlier that you don’t want to unthinkingly give in to availability heuristic, you also have to acknowledge that the reason it’s called a “cognitive bias” is because it’s part of human cognition. There will always be a constant anxious temptation to just check for new stuff; for those of us who have a predisposition towards excessive scanning behavior have it more than others.

Why Email?

We all need to make commitments in our daily lives. We need to do things for other people. And when we make a commitment, we want to be telling the truth. I want you to try to do all these things so you can be better at that. It’s impossible to truthfully make a commitment to spend some time to perform some task in the future if, realistically, you know that all your time in the future will be consumed by whatever the top 3 highest-priority angry voicemails you have on that day are.

Email is a challenging social problem, but I am tired of email, especially the user interface of email applications, getting the blame for what is, at its heart, a problem of interpersonal relations. It’s like noticing that you get a lot of bills through the mail, and then blaming the state of your finances on the colors of the paint in your apartment building’s mail room. Of course, the UI of an email app can encourage good or bad habits, but Gmail gave us a prominent “Archive” button a decade ago, and we still have all the same terrible habits that were plaguing Outlook users in the 90s.

Of course, there’s a lot more to “productivity” than just making a list of the things you’re going to do. Some tools can really help you manage that list a lot better. But all they can help you to do is to stop working on the wrong things, and start working on the right ones. Actually being more productive, in the sense of getting more units of work out of a day, is something you get from keeping yourself healthy, happy, and well-rested, not from an email filing system.

You can’t violate causality to put more hours into the day, and as a frail and finite human being, there’s only so much work you can reasonably squeeze in before you die.

The reason I care a lot about salvaging email specifically is that it remains the best medium for communication that allows you to be in control of your own time, and by extension, the best medium for allowing people to do creative work.

Asking someone to do something via SMS doesn’t scale; if you have hundreds of unread texts there’s no way to put them in order, no way to classify them as “finished” and “not finished”, so you need to keep it to the number of things you can fit in short term memory. Not to mention the fact that text messaging is almost by definition an interruption - by default, it causes a device in someone’s pocket to buzz. Asking someone to do something in group chat, such as IRC or Slack, is similarly time-dependent; if they are around, it becomes an interruption, and if they’re not around, you have to keep asking and asking over and over again, which makes it really inefficient for the asker (or the asker can use a @highlight, and assume that Slack will send the recipient, guess what, an email).

Social media often comes up as another possible replacement for email, but its sort order is even worse than “only the most recent and most frequently repeated”. Messages are instead sorted by value to advertisers or likeliness to increase ‘engagement’”, i.e. most likely to keep you looking at this social media site rather than doing any real work.

For those of us who require long stretches of uninterrupted time to produce something good – “creatives”, or whatever today’s awkward buzzword for intersection of writers, programmers, graphic designers, illustrators, and so on, is – we need an inbound task queue that we can have some level of control over. Something that we can check at a time of our choosing, something that we can apply filtering to in order to protect access to our attention, something that maintains the chain of request/reply for reference when we have to pick up a thread we’ve had to let go of for a while. Some way to be in touch with our customers, our users, and our fans, without being constantly interrupted. Because if we don’t give those who need to communicate with such a tool, they’ll just blast @everyone messages into our slack channels and @mentions onto Twitter and texting us Hey, got a minute? until we have to quit everything to try and get some work done.

Questions about this post?

Go ahead and send me an email.


Acknowledgements

As always, any errors or bad ideas are certainly my own.

First of all, Merlin Mann, whose writing and podcasting were the inspiration, direct or indirect, for many of my thoughts on this subject; and who sets a good example because he won’t answer your email.

Thanks also to David Reid for introducing me to Merlin's work, as well as Alex Gaynor, Tristan Seligmann, Donald Stufft, Cory Benfield, Piët Delport, Amber Brown, and Ashwini Oruganti for feedback on drafts.


  1. Email is so culturally pervasive that it is literally in Vogue, although in fairness this is not a reference to the overflowing-Inbox problem that I’m discussing here. 

  2. I find the “edit” function in Slack maddening; although I appreciate why it was added, it’s easy to retroactively completely change the meaning of an entire conversation in ways that make it very confusing for those reading later. You don’t even have to do this intentionally; sometimes you make a legitimate mistake, like forgetting the word “not”, and the next 5 or 6 messages are about resolving that confusion; then, you go back and edit, and it looks like your colleagues correcting you are a pedantic version of Mr. Magoo, unable to see that you were correct the first time. 

  3. There, I said it. Are you happy now? 

  4. Just to clarify: nothing in this post should be construed as me berating you for not getting more work done, or for ever failing to meet any commitment no matter how casual. Quite the opposite: what I’m saying you need to do is acknowledge that you’re going to screw up and rather than hold a thousand emails in your inbox in the vain hope that you won’t, just send a quick apology and move on. 

  5. Maybe you decided to do the thing because your boss asked you to do it and failing to do it would cost you your job, but nevertheless, that is a conscious decision that you are making; not everybody gets to have “boss” priority, and unless your job is a true Orwellian nightmare, not everything your boss says in email is an instant career-ending catastrophe. 

  6. In Gmail, you can usually just copy a link to the message itself. If you’re using OS X’s Mail.app, you can use this Python script to generate links that, when clicked, will open the Mail app:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    from __future__ import (print_function, unicode_literals,
                            absolute_import, division)
    
    from ScriptingBridge import SBApplication
    import urllib
    
    mail = SBApplication.applicationWithBundleIdentifier_("com.apple.mail")
    
    for viewer in mail.messageViewers():
        for message in viewer.selectedMessages():
            for header in message.headers():
                name = header.name()
                if name.lower() == "message-id":
                    content = header.content()
                    print("message:" + urllib.quote(content))
    

    You can then paste these links into just about any task tracker; if they don’t become clickable, you can paste them into Safari’s URL bar or pass them to the open command-line tool. 

  7. The one exception here is that you can look ahead in the same thread to see if someone has already replied. 

Syndicated 2016-04-24 23:54:00 from Deciphering Glyph

23 Apr 2016 mikal   » (Journeyer)

High Output Management




ISBN: 9780679762881
LibraryThing
A reading group of managers at work has been reading this book, except for the last chapter which we were left to read by ourselves. Overall, the book is interesting and very readable. Its a little dated, being all excited with the invention of email and some unfortunate gender pronouns, but if you can get past those minor things there is a lot of wise advice here. I'm not sure I agree with 100% of it, but I do think the vast majority is of interest. A well written book that I'd recommend to new managers.

Tags for this post: book andy_gove management intel non_fiction
Related posts: Being Geek; On Cars; Why document management is good; The Man in the Rubber Mask; Perl sample source code; Cataloguing meta data against multi media formats


Comment

Syndicated 2016-04-23 01:30:00 from stillhq.com : Mikal, a geek from Canberra living in Silicon Valley (no blather posts)

23 Apr 2016 marnanel   » (Journeyer)

"I shall come back" by Dorothy Parker

[death]
I SHALL COME BACK
by Dorothy Parker
 
I shall come back without fanfaronade
of wailing wind and graveyard panoply;
but, trembling, slip from cool Eternity —
a mild and most bewildered little shade.
I shall not make sepulchral midnight raid,
but softly come where I had longed to be
in April twilight's unsung melody,
and I, not you, shall be the one afraid.
Strange, that from lovely dreamings of the dead
I shall come back to you, who hurt me most.
You may not feel my hand upon your head,
I'll be so new and inexpert a ghost.
Perhaps you will not know that I am near —
and that will break my ghostly heart, my dear.
 
http://i.imgur.com/dSIcrykl.jpg
 

This entry was originally posted at http://marnanel.dreamwidth.org/366517.html. Please comment there using OpenID.

Syndicated 2016-04-23 00:03:44 from Monument

22 Apr 2016 mjg59   » (Master)

Circumventing Ubuntu Snap confinement

Ubuntu 16.04 was released today, with one of the highlights being the new Snap package format. Snaps are intended to make it easier to distribute applications for Ubuntu - they include their dependencies rather than relying on the archive, they can be updated on a schedule that's separate from the distribution itself and they're confined by a strong security policy that makes it impossible for an app to steal your data.

At least, that's what Canonical assert. It's true in a sense - if you're using Snap packages on Mir (ie, Ubuntu mobile) then there's a genuine improvement in security. But if you're using X11 (ie, Ubuntu desktop) it's horribly, awfully misleading. Any Snap package you install is completely capable of copying all your private data to wherever it wants with very little difficulty.

The problem here is the X11 windowing system. X has no real concept of different levels of application trust. Any application can register to receive keystrokes from any other application. Any application can inject fake key events into the input stream. An application that is otherwise confined by strong security policies can simply type into another window. An application that has no access to any of your private data can wait until your session is idle, open an unconfined terminal and then use curl to send your data to a remote site. As long as Ubuntu desktop still uses X11, the Snap format provides you with very little meaningful security. Mir and Wayland both fix this, which is why Wayland is a prerequisite for the sandboxed xdg-app design.

I've produced a quick proof of concept of this. Grab XEvilTeddy from git, install Snapcraft (it's in 16.04), snapcraft snap, sudo snap install xevilteddy*.snap, /snap/bin/xevilteddy.xteddy . An adorable teddy bear! How cute. Now open Firefox and start typing, then check back in your terminal window. Oh no! All my secrets. Open another terminal window and give it focus. Oh no! An injected command that could instead have been a curl session that uploaded your private SSH keys to somewhere that's not going to respect your privacy.

The Snap format provides a lot of underlying technology that is a great step towards being able to protect systems against untrustworthy third-party applications, and once Ubuntu shifts to using Mir by default it'll be much better than the status quo. But right now the protections it provides are easily circumvented, and it's disingenuous to claim that it currently gives desktop users any real security.

comment count unavailable comments

Syndicated 2016-04-22 01:51:19 from Matthew Garrett

21 Apr 2016 philiph   » (Journeyer)

21 Apr 2016 mikal   » (Journeyer)

Bad Pharma




ISBN: 9780007350742
LibraryThing
Another excellent book by Ben Goldacre. In this book he argues that modern medicine is terribly corrupted by the commercial forces that act largely unchecked in the marketplace -- studies which don't make a new drug look good go missing; new drugs are compared only against placebo and not against the current best treatment; doctors are routinely bribed with travel, training and small perks. Overall I'm left feeling like things haven't improved much since this book was published, given that these behaviors still seem common.

The book does offer concrete actions that we could take to fix things, but I don't see many of these happening any time soon, which is a worrying place to be. Overall, a disturbing but important read.

Tags for this post: book ben_goldacre medicine science corruption non_fiction
Related posts: Bad Science; Sixty five roses (Cystic Fibrosis); On Cars; Being Geek; Audio from linux.conf.au 2005 continued; Lemon juice as a cure for AIDS?


Comment

Syndicated 2016-04-20 16:53:00 from stillhq.com : Mikal, a geek from Canberra living in Silicon Valley (no blather posts)

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Advogato User Stats
Users13994
Observer9879
Apprentice746
Journeyer2334
Master1031

New Advogato Members

Recently modified projects

8 Mar 2016 ShinyCMS
8 Feb 2016 OpenBSC
5 Feb 2016 Abigail
29 Dec 2015 mod_virgule
19 Sep 2015 Break Great Firewall
20 Jul 2015 Justice4all
25 May 2015 Molins framework for PHP5
25 May 2015 Beobachter
7 Mar 2015 Ludwig van
7 Mar 2015 Stinky the Shithead
18 Dec 2014 AshWednesday
11 Nov 2014 respin
20 Jun 2014 Ultrastudio.org
13 Apr 2014 Babel
13 Apr 2014 Polipo

New projects

8 Mar 2016 ShinyCMS
5 Feb 2016 Abigail
2 Dec 2014 Justice4all
11 Nov 2014 respin
8 Mar 2014 Noosfero
17 Jan 2014 Haskell
17 Jan 2014 Erlang
17 Jan 2014 Hy
17 Jan 2014 clj-simulacrum
17 Jan 2014 Haskell-Lisp
17 Jan 2014 lfe-disco
17 Jan 2014 clj-openstack
17 Jan 2014 lfe-openstack
17 Jan 2014 LFE
1 Nov 2013 FAQ Linux