What open content Unicode fonts can be recommended?

We now have quite a good variety of free software Unicode fonts available, as can be seen from the Wikipedia free Unicode fonts overview. With that comes the difficulty to choose. So, here is my analysis in the context of searching a complete set of great free fonts for writing a thesis document:

My recommended fonts

  • DejaVu Sans. Its web home is dejavu-fonts.org. Recommended to be used as the main font for the document (except you insist on a seirf font). Because, this font has great Unicode coverage and free software licencing, and as a unique feature among comparable fonts like FreeSans, it comes with  a “Light” variant. What is really missing for now is a “Light Condended” variant, however.
  • Liberation Sans Narrow. Even more condensed than Liberation Sans, which is already more condensed than DejaVu Sans but comparable to DejaVu Sans Condensed. So it can be used as a “really condensed” font in replacement of a missing “DejaVu Sans Light Condended”, increasing the possibilities of document formatting. The downside is, this font lacks good Unicode coverage, so it can only be used for normal Latin text, not formulae etc..
  • FreeSerif. A good-looking, free software licenced serif font with huge Unicode coverage.

My not-so-recommended fonts

In alphanumeric order.

  •  CM-Super Sans. Like Modern Sans, this is also a PostScript Type1 conversion from the TeX Computer Modern font. And therefore, it is really good-looking. However, if any of these TeX fonts would be used, Latin Modern Sans would be preferrable.
    Because its Ubuntu package lmodern says in the description: “Their size is reasonable and they are usually considered to be of good quality (compared to cm-super, for instance; however, cm-super contains font families that have no equivalent in this package; additionally, there are character sets that are supported by cm-super and not by the Latin Modern fonts).” In addition, Wikipedia confirms this: “Other PostScript-based replacements exist such as BaKoMa, CM-super, or Latin Modern, instead of the original METAFONT-based Computer Modern. The Latin Modern implementation, maintained by Bogusław Jackowski and Janusz M. Nowacki, is now standard in the TeX community and was made through a METAFONT/MetaPost derivative called METATYPE1.” [source]. An advantage over the Latin Modern fonts is however that they contain fonts for all font sizes [source].
    Corresponding Ubuntu packages: cm-super, cm-super-x11. But for some reason, this does not make the sans serif font available to X11, or maybe not even install it.
  • DejaVu Serif. For my taste, this font has a very bad look for a serif font.
  • FreeSans. Comparable in good look to DejaVu Sans; FreeSans is just a bit more condensed. Comparable Unicode coverage as DejaVu Sans. However, this font lacks a “Light” variant.
  • Latin Modern Sans. This is a PostScript Type1 conversion of the LaTeX Computer Modern font. As it’s coming from TeX, it’s definitely the best-looking free software licenced sans serif font [text examples]. However, it is not recommended here because it lacks sufficient Unicode coverage.
    • Corresponding font names in LibreOffice: LMSans, LMSansDemiCond, LMSansQuot.
    • Corresponding Ubuntu package: lmodern.
  • Liberation Sans. This font is a bit more condensed than DejaVu Sans. Compared to DejaVu Sans, it misses the great Unicode coverage and also a “Light” typeface, which is the reason it was not recommended here. It has larger relative x-height than DejaVu Sans, which is said to make it less useful for large portions of text [source].
  • Liberation Serif. Good-looking, screen readable serif font. Already using another font from this family is one reason more to use this serif font instead of adding a font from a third family. However, this font lacks big enough Unicode coverage, and cannot be used for that reason.
  • Linux Libertine G. It is a way better looking serif font than DejaVu Serif, includes considerable Unicode support, but is less readable than Liberation Serif in small font sizes.
  • Lucida Sans. This is not recommended here because it is not available under free licences; it is just included gratis with Java. What’s interesting however is the Lucida Math font for formulae.
  • Nimbus Sans. Not recommedned to be used as teh default font because of lacking Unicode support and lack of a “Light” font weight in the free software licenced variant [source].

