You are here


Steven Hanley: [mtb/events] Triple Triathlon 2015 - Wheres Our Swimmer - Mixed Pairs

Planet Linux Australia - Thu 19th Nov 2015 22:11

Tagging Milly for the Mt Taylor run (fullsize)

As I mention in the words I ended up in pairs this year again, racing with Milly after our swimmer for the event injured himself. Our goal was to have a fun day out in Canberra looking forward to the finish line and beers there. I think we managed that and enjoyed hanging out with all the others transcending the hills and lakes of Canberra.

Great to see Rowan have so much fun on course again, also Cam had an amazing day out with 12h15m solo and finishing third. Ben Crabb got to race again with his normal team before disappearing to the UK for three years. So many others were having fun and so were Milly and I (though the early shot of her before the swim start she does not appear so sure), looking therough the event gallery on the Sri Chinmoy events site there are some good photos of everyone around too.

My words and photos are online in my Triple Triathlon 2015 - Wheres Our Swimmer - Mixed Pairs gallery. Good day out bring on 2016.

Categories: thinktime

Your big break

Seth Godin - Thu 19th Nov 2015 20:11
...isn't. Your big break might be a break, but in the long run, it's certainly not big. Breaks give us a chance to do more work, to continue showing up, to move a bit further down the road. Perhaps it...        Seth Godin
Categories: thinktime

Steven Hanley: [mtb/events] Geoquest 2012 - Out Of Range

Planet Linux Australia - Thu 19th Nov 2015 10:11

Heading into the water with our tubes (fullsize)

When I looked at this album I realised I still have not published or added comments to my 2011 geoquest album. I guess that will be next. For now this was 2012 with Seb, Lee and Eliza up at Forster again. Before Eliza was quite so hooked on MTB near the end of her doing Triathlon we were trying to convince her long sill AR stuff is the best thing ever, I hope we did not scar her too much with the longest event she had ever done.

KV, Ben and Matt were our rather awesome support crew engaging in a bit of speed camping around the region and seeing us come past once in a while, thanks to them for the effort. It was a remarkably hard (well long at least) course this year and though there was no ocean paddling there was a bit of time in the kayaks. The event was a lot of fun as always, though I still need to sort out some of my insulin type and timing issues (as I was reminded this year when I had some lows).

My 2012 Geoquest - Out of Range gallery is online for anyone to have a look, I almost was worried I managed to get a photo of Eliza not smiling, however it appears not to have happened so all is right with the world.

Categories: thinktime

This week's sponsor: Pantheon

a list apart - Thu 19th Nov 2015 02:11

Catch Jeffrey Zeldman talking web infrastructure with Josh Koenig, co-founder of sponsor Pantheon, on The Big Web Show and when you’re ready to learn more about building scalable web infrastructure, don’t miss Pantheon’s weekly webinar.

Categories: thinktime

Ask Dr. Web with Jeffrey Zeldman: Looking for Love: Standing Out from the Crowd of Web Job Seekers

a list apart - Thu 19th Nov 2015 00:11

In our last installment, we talked about when, why, and how to quit your job.

This time out, we’ll discuss what to do when you have a lot to offer but can’t seem to connect with the right job.

I was hoping you could give me some direction on how to find a design mentor. I was laid off from my product design job about three months ago. I’ve been working as a designer and developer for almost 15 years, so I feel like I have a decent understanding of the industry.

I’ve found myself stuck in a position where I’m seeing little to no traction finding a job or even getting interviews. I don’t know if it’s because I’m currently unemployed, my portfolio is weak, or if I appear too senior on paper, or what. I’ve sought feedback from peers, but the only thing anyone wants to tell me is “you’re a good designer and your work is solid.” I can’t seem to find a source of objective feedback. I don’t know how to grow in order to get out of this slump. Do you have any advice for someone in my position?

Slumpy in Seattle

Dear Slumpy:

Judging from your website, your design work is excellent. Solid, yes—with a light, warm, human touch. Understated craftsmanship that conveys a sense of brand and place, using ordinary typefaces, colors, and interface conventions. I know how hard it is to achieve that level of elegance and grace. You are clearly a mature and seasoned designer.

Perhaps you’re looking for the wrong jobs. You may not be presenting a focused enough persona for the jobs you’ve applied for. A skilled and seasoned generalist designer can always find good work, but won’t get hired at, say, an overfunded and under-directed startup that is looking for cheap designers.

For that matter, a seasoned product designer with a general background won’t get hired by a startup—they’re not only looking for product specialists, they’re looking for product specialists who have a track record at companies just like theirs. They might not hire an excellent designer with a deep understanding of product who hasn’t worked at places like that. Slack, for example, might hire you as a product designer only if you’d already worked as a product designer at Twitter or Facebook. (I’m using Slack simply as an example. Their hiring practices may be entirely different from what I’ve described. But most startups hire people who’ve already worked at startups.)

In other words, people may be providing bland or vague feedback not because there’s anything wrong with your work, but simply because you’re not in the hiring track from which they draw candidates. I had a similar experience during my advertising career, when I was told I could never be hired at a hot boutique agency because I hadn’t started my career at one. (I ended up working at a hot boutique agency anyway, but only after years of wandering in the desert, and then only for peanuts.)

Given that your work is good but people aren’t responding so far, maybe the particular niche you’re seeking work in isn’t hiring people with your background, or maybe that niche is simply overstuffed with good candidates, making it harder to rise above the crowd and get noticed.

If that’s the case, maybe you need to freelance. Maybe you need to start a small independent studio or company with a like-minded peer or two. That’s what worked for me. My career was absolutely going nowhere until I started Happy Cog, originally as a design studio with only one employee—me. Today it’s a boutique studio with offices in two cities. (The kind of boutique studio that might not have hired my younger self.)

What worked for me won’t necessarily work for you, but it might. When you start your own business, you can stop worrying about other people’s limited judgements and their rules about who they want to hire, and start shaping your own destiny. Just an idea.

Not cut out for the rich-today-poor-tomorrow freelance life? Try seeking work outside the obvious circles. If you’ve been an agency person all your career, look in-house. Good web design isn’t limited to digital companies. Traditional businesses need great web designers, too. They may need them more than digital businesses do. Look for a gig at a place that desperately needs design help and acknowledges it in an interview. (You don’t want a job at a place that needs design help but doesn’t know it and won’t understand or value it. You want a place that’s ready to change and looking for the right designer to lead the charge. That’s you.)

Meantime, you’ve been stuck in your cubicle too long. Get yourself out there. (If your current peers aren’t providing feedback that gets you out of your comfort zone, take solace in their assessment that your work is very good—I agree!—then seek out new peers who can push you harder.)

Look for a mentor like you’d look for a mate. Attend meetups (they’re plentiful and free) and lectures (there are plenty of good ones that are free or affordable). If you like what someone says during the Q&A, go up to her or him after the Q&A and start a conversation. If the conversation goes well, exchange numbers. Invite your new friend to coffee. You may have met your mentor. And even if you haven’t, you’ve met a colleague who can help you gain the perspective you seek. Not all mentorship comes from folks in positions of seniority and authority. Sometimes you learn the most from someone else at your own level. Hope this helps!

Categories: thinktime

Saying vs. doing

Seth Godin - Wed 18th Nov 2015 21:11
Does this group have a loyalty oath? Brittle organizations are focused on which end of the egg you open. Are you wearing the team jersey the right way, saying the incantations each time, saluting properly... Resilient organizations are more focused...        Seth Godin
Categories: thinktime

Chris Smart: Changing Jenkins concurrent job token from @ to something else

Planet Linux Australia - Wed 18th Nov 2015 16:11

Some jobs may fail in Jenkins when running concurrently because they don’t like the @ symbol in the path.

For example, you may get a jobs at something like:

  • /var/lib/jenkins/jobs/cool-project
  • /var/lib/jenkins/jobs/cool-project@2

This can be easily changed to something else, as per the Jenkins system properties page by modifying the -D arguments sent to Java. I’ve changed it to _job_ at the moment.

echo 'JAVA_ARGS="$JAVA_ARGS -Dhudson.slaves.WorkspaceList=_job_"'\

 >> /etc/default/jenkins

systemctl restart jenkins

