Tuesday, April 30, 2013

The Funeral

I ended up at this funeral on Sunday not really knowing whose funeral it was - not until I got there and saw a photo at least.

The problem with me is that I don't do well with names. Or relationships. So when someone says to me "You know X person right? We'll they're Y person's brother" I draw a blank. This seems to be the way that Indian's keep score of the 2,000 odd people at a wedding. So I'm not Nevyn. I'm "Gulabbhai's son". Actually... I'm never Nevyn at these things (although, when leaving cash, I signed it with "Nevyn". A kind of token rebellious act).

About half way through the funeral, something occurred to me. Given that none of these people have any idea what I do, what I'm like, what I value etc. and yet these are likely the same people who would be at my funeral out of obligation, the thoughts in their head would be quite similar to my own at the time. Too late to get to know this person.

Rather than fret about my own mortality, I'm sitting there fretting about who would do my eulogy. What would people have to say about me? How much of it would sound like the usual "top bloke" dross without any of the sour notes? Just a note here. I would love for people to note my moodiness and sometimes arrogance. Being a devout agnostic, I also wonder if I could get away with a simple funeral with drinks at a garden pub at the end.

It then occurs to me - I would have to have 2 funerals. One for the family who never knew me - i.e. one for Nilesh. And one for the people who always respected me - i.e. one for Nevyn. Or better yet, forget about the family... Obligations be damned. Indian obligations can fill out any space leaving a whole lot less space for the people for which my funeral would mean something to.

Standing next to my brother in law I found out just how little people know me. I found myself misbehaving at times.

The uncle who said to my brother-in-law "you must come and stay" and then realised I was standing there and extended the same offer, grudgingly, to me got a response of "Actually... I'm in Wellington in July". The look on his face was brilliant!

His wife, the one who had pushed me at her daughter's wedding a few years ago, looked daggers at me while saying how much of a pleasure it was to see me (there's a Tui ad in there....).

The cousins who managed a token "hi" for me had all sorts to talk about with my brother in law...

My mother, deity bless her, having read my "Talking to Family" post, started introducing me to people. People who I've pretended to know for years are suddenly being introduced to me. She even managed to miss a few social queues in order to make it a truly mortifying experience.

She was really keen for me to meet her cousin. There's an inferiority thing going on there. I don't think she feels they've ever treated her with respect. This guy's in teaching so I guess it's a context in which he might've heard of Manaiakalani. Of course, he hadn't. And the looking down his nose at her was palpable.

As the day wore on my shoulders became tighter. I left with my sister and brother in law, grabbed a beer at their place and talked to their neighbour for a bit. It was probably my longest conversation all day! Someone I'd only just met...

Sunday, April 28, 2013

Manaiakalani Shininess Part 1 - KttC - Revisited

I had a look at my stats for today and realized that people are reading up on some other stuff based on last night's post. So some of this "stuff" needs revisiting (as it's a little bit dated).

I'm a great believer in trying to reduce the number of geeks you rely on. The more you're able to to yourself, the better. While this has been possible for a long time, I think that the plethora of cloud services make this so much easier.

What is KttC?
KttC stands for Keys to the Castle. The idea is to empower people and lower computer administration costs by moving administration to the user. In short, it's awesomeness on a USB stick.

What can it do?
It does a few of the things that I was most frequently asked for.

It was always initially supposed to be able to image a computer. It turns out that imaging is actually kind of inflexible and given that Linux doesn't really care where it's files are anyway, I've been able to do this part a lot faster while also making it account for bigger disk sizes with minimal effect on speed (for those geeks out there: delete partitions, make partitions, format, copy files, make bootable).

It can reset passwords. Make copies of it self. Grab the serial number of the computer and delete user's preferences.

All within a minimal amount of time.

But What's the Big Deal?
A single stick can add a sense of empowerment within a classroom - who would've thought? A sense of security that you can do something to fix your own problems without having to be a geek. A default position (it takes around 3.5 minutes at the moment on the Manaiakalani image) of going back to a working system if the need ever arises.

What does it not do?
It's only for Linux systems. There's a few reasons for this:

  1. I really hate having to deal with any sort of licensing issue. I don't want to have the whole license key thing in there. In fact, I want it to be as portable as possible. So the same system could be used on a desktop as a netbook as a laptop - without worries around piracy ("Although we live by the sea, we don't need to be pirates" - Nathan Parker).
  2. By keeping the scope right down to a known usable quantity. Less things to test and less chance of bugs coming though and ultimately, because development is a cost, a cheaper "product". (It'll be Free once I've finished this rewrite of it though it will need to be developed for each deployment as it's just not that clever).
  3. We seem to be really keen to make things complicated. Which is cool - something that can do everything is really very cool (the Linux kernel is a great example of this). Only... it's also a trade off. We lose efficiency (i.e. if you know what hardware you're running on, then you can optimize a kernel to boot within a matter of seconds instead of the 30 seconds or so it takes me to boot up Ubuntu). So by not doing everything, I'm able to make it do what it does do really well.
It doesn't do the laundry... in other words, other than perhaps a little confidence, it probably doesn't offer anything in the way of the more important things. For example, Professional Development. Any expense incurred from getting this developed to your needs shouldn't effect any budget for ICT PD (except perhaps to increase it). The pay off from teachers feeling supported is incalculable.

Where can I get it from?
You can't just yet... I'm expecting to have all of my code up and available for download really soon though so watch this space.

KttC is one of those bits that will need re-writing for every deployment at the moment. This is because it's just not that clever yet (though I'm hoping in the near future to be able to develop it so that you can write a sort of definition file for it - i.e. tell it what the partitions should look like (sizes, fs type etc.) and their mount points. Where to find the "image" etc. Flexibility really comes from need and thus far, it just hasn't needed to be all that flexible.

While this wouldn't totally eliminate the need for some "development", it would at the very least be really quick to do so. Of course, this could probably evolve to have a nice little front end for configuration but I'm well off that point at the moment.

In the meantime... I am available for some of this work... which would then give me the funding to do some more of this development... just sayin'. Otherwise, I'm quite happy to help people out with this stuff via email (once the code is up of course).

Where to for the future
I would really like this to have the future to become a sort of rescue partition. So eliminate the need for a stick and make it so that the user has control of their own machine. This would probably make imaging even quicker. But there's all sorts of development which would have to go into here. Firstly, if any user could get on any machine and change the password or reimage it.... So it would have to sync passwords with the administration user/users of the running system. There would need to be a way of dealing with updates - which would probably eliminate the speed advantages...

On the other hand, it would mean that an "image" could adapt itself to the user..

Saturday, April 27, 2013

My Cynicism of Surveys and the Slow Uptake of ICT in Schools

The results of a survey using a sample group of 600 schools has been released and I'm finding myself questioning it's validity... Although I don't think I trust the method of any survey anymore. They're all too often taken as hard and fast results rather than looking at the inherent flaws. The survey was based around IT Infrastructure in schools.