Technical note: If you are on Linux, do not check Unicode coverage of fonts with gucharmap, as it will simply take over non-available symbols from fonts that have them. Use the LibreOffice “special character” table instead.

How to back up a complete hard disk to compact size?

This is my current (2011-09) technique to create a compressed image of a complete hard disk and to restore it later. It works both for disks and partitions wth an operating system and with just data on it (it does not care at all what is on the disk). You should be able to restore it to any hard disk of at least the same size.

Technique using ntfsclone

ntfsclone has the advantage that it can supply zeroes for unused sectors on the fly, eliminating one step of the dd based process (see below).

  1. Start from a Linux live CD, such as Ubuntu, and execute this command (naming your hard disk to backup, here /dev/sda is used):
    sudo ntfsclone -o - /dev/sda | bzip2 -c > Backup.yyyy-mm-dd.sda.raw.bz2
  2. Note that you can also back up just individual partitions. But then, you should back up the MBR and boot loader separately, and the partition table also in text format. For that, see:
  3. For uncompressing later, use a command like this:
    bunzip2 -c Backup.yyyy-mm-dd.sda.raw.bz2 | ntfsclone --overwrite /dev/sda -

Technique using dd and gzip

This involves an additional step for manually zero-ing unused disk space. Also, using gzip instead of bzip2 yields less effective compression, but is faster. You can however supply bzip2, bzcat and bunzip2 for every call to gzip, zcat or gunzip; their parameter usage is compatible for our purposes.

  1. To achieve good compression ratios, it is advisable to fill unused space of the disk to back up with zeroes (or ones or any other kind of redundancy). Please do not do that when trying to rescue defective disks and partitions, as you would lose potentially valuable data in unallocated space on your original disk. There are several techniques for that:
    • In any kind of file system, when using Linux, you could create a file that is as large as possible, consisting only of zeroes, and after that delete it again:
      dd if=/dev/zero of=fillfile.raw bs=8M; rm fillfile.raw;
    • If it’s about a NTFS partition and you can use that in Windows, you could use Microsoft’s SDelete. However, when trying it out in 2008 by using “sdelete -c -p 1 c”, it gave me this error message: “Cannot clean free space for UNC drive.”.
    • Again, if it’s about an NTFS partition in Windows, you can use Eraser. In version 5, you could configure an own pattern (just zeroes) to overwrite unused disk space. In version 6.0.8 at least, this is no longer immediately possible. The developer advises to use the “HMG IS5 Baseline” for that, as it would do just that task of overwriting once with zeroes [source]; but in my test, this failed (no meaningful compression ratio afterwards). You can still create an own erasure method according to page 15 of the user manual though [source]. Also note, to be able to erase unused disk space when running it in Windows Vista, you need to run Eraser as Administrator user. For that, close all Eraser instances (no Eraser tray icon must be left!), right-click the Eraser desktop symbol and click “Run as Administrator …” [source].
  2. Now connect the hard disk to back up as a second or external USB hard disk to a Linux system, boot its installed Linux system, or boot into a Linux Live CD such as aUbuntu.
  3. To back up the hard disk to a gzip-compressed image, use this command (naming your hard disk, here /dev/sda):
    dd if=/dev/sda | gzip -c > Backup.yyyy-mm-dd.sda.dd.gz

    On a 1.3 GHz Pentium 4 processor, this produced a throughput of between 3 MiB/s of hard disk raw data (at the start of the hard disk where compression was difficult) and 10 MiB/s (at the end of the hard disk where the all-zero area was located).

  4. Using “kill -USR1 <pid>”, supplying the process ID of the dd process, you can look at the progress of the command.

  5. For restoring from the compressed backup, you would do this:
    sudo zcat Backup.yyyy-mm-dd.sda.dd.gz | dd of=/dev/sda

    Or if you want a more exact pendant to the compress command, use this:

    sudo dd if=Backup.yyyy-mm-dd.sda.dd.gz | zcat | dd of=/dev/sda
  6. Using the “seek” option of dd, or using cat, it should be possible to split the created file into several ones (for example, to burn them to several DVDs). However, I did not try that out. What definitely works is burning one backup file to a DVD-ROM (e.g. a 8 GB double layer DVD-R). Previously, there were some fixable problems with files >4 GiB on DVD.

