Technical

Installing Gentoo on Android with chroot

Note: recently edited 8th Nov 2014

Installing Gentoo in a chroot alongside Android is easy, so if you already use Gentoo and have an Android phone, there’s really no reason why you shouldn’t do it. With a ginormous phablet like the Samsung Galaxy Note 2 and a bluetooth keyboard, you can get a super-mobile full Linux workstation everywhere you go.

Before we begin, let’s see the pretty pictures. Here’s Larry saying hello :) (Installing a talking cow should be the top priority once the base system is up and running)

Larry saying hello on Android

… and of course a shot of emerging stuff …

Gentoo on Android compiling stuff

… and finally we’re running Enlightenment 17 with the Webkit-based Midori browser with X, accessed via (Tight)VNC …

E17 on Android with Gentoo Linux

Installing Gentoo on Android

Prerequisites first: you’ll need a rooted device. You’ll also need a terminal with busybox. I recommend Android Terminal Emulator and busybox by stericson. I would also recommend installing Hacker’s Keyboard, which gives you a full keylayout.

Installing is rather straightforward: modern Android phones usually run on ARMv7 so just follow the appropriate handbook. If you are installing it onto your internal storage (not on an external SD), you can skip to chapter 5 :)

You will need to be root to install, so su - in your terminal emulator of choice. Similarly, remount Android into read-write so that you can create the necessary files for Gentoo with mount -o remount,rw /. Finally, remember to install in /data/gentoo instead of /mnt/gentoo so to not conflict with Android’s mounting preferences.

Since we’re only installing a chroot and not booting alongside android, you can safely skip configuring the kernel, configuring fstab, configuring networking, and setting up the bootloader.

When mounting, you will need to do so as root user, and use the busybox implementation for --rbind support, as so:

$ su -
[ ... superuser access granted ... ]
$ cd /
$ mount -t proc proc /data/gentoo/proc
$ busybox mount --rbind /dev /data/gentoo/dev
$ busybox mount --rbind /sys /data/gentoo/sys
$ chroot /data/gentoo /bin/bash
[ ... now in the chroot ... ]
$ source /etc/profile

This is assuming you’ve put Gentoo in /data/gentoo

Android quirks

There doesn’t seem to be a /dev/fd on Android, so let’s fix that:

[ ... in Gentoo chroot ... ]
$ cd /dev
$ ln -s /proc/self/fd`

Portage won’t be able to download files as it doesn’t download as root, but instead as another user by default. No problem:

[ ... in /etc/portage/make.conf ... ]
FEATURES="-userfetch"`

Sometimes I’ve noticed that on bad reboots the /etc/resolv.conf can get reset. This will cause host resolving issues. Resolving is as easy as:

[ ... in /etc/resolv.conf ... ]
nameserver 8.8.4.4
nameserver 8.8.8.8`

It will be a good idea to set your main user to the same UID as the Android normal user. Also, running id -a in android will show you that your user is part of various reserved Android groups. To fix issues such as your Gentoo user’s (in)ability to go online or use bluetooth, just create these groups in your Gentoo install with matching GIDs, and add your user to these groups. Here’s a list of Android UIDS and GIDS. For example, I needed to add my Gentoo user to groups with GIDs 3003 and 3004 before it could successfully go online.

If you want an X server, VNC will do the trick. I recommend android-vnc-viewer 24-bit colour seems to work, and perhaps change the input method to touchpad rather than touchscreen so it’s relatively usable.

Finally, with no fan and big heatsink on a mobile phone, you might find yourself running hot. So even though monsters like the Galaxy Note 2 have 4 cores, I recommend sticking it to MAKEOPT="-j2"

Life & much, much more

Hello SevenStrokes: Building websites … a little differently

A few months ago, Chris Paplinski, Nathan Charrois, Kaushal Inna, Andre Brokman, Kelsie Rose and I, Dion Moult, gathered to create a company. Today, we would like to present to the world: SevenStrokes.

Sevenstrokes web development

SevenStrokes is a web development company but with a few key differences.

  1. Firstly, we see websites as a service, not a product. We don’t just build a website, we treat it as part of your larger corporate strategy.
  2. We build systems that mirror your day-to-day domain issues. We use a combination of behavior-driven development and code architecture that employs the same daily language that you do. This ensures our system makes sense not just in the software world, but in real life, and thus always move a step towards achieving your corporate goals.
  3. We follow many aspects of the open-source business model, ensuring that we assign the most motivated staff that want your site to succeed just as much as you do, and that full inspection guarantees your system integrity.
  4. We push for the latest industry standards and keep on pushing, even after launch. Websites are usually short-lived, but we’re changing that with a system architecture that maximises long-term life.

So what are you waiting for? Do you need a website built? Do you need somebody to help spearhead your latest online initiative? Check out SevenStrokes: Building websites … a little differently

sevenstrokes unique web design

Creative

My latest architectural renders

Now that I’ve finished my second year of architecture, I’ve started to develop a much faster workflow when it comes to churning out architectural renders. From being asked to make animations within really tight schedules, to having to produce presentation-ready drawings in a short period of time, being able to do the graphical equivalent of rapid development in programming was very important to me. Fortunately, unlike programming where the product has a 20% build time and 80% maintenance time, most graphics are present and discard.

I have started to collect some of my renders together and release them on WIPUP. Some of the better ones were shared on the Blenderartists forums, as naturally they were produced using Blender.

Wheelchair house - Blender architectural visualisation

I was happy to hear that the above render was featured as a render on the week on Blendernews :) Although Blendernews is hardly an official news source for Blender, it was quite nice.

You can view the full set of renders below (click to go to the WIP update and view full-res images). My personal favourite is the forest one :) I find it makes a nice phone wallpaper.

Wheelchair house - blender architectural visualisation

A lift to make my world - blender architectural visualisation

Lift off into the clouds - blender architectural visualisation

Schematics - blender architectural visualisation

I am releasing the four above renders under CC-by. A link to thinkMoult along with my name will suffice.

Creative

Game of Homes opening sequence animation

This week, and to be more specific, yesterday, today, and tomorrow, the Architecture Revue Club from the University of Sydney will present Game of Homes, the 2012 annual performance.

Architecture revue Game of Homes official poster

As mentioned before, apart from musical director, I also did some AV stuff – such as this opening sequence. Check it out :)

It was essentially a one-man rush job. Blender was used for most of it, except for adding the credit names, which was done in Adobe Premiere. The few image textures that were used were done in the GIMP. Total time taken including rendering was ~4 days.

Rendering was done with Blender Internal, with an average of ~20 seconds per frame at some silly arbitrary resolution ~1100x~500px. BI was the obvious choice for speed. Blender VSE was used for sequencing and sound splicing.

The workflow was a little odd – essentially post processing was done first, followed by basic materials, and then camera animation. Based on the camera animation modelling and material tweaking would be done as necessary.

Comments welcome :)

Technical

GitList – a great way to browse Git repos on your personal server.

Git is a very popular version control system or source control management application. It’s incredibly easy to use, really lightweight, and has a hassle-free workflow. Even when I’m working on projects without other contributors, I often still commit the code to a git repository just for its benefits.

If you want to run a git server somewhere, you have a few choices, such as the social GitHub, Gitorious, or doing a custom install on your own server with something like Gitolite + Gitweb. When it comes to non open-source applications, your choices become slightly more limited. Do you fork out (no pun intended) the cash for Github’s high-quality visualisation but pricey hosting schemes, battle with dependency hell on Gitorious’ massive requirements list, or play sysadmin as you cook up a home-brew repo with access rules and security considerations?

Admittedly the access rule bit is getting better with projects like Gitolite, but one thing that has always annoyed me was how aesthetically ugly and awkward it was to browse the repos and in general move around the code. Luckily I’ve now discovered GitList.

GitList is as of writing still a very immature project (seems to have started a mere 2 months ago) and I have no idea how it fares against massively complex repositories, but it’s set up in under a minute, and takes a few hints from some of GitHub’s better UI decisions.

Give it a spin!

Life & much, much more

GetKDE.org – the workspace, and what’s going on.

Some updates. Both for newcomers to GetKDE.org and those who have seen this project before, see the homepage, the explore page, and then finally, the page I’m writing about.

Homepage has been updated too:

And explore page updated too.

Hope you like it.

I have to apologise for only having the time to work on this very sporadically. Next in the to-do list is the apps page.

Uncategorized

GetKDE.org progress – Discover KDE!

For the impatient, here is a link to the new page, and for those who missed the last post, here is a link to the GetKDE.org homepage. Finally, here is a screenshot of the newly added Explore page:

The homepage of GetKDE is essentially a hub with a teaser. The site structure itself is split into three sections, Software, Community, and Development.

Those completely new to everything KDE will start off in the Software section, via clicking the “Explore how KDE benefits me” option.

It is then important to market only what is relevant to the user – for KDE, this depends a lot on what device you have. KDE’s objective isn’t to convert users to Linux, however happy that makes our inner penguin, but instead to help people enjoy and make the most of their computing experience with KDE Software.

As a result, this is the page they will see. It’s objective is to make it clear what components make up a computer, which are Apps, Workspaces, and Framework. Different components will interest different people, and the availability of components are also limited depending on what the user is using. For example, Windows and Mac users won’t get a Workspace, but will get Apps and Framework. Mobile users get different Workspaces to non-mobile users. And so on.

The reason this initial segregation is so important is for several reasons:

  1. They are introduced to the branding jargon that KDE users, eg Apps, Workspaces, Framework and understand how it fits together
  2. This allows highly specific and targeted marketing in the next stage – no use comparing Kate to GEdit for a Windows user.
  3. Users understand the scope of KDE development that it isn’t just limited to desktops/laptops and are flexible to bend around what people use.

In other related news, the GetKDE.org homepage itself got a bit of a cleanup, which you can check out live via the link here, or in the below screenshot.

That’s it for this post! More to come!

For those particularly interested in this project, progress is tracked via its WIPUP project space.

Uncategorized

WIPUP 11.11.11 released!

WIPUP.org is an open-source web application built for one reason: to show the world what you’re working on.

If you’re impatient, click here to check out the fresh WIPUP.org.

I’m very happy to announce version 11.11.11 being released today. It’s the first non-alpha/beta release, which means that I’m confident that it does what it’s meant to do, and so it’s ripe for the public to use it.

This release’s splash image is created courtesy of Erik Kylen from Blackmaze.

For those who are interested, you can read the release notes here which describe all the new stuff in this release.

I’m very curious to see where WIPUP goes to from here. Being the first non-testing release, it satisfies all of my personal needs for the system. There really isn’t anything else it needs to do. The only ones I can think of is the ability to mark projects as complete, or to download archives of projects, but both of those aren’t necessities.

It’s really been a joy developing WIPUP. I hope other people enjoy using it just as much as I do.

Enjoy the update, and I’m off for the day :)

Uncategorized

WIPUP 22.04.11b released!

WIPUP is a way for you to share your long-term projects and discover the passions of others.

Easter has started, and lots of interesting things are cropping up here and there – one of which is that WIPUP has seen a much-needed update. The last time this happened was way back in November, which is a stunning 5 months ago (yes, that’s almost half a year – doesn’t time fly?).

(Yes, it’s such a cliched and overdone splash screen – click it to read the release notes)

This release, unfortunately, isn’t a big one either. There weren’t any new features added at all, but instead consisted simply of visual polishing here and there to make it a more pleasant system to use and look at.

The reason for such a minor release after all this time is that WIPUP is maturing. WIPUP is aimed at a rather niche group – people who firstly are working on a moderate-to-long-term project. That already cuts out the average joe on the street. Then, that project must be something they are able to, and want to, share. That cuts out the majority of company-funded or commercial projects, as well as every person who is uncomfortable with showing work they think is “bad” and “incomplete”. WIPUP continues to slice away at the market by aiming at those who are comfortable with using a third-party system to host it, rather than their own setup, even though WIPUP is open-source and has an API.

For this niche, it satisfies all of its needs.

This niche – of which the target audience is (rather selfishly) myself.

Yes. You read that right. WIPUP was created for myself. If other people find it useful, then that’s great for them too. But all in all, I created this tool because I needed it. The idea for WIPUP was born by my desire to document the ThoughtScore project – my pet movie – in a more sane way than an increasingly large thread on the BlenderArtists forums. Has it succeeded? Yes. Is it still in use for that? Yes. It’s also used by me to document my work on the KDE.org redesign. It’s also used on my localhost to organise my scraps of work I produce for my architecture course, which will then be compiled into my portfolio.

What is my ambition?

Despite its selfish beginnings, there is a reason WIPUP was made open-source and then added the Open Collaboration Services API. This is because I have an ambition for WIPUP. I want it to be used by the end-users of open-source projects.

People are fascinating. The people who indulge in open-source are even more fascinating, because the average person is passionate enough about a cause like the open-source movement to turn it into their computing life, which is a large element of our lives nowadays. From that, most of you are working on really interesting projects on the side – learning a language, writing a book, composing a song, making a movie. I want WIPUP to exhibit the weird and wonderful of your creations – to emphasise and expose open-source’s greatest strength: the community. I’ve realised that when I threw myself in the wacky world of open-source that I discovered a goldmine of knowledge and passion. I want everybody to realise that too – and be proud of it.

What is your ambition?

Uncategorized

The kde-www war: part 4

A brief history lesson. The introduction identifies KDE.org as a wall of text with a pretty frame and explains why there is a problem. Part 1 sets conversion goals on our two target markets. Part 2 restructures the sitemap to make sense. Part 3 dabbles a bit on concluding the design criteria for the homepage, and reveals the homepage.

In this part, we’re going to take a step back to the release of the homepage design from part 3, and talk a little bit about the science and justifications behind the design. Firstly, a quick note that the design was tweaked slightly after part 3, as the tweaked version can be viewed here.

All webdesigns are made up of three vital elements that work together to make a successful design. Keep in mind that these elements should be considered not just in webdesign but also by application developers.

Notice how the criteria outlined in part 3 addressed each of those 3 concerns directly. Now let’s took at how we’ve satisfied the criteria.

Let’s just briefly skim through brand – we have addressed this by emphasizing KDE’s visual identity:

  • The design has blue and white as its primary colours, which are KDE’s primary and secondary colours respectively.
  • Every single environmental visual element (ie – headers, footers, and non-content elements) on the page used visual styles from Plasma’s Air and Oxygen styles.
  • Every single functional visual elements (ie- the content element) on the page used KWin’s Air widget style.
  • All graphical symbology use Oxygen icons, especially to thematically link together concepts across the design.
  • The radical design choice of KDE’s first non-bordered layout corresponds to KDE’s philosophies of “Experience Freedom”, “Be Free” and “Breathe”.
  • The lightened fonts after tweaking now also corresponds to KDE’s aforementioned philosophies.
  • The iconic Kabel font is used for the KDE logo.

Now we can ask ourselves when we ask “What does KDE look like?“, as soon as we lay our eyes on this design, we can firmly answer “Yes. Of course! That is KDE!

Now let’s look at the content. Content should always come before function, as it sets the scene and helps our users understand what they should expect from the page. We start by giving the most important bite-sized factoids: what is new and awesome, for our existing users audience, and what is this KDE anyway? for our new users audience. We do this by giving a large banner to represent the latest news for the existing users, as well as a large, digestible (free from jargon) definition for the new users. What is more important is if we study why we placed the elements exactly where they are. Let’s study the eye-movements as a user scans the webpage – red being spending more time looking at it, and green being quick glances:

Firstly, let’s just jump back to reality. It is important to realise that people do not scan a page top-down, they glance top-down, then return to the top then proceed to zig-zag occasionally. This means that some people might jump from 2-5, instead of 2-3 (ie- visually oriented people). Also, people do not analyse in detail whilst glancing through – they search for vital factoids and discard everything else. These have good and bad implications:

The good – this pattern and step-by-step process to grasp interest is aligned with the goals/roadmap we outlined in part 1 of this series.

The bad – we are heavily relying on the effectiveness of elements 2 and 3 to provide the vital factoids.  These must grasp interest. Element 3 will target the text-orientated people, who will hopefully see:

Notice how we have successfully separated people from product, and are marketing KDE as a community. The user is immediately not looking at “Hey, download powerful software and a new desktop interface!” (akin to “hey, get free animated emoticons now!“), but instead looking at “Hey, I’m the most important person here, and something is happening which involves me. Something to do with powerful software and beautiful desktops, which are lovely keywords which everybody can say ‘yes I want it’ to. What am I missing out on?“. This will bring them to element 5 – to Discover KDE, and start their journey.

For the picture-oriented people, element 2 is our vital grasper. As the design stands now, it is obvious that the eye lingers longer over the left side of the image (put the more beautiful part of the image there, then?) but otherwise the image is completely unenticing and uninformative. It shows a rotated desktop screenshot and that’s it. This is bad. This should be changed. The blurb is useful though, as it not only says there is some sort of release with a really long fancy name (Software Compilation, anybody? 6 syllables?), but also zeroes into the single key features why it is so awesome. However there is clearly work to be done on defining a visual style for the header image.

Finally, let’s look at the function. What the user will want to do on the webpage.

This is a little tricky, as the homepage is a hub, not a content deliverer. It’s function is as a signpost and not an infographic. For this the design’s function is to direct users to the right page, and allow the user to understand the structure of the webpage, so that he knows exactly what to do next and how things are categorised.

We’ve already done a bit of this by piquing new users’ interests with the blurb and having their eye naturally fall onto the “Discover KDE” part. However let’s take this a step further by thematically linking certain keywords on the page through sequencing them in the same way, as well as using visual icons to mark their similarities. This can be seen below:

This helps the user understand the site’s structure, or three main “sections”, and emphasises their importance through repeating the sequence again and again. Thus the “About” and “Give Back” sections are already given less priority as expected given our goals outlined in part 1 as well as our restructuring labels in part 2, without entirely ignoring them.

This also performs a very important function of all design: the ability to give the user the impression that they have freedom to choose a path, that they are in control, but subliminally guiding them through a sequenced, optimum path. The user is presented with – yes – the entire sitemap. They can read through every single link and understand exactly what the page contains, but are still inclined to follow the three set paths for them. Also shown in the tweaked layout is that only the Community column is highlighted whereas other sections are greyed out – this will not be so on the homepage (all will be greyed out) but this helps users understand which section they belong in (other colour visual indicators will be in play later). This achieves the structural segregation that the original redesign was aiming for, without being too intrusive or clunky.

I’m going to stop here. Those were the main points I wanted to talk about to help raise awareness of the importance of design. I hope you enjoyed this series, and I’ve submitted it as a GSoC proposal, so if all goes well, we can start seeing things live soon!

Uncategorized

The kde-www war: part 3

Just a quick history lesson. In the introductory post we highlighted several tell-tale symptoms that KDE.org had a very big usability and design problem. In part 1 of the war, we discussed a back-to-basics question what are we trying to communicate, what are we trying to achieve, and outlined goals for our various target audiences. In part 2 of the war, we started to achieve the goals outlined in part 1 via restructuring the pages and site map in order to distinctly separate between the KDE: The Community and KDE: Software. In this part, we’re going to focus on the home page – the central entrance hub for new members, and how we can use design elements to achieve part 1’s goals, and still cover all of the masses of content that KDE has to showcase in a streamlined manner as in part 2, and even reenforce KDE’s identity in the process.

Now that we know what we want to achieve and the structure of KDE.org, we can start thinking about the layout of the home page. The home page is – obviously – the most important page of the website. It acts as a central hub to link together everything that KDE has to showcase, it acts as the first stop for information for KDE newcomers, it acts as a publicity and news broadcast, it is the link between the various KDE sub-communities and communication channels, and most importantly, in today’s web-centric world, it defines KDE’s visual identity. After much debate, it had to satisfy the following criteria:

  • Embodies KDE’s visual style and branding – ie, the Oxygen, Air, Breathe, and Be Free. It should be a design that when you see it, you say “that looks like KDE”
  • It had to make people get KDE. To understand KDE not as a product and a software suite, but as a community. We want them to share with KDE’s passion. KDE has grown further than just a collection of apps and a desktop interface, and thus we can no longer be so shallow as to market it as such. We must follow our rebranding efforts to separate people from product, and emphasize open-source’s greatest strength – the community. We are a community, not a company. We create passion, not products.
  • It had to showcase our latest and greatest event/release/activities. However we need to showcase it in a way that people understand. Saying “Akademy 2011 is here!” alone doesn’t mean anything. Nor does “KDE 4.6 released – experience freedom”. Let’s change that to have meaning.
  • Clear segmentation between Software, Community and Development sections – to succeed where the current design fails. Let’s not make it a maze.
  • Absolute directions towards the goals we outlined – Goal 1: to become a user of KDE. Goal 2: Say hi and tell us what’s up. Goal 3: would you like to scratch your own itch?
  • Allow the user to understand how the site is structured and what exists without overwhelming them.

For this part of the war, I’m not going to write a wall of text. I’m just going to throw out the design right now, and let it speak for itself.


More to come. Let’s make a change.

Life & much, much more

WIPUP 24.11.10b released!

For the uninitiated, WIPUP is a way to share, critique, and track projects. Or more specifically, works-in-progresses. Us in the open-source community are constantly working on things, and being open-source, we like to share them.

WIPUP was specifically built and tailored towards sharing works-in-progresses – ranging from a twitter-like update, to a fully formatted document complete with images, videos, and pastebin support. With WIPUP’s new FreeDesktop approved OCS (open collaboration services) REST API, it’s one step closer to turning the advanced Linux desktop into a Social Desktop.

Imagine being able to share what you’re working on immediately from KSnapshot, or finding a "Subscribe to this project" or "Track this developer" in Amarok’s About dialog.

It’s completely free to use and (of course) its entire codebase is open-source.

Check out the release notes, and then try it out if you haven’t already!

Life & much, much more

WIPUP 23.09.10b released!

Yep, WIPUP, the lightweight, open-source way to share your works-in-progresses just got a lovely update today. It’s a minor update but minor updates are needed sometimes. Check it out here, and read the release notes.

The charming splash screen above was done by me on The GIMP. If enough people like it (just drop me a comment/mail/whatever) I will probably create a tutorial for some of it.