Say you're a school, and you don't have much IT infrastructure to speak of. In fact, the computers are a  hindrance (I'll explain this bit in a second) and computers are really to be avoided, as in the classroom, you just don't have enough of them or the confidence that they'll be in a working state. Those in charge are unlikely to admit to just how poor their infrastructure really is. So unless they're forced to participate in a survey, those results are always going to be skewed.

So the idea of computers being a hindrance. When I was in primary school there was 1 or 2 C.O.W.'s (Computers on Wheels) which would spend probably a week every year in each classroom. If you were lucky, you'd get to have a go on it for 10 minutes after you'd completed your work as a special treat. It was never enough time to figure out what ever game (I think it was something to do with Alice in Wonderland?) they had running - if you were lucky enough to have the machine running when you got to go on it. Otherwise, you had to figure out how to get it going.

Jump forward to today and most schools will have at least 2 or 3 computers sitting at the back of the classroom. A lot of schools will do much better. But for those who only really have a couple of computers at the back of the classroom, the situation isn't all that different from what it was when I was at school. A school's IT support provider is likely to be quite an expense in which case, given that the computer's usage is sporadic anyway, it's often not worth getting support in on a weekly basis. If you're only getting support every 2 weeks or more, chances are, the computers in your school are more a hindrance. The computers continue to remain in this state where they're simply not used because every little issue is waiting 2 weeks or so before they're fixed.

On the other hand, having a book with jobs to go and tend to and finding that a computer isn't working because someone has unplugged something is just as frustrating. In a classroom situation, with 24 odd (little treasures every one of them) kids all vying for a teacher's attention, it's little wonder that this happens. There was the other little issue I was having with this process. I would grab the book and find nothing written in it. If I entered a classroom with that book though, a teacher would invariably snatch it off me to write something in it. So following their own processes is sometimes less efficient than just asking the teachers.... Personally I always found it better taking time out to talk to teachers. Sure, conceptually less efficient. If the process isn't a good one, i.e. no one's particularly comfortable with it, then it could be argued that the more "manual" approach is better anyway (and helps build up interpersonal relationships).

The other thing that happens as a result - each individual school probably isn't worth all that much to the IT support vendor. In which case, they can be horribly protective of the environment. Passwords won't be given out (often the school's themselves can't do anything other than what's been prescribed by the IT support vendor).  They're more than likely running a Windows environment which chances are, they've got some remote access into but this doesn't take the place of good old desktop support.

As an example, the other week I was at a school I'd never been at before except for a meeting once early last year. I had to get the computer on the wireless network and, even though they were pretty open with the information, it turns out the information was wrong. I spent around 15 minutes fumbling around trying to figure out what the best approach was to "invade" a classroom.

Invade a classroom? It turns out that you can get a whole lot of things done a whole lot quicker by going straight to the user. None of this "this is what it should be" but rather, "this is what it is". So the kids, given that they use these things everyday, will know exactly how things are. So this job took around 2 minutes of sitting with a child (who seemed a little confused - it was information she took for granted).

This is probably all counter to my point about moving support to the classroom - but it does make sense.

What advantages is your school getting from Active Directory? Yes... it's all "best practice" and all the rest of it, but can these things be accomplished in a more.... education friendly way? If a computer falls off the domain, that computer is unusable until someone can come around and get it back on the domain. Can the desktops instead be seen as individual entities? Move the security back to the file servers and Internet access. This would also mean no more roaming profiles - often the first thing an I.T. support person does when they start fixing a machine is to go and delete those accumulated profiles.

How hard would it be to get some students doing some of the support? We've had the capacity for this for YEARS! Installation cd's and network boot capabilities to name a few. So it hasn't been particularly hard to make it so that machines could get back into a default position. The problem has been that this hasn't been the emphasis. So my, deeply unsatisfying, 7 minutes to image last year looked heavenly compared to the multiple hours taken to set up a Windows box using PXE boot (network imaging).

There's this whole interesting thing going on about the corporate environment vs. learning space. All too often I hear terms that just don't have learning at the forefront. It's about security against hackers and viruses and protecting the users from themselves. Where's the learning? It's probably in some doc file on a file server somewhere...

Is the environment made with learning at it's forefront? Keeping a machine in a working state is probably far more important than stopping errant use of the Internet (which, when it's one of the users on the network, is better dealt to socially). Mitigating those risks that can cause things to stop should be at the forefront of any classroom computer administration...

This is quite different from a corporate environment. A corporate environment isn't about learning - it's about productivity. Productivity and learning aren't the same things. We learn from failure more so than success which isn't at all productive (except to learning)...

So we need to stop trying to apply a corporate type infrastructure on top a learning based environment and instead start thinking about "what is best for THIS environment?" (Best practice be damned - best practice wasn't formulated with a learning emphasis).

What does this do to solve the problem of slow uptake? Oh - before we go there. We should have a look at the effect slow uptake has on school's not wanting to be left in the dust. Rather than looking at what opportunities the technology opens up for them and how that could fit into their learning, they're all too keen to purchase a whole lot ShinyDevices™ (whatever that might be at the time). It's so much more glamorous talking about "Augmented Reality" rather than "Authentic Voice" and "Transformative Experience" (an experience that changes the way people think - like writing a blog post and knowing the audience is the world). If you can save a whole lot of thinking and instead just find the funds.... ShinyDevices™ for everyone!

So if computers are able to be in the classroom in a state where teachers can be relatively secure in the fact that they are working, and can train a few kids up in going through a few checks if things aren't working, and have a fallback position so that even if the worst happens, they can STILL get going:
  1. It builds capacity within the classroom meaning that the cost of I.T. support doesn't go up (and could potentially go down). In this case though, the more the computer's are used, the more that I.T. support has to change to more PD (Professional Development) type tasks - showing a teacher how to embed a spreadsheet on a blog for example - quite a departure from your traditional I.T. support person. So no illusions here - those costs could go down. They're more likely to stay the same.
  2. Because the computers are now used for learning, any further expansion in this space comes from a pedagogical (hopefully) basis rather than trying to keep up with the  "Normal's" (the NZ school equivalent of the Smith's).
And all this without mentioning the benefits that Open Source brings to this space :-

The technology isn't limited by commercial concerns for example (i.e. a solution can be built that suits the environment rather than trying to get the environment to fit around a particular solution). 

The chance of getting white hat hackers (the good guys) finding vulnerabilities before black hat hackers (the bad 'uns) do so that those vulnerabilities can be patched up is higher. The number of viruses in the wild for OSes outside of MS Windows are already multitudes lower (although I've heard bad things about Android though I would blame this more on it's less than open version of open source) so it almost completely removes something that schools seem to concern themselves with a great deal...

Given the availability of the software, and easily searchable nature of it, the fringe groups can be catered for. Those boys who seem to be interested only in computer games will quickly give up those games in favor of making their own games in Scratch (learning computer programming). Writetype can be used as a writing aid for those who benefit (just about anyone really) from hearing what they've written read out etc.

All available within the classroom and, for the most part, without the prohibitive licensing fees (and conditions). In which case, if you've got a need, it can be catered to - without having to wait for funding.

Ha! That almost sounds like a marketing spiel...

Friday, April 26, 2013

Buying Your Raspberry Pi

There's a whole lot of things that are bothering me about retailers at the moment.

For example... we New Zealander's shouldn't be putting up with a 15% surcharge. Those cafe's and restaurants are already busier than any other day of the year and it's their choice to be open. If they chose to take the risk for that extra business, it shouldn't be up to the customer to hedge their bets. They could instead observe the public holiday.... Bold I know....

Hallenstein's was just plain scummy. No two ways about it. It might have been different if they had actually communicated the fact that it was an online sale only but unfortunately, that's not what happened.

I've just taken a bunch of screenshots of Jetstar. Their advertised price is VERY different from the final price. Every time you hit the "continue" button, some other fee is added. So each time you hit continue, you have to look for the place to opt out. Anyway, my calculations had an increase of almost 40% in "optional" extras excluding the booking and service fee which isn't revealed before putting your credit card details in.

But something that's really bothered me of late: Element14, one of the 2 primary suppliers for Raspberry Pi, will no longer sell Raspberry Pi's to consumers in New Zealand. Instead, they list "Raspberry Pi Approved Retailers". For New Zealand, that's Trademe apparently...

No mention of the other primary supplier - RS Components - who will still sell to consumers in New Zealand. Or nicegear.

Friggin' Trademe with all of it's flaky information and a whooping $79 buy now (plus $5 delivery)... As opposed to the $47.50 I just paid at RS Components and $65 that nicegear (they have a GREAT range of accessories) have them for...

Thursday, April 25, 2013

Talking to Family

This morning I went and had coffee with a friend. We were sitting there talking about nothing of consequence when a girl came up to us. It turns out it was a cousin of mine. Conceptually, I know her, but I hadn't seen her in ... years. And she's that age. That age where you still remember her as being knee high to a Nevyn and now she's changed into this full sized human being.

For years, while I was trying to figure out how I fit into things and suffering with depression, there was a certain shame. I didn't really talk about what I was doing. In fact, other than the occasional "hi" and speaking to how my family was, I didn't say anything to extended family.

This gets worse when people come up and talk to you as if they know exactly who you are and what you're about and you just don't recognise them. Their assumption that their values are the same as yours grates and that sense of isolation deepens. Instead, coping mechanisms come into play and you figure out that it's okay - you don't need to know who they are. The same responses seem to work with everyone. A bit like having one of those electronic toys which make different noises depending on the button pressed. It's artificial intelligence. Pick up on key words. Respond appropriately.

There was this weird sense of pride in that I wasn't having one of those moments here.

So she asked me what I'm up to nowadays. Despite all of those things that I'm incredibly proud of, my response was "nothing much".

No mention of Tangleball. Little mention of my involvement with Manaiakalani. Some vague comment about an award. Nothing about the sense of... pride when I meet someone, tell them my name and suddenly they launch into a litany of places they've heard of me from (or quote something from this very same blog). Nothing said about the future and how it's looking fairly good as I get involved in new, albeit, smaller things but with a nice rounded completeness to it. Just nothing... A vagueness...

And I recognise it for what it is. It's the vagueness that I've used for years while I wasn't all that proud of myself and what I hadn't achieved. Those compliments I did get - while at Unitec I was told that I was the most promising programmer in the place (just as I was leaving),  in high school I entered a science competition and when I got back the score, hid it from everyone and then got an award (top 80th percentile or something) for that very same score that I was ashamed for - I always had some sort of excuse out of.

My father, when once asked what I did for a living, launched into this long litany about how I did electronics and then gave up after a year and then went into computers instead of business (like any good Indian boy should've done) and didn't finish that either and went off to Christchurch and got a job but gave that up etc. So it wasn't JUST me. I'm sure there's a message for parents everywhere in there. Our own fears and insecurities that we have about our children are probably felt by the children themselves - these things have an effect.

It gets worse though. She tells me she's a wedding photographer. I've got an interest in photography myself (though I haven't yet been able to justify the purchase of a decent camera. Besides which, there's always the threat of being mistaken for a tourist). But I ask her what she does for the rest of the week... as if taking the photos were the time consuming bit... The walls were definitely up... And I'm feeling ashamed with myself... again.

I've absolutely no doubt that I'll bump into this cousin again. Only next time, I'm going to make a concerted effort, take myself out of my comfort zone, and actually talk to her properly. Not act the vague drunk who is doing "nothing much" (although... that's very rock'n'roll). Perhaps even invite her to sit down and join me and whoever for a coffee...

Update: Have you ever thought you were done with a piece of writing only to find that you suddenly had to change something, alter it, make the wording just a little more perfect (as if a blog post were a piece of poetry). There we go: Segue set up... Watching a TED video to end the night and I came across this poem which I thought fit into that whole "daddy issues" paragraph perfectly (note: it's a excerpt from a TED video).


Update: I'm off to a family funeral tomorrow morning, just a few days after writing this. The writing's fun (it's raw and honest and really does feel like a great piece of writing) . Meanwhile I'm preparing to be in full defensive mode for the day.

Hallenstein's Tribute to the Wall of Shame

Renedox had said something about getting a new coat this winter and so when I got an email from Hallenstein's with their winter wardrobe on display along with a great big giant 20 hour sale! I emailed him.

So being Anzac day, we headed into town. The sale ended at 1pm today - Hallenstein's opening time for Anzac day - and started at 5pm last night. It turns out the sale was for online purchases only...

This has to be the scummiest sale of all time.


While on general principal I don't object to online sales, it's clothing, in which case, sending the original email out at the end of one day ending at the opening hour of the following day means that there was absolutely no opportunity to go in store and try the clothing on. It being an online sale only was communicated by that small piece of text on the bottom of the image (you can read that right?). Note - the images haven't been scaled (real size).

The Other New Zealand

For a bit of a break I went and had a look at a friend's blog - someone who I see probably a couple of times a year around conference season. Anyway, she had a little link going off to a blog post which reminded me of a conversation a few weeks ago.

Renedox, my brother in law and I were sitting in the backyard enjoying my homebrew on what was surely to be one of the last chances to do so this side of winter. My brother in law said something about "dole bludgers" which of course, was Nevyn bait. A chance to talk about how it's never quite that simple. The mighty middle class who just don't realise how hard it really is at the bottom. Anyway, the post linked to says it far better than I've ever been able to say it. I think I've found another blog to visit occasionally.

Basically, if we've always had the expectation of a fridge, a full pantry, a decent income etc. then it's really hard for us to conceive of people who have to deal with much lower expectations. These are all things that we all take for granted and yet there's this whole other world out there.

So while we think we get it when we look at various fundraising efforts like the 40 hour famine (sugary sweets and sugar laden fruit juices do absolutely nothing to communicate the problem) and Living Below the Line, what we seem to forget is that this actually happens in our own backyard - it's not just in some far off difficult to conceptualise within our own context place like Africa. Within our very own city, yet alone country, there are children going to school starving - and the response seems to be to give those kids shoes (and denounce their parents for making the wrong decisions).

Anyway... Go have a read. It's a brilliant post.

Wednesday, April 24, 2013

The Auckland Unitary Plan

So it turns out Auckland has a plan - a unitary plan. Nope - this isn't something that can be cured with cranberry juice - I've already tried. I got an email first thing this morning telling me I should make a submission. After (finally) reading the site, I wouldn't really know what to make a submission on. The stuff there seems sensible enough although.... there was this rather "interesting" piece of text:

Where can I find more information about the Inter-Council Working Party (ICWP) on Genetically Modified Organism (GMO) Risk Evaluation and Management Options and the draft proposed plan change and its associated 32 Report?

The video clip is classic propaganda. It presses all the right buttons. It's about you and the future and we need it and higher density housing is good and options are better (the same argument was made about transport in the 50's which lead to much less resourcing for public transport - no more trams)..


This is something that's going to effect Aucklanders for years to come and the people who have the time to go through this sort of thing probably aren't as representative of the people as they could be. Personally I'd be pushing for a minimal green space for each property (i.e. you can't just concrete up a section, build a monstrosity which they'll generously call "apartments" without any thought to at least some space to grow things).

So if you're able, I'd encourage any Aucklander to have a bit of a wonder around and see if they can stop nasty stuff from happening to this great city of ours. Given that a lot of what happens at the moment seems to be due to "business councils" and the like (think of all the big bottlenecks around the city - Mt Eden Village and Balmoral for example), people need to have a say (i.e. support the council's plans to fix things like this by putting parking behind the businesses and opening up the roads).

TED Talks Love Fest (2013-1)

I've been watching a lot of TED talks lately. I love 'em! They'r!e brilliant in all sorts of interesting ways. I love them for watching on the bus while going places (I don't drive). They have this tendency to have me thinking in different ways. In saying that, I do find that they have a different effect on me than on other people. It's a matter of perspective.

In saying that, I've found an all new match in heaven. I've been talking to someone about a project and it seems I'm being the more cautious one. Here I am talking about a pilot programme along with multiple stages and this person just wants to run with all of the ideas! I'm loving it!

So I thought I'd do a blog post on the TED talks I've watched recently.


The first song in that video is VERY much within my sense of humour. In fact, Renedox and I are often making very similar jokes. The importance of the song is explained in the following video:



And it's oh so true! The TED talks I remember and tend to stick are those that have a sense of humour. Like this one:


Which kind of feels a bit of a mixed message but it's quite an important one. I watched a talk on the future of the car which irritated me - it didn't have a sense of humour and it was about getting more cars on the road! Quite different for TED talks in general where the theme is generally about sustainability.... But when taken in context with the washing machine it kind of puts a different spin on it. I'm not going to put it up here as there's already 1/2 an hour of TED talks here (and it really wasn't all that good).

Of course, the beauty of TED talks is the interpretation. Get a room of people together, show them something and ask them individually what the message was and chances are you'd end up with a whole range of different answers.

Tuesday, April 23, 2013

Hardware Reviews

Every now and then someone asks me to recommend hardware. It's a really hard question. My personal preference is for 3 devices. A phone, a netbook and an e-ink ereader based device.

For the phone I'm currently using an LG P500. I probably wouldn't recommend this phone these days. I mean, there's nothing particularly bad with it. It's just that even when I brought mine, it was a little dated. Which is fine. I'll probably continue using it for another year or two. I'm quite impressed by the LG phones in general though the vendor software normally bites the big one - so expect a bit of hacking. But in terms of usability vs. price they're top in my book.

For my e-book reader I'm using a Kindle. Nowadays I would probably buy a Kobo. The Kindle is a great device except that it doesn't do epubs. This is mainly because the Kindle is based around trying to  sell ebooks from Amazon. The interface is always going to be a bit of a contention point on an e-reader (as is the lack of colour). But it does what it does. I only ever need to charge mine once a month for example. And it doesn't hurt my eyes. And sure, I could get a flashy tablet. But honestly, I like the features of an e-ink reader better rather than the flashiness. I know I'm probably a minority on this point.

As for the third device... I'm actually really liking the hardware of the Chromebook but think it needs a hell of a lot more work. I've actually got two other devices here - a netbook and a laptop. The crowding in this space is centered around work - what can I do with different devices? What problems am I facing?

I know.. I've been complaining about the Chromebook. But it has a certain "oneness" to the construction that my laptop lacks and it feels kind of solid. It's battery life is what netbooks should have been (around 8 hours). It's speed and performance is exactly where it should be for a netbook i.e. a snappy interface and brilliant boot up time. Of course, the chromebook, with it's 12" screen, is outside of the realm of "netbooks" - i.e. outside of the limitations placed by Intel in their silly effort to compete with ARM.

Google need to get more accommodating about this stuff. Rather than having this whole "developer" mode crap, allow a developer to actually use the hardware without the Chromebook telling you that you're being unsafe (and honestly.... 30 seconds for a warning screen?!? That's just stupid). Actually this mentality is being used all over the place. The creepy cameras on buses for example - they're there for your safety apparently.

Chrubuntu needs a hell of a lot more work in it's default settings as well - which I think a community contribution area would be really good. This would allow people to try and work out the kinks. I REALLY miss the Delete, Page Up, Page Down, Home and End keys. And the touchpad is doing my head in... These aren't insurmountable but just needs someone documenting what they've tried and what has and hasn't worked.

Long story short - apart from a few hints, I don't think I'm all that well qualified to give people suggestions. Those hints? Avoid AMD processors in low power devices. They tend to have great video processing but really crap processor capabilities and aren't all that low power. Expect something different from ARM. They're very much embedded devices in which case, a desktop environment is not their strength (though I think Raspberry Pi could be an exception if someone where to write a window manager based on OpenGL ES) - so only really consider ARM processors if you have a very particular need in mind (a phone is and ereader is cool. A computer - make sure you try it first. The experience can be quite different from what you may be used to).

But the point of this post... Given that I end up buying devices and can normally get a fairly good idea of suitability within about a week, wouldn't it be great to become a reviewer of hardware? It'd save me quite a bit of money and would have the added advantage that vendors could potentially "certify" their hardware for use with Linux (with tips supplied for making it all usable). It would become a selling point as Linux geeks everywhere, although we love to complain about the fact that we're paying for a MS Windows license without actually using it, would at the very least like to know that a piece of hardware works with our environment of choice.

Monday, April 22, 2013

Making Conferences Not Suck

Every year I go on this whole thing about conferences. So far, my favourite has been NetHui. The biggest thing it's got going for it is the fact that it has an incredibly low barrier to entry. $40 for 3 days of conference goodness is a brilliant thing. The conference does still essentially suck as Internet NZ try to tell us just how much they're doing by funding, what so far, are horribly flawed projects.

When I say horribly flawed: last year they were on a great big giant "Computers in Homes" buzz which failed on several points for me. No real regard to user investment i.e. A recipient only had to get 20 hours of training in order to gain what's essentially a free computer. Internet would only be subsidized for 1 year. The computers are pre-installed with Windows (and from what I hear, the support vendors are protective about keeping them this way) which to me indicates a lack of thought in terms of the opportunities being afforded to their user base.

I was considering going to ULearn - NZ's biggest e-learning conference (probably the biggest education conference in NZ). And then there's barcamp... which I find I'm never all that enthusiastic about.

I actually really hate un-conferences. I know... they're trendy and great and brilliant and everything but... they fail on a couple of points.

  • No matter how unstructured they're supposed to be, someone ALWAYS has that whiteboard marker or controls to the projector or is standing at the front while everyone else is sitting. The discussion becomes about reinforcing their points.
  • They just don't work. Given the differing communication styles between males and females, you often get that scenario where females are sitting there swapping arms as they've now been holding at least one arm up for the last 10 minutes while males generally butt in when they've got a point to make. It's not a balanced discussion.
Which all leads to the fact that it would be better and more honest to admit to having a facilitator for a discussion. In fact, make it a general rule that the facilitator is not there to join in the discussion but is rather, just a facilitator. So someone who can tell people to wait their turn...

I also usually go to educamp. This is a one day unconference which, funnily enough, I don't really participate all that much. Instead, I go for one thing. Something they refer to as the "Smackdown". I think the name is more than a little naff but it occurred to me tonight as I was watching TED videos that this would be a brilliant format for finding people with things to say.

So the concept is this: People sit around asking for access to whatever spreadsheet they're using to keep track of who's talking and when it's their turn. They get up. I think they have something ridiculous like 3 minutes to do a talk on something.

The problem with TEDx events... Firstly, their advertising is terrible. I knew one was coming and kept an eye out for any sort of information but missed it. I would have loved to have gone only.... well the second reason TEDx events suck... I know that tickets are likely to be really horribly expensive. And thirdly, chances are I'd be missing out on great talks in favor of another great talk...

So what if you could make it not suck? Take the "Ideas Worth Spreading" concept, and quite short talks (I'd say 5 minutes with a few 15 minute sessions) all done in a single hall/auditorium. It'd have to be the same old proposal for presentation type set up - the spreadsheet really is a bit of a pain - unless you had quite specific "soap box" sessions. A chance to get up and talk about what gets your juices flowing.

After which, you could then essentially vote on the people you wanted to hear talk in depth on their subject, and the conference could then evolve from there. Or... not. It could just be the short talks. Perhaps the guides could just contain the name of the speaker, their subject and a URL for more information.

Just think. The cost could be kept right down. Make the food user pays and offer it to a whole lot of different mobile food vendors. One auditorium (this could potentially be done in a school hall or the like). Some small printing costs... Charge $20 for the day. The smallest of all the issues I think would be finding people doing interesting things to make life better...

Sunday, April 21, 2013

Making the Chromebook Usable

It's been a couple of days now. I quickly gave up on ChromeOS. There are just a whole lot of things that make it unsuitable to my purposes. Things like printing - while ChromeOS does support printing, it only supports it from Cloud Print.

Google Cloud Print is probably a really clever way of doing it. Setting up printers in ANY OS has for a long time been a pain. It occurred to me as off putting that you can configure a system for a normal user to connect to any wireless network, but the same doesn't apply to printers (although I think adding a user to lpadmin probably gives them that right). In fact, the last few tasks I've done on Windows has been setting up printers. In Linux, it's probably just a tiny bit easier as open source drivers don't tend to have issues between different versions of Linux whereas going from Windows XP to Windows Vista to Windows 7 etc. was always the first set of complaints I would hear at the introduction of each version.

But I really hate the idea of giving Google any information on my internal network - so I won't be setting up my printer on Cloud Print any time soon. So that's a no go. I may feel differently if I were trying to do something like set up an iPad to print (something I get asked all the time. Long story short, I just don't have an answer for this one. I know there are ways of doing it. I just don't know how).

I was watching a TED video the other day on the Chromebook and it was just irritating me. I was having to stream it while at the time I could see the hard drive where I have a whole lot of TED video's downloaded. Someone suggested that I set up a web server on the machine hosting the files but that feels a little bit overkill. It also has the problem that ChromeOS would most likely download the file into it's Download area AND THEN play it. Playing a video off a remote storage location is something that you've been able to do for a long time.

So I went ahead and installed Chrubuntu - a version of Ubuntu made for chromeboooks. It duals boot. I like it except that it needs some tweaking.

For starters, the brightness controls are flaky. This was easily fixed. Go into keyboard settings, shortcuts and go to "custom shortcuts". Change the command for "Increase Display Brightness" to "xdotool key XF86MonBrightnessUp" and the command for "Decrease Display Brightness" to "xdotool key XF86MonBrightnessDown". This makes it less flaky but doesn't do nearly as many "steps" as ChromeOS (i.e. you can't go all the way to turning the backlight off).

The keys that aren't present on a Chromebook are achievable via key combinations. i.e. to do a delete, do alt-backspace. this isn't configured under Chrubuntu and I'm having problems figuring out how to do this. My first thought was to use xdotool to generate it but this doesn't seem to be working.

This also applies to Home, End, PageUp and PageDown keys - where some of the combinations needed in ChomeOS to achieve these is mapped to change desktops.

I'm finally getting used to tap to click. I've turned it off by default previously because I have large hands (that's right... I have to wear big gloves). This is also the first machine I've owned where the button has been part of the touchpad as opposed to a distinctly different button. So while typing I was finding that the cursor was shifting around - making me emit a curse, do an undo and carry on.

In Linux, this is fairly easy to fix. Although I haven't seen a GUI option for doing this, the tools are there under terminal. From a terminal issue this command:

synclient -l | grep FingerHigh

The higher the value for FingerHigh, the more force you need for it register as a tap. To change the value, issue the following command:

synclient FingerHigh=[new_value]

Space is an issue. I can only dedicate 9GB to my Ubuntu partition. I soon found that this was all taken up with my DropBox account so I had to do selective sync i.e. don't sync the whole account. Given the choice, I would just get rid of ChromeOS entirely as I'm very unlikely to boot into it (unless I got word that Google had done an update to the BIOS to make it not suck quite so much).

In an effort to keep space down, I loaded up the terminal and started exploring. Firstly, the boot loader used isn't grub. So I could safely remove that. Then I found that the kernel I was running (using uname -r) were none of those found in /boot. So those could also be removed... along with the headers.

I then also added a script to /etc/cron.daily that would run fstrim. I have no idea if this is actually needed. It's not a change that can be bench marked easily. Better to be on the safer side...
Anyway.... the fact that I'm writing up these notes on my blog means that there doesn't seem to be any place to put this stuff.. So what's really needed to make a Chromebook usable? A wiki...

Update: The synaptic settings seemed to be disappearing. So I put a file into /etc/X11/xorg.conf.d - copied from /usr/share/X11/xorg.conf.d/50-synaptics.conf. The settings still seemed to disappear. It turns out that gnome overwrites your values with it's own, hardcoded settings. Whoever came up with that idea should be soundly hit. So it turns out you're much better off disabling gnome from being able to control your touchpad. To do this, install dconf-tools, load up dconf-editor, go to: org.gnome.settings-daemon.plugins.mouse and uncheck the "active" checkbox.

The trade off to this is that if you're using the xorg.conf type approach, it's then system wide. What we really need is a configuration program for the touchpad that stores those settings somewhere in the user's folder - probably dconf - and restores them whenever a user logs back in.

Thursday, April 18, 2013

Getting My Own Chromebook

Today I brought a Chromebook. There's a perfectly good reason to do so. It's brilliant hardware. It's the sort of hardware I always wanted for the image. A 16GB solid state drive (although I would have settled for 8GB), 2GB of RAM, an Intel processor.... all within a decent price point and 8 hours or so of battery life (though charging takes a fair whack of time - 4 hours or so).

I've been having a play.

Anyone who's heard me talk about the Chromebook has heard me practically yell "It's just a browser!". It truly is. I can't, for example, access files from another machine - unless I just want read access. The only other way of doing this I can think of is using some sort of cloud solution within my own network (which just feels bizarre).

I did ask someone else what they had thought of their ChromeOS experience. He summed it up in one word. "Underwhelming". It does what it's supposed to do - which probably isn't what you want to do.

There's a general comment to be made for what Google are doing to Linux too. While Andriod and ChromeOS are based on Linux, it feels a bit like when Sarah Chalke took over the role of Becky on Roseanne (yep - really old TV reference. Basically they kept the character but swapped the actor. They did make reference to this at some point). It's her but she's just not the same. So it's Linux. They keep telling me that it's Linux. But it just doesn't gel. It tries to keep me out of all that Linuxy goodness. If I dig deep enough, I can find it. But boy, does it take some digging (in the case of my Android phone, I had to use Windows to jailbreak it).

Every guide about hacking the Chromebook starts with "Put it into developer mode". So flip a switch. Turn it on and get this big ugly screen referred to as the "Scary Boot Screen". To get rid of that screen, there are two possibilities. Turn off developer mode (essentially sit down, shut up and do what Google tell you to do - any modifications you might have made will be wiped) or open up the device in order to unlock the read only BIOS and flash it (I haven't seen any links to firmware that you can be used for this purpose - it's sufficiently scary enough not to attempt it).

But what's so scary about this boot screen? It offers you one option. Press the space bar to restore. Basically, "go sit in the naughty corner while I clean up this 'mess'".

So you've gone through the effort to put it into developer mode, and then you have to know to press Ctrl-D. Brilliant! Once in developer mode, you can also put the BIOS into developer mode - so that it doesn't look for a signed kernel (whereas developer mode JUST gives you access to a bash terminal). But even after this very manual step (Flick the switch, turn it on, see the scary screen and go into developer mode - which takes 5 minutes the first time. It appears to image or something though apparently it doesn't do this again if you flick the switch back assuming you haven't made any modifications. Open up the shell either by pressing Ctrl-T and typing in shell (to get bash) or press Ctrl-Alt-F2 and log in as chronos and then issue the command to put the BIOS into developer mode) Google STILL deems it in my best interest to show the scary boot screen. Surely, there's got to be a better way of letting the user know they're in developer mode...

To me, this is the show stopper. The usability HAS to be what Google want it to be, otherwise, they're going to make it as ugly as humanly possible. It has a god awful stink of "We own that device. (Oh and thanks for paying for the privilege)". The most upsetting bit for me... they've used OpenSource firmware to do this...

Wednesday, April 17, 2013

You Are More Beautiful Than You Think

So recently I've been doing a lot of computer based posts. You can kind of tell that I flit between two versions of myself. The one that looks at social issues. And the one that has a job to do. They at times feel mutually exclusive - a lot like me reading. I find it really difficult to read a book while I'm working (though an exception can be made if there's "forced reading time" i.e. a daily trip on a bus).

So it's time for one of those more social posts. Lynda (thanks Lynda - needed someone to get me thinking outside of computers) did a brilliant blog post today found here. Dove's advertising is, for me, probably the most pervasive advertising out there. It makes you think. It questions some of those things that I have difficulty with. Though take it with a grain of salt - the message is good. But it is still advertising (despite not showing a single product - it's more about brand identity).

For example, I can't for the life of me figure out why 96% of woman struggle with self image issues. A few years a go I stumbled upon a dating website which had a whole lot of woman on it which I found rather surprising. The kind of woman who's appearances, to me, would put them in that "born with a partner" category.

Incidentally, I ended up putting up a profile because I was kind of curious about something else. Going through profiles I found that people didn't really say much about themselves. I mean, there were bits between the lines - things that you could ascertain from the little content or pictures (having a profile picture showing them and a friend for example says something about self image), but for the most part, people didn't really talk about themselves all that much in profiles. So I kind of wondered if putting it all out there (positives and negatives - so mentioning that I'm a geek but talking about passions etc.) would have people curious and eager to contact me. It so happens that my curiosity has been sated. I think I got 2 or 3 people contacting me over a number of years.

Which has me wondering... do self image issues have a relationship to our ... inability to express ourselves? For fear of sounding "pervy" or our intentions being misunderstood? How would you handle being called "good looking" or "beautiful" by a complete stranger? Would you take it as a genuine compliment? Or would we seek other motives? I've got absolutely no doubt that we all manage to reinforce our self image - be it positive or negative.

Oh and just for an interesting little tidbit.... Britney Spears makes for an interesting case study... In 2002 Britney Spears was listed by Forbes as the number 1 most powerful celebrity of the year (I'm not entirely sure what scale "powerful" pertains to but it is positive reinforcement). However, use the search terms "britney spears fat" in google and the top result is the following:


It just kind of goes to show - even with the most positive reinforcement, just 5 years later, Britney Spears had managed to find a self image issue... (I put forward that this is probably due to an unfortunate wardrobe which, in turn, is probably due to trying to recapture something of herself when Forbes published that result...). Do we trick ourselves into seeing a compliment for the present/past only?

Monday, April 15, 2013

How are I.T. Solutions Arrived At?

Something occurred to me today. Last year a work mate and I were talking about virtualization. This is one of those areas in I.T. where the technology isn't the focus of the decision making process, but rather, those implementing it.

So say you're wanting to consolidate all of those big noisy servers which have their own room and rack and want to instead shift it all to one big noisy server (which should save on air conditioning costs though there is something to be said about a single hardware failure bringing down a big chuck of infrastructure). So you ask around. Various IT people will have looked at different preferences for virtualization technologies.

So what do you do to research virtualization approaches? In a big data centre you're going to need someone experienced... so you're at the whims of that person unless  you hire on the basis of the chosen technology. Of course, that then begs the question, how is that decision reached at? Looking at "best practise"?

But then, if we widen the scope a bit, this is true for just about any solution in computing. A few years ago I was listening to someone describing their perfect solution to their I.T. provider. It involved giving users access to files that had been assigned to them while still having the flexibility to work within the applications they chose with minimal interruption to workflow (i.e. checking files in and out should happen automatically).

I'm sitting there and thinking that I could accomplish this in Linux. It would take a hell of a lot of development but it would be brilliant! Something designed exactly how the user wanted it. And it was an opportunity - build a database on top of this work and you could have the workflow described and enforced within a system (rather than having a secretary running around trying to keep things in check).

Their provider sort of shrugged his shoulders and that was that. He was incapable of achieving it. He did lamely suggest a Microsoft solution that might or might not be able to do what was being suggested... But that was about it.

So how many people out there are being limited by the people they've got involved? Even worse, those people who might have different ways of thinking are essentially paid to sell a particular solution. We describe IT companies as being a "Microsoft Shop" or  an "Apple Shop". Hell, even Linux people (real Linux people....) tend to think about things a little differently. And let's face it, out of the box solutions are cheaper (but probably lack those things that would make the solution become a differentiation point for a business).

Which all leads to the fact that technology is effectively stalled in the need to sell particular services and solutions.

Wednesday, April 10, 2013

Could Google Chrome Be Managed?

Another geekspeak post - I really should start using tags/labels....

So something occurred to me today... Given that Google Chrome uses it's preferences file for just about everything, and the thing that I deleted which people seemed to be panicking over are essentially bits pieces in preferences (except in ChromeOS), could this all be managed?

On the ground, this seems to me that it would be easy. JSON, the format Google Chrome uses to store settings, is a machine thing. Sure, you can edit it. And you can even see sense in. But it is essentially a machine readable format (it's not all that flexible in terms of syntax. Look at where you do and don't place a ',' for example). Using python, it's fairly trivial.

But dealing to the master_preferences file only really deals with the initial deployment. What happens when you want to do something like block an extension after a user has run Chrome for the first time?

So I'm thinking, you could use a wrapper. A script that eventually launches Google Chrome, but can do a few things before hand. The easy answer would be to make it remove extensions. But it could go beyond that. It could alter the preferences file... which means that you could have a web based tool that can set preferences, which then gets injected into the user's preference file just before they launch Chrome....

You'd have to have a wrapper on the client machine. Once the client's there though... how would you limit the control a server has? Should it look at domain name? Or do you rely on the client knowing where to look for settings (something it'd have to do anyway but could be construed as a giant security issue)?

Something else also occurred to me. If I were to do a tool for generating a master_preferences file, and it was usable over the Internet, could I make it bring in some money via advertising? Although it's something I'd loathe, and there's a very good chance that I would offer up the source code (without advertising), is it a way of generating a bit of an income?

Thursday, April 4, 2013

Another People Buzz

I've been having a discussion on a mailing list about the EQC data breech. The really funny bit is that I've only really heard about it from the mailing list but I understand it involves spreadsheets and email.

The prevailing opinion in the I.T. community is that I.T. have to be more responsive in providing the right tools for business processes. Something that I agree with wholeheartedly BUT I think it also fails on one very important point.

If a process isn't identified as a business process, and is instead seen as a "one off" (which just happens to happen again), then there's still a risk. So we're into the realms of the missing piece. The piece that we're oh so very guilty of forgetting. That is, people. If people are your biggest risk, they're also the first line of defence. Socialising the importance of particular data is always going to be far more important than the systems put into place.

Yet another reason why an I.T. person should be working with their users.

I responded to an email about systems in the classroom for keeping devices going. Of course this was pure Nevyn bait. I couldn't help but respond. It formed another thought in my head (admittedly, it's been kicking around in my head for a long time).

If I.T. support is such an expense, and those in support aren't entirely happy doing support (userfriendly was based on it and there have been horror stories since I've been using computers. This site covers this area fairly well too as does the show "The I.T. Crowd"), and those getting the support are feeling the technician's frustration as well as getting frustrated themselves, then perhaps we should be looking at things very differently. What this looks like to me is what we've been using for Manaiakalani.

Users are given admin rights to their own machines. Vital information is stored via network - preferably with tools that work to the businesses needs (i.e. out of the box is right out the window and  instead solutions are designed around how that business operates) meaning that those business processes are captured and enforced via technical means but shouldn't leave the user wanting for more (though contingencies need to be put in place for adding functionality and how that functionality is realised i.e. should users be able to copy and paste data into a spreadsheet?). A quick fallback position is established (i.e. reimaging a machine to a consistent operating environment - those the consistent needs to be unenforced).

This frees up those technicians to do other things - coming up with sustainable solutions, working with users to capture needs more effectively (needs capture is done amazingly badly at the moment), working to create more sane defaults and the tools to manage larger scale deployments and businesses etc.

While I don't believe it would result in lesser expense, I think it would lead to less frustrated people and more value for money...

Wednesday, April 3, 2013

Taking a Break

So tonight I'm taking a break. No work. Nothing... So of course I ended up doing a little bit of programming... Something kind of small and relaxing that I've never done before.

I've decided that as part of gherkin, I should probably build a bunch of tools to do quite specific things to do with deployments. Google Chrome, for example, has information all over the place. Do not use this link - you'll waste A LOT of time. Firstly, it's near on impossible to get a crx file unless you manage to get it from your Downloads folder before Chrome moves it. Secondly, the method using master_preferences (which ironically doesn't use master_preferences) - simply doesn't work. There is no "extensions" folder any more. You could hack "default_apps" but it just feels ugly.

So once I figured that out, I found that I had to include something like this to the master_preferences (for this example, for all you education buff's out there, the extension described here is Hapara's Teacher Dashboard client extensions).

  "extensions": {  
   "settings": {  
    "iehakgpdecaomokcdicdigpbmipnllcg": {  
     "granted_permissions": {  
      "api": [  
       "tabs",   
       "webRequest",   
       "webRequestInternal"  
      ],   
      "explicit_host": [  
       "<all_urls>"  
      ]  
     },   
     "location": 1,   
     "manifest": {  
      "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDmsCpYnhR25L1k9EgWUEKmxPUS5FfklZ4KbH+X2I4wcYCuQpjwVpHycGTgLcW4BOWXHDFJAeGZWvo7mdAb62kOeCoOehdbQnr5ChG69NAsWk+CFARyVcaEfcXgoulgGiQgg8DkIq7/wMoLALrzTubzX4ziFs+Ferc1PYp1jA7MBwIDAQAB",   
      "name": "Hapara Remote Control Teacher Dashboard Ext",   
      "permissions": [  
       "<all_urls>",   
       "tabs",   
       "webRequest"  
      ],   
      "update_url": "http://clients2.google.com/service/update2/crx",   
      "version": "0.9.27"  
     },   
     "path": "iehakgpdecaomokcdicdigpbmipnllcg\\0.9.27",   
     "state": 1  
    }  
   }  
  }  

Ugly huh? It turns out that the information you need to generate that isn't that hard to find. But it's SOOO easy to miss bits. Firstly, you have to install the extension you want to install, pull out the bits you need from the manifest file for that extension (visually it's easier to pull the bits that you want from here) and then go to your own preferences file and pull out bits from there.... Not TOO hard. But it takes up a lot of time - find the bits, put it into the file, make sure you have all the syntax right, remove your profile (Personally I used Chromium and Chrome - so 2 different profiles. One to test with, one to use to generate the profile). Open up Chrome, see if it's worked.

Just plain painful...

 #!/usr/bin/env python  
 #Change SOURCE_DIR to wherever your profile for Chrome or Chromium are.  
 SOURCE_DIR="/home/nevyn/.config/chromium/Default"  
 EXTENSIONS_DIR=SOURCE_DIR + "/Extensions"  
 import glob  
 import json  
 import sys  
 for manifest in glob.glob( EXTENSIONS_DIR + "/*/*/manifest.json" ):  
   f = open( manifest, 'r' )  
   manifest_file = f.read()  
   f.close()  
   manifest_file=json.loads( manifest_file )  
   if sys.argv[1].upper() in manifest_file[ "name" ].upper():  
     UID = manifest[ len( EXTENSIONS_DIR ) + 1: ]  
     UID = UID[ 0 : UID.find( '/' ) ]  
     output = {'extensions': { 'settings': { UID: { 'manifest':{} } } } }  
     output['extensions']['settings'][UID]['location'] = 1  
     if "content_scripts" in manifest_file:  
       output['extensions']['settings'][UID]['manifest']['content_scripts'] = manifest_file[ "content_scripts" ]  
     output['extensions']['settings'][UID]['manifest']['key'] = manifest_file[ "key" ]  
     output['extensions']['settings'][UID]['manifest']['name'] = manifest_file[ "name" ]  
     output['extensions']['settings'][UID]['manifest']['permissions'] = manifest_file[ "permissions" ]  
     output['extensions']['settings'][UID]['manifest']['update_url'] = manifest_file[ "update_url" ]  
     output['extensions']['settings'][UID]['manifest']['version'] = manifest_file[ "version" ]  
     output['extensions']['settings'][UID]['path'] = UID + '\\' + manifest_file[ "version" ]  
     output['extensions']['settings'][UID]['state'] = 1  
     #I'm an idiot.. I could have just grabbed it ALL out of Preferences..
     f = open( SOURCE_DIR + '/Preferences', 'r' )  
     preferences = f.read()  
     f.close()  
     preferences=json.loads( preferences )  
     if 'granted_permissions' in preferences['extensions']['settings'][UID]:  
       output['extensions']['settings'][UID]['granted_permissions']=preferences['extensions']['settings'][UID]['granted_permissions']  
     print json.dumps( output, indent=2 )  
     break  

So there you have it.. The start of what will hopefully become a much bigger solution (How great would it be to have a GUI to generate a master_preferences file? I'm wondering if this might be an appropriate use for Pajamas - so that it could be hosted on a website for others to use i.e. set up all of the extensions you want and then upload the preferences file and have it spit out a master_preferences file with the extensions already set up). At the moment this just spews out the appropriate settings to the screen for you to copy and paste.

[edit] I just realised that people are actually using this information. So I should probably say what's going on. So it turns out that if you describe the extension in master_preferences, Google Chrome will then go and download the extension. However, the description of that extension has to be just right or otherwise, it won't appear on the extensions list at all or will appear disabled. Anyway, when I get the time I'll start working on the tool.

[another edit] 8th April
At testing tonight none of the extensions downloaded and installed. While doing it on the machine I was developing on seemed to work a few days ago (eventually - it did take a little longer than I'd like). I've since found the error. It turns out the version should be set to 0. I think this tricks chrome into thinking it has to update the extensions (and so effectively installs it).

Tuesday, April 2, 2013

Editing DConf Defaults

Yep... geek speak warning.

Okay so you're one of the few who look at Linux as a deployment thing rather than having to set up things for each and every user. And suddenly they go and change things from gconf to dconf (and vice versa - the most confusing bit, isn't the misinformation, but knowing where to put settings - gconf seems to work for some things. dconf for others).

Misinformation I say? So it took me a while but I finally figured out where the defaults were stored - on Ubuntu 12.04, they're in: /usr/share/glib-2.0/schemas. Once there, you just have to create a gscheme.override file and you're away... only... where do you find out what the path to the keys are? A GUI tool would be nice right?

So the advice on the Internet seems to be to install dconf-tools and and use dconf-editor. There's a problem here. The paths dconf-editor seem to be COMPLETELY different from those you actually need. Don't waste your time. It'll just make you want to punch someone. That and it's rather a miserable tool. The find function and keyboard navigation just makes you want to cry.

So at the my last big testing session a few bugs came up related to things I thought (but hadn't had time to test) I had sorted only to find that none of those defaults seem to take. It turns out there are multiple paths to the same value but setting it in the wrong place results in it being ignored. This must be the bit about "stored in an unstructured database" on it's main page.

So where is the information we want? Well it happens to be in that same directory pointed to above. Except that it's all in XML with full descriptions and the like. So I quickly (it can probably be improved upon a lot - it's just enough for my needs at the moment) wrote this script to sort out this particular little problem:

#!/bin/bash

SCHEMA_PATH="/usr/share/glib-2.0/schemas"

grep -m1 -I -i "$1" $SCHEMA_PATH/* | while read line ; do
  FILE=$( echo $line | cut -f 1 -d ":" )
  echo -e "File: $FILE"
  grep "$1" $FILE | grep "^ .<schema path" | while read line2 ; do
    SCHEMA="$( echo $line2 | cut -f 2 -d '"' )"
    ID="$( echo $lin2 | cut -f 4 -d '"' )"
    echo -e "\tSchema:\t$line2\tID:$ID"
  done
  grep -i "$1" $FILE | grep "name=\"" | cut -f 4 -d '"' | while read line2 ; do
    echo -e "\tKeyname" $line2
  done
done

The ID gives you the path that you need for making an overrides file, whereas the keyname at least gives you a clue of where to look... If you save this in a file called search_dconf_schemas and make it executable (and preferably on your path), then you would it use it by typing in:

search_dconf_schemas search_term

Here's hoping this comes in handy for someone...

I'm think this could be a whole lot smarter. Actually making this process really easy might become a whole new sideline project (although I'm going to have a few of those on the go including some renovations).

Update:
ARGHHHHHH!!!!!!!! It seems that even some of the files in there seem to be ignored. All of these for example.
  /usr/share/glib-2.0/schemas/org.freedesktop.compiz.*
(of particular interest is unityshell).

Custom keyboard shortcuts have to be defined in gconf on Ubuntu 12.04. Unity 2d settings are in dconf where as all Unity settings are in gconf.

Way to make things horrendously inconsistent Canonical...