Non-working alternatives

The original problem had been rather to back up a complete hard disk using Windows on a  ThinkPad T40. There were two options availale using IBM software, but both did not work (so the above method was used instead):

  • The software “ThinkVantage Rescue and Recovery” should normally work as a solution. However, version 4.1 of it refused to install on a ThinkPad T40 because it thought the operating system is Windows Vista rather than XP.
  • Alternatively, “IBM Rapid Restore Ultra” from “Access IBM” should be a possible solution. Unfortunately, this is not possible either, because: to create the backup partition, a floppy drive is needed and it was not possible (even not by reinstalling that application) to select the option that would make a USB drive sufficient for creating the backup.

What time banking software can be recommended?

Background: alternative economy concepts

A financial-economic crisis (like this or this or this) makes us think what’s wrong with our economic systems, and search for alternatives. For example, one would search for grassroots ways to organize mutual service and exchange of goods without using legal tender, as the latter can be a scarce resource due to “personal deflation”, esp. in an economic crisis (that is, by being separated from any high-capacity money source of the society, e.g. by being self-employed and having only “poor” customers).

Interestingly, many alternative economic concepts have been developed long ago at concept level, but failed to receive public attention or achieve widespread application. For example, in the area of trade mechanisms and finance, I found several concepts that run for being a basis of an alternative economy:

  • LETS, the Local Exchange Trading Systems. Effectively, these are complementary currency systems on a local scale, where members exchange goods and services for LETS credit points. All members start with zero balance, and go below that by paying with credit points; which means, they have the role of a bank that does bank money creation. The value of goods and services is something to be agreed by the members, that is, normal market mechanisms of supply and demand apply. In principle, all LETS systems are confined to one city or small area (see e.g. this LETS list from 2002), as the credits are backed by just group trust (omnidirectional trust from one to all other LETS group members). This is, in my view, their biggest shortcoming. How do you transfer your LETS credits when you move, and even worse, how do you use LETS if you have a nomadic lifestyle? Also, the island-type of LETS, with no standardized infrastructure between them, severely limits its public visibility as one movement or system.
  • Time-based currency (see also time banking). Also called “time dollars”. While the bookkeeping is very similar to LETS, the difference is that noarbitrary unit (or a unit aligned to legal tender) is used to measure service contributions, but the man-hour of work time. This can, but needs not, be used to build egalitarian systems, where everybody’s contributions are valued equally. For an interesting early experiment from 1827, read about the Cincinnati Time Store. Currently, timebanks are normally local organizations just like LETS [see an international list of time banks].
  • Barter platforms. By these, I mean systems that are based on direct barter between two parties, or circular barter between three or more parties. But always so that a deal happens only when all parties at the same time have something that they can offer that another party in this deal wants. That is, they work without intermediate units of accounting, which would eliminate the need that (1) supply and demand are matched for every party at the same time and (2) somebody can only be part of a deal by both demanding and supplying something, as none of these can be replaced with currency. These severe limitations of direct barter make these platforms look quite unusable, esp. before reaching a critical mass of offers. Examples of such systems include the German portal Bambali.
  • Scrip. Alternative currency by simply writing some numbers on some paper.
  • Mutualism. An economic theory that seeks to value goods just by the amount of labour / resources needed to produce them, thus eliminating the concept of capitalist “gain” (price above cost) altogether.
  • And there is a list with many more articles on alternative monetary systems.

