Older blog entries for etbe (starting at number 1040)

SE Linux Things To Do

At the end of my talk on Monday about the status of SE Linux [1] I described some of the things that I want to do with SE Linux in Debian (and general SE Linux stuff). Here is a brief summary of some of them:

One thing I’ve wanted to do for years is to get X Access Controls working in Debian. This means that two X applications could have windows on the same desktop but be unable to communicate with each other by any of the X methods (this includes screen capture and clipboard). It seems that the Fedora people are moving to sandbox processes with Xephyr for X access (see Dan Walsh’s blog post about sandbox -X [2]). But XAce will take a lot of work and time is always an issue.

An ongoing problem with SE Linux (and most security systems) is the difficulty in running applications with minimum privilege. One example of this is utility programs which can be run by multiple programs, if a utility is usually run by a process that is privileged then we probably won’t notice that it requires excess privileges until it’s run in a different context. This is a particular problem when trying to restrict programs that may be run as part of a user session. A common example is programs that open files read-write when they only need to read them, if the program then aborts when it can’t open the file in question then we will have a problem when it’s run from a context that doesn’t grant it write access. To deal with such latent problems I am considering ways of analysing the operation of systems to try and determine which programs request more access than they really need.

During my talk I discussed the possibility of using a shared object to log file open/read/write to find such latent problems. A member of the audience suggested static code analysis which seems useful for some languages but doesn’t seem likely to cover all necessary languages. Of course the benefit of static code analysis is that it will catch operations that the program doesn’t perform in a test environment – error handling is one particularly important corner case in this regard.

Related posts:

  1. Debian SSH and SE Linux I have just filed Debian bug report #556644 against the...
  2. /run and SE Linux Policy Currently Debian/Unstable is going through a transition to using /run...
  3. New SE Linux Policy for Wheezy I’ve just uploaded a new SE Linux policy for Debian/Wheezy....

Syndicated 2013-01-30 21:16:33 from etbe - Russell Coker

My SE Linux Status Report – LCA 2013

This morning I gave a status report on SE Linux. The talk initially didn’t go too well, I wasn’t in the right mental state for it and I moved through the material too fast. Fortunately Casey Schaufler asked some really good questions which helped me to get back on track. The end result seemed reasonably good. Here’s a summary of the things I discussed:

Transaction hooks for RPM to support SE Linux operations. This supports signing packages to indicate their security status and preventing packages from overwriting other packages or executing scripts in the wrong context. There is also work to incorporate some of the features of that into “dpkg” for Debian.

Some changes to libraries to allow faster booting. Systems with sysvinit and a HDD won’t be affected but with systemd and SSD it makes a real difference. Mostly Red Hat’s work.

Filename transition rules to allow the initial context to be assigned based on file name were created in 2011 but are not starting to get used.

When systemd is used for starting/stopping daemons some hacks such as run_init can be avoided. Fedora is making the best progress in this regard due to only supporting systemd while the support for other init systems will limit what we can do for Debian. This improves security by stopping terminal buffer insertion attacks while also improving reliability by giving the daemon the same inherited settings each time it’s executed.

Labelled NFS has been accepted as part of the NFSv4.2 specification. This is a big deal as labelled NFS work has been going for many years without hitting such a milestone in the past.

ZFS and BTRFS support but we still need to consider management issues for such snapshot based filesystems. Filesystem snapshots have the potential to interact badly with relabelling if we don’t develop code and sysadmin practices to deal with it properly.

The most significant upstream focus of SE Linux development over the last year is SE Android. I hope that will result in more work on the X Access Controls for use on the desktop.

During question time I also gave a 3 minute “lightning talk” description of SE Linux.

Related posts:

  1. SE Linux Status in Debian 2012-01 Since my last SE Linux in Debian status report [1]...
  2. Debian SE Linux Status June 2012 It’s almost the Wheezy freeze time and I’ve been working...
  3. Status of SE Linux in Debian LCA 2009 This morning I gave a talk at the Security mini-conf...

Syndicated 2013-01-28 02:56:30 from etbe - Russell Coker

LCA 2012

LCA 2013 [1] is starting so it seems like time to finish my write-up of LCA 2012.

As usual it was a great conference, although I got sick immediately after getting there which reduced my ability to attend.

Android

A major unofficial theme of the conference was Android. Most delegates seemed to have Android phones, the Samsung Galaxy S and Galaxy Nexus seemed to be the most popular phones. Many delegates had two or more phones for development purposes. A large portion of the casual conversation at the conference concerned Android.

There were a couple of really interesting talks about the Serval mesh networking project [2] which involves Android phones running in ad-hoc Wifi mode for long range communication without any official base station. Serval allows transferring messages, pictures, and voice calls. If you need to get longer range you can mount one phone in a convenient place and other phones will decide to use it as a relay – there is no need to have a dedicated relay device (such as a mobile phone tower or Wifi access point). Serval is supposed to work with Wifi access points but due to Java not exposing some networking details to the higher levels of software the code that was available at the time of the conference didn’t support networks other than a /24, which meant that the conference Wifi network didn’t work with Serval. As an aside most people at the conference who installed Serval were using a development version that was newer than the version on the Android market. I can’t remember what the extra features were though.