Now concurrent jobs will be something like:

  • /var/lib/jenkins/jobs/cool-project
  • /var/lib/jenkins/jobs/cool-project_job_2

Which seems much nicer to me.

Categories: thinktime

Steven Hanley: [mtb] Hume and Hovell Ride Albury to Canberra 2012

Planet Linux Australia - Wed 18th Nov 2015 07:11

A creek crossing on day 1 (fullsize)

This was a really fun ride, 3 days riding from Albury to Canberra on the Hume and Hovell track, a bunch of ARNuts and others, stopping overnight in Tumbarumba and then Tumut.

It was also not long after the Greenedge Call Me Maybe video came out so many of us spent a fiar proportion of the ride posing for photos and some videos miming the actions. I have never tried to edit the videos into anything together however you can see the poses in many of the photos.

The ride itself has a good variety of terrain, great views in places, confusing areas where it is difficult to follow the track and we all had fun. Photos and some words are online on my Hume and Hovell track ride 2012 page.

Categories: thinktime

Binh Nguyen: Middle Eastern/African/Asian Background, NSA Whistleblowers, and More

Planet Linux Australia - Wed 18th Nov 2015 02:11
- whenever you take a on a new job you feel naive (the following are all publicly available videos/documentaries often from well known media outlets). Despite what is being said by a lot of people in the public spotlight I don't believe that there is a way to acheive victory in a timely fashion. Kids of primary school age are being trained to hate the West, to learn how to use weapons, to become suicide bombers, etc... We can destroy large parts of the organisation but then it will be a case of managing the situation downwards if there is to be some form of major 'direct foreign intervention'. This will be a multi-generational fight which people in these areas seem to understand. Teachers know that there's a strong chance that they will be killed if they attempt to re-educate children against such groups...

Peshmerga vs. the Islamic State - The Road to Mosul (Full Length)

The Enemy Within (Pakistan Taliban)

Yemen - A Failed State

The Alleged Iranian Plot To Kidnap And Kill British Nationals (2010)

The Battle for Iraq - Shia Militias vs. the Islamic State

The War Against Boko Haram (Full Length)

Syria's Unending Rebel Conflict - Wolves of the Valley

Naxal - Terrorism from Inside

ISIS  - Vice Iran vs ISIS Documentary 2015 (isis vice)

- assume that any media that you see regarding conflict will be controlled. A common tactic among biased regimes/media is to interview people who are less than competent. You may be shocked by some customs among some militaries... and some of the decisions that are made. The way that the a lot of these rebels fight is foolhardy at times. They often have no body armour, have little/no aerial/naval/artillery support, limited ammunition, wepaons, and communications capability, and yet they walk around problem areas as though things were peaceful. Only when they get fired upon do they up the tempo...

The War Against Boko Haram (Full Length)

Full Documentary US Marines Attack On Taliban War Of Afghanistan HD 2015 !! 720p

People and Power - Chad - At War With Boko Haram

- just like in the immediate aftermath of 9/11 it feels like a lot of public officials are unsure exactly what to do. The public services (including defense and intelligence) are supposed to fill the breach. However, it's clear that publicly elected officals sometimes don't listen, the services are getting swamped, etc... Ultimately, it means that public officials are effecitvely just getting a filtered version of what may be happening. They may not making the best decision after all. For any official to have a genuine chance they need more background prior to them entering their job at the highest levels of government

- at times, some of these groups almost seem sane. At others you just wonder how on Earth they can believe what they believe. One thing which is interesting (if you know about prophets and prophetic visions) is that they seem to be trying to attempt to acheive prophecies rather than letting them happen. I'm certain that if there is a God, things will be done according to his timing not ours

The Islamic State (Full Length)

Featured Documentary - ISIL and the Taliban

- the more you look the more it feels as though the average person in these areas doesn't care about who governs them as long as they are safe and well looked after. Most of these strange groups aren't that much different though and foreign intervention can often be interpreted as 'plots' when countries/companies later try to exploit the resources of their country. If there is to be foreign intervention, the interests of the people in these countries must come first not the interests of those who are intervening to stop the spread of such propaganda. Stay out of internal politics and religious issues if at all possible

- the average citizen doesn't really care about major conflicts in distant lands as long as it's not in their own homeland. A lot of the time it feels as though the US is unsure (and the rest of us are well) of it's place in the world

- a lot of decisions that need to be made by governments are effectively the lesser of two evil type decisions... Whether it's supporting one side, engaging in a proxy war, etc... The irony is that a lot of what we end up is often a consequence of an earlier decision. We think we know a group or individual and think that we're on the same side. Not always

- regime change isn't as simple as changing leader like changing your vote in a democracy. The USSR/US have had a long history of involvement in proxy wars and yet they still haven't figured things out. Often it's a combination of luck as well as skill to determine whether your strategy will hold

Afghanistan War - Military Documentary HD

- I have a feeling no matter how much intelligence we have we'll never understand what is actually happening. There is no perfect solution. The other issue is that we're basically getting all the information that we need as is. It feels as though it's just a decision every once in a while which is allowing an attack to slip through the net. Something which a lot of whistleblowers also seem to be saying (see the next section on NSA whistleblowers in this post). Making better decisions would probably save us more money (and would probably be more effective) than simply spending more money on our intelligence/defense budgets

Featured Documentary - ISIL and the Taliban

- a lot of multi-generation Westerners are too blinkered. A lot of immigrant parents would prefer to be in their homeland and they transfer this tought into their children as well. To those people who say, 'go back their homeland' they simply don't have a choice... If they think that 'Western interference/intervention' is for the greater good wait until they come up against people who have been cut loose from covert operations or feel that their homelands have been destroyed as a result of it. At the other end of the spectrum, if the situation were explained more completely a lot of the time strategic decisions will make much more sense given sufficient background. At times it feels as though some public officials are just inviting/inciting further trouble. Some areas they shouldn't touch at all... It makes it a thousand times easier to turn into anti-Western propaganda. Free speech is great but at times like this it can sometimes feel more trouble than it's worth

- whether it's the Russians, Chinese, Iranians, or terrorist groups part of the problem is that Western strategies are often too predictable (admittedly, there are only so many tricks in the bag). Due to this opponents often take pre-emptive measures to hedge against any actions that the West is likely to take