Interestingly, the proposal for a time-based currency even made it into a United Nations document (but note that the document was compiled by members of NGO’s when meeting for the Millenium Forum, so is no official UN resolution or anything):

“The Forum urges [...] [g]overnments [...] [t]o make serious commitments to restructure the global financial architecture based on principles of equity, transparency, accountability and democracy, and to balance, with the participation of civil society organizations, the monetary means to favour human endeavour and ecology, such as an alternative time-based currency.” [We the Peoples Millennium Forum Declaration and Agenda for Action: Strengthening the United Nations for the twenty-first century; United Nations document A/54/959,  adopted by the Millennium Forum on 26 May 2000; section "C. Facing the challenge of globalization: equity, justice and diversity"; this very section quoted here was contributed by John Turmel]

Choosing a time banking service or software

My interest in alternative economy is both at the theoretical and pragmatic level. On the pragmatic side, I desperately need a system to track neighborly help; because when doing that in larger-than-usual amount (say, 50 hours per month and more) and without payment of course, you better track what time you invest and what you get in return or you might eventually end up poor and exhausted.

So what I need is a time banking system. My detailed requirements, in order of importance:

  • Non-local. Not restricted to any local area, neither formally nor by informal expectations or average location of members.
  • Useful for a personal global network. As I will lead a nomadic lifestyle, the system should be useful within a global network of friends and acquaintances. There is no need that the system allows trade with all members of existing alternative currency systems, but that would be great of course. Trading with personal acquaintances is enough.
  • Modern UI. I simply can’t bear with web-sites coming with that pre-2000 look …
  • No fees. Transaction or membership fees are simply nonsense in an age of software and automation, where web-based services of similar complexity are all free.
  • No-barrier registration. No requirement for an interview, for subscribing and sending in stuff by snail mail. Immediate login after registration must be possible. Pseudonymous registration must be available.
  • Open source software. When installing own software, it should be free. When using a webservice, it should ideally be based on free software, too.
  • Well-known programming language. I’m happy with Java and PHP and also Ruby, as this allows me to modify the software efficiently when necessary, and to better diagnose problems.
  • Low maintenance. So the optimum solution would be using a web service; hosting software on an own server is possible but can be cumbersome to keep up.