Serval was designed for emergency situations, it can be installed on phones (and pushed to other phones via Wifi) in the field and allow communications when the infrastructure is broken. Also it’s designed with some aim of circumventing censorship which among other things means that there are no facilities for tracking use. I think it would be really handy to be able to in some way track viewing of or interest in images that are transported via the mesh (maybe by something similar in concept to Google +1). Then in a crowd sourced environment people who take photos would be encouraged in their work by audience appreciation.

One thing that interests me is the possibility of using Serval on a cruise ship. A cruise ship is an environment where mobile phone calls are unreasonably expensive, cabin phones aren’t much use (who pays for a cruise and hangs out in their cabin?), and where there is usually a Wifi network installed. If a ship has a single bridged Wifi network that allows connecting to Wifi before authenticating for Internet access (which is probably the common case) then you could transport VOIP over that network without paying – and without incurring any expense on the cruise company. One of the Serval developers assured me that this should be possible, of course a cruise ship with 3,000 passengers probably doesn’t use a /24 for their Wifi so the current versions of Serval won’t work…

At the “geek my dinner” event (a party where everyone brought $20 of food/drink which was cooked by volunteers) an artist showed me some art work that she created on her Samsung Galaxy Note (which was the biggest phone on sale at the time), it was very impressive. She recommended Picasso Mirror Draw, Sketch Free, Sketch Book Mobile Express, and Freenote as free graphical programs for Android. Samsung has a Noteworthy Project advertising campaign based on the artistic uses of the Galaxy Note which has some good videos of artists [3].

Chris Neugebauer and Paris Buttfield-Addison gave an informative and amusing talk about Android UI development (this link has the video) [4]. It’s a pity that I missed seeing that one live but fortunately the video is of high quality.

Accommodation

picture of women cleaning

As I’ve become interested in Sociology I couldn’t help but notice the pictures that accompanied the rules about cleaning the dormitory (which were displayed over the kitchen sink), it seems to imply that cleaning is only women’s work. I wonder whether the people who created that poster deliberately chose pictures of women or whether they just chose the first available pictures from a collection of stock photos.

Someone who was near my dorm room seemed to not realise how their alarm impacts other people. For the first two mornings I was woken repeatedly after 6AM by someone who was pressing the snooze button on their alarm. When sleeping in close proximity to other people the reasonable options involve some combination of having no loud alarm, immediately turning the alarm off and getting up (not pressing snooze to have it go off repeatedly), and setting the alarm for a time when almost everyone wants to get up (EG 1 hour before the first session).

Networking

Chris Neugebauer organised the Unprofessional Delegates Networking Session which was a great event. It was an event held at the same time as the Professional Delegates Networking Session with the difference being that you had to pay $5 for food and there was no free drink. A lot of great people attended the UPDNS so I’m glad I don’t pay for the PDNS. It seems that we won’t have a UPDNS this year unfortunately.

Conclusion

LCA is always great fun and very educational. I recommend attending every year.

Related posts:

  1. Back to the Xperia X10 10 months ago I was given a Samsung Galaxy S...
  2. A Computer Conference on a Cruise Ship After LCA [1] there was a discussion about possible locations...
  3. CyanogenMod and the Galaxy S Thanks to some advice from Philipp Kern I have now...

Syndicated 2013-01-27 12:09:04 from etbe - Russell Coker

Power Supplies and Wires

For some time I’ve been wondering how the wire size for power supplies limits the power. So I’ve done some quick calculations to determine if it’s a problem.

The first type that is of interest are the “Inverters” that are used to convert 12VDC to 240VAC (mains power) to allow electric devices to be operated in a car. I’ve seen some reports from dissatisfied user about Inverters not supplying as much power as expected and I’ve had problems with my 150W Inverter not always supplying my Thinkpad (which definitely doesn’t draw 150W). The second type is phone chargers as charging a phone in a reasonable amount of time is always a problem.

Inverter Rating Fine Print vs Laptop PSU

My Thinkpad Power Supply claims “Efficiency Level IV” which according to the US EPA document describing the efficiency marking protocol for external power supplies [1] means that it is at least 85% efficient when supplying 50W+. The peak output of the PSU is 4.5A at 20V which is 90W peak output, 90/0.85 == 106W power drawn. One would hope that wouldn’t be a problem from a 150W PSU.

But the fine print on the PSU says that it can provide 110W continuously and 150W for 10 minutes. So according to my calculations I’m within 4W of overloading the PSU if my Thinkpad uses full power. It also says that it is designed for 13.8V input. I have no idea how the performance of the Inverter changes as the supply Voltage changes between the 12.6V that a 6 cell lead-acid battery is designed to provide and the 13.8V charge from the car alternator. But I have had occasions when my Inverter stopped working correctly presumably due to being unable to supply as much current as my Thinkpad draws.

As an aside I measured the Voltage in my car (with the engine off) at 12.85V from the cigarette lighter socket and 13.02V directly from the battery. I wonder if there is some sort of overload protection on the cigarette lighter which has a side effect of reducing the Voltage. Resistance in wires reduces the Voltage, but all Voltage meters are designed to have a high resistance to prevent that from being an issue. If anyone has an explanation for the 0.17Volt drop then please write a comment!

Can a Car Provide 130W from the Cigarette Lighter socket?