- some of what the NSA does makes no sense (I've worked on this type of stuff and there are solutions which help to maintain 'national security' while maintaining privacy. Some of which they also worked on...). If the problem comes down to deicision making and not collections/technology capability why don't they spend more time in training in these areas rather than new programs which have little chance of succeeding? Sometimes it feels as though the US is simply feeding into the 'military complex' for no reason other than to create employment. If that's the case, aren't there industries with better money to employment ratios? The other thing that's obvious is this. In the past, the US defense industry clearly had spin off technologies which could be used in the civilian sector. Obviously, this helped to pay the bills over the long term. I wonder whether this is what they're thinking. The obvious problem is that it's in the technology sector. A sector which generally employs fewer people for the amount of money involved...

NSA Whistleblower - Everyone in US under virtual surveillance, all info stored, no matter the post

- problem of mass storage of data (in context of Operation Trailblazer) is that the job of analysts is much more difficult. Throws you much more work for something not neccessarily worthwhile. Operation Trailblazer makes sense if required data wasn't coming into the system but they did? The impression that I get over and over again is that they're getting enough information in order to prevent something from happening. The reason why things are getting through are bad decisions every once in a while (9/11, Boston, Afghanistan, Iraq, etc...). The main reasons why I think they're holding data is to use as leverage in investigations where something has managed to get through (Boston), some for encrypted/encoded content, some for 'Automated Analysis/Intelligence' type techniques, etc... The obvious problem is like that of Russia, China, Iran, Saudi Arabia, etc... With lack of oversight individuals could get into trouble for doing something that the government does not like, not what is actually unlawful. I've heard of bizarre cases where people have been visted by Federal Agents for talking about stuff that was already in the public sphere...

'NSA owns entire network anywhere in the world' - whistleblower William Binney

Exclusive Interview with Former NSA Technical Director - William Binney

US' Betrayal of Truth _ Interview with Whistleblower Thomas Drake I find it strange that they haven't been able to make better progress on 'Operation Trailblazer'. Technically, it's not much different to what scientific and financial programmers face. Think about HFT/Algorithmic trading and the issues faced are almost identical (high speed analysis of massive amounts of data). They shouldn't have issues with wages either since intelligence/defense contract wages are pretty high as indicated by Snowden

- even though the US government has said otherwise it doesn't seem plausible that these people would be whistleblowing without probable cause. The whistleblowers all have high level access which means that technically they would have access to operations intelligence which would also give them a high level overview similar to the highest levels of government. They would know if something seemed wrong with the current setup

William Binney on The Alex Jones Show - March 18,2015

- a lot of whistleblowers just sound slightly naive

Assange on 'US Empire', Assad govt overthrow plans & new book 'The WikiLeaks Files' (EXCLUSIVE)

Live Q&A - Edward Snowden

- if the internal electronic, monitoring systems of the US intelligence is that inefficient Russian and Chinese practice of relying more heavily on HUMINT makes much more sense. They can gain everything for the cost of a single agent... (doesn't matter if it takes one thousand agents are caught) Obviously, it's possible that some of these whistleblowers could be 'false flag' operations but what's the point?

William Binney on The Alex Jones Show - March 18,2015

- if the reason for high US spending on defense/intelligence is for subsidising jobs wouldn't they be better off subsidising jobs in other areas? Think about it, bang for buck? Skills in intelligence/defense are somewhat limited to that particular field. A lot of private defense jobs are mostly about high wage jobs for a small number of people. The US could create chain stores/resturants and employ heaps more people? Else, help people start up firms. It would surely be a more more efficient way of creating jobs? Unless this is about veneer of success? Like when you bring people over but only show them the 'finest cutlery'?

- Soviet/Russian whistleblower/defectors tend to have very short lifespans after they defect or speak out

- after getting a lot of background it seems clear that the US is unsure of how to attack the terrorist issue. Hence, they've resorted to mass surveillance and the solutions are neither elegant, efficient, cost-effective, etc... They sound rediculous, incompetent, and wasteful at times

NSA Whistleblower William Binney the 3 words that will put you on the NSA List

Edward Snowden, v 1.0 - NSA Whistleblower William Binney Tells All

Thomas Drake 60 Minutes Documentary employs two million microblog monitors state media say

- reset of firmware password on a Macbook can be fairly painless on older systems but extremely difficult on newer ones

- certain Macbook performacne issues can come down to SMC issues (which will require a reset)

Resetting the System Management Controller (SMC) on your Mac

- just like other operating systems Apple hardware/software also has these options

- I wonder how many refugees are hailing Facebook's efforts? Who cares about food and water as long as have have connectivity, huh?

- it had to happen sometime, huh?

- always been curious about this as another form of 'passive income'...

- what should you charge as an IT specialist as determined by Google

- proxying web requess via the CLI

- repacking RPM files is pretty easy with the right software

Some recent quotes in the media...

- “Great companies don’t hire skilled people and motivate them, they hire already motivated people and inspire them. People are either motivated or they are not. Unless you give motivated people something to believe in, something bigger than their job to work toward, they will motivate themselves to find a new job and you’ll be stuck with whoever’s left.”

- I think this only amplifies that, for the most part, we are doing hiring wrong. What shows up in an interview is often the person you like the most, or the person that fits your interviewing style, rather than the best person for the job. This is why contract-to-hire has been in use much more recently. The problem is that contract-to-hire usually isn't appealing to a candidate if they already have a job.

- China never promised to be the global factory forever. Its export-driven model was fine for a while because it allowed for fast growth, but it also ruined the country's environment and made the economy dependent on foreign demand, which, as recent economic crises have proved, can be unreliable. This model is being gradually dismantled and those countries that built their own economic plans upon it need to rethink and prepare for slower growth.

- David - otherwise known as the hero our city deserves - called out: “Did you see Tony Abbott eat the onion?”

“T - Tony Abbott? Tony Abbott what?”

“The onion! Eat the onion! Tony Abbott ate the onion!”

The sheer disbelief in Oliver’s voice said it all, as he attempted to make sense of the question. Just remember that this was a man hearing that the current Prime Minister of Australia bit into a raw, unpeeled onion.

“Did he do it competently?”

Laughter followed, but it soon became clear that words were not enough. Oliver would need evidence of this. He just wasn’t getting it.

“He ate an onion? He ATE an ONION? He ate an onion like a two-year-old eats an onion, thinking: ‘It’s round and I’ve seen round apples! Is this an apple?’ No. He did not do that.”

And then, when an audience member enlightened him further: “He ate TWO?! Get the f**k out!”

- I am struck not only with the rubbish in this article, but the success of P. Leahy in espousing conflicting and incoherent views without in any way realising their combination of sectarianism, futility, militarism and inconsistency.However his recognition that “A strategy should be about what we want to happen” is sensible – even if he endows us with the right to decide how Middle Easterners should live and who should run it.“Our” decision regarding Saddam Hussein was impressively wrong, with continuing consequences.

Most of the mass murderers and war criminals who took part in the invasion of Iraq in 2003 have now received the Freedom Medal.  Those behind America's Iraq adventure - people like Dick Cheney, Don Rumsfeld, Paul Wolfowitz, John McCain and Condoleeza Rice - are as visible as ever, pushing their hawkish views in the papers and the talk shows.  As Conor Friedersdorf comments, it's amazing 'how much influence Iraq War supporters still have in US foreign affairs'.

Yet Iraqis are still dying in large numbers from the war that they started. They also made ISIL what it is today.So our real scale of values is our ruling clique demonstrating their impunity to plunder us while using us and our resources to attack their self-defined “enemies”.Our so-called enemies will have noticed – after all, our ruling clique ruthlessly drives a global order that has long done the same to them. That is why the peasants are revolting.

As Thatcher said, “We are all responsible for our own actions. We cannot blame society if we disobey the law.  We simply cannot delegate the exercise of mercy and generosity to others.”

Note the media silence on the enormous costs of these utterly futile wars to the American people.

- There is no requirement for the Australian electorate to vote for these idiots. Yet we do it regularly and constantly. I put it to you, we are the bigger morons.

- Greetings to you all at the NSA and everybody else who is reading this on ECHELON.

- Sir Winston Churchill quote: "The vice of capitalism is that it stands for the unequal sharing of blessings; whereas the virtue of socialism is that is stands for the equal sharing of misery."

- The developed world is rich but ageing, and unevenly recovering from the profound shock of the GFC. And China is no longer our free ride. In business, as Mr Turnbull says, the only way forward is by disrupting others and avoiding it yourself. New interconnecting digital technologies mean old natural barriers to competition and old business models built around them are crashing, with people's jobs changing in ways we are only just grasping. That is the world Mr Turnbull says we can master. It will mean changes at basic levels, from schools and universities, through to creating the entrepreneurial culture that our top econocrat, Reserve Bank governor Glenn Stevens, says we have too little of. It means accepting failure as a step on the path to success and of praising tall poppies who earn their place.

- He noted that he was asked at a hearing last year whether the U.S. would come to the defense of those it trained when they were attacked by forces loyal to Bashar Assad. Hagel said yes.“The White House didn’t like that answer, but I said, ‘Guys, let me give you the facts of life. You can’t play think-tank nonsense and bullshit when you’re getting a question like that because the whole world is listening and watching what your answer to that is,’ ” Hagel said.

- Having worked with pilots, I have seen their enthusiasm to play with something shiny and new. But in their enthusiasm, they tend to gloss over a lot of problems in its implementation.

I will take a problem that we had when Canada initially received the F-18. On take off there was a fault where instruments would throw a breaker on take off. The pilot solution, and the solution that was accepted,was to get the pilot to unclip the panel and use a rod to flip the circuits back on. All this while flying the aircraft fter takeoff. This was the accepted solution for quite a while as the maintenance people tracked down and repair the problem. The rational solution would have been to ground the fleet and make this repair a top priority.

This is the problem with pilots and remember that it is pilots who are in charge of the air force. They would risk their lives in a slingshot and a large bucket than give up an opportunity to fly. Time and time again, u have seen a pilot (an officer) try to coerce a technician (not an officer) to sign off that a plane was safe to fly when it wasn't. Just to get a little more flight time. Now if that plane suffered from an incident, you would see that same pilot screaming for the tech'support head for signs in off on the a/c.

- Elliot: My father picked me up from school one day and we played hooky and went to the beach. It was too cold to go in the water, so we sat on a blanket and ate pizza. When I got home my sneakers were full of sand, and I dumped it on my bedroom floor. I didn't know the difference; I was six. My mother screamed at me for the mess, but he wasn't mad. He said that billions of years ago, the world shifting and moving brought that sand to that spot on the beach and then I took it away. "Every day," he said, "we change the world," which is a nice thought until I think about how many days and lifetimes I would need to bring a shoeful of sand home until there is no beach... until I've made a difference to anyone. Every day we change the world, but to change the world in a way that means anything, that takes more time than most people have. It never happens all at once. It's slow. It's methodical. It's exhausting. We don't all have the stomach for it.

- A wise man once pointed out that many of the truths we cling to depend greatly on our own point of view. Relative to the 1970s and 1980s, the United States is almost incomparably powerful and secure, enjoying presumptive military advantage over any opponent or plausible coalition of opponents. We sometimes forget, for example, that there is some history to the idea of Russian troops freely operating in Ukraine.

And the point is not that the United States deserves some kind of comeuppance for its arrogance. Geopolitics isn’t a Shakespearean drama, or a morality play. Noting that Russia, China, and others have the growing capability to act independently in their regions does not imply that they will act justly, or that they have any special right to torture their neighbors.

- “On June 22, 1941, Churchill had enough common sense to make an alliance with the USSR, because the alternative alliance with the Third Reich was even less appealing than the one with Moscow,” observes Maxim Sokolov, a popular Russian political commentator. “But John Kerry is obviously no Churchill. He has a different style of thinking.”

- Like that quote that's usually attributed to Einstein says, "Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid."

- iSight makes 90 per cent of its revenue from subscriptions to its six intelligence streams, each focused on a particular threat, including cyberespionage and cybercrime.

The company's most recent competition comes from its oldest clients, particularly banks, which have been hiring former intelligence analysts to start internal operations. One former client, which declined to be named because of concerns that doing so could violate a nondisclosure agreement, said it had been able to build its own intelligence program at half the cost of its cancelled iSight subscriptions.

But most businesses do not have the same resources as, say, a company like Bank of America, whose chief executive recently said there was no cap on the bank's cyber security budget.

Many of those businesses remain paralysed by the drumbeat of alarms that expensive security technologies are sounding on their networks.

At iSight's threat centre, the company's approach is perhaps best summed up by a logo emblazoned on a T-shirt worn by one of its top analysts: "Someone should do something."

- "We don't have a good sense, sometimes, of what's going on," she said. "And worse, as a policymaker, it's not like they can fly in and take a look at what happened."

- On Syria, the president said we could work with Iran and Russia to combat terrorism, but: “we must recognize that there cannot be, after so much bloodshed, so much carnage, a return to the pre-war status quo.” Bashar Assad must go.

Putin’s riposte “We think it is an enormous mistake to refuse to cooperate with the Syrian government and its armed forces, who are valiantly fighting terrorism face to face.” Bashar will stay and his Russian and Iranian friends have the military power to make it so — regardless of how many Syrian Christian and Sunni “terrorists” they have to butcher.

He also announced a new Russian-led front against “terrorism,” defined as anyone who opposes Assad. Their destruction, he promised Europe, will stem the flow of refugees as Assad’s authority is restored — under Russian guidance. Front members include Syria, Iraq and Iran; bombing has already begun.

So, on one hand, a man with a relatively weak state but who is a realist with specific goals; long-range plans; a thirst to right what he describes as a “historic tragedy”; and an iron will to act.

On the other, a man leading the world’s most powerful nation who pronounces his visions and cannot grasp why they do not come true, as they often do at home. Who is confused when his opponents are not cowed by his words. Whose irresolution fills his allies with apprehension. There is weakness in the water, thicker than blood; below, sharks circle.

This will not end well. Not for anyone.

- So Russia's state-dominated space industry is set to continue struggling to outperform its Western counterparts. Meanwhile, existing companies are plagued by lack of quality control and expert oversight. In 2013, a Proton rocket was lost because a worker installed a sensor upside down — and hammered it in to fit.

- If you want to understand Afghanistan’s opium problem, put yourself in the shoes of an Afghan farmer. Your country’s in turmoil, you’re largely disconnected from the rest of the population, and you have few options to earn a living. There’s no irrigation infrastructure, and poppies are the only plants tough enough to withstand the environmental conditions. You could plant wheat, but why bother? Poppies will earn you eight times as much money.

So the extent to which Afghanistan has become ground zero for opium, as the latest United Nations Office of Drugs and Crime 2007 World Drug Report makes plain, should be no surprise. Around 92 percent of the world’s heroin comes from Afghan poppies, and—thanks to the 49 percent increase in poppy cultivation in Afghanistan between 2005 and 2006—global opium production reached a record high of 6,610 metric tons last year. Opium production and trade accounts for at least a third of all economic activity in Afghanistan.

- In a typical year, Afghan farmers sell about 7,000 tons of opium at $130 a kilogram to traffickers who convert that into 1,000 tons of heroin, worth perhaps $2,500 a kilogram in Afghanistan and $4,000 at wholesale in neighboring countries. That works out to roughly $900 million in annual revenues for the farmers, $1.6 billion for traffickers from operations within Afghanistan, and another $1.5 billion for those who smuggle heroin out of the country. (2010 was atypical; a poppy blight drove opium production down and prices up.)

- Often, but not always. In the early years of the Afghanistan war, coalition policy included widespread forced eradication. In June 2009, however, Barack Obama’s administration announced that U.S. and other international forces would no longer conduct eradication operations, on which the late Richard Holbrooke said the United States had "wasted hundreds of millions of dollars."

The sensible motivation for this reversal was recognition that eradication produced unintended consequences. Pulling up a farmer’s opium crop could generate ill will, perhaps enough to produce a new recruit for the insurgency. It was also geographically inconvenient. Afghanistan is a horrendously complicated place, but to oversimplify, two-thirds of the country (roughly 27 of 34 provinces) has been nearly poppy-free and relatively stable for a few years. The remaining third — in particular Helmand and Kandahar provinces — is rife with both poppies and insurgents. Eradication in those areas has a minimal and temporary effect on the drug trade, at most pushing production to the next valley or district. And angering farmers where Taliban recruiters prowl seemed like a gift to the enemy. So the Obama administration swore off direct support of eradication, though the governors of some Afghan provinces continue to pursue their own eradication programs.

- It violates the essence of what made America a great country in its political system. Now it's just an oligarchy with unlimited political bribery being the essence of getting the nominations for president or being elected president. And the same thing applies to governors, and U.S. Senators and congress members. So, now we've just seen a subversion of our political system as a payoff to major contributors, who want and expect, and sometimes get, favors for themselves after the election is over. ... At the present time the incumbents, Democrats and Republicans, look upon this unlimited money as a great benefit to themselves. Somebody that is already in Congress has a great deal more to sell."
Categories: thinktime

Mixing Color for the Web with Sass

a list apart - Wed 18th Nov 2015 02:11

Color is one of the most powerful components of art and design. We use it to influence mood, create an environment, and tell a story. Over 125 years ago, a great impressionist painter changed the way we think about color by observing light’s role in it. So far, these observations have been largely lost on design for the web, but a preprocessor like Sass gives us a tool to shed new light on our color palettes.

One morning in 1890, Claude Monet began painting the haystacks outside his window. But he didn’t paint just one painting, and he didn’t even paint just one painting at a time. He would have his assistant cart out wheelbarrows of canvases and would work quickly and minimally on each one as the light changed throughout the morning. Sometimes he would work on a painting for just a few minutes before the lighting conditions had changed enough to warrant moving on to the next canvas. When he was finished, Monet had painted twenty-five canvases of the same haystacks in different sunlight, seasons, and weather. The same haystacks, the same base colors—yet presented in myriad ways.

Claude Monet, Haystacks: Snow Effect (1891). Scottish National Gallery; public domain image.

Historically, our ability to translate this kind of flexibility to the web has been limited. We’ve neglected the art of mingling color for emotional impact, while making the most of statically declared CSS color codes. Meanwhile, manipulating color on the fly has been relegated to the arcane realm of programmers.

Thankfully, new tools give us more power over color than ever before. But although color on the web continues to march forward, CSS alone is still pretty inflexible. That’s where preprocessors become useful. Let’s explore some of the capabilities they can lend to our stylesheets:

  • Aliases help us better recognize which colors we’re using.
  • Lightening, darkening, and scaling give us fine-grained flexibility over palettes.
  • Color mixing unlocks our inner Monet and a whole new world of nuance and artistry.
A hex on hex codes

Start with the color declaration: you have to know the exact values of your colors in order to use them. That means that, unless you’re using prefabricated named colors, your style sheet fills up with multiple instances of cryptic hex codes or ambiguous HSL numbers. CSS variables are on the horizon, and they’ll help clarify which color is which with natural language—but what if we don’t actually have a name for our color? That’s the kind of power CSS preprocessors give us. There are several out there to choose from, but my examples rely on Sass. Other preprocessors probably have similar functionality, but I’ll leave you to do that research on your own.

Let’s dig into this to see what I mean.

We’ll create a new brand and choose two colors to represent it. The first thing I’m gonna do is name the colors: $toolbox and $ol-blue.

Now that I’ve established my brand colors, I’ve used them to build a website for Gullfoss Travel Supply Co. The concept behind this hypothetical site is to revitalize well-designed luggage labels that show off where you’ve travelled around the world. Variations of my brand colors exist throughout this site in different (lighter) tints and (darker) shades.

Hypothetical site for Gullfoss Travel Supply Co.

Take, for example, this button:

I wanted to give my button a sense of clickability, which I can easily achieve with a simple gradient. The button is based on the color I dubbed $toolbox. The highlight is a lighter version of the swatch and the shadow is a darker version.

Traditionally, I would write this in CSS like so:

button{ background-color: $toolbox; // fallback background-image: gradient( hsl(0, 33%, 52%), // highlight $toolbox, hsl(0, 41%, 39%); // shadow ) }

While the button color is based on one of my brand colors, two of these colors (my highlight and shadow) are not in my Sass constants. I had to figure them out on my own. I opened up a color picker and manually picked variations of the swatch. Not a big deal, really, but if I want to add a secondary button, this time based on $ol-blue, I’ll need to go back into the color picker once again and figure out the new values.

And each of these buttons needs a hover state, too! The hover highlights and shadows are going to be lighter than those on the normal button, so do I declare four more constants, or do I just fill these values in once and hope I don’t need to use them again later?

As it turns out, Sass can do this for me. It has built-in functions to process these colors without having to keep track of all the variations.

Packing up the color picker for Sass

One way to lighten a color is to use the lighten function:

lighten($toolbox, 20%);

And to darken a color, we can use the darken function:

darken($ol-blue, 30%);

Simple as that! Now we have a pair of tools to mix color on the fly. Go wild! Okay, don’t go too wild. This can get a bit tricky. Consider this: if we lighten $toolbox by 50 percent, we get a very light version of $toolbox. But if we lighten $ol-blue by 50 percent, it becomes completely white. That’s because $ol-blue is a much lighter color than $toolbox.

In order to know how far we can lighten a color before it turns white, we have to know that color’s lightness value ahead of time. That information is conveniently encoded in its HSL notation. If we subtract the color’s lightness value from 100 percent, the result is the amount we can lighten a color to get to white.

x = 100% - l

Since $ol-blue’s lightness value is 60 percent, we can lighten it up to 40 percent before it becomes perfectly white. $toolbox’s lightness is 40 percent, so we can lighten it by 60 percent.

When lightening our colors, $ol-blue turns white faster than $toolbox, because it has a higher base lightness value. When darkening our colors, $toolbox turns black faster than $ol-blue, because it has a lower base lightness value.

Therefore, in order to master this new color palette, we’ll simply need to memorize the lightness values of each of our colors. Kind of annoying, but hey, it’s better than memorizing hex codes, right? Sure! But I’ll do you one better.

Proportional palettes with color scaling

Sass has another color function called scale-color() that can move a color’s components proportionally. scale-color() works on the red, green, and blue channels in RGB, and the saturation and lightness channels in HSL. (To adjust the hue similarly, you would use the aptly-named adjust-hue() function.)

As I noted before, if we were to lighten $ol-blue by 50 percent, it would become pure white, but if we were to scale the lightness with scale-color() by 50 percent—

scale-color($ol-blue, lightness, 50%);

—it would be halfway between the original color and white.

Now I know exactly how much to scale any of my colors to get to white: it’s always going to be 100 percent. If I scale $ol-blue’s lightness by 99 percent, it will still be 1 percent $ol-blue. Likewise for $toolbox or any other color you can dream up (barring colors that are already so light that they may round up to white earlier); they will always top out at 100 percent lightness.

You can more easily see what I mean with the following color table:

When scaling the lightness of our colors, they become proportionally lighter, and therefore more predictable. The darker variations are proportional, too.

With scale-color(), you can keep your color palette limited to your base constants, but still have incredible, intuitive flexibility with tints and shades. Now our gradient declaration might look something like this:

button{ background-color: $toolbox; // fallback background-image: gradient( scale-color($toolbox, lightness: 50%), $toolbox, scale-color($toolbox, lightness: -30%); ) } button: hover, button: focus{ background-color: scale-color($toolbox, lightness: 50%); // fallback background-image: gradient( scale-color($toolbox, lightness: 60%), $toolbox scale-color($toolbox, lightness: -20%); ) } button.secondary{ background-color: $ol-blue; // fallback background-image: gradient( scale-color($ol-blue, lightness: 50%), $ol-blue, scale-color($ol-blue, lightness: -30%); ) } button.secondary:hover, button.secondary:focus{ background-color: scale-color($ol-blue, lightness: 50%), // fallback background-image: gradient( scale-color($ol-blue, lightness: 60%), $ol-blue, scale-color($ol-blue, lightness: -20%); ) }

In this example, notice I’m only using two of my constants and scaling them as desired. In fact, this can be applied across the entire page. The content on the homepage of the Gullfoss Travel Supply Co. only uses two brand colors, scaled to different lightness values. Despite the simple palette, there’s still a lot of flexibility here.

Mastering color with mixing

There’s one more way you can achieve these kinds of proportional palettes, and that’s with an even more intuitive, more powerful Sass function called mix().

If we want to tint $ol-blue by 60 percent, we’ll write:

mix(white, $ol-blue, 60%)

Think of it like mixing a tube of white paint into a tube of Ol’ Blue. Likewise, if we want to shade $toolbox, we’ll write:

mix(black, $toolbox, 30%)

It turns out that mixing with white and black does perceptually the same thing as scaling a color’s lightness but, conveniently, it’s shorter to type. Beyond that, mix can help you easily create a look and feel on your websites that was previously not possible. If we can mix colors like paint now, can we make our websites look more like paintings? I believe we can—but we have to think less like programmers and more like artists.

Consider, again, Monet’s haystack paintings. They’re a remarkable study of light, and wonderful from a purely aesthetic standpoint. But from a design standpoint, there’s a useful lesson to be found in them. In the words of another French impressionist, Pierre Bonnard, “Color does not add a pleasant quality to design—it reinforces it.” Remember the way the color of light affected the appearance of Monet’s haystacks. What if we could take our base colors and easily influence the color in our designs the way he did back in 1890?

Sass’s mix() function unlocks that for us. Let’s take our color palette again and add in just a couple extra colors: a highlight and a shadow. Now let’s mix our brand colors once more, but instead of simply mixing with black and white, let’s use our new colors:

Suddenly the whole palette becomes warm and inviting, and the darker colors are rich and vibrant.

Tinting with a yellow highlight gives the palette a sunnier appearance. Shading with a complementary shadow makes the palette feel more natural.

If I decide I don’t like this scheme, I can simply choose new values for those two constants, and the next time the Sass is compiled into CSS, the design will automatically reflect my change.

With this next scheme, I’m starting again with the same brand palette, but now the highlight is bright pink, while the shadow is a dark, desaturated green.

It totally changes the look of the palette, yet it remains based around our original brand.

A change to the highlight and shadow colors is automatically reflected in your color palette when the Sass is compiled into CSS. Highlights and shadows can be tweaked to achieve just the right mood or story for your site, without making tedious changes throughout your stylesheets.

Looking back at Gullfoss Travel Supply Co., I’ve demonstrated some of the possibilities with this kind of color mixing on each of the sticker pages. Looking at Olympia’s page, the mood is totally different from the homepage, yet all of the markup, typography, and basic layout stay the same. But since nearly every color has been mixed to some degree with yellow highlights or purple shadows, a new light (literally) has been cast on the page. Now the content background is an eggshell color and the “Add to Cart” button is natural, yet vibrant.

Lincoln’s sticker is colored strongly with tints and shades of red, so I wanted the page to reflect that. I chose reddish highlights and shadows to make the design cohere with the illustration.

When you visit the page for Barton Springs Pool, the cool waters and green leaves are reflected throughout. The difference between the original colors and the new ones is subtle but distinct, and that’s the point. Your colors should work together to create an aesthetic that enhances your design.

But if drama is what you’re after, look no further than The Grid. This page reverses highlights and shadows and lends a look inspired by the movie Tron. Quite a striking change achieved just by swapping out a few constants!

Additional considerations for developing your palette

Nearly every color on these pages is mixed with a highlight or shadow to one degree or another, but sometimes the elements in your design can look a little too homogenous, and they start to blend together. In such cases, feel free to supplement your designs with another set of color mixers. This can give the layers of your pages more depth and really make them pop.

Let’s look again at the page for Lincoln. Remember, I wanted to give it a reddish tint. It’s hard to read text against bright red, so I dialed the highlights back a lot; they’re barely red at all. Then I set the background to green. Because green is red’s complement, it plays a trick on your brain, making the very light colors appear redder, while still maintaining a pleasing contrast ratio. (Note: Because this site is responsive, the background layer isn’t visible on narrow screens.) These separate layers use very different highlights and shadows that interact with each other.

To pursue legibility and readability a bit further for a moment, it’s also essential to keep in mind the accessibility of your color schemes. Take another look at the page for The Grid. If you found it uncomfortable to read, you’re not alone! The menu at the top of the page suffers from a low contrast ratio. According to the WCAG guidelines, it should be 4.5:1, but it comes in well below at just 2.6:1! Good contrast ratios of text and background colors make using a site much more pleasant. There are plenty of tools and recommendations for exploring this topic further.

Before I conclude, I want to go over browser support real quick, just so it’s clear. Because all this color processing is compiled into basic CSS color declarations, everything gets translated into a static declaration, which, of course, every browser today can understand. This means that you can start playing around with these techniques today!

Color on the web has come a long way, and it continues to improve steadily as browsers and devices add support for new technologies. Meanwhile, preprocessor mixing has given color an evolutionary leap forward. It offers us unprecedented power to create tints and shades that help us tell our stories, give our palettes more nuance, and bring out our inner Monet.

Categories: thinktime

Gary Pendergast: Replacing Rdio

Planet Linux Australia - Tue 17th Nov 2015 23:11

I guess we’ve all heard of the impending demise of Rdio.

As one of the 500k subscribers with good taste in their streaming apps, it’s now time to consider a replacement. Here are my criteria – some of them may vary for you, but it’ll hopefully give you an idea for how you can choose, too.

Must Have
  • Offline sync to mobile (I listen to music when I’m flying a lot)
  • Ability to play from my Mac (I listen when I’m working)
  • Ability to play on Sonos (the rest of my house)
  • Family accounts
Should Have
  • Desktop App (I kill my browser pretty regularly, I don’t want that to interfere with my music)
Nice To Have
  • Android Auto support (I don’t have an Android Auto device, but I’m likely to buy one in the near future)
  • Account sharing instead of family accounts (it’s cheaper, and my wife and I mostly don’t use the account in different locations at the same time)

Given that the death of Rdio was most likely due to its lack of market share, I decided to only go with major players – this quickly narrowed it down to Google Play Music, Apple Music, and Spotify.

Google Play Music

Out of the box, Google Play Music does okay – it has an excellent selection of music, the mobile app isn’t terrible, and it works on Sonos. YouTube Red is supposed to be pretty nice, too, but it’s currently not available in Australia.

It falls down heavily when using it on my desktop, though. There’s a Chrome extension to hook into my keyboard media buttons, or there are third party apps available, none of which are very good.

Finally, it becomes completely unusable to share with my wife – I obviously can’t sign into my Google account on her phone, and Google still don’t have family accounts (though they have been announce as “coming soon”).

Apple Music

I’ve never had a good relationship with iTunes – it’s always been a clunky beast, and my recent experiments seem to indicate that not much has changed, except for a re-skin of some of the UI. It feels really hacked together. It is a native app, though, so it wins points by not being associated with my browser.

The family account was super janky to setup, I found the UI kept dying on me. Eventually I got through, however, and I hopefully will never need to touch that again (famous last words…).

On the bright side, the Apple Music app for Android is really nice, despite being a recent beta release. There’s no word on if it supports Android Auto, but that’s not an immediate requirement for me, so I’m happy to let it go.


Spotify’s biggest benefit is that it’s not attached to a personal account. Unlike with Google or Apple, my wife and I could share the same account, without needing to share our personal logins. It’s cheating the system slightly, but it’d save us $6/month, so I’m not too concerned about it.

Spotify’s apps have been severely ugly in the past, but the good news is that the Android app is much more useable now. Unfortunately, I was unable to try out the OSX app, because the downloader was broken. The web app requires Adobe Flash, which is a total non-starter.


In the end, I chose Apple Music, for two reasons. One, it was the only one with a desktop app that actually worked. And two, it’s the only service that I can play Taylor Swift’s 1989 on. If the other services can’t get their act together enough to negotiate for a popular album to be on their service, then I’m concerned about their future ability to do so.

I may end up needing to re-evaluate this decision, particularly if the Sonos support doesn’t happen before Rdio finally closes it’s doors (I’m maintaining my Rdio account just for that). But for now, this will do.

Categories: thinktime

Natural light

Seth Godin - Tue 17th Nov 2015 21:11
One way to make something is to pre-process all the inputs. Make sure that you've worked the supply chain so that the raw materials are precisely the same every time. Guarantee that the working conditions are identical. Isolate all your...        Seth Godin
Categories: thinktime

Sridhar Dhanapalan: Twitter posts: 2015-11-09 to 2015-11-15

Planet Linux Australia - Mon 16th Nov 2015 22:11
Categories: thinktime

Steven Hanley: [mtb/events] Australian Single Speed Nationals 2012 - Beechworth, Bushranger themed (sort of)

Planet Linux Australia - Mon 16th Nov 2015 22:11

Posing with Jeebus (fullsize)

Wow right now I am finding it surprising I have not been to the single speed nationals since 2012, (un) organised every year by a group of locals somewhere, sort of overseen by Australian Recreational Singlespeed Enthusiasts (ARSE). The 2010 Canberra SSNATS event in Majura Pines was heaps of fun, organised by Canberra One Gear Society (COGS).

In 2013 the event was in Cairns and though it sounded fun I decided it was just a bit too far to head up there for the event, in 2014 I tried and tried to talk friends into heading up for the weekend in Dungog NSW, however few of my Canberra friends were keen and I did something else that weekend (softie that I am).

I am still hoping the road trip to Wombat State Forest in Victoria will go ahead for the 2015 event. There was a ANZAC event in Rotortua over easter however I skipped that. This however is all getting off the topic of 2012.

I made it down to 2012, camping with McCook and having a fantastic weekend of mtb riding with the crew in Beechworth. The rather important aspect of beer was sorted that weekend and Bridge Road Brewerers in that town and they are possibly my favourite brewer in Australia.

The Beechworth mtb park is a great mix of interesting technical stuff and fun all in native bush, there were other ride options as can be seen in my gallery also. Photos and words from the 2012 Australian Single Speed Nationals are online in the link.

Categories: thinktime

Erik de Castro Lopo: Forgive me Curry and Howard for I have Sinned.

Planet Linux Australia - Mon 16th Nov 2015 22:11

Forgive me Curry and Howard for I have sinned.

For the last several weeks, I have been writing C++ code. I've been doing some experimentation in the area of real-time audio Digital Signal Processing experiments, C++ actually is better than Haskell.

Haskell is simply not a good fit here because I need:

  • To be able to guarantee (by inspection) that there is zero memory allocation/de-allocation in the real-time inner processing loop.
  • Things like IIR filter are inherently stateful, with their internal state being updated on every input sample.

There is however one good thing about coding C++; I am constantly reminded of all the sage advice about C++ I got from my friend Peter Miller who passed away a bit over a year ago.

Here is an example of the code I'm writing:

class iir2_base { public : // An abstract base class for 2nd order IIR filters. iir2_base () ; // Virtual destructor does nothing. virtual ~iir2_base () { } inline double process (double in) { unsigned minus2 = (minus1 + 1) & 1 ; double out = b0 * in + b1 * x [minus1] + b2 * x [minus2] - a1 * y [minus1] - a2 * y [minus2] ; minus1 = minus2 ; x [minus1] = in ; y [minus1] = out ; return out ; } protected : // iir2_base internal state (all statically allocated). double b0, b1, b2 ; double a1, a2 ; double x [2], y [2] ; unsigned minus1 ; private : // Disable copy constructor etc. iir2_base (const iir2_base &) ; iir2_base & operator = (const iir2_base &) ; } ;
Categories: thinktime

A Thanksgiving Reader

Seth Godin - Mon 16th Nov 2015 20:11
In ten days, just about everyone in the United States will celebrate the best holiday of the year: Thanksgiving. I’m hoping that this year, you and your family will help me start a new holiday tradition. At its best, this...        Seth Godin
Categories: thinktime

Sam Watkins: sswam

Planet Linux Australia - Mon 16th Nov 2015 13:11

TLDR: Division by zero is not as scary as it’s made out to be:

a/0 = b ⟺ a = 0

Division is multiplication, backwards. These two equations are exactly equivalent, by definition:

a/c = b

a = b×c

It’s easy to understand division by zero if we look at the equivalent multiplication.

a/0 = b

a = b×0

For any real number b:

a = b×0 = 0

a = 0

There are two cases with division by zero:

If a = 0, then a/0 = b is unconstrained, any real number b satisfies the equation. You can discard such an equation which does not constraint the result.

If a ≠ 0 then a/0 = b is contradictory. There is no real number b which satisfies that equation. This is still useful to know; “there is no answer” can be a sort of meta-answer. For example if trying to solve a system of equations of static forces, “there is no answer” might mean you need to consider a different design for your bridge!

There is no need to consider advanced concepts such as limits in order to fully understand division.

In short, a/0 = b is true if and only if a = 0.

If you see such an equation a/0 = b, you may simplify it to a = 0.

a/0 = b ⟺ a = b×0 ⟺ a = 0

a/0 = b ⟺ a = 0

I posted this here about a year ago:

Categories: thinktime

David Rowe: Give Us Our Daily Bread

Planet Linux Australia - Mon 16th Nov 2015 10:11

Last week I visited a modern Australian farm on the Eyre Peninsula of South Australia, about 500km from where I live in Adelaide.

This farm has been in one family for several generations, and has steadily grown to 8000 acres (3200 hectares). This same area was previously farmed by 7 families, and now provides a livelihood for just one. This tells me that modern agriculture is super efficient, and explains why food (and calories) are super cheap for us here in the affluent Western world.

This is both good and bad. Given the right political conditions, science and technology enables us to feed the world. We don’t need to be hungry and can use those excess calories for other purposes. The jobs lost in one industry migrate to others. This farming family, for example, has spawned a variety of professionals that have left the family farm and done good things for the world.

It also brings diseases of affluence. Our poor bodies are not evolved to deal with an excess of food. We are evolved to be hunter-gatherers, constantly on the look out for the next calorie. Historically we haven’t had enough. So we are hard wired to eat too much. Hence the rise of heart disease and diabetes.

Breathtaking Array of Skills

I was impressed by the diverse array of skills required to run the farm. Business, animal husbandry, mechanical, agricultural science. The increased mechanisation means computers everywhere and I imagine robotics is on the horizon. During our visit they were measuring the moisture content of the crop to determine the best time to harvest. They even have an animal “retirement village” – they care for several old working dogs who had kept foxes away from the sheep for years.

Unlike many jobs, they don’t know what their yields and hence income will be from year to year. That’s a lot of risk in your annual income.

Overall, It takes about 12 years to learn the skills needed to run a modern farm.

This farm produces 3,500 tonnes of wheat per year. Based on 13680 kJ/kg of wheat, and a person needing 8700 kJ/day, that’s enough to feed 15,000 people every year. From the work of one family farm. Wow.

Organic Farming

I asked them about organic farming. The bottom line is the yields would be halved. So double the prices for everything we eat. That may be fine if you are a rich Westerner but that is the line between life and death for someone in the developing world. Alternatively, it means using twice the land under cultivation for the same amount of food. Organic means starving poor people and goodbye rain forests.

Their use of pesticides is strictly monitored and all residues must be removed. They have modern, scientific methods of erosion control to manage the soil, and techniques to naturally fix nitrogen. Sustainability is being addressed right now by modern, scientific, farming.

In my opinion the organic food movement is a more about scientific illiteracy and marketing than health.

Wind Farming

On a nearby hill was a 75MW wind farm, part of many that have sprung up in South Australia over the past decade. I am quite proud that South Australia now averages 30% wind power. We are about to close down our last remaining coal power station.

In this case, the lucky farmer that owns the land leased for the wind turbines receives $100k per year in passive income. K-ching K-ching as the turbines rotate.

It’s incredible to think that for years there have been “rivers of energy” flowing over those hills. It took technology and the right economic conditions to reach up and pluck that energy out of the sky.

Categories: thinktime

Michael Still: Mount Stranger one last time

Planet Linux Australia - Mon 16th Nov 2015 07:11
This is the last walk in this series, which was just a pass through now that the rain has stopped to make sure that we hadn't left any markers or trash lying around after the Scout orienteering a week ago. This area has really grown on me -- I think most people stick to the path down by the river, whereas this whole area has nice terrain, plenty of gates through fences and is just fun to explore. I'm so lucky to have this so close to home.

Interactive map for this route.

Tags for this post: blog canberra bushwalk

Categories: thinktime

Chris Smart: Btrfs RAID 6 on dm-crypt on Fedora 23

Planet Linux Australia - Sun 15th Nov 2015 21:11

I’m building a NAS and given the spare drives I have at the moment, thought I’d have a play with Btrfs. Apparently RAID 6 is relatively safe now, so why not put it through its paces? As Btrfs doesn’t support encryption, I will need to build it on top of dm-crypt.

Boot drive:

  • /dev/sda

Data drives:

  • /dev/sdb
  • /dev/sdc
  • /dev/sdd
  • /dev/sde
  • /dev/sdf

I installed Fedora 23 Server onto /dev/sda and just went from there, opening a shell.

# Setup dm-crypt on each data drive

# and populate the crypttab file.

for x in b c d e f ; do

  cryptsetup luksFormat /dev/sd${x}

  UUID="$(cryptsetup luksUUID /dev/sd${x})"

  echo "luks-${UUID} UUID=${UUID} none" >> /etc/crypttab



# Rebuild the initial ramdisk with crypt support

echo "dracutmodules+=crypt" >> /etc/dracut.conf.d/crypt.conf

dracut -fv


# Verify that it now has my crypttab

lsinitrd /boot/initramfs-$(uname -r).img |grep crypttab


# Reboot and verify initramfs prompts to unlock the devices



# After boot, verify devices exist

ls -l /dev/mapper/luks*

OK, so now I have a bunch of encrypted disks, it’s time to put btrfs into action (note the label, btrfs_data):

# Get LUKS UUIDs and create btrfs raid filesystem

for x in b c d e f ; do

  DEVICES="${DEVICES} $(cryptsetup luksUUID /dev/sd${x}\

    |sed 's|^|/dev/mapper/luks-|g')"


mkfs.btrfs -L btrfs_data -m raid6 -d raid6 ${DEVICES}'

See all our current btrfs volumes:

btrfs fi show

Get the UUID of the filesystem so that we can create an entry in fstab, using the label we created before:

UUID=$(btrfs fi show btrfs_data |awk '{print $4}')

echo "UUID=${UUID} /mnt/btrfs_data btrfs noatime,subvolid=0 0 0"\

  >> /etc/fstab

Now, let’s create the mountpoint and mount the device:

mkdir /mnt/btrfs_data

mount -a

Check data usage:

btrfs filesystem df /mnt/btrfs_data/

This has mounted the root of the filesystem to /mnt/btrfs_data, however we can also create subvolumes. Let’s create one called “share” for shared network data:

btrfs subvolume create /mnt/btrfs_data/share

You can mount this specific volume directly, let’s add it to fstab:

echo "UUID=${UUID} /mnt/btrfs_share btrfs noatime,subvol=share 0 0"\

  >> /etc/fstab

mkdir /mnt/btrfs_share

mount -a

You can list and delete subvolumes:

btrfs subvolume list -p /mnt/btrfs_data/

btrfs subvolume delete /mnt/btrfs_data/share

Now I plugged in a few backup drives and started rsyncing a few TB across to the device. It seemed to work well!

There are lots of other things you can play with, like snapshots, compression, defragment, scrub (use checksums to repair corrupt data), rebalance (re-allocates blocks across devices) etc. You can even convert existing file systems with btrfs-convert command, and use rebalance to change the RAID level. Neat!

Then I thought I’d try the rebalance command just to see how that works with a RAID device. Given it’s a large device, I kicked it off and went to do something else. I returned to an unwakable machine… hard-resetting, journalctl -b -1 told me this said story:

Nov 14 06:03:42 localhost.localdomain kernel: ------------[ cut here ]------------

Nov 14 06:03:42 localhost.localdomain kernel: kernel BUG at fs/btrfs/extent-tree.c:1833!

Nov 14 06:03:42 localhost.localdomain kernel: invalid opcode: 0000 [#1] SMP

Nov 14 06:03:42 localhost.localdomain kernel: Modules linked in: fuse joydev synaptics_usb uas usb_storage rfcomm cmac nf_conntrack_netbios_ns nf_conntrack_broadcast ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat ebtab

Nov 14 06:03:42 localhost.localdomain kernel: snd_soc_core snd_hda_codec rfkill snd_compress snd_hda_core snd_pcm_dmaengine ac97_bus snd_hwdep snd_seq snd_seq_device snd_pcm mei_me dw_dmac i2c_designware_platform snd_timer snd_soc_sst_a

Nov 14 06:03:42 localhost.localdomain kernel: CPU: 0 PID: 6274 Comm: btrfs Not tainted 4.2.5-300.fc23.x86_64 #1

Nov 14 06:03:42 localhost.localdomain kernel: Hardware name: Gigabyte Technology Co., Ltd. Z97N-WIFI/Z97N-WIFI, BIOS F5 12/08/2014

Nov 14 06:03:42 localhost.localdomain kernel: task: ffff88006fd69d80 ti: ffff88000e344000 task.ti: ffff88000e344000

Nov 14 06:03:42 localhost.localdomain kernel: RIP: 0010:[] [] insert_inline_extent_backref+0xe7/0xf0 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: RSP: 0018:ffff88000e3476a8 EFLAGS: 00010293

Nov 14 06:03:42 localhost.localdomain kernel: RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000000

Nov 14 06:03:42 localhost.localdomain kernel: RDX: ffff880000000000 RSI: 0000000000000001 RDI: 0000000000000000

Nov 14 06:03:42 localhost.localdomain kernel: RBP: ffff88000e347728 R08: 0000000000004000 R09: ffff88000e3475a0

Nov 14 06:03:42 localhost.localdomain kernel: R10: 0000000000000000 R11: 0000000000000002 R12: ffff88021522f000

Nov 14 06:03:42 localhost.localdomain kernel: R13: ffff88013f868480 R14: 0000000000000000 R15: 0000000000000000

Nov 14 06:03:42 localhost.localdomain kernel: FS: 00007f66268a08c0(0000) GS:ffff88021fa00000(0000) knlGS:0000000000000000

Nov 14 06:03:42 localhost.localdomain kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033

Nov 14 06:03:42 localhost.localdomain kernel: CR2: 000055a79c7e6fd0 CR3: 00000000576ce000 CR4: 00000000001406f0

Nov 14 06:03:42 localhost.localdomain kernel: Stack:

Nov 14 06:03:42 localhost.localdomain kernel: 0000000000000000 0000000000000005 0000000000000001 0000000000000000

Nov 14 06:03:42 localhost.localdomain kernel: 0000000000000001 ffffffff81200176 0000000000270026 ffffffffa0925d4a

Nov 14 06:03:42 localhost.localdomain kernel: 0000000000002158 00000000a7c0ba4c ffff88021522d800 0000000000000000

Nov 14 06:03:42 localhost.localdomain kernel: Call Trace:

Nov 14 06:03:42 localhost.localdomain kernel: [] ? kmem_cache_alloc+0x1d6/0x210

Nov 14 06:03:42 localhost.localdomain kernel: [] ? btrfs_alloc_path+0x1a/0x20 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] __btrfs_inc_extent_ref.isra.52+0xa9/0x270 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] __btrfs_run_delayed_refs+0xc84/0x1080 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] btrfs_run_delayed_refs.part.73+0x74/0x270 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] ? btrfs_release_path+0x2b/0xa0 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] btrfs_run_delayed_refs+0x15/0x20 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] btrfs_commit_transaction+0x56/0xad0 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] prepare_to_merge+0x1fe/0x210 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] relocate_block_group+0x25e/0x6b0 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] btrfs_relocate_block_group+0x1ca/0x2c0 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] btrfs_relocate_chunk.isra.39+0x3e/0xb0 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] btrfs_balance+0x9c4/0xf80 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] btrfs_ioctl_balance+0x3c4/0x3d0 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] btrfs_ioctl+0x541/0x2750 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: [] ? lru_cache_add+0x1c/0x50