Here is a short overview of the projects I found, with my evaluation. Note that I just looked into descriptions and demo versions mostly, so do not consider this my last word on this. By adequacy for the above requirements:

  1. Global Groups Exchange at CES. This is the only international and time-based exchange at the Community Exchange System. Seems like the ideal choice among the CES alternatives and the only one.
  2. Own time banking system at CommunityForge. Their “default hosted solution” is offered for free.
  3. Registering an own CES exchange. The Community Exchange System (see also in German Wikipedia) is a unique global network where local alternative currency systems like LETS and time banks can join. It provides them with a web based accounting environment, and also allows trading between the different groups (which all use their own currency). So the shortcoming of LETS and time banks of being “just local” is remedied that way! Registering an own group involves some administration efforts for that “own” group, but also allows more control and customization.
  4. Registering an own time bank at Tauschen ohne Geld. It seems to be possible to create a group there that uses work time as the unit of currency. However, the system is not international (German domain, only member groups from Germany, Austria, Switzerland). Also, it is not clear so far how trade between the individual groups works; it is supposed to use the Ressourcen-Tauschring (RTR) in some way. But like CES, Tauschen ohne Geld provides an e-banking environment to members. There seem to be no fees.
  5. CommunityForge on own server. It’s free and open source. Or to integrate the same time-banking and LETS code into an own Drupal site, install the Community Accounting and Offers & Wants Drupal modules.
  6. Rivulet on own server. Ripple is a web-of-trust extension of the LETS system, avoiding the group trust necessity that keeps LETSs local. Rivulet is a Ripple server [source] written in Ruby, while the Ripple reference implementation RippleSite is based on Python [source]. RippleSite so far offers a quite simplistic UI, but Rivulet is said to support AJAX (but I did not test the features provided in the UI so far). So in all, I’d like to check Rivulet as my favorite Ripple implementation.
  7. OSCurrency on own server. The OSCurrency project is a Ruby-based implementation of the OpenTransact protocol [source], specifically targeted at building a timebank. Example and demo sites etc. can be found on the OSCurrency website.
  8. Cyclos on own server. Cyclos is an awesome, free and open source (!) software specially made for alternative currency banking. LETS, timebanks etc. can all be provided with a Cyclos installation, which acts as a website providing a central e-banking environment to all members. The project is very rich in features and seems to be the most mature software product in the area of alternative currencies as of 2011-08. It’s written in Java and runs as a Tomcat container, so installing can give you some trouble esp. if you already have a Tomcat with some web applications running. Be sure to check the Cyclos installation instructions.
  9. RipplePay account. Ripple is a web-of-trust extension of the LETS system, avoiding the group trust necessity that keeps LETSs local. RipplePay is the portal supported by the reference Ripple implementation, RippleSite [source]. While this portal has no vibrant community yet, it could still be used together with friends if one targets trading with them only anyway. However, RipplePay’s units of currency are bound to USD parity (while of course not needing real dollars to make payments). This makes orientation simpler, but would require a hack like an internal “15 USD = 1 hour” agreement to using it for time banking. This could of course be fixed easily when installing RipplePay on ones own server; but then again, I would prefer Rivulet, see above.
  10. Joining favabank.com.  Favabank is not exactly time banking, but a more general LETS including goods and time-based services, using the “fava” currency. However it is not restricted to some location as most LETSs. Usability looks good, but offers are few as of 2012-04.
  11. Registering an own PicoMoney currency.  PicoMoney acts as a service provider that allows this, even for free. However, when issuing a time-based currency, the PicoMoney seems unfit to operate a LETS-type exchange network: there is only one issuer per currency, where issuing means, handing out some of the currency as an IOU (“I owe you”) statement in return for received services. This would mean that, to establish a network, everybody has to hand out an own type of currency that represents the time of just this individual. This would be still tolerable if PicoMoney would allow free conversion between these currencies, but this seems to be impossible in its current state. Note that PicoMoney provides an implementation of the OpenTransact protocol [source].
  12. Joining zeitbank.net. They seem to accept members without respect to their current location, but their activities seem centered around Munich. Also, the site is only available in German. Also, they require a membership fee of 36 EUR for an individual, per year.
  13. Karmagora. A great-looking global time-banking system. The only reason it is last in this list is, it’s still in private beta as of 2011-08.

Other alternative economy projects

That is, those I found to be interesting, but which are not directly usable or related to time banking. In no particular order:

How to write a thesis in FreeMind?

Note: This is a work in progress as it documents the experiences I currently make while writing the paper. So it might not present the optimum solutions yet.

Is FreeMind adequate for writing a thesis?

My last thesis was written in OpenOffice.org (now LibreOffice), and the one feature I really missed there was a comfortable way of moving notes, snippets and other parts of text around. Because getting a thesis done is, for a good part, just that: ordering and integrating notes and snippets that you wrote whenever you had an idea or insight.

Since that thesis, I became a FreeMind enthusiast, using it for nearly all my personal information management. It’s truly great in this “ordering notes” task because three aspects come together: it’s speedy enough in displaying and dragging even large mindmaps; it provides good optical clues for quick visual navigation in a huge hierarchical mindmap, making it mentally less strenuous to work with it (unlike scrolling text in OOo or using OOo outline mode); it provides great keyboard shortcuts for quick navigation and reordering of nodes in the hierarchy.

Looking for alternative mindmapping software, I found Semantik, a tool developed with just this purpose in mind: a mindmapper to write thesis-style papers. However, I found its current (as of 2011-08) version in several aspects more limited than FreeMind, while finding that FreeMind can be used in a way that comfortably emulates the more thesis-writing-specific features of Semantik.