If the Inverter is also 85% efficient (and it might be less as it has no indication of efficiency on the box) then when supplying 110W it would draw 110/0.85 == 129.4W (I’ll round it up to 130W).

The power in Watts is equal to the Voltage multiplied by the current in Amps (W=V*I). Therefore I=W/V so if the car battery was at 12.85V then 130W/12.85V == 10.12A will flow.

The current that goes through a circuit is equal to the Voltage divided by the resistance (see the Wikipedia page on Ohm’s law for more information). This also means that the resistance equals the Voltage divided by the current. 12.85V/10.12A == 1.27 Ohms. Note that this is the resistance of the entire circuit, all the wires going to the battery, the circuitry inside the Inverter, and the internal resistance of the battery.

The Inverter’s cable is 1M long (2 meters of wire) and each wire is about 3.5mm in diameter including the insulation which means that the copper wire is probably equivalent to a single core conductor that is about 1mm in diameter. According to one of the online guides to resistance [2] wire that is 1.02mm in diameter will have a resistance of 0.02 Ohms per meter which gives a resistance of 0.04 Ohms. 0.04 Ohms is 3% of the total resistance of the circuit which doesn’t seem like it will be a real problem.

In practice I’ve noticed that the connector gets extremely hot when it’s in use while the cable doesn’t get warm enough to notice. I suspect that the quality of the connector limits the power that is available but I don’t have an easy way of measuring this.

Inverters that are rated at 300W are designed to attach directly to the battery. An Inverter that is rated at 300W would draw 300W/0.85 == 352W from the battery. That needs 352W/13.02V == 27.04A and therefore a circuit resistance of 13.02V/27.04A == 0.48 Ohms total resistance. I wonder whether dirt on the battery terminals would give a significant portion of that.

Phone Charging

I’ve also been wondering about why mobile phones take so long to charge, and now I’ve finally done the calculations.

The latest standard for mobile phones is to use USB for charging. The Wikipedia page about USB says that the standard is for USB 2.0 to supply up to 500mA at 5V +-5%. That means 0.5A*5V == 2.5W +- 5%. If we assume that the internal power supply in a phone is also 85% efficient then that means 2.5*0.85 == 2.125W going to the battery.

My Samsung Galaxy S3 has a battery which is rated at 7.98Wh. According to the Wikipedia page about Lithium Ion batteries the charge/discharge efficiency is 80% to 90% – I’ll assume that it’s 85% for further calculations. If the battery in the phone is 85% efficient and the phone is doing nothing but charging then the charge time for a regular USB port would be 7.98Wh/0.85/2.125W == 4.42 hours (4 hours 25 minutes) of charge time. That probably means something closer to 5 hours to totally charge the phone while it’s running. There are dedicated “charging ports” for USB which can supply up to 1.5A. The 3rd party charger which came with my phone was rated at 1A and would hopefully be capable of completely charging the phone in less than 3 hours (but in practice isn’t). It’s interesting to note that MacBooks expose the amount of current drawn from a USB port with a GUI, so it should be possible to measure a phone charge rate by connecting it to a MacBook (which is cheaper than cutting up a phone cable).

My old Samsung Galaxy S has a battery which is rated at 5.55Wh, by the same calculations it would take slightly more than 3 hours to charge on a standard USB port or 1.5 hours on my newest USB charger. In practice it has never got anywhere close to that, I presume that the phone is designed to draw less than 500mA.

Phone Cable Resistance

The charger that came with my Galaxy S has a cable that is about 1.75M long, the cable is flat and measures just over 1mm thick and about 2mm wide. Presumably the wire is equivalent to a single core that’s about 0.4mm in diameter thus giving it a resistance of about 0.134 Ohm per meter, or 1.75*2*0.134 == 0.469 Ohm for the cable. The charger is rated at 0.7A. To supply 0.7A at 5V the resistance would be 5V/0.7A == 7.143 Ohm – so about 6.6% of the total resistance of the circuit would be in the wire from the charger to the phone.

The charger that came with my Galaxy S3 has a round cable that’s just over 3mm thick and about 90cm long. If each wire in the cable is equivalent to a solid wire that is 0.912mm in diameter then it would be 0.0264 Ohm per meter of wire or 0.9*2*0.0264 == 0.0475 Ohm. The total circuit resistance would be 5V/1A == 5 Ohm. So 0.0475 Ohm is less than 1% of the circuit resistance.

Voltage Drop

The Voltage across a part of a circuit is proportional to the resistance (see the Wikipedia page on Series and Parallel Circuits for a good explanation).

Basically this means that if 1% of the resistance of a circuit is in the wire then 1% of the Voltage drop will also be in the wire, so if we have a 5V supply with my Galaxy S3 cable then each of the two wires in the cable will have a difference of about 0.025V between the ends and the phone will receive a supply of 4.95V, the difference isn’t something that is worth worrying about. But the cable from my Galaxy S has a resistance equivalent to 6.6% of the circuit resistance which means that the theoretical charge time will be 6% longer than it might be – or 6% more current will be drawn from the mains than should be needed.

Conclusion

The charger that came with my Samsung Galaxy S isn’t much good. Wasting 6.6% of the power in the wire is unreasonable.

Phones keep getting more power hungry and batteries keep getting larger. There are third party phone batteries and external batteries that are charged by USB which have more than twice the capacity of the stock phone batteries – this means more than twice the charge time. This problem will keep getting worse.