Nov 14 06:03:42 localhost.localdomain kernel: [] ? lru_cache_add_active_or_unevictable+0x32/0xd0

Nov 14 06:03:42 localhost.localdomain kernel: [] ? handle_mm_fault+0xc8a/0x17d0

Nov 14 06:03:42 localhost.localdomain kernel: [] ? cp_new_stat+0xb3/0x190

Nov 14 06:03:42 localhost.localdomain kernel: [] do_vfs_ioctl+0x295/0x470

Nov 14 06:03:42 localhost.localdomain kernel: [] ? selinux_file_ioctl+0x4d/0xc0

Nov 14 06:03:42 localhost.localdomain kernel: [] SyS_ioctl+0x79/0x90

Nov 14 06:03:42 localhost.localdomain kernel: [] ? do_page_fault+0x2f/0x80

Nov 14 06:03:42 localhost.localdomain kernel: [] entry_SYSCALL_64_fastpath+0x12/0x71

Nov 14 06:03:42 localhost.localdomain kernel: Code: 10 49 89 d9 48 8b 55 c0 4c 89 7c 24 10 4c 89 f1 4c 89 ee 4c 89 e7 89 44 24 08 48 8b 45 20 48 89 04 24 e8 5d d5 ff ff 31 c0 eb ac <0f> 0b e8 92 b7 76 e0 66 90 0f 1f 44 00 00 55 48 89 e5

Nov 14 06:03:42 localhost.localdomain kernel: RIP [] insert_inline_extent_backref+0xe7/0xf0 [btrfs]

Nov 14 06:03:42 localhost.localdomain kernel: RSP

Nov 14 06:03:42 localhost.localdomain kernel: ---[ end trace 63b75c57d2feac56 ]---


Looks like rebalance has a major bug at the moment. I did a search and others have the same problem, looks like I’m hitting this bug.

Anyway, so I won’t do a rebalance at the moment, but other than that, btrfs seems pretty neat. I will make sure I keep my backups up-to-date though, just in case…

Categories: thinktime


Subscribe to kattekrab aggregator - thinktime