Discussion on the toolbox

  • FreeMind. For sorting and writing the complete text part.
    • Configure your FreeMind key bindings for “Note Edit Switch” (I have F8) and “Show / Hide Note Window” (I have F7). Without, using notes instead of placing all content in the tree nodes is quite uncomfortable. But when writing a thesis, you might want to try putting the actual texts into notes, and having only the introduction or header in the tree nodes. The existence of a note is indicated by an icon in a node, and the note’s text is also shown in the node’s tooltip.
  • LibreOffice Writer. For finishing the formatting and for PDF generation.
  • Zotero. This is my current recommendation for a reference management tool for LibreOffice, see my evaluation of reference managers for LibreOffice. Of course you could try to use FreeMind itself for reference management, by treating references as just another type of “thesis snippet” that you organize with FreeMind. Sounds like a clean generic solution, but FreeMind is no all-understanding knowledge management system. You need a specialized reference management software, or you would have much tedious manual formatting and data collect work to do in FreeMind. Also, collaborating on a common bibliography would be difficult with this approach.
  • Zotero plugin for LibreOffice.
  • Zotero plugin for FreeMind. This does not yet exist, but might be needed to use Zotero with FreeMind. If it’s necessary, it has to be developed. TODO: Find out about hacks how to integrate Zotero with FreeMind without such a plugin, maybe using the FreeMind scripting system.

Process

With this toolbox and configuration, the process of writing a thesis seems to look like this in the end:

  1. Create a “thesis” mindmap in FreeMind.
  2. Create an “inbox” node in that mindmap and collect all your ideas into that whenever you don’t have the time to find a more appropriate place for them.
  3. Create an initial table of contents by mapping it to a hierarchical node structure in your thesis mindmap.
  4. Add notes, move nodes and rework your table of contents hierarchy until the textual part of your thesis is done. At least until nearly all reordering is done. Finishing the wording can be done comfortably in LibreOffice, too.
  5. Unfold the mindmap so that all notes belonging to TOC headings are visible, but not more. Then export to ODF format – the visible nodes will become the headings there, and thus will be included into the TOC when you add that to the ODF document.
  6. Open the ODF document in LibreOffice and finish the formatting. TODO: This especially needs transforming existing formatting done in FreeMind to LibreOffice style-based formatting. How can this be done efficiently?
  7. Export the document in LibreOffice to PDF format.

Boom and bust of faith

I made some interesting observations of analogies between faith and economy. Of which we can learn – this time, not for economy, but for faith.

The boom and bust cycle of economy is based on mass psychology. The boom happens when everybody (for whatever reason) hope that the economy will improve, and subsequently invest and consume, which in turn makes their hope be fulfilled as a self-fulfilling prophecy. On the other side, the bust happens because of pessimistic expectations of the future, for whatever reason, well-founded or unfounded.

The interesting thing is when and why the boom tips over to become the bust, and vice versa. In my opinion, the transition from boom to bust happens when any substantial group that takes part in the economy has “hoped too much”. Now when they finally notice that their expectations have been unrealistic (and they probably lost much money that they invested into companies and ideas now not rewarded by the economic situation), they lose all hope. This is unreasonable, but understandable, as human beings are in practice not really guided by reason and logic. What is further unreasonable is that their lost hope spread to the other members of the economy like an epidemia, and the now prevalent expectation that the economy will get worse will let just that happen.