The problem of a phone in active use drawing more power than the charger can provide (and running out of battery while on the charger) seems likely to stay with us. So while an Android phone has the potential to be a great little embedded server it seems that hacking the power supply is going to be a required first step for realising that potential.

The decision to make 5V the USB power standard was reasonable at the time as it was the voltage used for most things on the motherboard. The decision to use USB as the phone charging standard was also reasonable, it allows phones to be charged anywhere. The combination of those two decisions isn’t good for the user. If a higher Voltage such as 12V was used then 5* the power could be supplied through the same wires at the same level of efficiency.

It would be really good if cars came with built in Inverters and supplied 240VAC or 110VAC depending on the region they were manufactured for. It’s becoming a fairly common feature to have a “cigarette lighter” port in the car boot as well as at least two ports inside the car. When a car has three sockets and only one device to actually light cigarettes (which I suspect is only provided to fill an empty socket) it’s very obvious that people want to connect random devices. Also having USB charging ports inside the car would be a really good idea (one for each seat would be good for Ingress).

Related posts:

  1. Samsung Galaxy S3 First Review with Power Case My new Samsung Galaxy S3 arrived a couple of days...
  2. CyanogenMod and the Galaxy S Thanks to some advice from Philipp Kern I have now...
  3. Cooling Phones According to the bureau of meteorology today is 39C. But...

Syndicated 2013-01-24 11:47:16 from etbe - Russell Coker

Phone Calls and Other Distractions

Harald Welte has written about the distraction of phone calls and how it impacts engineering work [1]. He asks why people feel that they are entitled to interrupt him given the cost to his work.

Some years ago while working as a programmer I was discussing such things with a colleague who worked for the consulting part of the same company. He was really surprised when I told him that a phone call at the wrong time would cost me at least 30 minutes work and possibly an hour or more. His work was also quite technical and demanding but the difference between software development (where you need to think about a lot of program state to consider where the problem might be) and consulting (where you have to deal with a smaller number of configuration file options and sometimes getting debugging information to someone like me) is considerable. So the attitudes towards receiving calls also tends to be quite different.

Computer work requires more concentration, thought, and knowledge of system state than many (most?) career choices. If someone finds that an unexpected phone call costs them no more than a few minutes work then it’s quite reasonable of them to phone other people whenever they feel like it – generally by default people think that everyone else is just like them.

In terms of managing interruptions to my work, I generally encourage people to email me and that works reasonably well. So I don’t have too many problems with distracting phone calls. I used Jabber for a while a few years ago but I didn’t reinstall my Jabber server after it became corrupt because of the distraction. I believe that was due to using Jabber in the wrong way. I should have just started a Jabber client when I wasn’t doing anything important and then killed it when I started doing some serious coding. Having a Jabber message interrupt me when I’m watching a TED talk or reading blogs is no big deal. In fact I could tell everyone who has my phone number that if they see me on Jabber then they can just phone me if they wish while knowing that it won’t distract me from anything serious. I wonder if I could configure a Jabber client to only receive messages when a program such as mplayer is running.

I have configured my laptop and workstation to never alert me for new mail. If I’m not concentrating then I’ll be checking my email frequently and if I am concentrating I don’t want a distraction. I have configured my phone to give one brief vibration when it gets mail and not make any sound, I will only notice that if I’m not concentrating on anything. It’s a standard Android feature to associate ring tones with phone numbers, it’s a pity that the K9 MUA doesn’t allow associating email addresses with notifications. There are some people who’s email could usefully trigger an audible alert. There is an K9 feature request from 2009 to allow notifications only when the IMAP flag “Flagged” is set which would allow the mail server to determine which users are important, but there’s no sign that it will be implemented soon.

I’ve started playing with Google+ recently due to Ingress team interaction being managed through it. Google+ seems quite poor in this regard, it defaults to making a ring tone for lots of different events. Turning that off is easy enough but getting notifications only about things that are important to me seems impossible. I would like to get an audible alert when someone makes a Google+ post with an Ingress code (because they expire quickly and because they only seem to be posted at times when I’m not busy) but not get audible alerts about anything else. I’m sure that most people who use Google+ would like to have different notifications for various types of event. But the Android client has options for whether there should be vibration and/or noise and for which events get the notifications. No options for different notifications for different events and for treating some community posts differently from others.

It seems that the default settings for most programs suit people who never need to spend much time concentrating on a task. It also seems that most programs don’t offer configuration options that suit the needs of people who do concentrate a lot but who also sometimes receive important phone calls and email. It’s ironic that so many applications are designed in the least optimal way for the type of people who develop applications. The Google+ developers have an excuse as doing what I desire would be quite complex. But there are other programs which should deal with such things in a user friendly manner.

Related posts:

  1. Globalisation and Phone Calls I just watched an interesting TED talk by Pankaj Ghemawat...
  2. A Mobile Phone for Sysadmin Use My telco Three have just offered me a deal on...
  3. Health and Status Monitoring via Smart Phone Health Monitoring Eric Topol gave an interesting TED talk about...

Syndicated 2013-01-18 12:15:22 from etbe - Russell Coker

Cooling Phones

According to the bureau of meteorology today is 39C. But mad dogs and Ingress players go out in the midday sun, so I took advantage of some spare time to capture a couple of portals.