Now, isn’t it just the same in faith? Christians definitely have reasons to hope. But they also can start hoping for things that God did never promise to us. Like that all the sick will be healed during this time on planet Earth. Now when people see good things happen in God’s kingdom, like being part of a great church or having a great time with God, or seeing prayers answered in a row: then people might, inspired by this, start hoping for even better things. That were not promised though. So they inevitably get disillusioned (and the longer they maintained their false hope before that, by all cunny means of self-delusion and psychology, the harder the disillusioning will be). And like in the economy, these people will lose all hope. They fall in a depression, in the worst case even in a Great Depression. This affects their relationship to God, but even worse, it affects their Christian brothers and sisters, which might now also lose hope. That would not matter much if it would be just disillusioning as well, but the problem is, people tend to lose also a part of their justified hope in God, and it might also affect people who did not harbor false hopes. As, they might become desparate about the bad conditions in the Church, where it is possible that people do harbor false hopes and go uncorrected for long times until finally falling into despair.

The good news is, the bust is not the end. In economy, people finally get to their senses and say: we need to move on with life. Let’s use our last pennies and buy some food. And as everybody moves out and again buys the essentials for life for their last pennies, the demand is back on the market, and the economy starts to improve. And then, when people realize this, they can regain some hope, and the boom is back. (Hopefully they don’t get too much of that hope, to avoid the next bust; but that hope has never come true yet … .)

Likewise in faith: when you’re depressed, on the ground, lost your hope on God, you will finally get to your senses and think: Wait, at least the basics are true: Jesus is my saviour, and that’s great. Then you might pray, experience some answered prayers again, again visit your church.

And there, you might even infect others with your new-gained young hope. And this – everybody regaining hope in God – is called: revival.

How to speed up huge mindmaps in FreeMind?

It is reported that the largest known mindmap used in FreeMind was 11 MiB with 22 000 nodes, equivalent to 1500 pages of text [source]. I wonder how they did this, as FreeMind started to become really slow in reaction for some activities in one of my mindmaps that was 2 MiB with approx. 10 000 nodes. I was using FreeMind 0.9.0 RC6.

Symptoms

In my FreeMind performce problem, I had the following symtoms:

  • Sometimes, reaction times from 0.8-1.2 s when selecting a different node with the mouse; after such a long-delay selection, most nodes in vicinity could be selected without any noticable delay.
  • Regular latencies of 0.8-1.2 s when adding a note (by pressing “Enter”), and additional 0.8-1.2 s of latency before letters that are written into this new node appear on the screen. After that, one could write without a delay. If one would wait after adding a node until the caret starts to blink in the text field, one could then start typing in a way so that letters appear on the screen immediately, but the total latency would stay the same.
  • Of course, long latencies (perhaps 10-15 s) for special operations like “select all nodes” (Ctrl+A). But this was still tolerable, as it is rarely needed.

Solution

The only solution (rather, workaround) that I found so far is to reduce the number of nodes in your mindmap. This probably means to outsource some branches to external mindmaps and link to them from your central mindmap. Depending on what you store in your mindmap, it could also mean to combine nodes into one (like transforming the subnodes of a list-type node into items of a bulleted list in one HTML node).

If your mindmap only uses HTML nodes and you do not really need HTML as you employ no formattings, convert these HTML nodes to plain text nodes. In my informal tests, this improves performance by some 30%. Using a mindmap that not even contains icons and styles seems to further speed up things (maybe another 30%), but I did not thoroughly test this.

Discussion

From my informal tests it seems that FreeMind latency times in the above mentioned cases linearily depends on the number of nodes. Much text in the mindmap is not so much of a problem: I had a 2.8 MiB mindmap with much less nodes (estimate: 1500) and could still comfortably work; even though most of these nodes were HTML nodes … .

After splitting the problematic mindmap into two (one with 6000, one with 4000 nodes) I could work with sufficient comfort again. Inserting nodes and starting to type now took 0.4-0.6 s (in the cases where high latency is experienced). Selection was alwayss instantaneous.

Also, it seems to not influence FreeMind performance with large maps if your nodes are descendants of an encrypted node (like in my above mentioned 10 000 node mindmap) or not.

How to interpret SMART attribute data?

On Linux, you can use smartmontools to read the SMART data of a drive; see this good introduction to reading SMART data.