After that my phone battery was apparently at 46C and my phone refused to charge.

It seems that in addition to the range of hardened phone cases we need some cooling cases for phones. A case that contained a substance with a melting point of 39C wouldn’t melt from body heat but would set an upper limit on the phone temperature. A peltier device probably wouldn’t work as it would take too much power (and the batteries supplying the power would produce more heat).

I think that the phones with an aluminium back are the best design. Aluminium is light, reflective (unlike the black plastic which is so common), and conducts heat better than most things. A phone shell made of copper probably isn’t viable due to copper being dense and soft.

Another problem is the need for third party cases to protect against damage. If the phone companies designed phones to be solid, rubbery at the edges (to bounce not break) and so that the screen didn’t touch the surface when the phone is face down then we could avoid phone cases which also act as thermal insulation.

I am a bit disappointed in Samsung. I could understand Nokia making phones that don’t survive the heat well, but I don’t think that Korea is that much cooler than Australia. A phone that works well on the hottest day of summer in Seoul should do better than my Galaxy S3.

Related posts:

  1. Dual SIM Phones vs Amaysim vs Contract for Mobile Phones Currently Dick Smith is offering two dual-SIM mobile phones for...
  2. Old Mobile Phones as Toys In the past I have had parents ask for advice...
  3. Efficiency of Cooling Servers One thing I had wondered was why home air-conditioning systems...

Syndicated 2013-01-17 05:58:28 from etbe - Russell Coker

Promoting Enthusiasm

Rusty wrote an insightful post titled “What Can I Do To Help?” about reactions to new ideas [1]. He suggests that people make an effort to have a positive approach when someone talks about a new idea, it’s quite common for people to point out reasons why the new idea might not work out which is discouraging for the person who had the idea. I think that is a really good point. I probably haven’t done too well in that regard in the past and will try to do better in future.

Code Written by Assholes

Rusty previously wrote a post titled “If you didn’t run code written by assholes, your machine wouldn’t boot” which implies that we should just let assholes be assholes [2]. That doesn’t go well with his “What Can I Do To Help?” post. Note that I’m not accusing Rusty of hypocrisy here, giving advice to help people who want to get along well with others is not in contradiction with refraining from giving unsolicited advice and encouragement to difficult people who have expressed no interest in improving their behavior. A comment on the latter post by “Doctor Whom” says “If I had seen this kind of talk when I was a teenager, I would have thought twice about picking up coding“, presumably given the number of people who read Rusty’s blog there are some teenagers who experienced some discouragement towards a career in computers (or a hobby in FOSS) from Rusty’s post.

I’ve already written a response to the “If you didn’t run code written by assholes” post, among other things I suggested that people who are minor assholes should be assisted to be less difficult and major assholes should be excluded [3]. In that post I was working on the assumption that for every significant task that needs to be completed (such as making a popular OS bootable) someone will do it, if the person working on it disappears then someone else will take over – there is a community of programmers who will work on whatever needs to be done.

The Importance of Individuals

But in terms of new ideas it really comes down to individuals. Most projects which are significant and important now probably started out as one person or a small group who had an idea that seemed unlikely to succeed at the time. So while any big and successful project can have people replaced (which is among other things a requirement of long-term success) there are situations in which individuals with ideas matter.

Another important factor is that even ideas which turn out to be impractical are still useful. Someone who has an impractical idea about a technical issue and investigates it fully will learn a lot and may end up working on the less radical ways of solving similar problems – this is good for the individual and the community.

Another Way of Promoting Enthusiasm

In terms of promoting enthusiasm it seems that one thing that can be done by high profile people is to avoid writing posts like “If you didn’t run code written by assholes, your machine wouldn’t boot”. When people in positions of power and influence appear to have no interest in promoting good behavior it really discourages people who are vulnerable to the assholes – which among other things means most members of minority groups. Obviously Rusty could’t stamp out all asshole behavior, but if he announced a plan to try and make things better in that regard then it would help. It’s difficult to be enthusiastic when faced with discrimination from a minority and disinterest from the majority.

Of course with the way the Internet works I’m sure someone will say “what about the assholes who have great ideas, shouldn’t we nurture their enthusiasm by letting them keep doing asshole things?”. I think that for the major assholes this won’t be a problem, for example anyone who’s racist will be well aware that many people disagree strongly with them and thus won’t be particularly discouraged when they meet more people who disagree. For the minor assholes (people who don’t want to be assholes) it will be somewhat discouraging to be corrected, but that could be a learning experience for them that’s worth more than support in implementing their latest technical idea.

Update: Why Rusty is Important

In response to a comment by private mail I’ve added this section after publication.

Firstly I think that the opinions of all members of the community matter as they all affect the social environment which determines what types of behavior are encouraged and discouraged. But Rusty is more important than most people.

Firstly Rusty has a Wikipedia page [4], that alone is an objective criteria indicating his importance.

But in terms of influencing people in the FOSS community the most important things are that he’s a high profile Linux kernel programmer (which alone gives significant status and influence) and that he’s the founder of the first Linux conference in Australia (which is now known as Linux.conf.au AKA LCA). When issues such as the anti-harassment policy for LCA are being discussed any opinion that Rusty offered would be taken very seriously. But so far he doesn’t seem to be involved in any of the public discussions.