Note that, if your the device is behind a USB controller, you must not use the “-d ata” argument that you normally need to access SATA disks accessed with libata (as per “man smartctl”). If you add “-d ata”, the tool will complain “Smartctl: Device Read Identity Failed (not an ATA/ATAPI device)” and not read any health information or change any setting, even with “-T verypermissive”.

Interpreting SMART attributes in general

Every of the SMART attributes has several columns as shown by “smartctl -a <device>”:

  • ID: The ID number of the attribute, good for comparing with other lists like Wikipedia: S.M.A.R.T.: Known ATA S.M.A.R.T. attributes because the attribute names sometimes differ.
  • Name: The name of the SMART attribute.
  • Value: The current, normalized value of the attribute. Higher values are always better (except for temperature for hard disks of some manufacturers). The range is normally 0-100, for some attributes 0-255 (so that 100 resp. 255 is best, 0 is worst). There is no standard on how manufacturers convert their raw value to this normalized one: when the normalized value approaches threshold, it can do linearily, exponentially, logarithmically or any other way, meaning that a doubled normalized value does not necessarily mean “twice as good”.
  • Worst: The worst (normalized) value that this attribute had at any point of time where SMART was enabled. There seems to be no mechanism to reset current SMART attribute values, but this still makes sense as some SMART attributes, for some manufacturers, fluctuate over time so that keeping the worst one ever is meaningful.
  • Threshold: The threshold below which the normalized value will be considered “exceeding specifications”. If the attribute type is “Pre-fail”, this means that SMART thinks the hard disk is just before failure. This will “trigger” SMART: setting it from “SMART test passed” to “SMART impending failure” or similar status.
  • Type: The type of the attribute. Either “Pre-fail” for attributes that are said to indicate impending failure, or “Old_age” for attributes that just indicate wear and tear. Note that one and the same attribute can be classified as “Pre-fail” by one manufacturer or for one model and as “Old_age” by another or for another model. This is the case for example for attribute Seek_Error_Rate (ID 7), which is a widespread phenomenon on many disks and not considered critical by some manufacturers, but Seagate has it as “Pre-fail”.
  • Raw value: The current raw value that was converted to the normalized value above. smartctl shows all as decimal values, but some attribute values of some manufacturers cannot be reasonably interpreted that way (for the details: Wikipedia: S.M.A.R.T.: Known ATA S.M.A.R.T. attributes).

Reacting to SMART values

It is said in this good introduction to interpreting SMART values that a drive that starts getting bad sectors (attribute ID 5) or “pending” bad sectors (attribute ID 197; they most likely are bad, too) will usually be trash in 6 months or less. The only exception would be if this does not happen: that is, bad sector count increases, but then stays stable for a long time, like a year or more. For that reason, one normally needs a diagramming / journaling tool for SMART. Many admins will exchange the hard drive if it gets reallocated sectors (ID 5) or sectors “under investigation” (ID 197) [source].

For the more detailed meaning of the individual attributes, see again Wikipedia: S.M.A.R.T.: Known ATA S.M.A.R.T. attributes. Also, there are many peculiarities of SMART attribute interpretation, depending on manufacturer, series and model, so if you have a strange case search for SMART attribute values from same and similar disks which others posted on forums. People even say that it takes a good deal of “intuition” to interpret them … .

The most important thing to know about SMART values is probably this conclusion from a Google Labs team:

“We find, for example, that after their first scan error [any kind of bad sector error, caused by read instability or media damage], drives are 39 times more likely to fail within 60 days than drives with no such errors. First errors in reallocations, offline reallocations, and probational counts are also strongly correlated to higher failure probabilities. Despite those strong correlations, we find that failure prediction models based on SMART parameters alone are likely to be severely limited in their prediction accuracy, given that a large fraction of our failed drives have shown no SMART error signals whatsoever.” [Failure Trends in a Large Disk Drive Population, p. 13]

Blog by Category

Blog by Date