Related posts:

  1. Are Assholes Essential to a Free Software Project? What do Assholes do? Rusty just wrote a post titled...
  2. Terms of Abuse for Minority Groups Due to the comments on my blog post about Divisive...

Syndicated 2013-01-14 13:40:57 from etbe - Russell Coker

Promoting Enthusiasm

Rusty wrote an insightful post titled “What Can I Do To Help?” about reactions to new ideas [1]. He suggests that people make an effort to have a positive approach when someone talks about a new idea, it’s quite common for people to point out reasons why the new idea might not work out which is discouraging for the person who had the idea. I think that is a really good point. I probably haven’t done too well in that regard in the past and will try to do better in future.

Code Written by Assholes

Rusty previously wrote a post titled “If you didn’t run code written by assholes, your machine wouldn’t boot” which implies that we should just let assholes be assholes [2]. That doesn’t go well with his “What Can I Do To Help?” post. Note that I’m not accusing Rusty of hypocrisy here, giving advice to help people who want to get along well with others is not in contradiction with refraining from giving unsolicited advice and encouragement to difficult people who have expressed no interest in improving their behavior. A comment on the latter post by “Doctor Whom” says “If I had seen this kind of talk when I was a teenager, I would have thought twice about picking up coding“, presumably given the number of people who read Rusty’s blog there are some teenagers who experienced some discouragement towards a career in computers (or a hobby in FOSS) from Rusty’s post.

I’ve already written a response to the “If you didn’t run code written by assholes” post, among other things I suggested that people who are minor assholes should be assisted to be less difficult and major assholes should be excluded [3]. In that post I was working on the assumption that for every significant task that needs to be completed (such as making a popular OS bootable) someone will do it, if the person working on it disappears then someone else will take over – there is a community of programmers who will work on whatever needs to be done.

The Importance of Individuals

But in terms of new ideas it really comes down to individuals. Most projects which are significant and important now probably started out as one person or a small group who had an idea that seemed unlikely to succeed at the time. So while any big and successful project can have people replaced (which is among other things a requirement of long-term success) there are situations in which individuals with ideas matter.

Another important factor is that even ideas which turn out to be impractical are still useful. Someone who has an impractical idea about a technical issue and investigates it fully will learn a lot and may end up working on the less radical ways of solving similar problems – this is good for the individual and the community.

Another Way of Promoting Enthusiasm

In terms of promoting enthusiasm it seems that one thing that can be done by high profile people is to avoid writing posts like “If you didn’t run code written by assholes, your machine wouldn’t boot”. When people in positions of power and influence appear to have no interest in promoting good behavior it really discourages people who are vulnerable to the assholes – which among other things means most members of minority groups. Obviously Rusty could’t stamp out all asshole behavior, but if he announced a plan to try and make things better in that regard then it would help. It’s difficult to be enthusiastic when faced with discrimination from a minority and disinterest from the majority.

Of course with the way the Internet works I’m sure someone will say “what about the assholes who have great ideas, shouldn’t we nurture their enthusiasm by letting them keep doing asshole things?”. I think that for the major assholes this won’t be a problem, for example anyone who’s racist will be well aware that many people disagree strongly with them and thus won’t be particularly discouraged when they meet more people who disagree. For the minor assholes (people who don’t want to be assholes) it will be somewhat discouraging to be corrected, but that could be a learning experience for them that’s worth more than support in implementing their latest technical idea.

Related posts:

  1. Are Assholes Essential to a Free Software Project? What do Assholes do? Rusty just wrote a post titled...
  2. Terms of Abuse for Minority Groups Due to the comments on my blog post about Divisive...

Syndicated 2013-01-14 09:55:57 from etbe - Russell Coker

Android Multitasking

My new Samsung Galaxy S3 has support for “Multi Window Mode”, here is a video which shows how to use this, Multi Window Mode starts at about 2:30 [1].

A common complaint about Android is the lack of multitasking, which is partly true and only slightly alleviated by Multi Window Mode.

Running Multiple Programs

Traditionally Android has multitasked with a similar ability to a Unix shell session, you can have applications running in the background and switch between them but you can’t see multiple applications running at the same time (apart from seeing notification messages at the top of the screen). The new Multi Window Mode allows two or more applications to share a screen. But it only applies to a small number of applications which support it, on my phone that is applications shipped by Samsung and Google Chrome. Also I can’t have multiple copies of Chrome open at the same time which means I can’t do the things that I do on every PC that runs Chromium (the non-Google build of Chrome).

I have not yet found a situation where Multi Window Mode has been useful to me, the applications I use for most tasks don’t support it.

So while Android being based on Linux does multitask really well in the technical computer-science definition it doesn’t do so well in the user-centric definition. In practice Android multitasking is mostly about task switching and doing things like checking email in the background. Having multiple programs running at once is particularly difficult due to the Android model of applications sometimes terminating when they aren’t visible. A common task is to view a message in a MUA and switch between that and another window (EG a web browser). K9 is my preferred MUA for Android which seems to have no option to switch back and still be viewing the same message as before the task switch – so at least three actions need to be taken to get back to the same message after I resume K9. One major feature to make multitasking on Android more usable would be a way of rapidly switching between two applications and being certain that each one would be in the same state when the user switches back to it.

Copy and Paste

Another problem with Android multitasking is the difficulty in copying and pasting text. While copy/paste is not strictly required for multitasking it is a logical requirement when you have multiple applications running on behalf of a single user. For PCs everyone knows that you select text by holding down the SHIFT key while using the cursor control keys or by holding down the mouse button and swiping the mouse cursor over the text and you then use CTRL-C or the Edit menu to copy text. On Android it’s a long press to select text which then gives you markers for the start and end, you drag those markers around and then select that you want to copy the text. This is at best a lot more inconvenient than using a high resolution input device like a mouse to select text. At worst it doesn’t seem particularly reliable, K9 Mail for example won’t let me copy text from a message for unknown reasons – on a desktop OS such problems are vanishingly rare such that I can’t think of an example of it happening.

IO and Multitasking

Multitasking for a user (as opposed to the multitasking needed to host dozens or hundreds of concurrent users) on Unix servers was very limited in the days of VT100 terminals and similar devices. Programs such as GNU Screen [2] allowed a text display to perform windowing functions that are similar to a modern GUI. But generally it seems that the ability for a user to run multiple programs at once is largely limited by their ability to see the output and to rapidly switch between programs or sessions.

As a keyboard with ~100 keys and a text display with 80*25 characters is a major limitation it’s obviously going to be a comparable (and often greater) limitation to have an on-screen “keyboard” that takes half the screen space, a single program taking all the screen, and a drop-down status bar that might be useful for multitasking.

With Android 4.0 and above you can activate a task switcher by holding down the home button for two seconds [3]. There are also a variety of third party task switching programs on the Google Play store which all seem to start by holding down the home button. One problem with these options is that they require an extended press of the home button where the ideal is something that is as quick as ALT-TAB or a single mouse movement on a desktop system. One possible input action would be to switch between the most recent tasks with a palm swipe on the screen – an operation that is quick and easy. Currently a palm swipe is used for a screen capture, but as there are four possible directions for swiping the screen one of them could be used for screen capture and another two for task switching. But this wouldn’t do a lot of good without the ability to switch tasks without losing the context – that either requires Android application changes or having the OS not tell an application that it was occluded.

The iPaQ had interesting capabilities for input, it had a main button on the front that could be pushed in four directions (usually for cursor control) as well as being pushed in, four extra buttons on the front, and a button on the side [4]. I don’t recall the methods that Familiar Linux on the iPaQ [5] used for task switching, but it was less of an issue as the iPaQ had less RAM, no Internet access and no telephony functions. I think that adding a bunch of extra buttons to an Android phone would make it a lot more useful. The iPaQ method of cursor control is one that could be considered (it could alleviate the copy/paste problems among other things). As an aside in two years of using Android phones I’ve done less serious writing on Android than I did in my first two years of using Familiar on the iPaQ largely due to the lack of keys and a stylus on my Android phones.

The screen size on Android phones is also a limit for multitasking. The earlier/cheaper phones that have small screens with resolutions such as 320*480 have very limited ability to display two programs at once. The 720*1280 display in the Galaxy S3 has a lot more potential in this regard and the Galaxy Note 2 and the HTC J Butterfly AKA Droid DNA have even more potential. In the future it seems that screen size limitations on phone multitasking will be a solved problem for everyone who can afford one of the high end phones – which incidentally are much cheaper than the iPaQ was 10 years ago.

Conclusion

Checking email in the background etc is very useful on Android systems. But in terms of the user running two programs at once it seems very limited, and that situation seems likely to remain until the vendors adopt multi-window support. This could be difficult given that Google applied a lot of pressure to CyanogenMod to stop them from doing it [6].

Even when a system with a large display (particularly a tablet) runs a version of Android that supports multi-window mode that still won’t entirely solve the problem. No matter how big your display is there are occasions when you need to use it all for a single application while still having the ability to rapidly switch to another application. User interface tweaks to allow rapid task switching without losing application context are necessary.

Finally for the past two years that I’ve been using Android devices I have been disappointed in the ways that they compare poorly to the iPaQ running Familiar I used 10 years ago. I once wrote a feature article for a magazine on an iPaQ while so far I haven’t even written a blog post on an Android device. I think that some of the earlier Android devices might have been better in some ways, the trackball on the HTC Nexus One might have made it more suitable for writing long articles than more recent Android devices.

Related posts:

  1. Review of the EeePC 701 I have just bought a EeePC 701 [1], I chose...
  2. Standardising Android Don Marti wrote an amusing post about the lack of...
  3. Love of Technology at First Sight After seeing the Retina display I’ve been thinking about the...

Syndicated 2013-01-13 09:38:44 from etbe - Russell Coker

The Death of the Netbook

The Age has an interesting article about how Apple supposedly killed the Netbook [1]. It’s one of many articles with a similar spin on the news that the last two companies making Netbooks are going to cease production. The main point of these articles is that Apple decided that Netbooks were crap and killed the market for them by producing tablets and light laptops that squeeze them out of the market.

Is the Macbook Air a Netbook?

According to the Wikipedia page the Macbook Air [2] weighs 1080g for the 11″ version and 1340g for the 13″ version. According to Wikipedia the EeePC 701 (the first EeePC) weighs 922g and the last EeePC weighs 1460g [3]. The last EeePC produced is heavier than ANY Macbook Air while the first (and lightest) EeePC is only 158g lighter than the 11″ Macbook Air.

The 11″ Macbook Air is 300*192*17mm (979cm^3) in size while the EeePC 701 is 225*165*35mm (1299cm^3) and the biggest EeePC was 266*191*38mm (1931cm^3). So the 11″ Macbook Air is 13% wider than the widest EeePC but takes less volume than any EeePC. The 13″ Macbook Air is 325*227*17mm (1254cm^3) which is still less volume than any EeePC. The Wikipedia page about Netbooks defines them as being small, lightweight, legacy-free (in terms of hardware not software) and cheap [4]. The Macbook Air clearly meets all the criteria apart from price.

The Apple US web site offers the version of the 11″ Macbook Air with 64G of storage for $999 with free shipping, for comparison the EeePC 701 was on sale in stores for $500 in 2008. The CPI adjusted price for the EeePC 701 would be at least $550 in today’s money. The Macbook is a bit less than twice as expensive as the EeePC was, but that’s more of an issue of Apple being expensive – a few years ago companies like HP were also selling Netbooks that were more expensive than the EeePC.

Unless having an awful keyboard is a criteria for being a Netbook I think that the Macbook Air meets the criteria.

As an aside, a relative recently asked me for advice on a device that is like a Macbook Air but cheaper. Does anyone know of a good option?

Is Netbook Production Ceasing?

Officeworks currently sells an ASUS “Notebook” that has a 11.6″ display and weighs 1.3kg for $398, it’s got a metal body that looks a bit like a Macbook Air (which is the latest fashion and is good for heat dissipation). That’s not advertised as a Netbook or a “Eee” product but it’s cheap, lighter than the heaviest EeePC, and not much bigger than an EeePC.

It seems that the general prices of laptops other than Apple products (which have always had higher prices) have been dropping a lot recently. There are lots of good options if you want a laptop that costs $500 or less. Even Thinkpads (one of the most expensive and best designed ranges of laptops) are well below $1000.

Do the Articles about Netbooks Make Sense?

The claims being made are that Apple skipped Netbooks because they couldn’t make a good profit. This disregards the fact that the iPhone and iPad (which are very profitable) are in the high end of the price range that was occupied by Netbooks. While Apple does make a good deal of money from the iPhone App Market it would be possible to make a Netbook with a lower production price than an iPhone because making things smaller requires more engineering work and often more expensive parts. This also disregards the fact that there are a range devices which work as an iPad case with keyboard, an iPad with such a keyboard meets most criteria for being a Netbook, so Apple is one iPad keyboard device away from selling Netbooks.

It’s interesting to note that I haven’t yet seen an article about the profits from Netbooks which didn’t make an issue of the MS-Windows license fees. The first Netbooks only ran Linux but later on they switched to Windows, that had to make a big impact on profits. An article about Netbooks which just assumes that everyone has to pay a MS license fee is missing too much of the Netbook history to be useful. I wonder if anyone could make products that are as profitable as the iPhone and Macbook Air if they had to pay for MS license fees and design their hardware to work with MS software (as opposed to Apple who can change their software to allow a cheaper hardware design).

The articles also claim that Netbooks give a bad user experience. When I bought my EeePC 701 it was the fastest system I owned for loading OpenOffice, SSD random read speeds were really good (writes sucked but that didn’t matter so much). The keyboard on an EeePC 701 is not nearly as good as a full size laptop but it is also a lot better than using a tablet, I’ve used both a 10″ Android tablet and an EeePC as a ssh client and there is no comparison. When I’m going somewhere that requires random sysadmin work (or other serious typing) and I can’t carry much weight then I still take my EeePC 701 and I don’t consider taking a tablet. The low resolution of the screen is a major issue, but it’s about the same as a Macbook Air so that’s not an advantage for Apple. I knew some people who used an EeePC 701 for the majority of their work, I couldn’t do that but obviously some people have different requirements.

I now use my phone for many tasks that I used to do on my EeePC (even light sysadmin work) so my EeePC sometimes goes unused for months. But it’s still an important part of my collection of computers. It works well for what it does and I don’t feel any need to buy a replacement. When it wears out I’ll probably buy something similar to an 11″ Macbook Air to replace it unless there’s a good option of a tablet with a detachable keyboard.

My plans for computer ownership for the near future are based on a reasonably large Android phone (currently a Samsung Galaxy S3 but maybe a Galaxy Note 2 or similar next year), a small laptop or large tablet with hardware keyboard (currently an EeePC 701), a large laptop (currently a Thinkpad T61), and a workstation (currently a NEC system with an Intel E4600 CPU and a Dell U2711 27″ monitor). A reasonably small and light system with a hardware keyboard and solid state storage is an important part of my computer needs. If tablet computers with hardware keyboards replace traditional Netbooks that’s not really killing Netbooks but introducing a new version of the same thing.

But a good way of getting web hits on an article is to claim that a once popular product is dead.

Related posts:

  1. How to Choose a NetBook I’ve previously written some suggestions for people choosing a portable...
  2. The Always Innovating Smartbook/Netbook Always Innovating have an interesting netbook that can be detached...
  3. My Ideal Netbook I have direct knowledge (through observation or first-hand reports) of...

Syndicated 2013-01-08 12:51:49 from etbe - Russell Coker

1031 older entries...

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!